der_pman hat geschrieben: 8. Mär 2026 11:05
Nächster Schritt ist jetzt den Preis mit Abgaben und Steuern auf den echten kWh-Preis zu bringen.
Soweit ich das gelesen (und hoffentlich verstanden) habe geht das über ein Item vom Typ "SUM".
Vermutlich bringst Du da etwas durcheinander.
Es gibt für Group Items die Option, als Status eine Funktion über die Items zu verwenden, z.B. Summe, Durchschnitt, Maximum usw.
Gewöhnlich wird man wissen wollen, wann der Strom am günstigsten ist, das geht mit
.minimumUntil(Endzeit), es wird ein historicItem zurückgegeben, das heißt, Du bekommst sowohl den Preis als auch den Zeitpunkt zurück.
Falls zum Spotmarktpreis noch fixe Anteile hinzukommen, musst Du für den Endpreis lediglich eine passende Formel implementieren.
Wenn das Item vom Typ Number:EnergyPrice ist, bekommst Du den Preis pro Energie zurück, d.h. mitsamt der Einheit, also z.B. €/kWh. Da es sich dann um einen QuantityType Datentyp handelt, musst Du beim berechnen entweder die Einheit strippen und "klassisch" rechnen, oder Du nimmst den QuantityType und rechnest mit den zugehörigen Funktionen, also z.B.
Code: Alles auswählen
Kosten = (PreisProkWh.state as QuantityType).multiply(Verbrauch.state as QuantityType)
Das Ergebnis sollte dann die aufgelaufenen Kosten enthalten.
Allerdings funktioniert das natürlich nur für statische Werte, wenn beide Werte (Preis und Energie) variabel sind, muss man für jeden Zeitabschnitt getrennt rechnen, das wird schnell komplex.
Eine einfache Möglichkeit wäre aber, bei jeder Preisänderung den Zählerstand zu merken und bei jedem Wechsel die Differenz zum letzten Zählerstand zu bestimmen. Daraus ergibt sich die Energiemenge, die man dann mit dem zuletzt gültigen Preis multiplizieren kann. Diesen Wert schreibt man in ein Item, exakt einmal (also nicht zyklisch...). Und aus diesem Kosten-Item kann man dann die insgesamt aufgelaufenen Kosten aufsummieren, natürlich nur für die Vergangenheit (und nur soweit die Summen zur Verfügung stehen).
Für die aktuelle Zeitspanne kann man die laufenden Kosten auch dynamisch anzeigen, hier ist der Preis fix bis zum nächsten Wechsel und nur der Zählerstand ändert sich.
Der Forecast hingegen bezieht sich auf die Zukunft, damit kannst Du Dir z.B. die günstigste Zeit ausgeben lassen, um das E-Auto aufzuladen oder Wäsche zu waschen.
openHAB5.1.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox VE 9.1.6 - 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