Hallo Zusammen,
ich habe ein (für mich) sehr seltsames Verhalten.
Und zwar möchte ich wie in den Kommentaren beschrieben das meine Rollos herunter fahren wenn es draußen hell ist und die Vorhersagetemperatur über 18°C ist.
Wenn dies nicht eintrifft, aber der AV-Receiver eingeschaltet wird und auch eine bestimmten Input hat (bei Radio z.B. nicht) soll eine Rollade runter fahren da diese direkt gegenüber dem TV ist.
Wenn nichts eintrifft (z.B. wird es Abends wieder dunkler) soll stufenweise die Rollos wieder hoch fahren.
Jedoch bei aktuell das Doif immer im cmd1 hängen, obwohl dort manche Abfrage gar nicht zutreffen.
Wo habe ich hier den Fehler?
Gruß Thiemo
Internals:
DEF ##1 - Receiver an, linkes Rollo bei Sonne runter
([di.NN.xx.XX.SonneSonnenseite:twilight] eq "Sonne"
and [OG.wz.HE.Denon:state] eq "on"
and [OG.wz.HE.Denon:input] eq "DVD" or "Cbl/Sat" or "Mediaplayer"
and [$SELF:Automatik] eq "an")
(set OG.wz.RO.FensterLinks:FILTER=pct>[$SELF:FensterLinks] pct [$SELF:FensterLinks])
##2 - beide Rollos bei Sonne runter wenn Vorhersagetemperatur über 18°C
DOELSEIF
([di.NN.xx.XX.SonneSonnenseite:twilight] eq "Sonne"
and [Wetter_Overath:fc1_high_c] > 18
and [$SELF:Automatik] eq "an")
(set OG.wz.RO.FensterLinks pct [$SELF:FensterLinks],
set OG.wz.RO.FensterRechts pct [$SELF:FensterRechts])
##3 - Rollos wieder hoch wenn Schatten ist oder die Vorhersagetemperatur wieder unter 18°C gesunken ist
##DOELSEIF
##(([di.NN.xx.XX.SonneSonnenseite:twilight] eq "Schatten"
##or [Wetter_Overath:fc1_high_c] <= 18)
##and [$SELF:Automatik] eq "an")
DOELSE
(set OG.wz.RO.FensterLinks:FILTER=pct<=20 pct 20,
set OG.wz.RO.FensterRechts:FILTER=pct<=20 pct 20)
(set OG.wz.RO.FensterLinks:FILTER=pct<=60 pct 60,
set OG.wz.RO.FensterRechts:FILTER=pct<=60 pct 60)
(set OG.wz.RO.FensterLinks:FILTER=pct<=80 pct 80,
set OG.wz.RO.FensterRechts:FILTER=pct<=80 pct 80)
(set OG.wz.RO.FensterLinks up,
set OG.wz.RO.FensterRechts up)
NAME di.OG.wz.RO.Sonnenseite
NR 73
NTFY_ORDER 50-di.OG.wz.RO.Sonnenseite
STATE cmd_1
TYPE DOIF
Readings:
2017-04-27 14:23:48 Automatik an
2017-04-27 14:23:48 Device di.OG.wz.RO.Sonnenseite
2017-04-27 13:56:00 FensterLinks 12
2017-03-17 10:39:41 FensterRechts 12
2017-04-27 14:14:50 cmd 1
2017-04-27 14:14:50 cmd_event OG.wz.HE.Denon
2017-04-27 14:14:50 cmd_nr 1
2017-04-27 14:15:19 e_OG.wz.HE.Denon_state off
2017-04-27 14:23:48 e_di.OG.wz.RO.Sonnenseite_Automatik an
2017-04-27 14:14:50 state cmd_1
2017-04-27 14:15:09 wait_timer no timer
Condition:
0 ReadingValDoIf($hash,'di.NN.xx.XX.SonneSonnenseite','twilight') eq "Sonne" and ReadingValDoIf($hash,'OG.wz.HE.Denon','state') eq "on" and ReadingValDoIf($hash,'OG.wz.HE.Denon','input') eq "DVD" or "Cbl/Sat" or "Mediaplayer" and ReadingValDoIf($hash,'di.OG.wz.RO.Sonnenseite','Automatik') eq "an"
1 ReadingValDoIf($hash,'di.NN.xx.XX.SonneSonnenseite','twilight') eq "Sonne" and ReadingValDoIf($hash,'Wetter_Overath','fc1_high_c') > 18 and ReadingValDoIf($hash,'di.OG.wz.RO.Sonnenseite','Automatik') eq "an"
Devices:
0 di.NN.xx.XX.SonneSonnenseite OG.wz.HE.Denon di.OG.wz.RO.Sonnenseite
1 di.NN.xx.XX.SonneSonnenseite Wetter_Overath di.OG.wz.RO.Sonnenseite
all di.NN.xx.XX.SonneSonnenseite OG.wz.HE.Denon di.OG.wz.RO.Sonnenseite Wetter_Overath
Do:
0:
0 set OG.wz.RO.FensterLinks:FILTER=pct>[di.OG.wz.RO.Sonnenseite:FensterLinks] pct [di.OG.wz.RO.Sonnenseite:FensterLinks]
1:
0 set OG.wz.RO.FensterLinks pct [di.OG.wz.RO.Sonnenseite:FensterLinks], set OG.wz.RO.FensterRechts pct [di.OG.wz.RO.Sonnenseite:FensterRechts]
2:
0 set OG.wz.RO.FensterLinks:FILTER=pct<=20 pct 20, set OG.wz.RO.FensterRechts:FILTER=pct<=20 pct 20
1 set OG.wz.RO.FensterLinks:FILTER=pct<=60 pct 60, set OG.wz.RO.FensterRechts:FILTER=pct<=60 pct 60
2 set OG.wz.RO.FensterLinks:FILTER=pct<=80 pct 80, set OG.wz.RO.FensterRechts:FILTER=pct<=80 pct 80
3 set OG.wz.RO.FensterLinks up, set OG.wz.RO.FensterRechts up
Helper:
event Automatik: an,Device: di.OG.wz.RO.Sonnenseite,e_di.OG.wz.RO.Sonnenseite_Automatik: an
globalinit 1
last_timer 0
sleeptimer -1
timerdev di.OG.wz.RO.Sonnenseite
timerevent Automatik: an,Device: di.OG.wz.RO.Sonnenseite,e_di.OG.wz.RO.Sonnenseite_Automatik: an
triggerDev di.OG.wz.RO.Sonnenseite
timerevents:
Automatik: an
Device: di.OG.wz.RO.Sonnenseite
e_di.OG.wz.RO.Sonnenseite_Automatik: an
timereventsState:
Automatik: an
Device: di.OG.wz.RO.Sonnenseite
e_di.OG.wz.RO.Sonnenseite_Automatik: an
triggerEvents:
Automatik: an
Device: di.OG.wz.RO.Sonnenseite
e_di.OG.wz.RO.Sonnenseite_Automatik: an
triggerEventsState:
Automatik: an
Device: di.OG.wz.RO.Sonnenseite
e_di.OG.wz.RO.Sonnenseite_Automatik: an
Internals:
Itimer:
Readings:
0 di.NN.xx.XX.SonneSonnenseite:twilight OG.wz.HE.Denon:state OG.wz.HE.Denon:input di.OG.wz.RO.Sonnenseite:Automatik
1 di.NN.xx.XX.SonneSonnenseite:twilight Wetter_Overath:fc1_high_c di.OG.wz.RO.Sonnenseite:Automatik
all di.NN.xx.XX.SonneSonnenseite:twilight OG.wz.HE.Denon:state OG.wz.HE.Denon:input di.OG.wz.RO.Sonnenseite:Automatik Wetter_Overath:fc1_high_c
Regexp:
0:
1:
All:
State:
State:
Trigger:
Attributes:
alias Automatik Rolladen Sonnenseite
checkReadingEvent 1
devStateIcon on:fts_shutter_automatic off:fts_shutter_manual initialized:unknown
icon fts_shutter_updown
readingList Automatik FensterLinks FensterRechts
setList Automatik:an,aus FensterLinks:slider,0,1,100 FensterRechts:slider,0,1,100
wait 0:0:60,120,120,120
webCmd Automatik:FensterLinks:FensterRechts
and [OG.wz.HE.Denon:input] eq "DVD" or "Cbl/Sat" or "Mediaplayer"
ist nicht korrekt
and ([OG.wz.HE.Denon:input] eq "DVD" or [OG.wz.HE.Denon:input] eq "Cbl/Sat" or [OG.wz.HE.Denon:input] eq "Mediaplayer")
Das ist zumidest das offensichtliche... ob's noch mehr gibt habe ich jetzt nicht gesucht ;-)
Zitat von: KernSani am 27 April 2017, 15:48:30
and [OG.wz.HE.Denon:input] eq "DVD" or "Cbl/Sat" or "Mediaplayer"
ist nicht korrekt
and ([OG.wz.HE.Denon:input] eq "DVD" or [OG.wz.HE.Denon:input] eq "Cbl/Sat" or [OG.wz.HE.Denon:input] eq "Mediaplayer")
Das ist zumidest das offensichtliche... ob's noch mehr gibt habe ich jetzt nicht gesucht ;-)
Dies könnte man etwas kürzen
and ([OG.wz.HE.Denon:input] eq "DVD" or [OG.wz.HE.Denon:input] eq "Cbl/Sat" or [OG.wz.HE.Denon:input] eq "Mediaplayer")
auf
and [OG.wz.HE.Denon:input] =~ "^(DVD|Cbl/Sat|Mediaplayer)\$"
Zitat von: Ellert am 27 April 2017, 19:39:13
Dies könnte man etwas kürzen
auf
and [OG.wz.HE.Denon:input] =~ "^(DVD|Cbl/Sat|Mediaplayer)\$"
Richtig, ich wollte den TE aber nicht auch noch mit einer Regex verwirren ;-)
Da macht man die Syntax korrekt und schon klappt auch die Funktion wie gewünscht ;D ;D
Danke an euch. Ich habe die Variante mit dem Regex eingesetzt. Für neue DOIF's wird aber sicherlich die lange gestückelte Variante zum Einsatz kommen.
Dieser Regex und ich werden nicht so schnell Freunde :'(