SYNC zwischen Openhab 4.2.1 und grafana influxdb

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

BaluderBaer
Beiträge: 55
Registriert: 2. Mär 2023 20:26
Answers: 0

SYNC zwischen Openhab 4.2.1 und grafana influxdb

Beitrag von BaluderBaer »

hallo team

ich habe hier mal eine kurze frage, und hoffe jemand kann mir einen tipp geben
ich verwende openhab 4.2.1 auf einem raspi 400
soweit so gut, alle funktionen sind soweit gegeben.
tuerkontakte, steckdosen lampen themperaturen etc werden richtig geschaltet und angezeigt.

soweit so gut, nun bin ich auf die idee gekommen grafana zu installieren. ( ueber config punkt 20 bzw 24 und der einbindung vom influx addon )
soweit auch alles gut gegangen ( rechte auf influxdb.cfg etc. wurden angepasst )
mit influx kann ich mich in die datenbank verbinden.
use " datenbank " wechsel ich in die datenbank
mit "show measurements" sehe ich die inhalte der datenbank
mit "select * from xxxxx order by time desc Limit 20" sehe ich die letzten eintrage fuer das entsprechende geraet
daten werden richtig mit dem zeitstempel angezeigt. also ein schreiben von openhab in die db ist moeglich.

mit grafana kann ich mich mit der datenbank verbinden ( test ist ok ) und bekomme auch daten angezeigt.

soweit so gut. jedoch ist unter "show measurements" nur ein bruchteil der daten aus openhab eingetragen.
es fehlen die tuer/fenster kontakte, einige schaltsteckdosen, einige themperatur anzeigen, die akku staende der handys etc. ( und vieles mehr )

wie kann ich jetzt die daten aus openhab in die grafana influxdb bekommen ( bzw sync. machen ) so das ich diese dann auch in grafana visualisieren kann.

mfg
balu :)

nw378
Beiträge: 229
Registriert: 22. Sep 2018 10:38
Answers: 4

Re: SYNC zwischen Openhab 4.2.1 und grafana influxdb

Beitrag von nw378 »

Sind denn wirklich alle Werte auch persistiert? Nur dann sind sie in der Datenbank und nur dann kann Grafana sie anzeigen.

Dazu müssen alle entsprechenden Items in der influxdb.persist Datei (/etc/openhab/persistence) aufgeführt werden,

also z.B. so:

Code: Alles auswählen

Strategies
{
everyMinute : "0 * * * * ?"
every2Min  : "0 0/2 * * * ?"
every5Min  : "0 0/5 * * * ?"
every10Min  : "0 0/10 * * * ?"
everyHour   : "0 0 * * * ?"
everyDay    : "0 0 0 * * ?"
every5Sec   : "0/5 * * * * ?"
default = everyChange
}
Items
{
//Temperaturen, Wetter
Temp_Office :         strategy = every2Min, restoreOnStartup
Temp_Bad_OG :         strategy = every2Min, restoreOnStartup
//...alle weiteren zu speichernden Items...
}
openHAB 4.2.2 @ RPi 4 / SSD - InfluxDB2 und Grafana @ Synology Docker - KNX

BaluderBaer
Beiträge: 55
Registriert: 2. Mär 2023 20:26
Answers: 0

Re: SYNC zwischen Openhab 4.2.1 und grafana influxdb

Beitrag von BaluderBaer »

hallo nw378

danke erst mal fuer diese super schnelle antwort.
sorry, ich habe eine falsche info geliefert, abfrage war von gestern abend, heute wurde nichts mehr in die db geschrieben, habe dies gerade abgefragt

zu den items, muss ich heute abend klaeren, was genau jetzt drin steht. ( bin mir nicht sicher ) und moechte nicht noch eine falsche info liefern.

DANKE
balu

BaluderBaer
Beiträge: 55
Registriert: 2. Mär 2023 20:26
Answers: 0

Re: SYNC zwischen Openhab 4.2.1 und grafana influxdb

Beitrag von BaluderBaer »

Hallo zusammen,
OK, Super, der tipp scheint zu passen, da fehlen sehr sehr viele eintraege.
da ich zur zeit ca 800 item eintraege habe, gibt es eine moeglichkeit diese ohne abzuschreiben irgendwie in eine textdatei zu sichen, sodass man diese danach ohne schreibfehler ( selektierte daten ) in die datei reinkopieren kann.
oder anders gefragt, gibt es eine moeglichkeit einfach alle items einfach in influxdb einzulesen, ( man muss diese ja nicht benutzen )

danke
balu

nw378
Beiträge: 229
Registriert: 22. Sep 2018 10:38
Answers: 4

Re: SYNC zwischen Openhab 4.2.1 und grafana influxdb

Beitrag von nw378 »

ja, gibt es.

Einfach

Code: Alles auswählen

Items {
* : strategy = everyChange, restoreOnStartup
}
Das Sternchen (*) ist der Platzhalter für alle Items. "everyChange" speichert dann jede Zustandsänderung in influx.

Manchmal ist es (gerade für Grafana) sinnvoll, häufiger Datenpunkte zu speichern, zum Beispiel alle x-Minuten.
Denn: Wenn im Betrachtungszeitraum deines Grafana-Diagramms keine Werte gespeichert wurden (weil sich nix geändert hat), fehl Grafana der Ausgangspunkt und es wird keine Linie (oder was auch immer) angezeigt.
Dann müsstest Du eine weitere Strategie ergänzen.

Wenn Du pauschal für alle 800 Items jede Sekunde speicherst (ginge ja theoretisch auch), blähst Du die Datenbank reichlich auf und das macht sich bemerkbar, wenn du über längere Zeiträume (Stromverbrauch im letzten Jahr oder so) Diagramme aufbaust.

Ich speicher deswegen sogar die Daten in 2 Datenbanken; einem Kurzzeit-Speicher für die letzten 3 Monate und einem Endlos-Speicher, der dann aber nur bspw. je Stunde oder je Tag einen Wert speichert. Aber das ist Schritt 2, erstmal alles zum Laufen kriegen ;)
openHAB 4.2.2 @ RPi 4 / SSD - InfluxDB2 und Grafana @ Synology Docker - KNX

BaluderBaer
Beiträge: 55
Registriert: 2. Mär 2023 20:26
Answers: 0

Re: SYNC zwischen Openhab 4.2.1 und grafana influxdb

Beitrag von BaluderBaer »

um das zu vermeiden wollte ich die ca 800 eintrage vorher filtern, sodass nur die benoetigten daten reinkommen.
brauche nur die lampen steckdosen tuer/fenster kontakte temperaturen feuermelder etc.
anderes wie volume album farben etc sind unnoetig.
dann wurde ich ca auf 200 bis 250 eintraege runterkommen. selbst das ist zuviel zum abschreiben

geht da ein eintrag wie
lampen*
steckdosen*
oder
*lampen*
*steckdosen*

es sollte doch dann auch so gehen, ich lese alles mit * ein, mache danach ein "show measurements" auf die datenbank.
dann habe ich alles.
dies kann ich dann in einen editor einlesen, das was nicht benoetigt wird loeschen und den rest in die datei eintragen.
dann fehlt hierzu nur noch die info, wie loesche ich den inhalt der mit use openhab zugewiesenen db bevor ich dann die gaenderte datei wieder einlese.
das sollte doch mit "DROP MEASUREMENT *" dann auch gehen
richtig ?????

( wobei mir das eigendlich am besten gefaellt )

Danke fuer die info

Benutzeravatar
udo1toni
Beiträge: 14615
Registriert: 11. Apr 2018 18:05
Answers: 227
Wohnort: Darmstadt

Re: SYNC zwischen Openhab 4.2.1 und grafana influxdb

Beitrag von udo1toni »

Du kannst Gruppen persistieren. Dazu müssen die zu persistierenden Items (mindestens) einem Group Item zugeordnet sein. Dieses Group Item trägst Du dann ein, in der Form GroupItemName* (also der voll ausgeschriebene Name des Group Items mit anschließendem Stern). Und dann wird nicht das Group Item selbst persistiert, sondern ausschließlich dessen unmittelbare Member.
Es gibt ansonsten keine Joker, außer halt "Alles" mit dem Stern ohne weiteren vorhergehenden Namen.

Du kannst die Konfiguration ab openHAB4.1.0. auch direkt über die Main UI vornehmen (Administration -> Einstellungen -> linke Seite Persistence...), dann musst Du keine Textdatei schreiben. Ansonsten wird es eher schwierig, Du könntest z.B. über den API Explorer eine Leiste aller Items als JSON bekommen, aber da steht dann halt noch viel mehr drin, Du bräuchtest anschließend also ein JSON Tool, um die name-Felder aller Knoten in Listenform zu erhalten.

Ich stelle wieder mal fest, dass ich als konsequenter Nutzer der Textkonfiguration manchmal auch Vorteile habe :)

Ein möglicher Weg, um "einfacher" an die Itemnamen zu kommen: Du lässt die Items einmalig alle mittels rrd4j persistieren.
rrd4j erstellt für jedes Item eine eigene Datei mit Endung .rrd, Du kannst also mittels ls einfach die Dateinamen "abschöpfen" und dann z.B. mit Excel recht bequem weiter verarbeiten.

Oder halt (siehe oben) ein Group Item definieren und alle Items diesem Group Item zuordnen (das geht ja auch mit Klicken in der UI)

Items dürfen beliebig vielen Groups gleichzeitig zugeordnet werden, einzige Bedingung ist, dass maximal eine dieser Groups Bestandteil des Semantic Model sein darf (das sind dann gewöhnlich Räume oder Geräte)
Der Typ des Group Items selbst ist unwichtig, es sei denn, die Group soll selbst einen sinnvollen Status haben, dann muss der Typ natürlich zum Typ der Member passen, damit die Aggregation korrekt arbeiten kann.
openHAB4.2.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.7, LXC), mit openHABian eingerichtet

nw378
Beiträge: 229
Registriert: 22. Sep 2018 10:38
Answers: 4

Re: SYNC zwischen Openhab 4.2.1 und grafana influxdb

Beitrag von nw378 »

Ganz ohne Fleißarbeit wird es wohl nicht gehen. Du kannst die Items zu Gruppen zusammenfassen.

Wenn Du mit Textfiles arbeitest, kannst du in der .items Datei die Gruppen ergänzen und müssten dann eben leider hinter die jeweiligen Items die jeweilige Gruppe ergänzen:

Code: Alles auswählen

Group gSteckdosen

Switch Steckdosen_1 (gSteckdosen)
In der UI geht das auch, aber da kann ich dir nicht sagen, wie du Gruppen anlegst.

und in der .persist dann:
<groupName>* - all members of this group will be persisted, but not the group itself. Optionally, an alias may be provided if the persistence service requires special names (e.g. a table to be used in a database, a feed id for an IoT service, etc.) Note that * is NOT a wildcard match character in this context.
https://www.openhab.org/docs/configurat ... html#items

den unteren Teil Deines Beitrags habe ich nicht ganz verstanden.
openHAB 4.2.2 @ RPi 4 / SSD - InfluxDB2 und Grafana @ Synology Docker - KNX

nw378
Beiträge: 229
Registriert: 22. Sep 2018 10:38
Answers: 4

Re: SYNC zwischen Openhab 4.2.1 und grafana influxdb

Beitrag von nw378 »

Udo war schneller... :lol:
openHAB 4.2.2 @ RPi 4 / SSD - InfluxDB2 und Grafana @ Synology Docker - KNX

BaluderBaer
Beiträge: 55
Registriert: 2. Mär 2023 20:26
Answers: 0

Re: SYNC zwischen Openhab 4.2.1 und grafana influxdb

Beitrag von BaluderBaer »

hallo zusammen

ok, wenn ich euch richtig verstanden habe, gibt es beim loeschen keine wildcard. somit faellt meine idee raus.
anders ist es mit den eintragungen ueber die ui
einstellungen, persistence, Configure Persistence Policies, influxdb
da ueber Configuration, add Configuration, select items,die items raussuchen die ich in der db haben moechte.

diese werden dann in die "influxdb.persist" geschrieben
bei aktivierten "General Settings " influxdb werden diese dann genommen
vorteil ist hierbei, ich habe wirklich nur das was ich brauche, keinen datenmuell und kann dies auch noch nach etagen und raeumen trennen

oder mit * alle items nehmen ..... ( schlechtere version )

ok, das ist zwar ein wenig klick klack, aber damit kann ich gut leben und kann dies auch jederzeit ohne probleme erweitern

ist das so richtig verstanden ??

Danke an alle

Antworten