Parkbeginn nach einem Neustart aus der Aufzeichnung holen (2026.9.1.7)

Der Zuhoerer bekommt den Zuendungswechsel nur mit, wenn Home Assistant laeuft.
Ging die Zuendung aus, waehrend es unten war - ueber Nacht der Normalfall -,
feuerte nichts, und die Registrierung beim Hochfahren wird bewusst ignoriert
(sonst begaenne die Parkdauer bei jedem Neustart neu). Ergebnis war
"Parkdauer unbekannt", obwohl der Zeitpunkt im recorder steht.

_parkbeginn_nachholen() laeuft einmal in _nach_start und schlaegt ihn nach -
nur, wenn kein Wert gespeichert ist und die Zuendung auf "aus" steht.
Genommen wird der letzte echte Wechsel an -> aus im Fenster von sieben Tagen;
gibt es keinen, bleibt es bei "unbekannt" statt den Rand des Fensters zu
erfinden.

Wieder mit der Meldezeit desselben Datensatzes statt seiner Ankunftszeit -
dieselbe Begruendung wie in verlauf.geraetezeit(), hier rueckblickend.

VERIFIZIERT in audi_ha_test, der Test trennt genau die beiden Zeiten:
Speicher geleert, neu gestartet -> "Parkbeginn aus der Aufzeichnung
nachgeholt: 09:04:57". Das ist die Geraetezeit; angekommen war der Datensatz
um 09:44. Ein zweiter Neustart ruehrt den Wert nicht an, schreibt keine Zeile
und erzeugt keinen Fehler.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-01 11:56:53 +02:00
parent 553e128066
commit d1e3f7230c
3 changed files with 97 additions and 3 deletions
+20 -1
View File
@@ -1,6 +1,7 @@
# AGENTS.md — Project state, review findings, open items, and working rules
**Last updated: 2026-09-01** („Geparkt seit" kommt von der Zündung, Manifest `2026.9.1.6`,
**Last updated: 2026-09-01** („Geparkt seit" kommt von der Zündung und wird nach einem Neustart
aus der Aufzeichnung nachgeholt, Manifest `2026.9.1.7`,
Abschnitt BB. Davor: GNSS-Streckenrollen vorbereitet, `2026.9.1.5`, Abschnitt BA.
Davor: Fahrtende ohne den 900-s-Nachlauf des Geräts, Manifest `2026.9.1.4`,
siehe Abschnitt AZ. Davor am selben Tag: Fahrtbeginn und -ende kommen vom Gerät (`MELDEZEIT_SENSOR`),
@@ -6629,6 +6630,24 @@ einer Gerätezeit von vor 40 Minuten → `09:04:57` statt `jetzt`.
Companion-App gleichgezogen (Paritätsregel): `profilAdapter` um `geparktSeit` erweitert,
`standortZustand()` braucht die Fahrtenliste nicht mehr. `tsc --noEmit` sauber, 165/165 Tests grün.
### Nachtrag (2026.9.1.7): der Parkbeginn überlebt jetzt auch einen Neustart über Nacht
Der Zuhörer bekommt den Wechsel nur mit, wenn Home Assistant läuft. Ging die Zündung aus, während
es unten war — über Nacht der Normalfall —, feuerte nichts, und die Registrierung beim Hochfahren
wird ja bewusst ignoriert. Ergebnis: „Parkdauer unbekannt", obwohl der Zeitpunkt im recorder steht.
`_parkbeginn_nachholen()` läuft einmal in `_nach_start` und schlägt ihn dort nach — **nur**, wenn
kein Wert gespeichert ist und die Zündung gerade auf „aus" steht. Genommen wird der letzte echte
Wechsel **an → aus** im Fenster von sieben Tagen; gibt es keinen, bleibt es bei „unbekannt", statt
den Rand des Fensters zu erfinden.
Und wieder mit der **Meldezeit desselben Datensatzes**, nicht mit seiner Ankunftszeit — dieselbe
Begründung wie in `geraetezeit()`, hier nur rückblickend statt live.
Live nachgewiesen, und der Test trennt genau die beiden Zeiten: Speicher geleert, neu gestartet →
`Parkbeginn aus der Aufzeichnung nachgeholt: 09:04:57`. Das ist die Gerätezeit; angekommen war der
Datensatz um 09:44. Ein zweiter Neustart rührt den Wert nicht an und schreibt keine Zeile.
### Genauigkeit hängt am Operanden des Geräts
Der Zeitpunkt ist nur so genau, wie das Gerät ihn meldet. Stand der Operand des