Turn your Wi‑Fi devices
into motion sensors
TOMMY transforms ordinary Wi‑Fi devices into powerful motion sensors that detect movement through walls and obstacles. Easy to install, integrates seamlessly with Home Assistant or Matter, and creates zone-based motion sensors perfect for smart home automations.
Supported Hardware
ImplementedESP32-C5
TOMMY FlasherESP32-C6
TOMMY FlasherESP32-S3
TOMMY FlasherESPHome
YAML ConfigThrough-wall sensing
Motion is sensed through walls and obstacles, which allows devices to be hidden in closets, cupboards, or anywhere out of sight.
Flexible zone coverage
Create zones that span your entire house with just a few devices, or divide areas like "upstairs" and "downstairs" regardless of room boundaries. No need for sensors in every room.
Direction-free setup
Unlike traditional sensors that need to "look" at specific areas, Wi-Fi sensing monitors the entire area within a zone without requiring careful positioning or aiming.
How TOMMY works
TOMMY monitors disruptions in Wi‑Fi signals - movement between nodes changes wave patterns which the algorithm interprets as motion.
Mesh network formation
Devices within your defined zone form a mesh network, continuously transmitting small Wi-Fi packets to each other, creating invisible detection paths throughout your space.
Motion pattern analysis
When someone moves between nodes, they disrupt the Wi-Fi signal patterns in measurable ways that TOMMY can detect.
Real-time motion updates
TOMMY analyzes disruptions in real-time and reports motion in your defined zones. Each zone maps to a motion sensor entity for Home Assistant / Matter ecosystems.
Get Started in Minutes
Choose your preferred installation method
Docker
Linux OnlyPerfect for self-hosted setups and advanced users
AMD64/ARM64 supported
Host networking is required for mDNS discovery of ESP32 devices. Ports can be configured through environment variables.
docker run -d --name tommy \
--network host \
-v $HOME/.tommy:/data \
-e DASHBOARD_PORT=8080 \
-e FILE_SERVER_HTTP_PORT=8090 \
-e FILE_SERVER_HTTPS_PORT=8091 \
-e MQTT_PORT=1884 \
-e UDP_RELAY_PORT=8547 \
-e WEBSOCKET_SERVER_PORT=8101 \
--restart unless-stopped \
tommysense/virtual-bridge:latest
After installation, access the dashboard at http://localhost:8080
to flash devices, define zones, and expose motion sensors to Matter ecosystems.
Home Assistant
RecommendedSeamless integration with your Home Assistant instance
AMD64/ARM64 supported
Ports can be changed in the add-on configuration if needed for your network setup.
Click the button above to add the TOMMY repository to your Home Assistant instance, then install the add-on and configure your ESP32 nodes in the dashboard.
The dashboard can be opened directly in Home Assistant or added to your sidebar for easy access. Use it to flash devices, define zones, and expose motion sensors to Home Assistant.
Join the TOMMY Community
Connect with other users, get support, and stay updated on the latest features
Product Updates
Get notified about new releases and features
Community Support
Get help from experienced users and developers
Feature Requests
Suggest new features and vote on community ideas
Frequently Asked Questions
Everything you need to know about TOMMY
Wi-Fi motion sensing uses the disruption of Wi-Fi signals between devices to detect movement. When someone walks between two Wi-Fi nodes, they interrupt the signal path, creating a detectable pattern that TOMMY uses to identify motion.
Unlike PIR sensors that require line-of-sight and can miss motion behind furniture, Wi-Fi sensing detects movement through walls and obstacles. It provides whole-room coverage from just two nodes.
The current version detects all movement including pets, curtains, fans, and other moving objects. Future versions will include filtering, but for now you can adjust the sensitivity slider to reduce small movement detection.
TOMMY currently only detects movement, not stationary presence. Stationary presence detection is expected in Q1 2026.
No hub required - TOMMY runs as a Home Assistant add-on or on a Linux host (Docker) and uses supporting devices to create a sensing network.
Minimum 2 devices per zone. While more devices can provide better coverage, there are diminishing returns after 4 devices in most zones. Focus on strategic placement for optimal zone coverage rather than maximizing device count.
The devices do not need to be on the same router (e.g. in mesh setups), but they do need to be on the same network to communicate. Most home networks meet this requirement automatically.
Yes, TOMMY works as an external component and will run alongside your existing ESPHome components without conflict. You can continue using all your current sensors, switches, and other integrations.
Absolutely. TOMMY runs entirely locally on your network and does not require any internet connection. No data leaves your home.