Neustart-Festhaenger, OTA-Pruefsumme, Statistik-Kopfzahl (2026.8.31.4)

Die App blieb nach einem Neustart von Home Assistant auf dem alten Stand
stehen, mit einer 502-Fehlerzeile, die erst ein Beenden der App wegbekam.
Zwei Ursachen: 502/503/504 galten als harter Ladefehler statt als "Server
faehrt gerade hoch", und nach dem Wiederverbinden wurde genau einmal
nachgeladen - schlug das fehl, kam nie wieder ein Versuch. Beides behoben,
vier Regressionstests dazu.

OTA: das Buendel ist von HEAD ueber die Platte bis zu den ausgelieferten
Bytes nachweislich deckungsgleich. Die Fassung haengt jetzt trotzdem als
?v= an der Adresse (der statische Pfad kommt ohne Cache-Control, aber mit
ETag), und ein Pruefsummenfehler wird erklaert statt durchgereicht.

Statistik: der Gesamtwert steht jetzt als grosse Zahl in der Kopfzeile,
darunter bleiben vier Spalten - fuenf passen auf dem Telefon nachweislich
nicht in eine Zeile.

Fahrzeugfoto ohne Beschnitt und ohne Bodenschatten, damit auch ohne den
Schalter dafuer. Setup filtert zusaetzlich nach dem Signalnamen aus dem
Katalog.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-08-31 15:35:56 +02:00
co-authored by Claude Opus 5
parent 4af38d7e65
commit 90efcc5b00
19 changed files with 565 additions and 161 deletions
+14
View File
@@ -36,6 +36,20 @@ export class ApiFehler extends Error {
get istNetzproblem(): boolean {
return this.status === null;
}
/** Vorübergehend nicht erreichbar: kein Netz, oder ein Server, der
gerade hochfährt.
502/503/504 sind genau das, was ein Neustart von Home Assistant
liefert - der Vorschaltserver antwortet schon, Home Assistant selbst
noch nicht. Das ist für die Oberfläche dasselbe wie kein Netz: warten
und den zwischengespeicherten Stand zeigen, nicht eine Fehlerzeile
stehen lassen, die niemand mehr wegbekommt. 500 gehört bewusst NICHT
dazu - das ist ein echter Fehler in der Anfrage, der sich durch
Warten nicht bessert. */
get istVoruebergehend(): boolean {
return this.istNetzproblem || this.status === 502 || this.status === 503 || this.status === 504;
}
}
export interface AnfrageOptionen {