Hallo,
ich möchte gerne, dass die Bedingungen nach einer bestimmten Zeit nochmal abgefragt werden und dann ggf. bei "wahr" der Command ausgeführt wird. Bis jetzt kenne ich nur, dass die CMD wieder erneut ausgeführt werden. Vll habe ich ja auch was falsch verstanden oder nicht gelesen. Wäre für Eure Antwort dankbar.
([?LogoLampeGesimsVorne:state] eq "off" and [LogoStatusAstroUhr:state] eq "on" )
(set LogoDauerTasterGesimsVorne trigger)
DOELSE
Hintergrund: Sollten die Lampen aus irgendwelchen Gründen (Bewegungsmelder) etc an sein, würde ich die Bedingung gerne 5-10min später nochmal prüfen, dass die Lampen im Off-Fall wieder eingeschaltet werden.
Gruß
SteRa
Hallo SteRa,
ich vermute es handelt sich um ein DOIF? Am besten immer ein list vom device posten.
Für DOIF habe ich zu der Anwendung mal was in der commandref gelesen, weiß grad nur nicht mehr genau wo. Ich meine repeatcmd oder so.
Grüße
igami
Hallo igami,
ja den Repeatcmd kenne ich, aber der führt meines Erachtens den Command mehrmals aus, aber fragt er die Bedingungen ebenfalls nochmal ab?
Angenommener Fall -> LogoLampeGesimsVorne = on und LogoStatusAstroUhr=on
([?LogoLampeGesimsVorne:state] eq "off" and [LogoStatusAstroUhr:state] eq "on" ) -> CMD wird nicht ausgeführt.
dann soll 5min später nochmal geguckt werden ob dieser Fall jetzt eingetreten ist ->LogoLampeGesimsVorne = off und LogoStatusAstroUhr=on
um die Lampen wieder einzuschalten.
z.B.
Repeatsame = 2
CMD Pause = 3000
führt doch dazu, dass der cmd "(set LogoDauerTasterGesimsVorne trigger)" 5min später nochmal ausgeführt wird oder sehe ich das falsch und die Bedingungen werden nochmal geprüft?
([?LogoLampeGesimsVorne:state] eq "on" and [LogoStatusAstroUhr:state] eq "on" )
(IF ([?LogoLampeGesimsVorne:state] eq "off" and [LogoStatusAstroUhr:state] eq "on") (set LogoDauerTasterGesimsVorne trigger))
und die Attribute
do always
wait 300
So könnte es klappen, wenn LogoStatusAstroUhr auf on gesetzt wird, dann 5 min warten, wenn LogoLampeGesimsVorne danach off ist, den Befehl ausführen.
Zitat
Anwendungsbeispiel: Nach dem Eintreffen des Ereignisses wird die push-Meldung stündlich wiederholt, bis Frost ungleich "on" ist.
define di_push DOIF ([frost] eq "on")(set pushmsg "danger of frost")
attr di_push repeatcmd 3600
Eine Begrenzung der Wiederholungen kann mit dem Attribut repeatsame vorgenommen werden
attr di_push repeatsame 3
Heißt für mich die Bedingungen werden geprüft.
ZitatNach dem Eintreffen des Ereignisses wird die push-Meldung stündlich wiederholt, bis Frost ungleich "on" ist.
Es werden die Befehle ohne Bedingungsprüfung wiederholt.
okay, dann folgender Vorschlag:
define <name> DOIF ([?LogoLampeGesimsVorne:state] eq "off" and [LogoStatusAstroUhr:state] eq "on" )
(set LogoDauerTasterGesimsVorne trigger)(trigger LogoStatusAstroUhr)
DOELSE
attr <name> do always
attr <name> wait 0,300
attr <name> selftrigger wait
Zitat von: igami am 31 Oktober 2016, 12:21:47
okay, dann folgender Vorschlag:
define <name> DOIF ([?LogoLampeGesimsVorne:state] eq "off" and [LogoStatusAstroUhr:state] eq "on" )
(set LogoDauerTasterGesimsVorne trigger)(trigger LogoStatusAstroUhr)
DOELSE
attr <name> do always
attr <name> wait 0,300
attr <name> selftrigger wait
Das würde nicht auf
ZitatAngenommener Fall -> LogoLampeGesimsVorne = on und LogoStatusAstroUhr=on
triggern.
ah, das habe ich überlesen ::)
Was soll denn nun effektiv gemacht werden?
Im ersten Post steht, wenn die Lampe aus ist, soll sie wieder eingeschaltet werden. Im späteren post steht, wenn die lampe ein ist, soll fünf minuten später geguckt werden ob sie aus ist und dann wieder eingeschaltet werden.
Also soll die Lampe immer an sein, wenn LogoStatusAstroUhr eingeschaltet ist?
Zitat von: igami am 31 Oktober 2016, 13:01:25
ah, das habe ich überlesen ::)
Was soll denn nun effektiv gemacht werden?
Im ersten Post steht, wenn die Lampe aus ist, soll sie wieder eingeschaltet werden. Im späteren post steht, wenn die lampe ein ist, soll fünf minuten später geguckt werden ob sie aus ist und dann wieder eingeschaltet werden.
Also soll die Lampe immer an sein, wenn LogoStatusAstroUhr eingeschaltet ist?
Ja, ich stimme Dir zu, das Problem ist nicht sauber beschrieben.