github ESPresense/ESPresense v5.0.0b0

pre-release5 hours ago

v5 is a rewrite on ESP-IDF with a new hardware config model. WiFi and MQTT settings survive an OTA from v4; hardware settings do not. Expect to re-enter pins (or import a board template) and to clean up Home Assistant entities.

Breaking Changes

  • Firmware is pure ESP-IDF v5.4. No Arduino, no PlatformIO. Build with ./build.sh <env> (#2497)
  • Hardware config is four JSON settings: leds, inputs, outputs, power. All old led_N_*, pir_*, radar_*, switch_N_*, button_N_*, led_pwr_pin keys are gone with no migration (#2530)
  • PIR, radar, switches and buttons are now inputs (up to 8). <room>/motion, switch and button topics are replaced by <room>/input_N binary sensors (#2530)
  • Relays are now outputs (up to 8), one HA switch each on <room>/output_N, /set takes ON/OFF/TOGGLE (#2530)
  • Input timeout MQTT commands removed (#2530)
  • m5stickc, m5stickc-plus, m5atom images are now aliases of esp32; the M5StickC screen no longer shows status text, AXP192 is a hardware checkbox (#2497, #2530)
  • macchina-a0 (CAN) build dropped (#2497)
  • Fresh flashes should use the new <env>.factory.bin at offset 0x0 (#2532)
  • Some boards needed a power cycle after the first boot following an OTA from v4

New Features

  • Board templates: import/export hardware settings as JSON on a new Templates page (#2531)
  • Smart plug power monitoring: BL0937, HLW8012 and CSE7766 publish power, voltage, current and energy to HA (#2530)
  • Outputs can be driven by a linked input (button toggles, switch/motion follows) and restore state on boot (#2530)
  • Fixed high/low output types for enable pins such as the NanoC6 LED power rail (#2530, #2536)
  • LED output control mode mirrors an output, e.g. a plug's relay LED (#2530)
  • Battery level on any ADC1 pin via batt_pin and batt_mult (#2530)
  • Waveshare ESP32-S3-ETH (W5500) and WESP32 Rev7+ Ethernet (#2528)
  • Optional WPA2 password on the setup access point (#2519)
  • rssi_window_ms setting for RSSI smoothing (#2520)
  • Active connection option for IRK discovery (#2247)
  • MQTT /set for forget, requery and count settings (#2336)

Memory & Performance

  • Free heap under full fingerprint load: ESP32-S3 13 KB → 111 KB, ESP32-C6 66 KB → 150 KB, ESP32-C3 18 KB → 30 KB. 4 h soak flat on all four chips (#2497)
  • Fingerprint cap, tunable in Settings. Defaults: ESP32 45, ESP32-C3 100, ESP32-S3 150, ESP32-C6 200 (#2208, #2282)
  • ESP32-S3 and C3 low-heap freezes, leaks and reboots fixed (#2309: #2414, #2426, #2428, #2431, #2439, #2446, #2453, #2462)
  • No heap allocation or double-precision math on the per-advertisement path (#2284, #2504, #2506)
  • OTA and /json back off under low heap instead of crashing (#2291, #2428, #2462)
  • Smaller binaries: newlib-nano printf, no oversized libm calls, smaller UI payload (#2412, #2505, #2507)

Bug Fixes

  • Beacons that switch iBeacon UUID when triggered (BlueCharm BC021 Pro / BC04P) get one fingerprint per UUID instead of hiding the trigger (#2527)
  • Stack overflow in MQTT publish and heap corruption on lock failure (#2314, #2315, #2413)
  • Enrollment on ESP32-C6 (#2366)
  • Clear stale bonds after init (#2382)
  • Password fields no longer autofill (#2526)

Don't miss a new ESPresense release

NewReleases is sending notifications on new releases.