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

#495
Hallo miteinander,

ich war es leid, in den Attributen timeDiffToNow und timeOlderThan, welche einen Relativwert zur aktuellen Zeit darstellen, immer Sekunden angeben zu müssen. Wollte ich die Priode um x Tage verschieben, musste man das Ganze in Sekunden umrechnen.

Das Ungemach hat nun mit der V6.3.1 im ersten Beitrag ein Ende  :D. Es gibt nun folgende Eingabemöglichkeiten für diese beiden Attribute:

Eingabeformat Beispiel:

attr <Name> timeDiffToNow 86400
# die Startzeit wird auf "aktuelle Zeit - 86400 Sekunden" gesetzt
attr <Name> timeDiffToNow d:2 h:3 m:2 s:10
# die Startzeit wird auf "aktuelle Zeit - 2 Tage 3 Stunden 2 Minuten 10 Sekunden" gesetzt
attr <Name> timeDiffToNow m:600
# die Startzeit wird auf "aktuelle Zeit - 600 Minuten" gesetzt
attr <Name> timeDiffToNow h:2.5
# die Startzeit wird auf "aktuelle Zeit - 2,5 Stunden" gesetzt

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

#496
Mit der V6.3.2 im ersten Beitrag kann mit dem Attribut fetchRoute die Leserichtung in der Datenbank zwischen absteigend und aufsteigend geändert werden.
Relevant wenn zu viele Datensätze existieren um sie anzuzeigen und dabei die ältesten statt die neuesten x interessieren.

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

AndreasR

Hallo zusammen,

ich nutze das modul um einen SqlDump (clientside) zu speichern .. habe dabei nur das Problem das es um die 5 stunden dauert ..

Datenbank ist Mysql auf einem raspi3;
ca. 6 mio Datensätze in der History;
async eingestellt;


defmod DbBackUp DbRep logdb
attr DbBackUp DbLogExclude .*
attr DbBackUp DbLogInclude DumpRowsHistory
attr DbBackUp dumpDirLocal /mnt/tc/mySqlBackUp/     
attr DbBackUp dumpFilesKeep 6
attr DbBackUp event-on-update-reading state,DumpRowsHistory
attr DbBackUp executeAfterDump msg mySQL Der Dump wurde erfolgreich erstellt
attr DbBackUp executeBeforeDump set logdb commitCache
attr DbBackUp optimizeTablesBeforeDump 1
attr DbBackUp room ArbeitsRaum



defmod logdb DbLog ./configDB.conf .*:.*
attr logdb DbLogExclude .*
attr logdb DbLogInclude state,countCurrent,countHistory,userCommand,userCommandResult,statCountHistoryDayLast,statCountHistoryHourLast,statCountHistoryMonthLast,statCountHistoryYearLast
attr logdb DbLogSelectionMode Exclude/Include
attr logdb DbLogType History
attr logdb asyncMode 1
attr logdb event-on-change-reading state,countCurrent,countHistory,userCommand,userCommandResult,statCountHistoryDayLast,statCountHistoryHourLast,statCountHistoryMonthLast,statCountHistoryYearLast
attr logdb group Datenbank
attr logdb room ArbeitsRaum,system
attr logdb shutdownWait 60


index in der DB

...
KEY `Search_Idx` (`DEVICE`,`READING`,`TIMESTAMP`),
KEY `Report_Idx` (`TIMESTAMP`,`READING`) USING BTREE,
KEY `IDX_HISTORY` (`DEVICE`,`READING`,`TIMESTAMP`,`VALUE`) USING BTREE
...


hat jemand eine Idee ob das normal ist das es so lange dauert?  Oder an welcher Schraube ich drehen sollte  ...

Mit freundlichen Grüßen

AndreasR

DS_Starter

#498
Hallo Andreas,

ja du hast Möglichkeiten auf die Geschwindigkeit Einfluss zu nehmen.
Zu diesem Zweck gibt es speziell für die clientSide Option die Attribute:

* dumpMemlimit, dumpSpeed

Die Parameter sind zunächst sehr konservativ eingestellt. Du kannst sie setzen zum Beispiel auf:


dumpMemlimit  100000000
dumpSpeed      10000000


Es muss dabei ein Verhältnisfaktor von mindestens 1:10 eingehalten werden, was aber durch das Modul geprüft wird.

Du kannst mit diesem Parametern spielen um für deine Hardware die optimale Einstellung zu finden. Achte natürlich darauf dass du deinen Raspi nicht überforderst und du dein System lahmlegst wenn du zuviel zweist. Geh am Besten vorsichtig in kleinen Schritten vor und beobachte dabei den Ressourcenverbrauch (CPU/RAM).

Nähere Infos dazu stehen in der Commandref.

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

AndreasR

Danke Heiko,

mein erster versuch mit: 


dumpMemlimit  1000000
dumpSpeed      100000


nur noch 38 Minuten. Die Belastung für das System ist im Vergleich zu den Standardeinstellungen nicht gestiegen.

und  beim  Versuch mit 5000000 / 500000  ist er in 19 Minuten durch ..

Das reicht mir erstmal :-)

Danke

AndreasR

abc2006

EDIT: Falscher Thread, wollte nach 93_DbLog....
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

DS_Starter

Hallo AndreasR,

ich habe mal eine Frage, da ich keinen Raspi im Einsatz habe.

Zitat
mein erster versuch mit:

dumpMemlimit  1000000
dumpSpeed      100000

nur noch 38 Minuten. Die Belastung für das System ist im Vergleich zu den Standardeinstellungen nicht gestiegen.

Wäre es aus deiner Sicht verantwortbar die Default-Werte auf diese/deine Einstellung zu ändern ?
Die defaults waren für Raspi-Nutzer gedacht, aber wie es ausschaut kann man die durchaus etwas anheben. Dadurch hat der Nutzer nicht gleich am Anfang eine negative Erfahrung durch die lange Laufzeit.

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

AndreasR

Hallo Heiko,

Ich denke das es für den Raspi3 ok ist - und für jene die einen älteren einsetzen könnte man das in commandref und dem Wiki hervorheben.

Mit freundlichen Grüßen

Andreas



Sascha_F

Hi DS_Starter,

ist nichts großes, aber mir würde es sehr helfen, wenn die Auswahlmöglichkeiten für "timestamp_begin" und "timestamp_end" per DropDown zur Verfügung stehen würden.

Aktuell würde dieses aber ja mit der freien Angabe "YYYY-MM-DD HH:MM:SS" kollidieren. Vielleicht eine Möglichkeit, per DropDown "eigener Zeitraum" zu wählen und diesen über ein weiteres ATTR abzufragen?

Viele Grüße
Sascha

JoeALLb

... oder per standard-widgetoverride einfach das Datumsauswahlfeld festlegen?
(nur so als Idee)

SG Joe
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

Zitatoder per standard-widgetoverride einfach das Datumsauswahlfeld festlegen?
An welches Standard-Widget, also was nicht extra nachinstalliert werden muss, dachtest du dabei ?

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

JoeALLb

Warum darf es nicht nachinstalliert werden?
So könnte der Benutzer selbst entscheiden, ob er es benötigt oder nicht...

Ich dachte an etwas wie

attr calc_Test widgetOverride timestamp_begin:datetime,datepicker:true,weeks:false,dayOfWeekStart:1,inline:true,format:Y-m-d_H:i

aber da fehlt noch etwas finetuning mit dem Format-Attribut hinten.
Bin jedoch unterwegs und am Handy lässt sich das schwer testen.

Das Widget befindet sich im CONTRIB unter
https://svn.fhem.de/fhem/trunk/fhem/contrib/Widgets/DateTimePicker/

Joe
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

Hi Joe,

da haben wir uns wahrscheinlich falsch verstanden.
Ich meinte, dass ich per default im Code nur die Widgets verankern kann, die jeder Nutzer auch per default in seiner Installation zur Verfügung hat.

Natürlich kann sich jeder nach seinem Geschmack weitere Widgets nachinstallieren und anwenden.
So auch für diese Attribute.

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

DS_Starter

#508
Hallo zusammen,

in der Version 6.4.0 (erster Beitrag) habe ich die Unterstützung für das datetime-Widget für Attribute timestamp_begin,timestamp_end mit aufgenommen.
Ich musste ein paar kleine Anpassungen machen weil das Widget das verlangte Format nicht so wie benötigt rausbringt.
Wenn ihr es nutzen wollt geht so vor:

* installatiion des Widget: https://forum.fhem.de/index.php/topic,35736.0.html

* im DbRep-Device das Attr widgetOverride folgendermaßen setzen:
  attr widgetOverride timestamp_begin:datetime,theme:default,inline:true,step:1,dayOfWeekStart:1,timepicker:true,format:Y-m-d_H:i timestamp_end:datetime,theme:default,inline:true,step:1,dayOfWeekStart:1,timepicker:true,format:Y-m-d_H:i

* restart

Danach können die Zeiten per Widget ausgewählt werden. Nachteil ist, dass keine Sekunden ausgewählt werden können (zumindest mir nicht bekannt).
D.h. Sekunden setze ich im Modul in dem Fall immer auf "00".

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

supergrobi

Hallo Heiko,

könntest Du mir bitte die Version 6.3.2 noch mal schicken?
Ich komme mit dem Widget nit klar und kann jetzt kein Timestamp_begin/end mehr eintragen.

gruß
Thomas