nobl / ioBroker.senec

ioBroker adapter for Senec Home
Other
27 stars 7 forks source link

Autarky values are wrong #181

Closed Signum closed 8 months ago

Signum commented 9 months ago

Describe the bug

The autarky values do not reflect what is shown in mein-senec.de or the SENEC Android app.

To Reproduce

You would need to have my account to reproduce it.

Expected behavior

Autarky values match what is shown in mein-senec.de.

Screenshots & Logfiles

Autarky values from mein-senec.de:

image

Autarky values stored by the adapter:

image

image

image

image (It's 1 in the morning in Germany. There is no sun outside. Battery is empty. Autarky must be 0%.)

Versions:

Thanks

Thanks you for maintaining this adapter!

nobl commented 9 months ago

1 Uhr ist natürlich ein sehr schlechter Zeitpunkt, das zu betrachten, da wir damit genau im Aktualisierungsgap von Senec liegen (sie aktualisieren diese Datenpunkte über mehrere Stunden nicht).

Vermutlich ist das letzte Aktualisierungsdatum von Today auch irgendwas um 23:xx?

Monat ist grundsätzlich korrekt - das sind Rundungsfehler.

Jahr müsste man die Detailwerte sehen - da dürfte ein einzelner Wert aus dem Ruder gelaufen sein (und käme damit falsch aus der Api).

Der Gesamtwert: Tatsächlich ist das potentiell auch nur ein Rundungsfehler. Man müsste hier auch konkret vergleichen, welche Einzelwerte hier mehr oder weniger stark abweichen.

Es wäre auch zu prüfen ob die senec Werte selbst schon auf Basis von Rundungsfehlern berechnet wurden. Passt die gezeigte Autarkie mit den einzelnen Werten in der Plattform zusammen? Da ich die Formel nicht geändert habe und sie in den meisten Fällen auch korrekt erscheint, ist es schwer zu sagen, worin das Problem liegen könnte.

(Möglicherweise ist das sogar der Grund, weshalb Senec diese Information selbst nicht über die API liefert ... wären nicht die ersten Zahlen, die schlichtweg falsch sind :) )

Signum commented 9 months ago

Ich habe zu mehreren Zeitpunkten die Daten verglichen und die jeweils aktuellen Werte sehen gut aus. Oder zumindest mit sehr geringen Abweichungen. Das passt.

Die Autarkie-Werte für Woche/Monat/Jahr/Gesamt finde ich persönlich nicht kritisch, wenn sie falsch berechnet werden. Aber aus wissenschaftlicher Neugier würde ich gerne einmal einsteigen, wo die falschen Werte herkommen. Ich habe eben einmal einen JSON-Export des Teilbaums senec.0._api.Anlagen.0815.Statistik probiert, aber ioBroker exportiert mir die Werte nicht mit.

Du sagst, man müsste die Detailwerte sehen. Wo verstecken die sich? Im Kundenportal werden die über https://mein-senec.de/endkunde/api/status/getautarky.php?anlageNummer=0 bereit gestellt. Die Antwort ist da aber nicht detailliert:

{"day":54.34,"week":54.34,"month":71.00,"year":25.79,"all":43.89}

Zieht das Modul sich historische Daten?

nobl commented 9 months ago

Der Adapter zieht sich die Daten aus der API für tag, monat, jahr und speichert diese entsprechend ab unter "This Month", "This Year", "Today" (bzw. entsprechend Last Month, Last Year, Yesterday). Aus exakt diesen Werten wird dann der entsprechende Autarkiewert berechnet. Wenn es da also Abweichungen zu den Werten unter mein-senec gibt, dann muss das an diesen einzelnen Werten festzumachen sein. Vermutlich (!) sind falsche Werte meist auf Werte zurückzuführen, die mit dem Akku zu tun haben.

Die Werte "seit Inbetriebnahme" basieren auf den Jahreswerten, die von der API geliefert werden. Die einzelnen ermittelten Jahressummen kannst du im Datenpunkt "ValueStore" wiederfinden.

nobl commented 9 months ago

Nachtrag: Es könnte selten vorkommen, dass ein Div/0 Problem auftritt - das habe ich beim Übernehmen der Autarkie-Berechnung aus den bisherigen Routinen leider übersehen :)

nobl commented 8 months ago

Nachtrag: Es könnte selten vorkommen, dass ein Div/0 Problem auftritt - das habe ich beim Übernehmen der Autarkie-Berechnung aus den bisherigen Routinen leider übersehen :)

should be fixed in next release :)