TOMMY transforms ordinary Wi‑Fi devices into motion sensors that detect movement through walls and obstacles. It's fully local and self-hosted with no cloud components. All processing happens on your network. Easy to install, integrates with Home Assistant or Matter, and creates zone-based motion sensors for smart home automations.

Expected in Q1 2026
Expected in Q1 2026
One-click flashing • ESPHome compatible
Motion is sensed through walls and obstacles, which allows devices to be hidden in closets, cupboards, or anywhere out of sight.
Create zones that span your entire house with a few devices, or divide areas like "upstairs" and "downstairs" regardless of room boundaries. No need for sensors in every room.
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.
TOMMY monitors disruptions in Wi‑Fi signals - movement between nodes changes wave patterns which the algorithm interprets as motion.
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.
When someone moves between nodes, they disrupt the Wi-Fi signal patterns in measurable ways that TOMMY can detect.
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.
Upcoming features planned for TOMMY
Distinguish between human motion and other movement sources like pets, fans, robot vacuum cleaners, and environmental factors.
Detect when someone is present in a zone even when they're not moving, supporting room occupancy detection for sleeping, reading, or other stationary activities.
Allow devices that are not flashed with TOMMY firmware to be used as passive sensors (e.g., Smart TVs, computers, gaming consoles). This will reduce the number of dedicated sensors needed.
Choose your preferred installation method
Integration with your Home Assistant instance
AMD64/ARM64 supported
Ports can be changed in the add-on configuration if needed for your network setup.
The dashboard can be opened in Home Assistant and added to your sidebar. Use it to flash devices, define zones, and expose motion sensors to Home Assistant.
For users who want standalone deployment
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=8089 \
-e FILE_SERVER_HTTP_PORT=8090 \
-e FILE_SERVER_HTTPS_PORT=8091 \
-e MQTT_PORT=1886 \
-e UDP_RELAY_PORT=8547 \
--restart unless-stopped \
tommysense/virtual-bridge:latestAfter installation, access the dashboard at http://localhost:8089 to flash devices, define zones, and expose motion sensors to Matter ecosystems.
Try Community Edition free, or go Pro for unlimited zones
Great for trying out Wi-Fi motion sensing in one room
Buy once, use forever. Cover your whole house with multiple zones
Custom licensing and dedicated support for businesses
Option for offline activation. Not supported for Docker installations.
Pay once and it's yours. No subscriptions or recurring fees.
Complete privacy protection. Works on isolated IoT VLANs. No data collection or tracking.
Connect with other users, get support, and stay updated on the latest features
Get notified about new releases and features
Get help from experienced users and developers
Suggest new features and vote on community ideas
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 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. Everything runs on your local network with no cloud dependencies.
Minimum 2 devices per zone. While more devices can provide better coverage, there are diminishing returns after 4 devices in a zone. Focus on placement for 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.
TOMMY is fully local and self-hosted with no cloud components. Everything runs on your network, all processing happens locally, and no data ever leaves your home. The Home Assistant Add-on supports offline license activation, allowing complete operation without internet connectivity. Note that Docker installations require an active internet connection to communicate with the license server. For privacy-oriented users or IoT VLAN setups where devices are isolated from the internet, the Home Assistant add-on is recommended.