Le problème
Aujourd’hui, le lien entre un appareil Zigbee2mqtt et son équivalent dans Gladys repose sur le nom de l’appareil (le friendly_name défini dans Zigbee2mqtt).
Conséquence : si on renomme un appareil depuis l’interface de Zigbee2mqtt, Gladys ne le reconnaît plus. Il est traité comme un nouvel appareil, et l’ancien reste en base avec son ancien nom.
Trois effets concrets :
- Des doublons apparaissent dans les listes d’appareils, notamment au moment de créer une scène ou d’ajouter un composant à un dashboard — on ne sait plus lequel est le bon.
- Les scènes existantes cassent silencieusement. Elles continuent de pointer sur l’ancien appareil, qui ne reçoit plus aucune donnée. Aucun message d’erreur n’est affiché, la scène ne se déclenche simplement plus.
- L’historique est coupé en deux. Les mesures d’avant le renommage restent sur l’ancien appareil, celles d’après sont sur le nouveau. Les graphiques repartent de zéro.
Le problème a été remonté sur le forum ici : Nettoyage de la base de données des appareils
À noter : renommer un appareil depuis Gladys ne pose aucun problème, c’est bien géré. C’est uniquement le renommage côté Zigbee2mqtt qui casse le lien.
Le contournement actuel
- Choisir un nom définitif dans Zigbee2mqtt au moment de l’appairage, et ne plus y toucher ensuite.
- Renommer uniquement depuis Gladys, ce qui n’a aucun impact sur le lien.
- Si le mal est fait : supprimer manuellement l’ancien appareil depuis Intégrations → Zigbee2mqtt → Appareils, puis recréer les scènes concernées.
Ça fonctionne, mais ça suppose de connaître le piège à l’avance — ce qui n’est le cas de personne la première fois.
La fonctionnalité demandée
Que Gladys suive le renommage automatiquement, sans créer de doublon et sans casser les scènes existantes.
Deux approches possibles, complémentaires :
1. Écouter l’événement de renommage de Zigbee2mqtt
Zigbee2mqtt publie déjà un événement device_renamed contenant l’ancien et le nouveau nom. Gladys pourrait s’y abonner et mettre à jour la référence de l’appareil à la volée. C’est un correctif ciblé, sans migration de données, qui règle le cas du renommage effectué pendant que Gladys tourne.
2. S’appuyer sur l’adresse Zigbee (IEEE address) plutôt que sur le nom
C’est la solution de fond : l’adresse IEEE est l’identifiant matériel de l’appareil, elle ne change jamais, quel que soit le nom qu’on lui donne. Gladys récupère déjà cette adresse et l’affiche dans la fiche de l’appareil, mais ne s’en sert pas pour l’identification. Cette approche couvre aussi les cas que l’événement ne couvre pas (renommage effectué alors que Gladys est arrêté, par exemple). En contrepartie, elle demande une migration des appareils Zigbee existants.
Bénéfice
Renommer un appareil est une opération banale, qu’on fait naturellement en réorganisant son installation. Aujourd’hui c’est une opération à risque, dont les conséquences n’apparaissent que plus tard, quand une scène ne se déclenche plus. Cette évolution supprimerait complètement le piège.
