Aktionen

IoBroker Grafana Diagramme und Werte per Simple-api Adapter

Aus znilwiki

Version vom 5. Juli 2024, 20:19 Uhr von BLinz (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „<u>'''Changelog'''</u><br> * 05.07.2024 erste Version ---- ==Vor-Vorwort== Ja, warum nimmst du nicht die InfluxDB zusammen mit Grafana? Naja, habe ich ausprobiert, hat mir nicht gefallen, alles - im Vergleich - sehr umständlich mit der Datenbank. Ich nutze nun schon seit Jahrzehnten MySQl und MariaDB für SQL-Datenbanken, das funktioniert auch in ioBroker ganz wunderbar (und schnell). Im Prinzip könnte man auch direkt die SQL-Datenbank abfragen, da muss…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Changelog

  • 05.07.2024 erste Version

Vor-Vorwort

Ja, warum nimmst du nicht die InfluxDB zusammen mit Grafana? Naja, habe ich ausprobiert, hat mir nicht gefallen, alles - im Vergleich - sehr umständlich mit der Datenbank. Ich nutze nun schon seit Jahrzehnten MySQl und MariaDB für SQL-Datenbanken, das funktioniert auch in ioBroker ganz wunderbar (und schnell). Im Prinzip könnte man auch direkt die SQL-Datenbank abfragen, da muss man sich das dann aber auch aus 2 Tabellen zusammensuchen. In der einen stehen die Datenpunkte und deren Index, in der anderen dann die Werte. Hatte ich damals auch nicht auf Anhieb hinbekommen, per Simple-api war es einfacher.


Vorwort

Da ich meinen ioBroker nicht direkt über das Internet erreichbar machen will, von Unterwegs aber trotzdem auf meine Solarwerte schauen möchte, setze ich Grafana ein.
Grafana holt sich dabei die Werte vom ioBroker und stellt mir die Werte so und als Diagramme da.
Mein Grafana-Server ist dann über einen Apache-Reverse-Proxy über eine https-Seite, mit Benutzer + Passwort und Geoblocking innerhalb von Deutschland erreichbar.

Ich hatte dazu mal einen Thema im ioBroker-Forum erstellt - und lange Zeit lief das mit einer Nutzung des JSON API für Einzelwerte und des SimpleJSON für Diagramme ganz hervorragend.

https://forum.iobroker.net/topic/62706/gel%C3%B6st-grafana-per-simpleapi-plugin-simplejson-vs-json


Aber seit ein paar Tagen hatte ich keine Diagramme mehr. Grund ist, das das SimpleJSON Plugin seit 6 Jahren nicht mehr gepflegt wird und deshalb vom Grafana-Team entfernt wurde - es nicht nicht mehr supportet, nach einem Update von Grafana war es zwar noch in der Liste der Data sources, die PlugIn-Dateien fehlten aber.

https://github.com/grafana/simple-json-datasource
ClipCapIt-240705-205412.PNG

Tja, so hatte ich nur noch die Werte und keine Diagramme mehr.
Also habe ich es mit dem Infinity data source plugin versucht - und das was alles andere als ein Selbstläufer!
Damit ich das auch noch mal hinbekomme, gibt es nun dieses Artikel hier.


Grafana: Datenquelle installieren

ClipCapIt-240705-205712.PNG

In Grafana fügen wir eine neue Datenquelle hinzu - Infinity Ich habe meine Instanz Infinity-GET genannt.
Und es muss nichts in der Datenquelle konfiguriert werden!
Hinzufügen reicht.


ioBroker Simple-api Adapter installieren

ClipCapIt-240705-210120.PNG

Den Adapter installieren und ggf. eine Instanz hinzufügen (sollte automatisch passieren).
In den Instanzeinstellungen habe ich meine Datenquelle für die historischen Daten ausgewählt, der Port 8087 ist meine ich der Default Wert:

ClipCapIt-240705-210912.PNG

Kleiner Test: Sucht euch einen beliebigen Datenpunkt aus euren Objekten aus, ich nehme mal diesen hier:

0_userdata.0.Solaranlage.Total.Energy-Power

Darin steht der Wert meiner aktuellen Solarproduktion.
Im Webbrowser kann man nun diesen Wert per API-Aufruf abfragen, egal ob der Wert eine Datenaufzeichnung besitzt oder nicht (SQL, InfluxDB oder History aktiviert wurde):

http://192.168.1.8:8087/get/0_userdata.0.Solaranlage.Total.Energy-Power

Also wie folgt:

http://192.168.1.8:8087/get/                   Die IP-Adresse eures ioBroker, Port 8087, gefolgt von einem /get/
0_userdata.0.Solaranlage.Total.Energy-Power    Die Objekt-ID die abgefragt werden soll

Die Rückgabe ist dann ein JSON:

ClipCapIt-240705-211545.PNG

Ganz schön viel Information, eigentlich wollen wir ja nur den Wert aus Zeile 2.
Das ginge auch, dann müssen wir /getPlainValue/ statt /get/ in der URL verwenden:

http://192.168.1.8:8087/getPlainValue/0_userdata.0.Solaranlage.Total.Energy-Power

und schon gibt es nur die 83 zurück.
Mehr Details gibt es unter der Beschreibung des Adapters:

https://github.com/ioBroker/ioBroker.simple-api

Grafana - zum Aufwärmen einen einzelnen Wert abfragen