"""Technische Konfiguration — die einzige Stelle, die vor der Installation angepasst werden muss (siehe INSTALL.md Schritt 4). Alles andere (WLAN-Name des Fahrzeugs, Pausenzeit, Reifendaten, ...) ist Teil des Fahrzeugprofils (data/fahrzeugprofil.json) und über die Oberfläche änderbar. Diese Entity-IDs sind es bewusst nicht: @state_trigger und die Fahrzeugstatus-Abfrage brauchen sie als festen Wert, bevor überhaupt ein Profil gelesen werden kann. In Home Assistant unter Entwicklerwerkzeuge -> Zustände nachschlagen. Die drei ersten (WLAN, Kilometerstand, Tankfüllstand) werden vom Backend zwingend gebraucht (§7.1, §7.2, §7.4, §7.5). Alles danach speist nur die Übersicht im Frontend (§5.1, §5.2, §9) — bleibt ein Wert leer ("") oder passt eine Entity-ID nicht zur tatsächlichen Integration, liefert zustand_oder_none() in frontend_veroeffentlichung.py für das jeweilige Feld None statt abzustürzen; die Oberfläche zeigt dann „unbekannt" statt eines falschen Werts. Alle Entity-IDs unten sind an der echten Integration TommiG1/HA_VAG-EU-Data-Act (Version 0.6.35, per HACS installiert) real geprüft, nicht nur vermutet: das Gerät heißt dort "Audi RS 4 Avant" (mit Leerzeichen vor der "4") - deshalb "rs_4" mit Unterstrich im Slug, nicht "rs4". Eine ältere Integrationsversion hatte hier noch deutsche Feldnamen (z. B. "..._tur_vorne_links"); die aktuelle Version benennt englisch (z. B. "..._front_left_door"). """ # Companion-App-Sensor für das aktuell verbundene WLAN (iOS-App: # Einstellungen -> Companion App -> Sensoren -> "Verbundenes WLAN") WLAN_SENSOR = "sensor.iphone_wifi_connection" # Kilometerstand aus der HACS-Integration TommiG1/HA_VAG-EU-Data-Act KM_SENSOR = "sensor.audi_rs_4_avant_mileage" # Tankfüllstand aus derselben Integration (Prozent) TANK_SENSOR = "sensor.audi_rs_4_avant_fuel_level" # Reichweite (§5.1 Übersicht) RANGE_SENSOR = "sensor.audi_rs_4_avant_range_primary" # 12V-Batteriespannung (Mein Audi -> Zustand). Die aktuell genutzte # HACS-Integration (TommiG1/HA_VAG-EU-Data-Act 0.6.35) liefert dafür KEINEN # Sensor (real geprüft: kein "battery"/"voltage"-Entity unter diesem Gerät) - # deshalb hier bewusst leer gelassen. Liefert später eine andere Quelle (z. B. # ein OBD-Adapter) eine Spannung, einfach die Entity-ID eintragen; bis dahin # zeigt die Oberfläche "unbekannt" statt eines falschen Werts (siehe # zustand_oder_none() in frontend_veroeffentlichung.py). BATTERIE_SENSOR = "" # Der von der Integration selbst bereitgestellte Knopf für eine sofortige # Neuabfrage beim Fahrzeug (Entity-Domäne "button", real geprüft) - genau der # Weg, den "Ziehen zum Aktualisieren" im Frontend auslöst (siehe # audi_dashboard_jetzt_aktualisieren() in frontend_api.py), statt eines # generischen homeassistant.update_entity auf einzelne Sensoren. REFRESH_BUTTON = "button.audi_rs_4_avant_refresh_now" # Türen (§4.1) - die Integration liefert vier Einzelsensoren statt eines # Summensensors. binary_sensor, device_class "door": "off" = zu (real # geprüft). TUER_SENSOREN = [ "binary_sensor.audi_rs_4_avant_front_left_door", "binary_sensor.audi_rs_4_avant_front_right_door", "binary_sensor.audi_rs_4_avant_rear_left_door", "binary_sensor.audi_rs_4_avant_rear_right_door", ] # Fenster (§4.1) - device_class "window": "off" = zu (real geprüft) FENSTER_SENSOREN = [ "binary_sensor.audi_rs_4_avant_front_left_window", "binary_sensor.audi_rs_4_avant_front_right_window", "binary_sensor.audi_rs_4_avant_rear_left_window", "binary_sensor.audi_rs_4_avant_rear_right_window", ] # Verriegelung - kein lock.*-Entity vorhanden, sondern vier # Türschloss-Einzelsensoren. binary_sensor mit device_class "lock" (real # geprüft): "on" = entriegelt, "off" = verriegelt (Home-Assistant-Konvention # für diese device_class). TUERSCHLOSS_SENSOREN = [ "binary_sensor.audi_rs_4_avant_front_left_door_lock", "binary_sensor.audi_rs_4_avant_front_right_door_lock", "binary_sensor.audi_rs_4_avant_rear_left_door_lock", "binary_sensor.audi_rs_4_avant_rear_right_door_lock", ] # Heckklappe und Motorhaube - von der Integration separat von den vier Türen # geführt, für "Sicher abgestellt" (§9) aber ebenso relevant wie diese HECKKLAPPE_SENSOR = "binary_sensor.audi_rs_4_avant_tailgate" HECKKLAPPENSCHLOSS_SENSOR = "binary_sensor.audi_rs_4_avant_tailgate_lock" HAUBE_SENSOR = "binary_sensor.audi_rs_4_avant_hood" HAUBENSCHLOSS_SENSOR = "binary_sensor.audi_rs_4_avant_hood_lock" # Vom Fahrzeug selbst gemeldete Service-Fälligkeit (ergänzt die App-eigene, # aus dem Servicebuch berechnete Prognose - siehe fahrzeugMeldung() im # Frontend). Je ein Datum (ISO mit Zeitzone) und eine Streckenangabe in km; # die Streckensensoren liefern negative Werte (Restkilometer als Countdown), # im Frontend wird davon nur der Betrag angezeigt. NAECHSTER_OELWECHSEL_SENSOR = "sensor.audi_rs_4_avant_oil_change_due" OELWECHSEL_STRECKE_SENSOR = "sensor.audi_rs_4_avant_oil_change_distance" NAECHSTE_INSPEKTION_SENSOR = "sensor.audi_rs_4_avant_inspection_due" INSPEKTION_STRECKE_SENSOR = "sensor.audi_rs_4_avant_inspection_distance" # Update-Funktion (Einstellungen -> "Update suchen", siehe # updateverwaltung.py): Git-Repository, in das dieses Projekt gepflegt wird - # z. B. ein privates GitHub-Repo, genau wie für die HACS-Integration bereits # verwendet. Leer lassen, solange es keins gibt - "Update suchen" meldet dann # nur "keine Update-Quelle eingerichtet", ohne etwas zu tun. UPDATE_REPO_URL = "" UPDATE_BRANCH = "main"