Zurück zu allen Artikeln

Shelly Firmware Massen-Update via Python-Skript automatisieren

admin
2 min Lesezeit
Shelly Firmware Massen-Update via Python-Skript automatisieren

Einleitung

Wer viele Shelly-Geräte im Smart Home verbaut hat, kennt den Aufwand: Jedes Gerät einzeln über die Weboberfläche zu aktualisieren, kostet Zeit und Nerven. Mit dem Python-Skript flash-shelly.py lässt sich dieser Prozess zentralisieren und automatisieren.

Dieses Tutorial zeigt, wie Sie alle Shellys im Netzwerk finden und ein Firmware-Upgrade in einem Rutsch durchführen, ohne dabei die individuellen Einstellungen zu verlieren.

Voraussetzungen:

  • Installierte Python-Umgebung
  • Das Skript flash-shelly.py liegt lokal vor
  • Der Computer befindet sich im selben Netzwerk-Subnetz wie die Shellys

[BILD 1: Symbolbild eines Netzwerks mit vielen Shelly-Geräten]

Überblick

Wir werden folgende Schritte durchführen:

  • Skript ausführbar machen
  • Netzwerk nach Geräten scannen
  • Bulk-Update aller Geräte durchführen

Schritt-für-Schritt Anleitung

  1. Berechtigungen setzen
    Bevor das Skript genutzt werden kann, muss sichergestellt werden, dass es ausführbar ist. Prüfen Sie den Pfad zu Ihrem Skript.

    Aktion:
    Terminal öffnen und Berechtigung erteilen.

    chmod +x /Users/richard/Shelly/flash-shelly.py
  2. Shellys im Netzwerk identifizieren
    Um sicherzugehen, dass alle Geräte erkannt werden, führen Sie einen List-Befehl aus. Dies zeigt alle erreichbaren Shelly-Geräte an.

    Befehl:

    /Users/richard/Shelly/flash-shelly.py -la

    [BILD 2: Screenshot der Terminal-Ausgabe mit der Liste der gefundenen Geräte]

  3. Firmware-Upgrade durchführen
    Nun starten wir das eigentliche Update. Der Parameter -am keep ist hierbei entscheidend, da er sicherstellt, dass Ihre WLAN- und MQTT-Einstellungen erhalten bleiben.

    Optionen:
    --password: Ihr Shelly-Gerätepasswort
    -y: Automatische Bestätigung

    /Users/richard/Shelly/flash-shelly.py --password idnos-Shelly -am keep -y

Wichtige Hinweise & Stolperfallen

Sicherheitstipp: Das Passwort im Klartext im Befehl zu haben, ist ein Sicherheitsrisiko (History-Log). Nutzen Sie Umgebungsvariablen:
export SHELLY_PASSWORD=idnos-Shelly
Und rufen Sie das Skript dann so auf:
... --password $SHELLY_PASSWORD ...

Testlauf: Bevor Sie Dutzende Geräte gleichzeitig patchen, nutzen Sie den Parameter -test bei einem einzelnen Gerät, um die Verbindung und Authentifizierung zu verifizieren.

Ergebnis & Fazit

Mit wenigen Befehlen lassen sich auch große Shelly-Installationen konsistent auf dem neuesten Firmware-Stand halten. Die Automatisierung spart nicht nur Zeit, sondern reduziert auch die Fehleranfälligkeit gegenüber manuellen Eingriffen.

Ähnliche Artikel