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.
"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/
I had an idea to build a restricted zones for a phone. For example, I can't take my phone to bed, so I wanted to create a esp32 based project that beeps when the phone is too close to some areas. I made it based on BLE, but iphone masks MAC addresses, so it was impossible to track particular devices. No I realize, I could actually do it with WIFI signal straight. How I didn't think about it. Will try again today :D
Sounds like a great project. Using the Wi-Fi signal directly might work in your case. It would be nice to go back to actually using the bedroom as a place to sleep and not look at the phones all the time :-)
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.
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.
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.
Right now, TOMMY only use Wi-Fi and doesn't support using ethernet for the communication with HA and Wi-Fi for peer-to-peer communication. But that is very possible to implement. Just haven't encountered the use case before now.
I'll probably implement an option for split communication (ethernet, wifi) and then allow users to decide the Wi-Fi channel devices communicate on peer-to-peer. That way you'd have full control over possible interference.
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?
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.
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.
OR, am I completely missing the point that it's "through walls", not necessarily in-wall (though that would work). A wall-wart-sized device containing the ESP32 board could be plugging in to each room and share the node (on the opposite wall) of the next room?
Very cool project and love the HA integration as well. I'm using PiR and mmWave (Z-Wave and Zigbee) currently but obviously you either have to run power for those or deal with replacing batteries, this seems much more maintainable and unobtrusive.
The real benefit from the sensors working through walls in my opinion is to be able to hide the devices away (e.g. in a closet or drawer) + being able to create zones that crosses walls. Image wanting a zone called 'upstairs', 'downstairs', 'garage' etc. which consists of multiple rooms divided by walls. Instead of having a sensor in each room you might just need one on each side of the total area.
Thanks! I agree with the PiR and mmWave limitations. Right now I think this project can replace motion sensor. Hopefully mmWave when stationary presence detection is added (planned Q1 2026).
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?
lots of opportunity for pinball wizard jokes / easter eggs