Bouton pour réinitialiser l'intégration Zigbee2Mqtt

L’intégration Zigbee2mqtt dispose d’un bouton « Activer/Désactiver » qui arrête les containers, mais ne nettoie ni les variables en base ni les fichiers sur disque. Il n’existe aucun moyen de repartir de zéro sans intervention manuelle. L’idée est d’ajouter un bouton « Réinitialiser » sur la page setup, avec confirmation (comme sur matterbridge/node-red), qui effectue un reset complet : déconnexion, suppression des variables, suppression des fichiers et containers.

Procédure de reset :

  1. Appeller this.disconnect() (arrêt containers + déconnexion MQTT)
  2. Supprimer toutes les variables de config en base via this.gladys.variable.destroy(key, this.serviceId) pour chaque clé de CONFIGURATION dans constants.js :
  • ZIGBEE2MQTT_DRIVER_PATH, Z2M_BACKUP, ZIGBEE_DONGLE_NAME, Z2M_MQTT_MODE, Z2M_TCP_POR, Z2M_MQTT_URL
  • Z2M_MQTT_USERNAME_KEY, Z2M_MQTT_PASSWORD_KEY
  • GLADYS_MQTT_USERNAME_KEY, GLADYS_MQTT_PASSWORD_KEY
  • DOCKER_MQTT_VERSION, DOCKER_Z2M_VERSION
  1. Supprimer le dossier zigbee2mqtt/ sur disque
  2. Réinitialiser l’état (discoveredDevices, usbConfigured, flags de status, etc.)
  3. Émettre un status event via this.emitStatusEvent()

:warning: Uniquement disponible dans le mode “Installation depuis Gladys”

Proposition de design + messages

Avec confirmation

Pour les devices Gladys liées à cette intégration, je pense qu’il faut les laisser (sinon, on risque de casser des scènes ?)

Pour ce que ça vaut, ça me semble nickel. C’est très clair !

Au niveau backup Gladys +, si on restaure une version avec un ancien dongle, ça ne risque rien? Ou au contraire, c’est une sécurité supplémentaire car on pourrait restaurer en cas de mauvaise manipulation ?

Pour le coup à tester, je ne sais pas comment ça réagit. Dans les cas qu’on a vu sur le forum, c’était un autre cas : changement de dongle avec des fichiers déjà sur le disque.

Dans le cas de la restauration Gladys Plus, on ne restaure pas les fichiers Zigbee2mqtt, on fournit juste à Zigbee2mqtt de quoi recommencer avec la même configuration, c’est pas exactement pareil

1 « J'aime »

Pour moi, on sauvegarde tout le contenu du dossier zigbee2mqtt (donc configuration.yaml, database.db et coordinator_backup.json).

Mais la restauration teste si une nouvelle configuration est là. Si on restaure un backup fait avec un ancien dongle (alors qu’un nouveau dongle est branché et z2m pas initialisé), il faudra aussi utiliser ce bouton.