DOIF-mit and's aus Lacrosse und FS20 Fehlermeldung

Begonnen von dieda, 21 Dezember 2015, 15:13:43

Vorheriges Thema - Nächstes Thema

dieda

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.
Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

Ellert

Vor und hinter dem letzten "and" fehlt je ein Leerzeichen, siehe Fehlermeldung.

dieda

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.
Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs