fb38c297bd
The "grey box around the icons" report turned out not to be a defect: the box on "10.000 km"/"1 Jahr"/"15" is the wanted pattern, and every value the user can change should carry it. All .feld inputs and selects now get the grey iOS fill; inputs with their own visual language (checkbox/radio/range/file) keep the transparent base rule, so the switches are unaffected. Fuel stations are now displayed as "Shell, Pascalstr. 8, Ingolstadt" instead of the bare operator name. New _marke()/_ist_strasse()/_tankstelle() helpers are shared by both parser paths so Shell and non-Shell receipts format the same. The brand is only matched against the receipt header - searching the whole text would let "Total" hit a totals line. Missing parts are dropped instead of leaving empty comma slots, and without a known brand the operator name takes its place. station_address still carries the full street and postcode. test_bekannte_stationen updated to the new format; suite stays green. installationspaket/ is versioned from now on (user request). It contains no real vehicle data - only the example profile with empty FIN/plate placeholders. Keep it in sync whenever pyscript/ or www/ changes. Co-Authored-By: Claude Opus 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)
|