Fuenf gemeldete Bugs behoben: Haubenschloss/Tuerschloesser entfernt, Bestaetigungsdialog-Transparenz, geteilte FMM003-Koordinaten, Laedt-Haenger, generischer Beleg-Parser
Entfernt Haubenschloss-/Tuerschloss-Erkennung dauerhaft aus Setup-Katalog und
Sicherheitscheck (auf ausdruecklichen Wunsch, nicht nur leer/unzuordenbar wie
der Rest der abgeloesten VAG-Integration). Behebt eine durchscheinende
Bestaetigungs-Sheet ("Doppelt zugeordnet" u.a.) - derselbe --tile-2-
Transparenz-Fehler, der fuer das Setup-Popup schon behoben war, hier
nachgezogen. Ergaenzt einen zweiten GPS-Pfad (STANDORT_LAT_SENSOR/
STANDORT_LON_SENSOR) fuer Integrationen wie flespi, die Breiten-/Laengengrad
als zwei eigene Sensoren statt als device_tracker-Attribute liefern. Haertet
den bekannten "Laedt ..."-Haenger beim App-Start zusaetzlich ab: Tab-Klicks
pruefen jetzt aktiv nach, ob Daten inzwischen da sind. Ergaenzt
shell_beleg_parser.py um einen stationsunabhaengigen Fallback fuer
Tankbelege unbekannter Formate (Adresse/Gesamtbetrag/Menge/Rabatt-Herleitung
wie vom Nutzer vorgegeben) - die bestehende Shell-Erkennung bleibt
unveraendert und weiterhin durch die zehn echten Testbelege abgedeckt.
Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
@@ -1,10 +1,13 @@
|
||||
# AGENTS.md — Project state, review findings, open items, and working rules
|
||||
|
||||
**Last updated: 2026-08-13** (merged the `umsetzung-datametric360` branch — companion app phases
|
||||
1–10 done, see `UMSETZUNGSPLAN.md`; later the same day: cleaned up remaining EU Data Act residue,
|
||||
fixed oversized toggle switches, and fixed a desktop-layout audit (settings button / rings logo /
|
||||
popups overflowing past the capped content column) — see `DESIGN_AUDIT_2026-08-13.md` and section
|
||||
C). This file is the entry point for every new agent
|
||||
**Last updated: 2026-08-16** (merged the `umsetzung-datametric360` branch — companion app phases
|
||||
1–10 done, see `UMSETZUNGSPLAN.md`; 2026-08-13: cleaned up remaining EU Data Act residue, fixed
|
||||
oversized toggle switches, and fixed a desktop-layout audit (settings button / rings logo / popups
|
||||
overflowing past the capped content column) — see `DESIGN_AUDIT_2026-08-13.md`; 2026-08-16: fixed
|
||||
five user-reported bugs — removed Türschloss/Haubenschloss checks, fixed a translucent confirm-
|
||||
sheet, added a flespi-style split lat/lon location source, hardened the "Lädt …" bootstrap race,
|
||||
and added a generic (station-independent) fuel-receipt parser fallback — see section C). This file
|
||||
is the entry point for every new agent
|
||||
session: what this repo is, what is finished, what is missing, and how to work here. Detail lives in
|
||||
the linked documents — this file points, it does not duplicate.
|
||||
|
||||
@@ -601,6 +604,68 @@ wraps the web app for iPhone; a PWA home-screen install is the accepted intermed
|
||||
diffing across all 5 tabs in both themes, a temporary 2.5x `transform:scale()` zoom on the
|
||||
live swipe-row DOM) but could not be reproduced — documented in the audit file as open,
|
||||
pending a screenshot from the real device.
|
||||
- [x] Fix five user-reported bugs (2026-08-16):
|
||||
(1) **Türschloss-/Haubenschloss-Erkennung entfernt** — user asked for these two checks to be
|
||||
permanently removed (not just left blank/unmapped like the rest of the retired VAG-
|
||||
integration fields). Removed `TUERSCHLOSS_SENSOREN`/`HAUBENSCHLOSS_SENSOR` from
|
||||
`entitaeten.py`'s `FELDER` catalog (no longer offered in the Setup menu) and from
|
||||
`einstellungen.py` (attributes deleted, not just blanked), and removed their entries from
|
||||
`_sicherheitscheck()` in `frontend_veroeffentlichung.py` (no longer listed under "Geprüfte
|
||||
Punkte"). `HECKKLAPPENSCHLOSS_SENSOR` (tailgate lock) was deliberately left untouched — user
|
||||
named only the two door/hood locks. Also removed the now-orphaned
|
||||
`input_boolean.test_entriegelt` helper and the four `test_audi_lock_*` template sensors from
|
||||
`testumgebung/konfiguration.yaml` (door-open/window fixtures for `TUER_SENSOREN`/
|
||||
`FENSTER_SENSOREN` are untouched), and updated `testumgebung/README.md` accordingly.
|
||||
(2) **"Doppelt zugeordnet" (and every other confirm-sheet) was see-through** — `.sheet-gruppe`/
|
||||
`.sheet-abbrechen` in `audi-dashboard.css` used `--tile-2`, which the iOS overlay's night
|
||||
theme redefines as `rgba(255,255,255,.10)` (translucent, meant for tile-on-tile layering) —
|
||||
the same root cause already fixed for `.setup-popup`/`.standortmenu` on 2026-08-13, just not
|
||||
carried over to the generic confirm-sheet used by `bestaetigen()`/`hinweis()`. Switched both
|
||||
to `var(--tile-deckend, var(--canvas))`, matching the existing fallback pattern already used
|
||||
elsewhere in this file (base CSS must not go blank if the purely-additive iOS overlay is ever
|
||||
reverted, since `--tile-deckend` is an overlay-only token).
|
||||
(3) **FMM003 coordinates arrive as two separate sensors, not one device_tracker** — user
|
||||
reported "coordinates are split into latitude and longitude". Root cause: `_standort()` in
|
||||
`frontend_veroeffentlichung.py` only ever read `latitude`/`longitude` as *attributes of a
|
||||
single `STANDORT_TRACKER` device_tracker entity* (HA's usual convention) — but some
|
||||
integrations (confirmed live in `audi_ha_test`'s own simulated FMM003 device, which exposes
|
||||
separate "Latitude coordinate value"/"Longitude coordinate value" sensors) publish them as
|
||||
two independent `sensor` entities instead, which `_standort()` had no way to consume. Added
|
||||
`STANDORT_LAT_SENSOR`/`STANDORT_LON_SENSOR` (new optional fields in `einstellungen.py` +
|
||||
`entitaeten.py`'s Setup-menu catalog, group "standort") as a second path: `_standort()` now
|
||||
tries `STANDORT_TRACKER` first (unchanged behavior when it works), and falls back to reading
|
||||
the two plain sensors' states directly when the tracker is unset or has no coordinates.
|
||||
(4) **App can show only "Lädt …" until a tab is clicked** — known, already-mitigated race
|
||||
(see the `nachladeAnstossen` header comment, `audi-dashboard-app.js`): on a slow/cold backend
|
||||
start, `render()` no-ops until `DATEN_GELADEN` flips true, and the previously observed
|
||||
manual fix was a HA panel remount. Root cause of *why* the click helps was not fully
|
||||
reproducible in `audi_ha_test` (this is a genuine uncertainty, flagged rather than guessed
|
||||
around) — but as a safe, low-risk hardening, `go()` (the tab/menu click handler) now calls
|
||||
`datenLaden(false)` proactively if `DATEN_GELADEN` is still false, so any click that happens
|
||||
to occur after data has actually become available is guaranteed to pick it up immediately
|
||||
instead of depending on timing.
|
||||
(5) **Fuel-receipt parser only understood Shell's exact layout** — user asked for a generic
|
||||
algorithm for other/unknown fuel stations: find the address, find the total ("Gesamt"/
|
||||
"Absolut"), find the liters ("Menge"/"Amount"), divide to get the paid price/liter, compare
|
||||
against a printed "Preis/Liter" — a mismatch means a discount, found on the receipt as a
|
||||
minus-marked amount. Implemented exactly this as `_parsen_generisch()` in
|
||||
`homeassistant/data/shell_beleg_parser.py`, wired as a fallback in `main()` (Shell-specific
|
||||
`_parsen()` tried first, unchanged — verified the existing 10-receipt regression suite still
|
||||
passes byte-for-byte; `_parsen_generisch()` verified against a synthetic non-Shell receipt
|
||||
with a known discount, all fields and the discount math correct). No separate "SmartDeal"
|
||||
flag was needed — the frontend already treats any populated `discount` as SmartDeal-eligible
|
||||
(gated only by the user's own "SmartDeal aktiv" switch, not by station name), so a generically
|
||||
parsed Shell receipt behaves identically to one parsed via the strict path. Receipt-key
|
||||
generation uses `hashlib.sha1` (not the built-in `hash()`, which is randomly salted per
|
||||
process and would have broken the §7.7 duplicate-detection dedup across the parser's
|
||||
per-receipt subprocess invocations).
|
||||
All five deployed and verified live in `audi_ha_test` (version `1786752000`): Sicherheit-
|
||||
Liste and Setup-Katalog confirmed to no longer offer Türschloss/Haubenschloss; the new
|
||||
Breitengrad/Längengrad Setup fields confirmed present and correctly auto-suggesting the
|
||||
container's real split lat/lon sensors; "Doppelt zugeordnet" confirmed rendering on an opaque
|
||||
card by deliberately triggering it (this container's limited entity set causes a real
|
||||
duplicate auto-suggestion); pyscript reload clean, no new console errors beyond the
|
||||
pre-existing placeholder-image 404s. Synced to `installationspaket/`.
|
||||
- [ ] Fix remaining documentation drift (statistics claim, README gaps, obsolete TODO comment) —
|
||||
text-only changes; INSTALL.md's WLAN/TommiG1 drift and stale variable names were fixed
|
||||
2026-08-12 (see section B); `DESIGN_REVIEW_2026-08-13.md` and `REVIEW_main_2026-08-13.md`
|
||||
|
||||
Reference in New Issue
Block a user