Troubleshoot your sensor
Find your symptom, check what the device reports, and fix the most common problems: calibration that never finishes, false or missed motion, and devices you cannot reach.
Sections
Start with the diagnostics
Most problems come from missing Wi-Fi input, not from the detector. Open Live motion, connect to the device, and open Diagnostics. Read the tiles in order: the first one that looks wrong points to the cause.
| Tile | Healthy value | If not |
|---|---|---|
| Traffic TX | About 100 per second | Check the Wi-Fi connection. With Wi-Fi raw, TX and RX stay low; that is expected. |
| Traffic RX | Close to Traffic TX | The router blocks or limits the traffic. See calibration never finishes. |
| CSI callbacks | About 100 per second or more | The radio is not measuring. Restart the device. |
| CSI accepted | About 100 per second | Interference or a busy device. Move the sensor and check the device log. |
| CSI occupancy | 70% or more | See low CSI occupancy. |
| Wi-Fi RSSI | -40 to -70 dBm | See the placement guide. |
In Home Assistant, the same values are diagnostic sensors. Select Refresh Diagnostics to update them; see the Home Assistant guide.
Calibration never finishes
Lightweight Detection calibrates on about ten seconds of clean input, and without input it never finishes. The usual cause is a router that blocks or limits ping, the traffic the sensor uses by default. Traffic RX is then far below Traffic TX, and CSI occupancy stays low. Change the traffic source:
Open the advanced settings
In Live motion, open Advanced sensing settings under Motion settings.
Switch to Wi-Fi raw
Set Wi-Fi traffic source to Wi-Fi raw. It talks to the access point directly, so routers rarely block it. It is experimental and not offered on ESP32-C6.
Check occupancy
In Diagnostics, CSI occupancy should rise above 70%. With Wi-Fi raw, judge by occupancy only.
Try DNS if needed
If occupancy stays low, try DNS (UDP), then DNS (TCP), and keep the one with the highest occupancy.
Let it calibrate
Keep the room still for about ten seconds. Calibration restarts on its own after each change.
The device remembers the traffic source and never changes it on its own. If Traffic RX matches Traffic TX but occupancy is still low, see low CSI occupancy. High-Accuracy Detection does not calibrate, but it also waits for enough input before it detects motion.
Low CSI occupancy
Occupancy is the share of the detector window filled with usable measurements. Detection needs at least 70%. Measurements that arrive in bursts lower it even when the packet rate looks fine.
Bluetooth
- Bluetooth and Wi-Fi share the same radio, so Bluetooth scanning pushes measurements into bursts.
- Compare with Bluetooth turned off.
- For an ESPHome Bluetooth proxy, use the tested proxy settings.
Mesh Wi-Fi
- Roaming between access points interrupts sensing.
- In Device settings, scan for access points, choose a Preferred access point, and save.
- Choose Automatic (strongest available) to remove the pin.
Weak or blocked link
- Check Wi-Fi RSSI in Diagnostics.
- Keep the sensor away from metal and from the edge of coverage.
- Review the sensor placement.
False motion in an empty room
Try these in order, one at a time, and watch the empty room for a minute after each change:
- Look for things that move: fans, curtains, pets, or a swinging cable.
- Check occupancy and placement.
- Raise Motion threshold a little.
- If brief spikes trigger motion, open Advanced sensing settings and raise Readings to turn motion on one step at a time. The default is four readings in a row, about one second. Higher values ignore spikes but start motion later.
- With Lightweight, select Calibrate with the room still.
A threshold you set lasts until the device restarts. Lightweight then calibrates again, and High accuracy returns to its default.
Missed movement
- Check occupancy and placement first. Movement must cross the radio paths between the access point and the sensor.
- If the movement score rises but stays below the threshold, lower Motion threshold.
- If motion starts too late, lower Readings to turn motion on.
- If motion clears while you are still moving, raise Readings to turn motion off.
- Try High accuracy in Detection mode. It detects better but uses more CPU and memory; see detection profiles.
Recalibrate after you rearrange the room. After you move the sensor, restart it instead: the old threshold no longer fits the room.
Device not reachable
- Use a computer on the same network as the device, in a supported desktop browser. Guest networks and client isolation block the connection.
- Enter the device's IPv4 address, from the USB setup link or your router's device list. A device name or ID depends on mDNS, which some networks block.
- Allow local network access for the ESPectre site only. An Origin or mixed-content error means that browser cannot reach the device.
- Ignore old suggestions in the browser's address list.
Problems covered in other guides
- Installation: no serial port, flashing errors, unsupported boards, Wi-Fi setup, recovery, and Matter pairing. See setup troubleshooting.
- Home Assistant over MQTT: for a device that Home Assistant does not find, see Home Assistant troubleshooting. For entity IDs ending in
_2, see recreate duplicate entity IDs. - Home Assistant dashboard: unavailable entities or stale diagnostics. See dashboard troubleshooting.
- Traffic generator app: missing CSI, VLANs, and other network issues. See the app troubleshooting.
- ESPHome YAML builds: download mode and Bluetooth proxy settings. See ESPHome troubleshooting.
Still stuck?
Open an issue on GitHub with your board, firmware, and version, and a screenshot of Diagnostics or a few lines of the device log. The troubleshooting reference explains the log line, the configuration options, and external traffic.