Pending nur zeigen, wenn es sich unterscheidet (2026.9.3.11)

flespi legt beim Schreiben das ganze Objekt als pending ab. In der Kachel stand
deshalb "Sleep Mode 102: 2 -> 2 unterwegs", obwohl sich an type nichts aendert.
vergleichen() zeigt offen jetzt nur noch bei echtem Unterschied.

Gefunden an der ersten Fahrt mit echten Daten. Dieselbe Fahrt hat zwei weitere
Befunde geliefert, in AGENTS.md festgehalten: die Zuendung steht auf "an", weil
das der letzte je gesendete Wert ist (das Aus kam nie an) - der Fall, fuer den
"Fahrt beenden" gebaut ist; und address=connection hat 30 Minuten durchgehende
Verbindung nicht zum Zustellen genutzt, pending steht weiter.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-03 20:44:45 +02:00
parent 4d4890034a
commit d4ba3bce7a
3 changed files with 49 additions and 2 deletions
+39
View File
@@ -9112,3 +9112,42 @@ nächste Fahrt.
kennt die zuletzt hinzugekommenen Dienste nicht (`fahrt_jetzt_beenden`,
`zugang_setzen`, `csv_importieren`, jetzt auch `dongle_lesen`). Sie erscheinen in
den Entwicklerwerkzeugen ohne Klarnamen.
### Nachtrag (2026.9.3.11): erste echte Fahrt danach, und zwei Befunde daraus
**Die Zündung stand auf „an", obwohl die Fahrt seit einer Stunde zu Ende war.**
Kein Fehler der Anzeige, sondern die Datenlage: Home Assistant lässt Zustände
nicht verfallen. Gemessen an der Aufzeichnung:
| | |
|---|---|
| Fahrtbeginn (Zündung an) | 17:29:04 UTC |
| letzte Meldung des Geräts | **17:59:33 UTC**, Zündung `on`, Tempo 1 km/h |
| danach | nichts mehr |
„an" heisst also „das Letzte, was ankam, war an" - das Zündungs-Aus hat der
Dongle nie herausbekommen (kein Empfang beim Abstellen, oder es liegt noch in
ihm). Unsere Erkennung wartet auf ein Aus-**Ereignis** und nicht darauf, dass ein
Wert „richtig" wird; es kommt keins, also bleibt die Fahrt offen. **Genau der
Fall, für den „Fahrt beenden" (Abschnitt BX) gebaut ist** - und der erste, bei
dem er an echten Daten gebraucht wurde.
Der Kilometerstand sprang in derselben Fahrt von 209504 auf 21332 - wieder ein
Fahrzeugwechsel des Geräts. Diese Fahrt verliert ihre Kilometer deshalb an der
Rückwärtssprung-Prüfung, wie schon `t-0591dace4194` am 02.09.
**`address: "connection"` hat 30 Minuten Verbindung nicht genutzt.** Das Gerät
war von 17:29 bis 17:59 durchgehend am Melden, und `pending` steht danach immer
noch (`status 33`; eine erledigte Einstellung trägt `status 1`). Zustellen
passiert also nicht bei jedem Datensatz, sondern offenbar nur bei einem echten
Verbindungsaufbau - oder das Gerät muss die Konfiguration selbst anfragen. **Noch
offen**, und die nächste Fahrt ist der Prüfstein: bleibt `pending` auch dann
stehen, ist die Zustellart die falsche.
**Ein echter Anzeigefehler, gefunden weil die Daten zum ersten Mal echt waren:**
flespi legt beim Schreiben das **ganze** Objekt als `pending` ab, also stand auch
`Sleep Mode 102: 2 → 2 unterwegs` da, obwohl sich an `type` nichts ändert.
`vergleichen()` zeigt `offen` jetzt nur noch, wenn es sich vom aktuellen Wert
unterscheidet. Gegen die echten Daten nachgewiesen (`flespi.py` einzeln geladen,
ohne Home Assistant): `Sleep Timeout (103): 10 → 15 unterwegs [wir: 15]`,
`Sleep Mode (102): 2` ohne Zusatz.
+9 -1
View File
@@ -311,7 +311,15 @@ def vergleichen(
"einheit": angabe["einheit"],
"geraet": geraet,
# Was noch zum Gerät unterwegs ist - None, wenn nichts aussteht.
"offen": offen.get(schluessel),
# flespi legt beim Schreiben das GANZE Objekt als pending ab,
# also stünde auch jedes unveränderte Nachbarfeld als
# "unterwegs" da ("Sleep Mode 2 -> 2"). Gezeigt wird deshalb
# nur, was sich tatsächlich unterscheidet.
"offen": (
offen.get(schluessel)
if schluessel in offen and offen.get(schluessel) != geraet
else None
),
"unser": unser,
"abweichung": abweichung,
}
@@ -1,7 +1,7 @@
{
"domain": "audi_dashboard",
"name": "Audi Dashboard",
"version": "2026.9.3.10",
"version": "2026.9.3.11",
"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"],