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
Benutzeravatar
udo1toni
Beiträge: 13985
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

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

Beitrag von udo1toni »

Beitrag verschoben: viewtopic.php?p=59681#p59681
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Snatsch
Beiträge: 367
Registriert: 9. Jan 2021 22:55
Answers: 0

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

Beitrag von Snatsch »

Hallo habe jetzt auf openhab 4.1.1 geupdatet und immer Folgende Rule unter openhab 3 laufen gehabt .

Code: Alles auswählen

rule "Gasverbrauch Tag Woche Monat Jahr"                                                              // Deutscher Zeichensatz zulässig
when
    Item heatQuellen_consumption changed                                                                // changed reicht.
then
    val kwprol = 0.140                                                                                 // Umrechnung kWh in Liter
    val Preis  = 1.061                                                                                   // Preis pro Liter

    val ZonedDateTime zdt            = ZonedDateTime.now()                                              // jetzt
    val ZonedDateTime start_of_day   = zdt.with(LocalTime.MIDNIGHT)                                     // heute, Mitternacht
    val ZonedDateTime start_of_week  = start_of_day.minusDays(start_of_day.getDayOfWeek.getValue - 1)   // Montag 
    val ZonedDateTime start_of_month = start_of_day.withDayOfMonth(3)                                   //  Erster Tag des Monats (1)
    val ZonedDateTime start_of_year  = start_of_day.withDayOfYear(34)                                    // Erster Tag des Jahres (1)

    val Gas_Heute   = (heatQuellen_consumption.deltaSince(start_of_day)   as Number).floatValue         // kWh Delta holen
    val Gas_Woche   = (heatQuellen_consumption.deltaSince(start_of_week)  as Number).floatValue
    val Gas_Monat   = (heatQuellen_consumption.deltaSince(start_of_month) as Number).floatValue
    val Gas_Jahr    = (heatQuellen_consumption.deltaSince(start_of_year)  as Number).floatValue

    val Liter_Heute = Gas_Heute * kwprol                                                                // kWh in Liter umrechnen
    val Liter_Woche = Gas_Woche * kwprol
    val Liter_Monat = Gas_Monat * kwprol
    val Liter_Jahr  = Gas_Jahr  * kwprol

    val Euro_Heute  = String::format("%.2f €",(Liter_Heute  * Preis))                                   // Summe in Euro berechnen
    val Euro_Woche  = String::format("%.2f €",(Liter_Woche  * Preis))
    val Euro_Monat  = String::format("%.2f €",(Liter_Monat  * Preis))
    val Euro_Jahr   = String::format("%.2f €",(Liter_Jahr  * Preis))

  

    GasSumme_Heute.postUpdate(Gas_Heute.toString+" kWh/"+ String::format("%.2f",(Liter_Heute))  +" l/" + Euro_Heute)         
    GasSumme_Woche.postUpdate(Gas_Woche.toString+" kWh/"+ String::format("%.2f",(Liter_Woche))  +" l/" + Euro_Woche)
    GasSumme_Monat.postUpdate(Gas_Monat.toString+" kWh/"+ String::format("%.2f",(Liter_Monat))  +" l/" + Euro_Monat)
    GasSumme_Jahr.postUpdate(Gas_Jahr.toString+" kWh/"+ String::format("%.2f",(Liter_Jahr))   +" l/" + Euro_Jahr)

end

mit folgenden Items

Code: Alles auswählen

Group Gasverbrauch 
String GasSumme_Heute "Gasverbrauch Heute " <energy> (GroupGasverbrauch)
String GasSumme_Woche "Gasverbrauch Woche " < energy> (GroupGasverbrauch) 
String GasSumme_Monat "Gasverbrauch Monat "  <energy> (GroupGasverbrauch)
String GasSumme_Jahr "Gasverbrauch Jahr   " <energy> (GroupGasverbrauch)
jetzt kommt diese Fehlermeldung

Code: Alles auswählen

Tried to set invalid state 1157.7 (DecimalType) on item GasSumme_Jahr of type StringItem, ignoring it
muss bestimmt noch was in die Items oder ? leider fällt mir nicht ein was :( vielleicht könnte mir jemand einen Tipp geben
openhab4.1.2 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer/Pi 3 mit Docker zur Datensicherung

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

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

Beitrag von udo1toni »

Eventuell nur Typos hier, trotzdem der Hinweis: Die Items sind falsch definiert:

Code: Alles auswählen

Group Gasverbrauch 
String GasSumme_Heute "Gasverbrauch Heute" <energy> (GroupGasverbrauch)
String GasSumme_Woche "Gasverbrauch Woche" <energy> (GroupGasverbrauch) 
String GasSumme_Monat "Gasverbrauch Monat" <energy> (GroupGasverbrauch)
String GasSumme_Jahr  "Gasverbrauch Jahr"  <energy> (GroupGasverbrauch)
Label sollten nicht mit Leerzeichen enden und Iconnamen dürfen keine Leerzeichen beinhalten.

Die Fehlermeldung ergibt für mich keinerlei Sinn, da an keiner Stelle in der Rule eine Zuweisung eines DecimalTypes erfolgt.
Bist Du sicher, dass die Fehlermeldung von dieser Rule herrührt?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Snatsch
Beiträge: 367
Registriert: 9. Jan 2021 22:55
Answers: 0

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

Beitrag von Snatsch »

hab die Items Geändert

Code: Alles auswählen

Group Gasverbrauch
String GasSumme_Heute "GasHeute" <energy> (GroupGasverbrauch) 
String GasSumme_Woche "GasWoche" <energy> (GroupGasverbrauch) 
String GasSumme_Monat "GasMonat"  <energy> (GroupGasverbrauch)
String GasSumme_Jahr "GasJahr" <energy> (GroupGasverbrauch)
es werden mir auch keine Werte angegeben.
Screenshot (18).png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openhab4.1.2 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer/Pi 3 mit Docker zur Datensicherung

Snatsch
Beiträge: 367
Registriert: 9. Jan 2021 22:55
Answers: 0

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

Beitrag von Snatsch »

Gas Rule funktionier jetzt. Nur habe ich noch eine für die Waschmaschine die keine Werte ausgibt :(
die Items sehen so aus

Code: Alles auswählen

Group WaschmaschineKosten
String Waschmaschine_Heute "WaschHeute" <energy> (GroupWaschmaschineKosten)
String Waschmaschine_Woche "WaschWoche" <energy> (GroupWaschmaschineKosten)
String Waschmaschine_Monat "WaschMonat" <energy> (GroupWaschmaschineKosten)
String Waschmaschine_Jahr "WaschJahr" <energy> (GroupWaschmaschineKosten)
und die Rule so.

Code: Alles auswählen

rule "Waschmaschine Tag Woche Monat Jahr"                                                              // Deutscher Zeichensatz zulässig
when
    Item Waschmaschine_Gesamtverbrauch changed // changed reicht.
then
   
    val Preis = 0.48 
    val ZonedDateTime zdt = ZonedDateTime.now() // jetzt
    val ZonedDateTime start_of_day = zdt.with(LocalTime.MIDNIGHT) // heute, Mitternacht
    val ZonedDateTime start_of_week = start_of_day.minusDays(start_of_day.getDayOfWeek.getValue - 1) // Montag
    val ZonedDateTime start_of_month = start_of_day.withDayOfMonth(3) // Erster Tag des Monats (1)
    val ZonedDateTime start_of_year = start_of_day.withDayOfYear(34) // Erster Tag des Jahres (1)
    
    val WMaschine_Heute = (Waschmaschine_Gesamtverbrauch.deltaSince(start_of_day) as Number).floatValue // kWh Delta holen
    val WMaschine_Woche = (Waschmaschine_Gesamtverbrauch.deltaSince(start_of_week) as Number).floatValue
    val WMaschine_Monat = (Waschmaschine_Gesamtverbrauch.deltaSince(start_of_month) as Number).floatValue
    val WMaschine_Jahr = (Waschmaschine_Gesamtverbrauch.deltaSince(start_of_year) as Number).floatValue
    
    val Euro_Heute = String::format("%.2f €",(WMaschine_Heute * Preis)) // Summe in Euro berechnen
    val Euro_Woche = String::format("%.2f €",(WMaschine_Woche * Preis))
    val Euro_Monat = String::format("%.2f €",(WMaschine_Monat * Preis))
    val Euro_Jahr = String::format("%.2f €",(WMaschine_Jahr * Preis))
    
    Waschmaschine_Heute.postUpdate(WMaschine_Heute.toString + " kWh/" +  Euro_Heute)
    Waschmaschine_Woche.postUpdate(WMaschine_Woche.toString + " kWh/" +  Euro_Woche)
    Waschmaschine_Monat.postUpdate(WMaschine_Monat.toString + " kWh/" +  Euro_Monat)
    Waschmaschine_Jahr.postUpdate(WMaschine_Jahr.toString + " kWh/" +  Euro_Jahr)
end
Das Item was die Rule füttert so
Screenshot (19).png
wie gesagt bei Openhab 3 gingen die Regeln :o
die Fehlermeldung kommt wenn die Waschmaschine läuft.

Code: Alles auswählen

2024-02-03 23:50:08.722 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'Waschmaschine_Kosten-1' failed: cannot invoke method public abstract float java.lang.Number.floatValue() on null in Waschmaschine_Kosten
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openhab4.1.2 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer/Pi 3 mit Docker zur Datensicherung

Snatsch
Beiträge: 367
Registriert: 9. Jan 2021 22:55
Answers: 0

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

Beitrag von Snatsch »

hat sich erledigt punkt 24 Uhr kamen die Daten rein :)
openhab4.1.2 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer/Pi 3 mit Docker zur Datensicherung

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

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

Beitrag von udo1toni »

Das verwundert mich etwas, denn die Gruppenzuordnung stimmt so nicht (zumindest wenn sie sich auf die angegebenen Items beziehen soll)

Code: Alles auswählen

Group WaschmaschineKosten  // Der Name der Gruppe lautet WaschmaschineKosten, nicht GroupWaschmaschineKosten
Gilt natürlich genauso auch für die Gas-Rule...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Snatsch
Beiträge: 367
Registriert: 9. Jan 2021 22:55
Answers: 0

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

Beitrag von Snatsch »

oh :o aber die daten kamen trotzdem rein. Zumindest für Waschmaschine und Trockner. Bei dem Gasverbrauch kamen auch einmalig Daten aber heute hab ich gemerkt das sie sich nicht verändern :roll:

Code: Alles auswählen

2024-02-04 20:43:58.811 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'Gasverbrauch-1' failed: cannot invoke method public abstract float java.lang.Number.floatValue() on null in Gasverbrauch
openhab4.1.2 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer/Pi 3 mit Docker zur Datensicherung

Antworten