FileLog - benutzen des Attributs addLog

Begonnen von knxler, 23 Januar 2021, 10:11:57

Vorheriges Thema - Nächstes Thema

knxler

Hallo,

ich möchte mit dem Attribut addLog in meinem FileLog zusätzliche logs generieren. Leider funktionirt das nicht was ist an meinem Eintag falsch?
Zitat
Internals:
   CFGFN      /opt/fhem/FHEM/dataLogging.cfg
   DEF        /NAS/pi3/fhem/log/GaesteWC-%Y.log d_Fensterkontakt:GaesteWC:.(open|closed)|d_Raum(Soll|Ist)(Temp|Humi):GaesteWC:.*|GaesteWC_Regler:(actuation|p_i|p_p|desired|measured):.*|GaesteWC_Ventil:ValvePosition:.*
   FD         12
   FUUID      5c8f48c8-f33f-5ea6-aab9-d4e1798066e06991
   NAME       FileLog_GaesteWC
   NR         337
   NTFY_ORDER 50-FileLog_GaesteWC
   REGEXP     d_Fensterkontakt:GaesteWC:.(open|closed)|d_Raum(Soll|Ist)(Temp|Humi):GaesteWC:.*|GaesteWC_Regler:(actuation|p_i|p_p|desired|measured):.*|GaesteWC_Ventil:ValvePosition:.*
   STATE      active
   TYPE       FileLog
   currentlogfile /NAS/pi3/fhem/log/GaesteWC-2021.log
   logfile    /NAS/pi3/fhem/log/GaesteWC-%Y.log
   READINGS:
     2021-01-23 09:59:06   linesInTheFile  31190
Attributes:
   addLog     d_Fensterkontakt:GaesteWC:5,GaesteWC_Regler:(actuation|p_i|p_p|desired|measured):5
   logtype    text
Ich habe den Eintrag (actuation|p_i|p_p|desired|measured) mit und ohne Klammern versucht.
Es werden keine Logs erzeugt die ich gerne für menen Plot hätte.
Testweise habe ich den Takt auf 5 Sekunden gesetzt damit ich schnell ein Ergebnis in meiner Logdatei sehe.
Die Daten werden nur bei Änderung geloggt.
Ein event-min-interval möchte ich nicht benutzen da dann jedes mal ein Event erzeugt wird das dann über ein notify diverse Aktionen auslöst. Das Notify soll nur getriggert werden wenn es einen neuen geänderten Wert gibt.
Hat jemand eine Idee was an meinem Tripel falsch ist?

Gruß Martin

rudolfkoenig

Ich sehe kein addLogMinInterval unter Internals, ich gehe davon aus, dass in der FHEM-Log etliche Fehlermeldungen zu sehen sind, in der Art:
Zitat2021.01.23 12:33:25.107 3: FileLog_GaesteWC addLog no device d_Fensterkontakt found, no device GaesteWC_Regler found
2021.01.23 12:36:08.245 3: FileLog_GaesteWC addLog d_Fensterkontakt:GaesteWC:5 => no GaesteWC found for d_Fensterkontakt, GaesteWC_Regler:(actuation|p_i|p_p|desired|measured):5 => no (actuation|p_i|p_p|desired|measured) found for GaesteWC_Regler
Nachdem ich bei mir die fehlenden Eintraege angelegt habe:
define d_Fensterkontakt dummy
setreading d_Fensterkontakt GaesteWC BLA1
define GaesteWC_Regler dummy
setreading GaesteWC_Regler actuation BLA2

hatte ich den Internal und keine Fehlermeldungen.

Wenn das nicht der Fall ist, dann haette ich gerne Beispiele fuer die vermissten Events aus dem Event-Monitor.

knxler

Fehlermeldungen bekomme ich nicht.
Mein Regler ist so definiert:
Zitat
Internals:
   CFGFN      /opt/fhem/FHEM/homematic.cfg
   DEF        GaesteWC_Thermometer:measured-temp GaesteWC_Virt_TC_Ch:valvePos
   FUUID      5c8f48c9-f33f-5ea6-6453-f01b47d714b5631a
   NAME       GaesteWC_Regler
   NR         480
   NTFY_ORDER 50-GaesteWC_Regler
   STATE      processing
   TYPE       PID20
   VERSION    1.0.0.9
   READINGS:
     2021-01-23 15:09:34   actuation       0
     2021-01-23 15:09:34   actuationCalc   -4.24999999999995
     2021-01-23 15:09:34   delta           -0.399999999999999
     2021-01-23 15:09:34   desired         20.0
     2021-01-23 15:09:00   istTemp         20.4
     2021-01-23 15:09:34   measured        20.4
     2021-01-23 15:09:34   p_d             0
     2021-01-23 15:09:34   p_i             11.75
     2021-01-23 15:09:34   p_p             -15.9999999999999
     2021-01-23 15:09:34   state           processing
   helper:
     actor      GaesteWC_Virt_TC_Ch
     actorCommand valvePos
     actorErrorAction errorPos
     actorErrorPos 40
     actorInterval 920
     actorKeepAlive 1800
     actorLimitLower 0
     actorLimitUpper 99
     actorThreshold 5
     actorTimestamp 2021-01-23 15:00:49
     actorValueDecPlaces 0
     adjust     
     calcInterval 25
     deltaGradient 0
     deltaOld   -0.399999999999999
     deltaOldTS 2021-01-23 15:09:00
     deltaTreshold 0
     desiredName desired
     disable    0
     factor_D   0
     factor_I   2.5
     factor_P   40
     isWindUP   1
     measuredName measured
     reading    measured-temp
     regexp     ^([\+,\-]?\d+\.?\d*$)
     reverseAction 0
     sensor     GaesteWC_Thermometer
     sensorTimeout 3600
     stopped    0
     updateInterval 600
Attributes:
   event-on-change-reading actuation:5,desired,measured:0.1,p_i:0.5,p_p:1.0
   pidActorErrorAction errorPos
   pidActorErrorPos 40
   pidActorInterval 920
   pidActorLimitUpper 99
   pidActorTreshold 5
   pidActorValueDecPlaces 0
   pidCalcInterval 25
   pidFactor_I 2.5
   pidFactor_P 40

und mein Dummy für den Fensterkontakt so

Zitat
Internals:
   CFGFN      /opt/fhem/FHEM/heizung.cfg
   FUUID      5c8f48c8-f33f-5ea6-a19f-d3ae043541fa17c8
   NAME       d_Fensterkontakt
   NR         729
   STATE      ???
   TYPE       dummy
   READINGS:
     2021-01-18 13:51:48   Bad_li          closed
     2021-01-20 17:19:58   Bad_re          open
Attributes:
   readingList Galerie_re Galerie_li Galerie_Dachf FlurOG Bad_re Bad_li Schlafzimmer_re Schlafzimmer_li GaesteWC

Was du mit addLogMinInterval meinst ist mit nicht klar.



rudolfkoenig

Beim Ausfuehren von "attr XX addLog" werden die Paremeter geprueft, und falls etwas noch nicht definiert ist, eine Fehlermeldung erzeugt.
Wenn der Befehl ueber FHEMWEB ausgefuehrt wurde, dann bekommt man ein Dialog mit dem Fehler, sonst (auch beim FHEM-Start) steht das im FHEM-Log.
Falls keine Fehler gefunden wurden, dann wird ein Internal Wert addLogMinInterval gesetzt. Dieser Fehlt bei dir. Bei mir schaut das so aus:
ZitatInternals:
   DEF        log/test.log Fensterkontakt:GaesteWC:.(open|closed)|d_Raum(Soll|Ist)(Temp|Humi):GaesteWC:.*|GaesteWC_Regler:(actuation|p_i|p_p|desired|measured):.*|GaesteWC_Ventil:ValvePosition:.*
   FD         7
   FUUID      600c3337-f33f-c296-e684-2ba0d9f71dfbc2c9
   NAME       f
   NR         11
   NTFY_ORDER 50-f
   REGEXP     Fensterkontakt:GaesteWC:.(open|closed)|d_Raum(Soll|Ist)(Temp|Humi):GaesteWC:.*|GaesteWC_Regler:(actuation|p_i|p_p|desired|measured):.*|GaesteWC_Ventil:ValvePosition:.*
   STATE      active
   TYPE       FileLog
   addLogMinInterval 5
   currentlogfile log/test.log
   logfile    log/test.log
   READINGS:
     2021-01-23 15:32:07   linesInTheFile  6
Attributes:
   addLog     d_Fensterkontakt:GaesteWC:5,GaesteWC_Regler:(actuation|p_i|p_p|desired|measured):5
   logtype    text

knxler

Hallo, ich habe das Problem gefunden. Es lag an dem Fensterkontatdummy, der ist seit einiger Zeit außer Betrieb aber definiert. Ich habe aber keine Felermeldungen im log wie du es oben erwähnt hast obwohl mein global verbose auf 3 eingestellt ist.
Nun ist auch addLogMinInterval im FileLog gesetzt.

Gruß und Danke
Martin

knxler

Hallo, ich muss mich noch einmal melden.
Ich habe nun das Problem, dass wenn ich ein rereadcfg mache danach das attribut addLogMinInterval gelöscht wird und auch nicht mehr gesetzt wird.
Ich muß danach in den entsprechenden FileLog und dort dann über attr device addLog das attribut neu initialisieren. Danach ist dann addLogMinInterval wieder gesetzt.
Ein "Save config" löscht das Attribut auch wieder.
Gruß Martin

rudolfkoenig

Danke fuer die Meldung habs gefixt.

Ist halt das traurige Schicksal der rereadcfg Fans: das wird inzwischen kaum getestet.

knxler