Hallo zusammen,
ich habe mal wieder Probleme mit meinem DOIF. Mein Anwendungsfall: Mach eine Lampe an, wenn es dunkel ist und ich nach Hause komme.
Folgendes funktioniert (jeweils für sich alleine):
([[myTwilight:ss_weather]])(set WZ_Lampe1 on-till 22:00)
bzw.
([HolgerAnwesend:state] eq "present")(set WZ_Lampe1 on-till 22:00)
Die Kombination
([[myTwilight:ss_weather]] and [HolgerAnwesend:state] eq "present")(set WZ_Lampe1 on-till 22:00)
funktioniert NUR dann, wenn ich bereits anwesend bin und dann ss_weather eintritt.
Wenn ich nach dem ss_weather nach Hause komme, funktioniert das DOIF nicht.
Folgendes Reading meines DOIF hatte ich z:B. heute:
Device HolgerAnwesend 2016-03-14 18:31:54
cmd_event timer_1 2016-03-13 17:48:36
cmd_nr 1 2016-03-13 17:48:36
e_HolgerAnwesend_state present 2016-03-14 18:31:54
state cmd_1 2016-03-13 17:48:36
timer_1_c1 15.03.2016 17:50:10 2016-03-14 19:21:28
(hoffe, das kann man verstehen).
Woran liegt das?
Da ich kein DOELSEIF oder DOELSE habe, habe ich das Attribut do always gesetzt.
Viele Grüße
ZitatWoran liegt das?
ZitatmyTwilight:ss_weather
gibt einen Zeitpunkt an und die Bedingung
Zitat[[myTwilight:ss_weather]] and [HolgerAnwesend:state] eq "present"
ist nur zu diesem Zeitpunkt wahr.
Hi Ellert,
verstanden. Ich finde es aber nicht ganz so logisch, weil die Bedingung ja auch dann wahr "wird", wenn das zweite Ereignis später eintritt, da das erste Ereignis dann ja bereits wahr "ist". Dafür sind doch im reading des DOIF die ganzen event_timer da, oder sehe ich das falsch?
D.h.: meine Anforderung ist nicht einfach lösbar? Ich müsste zuerst ein Dummy auf "true" setzen, wenn heute ss_weather erreicht ist und dann in einem zweiten DOIF die Kombination aus Anwesenheit und dem Dummy für's Schalten der Lampe verwenden? Ginge das so oder gibt's da noch einen einfacheren Weg?
Viele Grüße
ZitatIch finde es aber nicht ganz so logisch, weil die Bedingung ja auch dann wahr "wird", wenn das zweite Ereignis später eintritt, da das erste Ereignis dann ja bereits wahr "ist".
Ich finde es aber ganz logisch, weil die Bedingung nicht wahr "wird", wenn das zweite Ereignis später eintritt, da das erste Ereignis dann ja bereits wahr "war" und nicht mehr ist, weil der Zeitpunkt verstrichen ist. ;)
ZitatD.h.: meine Anforderung ist nicht einfach lösbar?
Doch mit einer Zeitspanne statt einem Zeitpunkt,
[[myTwilight:ss_weather]-[myTwilight:sr_weather]]
oder so ähnlich.
Hi Ellert,
Zitatda das erste Ereignis dann ja bereits wahr "war" und nicht mehr ist, weil der Zeitpunkt verstrichen ist.
OK. Das leuchtet ein. Ich bin davon ausgegangen, dass das Event ss_weather wahr "bleibt".
Ich probier mal weiter.
Viele Grüße
Hallo,
nur der Vollständigkeit halber, so habe ich es jetzt "am Laufen":
([[myTwilight:ss_weather]-22:00] and [HolgerAnwesend:state] eq "present")(set WZ_Lampe1 on)
DOELSEIF ([22:00]) (set WZ_Lampe1 off)
Vielen Dank an ellert und viele Grüße vom gent.
Besser DOELSEIF ([22:01]) sonst könnte es nicht ausschalten.
Moin,
nur so als Verständnisfrage wäre hier nicht auch ein [[?myTwilight:ss_weather]] and [HolgerAnwesend:state] eq "present"
möglich?
Also mit Fragezeichen in der ersten Bedingung dadurch wirkt diese nicht als Trigger wenn ich die Syntax richtig interpretiere.
Gruß
Sinus
Auch mit ? gilt dies: https://forum.fhem.de/index.php/topic,50848.msg424717.html#msg424717 und der Sonnenuntergang bleibt ein Zeitpunkt.