ZHA + OTA update firmware

Bonjour à tous
voila j’ai un petit souci:

Je commence à avoir pas mal de périphériques ZigBee; jusque la tout vas bien cela fonctionne parfaitement depuis 3ans

aujourd’hui j’aimerais mettre a jour le firmware de l’un deux car sans cela je ne peux l’exploiter correctement.
Il s’agit du Zlinky de LIxee, mais mon problème ne doit s’arrêter a lui je pense.

Bred j’a i tout configurer pour pouvoir Uploader le firmware mais rien ne se passe. quand je dit rien c’est vraiment rien

Renseigner votre problème

Ma configuration


System Health

version core-2022.2.9
installation_type Home Assistant Supervised
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.9.7
os_name Linux
os_version 5.10.11-v7l+
arch armv7l
timezone Europe/Paris
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4459
Installed Version 1.23.0
Stage running
Available Repositories 1059
Downloaded Repositories 29
Home Assistant Supervisor
host_os Raspbian GNU/Linux 10 (buster)
update_channel stable
supervisor_version supervisor-2022.01.1
docker_version 20.10.3
disk_total 58.5 GB
disk_used 40.1 GB
healthy true
supported failed to load: Unsupported
supervisor_api ok
version_api ok
installed_addons Samba share (9.5.1), Let’s Encrypt (4.12.0), File editor (5.3.3), TasmoAdmin (0.16.0), Mosquitto broker (6.0.1), Check Home Assistant configuration (3.10.0), Custom deps deployment (1.3.1), Nextcloud Backup (0.16.4), Tuya Gateway (0.6), Samba Backup (5.0.0)
Lovelace
dashboards 1
resources 15
views 18
mode storage
___

pour mon yaml

zha:
  zigpy_config:
    ota:
      otau_directory: /config/zigpy_ota
      ikea_provider: false
      ledvance_provider: false

logger:
  default: info
  logs:
    #custom_components.localtuya: info
    homeassistant.components.zha: debug
    zigpy: debug

pour l’appel du service

service: zha.issue_zigbee_cluster_command
data:
  ieee: "00:15:8d:00:05:d2:9a:35"
  endpoint_id: 1
  cluster_id: 0x0019
  cluster_type: out
  command_type: client
  command: 0
  args:
    - 0 
    - 100

Quoi que je fasse, redémarrer ou en manuel en appelant le service, rien ne se passe mais rien de rien , aucune réaction dans les logs.

D’où cela peut il bien venir

1 « J'aime »

Bonjour,
as-tu trouvé une réponse à ton problème? J’ai le même soucis, je tourne en rond, j’ai écumé internet mais je n’ai pas trouvé de solutions.
Cordialement

Helas non . Mais j ai un amis lui c est passé tout seul.

J ai in doute sur mon install elle date et c etait une facon peux commune d installer hassio. Alors que peut etre il manque des trucs.

Je verrais quand je reinstallerais sous peux

Pour info c’est passé chez moi en version 5.

Voilà ce que j’ai ajouté dans mon fichier configuration.yaml :

#mise à jour OTA du ZLINKY_TIC
zha:
  zigpy_config:
    ota:
      otau_directory: /config/zigpy_ota

j’ai copié le firmware dans le répertoire /config/zippy_ota et redémarrer HA. Et ça fonctionne.

Par contre, il n’y a que 2 entités valides : le courant instantané (1 A) et la puissance apparente (460VA), le reste ne remonte pas de donnée valide. Je cherche des solutions.

JC

1 « J'aime »

Pour info, après passage de ZHA à Z2M, tout marche niquel pour les sensors, toutes les valeurs sont remontées. Apparemment l’intégration en MQTT est mieux réussie.

Hello, merci beaucoup pour l’explication pour l’upgrade OTA. J’ai fait ca ce matin avec succes et j’ai tout qui fonctionne avec le Zlinky et surtout… Via ZHA. Si quelqu’un d’autre veut faire ca via ZHA j’ai fait un commentaire plus en detail ici: https://forum.hacf.fr/t/zlinky-tic-ou-connecter-simplement-linky-en-zigbee/7112/154?u=max

Bonjour,
Merci pour le partage ! J’utilise le ZLinky sous HA avec ZHA et j’ai essayé de mettre à jour mon firmware qui est toujours le 1…
J’ai recopié le code dans mon fichier configuration, créé le répertoire /config/zigpy_ota et placé dedans le fichier ZLinky_router_v5.0.ota
J’ai redémarré HA mais mon firmware est toujours le 1…
Une idée pour aider un débutant sous HA ?
Merci d’avance car j’aimerais bien suivre ma consommation avec ce dongle.

Quand tu va redémarer HA, ca va lancer la maj du firmware et faut patienter. Ca ma mis 15min a peu prêt. Tu peu voir l’avancement du flash dans les logs si tu les a activer.

dans configuration.yaml

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

pour le maj du firmware:

zha:
  zigpy_config:
    ota:
      otau_directory: /config/zigpy_ota
      ikea_provider: false
      ledvance_provider: false

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à !