Autor Thema: Logfile Zahlen grösser  (Gelesen 297 mal)

Offline satprofi

  • Hero Member
  • *****
  • Beiträge: 1691
Logfile Zahlen grösser
« am: 15 August 2022, 13:05:07 »
Hallo.
Wie kann ich Zahlen grösser 1000 nciht ionslogfile schreiben lassen? ignoreRegexp evt. ?
gruss
-----------------------------------------------------------------------
Raspberry - Fhem 5.7 CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Offline Guybrush

  • Full Member
  • ***
  • Beiträge: 200
Antw:Logfile Zahlen grösser
« Antwort #1 am: 15 August 2022, 13:43:34 »
Immer erstmal einmal in die CommandRef gucken / suchen, ob es da nicht was passendes gibt...  ::)
DbLogValueFn
attr <device> DbLogValueFn {}
Wird DbLog genutzt, wird in allen Devices das Attribut DbLogValueFn propagiert. Es kann über einen Perl-Ausdruck auf die Variablen $TIMESTAMP, $READING, $VALUE (Wert des Readings) und $UNIT (Einheit des Readingswert) zugegriffen werden und diese verändern, d.h. die veränderten Werte werden geloggt.
Außerdem hat man Lesezugriff auf $DEVICE (den Namen des Quellgeräts), $EVENT, $LASTTIMESTAMP und $LASTVALUE zur Bewertung in Ihrem Ausdruck.
Die Variablen $LASTTIMESTAMP und $LASTVALUE enthalten Zeit und Wert des zuletzt protokollierten Datensatzes von $DEVICE / $READING.
Soll $TIMESTAMP verändert werden, muss die Form "yyyy-mm-dd hh:mm:ss" eingehalten werden, ansonsten wird der geänderte $timestamp nicht übernommen. Zusätzlich kann durch Setzen der Variable "$IGNORE=1" der Datensatz vom Logging ausgeschlossen werden.
Die devicespezifische Funktion in "DbLogValueFn" wird vor der eventuell im DbLog-Device vorhandenen Funktion im Attribut "valueFn" auf den Datensatz angewendet.

Beispiel
attr SMA_Energymeter DbLogValueFn
{
  if ($READING eq "Bezug_WirkP_Kosten_Diff"){
    $UNIT="Diff-W";
  }
  if ($READING =~ /Einspeisung_Wirkleistung_Zaehler/ && $VALUE < 2){
    $IGNORE=1;
  }
}

Offline Guybrush

  • Full Member
  • ***
  • Beiträge: 200
Antw:Logfile Zahlen grösser
« Antwort #2 am: 15 August 2022, 13:46:06 »
attr <DEVICE> DbLogValueFn { $IGNORE = 1 if ($VALUE > 1000);}

Offline satprofi

  • Hero Member
  • *****
  • Beiträge: 1691
Antw:Logfile Zahlen grösser
« Antwort #3 am: 16 August 2022, 19:29:37 »
attr acceptedRange hat geholfen bis jetzt.
kannte ich nicht
gruss
-----------------------------------------------------------------------
Raspberry - Fhem 5.7 CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Offline Guybrush

  • Full Member
  • ***
  • Beiträge: 200
Antw:Logfile Zahlen grösser
« Antwort #4 am: 16 August 2022, 20:22:40 »
hauptsache es hat dir geholfen :-)

 

decade-submarginal