daten in die FHEM datenbank schreiben

Begonnen von gk_georg, 24 Oktober 2023, 16:04:12

Vorheriges Thema - Nächstes Thema

gk_georg

hallo in die runde,

ich habe ein BK mit einem WR HM-600 von Hoymiles zusammen mit einem speichersystem von Zendure angeschlossen, alles in allem läuft es, mit der app lässt sich das ganze einigermassen auslesen und bedienen...

Über eine open-DTU, einen raspberry pi 1-B (endlich verwendung für) auf dem mosquitto, FHEM und mariaDB laufen, möchte ich als ersten schritt etwas mehr auslesen und visualisieren, das grundgerüsst läuft, die daten vom BK kommen in FHEM an (Du darfst diesen Dateianhang nicht ansehen.), es wird zunächst mal alles geloggt, bei mariaDB kommt noch nichts an, ausser ein paar daten in der history über speichervorgänge u. ä. (Du darfst diesen Dateianhang nicht ansehen.)  ist die DB leer. Ich müsste jetzt irgendwie die attr im dblog setzen und such mir einen wolf und finde kein beispiel, was ich verstehen würde....
Einer der geloggten datensätze heisst z.b. "open-DTU/114172220246/1/current" - ist wohl ein "toppic", vom WR generiert, über die DTU und mosquitto zum FHEM dblog transportiert und sollte nun in die DB per "publish" eingefügt werden. Hab ich das so richtig verstanden?

wie setze ich das nun um?

gruss georg
befürworter der kleinschreibung: https://de.wikipedia.org/wiki/Kleinschreibung
hier zum klimawandel: http://www.globalcarbonatlas.org

DS_Starter

#1
Hallo Georg,

es ist eigentlich mehr eine Frage für das DbLog (Automatisierung) Forum.

ZitatEiner der geloggten datensätze heisst z.b. "open-DTU/114172220246/1/current" - ist wohl ein "toppic", vom WR generiert, über die DTU und mosquitto zum FHEM dblog transportiert und sollte nun in die DB per "publish" eingefügt werden. Hab ich das so richtig verstanden?
Ich denke nicht.  ;)

DbLog übernimmt nur Events in die Datenbank, also Werte die du im FHEM Eventmonitor siehst. Eine Ausnahme ist addLog, aber das ist erstmal außen vor.
Im einfachsten Fall wird im DEF von DbLog per Regex angegeben was in die DB geloggt werden soll.
Wenn du also zum Beispiel das Reading "open-DTU/114172220246/name" vom Device "RCVD" loggen möchtest,
würde man im DEF des DbLog angeben:

<Datei>.conf RCVD:open-DTU/114172220246/name

Wichtig ist wie geschrieben, dass es genau dieses Event auch im Eventmonitor generiert wird.
Es gibt noch viele weitere Methoden der Filterung. Doch solltest du wahrscheinlich erstmal den einfachsten Fall üben und dich langsam vorarbeiten.
(Ich gehe davon aus dass in der Datei 2023_10_24_ausgabe_FHEM_dblog.pdf die Events aus dem Eventmonitor aufgeführt sind?)

LG
ESXi 6.5 @NUC6i5SYH+FHEM auf Debian, DbLog/DbRep MariaDB
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

gk_georg

#2
da war ich schon, man hat mir euer forum empfohlen :-)
Zitat von: DS_Starter am 24 Oktober 2023, 21:58:35es ist eigentlich mehr eine Frage für das DbLog (Automatisierung) Forum.
Zitat
Zitat von: gk_georg am 20 Oktober 2023, 14:33:20danke für die links, nach dem einen habe ich die DB bereits installiert. wenn irgendwas nicht läuft, melde ich mich wieder - hauptsächlich wg. der automatisierung, im zendureforum läuft jetzt auch ein thread dazu...

gruss georg

Bevor du die Baustelle zur Visualisierung aufmachst versuche zunächst einfache Dinge mit Bordmitteln (SVG Plots) darzustellen und die gewünschte Automatisierung ans Laufen zu bringen.
Bei Fragen ist dafür vermutlich das Solaranlagen Board besser geeignet. Dort ist einiges zur DTU und Hoymiles zu finden.

Zitat von: rabehd am 27 September 2023, 13:01:41Warum nicht hier?
https://forum.fhem.de/index.php?board=61.0


Zitat von: DS_Starter am 24 Oktober 2023, 21:58:35DbLog übernimmt nur Events in die Datenbank, also Werte die du im FHEM Eventmonitor siehst. (Ich gehe davon aus dass in der Datei 2023_10_24_ausgabe_FHEM_dblog.pdf die Events aus dem Eventmonitor aufgeführt sind?)

die daten in "2023_10_24_ausgabe_FHEM_dblog.pdf" sind die daten, die nach dem klick im MQTT2_CLIENT auf die schaltfläche "Show MQTT traffic" ausgegeben werden. Im eventmonitor erscheinen diese daten nicht - ich nehme an, das ist das eigentliche problem. Ich  lese nun noch einmal die ersten schritte in FHEM, da wird zwar ein dummy schalter erklärt, der zusammenhang zu meinem MQTT CLIENT erschliesst sich mir noch nicht. Muss ich da auch z.b. dieses RCVD device anlegen?

EDIT:
db.conf RCVD:open-DTU/114172220246/power - da passiert nichts...

wie wichtig ist es mit dem gleichen room?
befürworter der kleinschreibung: https://de.wikipedia.org/wiki/Kleinschreibung
hier zum klimawandel: http://www.globalcarbonatlas.org

DS_Starter

#3
Zitatdb.conf RCVD:open-DTU/114172220246/power - da passiert nichts...
Ist klar wenn es nur die Traffic aus "Show MQTT traffic" ist.
Wie ich schrieb, relevant sind die Events im Eventmonitor. Alle Eventhandler (DbLog, FileLog, notify,...) reagieren auf diese Datensätze.

Zitatwie wichtig ist es mit dem gleichen room?
Wenn du das Attribut "room" meinst, das ist für die Eventverarbeitung völlig nebensächlich.

ZitatMuss ich da auch z.b. dieses RCVD device anlegen?
Nein, das war ja nur ein Beispiel um zu zeigen wie es in diesem Fall im DEF des DbLog angegeben werden müsste.
Ersetzte das Wort "RCVD" mit einem beliebigen Device-Namen dessen Readingwerte (Events) du loggen möchtest.
ESXi 6.5 @NUC6i5SYH+FHEM auf Debian, DbLog/DbRep MariaDB
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

gk_georg

bin jetzt die beispiele mit myLamp1 und mySwitch1 durchgegangen, das funktioniert mit

DEF = ./db.conf (mySwitch1|myLamp1) kommt in der datenbank folgendes an:

Dbeawer:

|TIMESTAMP              |DEVICE   |TYPE |EVENT     |READING|VALUE|UNIT|
|-----------------------|---------|-----|----------|-------|-----|----|
|2023-10-26 13:40:20.000|myLamp1  |DUMMY|state: on |state  |on   |    |
|2023-10-26 13:40:24.000|mySwitch1|DUMMY|state: off|state  |off  |    |


so weit so gut, was mich irritiert ist, dass auch die zustände der lampe und des schalters nur in der history tabelle zu sehen sind, aber vielleicht gehört das ja so...

was ich noch nicht geschafft habe, ist das ergebnis auf das device MQTT2_CLIENT "solar_broker" zu übertragen. Da sind zwar daten in der ausgabe von FHEM (show MQTT trafic), aber das ist ja was anderes, die sind ja immer da, es sei denn die werden dort gefiltert. Diese datensätze sehen so aus, sie kommen doch von dem "MQTT2_CLIENT", bei mir heisst der solar_broker:

TIMESTAMP     device               topic                           value
13:50:37.941   RCVD    open-DTU/114172220246/device/hwpartnumber   269553683
13:50:37.945   RCVD    open-DTU/114172220246/device/hwversion      01.00
13:50:37.949   RCVD    open-DTU/114172220246/status/limit_relative 100.00
13:50:37.952   RCVD    open-DTU/114172220246/status/limit_absolute 600.00

die zuordnung der titelzeile zu den unteren werten habe ich mir selber so "zusammengeschustert", wahrscheinlich stimmt es so nicht...

woher kommt das RCVD? ist auch bei der ausgabe oder der einstellungen der open-DTU nicht zu finden...

also an der zuordnung zum device haperts noch irgendwie...


befürworter der kleinschreibung: https://de.wikipedia.org/wiki/Kleinschreibung
hier zum klimawandel: http://www.globalcarbonatlas.org

DS_Starter

Sehr gut.

Zitatso weit so gut, was mich irritiert ist, dass auch die zustände der lampe und des schalters nur in der history tabelle zu sehen sind, aber vielleicht gehört das ja so...
Das ist die Grundeinstellung, änderbar mit dem Attr DbLogType. Es gibt viel einzustellen -> Commandref lesen.

Zitatwas ich noch nicht geschafft habe, ist das ergebnis auf das device MQTT2_CLIENT "solar_broker" zu übertragen. Da sind zwar daten in der ausgabe von FHEM (show MQTT trafic), aber das ist ja was anderes, die sind ja immer da, es sei denn die werden dort gefiltert.
Das ist ein ganz anderes Thema und hat mit dem Thread hier "daten in die FHEM datenbank schreiben" nichts zu tun.
Am Besten ist es du arbeitest dir nochmal die Zusammenhänge bzgl. MQTT2 durch. Ein guter Startpunkt wäre das Wiki https://wiki.fhem.de/wiki/MQTT2_DEVICE_-_Schritt_f%C3%BCr_Schritt#Einf%C3%BChrung.

Fragen zu MQTT2 kannst du in dem MQTT-Forum platzieren. Dieser Thread hier ist dafür nicht geeignet.

Zitatwoher kommt das RCVD?
RCVD heißt wohl einfach "received" als Kennzeichnung eines empfangenen Datensatzes. Wenn man weiß dass es Daten aus dem Traffic-Monitor sind, kommt man gleich darauf.
ESXi 6.5 @NUC6i5SYH+FHEM auf Debian, DbLog/DbRep MariaDB
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