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
zinnik
Beiträge: 174
Registriert: 7. Sep 2021 11:28

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

Beitrag von zinnik »

Hallo,

da ich mitmeinen Verbrauch und Kosten Items teilweise weiterechne

habe ich folgende Rule um die Items in einem String item anzuzeigen jedoch bekomme ich keine werte rein.
Finde leider auch kein Fehler

Code: Alles auswählen

rule "Heizung Kombianzeige Woche"
when
    Item Heizung_Verbrauch_Woche changed or
    Item Heizung_Kosten_Woche changed
then
    val String strVerbrauch = if(Heizung_Verbrauch_Woche.state instanceof Number) String::format("%.2f kwh",(Heizung_Verbrauch_Woche.state as Number).floatValue) else "--.-- kwh"
    val String strKosten = if(Heizung_Kosten_Woche.state instanceof Number) String::format("%.2f €",(Heizung_Kosten_Woche.state as Number).floatValue) else "--.-- €"

Heizung_Verbrauch_Kosten_Woche.postUpdate(strVerbrauch + " / "+ strKosten)

die Items:
Heizung_Verbrauch_Woche
Heizung_Kosten_Woche
haben Werte.

und hier noch das Kombi-item
Screenshot (215).png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openhab 4.1.0.M Docker (Qnap)
influxDB 1.8.2 Docker (Qnap)
Grafana v8.3.3 Docker (Qnap)
Deconz 2.19.03 Docker (Qnap)
Homematic (Raspberrymatic Pi 3B+)
Grafana, Phoscon, Shelly, Gardena, Tuya
Camera IP Binding mit ffmpeg
Solaredge PV Anlage mit 8kW Speicher (solaredgeBinding)
u.v.m.

Lg zinnik

Benutzeravatar
peter-pan
Beiträge: 2564
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

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

Beitrag von peter-pan »

zinnik hat geschrieben: 29. Okt 2022 21:01 die Items:
Heizung_Verbrauch_Woche
Heizung_Kosten_Woche
haben Werte.
...selbst wenn nicht. Hab noch die items (teilweise) vom letzten Test. Das sollte eigentlich funktionieren. Bau mal Logs ein:

Code: Alles auswählen

rule "Heizung Kombianzeige Woche"
when
    Item Dummy_pers_8 changed or
    Item Heizung_Verbrauch_Woche changed or
    Item Heizung_Kosten_Woche changed
then
    val String strVerbrauch = if(Heizung_Verbrauch_Woche.state instanceof Number) String::format("%.2f kwh",(Heizung_Verbrauch_Woche.state as Number).floatValue) else "--.-- kwh"
    val String strKosten = if(Heizung_Kosten_Woche.state instanceof Number) String::format("%.2f €",(Heizung_Kosten_Woche.state as Number).floatValue) else "--.-- €"
    logInfo("Verbrauch-Kosten","Verbrauch {} Kosten {}", strVerbrauch, strKosten)
    Heizung_Verbrauch_Kosten_Woche.postUpdate(strVerbrauch + " / " + strKosten)
    logInfo("Verbrauch-Kosten","Verbrauch/Kosten {}", Heizung_Verbrauch_Kosten_Woche.state)
end
Hier das Ergebnis als Screenshot:
verbrauchkosten.jpg
und als Log:

Code: Alles auswählen

2022-10-30 00:24:41.668 [INFO ] [b.core.model.script.Verbrauch-Kosten] - Verbrauch 10,69 kwh Kosten --.-- €
2022-10-30 00:24:41.672 [INFO ] [b.core.model.script.Verbrauch-Kosten] - Verbrauch/Kosten 10,69 kwh / --.-- €
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

zinnik
Beiträge: 174
Registriert: 7. Sep 2021 11:28

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

Beitrag von zinnik »

Oh gott ich habs jetzt gesehen beim kopieren der Rule ich hatte kein "end" in der rule drin :roll: :roll: :roll:

Edit: Kann ich die Items für Tag, Monat, Jahr auch mit in die rule einfügen oder muss ich da für jedes eine neue rule erstellen ?
openhab 4.1.0.M Docker (Qnap)
influxDB 1.8.2 Docker (Qnap)
Grafana v8.3.3 Docker (Qnap)
Deconz 2.19.03 Docker (Qnap)
Homematic (Raspberrymatic Pi 3B+)
Grafana, Phoscon, Shelly, Gardena, Tuya
Camera IP Binding mit ffmpeg
Solaredge PV Anlage mit 8kW Speicher (solaredgeBinding)
u.v.m.

Lg zinnik

Benutzeravatar
peter-pan
Beiträge: 2564
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

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

Beitrag von peter-pan »

Ja da geht bestimmt was. Aber da hat @udo1toni bestimmt schon mal was gemacht. Es wird evtl. mit Gruppen und triggeringItems gearbeitet werden können/müssen.

Eine einfache Lösung wäre halt, alle TriggerItems aufzunehmen

Code: Alles auswählen

    Item Heizung_Verbrauch_Tag changed or
    Item Heizung_Kosten_Tag changed or
    Item Heizung_Verbrauch_Woche changed or
    Item Heizung_Kosten_Woche changed or
    Item Heizung_Verbrauch_Monat changed or
    Item Heizung_Kosten_Monat changed or
    Item Heizung_Verbrauch_Jahr changed or
    Item Heizung_Kosten_Jahr changed
oder über ein Gruppen-Item (z.B.: gHeizung), wenn die o.g. Items in einer Gruppe sind

Code: Alles auswählen

Member of gHeizung changed
und dann im Ablaufteil alle Berechnungen machen und den Update für die jeweiligen Items. Oder evtl. mit Lambda-Funktionen und ggf. die generische Manipulation ( z.B.: postUpdate("CPU_Temp_" + triggeringItem.name, "0") // Temperatur-Item-Status auf 0 setzen
) der Items. Da lässt sich nämlich der Item-Name "zusammenbasteln".
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

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

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

Beitrag von udo1toni »

Weil mir solche iterativen Berechnungen immer zuwider sind...

Hier mal ein generalisierte Variante:
Notwendige Items:
Ein Number Item Counter (das ist der streng monoton wachsende Zählerstand)
Ein Group Item gGasSummen.
Vier String Items Summe_Day_Gas, Summe_Week_Gas, Summe_Month_Gas und Summe_Year_Gas
Je drei Number Items für Summe_Day_, Summe_Week_ , Summe_Month und Summe_Year, mit den Endungen Liter, Kosten und kwh (Natürlich kann man die Namen beliebig gestalten, die habe ich halt so in meiner Ruel verwendet)

Folgende Rule:

Code: Alles auswählen

rule "Verbrauch Tag Woche Monat Jahr"
when
    Item Counter changed                                                                         // persistierter Zähler
then
    val kwprol = 0.1522                                                                          // Umrechnung kWh in Liter
    val Preis  = 1.50                                                                            // Preis pro Liter
    val zdtd   = ZonedDateTime.now.with(LocalTime.MIDNIGHT)                                      // heute, Mitternacht
    val zdtAL  = newArrayList(zdtd,
                              zdtd.minusDays(zdtd.getDayOfWeek.getValue - 1),
                              zdtd.withDayOfMonth(1),
                              zdtd.withDayOfYear(1))
    val hmPeriod = newHashMap("Day"->0,"Week"->1,"Month"->2,"Year"->3)                           // Itemnamensteil

    // Itemnamen z.B. Summe_Day_Gas, Summe_Week_Gas, Summe_Month_Gas, Summe_Year_Gas, in der Gruppe gGasSummen

    gGasSummen.members.forEach[i|
        val pName  = i.name.split("_").get(1)                                                    // Zeitraumnamen holen
        val period = zdtAL.get(hmPeriod.get(pName))                                              // Zeitpunkt holen
        var Number kwh = 0.0001
        if(Counter.deltaSince(period) instanceof Number)
            kwh    = (Counter.deltaSince(period) as Number).floatValue                           // kwh aus Persistence auslesen
        val liter  = (kwh * kwprol * 1000).intValue/1000                                         // in Liter umrechnen (drei NAchkommastellen
        val kosten = (liter * Preis * 100).intValue/100                                          // in € umrechnen (zwei Nachkommastellen)
        logDebug("gas","{}: {} kWh / {} l / {} € {} ({})",period,kwh,liter,kosten,i.name,pName)
        postUpdate("Summe_"+pName+"_Liter",liter.toString)
        postUpdate("Summe_"+pName+"_Kosten",kosten.toString)
        postUpdate("Summe_"+pName+"_kwh",kwh.toString)
        i.postUpdate(kwh.toString + " kWh/" + liter.toString + " l/" + kosten.toString + " €")   // Item updaten
    ]
end
Die Rule ist getestet unter openHAB 3.4, wird aber auch unter jeder anderen openHAB Version laufen (unter OH1 und OH2 werden allerdings eventuell imports nötig)

Was passiert?
Zunächst werden oben einige Konstanten definiert. - Wichtig für den Hinterkopf: die ganzen Berechnungen funktionieren natürlich nur mit fixen Werten, um saubere Zahlen zu haben müsste man die Summen täglich persistieren [also um 23:59:59] und die persistierten Tagessummern anschließend abfragen. Das gilt insbesondere beim Preis, der ja gerade momentan eher volatil ist.
In der vierten Zeile wird eine ArrayList mit den abzufragenden Zeitpunkten definiert. Die Zeitpunkte können nun mit zdtAL.get(0-3) angesprochen werden.
die fünfte Konstante ist eine HashMap, um aus den Worten Day, Week, Month und Year die Zahlen 0 bis 3 zu erzeugen. hmPeriod.get("Week") liefert also z.B. 1.

Nun durchläuft die Rule die Gruppe gGasSummen und bestimmt für jedes Item zunächst den Zeitraum (über den zweiten Teilstring des Namens). Sodann wird ein Verbrauch von 0.0001 gesetzt und überschrieben, falls ein gültiger Wert für den Zeitraum vorliegt (da ist noch Verbesserungspotential, ich weiß).
Es werden die auf drei bzw zwei Stellen gerundeten Werte für Liter und Kosten berechnet. Die Werte werden per postUpdate als Zahl in die passenden Items geschrieben und der String wird erzeugt.

Wahlweise könnte man statt des einfachen .toString hier auch mit Formatierung arbeiten und 0-Beträge mit Strichen darstellen, mir ging es hier nur um die Machbarkeit, die Daten mit minimalem Code in die Items zu bringen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Jimbo
Beiträge: 13
Registriert: 23. Feb 2022 18:21

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

Beitrag von Jimbo »

Guten Abend Udo,
ich bekomme die Rule leider nicht zu laufen. Muss ich noch etwas in der rrd4j.persist-config eintragen?

Hier ein Auszug vom Logviewer.

Code: Alles auswählen

2022-10-31 18:11:02.679 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'test' failed: <eval>:1:6 Expected ; but found Verbrauch Tag Woche Monat Jahr

rule "Verbrauch Tag Woche Monat Jahr"

      ^ in <eval> at line number 1 at column number 6



hier meine Rule_Config:

Code: Alles auswählen

configuration: {}
triggers:
  - id: "1"
    configuration:
      itemName: Counter
    type: core.ItemStateChangeTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      type: application/javascript
      script: >-
        rule "Verbrauch Tag Woche Monat Jahr"

        when
            Item Counter changed                                                                         // persistierter Zähler
        then
            val kwprol = 0.1522                                                                          // Umrechnung kWh in Liter
            val Preis  = 1.50                                                                            // Preis pro Liter
            val zdtd   = ZonedDateTime.now.with(LocalTime.MIDNIGHT)                                      // heute, Mitternacht
            val zdtAL  = newArrayList(zdtd,
                                      zdtd.minusDays(zdtd.getDayOfWeek.getValue - 1),
                                      zdtd.withDayOfMonth(1),
                                      zdtd.withDayOfYear(1))
            val hmPeriod = newHashMap("Day"->0,"Week"->1,"Month"->2,"Year"->3)                           // Itemnamensteil

            // Itemnamen z.B. Summe_Day_Gas, Summe_Week_Gas, Summe_Month_Gas, Summe_Year_Gas, in der Gruppe gGasSummen

            gGasSummen.members.forEach[i|
                val pName  = i.name.split("_").get(1)                                                    // Zeitraumnamen holen
                val period = zdtAL.get(hmPeriod.get(pName))                                              // Zeitpunkt holen
                var kwh = 0.0001
                if(Counter.deltaSince(period) instanceof Number)
                    kwh    = (Counter.deltaSince(period) as Number).floatValue                           // kwh aus Persistence auslesen
                val liter  = (kwh * kwprol * 1000).intValue/1000                                         // in Liter umrechnen (drei NAchkommastellen
                val kosten = (liter * Preis * 100).intValue/100                                          // in € umrechnen (zwei Nachkommastellen)
                logDebug("gas","{}: {} kWh / {} l / {} € {} ({})",period,kwh,liter,kosten,i.name,pName)
                postUpdate("Summe_"+pName+"_Liter",liter.toString)
                postUpdate("Summe_"+pName+"_Kosten",kosten.toString)
                postUpdate("Summe_"+pName+"_kwh",kwh.toString)
                i.postUpdate(kwh.toString + " kWh/" + liter.toString + " l/" + kosten.toString + " €")   // Item updaten
            ]
        end
    type: script.ScriptAction
Gruß Jan

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

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

Beitrag von udo1toni »

Es gibt dazu zwei Punkte zu vermerken:

1. Es handelt sich um eine DSL Rule, nicht um JavaScript. Enstprechend muss auch die DSL Rule Engine verwendet werden.
2. Die Rule ist als Rule für eine *.rules Datei notiert. Die Text Rules bestehen aus einem Rahmen

Code: Alles auswählen

rule "..."
when
    <Trigger>
then
    <Rule Code>
end
Der Teil zwischen when und then entspricht dem when-Teil einer UI Rule.
Der Teil zwischen then und end ist der auszuführende Code. Nur dieser Teil (ohne die Schlüsselworte drum herum) darf in eine UI Rule eingetragen werden. openHAB gibt auch eine passende Fehlermeldung aus :) Korrekt muss die Rule, über die UI eingegeben, so aussehen:

Code: Alles auswählen

configuration: {}
triggers:
  - id: "1"
    configuration:
      itemName: Counter
    type: core.ItemStateChangeTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: >-
        val kwprol = 0.1522                                                                          // Umrechnung kWh in Liter
        val Preis  = 1.50                                                                            // Preis pro Liter
        val zdtd   = ZonedDateTime.now.with(LocalTime.MIDNIGHT)                                      // heute, Mitternacht
        val zdtAL  = newArrayList(zdtd,
                                  zdtd.minusDays(zdtd.getDayOfWeek.getValue - 1),
                                  zdtd.withDayOfMonth(1),
                                  zdtd.withDayOfYear(1))
        val hmPeriod = newHashMap("Day"->0,"Week"->1,"Month"->2,"Year"->3)                           // Itemnamensteil

        // Itemnamen z.B. Summe_Day_Gas, Summe_Week_Gas, Summe_Month_Gas, Summe_Year_Gas, in der Gruppe gGasSummen

        gGasSummen.members.forEach[i|
            val pName  = i.name.split("_").get(1)                                                    // Zeitraumnamen holen
            val period = zdtAL.get(hmPeriod.get(pName))                                              // Zeitpunkt holen
            var kwh = 0.0001
            if(Counter.deltaSince(period) instanceof Number)
                kwh    = (Counter.deltaSince(period) as Number).floatValue                           // kwh aus Persistence auslesen
            val liter  = (kwh * kwprol * 1000).intValue/1000                                         // in Liter umrechnen (drei NAchkommastellen
            val kosten = (liter * Preis * 100).intValue/100                                          // in € umrechnen (zwei Nachkommastellen)
            logDebug("gas","{}: {} kWh / {} l / {} € {} ({})",period,kwh,liter,kosten,i.name,pName)
            postUpdate("Summe_"+pName+"_Liter",liter.toString)
            postUpdate("Summe_"+pName+"_Kosten",kosten.toString)
            postUpdate("Summe_"+pName+"_kwh",kwh.toString)
            i.postUpdate(kwh.toString + " kWh/" + liter.toString + " l/" + kosten.toString + " €")   // Item updaten
        ]
    type: script.ScriptAction
Und bitte immer daran denken: Code und Log Auszüge sollten immer als Code (nicht inline und auch nicht als Zitat) markiert werden. Aus dem vollständigen Editor heraus ist das die Schaltfläche </>, ansonsten kann man auch selbst die Tags code und /code um den Code herum schreiben (jeweils in eckige Klammern eingerahmt, also [ code ] am Anfang (aber ohne die Leerzeichen) und [/code] hinter dem Code). Ich habe das hier mal korrigiert.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Snatsch
Beiträge: 343
Registriert: 9. Jan 2021 22:55

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

Beitrag von Snatsch »

kann es sein das mein Gasverbrauch umso später umso weniger wird :?: oder sehe ich das falsch ?

Code: Alles auswählen

2022-11-01 22:38:10.612 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'GasSumme_Heute' changed from 26.5 kWh/4,03 l/4,28 € to 26.4 kWh/4,02 l/4,26 €
2022-11-01 22:38:10.619 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'GasSumme_Woche' changed from 90.6 kWh/13,79 l/14,63 € to 90.5 kWh/13,77 l/14,61 €
2022-11-01 22:38:10.625 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'GasSumme_Monat' changed from 26.5 kWh/4,03 l/4,28 € to 26.4 kWh/4,02 l/4,26 €
2022-11-01 22:38:10.633 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'GasSumme_Jahr' changed from -583.8 kWh/-88,85 l/-94,27 € to -583.9 kWh/-88,87 l/-94,29 €
2022-11-01 22:40:26.132 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'GasSumme_Heute' changed from 26.4 kWh/4,02 l/4,26 € to 26.3 kWh/4,00 l/4,25 €
2022-11-01 22:40:26.138 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'GasSumme_Woche' changed from 90.5 kWh/13,77 l/14,61 € to 90.4 kWh/13,76 l/14,60 €
2022-11-01 22:40:26.144 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'GasSumme_Monat' changed from 26.4 kWh/4,02 l/4,26 € to 26.3 kWh/4,00 l/4,25 €
2022-11-01 22:40:26.150 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'GasSumme_Jahr' changed from -583.9 kWh/-88,87 l/-94,29 € to -584.0 kWh/-88,88 l/-94,31 €
2022-11-01 22:42:48.539 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'GasSumme_Heute' changed from 26.3 kWh/4,00 l/4,25 € to 26.2 kWh/3,99 l/4,23 €
2022-11-01 22:42:48.548 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'GasSumme_Woche' changed from 90.4 kWh/13,76 l/14,60 € to 90.3 kWh/13,74 l/14,58 €
2022-11-01 22:42:48.557 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'GasSumme_Monat' changed from 26.3 kWh/4,00 l/4,25 € to 26.2 kWh/3,99 l/4,23 €
2022-11-01 22:42:48.566 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'GasSumme_Jahr' changed from -584.0 kWh/-88,88 l/-94,31 € to -584.1 kWh/-88,90 l/-94,32 €
2022-11-01 22:45:12.723 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'GasSumme_Heute' changed from 26.2 kWh/3,99 l/4,23 € to 26.1 kWh/3,97 l/4,21 €
2022-11-01 22:45:12.731 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'GasSumme_Woche' changed from 90.3 kWh/13,74 l/14,58 € to 90.2 kWh/13,73 l/14,57 €
2022-11-01 22:45:12.738 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'GasSumme_Monat' changed from 26.2 kWh/3,99 l/4,23 € to 26.1 kWh/3,97 l/4,21 €
2022-11-01 22:45:12.745 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'GasSumme_Jahr' changed from -584.1 kWh/-88,90 l/-94,32 € to -584.2 kWh/-88,92 l/-94,34 €
2022-11-01 22:47:33.216 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'GasSumme_Heute' changed from 26.1 kWh/3,97 l/4,21 € to 26.6 kWh/4,05 l/4,30 €
2022-11-01 22:47:33.223 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'GasSumme_Woche' changed from 90.2 kWh/13,73 l/14,57 € to 90.7 kWh/13,80 l/14,65 €
2022-11-01 22:47:33.226 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'GasSumme_Monat' changed from 26.1 kWh/3,97 l/4,21 € to 26.6 kWh/4,05 l/4,30 €
2022-11-01 22:47:33.236 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'GasSumme_Jahr' changed from -584.2 kWh/-88,92 l/-94,34 € to -583.7 kWh/-88,84 l/-94,26 €
openhab4.1.1 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer

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

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

Beitrag von udo1toni »

Der Zähler muss monoton wachsen, das heißt, im zeitlichen Verlauf muss der Wert immer größer werden, je näher an der Gegenwart er liegt, eben wie ein gewöhnlicher Stromzähler oder Gaszähler. Wird ein neuer Zähler eingebaut, muss der Datenbestand für das Zähleritem zwingend gelöscht werden, damit wieder bei 0 begonnen werden kann.

Verdächtig erscheint mit in dem Zusammenhang der negative Wert für die Jahressumme.

Und noch mal der Hinweis, die Berechnung beruht auf der Annahme, dass die Messwerte zeitlich korrekt gewichtet sind, in der Theorie sollten sich dann abnehmender Durchschnittswert und zunehmende Zeitspanne jeweils egalisieren.
Es sollte also egal sein, ob 12 Stunden lang 2 kW umgesetzt wurden oder 24 Stunden lang 1 kW.
Am ehesten sollten regelmäßige Messpunkte für saubere Verhältnisse sorgen, also z.B. exakt alle 30 Sekunden ein Messwert, das sind dann exakt 120 Messwerte pro Stunde und der Mittelwert aller 120 Messwerte sollte dann der durchschnittlichen Leistung entsprechen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Snatsch
Beiträge: 343
Registriert: 9. Jan 2021 22:55

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

Beitrag von Snatsch »

Am ehesten sollten regelmäßige Messpunkte für saubere Verhältnisse sorgen, also z.B. exakt alle 30 Sekunden ein Messwert, das sind dann exakt 120 Messwerte pro Stunde und der Mittelwert aller 120 Messwerte sollte dann der durchschnittlichen Leistung entsprechen.
wie ist das gemeint und wie kann ich es umsetzten ?
openhab4.1.1 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer

Antworten