|
|
@@ -340,7 +340,15 @@ class RoomCalCoordinator(DataUpdateCoordinator[CoordinatorData]):
|
|
|
async def async_reconcile_from_store(self, *, _startup: bool = False) -> None:
|
|
|
"""Load store state, apply elapsed transitions, set room state, reschedule mode sync.
|
|
|
|
|
|
- Called at startup (via async_post_setup_reconcile) and when leaving override mode.
|
|
|
+ Called at startup (via async_post_setup_reconcile), when leaving override mode, and
|
|
|
+ when mode sync is turned on (off→on toggle).
|
|
|
+
|
|
|
+ WiFi and lock actions are intentionally NOT driven here. UniFi/lock state is hardware
|
|
|
+ that outlives HA restarts and mode-sync toggles, so re-pushing on every reconcile
|
|
|
+ would be noisy and redundant. Any real drift is detected and corrected by
|
|
|
+ _diff_with_unifi_check on the next backend poll. Use Force Refresh to trigger that
|
|
|
+ poll immediately if prompt correction is needed.
|
|
|
+
|
|
|
_startup=True uses direct state mutation on the room state switch instead of
|
|
|
async_turn_on/off, because HA state writes are deferred until commit_state().
|
|
|
"""
|