FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Geisha2021 am 23 August 2020, 21:10:48

Titel: DBLog und addLog Plotabriss vermeiden
Beitrag von: Geisha2021 am 23 August 2020, 21:10:48
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.

Titel: Antw:DBLog und addLog Plotabriss vermeiden
Beitrag von: DS_Starter am 23 August 2020, 21:33:10
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
Titel: Antw:DBLog und addLog Plotabriss vermeiden
Beitrag von: betateilchen am 23 August 2020, 21:38:52
Zitat von: Geisha2021 am 23 August 2020, 21:10:48
Zusatzfrage: Wo werden dier set-Befehle gespeichert?

Nirgends. Und das ist auch gut so.
Titel: Antw:DBLog und addLog Plotabriss vermeiden
Beitrag von: roedert am 24 August 2020, 09:57:31
Um Plotabrisse zu vermeiden ist LogProxy prima geeignet.

zB
#logProxy DbLog:DbLog,predict,extend=24*60*60:Aussen.Helligkeit:brightness
Titel: Antw:DBLog und addLog Plotabriss vermeiden
Beitrag von: Geisha2021 am 31 August 2020, 20:01:03
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?
Titel: Antw:DBLog und addLog Plotabriss vermeiden
Beitrag von: DS_Starter am 31 August 2020, 21:28:42
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 ...
Titel: Antw:DBLog und addLog Plotabriss vermeiden
Beitrag von: Geisha2021 am 31 August 2020, 22:38:26
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?
Titel: Antw:DBLog und addLog Plotabriss vermeiden
Beitrag von: DS_Starter am 31 August 2020, 22:48:23
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.