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

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

Vorheriges Thema - Nächstes Thema

ioT4db

Guten Abend allerseits!

Ich teste seit kurzen ein DbLog-Device, um langfristig das Logging auf eine DB umzustellen.

Ich möchte auch das DBRep-Modul verwenden, um in erster Linie die Auto-Rename-Funktion zu verwenden.

Nun bekomme ich folgenden Fehler, wenn ich ein Device umbenenne:

Can't call method "execute" on an undefined value at ./FHEM/93_DbRep.pm line 2606

Könnte es mit den letzten Änderungen im DbLog-Modul zu tun haben, oder hat jemand eine Idee, was ich vlt. noch übersehen oder vergessen habe?

Meine Umgebung:
DbLog ( V2.8.8 ) ; Async-Mode ; Current/History
DbRep ( V4.10.1 ) ; Agent-Mode
MariaDB auf Synology


VG und danke schonmal...


PS: Logging des DbLog-Moduls und SVG-Plots etc. funktioniert ohne Probleme, keine Fehlermeldungen...
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

DS_Starter

Hallo friesenjung,

ZitatKönnte es mit den letzten Änderungen im DbLog-Modul zu tun haben,

eher unwahrscheinlich. Aber schwer zu sagen. Kannst du versuchen versbose 4 zu loggen ?
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

ioT4db

Zitat von: DS_Starter am 15 Januar 2017, 22:17:13
Hallo friesenjung,

eher unwahrscheinlich. Aber schwer zu sagen. Kannst du versuchen versbose 4 zu loggen ?

hier das Ergebnis:

2017.01.15 22:20:09 4: DbRep Agent DBAgent - Evt RENAMED rec - old device: TestPush3, new device: TestPush4 -> start deviceRename in DB: fhem
2017.01.15 22:20:09 4: DbRep DBAgent - -------- New selection ---------
2017.01.15 22:20:09 4: DbRep DBAgent - Aggregation: no
2017.01.15 22:20:09 4: DbRep DBAgent - Command: deviceRename
2017.01.15 22:20:09 4: DbRep DBAgent - Timestamp begin human readable: 1970-01-01 01:00:00
2017.01.15 22:20:09 4: DbRep DBAgent - Timestamp end human readable: 2017-01-15 22:20:09
2017.01.15 22:20:09 4: DbRep DBAgent -> Start BlockingCall devren_Push
2017.01.15 22:20:09 1: PERL WARNING: Use of uninitialized value $renmode in string eq at ./FHEM/93_DbRep.pm line 2585.
2017.01.15 22:20:09 1: PERL WARNING: Use of uninitialized value $renmode in string eq at ./FHEM/93_DbRep.pm line 2595.
2017.01.15 22:20:09 1: PERL WARNING: Use of uninitialized value $renmode in string eq at ./FHEM/93_DbRep.pm line 2611.
2017.01.15 22:20:09 1: PERL WARNING: Use of uninitialized value $renmode in string eq at ./FHEM/93_DbRep.pm line 2612.
2017.01.15 22:20:09 4: DbRep DBAgent -> BlockingCall devren_Push finished
2017.01.15 22:20:09 4: DbRep DBAgent -> Start BlockingCall devren_Done
2017.01.15 22:20:09 4: DbRep DBAgent -> BlockingCall devren_Done finished


VG...
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

DS_Starter

Das ist schon ein Anhaltspunkt ... muß ich  mir in Ruhe anschauen...
Machst du bitte noch ein ist von dem DbRep-Device ?

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

ioT4db

hi,

Zitat von: DS_Starter am 15 Januar 2017, 22:35:29
Das ist schon ein Anhaltspunkt ... muß ich  mir in Ruhe anschauen...
Machst du bitte noch ein ist von dem DbRep-Device ?

Grüße
Heiko

was meinst Du mit "ist"?
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

DS_Starter

Oben in der Kommandozeile "list <DbRep-Device> eintippen....
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

ioT4db

Zitat von: DS_Starter am 15 Januar 2017, 22:45:56
Oben in der Kommandozeile "list <DbRep-Device> eintippen....

hier das list:

Internals:
   CFGFN
   DATABASE   fhem
   DEF        DBLogging
   LASTCMD    dbstatus
   NAME       DBAgent
   NOTIFYDEV  global,DBReporting
   NR         3096
   NTFY_ORDER 50-DBReporting
   ROLE       Agent
   STATE      error
   TYPE       DbRep
   VERSION    4.10.1
   Helper:
     DBLOGDEVICE DBLogging
     NEWDEV     TestPush4
     OLDDEV     TestPush3
     Cv:
       aggregation no
       aggsec     1
       destr      2017-01-15
       dsstr      1970-01-01
       epoch_seconds_end 1484515209
       mestr      01
       msstr      01
       testr      22:20:09
       tsstr      01:00:00
       wdadd
       yestr      2017
       ysstr      1970
   Readings:
     2017-01-15 22:20:09   errortext       Can't call method "execute" on an undefined value at ./FHEM/93_DbRep.pm line 2606.

     2017-01-15 22:20:09   state           error
   Dbloghash:
     CONFIGURATION /opt/fhem/contrib/dblog/db.conf
     DBMODEL    MYSQL
     DEF        /opt/fhem/contrib/dblog/db.conf .*:.*
     MODE       asynchronous
     NAME       DBLogging
     NR         347
     NTFY_ORDER 50-DBLogging
     PID        6469
     REGEXP     .*:.*
     STATE      connected
     TYPE       DbLog
     VERSION    2.8.8
     dbconn     mysql:database=fhem;host=192.168.41.198;port=3306
     dbuser     fhemuser
     Helper:
     Readings:
       2017-01-15 22:46:49   CacheUsage      0
       2017-01-15 22:46:44   NextSync        2017-01-15 22:47:14
       2016-12-27 23:53:24   countCurrent    614
       2016-12-27 23:53:24   countHistory    2
       2017-01-15 22:46:45   state           connected
     Cache:
       index      20544
       Memcache:
Attributes:
   DbLogExclude .*
   devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
   group      Datenbank
   icon       security
   role       Agent
   room       9.7_Dienste
   timeout    3600
   verbose    4
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

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

JoeALLb

Unter MySQL kannst du
optimize table history;

nutzen.
Allzuoft würde ich das jedoch nicht machen... es blockiert die Datenbank.
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

DS_Starter

Hallo friesenjung,

habe die V4.10.2 im Eingangsbeitrag hinterlegt.
Habe den Fehler gefixt.
Probiers mal aus.
Setz dir das Attr timeout in dem Rep-Agenten gleich hoch, z.B. auf 1800 (helbe Stunde) damit die umbenennungen in der DB nicht auf ein timeout laufen wenn es mal länger dauert.

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

ioT4db

Zitat von: DS_Starter am 16 Januar 2017, 22:37:59
Hallo friesenjung,

habe die V4.10.2 im Eingangsbeitrag hinterlegt.
Habe den Fehler gefixt.
Probiers mal aus.
Setz dir das Attr timeout in dem Rep-Agenten gleich hoch, z.B. auf 1800 (helbe Stunde) damit die umbenennungen in der DB nicht auf ein timeout laufen wenn es mal länger dauert.

Grüße
Heiko

Hallo Heiko,
"renaming" funktioniert nun TipTop! Danke...
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

t.huber

Sorry für Anfängerfrage:
Ist es eigentlich üblich einen Agenten und einen Client als Device gleichzeitig zu verwenden ?
Bringt es Vor- oder Nachteile ?

DS_Starter

Hallo t.huber,
Üblich ist vielleicht nicht der richtige Ausdruck. Client und Agent haben andere Aufgaben.
Du kannst grundsätzlich viele DbRep-devices parallel definieren die die Client Rolle haben. Zum Beispiel für verschiedene Aufgaben. Daneben kann ein Rename Agent definiert sein, der Umbenennungen von Devices in FHEM erkennt und die Umbenennung in seinem zugeordneten DbLog- Device bzw. dessen DB nachzieht.
Es kann aber nur einen Agent pro definierten DbLog-device geben.
So gesehen kannst du Clients und Agent gleichzeitig verwenden.
Die Frage der Vorteil e ergibt sich aus der Funktion. Nachteile  ... es werden Änderungen in der DB vorgenommen. Wenn das nicht gewünscht ist dann die Agent Rolle nicht definieren.

Wenn noch Fragen sind .... Immer gerne.

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


awex102

Hallo, eine Anfängerfrage:

DbRep läuft und ich erhalte bisher

2017-01-29_11-06-29__Strom__Verbraucht__DIFF__2017-01 243.0000 2017-01-29 14:02:27

wunderbar den Stromverbrauch pro Monat.

Wie kann ich mir nun ein SVG Plot erzeugen, der mir automatisch den Stromverbrauch ausgibt?
Müssen die Daten / Readings nochmal geloggt werden? Und wie funktioniert es, dass im Plot jeweils in Ballken pro Monat ausgegeben wird (ich logge erst sei Anfang Januar, ich sehe also bisher nur ein Reading für den Januar). Wenn jetzt ein weiteres Readings für Februar dazukommt, wie erkennt der Plot dann, dass es sich um einen neuen Monat handelt?

Kann ich auch parallel Tages-., Monats und Jahresplots generieren wenn ich über aggregation day, month, year jeweils einmal die Nacht die entsprechenden Werte von DbRep genieren lassen?

Danke!