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

Jetzt habe ich die Situation nachgestellt. An der Berechnung liegt es nicht. Die Differenz wird richtig berechnet.
ABER ich habe eine Theorie die ich erfolgreich simulieren konnte.
Der Device-Name (des zu loggenden Gerätes) ist zu lang. DbLog legt beim Tabellencreate die Felder mit einer Größe von nur 32 Zeichen an.
Dein Device-Name ist bei "switchable.socket.storageCellar.fridge_Pwr" bereits 42 Zeichen lang, d.h. der Devicename wird abgeschnitten und heißt dann nur noch  "switchable.socket.storageCellar.". Das geschieht übrigends auch beim "insert" und wird im Log/Reading dann auch so ausgegeben.

Wenn es nun weitere andere Geräte gibt, z.B. "switchable.socket.storageCellar.dishwash_Pwr" usw. werden die Werte dieser Geräte ungewollt mit berücksichtigt, da in der DB die Device alle nur "switchable.socket.storageCellar." heißen.

Die Readings deines letzten Posts gehen nur bis zum 27.8. 19:57
2016-08-27_19-57-21__elektrische.Energie 5.85

In deiner vorherigen Meldung bis 28.08. 12:49
2016-08-28_12-49-28__elektrische.Energie 6.80

Da fehlt ein Stück, deswegen kann ich die Theorie nicht 100%ig belegen. Aber es sieht sehr danach aus.
Da ich davon ausgegangen bin, dass die Grenze von 32 Characters bekannt ist, habe ich dbzgl. keinen Plausicheck bei der Angabe des Devices eingebaut, aber das kann ich ja noch nachholen.

Schau mal ob meine Ausführungen so bei dir zutreffen.

Gruß,
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

DerFrickler

das war mir jetzt nicht so bewusst... immerhin zeigt mit ein get dblog folgendes an:

2016-08-28 17:00:33: switchable.socket.storageCellar.fridge_Pwr, CUL_HM, energy_kWh: 7.01, energy_kWh, 7.01,
2016-08-28 17:25:50: switchable.socket.storageCellar.fridge_Pwr, CUL_HM, energy_kWh: 7.02, energy_kWh, 7.02,
2016-08-28 17:28:26: switchable.socket.storageCellar.fridge_Pwr, CUL_HM, energy_kWh: 7.03, energy_kWh, 7.03,
2016-08-28 17:53:57: switchable.socket.storageCellar.fridge_Pwr, CUL_HM, energy_kWh: 7.04, energy_kWh, 7.04,
2016-08-28 17:56:02: switchable.socket.storageCellar.fridge_Pwr, CUL_HM, energy_kWh: 7.05, energy_kWh, 7.05,
2016-08-28 17:59:58: switchable.socket.storageCellar.fridge_Pwr, CUL_HM, energy_kWh: 7.06, energy_kWh, 7.06,
#switchable.socket.storageCellar.fridge_Pwr:energy_kWh:::

DerFrickler

ich habe den Fehler gefunden...  :D

die Readings vom fetchRow waren leider unvollständig im Beitrag... es gibt in der Tat eine Zeile in der DB die sich fehlerhaft eingeschlichen hat.

2016-08-28 04:35:17: switchable.socket.storageCellar.fridge_Pwr, CUL_HM, energy_kWh: 606.21, energy_kWh, 606.21,

Danke für Deine Mühe!

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

Kleiner Nachtrag ... in der db_create.sql steht 32varchar für sqlite und mySQL drin, bei PostgreSQL sind es 64 Zeichen.
Du hast doch aber SQLite richtig ?
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

DerFrickler


DS_Starter

Das ist interessant. Das muß ich mal mit meiner SQLite Spieldatenbank versuchen nachzustellen. Hatte es mit meiner MySQL probiert.
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

Habe mir SQLite nun mal angeschaut. Es ist tatsächlich so dass trotz der Definition der Tabellenfelder mit varchar32 längere Werte (wie Readingname) gespeichert werden können.
Es sind zwei Screenshots angehängt die diesen Sachverhalt illustrieren.
Eine interessante Erfahrung ...
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

DerFrickler

gerne steht Dir meine Unwissenheit des öfteren zur Verfügung  ;D

Gruß!

Pyromane

Sqlite hat ein paar Eigenheiten, unter anderem:
ZitatNote that numeric arguments in parentheses that following the type name (ex: "VARCHAR(255)") are ignored by SQLite - SQLite does not impose any length restrictions (other than the large global SQLITE_MAX_LENGTH limit) on the length of strings, BLOBs or numeric values.
Quelle: https://www.sqlite.org/datatype3.html#section_3_2

DS_Starter

Das machen wir doch irgendwo alle  ;D  Nehme deine Hinweise gerne wieder auf.
Werde dem Modul noch einen Plausi-Check gönnen wenn der DB-Type nicht gerade SQLite ist ;)
Danke für deine Mitarbeit und schönen Abend noch...

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

Danke Pyromane für den Hinweis ... hilft einiges richtig einzuordnen und zu verstehen.
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

DerFrickler

Zitat von: DS_Starter am 28 August 2016, 20:38:05
Werde dem Modul noch einen Plausi-Check gönnen wenn der DB-Type noch gerade SQLite ist ;)

Das wäre dann etwas ungünstig und ich dürfte meine gesamte Config umstellen.

Gruß!

DS_Starter

Sorry Schreibfehler  noch -> nicht ... also Plausicheck wenn DB NICHT SQLite ist.
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

DerFrickler

@Heiko, kannst Du mal hier mit reinschauen? https://forum.fhem.de/index.php?topic=57168.new;topicseen#new Es geht um meine Problematik mit den mathematische Funktionen in der readingsGroup und um die Frage ob bei fehlenden Werten wirklich nur ein "-" ausgegeben wird oder möglicherweise sich dort noch ein Leerzeichen versteckt.