filelog nur loggen wenn Wert geändert

Begonnen von Georg312, 27 Dezember 2012, 11:34:14

Vorheriges Thema - Nächstes Thema

Georg312

Hallo,

gibt es eine Möglichkeit dem filelog beizubringen, dass nur dann etwas geschrieben wird wenn sich der neue Wert vom alten unterscheidet?

Gerade bei den Temperatursensoren wird teilweise 20 mal der gleiche Wert geschrieben. Hier könnte man ganz einfach viel Speicherplatz sparen?!

Gruß Georg

Puschel74

Hallo,

ich vermute du suchst nach
event-on-change-reading?

Grüße
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.

Georg312

Ja, das sieht gut aus!

event-on-change-reading <THSensor-device> temperature

funktioniert zwar nicht. Es kommt gar nichts durch.

mit

event-on-change-reading <THSensor-device> *.

geht es aber!

WiKa

Zitat von: skorpion37 schrieb am Do, 27 Dezember 2012 18:50event-on-change-reading <THSensor-device> temperature

funktioniert zwar nicht. Es kommt gar nichts durch.

mit

event-on-change-reading <THSensor-device> *.

geht es aber!

Kann ich so bestätigen.
Bei TH-Sensoren kein Problem, da die Werte nur durch veränderte äußere Bedingungen ändern.

Mein Energiemonitor liefert aber auch einen kummulierten Wert "Gesamtverbrauch", welcher sich natürlich bei jeder Meldung des Sensors geändert hat.
Mithin bewirkt "event-on-change-reading <Energy-device> *." keine Verringerung der Anzahl Einträge im Log.
Ich habe diverse Kombinationen "event-on-change-reading" "event-on-update-reading" ausprobiert, leider ohne Erfolg.
Entweder keine, oder alle readings.
Und mein Sensor ist sehr gesprächig (//images/smiley_icons/icon_smile.gif)

VG,
WiKa

 
FB7390 FW:FRITZ!OS 05.50 / RFXTRX433 FW:433_64 / ELRO AB440R (modified to IT-Code) - AB440S (IT-Code) - AB440IS (IT-Code) / Oregon THGN132N - THN132N - THGR122N / Intertechno PAR-1000 - PAR1500

Georg312

Ja schade, hier wären Optionen wie
"nur jedes n-te Event verwenden" oder
"maximal alle n Minuten ein Event erzeugen"
ganz nett...

Michael

Moin

Will mich mal hier reinhängen.

Bei klappt es leider nicht.

Wo gehört das "attr Device_XXX event-on-change-reading ???.*" denn hin?
Hatte es schon im dummy, Filelog Versucht.
Auch die commandref ist mir bekannt.
Nur so ganz verstehe ich das wohl noch nicht. :-(

Dies ist meine Code:

#########################################################################
# Chef Device 0 = PC
define Chef_PC at +*00:05:00 trigger DeviceChefPC

define DeviceChefPC notify DeviceChefPC  {my $aa="";;\
  $aa=qx(/usr/bin/ctlmgr_ctl r landevice settings/landevice0/active );;\
  $aa=$aa * 1;;\
  fhem "set 00_Chef_PC $aa";;}

define FileLog_DeviceChefPC FileLog /var/InternerSpeicher/Generic-STORAGEDEVICE-01/fhem/log/99-DeviceChefPC-%m-%Y.log 00_Chef_PC.*
attr FileLog_DeviceChefPC room 03 Anwesenheit

define 00_Chef_PC dummy
attr 00_Chef_PC eventMap 0:Off 1:On
attr 00_Chef_PC room 03 Anwesenheit


Gruß
Michael
Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

Willi

Zitat von: skorpion37 schrieb am Do, 27 Dezember 2012 21:47Ja schade, hier wären Optionen wie
"nur jedes n-te Event verwenden" oder
"maximal alle n Minuten ein Event erzeugen"
ganz nett...

Ich packe mal auf die TODO-Liste von TRX_WEATHER für jedes Gerät die Möglichkeit zu haben ein Attribut "eventinterval" zu definieren. Bei dem kann man dann in Sekunden angeben, wie lange mindestens seit dem letzten Event vergangen sein muss, bis ein neues generiert wird.

Vorteil ist, dass man damit der Flut der Einträge in Filelog reduzieren kann. Wer es benutzt sollte sich aber klar sein, dass Sensordaten die in der Zwischenzeit zwar als Readings geschrieben, aber man keine Möglichkeit hat darauf per notify zu reagieren.

MfG Willi  
FHEM@Q600(debian) mit DS9490R (1Wire) | FHEM@Sheevaplug(debian) mit RFXCOM-Receiver(80002), CULv3 & USB-WDE1 | FHEM@odroid mit CULv2 & RFXtrx433

Willi

Zitat von: Michael schrieb am Sa, 29 Dezember 2012 12:39Moin

Will mich mal hier reinhängen.

Bei klappt es leider nicht.

Wo gehört das "attr Device_XXX event-on-change-reading ???.*" denn hin?
Hatte es schon im dummy, Filelog Versucht.
Auch die commandref ist mir bekannt.
Nur so ganz verstehe ich das wohl noch nicht. :-(

commandref.html ist schon der richtige Ort.

event-on-change-reading funktioniert nur in den Modulen, die dies unterstützen. Auch wenn dies evtl. nicht ganz klar angegeben war, hatten wir hier über meine TRX-Module diskutiert, die dies unterstützen.

Damit ein Modul event-on-change-reading unterstützt, muss das Modul readingsBulkUpdate() zum setzen der Readings nutzen. Da Filelog keine Readings setzt, kann es event-on-change-reading damit nicht unterstützen.

Eingeführt hat event-on-change-reading Boris in fhem.pl. Siehe entsprechendes Posting in FHEM developers.

MfG Willi
FHEM@Q600(debian) mit DS9490R (1Wire) | FHEM@Sheevaplug(debian) mit RFXCOM-Receiver(80002), CULv3 & USB-WDE1 | FHEM@odroid mit CULv2 & RFXtrx433