Hilfe bei der Berechnung von Stromverbrauchswerten gesucht

  • Hmm. Der Fehler taucht nicht mehr auf.

    Nach wir vor ist es aber so, dass ich als Verbrauchswerte für Verbrauch_gesamt_Tag etc. IMMER 0.00 erhalte.

    Wie ich die Zeitausgabe hinbekommen soll, weiß ich nicht so genau :(

    Code
    val  ZonedDateTime   zdt = ZonedDateTime.now()      
            logInfo("Zeit: ","", zdt.toString)

    So etwas liefert keinen Wert ...

  • die werte werden immer so errechnet:
    bspw von X bis heute, von Y bis heute, von Z bis heute usw.
    X,Y,Z stehen für anfang des tages, anfang der woche, anfang des monats usw usw,
    der wert des vergangenen monats sowie der vergangenen woche wird mittels cron geschrieben.
    um jetzt eine auflistung aller monate zu bekommen gibt es mehrere ansätze. das simpelste dürfte m.e. das arbeiten mit crons sein. zumal eine bereits vorhandene rule einfach nur erweitert werden müsste.
    bspw wenn letzter tag eines monats + kurz vor tageswechsel -> wert einem dummy (davon braucht man natürlich für jeden monat einen) übergeben.

    Ist das sehr aufwändig die Werte jedes Monats zu speichern um dann vielleicht sich jeden Monat über das Jahr anschauen zu können?

    für dich ja, für mich sicher weniger. allerdings bin ich momentan mit corona beschäftigt. wenn mein befinden es zulässt, dann mach ich das evt am we.

  • Ist das sehr aufwändig die Werte jedes Monats zu speichern um dann vielleicht sich jeden Monat über das Jahr anschauen zu können?

    zusätzliche items anlegen

    rules:
    die vorletzte rule aus diesem beitrag Hilfe bei der Berechnung von Stromverbrauchswerten gesucht

    Code
    rule "Stromkostenberechnung letzten monat"
        when
            Time cron "50 59 23 L * ? *" 
        then
            Verbrauch_letzten_Monat.postUpdate(Verbrauch_gesamt_Monat.state)
            Verbrauch_letzten_Monat_Preis.postUpdate(Verbrauch_gesamt_Monat_Preis.state)
    end

    ersetzen mit

    in die sitemap dann


    visibility ungleich NULL im frame ist auf november gesetzt, da ich annehme, dass du das diesen monat übernimmst.
    ab dem nächsten monatsstart bekommst du dann den ersten eintrag deiner jahresübersicht angezeigt.

  • Hallo ins Forum!

    Ich finde den Fehler bei folgendem Problem nicht und würde mich über Eure Hilfe freuen:

    ich möchte den bisherigen Gesamtagesverbrauch (und den momentanen Gesamtverbrauch) meiner 5 Shelly Plug S errechnen. Dazu würde es mir reichen, wenn ich die Gesamtverbräuche der Shellys einfach addiere, den Rest soll Grafana erledigen.

    Dafür habe ich händisch 2 items und eine Rule angelegt (ich nutze openhabian 3.4.0,Shelly-Binding, InfluxDB, die ShellyPlugS_xxx-items habe ich über das ui von OH3 angelegt)

    Für den momentanen Verbrauch klappt das, ich erhalte ein item "Strom_aktuell_alle" welches die gewünschte Summe (Werte scheinen plausibel) enthält und das kann ich in der Sitemap oder Grafana verwenden.

    Bei den bisherigen Gesamtverbräuchen klappt die Rechnung in der Rule (keine Fehlermeldungen im [definition='1','0']log[/definition]) nicht, es resultieren 9 stellige Werte wenn ich z.Bsp. auch nur Werte von 2 Shellys addieren lasse, z.Bsp 13,4+1,2 =205585200,0

    hier die 2 items:

    Code
    Number Strom_aktuell_alle "Stromverbrauch aktuell alle" <energy>
    Number Strom_gesamt_alle "Stromverbrauch gesamt alle" <energy>


    hier die Rule:



    Kann mir jemand einen Tip geben?
    VG hot-doc

  • Hi
    Schreibe Deine Variablenzuweisung einmal statt
    var S1=ShellyPlugS1_Stromverbrauch.state as Number
    nach diesem Schema
    var S1=(ShellyPlugS1_Stromverbrauch.state as Number).floatValue

    Dann kannst Du auch mit dem Wert rechnen

    Update:
    Oder Du machst Dir das Leben einfacher und legst ein Item vom Typ Gruppe an.
    Memberbasetype ist Number:Power
    Aggregationfunction ist SUM

    Dann hast Du alles zusammen und muss nicht rechnen

  • Danke! das hat geklappt:

    Code
    var G1=(ShellyPlugS1_Gesamtverbrauch.state as Number).floatValue

    mir ist das so für meine Zwecke im Moment ausreichend, bin noch mit der Migration von OH2 -> OH3 beschäftigt und froh über jedes Thing/item welches ich zum Laufen bekomm.

    Mich wundert aber, warum es bei den momentanen Verbräuchen wie unterstehend klappt (Kanal shelly:shellyplugs:XXXXXXXXXXX:meter#currentWatts (Number:Power))


    Code
    var S1=ShellyPlugS1_Stromverbrauch.state as Number

    bei den Gesamtverbräuchen (oberes Quellcodebeispiel) aber nicht (Kanal: shelly:shellyplugs:XXXXXXXXXXXX:meter#totalKWH (Number:Energy))


    Vielleicht liegts an den Einheiten?
    In jedem Fall vielen Dank Euch!

  • mir ist das so für meine Zwecke im Moment ausreichend, bin noch mit der Migration von OH2 -> OH3 beschäftigt und froh über jedes Thing/item welches ich zum Laufen bekomm.

    ich verstehe es natürlich wenn du das so laufen lassen willst. es ist aber halt komplett umständlich. das hat auch nichts mit oh2 oder oh3 zu tun. gruppieren und in der gruppe summe ausgeben ging auch schon mit oh2. du ersparst dir da die komplette rule und rechnerei. einfach nur ne sum-gruppe anlegen, die verbrauchskanäle in die grupper...fertig.


  • .. es ist aber halt komplett umständlich. das hat auch nichts mit oh2 oder oh3 zu tun.

    Das weiß ich, die Shellys hatte ich unter OH2 noch nicht. Ich versuch mich nur gerade durch OH3 durchzubeißen, hänge halt noch an meinen .items .rules Dateien und bin noch nicht ganz durch die ganzen neuen Bezeichner (Model ect.) durchgestiegen :)
    Deswegen habe ich mal den Vorschlag von Euch beiden versucht

    Update:
    Oder Du machst Dir das Leben einfacher und legst ein Item vom Typ Gruppe an.
    Memberbasetype ist Number:Power
    Aggregationfunction ist SUM

    Dann hast Du alles zusammen und muss nicht rechnen

    und stecke wieder fest: die Gruppe g_Stromverbrauch (Screenshot) hat jetzt den Wert UNDEV obwohl alle Gruppenmitglieder einen Wert haben, Memberbasetyp und Aggregationfunction hab ich wie vorgeschlagen.

  • Ich habe bei mir einmal eine Gruppe angelegt und ebenfalls 4 Items mit den Gesamtverbräuchen (Shelly PlugS) eingefügt.
    Die Gesamtverbräuche sind vom Typ Number:Energy, also wird auch die Gruppe entsprechend konfiguriert

    Und dann vier Items mit den Gesamverbräuchen der Shelly PlugS eingefügt


    Wie sieht Deine Konfig aus?

  • Code
    var S1=ShellyPlugS1_Stromverbrauch.state as Number

    bei den Gesamtverbräuchen (oberes Quellcodebeispiel) aber nicht (Kanal: shelly:shellyplugs:XXXXXXXXXXXX:meter#totalKWH (Number:Energy))


    Vielleicht liegts an den Einheiten?
    In jedem Fall vielen Dank Euch!

    Ich wiederhole mich hier
    Du wirst mit dem Wert aus Number.Energy nicht wirklich rechnen können
    Also machen wir das so
    var S1=((ShellyPlugS1_Stromverbrauch.state as Number).floatValue)
    Dann klappt das auch mit der Mutti

  • Ich habs: in der Config der Gruppe hatte ich den Typ Number:Power statt Number:Energy <--- auf letzteres geändert , jetzt klappt's, danke!
    (auf was man alles achten muss ...)


    Ich wiederhole mich hierDu wirst mit dem Wert aus Number.Energy nicht wirklich rechnen können
    Also machen wir das so
    var S1=((ShellyPlugS1_Stromverbrauch.state as Number).floatValue)
    Dann klappt das auch mit der Mutti


    Das stimmt, habe es auch so für Number.Energy umgesetzt, wunderte mich nur, dass es mit Number.Power ohne .floatValue geht
    Problem gelöst, danke !

  • @horschte, sag mal lese ich die rule richtig, das der Wochen und Monatswert immer der/des aktuellen Woche / des aktuellen Monats ist?

    Ist das sehr aufwändig die Werte jedes Monats zu speichern um dann vielleicht sich jeden Monat über das Jahr anschauen zu können?

    Aus gegebenem Anlass (SD Karte und RaspPi kaputt, keine ordentliche Sicherung) beschäftige ich mich gerade mal wieder etwas mit der Sache.
    Wie ist das eigentlich mit den Monatswerten nach einem Jahr? Werden die dann überschrieben?

Jetzt mitmachen!

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