"""Feste Namen und Pfade der Integration. Die Entity-IDs und Dienstnamen hier sind ein VERTRAG mit beiden Oberflächen (homeassistant/www/audi-dashboard-app.js und companion-app/): dort stehen dieselben Namen in je einer zentralen Tabelle. Wer hier umbenennt, muss beide mitziehen - sonst liest die App ins Leere, ohne dass irgendetwas abstürzt. Warum die Namen sich gegenüber der pyscript-Fassung überhaupt geändert haben: dort hießen sie `pyscript.audi_dashboard_*`, weil pyscript der Besitzer der Domain war. Ohne pyscript wäre dieser Präfix eine Lüge - die Entitäten gehören jetzt dieser Integration. Aus `pyscript.audi_dashboard_x` wird deshalb `sensor.audi_dashboard_x`, aus dem Dienst `pyscript.audi_dashboard_y` wird `audi_dashboard.y`. """ DOMAIN = "audi_dashboard" # Unterordner im HA-Konfigurationsverzeichnis für alle Nutzerdaten # (Fahrzeugprofil, Fahrten, Tankvorgänge, Belege, Sicherungen). Bewusst # derselbe Name und dasselbe Dateiformat wie in der pyscript-Fassung: eine # bestehende Installation wird dadurch einfach weiterbenutzt, es gibt keine # Datenmigration und damit auch keinen Weg, dabei etwas zu verlieren. BASIS_ORDNER = "audi_dashboard" # Panel: Sidebar-Eintrag und URL. Früher aus configuration.yaml # (panel_custom:), jetzt von der Integration selbst registriert - deshalb # entfällt der YAML-Block und mit ihm der Neustart beim ersten Einbau. PANEL_URL = "audi-dashboard" PANEL_TITEL = "Mein Audi" PANEL_ICON = "mdi:car-sports" PANEL_KOMPONENTE = "audi-dashboard-panel" # Statischer Pfad, unter dem die Oberflächen-Dateien aus frontend/ # ausgeliefert werden. Ersetzt /local/ (also /config/www/): die Dateien # gehören jetzt zum Installationspaket der Integration und werden von # install.ps1 mitgeliefert, statt separat nach www/ kopiert zu werden. STATIK_URL = "/audi_dashboard_static" STATIK_ORDNER = "frontend" # Das OTA-Bündel der iOS-App: dieselbe Oberfläche, als Zip zum Nachladen. # Liegt bewusst mit im Integrationsordner - dann liefert install.ps1 es bei # jeder Auslieferung mit aus, und Bündel und Integration können gar nicht # auseinanderlaufen (siehe companion-app/scripts/ota-paket.ps1). BUENDEL_ORDNER = "frontend/app" BUENDEL_URL = f"{STATIK_URL}/app/bundle.zip" BUENDEL_INFO = "bundle.json" # Vom Nutzer hochgeladene Fahrzeugfotos. Die bleiben in /config/www/bilder, # also unter /local/bilder/: sie sind NUTZERDATEN, kein Auslieferbestandteil. # Lägen sie im Integrationsordner, würde der nächste install.ps1-Lauf sie # mitlöschen - genau das darf nicht passieren. BILDER_ORDNER = "www/bilder" # --------------------------------------------------------------- Entitäten # Schlüssel -> Objekt-ID. Die vollständige Entity-ID ist # sensor.audi_dashboard_; sensor.py legt sie so an. E_PROFIL = "profil" E_FAHRTEN = "fahrten" E_TANKVORGAENGE = "tankvorgaenge" E_FAHRZEUGSTATUS = "fahrzeugstatus" E_BATTERIEVERLAUF = "batterieverlauf" E_ZUORDNUNG = "entitaeten" E_BELEG_ERGEBNIS = "beleg_ergebnis" E_IMPORT_STATUS = "import_status" E_APP_VERSION = "app_version" E_REIFEN_SOMMER = "reifen_sommer_km" E_REIFEN_WINTER = "reifen_winter_km" E_REIFEN_AKTIV = "reifen_aktiver_satz" # Signal für den Weg Koordinator -> Entität (async_dispatcher_send). SIGNAL_AKTUALISIERT = f"{DOMAIN}_aktualisiert" # ----------------------------------------------------------------- Dienste D_JETZT_AKTUALISIEREN = "jetzt_aktualisieren" D_PROFIL_SCHREIBEN = "profil_schreiben" D_ENTITAETEN_SCHREIBEN = "entitaeten_schreiben" D_FAHRT_MANUELL_ANLEGEN = "fahrt_manuell_anlegen" D_FAHRT_AKTUALISIEREN = "fahrt_aktualisieren" D_FAHRT_LOESCHEN = "fahrt_loeschen" D_SCREENING_JETZT = "screening_jetzt" D_BELEG_HOCHLADEN = "beleg_hochladen" D_TANKVORGANG_MANUELL = "tankvorgang_manuell" D_TANKVORGANG_AKTUALISIEREN = "tankvorgang_aktualisieren" D_TANKVORGANG_LOESCHEN = "tankvorgang_loeschen" D_BILD_HOCHLADEN = "bild_hochladen" D_BILD_LOESCHEN = "bild_loeschen" D_BATTERIEVERLAUF_LOESCHEN = "batterieverlauf_loeschen" D_REIFEN_WECHSELN = "reifen_wechseln" D_REIFEN_KM_SETZEN = "reifen_km_setzen" D_REIFEN_ARCHIVIEREN = "reifen_archivieren" D_REIFEN_ARCHIV_AKTUALISIEREN = "reifen_archiv_aktualisieren" D_REIFEN_ARCHIV_LOESCHEN = "reifen_archiv_loeschen" D_BACKUP_JETZT = "backup_jetzt" D_BACKUP_WIEDERHERSTELLEN = "backup_wiederherstellen" D_HISTORIE_IMPORTIEREN = "historie_importieren" D_CSV_IMPORTIEREN = "csv_importieren" D_UPDATE_PRUEFEN = "update_pruefen" D_UPDATE_INSTALLIEREN = "update_installieren" # Schlüssel für den Gitea-Zugriffstoken in entry.options (siehe # config_flow.py's AudiDashboardOptionsFlow und aktualisierung.py). Hier statt # in config_flow.py definiert, damit aktualisierung.py/dienste.py ihn ohne # Umweg über den Options-Flow importieren können. CONF_GITEA_TOKEN = "gitea_token"