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

Hallo Joe,

für SQLite werde ich das wieder  so wie bis zur 4.6 selektieren. Nur muß ich nun den Ergebnishash gleichziehen mit MySQL damit auch solche neuen Funktionen wie diffAccept und die Warnings bei Limit-Überschreitung für alle unterstützten DBs gleichermaßen funktionieren.
Ich habe da schon einen Plan, brauche nur wieder etwas Zeit es umzusetzen und zu 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

DS_Starter

Hallo,

in der Version 4.7.3 im Eingangsthread habe ich diffValue nun auch wieder für SQLite lauffähig.
Würde mich freuen wenn SQLite-Nutzer die Version ebenfalls testen könnten.

VG
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

Masterfunk

Nach dem Update auf die neuste Version startet DbRep nicht mehr.

Im Logfile habe ich folgende Meldung:

2016.11.27 09:17:13 1: reload: Error:Modul 93_DbRep deactivated:
syntax error at ./FHEM/93_DbRep.pm line 3564, near "$ch{"
syntax error at ./FHEM/93_DbRep.pm line 3566, near "$ch{"
Global symbol "$key" requires explicit package name at ./FHEM/93_DbRep.pm line 3566, <$fh> line 1489.
Global symbol "%ncp" requires explicit package name at ./FHEM/93_DbRep.pm line 3567, <$fh> line 1489.
Global symbol "%ncp" requires explicit package name at ./FHEM/93_DbRep.pm line 3570, <$fh> line 1489.
Can't use global @_ in "my" at ./FHEM/93_DbRep.pm line 3578, near "= @_"
Global symbol "$hash" requires explicit package name at ./FHEM/93_DbRep.pm line 3579, <$fh> line 1489.
syntax error at ./FHEM/93_DbRep.pm line 3615, near "}"


Hab jetzt wieder die alte im Einsatz, läuft einwandfrei.

Gruß Detlef

DS_Starter

Morgen Detlef,

die neueste eingecheckte Version oder die aus dem Forum ?
Habe bei mir kein Prob bisher festgestellt.

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

DS_Starter

Habe gerade auch nochmal ein "update 93_DbRep.pm" in FHEM durchgeführt und FHEM restartet.
Die aktuelle eingecheckte Version ist:

# $Id: 93_DbRep.pm 12631 2016-11-22 21:07:28Z nasseeder1 $


Keine Probleme festgestellt ...

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

Masterfunk

Mit folgender habe ich das Problem:

93_DbRep.pm          12631 2016-11-22 21:07:28Z nasseeder1

Gruß Detlef

DS_Starter

Genau die habe ich auch bei mir nochmal getestet (siehe oben) . Ohne Probleme ... das ist ja eigenartig.
Ich schaue es mir in Ruhe an. Wird aber erst morgen.

Können andere User das Problem mit dieser Version bestätigen oder ist das bei Detlef eine Ausnahme ?

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

JoeALLb

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 Detlef,

ich vermute du hast eine etwas niedrigere Perl-Version als ich bzw. Joe und die kam mit dem Code nicht zurecht.
Teste mal bitte die V4.7.4 aus dem Eingangsbeitrag.

@Joe, wenn du magst ...  Bei mir läuft diese ebenfalls. Es betrifft eine sub von diffValue.

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

Masterfunk

Zitat von: DS_Starter am 28 November 2016, 11:58:49
Hallo Detlef,

ich vermute du hast eine etwas niedrigere Perl-Version als ich bzw. Joe und die kam mit dem Code nicht zurecht.
Teste mal bitte die V4.7.4 aus dem Eingangsbeitrag.

@Joe, wenn du magst ...  Bei mir läuft diese ebenfalls. Es betrifft eine sub von diffValue.

Grüße
Heiko

Die geht!

Gruß Detlef

DS_Starter

Prima ... danke für die Rückmeldung. Dann checke ich diese Version ein.

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

JoeALLb

Ich konnts leide rnicht testen, war unterwegs, aber starten lässt sich fhem damit!
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

Xunil66

Hallo Heiko,

ich bin heute bei meinen Tages / Stunden Reportings in Timeouts gelaufen  :'(
habe mir das ganze mal mit verbose 5 angeschaut und gesehen das im Modul 30 bzw 24 abfragen an die Datenbank gehen.

Kann man das ectl. mit "group by" selects erledigen ? Ich habe mir gerade mal testweise die selects zusammengebaut.
In meiner DB Komme ich auf ca. 3 Sekunden für einen kompletten Monat anstatt ca. 2 Sekunden je einzel Select.
Ich hänge mal meine SELECT an.

# Monatswerte auslesen
SELECT MONTH(TIMESTAMP) , SUM(VALUE)
FROM history
where DEVICE LIKE 'energyMeter' AND READING LIKE 'Einspeisung_WirkP_Zaehler_Diff' AND TIMESTAMP >= '2016-01-01' AND TIMESTAMP < '2016-12-31'
GROUP BY MONTH(TIMESTAMP)

# Tageswerte auslesen
SELECT DAY(TIMESTAMP) , SUM(VALUE)
FROM history
where DEVICE LIKE 'energyMeter' AND READING LIKE 'Einspeisung_WirkP_Zaehler_Diff' AND TIMESTAMP >= '2016-12-01' AND TIMESTAMP < '2016-12-31'
GROUP BY DAY(TIMESTAMP)

# Stundenwerte auslesen
SELECT HOUR(TIMESTAMP) , SUM(VALUE)
FROM history
where DEVICE LIKE 'energyMeter' AND READING LIKE 'Einspeisung_WirkP_Zaehler_Diff' AND TIMESTAMP >= '2016-12-06' AND TIMESTAMP < '2016-12-07'
GROUP BY HOUR(TIMESTAMP)

Gruß
Markus
(FHEM Installation auf Raspberry PI mit Jessie Lite )

DS_Starter

Hallo Markus,

vielleicht könnte man das. Es stellen sich sich natürlich viele Fragen:
- Klappt das für jede unterstützte DB ? wer testet alles durch ?
- die Readingsstruktur der Ergebnisse würde sich ändern, alle Funktionen wären anzupassen / zu testen, testen, testen mit jeder DB ...
- Funktioniert die Berücksichtigung Daylight Saving Time und wie steuert man rein wenn nicht ?
- Dann die Ergebnisse. Habe zum Bespiel mal schnell in der SQL-Konsole:
  SELECT DAY(TIMESTAMP) , SUM(VALUE) FROM history where DEVICE LIKE 'SMA_Energymeter' AND READING LIKE 'Einspeisung_WirkP_Zaehler_Diff' AND TIMESTAMP >= '2016-01-01' AND TIMESTAMP < '2016-12-31' GROUP BY DAY(TIMESTAMP)

ausgeführt. Ergebnis ist dass die Tage 1 ... 31 ausgegeben werden. Nichts weiter. Man erkennt nicht die Tage der Monate. Das ist sicher mit entsprechenden Aufwand aufzuarbeiten, aber wird eben nicht so einfach geliefert.

- Wie sauber klappen die Abgrenzungen ? Kann man sich darauf verlassen und wie könnte man die einzelnen Abgrenzungen loggen um die Ergebnisse überprüfbar zu machen ?
- Wie wäre dann z.B. abzubilden dass man bei der diffValue-Funktion einen Schwellwert angeben kann bei dessen Überschreitung die Diff als Fehler gewertet wird und wie logged man das für den Anwender ?

Das sind nur ein paar Gedanken die mir spontan einfallen.

Man kann sicher vieles machen. Nur wollte ich das Augenmerk mal darauf lenken wieviel Aufwand eine solche Änderung verursachen könnte.
Und man kommt immer wieder an problematische Stellen die den Aufwand alles sauber umzusetzen nach oben treiben.

Vorschlag: setze das Attribut timeout höher, dafür ist es da  ;) und dann strahlt auch wieder die Sonne  :)

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

Xunil66

Hallo Heiko,


Das Timeout hatte ich schon hochgesetzt. Die Sonne scheint  :D
Ich nutze mySQL als DB auf zentralem Server.

Evtl. wäre diese Abfrage das was Du für ein ganzes Jahr als Tagesabfrage suchst ?


SELECT MONTH( TIMESTAMP ) as Monat , DAY( TIMESTAMP ) as Tag, SUM( VALUE )
FROM history
WHERE DEVICE LIKE 'energyMeter'
AND READING LIKE 'Einspeisung_WirkP_Zaehler_Diff'
AND TIMESTAMP >= '2016-12-01'
AND TIMESTAMP < '2016-12-31'
GROUP BY MONTH( TIMESTAMP ) , DAY( TIMESTAMP)

Schönen Abend
Markus
(FHEM Installation auf Raspberry PI mit Jessie Lite )