Habe folgendes vor:
Wenn Dämmerungsschalter = on, sollen zwei Lampen angehen, wegen Anwesenheit und so:
defmod Bew_Test_DOIF_1
DOIF ([16:00-19:45] and [Daemmerungsschalter_1:state] eq "on") (set Fenster_WZ on)(set Wanduhr on) DOELSEIF (set Fenster_WZ off)(set Wanduhr off)
attr Bew_Test_DOIF_1 room Wohnzimmer
attr Bew_Test_DOIF_1 wait 1,7:1,7:1,7
Das funktioniert und es gibt keine Fehlermeldung
In der Zeit von 19:45-15:59 des Folgetages, sollen die Lampen nur über Bewegungsmelder eingeschaltet werden.
defmod Bew_Test_DOIF_2
DOIF ([19:46-15:59] and [BewM_Diele:state] eq "on") (set Fenster_WZ on) (set Wanduhr on) DOELSEIF ([BewM_Diele:state] eq "off")(set Fenster_WZ off)(set Wanduhr off)
attr Bew_Test_DOIF_1 do resetwait
attr Bew_Test_DOIF_2 room Wohnzimmer
attr Bew_Test_DOIF_1 wait 1,7:1,7:1,7
Da kommt dann im Reading die Fehlermeldung:
error condition c01: syntax error, and::ReadingValDoIf"
bzw.
warning condition c01:(Missing operator before and::ReadingValDoIf?)
1. Frage, wie kann man beide DOIFs zusammenschreiben?
2. Wo liegt mein Fehler?
Danke schon mal für die Hilfe
ZitatCode: [Auswählen]
defmod Bew_Test_DOIF_1
DOIF ([16:00-19:45] and [Daemmerungsschalter_1:state] eq "on") (set Fenster_WZ on)(set Wanduhr on) DOELSEIF (set Fenster_WZ off)(set Wanduhr off)
attr Bew_Test_DOIF_1 room Wohnzimmer
attr Bew_Test_DOIF_1 wait 1,7:1,7:1,7
Das funktioniert und es gibt keine Fehlermeldung
Es würde mich wundern, dass es wie gewünscht funktioniert....!!
Bei mir geht das 2. Was hast Du für eine DOIF Version? Und bitte ein vollständiges "list" vom DOIF
Im Original fehlt vermutlich ein Leerzeichen hinter and ;)
Zitat von: Damian am 26 November 2019, 20:57:20
Im Original fehlt vermutlich ein Leerzeichen hinter and ;)
Danke, genau das wars ...
Cool. Wir sehen uns wieder, wenn DOIF_1 nicht wie gewünscht funktioniert? ;)
ZitatEs würde mich wundern, dass es wie gewünscht funktioniert....!!
Mich auch.
Zitat von: rabehd am 27 November 2019, 12:57:02
Mich auch.
Dann sagt doch mal, warum dass so nicht funktioniert oder funktionieren sollte?
Weil DOELSEIF eine Bedingung braucht. Der erste set Befehl wird als Bedingung interpretiert.
Und das Wait-Attribut passt auch nicht wirklich.
okay, danke. :)
Werde ich dann gleich ändern ;)
Das "wait" habe ich bewußt genommen, da sich der CUL manchmal verschluckt (hat).
Ist mir extrem bei den Rolladen aufgefallen, deswegen lass ich jetzt die Befehle nacheinander mit Verzögerung "abarbeiten".
Laut deinem Wait hat dein DOIF 3 Zweige. Ich sehe nur 2 Zweige.
Zitat von: rabehd am 27 November 2019, 21:04:16
Laut deinem Wait hat dein DOIF 3 Zweige. Ich sehe nur 2 Zweige.
Ja, das war ein Tippfehler ;)