Wi-Fi sensing for Home Assistant

Turn Wi-Fi devices into
presence sensors.

TOMMY uses Channel State Information (CSI) from Wi-Fi packets to detect motion and presence through walls. Everything runs on your local network.

TOMMY dashboard
RUNS ONESP32 · ESP32-C3 · ESP32-C5 · ESP32-C6 · ESP32-S2 · ESP32-S3
INTEGRATES WITHHome Assistant · Matter

Install

Prepare two devices and the server.

Devices

Acquire two ESP32 devices

You need at least 2 ESP32 boards per zone. Any of the supported variants work, as long as they are all on the same Wi-Fi band (2.4GHz or 5GHz).

Server
Add repository to Home Assistant

Opens Home Assistant Supervisor and pre-fills the TOMMY repository.

ESP32-AESP32-BESP32-CESP32-D

Zones

Define a zone by placing devices.

A zone is the space between the devices you assign to it. Put two devices at opposite ends of a room and the zone covers that room. Place them further apart and the zone covers more.

Because Wi-Fi passes through walls, furniture, and floors, a zone is not limited to a single room. Detection covers everything between the devices, so one zone can cover multiple rooms, an entire floor, or reach between floors to cover a whole house.

Protocol

Mesh of devices, listening to each other.

Two or more ESP32 devices in a zone continuously exchange small Wi-Fi packets on 2.4 GHz or 5 GHz. The receiving device extracts Channel State Information (CSI) from each packet: a per-subcarrier description of how the signal was affected on its way through the room.

When a body enters the space between devices, CSI shifts in characteristic ways. Direct-path obstruction weakens line-of-sight. Multipath reflections change as the body adds and removes reflection surfaces. Doppler shifts from moving body parts perturb the frequency response. Even the rise and fall of a chest during breathing is enough to perturb the signal.

BAND2.4 GHz · 5 GHz (ESP32-C5 only)
SIGNALCSI extracted per OFDM subcarrier
PACKET RATE30 to 100 per second per device pair
PROCESSINGOn-device, no cloud
ESP32-AESP32-BESP32-CESP32-DCSI30–100 packets/sCSI per OFDM subcarrier

Detection

Motion or presence.

Each zone runs in one of two detection modes. Motion detection works on any supported device. Presence detection adds stationary occupancy, including breathing and micro-movements, but requires specific hardware and configuration.

MOTION

Walking, hand movements, sitting down, getting up. Supported on all devices and configurations.

PRESENCE

Adds stationary detection through breathing and micro-movements. Optimal: ESP32-C5 on 5 GHz, 4+ devices, High Performance mode. Capable: ESP32-C6 on 2.4 GHz, 2+ devices, Conservative or Performance mode.

Detection Mode

MotionWalking, movements, gestures
PresenceMotion + stationary occupancy

Performance

Tune sensitivity against network impact.

Performance mode controls how aggressively devices transmit. Higher modes capture faster movements and micro-movements like breathing, at the cost of more Wi-Fi traffic.

CONSERVATIVE

Minimizes network interference. May miss fast movements like quick entries or typing. Recommended for most users.

PERFORMANCE

Increased transmission rate. Captures fast movements and micro-movements like running, breathing and keyboard typing. May cause Wi-Fi interference. Only recommended with ESP32-C5 on 5 GHz.

HIGH PERFORMANCE

Highest transmission rate. Maximum sensitivity. May cause Wi-Fi interference. Only recommended with ESP32-C5 on 5 GHz.

Performance Mode

Conservative
Performance
High Performance

Higher modes increase sensitivity and Wi-Fi traffic.

Boundary

Keep detection inside the zone.

Wi-Fi signals pass through walls and reflect off surfaces, so motion from neighboring rooms can leak into a zone. Boundary mode isolates detection to the area you actually care about.

PRECISE

Strict boundary control. Reduces false positives from outside the zone. May miss motion at zone edges.

BALANCED

Reliable detection within zones with minimal leakage. The default choice for most rooms.

SENSITIVE

Captures all motion within the zone, including edges. May detect motion outside the intended zone.

CUSTOM

Manually adjust how individual device pairs contribute to detection. For complex layouts.

PRECISEstrict zone onlyBALANCEDdefaultSENSITIVEwide coverageDetection boundary relative to zone

Visualizer

See what TOMMY sees.

The Signal Visualizer in the dashboard streams the live CSI analysis from every device pair in a zone. Walk through the zone and watch the signal respond in real time. Use it to verify coverage, debug placement, and confirm a zone behaves the way you expect.

TOMMY Signal Visualizer showing live CSI amplitude from device pairs in a zone

Home Assistant Integration

Each zone is a native motion sensor entity.

Install via HACS or as a custom component. Point the integration at your TOMMY instance over MQTT. Each zone you create in the TOMMY dashboard appears automatically as a motion sensor entity, syncing in real time as you add, rename, or remove zones.

INSTALL VIAHACS · Custom component
PROTOCOLMQTT (default port 1886)
ENTITY TYPEbinary_sensor (motion)
Home Assistant integration guide →
TOMMY integration card in Home Assistant Devices & Services

INTEGRATION

TOMMY zone binary_sensor entities in Home Assistant

ENTITIES

TOMMY zone binary_sensor entities in Home Assistant

Matter Integration

Pair with any Matter controller.

Each zone can also be exposed over Matter as an occupancy sensor. Generate a QR code from the dashboard and pair it with Apple Home, Google Home, SmartThings, Home Assistant, or any other Matter-compatible controller. Setup codes are also provided for manual entry and re-pairing.

PAIRS WITHApple Home · Google Home · SmartThings · Home Assistant
PROTOCOLMatter over Wi-Fi
DEVICE TYPEOccupancy Sensor
Matter integration guide →

Matter pairing

Setup code

1234-567-8910

Apple HomeGoogle HomeSmartThingsHome Assistant

Hardware

Bring your own ESP32.

TOMMY runs on any ESP32 variant, but the C5 is the recommended choice. It's the only variant with 5 GHz support, which is required for the best presence detection.

ESP32-C5Wi-Fi 6 (802.11ax) · dual-band
BAND2.4 GHz · 5 GHz
FLASH METHODTOMMY Flasher · ESPHome
PRESENCE DETECTIONYes (optimal)
ESP32-C6Wi-Fi 6 (802.11ax)
BAND2.4 GHz
FLASH METHODTOMMY Flasher · ESPHome
PRESENCE DETECTIONYes (capable)
ESP32-C3Wi-Fi 4 (802.11n)
BAND2.4 GHz
FLASH METHODTOMMY Flasher · ESPHome
PRESENCE DETECTIONNo
ESP32-S3Wi-Fi 4 (802.11n)
BAND2.4 GHz
FLASH METHODTOMMY Flasher · ESPHome
PRESENCE DETECTIONNo
ESP32-S2Wi-Fi 4 (802.11n)
BAND2.4 GHz
FLASH METHODTOMMY Flasher · ESPHome
PRESENCE DETECTIONNo
ESP32Wi-Fi 4 (802.11n)
BAND2.4 GHz
FLASH METHODTOMMY Flasher · ESPHome
PRESENCE DETECTIONNo

2+ devices per zone, diminishing returns after 4. Minimum 1 m apart.

Boards with external antennas outperform those with PCB antennas.

Videos

See it in action.

Walkthroughs from the Home Assistant community. Setup, zone configuration, and use in real homes.

Pricing

Start free. Buy when you're ready.

Trial
Free

Detection pauses 1 minute every 2 minutes.

  • 1 zone
  • Unlimited devices
  • Home Assistant integration
  • Matter integration
  • Community support
Install
Pro
Zone count
  • 1 zone
  • Unlimited devices
  • Uninterrupted detection
  • Home Assistant integration
  • Matter integration
  • Community support

Presence detection requires compatible hardware. See docs.

Commercial use is not permitted under the standard license. If you're looking to deploy TOMMY in a commercial context, get in touch at info@tommysense.com with a short description of your use case.

Things worth knowing.

CLOSED SOURCE
The TOMMY core is closed source: the sensing algorithm, firmware, server, and dashboard. The Home Assistant integration is fully open source. The Home Assistant App and ESPHome component are open-source wrappers around the closed-source server and firmware. TOMMY is built by a small bootstrapped team, and selling licenses is what funds continued development.
LOCAL BY DESIGN

All sensing data is processed on your network. The only outbound traffic is a periodic license check and optional online device discovery, which can be replaced with mDNS or manual discovery.

See a complete breakdown of network communication →
HOW IT COMPARES

A few projects do Wi-Fi or RF-based sensing, each with different tradeoffs in hardware, ecosystem, and capabilities. We've written detailed breakdowns of how TOMMY compares.