> ## Documentation Index
> Fetch the complete documentation index at: https://docs.heywavey.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Device-Free Occupancy Detection with WiFi CSI

> Detect whether a room is occupied or empty using change-point detection against a learned WiFi CSI baseline. No cameras, wearables, or device counting required.

Wavey answers the most useful sensing question with a single bit: is anyone here? Binary occupancy detection compares live Channel State Information against an empty-room baseline. When the deviation exceeds a threshold sustained over a window, the space is declared occupied. No cameras, wearables, or MAC address counting is involved.

## Change-point detection on a baseline

Wavey learns an **empty-room baseline**: the mean amplitude profile, typical subcarrier variance, and phase structure when no one is in the space. Live CSI compared against this reference uses **change-point detection**. When the deviation exceeds a threshold sustained over a window, occupancy is declared.

An alternative feature family from the building-energy literature uses **signal tendency index (STI)** — shape similarity between adjacent CSI amplitude curves — with greedy subcarrier selection to pick frequencies most responsive to human presence. WiFree reported 99.1% occupancy detection on building-scale deployments. The mechanism differs from a single variance threshold, but the decision is the same: is the current CSI pattern consistent with an empty room?

The signal does not need to be clean. It needs to be different from empty. A person sitting still perturbs multipath enough to shift the baseline; breathing adds a periodic micro-Doppler component that an empty room never produces.

Threshold selection trades sensitivity against false triggers from environmental drift (HVAC cycling, a door opening). Hysteresis — requiring sustained deviation before flipping state, and sustained return before clearing — prevents flickering at the boundary.

## Why binary occupancy is the sweet spot

Occupancy is robust because the decision boundary is wide:

> **Noise tolerance**
>
> You do not need to classify what happened, only that something happened.

> **Single-link sufficiency**
>
> One TX-RX pair can detect presence in the channel; spatial diversity helps but is not required.

> **Low label burden**
>
> Empty vs occupied is easy to label or self-supervise from known-empty periods.

This is why building energy systems and smart-home HVAC start here. The [detection ladder](https://docs.heywavey.tech/concepts/detection-ladder.md) places occupancy at rung 2 — the first task that works reliably on commodity hardware.

## Not the same as phone counting

MAC-address analytics count devices, not people. One person with a phone, watch, and laptop registers as three. Five people sharing one laptop register as one. Device identifiers can constitute personal data under GDPR.

CSI occupancy reads how bodies disturb the radio field — no identifiers, no device dependency. Everyone in the space is detected whether or not they carry anything. For analytics semantics, see [occupancy analytics](https://docs.heywavey.tech/use-cases/occupancy-analytics.md).

## Building and HVAC control

Occupancy-aware HVAC does not need person count. It needs a reliable signal that the space is in use — including when occupants are still. A conference room with six people sitting quietly should not trigger ventilation shutdown because no one is waving.

CSI occupancy provides that hold signal. Pair it with motion for activity-responsive scenes in [smart-home automation](https://docs.heywavey.tech/use-cases/smart-home-automation.md).

## Further Reading

> **[Device-Free Occupancy Sensing Explained](https://docs.heywavey.tech/posts/device-free-occupancy-sensing-explained.md)**
>
> Baselines, drift, and cross-site transfer

> **[Sensing Pipeline](https://docs.heywavey.tech/concepts/sensing-pipeline.md)**
>
> Preprocessing before occupancy inference

> **[Getting Started](https://docs.heywavey.tech/getting-started.md)**
>
> Set up your first Wavey deployment

> **[Detection Ladder](https://docs.heywavey.tech/concepts/detection-ladder.md)**
>
> Where occupancy sits in the sensing hierarchy


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.