Batteriespannung: 8V-Plausibilitätsgrenze; Fahrten: echte Start-/Zielposition und Streckenlinie

Batteriespannung: Werte unter 8V (Sensor-/Verbindungsfehler, nicht physikalisch
plausibel für eine 12V-Bleibatterie) werden nicht mehr erfasst - live und beim
Import. "Neue Räder anlegen"-Knopf sitzt jetzt auf derselben Zeile wie "Montiert".

Fahrten: start_lat/-lon, end_lat/-lon und route wurden bisher nur beim
rückwirkenden Import befüllt, nie bei live erkannten Fahrten (dem Normalfall) -
Screening trägt sie jetzt aus dem GPS-Verlauf nach, unabhängig vom
Kilometerstand-Status. fakeTrack() (eine erfundene Linie) ist entfernt, die
Karte zeichnet jetzt die echte Route oder eine ehrliche Gerade zwischen den
bekannten Punkten. CARTOs anonyme Kartenkacheln verlangen inzwischen einen
API-Schlüssel ("API key required" auf jeder Karte in beiden Apps) - auf
schlüssellose OpenStreetMap-Kacheln umgestellt. Start/Ziel zeigen jetzt Datum
und Uhrzeit über der Adresse; die fehlerhafte "Status"-Zeile ist entfernt.
Batteriespannungs-Diagramm nutzt auf großen Bildschirmen die volle
Spaltenbreite statt einer festen 400px-Deckelung.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
2026-08-27 17:23:32 +02:00
co-authored by Claude Sonnet 5
parent 17149937a6
commit f337820fc8
13 changed files with 328 additions and 77 deletions
+19 -1
View File
@@ -20,11 +20,19 @@ Ladezustands-/Gesundheitsauswertung im Frontend (AGM_RUHE_MAX_V) den
Tagesminimalwert, nicht den Maximalwert.
Es wird bewusst NICHT gefiltert, welche Messwerte gespeichert werden - min UND
max jedes Tages werden roh aufgezeichnet. Die AGM-Ruhespannungs-Grenze wird
max jedes Tages werden roh aufgezeichnet, solange die Messung überhaupt
plausibel ist (siehe SPANNUNG_MIN_V unten). Die AGM-Ruhespannungs-Grenze wird
erst beim Anzeigen angewendet: Tage, an denen selbst der Minimalwert über der
Grenze liegt (Fahrzeug nie im Ruhezustand beobachtet, z. B. bei einer sehr
langen Fahrt), tauchen dort nicht in der Statistik auf.
Eine Ausnahme von "roh aufzeichnen" gibt es: Werte unter SPANNUNG_MIN_V sind
für eine 12V-Bleibatterie physikalisch nicht plausibel (selbst tiefentladen
liegt die Ruhespannung deutlich darüber) und deuten auf einen Sensor-/
Verbindungsfehler statt auf eine echte Messung hin - sie werden gar nicht erst
aufgezeichnet, damit ein einzelner Ausreißer nicht als Tagesminimum in der
Liste und im Diagramm landet.
Ohne zugeordneten BATTERIE_SENSOR passiert hier bewusst nichts, statt
Platzhalter-Nullwerte aufzuzeichnen.
@@ -48,6 +56,10 @@ if TYPE_CHECKING:
_LOGGER = logging.getLogger(__name__)
# Physikalisch plausible Untergrenze für eine 12V-Bleibatterie - darunter ist
# es ein Sensor-/Verbindungsfehler, keine echte Messung (siehe Moduldocstring).
SPANNUNG_MIN_V = 8.0
async def pruefen(k: Koordinator) -> None:
sensor = k.zuordnung.werte.BATTERIE_SENSOR
@@ -60,6 +72,12 @@ async def pruefen(k: Koordinator) -> None:
spannung = float(wert)
except (TypeError, ValueError):
return
if spannung < SPANNUNG_MIN_V:
_LOGGER.warning(
"Batteriespannung %s V unter der Plausibilitätsgrenze (%s V) - nicht erfasst",
spannung, SPANNUNG_MIN_V,
)
return
aussentemp = None
temp_wert = zustand_oder_none(k.hass, k.zuordnung.werte.AUSSENTEMP_SENSOR)