Seite 1 von 2
Stromkosten berechnen
Verfasst: 29. Jun 2020 13:23
von SIDE22
Hallo,
Ich bin aktuell dabei eine rule zu erstellen um meine stromkosten grob zu sehen am Tag
Habe eine openWB die via modbus den zähler ausliest und so habe ich den aktuellen verbrauch in W
Dieser Wert aktuellisiert sich alle paar Sekunden.
Die openWB ist via mqtt in openHAB
Wie kann ich die Regel schreiben das ich Die W in kWh pro Tag habe?
Von W zu kW ist nicht das Thema nur sollte die Regel quasi den gesammt Verbrauch am Tag in kWh rechnen und sich um 0uhr zurücksetzen.
Leider gibt die openWB den gesammt Verbrauch am Tag nicht raus die gekämmte Erzeugung durch pv schon diese Regel hab ich auch soweit fertig
Lg
Florian
Re: Stromkosten berechnen
Verfasst: 29. Jun 2020 18:03
von udo1toni
Das wird nicht zufriedenstellend funktionieren, denn Du müsstest das Integral berechnen, bzw. die Fläche unter dem Watt-Verlauf. Du kannst allenfalls grob näherungsweise bei jedem Wertupdate schauen, wann das letzte Update kam und die Anzahl Sekunden multipliziert mit dem Messwert aufaddieren. Da Du lieber kWh haben möchtest, musst Du das Ergebnis dann noch durch 3.600.000 teilen.
Re: Stromkosten berechnen
Verfasst: 29. Jun 2020 18:23
von SIDE22
Hallo,
ich denke das ich soweit habe. Es soll ja nicht zu 100% richtig sein
hier einmal wie ich es habe
.Items
Code: Alles auswählen
Number openWB_EVU_Hausverbrauch "Hausverbrauch [%.0f W]" (GopenWBEVU,Wattages) {channel="mqtt:topic:14ecef3d:4"}
Number Stromzaehler_kW "Zählerstand [%.2f kW]"
Number Stromzaehler_Verbrauch_Tag "Verbrauch heute [%.2f kWh]"
Number Strom_Kosten_Tag "verbrauch heute [%.2f €]"
Number Strom_PV_Tag "PV erzeugung heute [%.2f €]"
Number Strom_Kaufen "bezug heute [%.2f €]"
.rules
Code: Alles auswählen
rule "Stromzaehler in Wh"
when
Item openWB_EVU_Hausverbrauch received update
then
if(openWB_EVU_Hausverbrauch.state instanceof Number)
Stromzaehler_kW.postUpdate((openWB_EVU_Hausverbrauch.state as Number)/1000)
end
rule "Strom Verbrauch Tag"
when
Item Stromzaehler_kW received update
then
Stromzaehler_Verbrauch_Tag.postUpdate(Stromzaehler_kW.deltaSince(now.withTimeAtStartOfDay))
end
rule "Stromkosten heute"
when
Item Stromzaehler_kW received update
then
Strom_Kosten_Tag.postUpdate(Stromzaehler_Verbrauch_Tag.state as DecimalType * 0.3)
end
rule "Strom PV"
when
Item openWB_EVU_PV_Daily received update
then
Strom_PV_Tag.postUpdate(openWB_EVU_PV_Daily.state as DecimalType * 0.1)
end
rule "Strom kaufen"
when
Item Strom_Kosten_Tag received update or
Item Strom_PV_Tag received update
then
Strom_Kaufen.postUpdate(Strom_Kosten_Tag.state as DecimalType - Strom_PV_Tag.state as DecimalType)
end
.persist
Code: Alles auswählen
Stromzaehler_kW : strategy = everyMinute, restoreOnStartup
openWB_EVU_Hausverbrauch : strategy = everyMinute, restoreOnStartup
openWB_EVU_PV_Erzeugung : strategy = everyMinute, restoreOnStartup
openWB_EVU_PV_Daily : strategy = everyMinute, restoreOnStartup
also ich denke das dies soweit erstmal geht die daten die wieder gegeben werden sind zumindest einigermaßen richtig
zumindest was die kosten angeht
aktuell sagt er mir das der bezug 3,41€ sind dies kommt etwas hin wenn man es auf 1 monat hochrechnet
allerdings bekomme ich in Visual Studio Code eine fehler meldung bezüglich der rule
Unbenannt.PNG
vielleicht weist du da weiter
Lg
Florian
Re: Stromkosten berechnen
Verfasst: 29. Jun 2020 20:16
von udo1toni
Welches ist denn die 14. Zeile in Deinem Rule-File?
Re: Stromkosten berechnen
Verfasst: 29. Jun 2020 20:18
von SIDE22
Code: Alles auswählen
Stromzaehler_Verbrauch_Tag.postUpdate(Stromzaehler_kW.deltaSince(now.withTimeAtStartOfDay))
Das wäre Zeile 14
Hab aber auch grade bemerkt nach einem restart von olenhab können die Werte nicht mehr geladen werden..
Weißt du da eventuell weiter?
Re: Stromkosten berechnen
Verfasst: 29. Jun 2020 21:23
von SIDE22
ok den fehler in zeile 14 hab ich weg bekommen die zeile müsste sein
Code: Alles auswählen
Stromzaehler_Verbrauch_Tag.postUpdate(Stromzaehler_kW.deltaSince(now.withTimeAtStartOfDay) as Number)
das
fehler hinten
dennoch werden mir keine daten mehr angezeigt nach dem neustart von openhab
hier solche fehler habe ich im log
Code: Alles auswählen
2020-06-29 21:23:05.974 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Stromkosten heute': Could not cast NULL to org.eclipse.smarthome.core.library.types.DecimalType; line 35, column 33, length 47
Re: Stromkosten berechnen
Verfasst: 29. Jun 2020 21:28
von udo1toni
Mindestens fehlen da überall Klammern, wenn Du ein as DecimalType oder as Number verwendest, as hat eine niedrigere Priorität als Rechenoperationen.
Re: Stromkosten berechnen
Verfasst: 29. Jun 2020 21:33
von SIDE22
was müsste ich den anpassen ?
LG
Florian
Re: Stromkosten berechnen
Verfasst: 29. Jun 2020 21:45
von udo1toni
Na, so wie Du es in der ersten Rule gemacht hast... Statt Item.state as DecimalType halt (Item.state as DecimalType)...
Re: Stromkosten berechnen
Verfasst: 29. Jun 2020 21:56
von SIDE22
so habe dies mal angepasst allerdings bekomme ich kein wert sondern einfach nur "NULL"
Code: Alles auswählen
rule "Strom Verbrauch Tag"
when
Item Stromzaehler_kW received update
then
if(Stromzaehler_kW.state instanceof Number)
Stromzaehler_Verbrauch_Tag.postUpdate(Stromzaehler_kW.deltaSince(now.withTimeAtStartOfDay) as Number)
end