FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Kuehnhackel am 26 November 2019, 20:08:37

Titel: [Gelöst]DOIF Fehler condition c01:(Missing operator before and::ReadingValDoIf?)
Beitrag von: Kuehnhackel am 26 November 2019, 20:08:37
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
Titel: Antw:DOIF Fehler condition c01: (Missing operator before and::ReadingValDoIf?)
Beitrag von: amenomade am 26 November 2019, 20:42:57
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
Titel: Antw:DOIF Fehler condition c01: (Missing operator before and::ReadingValDoIf?)
Beitrag von: Damian am 26 November 2019, 20:57:20
Im Original fehlt vermutlich ein Leerzeichen hinter and ;)
Titel: Antw:DOIF Fehler condition c01: (Missing operator before and::ReadingValDoIf?)
Beitrag von: Kuehnhackel am 26 November 2019, 21:16:51
Zitat von: Damian am 26 November 2019, 20:57:20
Im Original fehlt vermutlich ein Leerzeichen hinter and ;)

Danke, genau das wars ...
Titel: Antw:[Gelöst]DOIF Fehler condition c01:(Missing operator before and::ReadingValDoIf?)
Beitrag von: amenomade am 26 November 2019, 21:49:29
Cool. Wir sehen uns wieder, wenn DOIF_1 nicht wie gewünscht funktioniert? ;)
Titel: Antw:[Gelöst]DOIF Fehler condition c01:(Missing operator before and::ReadingValDoIf?)
Beitrag von: rabehd am 27 November 2019, 12:57:02
ZitatEs würde mich wundern, dass es wie gewünscht funktioniert....!!
Mich auch.
Titel: Antw:[Gelöst]DOIF Fehler condition c01:(Missing operator before and::ReadingValDoIf?)
Beitrag von: Kuehnhackel am 27 November 2019, 16:03:19
Zitat von: rabehd am 27 November 2019, 12:57:02
Mich auch.

Dann sagt doch mal, warum dass so nicht funktioniert oder funktionieren sollte?
Titel: Antw:[Gelöst]DOIF Fehler condition c01:(Missing operator before and::ReadingValDoIf?)
Beitrag von: amenomade am 27 November 2019, 16:40:56
Weil DOELSEIF eine Bedingung braucht. Der erste set Befehl wird als Bedingung interpretiert.
Titel: Antw:[Gelöst]DOIF Fehler condition c01:(Missing operator before and::ReadingValDoIf?)
Beitrag von: rabehd am 27 November 2019, 16:49:50
Und das Wait-Attribut passt auch nicht wirklich.
Titel: Antw:[Gelöst]DOIF Fehler condition c01:(Missing operator before and::ReadingValDoIf?)
Beitrag von: Kuehnhackel am 27 November 2019, 16:53:12
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".
Titel: Antw:[Gelöst]DOIF Fehler condition c01:(Missing operator before and::ReadingValDoIf?)
Beitrag von: rabehd am 27 November 2019, 21:04:16
Laut deinem Wait hat dein DOIF 3 Zweige. Ich sehe nur 2 Zweige.
Titel: Antw:[Gelöst]DOIF Fehler condition c01:(Missing operator before and::ReadingValDoIf?)
Beitrag von: Kuehnhackel am 27 November 2019, 22:32:19
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  ;)