Hallo zusammen ,
ich habe DBLogging installiert und es macht auch soweit alles was es soll !
Aber ich habe 2 Temperaturmessungen die ich NICHT loggen möchte ,die aber fleissig gelegt werden :
Internals:
CFGFN /opt/fhem/FHEM/10_Fhem2Fhem.cfg
DEF Keller T
NAME KellerTemperatur
NDEV Keller
NR 815
NSTATE T
NTFY_ORDER 50-KellerTemperatur
STATE 16.375°C
TYPE cloneDummy
READINGS:
2018-12-18 20:24:29 T 16.375
2018-12-18 20:24:29 _state 16.375
2018-12-18 20:24:29 state active
2018-12-18 20:24:29 temperature 16.375
Attributes:
DbLogExclude .*
group ChlorTimerdosierung
room Chlordosierung
stateFormat T°C
trotz DbLogExclude .* wird geloggt ! Das verstehe ich nicht ...
Bei einer baugleichen Temperaturmessung funzt es und es wird nichts geloggt :
Internals:
CFGFN /opt/fhem/FHEM/10_Fhem2Fhem.cfg
DEF Jacuzzi T
NAME Jacuzzitemperatur
NDEV Jacuzzi
NR 811
NSTATE T
NTFY_ORDER 50-Jacuzzitemperatur
STATE 37.375°C
TYPE cloneDummy
READINGS:
2018-12-18 20:27:30 T 37.375
2018-12-18 20:27:30 _state 37.375
2018-12-18 20:27:30 state active
2018-12-18 20:27:30 temperature 37.375
Attributes:
DbLogExclude .*
group ChlorTimerdosierung,cloneDummy
room Chlordosierung
stateFormat T°C
Beide Messungen werden über Fhem2Fhem mit Gpio geholt :
#Remote-Raspberry
define Remoteserver FHEM2FHEM 192.168.178.51:7072 LOG:.*
attr Remoteserver DbLogExclude .*
attr Remoteserver room CUL_HM
#
define Jacuzzitemperatur cloneDummy Jacuzzi T
attr Jacuzzitemperatur DbLogExclude .*
attr Jacuzzitemperatur group ChlorTimerdosierung,cloneDummy
attr Jacuzzitemperatur room Chlordosierung
attr Jacuzzitemperatur stateFormat T°C
define FileLog_Jacuzzitemperatur FileLog ./log/Jacuzzitemperatur-%Y-%m-%d.log Jacuzzitemperatur
attr FileLog_Jacuzzitemperatur DbLogExclude .*
attr FileLog_Jacuzzitemperatur archivedir ./log/LogArchiv/
attr FileLog_Jacuzzitemperatur group Temperatur
attr FileLog_Jacuzzitemperatur nrarchive 7
attr FileLog_Jacuzzitemperatur room LogFiles
#
define KellerTemperatur cloneDummy Keller T
attr KellerTemperatur DbLogExclude .*
attr KellerTemperatur group ChlorTimerdosierung
attr KellerTemperatur room Chlordosierung
attr KellerTemperatur stateFormat T°C
define FileLog_KellerTemperatur FileLog ./log/KellerTemperatur-%Y-%m-%d.log KellerTemperatur
attr FileLog_KellerTemperatur DbLogExclude .*
attr FileLog_KellerTemperatur archivedir ./log/LogArchiv/
attr FileLog_KellerTemperatur group Temperatur
attr FileLog_KellerTemperatur nrarchive 7
attr FileLog_KellerTemperatur room LogFiles
Jemand eine Idee ,warum die Kellertemperatur trotzdem in die Datenbank geschrieben wird ?
Du müsstest mal das DbLog Device auf verbose 4 stellen und einen logfile Auszug posten der zeigt was passiert wenn die Kellertemperatur einen Event geworfen hat.
Dazu noch ein list vom DbLog Device wäre hilfreich.
Grüße
Heiko
Erstmal Danke ...
Das DBlog device :
Internals:
COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
CONFIGURATION /opt/fhem/db.conf
DEF /opt/fhem/db.conf .*:.*
MODE asynchronous
MODEL MYSQL
NAME DBLogging
NR 1961
NTFY_ORDER 50-DBLogging
PID 2305
REGEXP .*:.*
STATE connected
TYPE DbLog
UTF8 0
VERSION 3.13.0
dbconn mysql:database=fhem;host=localhost;port=3306
dbuser fhemuser
HELPER:
COLSET 1
DEVICECOL 64
EVENTCOL 512
OLDSTATE connected
READINGCOL 64
TYPECOL 64
UNITCOL 32
VALUECOL 128
READINGS:
2018-12-18 23:43:25 CacheUsage 6
2018-12-18 23:43:25 NextSync 2018-12-18 23:43:55 or if CacheUsage 500 reached
2018-12-18 23:43:25 background_processing_time 0.0288
2018-12-18 23:43:25 sql_processing_time 0.0162
2018-12-18 23:43:25 state connected
cache:
index 1883
Attributes:
DbLogExclude .*
DbLogSelectionMode Exclude/Include
DbLogType Current/History
asyncMode 1
icon HutschIcon3
room DBLog
showproctime 1
shutdownWait 2
Das list vom DbLog ist absolut ok ... nun kommt es auf den Logauszug an. Vllt. fällt dann etwas auf.
Guten morgen ,
hier das Log :
2018.12.19 08:42:55 4: DbLog DBLogging -> ################################################################
2018.12.19 08:42:55 4: DbLog DBLogging -> ### start of new Logcycle ###
2018.12.19 08:42:55 4: DbLog DBLogging -> ################################################################
2018.12.19 08:42:55 4: DbLog DBLogging -> check Device: KellerTemperatur , Event: T: 16.312
2018.12.19 08:42:55 4: DbLog DBLogging -> check Device: KellerTemperatur , Event: _state: 16.312
2018.12.19 08:42:55 4: DbLog DBLogging -> check Device: KellerTemperatur , Event: state: active
2018.12.19 08:42:55 4: DbLog DBLogging -> number of events received: 3 for device: KellerTemperatur
2018.12.19 08:42:55 4: DbLog DBLogging -> ################################################################
2018.12.19 08:42:55 4: DbLog DBLogging -> ### start of new Logcycle ###
2018.12.19 08:42:55 4: DbLog DBLogging -> ################################################################
2018.12.19 08:42:55 4: DbLog DBLogging -> added event - Timestamp: 2018-12-19 08:42:55, Device: Keller, Type: GPIO4, Event: T: 16.312, Reading: T, Value: 16.312, Unit:
2018.12.19 08:42:55 4: DbLog DBLogging -> check Device: Keller , Event: T: 16.312
2018.12.19 08:42:55 4: DbLog DBLogging -> number of events received: 1 for device: Keller
2018.12.19 08:42:55 4: DbLog DBLogging -> ################################################################
könnte es sein das es damit zusammen hängt ,das ich noch das alte cloneDummy nutze ?
...lief bisher zuverlässig ( vor Umstellung auf DBLog ) mit fhem2fhem auf einem alten Raspi im Keller .
Beziehungsweise evtl. an einer uralten Fhem Version die auf dem Raspi wohl noch läuft ?
grüße
Aladin222
Zitatkönnte es sein das es damit zusammen hängt ,das ich noch das alte cloneDummy nutze ?
eher nicht.
Also ich gehe erstmal davon aus, dass dein Log von unten nach oben zu lesen ist ?
Jedenfalls gibt es eine Aufälligkeit. Dein Device "KellerTemperatur" wird, entgegen deiner Meldung, nicht geloggt.
Es werden 3 Events empfangen, aber keins davon hinzugefügt (added):
Zitat
2018.12.19 08:42:55 4: DbLog DBLogging -> check Device: KellerTemperatur , Event: T: 16.312
2018.12.19 08:42:55 4: DbLog DBLogging -> check Device: KellerTemperatur , Event: _state: 16.312
2018.12.19 08:42:55 4: DbLog DBLogging -> check Device: KellerTemperatur , Event: state: active
2018.12.19 08:42:55 4: DbLog DBLogging -> number of events received: 3 for device: KellerTemperatur
Es gibt aber ein Device "Keller", dessen Event geloggt wird:
Zitat
2018.12.19 08:42:55 4: DbLog DBLogging -> added event - Timestamp: 2018-12-19 08:42:55, Device: Keller, Type: GPIO4, Event: T: 16.312, Reading: T, Value: 16.312, Unit:
2018.12.19 08:42:55 4: DbLog DBLogging -> check Device: Keller , Event: T: 16.312
2018.12.19 08:42:55 4: DbLog DBLogging -> number of events received: 1 for device: Keller
Wenn du dir sicher bist, dass "KellerTemperatur" geloggt wird obwohl du keinen Eintrag im Cache findest (kannst du leicht mit "listCache" kontrollieren), hätte ich noch eine Idee.
Es gibt eine "Hintertür" für Programmierer. Damit können Modulautoren ohne Eventgenerierung direkt Daten in die DB schreiben unter Umgehung der diversen Regexfilter.
Du müsstest DbLog auf die neuesten Version 3.13.1 updaten und nochmal verbose 4 einschalten. Ich hatte kürzlich genau wegen einem ähnlichen Fall die Logmeldungen erweitert, damit man sieht wenn über die "Backdoor" geschrieben wird.
Grüße
Heiko