Überschreiben / Update von DbLog-Einträgen beim Logging möglich?

Begonnen von Josch, 27 Oktober 2025, 21:00:55

Vorheriges Thema - Nächstes Thema

Josch

Hallo,
ich möchte gern folgendes Problem lösen: Viele Devices liefern ein Reading mit sowas wie "EnergyDay", also einen Wert, der ..zig Mal am Tag geliefert wird und immer den bisher am Tag verbrauchten Wert liefert. Man loggt die Werte in die Datenbank, braucht aber eigentlich nur den letzten des Tags. In diesem Beitrag wurde das Problem dadurch angegangen, dass nachträglich von den n Datensätzen n-1 wieder gelöscht werden. Das geht natürlich, erscheint mir aber wenig effektiv.
Ich hatte deshalb die Idee, mit DbLogValueFn den Zeitstempel der zu loggenden Datensätze immer auf die letzte Sekunde des aktuellen Tage zu "verbiegen" in der Hoffnung, dass jeweils der vorherige Datensatz am gleichen Zeitpunkt überschrieben wird und letztlich nur ein Datensatz pro Tag in der DB landet. Leider ist das nicht so. Ich habe genauso viele Datensätze wie vorher, nur alle um 23:59:59.
Deshalb meine Frage: Kann man DbLog irgendwie dazu bringen, statt einem Insert ein Update zu machen, wenn für ein bestimmtes $DEVICE und $READING an dem entsprechenden $TIMESTAMP schon ein Datensatz existiert?
Cool fände ich an so einer Lösung auch, dass man den aktuellen Wert des Tages auch bereits in einem Diagramm über z.B. den laufenden Monat ohne weiteren Aufwand mit darstellen könnte.
Gruß Jörg

DS_Starter

Hallo Jörg,

das ist relativ einfach mit addLog im DbLog lösbar.
Du sorgst zunächst dafür, dass die relevanten Readings/Events nicht mehr automatisch geloggt werden indem du das DEF entsprechend anpasst.

Dann erstellst du dir ein at-Device welches einmal am Tag den DbLog Befehl:

 set <name> addLog <devspec>:<Reading>

ausführt. In der Online-Hilfe findest du Beispiele.

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