TROUBLESHOOTING · 5 MIN READ

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.

An ESP32 connected to a laptop showing signal diagnostics, with a magnifying glass inspecting a waveform
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.

How to read the Live motion diagnostics
TileHealthy valueIf not
Traffic TXAbout 100 per secondCheck the Wi-Fi connection. With Wi-Fi raw, TX and RX stay low; that is expected.
Traffic RXClose to Traffic TXThe router blocks or limits the traffic. See calibration never finishes.
CSI callbacksAbout 100 per second or moreThe radio is not measuring. Restart the device.
CSI acceptedAbout 100 per secondInterference or a busy device. Move the sensor and check the device log.
CSI occupancy70% or moreSee low CSI occupancy.
Wi-Fi RSSI-40 to -70 dBmSee the placement guide.

In Home Assistant, the same values are diagnostic sensors. Select Refresh Diagnostics to update them; see the Home Assistant guide.

Lowering the threshold does not fix missing input. Fix the diagnostics first, then tune.

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:

  1. Open the advanced settings

    In Live motion, open Advanced sensing settings under Motion settings.

  2. 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.

  3. Check occupancy

    In Diagnostics, CSI occupancy should rise above 70%. With Wi-Fi raw, judge by occupancy only.

  4. Try DNS if needed

    If occupancy stays low, try DNS (UDP), then DNS (TCP), and keep the one with the highest occupancy.

  5. 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:

  1. Look for things that move: fans, curtains, pets, or a swinging cable.
  2. Check occupancy and placement.
  3. Raise Motion threshold a little.
  4. 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.
  5. 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

  1. Check occupancy and placement first. Movement must cross the radio paths between the access point and the sensor.
  2. If the movement score rises but stays below the threshold, lower Motion threshold.
  3. If motion starts too late, lower Readings to turn motion on.
  4. If motion clears while you are still moving, raise Readings to turn motion off.
  5. 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

  1. Use a computer on the same network as the device, in a supported desktop browser. Guest networks and client isolation block the connection.
  2. 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.
  3. Allow local network access for the ESPectre site only. An Origin or mixed-content error means that browser cannot reach the device.
  4. Ignore old suggestions in the browser's address list.

Problems covered in other guides

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.