Vacation / away mode: make the house look lived-in while nobody's home #159

Open
opened 2026-09-26 05:02:13 +00:00 by claude-bot · 0 comments
Collaborator

Idea

Holiday travel is exactly when a house sits empty, and an outdoor display switching on at the same second every night looks automated. Away mode varies the lights within bounds, so the pattern looks lived-in.

Behaviour

  • A date range (start and end), set in Settings or from the phone (#154). It could also be driven by Home Assistant presence through #32 later.
  • Jittered transitions: each night's on, dim and off times move by a random offset within a bound, for example ±20 minutes. Keep the jitter inside the envelope's guarantees:
    • never on before a configurable earliest time
    • never past the late-night cut-off
    • the #52 rule that a transition landing after the off is dropped still holds
  • Occasional brightness changes and early-off nights (for example, 1 night in 5 goes off at 22:00), which is what an occupied house actually does.
  • Holiday schemes still win. Away mode varies timing, not what's approved. Christmas Eve is still Christmas Eve. On no-event nights, the default_scheme applies, as today.
  • Non-pixel devices (#156): a porch light on a plug is the most convincing lived-in signal, so away mode should be able to jitter those independently.
  • Deterministic per night. The jitter is seeded from the date, so the scheduler, the calendar preview and the season preview (#151) all agree on tonight's times. Two answers to "when do the lights come on tonight" is the #93 failure again.

Privacy and security note

Away mode is information: its date range tells anyone who can read it when the house is empty.

  • Keep it out of the calendar feed (#16), the config export (#23), webhooks and /metrics, including any gauge that says "away mode on".
  • Only admins can see or set it.

Depends on

  • The watchdog's expected_state(now) resolver (#148), since jittered times must flow through the one resolver.
  • #156, for the porch-light case.

Acceptance

  • With away mode on, nightly times vary within bounds, deterministically per date, and the scheduler, calendar and preview agree.
  • Holiday schemes and approvals are unaffected.
  • The away state appears nowhere outside the admin UI. There is a test for each export path.
## Idea Holiday travel is exactly when a house sits empty, and an outdoor display switching on at the same second every night looks automated. Away mode varies the lights within bounds, so the pattern looks lived-in. ## Behaviour - **A date range** (start and end), set in Settings or from the phone (#154). It could also be driven by Home Assistant presence through #32 later. - **Jittered transitions:** each night's on, dim and off times move by a random offset within a bound, for example ±20 minutes. Keep the jitter inside the envelope's guarantees: - never on before a configurable earliest time - never past the late-night cut-off - the #52 rule that a transition landing after the off is dropped still holds - **Occasional brightness changes and early-off nights** (for example, 1 night in 5 goes off at 22:00), which is what an occupied house actually does. - **Holiday schemes still win.** Away mode varies *timing*, not what's approved. Christmas Eve is still Christmas Eve. On no-event nights, the `default_scheme` applies, as today. - **Non-pixel devices** (#156): a porch light on a plug is the most convincing lived-in signal, so away mode should be able to jitter those independently. - **Deterministic per night.** The jitter is seeded from the date, so the scheduler, the calendar preview and the season preview (#151) all agree on tonight's times. Two answers to "when do the lights come on tonight" is the #93 failure again. ## Privacy and security note Away mode is information: its date range tells anyone who can read it when the house is empty. - Keep it **out of the calendar feed** (#16), the config export (#23), webhooks and `/metrics`, including any gauge that says "away mode on". - Only admins can see or set it. ## Depends on - The watchdog's `expected_state(now)` resolver (#148), since jittered times must flow through the one resolver. - #156, for the porch-light case. ## Acceptance - [ ] With away mode on, nightly times vary within bounds, deterministically per date, and the scheduler, calendar and preview agree. - [ ] Holiday schemes and approvals are unaffected. - [ ] The away state appears nowhere outside the admin UI. There is a test for each export path.
claude-bot added this to the v2.0.0 milestone 2026-09-26 05:02:40 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rbrooks/Iris-WLED#159
No description provided.