gitwtfhub

wtf is espectre?

francescopace/espectre — explained in plain English

Analysis updated 2026-06-24

7,260PythonAudience · generalComplexity · 3/5Setup · moderate

TL;DR

ESPectre detects room occupancy by reading Wi-Fi signal disturbances from a 10-euro ESP32 sensor, integrating with Home Assistant to trigger automations like lights or alerts without any camera.

Mindmap

mindmap
  root((ESPectre))
    What it does
      WiFi motion detection
      Room occupancy sensing
      No camera required
    How it works
      ESP32 microcontroller
      Channel State Info
      Signal filtering
      ML classification mode
    Integration
      Home Assistant
      ESPHome component
      YAML configuration
    Use cases
      Smart lighting
      Security monitoring
      Multi-room coverage

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Detect whether a room is occupied without cameras by installing a cheap ESP32 sensor that reads changes in Wi-Fi signals.

REASON 2

Turn lights on automatically when someone enters a room using a Home Assistant automation triggered by the ESPectre binary sensor.

REASON 3

Alert yourself when a space that should be empty, like a server room, shows unexpected movement activity.

What's in the stack?

PythonESP32ESPHomeYAMLHome Assistant

How it stacks up

francescopace/espectrepython-trio/trioliuhuanyong/qasystemonmedicalkg
Stars7,2607,2617,267
LanguagePythonPythonPython
Setup difficultymoderateeasyhard
Complexity3/53/54/5
Audiencegeneraldeveloperresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Requires an ESP32 microcontroller (around 10 euros) and a running Home Assistant instance with ESPHome installed.

Wtf does this do

ESPectre is a motion detection system that works using Wi-Fi signals instead of cameras or microphones. When a person moves through a room, their body disturbs the radio waves traveling between a Wi-Fi router and a small sensor device. The sensor, an ESP32 microcontroller costing around 10 euros, picks up those disturbances and uses them to determine whether the room is occupied or empty. The technical name for what the sensor reads is Channel State Information, or CSI. The project processes this raw signal data through a series of steps: stabilizing the hardware gain, automatically selecting the most useful frequency channels, filtering out noise and statistical outliers, and then classifying the result as motion or idle. A newer machine learning mode, added in version 2.5, runs a neural network directly on the device and skips the manual calibration step. The system integrates directly with Home Assistant, the popular open-source home automation platform, via a component called ESPHome. Once set up, each sensor appears in Home Assistant automatically as a binary sensor showing motion or no motion, along with a numeric movement score and an adjustable detection threshold. You can use these in any Home Assistant automation, such as turning lights on when someone enters a room or sending an alert when a space that should be empty shows activity. Setup requires no programming. Configuration is done in YAML, which is a plain-text format that looks like a structured list. The README estimates 10 to 15 minutes for the initial setup. Multiple sensors can cover multiple rooms, each reporting independently to the same Home Assistant instance. On placement, the README recommends positioning the sensor 3 to 8 meters from the router and at desk height, roughly 1 to 1.5 meters off the floor. Metal objects between the router and sensor reduce accuracy. The system works through ordinary walls because Wi-Fi signals pass through them, and it requires no physical contact or wearable device from the people being monitored.

Yoink these prompts

Prompt 1
Write a Home Assistant automation that turns on the living room lights when ESPectre reports motion and turns them off 5 minutes after motion stops.
Prompt 2
How do I write the ESPHome YAML configuration for ESPectre to cover a room where the router is about 5 meters away with some furniture in between?
Prompt 3
How do I add a second ESPectre sensor for a second room so both appear as separate binary sensors in Home Assistant?

Frequently asked questions

wtf is espectre?

ESPectre detects room occupancy by reading Wi-Fi signal disturbances from a 10-euro ESP32 sensor, integrating with Home Assistant to trigger automations like lights or alerts without any camera.

What language is espectre written in?

Mainly Python. The stack also includes Python, ESP32, ESPHome.

How hard is espectre to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is espectre for?

Mainly general.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.