Bonjour, j’ai fait une tentative de sauvegarde des 3 informations nécessaires à restaurer après un backup sur z2m.
Je pense que pour tester il suffit de :
Configurer une instance Gladys avec z2m
Arrêter Gladys
Supprimer/arrêter le container docker z2m
Déplacer/supprimer les informations du container
Démarrer Gladys
Vérifier que le fichier /var/lib/gladysassistant/zigbee2mqtt/z2m/configuration.yaml contient les mêmes « network_key / pan_id / channel » qu’avant
Vérifier que les devices déjà enregistrés répondent toujours
N’ayant pas de dongle z2m, j’ai fait le dev à l’aveugle.
Je recommande de tester sur un environnement de test, plutôt que sacrifier votre « prod ».
ça va faire plaisir à du monde ça ! Merci beaucoup @AlexTrovato.
Au besoin, si personne se dévoue je ferais un test de mon côté, c’est vraiment une fonctionnalité importante.
Est-ce que tu gère le cas des instances existantes qui ont pas les paramètres en DB pour l’instant mais qui suite à une mise à jour devront sauvegarder cette clé ?
si aucune information n’est stockée en DB : création du container avec des valeurs générées par l’image, puis lecture de ces valeurs pour sauvegarde en DB
si les valeurs sont en DB : création du container avec les valeurs stockées
si le container z2m existe
sauvegarde en DB (override si les variables existent déjà)
La PR est pour l’instant uniquement sur mon espace perso
j’en ai profité pour modifier quelques lourdeurs dans les tests, et quelque logs.
Les cas que tu décris ci-dessus c’est si jamais l’utilisateur demande d’installer un container Z2M ?
Si je restaure une sauvegarde sur une instance Gladys vide, est-ce que le service va relancer les containers ?
A tester sinon, moi ça me parait bien !
Sinon je sais pas ce que t’en pense, mais j’ai jamais été fan de mettre du code bash dans Gladys (c’est pas compté dans les unit-tests du coup, c’est un peu bancal)
Je parle du fichier server/services/zigbee2mqtt/docker/gladys-z2m-zigbee2mqtt-env.sh, à mon sens ça devrait être un fichier JS ! Bon ça concerne pas forcément cette PR mais typiquement si on pouvait le mettre en JS à un moment ça serait pas mal ^^
On est obligé d’installer un container Z2M via Gladys actuellement.
Oui, si les conditions car ce sont les variables en db qui conditionnent la création des containers.
Si le container z2m est déjà la, il mettra a jour les valeurs networkId et les autres dans le container z2m et le redémarre, seulement si elles sont différentes.
EDIT : pour les scripts bash, je suis en train de migrer service par service.
Pour info, en général, je génère une image de test
Je suis en train d’en générer une plus à jour sur le core commun (intégrer les dernière modifications), elle devrait être dispo d’ici 1 heure.