[BUG] Suppression device Zigbee

Bonsoir,
J’ai actuellement un soucis bloquant côté Gladys.

J’ai renommé le friendly name côté zigbee pour mieux comprendre quel device est le quel sur le schema.

Sauf qu’a ma grande surprise, côté Gladys je n’avais plus aucune remonté de mes devices. J’ai alors pris le temps de regarder côté intégration (IHM), et la je m’apperçois qu’ils sont considéré comme des nouveaux device :o.

Pourquoi il à été fait le choix de se baser sur le friendly name plutôt que sur l’adresse IEEE ?

Bon sur le moment je me suis dis, bon tant pis on va delete les anciens appareil et ré ajouter les new, mais le hic est là.
Lorsque je delete côté gladys un device z2m j’ai tout gladys qui freeze et je suis obligé de restart de RPI pour que cela revienne à la normal.

Au clic sur “supprimer” (le spinner tourne sans retour):

côté réseau :

htop :

les logs (rien de choquant) :

2022-04-04T20:50:27+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt device Prise 1, feature indicator_mode not configured in Gladys.
2022-04-04T20:50:27+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt device Prise 1, feature linkquality not configured in Gladys.
2022-04-04T20:50:27+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt device Prise 1, feature power_outage_memory not configured in Gladys.
2022-04-04T20:51:00+0200 <info> scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Checking calendar triggers at Mon, 04 Apr 2022 18:51:00 GMT
2022-04-04T20:52:00+0200 <info> scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Checking calendar triggers at Mon, 04 Apr 2022 18:52:00 GMT
2022-04-04T20:52:07+0200 <error> handleMqttMessage.js:97 () Failed to convert value for device Prise 2: Error: Zigbee2mqqt don't handle value "UNLOCK" for feature "mode".
    at convertValue (/src/server/services/zigbee2mqtt/utils/convertValue.js:55:17)
    at /src/server/services/zigbee2mqtt/lib/handleMqttMessage.js:93:26
    at Array.forEach (<anonymous>)
    at Zigbee2mqttManager.handleMqttMessage (/src/server/services/zigbee2mqtt/lib/handleMqttMessage.js:86:41)
    at MqttClient.<anonymous> (/src/server/services/zigbee2mqtt/lib/connect.js:53:12)
    at MqttClient.emit (events.js:400:28)
    at MqttClient._handlePublish (/src/server/services/zigbee2mqtt/node_modules/mqtt/lib/client.js:1277:12)
    at MqttClient._handlePacket (/src/server/services/zigbee2mqtt/node_modules/mqtt/lib/client.js:410:12)
    at work (/src/server/services/zigbee2mqtt/node_modules/mqtt/lib/client.js:321:12)
    at processTicksAndRejections (internal/process/task_queues.js:77:11)
2022-04-04T20:52:07+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt device Prise 2, feature indicator_mode not configured in Gladys.
2022-04-04T20:52:07+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt device Prise 2, feature linkquality not configured in Gladys.
2022-04-04T20:52:07+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt device Prise 2, feature power_outage_memory not configured in Gladys.
2022-04-04T20:52:07+0200 <error> handleMqttMessage.js:97 () Failed to convert value for device Prise 2: Error: Zigbee2mqqt don't handle value "UNLOCK" for feature "mode".
    at convertValue (/src/server/services/zigbee2mqtt/utils/convertValue.js:55:17)
    at /src/server/services/zigbee2mqtt/lib/handleMqttMessage.js:93:26
    at Array.forEach (<anonymous>)
    at Zigbee2mqttManager.handleMqttMessage (/src/server/services/zigbee2mqtt/lib/handleMqttMessage.js:86:41)
    at MqttClient.<anonymous> (/src/server/services/zigbee2mqtt/lib/connect.js:53:12)
    at MqttClient.emit (events.js:400:28)
    at MqttClient._handlePublish (/src/server/services/zigbee2mqtt/node_modules/mqtt/lib/client.js:1277:12)
    at MqttClient._handlePacket (/src/server/services/zigbee2mqtt/node_modules/mqtt/lib/client.js:410:12)
    at work (/src/server/services/zigbee2mqtt/node_modules/mqtt/lib/client.js:321:12)
    at processTicksAndRejections (internal/process/task_queues.js:77:11)
2022-04-04T20:52:07+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt device Prise 2, feature indicator_mode not configured in Gladys.
2022-04-04T20:52:07+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt device Prise 2, feature linkquality not configured in Gladys.
2022-04-04T20:52:07+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt device Prise 2, feature power_outage_memory not configured in Gladys.
2022-04-04T20:52:07+0200 <error> handleMqttMessage.js:97 () Failed to convert value for device Prise 2: Error: Zigbee2mqqt don't handle value "UNLOCK" for feature "mode".
    at convertValue (/src/server/services/zigbee2mqtt/utils/convertValue.js:55:17)
    at /src/server/services/zigbee2mqtt/lib/handleMqttMessage.js:93:26
    at Array.forEach (<anonymous>)
    at Zigbee2mqttManager.handleMqttMessage (/src/server/services/zigbee2mqtt/lib/handleMqttMessage.js:86:41)
    at MqttClient.<anonymous> (/src/server/services/zigbee2mqtt/lib/connect.js:53:12)
    at MqttClient.emit (events.js:400:28)
    at MqttClient._handlePublish (/src/server/services/zigbee2mqtt/node_modules/mqtt/lib/client.js:1277:12)
    at MqttClient._handlePacket (/src/server/services/zigbee2mqtt/node_modules/mqtt/lib/client.js:410:12)
    at work (/src/server/services/zigbee2mqtt/node_modules/mqtt/lib/client.js:321:12)
    at processTicksAndRejections (internal/process/task_queues.js:77:11)
2022-04-04T20:52:07+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt device Prise 2, feature indicator_mode not configured in Gladys.
2022-04-04T20:52:07+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt device Prise 2, feature linkquality not configured in Gladys.
2022-04-04T20:52:07+0200 <warn> handleMqttMessage.js:100 () Zigbee2mqtt device Prise 2, feature power_outage_memory not configured in Gladys.

Gladys après actualisation de la page (ça tourne pendant plus d’une heure sans résultat) :

Côté gladys + :

Une idée @pierre-gilles & @cicoub13 ?

Bonne soirée :slight_smile:

Je ne pourrais pas te répondre sur les choix lors du développement de l’intégration Zigbee2mqtt, en revanche je peux te répondre sur le freeze de l’UI, c’est une limite connue et « normal » de l’implémentation actuelle de la suppression d’appareil.

Lors que tu tentes de supprimer un appareil qui a des dizaines/centaine de milliers d’états, la DB galère un peu à supprimer en cascade tout d’un coup, et ça peut prendre plusieurs minutes à tout supprimer suivant la rapidité de ton disque. Pendant ce temps là, l’instance est freeze car la DB est occupée (toute la bande passante de ton disque est saturée par la suppression en cascade)

On a une solution à moyen terme mais c’est un développement, j’en parlais récemment ici sur le forum :

La seule chose que je peux te conseiller, c’est juste d’attendre :smiley:

1 « J'aime »

Je ne peut pas nettoyer en db les states sinon? :blush:

Ah oui ça marche aussi !

Quand je disais “attendre”, c’était pas attendre que la fonctionnalité soit développée, c’était cliquer sur le bouton et attendre les 2 minutes que ça supprime la data :slight_smile:

Supprimer manuellement en DB ça sera pareil, la DB sera bloquée aussi

Merci des infos :slight_smile:

1 « J'aime »

Je reviens sur ce sujet, j’ai développé un correctif pour cette limitation pour que ce soit plus clair à l’avenir :slight_smile:

Lors de la suppression d’un appareil avec beaucoup d’états, l’utilisateur verra ce genre de message:

La PR:

Salut @pierre-gilles,
N’ayant pas utilisé Gladys depuis longtemps, j’ai voulu faire le point sur mes appareils ZigBee2MQTT.
Je les ai supprimés et ai eu le message concernant le volume important de données quand j’ai enlevé le détecteur de luminosité.
Par contre, quand j’ai supprimé un autre appareil, le message est resté à sa place et s’est ainsi trouvé dans les infos d’un autre appareil.

Oups! Je vois très bien le bug, merci du retour. C’est juste un souci d’affichage, j’ai créé une issue Github: