-
-
Notifications
You must be signed in to change notification settings - Fork 751
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
Session log: close unfinished sessions on startup #10246
Conversation
@andig I am having some trouble with placement of the cleanup routine, and could use some help. Right now it resides in the However, Ideal would be a database reference somewhere on "site" level, maybe in NewSiteFromConfig. But that would then "bleed" knowledge about sessions out of the loadpoint into site. Do you maybe have a good idea where we could put this? Or am I simply too concerned about referencing sessions in other parts of the system but the loadpoint? |
Ich versteh die Frage nicht- Du hast die Routine ja schon? Ich würde da auch nicht soviel Magie rein packen sondern einfach die letzte Session je Loadpoint- falls offen- mit dem Zählerstand überschreiben. Die Vergangenheit muss halt von Hand repariert werden. In dem Fall passt dann auch der Loop über die Loadpoints. |
"je Loadpoint" war entscheidend. Das war generell nicht sauber. Unittest ist hoffentlich verständlich. Mir war wichtig im Wechsel in die DB zu schreiben, damit das Handling bei nicht aufeinander folgenden Primärschlüsseln auch geprüft wird. IMHO ist das so fertig. |
Konsistenz: wir sollten noch checken, ob wir die Session auch beim Abbruch (nicht nur beim Neustart) schließen. |
Das erledigt nach meinem Verständnis der Shutdown hook der in site.Go#L151 registriert wird. |
Ich bin eigentlich kein Fan davon, diese Komplexität einzubauen. Es sei denn, wir hätten heute noch typische Fälle, wo das vorkommen könnte? Falls nein wäre die Korrektur auch lokal in SQL durchzuführen. |
Ich kann leider auch nicht einschätzen wie häufig das passiert. In Summe find ich der Change ist aber übersichtlich. Wir haben eine Cleanup Routine die einmalig in site.go beim Startup aufgerufen wird. Die Routine selbst ist sauber getestet - ich würde es reinnehmen. Dann ist zumindest den betroffenen Usern geholfen. |
Dann rein damit- danke! |
Der aktuelle Master möchte nicht mehr mit meiner Test-Datenbank reden. Hier die Datenbank zum Reproduzieren evcc.db.zip
|
@naltatis diese Datenbank wurde aber nicht von evcc (konkret gorm) geschrieben, oder? Die fehlenden Werte für den Charge Meter dürften meiner Ansicht nach nie als NULL in der DB landen, da wir immer einen float64 für das Feld |
Die Datenbank ist schon sehr alt. Das mit den null Werten haben wir irgendwann mal geändert. |
Ich hab da gerade mal reingeschaut. Das |
)" This reverts commit e22564d.
Da hier nach der Häufigkeit gefragt wurde: Bei mir gibt es externe Netzschwankungen (60x in den letzten 18 Monaten), kommen von der 380kV- und 110kV- Netzebene. Dann schaltet die Powerwall das Netz weg und ca. 7 Sekunden danach auf Backup und dann ist der Raspi mit evcc erstmal hart abgewürgt. Also kein rein theoretisches Szenario. |
fix #8788
WIP. Marking as draft.