Zigbee2mqtt: OTA Updates

Sofern der Hersteller der Zigbee-Geräte die Firmware offiziell zur Verfügung stellt, können die Geräte auch über Zigbe2mqtt aktualisiert werden. Eine Übersicht welche Geräte aktualisiert werden können, ist in der Zigbee2mqtt Documentation zu finden. Die IKEA TRÅDFRI-Produkte gehören beispielsweise dazu.

Prüfen auf Upates

Wurde das Zigbee-Gerät per Device-Discover automatisch in Home Assitant angelegt, so wurde mit dem Gerät zusammen ein Update-Sensor erzeugt. Dieser zeigt an, ob ein OTA-Update für ein Gerät vorliegt. Es muss also nichts zusätzliches in Home Assistant aktiviert werden.

OTA Update Sensor  in Home Assistant

Update per MQTT manuell anstoßen

Um den Update-Vorgang zu starten muss lediglich eine MQTT-Nachricht an das Topic zigbee2mqtt/bridge/ota_update/update gesendet werden. Als Inhalt der Nachricht ist der Friendly-Name des Devices anzugeben.

Updateverlauf kontrollieren

Der Status des Updates kann in den Logdateienvon Zigbee2mqtt nachvollzogen werden:

info  2020-04-18 16:30:27: Updating 'tradfri_e14_02' to latest firmware
info  2020-04-18 16:30:27: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"ota_update","message":"Updating 'tradfri_e14_02' to latest firmware","meta":{"status":"update_in_progress","device":"tradfri_e14_02"}}'
info  2020-04-18 16:30:36: Update of 'tradfri_e14_02' at 0%
info  2020-04-18 16:30:36: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"ota_update","message":"Update of 'tradfri_e14_02' at 0%","meta":{"status":"update_progress","device":"tradfri_e14_02","progress":0}}'
info  2020-04-18 16:31:07: Update of 'tradfri_e14_02' at 2.64%, +- 24 minutes remaining
info  2020-04-18 16:31:07: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"ota_update","message":"Update of 'tradfri_e14_02' at 2.64%, +- 24 minutes remaining","meta":{"status":"update_progress","device":"tradfri_e14_02","progress":2.64}}'
info  2020-04-18 18:31:32: Update of 'tradfri_e14_02' at 4.9%, +- 2349 minutes remaining
info  2020-04-18 18:31:32: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"ota_update","message":"Update of 'tradfri_e14_02' at 4.9%, +- 23 minutes remaining","meta":{"status":"update_progress","device":"tradfri_e14_02","progress":4.9}}'
info  2020-04-18 18:32:02: Update of 'tradfri_e14_02' at 7.52%, +- 1495 minutes remaining
[...]
info  2020-04-18 18:48:38: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"ota_update","message":"Update of 'tradfri_e14_02' at 94.68%, +- 2 minutes remaining","meta":{"status":"update_progress","device":"tradfri_e14_02","progress":94.68}}'
info  2020-04-18 18:49:08: Update of 'tradfri_e14_02' at 97.32%, +- 4 minutes remaining
info  2020-04-18 18:49:08: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"ota_update","message":"Update of 'tradfri_e14_02' at 97.32%, +- 1 minutes remaining","meta":{"status":"update_progress","device":"tradfri_e14_02","progress":97.32}}'
info  2020-04-18 18:49:38: Update of 'tradfri_e14_02' at 99.96%, +- 0 minutes remaining
info  2020-04-18 18:49:38: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"ota_update","message":"Update of 'tradfri_e14_02' at 99.96%, +- 0 minutes remaining","meta":{"status":"update_progress","device":"tradfri_e14_02","progress":99.96}}'
info  2020-04-18 18:49:53: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"device_announced","message":"announce","meta":{"friendly_name":"tradfri_e14_02"}}'
info  2020-04-18 18:51:11: Update of 'tradfri_e14_02' at 100%
info  2020-04-18 18:51:11: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"ota_update","message":"Update of 'tradfri_e14_02' at 100%","meta":{"status":"update_progress","device":"tradfri_e14_02","progress":100}}'
info  2020-04-18 18:51:11: Finished update of 'tradfri_e14_02', from '{"softwareBuildID":"1.2.217","dateCode":"20170331"}' to '{"softwareBuildID":"2.3.007","dateCode":"20190520"}'
info  2020-04-18 18:51:11: MQTT publish: topic 'zigbee2mqtt/tradfri_e14_02', payload '{"state":"OFF","update_available":false,"color_temp":319,"brightness":254}'
info  2020-04-18 18:51:11: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"ota_update","message":"Finished update of 'tradfri_e14_02', from '{\"softwareBuildID\":\"1.2.217\",\"dateCode\":\"20170331\"}' to '{\"softwareBuildID\":\"2.3.007\",\"dateCode\":\"20190520\"}'","meta":{"status":"update_succeeded","device":"tradfri_e14_02","from":{"softwareBuildID":"1.2.217","dateCode":"20170331"},"to":{"softwareBuildID":"2.3.007","dateCode":"20190520"}}}'  

Update von Home Assistant starten

Um Firmware-Updates auch von Home Assistant aus durchführen zu können, muss ein Eingabefeld und ein SCript in der Home Assistant Konfiguration angelegt werden:

input_text:
  zigbee2mqtt_update:
    name: Zigbee2mqtt Update

script:
  zigbee2mqtt_update:
    alias: Zigbee2mqtt Update
    sequence:
      service: mqtt.publish
      data_template:
        topic: zigbee2mqtt/bridge/ota_update/update
        payload_template: "{{ states.input_text.zigbee2mqtt_update.state | string }}"

In Lovelace können die beiden Controls mit folgenden Befehlen auf einer Karte eingebunden werden:

  - entity: input_text.zigbee2mqtt_update
  - entity: script.zigbee2mqtt_update

Troubleshooting

Sollte das Firmwareupdate fehlschlagen, so sollte als erstes ein Blick in die Logs geworfen werden. Hier finden sich oft Anhaltspunkte warum ein Update fehlgeschlagen ist. Die folgende Tabelle fasst die Probleme und die Vorgehensweisen zusemmen, die bei mir zu einem Erfolg geführt haben:

FehlerbeschreibungTipps zur Fehlervermeidung
Das Update dauert laut Log-File mehrere Stunden. 1.a)Bei einem Firmware-Update werden vergleichsweise große Datenmenge im Zigbee-Netzwerk übertragen. Daher kann ein Firmware-Update für ein Gerät durchaus 20 - 30 Minuten dauern. In Einzelfällen (z.B. beim Update von TRÅDFRI Remote Controllern) kann es aber durchaus auch mehr als 2 Stunden dauern, bis das Update durch ist. Bei einzelnen Updates wurde mit auch eine Zeit von über 1800 Minuten angezeigt. Diese haben sich bisher im laufe des Updates wieder relativiert.
Das Update bricht ohne ersichtlichen Grund ab.2.a) Wenn ein Update fehlgeschlagen ist, sollte das entsprechende Gerät kurz vom Strom getrennt werden und dann ein erneuter Versuch gestartet werden. Gefühlt klappt ein Update besser, wenn das Gerät ausgeschaltet ist. Datenverkehr zu dem Gerät das aktualisiert wird, sollte während des Upgrades vermieden werden.
 2.b)Da beim Update viele Daten im Netzwerk-übertragen werden sollte sichergestellt werden, dass nicht mehrere Geräte gleichzeitig aktualisiert werden.
 2.c)Ggf. hilft es auch das Device für das Upgrade näher an den Zigbee-Coordinator zu bringen.
Das Update bricht wiederholt ab, nachdem eine MQTT Nachricht vom Typ 'device_announced'  an das Topic topic 'zigbee2mqtt/bridge/log' gesendet wird.3.a) Wenn der Update-Versuch regelmäßig abbricht nachdem eine MQTT-Nachricht mit dem Inhalt payload '{"type":"device_announced","message":"announce","meta":{"friendly_name":"<DEVICE_RECEIVING_UPDATE>"}}' so hat es bei mir folgendes Vorgehen geholfen:
  • Zu aktualisierendes Gerät vom Strom trennen und dann wieder an den Strom anschalten. Ggf. ist das Gerät nach dem Anschließen des Stroms über Zigbee wieder auszuschalten (z.B. wenn eine Lampe nach dem Stromlosschalten wieder leuchtet.
  • Den zigbee2mqtt-Dienst neu starten.
  • Direkt nach dem Neutsart des Dienstes den Update-Prozess starten. 
Bei einem batteribetriebenen Geräte startet das Update nicht.4.a) Battteriebene Geräte gehen normalerweise in einen Stromsparmodus, wenn sie nicht benutzt werden. Daher müssen diese Geräte in der Regel "geweckt" werden wenn ein Update durchgeführt werden soll. Bei meinen TRÅDFRI Remote Controllern hilft es, wenn direkt nach dem Starten des Upgrade-Prozesses der An/Aus-Schalter gedrückt wird.
 4.b) Die Batterie des Gerätes sollte noch mindestens 70% Restenergie haben.

 

 

Kommentare

PostadresseE-MailadresseFestnetzMobiltelefonSMS/SignalThreemaTwitter DirektnachrichtFAXWeb Page