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

ZitatSagen wir mal so: ich hab beim anwenden und ausprobieren ein paar Unschönheiten gefunden. Die einzelnen Zeitpunkte hab ich im online-perl entwickelt und soweit ich konnte, geprüft. Systematisch getestet hab ichs aber nicht, zumal ich auch gar nicht weiss, wo da die Stolperfallen liegen. Zur Zeit funktionieren die Attribute aber so, wie ich es mir vorstelle.

Alles gut, wollte nur den Teststand wissen. Ich schaue es mir genau an.

ZitatKann ich bei ReadingsVal irgendwie mit Platzhaltern arbeiten?
Nein, ReadingsVal verarbeitet keine Regex.

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

Hallo Stephan, @all,

habe im ersten Beitrag die Version 4.11.0 hinterlegt die deine Ergänzungswünsche bzgl. [current|previous]_[month|week|day|hour]_[begin|end] enthält.

Ich habe den guten Ansatz übernommen und so umgebaut dass nun auch die Zeitabgrenzungen und Zeitverschiebungen funktionieren. Insbesondere wenn z.B. der Vortag obendrein noch im Vormonat bzw. Vorjahr lag gab es Schwierigkeiten.
Probiert es mal aus, bei mir klappt es prima soweit ich verschiedene kritische Konstellationen testen konnte. Alles ging natürlich nicht.

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

jnewton957

Hallo,

ich versuche seit einigen Stunden mein System dazu zu bewegen, mir einige Daten zu meiner DBLog auszuwerfen.

Auch nach einigen Stunden mit running bekomme ich keine Werte.
define DbLog DbLog /opt/fhem/db.conf .*:(box_rateDown|box_rateUp|cpu_temp|cpu_temp_avg|cpu_freq|eth0_diff|loadavg|ram|fs_.*|stat_cpu_percent).*
attr DbLog room 99_DbLog
attr DbLog userReadings DbFileSize:lastReduceLogResult.* { (split(' ',`du -m /opt/fhem/fhem.db`))[0] }

define DbRep DbRep DbLog



Ich möchte doch "nur" z.B. die Datenbankgröße bzw. Tabellengröße etc. haben.

Ich befürchte also, dass ich nicht alle Perl-Module (POSIX, Time::HiRes, Time::Local, Scalar::Util, DBI, Blocking (FHEM-Modul)) habe.

Könnte bitte jemand posten, wie ich die nachinstalliere.

Danke
Jörg
FHEM6.2 auf Pi5
V 1.66 nanoCUL 433 (IT)
V 1.66 nanoCUL868 (HM)
sqlite3 LogDb
ELRO AB440, DECT200,  TFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo),tibber Pulse, Kostal Pico, cfos Wallbox, Modbus TCP

DS_Starter

Hallo Jörg,

wenn Module fehlen, kämen sicherlich Fehlermeldungen beim Define oder im Log.
Kannst du bitte mal posten was in solchen Fällen hilfreich ist, also ein list vom DbRep und ein verbose 4 log wenn du deine Funktion ausführst.

Sieht bei mir so aus (tableinfo):


2017.02.19 18:56:55.424 4: DbRep Rep.Show.DbSize -> Start BlockingCall dbmeta_DoParse
2017.02.19 18:56:55.430 4: DbRep Rep.Show.DbSize - SQL execute: select
                     table_name,
                     table_schema,
                     round(sum(data_length+index_length)/1024/1024,2),
                     round(data_free/1024/1024,2),
                     row_format,
                     table_collation,
                     engine,
                     table_type,
                     create_time
                     from information_schema.tables group by 1;
2017.02.19 18:56:55.563 4: DbRep Rep.Show.DbSize -> BlockingCall dbmeta_DoParse finished
2017.02.19 18:56:55.574 4: DbRep Rep.Show.DbSize -> Start BlockingCall dbmeta_ParseDone
2017.02.19 18:56:55.587 4: DbRep Rep.Show.DbSize -> BlockingCall dbmeta_ParseDone finished


Dauert auch nur einen Wimpernschlag.  Browserrefresh nicht vergessen !

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

jnewton957

Und kaum ein Wimpernschlag später :-)

DbRep Rep.Fhem.Size -> Start BlockingCall dbmeta_DoParse
Can't locate object method "sqlite_db_filename" via package "DBI::db" at ./FHEM/93_DbRep.pm line 3301.


Danke
Jörg

FHEM6.2 auf Pi5
V 1.66 nanoCUL 433 (IT)
V 1.66 nanoCUL868 (HM)
sqlite3 LogDb
ELRO AB440, DECT200,  TFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo),tibber Pulse, Kostal Pico, cfos Wallbox, Modbus TCP

DS_Starter

Na da haben wir den Übeltäter.  ;)


sudo apt-get install libdbd-sqlite3-perl
sudo apt-get install libdbi-perl


sollte alles beinhalten.

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

jnewton957

Leider nein:

libdbi-perl ist schon die neueste Version.
libdbd-sqlite3-perl ist schon die neueste Version.


Ich hatte beide schon installiert (gehabt)

FHEM6.2 auf Pi5
V 1.66 nanoCUL 433 (IT)
V 1.66 nanoCUL868 (HM)
sqlite3 LogDb
ELRO AB440, DECT200,  TFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo),tibber Pulse, Kostal Pico, cfos Wallbox, Modbus TCP

DS_Starter

Hmm ... mich beschleicht das Gefühl dass deine DB-Treiber Version diese Methoden nicht anbietet.

Meine Versionen:

SQL_DBMS_VER  3.8.7.1
SQL_DBMS_VERSION 3.8.7.1
perl:5.020002 os:linux

Wie sieht es bei dir aus ?

   
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

jnewton957

Zitat von: DS_Starter am 19 Februar 2017, 20:37:38
Hmm ... mich beschleicht das Gefühl dass deine DB-Treiber Version diese Methoden nicht anbietet.

Meine Versionen:

SQL_DBMS_VER  3.8.7.1
SQL_DBMS_VERSION 3.8.7.1
perl:5.020002 os:linux

Wie sieht es bei dir aus ?

wie lese ich die aus ??
FHEM6.2 auf Pi5
V 1.66 nanoCUL 433 (IT)
V 1.66 nanoCUL868 (HM)
sqlite3 LogDb
ELRO AB440, DECT200,  TFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo),tibber Pulse, Kostal Pico, cfos Wallbox, Modbus TCP

DS_Starter

Die Perl-Version siehst du z.B. im Start-Protokoll von FHEM.
Die SQLite habe ich mit DbRep gelesen ... ok. geht nicht  ;) ...

Auf commandline:


sudo sqlite3
SQLite version 3.8.7.1 2014-10-29 13:59:56
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

jnewton957

Ich habe:

fhem.pl:13411/2017-02-14
perl:5.014002 os:linux
SQLite version 3.7.13 2012-06-11 02:05:22

Ganz komisch:
2017.02.19 20:53:20 3: DbRep Rep.Fhem.Size - connected
2017.02.19 20:53:20 4: DbRep Rep.Fhem.Size - Connectiontest to db SQLite:dbname=/opt/fhem/fhem.db successful

Dann habe ich get svrinfo nochmals ausgeführt und bekomme wieder:
2017.02.19 21:00:38 4: DbRep Rep.Fhem.Size -> Start BlockingCall dbmeta_DoParse
Can't locate object method "sqlite_db_filename" via package "DBI::db" at ./FHEM/93_DbRep.pm line 3301.

FHEM6.2 auf Pi5
V 1.66 nanoCUL 433 (IT)
V 1.66 nanoCUL868 (HM)
sqlite3 LogDb
ELRO AB440, DECT200,  TFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo),tibber Pulse, Kostal Pico, cfos Wallbox, Modbus TCP

DS_Starter

Ist jetzt eine Vermutung ... deine Version Perl/SQlite ist etwas zu niedrig.

Zitat
Ganz komisch:
2017.02.19 20:53:20 3: DbRep Rep.Fhem.Size - connected
2017.02.19 20:53:20 4: DbRep Rep.Fhem.Size - Connectiontest to db SQLite:dbname=/opt/fhem/fhem.db successful

Naja das Modul und wahrscheinlich alle "normalen" Funktionen wie set ... countEntries usw. werden funktionieren.
Aber es gibt Methoden des Treibers wie" object method "sqlite_db_filename" die das installierte libdbd-sqlite3-perl-Package nicht unterstützt und deswegen der Feler kommt.
Kannst ja mal einiges durchprobieren ob stimmt was ich vermute.
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

jnewton957

Wie mache ich denn ein perl update?

Ich bin ja ansonsten aktuell ( auch wenn ich tatsächlich noch wheezy habe). Aber fhem und die Module halte ich immer aktuell




FHEM6.2 auf Pi5
V 1.66 nanoCUL 433 (IT)
V 1.66 nanoCUL868 (HM)
sqlite3 LogDb
ELRO AB440, DECT200,  TFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo),tibber Pulse, Kostal Pico, cfos Wallbox, Modbus TCP

DS_Starter

Da bin ich auch nicht so firm ... müßte ich googeln ob/wie es möglich ist innerhalb einer Distribution dies zu tun. Bei mir ist meine Version auch die welche mit Debian Jessie ausgeliefert/upgedated wird.
Die Aktualität von FHEM ist an dieser Stelle (ausnahmsweise) mal nicht so relevant. FHEM nutzt die Perl-Version und in diesem Fall die Datenbank-Packages.
Bemühe mal bitte deine Suchmaschine ob/wie ein Update möglich ist.
Im ungünstigsten Fall Upgrade des OS....
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

jnewton957

Ich versuche morgen mal
sudo apt-get -f install && sudo apt-get -y install perl libdevice-serialport-perl libio-socket-ssl-perl libwww-perl libxml-simple-perl

Heute ist mir das zu riskant. Mal sehen, , was passiert.

Danke
FHEM6.2 auf Pi5
V 1.66 nanoCUL 433 (IT)
V 1.66 nanoCUL868 (HM)
sqlite3 LogDb
ELRO AB440, DECT200,  TFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo),tibber Pulse, Kostal Pico, cfos Wallbox, Modbus TCP