Liebe Experten,
ich habe ein DoIf geschrieben, das mit leider folgende Fehlermeldung bringt:
condition c02: syntax error, line 1, near ""inactive" InternalDoIf"
Das DoIf sieht folgendermaßen aus:
define Anwesenheitautomatischschalten DOIF ([Anwesenheitserkennung] eq "auto" and ([OmaKAnwesend] ne "inactive" or [OpaDAnwesend] ne "inactive" or [IchAnwesend] ne "inactive" or [MamaAnwesend] ne "inactive" or [OpaGAnwesend] ne "inactive" or [AnwesenheitSchalter] eq "daheim")) (set Anwesenheit daheim)\
DOELSEIF ([08:15 - 22:30] and [Anwesenheitserkennung] eq "auto" and [OmaKAnwesend] eq "inactive" and [OpaDAnwesend] eq "inactive" and [IchAnwesend] eq "inactive" and [MamaAnwesend] eq "inactive" [OpaGAnwesend] eq "inactive" and [AnwesenheitSchalter] eq "weg") (set Anwesenheit weg)
attr Anwesenheitautomatischschalten wait 1:600
Selbst in der Ansicht der Fehlerhervorhebung kann ich keinen Fehler finden. Bei OmaKAnwesend usw handelt es sich um jeweils um einen readingsProxy.
Es wäre schön, wenn mir jemand sagen könnte, wo der Fehler liegt.
Zitat von: EbeFranz am 21 August 2018, 15:04:27
Liebe Experten,
ich habe ein DoIf geschrieben, das mit leider folgende Fehlermeldung bringt:
condition c02: syntax error, line 1, near ""inactive" InternalDoIf"
Das DoIf sieht folgendermaßen aus:
define Anwesenheitautomatischschalten DOIF ([Anwesenheitserkennung] eq "auto" and ([OmaKAnwesend] ne "inactive" or [OpaDAnwesend] ne "inactive" or [IchAnwesend] ne "inactive" or [MamaAnwesend] ne "inactive" or [OpaGAnwesend] ne "inactive" or [AnwesenheitSchalter] eq "daheim")) (set Anwesenheit daheim)\
DOELSEIF ([08:15 - 22:30] and [Anwesenheitserkennung] eq "auto" and [OmaKAnwesend] eq "inactive" and [OpaDAnwesend] eq "inactive" and [IchAnwesend] eq "inactive" and [MamaAnwesend] eq "inactive" [OpaGAnwesend] eq "inactive" and [AnwesenheitSchalter] eq "weg") (set Anwesenheit weg)
attr Anwesenheitautomatischschalten wait 1:600
Selbst in der Ansicht der Fehlerhervorhebung kann ich keinen Fehler finden. Bei OmaKAnwesend usw handelt es sich um jeweils um einen readingsProxy.
Es wäre schön, wenn mir jemand sagen könnte, wo der Fehler liegt.
Poste bitte die Ausgaben von list Anwesenheitautomatischschalten.
Ich habe, das Doif noch einmal von Hand eingegeben. Es sieht meiner Meinung nach jetzt gleich aus, die Fehlermeldung ist aber verschwunden. Warum auch immer. Ich kann die Ausgabe für List also nicht mehr posten.
Danke für die Hilfe.
Tipp: Wenn Du die ganzen .*Anwesend in eine structure (https://fhem.de/commandref_DE.html#structure)packst, ersparst Du Dir solche logischen Arien. :)
Und hier war Dein Fehler [MamaAnwesend] eq "inactive" [OpaGAnwesend] eq "inactive"
da fehlt der logische Operator.
Sieht man sehr gut in der List Ansicht
InternalDoIf($hash,'OmaKAnwesend','STATE') eq "inactive" and InternalDoIf($hash,'OpaDAnwesend','STATE') eq "inactive" and
InternalDoIf($hash,'IchAnwesend','STATE') eq "inactive" and InternalDoIf($hash,'MamaAnwesend','STATE') eq "inactive"
InternalDoIf($hash,'OpaGAnwesend','STATE') eq "inactive" and InternalDoIf($hash,'AnwesenheitSchalter','STATE') eq "weg"
Gruß Otto
Danke für Eure Mühe.