Erklärung SFML: Drift-Monitor Sensor - was ist das?

@Heatseeker

Da Du ja offensichtlich etwas von der Materie verstehst, hier eine etwas technische Erklärung, warum Du einen BUG gefunden hast - der unwahrscheinlich aber nicht ausgeschlossen ist ( sehr sehr selten auftreten kann)

In SQLite sind NULL-Werte in Unique-Constraints nicht gleich, dadurch greift das ON CONFLICT für season IS NULL nicht immer zuverlässig bei Fehlern im Sensor-Input.

Ergebnis:
Es werden immer neue globale 7d/30d-Zeilen geschrieben, aber der Sensor liest ohne ORDER BY irgendeine alte Zeile. Das passiert, wenn es zum Beispiel Sensor-Probleme oder unrealistische Werte gibt / gab.

Das ist leider einer der Einschränkungen bei Home Assistant, einen echten Sanity-Check gibt es nativ nicht. Das habe ich an anderen kritischen Stellen durch eine Zwischenschicht abgefangen, aber ich muss damit sehr behutsam umgehen.

Ich habe mir die Stelle im Code noch einmal angesehen und werde sie im kommenden Update stabilisieren.. aber ein solches Verhalten ist damit nicht zu 100% augeschlossen. Die Sensoren holen jetzt deterministisch die neueste Zeile mit ORDER BY calculated_at DESC, id DESC LIMIT 1. Das ist aber nur eine “Notlösung” da das Problem an andere Stelle Steckt, die nichts mit dem Code zu tun hat

Wirklich vermeiden lässt es sich nur durch zwei Dinge:

  1. Sauber Konfiguration
  2. Home Assistant führt endlich einen eigenen nativen Sanity-Check ein (wie schon seit Jahren gefordert) der unrealistische Werte / starke Veränderungen / unrealiste Werte nicht zulässt oder zumindest warnt.

Ist deine (richtige) Beobachtung damit erklärt.. oder brauchst du noch tiefere mathematische und code-seitige Erläuterungen?

1 „Gefällt mir“