QR-Code aus gespeichertem Bild, stiller Debug-Knopf, HA-Zugang bei den Zugaengen

Der Scanner liest den QR jetzt auch aus einer gespeicherten Bilddatei -
in der Testumgebung ohne Kamera der einzige Weg, auf dem Telefon der
kuerzere (der Token entsteht am Rechner, das Bildschirmfoto liegt ohnehin
auf dem Geraet). Gleicher Leser, gleiche Deutung, nur eine andere Quelle;
ohne Kamera entfaellt das schwarze Quadrat.

Dabei ein echter Fehler in der ersten Fassung, gefunden an der
Musterseite: img.decode() loest bei einem GIF in Chromium nie auf - das
Blatt haette ohne Meldung ewig gewartet. Jetzt createImageBitmap, als
Rueckfall bewusst das load-Ereignis statt decode().

Debug-Mode ist nur noch ein stiller Textknopf am Seitenende, ohne Kachel
und ohne Erlaeuterung; der Zugang zu Home Assistant steht als Akkordeon in
der Kachel "Zugaenge" darin. Beides auf Vorgabe des Eigentuemers.

Die Musterseite kann jetzt auch die Ersteinrichtung (?seite=einrichtung) -
damit ist der ganze Weg ohne echten Token nachgewiesen: selbst erzeugter
QR mit Token-Text landet zeichengleich im Feld, einer mit http-Adresse im
Adressfeld, ein Bild ohne Code meldet das sauber.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-04 13:08:10 +02:00
parent 6fb8375ad6
commit d6f7993504
16 changed files with 764 additions and 55 deletions
@@ -1 +1 @@
{"version":"2026.9.4.11","sha256":"937302e85e87c62326c4f7013cb026f50243b8cc5d521d752b5a3708120d2b91","bytes":320679,"gebaut":"2026-09-04T10:13:31Z"}
{"version":"2026.9.4.12","sha256":"bb66727726eac2e6be98dc1132bd3b532c8c6b9525f9885020a65d99d2d7fc55","bytes":321283,"gebaut":"2026-09-04T11:05:31Z"}
@@ -3442,15 +3442,13 @@ function vEinst() {
</div>
<!-- Debug-Mode: Zugaenge, Dongle und der letzte Datensatz des Geraets.
Drei Kacheln, die im Alltag nichts zu suchen haben und beim Suchen
eines Fehlers alles - deshalb zusammen, zugeklappt und ganz unten
(Vorgabe des Eigentuemers, 04.09.2026). -->
<div class="tile"><span class="label">Debug-Mode</span>
<span class="label" style="margin-top:8px;color:var(--fg2);letter-spacing:0;
text-transform:none;font-size:12.5px;line-height:1.6">
Zugangs-Token, die Einstellungen des Dongles und der letzte Datensatz, den
das Gerät gemeldet hat. Für die Fehlersuche, nicht für den Alltag.</span>
<button class="aktion ${debugOffen ? "primaer" : ""}" style="margin-top:16px" data-debug-auf>${debugOffen ? "Fertig" : "Öffnen"}</button>
</div>
eines Fehlers alles - deshalb zusammen, zugeklappt und ganz unten.
Bewusst KEINE Kachel und keine Erlaeuterung, sondern ein stiller
Textknopf am Seitenende (Vorgabe des Eigentuemers, 04.09.2026:
moeglichst unauffaellig"). Wer ihn braucht, weiss was er tut; wer
ihn nicht braucht, soll nicht darueber stolpern. -->
<button class="debugknopf" data-debug-auf>${debugOffen ? "Debug-Mode schließen" : "Debug-Mode"}</button>
${debugOffen ? `
${ZUGAENGE.length ? `<div class="tile"><span class="label">Zugänge</span>
${ZUGAENGE.map((z, i) => `
@@ -1671,3 +1671,24 @@ img.carfix.klein { aspect-ratio: auto; height: auto; }
flex: 1 1 0;
margin-top: 0;
}
/* Der stille Knopf zum Debug-Mode am Seitenende: kein Kachelgrund, keine
Ueberschrift, Zweitfarbe - er soll gefunden werden koennen, ohne sich
anzubieten. Die 44px Trefferhoehe kommen aus dem Innenabstand, damit die
Flaeche stimmt, ohne dass der Knopf gross aussieht. */
.debugknopf {
display: block;
width: 100%;
margin-top: var(--sp-4);
padding: 15px 0;
border: 0;
background: none;
font: inherit;
font-size: 12.5px;
color: var(--fg3);
text-align: center;
cursor: pointer;
}
.debugknopf:active {
color: var(--fg2);
}
@@ -1,7 +1,7 @@
{
"domain": "audi_dashboard",
"name": "Audi Dashboard",
"version": "2026.9.4.11",
"version": "2026.9.4.12",
"documentation": "https://gitea.nothaft.cloud/paul/audi-app/src/branch/main/README.md",
"issue_tracker": "https://gitea.nothaft.cloud/paul/audi-app/issues",
"codeowners": [