Keine Phantomfahrt beim Neustart, Tankstand auf wert_bei() (2026.9.1.1)
zuendung_geaendert() prueste den neuen Zustand, aber nicht den alten. Beim Hochfahren taucht die Zuendungs-Entitaet neu auf; das kommt als Wechsel mit old_state = None an. Steht das Trip-Signal ohnehin auf "an" - beim FMM003 der Normalfall -, las der Beobachter das als "Zuendung ging gerade an" und legte eine Fahrt an, deren Beginn schlicht der Zeitpunkt des Neustarts war. Daher der Eintrag 30.08. 19:43 bis 31.08. 08:37, 12,9 h, 0 km. Die Pruefung ist "if alt is None: return" - dieselbe, die _kilometerstand_geaendert() im Koordinator seit jeher hat. Eine wirklich laufende Fahrt geht nicht verloren: deren Beginn liegt im Store und wird von nach_neustart_fortsetzen() aufgenommen. Nachgewiesen: zwei Neustarts hintereinander bei trip_status = on und leerem Zwischenstand, null "Fahrt gestartet"-Zeilen und fahrt_start_ts bleibt null. Vorher entstand unter genau diesen Bedingungen jedes Mal eine. _verbrauch_screenen() liest die Literstaende jetzt ebenfalls mit wert_bei() statt naechster_wert() - dieselbe Doppelbewertung gegenueber historienimport.py wie beim Kilometerstand, eine Ebene tiefer. naechster_wert() bleibt bei Breiten-/Laengengrad: eine Position ist kein Zaehler. Auf Anweisung des Eigentuemers ausserdem die zwoelf Fahrten mit distance_km == 0 geloescht (ueber den Dienst fahrt_loeschen, nach einem backup_jetzt) und "Open items" in AGENTS.md aufgeraeumt: vier Karteileichen des MQTT-Wegs entfernt, Cloudflare-Zugang und iPhone-Signatur als erledigt gebucht, Befund 07 als Nutzereingabe geschlossen, QR-Scanner auf den halben Umfang gekuerzt. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -91,6 +91,23 @@ async def zuendung_geaendert(k: Koordinator, neu: str | None, alt: str | None) -
|
||||
if neu not in ("on", "off"):
|
||||
return
|
||||
|
||||
# Kein Vorzustand heißt: die Entität taucht gerade erst auf - beim
|
||||
# Hochfahren von Home Assistant oder nach einem Neuladen der Integration.
|
||||
# Das ist kein Wechsel der Zündung, sondern eine Registrierung.
|
||||
#
|
||||
# Ohne diese Prüfung las der Beobachter das als "Zündung ging gerade an"
|
||||
# und legte eine Fahrt an, deren Beginn schlicht der Zeitpunkt des
|
||||
# Neustarts war. Steht das Trip-Signal ohnehin auf "an", entstand so bei
|
||||
# JEDEM Neustart eine Phantomfahrt - daher der Eintrag vom 30.08.2026,
|
||||
# 19:43 bis 08:37 des Folgetags, 12,9 Stunden, 0 km.
|
||||
#
|
||||
# Eine wirklich laufende Fahrt geht dabei nicht verloren: deren Beginn
|
||||
# liegt im Store und wird von nach_neustart_fortsetzen() aufgenommen.
|
||||
# _kilometerstand_geaendert() im Koordinator prüft aus demselben Grund
|
||||
# schon immer auf einen Vorzustand.
|
||||
if alt is None:
|
||||
return
|
||||
|
||||
# Eine noch wartende Ende-Bestätigung aus einer vorherigen Änderung
|
||||
# abbrechen - das ist der Mechanismus hinter der Pausenregel.
|
||||
k.warte_ende_ab_abbrechen()
|
||||
|
||||
Reference in New Issue
Block a user