FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: dieda am 21 Dezember 2015, 15:13:43

Titel: DOIF-mit and's aus Lacrosse und FS20 Fehlermeldung
Beitrag von: dieda am 21 Dezember 2015, 15:13:43
Ich hoffe ihr könnt mir da helfen. Scheine da wohl ein Brett vor dem Kopf zu haben.... Komme absolut nicht drauf.

Ich wollte mein ursprüngliches DOIF um eine weitere Bedingung erweitern... Bekomme aber nun eine Fehlermeldung.

Es soll so geschaltetet werden:
- Wenn die Sonne vor der Tür steht ( zwischen 10 und 22 Uhr)
- der Sensor Sonne anzeigt
- die Raumtemperatur über 23 Grad
- die Tür zu ist
- Neu: die Außentemperatur größer als 20 Grad

dann soll der Laden zu 80% runter fahren.

So sah das ganze vorher aus:
Zitat

([T_Wohnzimmer:temperature:d]>23
and
[wz_Fensterkontakt_Tuer_links:state] eq "closed"
and
[wz_bs:state] eq "off 2.5"
and
[?10:00-22:00])
(set wz_gr_Rolladen Ab80) DOELSE (set wz_gr_Rolladen on)

Nun kommt der letzte And-Teil dazu:
Zitat

([T_Wohnzimmer:temperature:d]>23
and
[wz_Fensterkontakt_Tuer_links:state] eq "closed"
and
[wz_bs:state] eq "off 2.5"
and
[?10:00-22:00]
and
[T_Auszen:temperature:d]>20)
(set wz_gr_Rolladen Ab80) DOELSE (set wz_gr_Rolladen on)

dann diese Fehlermeldung:
Zitat
perl error in condition: ReadingValDoIf('T_Wohnzimmer','temperature','(-?\d+(\.\d+)?)')>23 and ReadingValDoIf('wz_Fensterkontakt_Tuer_links','state','') eq "closed" and ReadingValDoIf('wz_bs','state','') eq "off 2.5" and DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"")andReadingValDoIf('T_Auszen','temperature','(-?\d+(\.\d+)?)')>20: syntax error at (eval 236) line 1, near ")andReadingValDoIf"

Sobald ich das letzte And rausnehme funktioniert alles wieder.

Warum das letzte And? Da ich im Winter durch die Sonne auch Raumtemperaturen erreichen von über 23 Grad und diese mir eigentlich dann recht ist.
Titel: Antw:DOIF-mit and's aus Lacrosse und FS20 Fehlermeldung
Beitrag von: Ellert am 21 Dezember 2015, 15:40:06
Vor und hinter dem letzten "and" fehlt je ein Leerzeichen, siehe Fehlermeldung.
Titel: gelöst: Antw:DOIF-mit and's aus Lacrosse und FS20 Fehlermeldung
Beitrag von: dieda am 21 Dezember 2015, 23:06:08
Zitat")andReadingValDoIf('T_Auszen','temperature','(-?\d+(\.\d+)?)')>20: syntax error at (eval 236) line 1, near ")andReadingValDoIf"

Du meinst das da. Danke, wieder was gelernt.