Autor Thema: Modul 93_DbRep - Reporting und Management von Datenbankinhalten (DbLog)  (Gelesen 79607 mal)

Offline oldscout

  • Jr. Member
  • **
  • Beiträge: 78
  • Manchmal sieht man den Wald vor lauter Bäumen nich
Antw:Modul 93_DbRep - Reporting und Management von Datenbankinhalten (DbLog)
« Antwort #825 am: 12 Oktober 2018, 06:48:35 »
Hallo,
hier bitte schön:
Internals:
   CFGFN     
   DATABASE   
   LASTCMD     
   MODEL      Client
   NAME       test
   NOTIFYDEV  global,test
   NR         10079
   NTFY_ORDER 50-test
   ROLE       Client
   STATE      initialized
   TYPE       DbRep
   UTF8       0
   VERSION    8.2.2
   HELPER:
     DBLOGDEVICE
     SQLHIST   
   Helper:
     DBLOG:
       state:
         myDbLog:
           TIME       1539319636.3901
           VALUE      initialized
   READINGS:
     2018-10-12 06:47:16   state           initialized
   dbloghash:
     HELPER:
Attributes:

FHEM 5.8 auf RaspberryPi mit SD-Card und 2,5" SSD
7x HM-CC-RT-DN, 5x HM-SEC-SCo, 9x 1-Wire DS18B20, 1x FritzDect 200, HMLAN, HMUSB, Arduino Uno, Harmony, Enigma2-Sat-Tuner, FB7490, IP-Counter, MySql-DB,TP-Link HS100

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2920
Antw:Modul 93_DbRep - Reporting und Management von Datenbankinhalten (DbLog)
« Antwort #826 am: 12 Oktober 2018, 09:29:18 »
Das DbLog Device myDbLog ist nicht connected und nur initialized. DbLog muss auf connected stehen wenn alles in Ordnung wäre.
Kannst du bitte noch ein list von myDbLog liefern und auch das define mit dem du test angelegt hattest ?
ESXi 6.5 auf NUC6i5SYH mit FHEM auf Debian 9/64 Bit  (Stretch), DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, DbLog/DbRep, Log2Syslog, Dashboard (interims)
aktive Mitarbeit:SMAEM, SMAInverter
Kaffeekasse: https://www.paypal.me/HMaaz

Offline oldscout

  • Jr. Member
  • **
  • Beiträge: 78
  • Manchmal sieht man den Wald vor lauter Bäumen nich
Antw:Modul 93_DbRep - Reporting und Management von Datenbankinhalten (DbLog)
« Antwort #827 am: 12 Oktober 2018, 10:38:06 »
Hallo,
ich verzieh mich in die äusserste Ecke.......
ich habe beim Define die DbLog Instanz versäumt anzugeben......
bisher habe ich die Devs immer nur kopiert....... und da gings natürlich..... was mich hier geritten hat, das mal von "Null" zu machen.....

Sorry, meine Dummheit.

Danke aber bei der Lösung des anderen Problems mit der Zählerei.
Schönes WE.
Gruss
FHEM 5.8 auf RaspberryPi mit SD-Card und 2,5" SSD
7x HM-CC-RT-DN, 5x HM-SEC-SCo, 9x 1-Wire DS18B20, 1x FritzDect 200, HMLAN, HMUSB, Arduino Uno, Harmony, Enigma2-Sat-Tuner, FB7490, IP-Counter, MySql-DB,TP-Link HS100

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2920
Antw:Modul 93_DbRep - Reporting und Management von Datenbankinhalten (DbLog)
« Antwort #828 am: 12 Oktober 2018, 11:42:27 »
Alles klar  :)
Aber ich muss diesen Fehler abfangen, damit sowas nicht vorkommen kann.

Ebenfalls ein schönes WE,
Heiko
ESXi 6.5 auf NUC6i5SYH mit FHEM auf Debian 9/64 Bit  (Stretch), DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, DbLog/DbRep, Log2Syslog, Dashboard (interims)
aktive Mitarbeit:SMAEM, SMAInverter
Kaffeekasse: https://www.paypal.me/HMaaz

Offline maci

  • Full Member
  • ***
  • Beiträge: 349
  • ... und sie leben doch!
Antw:Modul 93_DbRep - Reporting und Management von Datenbankinhalten (DbLog)
« Antwort #829 am: 15 Oktober 2018, 19:48:16 »
Ich habe zwar schon etwas mitgelesen bei dem langen Thread. Aber was ich nicht finden konnte:
Ist es mit dem Modul möglich, Werte aus der Datenbank zu lesen und diese in einem Dummy auszugeben.

Ich frage nur nach, weil ich überlege, meinen 2. Fhem Server ebenfalls in die DBLog am Hauptserver einzubinden.

Oder bin ich da am falschem Dampfer?
Raspberry Pi3, UniPi Vers. 1.1 mit Raspberry Pi2, Netatmo Wetterstation + Regenmesser, Netatmo Thermostat, 2x ESP8266 1wire WLAN Bridge, HMLan, Homematic

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2920
Antw:Modul 93_DbRep - Reporting und Management von Datenbankinhalten (DbLog)
« Antwort #830 am: 15 Oktober 2018, 19:59:30 »
Ja, das geht mit verschiedenen Möglichkeiten.
Im Wiki steht eine davon

https://wiki.fhem.de/wiki/DbRep_-_Reporting_und_Management_von_DbLog-Datenbankinhalten#Reading_von_DbRep_nach_Dummy_.C3.BCbertragen

Du kannst auch mit der userExitFn arbeiten. Das ist zugegeben etwas advanced weil etwas Programmierung nötig ist. Aber dafür sehr flexibel.
Gibt bestimmt noch mehr ...

Aber vllt. umreisst du dein Szenario kurz was du vorhast, möglicherweise geht alles einfacher.

Grüße
Heiko
« Letzte Änderung: 15 Oktober 2018, 20:03:18 von DS_Starter »
ESXi 6.5 auf NUC6i5SYH mit FHEM auf Debian 9/64 Bit  (Stretch), DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, DbLog/DbRep, Log2Syslog, Dashboard (interims)
aktive Mitarbeit:SMAEM, SMAInverter
Kaffeekasse: https://www.paypal.me/HMaaz

Offline maci

  • Full Member
  • ***
  • Beiträge: 349
  • ... und sie leben doch!
Antw:Modul 93_DbRep - Reporting und Management von Datenbankinhalten (DbLog)
« Antwort #831 am: 17 Oktober 2018, 08:20:53 »
Hallo Heiko,

Ich werde mir zuerst nochmals das Wiki zu Gemüte führen.

Das was ich vorhabe, ist einfach erklärt.

Ich habe 2 Fhem Instanzen.
Derzeit logge ich die 2. Instanz über Fhem2Fhem. Doch habe ich Probleme damit. Da meine 2. Instanz nicht immer online ist. Diese ist offline wenn ich diese Dienste nicht benötige.
Nun hängt sich meine Hauptinstanz immer auf, wenn ich die 2. Instanz wieder starte. Da hier dann Fhem hier glaubt der Port 7072 ist schon belegt.

Mir kommt es einfach einfacher vor, die benötigten Werte in der Hauptinstanz aus der Log DB wieder zu holen und auszugeben. Es geht immer nur um Infos ob ein Gerät on oder off ist. Die Temperaturwerte hole ich mir immer direkt aus dem OWserver.
Wobei es auch sein kann, dass ich später auch noch andere Werte holen will.

Gesteuert wird die 2. Instanz nicht aus der Hauptinstanz. Ich brauche eben nur Infos.

Gruß
Georg
Raspberry Pi3, UniPi Vers. 1.1 mit Raspberry Pi2, Netatmo Wetterstation + Regenmesser, Netatmo Thermostat, 2x ESP8266 1wire WLAN Bridge, HMLan, Homematic

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2920
Antw:Modul 93_DbRep - Reporting und Management von Datenbankinhalten (DbLog)
« Antwort #832 am: 17 Oktober 2018, 09:08:07 »
Morgen Georg,

in dem Fall fällt mir noch etwas ein. Sobald du ein dbrep device definiert hast, steht die Funktion

DbReadingsVal("<name>","<device:reading>","<timestamp>","<default>")
Zur Verfügung. Gleich am Anfang der Hilfe von dbrep gibt es weitere Erläuterungen und Beispiel dazu.
Damit kannst du dir immer den aktuellsten Wert deines device/readings aus der db holen und einen dummy setzen oder was auch immer. Als timestamp nimmst du einfach die aktuelle zeit mit Formatumwandlung wie die Funktion es benötigt.
Die Funktion ist blockierend, d.h. du musst mal schauen ob die Geschwindigkeit für dein System passt.
Aber ansonsten wahrscheinlich genau was du verwenden könntest.

LG,
Heiko
« Letzte Änderung: 17 Oktober 2018, 09:14:17 von DS_Starter »
ESXi 6.5 auf NUC6i5SYH mit FHEM auf Debian 9/64 Bit  (Stretch), DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, DbLog/DbRep, Log2Syslog, Dashboard (interims)
aktive Mitarbeit:SMAEM, SMAInverter
Kaffeekasse: https://www.paypal.me/HMaaz

Offline maci

  • Full Member
  • ***
  • Beiträge: 349
  • ... und sie leben doch!
Antw:Modul 93_DbRep - Reporting und Management von Datenbankinhalten (DbLog)
« Antwort #833 am: 17 Oktober 2018, 15:32:21 »
Danke Heiko,

Das werde ich mir gleich, wenn ich wieder zu Hause bin ansehen.
Werde berichten

Gruß
Georg
Raspberry Pi3, UniPi Vers. 1.1 mit Raspberry Pi2, Netatmo Wetterstation + Regenmesser, Netatmo Thermostat, 2x ESP8266 1wire WLAN Bridge, HMLan, Homematic

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2920
Antw:Modul 93_DbRep - Reporting und Management von Datenbankinhalten (DbLog)
« Antwort #834 am: 17 Oktober 2018, 16:50:12 »
Hallo zusammen,

ich habe eine neue Version nach contrib geladen. Ihr könnt sie euch hier herunterladen und testen:

https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

In dieser Version ist reduceLog aus DbLog integriert und an die Arbeitsweise von DbRep angepasst worden. Die Aufrufsyntax hat sich verändert. Unten habe ich die neue Commandref dazu eingefügt.
Obwohl das Kommando nur reduceLog heißt, arbeitet es selbstverständlich non-blocking. Da alle Funktionen in DbRep (bis auf Ausnahmen) non-blocking arbieten, konnte ich auf den Zusatz "Nbl" verzichten.

Weiterhin ist das set sqlCmd per default ein longtext-Feld, d.h. es geht ein entsprechendes Editorfenster auf. Das ist einfach viel freundlicher wenn man umfangreiche SQL-Statements einfügen will. Die Attribute "timeOlderThan" und "timeDiffToNow" können nun gemeinsam verwendet werden um Zeitabschnitte dynamisiert verwenden zu können.

Hier die Commandref zu reduceLog:

* reduceLog [average[=day]] [exclude=device1:reading1,device2:reading2,...] [include=device:reading]
Reduziert historische Datensätze innerhalb der durch die "time.*"-Attribute bestimmten Zeitgrenzen auf einen Eintrag (den ersten) pro Stunde je Device & Reading.
Es muss mindestens eines der "time.*"-Attribute gesetzt sein (siehe Tabelle unten). Die jeweils fehlende Zeitabgrenzung wird in diesem Fall durch das Modul errechnet.

Die für diese Funktion relevanten Attribute sind:

    executeBeforeProc    : FHEM Kommando (oder perl-Routine) vor dem Export ausführen
    executeAfterProc    : FHEM Kommando (oder perl-Routine) nach dem Export ausführen
    timeOlderThan    : es werden Datenbankeinträge älter als dieses Attribut reduziert
    timestamp_end    : es werden Datenbankeinträge älter als dieses Attribut reduziert
    timeDiffToNow    : es werden Datenbankeinträge neuer als dieses Attribut reduziert
    timestamp_begin    : es werden Datenbankeinträge neuer als dieses Attribut reduziert


Das Reading "reduceLogState" enthält das Ausführungsergebnis des letzten reduceLog-Befehls.

Durch die optionale Angabe von 'average' wird nicht nur die Datenbank bereinigt, sondern alle numerischen Werte einer Stunde werden auf einen einzigen Mittelwert reduziert.
Durch die optionale Angabe von 'average=day' wird nicht nur die Datenbank bereinigt, sondern alle numerischen Werte eines Tages auf einen einzigen Mittelwert reduziert. (impliziert 'average')

Optional kann als letzer Parameter "exclude=device1:reading1,device2:reading2,...." angegeben werden um device/reading Kombinationen von reduceLog auszuschließen.
Tipp: Wird "exclude=.*:.*" angegeben, wird nichts in der Datenbank gelöscht. Das kann z.B. verwendet werden um vorab die gesetzten Zeitgrenzen und die Anzahl der zu bearbeitenden Datenbankeinträge zu checken.

Optional kann als letzer Parameter "include=device:reading" angegeben werden um die auf die Datenbank ausgeführte SELECT-Abfrage einzugrenzen, was die RAM-Belastung verringert und die Performance erhöht.

    Beispiel:

    attr <name> timeOlderThan = d:200
    set <name> reduceLog
    # Datensätze die älter als 200 Tage sind, werden auf den ersten Eintrag pro Stunde je Device & Reading reduziert.

    attr <name> timeDiffToNow = d:10
    attr <name> timeOlderThan = d:5
    set <name> reduceLog average include=Luftdaten_remote:%
    # Datensätze die älter als 5 und neuer als 10 Tage sind, werden bereinigt. Numerische Werte einer Stunde werden auf einen    Mittelwert reduziert

Feedback ist wie immer sehr willkommen.

Grüße
Heiko
ESXi 6.5 auf NUC6i5SYH mit FHEM auf Debian 9/64 Bit  (Stretch), DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, DbLog/DbRep, Log2Syslog, Dashboard (interims)
aktive Mitarbeit:SMAEM, SMAInverter
Kaffeekasse: https://www.paypal.me/HMaaz

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2920
Antw:Modul 93_DbRep - Reporting und Management von Datenbankinhalten (DbLog)
« Antwort #835 am: 17 Oktober 2018, 22:05:47 »
@Georg, ich habe den Wiki-Artikel zur Dummy-Verwendung komplett überarbeitet und ergänzt:

https://wiki.fhem.de/wiki/DbRep_-_Reporting_und_Management_von_DbLog-Datenbankinhalten#Readingwerte_von_DbRep_nach_Dummy_.C3.BCbertragen

Damit sollte es dir leichter fallen dein Szenario umzusetzen.
Bei Fragen einfach fragen  :)

Grüße,
Heiko
ESXi 6.5 auf NUC6i5SYH mit FHEM auf Debian 9/64 Bit  (Stretch), DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, DbLog/DbRep, Log2Syslog, Dashboard (interims)
aktive Mitarbeit:SMAEM, SMAInverter
Kaffeekasse: https://www.paypal.me/HMaaz

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2920
Antw:Modul 93_DbRep - Reporting und Management von Datenbankinhalten (DbLog)
« Antwort #836 am: 22 Oktober 2018, 08:51:54 »
Hallo zusammen,

wie von oldscout hier https://forum.fhem.de/index.php/topic,92038.0.html#msg845814 requestet, habe ich die countEntries Funktion so umgebaut, dass sofern mehr als ein Reading im Attribut "reading" angegeben ist, die Anzahl jedes einzelnen Readings und zusaätzlich die Summary aller angegebenen Readings gezählt und ausgegeben wird. Dies erfolgt für jedes Zeitintervall falls aggregation gesetzt ist.

Download erstmal aus contrib hier:

https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Danke für die Anregung oldscout ! Das ist ein echter Mehrwert für das Modul und den Anwender wie ich finde.

Grüße,
Heiko
ESXi 6.5 auf NUC6i5SYH mit FHEM auf Debian 9/64 Bit  (Stretch), DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, DbLog/DbRep, Log2Syslog, Dashboard (interims)
aktive Mitarbeit:SMAEM, SMAInverter
Kaffeekasse: https://www.paypal.me/HMaaz

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2920
Antw:Modul 93_DbRep - Reporting und Management von Datenbankinhalten (DbLog)
« Antwort #837 am: 22 Oktober 2018, 20:47:59 »
Ich habe die countEntries-Funktion nochmal dahin abgeändert, dass man die detaillierte count-Readings Ausgabe mit dem neuen Attribut "countEntriesDetail" einschalten kann. Sonst wird nur die Summary wie bisher ausgegeben. Ich hatte festgestellt dass man sonst eine u.U. sehr lange Liste bekommt wenn man alle EInträge in der DB zählt.

Zitat aus Commandref:

Zitat
...
Standardmäßig wird die Summe aller Datensätze, gekennzeichnet mit "ALLREADINGS", erstellt. Ist das Attribut "countEntriesDetail" gesetzt, wird die Anzahl jedes einzelnen Readings zusätzlich ausgegeben.
....

Grüße
Heiko

ESXi 6.5 auf NUC6i5SYH mit FHEM auf Debian 9/64 Bit  (Stretch), DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, DbLog/DbRep, Log2Syslog, Dashboard (interims)
aktive Mitarbeit:SMAEM, SMAInverter
Kaffeekasse: https://www.paypal.me/HMaaz

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2920
Die Version 8.4.0 ist eingecheckt und morgen früh per update verfügbar.

Grüße
Heiko
ESXi 6.5 auf NUC6i5SYH mit FHEM auf Debian 9/64 Bit  (Stretch), DbLog/DbRep mit MariaDB auf Synology 415+
Maintainer: SSCam, DbLog/DbRep, Log2Syslog, Dashboard (interims)
aktive Mitarbeit:SMAEM, SMAInverter
Kaffeekasse: https://www.paypal.me/HMaaz