HN user

mike2872

46 karma

Building TOMMY to bring motion and presence detection to smart homes using Wi-Fi sensing

Posts2
Comments35
View on HN

Founder of TOMMY here. I'm glad you like the ESPHome support. It was one of the most requested features before implementation.

Regarding the lifetime license for Discord members, that's primarily to ensure that beta testers aren't being "used" for testing and then asked to pay. A lot of my users had stories about that with previous companies, and I wanted to give a promise that wasn't going to be the case here. And building a community where people help each other with device placement, hardware suggestions, etc. is a nice addition.

Anyway, I think this project is really cool, francescopace. Many have asked for TOMMY to be open-sourced, so that's definitely something you're going to have success with. I wish you all the best!

- Mike

I can understand that. I used to do a lot of game streaming with Parsec and ended up with a similar 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.

It's possible to have the devices in-wall, but it might not be that practical as you point out. Or at least they would have to be taken out once for flashing, then OTA updates would reduce or eliminate the need for reflashing further.

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).

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.

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).

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.

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.

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.

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.

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.

Great questions.

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.

Thanks for the questions.

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.