Stromverbrauch für Tag, Woche, Monat, Jahr berechnen

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Antworten
TomW80
Beiträge: 120
Registriert: 7. Mai 2021 19:11
Answers: 0

Re: Stromverbrauch für Tag, Woche, Monat, Jahr berechnen

Beitrag von TomW80 »

udo1toni hat geschrieben: 14. Okt 2025 11:43 Ja, die Syntax ist fehlerhaft :)

Korrekt sieht das so aus:

Code: Alles auswählen

    logInfo("Stromverbrauch","Test 1: {}", WEZ_Gesamtenergie.persistedState(now.minusDays(1)))
    logInfo("Stromverbrauch","Test 2: {}", WEZ_Gesamtenergie.lastChange("influxdb"))
    logInfo("Stromverbrauch","Test 3: {}", WEZ_Gesamtenergie.deltaSince(start_of_day))
Trotzdem liefert mir Test 1 und Test 3 keinen Wert.
info_circle 23:21:55.395 INFO org.openhab.core.model.script.Stromverbrauch Test 1: {}
info_circle 23:21:56.174 INFO org.openhab.core.model.script.Stromverbrauch Test 2: 2025-10-14T09:52:00.497+02:00[Europe/Berlin]
info_circle 23:21:56.180 INFO org.openhab.core.model.script.Stromverbrauch Test 3: {}
Das würde doch bedeuten, dass mit der Persistrierung was nicht stimmt oder?
Aber in Grafana sehe ich die Werte!?

Jetzt habe ich weitere Tests gemacht und siehe da jetzt kommt ein Wert. Aber nur wenn ich den Persistence Service mit angebe.
Also so:

Code: Alles auswählen

logInfo("Stromverbrauch","Test 4: {}", WEZ_Gesamtenergie.deltaSince(now.minusMinutes(60), "influxdb"))
Aber warum muss ich das jetzt auf einmal angeben?

WEZ_Gesamtenergie ist ganz normal in der influxdb.persist eingetragen:

Code: Alles auswählen

WEZ_Gesamtenergie : strategy = everyMinute, restoreOnStartup
Der Standard Persistence Service steht allerdings auf "RRD4j", aber eigentlich schon immer so.
Oder hat sich mit einer der letzten Versionen was geändert?
Bin aktuell auf Version 5.0.1

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

Re: Stromverbrauch für Tag, Woche, Monat, Jahr berechnen

Beitrag von udo1toni »

Vermutlich hast Du den default Service nicht explizit gesetzt.

Main UI->Adminstration->Einstellungen->Configuration (linke Spalte) Persistence->General Settings->Standard Persistence Service.

Dies ist der aktuelle Ort für diese Einstellung :) ist etwas abhängig von der Version, ob, und wenn ja wo Du die Einstellung über die UI vornehmen kannst.

Die Standard Persistence ist diejenige, welche abgefragt wird, wenn kein Persistence Service angegeben wird. Es geht hier ausschließlich um das Lesen der Daten, wie, wann und welche Daten geschrieben werden, wird pro Persistence Service konfiguriert. Man kann "beliebig viele" Persistence Services parallel nutzen und individuell konfigurieren, allerdings sollte man restoreOnStartup pro Item nur bei einem Persistence Service setzen, wenn überhaupt. (Vorzugsweise liest man den Zustand eines Items über das zuständige Addon aus).

Es ist darauf zu achten, dass es (soweit ich weiß immer noch) ein paar Stellen in openHAB gibt, wo man nicht vorgeben kann, aus welcher Persistence die Daten gelesen werden. Entsprechend muss man die Default Persistence an diesen Stellen ausrichten :) und an anderen Stellen dann die zu verwendende Persistence angeben.
openHAB5.0.1 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.0.11, LXC)

TomW80
Beiträge: 120
Registriert: 7. Mai 2021 19:11
Answers: 0

Re: Stromverbrauch für Tag, Woche, Monat, Jahr berechnen

Beitrag von TomW80 »

Doch der Default Service ist auf RRDJ4 gesetzt.
Ich weiß jetzt aber woher mein Problem kam.
Vor kurzem hatte ich das Item geändert und das neue nur bei influxdb.persist eingetragen.

Es ist schon besser wenn man den Service immer gleich mit angibt, da weiß man auch woher der Wert kommt.

Danke für deine Unterstützung!

Antworten