The most common smart-home failure is lights switching off while you are sitting still. The root cause is using motion pulses where presence holds are needed. WiFi CSI provides the hold signal.
Presence-hold vs motion-pulse
| Event type | Semantics | Good for |
|---|---|---|
| Motion pulse | Something moved, now | Triggering on entry, security alerts |
| Presence hold | Someone is here, still | Keeping lights on, HVAC running |
| Absence clear | Space is empty | Shutting down scenes, energy savings |
PIR emits motion pulses. When motion stops, the pulse ends and the automation assumes empty. CSI occupancy and presence detection emit holds — the space remains “occupied” while a still person breathes in it.
Automation platforms should subscribe to hold/clear events, not motion edges, for anything that should persist while a person is present.
Debouncing and hysteresis
Raw CSI flickers at detection boundaries — a person near the edge of coverage, environmental noise, or multipath fading can toggle occupancy rapidly. Production automations need:
- Entry debounce — require N consecutive occupied samples before declaring presence (prevents false triggers from brief noise).
- Exit hysteresis — require M consecutive empty samples before clearing (prevents lights-off while you pause between keystrokes).
- Minimum hold time — once occupied, maintain hold for at least T seconds regardless of brief dips.
These are application-layer concerns on top of Wavey’s raw events. The sensing pipeline produces the signal; your automation logic defines the UX.
HVAC and scene design
Occupancy-aware HVAC needs a sustained signal, not a motion trigger. A home office occupied for three hours of focused work should not cycle ventilation off because the occupant stopped typing.
Wire occupancy holds to climate zones. Use motion pulses for entry scenes (“arrived home” triggers). Layer activity detection only when you need behavior-responsive scenes, not for basic presence.
Integration surface
Wavey emits structured events — occupancy state, motion intensity, presence confidence — suitable for Home Assistant, custom MQTT bridges, or direct API integration. The open-source stack on GitHub documents current event schemas.
Further reading
- Occupancy detection — the hold signal source
- Getting started — deployment architecture
- Comparisons — why PIR fails for presence holds