Energy Plan – Zero-UI Home Automation (2025)
Purpose
Use energy awareness to quietly optimize comfort and cost without nagging or oscillation. Comfort wins over minor savings.
Desired Outcomes
- Local awareness of grid/generator/solar state and basic costs
- Gentle optimizations (scheduling, setpoint nudges) without user-visible thrash
- Silence by default; alerts only when truly actionable
- Safe behavior when data is missing or stale
Signals
- Primary: utility power state (grid up/down), generator status, inverter/solar data (local polling), whole-home power draw
- Secondary: utility rates (if available), weather for extreme temps
- Derived: available capacity, trend (charging/discharging), “expensive vs cheap” periods
Core Behaviors
- Comfort guard: prevent over-cooling/heating when grid constrained; nudge setpoints gently, with ceilings/floors
- Pre-warm/pre-cool during cheaper/abundant windows (operator-configurable)
- Generator awareness: if on generator, back off noncritical loads; keep comfort; avoid cycling
- EV/large loads: schedule/pause when capacity low; resume when available
- No rapid toggling—changes are infrequent and deliberate
Off/On Logic
- Setpoint nudges only; no aggressive swings
- Minimum dwell times between adjustments; no oscillation
- Manual override respected; do not fight operator adjustments
Notifications
- Allowed when actionable: generator failed to start; inverter offline unexpectedly; grid down + load shedding active
- Rate-limited and suppress repeats
- No “FYI” energy alerts
Fail-Safes
- Data stale/missing → freeze actions; default to comfort-preserving mode
- Internet/utility API down → ignore rates; run local-only behaviors
- HA/MQTT restart → no oscillation on startup; honor last-known safe setpoints
Rollout / Testing
- Observe: log energy states/decisions only
- Assist: suggest/present planned setpoint nudges; no automation
- Apply: enable gentle nudges with dwell and backoff
Naming Examples (one job per automation)
energy.grid.detect_outageenergy.generator.guard_comfortenergy.hvac.nudge_on_rate_windowenergy.ev.defer_on_high_load