Wi-Fi sensing in Home Assistant: ESP32 vs a router CSI platform

2026-10-11 · 1 min read

Home Assistant users want entities, not raw CSI. Two routes work today.

Route A — ESP32 + ESPHome (fastest)

Projects such as ESPectre ship CSI motion/presence as an ESPHome component [2] (built on ESP32 CSI capture [3]):

esphome:
  name: csi-motion
external_components:
  - source: github://<espectre-repo>
binary_sensor:
  - platform: espectre
    name: "Living room motion"

Pros: plug-and-play entity, 20 MHz / 30–64 subcarriers, cheap board. Cons: single-room coverage, extra hardware.

Route B — Router CSI service (whole home, more work)

This project's platform/ (FastAPI + WebSocket + REST/MQTT) is the skeleton (for what CSI sensing can and cannot do, see the field survey [1]):

sensor:
  - platform: rest
    name: "CSI presence"
    resource: http://<platform-host>:8090/api/csi/status
    value_template: "{{ value_json.present }}"
    scan_interval: 5

Pros: whole-home coverage, no extra hardware (the router is already there). Cons: you deploy and calibrate the analysis service.

Reliability tips

Problem Fix
still person reported absent add respiration micro-motion or an mmWave sensor; raise the timeout
thresholds differ per room calibrate per room, store baselines
flapping hysteresis (higher enter threshold, lower exit) + minimum hold time
latency-sensitive push via MQTT/WebSocket instead of REST polling

Related: router CSI guide · Wi-Fi sensing vs mmWave · respiration detection

Please respect consent and local law: no non-consensual surveillance.

References and data sources

Every external claim carries a source and an evidence grade (grading scheme). Grade E marks first-party, reproducible measurements from this project.

  1. Grade A · standard/review WiFi Sensing with Channel State Information: A Survey
    W. Ma, W. Zhou, X. Wang · ACM Computing Surveys · 2019
    doi:10.1145/3310194 · citations 857 · verified: CrossRef API, 2026-10-11 · The field's most-cited CSI sensing survey (857 citations, verified via CrossRef).
  2. Grade C · official docs francescopace/espectre — Wi-Fi CSI motion sensing for ESP32 (ESPHome)
    F. Pace
    github.com/francescopace/espectre · verified: GitHub API 2026-10-11 (stars 9,505)
  3. Grade C · official docs espressif/esp-csi — Applications based on Wi-Fi CSI
    Espressif Systems
    github.com/espressif/esp-csi · verified: GitHub API 2026-10-11 (stars 1,679) · The official README states: "All ESP32 series support CSI, including ESP32 / ESP32-S2 / ESP32-C3 / ESP32-S3 / ESP32-C5 / ESP32-C6 / ESP32-C61."

This page contains affiliate links (rel="sponsored"). Buying through them costs you nothing extra and earns this site a small commission.