starbright hat geschrieben: ↑12. Dez 2024 11:26
Wie stelle ich es an, dass der Offset (derzeit fix codiert) entweder zum Tages- oder Monats-Wechsel neu gesetzt wird, so dass der D=Verbrauch zu diesem Zeitpunkt "0" wird?
Was genau rechnest Du denn aus? Welche Werte stehen genau zur Verfügung?
Konkret (auch, weil ich auf den sieben Seiten die Infos nicht zusammenkratzen möchte):
Welcher Wert ist im Item Wechselrichter_Solar_Years hinterlegt, welcher Wert in sm_cnt_purchase, welcher Wert in sm_cnt_deliver, was bedeutet die 4051.203 (woraus ergibt sich dieser Offset)?
Wenn ich es richtig interpretiere, sind sm_cnt_deliver und sm_cnt_purchase jeweils die Zähler für die beiden Richtungen, aber über welchen Zeitraum wird hier gezählt? Wenn diese Zähler "zwischendurch" zurückgesetzt werden, dann ergäbe sich daraus vermutlich eine Verschiebung, wegen der dann der Offset nötig wäre.
Sinnvoll sind immer Gesamtzählerstände, also ein Total_In und eine Total_Out, die beide (streng) monoton wachsend sind. Beide Zählerstände werden persistiert. Dann kann man - auch nachträglich - jederzeit die Differenz zwischen zwei Zeitpunkten bestimmen und damit die erbrachte bzw. genutzte Arbeit, und aus den beiden Differenzen kann auch das jeweilige Saldo für den betrachteten Zeitraum bestimmt werden.
Wenn solche Zähler im Wechselrichter nicht vorhanden sind, musst Du diese in openHAB nachbilden. Dazu gab es auch schon entsprechende Ansätze, der Form "Messwert aktuell größer als Messwert alt -> Differenz auf den Zählerstand aufaddieren. Messwert aktuell kleiner als Messwert alt -> Zähler wurde genullt, also Messwert aktuell auf den Zählerstand aufaddieren" Der aktuelle Zählerstand wird persistiert und mit restoreOnStartup automatisch nachgeladen. Die Messwerte werden ebenfalls persistiert, aber nach dem aufsummieren auf den virtuellen Zähler nicht mehr zur Berechnung herangezogen. Stattdessen werden nur noch die errechneten Gesamtzählerstände verwendet.