[Modul] Zigbee2MQTT

Moin Kai,
so die angekündigte Zusammenfassung der Wichtigkeit nach:

  1. Kein Z2M_Command wird an Z2M weiter geleitet. Ich benutze für Helligkeit von Leuchtmitteln immer Z2M_Command mit Helligkeit und Transition dann habe ich auch noch ein Script das die Grundeinstellungen für die meisten Geräte vornimmt, also Emfindlichkeit oder Grundhelligkeit, aber im Z2M log sehe ich das kein Befehl ankommt, d.h. Lichtsteuerung geht nicht mehr.

  2. Neu ist ja das die Eigenschaften der Geräte abgefragt werden um z.B. die Limits der Profile richtig einzustellen. Einige Geräte liefern aber mehr Daten als nach den Eigenschaften zu erwarten sind. Folge ist das die zusätzlichen Werte nicht in IPS eingetragen werden und das IPS.Log wird von einer Unzahl von Fehlermeldungen wie:

12.12.2021 17:57:35 | 53975 | WARNING | Zigbee2MQTTDevice    | Please Contact Module Developer. Undefined Variable angle_x_absolute

geflutet wird. Schade ist das die zusätzlichen Werte jetzt verloren gehen. Schöner wäre nur eine Debug-Meldung damit das IPS.Log nicht ins unendliche vergrößert wird. Anbei dumps vom Vibrations-Sensor, Dimmer-Switch und Heiman Rauchmelder.

  1. Hue-Ambiente-E27 hatte Z2M_ColorTemp aber bei RequestAction für die Helligkeit kam:
Warning: Objekt mit Ident Z2M_ColorTempKelvin wurde nicht gefunden in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/libs/Zigbee2MQTTHelper.php on line 604
RESULT:
12.12.2021 18:21:21 | 36517 | ERROR   | FlowHandler          | Kann Daten nicht zur Instanz #36517 weiterleiten: 
Warning: Objekt mit Ident Z2M_ColorTempKelvin wurde nicht gefunden in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/libs/Zigbee2MQTTHelper.php on line 604

erst als ich die Eigenschaften neu ausgelesen hatte, somit war ColorTempKelvin auch vorhanden, kam die Meldung nicht mehr.

  1. Ganz neu ist das Verhalten einer Gruppe. Ich habe im Flur eine Gruppe aus 2 Hue-Ambiente-E27 die ich nur in der Helligkeit steuere. Wenn ich RequestAction mit Helligkeit 50 für die Gruppe ausführe bekomme ich im IPS.log
RESULT:
12.12.2021 18:27:52 | 21375 | ERROR   | FlowHandler          | Kann Daten nicht zur Instanz #21375 weiterleiten: 
Warning: Objekt mit Ident Z2M_ColorTemp wurde nicht gefunden in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/libs/Zigbee2MQTTHelper.php on line 601

Warning: Objekt mit Ident Z2M_ColorTempKelvin wurde nicht gefunden in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/libs/Zigbee2MQTTHelper.php on line 604

Die Gruppe (ID 21375) hat auch kein ColorTemp oder ColorTempKelvin warum wird es zu Z2M geschickt?

Viel Spaß Ralf

dimme switch.zip (3,6 KB)
heiman.zip (3,3 KB)
vibration.zip (2,8 KB)

Guten Morgen,
5. Die Lidl-Steckdosenleisten läßt sich nicht mehr schalten. Ambei Debug von Instanz. In Z2M kommt wieder nichts an. Geschaltet habe ich per RequestAction(STATE2, true) und auch mit Befehl testen.

Ralf

steckdosenleiste.zip (3,4 KB)

Kannst du mir mal deinen Aufruf schicken? Das sollte eigentlich funktionieren.

Bei dem Dimmer Switch fehlt bei den Exposes leider der „counter“, daher kommen hier die Meldungen, dass ist ein Bug in Z2M direkt. Vielleicht hat @Burki24 Lust dafür einen PR in Z2M fertig zu machen.

Bei dem Vibrationssensor fehlt das Payload mit den Daten im Debug. Da kann ich nicht erkennen, weswegen die Meldungen kommen. Ich kann nur raten, da du eine Meldung aus dem Log kopiert hast.
Auch hier fehlt „angle_x_absolute“ in den Exposes, dies scheint ebenfalls ein Fehler in Z2M zu sein.

Bei dem Heiman Rauchmelder fehlen die Werte Exposes ebenfalls:


12.12.2021 15:27:33 | 47629 | WARNING | Zigbee2MQTTDevice    | Please contact module developer. Undefined variable: enrolled
12.12.2021 15:27:33 | 47629 | WARNING | Zigbee2MQTTDevice    | Please contact module developer. Undefined variable: restore_reports
12.12.2021 15:27:33 | 47629 | WARNING | Zigbee2MQTTDevice    | Please contact module developer. Undefined variable: supervision_reports
12.12.2021 15:27:33 | 47629 | WARNING | Zigbee2MQTTDevice    | Please contact module developer. Undefined variable: trouble

Dies führt dazu, dass ich diese nicht bekommen und die Variablen nicht anlegen kann.

@Burki24 hättest du Lust das in Z2M zu fixen? Du hast das so gut im Griff. :smiley:

Da müsste eig. auch beim Modul Update passieren. Das hatte bei mir auch funktioniert.

Schau dazu mal bitte im Debug, da wirst du als Antwort ein Payload bekommen, welches ColorTemp enthalten wird, oder?

Grüße,
Kai

Hier sehe ich es jetzt im Debug.
Das Z2M Topic wird nicht mehr automatisch davor gesetzt.
Du musst es selbst davor schreiben: zigbee2mqtt/SZ3/Steckdosenleiste wäre das Topic, welches du verwenden willst.

Das wird auch das Problem aus deinem ersten Post mit der Lichtsteuerung lösen.

Grüße,
Kai

Moin Kai,
danke für die Info werde ich mal versuchen.

Zur Gruppe: Du hattest recht wenn ich die Lampen mit RequestAction steuere bekommt die Gruppe einen PayLoad mit ColorTemp und bei Abfrage der Eigenschaften kommt das nicht vor und es gibt den Fehler. Nicht schön aber wenigstens erklärlich.

Beim Dimmer-Switch sind Duration und Brightness wichtiger als Counter da man die sinnvoll in IPS einsetzen kann. Bei Counter fehlt vermutlich eine Konfigurationsmöglichkeit für den Dimmer wo man sagen kann wie das TimeOut sein soll.

Ralf

Es fehlt aber

Schaue ich mir an.

Die beiden fehlen dann aber leider auch in den Exposes. Da muss Z2M nachbessern.

Grüße,
Kai

Moin Kai,
die Befehle arbeiten ja nicht mit Topics sondern Instanzen und die Instanz kann ich ja nicht ändern weil sonst die Werte von Z2M nicht mehr ankommen. Wenn ich bei Command

    public function Command(string $topic, string $value)
    {
        $Data['DataID'] = '{043EA491-0325-4ADD-8FC2-A30C8EEB4D3F}';
        $Data['PacketType'] = 3;
        $Data['QualityOfService'] = 0;
        $Data['Retain'] = false;
        $Data['Topic'] = $this->ReadPropertyString('MQTTBaseTopic') . '/' . $this->ReadPropertyString('MQTTTopic') . '/' . $topic;
        $Data['Payload'] = $value;
        $DataJSON = json_encode($Data, JSON_UNESCAPED_SLASHES);
        $this->SendDebug(__FUNCTION__ . ' Topic', $Data['Topic'], 0);
        $this->SendDebug(__FUNCTION__ . ' Payload', $Data['Payload'], 0);
        $this->SendDataToParent($DataJSON);
    }

benutze gehen die Z2M_Command Befehle wieder. Ich weiß nur nicht ob es Nebeneffekt gibt.

Ralf

Woher hast du den Code? Der Passt doch gar nicht.

    public function Command(string $topic, string $value)
    {
        $Data['DataID'] = '{043EA491-0325-4ADD-8FC2-A30C8EEB4D3F}';
        $Data['PacketType'] = 3;
        $Data['QualityOfService'] = 0;
        $Data['Retain'] = false;
        $Data['Topic'] = $topic;
        $Data['Payload'] = $value;
        $DataJSON = json_encode($Data, JSON_UNESCAPED_SLASHES);
        $this->SendDebug(__FUNCTION__ . ' Topic', $Data['Topic'], 0);
        $this->SendDebug(__FUNCTION__ . ' Payload', $Data['Payload'], 0);
        $this->SendDataToParent($DataJSON);
    }

Das wäre der richtige. Und da kannst du dann ja Z2M_Command(12345, 'zigbee2mqtt/SZ3/Steckdosenleiste, $Payload) nutzen.

Ich gucke mir das aber nochmal genauer an. Ich muss da nochmal was umbauen denke ich. Dein Hinweis ist gut, eigentlich muss das Base Topic aus der Instanz übernommen werden, wird es es aber nicht mehr. Da ich sonst Probleme bei dem Abrufen der Exposes bekommen habe.
Ich lasse mir das noch was besseres einfallen.

Grüße,
Kai

So willst du es mit der aktuellen Beta Version nochmal versuchen, dann sollte es wieder wie früher funktionieren.

Grüße,
Kai

Moin Kai,
die Funktion hatte ich geändert und damit gingen dann auch meine Commands wieder. Ich habe aber mittlerweile auch bemerkt da getDeviceInfo dann nicht mehr geht. Besser wäre vielleicht ein CommandInternal wo Du das komplette Topic übergeben musst und ein Command das wie bisher aus BaseTopic und Topic der Instanz das Topic erzeugt.

Ralf

Genau das habe ich eben gebaut. :smiley:
Das sollte jetzt in der aktuellen Beta Version wieder alles funktionieren.

Grüße,
Kai

Wie heißt es so schön? „2 Dumme 1 Gedanke“ :smiley:

Leider liefert dein getDeviceInfo in Z2M jetzt:

error 2021-12-13 11:37:50: Entity 'symcon/Flur unten/Bad Hue' is unknown

Auch wenn ich da das zigbee2mqtt einbaue kommt:

error 2021-12-13 11:40:39: Entity 'symcon/zigbee2mqtt/Flur unten/Anwesenheit 4' is unknown

Das scheint jetzt ein bißchen zu hoch für mich zu sein. Steckdosenleiste mit Befehl testn schalten geht auch nicht. Hier vermute ich das es vielleicht daran liegt das die DeviceInfos nicht abgerufen werden können.

Ralf

Mein Fehler, kannst du die aktuelle Beta Version nochmal testen?

Grüße,
Kai

Moin,
hat sich nichts geändert. Licht Helligkeit mit Z2M_Command geht. Abfrage von den deviceInfos und schalten der Steckdose per Befehl testen und RequestAction auf Status 2 geht nicht.

Ralf

Kannst du davon mal ein Debug posten?

Grüße,
Kai

Hi,
interesant was RequestAction von Steckdosenleiste angeht ist „error 2021-12-13 14:12:13: No converter available for ‚l2‘ (ON)“ aus dem Z2M.Log. Kann es vielleicht sein das es state_l2 heißen muss?

Anbei Debug, auch von Steckdosenleiste, dürfte aber wenig hilfreich sein. Außer der Anzeige passiert weder in Symcon noch Z2M etwas. Keine Warnung, kein Fehler.

Ralf

dump.zip (454 Bytes)

Das ist richtig. Ich habe es jetzt gefixt.

Dein Gerät heißt „SZ3/Steckdosenleiste“?

Edit: Der andere Fehler sollte auch gefixt sein.

Grüße,
Kai

Moin Kai,
ja SZ3 = Schlafzimmer 3 = das 16qm SChlafzimmer von meinem Hund:-)

DeviceInfo scheint jetzt zu gehen:-) Dauert aber einige Zeit bis die Antwort kommt. Es sieht so aus als wenn beim Start jetzt alle Infos abgerufen werden.

Befehl testen bei der Steckdosenleiste klappt laut Z2M auch ABER es wird nicht in den Variablen von IPS angezeigt. Bei RequestAction wird geschaltet und Anzeige aktualisiert. Muss ich mir noch henauer ansehen. Auf jeden Fall ein ziemlicher Schritt nach vorne.

info  2021-12-13 14:49:16: MQTT publish: topic 'zigbee2mqtt/SZ3/Steckdosenleiste', payload '{"linkquality":72,"state":"OFF","state_l1":"ON","state_l2":"OFF","state_l3":"ON"}'

Ralf

Moin,

hab grade das update auf die neuster version gemacht, seit dem kommt nur noch folgender fehler:

13.12.2021, 17:36:29 | FlowHandler | Kann Daten nicht zur Instanz #28320 weiterleiten:
Warning: Cannot auto-convert value for parameter Value in C:\ProgramData\Symcon\modules.store\info.schnittcher.ips.zigbee2mqtt\libs\Zigbee2MQTTHelper.php on line 684
RESULT:

Der Fehler kommt bei allen zigbee2mqtt Instanzen
Wurde da etwas geändert?

Swen

Geh erstmal eine Version zurück, schaue ich mir an.

Grüße,
Kai