Ortsnamen aus dem Backend, Verbrauchsfaktor aus dem Tankbeleg, Radzaehler ueber Fahrten
Ortsauflösung serverseitig (geokodierung.py): der Ort steht jetzt in der Fahrt statt im Zwischenspeicher jedes Geräts. Beide Oberflächen fragen nichts mehr ab. Verbrauchskorrektur (verbrauchskorrektur.py): Faktor = Beleg-Liter / Summe der Einzelfahrten, voll zu voll. Statt einer Schranke am Faktor wird der Nenner geprüft - decken die erkannten Fahrten 90-110 % der Tacho-Spanne ab? Ausgelöst beim Schreiben eines Tankvorgangs, nicht erst bei der nächsten Fahrt. Radzähler: summiert die Fahrten des montierten Satzes statt Tacho-Deltas. Der alte Weg hatte Fahrzeugwechsel als gefahrene Strecke verbucht (375.962 km bei einem Tacho von 61.823). Null heißt unbekannt: ein Kilometerstand von 0 oder ein leeres Feld werden zu None normalisiert, statt an sechs Lesestellen als "Tachostand null" zu gelten. Momentanwerte der Sensoren gelten nur für einen Tankvorgang von jetzt. Oberfläche, beide Codebasen: Wertespalte der Fahrtenliste ausgerichtet, Ort -> Ort in "Zuletzt", "Räder" statt "Reifen", "Termin vereinbart" entfernt, Markenlogo 20 % größer, Übersicht-Symbol auf volle Rasterbreite. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -153,14 +153,25 @@ async def tankvolumen_geaendert(
|
||||
await k.tiefststand_liter_setzen(aktuell)
|
||||
|
||||
|
||||
async def distanz_seit_tankung(k: Koordinator, odometer_km: float | None) -> float | None:
|
||||
async def distanz_seit_tankung(
|
||||
k: Koordinator, odometer_km: float | None, jetzt: bool = True
|
||||
) -> float | None:
|
||||
"""Bevorzugt TANK_DISTANZ_SENSOR (vom Fahrzeug selbst berechnet), fällt
|
||||
ohne ihn auf die eigene Kilometerstand-Subtraktion zurück - dieselbe
|
||||
"Sensor bevorzugt, Berechnung als Rückfall"-Präferenz wie bei
|
||||
TANK_LITER_SENSOR gegenüber TANK_SENSOR oben."""
|
||||
sensor = _als_zahl(zustand_oder_none(k.hass, k.zuordnung.werte.TANK_DISTANZ_SENSOR))
|
||||
if sensor is not None:
|
||||
return sensor
|
||||
TANK_LITER_SENSOR gegenüber TANK_SENSOR oben.
|
||||
|
||||
`jetzt=False` fuer einen nachgetragenen Tankvorgang: der Sensor kennt nur
|
||||
seinen aktuellen Stand, und der gehoert nicht zu einer Tankung von
|
||||
vorgestern. Die Kilometerstand-Subtraktion dagegen vergleicht mit dem
|
||||
vorherigen Tankvorgang und ist damit zeitunabhaengig - sie bleibt auch
|
||||
dann richtig."""
|
||||
if jetzt:
|
||||
sensor = _als_zahl(
|
||||
zustand_oder_none(k.hass, k.zuordnung.werte.TANK_DISTANZ_SENSOR)
|
||||
)
|
||||
if sensor is not None:
|
||||
return sensor
|
||||
return await k.ablage.distanz_seit_letzter_tankung(odometer_km)
|
||||
|
||||
|
||||
@@ -193,7 +204,7 @@ async def _automatisch_anlegen(
|
||||
tankvorgang["liters"] = round(liter_schaetzung, 1)
|
||||
|
||||
await k.ablage.tankvorgang_anhaengen(tankvorgang)
|
||||
await k.tankvorgaenge_veroeffentlichen()
|
||||
await k.tankvorgang_nachbereiten()
|
||||
_LOGGER.info(
|
||||
"Tankvorgang %s automatisch erkannt (%s)", tankvorgang["tank_id"], anlass
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user