[BUG] Unterdrückungsgerät Zigbee

Bonsoir,
Ich habe aktuell ein blockierendes Problem mit Gladys.

Ich habe den freundlichen Namen auf der Zigbee-Seite umbenannt, um besser zu verstehen, welches Gerät welches auf dem Schema ist.

Aber zu meiner großen Überraschung hatte ich auf Gladys-Seite keine Rückmeldung mehr von meinen Geräten. Dann habe ich mir die Zeit genommen, auf der Integrationsseite (IHM) nachzuschauen, und dort stelle ich fest, dass sie als neue Geräte betrachtet werden :o.

Warum wurde die Entscheidung getroffen, sich auf den freundlichen Namen zu stützen, anstatt auf die IEEE-Adresse?

Nun, in dem Moment dachte ich mir, okay, egal, wir löschen die alten Geräte und fügen die neuen hinzu, aber da liegt der Hase im Pfeffer.
Wenn ich auf Gladys-Seite ein z2m-Gerät lösche, friert Gladys komplett ein und ich muss den RPI neu starten, damit alles wieder normal läuft.

Beim Klicken auf « Löschen » (das Lade-Symbol dreht sich ohne Rückmeldung):

Netzwerkseite:

htop:

Die Logs (nichts Schockierendes):

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 nach Aktualisierung der Seite (es läuft über eine Stunde ohne Ergebnis):

Auf der Gladys±Seite:

Habt ihr eine Idee @pierre-gilles & @cicoub13?

Gute Nacht :slight_smile:

Ich kann dir keine Auskunft über die Entscheidungen während der Entwicklung der Zigbee2mqtt-Integration geben, aber ich kann dir zum Einfrieren der Benutzeroberfläche Auskunft geben. Das ist ein bekanntes und „normales“ Problem der aktuellen Implementierung beim Löschen von Geräten.

Wenn du ein Gerät mit Zehntausenden oder Hunderttausenden von Zuständen löschen möchtest, hat die Datenbank Schwierigkeiten, alles auf einmal kaskadierend zu löschen, und es kann mehrere Minuten dauern, bis alles gelöscht ist, je nachdem, wie schnell deine Festplatte ist. In dieser Zeit friert die Instanz ein, weil die Datenbank beschäftigt ist (die gesamte Bandbreite deiner Festplatte wird durch das kaskadierende Löschen gesättigt).

Wir haben eine mittelfristige Lösung, aber das ist eine Entwicklung, darüber habe ich kürzlich hier im Forum gesprochen:

Das Einzige, was ich dir empfehlen kann, ist einfach zu warten :smiley:

Kann ich die States nicht einfach in der Datenbank bereinigen? :blush:

Ah ja, das funktioniert auch!

Als ich „warten“ sagte, meinte ich nicht, dass man warten soll, bis die Funktion entwickelt ist, sondern dass man auf den Button klickt und die 2 Minuten wartet, bis die Daten gelöscht sind :slight_smile:

Manuelles Löschen in der Datenbank wird genauso sein, die Datenbank wird auch blockiert sein

Danke für die Infos :slight_smile:

Ich komme nochmal auf dieses Thema zurück, ich habe einen Fix für diese Einschränkung entwickelt, damit es in Zukunft klarer ist :slight_smile:

Beim Löschen eines Geräts mit vielen Zuständen wird der Benutzer eine solche Meldung sehen:

Der PR:

Hallo @pierre-gilles,
Da ich Gladys schon lange nicht mehr verwendet habe, wollte ich den Status meiner ZigBee2MQTT-Geräte überprüfen.
Ich habe sie gelöscht und die Meldung über den großen Datenumfang erhalten, als ich den Helligkeitssensor entfernt habe.
Allerdings blieb die Meldung beim Löschen eines anderen Geräts an Ort und Stelle und befand sich somit in den Infos eines anderen Geräts.

Hups! Ich sehe den Fehler sehr gut, vielen Dank für den Hinweis. Es handelt sich nur um ein Anzeigeproblem, ich habe ein GitHub-Ticket erstellt: