[Tutoriel] Flasher les dongles CC2531 et ZLinky

Publié le 8 juillet 2023

Domotique CC2531 ZLinky Tutoriel

 Attention, cet article date de plus d'un an. Les informations qu'il contient sont peut-être obsolètes. 

Bonjour à tous,

À mon réveil ce matin, je découvre une notification laissée par mon instance uptime-kuma me disant que mon instance Zigbee2MQTT était inaccessible depuis hier 23h52.

Un peu de contexte

uptime-kuma est un outil très pratique permettant de monitorer différents services. On peut y configurer des services de notifications, en l’occurrence je reçois un message sur Telegram dès qu’un service devient inaccessible.

Je possède des équipements de domotiques communiquant en Zigbee tels que des capteurs de températures mais aussi le ZLinky dont je reparlerai plus tard.

Mon instance de Home Assistant (je vous laisse voir l’article en lien si vous ne connaissez pas) gère facilement le MQTT. Zigbee2MQTT est un logiciel permettant de convertir les messages venant du protocole Zigbee au protocole MQTT.

Pour que Zigbee2MQTT puisse traduire les messages envoyés via le protocole Zigbee, un dongle permettant de recevoir ces messages est nécessaire. Dans mon cas, il s’agit du dongle CC2531 que j’ai acheté fin novembre 2018. Il fonctionne encore parfaitement avec Zigbee2MQTT mais n’est plus recommandé. Dans mon cas, ce dongle est connecté en USB à mon Raspberry Pi.

Le drame

Bref, ce matin, je reçois donc la notification m’indiquant que Zigbee2MQTT est tombé. J’essaie de m’y connecter via l’interface web: rien.

Je me connecte directement au Raspberry Pi pour voir les logs, et là, je tombe là-dessus:

Failed to read zigbee attributes: Error: Read 0xxxxxxxxxxxxxxxxx/1 liXeePrivate(["currentTarif"], {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (SRSP - AF - dataRequest after 6000ms)
Failed to read zigbee attributes: Error: Read 0xxxxxxxxxxxxxxxxx/1 haElectricalMeasurement(["rmsCurrentMax"], {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (SRSP - AF - dataRequest after 6000ms)
Failed to read zigbee attributes: Error: Read 0xxxxxxxxxxxxxxxxx/1 seMetering(["meterSerialNumber"], {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (SRSP - AF - dataRequest after 6000ms)
Failed to read zigbee attributes: Error: Read 0xxxxxxxxxxxxxxxxx/1 seMetering(["activeRegisterTierDelivered"], {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (SRSP - AF - dataRequest after 6000ms)
Failed to read zigbee attributes: Error: Read 0xxxxxxxxxxxxxxxxx/1 haMeterIdentification(["availablePower"], {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (SRSP - AF - dataRequest after 6000ms)

Ces logs sont répétés plusieurs fois avant de tomber sur:

Zigbee2MQTT:error 2023-07-06 23:50:28: Adapter disconnected, stopping
Zigbee2MQTT:error 2023-07-06 23:50:28: Failed to stop Zigbee2MQTT
Using '/app/data' as data directory
Zigbee2MQTT:error 2023-07-06 23:50:36: Error while starting zigbee-herdsman
Zigbee2MQTT:error 2023-07-06 23:50:36: Failed to start zigbee
Zigbee2MQTT:error 2023-07-06 23:50:36: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions
Zigbee2MQTT:error 2023-07-06 23:50:36: Exiting...
Zigbee2MQTT:error 2023-07-06 23:50:36: Error: Error while opening serialport 'Error: Error: No such file or directory, cannot open /dev/ttyACM0'
    at SerialPort.<anonymous> (/app/node_modules/zigbee-herdsman/src/adapter/z-stack/znp/znp.ts:146:28)
    at SerialPort._error (/app/node_modules/@serialport/stream/dist/index.js:75:22)
    at /app/node_modules/@serialport/stream/dist/index.js:111:18

Après 8 tentatives, les redémarrages échouent désormais sur cette erreur:

Using '/app/data' as data directory
Zigbee2MQTT:error 2023-07-06 23:52:54: Error while starting zigbee-herdsman
Zigbee2MQTT:error 2023-07-06 23:52:54: Failed to start zigbee
Zigbee2MQTT:error 2023-07-06 23:52:54: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions
Zigbee2MQTT:error 2023-07-06 23:52:54: Exiting...
Zigbee2MQTT:error 2023-07-06 23:52:54: Error: AREQ - ZDO - stateChangeInd after 60000ms
    at Timeout._onTimeout (/app/node_modules/zigbee-herdsman/src/utils/waitress.ts:64:35)
    at listOnTimeout (node:internal/timers:569:17)
    at processTimers (node:internal/timers:512:7)

Bref, après une première analyse, on dirait que le module ZLinky (j’en reparlerai plus tard) a envoyé des données qui ont fait crasher le dongle Zigbee.

Je débranche/rebranche le dongle: toujours rien.

Je reboot le Rasbperry Pi: toujours rien.

Là, je suis quand même bien embêté, il est 7 heures du matin et les températures extérieures commencent doucement à monter. Or, Home Assistant m’envoie une notification quand les températures extérieures deviennent plus importantes qu’à l’intérieur: il est temps de fermer les fenêtres. Tout ça est impacté par un souci semblant venir du ZLinky qui n’a pas grand-chose à voir …

Flasher le dongle CC2531

Après quelques recherches sur internet, il semblerait que reflasher l’adaptateur Zigbee solutionnerait le problème. J’imagine qu’il est briqué bien que ça soit plutôt étrange car ça fait plusieurs années que ça tourne (sans trop de problèmes, j’y reviendrai).

Pour la suite, je vous laisse suivre les informations fournies par Zigbee2MQTT sur cette page (archive disponible ici). La version sur Github est accessible ici et je possède un miroir ici si jamais.

Si jamais des liens seraient morts, n’hésitez pas à me contacter pour qu’éventuellement, je puisse vous fournir les logiciels/binaires.

Dans mon cas, j’ai reflashé la même version (la Z-Stack_Home_1.2 (default)) que celle que je possédais déjà (il n’y en a pas eu de nouvelles mises à jour entre-temps de toutes façons). Si vous ne savez pas quelle version installer, cette page (miroir ici) devrait pouvoir vous aider.

Flasher le dongle ZLinky

Nous arrivons maintenant au dongle ZLinky. C’est un dongle qui se connecte directement sur le Linky et qui est alimenté par celui-ci. Il permet d’envoyer les informations du Linky via le protocole Zigbee.

Je l’avais acheté relativement tôt à la sortie du produit, j’ai donc une des toutes premières version hardware du dongle. Cela m’a valu quelques soucis, notamment lorsque celui-ci était encore instable. À noter qu’il y aurait une soudure possible pour corriger (ou améliorer ?) le soucis. Cependant, depuis la version 7 logicielle, il existe 2 modes: routeur et “limited”.

Pour ma part, je ne sais pas si j’ai de la chance ou pas, mais je n’ai ni la correction “hardware”, ni la version “limited” et je n’ai plus de soucis d’instabilités (sauf pour cette nuit à priori).

Bref, pour flasher le dongle, je vous redirige vers la procédure officielle (miroir ici) qui va finir par vous rediriger sur cette procédure (archive ici).

Evidemment, il a fallu que je dise que j’avais de la chance pour que le ZLinky ne me renvoie plus que les mêmes valeurs en boucle … Je ne peux que difficilement vous conseiller ce dongle, beaucoup trop instable, de cheveux arrachés et de temps perdu …

Conclusion

Cet article permet de rediriger vers les procédures officielles (pas besoin de paraphraser ce qui est déjà fait). Peut-être qu’il vous servira, pour ma part, il me permettra de retrouver simplement les procédures à suivre pour flasher à nouveaux ces appareils dans le futur.

Commentaires




Ailleurs sur le Web


Home Screen Advantage - Infrequently Noted

A slide from Apple's presentation in Apple v. Epic, attempting to make the claim Epic could have just made a PWA if they didn't like the App Store terms because circa '20 Safari was so capable. LOL. Je n'aurai pas assez de popcorn pour le DM…

via Shaarli le 28 février 2024

800 employés de la poste britannique condamnés à tort à cause d’un logiciel défectueux - Next

En droit anglais et gallois, les ordinateurs sont considérés comme « fiables », sauf preuve du contraire, souligne The Guardian, ce qui « renverse la charge de la preuve normalement appliquée dans les affaires pénales ». Euh, ok !

via Shaarli le 15 janvier 2024

Mise en place et étude d'un Honey Pot SSH (Cowrie) | | Sécurité Informatique | IT-Connect (it-connect.fr) – wallabag

Article intéressant. C'est clairement dans la même démarche que mon article sur les phishing.

via Shaarli le 09 janvier 2024

Généré avec openring


Recettes de gourmands


Glace Spéculoos

Un excellent moyen de se rafraîchir tout en gourmandise.

via cooking.pofilo.fr le 23 juillet 2024

Purée

Un minimum d'ingrédients mais une texture parfaite.

via cooking.pofilo.fr le 15 mai 2024

Meringues

Pratique pour utiliser des blancs d'œufs, car les ingrédients sont au tant pour tant.

via cooking.pofilo.fr le 21 mars 2024

Généré avec openring