-
Notifications
You must be signed in to change notification settings - Fork 203
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: simcount looses counter values on reboot #2450
Conversation
2022-10-16 16:33:24: PID: 3649: soc.modules.common.store._api: Saving BatState(imported=860240282650021.2, soc=87.0, power=165, exported=1654793914027.7444) 2022-10-16 16:39:15: PID: 3603: modules.e3dc.bat: Ip: 192.168.1.245, read_ext 1 pv_other False |
Übernimmt nun Zählerstände vom Broker, bringt die Zählerstände aber um Faktoren durcheinenander 2022-10-16 16:39:15: PID: 3603: modules.e3dc.bat: Ip: 192.168.1.245, read_ext 1 pv_other False |
e3f8db7
to
c24546e
Compare
Potenziell gefixt, versuch jetzt nochmal. (Übrigens: Auch die Logs sehen in triple-backticks (```) besser aus) |
Sieht nun besser aus
|
Hast du noch zur Sicherheit ein Ausschnitt von einem weiteren Durchlauf, damit wir sehen, dass das ab dem zweiten Durchlauf der in der Ramdisk gespeicherte Status gefunden und korrekt geladen wird? |
|
OK, genau so soll es aussehen :-). |
@okaegi hat mir geschrieben, dass er festgestellt hat, dass in #2449 bei einem Reboot die Zählerstände verloren gehen. Das habe ich mir dann angesehen und dieser PR soll das beheben.
Der ganz alte Code hat bei fehlendem Sim-Zählerstand diesen aus dem Broker geholt:
openWB/loadvars.sh
Lines 1217 to 1222 in f4c822a
Die aktuelle Logik beherrscht das theoretisch auch:
openWB/packages/modules/common/simcount/_simcounter_store.py
Lines 139 to 144 in 8e7677f
Der Code wird allerdings nur dann aufgerufen, wenn die
sec0
-Datei existiert:openWB/packages/modules/common/simcount/_simcounter_store.py
Lines 134 to 137 in 8e7677f
Bei einem kompletten reboot geht die
sec0
-Datei allerdings ebenso verloren. In dem Fall wirdSimCounterStoreRamdisk#initialize
aufgerufen und diese Funktion interessiert sich für den Umstand nicht.Das das ganze System immernoch nicht übetrieben übersichtlich ist habe ich den ganzen Code noch etwas refactored und aufegräumt.
Das ganze ist noch ungetestet.