Bedingungen erneut abfragen ohne cmd

Begonnen von stera, 31 Oktober 2016, 07:53:30

Vorheriges Thema - Nächstes Thema

stera

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

 

igami

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
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

stera

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?








Ellert

([?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.

igami

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.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Ellert

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.

igami

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
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Ellert

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.

igami

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?
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Ellert

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.