2026.5.2 #460
Replies: 2 comments
-
|
The frustrating thing about the issue was, that I wasn't able to see from what area the messages came. |
Beta Was this translation helpful? Give feedback.
-
|
This is mine, it's not stuck. We're both old, someone is always in the living room a lot and it's used for sleeping. The sensor occupancy clears both PIR and mmWave after no detection for 90 seconds. It's the Aqara FP300 mmWave/PIR sensor. This error originated from a custom integration. Logger: custom_components.area_occupancy.data.health New sensor health issues in area 'Living Room': binary_sensor.living_room_fp300_presence (stuck_active) |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hotfix for repair-panel spam introduced in 2026.5.1
If you upgraded to 2026.5.1 and started seeing recurring
sensor_health_unavailableorpipeline_health_correlation_failurescards in Settings → Repairs — usually with empty descriptions and an Ignore button that didn't make them stick — this release fixes them. The issues were diagnostic, not behavioural: occupancy detection itself was working correctly the whole time.Thanks to @Lavve for the detailed report in #455 — the screenshots and debug logs made every one of these reproducible.
What's fixed
1. Empty repair cards (no description, no "What to do")
The shipped translation file was missing the
issuesblock, so Home Assistant rendered every health repair as title-only with just an Ignore button. The block is now mirrored fromstrings.jsonso cards show the full description and remediation advice.2.
pipeline_health_correlation_failuresfiring during warm-upThe correlation-failure check was treating expected "not enough data yet" states (
no_occupied_intervals,too_few_samples,no_occupied_time, …) as hard errors. On a fresh install — or any time you add a non-motion sensor to an existing area — those states are normal until the integration has accumulated enough history to learn from. The check is now gated onPRIORS_TRAINING_GRACE_PERIOD(7 days), matching the existing warm-up behaviour for time priors and stale-cache checks.3.
sensor_health_unavailablestartup race (the one in the screenshots)The unavailability check measured outage duration from the persisted
entity.last_updated, which can be days old and reflects the last evidence transition, not the current outage. When a source integration like Zigbee2MQTT or ESPHome loads slowly at HA startup — taking longer than the area-occupancy integration itself — every sensor in the area instantly tripped the 1h "unavailable" threshold, even though the outage was 30 seconds old. This also explains the misleading "occurred 2 weeks ago" timestamps some reporters mentioned.The check now tracks outage start in an in-memory map keyed by
entity_id, recorded the first time an entity is observed unavailable in the current session, and cleared on recovery. Pruning logic ensures the map doesn't leak when entities are removed, reclassified, or moved to the excluded list.4. Slow-analysis threshold raised from 30s to 3min
Large installations (lots of correlatable sensors, deep recorder history) can legitimately exceed 30s on the first warm cycle. The threshold was producing false-positive
pipeline_health_slow_analysisrepairs on first install. We'll tighten this back down once we have a baseline distribution from real installations.5. Misleading log line
_update_repair_issueswas printing pipeline-scope events asNew sensor health issues in area 'X': None (correlation_failures)— theNonewas the missingentity_id(pipeline issues aren't sensor-scoped). Sensor-scope and pipeline-scope new-issue announcements are now logged separately, so the message reads correctly for each.Upgrade notes
What's Changed
Full Changelog: 2026.5.1...2026.5.2
This discussion was created from the release 2026.5.2.
Beta Was this translation helpful? Give feedback.
All reactions