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"}}
$value ist out und wurde durch Value ersetzt.
watchdog wäre eine Möglichkeit.
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
...
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
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"
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