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
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.
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.
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
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
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
Danke fuer die Meldung habs gefixt.
Ist halt das traurige Schicksal der rereadcfg Fans: das wird inzwischen kaum getestet.
Hallo, funktioniert. Danke!!