DBLog und addLog Plotabriss vermeiden

Begonnen von Geisha2021, 23 August 2020, 21:10:48

Vorheriges Thema - Nächstes Thema

Geisha2021

Ich logge mit der MariaDB Temperatursensoren was auch wunderbar funktioniert. Jedoch kommt es zu Plotabrissen weil sich bei einigen Sensoren der Temperaturwert selten ändert.
Ich möchte deshalb um 23:59 und 00:01 jeweils mit addLog den letzten Temperaturwert in die DB schreiben. Habe schon sämtliche Beiträge und Wikis gelesen jedoch ist mir nicht klar wie ich den Syntax bezüglich der Zeitwerte  schreiben muss.
Meines Wissens muss man nicht mehr die 99_myUtils.pm ändern bzw nutzen da die Routinen in DBLog und addLog integriert sind aber wie ist der Syntax dann?

Folgendes habe ich implementiert:Set DBLogging addLog DS18B20_536216A8013C:temperature

Zusatzfrage: Wo werden dier set-Befehle gespeichert? Beim setzen von Attributen sieht man immer den gesetzten Wert bzw. Zeichenfolge; bei set fehlt das.


DS_Starter

Soweit ich es sehe, hast du es schon richtig definiert wenn DS18B20_536216A8013C der Gerätename ist.
Um jetzt zu den gewünschten Zeiten ein addLog auszuführen, erstellst du einfach zwei AT etwa so:


define ataddl1 at *00:01:00 set DBLogging addLog DS18B20_536216A8013C:temperature
define ataddl2 at *23:59:00 set DBLogging addLog DS18B20_536216A8013C:temperature


Die Frage nach der Speicherung der set-Befehle ist damit auch geklärt.  ;)

Grüße,
Heiko
Proxmox+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

betateilchen

Zitat von: Geisha2021 am 23 August 2020, 21:10:48
Zusatzfrage: Wo werden dier set-Befehle gespeichert?

Nirgends. Und das ist auch gut so.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

roedert

Um Plotabrisse zu vermeiden ist LogProxy prima geeignet.

zB
#logProxy DbLog:DbLog,predict,extend=24*60*60:Aussen.Helligkeit:brightness

Geisha2021

Habe jetzt addLog für die beiden Zeiten implementiert und es funktioniert tadellos. Vielen Dank für eure Unterstützung.

Würde aber trotzdem folgendes verstehen: warum braucht man überhaupt den "set-Befehl" wenn bei "define ataddl1 at ... " der set Befehl sowieso enthalten ist?

DS_Starter

ZitatWürde aber trotzdem folgendes verstehen: warum braucht man überhaupt den "set-Befehl" wenn bei "define ataddl1 at ... " der set Befehl sowieso enthalten ist?

Ich weiß jetzt garnicht so recht was ich darauf antworten soll. Jedes Modul/Device hat die für seine spezifische Aufgabe benötigten set- oder get-Kommandos implementiert. Hier ist es das addLog-Kommando, welches ich im DbLog-Modul eingebaut habe.
Diese Befehle können manuell über die Weboberfläche oder automatisiert in Skripten, bzw. wie hier als Bestandteil einer Zeitsteuerung (ein at-Device ist ja nichts anderes als eine zeitgesteuerte Skriptausführung) ausgeführt werden.

Aber deine Fragestellung zeigt mir, dass du dir vermutlich noch mehr Grundlagen zu FHEM anlesen solltest. Hier im Anfängerbereich ist ein Link zu einem Einsteiger-PDF hinterlegt.
Lies das mal ...
Proxmox+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

Geisha2021

Ja ich bin ziemlich am Anfang mit FHEM aber habe mich schon stundenlang damit beschäftigt und diverse Tutorials über 1-wire sowie diverse Anfänger wikis durchgemacht.
Im Prinzip ist mir der set-Befehl schon klar wenn ich  damit eine Lampe ein- oder ausschalte. Dann sehe ich ja was passiert.
Nur im Fall von addlog passiert ja zunächst gar nichts. Deshalb meine Frage wo man das erkennen kann wenn man den Befehl ausgeführt hat (ohne define addlat1 at.....). Wird also das Skript im DbLog-Modul mit dem set-Befehl nur scharf geschaltet?

DS_Starter

ZitatWird also das Skript im DbLog-Modul mit dem set-Befehl nur scharf geschaltet?
Nein. Vergleiche es doch einfach mit dem Schalten einer Lampe. Ein "set Lampe on" führt diverse Codes aus damit eine Lampe eingeschaltet wird. Du siehst nicht was alles codiert passiert ... nur das Ergebnis.
Beim "set dblog addlog" ist es genau das gleiche. Nur ist der Ziel des Codes nicht eine Lampe einzuschalten, sondern bestimmte Daten in die Datenbank zu schreiben.

Es wird also nichts "scharf" geschaltet, sondern der code mit jedem "set" immer und immer wieder neu durchlaufen.
Man sieht die Ausführung auch im Log wenn man den verbose -Level hinreichend hoch einstellt.
Proxmox+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