Verbrauch: Tankstand ab Fahrtbeginn statt davor (2026.9.1.24)

DER VERBRAUCH WAR SYSTEMATISCH ZU HOCH

Der Startwert kam aus wert_bei(), also dem letzten Literstand VOR der Fahrt -
und das ist im Stand der Wert vom Ende der VORIGEN Fahrt. An der Fahrt
Eichstaett - Adelschlag nachgemessen: 36,4 l um 13:52 (Ende der vorigen Fahrt),
36,2 l um 16:20:49 (erster Datensatz der neuen). In der Standzeit dazwischen
ist niemand gefahren; diese 0,2 l Setzung wurden der neuen Fahrt zugerechnet.

  alt: 36,4 - 35,6 = 0,8 l auf 6,896 km -> 11,6 l/100 km
  neu: 36,2 - 35,6 = 0,6 l auf 6,896 km ->  8,7 l/100 km

Neu wert_ab() in verlauf.py: der erste Wert AB dem Zeitpunkt. Fuer einen
ZAEHLER ist "zuletzt davor" richtig (der Kilometerstand aendert sich im Stand
nicht), fuer einen gemessenen FUELLSTAND nicht - der driftet. Das Fahrtende
bleibt bei wert_bei(). Livepfad und Rueckblick benutzen beide die neue
Funktion.

Bereits gerechnete Fahrten behalten ihren Wert: _verbrauch_screenen() fuellt
nur fehlende. Die Neuberechnung kommt mit dem Korrekturwert aus den
Tankvorgaengen, den der Eigentuemer vorgeschlagen hat.

ANZEIGE

Hoechstgeschwindigkeit ohne Nachkommastelle. Statuswort raus aus der
Fahrtenliste - "vollstaendig" sagt dem Nutzer nichts, und "offen" verspricht
Daten, die bei einer laengst abgeschlossenen Fahrt nie mehr kommen; fehlt ein
Wert, steht dort ein Strich.

Strecke und Verbrauch stehen jetzt in einer Spalte: die Wertspalte wuchs mit
dem Inhalt, gemessen 86px gegen 37px, und die Zahlen standen versetzt. Feste
Mindestbreite in beiden Oberflaechen, nachgemessen alle Zeilen 92px.

Verifiziert: py_compile, Panel als Modul, tsc --noEmit sauber, 165/165 Tests,
wert_ab() gegen vier Randfaelle, im Browser nachgesehen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-01 21:13:43 +02:00
parent ce287ccac2
commit 78a8017e95
11 changed files with 64 additions and 18 deletions
@@ -41,6 +41,7 @@ from .verlauf import (
route_aus_verlauf,
verbrauch_aus_literstaenden,
verlauf_lesen,
wert_ab,
wert_bei,
)
@@ -338,13 +339,12 @@ async def _verbrauch_screenen(
if not verlauf:
return
# wert_bei() aus demselben Grund wie beim Kilometerstand (siehe Modulkopf):
# der Tankstand zu Fahrtbeginn ist der zuletzt DAVOR gemeldete, nicht der
# zeitlich nächstgelegene - der läge womöglich schon in der Fahrt und hätte
# einen Teil des Verbrauchs vorweggenommen. historienimport.py liest ihn
# seit jeher so.
# Anders als beim Kilometerstand: fuer den Tankstand gilt der erste Wert AB
# dem Fahrtbeginn, nicht der letzte davor. Ein Fuellstand ist keine
# Zaehlung, er driftet im Stand - siehe wert_ab() in verlauf.py fuer die
# Messung, die das gezeigt hat. Das Ende bleibt bei wert_bei().
verbrauch = verbrauch_aus_literstaenden(
wert_bei(verlauf, start), wert_bei(verlauf, ende), fahrt.get("distance_km")
wert_ab(verlauf, start), wert_bei(verlauf, ende), fahrt.get("distance_km")
)
if verbrauch is not None:
await k.ablage.fahrt_aktualisieren(fahrt["trip_id"], {"verbrauch_l_100km": verbrauch})