FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: EbeFranz am 21 August 2018, 15:04:27

Titel: condition c02: syntax error, line 1, near ""inactive" InternalDoIf"
Beitrag 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.
Titel: Antw:condition c02: syntax error, line 1, near ""inactive" InternalDoIf"
Beitrag von: Damian am 21 August 2018, 21:44:18
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.
Titel: Antw:condition c02: syntax error, line 1, near ""inactive" InternalDoIf"
Beitrag von: EbeFranz am 23 August 2018, 12:07:17
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.
Titel: Antw:condition c02: syntax error, line 1, near ""inactive" InternalDoIf"
Beitrag von: Otto123 am 23 August 2018, 12:24:21
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
Titel: Antw:condition c02: syntax error, line 1, near ""inactive" InternalDoIf"
Beitrag von: EbeFranz am 01 September 2018, 13:22:31
Danke für Eure Mühe.