Show HN: Tommy – Turn ESP32 devices into through-wall motion sensors (tommysense.com)

110 points by mike2872 ↗ HN
Hi HN! I would like to present my project called TOMMY, which turns ESP32 devices into motion sensors that work through walls and obstacles using Wi-Fi sensing.

TOMMY started as a project for my own use. I was frustrated with motion sensors that didn't detect stationary presence and left dead zones everywhere. Presence sensors existed but were expensive and needed one per room. I explored echo localization first, but microphones listening 24/7 felt too creepy. Then I discovered Wi-Fi sensing - a huge research topic but nothing production-ready yet. It ticked all the boxes: could theoretically detect stationary presence through breathing/micromovements and worked through walls and furniture so devices could be hidden away.

Two years and dozens of research papers later, TOMMY has evolved into software I'm honestly quite proud of. Although it doesn't have stationary presence detection yet (coming Q1 2026) it detects motion really well. It works as a Home Assistant Add-on or Docker container, supports a range of ESP32 devices, and can be flashed through the built-in tool or used alongside existing ESPHome setups.

I released the first version a couple of months ago on Home Assistant's subreddit and got a lot of interest and positive feedback. More than 200 people joined the Discord community and almost 2,000 downloaded it.

Right now TOMMY is in beta, which is completely free for everyone to use. I'm also offering free lifetime licenses to every beta user who joins the Discord channel.

You can read more about the project on https://www.tommysense.com. Please join the Discord channel if you are interested in the project.

A note on open source: There's been a lot of interest in having TOMMY as an open source project, which I fully understand. I'm reluctant to open source before reaching sustainability, as I'd love to work on this full time. However, privacy is verifiable - it's 100% local with no data collection (easily confirmed via packet sniffing or network isolation). Happy to help anyone verify this.

25 comments

[ 3.6 ms ] story [ 51.9 ms ] thread
(comment deleted)
> 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.

Could you help me understand the use case for this? I've used PIR and mmWave before. When would you choose tommysense vs some other option.
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.
What dark magic is this! Very cool repurposing of technology. If you don't mind me asking - what's the origin of the name Tommy?
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?

3. What's the movement -> signal latency?

Any reason it couldn't run on Raspberry Pi? Also, I have some ZHA sensors that I believe are also on 2.4GHz band - will this interfere with them?
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.
Really cool idea, and scratches an itch I have with current motion detection sensors (looking at you LD2410...)

What's the configuration/calibration like? Do I need to set any proximity baselines?

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?
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.
This is awesome! I'll be trying this soon and joining the Discord after work!
lol all I can think when I see this is "tommy can you hear me?"

lots of opportunity for pinball wizard jokes / easter eggs

Looks cool! Does it work outdoors too? And can it be battery-powered?
(comment deleted)
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)
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.
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?

Super cool! I'm going to try this out!

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?

Congrats on the launch, that looks really cool!

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

What would you recommend/what do people do for power and access for in-wall sensors? Pulling power at least once per room (assuming you can share at least 1 node with another room) and being able to access it if you need to reflash feel like hard problems.

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.

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