> 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.
I don't see how either the HA instance or the Linux host can't be viewed as a hub. No hub required feels untrue to me. I assume this question is intended to clarify that some additional device is not necessary, but I think this could be reworded.
You're absolutely right. Thanks for the feedback! "No hub required" is misleading. What I meant was "no additional proprietary hub". Meaning, if you're already running Home Assistant or have a Linux machine, you don't need to own a separate device like Zigbee/Z-Wave hub. But yes, the HA instance or Linux host is effectively acting as the hub. I'll update that wording on the site.
I figured that's what you meant and I think it's totally reasonable! I just think the wording could be updated a little. I have a couple ESP32s lying around not doing anything, so I'm looking forward to trying out TOMMY with HA :)
OTOH, when you buy any Bosch, IKEA, Hue, Aqara device, it says on the box: Hub required (and they do mean get our hub and place next to all other hubs. Even though Home Assistant will usually work fine-ok).
So I see where he’s coming from, and I interpreted it as intended.
You are of course correct but in the HA community "no hub required" often should be read as "no addiditonal hub required because HA can communicate directly with it"
This is impressive and some of the "coming soon" features are ambitious. So, these devices mesh with each other. Are they like "idle" WiFi connections, or are they chatty? I'm wondering how much spectrum clashing there will be. WiFi can be finicky enough as-is.
They send packets to and from each other in a mesh network. It's quite small packets and not a large amount of packets a second. For a standard use case (3-4 zones) the interference is quite low on 2.4Ghz, and almost negligible on either 2.4Ghz (Wi-Fi 6, like the ESP32-C6) or 5Ghz (ESP32-C5).
The new philips hue bulb bridge supposedly can turn them all into motion sensors. Do you think this could use what ever data they are pulling from the bulbs to do that as well?
Unfortunately not. Even though the concept is the same, Philips Hue uses Zigbee as the sensing protocol which isn't compatible with the Wi-Fi sensing TOMMY uses.
Congrats, this looks like an awesome product! Gonna try setting it up in the next few weeks.
How is a "zone" configured? I understand that if I have 3+ devices, the zone is essentially the area between them. But what about two devices? I'm assuming the zone isn't just a straight line between them, or maybe it is? What kind of zone configuration can one do in the dashboard?
Thanks, I'm glad you like it! Let me know how it works for you. And if you need any help, feel free to reach out.
A zone is 2 or more devices. So 2 works just fine. Instead of a straight line, image two flashlights pointing at each other. The beam of the flashlight becomes the sensing area.
In the dashboard you can create zones which you put devices into. So you could flash a handful of devices and put them into a "living room" or "upstairs" zone.
Seems to be based on See through walls by MIT (2013)? Good job porting it to esp32. I was just looking a week ago to do the same thing - basically reproducing this work. I'll definitely try this. https://www.media.mit.edu/projects/seeing-through-walls-comp...
I believe that was the initial paper which really started the Wi-Fi sensing research. Although a lot of research has come after that. It's a really fascinating technology with a whole range of possibilities beyond just motion and presence sensing.
Could this work without touching my WiFi? For example, an ESP node with ethernet to communicate with Home Assistant, while using it's own WiFi mesh network for detection and/or to talk to other nodes. Or, is the connectivity to my home WiFi network a requirement?
Right now it is a requirement that the device running TOMMY (e.g. Home Assistant) and the ESP32 nodes are on the same network. The communication between the ESP32's are peer-to-peer without needing the router, but the data needed for analysis is sent from the sensors to TOMMY through the router.
Yes that would work. They don't need to be connected to the router on Wi-Fi, it can be ethernet too. The ESP's will connect with each other peer-to-peer.
Yes, if I understand you correctly then it already works with that setup.
So you can have the ESP32s over ethernet and it still works as long as it's on the same network as TOMMY (Home Assistant Add-on or Docker). Only thing to keep in mind is that the ESP32s need to have Wi-Fi inbuilt with antenna (either PCB or external).
Does that mean that Tommy is not using SSID at all for it's motion detection? Where is the WiFi network then? Hidden? What about bands and channels? Overlaps? Interference?
Actually, you are right. I confused myself. You would need to have them connected to the same Wi-Fi as that determines the bands and channels they communicate on even though the communication is peer-to-peer.
How are your devices connected exactly? Using ethernet on the subnet your HA instance is on? And are you then able to also connect to a separate Wi-Fi SSID you create for those devices?
Also, are you able to join the Discord channel? Then we can create a thread and go a bit more into depth about your setup.
What really sets TOMMY apart is that it doesn't require line of sight and works through walls. This opens a lot of possibilities.
You can create zones spanning multiple rooms without sensors in each room. Instead of traditional room-by-room motion detection, you could divide your house into zones like "upstairs", "downstairs", or "living area". Especially useful for controlling heating by floor or area-level lighting.
Working through walls also means less clutter. You can hide devices in drawers, closets, or anywhere out of sight.
There's also a pricing aspect: ESP32s can be acquired for a couple of dollars each, so you could have motion sensing throughout your whole house for a fraction of the price of dedicated sensors in every room.
Honestly, it doesn't stand for anything! A couple years ago I was playing around with the concept and a song came on that mentioned "Tommy" repeatedly. I jokingly started calling it Tommy when talking to my girlfriend about it.
So every time the lights turned on or off it was "Tommy who did it" and the name just stuck. Now I'm too invested to change it.
There's a dedicated thread on the Discord channel where people are coming up with good ideas for what TOMMY stands for. Some of the suggestions are "Totally Overengineered Motion Monitoring" and "Through-Obstacle Motion Monitoring". People are still working on what the Y should stand for.
Without having the time right now to dig too deep, I have a few questions:
1. Does it have any idea of the range at which motion is happening, relative to the distance between nodes or otherwise?
2. Can it correlate motion with that of another WiFi or Bluetooth device? So if I'm carrying my phone and it can see me moving, can it tell that it's me?
1. As of now it only knows whether there is motion in the zone or not. Actual (x,y) coordinates within the zone are theoretically possible and something I have on the roadmap for 2026.
2. No, it doesn't correlate with other devices currently. But Wi-Fi sensing can theoretically identify who is moving by analyzing how you disrupt the signal. We all have unique movement patterns. I actually have a working proof of concept that can differentiate between me and my girlfriend, but it's very experimental and not stable enough for release yet. Definitely on the future roadmap though.
3. Pretty much instant (around 50ms). The detection happens in real-time as the signal disruption is analyzed.
With 2, I'm trying to think how effectively it could replace something like ESPresense. With that you've got a BLE tag with an ID that you can just associate with a person, so there's no learning of moving patterns needed, but getting it to be accurate to a room is a nightmare. It also works when there's no movement, which is convenient, and you can put the tag down if you don't want to be tracked. The ergonomics are just a bit nicer, it's just the resolution that sucks.
ESPresense and TOMMY solve different problems right now. ESPresense tracks specific people with IDs (even when stationary), while TOMMY detects anonymous motion across zones. For your use case, ESPresense is probably the better fit currently. Though once stationary presence detection is added (Q1 2026) and person identification, it could do similar tracking without needing physical tags to carry around.
Ah, I was hoping (at least rough) coordinates were something that this would do. I have HA and have been looking at mmwave devices for that use case. For things like "turn on a light, but only once I've sat down in the chair."
This seems really cool, but unfortunately I can't get it to work. The flasher says it can't open the serial port for most of my ESP32s, and the one that does work goes into a bootloop after I enter the wifi credentials.
Could you open a support thread in the Discord channel? Some boards have some quicks to them. But it's all been solved by other users before. I'm sure there's a solution to your board too.
I did, even though I really hate Discord forums (they have the worst of both worlds between forums and chat, they aren't real-time and they aren't discoverable on the web, but that's a different conversation).
Very cool. How does it work in an apartment building? both practically not detecting my neighbors movement. But also from a privacy standpoint, can someone spy on me with this technology?
Neighbor detection: I haven't had issues with neighbor movement affecting detection in my testing. The devices form a mesh within your defined zone, so they're primarily sensing disruptions between your own nodes. If you do experience false positives, there's a sensitivity adjustment in the dashboard.
Privacy/spying: In TOMMY, I've explicitly disabled the ability to use devices outside your own network - it only works with ESP32s you've flashed and added to your system. Someone would need physical access to place their own devices in your space.
That said, Wi-Fi sensing as a broader technology could theoretically be used for surveillance if someone controlled devices on both sides of your walls. It's similar to other wireless technologies in that regard. The key is controlling your own hardware.
>Wi-Fi sensing as a broader technology could theoretically be used for surveillance if someone controlled devices on both sides of your walls. It's similar to other wireless technologies in that regard. The key is controlling your own hardware.
Does this mean that a nosy neighbor or someone else who wanted to surveil your residence could accomplish this by placing multiple devices around but not necessarily on your property so that a mesh is created that effectively covers your residence? Sounds like a stalker tool or a tool for burglars to use to determine when a building is unoccupied so that they can get in and out without being interrupted. Wealthy homeowners, like professional sports players, have already become targets of burglars who use team schedules to understand when a place will be unoccupied. The NFL's Joe Burrow I think is the most recent victim.
I guess the effective range of each device factors into this if you were determining mesh coverage.
How would one protect their residence from similar surveillance?
EDIT: I like this concept and see that this could help me here in managing deer traffic across my property. I would like to give them a reason to take another path so knowing exactly when they are on the property is useful data. Game cameras and ordinary security cameras set up as game cameras have a noticeable lag and so they don't send the alert until they finalize a video and by that time the animal has absconded, but not before chewing my fruit trees.
While theoretically possible, this would be a very involved surveillance method compared to simpler alternatives that already exist (cameras with telephoto lenses, thermal imaging, simply watching schedules, etc.). Wi-Fi sensing isn't easier or more covert than existing methods. At the current state of the technology, other methods are far more suitable for people who want to spy on others.
The effective range of each device factors into the sensing area. The closer together the sensors are the higher sensing sensitivity it has. In my 90 square meter apartment I can create a sensing area with a sensor in each end of the apartment.
Additionally, TOMMY is designed to only work with devices you've explicitly flashed and added to your system. It won't interact with random ESP32s that might be nearby.
The deer management is actually a very interesting use case. I am interested in hearing your results if you decide to set it up for that.
Thanks for the thoughtful reply. A long time ago there was a paper published, by MIT I think showing a similar setup to use WiFi as a surveillance tool for motion detection through walls. It was interesting at the time and something that I have thought about quite a bit over the years without ever actually doing anything myself. I think at heart I have been waiting for someone like yourself to make it all easy enough that someone like myself, who already has too many things on their plate, can jump in and begin using it without having to solve all the initial issues. Thanks for doing this work.
For my own use case as simple mesh array that would alert me to movement within certain parts of the property that I have set aside as garden or orchard plots would really be useful. I have lost numerous fruit trees to deer, especially in winter cold spells and over time learned that the only effective method of guaranteeing plant survival over winter is area denial. I accomplished this over the last couple of years using deer fencing products to establish areas where large animals have no access. In the process, I also found a use case for a security camera to monitor an area to see which animals regularly passed by or through.
Over a period of years I have seen lots of animal tracks but direct sightings have been rare. Using the security camera as a game camera has restored my confidence in animal ID from tracks alone since I have managed to capture still photos and video of the animals that I was pretty sure were visiting my place to validate what I believed based on the tracks alone. I hunted and trapped when I was a kid into high school so it is good to see that, though I have not needed them and have rarely used them, I have not totally lost those skills in the ensuing 40+ years.
I can see an array like this as quite useful in a garden space for identifying which plants need protection from squirrels, opossums, raccoons, etc and where the feral cats are squatting so that I don't inadvertently dredge up something unwholesome while working the soil. My cameras have demonstrated that they can detect and alert to things as small as a wasp or beetle moving across the FoV so if I can set something up to track the path of grasshoppers through the garden then I can potentially see where they are laying eggs cases and disrupt that soil before they can hatch next season.
This is all really interesting stuff. I look forward to joining the Discord group and to picking up a few ESPs for testing.
That was also one of the papers I read early in my project. Really fascinating stuff. The use cases for Wi-Fi sensing are vast. Motion and presence sensing is only scratching the surface. My goal is for TOMMY to follow this technology and make it accessible to everyone, especially in the smart home space.
Your garden/wildlife management use case is very interesting. Way more creative than typical smart home automation. The real-time detection should help with that camera lag issue you mentioned, and the through-wall sensing could monitor areas that are hard to place cameras.
Please create a thread in the Discord channel about this use case. I think it's really interesting and other users might have good ideas for your setup. Would love to see how it works out for you!
No apologies needed for the wall of text. This is exactly the kind of creative applications I was hoping people would think of.
From my understanding, Wi-Fi sensing requires at least two antennas (transmitter and receiver) to measure signal disruption. This could be one device with both antennas, or two separate devices.
There are also techniques that use one controlled device and leverage ambient Wi-Fi signals from uncontrolled sources (like a neighbor's router), but TOMMY explicitly disables all options for using devices outside your own network. It only works with ESP32s you've flashed and added to your system.
Cool. Going to try it out. I think I sent an "application" to Discord (not a discord pro and never encountered having to apply before so hope I did it correctly)
The Raspberry Pi isn't supported as a sensor right now, but it should be able to act as the device running TOMMY. As long as it has Docker.
The interference from running TOMMY is quite low. And if ESP32-C6 (2.4Ghz Wi-Fi 6) or ESP32-C5 (5Ghz) is used as sensors, the interference is negligible.
Yes it works outdoor too. Although experimenting with device placement is crucial for good results. I think there are different battery powered ESP32 you can buy. I have some of mine set up with small power banks.
This is a signal that I need to get off of Wifi altogether. The data from CSI and BFI are too insecure and no one cares about the privacy concerns. I'm sure ICE agents are going to love this technology.
Even if IEEE doesn't care, someone famous will eventually learn that the walls of their mansion are transparent to passive WiFi receivers with cantennas, even if they turn off all WiFi devices inside their home. Will they build a new mansion with RF-shielded walls? Try to find someone who cares?
In an age of digital torrents, you choose to lend warmth to ephemeral moments
While the world chases faster algorithms and sharper models, you turn quietly to gather what data often forgets—the depth of a gaze, the unspoken story behind a touch
You are not building another tool to record time, but crafting a corridor for the human spirit, outside of time. Here, memory is no longer a cold coordinate, but a poem with a pulse
Technology will always iterate, but what you guard—those subtle tremors that turn moments into eternities—is precisely the human essence we need to be reminded of in this age of intelligence
(A profoundly conceived site. The above is a literary reflection inspired by its aesthetic and its theme of "sense." Hoping it resonates.)
I don't see how either the HA instance or the Linux host can't be viewed as a hub. No hub required feels untrue to me. I assume this question is intended to clarify that some additional device is not necessary, but I think this could be reworded.
I have PTSD whenever I see that phrase. Please don't be a LLM reply.
So I see where he’s coming from, and I interpreted it as intended.
The new philips hue bulb bridge supposedly can turn them all into motion sensors. Do you think this could use what ever data they are pulling from the bulbs to do that as well?
How is a "zone" configured? I understand that if I have 3+ devices, the zone is essentially the area between them. But what about two devices? I'm assuming the zone isn't just a straight line between them, or maybe it is? What kind of zone configuration can one do in the dashboard?
A zone is 2 or more devices. So 2 works just fine. Instead of a straight line, image two flashlights pointing at each other. The beam of the flashlight becomes the sensing area.
In the dashboard you can create zones which you put devices into. So you could flash a handful of devices and put them into a "living room" or "upstairs" zone.
"Wi-ESP", papers+code, KITS WRL, South Korea, https://wrlab.github.io/Wi-ESP/
"Espressif CSI sample applications", Shanghai, China, https://github.com/espressif/esp-csi
"CSI-MURDER", paper+code, WiFi Sensing countermeasures, EU, https://ans.unibs.it/projects/csi-murder/
So you can have the ESP32s over ethernet and it still works as long as it's on the same network as TOMMY (Home Assistant Add-on or Docker). Only thing to keep in mind is that the ESP32s need to have Wi-Fi inbuilt with antenna (either PCB or external).
How are your devices connected exactly? Using ethernet on the subnet your HA instance is on? And are you then able to also connect to a separate Wi-Fi SSID you create for those devices?
Also, are you able to join the Discord channel? Then we can create a thread and go a bit more into depth about your setup.
You can create zones spanning multiple rooms without sensors in each room. Instead of traditional room-by-room motion detection, you could divide your house into zones like "upstairs", "downstairs", or "living area". Especially useful for controlling heating by floor or area-level lighting.
Working through walls also means less clutter. You can hide devices in drawers, closets, or anywhere out of sight.
There's also a pricing aspect: ESP32s can be acquired for a couple of dollars each, so you could have motion sensing throughout your whole house for a fraction of the price of dedicated sensors in every room.
Honestly, it doesn't stand for anything! A couple years ago I was playing around with the concept and a song came on that mentioned "Tommy" repeatedly. I jokingly started calling it Tommy when talking to my girlfriend about it.
So every time the lights turned on or off it was "Tommy who did it" and the name just stuck. Now I'm too invested to change it.
There's a dedicated thread on the Discord channel where people are coming up with good ideas for what TOMMY stands for. Some of the suggestions are "Totally Overengineered Motion Monitoring" and "Through-Obstacle Motion Monitoring". People are still working on what the Y should stand for.
1. Does it have any idea of the range at which motion is happening, relative to the distance between nodes or otherwise?
2. Can it correlate motion with that of another WiFi or Bluetooth device? So if I'm carrying my phone and it can see me moving, can it tell that it's me?
3. What's the movement -> signal latency?
1. As of now it only knows whether there is motion in the zone or not. Actual (x,y) coordinates within the zone are theoretically possible and something I have on the roadmap for 2026.
2. No, it doesn't correlate with other devices currently. But Wi-Fi sensing can theoretically identify who is moving by analyzing how you disrupt the signal. We all have unique movement patterns. I actually have a working proof of concept that can differentiate between me and my girlfriend, but it's very experimental and not stable enough for release yet. Definitely on the future roadmap though.
3. Pretty much instant (around 50ms). The detection happens in real-time as the signal disruption is analyzed.
With 2, I'm trying to think how effectively it could replace something like ESPresense. With that you've got a BLE tag with an ID that you can just associate with a person, so there's no learning of moving patterns needed, but getting it to be accurate to a room is a nightmare. It also works when there's no movement, which is convenient, and you can put the tag down if you don't want to be tracked. The ergonomics are just a bit nicer, it's just the resolution that sucks.
Hopefully someone will be able to help, thanks!
What's the configuration/calibration like? Do I need to set any proximity baselines?
In the future, when I add stationary presence detection, there is a good chance a small calibration will be needed.
Neighbor detection: I haven't had issues with neighbor movement affecting detection in my testing. The devices form a mesh within your defined zone, so they're primarily sensing disruptions between your own nodes. If you do experience false positives, there's a sensitivity adjustment in the dashboard.
Privacy/spying: In TOMMY, I've explicitly disabled the ability to use devices outside your own network - it only works with ESP32s you've flashed and added to your system. Someone would need physical access to place their own devices in your space.
That said, Wi-Fi sensing as a broader technology could theoretically be used for surveillance if someone controlled devices on both sides of your walls. It's similar to other wireless technologies in that regard. The key is controlling your own hardware.
Does this mean that a nosy neighbor or someone else who wanted to surveil your residence could accomplish this by placing multiple devices around but not necessarily on your property so that a mesh is created that effectively covers your residence? Sounds like a stalker tool or a tool for burglars to use to determine when a building is unoccupied so that they can get in and out without being interrupted. Wealthy homeowners, like professional sports players, have already become targets of burglars who use team schedules to understand when a place will be unoccupied. The NFL's Joe Burrow I think is the most recent victim.
I guess the effective range of each device factors into this if you were determining mesh coverage.
How would one protect their residence from similar surveillance?
EDIT: I like this concept and see that this could help me here in managing deer traffic across my property. I would like to give them a reason to take another path so knowing exactly when they are on the property is useful data. Game cameras and ordinary security cameras set up as game cameras have a noticeable lag and so they don't send the alert until they finalize a video and by that time the animal has absconded, but not before chewing my fruit trees.
The effective range of each device factors into the sensing area. The closer together the sensors are the higher sensing sensitivity it has. In my 90 square meter apartment I can create a sensing area with a sensor in each end of the apartment.
Additionally, TOMMY is designed to only work with devices you've explicitly flashed and added to your system. It won't interact with random ESP32s that might be nearby.
The deer management is actually a very interesting use case. I am interested in hearing your results if you decide to set it up for that.
For my own use case as simple mesh array that would alert me to movement within certain parts of the property that I have set aside as garden or orchard plots would really be useful. I have lost numerous fruit trees to deer, especially in winter cold spells and over time learned that the only effective method of guaranteeing plant survival over winter is area denial. I accomplished this over the last couple of years using deer fencing products to establish areas where large animals have no access. In the process, I also found a use case for a security camera to monitor an area to see which animals regularly passed by or through.
Over a period of years I have seen lots of animal tracks but direct sightings have been rare. Using the security camera as a game camera has restored my confidence in animal ID from tracks alone since I have managed to capture still photos and video of the animals that I was pretty sure were visiting my place to validate what I believed based on the tracks alone. I hunted and trapped when I was a kid into high school so it is good to see that, though I have not needed them and have rarely used them, I have not totally lost those skills in the ensuing 40+ years.
I can see an array like this as quite useful in a garden space for identifying which plants need protection from squirrels, opossums, raccoons, etc and where the feral cats are squatting so that I don't inadvertently dredge up something unwholesome while working the soil. My cameras have demonstrated that they can detect and alert to things as small as a wasp or beetle moving across the FoV so if I can set something up to track the path of grasshoppers through the garden then I can potentially see where they are laying eggs cases and disrupt that soil before they can hatch next season.
This is all really interesting stuff. I look forward to joining the Discord group and to picking up a few ESPs for testing.
Sorry for the wall of text.
Your garden/wildlife management use case is very interesting. Way more creative than typical smart home automation. The real-time detection should help with that camera lag issue you mentioned, and the through-wall sensing could monitor areas that are hard to place cameras.
Please create a thread in the Discord channel about this use case. I think it's really interesting and other users might have good ideas for your setup. Would love to see how it works out for you!
No apologies needed for the wall of text. This is exactly the kind of creative applications I was hoping people would think of.
Wi-Fi sensing is passive, i.e. only one side of the wall is needed.
https://news.ycombinator.com/item?id=45488908#45546394
There are also techniques that use one controlled device and leverage ambient Wi-Fi signals from uncontrolled sources (like a neighbor's router), but TOMMY explicitly disables all options for using devices outside your own network. It only works with ESP32s you've flashed and added to your system.
The interference from running TOMMY is quite low. And if ESP32-C6 (2.4Ghz Wi-Fi 6) or ESP32-C5 (5Ghz) is used as sensors, the interference is negligible.
lots of opportunity for pinball wizard jokes / easter eggs
Even if IEEE doesn't care, someone famous will eventually learn that the walls of their mansion are transparent to passive WiFi receivers with cantennas, even if they turn off all WiFi devices inside their home. Will they build a new mansion with RF-shielded walls? Try to find someone who cares?