fix(P4): Verlaufskurven skalieren nach Daten, Diagnose ausgebaut (1.10.0) #82

Merged
thomas merged 1 commits from fix/verlaufskurven-und-aufraeumen into main 2026-09-03 17:01:50 +02:00
Owner

Die Sparklines im Dashboard lagen flach auf gleicher Höhe und bewegten sich nicht, obwohl ein Kessel bei 80 °C stand und der andere bei 0.

Ursache: lv_chart_set_range() war an den Sollwert gebunden (soll-60 bis soll+30 in Zehntelgrad). Liegt die Temperatur unter diesem Fenster - beim Aufheizen oder bei abgeschaltetem Kessel -, klemmt LVGL jeden Punkt auf den unteren Rand. Beide Kurven landeten dadurch auf derselben Linie.

  • Neues spark_range_fit(): Ausschnitt aus min/max der vorhandenen Punkte (lv_chart_get_y_array), Mindestspanne DASH_SPARK_MIN_SPAN (40 = 4,0 °C), sonst ein Achtel Luft nach oben und unten.
  • Der zuletzt gesetzte Bereich wird in user_data gemerkt, weil LVGL keinen Getter dafür hat; ohne den Vergleich würde set_range das Diagramm bei jeder Zustandsmeldung invalidieren.
  • Die Charts füllen jetzt den Platz unterhalb der Zahlen (flex_grow 1, min_height 90) statt als 64-px-Streifen mittig zu hängen.

Aufräumen nach der abgeschlossenen Fehlersuche:

  • Herzschlag, [Zustand]- und [Touch]-Messzeilen entfernt.
  • refr_monitor_install() hinter WS7_PERF_MONITOR (aus).
  • scroll_ohne_nachlauf() gibt LV_OBJ_FLAG_SCROLL_MOMENTUM wieder frei.

Beide Panel-Varianten mit arduino-cli gegengebaut.

🤖 Generated with Claude Code

https://claude.ai/code/session_019G95njDFkedFqXiz5sEaJ2

Die Sparklines im Dashboard lagen flach auf gleicher Höhe und bewegten sich nicht, obwohl ein Kessel bei 80 °C stand und der andere bei 0. **Ursache:** `lv_chart_set_range()` war an den Sollwert gebunden (`soll-60` bis `soll+30` in Zehntelgrad). Liegt die Temperatur unter diesem Fenster - beim Aufheizen oder bei abgeschaltetem Kessel -, klemmt LVGL jeden Punkt auf den unteren Rand. Beide Kurven landeten dadurch auf derselben Linie. - Neues `spark_range_fit()`: Ausschnitt aus min/max der vorhandenen Punkte (`lv_chart_get_y_array`), Mindestspanne `DASH_SPARK_MIN_SPAN` (40 = 4,0 °C), sonst ein Achtel Luft nach oben und unten. - Der zuletzt gesetzte Bereich wird in `user_data` gemerkt, weil LVGL keinen Getter dafür hat; ohne den Vergleich würde `set_range` das Diagramm bei jeder Zustandsmeldung invalidieren. - Die Charts füllen jetzt den Platz unterhalb der Zahlen (`flex_grow` 1, `min_height` 90) statt als 64-px-Streifen mittig zu hängen. **Aufräumen** nach der abgeschlossenen Fehlersuche: - Herzschlag, `[Zustand]`- und `[Touch]`-Messzeilen entfernt. - `refr_monitor_install()` hinter `WS7_PERF_MONITOR` (aus). - `scroll_ohne_nachlauf()` gibt `LV_OBJ_FLAG_SCROLL_MOMENTUM` wieder frei. Beide Panel-Varianten mit arduino-cli gegengebaut. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019G95njDFkedFqXiz5sEaJ2
thomas added 1 commit 2026-09-03 17:01:50 +02:00
Die Sparklines im Dashboard lagen flach auf gleicher Höhe und bewegten sich
nicht, obwohl ein Kessel bei 80 °C stand und der andere bei 0.

Ursache: lv_chart_set_range() war an den Sollwert gebunden (soll-60 bis
soll+30 in Zehntelgrad). Liegt die Temperatur unter diesem Fenster - beim
Aufheizen oder bei abgeschaltetem Kessel -, klemmt LVGL jeden Punkt auf den
unteren Rand. Beide Kurven landeten dadurch auf derselben Linie.

- Neues spark_range_fit(): Ausschnitt aus min/max der vorhandenen Punkte
  (lv_chart_get_y_array), Mindestspanne DASH_SPARK_MIN_SPAN (40 = 4,0 °C),
  sonst ein Achtel Luft nach oben und unten.
- Der zuletzt gesetzte Bereich wird in user_data gemerkt, weil LVGL keinen
  Getter dafür hat; ohne den Vergleich würde set_range das Diagramm bei jeder
  Zustandsmeldung invalidieren.
- Die Charts füllen jetzt den Platz unterhalb der Zahlen (flex_grow 1,
  min_height 90) statt als 64-px-Streifen mittig zu hängen.

Aufräumen nach der abgeschlossenen Fehlersuche:
- Herzschlag, [Zustand]- und [Touch]-Messzeilen entfernt.
- refr_monitor_install() hinter WS7_PERF_MONITOR (aus).
- scroll_ohne_nachlauf() gibt LV_OBJ_FLAG_SCROLL_MOMENTUM wieder frei.

Beide Panel-Varianten mit arduino-cli gegengebaut.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019G95njDFkedFqXiz5sEaJ2
thomas merged commit fc0a756127 into main 2026-09-03 17:01:50 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: thomas/Dual-PID#82