XDA covered a great weekend project this week: an ESP32 wired to detect motion by watching Wi-Fi signal disturbance, feeding the result into Home Assistant to trigger lights and cameras. The idea is not new (Channel State Information sensing has been in academic papers for years), but the components are finally cheap and the software finally exists. Here are the best desktop apps for Wi-Fi motion sensing in 2026, ranked by how quickly they take you from a bare ESP32 to a working automation.
What matters when building a Wi-Fi motion sensor
Wi-Fi motion sensing works by watching Channel State Information (CSI) or RSSI variance from an ESP32 pinned to your access point. When someone walks through the room, the signal fingerprint changes in ways your firmware can catch. Getting from that raw data to a “kitchen light on” automation takes:
- Firmware that can log CSI or RSSI at a useful rate (10 Hz minimum)
- A message broker (MQTT) so Home Assistant can pick up the events
- A visualizer to tune thresholds before you ship an automation
- A time-series database to keep readings past the last five minutes
- A packet inspector for the moments the signal disappears entirely
Everything below sits somewhere on that pipeline.
Quick comparison
| App | Best for | License | Runs on | Standout feature |
|---|---|---|---|---|
| ESPHome | ESP32 firmware | GPL | Any OS (build), device | YAML-first firmware |
| Home Assistant | The automation brain | Apache 2 | Linux, Docker | Native ESPHome integration |
| Node-RED | Visual automation | Apache 2 | Any OS | Flow-based logic |
| MQTT Explorer | Broker debugging | MIT | Windows, macOS, Linux | Live topic tree |
| Grafana | Dashboards | AGPL | Any OS | CSI heatmaps |
| InfluxDB | Time-series storage | MIT | Linux, Docker | High-cardinality tags |
| Wireshark | Packet inspection | GPL | Windows, macOS, Linux | 802.11 monitor mode |
| PlatformIO | ESP32 build system | Apache 2 | VS Code, CLI | Multi-board build |
The apps
1. ESPHome — best ESP32 firmware
ESPHome turns an ESP32 into a Home Assistant device with a short YAML file. For Wi-Fi motion sensing, community components expose CSI extraction and RSSI logging as simple sensors. Flash from any desktop over USB or OTA.
Where it falls short: CSI sensing is still community-driven, so the YAML for it lives outside the official docs and each new release can require a small rewrite.
Pricing:
- Free: GPL
Platforms: builds on Windows, macOS, Linux; runs on ESP32/ESP8266
Bottom line: the fastest path from a bare ESP32 to a motion-sensor entity in Home Assistant.
2. Home Assistant — the automation brain
Home Assistant is the software the motion sensor feeds. Once ESPHome exposes the sensor, HA sees it natively and can trigger any automation on a threshold crossing. If you don’t already run HA, this is what to install first.
Where it falls short: the automation UI still hides advanced conditions behind YAML, and Wi-Fi motion sensing needs those advanced conditions to smooth false triggers.
Pricing:
- Free: Apache 2
Platforms: Home Assistant OS on a Raspberry Pi or mini-PC, Docker, or a supervised install on Linux
Download: Home Assistant | GitHub
Bottom line: the destination for every reading the ESP32 sends.
3. Node-RED — best visual automation
Node-RED sits next to Home Assistant when logic gets too big for HA’s automation UI. Drag a Wi-Fi motion node, wire it to a debounce, wire that to a light. Every step is visible. When the automation misfires, the visual trace tells you why.
Where it falls short: two engines in one house mean two places to check when a light does not turn on.
Pricing:
- Free: Apache 2
Platforms: Any (Node.js runtime)
Bottom line: the visual layer for a motion automation with more than three conditions.
4. MQTT Explorer — best broker debugging
MQTT Explorer shows the live tree of topics on your broker. When the ESP32 stops publishing, you see it here first. The client also lets you inject test values, so you can trigger an automation without walking through the room.
Where it falls short: the UI hides the QoS field of a message deeper than it should.
Pricing:
- Free: MIT
Platforms: Windows, macOS, Linux
Download: MQTT Explorer | GitHub
Bottom line: the first tool to open when a Wi-Fi motion automation stops firing.
5. Grafana — best dashboards
Grafana turns raw CSI or RSSI streams into readable dashboards. The Wi-Fi signal heatmap over 24 hours makes threshold tuning obvious. Plug in InfluxDB or Prometheus as the data source, and you get panels that reload every second.
Where it falls short: the learning curve is real, and building a good CSI dashboard takes an evening.
Pricing:
- Free: AGPL
- Paid: Grafana Cloud at modest per-user fees
Platforms: Windows, macOS, Linux, Docker
Bottom line: the visualizer that makes tuning motion thresholds a five-minute job.
6. InfluxDB — best time-series storage
InfluxDB stores every CSI reading past the last few minutes. Home Assistant’s built-in history is fine for on/off states; for signal data at 10 Hz, you want a real time-series database.
Where it falls short: the InfluxQL to Flux transition still confuses new users, and disk usage grows fast on high-rate data.
Pricing:
- Free: MIT (v2 open-source edition)
- Paid: InfluxDB Cloud for hosted use
Platforms: Linux, Docker
Bottom line: the storage layer for signal data you want to graph later.
7. Wireshark — best packet inspection
Wireshark is what you reach for when the Wi-Fi motion sensor sees no traffic at all. Put your desktop’s Wi-Fi card in monitor mode (Linux is easiest), and every 802.11 frame lands in front of you. Confirms whether the ESP32 is even seeing frames or if the AP dropped it.
Where it falls short: monitor mode on Windows requires a specific adapter and an npcap driver switch; macOS drops most of the frame details.
Pricing:
- Free: GPL
Platforms: Windows, macOS, Linux
Bottom line: the deepest debugger for when nothing else explains a silent sensor.
8. PlatformIO — best ESP32 build system
PlatformIO compiles firmware for a hundred different boards from one project. If you outgrow ESPHome’s YAML (say, to write custom CSI-processing code in C++), PlatformIO is where you land. Runs as a VS Code extension or a CLI.
Where it falls short: builds are noticeably slower than the Arduino IDE for tiny sketches.
Pricing:
- Free: Apache 2
Platforms: Windows, macOS, Linux (VS Code or terminal)
Download: PlatformIO | GitHub
Bottom line: the graduation step from ESPHome when you want custom code on the ESP32.
How to pick the right one
If you want the fastest path, install ESPHome and Home Assistant and stop there. The community’s Wi-Fi motion component gets you a working sensor in an afternoon. Add MQTT Explorer the first time the sensor goes quiet. Add Node-RED when the automation has more than three conditions. Add Grafana and InfluxDB together when you want to see the signal heatmap and tune thresholds visually. Reach for Wireshark only when a whole channel goes silent. Reach for PlatformIO only if you want to write your own CSI-processing code.
FAQ
Can a $5 ESP32 really detect motion through Wi-Fi?
Yes, within the same room and often through a thin interior wall. Accuracy drops through concrete or across floors. Multiple ESP32s in a mesh give whole-home coverage.
Does Wi-Fi motion sensing replace a PIR sensor?
Not quite. PIR sensors are still cheaper and easier to install. Wi-Fi CSI sensing wins when you want no line of sight, no device on the person, and coverage of a full room from one corner.
Is Home Assistant free?
Yes. Home Assistant Core, Container, and Supervised installs are all free and Apache 2 licensed. Home Assistant Cloud is the paid tier for remote access without a reverse proxy.
What replaces the Wireshark step on macOS?
Wireshark itself runs on macOS, but 802.11 monitor mode on Apple silicon is limited. For deeper capture, boot a Linux live USB or run it on a Raspberry Pi with a compatible adapter.
Can I run this without a Home Assistant server?
Yes. ESPHome can publish directly to any MQTT broker, and Node-RED can consume those topics without HA in the middle. The ESP32 also runs its own web dashboard.