NEWS
Blockly für persistenten Shelly Zähler
-
Moin zusammen,
ich weiß das es dazu schon Beiträge gibt und ich habe mich auch bemüht die Tipps dort umzusetzen bzw. abzuschreiben und Ja, es hat sogar funktioniert, ABER sobald ich das Script/Blockly neustarte resetten sich die Zählerwerte wieder auf 0 und ich finde den Fehler einfach nicht.
So sieht mein Blockly aus um die sich resettenden Stromzähler der Shellys abzufangen, quasi genauso wie es in einem der Beiträge hier aufgezeigt wurde. Das funktioniert auch wunderbar. Sobald ich den Shelly resette und dort der Energyzähler auf 0 fällt, dann zählt mein eigener Zählerstand weiter munter hoch ohne ebenfalls auf 0 zu fallen. Perfekt, aber eben wenn ich das Script neu starte ist alles bzw. mein eigener Zähler wieder auf 0 und fängt von vorne an.
-
@brenner-0 Beim schreiben rechnest Du
/ 1000
aber beim Lesen nimmst Du den Wert wie er ist als Basis? -
@haus-automatisierung Hmmm...
Mal überlegen...
Ich setze die Variable "Zaehlerstand" einmalig auf den Wert des Objektes "Heizungsanlage-counter-persistent". Das Objekt ist in kWh angegeben. Der Wert "Zaehlerstand" damit auch in kWh.
Ich erhöhe das den "Zaehlerstand" (in kWh) durch Differenzen des Objektes "Energy" (der Shellyzähler) der in Wh läuft. Das klingt ja schon mal komisch.
Das teile ich den "Zaehlerstand" (der jetzt ein kWh Wert plus aufsummierte Wh darstellt) durch 1000 (als in Wh) und schreibe das wieder zurück in "Heizungsanlage-counter-persistent".
Klingt auch komisch. -
@brenner-0 Richtig, Du müsstest also nach dem Lesen
* 1000
rechnen.Das wird aber immer ungenau sein, weil Du ja auf 2 Nachkommastellen rundest. Bräuchtest ja mindestens 3 um keine Daten zu verlieren.
Also angenommen Du hast 2 Wh ->
2 / 1000 = 0,002 = gerundet 0,00
. -
@brenner-0
Ich würde den Wert einmal manuell setzen und dann im Trigger immer nur WERT - LETZTER_WERT hinzuaddieren.
Eine evtl. gewünschte Umrechnung kann dann an der jeweils benötigten Stelle (Alias?) erfolgen.Edit
Eventuelle Rundungsfehler sind damit auch gleich vom Tisch. -
@brenner-0 sagte: ich finde den Fehler einfach nicht.
Wie @haus-automatisierung schon schrieb: Es fehlt der Faktor 1000 beim Skriptstart.
-
Ich danke euch vielmals für eure Eingaben!
Damit habe ich alle Herausforderungen lösen können.