Hilfe bei der Berechnung von Stromverbrauchswerten gesucht

  • Wie ist das eigentlich mit den Monatswerten nach einem Jahr? Werden die dann überschrieben?

    jup. ist auch so gewollt. siehe bspw:

    Code
    if (monat == 1){
            Strompreis_Januar.postUpdate(Verbrauch_gesamt_Monat_Preis.state)
        }

    um 23.59 uhr am letzten tag des monats wird die rule getriggert und schreibt den verbrauchswert in das item, welches der monatszahl entspricht.

  • Hallo zusammen,

    ich überleg mir den Tibber Pulse zuzulegen um den Strombezug und den verkauften Strom unserer PV-Anlage zu tracken. Das ganze würde ich dann gerne auf Tages-, Monats- und Jahresbasis auswerten und in entsprechenden Items speichern. Jetzt habe ich aber gelesen, dass um Mitternacht die Items wieder auf null zurückgesetzt werden. Jetzt stehe ich ein wenig auf dem Schlauch wie ich das in einer rule umsetzen kann um die Tages-, Monats- und Jahreswerte zu ermitteln.


    Alle rules die ich bisher in diversen Foren gefunden habe -wie auch hier-, gehen ja von einem Gesamtwert aus, aus dem sie die gewünschten Zeiträume errechnen. Aber genau das kann ich ja nicht abrufen. Jetzt hoffe ich, dass mir hier jemand auf die Sprünge helfen kann.

    Vielen Dank im Voraus.


    VG
    Tobi

  • Jetzt habe ich aber gelesen, dass um Mitternacht die Items wieder auf null zurückgesetzt werden. Jetzt stehe ich ein wenig auf dem Schlauch wie ich das in einer rule umsetzen kann um die Tages-, Monats- und Jahreswerte zu ermitteln.


    Alle rules die ich bisher in diversen Foren gefunden habe -wie auch hier-, gehen ja von einem Gesamtwert aus, aus dem sie die gewünschten Zeiträume errechnen. Aber genau das kann ich ja nicht abrufen. Jetzt hoffe ich, dass mir hier jemand auf die Sprünge helfen kann.

    in deinem fall muss der aufbau nur vorher etwas anders sein um erstmal an einen gesamtwert zu kommen.

    - gesamtverbrauch dummy anlegen

    - rule anlegen um aktuellen tagesverbrauch mit gesamtverbrauch dummy zu addieren...das ergebnis per "postUpdate" zu gesamtverbrauch dummy senden.

    damit haste ein item, welches deinen gesamtverbrauch speichert. mit diesem wert kannst du dann die restlichen sachen ausführen.

    beispiel:

    items

    Code
    Number Gesamtverbrauch_Dummy    "Mein Gesamtverbrauch"
    Number Tagesverbrauch           "Mein Tagesverbrauch"      {channel="xxxxxxx"}

    rules

    Code
    rule "item gesamtverbrauch erstellen"
        when
            Item Tagesverbrauch changed
        then 
            val gesamt = Gesamtverbrauch_Dummy.state as Number
            val heute  = Tagesverbrauch.state as Number
                Gesamtverbrauch_Dummy.postUpdate(gesamt + heute)
    end 

    dein Gesamtverbrauch_Dummy muss natürlich mit persistence gespeichert werden.
    wichtig: dein dummy wird nach dem erstellen natürlich den wert NULL haben. dadurch wird ggf die rule crashen, da es keine valide zahl ist.
    um das zu umgehen einfach einmalig:
    http://192.168.2.1:8080/basicui/CMD?Gesamtverbrauch_Dummy=0
    ....in deinem browser senden. ip natürlich auf dein openhab gerät abändern.

  • Hallo zusammen,

    zu aller erst an dich horschte, deine Rule ist der Knaller! Vielen Dank für das Teilen [bf]

    Ich habe alles so angewendet wie du es beschrieben hast inklusive der Erweiterung für die Monate Januar bis Dezember. Die Items Verbrauch_gesamt und Verbrauch_aktuell habe wie du es beschrieben hast in je ein Gruppe mit den jeweiligen Wert Lieferanten Items gesteckt. Wie gesagt funktionieren die Berechnungen auch soweit wie sie schon aufgrund des Startzeitpunkts anzeigen können, aber beim Verbrauch_Tag_Durchschnitt, erhalte in nur den Wert NULL. Verstehe ich nicht da Verbrauch_gesamt_gestern Werte anzeigt und dieser ja für die Berechnung verwendet wird, oder habe ich da irgendwas missverstanden?

    Meine Items Datei ist folgende:

  • Meine Rules Datei ist folgende:

    Habe eine zweite globale Variable hinzugefügt die bei der Strompreis Monatsberechnung noch den monatlichen Grundpreis dazu addiert. Dieser muss dann natürlich ebenfalls wie du es beschrieben hattest entsprechend angepasst werden.

    Als persistence verwende ich influxDB was soweit auch funktioniert. Hier habe ich wie von dir beschrieben folgende Items hinzugefügt:

    Verbrauch_gesamt*, Verbrauch_gesamt, Verbrauch_aktuell*, Verbrauch_aktuell, Verbrauchsberechnung, Strompreis_Januar, Strompreis_Februar, Strompreis_Maerz, Strompreis_April, Strompreis_Mai, Strompreis_Juni, Strompreis_Juli, Strompreis_August, Strompreis_September, Strompreis_Oktober, Strompreis_November, Strompreis_Dezember

    Funktioniert auch aber an dieser Stelle sehe ich mit dem Tool influxDBStudio z.B. nur die 2 Items Verbrauch_aktuell und Verbrauch_gesamt und die Strompreis_Januar bis Strompreis_Dezember Items. Verbrauch_gesamt* und Verbrauch_aktuell* also die mit Wilcards versehenen, tauchen in InfluxDB gar nicht auf daher denke ich, das diese auch irgendwie nicht persistiert werden. Macht es vielleicht mehr Sinn in meinem Falle alle einzeln in der persistence Datei aufzulisten? Oder verstehe ich irgendwas nicht richtig? Kann durchaus sein, möchte ich gar nicht abstreiten...


    Wäre cool wenn du mir zur Seite springen könntest [ay]

    Musste es auf 2x posten da man max. 10.000 Buchstaben haben darf.

    Gracias und Gruß

    Eloy

  • Ich gehe mal davon aus das Du Dich durch diesen Artikel schon durchgewühlt hast?

    InfluxDB (0.9 and newer) - Persistence Services
    This service allows you to persist and query states using the InfluxDB and InfluxDB 2.0 time series database. The persisted values can be queried from within…
    www.openhab.org

    Generelles zum Thema Persistence

    Persistence
    a vendor and technology agnostic open source automation software for your home
    www.openhab.org

    Hast Du im Verzeichnis persistence eine Datei angelegt mit Namen "influxdb.persist"?

    Hier mal ein Auszug aus meiner

  • Ich habe mal den Threadverlauf durchgesehen.

    Meine Rules Datei ist folgende:


    Verbrauch_gesamt*, Verbrauch_gesamt, Verbrauch_aktuell*, Verbrauch_aktuell, Verbrauchsberechnung, Strompreis_Januar, Strompreis_Februar, Strompreis_Maerz, Strompreis_April, Strompreis_Mai, Strompreis_Juni, Strompreis_Juli, Strompreis_August, Strompreis_September, Strompreis_Oktober, Strompreis_November, Strompreis_Dezember

    Funktioniert auch aber an dieser Stelle sehe ich mit dem Tool influxDBStudio z.B. nur die 2 Items Verbrauch_aktuell und Verbrauch_gesamt und die Strompreis_Januar bis Strompreis_Dezember Items. Verbrauch_gesamt* und Verbrauch_aktuell* also die mit Wilcards versehenen, tauchen in InfluxDB gar nicht auf daher denke ich, das diese auch irgendwie nicht persistiert werden.

    Zum Thema Wildcard

    Das Sternchen hinter dem Gruppennamen sorgt dafür das die in der Gruppe enthaltenen Items persistiert werden

    Der Gruppenname ohne Sternchen sorgt dafür das der Wert des Gruppenitems selbst persistiert wird.

    Ein Sternchen hinter einem angefangenen Itemnamen wird nicht alle Items, welche so anfangen, persistieren.

    Die kannst Du entweder hintereinander durch Komma getrennt eingeben oder eben wie von mir schon ausgeführt in eine Gruppe packen.

    Also bei einzelnen Item nach diesen Schema

    Code
    Item1, Item2: strategy = everyChange, restoreOnStartup

    oder bei der Gruppe eben

    Code
    Gruppe2* : strategy = everyHour

    gib dazu bitte einmal Feedback oder zeige uns die Datei. Dann aber bitte auch dabei schreiben was ein normales Item ist und was ein Gruppenitem.

  • Hallo pilot188,

    zunächst einmal Danke für deine Hilfestellung und sorry das ich erst so spät antworte!

    Meine influxDB.persist sieht folgendermaßen aus:

    Das Gruppen Item Verbrauchsberechnung taucht in dem Tool influxDBStudio nicht auf. Wie bereits erwähnt sehe ich mit dem Tool influxDBStudio nur die 2 Items die ohne Wildcard angegeben sind (Verbrauch_gesamt und Verbrauch_aktuell)


    Meine Items Datei dazu sieht folgenermaßen aus:

    Gruppen Items gibt es nur 3 in dem Falle (Verbrauch_gesamt, Verbrauch_aktuell, Verbrauchsberechnung) und in openHAB bzw in VSC werden die Mitglieder auch korrekt angezeigt.

  • Und meine Rules datei sieht folgendermaßen aus:

    Kann es sein das ich Tagesdurchschnitt noch persistieren muss? Eigentlich doch nicht da dies immer aus dem Item Verbrauch_gesamt_gestern im Mittel der letzten 20 Jahren genommen wird...

    Entschuldige das der Code jetzt so wüst ist, habe ihn aus VSC hier rein kopiert und irgendwie, sieht das unschön aus.

    Schon einmal vielen Dank für Deine Unterstützung!

    Gruß

    Eloy

  • So, ich habe einmal kurz versucht das zu sortieren

    In der Gruppe "Verbrauchsberechnung" sind die Items Strompreis_Januar bis Strompreis_Dezember doch schon drin

    Warum werden die noch mal separat aufgeführt?

    Um die einzelnen Items, welche sich in dieser Gruppe befinden, dann setz das so ein

    Code
    Verbrauchsberechnung* : strategy = everyChange, everyMinute, everyHour, everyDay, everyWeek, everyMonth, everyYear, restoreOnStartup

    Um den Wert der Gruppe sellbst zu speichern

    Code
    Verbrauchsberechnung : strategy = everyChange, everyMinute, everyHour, everyDay, everyWeek, everyMonth, everyYear, restoreOnStartup

    Wobei das keinen Sinn ergibt denn diese Gruppe kann keinen vernünftigen Wert haben

    Mit diesen Gruppen ist das ja entsprechend umgesetzt

    Verbrauch_gesamt*, Verbrauch_gesamt, Verbrauch_aktuell*

    Die nachstehenden Items sind in keiner Gruppe, zumindest nach diesem Auszug, enthalten

    Verbrauch_gesamt_Tag, Verbrauch_gesamt_Woche, Verbrauch_gesamt_Monat, Verbrauch_gesamt_Jahr, Verbrauch_gesamt_Tag_Preis, Verbrauch_gesamt_Woche_Preis, Verbrauch_gesamt_Monat_Preis, Verbrauch_gesamt_Jahr_Preis

    Diese sind auch nicht in der Persistent aufgeführt, d.h. die Werte werden nicht gespeichert

    Wenn Du z.B. jedes neu angelegte Item speichern möchtest, dann siehe einmal oben in mein Beispiel, Zeile 8 und 9

    Code
    // if no strategy is specified for an item entry below, the default list will be used
    default = everyHour

    Lösche mal in Deiner Persistent die Einträge für Strompreis_Januar bis Strompreis_Dezember und setze hinter Verbrauchsberechnung ein Sternchen, also so Verbrauchsberechnung*

    Damit werden dann, wie schon beschrieben, die in der Gruppe enthaltenen Items in die influxdb geschrieben.

    Und diese Strategie ist verheerend, denn Du gibst damit vor das jede Änderung und jede Minute, Stunde, Tag, Woche, Monat, Jahr geschrieben wird. Da solltest Du überlegen ob das so überhaupt Sinn macht. Das bläht die Datenbank enorm auf.

    VG Uwe

  • Hallo Uwe,

    Danke! [ay]

    Kaum habe ich deine Empfehlung gespeichert sind Verbrauch_gesamt_gestern, Verbrauch_gesamt_gestern_Preis, Verbrauch_letzte_Woche, Verbrauch_letzte_Woche_Preis und Strompreis_Januar bis Strompreis_Dezember aufgetaucht. Theoretisch sollte ab morgen dann ein Tagesdurchschnitt angezeigt werden aber Verbrauch_Tag_Durchschnitt, Verbrauch_letzten_Monat, Verbrauch_letzten_Monat_Preis werden noch nicht angezeigt, obwohl diese doch auch Mitglieder der Gruppe Verbrauchsberechnung sind? Oder werden diese erst bei der ersten Datenspeicherung erstellt?

    Du hast deine influxDB.persist Datei schön nach Zeiträumen aufgeteilt wenn ich das jetzt richtig deute. Das habe ich auch schon einmal versucht, hat aber warum auch immer nicht geklappt. Das würde mir das Leben einfacher machen wenn man neue Items nach einem gewissen Zeitschema persistieren will, packt man sie einfach in die Zeile mit rein und gut wäre... Iss nisch...

    Hast du evtl. eine gute Adresse wo ich das nochmals nachlesen könnte? Habe mir bereits die openHAB Doku reingefahren aber wie schon erwähnt, warum auch immer funktionieren dann ein Haufen Items nicht mehr die vorher persistiert wurden.

    Gruß und nochmals Danke für Deine Unterstützung

    Eloy

  • Habe mal auf die schnelle eine zweite Zeile in der influxDB.persist erstellt und wie bereits geschrieben, werden die hier definierten Items in influxDB Studio nicht angezeigt. Dann habe ich die bisher nicht persistierten Items Verbrauch_gesamt_Tag, Verbrauch_gesamt_Woche, Verbrauch_gesamt_Monat, Verbrauch_gesamt_Jahr, Verbrauch_gesamt_Tag_Preis, Verbrauch_gesamt_Woche_Preis, Verbrauch_gesamt_Monat_Preis, Verbrauch_gesamt_Jahr_Preis in die vorhandene Zeile gepackt und schon tauchen sie auf.

    Blöde Frage. Kann man zwei Zeilen mit der gleichen strategy Erstellen oder beißt sich das dann?

    Gruß

    Eloy

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!