Batteriespannung: Diagramm-Y-Achse fest 10-15V, Plausibilitätsgrenze auf 10V angehoben

Die Y-Achse beider Batteriespannungs-Diagramme (Panel und companion-app) war bisher
aus den sichtbaren Punkten berechnet - jetzt fest 10-15V, auf Nutzerwunsch (zunächst
8-15V, dann auf 10-15V korrigiert). SPANNUNG_MIN_V (batterie.py) auf denselben Wert
angehoben, damit die Plausibilitätsgrenze zur Achse passt - historienimport.py
übernimmt den Wert automatisch, da er von dort importiert statt dupliziert wird.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-27 18:06:12 +02:00
parent f337820fc8
commit b8e560e75b
7 changed files with 46 additions and 24 deletions
@@ -1 +1 @@
{"version":"2026.8.27.1","sha256":"d7cd168032a93ed8430e3a86ee583c635004fc3518eecf0d1e69abd78741ebc4","bytes":235552,"gebaut":"2026-08-27T15:13:25Z"}
{"version":"2026.8.27.3","sha256":"b99d93aae2ff58e58107e04f25edfb590e159f55414c11ba4645e82a36f09108","bytes":235508,"gebaut":"2026-08-27T16:01:36Z"}
@@ -1781,17 +1781,13 @@ function vBatterieverlauf() {
const genug = bvPunkte.length >= 2;
bvVollDomain = genug ? [bvPunkte[0].t, bvPunkte[bvPunkte.length - 1].t] : null;
bvDomain = genug ? [...bvVollDomain] : null;
// Y-Achse einmalig aus allen Punkten festlegen, nicht bei jedem Zoom/Pan
// neu aus den gerade sichtbaren - sonst "streckt" sich die Achse bei jeder
// Geste neu auf den jeweils sichtbaren Min/Max-Ausschnitt.
if (genug) {
let yMin = Math.min(...bvPunkte.map((p) => p.v)), yMax = Math.max(...bvPunkte.map((p) => p.v));
if (yMax - yMin < 0.4) { const mitte = (yMax + yMin) / 2; yMin = mitte - 0.2; yMax = mitte + 0.2; }
const pad = (yMax - yMin) * 0.15;
bvYDomain = [yMin - pad, yMax + pad];
} else {
bvYDomain = null;
}
// Y-Achse fest auf 10-15V (Nutzerwunsch) statt aus den Punkten berechnet -
// deckt den relevanten Bereich ab (12V-Bleibatterie, Ladespannung des
// Alternators mit Reserve), ohne die Plausibilitätsgrenze SPANNUNG_MIN_V=8V
// (batterie.py) selbst als Achsenskala zu übernehmen. Bleibt dadurch auch
// bei jedem Zoom/Pan unverändert, nicht nur "einmalig aus allen Punkten"
// wie zuvor.
bvYDomain = genug ? [10, 15] : null;
const stufen = bvFarbstufen();
const letzter = bvPunkte.length ? bvPunkte[bvPunkte.length - 1] : null;