event-on-change-reading und S7

Begonnen von Edi77, 28 September 2017, 00:56:15

Vorheriges Thema - Nächstes Thema

Edi77

Ich habe an einer Logo 0ba7 2 Temperatursensoren
Trotz "event-min-interval 60" wird bei jeder Änderung ein Eintrag in das Logfile geschrieben

Gibt es eine Möglichkeit mit event-on-Change-reading das man z.B. erst bei z.B. +/- 1C und nicht immer bei +/- 0.01 Änderung ein Eintrag in das Logfile zu machen?

Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

pc1246

Moin Edi
Mein Verstaendniss war bisher immer so, dass mit event_on_change_reading das zyklische gelogge unterbunden wird. Mit dem min_intervall wird dann ein Eintrag erzeugt, auch ohne Aenderung. Bei Dir ist es aber andersherum, Deine Temperatur ist auf 0,01°C genau, und dementsprechend schwankt/aendert Sie sich auch. Ich wuerde Dir vorschlagen, da Dir 1°C genau genug sind, Deinen Temperaturwert in der Logo um die Kommastellen zu beschneiden, zumindest fuers Log und dann die entsprechenden Einstellungen machen!
Gruss Chrsitoph
HP T610
Onkyo_AVR;Enigma2; SB_Server; SB_Player; HM-USB; PhilipsTV; harmony hub; Jeelink mit PCA301; Somfy; S7-300; LGW; HUE; HM-IP auf Charly; div

Wzut

wie so oft schafft ein Blick in die commandref Klarheit :
Zitatevent-on-change-reading
The attribute takes a comma-separated list of readings. You may use regular expressions in that list. If set, only changes of the listed readings create events. In other words, if a reading listed here is updated with the new value identical to the old value, no event is created. If an optional [:threshold] is given after a reading name events are only generated if the change is >= threshold.
d.h. attr <name> event-on-change-reading temperature:1
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Edi77

DANKE @Wzut

@pc1246
Ich benötige im Log nur 1C Genauigkeit, aber für andere Berechnungen 0.1C daher die Unterscheidung.

Das was ich so seltsam finde ist das "event-min-interval 60" nicht greift, und er trotzdem weiter bei jeder Änderung einen Eintrag macht.
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

Wzut

Zitatevent-min-interval
This attribute takes a comma-separated list of reading:minInterval pairs. You may use regular expressions for reading. Events will only be generated, if at least minInterval seconds elapsed since the last reading of the matched type. If event-on-change-reading is also specified, they are combined with OR: if one of them is true, the event is generated.
beachte das OR :)
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

pc1246

Hallo
Es bleibt immer wieder spannend! Da Lesen ja bekanntlich unsportlich ist, hatte ich mal wieder nur Halbwissen. Das mit dem treshold ist eine coole Sache.
Zum Glueck lag ich ja nicht ganz falsch!
Gruss Christoph
HP T610
Onkyo_AVR;Enigma2; SB_Server; SB_Player; HM-USB; PhilipsTV; harmony hub; Jeelink mit PCA301; Somfy; S7-300; LGW; HUE; HM-IP auf Charly; div

Edi77

Das mit dem "OR" habe ich auch schon gelesen, weil es mir schon bewusst war, entweder nach spätestens 60 Sek. oder nach einer Änderung.
Ich hatte auch mal das event-on-Change-reading gelöscht und nur noch event-min-interval drin, und trotzdem kam alle 5 - 15 Sek. ein Eintrag weil der Wert sich um 0.3C geändert hat.
Das finde ich ja so seltsam!
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

Wzut

wie sah denn dein attr <name> event-min-interval  aus ?
Und klappt es denn wenigstens wenn event-on-Change-reading alleine mit :Wert definiert ist ?
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Edi77

Hallo


define Heizung_Temp S7_ARead db 1 2 s16
attr Heizung_Temp IODev Logo124
attr Heizung_Temp event-on-change-reading state
attr Heizung_Temp room LOGO124
define FileLog_Heizung_Temp FileLog ./log/Heizung_Temp-%Y.log Heizung_Temp
attr FileLog_Heizung_Temp logtype text
attr FileLog_Heizung_Temp room LOGO124
define SVG_FileLog_Heizung_Temp_1 SVG FileLog_Heizung_Temp:SVG_FileLog_Heizung_Temp_1:CURRENT
attr SVG_FileLog_Heizung_Temp_1 label "Heizung_Temp Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr SVG_FileLog_Heizung_Temp_1 room LOGO124


Wenn ich es in

attr Heizung_Temp event-on-change-reading state:5

ändere wird nichts mehr ins log geschrieben
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

Wzut

#9
hmm, ich kenne dein Modul S7_ARead nicht. Hat das keine anderen Readings ausser state ?
Bzw. kein eigenes Reading mit deinem Temperaturwert ? Wenn nein, leg dir doch mal zum Test ein userReadings an:
attr Heizung_Temp userReadings temperature { return ReadingsNum($name,"state",0);}
dann ändere attr Heizung_Temp auf event-on-change-reading temperature:5
Schaut das im Log nun besser aus ?
ich würde mich auch ersteinmal nicht so auf das Log versteifen, hast du mal im Event Montor einen Filter auf Heizung_Temp.* gesetzt und den eine Weile beobachtet ?
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

nuccleon