Modul Zaehlerueberlauf: Fortlaufende Zählung und Erzeugung Historienwerte

Hallo zusammen,
ich habe heute nach langem Suchen das Modul „Zaehlerueberlauf“ gefunden und installiert. Das kann mir helfen, meine Werte für Energiebezug und -Einspeisung besser weiterzuverarbeiten.
Was mir allerdings noch fehlt, ist eine Summenberechnung für historische Werte aus der Quellvariable, die seit mehreren Monaten mitgeloggt und archiviert wird. Gibt es hier einen Workaround oder muss ich hier den Programmiergriffel in die Hand nehmen und die Werte selbst ermitteln und in die neue Variable übertragen?
Schon mal vielen Dank im Voraus!
Gruss - uku69.

…der Fehler sitzt meist vor der Tastatur :confused:
Wenn man etwas bestimmtes sucht, hat man manchmal Tomaten auf den Augen. Nach einem Tag und der Überprüfung der Ergebnisse habe ich nun auch den Sinn dieses Modules verstanden. Wie der Name schon sagt - überlaufende Zähler werden fortlaufend weitergezählt. Das „Nullen“ von Zählerwerten über Nacht hingegen ist kein Zählerüberlauf. Ich brauche aber gerade für diesen Anwendungsfall einen Lösungsansatz. Also: setzen, 5, moch mal von vorn.

Mein du nicht eher sowas wie energiezähler und darauf aufbauend den energierechner?
Gruß Dennis

Hallo, nein, nicht wirklich.
Der Energiezähler setzt Impulse in Momentanverbräuche um oder berechnet aus Strom und Leistung den momentanen und kumulativen Stromverbrauch.
Den habe ich aber schon - jedoch täglich genullt. Und meine derzeitige Harware liefert keinen „Gesamtzählerstand“. Den brauche ich aber für weitere Berechnungen im virtuellen Summenzähler.
Ich habe mir gestern mal die Logik im Modul Zähler-Überlauf angesehen. Wenn ich richtig liege und net ganz deppert bin, sollte es ziemlich einfach sein, entweder das Modul zu kopieren und einen „forlaufenden Zähler“ draus zu basteln - oder diese Logik sogar innerhalb des Moduls „einzubauen“.
Die Musik spielt her:

    private function Update(float $OldValue, float $Value)
    {
        if (($Value - $OldValue) < 0) {
            $diff = $this->ReadPropertyInteger('MaximumValue') + 1 - $OldValue + $Value;
        } else {
            $diff = $Value - $OldValue;
        }

        //update value
        SetValue($this->GetIDForIdent('Counter'), GetValue($this->GetIDForIdent('Counter')) + $diff);
    }

Wenn man jetzt die Bedingung „if (($Value - $OldValue) < 0)“ so erweitert, dass bei einem Zählersprungwert = 0 die Differenz auf 0 gesetzt wird (…dann würde das „Nullen“ nämlich nicht zu einem Zählersprung führen…), dann sollte sich ein „fortlaufender Zähler“ ergeben.
Also in etwa so:

    private function Update(float $OldValue, float $Value)
    {
        if (($Value - $OldValue) < 0) {
            $sprung =  $this->ReadPropertyInteger('MaximumValue');
            if ($sprung == 0) {
               $diff = 0;
                // alternativ könnte hier auch ein "return." stehen, wenn kein "update" erforderlich ist...
            } else {
               $diff = $sprung + 1 - $OldValue + $Value;
            }
        } else {
            $diff = $Value - $OldValue;
        }

        //update value
        SetValue($this->GetIDForIdent('Counter'), GetValue($this->GetIDForIdent('Counter')) + $diff);
    }

Jetzt muss ich mal sehen, wie ich hier weitermache :slight_smile:

Gruss - Uwe.

Aber der Energiezähler erstellt auf jeden fall einen Gesamtzähler…
Mache das sehr häufig für meine PV, Balkonkraftwerke…
image

Jupp, danke für die Info.
Ich will jedoch die Leistungswerte, die bereits vorliegen, nicht noch mal neu berechnen, sondern direkt verwenden. Bei jeder „Neuberechung“ gibt es wieder Abweichungen - und die will ich vermeiden.
Trotzdem Danke für den Tipp!
Gruss - uku69.

Soderle, neuer Zwischenstand.

Ich habe (bei mir) das Coding des Modules „Zählerüberlauf“ so angepasst wie weiter oben beschrieben und seit zwei Tagen den neuen „Gesamtzähler“ (ohne Überlauf) aktiv. Das funktioniert auch genau so wie beabsichtigt; ich habe jetzt einen (bzw. zwei) neue Zähler, die mir den Gesamtwert aller Einspeisungen bzw. Bezüge am Übergabepunkt zum EVU (Zweirichtungszähler) korrekt saldieren.

Und das ist dann jetzt die Basis für zwei weitere virtuelle Summenzähler, die mir diese eine Marktlokation mit einer weiteren zusammenfasst, die ich auf meinem Grundstück habe (also ein zweiter Zweirichtungszähler zum EVU).

Jetzt sehen wir einmal, wie die Verbräuche und Einspeisungen aus bisher zwei getrennt betrachteten PVA’s auf einer gemeinsamen virtuellen Meßstelle aussehen und was sich dann hinsichtlich Sinnhaftigkeit des Einsatzes eines „gemeinsam genutzen“ Speichers ergibt :slight_smile:

Alles, was mir jetzt zu meinem Glück noch fehlt, wäre die Erzeugung von Historienwerten auf den erstgenannten „Gesamtzählern“. Aber hier werde ich eventuell mal mit Excel spielen…

@Dr.Niels / @paresy: Macht es aus eurer Sicht ggf. Sinn, die Erweiterung der Logik zum Modul „Zählerüberlauf“ generell zur Verfügung zu stellen?
Gruss - uku69.

1 „Gefällt mir“