9794193803
Setup-Menü (Einstellungen -> Fahrzeug einrichten -> Setup): ordnet alle von der App genutzten Sensor-Rollen echten HA-Entitäten zu, statt sie in einstellungen.py von Hand einzutragen - durchsuchbares Dropdown je Feld, Vorauswahl aus vorhandenen Entitäten, Schalter für "nur passende Sensoren". Neues Modul entitaeten.py (Katalog + JSON-Override, zur Laufzeit über setattr() auf einstellungen angewendet, kein Neustart nötig außer für die drei trigger-gebundenen Felder). Zusätzlich: Fahrzeug-WLAN-Erkennung und alle Entity-IDs der nicht mehr genutzten TommiG1/HA_VAG-EU-Data-Act-Integration entfernt. Fahrterkennung läuft jetzt über den Zündungs-/ACC-Status des neu angebundenen Teltonika FMM003 (ersetzt die WLAN-Verbindungserkennung); Standort und 12V- Batteriespannung kommen ebenfalls vom FMM003. Kilometerstand, Tankfüllstand, Reichweite, Türen/Fenster/Schlösser sowie Ölwechsel-/Inspektionsdaten haben dadurch vorerst keine Quelle mehr und zeigen "unbekannt" - die Funktionen selbst bleiben erhalten und lassen sich über das neue Setup-Menü jederzeit neu zuordnen. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
32 lines
1.3 KiB
Python
32 lines
1.3 KiB
Python
"""Trigger-Registrierung für den zweistufigen Fahrtabschluss (§7.2).
|
|
|
|
Die eigentliche Logik liegt in pyscript/modules/fahrtabschluss_logik.py
|
|
(importierbares Modul, auch von fahrterkennung.py genutzt). Diese Datei
|
|
sorgt nur dafür, dass ein Screening auch dann läuft, wenn der Kilometerstand-
|
|
Sensor sich ändert - unabhängig vom Fahrtende-Ereignis selbst, weil der Wert
|
|
laut §10 Punkt 4 auch erst mit der nächsten Fahrt eintreffen kann.
|
|
|
|
Entity-IDs stehen zentral in pyscript/modules/einstellungen.py.
|
|
"""
|
|
|
|
import einstellungen
|
|
import fahrtabschluss_logik
|
|
|
|
|
|
# Ohne konfigurierten Kilometerstand-Sensor keinen Trigger registrieren -
|
|
# eine leere Entity-ID als @state_trigger-Ausdruck ist ungetestetes
|
|
# Verhalten, siehe gleiches Muster in fahrterkennung.py.
|
|
if einstellungen.KM_SENSOR:
|
|
@state_trigger(f"{einstellungen.KM_SENSOR}")
|
|
def kilometerstand_geaendert(value=None, old_value=None):
|
|
if value is None or old_value is None:
|
|
return
|
|
fahrtabschluss_logik.screening_durchfuehren(einstellungen.KM_SENSOR)
|
|
|
|
|
|
@service
|
|
def audi_dashboard_screening_jetzt():
|
|
"""Manueller Anstoß des Screenings, z. B. aus der Oberfläche heraus
|
|
(pyscript.audi_dashboard_screening_jetzt)."""
|
|
fahrtabschluss_logik.screening_durchfuehren(einstellungen.KM_SENSOR)
|