From af83805c348d3a561b5ed6dd8936c92d478a0fe6 Mon Sep 17 00:00:00 2001 From: Tobi G Date: Tue, 1 Sep 2026 17:31:33 +0200 Subject: [PATCH] Fahrtstrecke auf 100 m: CAN als Anker, GNSS als Nachkommastelle (2026.9.1.10) Zwei echte Fahrten am 01.09.2026 haben die Datenform geliefert, auf die 2026.9.1.5 gewartet hat. strecke_aus_zaehler() summiert die Zuwaechse des geraeteeigenen Kilometerzaehlers und behandelt einen Ruecksprung als Ruecksetzung. Weder der rohe Zaehler noch die Teilstrecken taugen allein: der Zaehler verliert bei einer Ruecksetzung alles Vorherige (Fahrt 1: 0,415 km), die Teilstrecken verlieren einzelne Datensaetze (Fahrt 2: 4 von 50 null, 0,2 km zu wenig). An jedem Datensatz sind beide identisch - sie gehen nur verschieden kaputt. _gnss_verfeinern() ersetzt die grobe Strecke nur, wenn die feine innerhalb der Rundungsunschaerfe des Ankers liegt (GNSS_TOLERANZ_KM = 1.0; beide Enden des CAN-Werts sind auf ganze Kilometer gerundet). Sonst behaelt der Fahrzeugwert recht. VERIFIZIERT gegen die echten Fahrten: - Fahrt 1 (mit Ruecksetzung): 6,958 km, Google Maps sagt 7,1 - Fahrt 2 (sauber): 6,816 km - live: 'Strecke auf 6.896 km verfeinert (Kilometerstand sagte 7.0 km)' - drei aeltere Fahrten korrekt abgelehnt (209178 km gegen 21 km Anker) - sechs Randfaelle: zwei Ruecksetzungen, ein Punkt, leer, unlesbare Werte Nebenbei bestaetigt: NACHLAUF_S = 900 (Zuendung aus 16:33:39, Trip-Signal aus 16:48:44, gespeichertes Ende 16:33:36); der Rueckwaertssprung-Schutz griff live beim Fahrzeugwechsel (-147361 km verworfen, Fahrt blieb offen); die RPM-Zuendung prellt nicht; das Bewegungstor meldet wieder Stillstand. Co-Authored-By: Claude Opus 5 --- AGENTS.md | 80 +++++++++++++++++- companion-app/src/api/types.ts | 5 +- .../audi_dashboard/frontend/app/bundle.json | 2 +- .../audi_dashboard/frontend/app/bundle.zip | Bin 265713 -> 265700 bytes .../audi_dashboard/manifest.json | 2 +- custom_components/audi_dashboard/screening.py | 56 ++++++++++++ custom_components/audi_dashboard/verlauf.py | 45 ++++++++++ 7 files changed, 186 insertions(+), 4 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 29cb513..e075e4b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,7 @@ # AGENTS.md — Project state, review findings, open items, and working rules -**Last updated: 2026-09-01** (Nachlauf-Abzug nur mit zugeordnetem `TRIP_SENSOR`, `2026.9.1.9`; +**Last updated: 2026-09-01** (Fahrtstrecke auf 100 m: CAN als Anker, GNSS als Nachkommastelle, +`2026.9.1.10`, Abschnitt BE. Davor: Nachlauf-Abzug nur mit zugeordnetem `TRIP_SENSOR`, `2026.9.1.9`; davor „502" beim Neustart entschärft, OTA-Bündel auf `2026.9.1.8` nachgezogen, Abschnitt BC. Davor: „Geparkt seit" kommt von der Zündung und wird nach einem Neustart aus der Aufzeichnung nachgeholt, Manifest `2026.9.1.7`, @@ -6728,6 +6729,83 @@ Nachgewiesen: Manifest, `bundle.json` und die ausgelieferte Zip tragen alle `202 denselben SHA-256 `c2f9192e…`; `tsc --noEmit` sauber, 165/165 Tests grün, Panel als **Modul** geparst (Abschnitt AQ), `audi_ha_test` fehlerfrei gestartet. +## BE. Die Fahrtstrecke auf 100 Meter: CAN als Anker, GNSS als Nachkommastelle (2026.9.1.10) + +Zwei echte Fahrten am 01.09.2026 haben die Datenform geliefert, auf die Abschnitt BA gewartet hat. +Beide Male schließt die Rechnung, und beide Male auf eine andere Weise — deshalb war das Warten +richtig. + +### Was gemessen wurde + +| Quelle | Fahrt 1 (13:42, mit Rücksetzung) | Fahrt 2 (16:20, sauber) | +|---|---|---| +| **Zählerzuwächse mit Rücksprungbehandlung** | **6,958** | **6,816** | +| GPS-Spur | 7,01 | 6,74 | +| Geschwindigkeit integriert | 6,91 | 6,70 | +| Teilstrecken summiert | 6,928 | 6,614 | +| CAN-Kilometerstand (ganze km) | 7 | 6 | +| Google Maps | 7,1 | — | + +### Der Zähler, nicht die Teilstrecken — und warum ich zweimal falsch lag + +Erst hielt ich den **Gesamtzähler** für robuster (Abschnitt BA), nach Fahrt 1 die **Teilstrecken**, +nach Fahrt 2 wieder den Zähler. Die Auflösung: es sind keine zwei Messungen. An jedem einzelnen +Datensatz gilt `Teilstrecke == Differenz des Zählers`, auf drei Nachkommastellen genau. Sie +unterscheiden sich nur darin, **wie sie kaputtgehen**: + +- Der **Zähler** verliert bei einer Rücksetzung alles Vorherige (Fahrt 1: 0,415 km). +- Die **Teilstrecken** verlieren einzelne Datensätze — in Fahrt 2 waren **4 von 50 null**, obwohl + gefahren wurde, Summe dadurch 0,2 km zu niedrig. + +`strecke_aus_zaehler()` summiert deshalb die **Zuwächse** und behandelt einen Rücksprung als +Rücksetzung (der neue Wert ist dann selbst der Zuwachs). Damit fällt beides weg: unempfindlich +gegen Rücksetzungen, und keine verlorenen Datensätze. Ohne Rücksetzung degeneriert es zu Ende +minus Anfang. + +Der Eigentümer hat dazu angemerkt, dass im Endzustand alle Fahrten wie Fahrt 2 verlaufen — er +steckt den Dongle nur in der Entwicklungsphase um. Die Rücksprungbehandlung ist damit kein +Kernstück mehr, sondern ein billiges Netz für Batteriewechsel und Werkstattbesuch. + +### Woher die Rücksetzung mitten in der Fahrt kam + +Um 13:43:20, bei 65 km/h und laufendem Motor, ging `total_calculated_mileage` von 0,415 auf 0. Im +**selben Datensatz** zählte `total_vehicle_mileage_read_from_can` zum ersten Mal hoch +(61809 → 61810), ebenso `distance_traveled_since_codes_cleared`. Kein Verbindungsabbruch, kein +Neustart, Bordspannung stabil bei 14,4 V — das Gerät übernahm offenbar seinen konfigurierten +Startwert (`11807 = 0`), als der CAN-Kilometerstand erstmals gültig wurde. Nicht bewiesen; ein +Prüfstein wäre, `11807` auf den echten Kilometerstand zu setzen und zu sehen, ob der Sprung dann +dorthin geht statt auf null. + +### Die Verfeinerung ersetzt nicht, sie prüft + +`_gnss_verfeinern()` setzt `distance_km` nur dann auf den feinen Wert, wenn er **innerhalb der +Rundungsunschärfe des Ankers** liegt (`GNSS_TOLERANZ_KM = 1.0` — beide Enden des CAN-Werts sind auf +ganze Kilometer gerundet). Sonst behält der Fahrzeugwert recht und es bleibt bei `"odometer"`. + +Live nachgewiesen, beides im selben Lauf: + +- Fahrt 2: `Strecke auf 6.896 km verfeinert (Kilometerstand sagte 7.0 km)`, `km_quelle` jetzt + `"odometer+gnss"`. +- Drei ältere Fahrten aus der Zeit vor der GNSS-Umstellung: `GNSS-Strecke 209178.0 km weicht um + mehr als 1.0 km vom Kilometerstand (21.0 km) ab - der Fahrzeugwert bleibt stehen`. Genau dafür + ist die Schranke da. + +### Nebenbei bestätigt + +- **`NACHLAUF_S = 900` stimmt.** Fahrt 2: Zündung aus 16:33:39, Trip-Signal aus 16:48:44 — 905 s + Abstand. Das gespeicherte Fahrtende steht auf **16:33:36**, also drei Sekunden neben der + tatsächlichen Zündung. +- **Der Rückwärtssprung-Schutz griff live** und genau wie vorhergesagt: Fahrt 1 lief über einen + Fahrzeugwechsel (209177 → 61816), `-147361 km` wurden verworfen, die Fahrt blieb „offen". +- **Die RPM-Zündung prellt nicht** — zwei echte Wechsel über beide Fahrten, kein Paar unter zwei + Sekunden. `Avg Const = 10` (1 s) bleibt. +- **Das Bewegungstor funktioniert** seit `138 = 10` (Beschleunigungssensor + CAN Speed statt GNSS): + `movement` meldet wieder Stillstand, vorher hing es tagelang auf „on". + +Verifiziert: `strecke_aus_zaehler()` gegen beide echten Fahrten plus sechs Randfälle +(zwei Rücksetzungen, ein Punkt, leer, unlesbare Werte); `py_compile`, `tsc --noEmit` sauber, +Bündel und Manifest auf `2026.9.1.10` mit demselben SHA-256. + ## Working conventions (observed — keep them) - German is the project language: identifiers, comments, commits, UI texts. Exceptions: diff --git a/companion-app/src/api/types.ts b/companion-app/src/api/types.ts index 54f0335..eea4d2d 100644 --- a/companion-app/src/api/types.ts +++ b/companion-app/src/api/types.ts @@ -40,7 +40,10 @@ export interface Fahrt { duration_s: number; distance_km: number | null; /** "odometer" ist der einzige Wert, den das Backend je erzeugt (§7.1). */ - km_quelle: "odometer" | "gps" | null; + /* "odometer+gnss": der Kilometerstand des Fahrzeugs als Anker, die + Nachkommastelle vom GNSS-Zaehler des Geraets - siehe screening.py. + "sensor"/"manuell" kommen aus dem Rueckblick bzw. von Hand. */ + km_quelle: "odometer" | "odometer+gnss" | "gps" | "sensor" | "manuell" | null; odo_start: number | null; odo_end: number | null; art: Fahrtart; diff --git a/custom_components/audi_dashboard/frontend/app/bundle.json b/custom_components/audi_dashboard/frontend/app/bundle.json index 0312e64..777907f 100644 --- a/custom_components/audi_dashboard/frontend/app/bundle.json +++ b/custom_components/audi_dashboard/frontend/app/bundle.json @@ -1 +1 @@ -{"version":"2026.9.1.9","sha256":"bdf895932e11e336474b4441a66912dd273e5f22b3bbf82e9b1cd29d6447a652","bytes":265713,"gebaut":"2026-09-01T10:24:49Z"} \ No newline at end of file +{"version":"2026.9.1.10","sha256":"ea987e424774f4d2d0e7ea87f38f4b265f0605730515cacfd7193b2bb309b647","bytes":265700,"gebaut":"2026-09-01T15:30:31Z"} \ No newline at end of file diff --git a/custom_components/audi_dashboard/frontend/app/bundle.zip b/custom_components/audi_dashboard/frontend/app/bundle.zip index 821e85828b58955e857d4fd701d7667269bb5966..c4d2efc4e7bbf0c5c6c204dec683f3cc31892489 100644 GIT binary patch delta 47565 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 EU&g7}j{pDw delta 47453 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 Y-U9s*A^1ScfL(|XBv8DtU&bK+59u~DzW@LL diff --git a/custom_components/audi_dashboard/manifest.json b/custom_components/audi_dashboard/manifest.json index 47ec707..d2bdaa4 100644 --- a/custom_components/audi_dashboard/manifest.json +++ b/custom_components/audi_dashboard/manifest.json @@ -1,7 +1,7 @@ { "domain": "audi_dashboard", "name": "Audi Dashboard", - "version": "2026.9.1.9", + "version": "2026.9.1.10", "documentation": "https://gitea.nothaft.cloud/paul/audi-app/src/branch/main/README.md", "issue_tracker": "https://gitea.nothaft.cloud/paul/audi-app/issues", "codeowners": ["@paul"], diff --git a/custom_components/audi_dashboard/screening.py b/custom_components/audi_dashboard/screening.py index 187538c..e94207a 100644 --- a/custom_components/audi_dashboard/screening.py +++ b/custom_components/audi_dashboard/screening.py @@ -32,9 +32,11 @@ import logging from typing import TYPE_CHECKING from .verlauf import ( + GNSS_TOLERANZ_KM, UNPLAUSIBLE_KMH, durchschnitt_kmh, hoechstwert_im_fenster, + strecke_aus_zaehler, naechster_wert, route_aus_verlauf, verbrauch_aus_literstaenden, @@ -159,6 +161,14 @@ async def durchfuehren(k: Koordinator) -> None: ) fahrt["avg_speed_kmh"] = schnitt + # Erst nach den Kilometerstaenden: die Verfeinerung braucht die grobe + # Strecke als Anker und laeuft nur auf Fahrten, die sie schon haben. + gnss_sensor = k.zuordnung.werte.GNSS_KM_SENSOR + if gnss_sensor: + for fahrt in fahrten: + if fahrt.get("km_quelle") == "odometer": + await _gnss_verfeinern(k, gnss_sensor, fahrt) + tempo_sensor = k.zuordnung.werte.GESCHWINDIGKEIT_SENSOR if tempo_sensor: ohne_vmax = [f for f in fahrten if f.get("vmax_kmh") is None] @@ -223,6 +233,52 @@ async def _fahrt_screenen(k: Koordinator, km_sensor: str, fahrt: dict) -> None: fahrt.update(aenderungen) +async def _gnss_verfeinern(k: Koordinator, gnss_sensor: str, fahrt: dict) -> None: + """Ersetzt die auf ganze Kilometer gerundete Strecke durch die metergenaue + des Geraets - aber nur, wenn beide zueinander passen. + + Der Kilometerstand des Fahrzeugs bleibt der Anker: er ist der Tacho, er + driftet nicht, und er ist die Zahl, die der Fahrer im Cockpit sieht. Nur + loest er eben ganze Kilometer auf. Der GNSS-Zaehler des Geraets loest auf + einen Meter auf, kann aber driften und Empfang verlieren. + + Deshalb keine Ersetzung, sondern eine Pruefung: die feine Zahl gilt, solange + sie innerhalb der Rundungsunschaerfe des groben Ankers liegt + (GNSS_TOLERANZ_KM). Liegt sie darueber, hat der Anker recht und die feine + Zahl wird verworfen - dann fehlte Empfang, oder der Zaehler ist gedriftet. + + Laeuft nur auf Fahrten mit km_quelle == \"odometer\", also genau einmal je + Fahrt: danach steht dort \"odometer+gnss\" (oder es blieb bei \"odometer\", + wenn nichts Brauchbares vorlag, und ein spaeterer Lauf versucht es erneut, + sobald mehr Verlauf da ist).""" + start = _als_zeit(fahrt.get("ts_start")) + ende = _als_zeit(fahrt.get("ts_end")) + grob = fahrt.get("distance_km") + if start is None or ende is None or grob is None: + return + + punkte = await verlauf_lesen(k.hass, gnss_sensor, start, ende) + fein = strecke_aus_zaehler(punkte) + if fein is None: + return + + if abs(fein - grob) > GNSS_TOLERANZ_KM: + _LOGGER.info( + "Fahrt %s: GNSS-Strecke %s km weicht um mehr als %s km vom " + "Kilometerstand (%s km) ab - der Fahrzeugwert bleibt stehen", + fahrt.get("trip_id"), fein, GNSS_TOLERANZ_KM, grob, + ) + return + + aenderungen = {"distance_km": fein, "km_quelle": "odometer+gnss"} + await k.ablage.fahrt_aktualisieren(fahrt["trip_id"], aenderungen) + fahrt.update(aenderungen) + _LOGGER.info( + "Fahrt %s: Strecke auf %s km verfeinert (Kilometerstand sagte %s km)", + fahrt.get("trip_id"), fein, grob, + ) + + async def _position_screenen( k: Koordinator, lat_sensor: str, lon_sensor: str, fahrt: dict ) -> None: diff --git a/custom_components/audi_dashboard/verlauf.py b/custom_components/audi_dashboard/verlauf.py index 395108e..abbdc03 100644 --- a/custom_components/audi_dashboard/verlauf.py +++ b/custom_components/audi_dashboard/verlauf.py @@ -272,6 +272,51 @@ def route_aus_verlauf( return punkte if len(punkte) >= 2 else None +# Wie weit die GNSS-Strecke vom Kilometerstand des Fahrzeugs abweichen darf. +# +# Beide Enden des Kilometerstands sind auf ganze Kilometer gerundet (am +# echten Fahrzeug nachgemessen: 147 Schritte von exakt 1,0 km, kein einziger +# feinerer). Die wahre Strecke liegt damit irgendwo in einem Fenster von +# +/- 1 km um die Differenz. Was darin liegt, ist mit dem Fahrzeugwert +# vereinbar; was darueber hinausgeht, ist es nicht - dann stimmt etwas nicht, +# und der Fahrzeugwert behaelt recht. +GNSS_TOLERANZ_KM = 1.0 + + +def strecke_aus_zaehler(punkte: list[Verlaufspunkt]) -> float | None: + """Gefahrene Strecke aus einem laufenden Kilometerzaehler des Geraets. + + Summiert die Zuwaechse statt einfach Ende minus Anfang zu rechnen, weil der + Zaehler zurueckspringen kann. Ein Ruecksprung ist kein Rueckwaertsfahren, + sondern eine Ruecksetzung - der neue Wert ist dann selbst der Zuwachs seit + der Ruecksetzung, alles davor wurde bereits gezaehlt. + + Am 01.09.2026 an zwei echten Fahrten gemessen: + + * Fahrt 1, mit Ruecksetzung mitten in der Fahrt (das Geraet uebernahm + seinen konfigurierten Startwert 0, als der CAN-Kilometerstand zum ersten + Mal hochzaehlte): 0,415 km vor der Ruecksetzung, 6,543 km danach - macht + 6,958 km. Google Maps sagt 7,1 km fuer dieselbe Strecke. Ohne die + Ruecksprungbehandlung waeren es 6,543 km gewesen, also 0,4 km zu wenig. + * Fahrt 2, ohne Ruecksetzung: 6,816 km. Dort degeneriert die Summe zu + Ende minus Anfang, wie es sein soll. + + Bewusst NICHT ueber die Teilstrecken je Datensatz (segment_mileage), die + dasselbe Geraet mitliefert: die verlieren einzelne Datensaetze. In Fahrt 2 + waren 4 von 50 Teilstrecken null, obwohl gefahren wurde, und die Summe lag + dadurch 0,2 km zu niedrig. Der Zaehler zaehlt ueber solche Aussetzer hinweg. + + None, wenn weniger als zwei Zahlenwerte vorliegen.""" + werte = [zahl(wert) for _ts, wert in punkte] + werte = [w for w in werte if w is not None] + if len(werte) < 2: + return None + strecke = 0.0 + for vorher, jetzt in zip(werte, werte[1:]): + strecke += jetzt if jetzt < vorher else jetzt - vorher + return round(strecke, 3) + + def hoechstwert_im_fenster( verlauf: list[Verlaufspunkt], start: datetime.datetime,