Fixed
- Baseline anomaly notifications no longer describe every sensor as a power appliance. A humidity, temperature, or other non-power sensor watched by a
baseline_deviation/time_of_day_anomalyrule used to alert as "power higher than expected … Check appliance." It now renders the sensor's own reading with its real unit — e.g. "Playroom Attic Humidity: 65.0% vs usual 49.2% (32% above normal). Worth checking." — with a matching subtitle in English and Czech. Power and energy sensors keep the appliance wording, including sensors that only reveal their power class through their unit (kWh under an exotic device class). - Day-of-week time-of-day alerts show the actual readings again. These findings stored their comparison value under a different evidence key, so the notification always fell back to a value-less "power N% above normal" line; they now show current-vs-expected values like every other baseline alert.
- A single bad sensor reading can no longer silently break anomaly detection for an entity.
nan/infsensor states are rejected at baseline ingestion, previously poisoned stored averages self-heal on the next update instead of propagating forever, and notification rendering degrades gracefully instead of crashing the Sentinel run loop. - Explanations no longer claim a near-zero thermometer "is not drawing power." The LLM explanation guidance for near-zero readings is now conditioned on instantaneous power sensors: the model is instructed never to describe cumulative energy counters (which reset) as "off" and to use neutral "reading is near zero" phrasing for other sensor types. (Prompt guidance, not output validation — the explanation remains model prose.)
- Notification copy hardening. The sensor unit shown in mobile alerts is length-capped and stripped of control/bidi characters before rendering, closing a text-spoofing vector via crafted
unit_of_measurementattributes.