Une option serait d’activer la persistance dans Mosquitto :
Tu en penses quoi ?
Une option serait d’activer la persistance dans Mosquitto :
Tu en penses quoi ?
ça me paraît faire sens !
J’espère juste qu’on ne va pas stocker trop.
Sinon il faut voir s’il n’y a pas le moyen de définir une taille maximale de stockage…
La persistence ne stocke que les messages retained (à vérifier), donc ça ne va pas trop stocker je pense
Je prends peut-être le problème à l’envers mais est-ce que ce ne serait pas à Gladys de stocker cette information ?
Effectivement c’est une option, après est-ce que c’est pas dommage de re-coder ce comportement qui est probablement utilisé par Zigbee2mqtt a plusieurs endroits, là ou Mosquitto le fait nativement ?
Je partirais plus sur l’activation de la persistence, ce qui nous évite d’autres bugs à l’avenir si Zigbee2mqtt se met à utiliser cette fonctionnalité à d’autres endroits.
Du coup j’ai commencé une PR sur le sujet :
J’en ai profité pour retirer le script shell qui lançait le container pour passer à du code Node. Au moins c’est testé du coup, et plus fiable.
J’en ai aussi profité pour traiter cette carte:
Ca accélère grandement les tests !
Tu as généré une image de test ?
Yes, je l’ai testé partiellement pour l’instant mais ça a l’air de fonctionner !
Image Docker:
gladysassistant/gladys:fix-zigbee2mqtt-disconnect-bug
Testé en réel, la migration a fonctionné avec succès !
2023-04-07T04:20:42+0200 <info> init.js:38 (Zigbee2mqttManager.init) Zigbee2mqtt USB dongle attached to /dev/ttyUSB0
2023-04-07T04:20:42+0200 <info> checkForContainerUpdates.js:14 (Zigbee2mqttManager.checkForContainerUpdates) Checking for current installed versions and required updates...
2023-04-07T04:20:42+0200 <info> checkForContainerUpdates.js:18 (Zigbee2mqttManager.checkForContainerUpdates) MQTT container: update #3 of the container required...
2023-04-07T04:20:42+0200 <info> checkForContainerUpdates.js:35 (Zigbee2mqttManager.checkForContainerUpdates) MQTT container: update #3 of the container done
2023-04-07T04:20:42+0200 <info> checkForContainerUpdates.js:40 (Zigbee2mqttManager.checkForContainerUpdates) Z2M container: update #3 of the container required...
2023-04-07T04:20:43+0200 <info> checkForContainerUpdates.js:57 (Zigbee2mqttManager.checkForContainerUpdates) Z2M container: update #3 of the container done
2023-04-07T04:20:43+0200 <info> installMqttContainer.js:29 (Zigbee2mqttManager.installMqttContainer) MQTT broker is being installed as Docker container...
2023-04-07T04:20:43+0200 <info> installMqttContainer.js:30 (Zigbee2mqttManager.installMqttContainer) Pulling eclipse-mosquitto:2 image...
2023-04-07T04:20:46+0200 <info> installMqttContainer.js:34 (Zigbee2mqttManager.installMqttContainer) Preparing broker environment...
2023-04-07T04:20:46+0200 <info> installMqttContainer.js:41 (Zigbee2mqttManager.installMqttContainer) Writing Mosquitto config file in /var/lib/gladysassistant/zigbee2mqtt/mqtt/mosquitto.conf
2023-04-07T04:20:46+0200 <info> installMqttContainer.js:50 (Zigbee2mqttManager.installMqttContainer) Creating container with data in "/var/lib/gladysassistant" on host...
2023-04-07T04:20:47+0200 <info> installMqttContainer.js:64 (Zigbee2mqttManager.installMqttContainer) MQTT broker is restarting...
2023-04-07T04:20:52+0200 <info> installMqttContainer.js:72 (Zigbee2mqttManager.installMqttContainer) Creating user/pass...
2023-04-07T04:20:53+0200 <info> installMqttContainer.js:81 (Zigbee2mqttManager.installMqttContainer) MQTT broker is restarting...
2023-04-07T04:20:59+0200 <info> installMqttContainer.js:86 (Zigbee2mqttManager.installMqttContainer) MQTT broker container successfully started and configured
2023-04-07T04:20:59+0200 <info> installZ2mContainer.js:34 (Zigbee2mqttManager.installZ2mContainer) Zigbee2mqtt is being installed as Docker container...
2023-04-07T04:20:59+0200 <info> installZ2mContainer.js:35 (Zigbee2mqttManager.installZ2mContainer) Pulling koenkk/zigbee2mqtt:latest image...
2023-04-07T04:21:02+0200 <info> installZ2mContainer.js:38 (Zigbee2mqttManager.installZ2mContainer) Configuration of Device /dev/ttyUSB0
2023-04-07T04:21:02+0200 <info> installZ2mContainer.js:43 (Zigbee2mqttManager.installZ2mContainer) Creation of container...
2023-04-07T04:21:03+0200 <info> installZ2mContainer.js:46 (Zigbee2mqttManager.installZ2mContainer) Zigbee2mqtt successfully installed and configured as Docker container
2023-04-07T04:21:03+0200 <info> installZ2mContainer.js:59 (Zigbee2mqttManager.installZ2mContainer) Preparing Zigbee2mqtt environment...
2023-04-07T04:21:03+0200 <info> installZ2mContainer.js:72 (Zigbee2mqttManager.installZ2mContainer) Zigbee2mqtt container is starting...
2023-04-07T04:21:08+0200 <info> installZ2mContainer.js:78 (Zigbee2mqttManager.installZ2mContainer) Zigbee2mqtt container successfully started
2023-04-07T04:21:08+0200 <info> connect.js:14 (Zigbee2mqttManager.connect) Connecting Gladys to mqtt://localhost:1884 MQTT broker...
2023-04-07T04:21:09+0200 <info> connect.js:24 (MqttClient.<anonymous>) Connected to MQTT container mqtt://localhost:1884
2023-04-07T04:21:09+0200 <info> subscribe.js:12 (Zigbee2mqttManager.subscribe) Subscribing to MQTT topic zigbee2mqtt/#
Dossier /var/lib/gladysassistant/zigbee2mqtt/mqtt
:
Redémarrer Mosquitto ne semble plus gêner Gladys !
@AlexTrovato A priori pas de risque d’avoir un disque qui grossit à vue d’oeil :
On va aussi gagner en fiabilité vu que du coup si Mosquitto redémarre pendant que Gladys est offline et que des messages sont dans le broker, on ne les perdra pas
Bug corrigé dans Gladys Assistant v4.20 :