Skip to content

v0.8.5 — Fix trend flashing back to flat on the very next unrelated render

Choose a tag to compare

@Blogshot Blogshot released this 15 Sep 08:37
· 7 commits to main since this release

Fix

Der eigentliche, letzte Baustein im "Trend-Pfeil bleibt neutral"-Fall. Gefunden über einen echten DOM-Snapshot: Weight zeigte trend-flat, obwohl der Sensor sich nachweislich geändert hatte (74.95 → 75.2 kg) und die History-Anfrage korrekt formatiert war und echte Daten zurückgab.

Ursache: update() hat bei jedem Aufruf den Vergleichswert bedingungslos auf den aktuellen Wert überschrieben — auch in genau dem Render, der gerade "up" berechnet hatte. Home Assistant ruft den hass-Setter (und damit ein Re-Render dieser Karte) ständig für Entitäten auf, die mit dieser Karte nichts zu tun haben — deutlich häufiger, als openScale-sync neue Werte veröffentlicht. Der nächste dieser fremden Re-Renders verglich den (unveränderten) Wert mit sich selbst und bekam "flat" — der "up"-Pfeil war binnen Sekundenbruchteilen wieder weg.

Fix: Der Vergleichswert wird nur noch bei einer echten Änderung weitergerückt; ein berechneter Trend wird zwischengespeichert und bei unverändertem Wert einfach wiederverwendet, statt neu (und falsch) gegen sich selbst berechnet zu werden.

Verifiziert mit einer Headless-Chrome-Reproduktion der echten Kartenkonfiguration, die 30 zusätzliche, fremde hass-Re-Renders auslöst (vor und nach Auflösen der History-Abfrage) — genau das reale Verhalten einer belebten Home-Assistant-Instanz. Weight und Water bleiben jetzt durchgehend bei ↑/↓ stehen, statt auf → zu verfallen.


Baut auf v0.8.4 auf.

Siehe README für Installation und Konfiguration.