Mastering Room-Based Presence Detection with ESPresence: My Journey
So, I’ve been on a quest to get my Home Assistant to not just know someone is in the house, but to pinpoint exactly who is in which room. I tried using my existing gear like motion sensors, door sensors, and cameras, but none of them quite fit what I wanted. The camera idea is really good and I want to explore that more but it would be complicated and felt a bit invasive. As for the other sensors like motion and mmWave sensors, they didn’t have a way of identifying specific people. So, I decided to invest about $30 in four ESP32 tracking modules for ESPresence. And that’s where my love-hate relationship with them began.
What is ESPresence?
ESPresence uses ESP32 nodes to enable localized device presence detection. It works by communicating with Home Assistant via MQTT, informing it of the location of the devices it detects. Even though I wanted to avoid buying new gear, at least they don’t break the bank.
The Setup
I needed something small, easy to power, and cheap. ESP32 boards checked all the boxes. A pack of four is about $30 on Amazon. I needed nodes for the office, kitchen, and master bedroom, so the pack was just enough to get started. If you have a bigger house, you might need more, but a pack of six is still under $40, which is pretty reasonable.
Installation
I used the tutorial found on ESPresence’s website to get started. I don’t have experience with hardware and physical sensors so I was completely new to the process yet I was able to get everything setup using the tutorial provided on the site. My ONE disclaimer is that make sure you have or buy a USB A to Micro USB cable that support data! I spent several hours wondering why I couldn’t connect to device. After setting up the nodes, it was magical to see them return the location of each tracked device. The nodes detect nearby Bluetooth devices and send their location to Home Assistant via MQTT. I placed nodes in my office, living room (behind the TV), and master bedroom. When a node detects a tracked device, it sends a message like "office" to Home Assistant, which then knows who is in that specific room.
The Good
With this setup, I can tweak automations to fire only in the room where I’m located. Each room with a node also has a Google display or smart speaker, so Home Assistant can send updates or reminders to the device in the room I'm currently in. If it can’t find me, it announces to all speakers, which is what it did before this setup.
The Not-So-Good
Calibrating the nodes can be tricky. They have settings to control detection range and signal strength, which are just numbers without a visual diagram, making it hard to see how they interact in the home. Misplacing the nodes can create dead zones or overlapping detection areas, leading Home Assistant to think you’re in the kitchen when you’re actually in the office. Additionally, ESP32 nodes can take up 30 seconds (worst case scenario) to recognize a change in your location, which sometimes exacerbates the issue of misreporting your whereabouts. Despite these quirks, the setup is worth it if you’re patient enough to tweak and test. One other downside, is that when I ran the setup, I followed the pairing instruction for iPhone’s since that is what I use. However, I was unsuccessful in permanently pairing it to my wife’s android. Based on the docs, it seems possible but I haven’t figured it out.
There are now tools that can help you better visualize the coverage but I haven’t tried it. Lemme know if you found something that made setup easy for you as I would love to document it and try it for myself.
Why It’s Worth It
ESPresence has made my Home Assistant capable of nuanced alerts, addressing me only in the room I’m in instead of broadcasting throughout the house. It’s also great for personalized automations, distinguishing between me and my wife to trigger specific actions or messages. However, this system requires you to carry your phone (or another Bluetooth device) at all times for accurate detection. It’s not perfect, but it’s a significant step up from shouting alerts across the house.
Final Thoughts
Despite its quirks, ESPresence has become a staple in my home automation setup. These tiny boards, though not flawless, are used daily and have greatly enhanced the functionality of my Home Assistant. I mentioned earlier that I would like to explore using cameras to achieve the same level of detection. Camera’s paired with Face Recognition would allow me to track individuals without the need for a device. Despite the creepy factor and other notable downsides I would like to take that challenge on next. In the meantime, if you would like to try this out yourself, below you can find links to the devices and some accessories I found extremely useful to when setting this up. These are affiliate links which helps support my channel at no additional cost to you.