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
@@ -244,6 +244,37 @@ def wert_bei(
return davor
def wert_ab(
verlauf: list[Verlaufspunkt], zeitpunkt: datetime.datetime
) -> float | None:
"""Der erste ab `zeitpunkt` gemeldete Zahlenwert, sonst der letzte davor.
Gegenstueck zu wert_bei(). Fuer einen ZAEHLER ist -zuletzt davor- richtig
(der Kilometerstand aendert sich im Stand nicht), fuer einen gemessenen
FUELLSTAND nicht: der driftet.
Am 01.09.2026 an der Fahrt Eichstaett - Adelschlag nachgemessen. Der
Tankstand stand am Ende der vorigen Fahrt (13:52) auf 36,4 l, beim ersten
Datensatz der neuen Fahrt (16:20:49) auf 36,2 l - in der Standzeit dazwischen
ist niemand gefahren. Diese 0,2 l Setzung wurden der neuen Fahrt zugerechnet:
0,8 l statt 0,6 l auf 6,9 km, also **11,4 statt 8,7 l/100 km**.
Das Fahrtende bleibt bei wert_bei(): dort ist die Fahrt vorbei, und der
letzte waehrend der Fahrt gemeldete Stand ist der richtige - der naechste
kaeme erst Stunden spaeter und traege dieselbe Setzung wieder herein."""
danach = None
for ts, wert in verlauf:
gezahlt = zahl(wert)
if gezahlt is None:
continue
if ts >= zeitpunkt:
danach = gezahlt
break
if danach is not None:
return danach
return wert_bei(verlauf, zeitpunkt)
def route_aus_verlauf(
lat_verlauf: list[Verlaufspunkt],
lon_verlauf: list[Verlaufspunkt],