Abweichung zu main festhalten samt der Falle beim Zusammenfuehren

main ist 18 Commits voraus (FMM003, Setup-Menue, iOS-Auflage). Zusammenfuehren
ist bewusst aufgeschoben. Festgehalten ist vor allem die eine Stelle, die ein
sauberer Merge nicht auffangen wuerde: profil_lesen() gibt in diesem Branch bei
fehlender Profildatei None zurueck, profil.py ist auf main unveraendert und
geht damit konfliktfrei durch - aber die dortigen Aufrufstellen pruefen das
nicht und wuerden abstuerzen statt eine verstaendliche Meldung zu schreiben.
This commit is contained in:
Paul Nothaft
2026-08-13 13:03:31 +02:00
parent f7f1a238e5
commit 7b9fba04ce
+19
View File
@@ -217,6 +217,25 @@ of 3249 modules — the code would have been unreadable. `homeassistant/www/dm36
vendored MIT library served from Home Assistant itself, which satisfies the actual requirement vendored MIT library served from Home Assistant itself, which satisfies the actual requirement
(no network call, token never leaves the local network) and round-trips correctly. (no network call, token never leaves the local network) and round-trips correctly.
## Pending: this branch has diverged from `main` (noted 2026-08-13)
`main` has moved 18 commits ahead of `umsetzung-datametric360` (FMM003 switch, sensor-mapping setup
menu, iOS/large-screen overlay from Claude Design). **Deliberate decision: do not merge yet** — the
owner keeps working on `main` first.
Three files conflict (`AGENTS.md`, `homeassistant/INSTALL.md`,
`homeassistant/pyscript/fahrterkennung.py`); four more are touched by both sides but merge cleanly.
**One hazard that a clean merge will not catch.** This branch changed `profil_lesen()` in
`homeassistant/pyscript/modules/profil.py` to return `None` when the profile file is missing or
corrupt, and guarded all seven call sites that existed here. `profil.py` is untouched on `main`, so
it merges silently — but `main`'s call sites (`fahrterkennung.py`, `tankerkennung.py`,
`reifenzaehler.py`, `modules/frontend_veroeffentlichung.py`) do **not** guard against `None` and
would raise `AttributeError` on a missing profile instead of logging a clear error.
When merging: take `main`'s FMM003 version of `fahrterkennung.py`, then re-apply the `None` guard to
every remaining `profil.profil_lesen()` call site.
## Open items ## Open items
Execution order, exact steps, and acceptance criteria for every item below live in Execution order, exact steps, and acceptance criteria for every item below live in