FHEM Forum

FHEM - Hausautomations-Systeme => ZWave => Thema gestartet von: Darkwing Duck am 17 Dezember 2019, 17:48:47

Titel: Z-Wave Command Class 0x53 NETWORK_SCHEDULE (SCHEDULE)
Beitrag von: Darkwing Duck am 17 Dezember 2019, 17:48:47
Hallo zusammen,

im Zusammenhang mit meinen Fibaro-Thermostaten (siehe anderer Thread) lese ich mich gerade, mit Hilfe der Anleitung meiner Thermostate, der Z-Wave Command Class Specification und der FHEM-Commandref, in die o.g. Command Class ein. Prinzipiell wird die Klasse durch FHEM seit diesem Patch (https://forum.fhem.de/index.php/topic,46614.msg383444.html) unterstützt. Gibt es irgendwo (getestete) Beispiele, wie set <device> schedule aufzurufen ist? Ich habe leider im Forum außer Erwähnungen im Zusammenhang mit dem Danalock-Türschloss nichts dazu finden können.

Insbesondere den letzten Teil, also die mit Leerzeichen getrennten CMDs, verstehe ich nicht. Laut commandref sollen die Parameter die Struktur

set <device> schedule ID USER_ID YEAR-MONTH-DAY WDAY ACTIVE_ID DURATION_TYPE HOUR:MINUTE DURATION NUM_REPORTS CMD ... CMD

aufweisen. Wenn ich diesen Befehl allerdings mit mehr als genau 12 Token ausführe, bekomme ich immer die Antwort "wrong format, see commandref". Oder in Zahlen ausgedrückt:

set <device> schedule 5 1 2019-12-17 3 0 1 06:15 2 0 123

wird seitens FHEM ausgeführt (und dann vom Thermostat abgewiesen, aber das nachzuvollziehen wäre mein nächster Schritt), wohingegen

set <device> schedule 5 1 2019-12-17 3 0 1 06:15 2 0 123 456

zu o.g. Fehlermeldung führt.

Daraufhin habe ich versucht nachzuvollziehen, was in dem entsprechenden Modul passiert. In der 10_ZWave.pm wird in ZWave_scheduleSet diese Struktur mittels Regex überprüft und anschließend die Parameter in die entsprechenden Hex-Werte umgewandelt. Meine Perl- und Regex-Kenntnisse sind leider begrenzt, aber nach meinem Verständnis hätte ich jetzt gesagt, dass die Variante mit mehreren CMDs der geforderten Struktur entspricht. Wo ist hier mein Fehler?

Als Randinformation, warum ich das versuche: Laut Anleitung benötigen meine Thermostate hier wohl mehrere Befehle, die mindestens die ID der Command Classes für Thermostat_Setpoint bzw.  Thermostat_Mode und die jeweils zugehörigen Sollwerte umfassen.
Titel: Antw:Z-Wave Command Class 0x53 NETWORK_SCHEDULE (SCHEDULE)
Beitrag von: rudolfkoenig am 17 Dezember 2019, 18:27:52
Ich bin hier nur als Regexp-Fixer unterwegs:

"5 1 2019-12-17 3 0 1 06:15 2 0 123 456"
5 => ID
1 => uID
2019-12-17 => sYear-sMonth-sDay
3 => sWDay
0 => durationType
1 => ??? Ueberfluessig
06:15 => sHour:sMinute
2 => duration
0 => numReports
123 456 => cmd
Titel: Antw:Z-Wave Command Class 0x53 NETWORK_SCHEDULE (SCHEDULE)
Beitrag von: Darkwing Duck am 17 Dezember 2019, 22:56:00
So hatte ich es in der Commandref auch verstanden. Nur leider führt die Variante mit durch Leerzeichen getrennter Liste von Commands eben zu o.g. Fehlermeldung (,,wrong format..."). Seitens des Moduls wird der setSchedule-Befehl so wie ich es sehe nur ausgeführt, wenn nur ein einzelnes Command angegeben wird. Für meinen Fall brauche ich aber nach aktuellem Verständnis mehrere.