Wie Daten von Grafana zurück an Openhab geben?

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
openhabschwall
Beiträge: 8
Registriert: 9. Jun 2022 11:47
Answers: 0

Wie Daten von Grafana zurück an Openhab geben?

Beitrag von openhabschwall »

Guten Morgen,

ich betreibe auf einem Raspi Openhab und visualisiere einige Daten mit Grafana. Da ich Sensordaten meistens als MQTT zur Verfügung habe, übergebe ich die Daten von Openhab an den MQTT-Broker, Telegraf liest diese Daten und schreibt sie in eine InfluxDB v1 Datenbank. Grafana visualisiert diese Daten. Einige in Grafana berechnete diskrete Werte (z.B. Energiewerte der Wärmepumpe) möchte ich an Openhab zur weiteren Aufbereitung zurückgeben. Da Grafana mWn nur read-only arbeitet, suche ich nach einer dafür passenden Lösung.
Hat jemand eine Idee? Danke vorab.

Bernd

nw378
Beiträge: 296
Registriert: 22. Sep 2018 10:38
Answers: 5

Re: Wie Daten von Grafana zurück an Openhab geben?

Beitrag von nw378 »

direkt klappt das m.W. gar nicht.

Welche Version von Influxdb nutzt Du?
Was du nämlich machen könntest, wäre, die Rechenoperationen durch Influxdb durchführen zu lassen. Ab Version 2.x kann man Tasks erstellen, die solche Operationen durchführen, (Downsampling bspw.) und wieder in die Datenbank speichern.
Hierauf kannst du gleichermaßen durch Grafana und openHAB zugreifen. (bei openHAB allerdings nur, wenn im selben Bucket gespeichert).

Edit: vorausgesetzt, du nutzt influxdb 2.x und hast dem grafana-Token auch Schreibrechte vergeben, könntest du mal probieren, im Flux-Query folgendes zu ergänzen:

Code: Alles auswählen

    |> to(bucket: "dein_openHAB_bucket")
openHAB 4.3.3 @ RPi 4 / SSD - InfluxDB2 und Grafana @ Synology Docker - KNX

openhabschwall
Beiträge: 8
Registriert: 9. Jun 2022 11:47
Answers: 0

Re: Wie Daten von Grafana zurück an Openhab geben?

Beitrag von openhabschwall »

Danke für Deine Antwort. Ich nutze Influxdb 1 und kann das wg. vieler Skripte auch nicht einfach auf Influxdb 2 / Flux umstellen.
Wäre ansonsten eine gute Idee. Ich hatte auch an Nutzung der REST/Json API von Grafana gedacht, das scheint aber auch nicht zu funktionieren.

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

Re: Wie Daten von Grafana zurück an Openhab geben?

Beitrag von udo1toni »

Ganz grundsätzlich: Grafana ist nicht dazu gedacht, Berechnungen vorzunehmen und an externe Programme weiterzureichen. Entsprechend gibt es auch keine passenden Schnittstellen, die das komfortabel ermöglichen.
Natürlich kannst Du versuchen, in Grafana Scripten die REST API von openHAB zu nutzen um dann Werte in Items zu quetschen, aber ganz ehrlich: Warum nutzt Du dann überhaupt openHAB? Du arbeitest mit der ganzen Vorgehensweise systematisch und mit Ansage komplett gegen openHAB. Das kannst Du tun, aber erwarte nicht, dass openHAB Dich dabei auch noch unterstützt.

In openHAB gibt es überhaupt keine Schnittstelle zu Grafana.
Die einzige Möglichkeit, Grafana von openHAB aus zu nutzen, besteht darin, Daten über die Persistence in eine Datenbank zu schreiben und Grafana auf diese Datenbank zugreifen zu lassen.
Wenn Du möchtest, kannst Du dafür InfluxDB nutzen (wahlweise V1 oder V2), das ist aber nicht zwingend, da Grafana seit mehreren Jahren auch diverse andere Datenbanken unterstützt, z.B. auch MySQL.

Es gibt auch keine Möglichkeit, auf die InfluxDB zuzugreifen (außer über die Persistence). Das ist tatsächlich ärgerlich, da man prima (nicht nur für InfluxDB) Daten über (z.B.) SQL Abfragen bereitstellen könnte, wenn dies "Ehda" Daten sind.

Meine Empfehlung für eine vernünftige Einbindung in openHAB: hole die Daten per mqtt direkt in openHAB und lasse sie von openHAB persistieren - gerne per InfluxDB, Version erst mal egal, gerne mit einer eigenen Datenbank (ähm... ich nutze nun schon V2, da heißt das Bucket, waren das in V1 die Shards? egal...), wenn Du die Daten unabhängig von openHAB aufbereiten lassen willst, kannst Du die Daten einfach in der InfluxDB abgreifen.
Lass die Berechnungen - welche auch immer das sind - von openHAB erledigen, notfalls parallel zum bisherigen Vorgehen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

openhabschwall
Beiträge: 8
Registriert: 9. Jun 2022 11:47
Answers: 0

Re: Wie Daten von Grafana zurück an Openhab geben?

Beitrag von openhabschwall »

danke @udo1toni. Ich sehe das wie Du, dass Openhab für Berechnungen besser als Grafana geeignet ist.
Die einzige Möglichkeit, Grafana von openHAB aus zu nutzen, besteht darin, Daten über die Persistence in eine Datenbank zu schreiben und Grafana auf diese Datenbank zugreifen zu lassen.
Das mache ich über den Mosquitto MQTT Broker, da ich den ohnehin benötige.

Ich habe in Grafana den el. Energieverbrauch der Wärmepumpe aus der elektrischen Leistung bestimmt und visualisiert. Das ging ganz einfach und nebenbei. Jetzt wollte ich die Daten nach Openhab transportieren und dort speichern/persistieren, um mir die nochmalige/parallele Berechnung der Energiewerte in Openhab zu sparen. Das ist der Hintergrund. Ok, dann berechne ich die Energie in Openhab noch einmal und gut ist.

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

Re: Wie Daten von Grafana zurück an Openhab geben?

Beitrag von udo1toni »

openhabschwall hat geschrieben: 16. Sep 2023 00:31 Das mache ich über den Mosquitto MQTT Broker, da ich den ohnehin benötige.
Ja, mag sein, dass man über mqtt Daten an InfluxDB oder Grafana schicken kann, es ist aber von hinten durch die Brust ins Auge.

Ich empfange Messdaten über mqtt.
Ich möchte diese Messdaten in openHAB verwenden, also erzeuge ich ein generic mqtt Thing und verknüpfe die Topics passend mit Channels, in denen die aktuellen Werte bereitstehen.
openHAB arbeitet mit Items, also verknüpfe ich die Channel mit passenden Items.
Ich möchte die Historie der Daten verwenden, also verknüpfe ich die Items mit einer passenden Persistence.
Ich möchte die Daten in Grafana visualisieren, also richte ich Grafana so ein, dass es auf die persistierten Daten zugreift.

Alternativ möchte ich die Daten unabhängig von openHAB in eine Datenbank schaufeln, das kann ich tun, aber in diesem Moment ist openHAB raus.
Wenn Grafana seinerseits berechnete Werte nicht z.B. per mqtt bereitstellen kann (oder über eine einfach zu nutzende API, whatever), dann ist in Grafana Endstation.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten