FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Edi77 am 09 August 2018, 13:27:03

Titel: Wertänderung detektieren
Beitrag von: Edi77 am 09 August 2018, 13:27:03
Hallo,

Ich habe einen W266 an FHEM angebunden und die Blitzerkennung läuft gut.
Damit der plot auch schön aussieht habe ich ein Event-min-interval auf 3600sek gestellt, also wird 1x pro Stunde ein Wert in das log File geschrieben auch wenn sich nichts ändert.

Jetzt möchte ich aber sobald sich der Lightning Counter erhöht eine Nachricht per Pushbullet/EMail oder sonst was bekommen.
Wie löse ich das Event aus das wenn sich Lightning Count >= +1 als der letzter Wert ist?

Titel: Antw:Wertänderung detektieren
Beitrag von: marvin78 am 09 August 2018, 13:37:35
Auf jede Änderung reagieren, per setreading den alten Wert weg schreiben (alternativ in einen dummy) und im notify einen Vergleich zwischen alt und neu machen.
Titel: Antw:Wertänderung detektieren
Beitrag von: Pfriemler am 09 August 2018, 15:41:36
Ohne die W266 zu kennen - üblich ist doch, dass die gelieferten Werte von Sensoren in readings landen. Wie marvin78 sagt: Erzeugung der Events auf geänderte Werte reduzieren (Attribut "event-on-change-reading .*" tut dies für alle Readings des Gerätes). So etwas nutze ich bei mir bei der Anwesenheitsprotokollierung - ein Notify aktualisiert einen Dummy bei Änderung des Readings, zusätzlich wird der Dummy per setreading jede Stunde einmal aktualisiert - das Log reagiert auf den Dummy und beides sauber mit.
Zudem dürfte ein Notify auf den Lighning Counter allein in diesem Fall ausreichen, um eine Nachricht zu schicken, da es ja dann nur befeuert wird, wenn sich der Wert des Readings ändert - i.d.R. wohl um eins erhöht, oder?
Titel: Antw:Wertänderung detektieren
Beitrag von: Frank_Huber am 09 August 2018, 15:48:50
gibt es nicht sowas wie "oldvalue"
ich meine das ist speziell für Vergleiche mit dem vorhergehenden Wert.

kuck mal hier, im beispiel für ein doif: https://forum.fhem.de/index.php/topic,77136.msg821440.html#msg821440
Titel: Antw:Wertänderung detektieren
Beitrag von: CoolTux am 09 August 2018, 15:58:25
Es gibt das Attribut oldReadings für die FHEM Funktion OldReadingsVal()
Titel: Antw:Wertänderung detektieren
Beitrag von: Edi77 am 09 August 2018, 16:48:57
@Pfriemler

Das Attriebut "event-on-change-reading .*"  habe ich ja gesetzt.
Allerdings auch Event-min-interval auf 3600sek ( sonst sieht der gplot nicht schön aus )

Also habe ich alle 3600Sek eine Event, obwohl es kein Blitz gab.
Titel: Antw:Wertänderung detektieren
Beitrag von: Pfriemler am 09 August 2018, 21:21:08
event-min-interval legt meines Wissens einen Mindestabstand zwischen erzeugten Events fest, auch wenn es häufigere Trigger dafür gab (eben weil die Station öfter sendet). Insofern steht zu befürchten, dass die Blitzmeldung auch dadurch verzögert wird.
Titel: Antw:Wertänderung detektieren
Beitrag von: Edi77 am 10 August 2018, 16:24:52
Wir sie nicht. Ich bekomme jede Stunden Tag und Nacht ein Blitzmeldung obwohl es keine Blitze gab.