[Modul] Zigbee2MQTT

Ich bekomme auch folgende Fehler nach Update auf IPS 6.0
25.08.2021, 22:10:10 | PHP | Error: Error: Uncaught Error: Call to undefined function Z2M_SwitchMode() in /-:1
Stack trace:
#0 {main}
thrown
Error in Script /- on Line 1
134 in IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php (call IPSLogger_Out)
33 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
121 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_PhpErrorHandler)
in IPSLogger_PhpFatalErrorHandler

Nachdem ich 6 Stunden gewartet hatte, waren im Konfigurator die Devices gelistet. Nach Neustart von IPS waren die wieder weg - ich warte mal bis morgen früh

Das kam nach einem Update von dem Zigbee2MQTT Modul.
Du musst nun die RequestAction Funktion nutzen.

Grüße,
Kai

Dann müsst ihr mal schauen wieso das nicht geht. Am besten bei Zigbee2MQTT direkt nachfragen.
Ich habe das Gerät nicht und kann es nicht testen.

Grüße,
Kai

Es muss das Topic „bridge“ eingetragen werden.

Das sieht danach aus, dass du kein Gerät ausgewählt hast.

Grüße,
Kai

Ich sehe aktuell keine Geräte im Konfigurator - siehe oben

  • nach ca 1,5 Stunden nach IPS Neustart sind die Geräte wieder gelistet

Außerdem kommt die Meldung
25.08.2021, 23:07:31 | FlowHandler | Kann Daten nicht zur Instanz #47279 weiterleiten:
Warning: First parameter must either be an object or the name of an existing class in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/Bridge/module.php on line 55

Warning: First parameter must either be an object or the name of an existing class in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/Bridge/module.php on line 59
RESULT:

und

25.08.2021, 23:07:31 | PHP | Error: Warning: First parameter must either be an object or the name of an existing class
Error in Script /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/Bridge/module.php on Line 59
134 in IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php (call IPSLogger_Out)
37 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
in IPSLogger_PhpErrorHandler
59 in modules/.store/info.schnittcher.ips.zigbee2mqtt/Bridge/module.php (call property_exists)
3 in /- (call ReceiveData)

Was ist im Konfigurator als Topic hinterlegt?

Grüße,
Kai

bridge

viele Grüße
Georg

Ich sehe gerade, die Fehler sind von der Instanz „Bridge“ diese Instanz kannst du löschen.

Grüße,
Kai

meinst Du die Zigbee2Mqtt Bridge ?
Ich habe mein System erstmal wieder auf die Vortagesversion mit IPS5.6 und altem zigbee2mqtt zurückgesetzt, da das System nach MQTT-Befehlen manchmal für 20-30 Minuten gehangen hat und das Zigbee-Modul abgehängt hat.
Morgen werde ich die Updates dann schrittweise machen und mal sehen, was das Problem verursacht

Sobald ich den Zigbee2Mqtt Configurator installiere, hängt das System für knapp ne halbe Stunde und im Log des Zigbee2Mqtt erscheint
error 2021-08-26 00:59:33: Not connected to MQTT server!
nachdem ich den Konfigurator wieder gelöscht habe, läufts wieder normal

Hast du die aktuelle Version vom Modul installiert?

Grüße,
Kai

ja, war aber auch noch auf Beta - jetzt habe ich die Release und das mit dem Konfigurator ist besser geworden - dauert nun nur noch ca 5 Minuten bis die Liste erscheint und das System wieder rund läuft.
beim Lidl Bewässerungscomputer habe ich nach dem Pairing dann diese Meldung:

{„message“:„interview_successful“,„meta“:{„description“:„Parkside smart watering timer“,„friendly_name“:„0x847127fffed30d42Z2MSymcon“,„model“:„PSBZS A1“,„supported“:true,„vendor“:„Lidl“},„type“:„pairing“}

aber Variablen werden nicht angelegt

als topic habe ich im Konfigurator „configurator“ eingetragen - wenn „bridge“ drinsteht dann hängt das System

Nachdem ich mit MQTTFX nun mit zigbee2mqtt/0x847127fffed30d42Z2MSymcon/set
{ „state“: „OFF“} bzw { „state“: „ON“} einmal einen Schaltbefehl losschickte, werden die Variablen angelegt.

Worauf läuft dein System?
Wenn du configurator dort einträgst, dann dürfte das ganze sowieso nicht funktionieren.

Wie viele Geräte hängen an dem MQTT Server? Hängt dort noch etwas anderes außer Zigbee2MQTT dran?
Denn wenn die Suche läuft, wird ein Filter deaktiviert (Workaround für einen Bug in einer Lib die IP-Symcon nutzt) und dann kommt in der Instanz ALLES an, was über MQTT bei dem MQTT Server ankommt.

Wenn du also an einem MQTT Server viele Geräte hängen hast, dann solltest du nun einen eigenen für Zigbee2MQTT anlegen.

Kannst du die Variable die nun angelegt worden ist auch schalten?

Grüße,
Kai

Hallo Kai,

System läuft in einer VM auf der Synology 918+ unter Ubuntu

komischerweise kommt trotz „configurator“ Eintrag alle Zigbee2mqtt Geräte in der Liste und zwar innerhalb weniger Minuten.
Ich habe noch Tasmota Geräte mit Mqtt laufen.
Insgesamt dürften es ca 10Tasmota und 10 Zigbee Geräte sein, die aktuell aktiv sind.

Vorher hatte ich die Beta installiert, da ging für einige Zeit nix mehr und die Suche dauerte bis zu 6 Stunden bis was in der Liste erschien. Das Ganze dann erneut bei Neustart des IPS.
Mit der Release läufts.

Die Variable läßt sich auch schalten.
Ich bekomme aber nur die Schaltvariable - die für den Timer kommt nicht ( was aber kein Problem ist).

Den Timer kann ich über MQTTFX setzen - aber ohne Rückmeldung vom Gerät.

Das mit dem erstmaligen Schalten per MQTTFX um die Variable zu bekommen hatte ich auch schonmal bei einer Ikea LED.

Wenn man am Gerät schaltet, oder wenn der Timer das Ventil wieder ausschaltet wird die Variable nicht aktualisiert.

viele Grüße

Georg

Also, das mit dem Konfigurator ist so wie schon mal beschrieben. Dort benötigt man eigentlich gar kein Topic, denn sobald die Suche los geht, wird eine Funktion deaktiviert, die dafür sorgt, dass die Instanz nicht alle Daten vom MQTT Server bekommt.
Da diese Funktion eine Library nutzt, welche nicht mit so großen Datenpaketen, wie Zigbee2MQTT sie sendet umgehen kann. Das ist kein Bug von IP-Symcon sondern von der Library, die IP-Symcon hier nutzt.
Wenn nun dein MQTT Server viele Nachrichten sendet und erhält, dann wird dadurch ALLES an den Konfigurator gesendet, dies wird dazu führen, dass sich evtl. eine Warteschlange bildet, die dein System komplett ausbremsen kann. Ich empfehle dir, dass du einen eigenen MQTT Server nur für Zigbee2MQTT erstellst.

Die Variablen werden bei Zigbee2MQTT immer erst dann angelegt, sobald Zigbee2MQTT diese sendet, deswegen gibt es in der Instanz vom Konfigurator auch den Button „Rufe Variablen ab“.

Wie sieht das mit dem Timer von dem Gerät im Zigbee2MQTT Frontend aus? Kannst du davon mal ein Screenshot posten? Und evtl. auch ein Debug, von der Geräteinstanz, wenn du die Variable über MQTT.fx verändert hast? Denn dann wird auch diese über Zigbee2MQTT sicherlich versendet, nur ist die Variable noch nicht im Modul eingepflegt, da bis jetzt noch keiner diese Variable angefragt hat. :slight_smile:

Grüße,
Kai

Wie soll das mit dem Konfigurator denn grundsätzlich funktionieren?

Ich kann beim Topic etwas eintragen oder auch nicht, gefunden wird nie ein Gerät. Das Gateway ist explizit für Zigbee und auch korrekt ausgewäht.


Update
Im Debug vom Konfigurator fließen fröhlich Daten.

Wenn ich aktualisieren drücke, dann kommt aber scheinbar nichts zurück:


Ich hätte zumindest erwartet, wenn ich die Instanzen manuell anlegen, was ohne Probleme funktioniert, dass der Konfigurator sie anzeigt. Es sind ja eigentlich „seine Instanzen“. Die Variablen vom jeweiligen Gerät werden angelegt, so wie das Z2M etwas vom weiterleitet.

Bei den Aquara wird „Beleuchtungsstärke“ und „Beleuchtungsstärke Lux“ angelegt, die werden auch so im Z2M angezeigt, haben aber den gleichen Wert.

Hi,
auch bridge als Topic beim Konfigurator angegeben? Der Konfigurator erkennt vermutlich das eine Instanz zu ihm gehört aber er findet die ID vermutlich nicht in der „Datenbank“ die er von Z2M bekommen hat. Anbei ein Bild wie es aussehen sollte.

Das Aqara BWMs zweimal den selben Wert von Z2M bekommen ist normal. Andere BWMs senden unterschiedliche Daten.

Ralf

OK, er bekommt ja keine Datenbank :thinking:.