Das lief schon, aber irgendwie habe ich es jetzt kaputt optimiert und finde den Fehler nicht :'(
Was soll passieren: Ich habe 2 Dummys, die mit dem Twilight-Wert versorgt werden sollen, bei dem die Rollläden auf, bzw. zu fahren sollen. Aber das soll nur passieren, wenn die Terassentür nicht auf ist und die Rollläden nicht manuell eingestellt sind. Dazu habe ich folgendes gebaut:define di_Rollo_TL
([Home_TL:light] == [?du_Rollo_TL_auf] and [?HM_Tuer_WZ_Terasse:state] ne "open" and [?DuoFern_Rollladen_Terasse_Fenster:position] > 75 and [?06:00-13:00]) (set DuoFern_Rollladen_Terasse_.* position 0)
DOELSEIF
([Home_TL:light] == [?du_Rollo_TL_zu] and [?HM_Tuer_WZ_Terasse:state] ne "open" and [?DuoFern_Rollladen_Terasse_Fenster:position] < 10 and [?15:00-23:00]) (set DuoFern_Rollladen_Terasse_.* position 85)
attr di_Rollo_TL do always
Home_TL: mein Twilight
du_Rollo_TL_auf: Dummy mit dem Auf-Wert
du_Rollo_TL_zu: Dummy mit dem Zu-Wert
HM_Tuer_WZ_Terasse: Drehgriff Terassentür
Die Zeiten habe ich gesetzt, damit beim Sonnenaufgang nicht der 'Zu'-Teil der Regel greift und umgekehrt. Was mich verwirrt ist, dass ich List nicht den Status des Drehgriffsensors sehe:Internals:
CFGFN
DEF ([Home_TL:light] == [?du_Rollo_TL_auf] and [?HM_Tuer_WZ_Terasse:state] ne "open" and [?DuoFern_Rollladen_Terasse_Fenster:position] > 75 and [?06:00-13:00]) (set DuoFern_Rollladen_Terasse_.* position 0)
DOELSEIF
([Home_TL:light] == [?du_Rollo_TL_zu] and [?HM_Tuer_WZ_Terasse:state] ne "open" and [?DuoFern_Rollladen_Terasse_Fenster:position] < 10 and [?15:00-23:00]) (set DuoFern_Rollladen_Terasse_.* position 85)
NAME di_Rollo_TL
NR 31767
NTFY_ORDER 50-di_Rollo_TL
STATE cmd_2
TYPE DOIF
Readings:
2016-11-15 07:45:09 Device Home_TL
2016-11-11 16:17:06 cmd 2
2016-11-11 16:17:06 cmd_event Home_TL
2016-11-11 16:17:06 cmd_nr 2
2016-11-15 07:45:09 e_Home_TL_light 3
2016-11-11 16:17:06 state cmd_2
2016-11-14 13:00:00 timer_1_c1 15.11.2016 06:00:00
2016-11-14 13:00:00 timer_2_c1 15.11.2016 13:00:00
2016-11-14 23:00:00 timer_3_c2 15.11.2016 15:00:00
2016-11-14 23:00:00 timer_4_c2 15.11.2016 23:00:00
Condition:
0 ReadingValDoIf($hash,'Home_TL','light','','',AttrVal($hash->{NAME},'notexist',undef)) == InternalDoIf($hash,'du_Rollo_TL_auf','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) and ReadingValDoIf($hash,'HM_Tuer_WZ_Terasse','state','','',AttrVal($hash->{NAME},'notexist',undef)) ne "open" and ReadingValDoIf($hash,'DuoFern_Rollladen_Terasse_Fenster','position','','',AttrVal($hash->{NAME},'notexist',undef)) > 75 and DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"")
1 ReadingValDoIf($hash,'Home_TL','light','','',AttrVal($hash->{NAME},'notexist',undef)) == InternalDoIf($hash,'du_Rollo_TL_zu','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) and ReadingValDoIf($hash,'HM_Tuer_WZ_Terasse','state','','',AttrVal($hash->{NAME},'notexist',undef)) ne "open" and ReadingValDoIf($hash,'DuoFern_Rollladen_Terasse_Fenster','position','','',AttrVal($hash->{NAME},'notexist',undef)) < 10 and DOIF_time($hash,$hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"")
Days:
Devices:
0 Home_TL
1 Home_TL
all Home_TL
Do:
0:
0 set DuoFern_Rollladen_Terasse_.* position 0
1:
0 set DuoFern_Rollladen_Terasse_.* position 85
2:
Helper:
event azimuth: 121.29,elevation: -1.77,twilight: 56.8,twilight_weather: 20.1,compasspoint: east-southeast
globalinit 1
last_timer 4
sleeptimer -1
timerdev Home_TL
timerevent 9,light: 3,horizon: 0,aktEvent: ss,nextEvent: ss_civil,nextEventTime: 17:03:19
triggerDev Home_TL
timerevents:
9
light: 3
horizon: 0
aktEvent: ss
nextEvent: ss_civil
nextEventTime: 17:03:19
timereventsState:
state: 9
light: 3
horizon: 0
aktEvent: ss
nextEvent: ss_civil
nextEventTime: 17:03:19
triggerEvents:
azimuth: 121.29
elevation: -1.77
twilight: 56.8
twilight_weather: 20.1
compasspoint: east-southeast
triggerEventsState:
azimuth: 121.29
elevation: -1.77
twilight: 56.8
twilight_weather: 20.1
compasspoint: east-southeast
Internals:
0 du_Rollo_TL_auf:STATE
1 du_Rollo_TL_zu:STATE
all du_Rollo_TL_auf:STATE du_Rollo_TL_zu:STATE
Interval:
0 -1
1 0
2 -1
3 2
Itimer:
Localtime:
0 1479186000
1 1479211200
2 1479218400
3 1479247200
Readings:
0 Home_TL:light HM_Tuer_WZ_Terasse:state DuoFern_Rollladen_Terasse_Fenster:position
1 Home_TL:light HM_Tuer_WZ_Terasse:state DuoFern_Rollladen_Terasse_Fenster:position
all Home_TL:light HM_Tuer_WZ_Terasse:state DuoFern_Rollladen_Terasse_Fenster:position
Realtime:
0 06:00:00
1 13:00:00
2 15:00:00
3 23:00:00
Regexp:
0:
1:
All:
State:
Time:
0 06:00:00
1 13:00:00
2 15:00:00
3 23:00:00
Timecond:
0 0
1 0
2 1
3 1
Timer:
0 0
1 0
2 0
3 0
Timers:
Trigger:
Triggertime:
1479211200:
localtime 1479211200
Hash:
1479218400:
localtime 1479218400
Hash:
1479247200:
localtime 1479247200
Hash:
Attributes:
do always
zerstörte Grüße
Niels
ZitatWas mich verwirrt ist, dass ich List nicht den Status des Drehgriffsensors sehe
Es werden keine nicht triggernde Readings etc, angezeigt.
Zitat von: Ellert am 15 November 2016, 16:24:17
Es werden keine nicht triggernde Readings etc, angezeigt.
Ok danke, damit ist das schon mal erklärt und ich habe wieder was gelernt.
lernfähige Grüße
Niels
So, manche Dinge muss man etwas ruhen lassen und nochmal von vorne betrachten. Das Problem lag wohl darin, dass die Dummys User-Readings haben. So funktioniert es nicht mehr, ohne Angabe des Readings:([Home_TL:light] == [?du_Rollo_TL_auf]
Nach dem ich alle Bedingungen raus genommen hatte und dem Dummy das Triggerverbot (?) genommen habe war es schnell klar. Also:([Home_TL:light] == [?du_Rollo_TL_auf:state]
und schon geht es wohl wie gewünscht.
gelöste Grüße
Niels