FHEM Readings/events in eine custom Tabelle schreiben

Begonnen von o.l.i, 27 August 2020, 21:36:22

Vorheriges Thema - Nächstes Thema

o.l.i

Hallo,

ich habe FHEM soweit am Laufen, dass die Readings / Events in die FHEM DB , Tabelle "Current" und "history" geschrieben werden. Das möchte ich aber auch nicht verändern.
Jetzt will ich zusätzlich ausgewählte Readings in eine andere Tabelle in die FHEM DB schreiben, da ich alle Einträge länger als 30 Tage in der "history" Tabelle lösche. Dies sollte dann eine Langzeittabelle sein wo nichts gelöscht wird.
Wenn ich diese custom Tabelle angelegt habe; wie bekomme ich Fhem dazu ausgewählte Readings in diese Tabelle zu schreiben?
Ich denke so etwas mit einem Notify zu machen mit Perl?

Grüße,
Oliver

amenomade

Sowas würde ich auf DB Ebene mit Trigger "after insert" machen.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

o.l.i

Vielen Dank für den Denkanstoß.

Vielleicht gibt es noch andere Vorschläge wie ich einfach aus FHEM heraus in eine andere DB / Tabelle schreiben kann.
Ich denke dies ist kein so spezieller Anwendungsfall.

Grüße,
Oliver

DS_Starter

#3
Hallo Oliver,

eine "einfache" Variante ist zur Zeit nicht vorgesehen, die Tabellen history/current sind im DbLog-Modul fest verdrahtet.
Wenn du es dir zutraust, kannst du aber den folgenden Weg gehen:

1. kopiere dir 93_DbLog.pm in ein eigenes Modul, z.B. 93_oliDbLog.pm
2. ersetze  in 93_oliDbLog.pm mit einem Editor im ganzen File "history" bzw. "History" durch "<deine Tabelle>"
3. definiere dir ein neues oliDbLog Device genau wie man es mit DbLog macht, also "define <bla> oliDbLog  ..."
    Die neue Tabelle und das Configfile für oliDbLog muss natürlich angelegt sein.
4. setze das Attr DbLogType = <deine Tabelle>

Alles weitere ist identisch mit DbLog, d.h. du kannst nun über den Regex definieren welche Events geloggt werden sollen etc.
Die Events landen dann in deiner neuen Tabelle.

Das ganze Vorgehen ist natürlich völlig ohne Support. Du kannst bei Fragen oder Problemen nicht unbedingt eine schlüssige Antwort erwarten und musst dich selbst durchbeißen. Und es ist möglich dass so manches nicht funktioniert (SVGs).
Aber es wäre ein Weg Daten in eine andere Tabelle zu schreiben ...  ;)

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