Hallo,
ich versuche einen watchdog an's laufen zu bekommen aber es gelingt mir leider nicht :(
Ich habe einen Sonoff POW (Schalter mit Leistungsmessung) in FHEM eingebunden. Im EventMonitor bekomme ich folgende Events:
Zitat
2021-02-04 23:25:59 ESPEasy ESPEasy_Sonoff_POW_01_POW Power: 0.0
2021-02-04 23:25:59 ESPEasy ESPEasy_Sonoff_POW_01_POW Voltage: 239
2021-02-04 23:25:59 ESPEasy ESPEasy_Sonoff_POW_01_POW Current: 0.00
2021-02-04 23:25:59 ESPEasy ESPEasy_Sonoff_POW_01_POW Pulses: 65338
2021-02-04 23:25:59 ESPEasy ESPEasy_Sonoff_POW_01_POW Cur: 0.00 Pow: 0.0 Pul: 65338 Vol: 239
Nun möchte ich einen watchdog haben, der nach 30 Sekunden das Modul ausschaltet wenn der Strom für 30 Sekunden "0.00" ist - oder noch besser: wenn der Strom für 30 Sekunden kleiner als 0.0x ist.
Der watchdog den ich über den EventMonitor angelegt habe sieht so aus:
ESPEasy_Sonoff_POW_01_POW:Current:.0.00 00:00:30 SAME set ESPEasy_Sonoff_POW_01_Relay off
Damit schaltet er aber leider genau falsch herum: Sobald ein Strom fliesst wird das Gerät nach 30 Sekunden ausgeschaltet, ist / bleibt der Strom aber auf 0.00 bleibt das Gerät ewig angeschaltet.
Es wäre super, wenn mir einer von euch sagen könnte wie ich den watchdog aufbauen muss, dass er bei Strom länger als 30 Sekunden unter 0.0x schaltet.
Danke und viele Grüsse
Bäschdler
Wenn ich mich nicht irre, dann muesste statt SAME ein Wert, was als "laeuft" eingestuft werden kann, spezifiziert werden.
Da watchdog nur Regexps kann, sind Ausdruecke wie "groesser als" nur umstaendlich zu spezifizieren, z.Bsp. muss man 0\.[0,1].* schreiben, um "kleiner als 0.2" zu realisieren.
In welchem zeitlichen Abstand sendet die Leistungsmessung die Messwerte?
Warum benutzt Du nicht einfach ein notify auf Current=0.00 und prüfst im Ausführungsteil, ob das ReadingsAge() > als 30 Sekunden ist?
Danke für eure Hilfe.
Ich habe es jetzt über einen Doif gelöst der Power statt Current überwacht. Da ich Power auf die Stellen vor dem Komma überwachen kann und der Doif auch kleiner als kann setze ich mir damit im Moment direkt das Schaltsignal (ohne Verzögerung). Eigentlich dürfte ich damit keine Probleme bekommen, da nicht damit zu rechnen ist, dass das Gerät kurz keine Leistung zieht und dann wieder erneut mehr Leistung benötigt. Für diese Anforderung könnte ich aber auch einen Dummy oder ein zusätzliches Reading generieren welches ich mit diesem Doif auf on / off setze und dieses dann mit einem watchdog überwachen.
Viele Grüsse
Bäschdler
die inflationäre Verwendung von dummies ist echt erschreckend...
Zitat von: Bäschdler am 05 Februar 2021, 16:40:47
Für diese Anforderung könnte ich aber auch einen Dummy oder ein zusätzliches Reading generieren welches ich mit diesem Doif auf on / off setze und dieses dann mit einem watchdog überwachen.
Das wait-Attribut im DOIF kennst du? Damit kannst du watchdog-Funktion realisieren.
Ja super - mit dem wait kann ich in der tat genau das abbilden was ich brauche.
DANKE