Ausführung eines Skripts erst wenn sich status länger als 10 Sek. nicht ändert

Begonnen von Raschi1210, 17 Februar 2016, 11:10:58

Vorheriges Thema - Nächstes Thema

Raschi1210

Hallo,
ich baute mir ein script welches mit ein sms sendet wenn die Waschmaschine fertig war.
Der Status wurde über eine fotodiode erkannt.
Nun habe ich jedoch eine neue Waschmaschine und diese hat kein lämpchen mehr für fertig.
Nun müsste ich es so machen, dass das Script erst ausgeführt wird wenn:
- der Status auf "open" wechselt
- ABER sich in den letzten 10 Sekunden nicht geändert hat
GRUND ist:
Beim Einschalten der Waschmaschine blinkt dieses Lämpchen, beim Waschen leuchtet dieses Lämpchen und wenn es fertig ist, ist es AUS.

So habe ich es derzeit in fhem eingebunden, aber da wird das Script natürlich bei jeder änderung ausgeführt.
define Waschmaschine_fertig notify Sensor_Waschmaschine:open {if($value{SMS_Gateway} eq "on"){system "/opt/fhem/scripte/fertigWaschm.sh"}}

Puschel74

$value ist out und wurde durch Value ersetzt.
watchdog wäre eine Möglichkeit.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Raschi1210

Habe das mal mit Watchog versucht (Test) aber irgendwie klappt das nicht
Hiermit sollte Testschalter ja ON gehen wenn der Sensor auf status "open" geht, aber nur wenn 10 Sekunden zuvor kein "closed" kommt... Sehe ich das richtig?
define Waschmaschine_fertig watchdog Sensor_Waschmaschine:open 00:00:10 Sensor_Waschmaschine:closed set Testschalter on

...

ph1959de

Schau mal, ob bei den vielen DOIF-Beispielen (Deutsche Version der commandref) eines dabei ist, das Du für Deinen Anwendungsfall verwenden kannst.

Gruß, Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

Ellert

Mit DOIF:

di DOIF ([WM] ne "open")
DOELSEIF ([WM] eq "open") (mach das)


und die Attribute

wait 0:10
do always


Solange WM nicht "open" ist hat DOIF den Status cmd_1, wenn WM gleich "open ist" kommt nach 10 s cmd_2, es sei denn, innerhalb der 10 s wird WM wieder ungleich "open"

Raschi1210

Danke für die Info.. habs aber jetzt so gelöst (setstate ... defined hatte ich nicht angegeben und somit nur einmal ausgeführt)
define Waschmaschine_fertig watchdog Sensor_Waschmaschine:open 00:00:10 Sensor_Waschmaschine:closed set Testschalter on;; setstate Waschmaschine_fertig defined