TOMMY transforms ordinary Wi‑Fi devices into motion and presence sensors that detect occupancy through walls and obstacles. All processing happens locally on your network. Easy to install and integrate with Home Assistant or Matter.
Can be flashed through the dashboard or ESPHome

Occupancy 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.
The setup, from install to automations.
Install the TOMMY add-on in Home Assistant, or run it standalone with Docker.
Open the TOMMY dashboard to manage your zones, devices, and performance settings.
Add a zone for each room or area you want to cover.
Plug ESP32 boards into USB, flash them from the dashboard or through ESPHome, and assign them to a zone.
Once powered, the devices pair up and continuously exchange Wi‑Fi packets between each other inside the zone.
Movement between the devices disrupts the Wi‑Fi signal. TOMMY analyzes this to detect motion and presence.
Each zone is exposed as a motion entity you can use directly in your automations and dashboards.
Zones are exposed over Matter and work with any Matter-compatible controller or platform.
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 and define zones.
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:latestThe dashboard can be accessed at http://localhost:8089. Use it to flash devices and define zones.
Evaluate TOMMY in your environment for free, or go Pro with a one-time purchase per zone. No recurring fees.
Evaluate with 1 zone. Detection pauses for 1 minute every 2 minutes.
One-time lifetime purchase. Pay only for the zones you need.
One-time lifetime purchase. Cover every zone in your home.
* Stationary presence detection requires compatible hardware. Learn more.
We are open to working with businesses on custom deployments, OEM integrations, and vertical-specific use cases across office, retail, hospitality, and industrial environments.
If you have something in mind, email us at info@tommysense.com with a short description of your use case. We'll let you know if we can help.
Upcoming features planned for TOMMY
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.
Distinguish between human motion and other movement sources like pets, fans, robot vacuum cleaners, and environmental factors.
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.
Wi-Fi sensing is being rolled out by large corporations to routers and smart devices. TOMMY is the self-hosted alternative, where you own the data.
Wi-Fi signals are already being broadcast everywhere. Wi-Fi sensing looks at changes in those signals to detect motion and presence. Researchers are also exploring additional uses such as identifying who is in a room, monitoring breathing patterns, or detecting falls. The new 802.11bf standard is laying the foundation for bringing these capabilities to routers and IoT devices, but each manufacturer decides how they are implemented and where the data ends up.
Right now, motion and presence sensing are the features we believe work well in real environments. The rest remains an active area of research. All of it involves sensitive data, and who has access matters.
When large corporations add Wi-Fi sensing to their routers and devices, your data could end up on their servers. Imagine data about how you move, breathe, or the activities you do in your home being in the hands of anyone but yourself. TOMMY does the opposite. Everything runs locally. You get powerful sensing capabilities without the data ever leaving your network.
We believe Wi-Fi sensing has real potential to transform home automation. With TOMMY, we want everyone to benefit from it without the privacy tradeoff. We're building a self-hosted solution that aims to match or surpass what large corporations offer, while keeping control in the hands of the user. As the technology evolves, we continue developing TOMMY and adding new features when we believe they are ready for real-world use.
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
Yes. With the right configuration, TOMMY can detect breathing and micromovements, enabling stationary presence detection. See the Detection Mode documentation for configuration requirements and optimal setup.
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.
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. An internet connection is required for license activation and verification.
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.
Yes, TOMMY works with ESPHome. You can flash your devices either with the native TOMMY flasher or through ESPHome. The TOMMY flasher provides a more integrated experience such as automatic OTA updates, while ESPHome allows you to use other ESPHome components alongside TOMMY. Sensing performance is the same either way.
TOMMY runs entirely on your own network. All processing happens locally, and no sensing data ever leaves your home.
The only external internet communication is for license activation and periodic license verification. Optionally, you can enable online coordination for automatic device discovery. This feature is opt-in and can be replaced with mDNS or manual discovery.
No. We want to be upfront about this.
Some components, such as the Home Assistant integration, are open source. The core parts are not.
TOMMY is built by a very small, bootstrapped team. To keep the project sustainable and continue developing and maintaining the features on the roadmap, we need a way to generate income from it. Because TOMMY is fully self-hosted, open sourcing the entire system would make it difficult to fund ongoing development.
Our goal is to offer a privacy-first, self-hosted solution that is reliable and actively maintained.
A handful of projects today do Wi-Fi or RF-based sensing. Some are open source, some are closed source, and each takes a different approach in terms of hardware, ecosystem, and capabilities. We've put together a comparison page that summarizes the landscape and links to deeper breakdowns against specific projects.
See the comparisons overview for the full list.
TOMMY is licensed for personal home use only. We are open to working with businesses on custom deployments, OEM integrations, and vertical-specific use cases. If you have a commercial use case, reach out at info@tommysense.com with a short description. We'll let you know if we can help.