Tibber: zukünftige Strompreise in Sitemap anzeigen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
murpele
Beiträge: 13
Registriert: 1. Jan 2023 14:01
Answers: 0

Tibber: zukünftige Strompreise in Sitemap anzeigen

Beitrag von murpele »

Hi!

Ich bin neuerdings Tibber-Kunde und möchte nun die zukünftigen Strompreise als Grafik in der Sitemap angezeigt bekommen. Welche Möglichkeiten gibt es diesbezüglich? Mir ist nur der Weg über Grafana eingefallen.

Was ich bisher getan habe:
- Weil die Preise als 'Time Series' kommen habe ich meine gesamte persistence von rrd4j auf influxdb umgestellt.
- Mit influxdb habe ich auch Grafana installiert.

In Grafana scheint nun alles zu funktionieren. Ich kann mir im Dashboard eine Chart erstellen, die meinen Ansprüchen genügt:
Bild

Ich scheitere aber dabei, diese Grafik vernünftig in der Sitemap angezeigt zu bekommen. Weil ich diesbezüglich ein absoluter Newbie bin, frage ich mich, ob ich etwas grundsätzlich falsch mache und/oder ob ich das Prinzip überhaupt verstanden habe.

In Grafana "share" ich den Chart und füge den Link in die Sitemap wie folgt ein:

Code: Alles auswählen

    Webview url="http://192.168.1.100:3000/d-solo/add64hb/new-dashboard?orgId=1&from=1763759443265&to=1763845843265&timezone=browser&panelId=panel-3&__feature.dashboardSceneSolo=true" height=10
Das funktioniert auch (zu Beginn) - ich bekomme den Chart wie gewünscht angezeigt. Meine anfängliche Freude darüber, dass mir das bis soweit so gut gelungen ist, hat leider nicht lange angehalten...

Es gibt zwei 'Probleme', die ich nicht gelöst bekomme:
1. In der Sitemap wird der Chart nicht korrekt aktualisiert. Der Chart ändert sich zwar - aber es wird 'inhaltlicher Nonsense' erzeugt. In Grafana selbst ist alles in Ordnung - dort bekomme ich immer die zukünftigen Tibber-Preise korrekt angezeigt. Wie schaffe ich, dass in der Sitemap jeweils auch das angezeigt wird, was ich in Grafana zu Gesicht bekomme?
2. Der Chart wird nur angezeigt, wenn ich im LAN bin. Der Link enthält ja die lokale IP-Adresse meines Raspberry Pi - über das Internet ist diese IP nicht erreichbar. Für unterwegs nutze ich die Cloud von myopenhab.org (mit der openHAB-App auf dem Handy).
Wenn ich mit der openHAB-App remote auf meine Sitemap zugreife, bekomme ich die Fehlermeldung, demnach die IP 192.168.1.100 nicht erreichbar ist.
Daher stellt sich mir nun die Frage: Wenn ich den Chart nicht mit einer Grafana-URL einbinden darf (wenn es remote auch funktionieren soll): Wie sonst bekomme ich aus Grafana einen Chart in die Sitemap?

Mache ich es zu kompliziert?
Ich hätte erwartet, dass dies ein ziemlicher "Standard" ist, den schon viele bei sich implementiert habe: Die zukünftigen Strompreise in der Sitemap als Grafik angezeigt zu bekommen. Wie habt ihr das gelöst?

Viele Grüße
Holger
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

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

Re: Tibber: zukünftige Strompreise in Sitemap anzeigen

Beitrag von udo1toni »

Punkt 1: Du kannst beliebig viele Persistences parallel verwenden. dabei kannst Du für jedes Item einzeln entscheiden, mit welcher/n Persistence(s) in welcher Art persistiert wird. Es gibt keinen Grund, alles umzustellen, weil Du ein Item über InfluxDB speichern willst.
Punkt 2: Ich nutze das selbst nicht, aber Grafana muss extra dafür konfiguriert werden, dass die Website bzw. die Grafiken dynamisch eingebunden werden "dürfen".
Punkt 3: Bezüglich des Zugriffs über myopenhab brauchst Du einen Reverse Proxy.

Weil ich zu faul für diesen Weg bin, habe ich mir einfach (!) einen Wireguard Zugriff eingerichtet.
Falls Dein Router das nicht selbst unterstützt, geht das auch mit einem Docker Container oder notfalls auch nativ, schlimmstenfalls parallel auf dem openHAB System. Wireguard Clients gibt es für alle "interessanten" Betriebssysteme, iOS, Android, Windows... Und mit Wireguard bist Du jederzeit virtuell innerhalb Deines eigenen LAN, da ist myopenhab dann unnötig (es sei denn, man benötigt andere Funktionen als den Zugriff aus dem Internet).
openHAB5.0.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox 9.1.2 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte

murpele
Beiträge: 13
Registriert: 1. Jan 2023 14:01
Answers: 0

Re: Tibber: zukünftige Strompreise in Sitemap anzeigen

Beitrag von murpele »

Danke für die schnelle Antwort.

Thema: Persistences
Verstanden. Ich hätte nicht alles umstellen müssen. Irgendwie dachte ich aber, dass ich - wenn ich schon InfluxDB implementiere - dann darin auch gleich alles mache (damit ich für alle Items Grafana nutzen kann). Gibt es etwas, was man mit InfluxDB/Grafana nicht machen kann - aber mit rrd4j geht? Gibt es also einen Grund, wieso man rrd4j trotzdem noch nutzen sollte?

Thema: Dynamische Aktualisierung Grafana
Das heißt vermutlich, dass ich die Datei /etc/grafana/grafana.ini anpassen muss. Korrekt?
Die Datei ist sehr umfangreich und auf Anhieb konnte ich jetzt keinen Wert identifizieren, der dafür sorgt, dass sich der in der Sitemap eingebundene Grafana-Chart dynamisch aktualisiert. Wer hat Tipps / eine Anleitung?

Thema: Reverse Proxy / VPN
Ich habe die Möglichkeit per VPN in mein LAN zu kommen - ich verwende dafür auch Wireguard.
Auf die Sitemap soll aber nicht nur ich, sondern auch Familie und "erweiterte Bekannte" zugreifen können. Abgesehen davon, das es nicht so praktikabel wäre, jedem einen VPN-Client einzurichten: Ich möchte nicht, dass alle diese Personen in mein LAN kommen... ...und mit VLANs zu arbeiten, ist mir zu kompliziert. Ich habe schon so, ziemlich viel Technik im Einsatz. Meine Frau würde jetzt lachen, wenn sie das liest: Ich versuche alles recht einfach zu halten... ...irgendwie empfindet das meine Frau aber ganz anders... :-)
Dann werde ich mich wohl (doch noch) mit dem Thema Reverse Proxy beschäftigen müssen. Ich habe mir das in der Vergangenheit einmal kurz angeschaut - dann aber nicht weiter verfolgt.
Ich nutze openhabian (ganz klassisch ohne Docker o.ä.) auf einem Raspberry Pi 4. Muss ich mich nun zwingend auch noch mit dem Thema Virtualisierung beschäftigen oder kann ich einen Reverse Proxy auch so zusätzlich auf die openhabian-Installation "draufpacken"? Falls Letzteres nicht geht, würde ich einen separaten Raspberry dafür zusätzlich implementieren. Reicht dafür ein Pi3?

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

Re: Tibber: zukünftige Strompreise in Sitemap anzeigen

Beitrag von udo1toni »

Ich bin mir nicht sicher, ob openHABian eine passende Option mitliefert, aber ja, Du könntest den Reverse Proxy mit auf dem Pi4 laufen lassen - notfalls halt indem Du ihn von Hand installierst.

Zugriff für Familie: Wireguard ist ja schon super bequem einzurichten, den Client zu installieren ist auf Smartphones und Tablets aus dem jeweiligen AppStore eine Sache weniger Klicks, die passende Konfiguration bekommst Du per QR Code oder schlimmstenfalls über den Import der passenden Textdatei.
Zugriff für Außenstehende: 1. Warum haben die überhaupt Zugriff? 2. Was interessiert die der zukünftige Tibber Strompreis? openHAB bietet leider bisher keine echte Nutzerverwaltung und spezielle Sitemaps oder Ansichten für verschiedene Personengruppen lassen sich leicht umgehen, da wäre der Zugriff auf das LAN nur noch der letzte Krümel und nicht das Hauptproblem.
Übrigens kann man bei Wireguard für jeden Client explizit die erlaubten IP Adressen vorgeben, man kann also leicht dafür sorgen, dass bestimmte Clients nur bestimmte Teilbereiche des Netzwerks erreichen können.

Persistences: rrd4j kann nichts, was nicht besser auch mit InfluxDB ginge, aber bei InfluxDB musst Du viele Dinge erst selbst entsprechend konfigurieren, was bei rrd4j schon fertig konfiguriert ist. Da rrd4j mit dem mehrstufigen Ringspeicher arbeitet, kann man nicht einfach zukünftige Daten wegschreiben, das ist eines der Probleme mit rrd4j.
Was weder mit rrd4j noch mit InfluxDB sauber funktioniert, ist die Persistence von Strings, rrd4j kann ausschließlich mit Zahlen umgehen, bei InfluxDB geht zwar ein bisschen was, aber die beiden Datenbanken sind halt für Timeseries optimiert. Sobald Du also Strings speichern willst, wäre eine MariaDB oder Ähnliches die bessere Wahl. Falls immer nur der aktuelle Status gespeichert werden muss (für restoreOnStartup) ist MapDB die erste Wahl.

Grafana:
Ich denke, es war dieser Parameter:

Code: Alles auswählen

[security]
# set to true if you want to allow browsers to render Grafana in a <frame>, <iframe>, <embed> or <object>. default is false.
allow_embedding = true
Damit kannst Du dann die einzelnen Grafana Views als Webview in die openHAB UI integrieren.

Für den Remote Zugriff gäbe es auch noch die Möglichkeit, statische Bilder zu rendern und unterhalb http://openhab:8080/static/ erreichbar zu machen (dazu müssen die Bilder unter $OPENHAB_CONF/html/ gespeichert werden, am besten unter einem fixen Namen, auf den Du dann per Image Widget verweisen kannst - das sollte auch über myopenhab funktionieren, ist aber dann eine statische Anzeige, in dem Sinne, dass das Bild jeweils neu gerendert werden muss, wenn man die Anzeige aktualisieren will.) Ich bin mir nicht sicher, ob das entsprechende Tool für den Raspberry Pi verfügbar ist.
openHAB5.0.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox 9.1.2 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte

murpele
Beiträge: 13
Registriert: 1. Jan 2023 14:01
Answers: 0

Re: Tibber: zukünftige Strompreise in Sitemap anzeigen

Beitrag von murpele »

Danke für die Erläuterung der verschiedenen Datenbanken.

An dieser Config:

Code: Alles auswählen

[security]
# set to true if you want to allow browsers to render Grafana in a <frame>, <iframe>, <embed> or <object>. default is false.
allow_embedding = true
liegt es nicht, dass sich der Chart nicht dynamisch aktualisiert. Diese Einstellung habe ich bei mir bereits so - und damit wird m.E. lediglich erreicht, dass man den Grafana-Chart überhaupt einbetten kann.

Die dynamische Aktualisierung in der Sitemap scheitert m.E. (zumindest aktuell bei mir!) daran, dass sich die Grafana-URL ändert. Wenn ich für den aktuellen Grafana-Chart nun erneut mit "share" einen Link erzeuge, sieht dieser so aus:

Code: Alles auswählen

http://192.168.1.100:3000/d-solo/add64hb/new-dashboard?orgId=1&[b]from=1763927442238&to=1764053442238[/b]&timezone=browser&panelId=panel-3&__feature.dashboardSceneSolo=true
Zuvor sah er so aus:

Code: Alles auswählen

http://192.168.1.100:3000/d-solo/add64hb/new-dashboard?orgId=1&[b]from=1763759443265&to=1763845843265[/b]&timezone=browser&panelId=panel-3&__feature.dashboardSceneSolo=true
Da hat sich also der "from" und der "to" Wert im Link geändert! So kann das natürlich nicht funktionieren - und es erklärt m.E. auch, wieso ich in Grafana jeweils den Chart korrekt und aktuell angezeigt bekomme - der Chart in der Sitemap aber nur unmittelbar nach dem Einfügen in die Sitemap korrekt ist. Zu einem späteren Zeitpunkt sieht der Chart in der Sitemap dann ziemlich 'blödsinnig' aus.

Mein Eindruck: Ich mache beim Einbinden etwas falsch. Wenn es so ist, wie es sich mir jetzt darstellt, würde das doch bedeuten, dass man auf diesem Wege niemals einen Grafana-Chart in eine Sitemap einbinden kann. Die URL darf sich doch nicht ändern, wenn ich immer vom aktuellen Zeitpunkt an, eine Time Serie für z.B. die nächsten 24 Stunden angezeigt bekommen möchte.
Weil man wohl kaum stündlich die Sitemap ändern kann, muss die URL auf den Chart doch statisch sein.

Bzgl. des anderen Themas: Zugriff von "Dritten" (etwas Off-Topic):
Ja, Wireguard ist wirklich kinderleicht einzurichten. Wenn ich daran denke, wie wich mich vor vielen Jahren mit openVPN gequält habe, wird es mir heute noch etwas schlecht. Weil Du so genau nachfragst, wieso ich Außenstehende überhaupt Zugriff gewähren möchte: Es sind Mieter für die ich das sog. Mieterstrommodell anbiete. Mieterstrom ist ein "großes Thema" mit dem man sich viele Tage beschäftigen kann. Die Kurzfassung: Ich bin gegenüber den Mietern der alleinige Stromlieferant. Soweit möglich wird PV-Strom genutzt (und gespeichert). Die Batterie lade ich (abhängig vom prognostiziertem PV-Ertrag) zu den Zeiten, wenn Strom gerade günstig ist. Der PV-Strom ist für die Mieter billig. Den Strom, den ich von Tibber zukaufen muss, ist teurer und ich möchte meinen Mietern die Transparenz darüber geben, wie der SoC der Batterie ist und wann (und zu welchen Kosten) Strom extern zugekauft werden muss. Ich möchte, dass die Mieter am günstigen PV-Strom partizipieren können. Was ich nicht möchte: Meinen Mietern zumuten, dass sie sich per VPN in mein LAN verbinden müssen, wenn sie wissen wollen, wann sie (in ihrem Interesse!) sinnvollerweise z.B. die Waschmaschine starten sollten. Ich könnte dann ja einfach einen Proxy nutzen und das Surfverhalten meiner Mieter überwachen (solange das VPN genutzt wird). Auch wenn es bestimmt interessant wäre zu erfahren, welche Youporn-Filmchen meine Mieter anschauen und welche sexuellen Vorlieben sie haben: Es geht mich nichts an und es ist daher besser ich schaffe erst gar nicht eine Situation, in der man mir unterstellen könnte, ich würde den Internet-Traffic mitlesen. Klar, man kann das VPN auch so konfigurieren, dass nur auf die IP-Adresse meines Raspberry Pi zugegriffen werden kann - und aller anderer Traffic eben nicht über mein LAN geht. Das können die Mieter aber doch nicht wirklich erkennen, wie das VPN konfiguriert ist. Ich denke: Wenn ich Mieter wäre und mein Vermieter würde mir vorschlagen, dass ich auf meinem Handy ein VPN-Client installieren soll, der sich in das Netzwerk des Vermieters einwählt - diesem Vermieter würde ich "den Vogel zeigen". Ich wäre da sehr misstrauisch und würde das schon fast als übergriffig empfinden. Daher: Ein VPN kommt in meinem Fall nicht in Frage.

Lass' uns wieder zurück zum eigentlichen Thema kommen: Wie kann man einen - sich verändernden - Grafana-Chart in eine Sitemap einbinden? Es ist ja gerade Sinn&Zweck eines Grafana-Charts, dass dieser sich mit der Zeit verändert. Schließlich geht es um die Darstellung von Zeitreihen. Da ist es doch völlig unpraktikabel, wenn sich minütlich/stündlich die URL ändert. Wenn das so aber wäre: Dann hätten doch alle das Problem, dass ein Einbinden in eine Sitemap de facto nicht möglich ist. Weil das Einbinden aber genau vorgesehen ist, muss es doch eine Lösung geben, die funktioniert.

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

Re: Tibber: zukünftige Strompreise in Sitemap anzeigen

Beitrag von nw378 »

Was Du machen kannst: statt dem Timestamp einen zu now relativen Zeitpunkt wählen.

Snippet aus meiner Sitemap:

Code: Alles auswählen

Webview url="http://192.168.178.26:3003/d-solo/-4Py1lWgk/energie-aktuell?refresh=15s&orgId=1&from=now-1h&panelId=2" height=6 visibility=[chart_energie == 1, chart_energie == NULL]
Webview url="http://192.168.178.26:3003/d-solo/Xq1_bfigz/energie?orgId=1&from=now-7d&panelId=6" height=6 visibility=[chart_energie == 2]
Webview url="http://192.168.178.26:3003/d-solo/Xq1_bfigz/energie?orgId=1&from=now-365d&panelId=8" height=6 visibility=[chart_energie == 3]
openHAB 5.0.2 @ RPi 5 / M.2 SSD - openhabian/Debian 13.1 (trixie) - InfluxDB2 und Grafana @ Synology Docker - KNX, Viessmann vcontrol, u.v.m.

murpele
Beiträge: 13
Registriert: 1. Jan 2023 14:01
Answers: 0

Re: Tibber: zukünftige Strompreise in Sitemap anzeigen

Beitrag von murpele »

@mw378: Danke! Das war es!
Mir war nicht bewusst, dass es sich bei der Zahlenreihe um einen Timestamp handelt. Weil ich die Time Serie immer ab dem aktuellem Zeitpunkt angezeigt bekommen möchte, ist die Lösung sehr einfach. So funktioniert es bei mir nun:

Code: Alles auswählen

    Webview url="http://192.168.1.100:3000/d-solo/add64hb/new-dashboard?orgId=1&from=now&panelId=panel-3&__feature.dashboardSceneSolo=true" height=10
Einfach nur "from=now"
Mehr nicht.

Dann bleibt "nur noch" das Thema externer Zugriff über Reverse Proxy. Das ist m.E. aber kein openHAB-Problem. Das ist ein Netzwerk-Thema, mit welchem ich mich nun beschäftigen werde.

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

Re: Tibber: zukünftige Strompreise in Sitemap anzeigen

Beitrag von nw378 »

Das Leben kann so einfach sein. :D
openHAB 5.0.2 @ RPi 5 / M.2 SSD - openhabian/Debian 13.1 (trixie) - InfluxDB2 und Grafana @ Synology Docker - KNX, Viessmann vcontrol, u.v.m.

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

Re: Tibber: zukünftige Strompreise in Sitemap anzeigen

Beitrag von udo1toni »

Jawoll, so passt es doch...

Und die Erklärung mit dem Strom als Wiederverkäufer ist einleuchtend.
Wie schon erwähnt, kann man für Wireguard sehr einfach einschränken, welche Anfragen überhaupt über den Tunnel gehen (bis hinunter zu einzelnen Rechnern aka /32 Adressen) aber da der ursprüngliche Fehler nun gefunden und behoben ist... :)
openHAB5.0.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox 9.1.2 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte

Antworten