ZHA + OTA update firmware

Merci beaucoup. Il semble que je manquais juste de patience…

1 « J'aime »

Bonjour,
Dans mon cas, la mise à jour semble bien détectée

2022-06-05 00:28:53 DEBUG (MainThread) [zigpy.zcl] [0x0FE4:1:0x0019] Decoded ZCL frame: Ota:query_next_image(field_control=<FieldControl.0: 0>, manufacturer_code=4151, image_type=1, current_file_version=1)
2022-06-05 00:28:53 DEBUG (MainThread) [zigpy.zcl] [0x0FE4:1:0x0019] Received command 0x01 (TSN 53): query_next_image(field_control=<FieldControl.0: 0>, manufacturer_code=4151, image_type=1, current_file_version=1)
2022-06-05 00:28:53 DEBUG (MainThread) [zigpy.zcl] [0x0FE4:1:0x0019] OTA query_next_image handler for 'LiXee ZLinky_TIC': field_control=FieldControl.0, manufacture_id=4151, image_type=1, current_file_version=1, hardware_version=None, model=ZLinky_TIC
2022-06-05 00:28:53 DEBUG (MainThread) [zigpy.zcl] [0x0FE4:1:0x0019] OTA image version: 5, size: 240478. Update needed: True
2022-06-05 00:28:53 INFO (MainThread) [zigpy.zcl] [0x0FE4:1:0x0019] Updating: LiXee ZLinky_TIC
2022-06-05 00:28:53 DEBUG (MainThread) [zigpy.zcl] [0x0FE4:1:0x0019] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=False, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=True, *is_general=False), tsn=53, command_id=2, *is_reply=True)
2022-06-05 00:28:53 DEBUG (MainThread) [zigpy.zcl] [0x0FE4:1:0x0019] Sending reply: query_next_image_response(status=<Status.SUCCESS: 0>, manufacturer_code=4151, image_type=1, file_version=5, image_size=240478)

Malheureusement, il ne se passe rien (peu importe le délai d’attente)
La progression reste bloquée à 0%.

2022-06-05 00:28:53 DEBUG (MainThread) [zigpy.zcl] [0x0FE4:1:0x0019] OTA upgrade progress: 0.0

Est-ce qu’il vaut mieux passer par Zigbee2MQTT plutot que ZHA ?

Finalement je suis passé par Z2M.
Dans ce cas la mise à jour OTA a fonctionné directement :+1:

On peut mettre à jour en ZHA.

  1. Definir et configurer un répertoire ou les fichiers de mise à jour sont placées:
    Voici ma config zha complète, mais ce qui compte c’est la section ota qui dit que je mets mes fichiers OTA sous /config/zb_ota.
    Cette partie était déjà bien indiqué dans quelques messages.
zha:
  enable_quirks: true
  custom_quirks_path: /config/zha_quirks
  zigpy_config:
    network:
      channel: 11
      channels: [11]
    ota:
      ikea_provider: false
      ledvance_provider: false
      otau_directory: /config/zb_ota
  1. Mettre le fichier de mise à jour sous /config/zb_ota (si c’est le répertoire defini par otau_directory.
    J’ai fait un script pour récupérer tous les fichiers donnés par Koenkk/zigbee-OTA.

  2. Mettre à jour la base de données de zigpy.

  • Soit redémarrer HA;
  • Soit appeler le service ota_notify de zha_toolkit en indiquant l’appareil à mettre à jour.
    Cela enverra une commande à l’appareil pour l’informer qu’il y a une mise à jour.
  1. Réinitialiser la configuration de l’objet peut éventuellement être utile, mais je ne sais plus si cela était nécessaire ou pas dans mon cas.

Par la suite, j’exécute de temps à autre le script de récupération de fichiers et je regardes s’il y a une nouvelle mise à jour qui me concerne.
La liste de Koenkk ne se mets elle-même pas à jour automagiquement - il faut éventuellement soumettre l’information de la mise à jour selon la procédure de Koenkk/zigbee-OTA.

Bonjour,

j’ai suivi toute la littérature que j’ai trouvé sur internet sans succès!

dans mon cas je vois bien les fichiers .ota se télécharger dans le dossier, mais rien à faire le firmware ne se met pas à jour et je n’ai aucune trace d’erreur dans les logs :

2022-10-28 18:01:05.276 INFO (MainThread) [custom_components.zha_toolkit] Running ZHA Toolkit service: <ServiceCall zha_toolkit.ota_notify (c:01GGFN6MQSGCETNV9FYAPE8VW8): ieee=sensor.lixee_zlinky_tic_electricalmeasurement, download=True, path=/home/homeassistant/.homeassistant/config/zigpy_ota, event_success=ota_notify_success, event_fail=ota_notify_fail, event_done=ota_notify_done>

J’ai HASS en mode core, Z2M me semble être un chantier bien compliqué à lancer… surtout quand je me suis assuré d’acheter des composants compatibles ZHA.

N’y a t-il vraiment rien à faire??? :cry:

Le fichier pour la mise à jour est-il bien dans /home/homeassistant/.homeassistant/config/zigpy_ota ?

Il n’y pas le dernier fichier sur Koenkk/zigbee-OTA` puisque ma dernière mise à jour a dû être retrogradé car le développeur a mis en ligne une version pas complètement validée comme version « release » rétrogradé ensuite à pre-release.

Du coup, je ne m’en occupes plus et pour mettre à jour vers la dernière version il faut télécharger et poser le fichier dans le répertoire désigné pour les fichiers de mise à jour.

bonjour, j’ai bien déposé le fichier ZLinky_router_v10.ota récupéré avec les bon droits.
En forcant la maj via ZHA toolkit :

service: zha_toolkit.ota_notify
data:
  ieee: sensor.lixee_zlinky_tic_electricalmeasurement
  path: /home/homeassistant/.homeassistant/config/zigpy_ota
  event_success: ota_notify_success
  event_fail: ota_notify_fail
  event_done: ota_notify_done

il en télécharge même d’autres : ZLinky_router_v5.0.ota 20190408_EUROTRONIC_Spirit_Zigbee_0x00122C380.ota CSM300Z_TOF_OTA_ENC_V12_ENC.ota DMS300Z_OTA_ENC_V2_ENC.ota ISM300Z_OTA_ENC_V3_ENC.ota LeakSensor_v5.OTA.zigbee

Ok, très bien.
Vous pouvez « écouter » l’événnement ota_notify_done pour voir le résultat de la commande.

ZLinky a désormais 2 versions: avec et sans routage - les fichiers déposés doivent être compatible avec la version déjà chargée.

1 « J'aime »

voici le resultat de sortir en écoutant ota_notify_done. J’ai déposé dans le dossier /home/homeassistant/.homeassistant/config/zigpy_ota les différents firmwares récupérés sur Zlinky ne sachant pas trop quel version j’ai.

event_type: ota_notify_done
data:
  zha_toolkit_version: v0.8.22
  zigpy_version: 0.51.3
  zigpy_rf_version: 0.34.2
  ieee_org: sensor.lixee_zlinky_tic_electricalmeasurement
  ieee: 00:15:8d:00:05:ce:76:9e
  command: ota_notify
  command_data: null
  start_time: "2022-10-31T21:46:38.902335+00:00"
  errors: []
  params:
    dir: 0
    tries: 1
    expect_reply: true
    args: []
    event_success: ota_notify_success
    event_fail: ota_notify_fail
    event_done: ota_notify_done
    read_before_write: true
    read_after_write: true
    path: /home/homeassistant/.homeassistant/config/zigpy_ota
  PAR:
    cmd_id: null
    endpoint_id: null
    cluster_id: null
    attr_id: null
    attr_type: null
    attr_val: null
    code: null
    min_interval: null
    max_interval: null
    reportable_change: null
    dir: 0
    manf: null
    tries: 1
    expect_reply: true
    args: []
    state_id: null
    state_attr: null
    allow_create: false
    event_success: ota_notify_success
    event_fail: ota_notify_fail
    event_done: ota_notify_done
    fail_exception: false
    read_before_write: true
    read_after_write: true
    write_if_equal: false
    csvfile: null
    csvlabel: null
    download: null
    path: /home/homeassistant/.homeassistant/config/zigpy_ota
  result: null
  success: true
origin: LOCAL
time_fired: "2022-10-31T21:46:40.705841+00:00"
context:
  id: 01GGR05K61W8B7S4TNBBBYCXRR
  parent_id: null
  user_id: null

je ne sais pas quoi en déduire :confused: Et pas plus d’avancement :cry:

Donc la commande par zha-toolkit est bien passé. Ensuite, si ce n’est pas suffisant, on peut activer les traces de ZHA/zigpy pour voir les informations autour de la mise à jour même. Je n’ai pas le temps tout de suite d’aller voir les options de trace à activerpour cela.

Salut,
Je vais juste rajouter quelques notes ici pour les débutants comme moi qui auraient des problèmes à mettre à jour le firmware. Je débute sous home assistant, je ne l’ai que depuis quelques jours. J’avais déjà HACS installé mais pas ZHA Toolkit.
Commencez donc par l’installer (lien github explicatif plus haut) car il vous le faudra de toutes façons pour exploiter les coûts des heures creuses et heures pleines via le superbe tuto de @kfran78 ici Clé ZLINKY lixee avec ZHA + Conbee2_Remonter dans ENERGIE HP/HC

Ensuite j’ai eu beau redémarrer 5 fois home assistant, et attendre à chaque fois 20 minutes, la mise à jour ne voulait pas se faire. Si je cherchais le terme « ota » dans les logs, il n’apparaissait que 10 fois (mais je ne savais pas vraiment quoi chercher dans ces logs donc je n’étais pas sur si la mise à jour se faisait ou pas).

C’est finalement la méthode citée par @verrecs un peu plus haut qui m’a permis de mettre à jour le Lixee. J’ai forcé la mise à jour dans les outils de développement > service, en entrant les lignes qu’il a notées. Petite précision, pour la ligne ieee j’ai indiqué la valeur qu’on voit dans la fiche du device lixee, dans la fenêtre « informations appareil » (ça ressemble à une adresse mac à rallonge).
Une fois que c’était envoyé, mon journal a été littéralement floodé du mot « ota » et après 15 minutes la maj était faite.

Désolé si ce post fait un peu « home assistant pour les nuls » mais je viens de domoticz et tout cela est encore nouveau pour moi.

Hello à tous,

Merci pour vos messages, grâce à vous, j’ai pu relier mon ZLinky_TIC à mon homeassistant, une bonne première étape de faite !

Cela n’a pas été très simple car mon linky est un peu loin et j’ai dû rapprocher mon coordinateur pour l’appairage, puis rebelote pour la mise à jour OTA, sinon c’était trop lent et ça plantait (détail ci dessous), tout en essayant de garder un réseau local fonctionnel via un répéteur wifi pour pouvoir debug en ssh (bref, j’avais des rallonges partout et des fils suspendus à droite à gauche).

Pour l’instant, je reçois des valeurs, même si ça ce ne me parait pas très régulier, mais je crois savoir qu’il y a d’autres étapes de configuration à réaliser ensuite, je vais creuser cela, sinon je reviendrai vers vous pour des nouvelles questions. A moins encore que ça soit mon maillage qui ne soit pas bon, ou encore un trop vieux coordinateur? à suivre…

Bon d’abord, pour les petits nouveaux (dont je fais parti), voilà ce que j’ai dû faire (sachant que pour info, j’ai une version de homeassistant « core » qui tourne dans en venv python :

  1. Associer le Zlinky_TIC à mon coordinateur dans ZHA, sachant que mon coordinateur est un vieux dongle CC2531, j’ai compris que c’était un peu dépassé aujourd’hui, mais bon, tant que ça marche…

  2. Télécharger le dernier firmware sur https://github.com/fairecasoimeme/Zlinky_TIC/releases (au moment où je vous parle ZLinky_router_v11.ota) et le copier dans un répertoire accessible à homeassistant, en ce qui me concerne /home/debian/.homeassistant/config/zigpy_ota

  3. Editer le fichier configuration.yaml :

zha:
  zigpy_config:
    ota:
      otau_directory: ./config/zigpy_ota

logger:
  default: info
  logs:
    homeassistant.components.zha: debug
    zigpy: debug

A noter que pour moi, « /config/zigpy_ota » ou « /zigpy_ota », ne fonctionnaient pas. Il fallait que j’ajoute le « . » qui désigne le répertoire dans lequel configuration.yaml est présent.

  1. Redémarrer HA (j’ai pas voulu me prendre la tête avec ZHA toolkit pour l’instant).

  2. Vérifier les log régulièrement :
    ~$ tail -n 1000 .homeassistant/home-assistant.log

à la recherche de lignes telles que :

DEBUG (SyncWorker_1) [zigpy.ota.provider] ImageKey(manufacturer_id=4151, image_type=1): ./zigpy_ota/ZLinky_router_v11.ota, version: 11, hw_ver: (None, None), OTA string: OM15081-RTR-JN5189-0000000000000
DEBUG (MainThread) [zigpy.zcl] [0x91BB:1:0x0019] OTA query_next_image handler for 'LiXee ZLinky_TIC': field_control=FieldControl.0, manufacturer_id=4151, image_type=1, current_file_version=1, hardware_version=None, model='ZLinky_TIC'
DEBUG (MainThread) [zigpy.zcl] [0x91BB:1:0x0019] OTA image version: 11, size: 244142. Update needed: True
DEBUG (MainThread) [zigpy.zcl] [0x91BB:1:0x0019] OTA upgrade progress: 0.0
DEBUG (MainThread) [zigpy.zcl] [0x91BB:1:0x0019] OTA upgrade progress: 0.1
DEBUG (MainThread) [zigpy.zcl] [0x91BB:1:0x0019] OTA upgrade progress: 0.2
...

Le problème que j’ai rencontré au départ, c’est que la mise à jour était très très très lente (ce qui en soit n’était pas très grave, moins de 1% par minute), mais par contre elle finissait par repartir à 0 automatiquement (toutes les 5 - 10 - 15 minutes, ça dépendait des fois). Le tout sans aucun message d’erreur - j’ai pas compris.

C’est là que j’étais content de regarder les logs régulièrement, ça m’a permis assez vite de voir qu’il y avait un problème. J’interprète cela comme un problème de stabilité de mon réseau maillé, peut être que le signal n’était pas assez bon pour faire une telle mise à jour (je note que le fichier ota fait 239 kB, je ne me rends pas compte de si c’est beaucoup ou pas sur un réseau zigbee…).

Finalement, en amenant mon coordinateur à quelques centimètres du Zlinky_TIC, tout s’est bien mis à jour sans interruption - en un peu moins de 30 minutes.

Voilà !

Bonjour à tous,

suivant les bons conseils de @jrant2k et @pimseb j’ai réussi à lancer une maj OTA en rapprochant le coordinateur zigbee, en utilisant l’IEEE qui ressemble a une adresse mac, et la v12 du firmware Releases · fairecasoimeme/Zlinky_TIC · GitHub.

Les log attestent que la maj s’est bien effectuée et c’est une avancée! :

DEBUG (MainThread) [zigpy.zcl] [0xD207:1:0x0019] OTA upgrade progress: 100.0

En revanche à la suite de la maj dans ZHA je vois la version du firmware = « 0x0000000c ».
Pire, plus aucun signe du vie du dongle Lixee qui ne s’allume plus du tout même après plusieurs tentatives de rebranchements sur le compteur linky :cry:

Bonjour,
Pour le firmware c’est bon, c’est en hexadécimal. C = 12 en décimales.
Ensuite, à tu essayer de supprimer le Zlinky de ZHA et de le réappairer ?
Beaucoup de personnes ont plus eu de remonter au passage du firmware v12 et en supprimant et réappairage du Zlinky à fonctionner. Tu ne perdra pas l’historique de consommation :wink:

je viens d’essayer, malheureusement plus aucun signe de vie du Zlinky. Plus aucune diode ne s’allume :cry:

A mon tour de galérer malgré vos précieuses expériences ou conseils
Mes tentatives de MAJ en OTA ne fonctionnent pas
voici mon yaml

zha:
  zigpy_config:
    ota:
      otau_directory: /config/zigpy_ota

logger:
  default: info
  logs:
    homeassistant.components.zha: debug
    zigpy: debug

et le log

2023-10-13 16:51:25.864 DEBUG (SyncWorker_7) [zigpy.ota.provider] ImageKey(manufacturer_id=4151, image_type=1): /config/zigpy_ota/ZLinky_router_v13.ota, version: 13, hw_ver: (None, None), OTA string: OM15081-RTR-JN5189-0000000000000
2023-10-13 16:51:28.381 DEBUG (SyncWorker_4) [zigpy.ota.provider] ImageKey(manufacturer_id=4151, image_type=1): /config/zigpy_ota/ZLinky_router_v13.ota, version: 13, hw_ver: (None, None), OTA string: OM15081-RTR-JN5189-0000000000000

Je suis sous zha avec une conbee 2. J’ai testé la v13 ota et la v13 router ota dans le répertoire et cela fait exactement la même chose.
Merci de votre aide

Je me réponds à moi même si cela peut aider certains, j’ai débranché le zlinky du compteur linky. Miracle la MAJ s’est enfin lancée.
Astuce vue ici : MAJ v12 Limited OTA impossible par ZHA. · Issue #137 · fairecasoimeme/Zlinky_TIC · GitHub

2 « J'aime »

Bonjour,
J’ai un Z-Linky tout neuf, qui est avec un firmware pas à jour :
Micrologiciel : 0x00000001

J’aimerais bien le mettre à jour, mais je ne sais pas comment procéder, étant tout nouveau dans l’utilisation de HomeAssistant.

J’ai installé HACS et le ZHA Toolkit.
J’ai mis la ligne suivante dans mon fichier de configuration yml de HA :

zha_toolkit:

Mais je ne sais pas si les lignes pour la MAJ seraient les mêmes pour moi…
Car mon HA est dans une VM sur un NAS Synology, et le Z-Linky communique avec HA via une Clé USB SkyConnect qui elle est à jour (via Silicon Labs Flasher).
Donc le zigpy je n’ai pas :wink:

Merci de votre aide :slight_smile:
Bonne nuit

Bonjour tout le monde !

Il y à eu un gros changement pour les MAJ zigbee dernièrement.

Voici ce qu’il faut mettre dorénavant dans votre fichier config.yaml :

zha:
  zigpy_config:
    ota:
      z2m_remote_index: https://raw.githubusercontent.com/Koenkk/zigbee-OTA/master/index.json

Ce changement est destiné à simplifier et à sécuriser les MAJ zigbee !

Plus besoin de chercher soit même le fichier puis de l’envoyer sur le serveur via samba ou autre.

Bonne MAJ à tous :smile:

Salut, j’ai mis à jour en version HA 2024.4 pour mettre à jour, j’ai des notifs pour dire que des upgrade de firmware sont dispo sur tous mes équipements zigbee ikea, mais quand je clique sur installer ça commence l’update et ça plante directement (l’ihm affiche 3% et dans les logs ça upload le premier bloc puis ça stop)
est-ce que ça pourrait être la faute du contrôleur (zigate v1) ?

vous arrivez à mettre à jour les firmware correctement depuis HA?