Is ESPresense the Successor to ESP32-MQTT-Room We've Been Waiting For?

Disclosure: This post contains affiliate links. If you click through and make a purchase, I will earn a commission, at no additional cost to you. Read my full disclosure here.

A minimalist styled room with a black leather sofa adorned with two neutral-toned cushions, positioned next to a potted green plant. A vintage white dresser stands to the right of the sofa, topped with a vase of dried wheat stalks and a small framed picture. A sleek, modern floor lamp with an adjustable neck casts light towards the dresser, creating a cosy ambiance. The room has light grey walls and a white tiled floor, reflecting a clean and serene atmosphere.

The dream of every Home Assistant enthusiast is to use low-cost Bluetooth/BLE-capable ESP32 boards to track presence on a room-by-room basis. Imagine turning a ~US$3 board into a node that tracks your smartwatch's or phone's location within a couple of meters and adjusts the environment accordingly. A new project aims to achieve this goal: ESPresense. But can it fulfil its promise?

Contents

Every Presence Sensor Has Its Issues

Traditional methods of presence detection often have limitations:

A close-up image of a Grid-EYE sensor module mounted on a red SparkFun board. The module consists of a central metal component labelled “Grid-EYE” with various connections labelled “GND,” “3.3V,” “SDA,” “SCL,” and “INT” on the board. The SparkFun logo is prominently displayed at the top of the board. The image shows detailed electronic components and connectors.
Close-up image of an AM312 mini PIR motion sensor. The sensor has a white, dome-shaped lens attached to a small green circuit board. The board features three exposed pins for connections and various electronic components. The overall appearance is compact, showcasing the sensor's design for detecting motion in a small form factor.
Close-up image of a BME680 sensor module mounted on a blue breakout board. The board is labelled “BME 680” and features multiple connection points labelled “VIN,” “GND,” “3Vo,” “SDO,” “SCK,” “SDI,” and “CS.” The board contains various electronic components, including a small central metal sensor and other surface-mounted elements. The breakout board also has mounting holes at the corners for easy installation.

What's New in ESPresense?

In the title, I referred to ESPresense as the successor to ESP32-MQTT-Room. Although ESP32-MQTT-Room is still functional, it hasn't received recent updates, with the last feature update over a year ago.

ESPresense can be seen as the spiritual successor to ESP32-MQTT-Room. It is a fork/rewrite of it, introducing several new features for those using ESP32 boards to track presence:

Getting Started with ESPresense

To track presence on a room level with ESPresense, you'll need two components: a sender/beacon and a receiver. The receiver will always be an ESP32 board, which you can purchase for ~US$3 from AliExpress.

For a more advanced setup, ESPresense can be installed on M5Sticks, which display nearby devices on their screen and come with built-in cases, eliminating the need for 3D printing.

The sender/beacon is typically a BLE-broadcasting device. Your iOS or Android device will work, but you can also use trackers like Tile or Chipolo. For a cheaper option, BLE trackers from AliExpress are available. Searching for iBeacon or Eddystone will yield many options. Some fitness trackers also function as beacons. The ESPresense website confirms that the Mi Band 2 works, though Garmin watches do not.

Installing ESPresense

ESPresense uses the ESP Web Tools for installation on an ESP32 board. To install the firmware, you need a compatible browser (Chrome) and a USB cable. Connect the ESP32 to your computer, open the installation page, and press the installation button.

Tracking Android and iOS Devices with ESPresense

For Android devices, the easiest tracking method is using the Home Assistant companion app. Enable the BLE transmitter under sensor settings in the app to allow ESPresense tracking. Be aware that this feature consumes battery power. ESPresense tracks iPhones and Apple Watches using their fingerprint.

For detailed configuration, refer to the ESPresense Home Assistant guide. As I currently don't have any spare ESP32 devices, I haven't set it up myself and will defer to the official guide.

Screenshot of the Home Assistant companion app displaying Bluetooth sensor information. The screen title is “Sensors,” with a subsection labelled “Bluetooth Sensors” in blue text. Below this, it shows the status of various Bluetooth-related functions: “Ble Transmitter” is listed as “Transmitting,” “Bluetooth Connection” indicates “0 connection(s),” and “Bluetooth State” is “true.” The interface includes search and filter icons in the top-right corner.

Limitations of BLE Tracking with ESPresense

While ESPresense offers many advantages, it also has limitations, many of which are beyond its control:

Summary

ESPresense brings a new level of sophistication to room-level presence detection using ESP32 boards. With features like fingerprint tracking, support for Tile trackers, advanced filtering, multithreading, and OTA updates, it significantly improves upon its predecessors. While it has some limitations, particularly related to device-specific restrictions, it represents a promising solution for Home Assistant users seeking precise and reliable presence detection.

For a deeper dive into setup and configuration, visit the ESPresense website, and start transforming your home automation experience today.

A portrait photo oif Liam Alexander Colman, the author, creator, and owner of Home Assistant Guide wearing a suit.

About Liam Alexander Colman

is an experienced Home Assistant user who has been utilizing the platform for a variety of projects over an extended period. His journey began with a Raspberry Pi, which quickly grew to three Raspberry Pis and eventually a full-fledged server. Liam's current operating system of choice is Unraid, with Home Assistant comfortably running in a Docker container.
With a deep understanding of the intricacies of Home Assistant, Liam has an impressive setup, consisting of various Zigbee devices, and seamless integrations with existing products such as his Android TV box. For those interested in learning more about Liam's experience with Home Assistant, he shares his insights on how he first started using the platform and his subsequent journey.

Comments

  1. hi, thanks for sharing your insights. Just to let you know i can use my garmin FR935 with ESP32-mqtt-room. In order for it to work I’ve configured a bixby routine on my phone to turn off BT while home. Not ideal but no big deal not having BT while home.

    Reply
    • That’s actually quite an interesting solution. Turns out Bixby is good for something 😃 (I’ve never actually used it). I guess the same is doable with Tasker. Unfortunately, this wouldn’t work for me, as the watch is my notification machine and I always have the phone on silent.

      Reply

Leave a comment

Share to...