From 255a593b50e163ac7ed490c7a369570b7f368c7b Mon Sep 17 00:00:00 2001 From: Tobi G Date: Sat, 5 Sep 2026 17:12:51 +0200 Subject: [PATCH] Ein Update-Knopf, Modell als Auswahlfeld, abgestellt schliesst fahrend aus - Die Update-Kachel hat genau einen Knopf am Ende. Er traegt in jedem Zustand den naechsten faelligen Schritt (suchen, installieren, Neustart, Neuladen); Beschriftung und Fuellung wechseln mit. Die Abschnitte darueber behalten ihre Werte und verlieren nur ihre Knoepfe. - Abstand unter der Trennlinie von 28 auf 16 px: das padding-top verhindert das Kollabieren des margin der Werteliste, also zaehlt jetzt nur noch das padding. - Modell ist in der App ein Auswahlfeld statt eines Textfelds, wie im Panel. Die Liste liegt als Zweitschrift in daten/fahrzeugmodelle.ts; fahrzeugmodelle.test.ts liest die Panel-Quelle ein und vergleicht sie Eintrag fuer Eintrag, damit die beiden nicht auseinanderlaufen. - Faehrt der Wagen, sagen Uebersicht und Sicherheitsseite das, statt "sicher abgestellt" zu behaupten. Die Zuendung meldet der Dongle in Sekunden, Tuer- und Schlossmeldungen kommen verzoegert - die schnellere Quelle hat Vorrang, weil sonst das Wort nicht stimmt. - tankerkennung: der Tiefststand wird vor dem Anlegen gesetzt. Ein gepufferter Schwung Datensaetze legte sonst denselben Tankvorgang zweimal an, weil der zweite Zustandswechsel waehrend des Wartens noch den alten Tiefststand las (04.09.2026, 29,8 l und 29,7 l). - flespi: nach dem Leeren des Zwischenspeichers wird nur abgeglichen, wenn ein Geraetewert vorliegt. Sonst ueberschrieb der Waechterfehler den frisch gelesenen Stand in der Kachel. Co-Authored-By: Claude Opus 5 --- AGENTS.md | 139 +++++++++++++++++- .../src/daten/fahrzeugmodelle.test.ts | 42 ++++++ companion-app/src/daten/fahrzeugmodelle.ts | 38 +++++ companion-app/src/screens/Einstellungen.tsx | 118 +++++++++------ companion-app/src/screens/Fahrzeugstatus.tsx | 17 ++- companion-app/src/screens/Standort.tsx | 2 +- companion-app/src/screens/Uebersicht.tsx | 34 ++++- companion-app/src/stile/screens.css | 20 +++ custom_components/audi_dashboard/flespi.py | 28 +++- .../audi_dashboard/frontend/app/bundle.json | 2 +- .../audi_dashboard/frontend/app/bundle.zip | Bin 324629 -> 324134 bytes .../frontend/audi-dashboard-app.js | 84 +++++++++-- .../audi_dashboard/manifest.json | 2 +- .../audi_dashboard/tankerkennung.py | 16 +- 14 files changed, 469 insertions(+), 73 deletions(-) create mode 100644 companion-app/src/daten/fahrzeugmodelle.test.ts create mode 100644 companion-app/src/daten/fahrzeugmodelle.ts diff --git a/AGENTS.md b/AGENTS.md index e16fa0e..8d6c30f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,6 @@ # AGENTS.md — Project state, review findings, open items, and working rules -**Last updated: 2026-09-04** (Tankstelle zweizeilig und antippbar, die Belegkarte sagt bei +**Last updated: 2026-09-05** (Tankstelle zweizeilig und antippbar, die Belegkarte sagt bei fehlender Position die Wahrheit statt einen toten Knopf zu zeigen, der Regler bekommt einen Speichern-Knopf, und die Share-Erweiterung trug eine andere Versionsnummer als die App; dazu die Kopfmarke statt der Firmierung des Betreibers und ein @@ -7633,6 +7633,143 @@ verwerfen - was sie fangen soll, liegt Jahrzehnte daneben. An acht Faellen geprueft: Epoche, beide ID-Verwechslungen und 366 Tage verworfen; jetzt, 2 Tage und 364 Tage angenommen. +## DA. Ein Knopf statt drei, abgestellt schließt fahrend aus, und zwei Tankvorgänge aus einem Datensatz (2026.9.5.35) + +### Die Update-Kachel hat genau einen Knopf + +Rückfrage des Eigentümers: *„update installieren ist ein separater button unter +integration. warum nicht den update suchen button dafür verwenden und nur die +optik und schrift zur installation anpassen?"* — berechtigt: über dem Suchknopf +stand je nach Zustand ein zweiter, gleich aussehender Knopf. + +Der eine Knopf am Kachelende trägt jetzt in jedem Zustand den **nächsten +fälligen Schritt**, Beschriftung und Füllung wechseln mit: + +| Zustand | Knopf | +|---|---| +| läuft gerade | Kreisel im Knopf, „Installiere …" / „Home Assistant startet neu …" / „Prüfe …" | +| installiert, Neustart nötig | „Installation abschließen und neu starten" (gefüllt) | +| installiert, nur Oberfläche (Panel) | „Seite neu laden" (gefüllt) | +| Update verfügbar | „Update installieren" (gefüllt) | +| sonst | „Auf Update prüfen" | + +Die Reihenfolge ist eine **Rangfolge, keine Auswahl**: liegt ein Neustart an, +ist das der nächste Schritt, egal was sonst bereitliegt. Ein gleichzeitiges +Integrations- UND App-Update gibt es dabei praktisch nicht — `buendelPasst()` +bietet ein Bündel erst an, wenn es zur laufenden Serverfassung passt, also nach +der Integration. + +Die Abschnitte darüber behalten ihre Werte- und Meldungszeilen und verlieren nur +ihre Knöpfe. Der Abstand unter der Trennlinie war 28 px (16 px `padding` plus +12 px `margin` der Werteliste, die wegen des `padding` **nicht** kollabieren) — +`.dm-kachelabschnitt > :first-child { margin-top: 0 }` lässt nur noch das +`padding` zählen. + +### Modell ist auch in der App ein Auswahlfeld + +Vom Eigentümer bemerkt: *„einrichten/modell ist in der app kein dropdown"*. Das +Panel hatte seit jeher ein `). + Bis zum 05.09.2026 stand hier ein einfaches Eingabefeld, vom + Eigentümer bemerkt: „einrichten/modell ist in der app kein + dropdown". Ein frei getippter Titel führt zu keinem oder zum + falschen Typenschild, denn das Bild wird über den Modellnamen + gesucht. Die Liste selbst steht in daten/fahrzeugmodelle.ts und + wird von einem Test gegen die Panel-Fassung geprüft. */} - aendern({ fahrzeugtitel: e.target.value })} - onBlur={() => sichern()} - /> + onChange={(e) => { + aendern({ fahrzeugtitel: e.target.value }) + sichern({ fahrzeugtitel: e.target.value }) + }} + > + {modellauswahl(werte.fahrzeugtitel).map((m) => ( + + ))} + -