Manual Intent First: Building Conflict-Free Modes in Home Assistant

As our Home Assistant setup became more complex, we learned that fixed mode priorities were not always the right solution. The most reliable source of truth is the user’s latest intentional action.

Our home uses Normal, PC, Mac, Wind-down and Sleep modes. These modes are mutually exclusive:

  • Manually enabling PC or Mac mode exits Wind-down and Sleep.
  • Entering Wind-down or Sleep disables PC and Mac mode.
  • When no special mode is active, the room returns to Normal mode.

This reflects real behaviour. If someone manually enables PC mode, they are clearly no longer sleeping. Home Assistant should follow that new intention instead of allowing an older Sleep helper to remain active because it has a higher predefined priority.

Each mode transition therefore follows a complete sequence:

  1. Record the newly selected mode.
  2. Clear incompatible mode helpers.
  3. Stop automations owned by the previous mode.
  4. Clean up the previous mode’s lights and scenes.
  5. Apply the new mode and assign control to the correct sensors.

In Normal mode, room-wide mmWave handles occupancy lighting. In Wind-down and Sleep modes, the main light and normal mmWave lighting logic are disabled, while the under-bed PIR takes over the low-level night-light trigger. PC and Mac modes apply their own ambient-lighting rules.

We encountered a useful Home Assistant pitfall when leaving PC mode: the helper changed correctly, but part of an ambient scene remained on. A scene can apply device states, but it does not remember which mode owns those devices or how they should be cleaned up later.

Our rule became: the newest manual mode selection wins, but every transition must still clean up the previous owner’s devices.

In the future, we may add automatic mode suggestions or transitions using more signals:

  • mmWave and PIR activity
  • computer activity or power consumption
  • time and recent movement patterns
  • bed-related sensors
  • optional locally processed camera observations
  • AI combining several signals into a confidence score

However, automatic inference should remain below explicit user intent. A single sensor event should not immediately override a manually selected mode. A future AI controller should use confidence thresholds, confirmation delays and a manual-override period—and any new manual action should immediately cancel its pending decision.

Automation can estimate context, but the user should always have the final word.

6 Likes

This is a really smart idea. I hope to see continued improvement in this area.

2 Likes