condition c02: syntax error, line 1, near ""inactive" InternalDoIf"

Begonnen von EbeFranz, 21 August 2018, 15:04:27

Vorheriges Thema - Nächstes Thema

EbeFranz

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.

Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

EbeFranz

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.

Otto123

Tipp: Wenn Du die ganzen .*Anwesend in eine 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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz