[Modul] Zigbee2MQTT

Das wird erstellt, ruf mal die Geräteinformationen neu ab.
Evtl. kam da ein Payload von Z2M nicht an.

Wenn das dann nicht angelegt wird, dann poste mal bitte ein Debug.

Grüße,
Kai

Hi,
alle Variablen gelöscht, Informationen abgerufen = keine Bewegungsrichtung. Anbei debug.

30.12.2021 10:56:59 | 51072 | ERROR   | FlowHandler          | Kann Daten nicht zur Instanz #51072 weiterleiten: 
Warning: Objekt mit Ident Z2M_MotionDirection wurde nicht gefunden in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/libs/Zigbee2MQTTHelper.php on line 402

Ralf

dump.zip (4,1 KB)

Danke, das Profil fehlt! Baue ich ein. :slight_smile:
Und danke für eure Geduld und Hilfe mit dem Beta Modul!

Grüße,
Kai

@HarmonyFan die neue Beta Version ist online.

Grüße,
Kai

Hi,
Ich wage es kaum zu sagen: Es fehlen in den Profilen ‚_‘. Es heißt moving_forward/backward und standing_still

Ralf

Jetzt aber. :smiley: Ich sollte nicht immer so viel gleichzeitig machen.

Grüße,
Kai

Moin Kai,
an dieser Stelle stimmt „Jetzt aber“ wohl aber ich traue es mich gar nicht zu schreiben :innocent:

30.12.2021 12:17:20 | 56708 | ERROR   | FlowHandler          | Kann Daten nicht zur Instanz #56708 weiterleiten: 
Notice: Undefined variable: ProFileName in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/libs/Zigbee2MQTTHelper.php on line 1273

Fatal error: Uncaught ArgumentCountError: Too few arguments to function Zigbee2MQTTDevice::RegisterProfileFloat(), 7 passed in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/libs/Zigbee2MQTTHelper.php on line 1275 and exactly 8 expected in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/libs/VariableProfileHelper.php:120
Stack trace:
#0 /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/libs/Zigbee2MQTTHelper.php(1275): Zigbee2MQTTDevice->RegisterProfileFloat('Z2M.action_dura...', 'Clock', '', ' second', 0, 0, 2)
#1 /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/libs/Zigbee2MQTTHelper.php(1873): Zigbee2MQTTDevice->registerVariableProfile(Array)
#2 /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/libs/Zigbee2MQTTHelper.php(217): Zigbee2MQTTDevice->mapExposesToVariables(Array)
#3 /-(3): Zigbee2MQTTDevice->ReceiveData('{"DataID":"{7F7...')
#4 {main}
  thrown in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/libs/VariableProfileHelper.php on line 120

30.12.2021 12:17:37 | 56708 | ERROR   | FlowHandler          | Kann Daten nicht zur Instanz #56708 weiterleiten: 
Warning: Objekt mit Ident Z2M_Duration wurde nicht gefunden in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/libs/Zigbee2MQTTHelper.php on line 530

Beim Dimmer Switch. Debug im Anhang.

Ralf

dump.zip (4,6 KB)

War vorher ohne Unterstrich. Hat Koenkk ohne Warnung in den Exposes und dem Payload geändert. Konnte also keiner von uns wissen.

Hi,
ich schätze er hat es nur einheitlich mit anderen Sensoren gestaltet. Kann mir auch vorstellen das nicht alle Systeme ein Leerzeichen mögen.

Ralf

In Zigbee2MQTT gibt es ja für die Devices jeweils Szenen. Gibt es eine Möglichkeit diese per Symcon abzurufen oder zu speichern?
Variablen legt er dafür ja nicht an, da das ein internes Thema in Z2M ist und kein Payload beim Broker ankommt…
Da ich mich mit den Szenen jetzt schon länger rumschlage (habe dazu ein PHP Script geschrieben, was aber bei meinem RGBW Controller nicht funktioniert, da es keinen eigenständigen WW Kanal gibt) wäre ich an der Nutzung der Z2M Szenen sehr interessiert.

Grüße
Mirko

@Ingheuer

Die Szenen von z2m lassen sich aus Symcon heraus mit folgendem Befehl aufrufen:

Z2M_Command([ID der Instanz], 'set', '{"scene_recall": [ID der gewünschten Szene]}');

Danke hier an @Hagbard235 für die Unterstützung bei der Findung.

Gruß
Burkhard

@KaiS

Moin Kai,

kleines Problem mit der Topic-Findung. Ich habe 2 z2m-Netzwerke. Bisher laufen ja beide auf zwei getrennten internen MQTT-Brokern auf. Jetzt wollte ich diese zusammenführen und jedes mit einem eigenen Base-Topic versehen.

Was habe ich gemacht:
1.) in zigbee2mqtt das MQTT-Topic angepasst (zigbee2mqtt → zigbee2mqtt_Erdgeschoss)
2.) Im Konfigurator das Topic angepasst.
3.) in den Devices das Topic angepasst.

Jetzt kommt es zu folgender Situation:
Das Device kriegt die Daten von z2m richtig zugewiesen. Wenn ich aber das Device aus Symcon steuern will, sendet Symcon den Befehl immer an das alte Topic (zigbee2mqtt). Dadurch ist ein schalten z.B. eines Leuchtmittels mittels Symcon nicht mehr möglich.

Hast Du da evtl. einen Tipp, warum das Modul (die Device) beim Senden von Befehlen das alte Topic beibehält und nicht auf das neue wechselt?

Selbst ein neues Anlegen der Device hilft hier nicht.

Gruß
Burkhard

Hey, danke schön! Funktioniert… und da ich nun das Muster hatte, konnte ich darauf aufbauend weiterbasteln; hier der Befehl, um eine Szene abzuspeichern:
Z2M_Command(46117, ‚set‘, ‚{„scene_store“:{„ID“:‘.$scenenum.’,„name“:„Scene von IPSymcon“}}’);

Wobei ich jetzt die InstanzID aus meinem Echtbeispiel (46117) stehen gelassen habe und die Szene mit einer Variablen abspeichere ($scenenum).

Viele Grüße
Mirko

Ich möchte auf jeden Fall noch die Szenen richtig in das Modul einbinden, mir fehlt nur gerade die Zeit und die richtige Idee dafür. Aber @Burki24 hat dir ja schon einen Hinweis gegeben, wie du die Szenen trotzdem nutzen kannst.

Grüße,
Kai

Das sollte nun mit der aktuellen Beta Version gefixt sein, kannst du das mal testen?

Grüße,
Kai

Hier mal eine andere Schreibweise, die übersichtlicher ist:

$scene = [];
$scene['scene_recall'] = 1;

$JSON = json_encode($scene);

Z2M_Command(12345, 'set', $JSON);

Grüße,
Kai

Es gibt eine neue Beta Version.
Für die Version sollte die aktuellste Beta Version von IP-Symcon installiert sein.
Es gibt endlich die erste Aktion im Modul. Viel spaß beim Testen.

Grüße,
Kai

Moin Kai,
in

                    case 'action_duration':
                        $ProFileName .= '_' . $expose['unit'];
                        if (!IPS_VariableProfileExists($ProfileName)) {
                            $this->RegisterProfileFloat($ProfileName, 'Clock', '', ' ' . $expose['unit'], 0, 0, 2);
                        }
                        break;

ist bei $ProFileName ein kleiner Schreibfehler drin.

Ralf

1 „Gefällt mir“

Ja, muss ich noch korrigieren. Ich versuche es morgen zu schaffen.

Grüße,
Kai

@KaiS

Moin,

hab mal wieder einen neuen Konverter für z2m gebaut und bräuchte dafür die Profile/Exposes in Deinem Modul.
Eingepflegt wurde:
Zemismart Zigbee Dongle For AM15 Smart App Control Mini Design

Ein Zigbee/RF Dongle zum betreiben verschiedener Rollos, Jallousien, etc.

Folgende Profile werden benötigt:

15.01.2022, 22:31:27 | mapExposesToVariables:: Missed Exposes | {"light":[],"switch":[],"0":{"type":"enum","name":"motor_working_mode","property":"motor_working_mode","access":3,"values":["continuous","intermittently"]},"1":{"type":"enum","name":"control","property":"control","access":3,"values":["open","stop","close","continue"]},"2":{"type":"numeric","name":"percent_state","property":"percent_state","access":1,"value_min":0,"value_max":100,"value_step":1,"unit":"%"},"3":{"type":"enum","name":"mode","property":"mode","access":3,"values":["morning","night"]},"4":{"type":"enum","name":"control_back_mode","property":"control_back_mode","access":3,"values":["forward","back"]},"5":{"type":"enum","name":"border","property":"border","access":3,"values":["up","down","down_delete"]}}

Gruß
Burkhard