ESPresense, the ESP32 firmware for room-level presence detection that tracks phones, watches and BLE beacons and reports them over MQTT, is heading for version 5. The first v5 beta appeared on 11 October 2026, and the latest, v5.0.0b4, was published on 24 October. The stable release has no date yet, but it matters now for one reason: according to the upgrade guide, a node with "Automatically update" switched on will move to v5 by itself once v5 becomes the latest release.

A rewrite, not a point release

The guide calls v5 a rewrite on ESP-IDF with a new web interface. The firmware no longer uses Arduino or PlatformIO. The release notes report much more free memory under a full load of tracked devices: on the ESP32-S3 it goes from 13 KB to 111 KB and on the ESP32-C6 from 66 KB to 150 KB. Several freezes, leaks and reboots on the S3 and C3 have been fixed.

New in v5:

  • smart plug power monitoring with BL0937, HLW8012 and CSE7766 chips, published to Home Assistant;
  • up to eight inputs (PIR, radar, buttons, switches) and eight outputs such as relays, which can follow a linked input;
  • board templates that import and export hardware settings as JSON;
  • Ethernet on the Waveshare ESP32-S3-ETH and WESP32 Rev7+;
  • an optional WPA2 password on the setup access point.

What changes in Home Assistant

v4 published one motion sensor plus separate button, switch, PIR and radar entities. v5 publishes one binary sensor per input, named input_1, input_2 and so on. After upgrading you need to point automations at the new entities and delete the old ones, which stop updating. According to the guide, v5 converts the old LED, PIR, radar, button and switch settings into the new lists on its first start, and Wi-Fi, MQTT, room name and sensor settings carry over. The guide warns that this conversion only exists in betas after b3. The first betas did not convert v4 hardware settings, so pins had to be entered again or imported from a template.

Changes in the latest betas

  • b3 (22 October): a bug gave ESP32-C6 boards from the same batch the same node ID, so they shared MQTT topics and Home Assistant IDs. The fix gives C6 nodes that ran an earlier v5 beta a new ID once, which means they show up as new devices and the old ones have to be removed. v4 had no C6 build, and ESP32, S3 and C3 IDs do not change.
  • b4 (24 October): the receiver adjustment is now rx_offset_rssi, added to every reading, instead of the subtracted rx_adj_rssi. The node converts the old value on first boot, so distances stay the same. LEDs are capped at a brightness of 64 out of 255 unless you set a higher maximum. If you use ESPresense Companion, update it to 2.4.1 before updating nodes, otherwise calibration goes wrong on nodes with an offset.

Owners of M5StickC, M5StickC Plus and M5 Atom nodes running the board-specific v4 builds should apply their board template straight after upgrading. Until then the plain ESP32 build can, for example, drive the M5StickC Plus buzzer instead of a status LED. There is no v5 update for the Macchina A0, so auto-update leaves it on v4.

What to do now

If you would rather choose when to move, check the auto-update setting on your nodes before v5.0.0 comes out and read the upgrade checklist first. It suggests taking screenshots of the Hardware and Settings pages on v4 to compare with afterwards.