ae276fb518860861197d77c1f2d3ef8f42b45bd0
3
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
d8b12da36d |
pyscript-Backend zur echten HA-Integration umgebaut (HACS-fähig)
Das Backend liegt jetzt als custom_components/audi_dashboard/ vor - eine normale Home-Assistant-Integration mit Config-Flow, einer sensor-Plattform und 18 Diensten. Damit ist die App über HACS installierbar; bis das Repo auf GitHub gespiegelt ist (HACS spricht ausschließlich mit GitHub), installiert homeassistant/installationspaket/install.ps1 denselben Ordner ohne HACS. Fünf Installationsschritte entfallen ersatzlos: der pyscript:-Block, der panel_custom:-Block, das Kopieren der Oberfläche nach www/, das langlebige Zugriffstoken (der Verlauf wird direkt über die recorder-API gelesen) und "pip install pypdf" (steht in manifest.json). Das Fahrzeugprofil legt die Integration beim ersten Start aus ihrer Vorlage an. Drei alte Schwächen sind dabei mit erledigt: - Die Nutzlast landet nicht mehr in der Recorder-Datenbank (_unrecorded_attributes - das kann nur eine echte Entität). - Eine laufende Fahrt überlebt einen Neustart (Store statt Arbeitsspeicher); fiel sie während eines Ausfalls ins Ende, schließt nach_neustart_fortsetzen() sie beim letzten aufgezeichneten Zeitpunkt. - Sensor-Zuordnungen wirken sofort - die Zustandsbeobachter werden neu gebunden, der Neustart-Hinweis und der Neustart-Dienst sind weg. Namensvertrag geändert, beide Oberflächen mitgezogen: pyscript.audi_dashboard_x -> sensor.audi_dashboard_x, pyscript.audi_dashboard_y -> audi_dashboard.y. Eine Companion-App vom alten Stand findet nach dem Umstieg nichts mehr und muss neu gebaut werden; das Panel liegt in der Integration und kann nicht driften. Der selbstgebaute Updater entfällt - HACS ist die Update-Mechanik, die Home Assistant kennt. Die Versionierung schrumpft auf eine Quelle: manifest.json. Geprüft am laufenden Testcontainer (Container byteweise identisch mit dem Repo): alle 18 Dienste, Panel, Config-Entry neu laden, Historienimport, echter Shell-Beleg in-process, Neuinstallation im Wegwerf-Container blank mit automatisch nachinstalliertem pypdf. Companion-App: tsc sauber, 112/112 Tests, beide Rauchtests gegen das laufende Backend grün. Belegparser 8/8. Co-Authored-By: Claude Opus 5 <[email protected]> |
||
|
|
e1180f8e34 |
Kleinere Befunde und Dokumentation aus dem Review
Frontend, kleinere Befunde: - Das Standort-Menue liess sich nur wischen oder ueber den Kartenmarker oeffnen. Der Griff ist jetzt ein Knopf mit aria-expanded, damit auch per Tastatur erreichbar; der Umschalter Strasse/Satellit hat aria-pressed und ein Label, das den Zustand nennt. - Der Filterschalter "Nur passende Sensoren anzeigen" wirkte nicht, solange eine Auswahlliste offen war: der Klick-Handler ersetzte das Overlay-DOM, bevor das change-Ereignis des Kontrollkaestchens ausgeliefert wurde. Er wird jetzt vor dem Schliessen der Liste behandelt. - Der Theme-Wechsel zeichnete nicht neu, die Leaflet-Kacheln blieben bis zum naechsten Backend-Update im alten Stil - seit der Dauerkarte auf der Uebersicht deutlich sichtbar. - Toter Code entfernt (fahrzeugGlyphPfade, .dot.neutral) und zwei Kommentare berichtigt, die Gegenteiliges behaupteten. Dokumentation: - AGENTS.md widersprach sich an sechs Stellen. Berichtigt: Fahrterkennung laeuft ueber die Zuendung, nicht ueber WLAN; Datenweg ist flespi, nicht MQTT; Modulzahl und Zeilenzahl stimmen wieder; Entity-IDs werden im Setup-Menue zugeordnet, nicht in einstellungen.py; STANDORT_TRACKER ist belegt, nicht leer. - SPECIFICATION.md beschreibt durchgehend den Stand vor der FMM003- Umstellung. Statt es zu Teilen umzuschreiben und dabei Ungenauigkeiten zu riskieren, steht jetzt ein datierter Hinweis am Anfang, der die drei geaenderten Punkte benennt und auf AGENTS.md verweist. Alles Uebrige des Dokuments gilt unveraendert weiter. - INSTALL.md: Die zirkulaere Schrittfolge (Schritt 4 verweist auf 9, Schritt 7 auf 4) ist als solche benannt und aufgeloest. Die Override-Datei ist mit Pfad genannt, samt dem Hinweis, dass sie gesichert wird. Und die drei mit Test-Entitaeten der Entwicklungsinstanz vorbelegten Rollen sind erwaehnt - auf einer frischen Installation zeigen sie ins Leere. - README, Profilvorlage: WLAN-Reste entfernt, zwei Falschaussagen aus dem ersten Review nachgezogen (Statistik rechnet echt, die 97-Prozent-Volltankungsregel wurde entfernt), Dateiuebersicht um die fuenf fehlenden pyscript-Dateien und entitaeten.py ergaenzt. - update.ps1 liefert jetzt auch shell_beleg_parser.py aus. Die Datei liegt in data/, ist aber Code - Aenderungen am Belegleser, dem einzigen getesteten Teil des Projekts, kamen bisher auf keiner Instanz an. - design/README: Zwei Dateien der Inhaltstabelle liegen gar nicht in dem Ordner, weshalb das Board aus der Repo-Kopie heraus leer bleibt - jetzt vermerkt. Ausserdem die Behauptung berichtigt, die Auflage ruehre audi-dashboard-app.js nicht an: der Stylesheet-Loader wurde dort ergaenzt. Geprueft: Panel laedt, alle neun pyscript-Entitaeten werden veroeffentlicht, Zuordnen und Zuruecksetzen funktionieren, keine neuen Fehler im Protokoll. |
||
|
|
e1d570992e |
Initialer Import: HA-Panel, Design-System, Companion-App
Drei zusammengehörige Teile in einem Repository: - homeassistant/ Das fertige, im Einsatz befindliche Home-Assistant-Panel (panel_custom Custom Element + pyscript-Backend). Echte Fahrzeug- und Personendaten (fahrzeugprofil.json, fahrten.jsonl, tankvorgaenge.jsonl, Tankbelege) bleiben per .gitignore außen vor; die anonymisierte Vorlage fahrzeugprofil.example.json ist mit dabei. - design-system/ Eigenständige React-Komponentenbibliothek (@audi-dash/ui), die die visuelle Sprache des Panels nachbildet - ohne Audi-Markenzeichen und ohne die lizenzierte Hausschrift. Dient als Grundlage für Claude Design. War bis hierher ein eigenes Repository und ist in dieses eingeschmolzen worden. - companion-app/ Datenschicht der neuen App DataMetric360 (iOS/Android via Capacitor, zusätzlich als Iframe im HA-Dashboard). Noch ohne Oberfläche: REST- und WebSocket-Zugriff auf Home Assistant plus Warteschlange für Änderungen ohne Netz. Ersetzt das eingespritzte hass-Objekt, das nur innerhalb des HA-Frontends existiert. Dazu die Projektdokumentation: SPECIFICATION.md (Ist-Stand des Panels), COMPANION_APP_ARCHITECTURE.md (Architekturentscheidungen der neuen App), AUDIT_2026-08-10.md, DESIGN_BRIEF_DATAMETRIC360.md und der ursprüngliche Bauauftrag. Co-Authored-By: Claude Opus 5 <[email protected]> |