Hallo,
ich habe einen Sensor der mir eine Temperaturdifferenz liefert. Ich möchte eine Aktion auslösen, wenn die Differenz für einen bestimmten Zeitraum, z.B. eine Stunde, unterhalb einer gewissen Schwelle liegt. Wenn die Schwelle unterschritten wird, aber innerhalb des Zeitraums wieder überschritten wird, dann soll der Zeitraum neu beginnen (beim nächsten Unterschreiten).
Ich komm gerade nicht drauf wie ich sowas einfach realisieren kann, kann mir jemand helfen?
Hi,
DOIF mit wait? define Tipp DOIF ([sensor] < 10) (set aktion on)
attr Tipp wait 3600
Ich bin nicht sicher, ob der wait Timer abgebrochen wird bei sensor>=10, falls er nicht abgebrochen wird:
define Tipp DOIF ([sensor] < 10) (set aktion on)
DOELSE
attr Tipp wait 3600
Zitat von: Ellert am 21 Januar 2016, 12:49:02
Ich bin nicht sicher, ob der wait Timer abgebrochen wird bei sensor>=10, falls er nicht abgebrochen wird:
define Tipp DOIF ([sensor] < 10) (set aktion on)
DOELSE
attr Tipp wait 3600
Bei einem DOIF-Fall ohne do always wird im false-Fall in cmd2 gewechselt, hier braucht man also DOELSE nicht zu setzen. Bei do always wird dagegen cmd2 nur dann gesetzt, wenn es auch einen DOELSE-Fall gibt.
Gruß
Damian
Danke!
Sieh an, so einfach 8)
Ich habe mich mit dem DOIF Modul noch nicht beschäftigt, daher war mir eine so einfache Lösung nicht bewußt. Mein Ansatz ging in die Richtung, bei Unterschreiten ein at anlegen, was bei Ablauf die Aktion ausführt. Und das at bei überschreiten löschen o.ä.
Ich werde das heute abend testen, im Prinzip würde es dann auf sowas hinaus laufen:
define switchTrigger DOIF ([sensor:temperature] < 5) (set status off)
DOELSE
(set status on)
attr switchTrigger wait 3600
Soll bewirken, dass der status nur dann auf off steht, wenn für eine Stunde lang die Temperatur unter 5 war, ansonsten steht er auf on. Müsste passen oder?
Das passt! Jeder Wechsel der Bedingung setzt den Timer zurück.
Ich habe so meine Watchdogs gemacht, ist aus meiner Sicht viel einfacher als mit watchdog.
Gruß Otto
Scheint einwandfrei zu klappen, vielen Dank!