Modul 93_DbRep - Reporting und Management von Datenbankinhalten (DbLog)

Begonnen von DS_Starter, 19 Mai 2016, 22:52:13

Vorheriges Thema - Nächstes Thema

DS_Starter

ESXi@NUC+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

andies

FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

DS_Starter

Komisch ... ist ganz normal eingecheckt.
Falls sich noch jemand deswegen melden sollte checke ich es einfach nochmal ein.
ESXi@NUC+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

DS_Starter

Hallo,

ich habe die Zuarbeit von Franz leicht verändert eingearbeitet (Nutzung localtime, timelocal) und getestet.

@Franz ....


              if ($aval eq 'hour' || $aval eq 'minute') {
                  $time -= 3600;                                              # um 1 Stunde zurückblicken
              }
              elsif ($aval eq 'day') {
                  $time -= 24 * 3600;                                         # peek back by 1 day
              }
              elsif ($aval eq 'week') {
                  $time -= 3 * 24 * 3600;                                     # peek back by 3 days
              }
              elsif ($aval eq 'month') {
                  $time -= 7 * 24 * 3600;                                     # peek back by 1 week
              }
              else {
                  $time -= 30 * 24 * 3600;                                    # peek back by 1 month
              };


Die "Rückblicke" verstehe ich nicht ganz.
Warum gehst du bei "week" (nur) 3 Tage zurück, bei "month" (nur) 1 Woche und sonst einen Monat, wobei die Länge des Monats darauf ankommt von welchem Monat man ausgeht ?
Oder ist es eher eine empirische Wahl um einen Anfangswert mit einer gewissen Wahrscheinlichkeit zu ermitteln ?

Liegt als V 8.51.3 im contrib zum Gegentesten.

LG,
Heiko
ESXi@NUC+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

alkazaa

Zitat von: DS_Starter am 19 Januar 2023, 22:57:37
ich habe die Zuarbeit von Franz leicht verändert eingearbeitet (Nutzung localtime, timelocal) und getestet.
Super, Vielen Dank!
Zitat von: DS_Starter am 19 Januar 2023, 22:57:37
Die "Rückblicke" verstehe ich nicht ganz.
Warum gehst du bei "week" (nur) 3 Tage zurück, bei "month" (nur) 1 Woche und sonst einen Monat, wobei die Länge des Monats darauf ankommt von welchem Monat man ausgeht ?
Oder ist es eher eine empirische Wahl um einen Anfangswert mit einer gewissen Wahrscheinlichkeit zu ermitteln ?
Genau, "gefühlte Empirie". Hab's aber geändert, sodass es weniger rätselhaft aussieht.

Ich habe noch 1 bug rausgeschissen, und auch Kommentare, die mir nicht mehr verständlich erschienen. Außerdem das ganze dann für Grenzfälle (kein Messwert im Rückblick-Zeitraum, oder überhaupt keine Werte im betrachteten Zeitraum) getestet und angepasst. Nicht ermittelbare Mittelwerte (z.B. kein Rückschau-Wert und keine Werte in den Anfangs-Bins, oder Ende des betrachteten Zeitraums genau auf Mittelungsperiode) werden jetzt auch mit '-' gekennzeichnet statt mit dem Wert 0.000.

-Franz

EDIT:
"Nicht ermittelbare Mittelwerte (z.B. kein Rückschau-Wert und keine Werte in den Anfangs-Bins, oder Ende des betrachteten Zeitraums genau auf Mittelungsperiode) werden jetzt auch mit '-' gekennzeichnet statt mit dem Wert 0.000."
Das war natürlicg Blödsinn, denn so wie ich's gemacht habe, werden auch "echte" 0.000 gelöscht. Muss mir das anders überlegen...

DS_Starter

ESXi@NUC+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

DS_Starter

Hallo,

@Franz, ich habe dein Update eingearbeitet.
Weil die DbRep_averval Sub inzwischen sehr unübersichtlich geworden ist und auch meinem aktuellen Stil nicht mehr entspricht, habe ich begonnen diese Funktion neu zu strukturieren und dadurch übersichtlicher zu gestalten.

Bin damit noch nicht ganz fertig, aber ihr könnt den Stand mit dem aktuellen Patch von Franz schon benutzen und testen.

V 8.51.3 im contrib.

Grüße,
Heiko
ESXi@NUC+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

DS_Starter

Jetzt bin ich mir der Restrukturierung der averageValue Funk durch. Liegt wieder im contrib.
ESXi@NUC+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

der-Lolo

Hallo Heiko,
ich beobachte derzeit Einträge im Logfile die offensichtlich durch meine ReduceLogChain hervorgerufen werden...

2023.01.21 23:45:19 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/93_DbRep.pm line 9626.
2023.01.21 23:45:19 3: eval: {DbRep_getInitDataDone('Rep.Reduce.Older7Davg||MjAyMi0wNi0xMCAyMjowMzozNQ==|0.690913,0.693636|reduceLog||DbRep_Main|SW5kZXggUmVwb3J0X0lkeCBkb2Vzbid0IGV4aXN0XXXXbGVhc2UgY3JlYXRlIHRoZSBpbmRleCBieSAic2V0IFJlcC5SZWR1Y2UuT2xkZXI3RGF2ZyBpbmRleCByZWNyZWF0ZV9SZXBvcnRfSWR4IiBjb21tYW5kICE=|VVBEQVRFLERFTEVURSxTRUxFQ1QsVVNBR0UsSU5TRVJU|dXRmOA==|dXRmOA==')}


Kannst Du mir sagen was hier nicht wie geplant funktioniert?

Dank!

DS_Starter

#1869
So richtig weiß ich es noch nicht. Mit welcher DbRep Version arbeitest du ?

Oder mach einfach mal ein list von dem DbRep-Device. Dann sehe ich alles was interessant sein könnte.
ESXi@NUC+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

der-Lolo

Hallo Heiko,
hier das gewünschte list:
Internals:
   DATABASE   fhem
   DEF        logdb
   FUUID      63427754-f33f-4532-a08a-4cfd3fb05edc3e9e
   FVERSION   93_DbRep.pm:v8.51.2-s27047/2023-01-13
   LASTCMD    reduceLog average=hour
   MODEL      Client
   NAME       Rep.Reduce.Older7Davg
   NOTIFYDEV  global,Rep.Reduce.Older7Davg
   NR         675
   NTFY_ORDER 50-Rep.Reduce.Older7Davg
   ROLE       Client
   STATE      reduceLog of fhem finished
   TYPE       DbRep
   UTF8       1
   eventCount 5
   HELPER:
     DBLOGDEVICE logdb
     GRANTS     UPDATE,DELETE,SELECT,USAGE,INSERT
     IDRETRIES  2
     MINTS      2022-06-10 22:03:35
     PACKAGE    main
     VERSION    8.51.2
     CV:
       aggregation no
       aggsec     1
       destr      2023-01-14
       dsstr      2022-06-10
       epoch_seconds_end 1673736313.61569
       mestr      01
       msstr      06
       testr      23:45:13
       tsstr      22:03:35
       wdadd      259200
       yestr      2023
       ysstr      2022
     DBREPCOL:
       COLSET     1
       DEVICE     64
       EVENT      0
       READING    64
       TYPE       64
       UNIT       32
       VALUE      128
   Helper:
     DBLOG:
       background_processing_time:
         logdb:
           TIME       1674341137.17217
           VALUE      20.94
       connectionEncoding:
         logdb:
           TIME       1674341114.59061
           VALUE      utf8
       dbEncoding:
         logdb:
           TIME       1674341114.59061
           VALUE      utf8
       indexState:
         logdb:
           TIME       1674341114.59061
           VALUE      Index Report_Idx doesn't exist. Please create the index by "set Rep.Reduce.Older7Davg index recreate_Report_Idx" command !
       reduceLogState:
         logdb:
           TIME       1674341137.17217
           VALUE      reduceLog finished. Rows processed: 480587, deleted: 47338
       state:
         logdb:
           TIME       1674341137.17217
           VALUE      reduceLog of fhem finished
       timestamp_oldest_dataset:
         logdb:
           TIME       1674341114.59061
           VALUE      2022-06-10 22:03:35
       userRights:
         logdb:
           TIME       1674341114.59061
           VALUE      UPDATE,DELETE,SELECT,USAGE,INSERT
   OLDREADINGS:
   READINGS:
     2023-01-21 23:45:37   background_processing_time 20.94
     2023-01-21 23:45:37   reduceLogState  reduceLog finished. Rows processed: 480587, deleted: 47338
     2023-01-21 23:45:37   state           reduceLog of fhem finished
Attributes:
   allowDeletion 0
   devStateIcon devStateIcon connected|initialized:10px-kreis-gelb .*disconnect:10px-kreis-rot .*finished:10px-kreis-gruen
   executeAfterProc get Rep.Fhem.Size tableinfo
   room       90 - System -> 96 - Server -> MariaDBLog
   timeOlderThan d:7
   verbose    1



DS_Starter

Das war jetzt ein recht interessanter Fall.
Dieses Problem trat auf wenn das Feld VALUE den Wert NULL hatte, also nicht '<leer>' sondern undefiniert.

Habe es gelöst und die Version 8.51.3 in meinem contrib upgedated.
Kannst du die Version bitte bei dir laden, FHEM restarten und testen ?

LG,
Heiko
ESXi@NUC+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

der-Lolo

Hallo Heiko,

sorry - mein Log sagt da passt noch was nicht.

2023.01.22 15:11:48 1: reload: Error:Modul 93_DbRep deactivated:
Can't modify numeric lt (<) in scalar assignment at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
syntax error at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
Unknown regexp modifier "/D" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/_" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/r" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/e" at ./FHEM/93_DbRep.pm line 9, at end of line
./FHEM/93_DbRep.pm has too many errors.

2023.01.22 15:11:48 0: Can't modify numeric lt (<) in scalar assignment at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
syntax error at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
Unknown regexp modifier "/D" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/_" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/r" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/e" at ./FHEM/93_DbRep.pm line 9, at end of line
./FHEM/93_DbRep.pm has too many errors.

2023.01.22 15:11:48 1: reload: Error:Modul 93_DbRep deactivated:
Can't modify numeric lt (<) in scalar assignment at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
syntax error at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
Unknown regexp modifier "/D" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/_" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/r" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/e" at ./FHEM/93_DbRep.pm line 9, at end of line
./FHEM/93_DbRep.pm has too many errors.

2023.01.22 15:11:48 0: Can't modify numeric lt (<) in scalar assignment at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
syntax error at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
Unknown regexp modifier "/D" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/_" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/r" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/e" at ./FHEM/93_DbRep.pm line 9, at end of line
./FHEM/93_DbRep.pm has too many errors.

2023.01.22 15:11:48 1: reload: Error:Modul 93_DbRep deactivated:
Can't modify numeric lt (<) in scalar assignment at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
syntax error at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
Unknown regexp modifier "/D" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/_" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/r" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/e" at ./FHEM/93_DbRep.pm line 9, at end of line
./FHEM/93_DbRep.pm has too many errors.

2023.01.22 15:11:48 0: Can't modify numeric lt (<) in scalar assignment at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
syntax error at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
Unknown regexp modifier "/D" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/_" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/r" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/e" at ./FHEM/93_DbRep.pm line 9, at end of line
./FHEM/93_DbRep.pm has too many errors.

2023.01.22 15:11:48 1: reload: Error:Modul 93_DbRep deactivated:
Can't modify numeric lt (<) in scalar assignment at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
syntax error at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
Unknown regexp modifier "/D" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/_" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/r" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/e" at ./FHEM/93_DbRep.pm line 9, at end of line
./FHEM/93_DbRep.pm has too many errors.

2023.01.22 15:11:48 0: Can't modify numeric lt (<) in scalar assignment at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
syntax error at ./FHEM/93_DbRep.pm line 9, near "93_DbRep"
Unknown regexp modifier "/D" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/_" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/S" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/r" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/93_DbRep.pm line 9, at end of line
Unknown regexp modifier "/e" at ./FHEM/93_DbRep.pm line 9, at end of line
./FHEM/93_DbRep.pm has too many errors.

DS_Starter

Da hast du im contrib nicht den Download-Button benutzt. Siehe Anhang.

Oder zum Download in der FHEMWEB Kommandozeile inklusive der Anführungszeichen angeben und danach FHEM restarten:


"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"
ESXi@NUC+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

der-Lolo

Ok - sorry, hatte den link kopiert und via ssh ein wget abgesetzt...
Keine Ahnung warum das nicht funktionierte - Deine Variante geht offensichtlich.

2023.01.22 15:24:38 3: DbRep Rep.Fhem.Size - get initial structure information of database "fhem", remaining attempts: 3
2023.01.22 15:24:38 3: DbRep Rep.Fhem.Size - Connectiontest to database mysql:database=fhem;host=192.168.1.99;port=3306 with user fhemuser
2023.01.22 15:24:39 3: DbRep Rep.Fhem.Size - WARNING - Index Report_Idx doesn't exist. Please create the index by "set Rep.Fhem.Size index recreate_Report_Idx" command !
2023.01.22 15:24:39 3: DbRep Rep.Fhem.Size - Initial data information retrieved - total time used: 0.6704 seconds
2023.01.22 15:24:39 3: DbRep Rep.Fhem.Size - Connectiontest to db mysql:database=fhem;host=192.168.1.99;port=3306 successful

jump to the top


Danke Dir..!