Datenbank loggt Einträge nicht

Begonnen von wowogiengen, 22 September 2024, 21:14:07

Vorheriges Thema - Nächstes Thema

wowogiengen

Hallo,
ich habe FHEM an die SQL-Datenbank angeschlossen:
define mySQLDB DbLog ./mySQLDB.conf HzgThermostat.*:statMeasured-temp.*AvgLast|HzgAktor.*:statLevel.*Last
Damit sollen zwei Gruppen von Readings in die Datenbank eingetragen werden:
einmal
HzgThermostat.*:statMeasured-temp.*AvgLastalso die Durchschnittstemperatur der letzten Stunde. Das funktioniert auch soweit. Ich sehe die Einträge in der DB, wenn ich ein SELECT darauf ausführe.

Zum zweiten dann
HzgAktor.*:statLevel.*Last
Also die Zeitdauern für An und Aus der Aktoren. Diese zeigen mir das Reading auch an (bsp. für das Büro):
define HzgAktorBuero CUL_HM 609F1501
#   READINGS:
#     2024-09-22 21:11:34   statLevelDay    0: 20:39:46 0_Count: 9 100: 00:31:53 100_Count: 9
#     2024-09-21 23:59:55   statLevelDayLast 0: 23:36:53 0_Count: 9 100: 00:23:07 100_Count: 8
#     2024-09-22 21:11:34   statLevelHour   0: 00:07:10 0_Count: 2 100: 00:04:29 100_Count: 2
#     2024-09-22 20:59:55   statLevelHourLast 0: 01:00:00 0_Count: 1
#     2024-09-22 21:11:34   statLevelMonth  0: 21d 14:30:16 0_Count: 117 100: 06:41:23 100_Count: 117
#     2024-08-31 23:59:55   statLevelMonthLast 0: 30d 10:55:10 0_Count: 241 100: 13:04:50 100_Count: 240
#     2024-09-22 21:11:34   statLevelYear   0: 175d 21:34:20 0_Count: 1363 100: 2d 05:39:32 100_Count: 1363 (since: 2024-03-28_16:57:42)

Aber irgendwie bekomme ich den Wert dann nicht in die Datenbank...
was mache ich oben beim DbLog Device denn falsch?

Viele Grüße Wolfgang

DS_Starter

Hallo Wolfgang,

ich vermute ein Problem beim Splitting der Daten in die entsprechenden Datenbankfelder. Die Datensätze beinhalten viele ':' die zur Trennung von Readings und deren Werte der Events herangezogen werden.

Du kannst im DbLog das Attr verbose4Devs = HzgAktor.* setzen (um den Überblick zu behalten) und danach noch verbose = 5. Dann sieht man im Log sehr wahrscheinlich die Problematik.

Grüße,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

wowogiengen

Hallo,
das Attribut habe ich mal gesetzt...
Mir ist auch noch aufgefallen, dass zum Beispiel beim Thermostat
HzgThermostatBuero DbLogInclude .*measured-temp.*steht.
Bei den Aktoren steht da aber nichts drin...
Was sollte ich eintragen?

DS_Starter

Das kommt darauf an wie im DbLog das Attr DbLogSelectionMode gesetzt ist, falls es gesetzt ist.
Wenn DbLogSelectionMode = Include gesetzt, dann musst du in allen zu loggenden Devices das Attr DbLogInclude  entsprechend deinen Wünschen setzen.
Ist DbLogSelectionMode im DbLog nicht gesetzt, ist Exclude der default und das Attr DbLogInclude in den Devices wird ignoriert.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

wowogiengen

Hallo,
die Logdatei kann ich hier mal anhängen, ab der Änderung mit dem Verbose...
Fehler seh ich da jetzt keinen (bis auf die PERL WARNING:, aber da hab ich wohl Befehle falsch eingetippt)...

Das DbLog-Device hat diese Definition

define mySQLDB DbLog ./mySQLDB.conf HzgThermostat.*:statMeasured-temp.*AvgLast|HzgAktor.*:statLevel.*.Last
attr mySQLDB .* 1
attr mySQLDB DbLogSelectionMode Exclude/Include
attr mySQLDB DbLogType Current/History
attr mySQLDB asyncMode 1
attr mySQLDB cacheLimit 1500
attr mySQLDB event-on-change-reading CacheUsage
attr mySQLDB insertMode 1
attr mySQLDB room Büro,DbLog,LogFiles,System
attr mySQLDB showNotifyTime 0
attr mySQLDB showproctime 1
attr mySQLDB stateFormat {\
"Cache: ".ReadingsVal($name,"CacheUsage",0)."<br> NextSync:".ReadingsVal($name,"NextSync",0)\
}
attr mySQLDB syncInterval 240
attr mySQLDB verbose 5
attr mySQLDB verbose4Devs HzgAktor.*
attr mySQLDB webCmd listCache:commitCache
#   COLUMNS    field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
#   CONFIGURATION ./mySQLDB.conf
#   DEF        ./mySQLDB.conf HzgThermostat.*:statMeasured-temp.*AvgLast|HzgAktor.*:statLevel.*.Last
#   FD         4
#   FUUID      5ed93474-f33f-a625-5c2b-b4f6628ef5ffc1ff
#   FVERSION   93_DbLog.pm:v5.9.3-s28085/2023-10-22
#   MODE       asynchronous
#   MODEL      MYSQL
#   NAME       mySQLDB
#   NOTIFYDEV  HzgThermostat.*,HzgAktor.*
#   NR         2
#   NTFY_ORDER 50-mySQLDB
#   PID        7502
#   REGEXP     HzgThermostat.*:statMeasured-temp.*AvgLast|HzgAktor.*:statLevel.*.Last
#   SBP_PID    7503
#   SBP_STATE  running
#   STATE      Cache: 0<br> NextSync:2024-09-22 22:12:24 or when CacheUsage 1500 is reached
#   TYPE       DbLog
#   UTF8       0
#   dbconn     mysql:database=fhem;host=192.168.188.6;port=3307
#   dbuser     fhemdbuser
#   eventCount 7
#   HELPER:
#     COLSET     1
#     DEVICECOL  64
#     EVENTCOL   512
#     OLDSTATE   connected
#     PACKAGE    main
#     READINGCOL 64
#     TC         current
#     TH         history
#     TYPECOL    64
#     UNITCOL    32
#     VALUECOL   128
#     VERSION    5.9.3
#   OLDREADINGS:
#   READINGS:
#     2024-09-22 22:00:24   CacheOverflowLastNum 0
#     2024-03-28 17:00:16   CacheOverflowLastState normal
#     2024-09-22 22:08:24   CacheUsage      0
#     2024-09-22 22:08:24   NextSync        2024-09-22 22:12:24 or when CacheUsage 1500 is reached
#     2024-09-22 22:00:25   background_processing_time 0.2908
#     2024-09-22 22:00:25   sql_processing_time 0.2747
#     2024-09-22 22:08:24   state           connected
#
setstate mySQLDB Cache: 0<br> NextSync:2024-09-22 22:12:24 or when CacheUsage 1500 is reached
setstate mySQLDB 2024-09-22 22:00:24 CacheOverflowLastNum 0
setstate mySQLDB 2024-03-28 17:00:16 CacheOverflowLastState normal
setstate mySQLDB 2024-09-22 22:08:24 CacheUsage 0
setstate mySQLDB 2024-09-22 22:08:24 NextSync 2024-09-22 22:12:24 or when CacheUsage 1500 is reached
setstate mySQLDB 2024-09-22 22:00:25 background_processing_time 0.2908
setstate mySQLDB 2024-09-22 22:00:25 sql_processing_time 0.2747
setstate mySQLDB 2024-09-22 22:08:24 state connected


die Attribute DbLogInclude sind auch nicht konsistent, aber trotzdem funktioniert das Logging der Temperaturen:

displayattr Hzg.* DbLogInclude

HzgAktorBuero statLevel.*
HzgHC_Bad .*:statpulseTimePerDayHourAvgLast
HzgHC_Buero pulseTimePerDay
HzgHC_Flur pulseTimePerDay
HzgHC_Schlafzimmer pulseTimePerDay
HzgHC_Toilette pulseTimePerDay
HzgHC_Wohnzimmer pulseTimePerDay
HzgThermostatBad .*:statMeasured-tempHourAvgLast
HzgThermostatBuero .*measured-temp.*
myStatDevice .*

Wäre nett, wenn ich da noch nen Tipp bekäme, den ich dann morgen abend umsetzen kann...
Vor allem, alles was nicht notwendig ist, rauswerfen...

DS_Starter

#5
Oh bitte verbose 5 nur im DbLog Device setzen und nicht global. Dann bitte das Log nochmal anhängen.

Ansonsten würde ich im DbLog Device das Attr DbLogSelectionMode löschen und in allen Devices ebenfalls das Attr DbLogInclude und ggf. das Attr DbLogExclude löschen.

Dann wird generell der im DEF angegebene Regex ausgewertet was m.M. nach normalerweise best Practice ist.

ACHTUNG:
vorher abklären welche Devices/Readings du wirklich loggen möchtest und ggf. den Regex im DEF erweitern/anpassen!

Edit: du solltest DbLog mal updaten. Aktuelle Version ist v5.10.2
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

wowogiengen

Hallo DS_Starter,
Zitat von: DS_Starter am 22 September 2024, 22:38:13Oh bitte verbose 5 nur im DbLog Device setzen und nicht global. Dann bitte das Log nochmal anhängen.
Das verbose 5 ist wirklich nur im DbLog-Device aktiv (und auch noch in einem DoIf), also sollte sich am Log nichts ändern.

Alle anderen verbose-Attribute sind auf 2, manche sogar nur auf 1, vielleicht sollte ich die alle mal auf 2 gleichziehen...

Zitat von: DS_Starter am 22 September 2024, 22:38:13Ansonsten würde ich im DbLog Device das Attr DbLogSelectionMode löschen und in allen Devices ebenfalls das Attr DbLogInclude und ggf. das Attr DbLogExclude löschen.

Dann wird generell der im DEF angegebene Regex ausgewertet was m.M. nach normalerweise best Practice ist.

ACHTUNG:
vorher abklären welche Devices/Readings du wirklich loggen möchtest und ggf. den Regex im DEF erweitern/anpassen!

Edit: du solltest DbLog mal updaten. Aktuelle Version ist v5.10.2

Ich will eigentlich die Daten loggen, welche vom Statistic-Device erzeugt werden:

define myStatDevice statistics HzgThermostat.*|HzgAktor.*
attr myStatDevice DbLogInclude .*
attr myStatDevice durationPeriodHour 1
attr myStatDevice durationReadings level
attr myStatDevice minAvgMaxReadings measured-temp
attr myStatDevice room Büro,DbLog,System
attr myStatDevice singularReadings HzgThermostat.*:measured-temp:Avg:(Hour|Day|Month)|HzgAktor.*:level:DurationState:(Hour|Day|Month)\

attr myStatDevice verbose 1
#   DEF        HzgThermostat.*|HzgAktor.*
#   DEV_REGEXP HzgThermostat.*|HzgAktor.*
#   FUUID      65ab9864-f33f-a625-db6b-b1f16d1f973052d0
#   NAME       myStatDevice
#   NOTIFYDEV  global,HzgThermostat.*|HzgAktor.*
#   NR         225
#   NTFY_ORDER 10-myStatDevice
#   PREFIX     stat
#   STATE      Updated stats for: HzgThermostatWohnzimmer
#   TYPE       statistics
#   eventCount 8890
#   READINGS:
#     2024-09-22 20:53:23   monitoredDevicesCUL_HM HzgThermostatHWR,HzgAktorBad,HzgAktorBuero,HzgAktorFlur,HzgAktorSchlafzimmer,HzgAktorToilette,HzgAktorWohnzimmer,HzgThermostatBad,HzgThermostatBad_remote,HzgThermostatBuero,HzgThermostatFlur,HzgThermostatSchlafzimmer,HzgThermostatToilette,HzgThermostatWohnzimmer
#     2024-09-22 20:53:23   monitoredDevicesnotify HzgThermostatBuero_notify_1
#     2024-09-23 18:59:55   nextPeriodChangeCalc 2024-09-23 19:59:55
#     2024-09-23 18:59:55   state           Updated stats for: HzgThermostatWohnzimmer
#   fhem:
#     modulVersion $Date: 2023-10-22 16:27:28 +0200 (Sun, 22 Oct 2023) $
#     nextPeriodChangeTime 1727114395
#
setstate myStatDevice Updated stats for: HzgThermostatWohnzimmer
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorBad:levelDay showDate: 0 100: 5660 (since: 2024-03-28_16:57:23) 0_Count: 9 lastState: 0 0: 62740 lastTime: 1727110795 100_Count: 8
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorBad:levelHour (since: 2024-03-28_16:57:23) showDate: 0 0_Count: 1 lastTime: 1727110795 0: 0 lastState: 0
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorBad:levelMonth 100_Count: 159 0: 1884815 lastTime: 1727110795 lastState: 0 0_Count: 160 (since: 2024-03-28_16:57:23) 100: 84385 showDate: 0
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorBad:levelYear (since: 2024-03-28_16:57:23) showDate: 1 100: 1184622 0_Count: 1601 0: 14284730 lastTime: 1727110795 lastState: 0 100_Count: 1601
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorBuero:levelDay 0_Count: 8 (since: 2024-03-28_16:57:42) 100: 1441 showDate: 0 100_Count: 7 lastTime: 1727110795 0: 66959 lastState: 0
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorBuero:levelHour 0_Count: 1 showDate: 0 (since: 2024-03-28_16:57:42) lastState: 0 0: 0 lastTime: 1727110795
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorBuero:levelMonth 0: 1942989 lastTime: 1727110795 lastState: 0 100_Count: 134 0_Count: 135 (since: 2024-03-28_16:57:42) 100: 26211 showDate: 0
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorBuero:levelYear showDate: 1 100: 195300 (since: 2024-03-28_16:57:42) 0_Count: 1381 100_Count: 1380 lastState: 0 0: 15274033 lastTime: 1727110795
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorFlur:levelDay 0_Count: 8 (since: 2024-03-28_16:57:24) showDate: 0 100: 1157 100_Count: 7 0: 67243 lastTime: 1727110795 lastState: 0
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorFlur:levelHour lastTime: 1727110795 0: 0 lastState: 0 0_Count: 1 (since: 2024-03-28_16:57:24) showDate: 0
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorFlur:levelMonth lastTime: 1727110795 0: 1945641 lastState: 0 100_Count: 125 (since: 2024-03-28_16:57:24) showDate: 0 100: 23559 0_Count: 126
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorFlur:levelYear 0_Count: 1368 100: 239037 showDate: 1 (since: 2024-03-28_16:57:24) lastState: 0 0: 15230314 lastTime: 1727110795 100_Count: 1367
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorSchlafzimmer:levelDay 0_Count: 10 100: 3218 showDate: 0 (since: 2024-03-28_16:56:20) 100_Count: 9 lastState: 0 0: 65182 lastTime: 1727110795
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorSchlafzimmer:levelHour (since: 2024-03-28_16:56:20) showDate: 0 0_Count: 1 0: 0 lastTime: 1727110795 lastState: 0
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorSchlafzimmer:levelMonth 0: 1939409 lastTime: 1727110795 lastState: 0 100_Count: 128 0_Count: 129 (since: 2024-03-28_16:56:20) 100: 29791 showDate: 0
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorSchlafzimmer:levelYear 0_Count: 1366 showDate: 1 100: 298880 (since: 2024-03-28_16:56:20) lastState: 0 0: 15170535 lastTime: 1727110795 100_Count: 1366
setstate myStatDevice 2024-03-28 16:56:20 .HzgAktorSchlafzimmer:stateDay (since: 2024-03-28_16:56:20) showDate: 1 on_Count: 1 on: 0 lastState: on lastTime: 1711641380
setstate myStatDevice 2024-03-28 16:56:20 .HzgAktorSchlafzimmer:stateHour (since: 2024-03-28_16:56:20) showDate: 1 on: 0 lastState: on on_Count: 1 lastTime: 1711641380
setstate myStatDevice 2024-03-28 16:56:20 .HzgAktorSchlafzimmer:stateMonth lastTime: 1711641380 on_Count: 1 on: 0 lastState: on (since: 2024-03-28_16:56:20) showDate: 1
setstate myStatDevice 2024-03-28 16:56:20 .HzgAktorSchlafzimmer:stateYear (since: 2024-03-28_16:56:20) showDate: 1 on_Count: 1 on: 0 lastState: on lastTime: 1711641380
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorToilette:levelDay 0_Count: 8 (since: 2024-03-28_16:57:26) 100: 1302 showDate: 0 100_Count: 7 lastTime: 1727110795 0: 67098 lastState: 0
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorToilette:levelHour showDate: 0 (since: 2024-03-28_16:57:26) 0_Count: 1 lastState: 0 0: 0 lastTime: 1727110795
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorToilette:levelMonth lastState: 0 0: 1951541 lastTime: 1727110795 100_Count: 121 showDate: 0 100: 17659 (since: 2024-03-28_16:57:26) 0_Count: 122
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorToilette:levelYear 100_Count: 1358 lastState: 0 lastTime: 1727110795 0: 15210170 100: 259179 showDate: 1 (since: 2024-03-28_16:57:26) 0_Count: 1359
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorWohnzimmer:levelDay (since: 2024-03-28_16:57:20) 100: 798 showDate: 0 0_Count: 8 100_Count: 7 lastTime: 1727110795 0: 67602 lastState: 0
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorWohnzimmer:levelHour (since: 2024-03-28_16:57:20) showDate: 0 0_Count: 1 0: 0 lastTime: 1727110795 lastState: 0
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorWohnzimmer:levelMonth showDate: 0 100: 143355 (since: 2024-03-28_16:57:20) 0_Count: 209 100_Count: 208 lastState: 0 0: 1825845 lastTime: 1727110795
setstate myStatDevice 2024-09-23 18:59:55 .HzgAktorWohnzimmer:levelYear 100_Count: 2149 lastTime: 1727110795 0: 14281259 lastState: 0 (since: 2024-03-28_16:57:20) showDate: 1 100: 1188096 0_Count: 2149
setstate myStatDevice 2024-03-28 16:57:20 .HzgAktorWohnzimmer:stateDay on_Count: 1 lastState: on on: 0 showDate: 1 (since: 2024-03-28_16:57:20) lastTime: 1711641440
setstate myStatDevice 2024-03-28 16:57:20 .HzgAktorWohnzimmer:stateHour lastTime: 1711641440 showDate: 1 (since: 2024-03-28_16:57:20) on_Count: 1 lastState: on on: 0
setstate myStatDevice 2024-03-28 16:57:20 .HzgAktorWohnzimmer:stateMonth (since: 2024-03-28_16:57:20) showDate: 1 on: 0 lastState: on on_Count: 1 lastTime: 1711641440
setstate myStatDevice 2024-03-28 16:57:20 .HzgAktorWohnzimmer:stateYear showDate: 1 (since: 2024-03-28_16:57:20) lastState: on on: 0 on_Count: 1 lastTime: 1711641440

setstate myStatDevice 2024-09-22 20:53:23 monitoredDevicesCUL_HM HzgThermostatHWR,HzgAktorBad,HzgAktorBuero,HzgAktorFlur,HzgAktorSchlafzimmer,HzgAktorToilette,HzgAktorWohnzimmer,HzgThermostatBad,HzgThermostatBad_remote,HzgThermostatBuero,HzgThermostatFlur,HzgThermostatSchlafzimmer,HzgThermostatToilette,HzgThermostatWohnzimmer
setstate myStatDevice 2024-09-22 20:53:23 monitoredDevicesnotify HzgThermostatBuero_notify_1
setstate myStatDevice 2024-09-23 18:59:55 nextPeriodChangeCalc 2024-09-23 19:59:55
setstate myStatDevice 2024-09-23 18:59:55 state Updated stats for: HzgThermostatWohnzimmer

Und wie ich schon oben schrieb, sind ja wohl die Readings entsprechend vorhanden, also z.B:

statMeasured-tempDay
statMeasured-tempDayAvg
statMeasured-tempDayAvgLast
statMeasured-tempDayLast
statMeasured-tempHour
statMeasured-tempHourAvg
statMeasured-tempHourAvgLast
statMeasured-tempHourLast
statMeasured-tempMonth
statMeasured-tempMonthAvg
statMeasured-tempMonthAvgLast
statMeasured-tempMonthLast
statMeasured-tempYear

vom Thermostat im Büro, dessen Werte auch in der DB landen...

Das gleiche für den Aktor:
statLevelDay
statLevelDayLast
statLevelHour
statLevelHourLast
statLevelMonth
statLevelMonthLast
statLevelYear


Stimmt denn das hier?

define mySQLDB DbLog ./mySQLDB.conf HzgThermostat.*:statMeasured-temp.*AvgLast|HzgAktor.*:statLevel.*.Last
attr mySQLDB .* 1
attr mySQLDB DbLogSelectionMode Exclude/Include
attr mySQLDB DbLogType Current/History
attr mySQLDB asyncMode 1
attr mySQLDB cacheLimit 1500
attr mySQLDB event-on-change-reading CacheUsage
attr mySQLDB insertMode 1
attr mySQLDB room Büro,DbLog,LogFiles,System
attr mySQLDB showNotifyTime 0
attr mySQLDB showproctime 1
attr mySQLDB stateFormat {\
"Cache: ".ReadingsVal($name,"CacheUsage",0)."<br> NextSync:".ReadingsVal($name,"NextSync",0)\
}
attr mySQLDB syncInterval 240
attr mySQLDB verbose 5
attr mySQLDB verbose4Devs HzgAktor.*
attr mySQLDB webCmd listCache:commitCache
#   COLUMNS    field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
#   CONFIGURATION ./mySQLDB.conf
#   DEF        ./mySQLDB.conf HzgThermostat.*:statMeasured-temp.*AvgLast|HzgAktor.*:statLevel.*.Last
#   FD         4
#   FUUID      5ed93474-f33f-a625-5c2b-b4f6628ef5ffc1ff
#   FVERSION   93_DbLog.pm:v5.9.3-s28085/2023-10-22
#   MODE       asynchronous
#   MODEL      MYSQL
#   NAME       mySQLDB
#   NOTIFYDEV  HzgThermostat.*,HzgAktor.*
#   NR         2
#   NTFY_ORDER 50-mySQLDB
#   PID        7502
#   REGEXP     HzgThermostat.*:statMeasured-temp.*AvgLast|HzgAktor.*:statLevel.*.Last
#   SBP_PID    7503
#   SBP_STATE  running
#   STATE      Cache: 0<br> NextSync:2024-09-23 19:12:25 or when CacheUsage 1500 is reached
#   TYPE       DbLog
#   UTF8       0
#   dbconn     mysql:database=fhem;host=192.168.188.6;port=3307
#   dbuser     fhemdbuser
#   eventCount 7
#   HELPER:
#     COLSET     1
#     DEVICECOL  64
#     EVENTCOL   512
#     OLDSTATE   connected
#     PACKAGE    main
#     READINGCOL 64
#     TC         current
#     TH         history
#     TYPECOL    64
#     UNITCOL    32
#     VALUECOL   128
#     VERSION    5.9.3
#   OLDREADINGS:
#   READINGS:
#     2024-09-23 19:00:25   CacheOverflowLastNum 0
#     2024-03-28 17:00:16   CacheOverflowLastState normal
#     2024-09-23 19:08:25   CacheUsage      0
#     2024-09-23 19:08:25   NextSync        2024-09-23 19:12:25 or when CacheUsage 1500 is reached
#     2024-09-23 19:00:26   background_processing_time 0.3884
#     2024-09-23 19:00:26   sql_processing_time 0.3378
#     2024-09-23 19:08:25   state           connected
#
setstate mySQLDB Cache: 0<br> NextSync:2024-09-23 19:12:25 or when CacheUsage 1500 is reached
setstate mySQLDB 2024-09-23 19:00:25 CacheOverflowLastNum 0
setstate mySQLDB 2024-03-28 17:00:16 CacheOverflowLastState normal
setstate mySQLDB 2024-09-23 19:08:25 CacheUsage 0
setstate mySQLDB 2024-09-23 19:08:25 NextSync 2024-09-23 19:12:25 or when CacheUsage 1500 is reached
setstate mySQLDB 2024-09-23 19:00:26 background_processing_time 0.3884
setstate mySQLDB 2024-09-23 19:00:26 sql_processing_time 0.3378
setstate mySQLDB 2024-09-23 19:08:25 state connected


Ich werde jetzt dann mal die Attribute DbLogSelectionMode, DbLogInclude und DbLogExclude löschen.

Ich glaube fast, dass es nicht geht, weil hier
define mySQLDB DbLog ./mySQLDB.conf HzgThermostat.*:statMeasured-temp.*AvgLast|HzgAktor.*:statLevel.*.Last
irgendwas nicht zu den erzeugten Readings passt... Aber mit den RegExp kenne ich mich zu wenig aus, um die geradezubiegen...
Ich glaub ich sehs...

define mySQLDB DbLog ./mySQLDB.conf HzgThermostat.*:statMeasured-temp.*AvgLast|HzgAktor.*:statLevel.*Last
Der Punkt vor dem Last muss raus?!?

Viele Grüße
Wolfgang


DS_Starter

#7
ZitatDer Punkt vor dem Last muss raus?!?
Ja, bzw. egal (Platzhalter für ein beliebiges Zeichen)

ZitatIch will eigentlich die Daten loggen, welche vom Statistic-Device erzeugt werden:
...
Und wie ich schon oben schrieb, sind ja wohl die Readings entsprechend vorhanden, also z.B:
Das die Readings vorhanden sind ist kein Kriterium. Wichtig ist dass entsprechende Events erzeugt werden die geloggt werden können. Werden sie erzeugt?
In deinem angehängten Log kann ich diese Daten nicht erkennen. Das verbose 5 vom Doif wird nicht gebraucht und hat das Log unnötig angereichert. Hilfreicher wäre es mehr verbose 5 vom DbLog zu sehen um zu erkennen ob Daten von HzgAktor.* empfangen und verarbeitet werden.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

wowogiengen

Jetzt steh ich wieder aufm Schlauch...

Du schreibst
ZitatDas die Readings vorhanden sind ist kein Kriterium. Wichtig ist dass entsprechende Events erzeugt werden die geloggt werden können. Werden sie erzeugt?

Was muss ich denn einstellen, dass das Event erzeugt wird? Bei den Temperaturen funktioniert es doch auch so?


ZitatIn deinem angehängten Log kann ich diese Daten nicht erkennen.
Vielleicht in dem, was ich jetzt anhänge?

ZitatDas verbose 5 vom Doif wird nicht gebraucht und hat das Log unnötig angereichert. Hilfreicher wäre es mehr verbose 5 vom DbLog zu sehen um zu erkennen ob Daten von HzgAktor.* empfangen und verarbeitet werden.
ZitatDa DoIf ist doch gar nie ausgelöst worden, wie soll es da das Log angereichert haben?
Wenn DbLog keine Meldungen vom Level 5 ausgibt, kann ich auch nix dafür...

Gestern abend kamen wohl einige Level 5-Meldungen, aber dann irgendwann mal nicht mehr?

DS_Starter

Jetzt sieht man es:

2024.09.22 22:59:55 4: mySQLDB - ################################################################
2024.09.22 22:59:55 4: mySQLDB - ###              start of new Logcycle                       ###
2024.09.22 22:59:55 4: mySQLDB - ################################################################
2024.09.22 22:59:55 4: mySQLDB - number of events received: 1 of device: HzgAktorBad
2024.09.22 22:59:55 4: mySQLDB - check Device: HzgAktorBad , Event: statLevelHourLast: 0: 00:58:20 0_Count: 1 100: 00:01:40 100_Count: 1
2024.09.22 22:59:55 4: mySQLDB - ################################################################
2024.09.22 22:59:55 4: mySQLDB - ###              start of new Logcycle                       ###
2024.09.22 22:59:55 4: mySQLDB - ################################################################
2024.09.22 22:59:55 4: mySQLDB - number of events received: 1 of device: HzgAktorBuero
2024.09.22 22:59:55 4: mySQLDB - check Device: HzgAktorBuero , Event: statLevelHourLast: 0: 00:56:20 0_Count: 1 100: 00:03:40 100_Count: 1
2024.09.22 22:59:55 4: mySQLDB - ################################################################
2024.09.22 22:59:55 4: mySQLDB - ###              start of new Logcycle                       ###
2024.09.22 22:59:55 4: mySQLDB - ################################################################
2024.09.22 22:59:55 4: mySQLDB - number of events received: 1 of device: HzgAktorFlur
2024.09.22 22:59:55 4: mySQLDB - check Device: HzgAktorFlur , Event: statLevelHourLast: 0: 00:59:20 0_Count: 1 100: 00:00:40 100_Count: 1
2024.09.22 22:59:55 4: mySQLDB - ################################################################
2024.09.22 22:59:55 4: mySQLDB - ###              start of new Logcycle                       ###
2024.09.22 22:59:55 4: mySQLDB - ################################################################
2024.09.22 22:59:55 4: mySQLDB - number of events received: 1 of device: HzgAktorSchlafzimmer
2024.09.22 22:59:55 4: mySQLDB - check Device: HzgAktorSchlafzimmer , Event: statLevelHourLast: 0: 01:00:00 0_Count: 1
2024.09.22 22:59:55 4: mySQLDB - ################################################################
2024.09.22 22:59:55 4: mySQLDB - ###              start of new Logcycle                       ###
2024.09.22 22:59:55 4: mySQLDB - ################################################################
2024.09.22 22:59:55 4: mySQLDB - number of events received: 1 of device: HzgAktorToilette
2024.09.22 22:59:55 4: mySQLDB - check Device: HzgAktorToilette , Event: statLevelHourLast: 0: 01:00:00 0_Count: 1
2024.09.22 22:59:55 4: mySQLDB - ################################################################
2024.09.22 22:59:55 4: mySQLDB - ###              start of new Logcycle                       ###
2024.09.22 22:59:55 4: mySQLDB - ################################################################
2024.09.22 22:59:55 4: mySQLDB - number of events received: 1 of device: HzgAktorWohnzimmer
2024.09.22 22:59:55 4: mySQLDB - check Device: HzgAktorWohnzimmer , Event: statLevelHourLast: 0: 00:57:20 0_Count: 1 100: 00:02:40 100_Count: 1
2024.09.22 23:00:24 4: mySQLDB - ################################################################
2024.09.22 23:00:24 4: mySQLDB - ###      New database processing cycle - SBP asynchronous    ###
2024.09.22 23:00:24 4: mySQLDB - ################################################################
2024.09.22 23:00:24 4: mySQLDB - MemCache contains 7 entries to process
2024.09.22 23:00:24 4: mySQLDB - DbLogType is: Current/History
2024.09.22 23:00:24 5: mySQLDB - MemCache contains:  8 -> 2024-09-22 22:59:55|HzgThermostatBad|CUL_HM|statMeasured-tempHourAvgLast: 23.0|statMeasured-tempHourAvgLast|23.0|
2024.09.22 23:00:24 5: mySQLDB - MemCache contains:  9 -> 2024-09-22 22:59:55|HzgThermostatBuero|CUL_HM|statMeasured-tempHourAvgLast: 24.8|statMeasured-tempHourAvgLast|24.8|
2024.09.22 23:00:24 5: mySQLDB - MemCache contains:  10 -> 2024-09-22 22:59:55|HzgThermostatFlur|CUL_HM|statMeasured-tempHourAvgLast: 23.9|statMeasured-tempHourAvgLast|23.9|
2024.09.22 23:00:24 5: mySQLDB - MemCache contains:  11 -> 2024-09-22 22:59:55|HzgThermostatHWR|CUL_HM|statMeasured-tempHourAvgLast: 24.8|statMeasured-tempHourAvgLast|24.8|
2024.09.22 23:00:24 5: mySQLDB - MemCache contains:  12 -> 2024-09-22 22:59:55|HzgThermostatSchlafzimmer|CUL_HM|statMeasured-tempHourAvgLast: 24.5|statMeasured-tempHourAvgLast|24.5|
2024.09.22 23:00:24 5: mySQLDB - MemCache contains:  13 -> 2024-09-22 22:59:55|HzgThermostatToilette|CUL_HM|statMeasured-tempHourAvgLast: 23.4|statMeasured-tempHourAvgLast|23.4|
2024.09.22 23:00:24 5: mySQLDB - MemCache contains:  14 -> 2024-09-22 22:59:55|HzgThermostatWohnzimmer|CUL_HM|statMeasured-tempHourAvgLast: 25.2|statMeasured-tempHourAvgLast|25.2|
2024.09.22 23:00:25 4: mySQLDB - Operation: log_asynch

Zum Beispiel wird der Event aber nicht zum Cache hinzugefügt

2024.09.22 22:59:55 4: mySQLDB - number of events received: 1 of device: HzgAktorFlur
2024.09.22 22:59:55 4: mySQLDB - check Device: HzgAktorFlur , Event: statLevelHourLast: 0: 00:59:20 0_Count: 1 100: 00:00:40 100_Count: 1

Ich konnte bisher aber noch nicht ergründen wieso der Regex nicht passt. Er sollte m.M. nach passen.
Hast du das Attr DbLogExclude aus allen Devices gelöscht?
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

wowogiengen

Hallo DS_Starter,
ich habe alle Attribute DbLogSelectionMode, DbLogInclude und DbLogExclude in allen Devices gelöscht...
Das sollte also passen.
Außerdem habe ich gerade auch noch FHEM auf Stand gebracht.
Aber heute schau ich nix mehr an.
Trotzdem erstmal Danke für die Hilfe.
Morgen abend gehts weiter

DS_Starter

#11
Das DEF im DbLog so anpassen:

define mySQLDB DbLog ./mySQLDB.conf HzgThermostat.*:statMeasured-temp.*AvgLast|HzgAktor.*:statLevel.*Last.*

Das sollte passen, hatte kleinen Hänger. ;)
Wenn ich Recht behalte, werden wir dann aber immer noch das Problem mit dem Event Splitting sehen.
Das verbose 5 sollte morgen entsprechende Infos zeigen.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

wowogiengen

#12
Hallo DS_Starter,
ist heute bisschen später geworden, aber wir haben ja noch Zeit...
ob ich jetzt
define mySQLDB DbLog ./mySQLDB.conf HzgThermostat.*:statMeasured-temp.*AvgLast|HzgAktor.*:statLevel.*Last.*
oder
define mySQLDB DbLog ./mySQLDB.conf HzgThermostat.*:statMeasured-temp.*AvgLast|HzgAktor.*:statLevel.*Last

schreibe, sollte für meine Events keine Auswirkung haben, da die statLevel-Readings entweder mit oder ohne "Last" am Ende sind...
und mehr kommt danach nicht mehr.

Wie können wir das Event-Splitting verfolgen?
Ich sehe gerade, dass z.B.
"statLevelHourLast: 0: 00:57:25 0_Count: 2 100: 00:02:35 100_Count: 1" 68 Zeichen lang ist... in der DB sind zwar varchar(128) definiert, aber im DbLog-Device steht:
COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
Oder passt das doch?

DS_Starter

ZitatWie können wir das Event-Splitting verfolgen?
Wieder verbose 5 Log von DbLog anhängen.

Aber wie schon geschrieben das DEF so schreiben:

define mySQLDB DbLog ./mySQLDB.conf HzgThermostat.*:statMeasured-temp.*AvgLast|HzgAktor.*:statLevel.*Last.*
(beachte ".*" am Ende)
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

wowogiengen

Hallo DS_Starter,
wie es aussieht, kann ich jetzt was mit den Werten anfangen. Sie landen in der Datenbank.
Da allerdings nur jede Stunde der Wert protokolliert wird, muss ich für vernünftige Grafiken
noch bis morgen warten.

Aber erstmal danke

Viele Grüße
Wolfgang