From 172db54e7a6b004f14ed807d3c3674cb28bf0821 Mon Sep 17 00:00:00 2001 From: Tobi G Date: Thu, 27 Aug 2026 23:23:12 +0200 Subject: [PATCH] Statistik-Icon-Groesse, Batteriediagramm-Ueberarbeitung, Temperatur-Kopplung mit 300s-Fenster, letzte gueltige Spannung als Fallback MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Statistik-Tab-Icon per zentrierter Stauchung an die Fuellflaeche der anderen Tab-Icons angeglichen (Panel + companion-app), auf Nutzerwunsch anschliessend 10% groesser. - Batteriediagramm neu gezeichnet: dynamische viewBox (1 Einheit = 1 Pixel, kein preserveAspectRatio-Verzerren mehr), ein Punkt je Ruhespannungsmessung statt Datumsbeschriftung, Tageshoechstwert nur noch im Tooltip. Generator- spannungen (> AGM_RUHE_MAX_V = 13,0 V, vom Nutzer festgelegt) bleiben aus dem Diagramm aussen vor; der SOC-Kurve-Eckwert "100% / voll" bleibt bei den ursprünglich recherchierten 12,8 V. companion-app auf dieselbe lineare SOC-Interpolation umgestellt (vorher eine abweichende Stufenkurve). - Außentemperatur wird jetzt auch beim Batterieverlauf-Import nachgetragen (vorher nur live) - Kopplung an die naechstgelegene Messung innerhalb NEBENWERT_MAX_ABSTAND_S (verlauf.py), vom Nutzer nach Live-Daten-Analyse auf 300s festgelegt. Merge-Logik in ablage.py ergaenzt: ein erneuter Import kann eine zuvor fehlende Temperatur jetzt tatsaechlich nachtragen, auch wenn sich der Tagesminimalwert selbst nicht aendert. - "Mein Audi"/Zustand zeigt bei unplausibler Live-Messung (z. B. Dongle offline) die zuletzt gemessene Spannung statt "unbekannt". Co-Authored-By: Claude Sonnet 5 --- AGENTS.md | 275 ++++++++++++++++++ companion-app/src/screens/Batterie.tsx | 156 +++++++--- companion-app/src/symbole.tsx | 11 +- custom_components/audi_dashboard/ablage.py | 14 +- custom_components/audi_dashboard/batterie.py | 31 +- .../audi_dashboard/frontend/app/bundle.json | 2 +- .../audi_dashboard/frontend/app/bundle.zip | Bin 235579 -> 236026 bytes .../frontend/audi-dashboard-app.js | 137 ++++++--- .../audi_dashboard/historienimport.py | 25 +- .../audi_dashboard/manifest.json | 2 +- custom_components/audi_dashboard/verlauf.py | 40 +++ .../audi_dashboard/veroeffentlichung.py | 18 ++ 12 files changed, 626 insertions(+), 85 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 0472845..ebcbbf7 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -3442,6 +3442,281 @@ correctly exceeding `UNPLAUSIBLE_KMH=300` and therefore now rejected; a real pla (`durchschnitt_kmh(22.0, 1200)` → `66.0` km/h) correctly passes through unaffected. No companion-app source changes this round (backend-only). Manifest bumped to `2026.8.27.8`. +## X. Statistik-Tab-Icon zu groß, Batteriediagramm im Breitbildschirm "professioneller" gestaltet (2026.8.27.9) + +**Owner report 1: "statistic icon seems to be too large in comparison to Car icon or Petrol-Station +icon."** Measured live rather than guessed (`getBBox()` on all five rendered tab SVGs in +`audi_ha_test`, all share one `viewBox="0 0 24 24")`: the hand-drawn tab icons (home/audi/trips/fuel) +fill 32-72% of their box - they were drawn with deliberate internal padding, the usual convention for +this icon style. `CI.pollsS` (the Statistik tab's CI icon since section R) is drawn edge-to-edge and +fills 91.7% - a real, measured mismatch, not just a subjective impression. Fixed by wrapping the icon +in a centered `scale(0.7)` (`translate(3.6,3.6) scale(0.7)`, about (12,12)) rather than a special-cased +pixel size - this keeps it correctly proportioned at both of `.tab svg`'s breakpoints (26px mobile, +22px desktop in `audi-dashboard-ios.css`) without maintaining two numbers. Re-measured after the fix: +44.9% fill, now within the sibling range (32-72%), close to "trips" (46.7%). Same mismatch confirmed +and fixed in companion-app's `symbole.tsx` `SymbolStatistik` (parity rule) - it shares the identical +`CI.pollsS` path via the same `Rahmen` wrapper as `SymbolAudi`/`SymbolFahrten`/`SymbolTanken`. + +**Owner report 2: "The Diagram for Battery Voltage shall use the max. available screen wide... find a +solution to make it look professional."** The wide-screen width fix from section U (fixed +`height:${BV_H}px`, `width:100%`, letting only the X-axis stretch) was functionally correct but bare at +772px column width: still only 3 x-axis labels (start/middle/end, computed from fixed fractions +regardless of real pixel width) and a plain unfilled line - looked sparse rather than "finished". +Panel-only, per the same reasoning section R/S already established for this exact chart ("the diagram +in question doesn't exist as a separate wide layout in companion-app" - confirmed with the owner at the +time; `Verlaufsdiagramm` in companion-app's `Batterie.tsx` uses a fixed `height:120px` box with no +wide-layout breakpoint, nothing to change there). Two additions to `bvZeichnen()`, both restrained and +consistent with the project's iOS-HIG direction (Apple's own Health/Stocks charts use exactly this +pattern) rather than a heavier redesign: +- A low-opacity linear-gradient area fill under the line (``, `var(--fg)` + fading `0.16 → 0`), purely decorative, no new information, drawn between the gridlines and the line + so the grid still shows through. +- The x-axis tick count is now computed from the SVG's actual rendered pixel width + (`svg.getBoundingClientRect().width`, ~110px minimum spacing per label, clamped 3-6) instead of a + fixed `[0, 0.5, 1]` - a narrow phone chart still shows 3, the 772px desktop column shows up to 6. + Also added `stroke-linecap="round" stroke-linejoin="round"` to the polyline for cleaner corners. +- Verified live at 1400px: SVG measured 736×170px (fixed height preserved, no distortion regression), + axis text confirmed still 11px (no repeat of the earlier text-scaling bug from section U's `.5` + entry), 6 tick labels generated, gradient ``/area `` both present in the rendered markup. + The test container's actual battery history only spans ~2 days, so several of the 6 labels read the + same day-precision date (`09.08.26`/`10.08.26` repeated) - a property of this container's narrow + synthetic dataset, not a defect in the tick logic itself; a real multi-week history would show 6 + distinct dates. + +Verified: `node --check` clean on the panel JS, companion-app `tsc --noEmit` clean. Manifest bumped to +`2026.8.27.9`, `audi_ha_test` restart confirmed clean via log (single `audi_dashboard` loader warning), +both fixes re-verified live in the browser after the restart (icon fill-percentage measurement above, +chart dimensions/gradient/ticks above). `npm run ota` rerun (companion-app source changed: +`symbole.tsx`), bundle rebuilt at `2026.8.27.9`, sha256 +`66fef05581b26086d76500d864af5704cd568a39474ece47df88fb7c9c51dc50`. + +**Follow-up (2026.8.27.10): Statistik-Icon auf Nutzerwunsch 10% größer** - Faktor 0.7 → 0.77 +(`translate(2.76,2.76) scale(0.77)`), identisch in beiden Codebasen. + +**Follow-up (2026.8.27.11): das Batteriediagramm war immer noch falsch - ein echter Darstellungsfehler +plus ein Filter, der 7 von 9 Messtagen verschluckt hat.** Owner sent a screenshot ("thats still not +fine") plus four instructions: no dates under the diagram, every measurement as a dot, date visible on +click, and zoom must keep working when more dots appear; then a fifth: only the minimum gets a dot, the +maximum appears as text on click. + +Two genuine defects behind the screenshot, both found by measuring rather than by eye: +1. **`preserveAspectRatio="none"` on a fixed 320-unit viewBox distorted everything horizontally.** At + the 736px desktop column that is a 2.3× horizontal stretch applied to the whole coordinate system - + the axis numbers rendered visibly wide (measured: "10,0" ≈ 50px wide at font-size 11), and the six + date labels from `.9` collided with each other because their text stretched while their anchor + spacing did not. This is the same class of bug as section U's `.5` entry (text scaling with the + coordinate system), which was fixed there by pinning the height - the horizontal axis had the same + problem and was missed. Fixed properly this time: `bvZeichnen()` measures the rendered width and + sets `viewBox="0 0 170"`, so **one coordinate unit is exactly one pixel** and + nothing can distort at any width; `preserveAspectRatio` is removed entirely. `BV_W` is now only a + starting value (`bvBreite` holds the live width), `bvSkalaX()`/the gridline width use `bvBreite`, + and `bvPlotRahmen()` collapsed to plain pixel arithmetic. A `ResizeObserver` on the SVG redraws on + window resize, so the viewBox cannot go stale (setting the viewBox does not change the element's + size, so no feedback loop). +2. **The chart filtered out every day without a resting-voltage reading.** `bvPunkte` was built with + `e.min != null && e.min <= AGM_RUHE_MAX_V` - so days where the car never stood still long enough + (minimum still above 12,8 V, i.e. alternator voltage) vanished from the chart completely. In the + test container that reduced 9 recorded days to **2**, which is exactly the near-empty two-dot chart + in the owner's screenshot, and why the range read "09.08.26 – 10.08.26" instead of the real + 09.08–25.08. The filter is dropped for the chart (owner: "every Battery-Measurement as a dot"); the + values that genuinely need resting voltage keep it via a **new, separate `bvRuhePunkte`** - the SOC + readout (`letzter`) and `bvSohBewertung()` both switched to it, otherwise a generator reading would + have shown a permanent "100 % · Sehr gut". + +Per the owner's instructions: the x-axis date labels are gone entirely (the period still stands under +the chart as `#bvRange`, and a single measurement's date/time comes from tapping its dot); one dot per +recorded day, drawn at the **minimum** only; the tooltip now reads +`18.08.2026 · 08:57 Uhr · Min 13,02 V · Max 13,47 V` (plus outside temperature when recorded) - that is +where the maximum lives now, it has no dot of its own. `BV_MB` dropped 22 → 12 since nothing is written +under the plot any more. Zoom/pan is untouched and confirmed still working. + +**companion-app (parity rule):** its chart never had defect 2 (it already filtered only `min != null`, +no AGM cut) and had no date labels either, so those two needed nothing. It *did* differ on the owner's +other two points: no dots at all, and the daily maximum drawn as a permanent second grey line. Ported: +one `` per measurement, the max line removed, tap-a-dot shows the same +date/time/Min/Max/temperature line underneath, and the same dynamic-viewBox treatment (measured width + +`ResizeObserver`, `preserveAspectRatio="none"` removed) - needed there too, because with `none` the new +dots would have rendered as horizontally stretched ellipses. **Zoom/pan was deliberately NOT ported**: +the panel's pinch/wheel/drag handling is ~150 lines of pointer bookkeeping (`bvZeiger`/`bvGestStart`/ +`bvDomainKlemmen`) with no counterpart in companion-app, and building it there is its own work package +rather than part of this fix - flagged here per the parity rule's "say so explicitly" clause instead of +being left silently undone. + +Verified live in `audi_ha_test` at a 1400px viewport after the restart (`2026.8.27.11 eingerichtet`, +clean log): `viewBox="0 0 736.0 170"` against a 736px-wide element (exactly 1:1, `preserveAspectRatio` +absent), **9 dots** instead of 2, the only remaining `` elements are the four y-axis labels +(`10,0 / 11,7 / 13,3 / 15,0` - no dates), range label now spans the true `09.08.26 – 25.08.26`, and +"10,0" measures **21,7 × 12 px** (undistorted at font-size 11; it was ~50px wide before). A synthetic +pointerdown/up on the 6th dot produced the tooltip quoted above. Five wheel-zoom steps narrowed the +range to `14.08.26 – 20.08.26` showing 4 dots, and "Zoom zurücksetzen" restored the full range - +zoom confirmed intact. companion-app: `tsc --noEmit` clean, suite green at 146/146 (the +render-every-page smoke test covers the reworked chart), `npm run ota` rebuilt at `2026.8.27.11`, +sha256 `d0f77e854a2664331314ffc64a26712e0982c80e145aed7b25cabc41907e5974`. + +**Follow-up (2026.8.27.12): the two codebases' SOC (Ladezustand) curves disagreed.** Owner asked "how is +soc calculated" - answering it surfaced that the panel (`bvSocProzent()`, 11-point linear interpolation) +and companion-app (`ladezustand()`, a 6-step lookup) genuinely disagreed on the same voltage - worst case +15 percentage points apart (12.1 V: 40% panel vs 25% app), and the app also only ever looked at the +*newest* stored day rather than walking back to the last resting reading like the panel does, so it could +show "—" on a day the panel showed a real number. Owner: "ok use the interpolated for both". Ported the +panel's exact 11-point table and linear-interpolation math into companion-app's `ladezustand()` - +`Batterie.tsx`. **Deliberately NOT ported**: the "walk back to the last resting reading" selection logic +- that's a separate, larger behavior change beyond "align the curve" and wasn't asked for; flagged here so +it isn't mistaken for done. No dedicated tests referenced the old stepped values (grepped first), so +nothing else needed updating. Verified: `tsc --noEmit` clean, suite green 146/146. + +**Follow-up (2026.8.27.13): the battery temperature field, why it was always empty, and two real "match +must be close in time" gaps found and fixed.** Owner: "i cant see any temperature at the battery" - +investigated live rather than assumed. Root cause was mundane: `AUSSENTEMP_SENSOR` was correctly mapped +and healthy (30°C, fresh), but the FMM003 voltage source was offline (dongle down), so every 5-minute +`pruefen()` tick in `batterie.py` was rejecting the reading at the `SPANNUNG_MIN_V=10.0` plausibility +floor **before ever reading temperature** - confirmed via the recurring log line +`Batteriespannung 0.0 V unter der Plausibilitätsgrenze`. Separately, all 9 stored entries predate the +temperature feature (2026-08-25/section R) entirely, so none carry `min_temp_c` regardless. + +Owner pushed back on "nothing to backfill" with "i bet there is a temperature recorded the same time when +the voltage was measured" - correct, and worth the correction: queried the recorder directly rather than +assuming, and outside-temperature history exists for every one of the 9 stored days (recorder now keeps a +year, section F). That exposed a **real, previously-unnoticed gap**: `historienimport.py`'s +`_batterie_importieren()` never fetched `AUSSENTEMP_SENSOR` history at all (`verlaeufe` dict had no +`"aussentemp"` key) - so even running the historical import over that same window would never have +backfilled it. Fixed: `verlaeufe["aussentemp"]` added to `importieren()`'s fetch, and each day's minimum +now looks up the nearest temperature reading via the recorder history, same pattern as the existing +GPS/liter pairing helpers. + +**Then the owner set a hard constraint: "temperature must be same time as voltage. 60 seconds delay is +fine but not longer. is ther always a temperature when voltsge vomes?"** Measured rather than assumed +(live recorder query over 48h on the container's then-mapped `cupra_eu_data_act` temperature sensor): NO +- 22.4% of its own update gaps exceeded 60s, with a max gap of ~36.6 hours (duplicate-timestamp template +sensor, not a real device). That answer justified building a real distance bound rather than trusting an +unbounded nearest-match: +- New `wert_in_naehe(zielzeit, verlauf, max_abstand_s=NEBENWERT_MAX_ABSTAND_S)` in `verlauf.py` - same + nearest-match algorithm as the existing `naechster_wert()`, but returns `None` instead of an arbitrarily + distant value when even the closest point exceeds the bound. `NEBENWERT_MAX_ABSTAND_S = 60`, the owner's + own number, documented as owner-set rather than derived. +- **Import path** (`historienimport.py`): switched from `naechster_wert()` to `wert_in_naehe()` for the + temperature pairing. +- **Live path** (`batterie.py`): this had the same latent gap and nobody had asked about it yet - + `zustand_oder_none()` returns whatever a stale entity's last value was, no matter its age, so a live + reading could just as easily have paired a many-hours-old temperature with a fresh voltage measurement. + Fixed by comparing the two sensors' own `last_updated` timestamps (via `hass.states.get()` directly, + bypassing `zustand_oder_none()`'s attribute-stripping for this one lookup) against each other - not + against wall-clock "now", since both are read from the current `hass.states` snapshot but can carry + different ages. Same `NEBENWERT_MAX_ABSTAND_S` bound, imported from `verlauf.py` (no circular-import risk: + `verlauf.py` has no local imports of its own, unlike the `SPANNUNG_MIN_V` situation elsewhere in this + file that needed a function-local import). +- Verified the boundary itself with a deterministic Python check (`wert_in_naehe()` called directly with + synthetic 3s/60s/61s/36h-offset timestamps) rather than relying on live timing: 3s and 60s pass through + unchanged, 61s and 36h correctly return `None`. + +**Then the owner remapped `AUSSENTEMP_SENSOR` from the flaky `cupra_eu_data_act` sensor to the real FMM003 +CAN sensor and asked to check again.** Confirmed live: the FMM003 temperature and voltage entities update +in the same telemetry batch (~3s median gap between temperature updates, sub-second gap between the two +sensors' own timestamps) - a fundamentally different reliability profile from the old sensor, so the 60s +guard should pass consistently going forward. One caveat surfaced and reported honestly rather than +glossed over: this FMM003 temperature entity's own history only reaches back to ~2026-08-25 (confirmed via +a recorder query for 2026-08-09: zero points), so a re-import can never backfill temperature for the +five oldest stored days (08-09 through 08-24) - only 08-25 onward is reachable with this sensor, no matter +how the import logic is written. + +Attempted a real live write to confirm end-to-end (temporarily POSTing a plausible voltage value on a +repeating interval, same technique used earlier this session), but the owner flagged mid-wait that the +FMM003 itself is currently offline - correctly stopped rather than waiting on a device that was never +going to answer; the interval was cleared and the sensor reset to `0`, confirmed no stray entry was written +to `batteriespannung.jsonl` in the meantime. + +**Owner then asked to "import the available data"** - ran `audi_dashboard.historie_importieren` live +(`2025-08-28` through now) via the real service call. Result (`sensor.audi_dashboard_import_status`): +`batterie_tage: 9`, plus one genuinely new entry the live path had never captured on its own +(`2026-08-27`, min 12.149 V / max 15.439 V - real recorder history from earlier the same day, before the +dongle went offline). Its `min_temp_c` came back `null`; verified this is correct, not a bug - the nearest +FMM003 temperature reading to that day's exact minimum timestamp was **180 seconds** away (25 points in a +60-minute window around it, so the sensor was reporting, just not within the 60s bound at that specific +moment). The 9 pre-25-08 entries stayed without temperature, exactly as predicted by the FMM003 history-gap +finding above - not a defect, the data genuinely isn't there for that sensor over that window. + +Verified throughout: all touched Python files `py_compile` clean via the container (`verlauf.py`, +`historienimport.py`, `batterie.py`), companion-app `tsc --noEmit` clean and suite green 146/146, +`audi_ha_test` restarted clean at each step ending on `2026.8.27.13` (single `audi_dashboard` loader +warning, no traceback). `npm run ota` rebuilt at `2026.8.27.12`, sha256 +`5ef88ee826431b5b2cff5020c83430be88d729b51284459f36a5388963e441f3` (companion-app source changed for the +SOC curve; `.13`'s backend-only changes needed no OTA rebuild). + +**Follow-up (2026.8.27.14): `NEBENWERT_MAX_ABSTAND_S` raised from 60s to 300s, with real FMM003 telemetry +as the reason - not a guess.** Owner suspected voltage and temperature were being compared across the +wrong sensors; investigated rather than assumed - confirmed via `config/entity_registry/list` that both +`external_power_voltage` and `can_ambient_air_temperature` belong to the same single FMM003 device +(`device_id 3667296563855653c6895ed57b6b9030`, platform `flespi`) - no duplicate device, no sensor mixup. +Also double-checked against a documented past mistake in this file (section B): confirmed `voltage` used +`external_power_voltage` (the car's 12V bus), not `battery_voltage` (the FMM003's own internal backup +cell) - both exist on this device and are easy to conflate. + +Owner then asked why there'd be any delay at all if both come from the same device. Answer, grounded in +a live-pulled table rather than general knowledge: a GPS/telematics tracker like the FMM003 reads dozens +of independent CAN parameters (70+ entities on this one device) and transmits them at different rates to +save cellular data - voltage changes constantly and gets reported often, ambient temperature barely moves +and gets reported rarely. Measured over 46h: 851 voltage state-changes vs. 187 temperature state-changes +on the same device. Pulled an actual table for the owner's named 12:00-13:00 local drive (`t-da363d681915`, +resampled to one row per minute, collapsed into ranges): normal (non-blackout) temperature gaps of 8s, +19s, 34s, 174s, and **593s** all occurred during otherwise-healthy reporting - not a connectivity problem, +just the device's own per-parameter reporting cadence. Separately, a real 45-minute stretch +(10:14-10:59 UTC) showed **both** sensors going completely silent at once - a genuine connectivity +dropout, the same root cause already documented in section P, not a reporting-cadence issue. + +Recommended widening the window from 60s to 300s (5 minutes) on three grounds: (1) the worst *normal* +gap measured was 593s, so 60s was rejecting healthy pairings, not just genuinely stale ones; (2) outside +air temperature is physically slow-changing, so several minutes of staleness introduces negligible real +error, unlike GPS position or the voltage reading itself; (3) `batterie.py`'s `pruefen()` only runs every +5 minutes anyway, so demanding sub-minute precision from the pairing doesn't buy anything the measurement +itself doesn't already lack. Owner picked 300s over the alternative 600s suggestion. `NEBENWERT_MAX_ABSTAND_S` +in `verlauf.py` changed `60 → 300`; `wert_in_naehe()`'s own algorithm is unchanged (still "nearest in +time, `None` if even the closest point exceeds the bound") - only the bound moved, confirmed via the same +kind of deterministic boundary test as the `.13` entry: 299s/300s pass, 301s and the real 593s/2700s cases +correctly return `None`. + +Verified: `py_compile` clean on `verlauf.py`, `audi_ha_test` restarted clean on `2026.8.27.14` (single +`audi_dashboard` loader warning, no traceback). No companion-app source changed this round (the constant +lives only in the backend), so no OTA rebuild needed. + +**Follow-up (2026.8.27.15): a real merge-logic bug meant the `.14` widening could never actually backfill +anything - re-running the import kept showing `min_temp_c: null` even for entries the new 300s window +should have caught.** Owner: "i still dont see a single temperature at a measured voltage." Traced to +`ablage.py`'s `batterieverlauf_tageswert_aktualisieren()`: it only ever wrote `min_temp_c` inside the +`if spannung < eintrag["min"]:` branch - i.e. only when a measurement set a *new, lower* minimum. Re-running +the import over an already-recorded day computes the exact same historical minimum it found before (same +source data, deterministic), so `spannung < eintrag["min"]` is always `False` on a second pass - the branch +that would apply the newly-reachable temperature never ran, no matter how wide `NEBENWERT_MAX_ABSTAND_S` +got. This directly contradicts the `.13` entry's own docstring claim ("ein erneuter Import ... ergänzt sie +dort nachträglich") - that claim was aspirational, not actually true, until this fix. Added an `elif` +branch: `spannung == eintrag["min"] and eintrag.get("min_temp_c") is None and aussentemp is not None` → +fill in `min_temp_c` without touching `min`/`min_ts` (they're already correct; only the temperature was +ever missing). Live and import paths both benefit automatically - no separate change needed in either +`batterie.py` or `historienimport.py`, both already call through this one shared function. + +**Verified by actually re-running the import, not just by re-reading the code:** before the fix, all 9 +importable entries still showed the state from the `.13`-era import (only `2026-08-27` even attempted, +and it alone stayed `null` at 180s > the then-60s bound). After deploying `.15` and re-running +`audi_dashboard.historie_importieren` over the same window: **6 of the 9 entries now carry a real +`min_temp_c`** (08-15: 26.0°C, 08-17: 26.0°C, 08-23/24/25/27: 20.0°C) - direct proof the fill-in-gap logic +works, not just that it compiles. Two entries (08-16, 08-18) still show no temperature - checked why rather +than assuming a bug: a first ±3h recorder query for both returned suspiciously identical `10800.0s` +(exactly 3h) distances, which turned out to be an artifact of that query window's own edge, not the true +nearest point. Widening to ±24h found the real answer: the nearest FMM003 temperature reading is **14.7h** +away for 08-16 and **13.8h** away for 08-18 - genuinely no temperature data near those specific moments on +the device's side, unrelated to the 300s bound or this fix. The two oldest entries (08-09, 08-10) remain +without temperature for the already-documented reason in the `.13` entry (FMM003 history starts ~08-25 for +this specific test device... **correction**: the temperature history actually reaches back to at least +08-15, per this round's own findings - the `.13` entry's "history starts ~08-25" claim was based on a +single spot-check at 08-09 and turned out to be an overgeneralization; the accurate statement is simply +"no temperature data near this specific moment," checked per-day rather than assumed as a blanket cutoff +date. Worth remembering: a live spot-check at one date does not establish a device's reporting start date - +check the specific timestamp that actually matters. + +Verified: `py_compile` clean on `ablage.py`, `audi_ha_test` restarted clean on `2026.8.27.15` (single +`audi_dashboard` loader warning, no traceback), re-running the import produced the 6-of-9 result quoted +above via direct file inspection, not just a trusted service-call return. No companion-app source changed +(backend-only), no OTA rebuild needed. + --- ## Working conventions (observed — keep them) diff --git a/companion-app/src/screens/Batterie.tsx b/companion-app/src/screens/Batterie.tsx index 124e000..c19f2b4 100644 --- a/companion-app/src/screens/Batterie.tsx +++ b/companion-app/src/screens/Batterie.tsx @@ -7,11 +7,11 @@ * * Wichtig für die Einordnung: Der Ladezustand wird aus der **Tagesminimum**- * Spannung geschätzt (Ruhespannung kurz nach dem Start, bevor die Lichtmaschine - * anhebt); Werte über 12,8 V gelten als „während der Fahrt gemessen" und + * anhebt); Werte über 13,0 V gelten als „während der Fahrt gemessen" und * taugen nicht als Ruhewert. */ -import { useEffect, useState } from "react" +import { useEffect, useRef, useState } from "react" import { IconButton, Tile } from "@audi-dash/ui" @@ -28,29 +28,46 @@ interface Tageswert { max: number | null min_ts?: string max_ts?: string + min_temp_c?: number | null } -/** Ab hier gilt eine Messung als nicht mehr in Ruhe aufgenommen - alles - darüber ist schon Lichtmaschinenspannung, nicht mehr Ruhespannung. Auch - von BatterieListe.tsx verwendet, für die "Generatorspannung"-Kennzeichnung - dort - eine einzige Schwelle für beide Ansichten. */ -export const AGM_RUHE_MAX_V = 12.8 +/** Ab hier gilt eine Messung nicht mehr als Batterie(ruhe)spannung, sondern + schon als Generatorspannung - vom Nutzer direkt festgelegt ("max voltage + for AGM Battery is 13V, everything above is the generator"), identisch + mit AGM_RUHE_MAX_V im Panel (audi-dashboard-app.js). Getrennt von + LADEKURVE unten: eine Messung zwischen 12,8 und 13,0 V zählt hier noch als + gültige Batteriemessung (Diagrammpunkt, fließt in den Trend ein), zeigt + aber weiterhin 100 % Ladezustand ("12,8v voll was already right" - der + Nutzer bestätigte den ursprünglichen 12,8-V-Eckwert ausdrücklich). Auch + von BatterieListe.tsx verwendet, für die "Generatorspannung"- + Kennzeichnung dort - eine einzige Schwelle für beide Ansichten. */ +export const AGM_RUHE_MAX_V = 13.0 -/** Spannung → Ladezustand für eine AGM-Batterie in Ruhe. */ +/** Spannung → Ladezustand für eine AGM-Batterie in Ruhe, linear zwischen den + Stützstellen interpoliert - identische Tabelle und Rechenweg wie im Panel + (`bvSocProzent()`/`BV_SOC_TABELLE`, `audi-dashboard-app.js`), auf + Nutzerwunsch angeglichen: die vorherige Stufenkurve hier lieferte bei + derselben Spannung teils deutlich andere Prozentwerte als das Panel (z. B. + 12,1 V: 40 % im Panel, 25 % hier) - beide Ansichten sollen bei derselben + Messung dasselbe zeigen. Letzte Stützstelle bleibt bei 12,8 V/100 % - + unabhängig von der oben auf 13,0 V angehobenen AGM_RUHE_MAX_V, siehe + deren eigenen Kommentar. */ const LADEKURVE: [number, number][] = [ - [12.8, 100], - [12.6, 90], - [12.4, 75], - [12.2, 50], - [12.0, 25], - [11.8, 10], + [10.5, 0], [11.8, 10], [11.9, 20], [12.0, 30], [12.1, 40], + [12.2, 50], [12.4, 60], [12.5, 70], [12.6, 80], [12.7, 90], [12.8, 100], ] function ladezustand(spannung: number): number | null { if (spannung > AGM_RUHE_MAX_V) return null - const ersterTreffer = LADEKURVE.find(([v]) => spannung >= v) - if (ersterTreffer) return ersterTreffer[1] - return 0 + const t = LADEKURVE + if (spannung <= t[0]![0]) return 0 + if (spannung >= t[t.length - 1]![0]) return 100 + for (let i = 0; i < t.length - 1; i++) { + const [v0, s0] = t[i]! + const [v1, s1] = t[i + 1]! + if (spannung >= v0 && spannung <= v1) return Math.round(s0 + ((s1 - s0) * (spannung - v0)) / (v1 - v0)) + } + return 100 } export function Batterie({ geheZu }: { geheZu: (name: SeitenName) => void }) { @@ -148,11 +165,34 @@ export function Batterie({ geheZu }: { geheZu: (name: SeitenName) => void }) { ) } -/** Von Hand gezeichnete Verlaufskurve aus Tagesminimum und -maximum. */ +/** Von Hand gezeichnete Verlaufskurve aus dem Tagesminimum, mit einem Punkt je + Messung. Der Tageshöchstwert bekommt bewusst KEINE eigene Linie mehr + (Nutzerwunsch, Parität zum Panel) - er erscheint als Text, sobald ein Punkt + angetippt wird, zusammen mit Datum und Uhrzeit. + + Die viewBox folgt der tatsächlich gemessenen Pixelbreite, statt eine feste + 320er-Fläche mit preserveAspectRatio="none" breitzuziehen: sonst würden die + neuen Punkte auf breiten Anzeigen zu Ellipsen verzerrt (im Panel war + dasselbe Problem an den auseinandergezogenen Achsenzahlen sichtbar). */ function Verlaufsdiagramm({ werte }: { werte: Tageswert[] }) { - const breite = 320 const hoehe = 120 - const rand = 4 + const rand = 8 + const svgRef = useRef(null) + const [breite, setzeBreite] = useState(320) + const [gewaehlt, setzeGewaehlt] = useState(null) + + useEffect(() => { + const el = svgRef.current + if (!el || typeof ResizeObserver === "undefined") return + const messen = () => { + const w = el.getBoundingClientRect().width + if (w > 0) setzeBreite(w) + } + messen() + const beobachter = new ResizeObserver(messen) + beobachter.observe(el) + return () => beobachter.disconnect() + }, []) // Feste Achse 10-15V (Nutzerwunsch): deckt den relevanten Bereich ab // (12V-Bleibatterie, Ladespannung des Alternators mit Reserve). @@ -160,8 +200,7 @@ function Verlaufsdiagramm({ werte }: { werte: Tageswert[] }) { const groesster = 15 const spanne = groesster - kleinster - const x = (i: number) => - rand + (i / Math.max(1, werte.length - 1)) * (breite - 2 * rand) + const x = (i: number) => rand + (i / Math.max(1, werte.length - 1)) * (breite - 2 * rand) // Anteil auf [0,1] geklemmt statt roh extrapoliert - ein Ausreißer außerhalb // von kleinster/groesster zeichnet sich sonst weit außerhalb der Fläche. const y = (v: number) => { @@ -169,25 +208,62 @@ function Verlaufsdiagramm({ werte }: { werte: Tageswert[] }) { return hoehe - rand - anteil * (hoehe - 2 * rand) } - const linie = (auswahl: (t: Tageswert) => number | null) => - werte - .map((t, i) => { - const v = auswahl(t) - return v == null ? null : `${i === 0 ? "M" : "L"}${x(i).toFixed(1)},${y(v).toFixed(1)}` - }) - .filter(Boolean) - .join(" ") + const linie = werte + .map((t, i) => (t.min == null ? null : `${i === 0 ? "M" : "L"}${x(i).toFixed(1)},${y(t.min).toFixed(1)}`)) + .filter(Boolean) + .join(" ") + + const punktWaehlen = (ereignis: { clientX: number }) => { + const el = svgRef.current + if (!el || werte.length === 0) return + const kasten = el.getBoundingClientRect() + const relativ = ereignis.clientX - kasten.left - rand + const schritt = (breite - 2 * rand) / Math.max(1, werte.length - 1) + const index = Math.max(0, Math.min(werte.length - 1, Math.round(relativ / schritt))) + setzeGewaehlt((vorher) => (vorher === index ? null : index)) + } + + const aktiv = gewaehlt != null ? werte[gewaehlt] : undefined + const zeitpunkt = aktiv?.min_ts ? new Date(aktiv.min_ts) : null return ( - - t.max)} fill="none" stroke="var(--fg3)" strokeWidth="1" /> - t.min)} fill="none" stroke="var(--red)" strokeWidth="1.5" /> - + <> + + + {werte.map((t, i) => + t.min == null ? null : ( + + ), + )} + + {aktiv && ( +

+ {[ + zeitpunkt + ? `${datum(aktiv.datum)} · ${zeitpunkt.toLocaleTimeString("de-DE", { hour: "2-digit", minute: "2-digit" })} Uhr` + : datum(aktiv.datum), + aktiv.min != null ? `Min ${de(aktiv.min, 2)} V` : null, + aktiv.max != null ? `Max ${de(aktiv.max, 2)} V` : null, + aktiv.min_temp_c != null ? `${de(aktiv.min_temp_c, 1)} °C` : null, + ] + .filter(Boolean) + .join(" · ")} +

+ )} + ) } diff --git a/companion-app/src/symbole.tsx b/companion-app/src/symbole.tsx index eb8c2de..c73b0d4 100644 --- a/companion-app/src/symbole.tsx +++ b/companion-app/src/symbole.tsx @@ -79,14 +79,21 @@ export function SymbolFahrten({ groesse }: SymbolProps) { } // CI-Symbol polls-s statt der vorherigen handgezeichneten Balken (Parität -// zum Panel, siehe ICONS.stat dort). +// zum Panel, siehe ICONS.stat dort). Anders als die handgezeichneten +// Symbole (die im 24er-Raster deutlich Rand lassen) ist das CI-Symbol +// randlos gezeichnet und wirkte dadurch in der Tableiste sichtbar größer +// als "Fahrten"/"Tanken" - dieselbe zentrierte Stauchung (Faktor 0.77, um +// (12,12), auf Nutzerwunsch 10% größer als die erste Fassung) wie im Panel +// gleicht das aus, siehe ICONS.stat dort. export function SymbolStatistik({ groesse }: SymbolProps) { return ( + + + } /> ) diff --git a/custom_components/audi_dashboard/ablage.py b/custom_components/audi_dashboard/ablage.py index 09e8682..d9511e1 100644 --- a/custom_components/audi_dashboard/ablage.py +++ b/custom_components/audi_dashboard/ablage.py @@ -349,7 +349,17 @@ class Ablage: ihn beim ersten Wert des Tages an, erweitert sonst nur min/max samt dem Zeitstempel der jeweils neuen Extremmessung. min_temp_c wird nur mitgeschrieben, wenn diese Messung auch den Minimalwert setzt - sie - gilt für genau diesen Zeitpunkt, nicht für den Tag insgesamt.""" + gilt für genau diesen Zeitpunkt, nicht für den Tag insgesamt. + + Sonderfall, ohne den ein erneuter Import nichts nachliefern könnte: + meldet ein späterer Aufruf exakt denselben (bereits gespeicherten) + Minimalwert erneut, aber mit einer jetzt verfügbaren Temperatur, wo + vorher keine lag - z. B. weil NEBENWERT_MAX_ABSTAND_S seither + aufgeweitet wurde und die damals zu weit entfernte Temperaturmessung + jetzt innerhalb der Grenze liegt -, wird min_temp_c nachträglich + gefüllt. `spannung < eintrag["min"]` allein hätte das nie erlaubt: + derselbe Wert ist nie *kleiner* als sich selbst, also griff die + Aktualisierung nur beim allerersten Mal.""" async with self._sperre: verlauf = await self.batterieverlauf_lesen() for eintrag in verlauf: @@ -359,6 +369,8 @@ class Ablage: eintrag["min"] = spannung eintrag["min_ts"] = ts eintrag["min_temp_c"] = aussentemp + elif spannung == eintrag["min"] and eintrag.get("min_temp_c") is None and aussentemp is not None: + eintrag["min_temp_c"] = aussentemp if spannung > eintrag["max"]: eintrag["max"] = spannung eintrag["max_ts"] = ts diff --git a/custom_components/audi_dashboard/batterie.py b/custom_components/audi_dashboard/batterie.py index 487ec9a..e332991 100644 --- a/custom_components/audi_dashboard/batterie.py +++ b/custom_components/audi_dashboard/batterie.py @@ -49,6 +49,7 @@ import logging from typing import TYPE_CHECKING from .veroeffentlichung import zustand_oder_none +from .verlauf import NEBENWERT_MAX_ABSTAND_S if TYPE_CHECKING: from .koordinator import Koordinator @@ -79,13 +80,33 @@ async def pruefen(k: Koordinator) -> None: ) return + # Nicht nur "gibt es einen Temperaturwert", sondern "ist er auch aktuell": + # zustand_oder_none() liefert unabhängig vom Alter den zuletzt bekannten + # Zustand - meldet der Temperatursensor seltener als die Spannung (im + # Testbestand teils erst nach 30+ Stunden erneut), würde sonst ein + # beliebig alter Temperaturwert einer frischen Spannungsmessung + # zugeschlagen. Verglichen wird gegen den Zeitpunkt der Spannungsmessung + # selbst (last_updated des Spannungssensors), nicht gegen "jetzt" - beide + # Sensoren werden aus dem aktuellen hass.states-Stand gelesen, können aber + # unterschiedlich alt sein. Grenze und Begründung siehe + # NEBENWERT_MAX_ABSTAND_S (verlauf.py) - vom Nutzer festgelegt. aussentemp = None - temp_wert = zustand_oder_none(k.hass, k.zuordnung.werte.AUSSENTEMP_SENSOR) + temp_sensor = k.zuordnung.werte.AUSSENTEMP_SENSOR + temp_wert = zustand_oder_none(k.hass, temp_sensor) if temp_wert is not None: - try: - aussentemp = float(temp_wert) - except (TypeError, ValueError): - pass + spannung_zustand = k.hass.states.get(sensor) + temp_zustand = k.hass.states.get(temp_sensor) + abstand_s = abs((temp_zustand.last_updated - spannung_zustand.last_updated).total_seconds()) + if abstand_s <= NEBENWERT_MAX_ABSTAND_S: + try: + aussentemp = float(temp_wert) + except (TypeError, ValueError): + pass + else: + _LOGGER.debug( + "Außentemperatur %s s von der Spannungsmessung entfernt - nicht mit erfasst", + round(abstand_s), + ) jetzt = datetime.datetime.now(datetime.UTC) heute = datetime.date.today().isoformat() diff --git a/custom_components/audi_dashboard/frontend/app/bundle.json b/custom_components/audi_dashboard/frontend/app/bundle.json index 0d874b9..3eaf181 100644 --- a/custom_components/audi_dashboard/frontend/app/bundle.json +++ b/custom_components/audi_dashboard/frontend/app/bundle.json @@ -1 +1 @@ -{"version":"2026.8.27.7","sha256":"4631011c09be09efcdf787ba86ad1bd1fb40006f0d247e8b99b29b0a196f2da3","bytes":235579,"gebaut":"2026-08-27T17:32:23Z"} \ No newline at end of file +{"version":"2026.8.27.17","sha256":"9ccedff2ae407751703713cc91b37bb51124f6fb5b98014ef2ae49659e51de2a","bytes":236026,"gebaut":"2026-08-27T21:03:47Z"} \ No newline at end of file diff --git a/custom_components/audi_dashboard/frontend/app/bundle.zip b/custom_components/audi_dashboard/frontend/app/bundle.zip index 90ab108c35c8c4dc26776a2f8091c6cb54b090cc..64ecc4d769cd0c95ef7bbf3a18ed167d9ed5193a 100644 GIT binary patch delta 94456 zcmV(wKZ
    RNx2bc;AmYW{sUP4c1= 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 GpY%V1h0H$y delta 94069 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

    QiVN; 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 diff --git a/custom_components/audi_dashboard/frontend/audi-dashboard-app.js b/custom_components/audi_dashboard/frontend/audi-dashboard-app.js index 60a3822..655f9b4 100644 --- a/custom_components/audi_dashboard/frontend/audi-dashboard-app.js +++ b/custom_components/audi_dashboard/frontend/audi-dashboard-app.js @@ -1672,19 +1672,46 @@ function vAudi() { Ziehen mit einem Finger, Antippen wählt den nächstgelegenen Messpunkt. bvZeichnen() aktualisiert nur die SVG/Tooltip-Inhalte (kein render()), damit Zoom/Pan flüssig bleiben. */ +/* bvPunkte enthält nur Ruhespannungs-Messwerte (<= AGM_RUHE_MAX_V) - sowohl + Grundlage für Ladezustand/SOH-Trend als auch für das Diagramm selbst. + Generatorspannungen (> AGM_RUHE_MAX_V, z. B. 13,01 V) tauchen dort bewusst + nicht auf (Nutzerwunsch: "13,01 shall be generator und not part of the + diagram") - anders als in einer Zwischenfassung, die kurzzeitig jede + Messung zeichnete; die Messwertliste (vBatterieliste()) zeigt weiterhin + ausnahmslos alle Tage samt "Generatorspannung"-Kennzeichnung, sie liest + direkt aus BATTERIEVERLAUF, nicht aus bvPunkte. */ let bvVollDomain = null, bvDomain = null, bvPunkte = [], bvAusgewaehlt = null, bvYDomain = null; const bvZeiger = new Map(); // pointerId -> {x,y}, für Pinch (2 Finger) vs. Pan (1 Finger) let bvGestStart = null; // {type:"pan"|"pinch", ...Ausgangswerte der Geste} let bvTapKandidat = null, bvBewegtSeit = false; -const BV_W = 320, BV_H = 170, BV_ML = 40, BV_MR = 10, BV_MT = 10, BV_MB = 22; +/* BV_W ist nur der Startwert: bvZeichnen() setzt die viewBox auf die + tatsächlich gerenderte Pixelbreite (bvBreite), damit eine Einheit im + Koordinatensystem genau einem Bildschirmpixel entspricht. Vorher stand hier + eine feste 320er-viewBox mit preserveAspectRatio="none" - auf der 736px + breiten Desktop-Spalte wurde dadurch alles um Faktor 2,3 in die Breite + gezogen, sichtbar an den unnatürlich breit gelaufenen Achsenzahlen und an + überlappenden Beschriftungen. BV_MB ist klein, seit die Datumsbeschriftung + unter dem Diagramm entfällt (Datum steht beim Antippen im Tooltip). */ +const BV_H = 170, BV_ML = 40, BV_MR = 10, BV_MT = 10, BV_MB = 12; +const BV_W = 320; +let bvBreite = BV_W; const kurzdat = (d) => d.toLocaleDateString("de-DE", { day: "2-digit", month: "2-digit", year: "2-digit" }); -/* Referenzwerte für AGM-Starterbatterien (12V), recherchiert u. a. bei - aboutdarwin.com/agm-battery-voltage-charts und brsbattery.com - eine volle - AGM-Batterie liegt in Ruhe (min. 2h ohne Last/Ladung) bei 12,8-13,0 V, - 50 % Ladezustand bei 12,2-12,3 V, unter 11,8 V gilt sie als kritisch - entladen. Der Ladealternator liefert im Betrieb üblicherweise 13,5-14,8 V - - deutlich über dem Ruhespannungs-Maximum. +/* Referenzwerte für AGM-Starterbatterien (12V). Zwei unterschiedliche Zahlen, + nicht eine: AGM_RUHE_MAX_V ist die Klassifizierungsgrenze "gilt diese + Messung überhaupt noch als Batterie(ruhe)spannung, nicht schon + Generatorspannung" (Diagramm/SOH-Trend) - vom Nutzer direkt auf 13,0 V + festgelegt ("max voltage for AGM Battery is 13V, everything above is the + generator"). BV_SOC_TABELLE (unten) ist davon unabhängig die + Ladezustands-Kurve selbst - deren "100 % / voll"-Eckwert bleibt bei den + ursprünglich recherchierten 12,8 V (aboutdarwin.com/agm-battery-voltage- + charts, brsbattery.com: volle Ruhespannung), vom Nutzer ausdrücklich + bestätigt ("12,8v voll was already right"). Eine Messung zwischen 12,8 und + 13,0 V zählt also als gültige Batteriemessung (Diagrammpunkt, fließt in + SOH ein), zeigt aber weiterhin 100 % SOC - dieselbe Klemmung, die die + Tabelle für jeden Wert >= ihrem letzten Eckwert ohnehin schon anwendet. Der + Ladealternator liefert im Betrieb üblicherweise 13,5-14,8 V - deutlich über + beiden Grenzen, die Trennung zur Generatorspannung bleibt also eindeutig. Das Backend (batterieverlauf.py) zeichnet pro Tag min UND max roh auf, ohne Filterung - der Sensor meldet künftig mehrfach pro Stunde (aktive @@ -1693,12 +1720,8 @@ const kurzdat = (d) => d.toLocaleDateString("de-DE", { day: "2-digit", month: "2 Moment kurz nach dem Start, bevor der Alternator hochfährt, und ist damit die für den Ladezustand aussagekräftige Größe. Tage, an denen selbst das Minimum über der Grenze liegt (Fahrzeug nie im Ruhezustand beobachtet), - tauchen entsprechend nicht in der Ladezustands-Statistik auf. Die Grenze - liegt bei 12,8 V (voller Ruhezustand laut obiger Recherche) statt z. B. - 13,2 V, weil alles darüber bereits vom Generator stammt, nicht von der - Batterie selbst - solche Werte würden den Ladezustand künstlich zu gut - aussehen lassen. */ -const AGM_RUHE_MAX_V = 12.8; + tauchen entsprechend nicht in der Ladezustands-Statistik auf. */ +const AGM_RUHE_MAX_V = 13.0; const BV_SOC_TABELLE = [ [10.5, 0], [11.8, 10], [11.9, 20], [12.0, 30], [12.1, 40], [12.2, 50], [12.4, 60], [12.5, 70], [12.6, 80], [12.7, 90], [12.8, 100], @@ -1769,12 +1792,17 @@ function bvSohBewertung() { } function vBatterieverlauf() { - // Der Diagrammpunkt und die Kurve bestehen ausschließlich aus dem - // Tagesminimalwert (siehe AGM_RUHE_MAX_V-Kommentar oben) - min_ts ist der + // Ein Punkt je Tag mit einer echten Ruhespannungsmessung (<= AGM_RUHE_MAX_V, + // z. B. 13,0 V), gezeichnet wird der Tagesminimalwert - min_ts ist der // echte Zeitstempel genau dieser Einzelmessung, nicht ein fiktiver - // Tagesmittelpunkt, damit Antippen Datum UND Uhrzeit zeigen kann. - bvPunkte = BATTERIEVERLAUF.filter((e) => e.min != null && e.min <= AGM_RUHE_MAX_V) - .map((e) => ({ t: new Date(e.min_ts).getTime(), v: e.min, vMin: e.min, vMax: e.max, minTs: e.min_ts, datum: e.datum })) + // Tagesmittelpunkt, damit Antippen Datum UND Uhrzeit zeigen kann. Der + // Tageshöchstwert bekommt bewusst KEINEN eigenen Punkt, er steht beim + // Antippen im Tooltip. Tage, deren Minimum über der Grenze liegt (nie + // wirklich in Ruhe beobachtet, sondern nur Generatorspannung), tauchen im + // Diagramm nicht auf (Nutzerwunsch) - die Messwertliste zeigt sie weiterhin + // alle, mit "Generatorspannung"-Kennzeichnung. + bvPunkte = BATTERIEVERLAUF.filter((e) => e.min != null && e.min_ts && e.min <= AGM_RUHE_MAX_V) + .map((e) => ({ t: new Date(e.min_ts).getTime(), v: e.min, vMin: e.min, vMax: e.max, minTs: e.min_ts, datum: e.datum, temp: e.min_temp_c })) .sort((a, b) => a.t - b.t); bvAusgewaehlt = null; bvZeiger.clear(); bvGestStart = null; @@ -1790,7 +1818,9 @@ function vBatterieverlauf() { bvYDomain = genug ? [10, 15] : null; const stufen = bvFarbstufen(); - const letzter = bvPunkte.length ? bvPunkte[bvPunkte.length - 1] : null; + // Ladezustand nur aus der letzten echten Ruhespannung - eine + // Generatorspannung ergäbe sonst dauerhaft "100 % · Sehr gut". + const letzter = bvRuhePunkte.length ? bvRuhePunkte[bvRuhePunkte.length - 1] : null; const soc = letzter ? bvSocProzent(letzter.v) : null; const soh = bvSohBewertung(); const punktFarbe = (status) => (status === "ok" ? "var(--ok)" : status === "warn" ? "var(--warn)" : status === "bad" ? "var(--bad)" : "var(--fg3)"); @@ -1806,7 +1836,7 @@ function vBatterieverlauf() { ${genug ? `

    - +
    @@ -1871,7 +1901,7 @@ function vBatterieliste() { }).join("")}
    `; } -function bvSkalaX(t) { return BV_ML + ((t - bvDomain[0]) / (bvDomain[1] - bvDomain[0])) * (BV_W - BV_ML - BV_MR); } +function bvSkalaX(t) { return BV_ML + ((t - bvDomain[0]) / (bvDomain[1] - bvDomain[0])) * (bvBreite - BV_ML - BV_MR); } /* Auf [0,1] geklemmter Anteil statt roher Extrapolation - ein Punkt außerhalb von yMin/yMax (z. B. ein Ausreißer, der die Plausibilitätsgrenze auf einer noch nicht aktualisierten Instanz umgangen hat) zeichnet sich sonst weit @@ -1890,8 +1920,10 @@ function bvDomainKlemmen(domain) { if (b > bvVollDomain[1]) { b = bvVollDomain[1]; a = b - breite; } return [a, b]; } +/* Eine Koordinateneinheit ist seit der dynamischen viewBox genau ein Pixel + (siehe bvBreite), die Ränder gelten also unskaliert. */ function bvPlotRahmen(rect) { - return { linksPx: rect.left + rect.width * (BV_ML / BV_W), breitePx: rect.width * ((BV_W - BV_ML - BV_MR) / BV_W) }; + return { linksPx: rect.left + BV_ML, breitePx: Math.max(1, rect.width - BV_ML - BV_MR) }; } function bvZeichnen() { @@ -1902,6 +1934,19 @@ function bvZeichnen() { // nicht mehr "streckt". const [yMin, yMax] = bvYDomain; + /* Koordinatensystem an die echte Rendergröße koppeln: eine Einheit = ein + Pixel. Ohne das zog die feste 320er-viewBox mit preserveAspectRatio="none" + auf breiten Spalten alles in die Breite, Achsenzahlen inklusive. + Ein ResizeObserver hält das beim Fensterwechsel nach (die viewBox selbst + ändert die Elementgröße nicht, deshalb keine Endlosschleife). */ + const gemessen = svg.getBoundingClientRect().width; + if (gemessen > 0) bvBreite = gemessen; + svg.setAttribute("viewBox", `0 0 ${bvBreite.toFixed(1)} ${BV_H}`); + if (!svg._bvBeobachtet && typeof ResizeObserver !== "undefined") { + svg._bvBeobachtet = true; + new ResizeObserver(() => bvZeichnen()).observe(svg); + } + // etwas über den sichtbaren Bereich hinaus zeichnen, damit die Linie am // Rand nicht mitten in der Luft abbricht, sondern zum nächsten (Rand-)Punkt // weiterläuft @@ -1911,15 +1956,12 @@ function bvZeichnen() { const gitter = [0, 1, 2, 3].map((i) => { const v = yMin + ((yMax - yMin) * i) / 3, y = bvSkalaY(v, yMin, yMax); - return ` + return ` ${de(v, 1)}`; }).join(""); - const xLabels = [0, 0.5, 1].map((f) => { - const x = BV_ML + f * (BV_W - BV_ML - BV_MR); - const t = bvDomain[0] + f * spanne; - return `${kurzdat(new Date(t))}`; - }).join(""); + /* Keine Datumsbeschriftung unter dem Diagramm (Nutzerwunsch): der Zeitraum + steht als Text unter der Zeichenfläche (#bvRange), das Datum einer + einzelnen Messung erscheint beim Antippen im Tooltip. */ const stufen = bvFarbstufen(); const kreise = rahmen.map((p) => { const idx = bvPunkte.indexOf(p); @@ -1928,8 +1970,20 @@ function bvZeichnen() { r="${gewaehlt ? 4.5 : 2.4}" fill="${bvFarbe(p.v, stufen)}" ${gewaehlt ? 'stroke="var(--fg)" stroke-width="1"' : ""}/>`; }).join(""); + /* Sanfte Flaechenfuellung unter der Linie (wie iOS Health/Aktie-Charts) - + macht aus der duennen Linie auf der jetzt vollen Spaltenbreite ein + "fertiges" Diagramm statt eines leeren Bandes. Rein dekorativ, keine + neue Information; niedrige Deckkraft, damit das Gitter durchscheint. */ + const flaeche = rahmen.length >= 2 + ? `` + : ""; - svg.innerHTML = `${gitter}${kreise}${xLabels}`; + svg.innerHTML = ` + + + ${gitter}${flaeche}${kreise}`; const rangeEl = $("#bvRange"); if (rangeEl) rangeEl.textContent = `${kurzdat(new Date(bvDomain[0]))} – ${kurzdat(new Date(bvDomain[1]))}`; @@ -1939,7 +1993,15 @@ function bvZeichnen() { const p = bvPunkte[bvAusgewaehlt]; const zeit = new Date(p.minTs); tip.style.display = "block"; - tip.textContent = `${dedat(zeit)} · ${zeit.toLocaleTimeString("de-DE", { hour: "2-digit", minute: "2-digit" })} Uhr · Min ${de(p.vMin, 1)} V · Max ${de(p.vMax, 1)} V`; + /* Der Höchstwert des Tages hat bewusst keinen eigenen Punkt im Diagramm + (Nutzerwunsch) - hier ist die Stelle, an der er sichtbar wird. */ + const teile = [ + `${dedat(zeit)} · ${zeit.toLocaleTimeString("de-DE", { hour: "2-digit", minute: "2-digit" })} Uhr`, + `Min ${de(p.vMin, 2)} V`, + ]; + if (p.vMax != null) teile.push(`Max ${de(p.vMax, 2)} V`); + if (p.temp != null) teile.push(`${de(p.temp, 1)} °C`); + tip.textContent = teile.join(" · "); } else { tip.style.display = "none"; } @@ -3622,8 +3684,17 @@ const ICONS = { audi: '', trips: '', /* CI-Symbol polls-s statt der vorherigen handgezeichneten Balken - dieselbe - Fuellflaeche-statt-Kontur-Behandlung wie "audi" (siehe ICONS_VOLL). */ - stat: CI.pollsS, + Fuellflaeche-statt-Kontur-Behandlung wie "audi" (siehe ICONS_VOLL). Anders + als die handgezeichneten Tab-Icons (die im 24er-Raster deutlich Rand + lassen, ~32-47% Fuellflaeche laut Live-Messung per getBBox()) ist das + CI-Symbol randlos gezeichnet (~92% Fuellflaeche) und wirkte dadurch neben + "Fahrten"/"Tanken" sichtbar zu gross. Zentrierte Stauchung auf das + gemessene Grössenverhältnis (Faktor 0.77, um (12,12) - auf Nutzerwunsch + 10% größer als die erste, auf ~45% Fuellflaeche gerechnete Fassung) + statt einer eigenen Icon-Groesse: bleibt so bei jeder Breakpoint-Groesse + (.tab svg 26px/22px) automatisch im richtigen Verhältnis, ohne zwei + Stellen pflegen zu müssen. */ + stat: `${CI.pollsS}`, fuel: '', }; const TABS = [ diff --git a/custom_components/audi_dashboard/historienimport.py b/custom_components/audi_dashboard/historienimport.py index 99aa774..82946f0 100644 --- a/custom_components/audi_dashboard/historienimport.py +++ b/custom_components/audi_dashboard/historienimport.py @@ -52,6 +52,7 @@ from .verlauf import ( verbrauch_aus_literstaenden, verlauf_lesen, wert_bei, + wert_in_naehe, zahl, ) @@ -307,10 +308,26 @@ async def _batterie_importieren(k: Koordinator, verlaeufe: dict) -> dict: Die Ablage führt bestehende und neue Werte pro Tag zusammen (min bleibt min, max bleibt max), deshalb braucht es hier keine eigene Dubletten-Prüfung: ein zweiter Import desselben Zeitraums verändert die - Einträge nicht mehr.""" + Einträge nicht mehr - das gilt auch für die Außentemperatur (siehe unten), + ein erneuter Import über einen bereits importierten Zeitraum ergänzt sie + dort nachträglich, ohne etwas doppelt zu schreiben. + + Trägt bei jedem Tagesminimum auch die Außentemperatur nach, sofern + AUSSENTEMP_SENSOR zugeordnet ist - Parität zur Live-Erfassung + (batterie.py's pruefen()), die das seit ihrer Einführung bereits tut. Bis + zu dieser Korrektur fehlte das hier: verlaeufe["aussentemp"] wurde gar + nicht erst gelesen, ein Import füllte min_temp_c also nie, selbst wenn die + Temperaturhistorie im recorder für denselben Zeitraum längst vorlag. + + wert_in_naehe() statt naechster_wert(): der Temperatursensor dieses + Testbestands meldet teils erst nach 30+ Stunden erneut - ohne Zeitgrenze + würde ein beliebig alter Temperaturwert der frischen Spannungsmessung + zugeschlagen. Siehe NEBENWERT_MAX_ABSTAND_S (verlauf.py) für die vom + Nutzer festgelegte Grenze.""" verlauf = verlaeufe["batterie"] if not verlauf: return {"tage": 0} + aussentemp_verlauf = verlaeufe.get("aussentemp") or [] tage: dict[str, dict] = {} for ts, wert in verlauf: @@ -336,8 +353,11 @@ async def _batterie_importieren(k: Koordinator, verlaeufe: dict) -> dict: for tag in sorted(tage): werte = tage[tag] + aussentemp = ( + wert_in_naehe(werte["min_ts"], aussentemp_verlauf) if aussentemp_verlauf else None + ) await k.ablage.batterieverlauf_tageswert_aktualisieren( - tag, werte["min_ts"].isoformat(), werte["min"] + tag, werte["min_ts"].isoformat(), werte["min"], aussentemp ) await k.ablage.batterieverlauf_tageswert_aktualisieren( tag, werte["max_ts"].isoformat(), werte["max"] @@ -382,6 +402,7 @@ async def importieren(k: Koordinator, start: object, ende: object) -> None: "tank": await verlauf_lesen(k.hass, werte.TANK_SENSOR, von, bis), "tank_liter": await verlauf_lesen(k.hass, werte.TANK_LITER_SENSOR, von, bis), "batterie": await verlauf_lesen(k.hass, werte.BATTERIE_SENSOR, von, bis), + "aussentemp": await verlauf_lesen(k.hass, werte.AUSSENTEMP_SENSOR, von, bis), "lat": await verlauf_lesen(k.hass, werte.STANDORT_LAT_SENSOR, von, bis), "lon": await verlauf_lesen(k.hass, werte.STANDORT_LON_SENSOR, von, bis), } diff --git a/custom_components/audi_dashboard/manifest.json b/custom_components/audi_dashboard/manifest.json index e9f2e5b..7be617a 100644 --- a/custom_components/audi_dashboard/manifest.json +++ b/custom_components/audi_dashboard/manifest.json @@ -1,7 +1,7 @@ { "domain": "audi_dashboard", "name": "Audi Dashboard", - "version": "2026.8.27.8", + "version": "2026.8.27.17", "documentation": "https://gitea.nothaft.cloud/paul/audi-app/src/branch/main/README.md", "issue_tracker": "https://gitea.nothaft.cloud/paul/audi-app/issues", "codeowners": ["@paul"], diff --git a/custom_components/audi_dashboard/verlauf.py b/custom_components/audi_dashboard/verlauf.py index 214fce0..8296474 100644 --- a/custom_components/audi_dashboard/verlauf.py +++ b/custom_components/audi_dashboard/verlauf.py @@ -192,3 +192,43 @@ def naechster_wert( bester_wert = gezahlt beste_diff = diff return bester_wert + + +# Wie lange eine Nebenmessung (z. B. Außentemperatur) höchstens von der +# Hauptmessung entfernt liegen darf, um noch als "zur selben Zeit" zu gelten - +# vom Nutzer auf 300s (5 Minuten) festgelegt, nach ursprünglich 60s. Der +# Wechsel ist an echten FMM003-Daten begründet, nicht geschätzt: das Gerät +# sendet Außentemperatur deutlich seltener als Spannung (an einem +# beobachteten Fahrtfenster 851 Spannungs- gegen 187 Temperaturmeldungen in +# 48h) - selbst bei laufender Fahrt und ohne jede Verbindungsstörung wurden +# reale Lücken bis 593s zwischen zwei Temperaturmeldungen gemessen. 60s hätte +# genau diesen völlig normalen Fall verworfen. Physikalisch unproblematisch: +# die Außentemperatur ändert sich über wenige Minuten kaum, anders als z. B. +# eine GPS-Position oder die Spannung selbst - und die Live-Prüfung +# (batterie.py's pruefen()) läuft ohnehin nur alle 5 Minuten, verlangt hier +# also keine feinere Genauigkeit, als sie selbst liefert. Ein Verbindungs- +# abbruch des Geräts (beobachtet: 45 Minuten, beide Sensoren gleichzeitig +# stumm) bleibt mit 300s weiterhin sicher außerhalb der Grenze und liefert +# bewusst KEINEN Wert statt eines beliebig alten. +NEBENWERT_MAX_ABSTAND_S = 300 + + +def wert_in_naehe( + zielzeit: datetime.datetime, verlauf: list[Verlaufspunkt], max_abstand_s: float = NEBENWERT_MAX_ABSTAND_S +) -> float | None: + """Wie naechster_wert(), aber None statt eines beliebig weit entfernten + Werts, wenn selbst der zeitlich nächste mehr als max_abstand_s von + zielzeit entfernt liegt.""" + bester_wert = None + beste_diff = None + for ts, wert in verlauf: + gezahlt = zahl(wert) + if gezahlt is None: + continue + diff = abs((ts - zielzeit).total_seconds()) + if beste_diff is None or diff < beste_diff: + bester_wert = gezahlt + beste_diff = diff + if beste_diff is None or beste_diff > max_abstand_s: + return None + return bester_wert diff --git a/custom_components/audi_dashboard/veroeffentlichung.py b/custom_components/audi_dashboard/veroeffentlichung.py index 8988281..2380204 100644 --- a/custom_components/audi_dashboard/veroeffentlichung.py +++ b/custom_components/audi_dashboard/veroeffentlichung.py @@ -25,6 +25,16 @@ from homeassistant.core import HomeAssistant from .einstellungen import POSITIONEN, Sensorzuordnung +# Letzte plausible Batteriespannung, für die "Zustand"-Kachel, wenn die +# aktuelle Live-Messung gerade unplausibel ist (Sensor kurzzeitig offline, +# Dongle getrennt o.ä.) - der Nutzer will dort die zuletzt gemessene Spannung +# sehen statt "unbekannt". RAM-only wie andere Laufzeitzustände dieses +# Projekts (siehe die bekannten Lücken zu Fahrtstart/Tankstand): kein Store, +# bewusst - ein Neustart zeigt kurz wieder "unbekannt", bis die nächste echte +# Messung eintrifft, statt einen möglicherweise sehr alten Wert aus einer +# Datei wiederzubeleben. +_letzte_gueltige_spannung: dict[str, float | None] = {"wert": None} + def zustand_oder_none(hass: HomeAssistant, entity_id: str | None) -> str | None: """Sicherer Zustandszugriff. @@ -162,6 +172,14 @@ def fahrzeugstatus(hass: HomeAssistant, werte: Sensorzuordnung) -> dict: # sonst zeigt die "Zustand"-Kachel einen Wert, der im Messwertverlauf # nie auftaucht, weil er dort schon verworfen wird. spannung = None + if spannung is not None: + _letzte_gueltige_spannung["wert"] = spannung + else: + # Nutzerwunsch: statt "unbekannt" die zuletzt gemessene Spannung + # zeigen, wenn der Sensor gerade nichts Plausibles liefert (z. B. + # Dongle offline, meldet dann oft 0 V) - None bleibt nur, solange + # noch nie ein gültiger Wert beobachtet wurde. + spannung = _letzte_gueltige_spannung["wert"] return { "km": _zu_zahl(zustand_oder_none(hass, werte.KM_SENSOR)),