dc4c1ff0bf
Neue Kachel oberhalb von "Zuletzt" mit echter Leaflet-Mini-Karte, öffnet per Klick eine Vollbild-Standortansicht (Kartendarstellung wählen, auf Fahrzeug/User zentrieren, beide zeigen) mit einem ausziehbaren myAudi-Stil-Menü: Distanz zum Gerät, Adresse (Reverse- Geocoding via Nominatim), fährt/steht/Letzter-Parkplatz-Status, Tankfüllstand/Reichweite, Route- und Teilen-Aktionen. Backend: STANDORT_TRACKER-Einstellung (device_tracker-Entity) plus _standort()-Veröffentlichung, bewusst leer gelassen bis eine echte GPS-Quelle (FMM003/flespi) angebunden ist - Kachel zeigt bis dahin "kein GPS-Signal". Verifiziert in audi_ha_test mit einer manuell gesetzten Test-Position. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
118 lines
5.8 KiB
Python
118 lines
5.8 KiB
Python
"""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"
|
|
|
|
# Live-GPS-Position des Fahrzeugs (Übersicht -> Standort-Kachel). Erwartet
|
|
# eine device_tracker.*-Entity mit "latitude"/"longitude"-Attributen (HA-
|
|
# Konvention, siehe _standort() in frontend_veroeffentlichung.py) - bleibt
|
|
# leer, solange keine Quelle angebunden ist (siehe AGENTS.md Abschnitt B,
|
|
# FMM003/flespi offen); die Oberfläche zeigt dann "kein GPS-Signal" statt
|
|
# eines falschen Werts, genau wie bei BATTERIE_SENSOR oben.
|
|
STANDORT_TRACKER = ""
|
|
|
|
# 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"
|