ESPHome 2024.12.0 - 18th December 2024 ====================================== .. seo:: :description: Changelog for ESPHome 2024.12.0. :image: /_static/changelog-2024.12.0.png :author: Jesse Hills :author_twitter: @jesserockz .. imgtable:: :columns: 2 Seeed Studio MR60BHA2 mmWave, components/seeed_mr60bha2, seeed_mr60bha2.jpg Seeed Studio MR60FDA2 mmWave, components/seeed_mr60fda2, seeed_mr60fda2.jpg H-bridge Switch, components/switch/hbridge, hbridge-relay.jpg Switch Binary Sensor, components/binary_sensor/switch, electric-switch.svg, dark-invert ESP-IDF ------- ESPHome has now updated the core ESP32 code to use `ESP-IDF `__ 5.1.5. This is a major upgrade and should bring more features, chip support (Most notably the ESP32-C6 that people keep raving on about) and in general more stability. To acommodate this change, ESPHome has moved away from the "official" platformio provided ESP32 platform, and is now using a community fork `pioarduino/platform-espressif32 `__ as platformio has decided to stop providing ESP-IDF updates to their platform for Espressif chips. As a user, you should not notice any difference. As we are unable to test every single component and board, there might be issues with specific configurations. Please report these in the `ESPHome issue tracker `__ on GitHub. ESPHome ``armv7`` Docker Support -------------------------------- We will be retiring ESPHome's Docker support for ``armv7`` hardware in the February 2025 release. This is due to both waning support as it relates to tooling and performance reasons. We strongly recommend moving to a more modern architecture, especially if you're using the ESPHome Device Compiler to build/compile firmware for your devices. Release 2024.12.1 - December 19 ------------------------------- - [core] Bugfix: Implement ring buffer with xRingbuffer :esphomepr:`7973` by :ghuser:`kahrendt` Release 2024.12.2 - December 20 ------------------------------- - [esp32] Fix flash size warning when using IDF :esphomepr:`7983` by :ghuser:`kbx81` - [esp32_ble] Fix for Improv :esphomepr:`7984` by :ghuser:`kbx81` Release 2024.12.3 - January 17 ------------------------------ - Fixed libretiny preference wrongly detecting change in the data to store :esphomepr:`7990` by :ghuser:`szupi-ipuzs` - [http_request] Bugfix: run update function in a task :esphomepr:`8018` by :ghuser:`kahrendt` Release 2024.12.4 - January 17 ------------------------------ - Bump python3-setuptools to 66.1.1-1+deb12u1 :esphomepr:`8074` by :ghuser:`jesserockz` Full list of changes -------------------- New Components ^^^^^^^^^^^^^^ - Add: Seeed Studio mr60fda2 mmwave sensor :esphomepr:`7576` by :ghuser:`limengdu` (new-integration) - Add: Seeed Studio MR60BHA2 mmWave Sensor :esphomepr:`7589` by :ghuser:`limengdu` (new-integration) New Platforms ^^^^^^^^^^^^^ - binary_sensor for switch state :esphomepr:`7819` by :ghuser:`ssieb` (new-platform) - Add H-Bridge switch component :esphomepr:`7421` by :ghuser:`dwmw2` (new-platform) Breaking Changes ^^^^^^^^^^^^^^^^ - Fix entity name validation to allow "Off" and "On" :esphomepr:`7821` by :ghuser:`jesserockz` (breaking-change) - MQTT sensors handling of publishing NaN values :esphomepr:`7768` by :ghuser:`kbullet` (breaking-change) - Synchronise esp32 boards with platform version 51.03.07 :esphomepr:`7945` by :ghuser:`jesserockz` (breaking-change) - [sgp30] Set default update interval to 60s :esphomepr:`7952` by :ghuser:`jesserockz` (breaking-change) Beta Changes ^^^^^^^^^^^^ - [const] Add RMT CONF variables to const.py :esphomepr:`7953` by :ghuser:`swoboda1337` - [sgp30] Set default update interval to 60s :esphomepr:`7952` by :ghuser:`jesserockz` (breaking-change) - [dallas_temp] Move delay_microseconds_safe to iram :esphomepr:`7957` by :ghuser:`swoboda1337` - [i2s_audio] Bugfix: Correctly set ring buffer size :esphomepr:`7959` by :ghuser:`kahrendt` - [adc] Restore missing LIBRETINY code in a separated file :esphomepr:`7955` by :ghuser:`edwardtfn` - [font] cleanly handle font file format exception (Bugfix) :esphomepr:`7970` by :ghuser:`clydebarrow` - [dashboard] Accept basic auth header :esphomepr:`7965` by :ghuser:`jesserockz` - Bump esphome-dashboard to 20241217.1 :esphomepr:`7971` by :ghuser:`jesserockz` - [esp32_ble] Use RAMAllocator to avoid panic abort from ``new`` :esphomepr:`7936` by :ghuser:`jesserockz` All changes ^^^^^^^^^^^ - Bump codecov/codecov-action from 4 to 5 :esphomepr:`7771` by :ghuser:`dependabot[bot]` - [remote_base] Fix extra comma in dump raw :esphomepr:`7774` by :ghuser:`swoboda1337` - [nextion] New trigger `on_buffer_overflow` :esphomepr:`7772` by :ghuser:`edwardtfn` - enable rp2040 for online_image :esphomepr:`7769` by :ghuser:`afflux` - [nextion] Add publish actions :esphomepr:`7646` by :ghuser:`pkejval` - [wifi] Make wifi_channel_() public :esphomepr:`7818` by :ghuser:`nielsnl68` - feat(WiFi): Add wifi.configure action :esphomepr:`7335` by :ghuser:`Rapsssito` - allow multiple graphical menus :esphomepr:`7809` by :ghuser:`ssieb` - Move ``CONF_NAME_ADD_MAC_SUFFIX`` to ``const.py`` :esphomepr:`7820` by :ghuser:`jesserockz` - binary_sensor for switch state :esphomepr:`7819` by :ghuser:`ssieb` (new-platform) - [nextion] Remove assignment within `if` :esphomepr:`7824` by :ghuser:`kbx81` - [ota] `void` functions should return nothing :esphomepr:`7825` by :ghuser:`kbx81` - [safe_mode] Remove unused capture :esphomepr:`7826` by :ghuser:`kbx81` - [stepper] Remove unnecessary ``#include`` :esphomepr:`7827` by :ghuser:`kbx81` - [sx1509] Fix up includes :esphomepr:`7828` by :ghuser:`kbx81` - [uart] `void` functions should return nothing :esphomepr:`7829` by :ghuser:`kbx81` - [audio] Header modernization :esphomepr:`7832` by :ghuser:`kbx81` - [opentherm] Follow variable naming convention :esphomepr:`7833` by :ghuser:`kbx81` - [opentherm] Add nolint for 8266 static global :esphomepr:`7837` by :ghuser:`kbx81` - [helpers] Add NOLINT for Mutex private field ``handle_`` :esphomepr:`7838` by :ghuser:`kbx81` - Add waveshare 1 45 in v2 b support :esphomepr:`7052` by :ghuser:`programmingbgloDE` - added Waveshare BWR Mode for the 7.5in Display :esphomepr:`7687` by :ghuser:`JonasB2497` - [homeassistant.number] Return when value not set :esphomepr:`7839` by :ghuser:`kbx81` - [CI] Add/update some system include paths :esphomepr:`7831` by :ghuser:`kbx81` - add on_key trigger to matrix_keypad :esphomepr:`7830` by :ghuser:`ssieb` - Add: Seeed Studio mr60fda2 mmwave sensor :esphomepr:`7576` by :ghuser:`limengdu` (new-integration) - [lvgl] clang-tidy fixes for #7822 :esphomepr:`7843` by :ghuser:`kbx81` - [xiaomi_ble] clang-tidy fixes for #7822 :esphomepr:`7860` by :ghuser:`kbx81` - [wireguard] clang-tidy fixes for #7822 :esphomepr:`7859` by :ghuser:`kbx81` - [dsmr] clang-tidy fixes for #7822 :esphomepr:`7848` by :ghuser:`kbx81` - Fix entity name validation to allow "Off" and "On" :esphomepr:`7821` by :ghuser:`jesserockz` (breaking-change) - [camera_web_server] Add ``NOLINT`` due to naming :esphomepr:`7823` by :ghuser:`kbx81` - [display_menu_base] clang-tidy fixes for #7822 :esphomepr:`7847` by :ghuser:`kbx81` - [nextion] clang-tidy fixes for #7822 :esphomepr:`7852` by :ghuser:`kbx81` - [shelly_dimmer] clang-tidy fixes for #7822 :esphomepr:`7844` by :ghuser:`kbx81` - [sim800l] clang-tidy fixes for #7822 :esphomepr:`7856` by :ghuser:`kbx81` - [nfc, pn532, pn7150, pn7160] clang-tidy fixes for #7822 :esphomepr:`7853` by :ghuser:`kbx81` - [output] clang-tidy fixes for #7822 :esphomepr:`7854` by :ghuser:`kbx81` - [sun_gtil2] clang-tidy fixes for #7822 :esphomepr:`7858` by :ghuser:`kbx81` - [pipsolar] clang-tidy fixes for #7822 :esphomepr:`7855` by :ghuser:`kbx81` - [ltr501] clang-tidy fixes for #7822 :esphomepr:`7850` by :ghuser:`kbx81` - [cse7766] clang-tidy fixes for #7822 :esphomepr:`7846` by :ghuser:`kbx81` - [alarm_control_panel] clang-tidy fixes for #7822 :esphomepr:`7845` by :ghuser:`kbx81` - [sprinkler] clang-tidy fixes for #7822 :esphomepr:`7857` by :ghuser:`kbx81` - [haier] clang-tidy fixes for #7822 :esphomepr:`7849` by :ghuser:`kbx81` - [mqtt] clang-tidy fixes for #7822 :esphomepr:`7851` by :ghuser:`kbx81` - [helpers, optional] clang-tidy fixes for #7822 :esphomepr:`7841` by :ghuser:`kbx81` - Move ``USE_CAPTIVE_PORTAL`` into all define groups it can be used with :esphomepr:`7863` by :ghuser:`jesserockz` - Bump docker/build-push-action from 6.9.0 to 6.10.0 in /.github/actions/build-image :esphomepr:`7866` by :ghuser:`dependabot[bot]` - python lint for platform components :esphomepr:`7864` by :ghuser:`tomaszduda23` - [max31865] clang-tidy fixes for #7822 :esphomepr:`7876` by :ghuser:`kbx81` - [esp32_ble] clang-tidy fixes for #7822 :esphomepr:`7883` by :ghuser:`kbx81` - [mqtt] clang-tidy fixes for #7822 :esphomepr:`7877` by :ghuser:`kbx81` - [uln2003] clang-tidy fixes for #7822 :esphomepr:`7881` by :ghuser:`kbx81` - [rotary_encoder] clang-tidy fixes for #7822 :esphomepr:`7880` by :ghuser:`kbx81` - [pca6416a, pca9554] clang-tidy fixes for #7822 :esphomepr:`7879` by :ghuser:`kbx81` - [nextion] clang-tidy fixes for #7822 :esphomepr:`7878` by :ghuser:`kbx81` - [various] clang-tidy fixes for #7822 :esphomepr:`7874` by :ghuser:`kbx81` - [logger] clang-tidy fixes for #7822 :esphomepr:`7875` by :ghuser:`kbx81` - [ezo] clang-tidy fixes for #7822 :esphomepr:`7873` by :ghuser:`kbx81` - [apds9306] clang-tidy fixes for #7822 :esphomepr:`7872` by :ghuser:`kbx81` - [dht] clang-tidy fixes for #7822 :esphomepr:`7871` by :ghuser:`kbx81` - [network] clang-tidy fixes for #7822 :esphomepr:`7870` by :ghuser:`kbx81` - [lvgl] Make image update via lambda work :esphomepr:`7886` by :ghuser:`clydebarrow` - [deep_sleep] fix deep_sleep not keeping awake when sleep_duration is defined :esphomepr:`7885` by :ghuser:`makstech` - [hx711] clang-tidy fixes for #7822 :esphomepr:`7900` by :ghuser:`kbx81` - [modbus_controller] Clang fixes :esphomepr:`7899` by :ghuser:`kbx81` - Add H-Bridge switch component :esphomepr:`7421` by :ghuser:`dwmw2` (new-platform) - [CI] Bump GHA runners to ``ubuntu-24.04`` :esphomepr:`7905` by :ghuser:`kbx81` - [font et. al.] Remove explicit check for pillow installed. :esphomepr:`7891` by :ghuser:`clydebarrow` - [CI] Update clang-tidy to 18.1.3 :esphomepr:`7822` by :ghuser:`kbx81` - MQTT sensors handling of publishing NaN values :esphomepr:`7768` by :ghuser:`kbullet` (breaking-change) - [ble] Allow setting shorter name for ble advertisements :esphomepr:`7867` by :ghuser:`jesserockz` - [font] Restore correct default glyphs for bitmap fonts :esphomepr:`7907` by :ghuser:`clydebarrow` - [helpers] clang-tidy fix for #7706 :esphomepr:`7909` by :ghuser:`kbx81` - [docker] Fix clang-tidy installation :esphomepr:`7910` by :ghuser:`kbx81` - [sntp] Resolve warnings from ESP-IDF 5.x :esphomepr:`7913` by :ghuser:`clydebarrow` - Add strftime variant with background color :esphomepr:`7714` by :ghuser:`mikosoft83` - [i2s_audio] Bugfix: Follow configured bits per sample :esphomepr:`7916` by :ghuser:`kahrendt` - Haier AC quiet mode switch fix :esphomepr:`7902` by :ghuser:`paveldn` - [CI] Update clang-tidy to 18.1.8 :esphomepr:`7915` by :ghuser:`syssi` - [i2s_audio] Speaker type fix :esphomepr:`7919` by :ghuser:`kbx81` - [esp32_rmt_led_strip] Add ``COMPONENT_SCHEMA`` extending :esphomepr:`7918` by :ghuser:`jesserockz` - [esp32] Use pioarduino + IDF 5.1.5 as default for IDF builds :esphomepr:`7706` by :ghuser:`kbx81` - Bump actions/cache from 4.1.2 to 4.2.0 :esphomepr:`7926` by :ghuser:`dependabot[bot]` - Bump actions/cache from 4.1.2 to 4.2.0 in /.github/actions/restore-python :esphomepr:`7925` by :ghuser:`dependabot[bot]` - Add OCI Image Labels :esphomepr:`7924` by :ghuser:`Passific` - Move docker oci labels to correct image :esphomepr:`7927` by :ghuser:`jesserockz` - Update project description :esphomepr:`7928` by :ghuser:`jesserockz` - [modbus] More clean-up :esphomepr:`7921` by :ghuser:`kbx81` - Add: Seeed Studio MR60BHA2 mmWave Sensor :esphomepr:`7589` by :ghuser:`limengdu` (new-integration) - Optimize QMC5883L reads :esphomepr:`7889` by :ghuser:`dnschneid` - [display] Fix strftime overload ignoring alignment :esphomepr:`7937` by :ghuser:`jesserockz` - Add font anti-aliasing for grayscale display :esphomepr:`7934` by :ghuser:`koreapyj` - Bump pypa/gh-action-pypi-publish from 1.12.2 to 1.12.3 :esphomepr:`7941` by :ghuser:`dependabot[bot]` - [adc] Split files by platform :esphomepr:`7940` by :ghuser:`edwardtfn` - [const] Move ``CONF_TEMPERATURE_COMPENSATION`` to common const.py :esphomepr:`7943` by :ghuser:`jesserockz` - [lvgl] Fix image `mode` property (Bugfix) :esphomepr:`7938` by :ghuser:`clydebarrow` - [lvgl] Add `on_change` event :esphomepr:`7939` by :ghuser:`clydebarrow` - Synchronise esp32 boards with platform version 51.03.07 :esphomepr:`7945` by :ghuser:`jesserockz` (breaking-change) - [i2c] Use correct macro to determine number of i2c peripherals for idf :esphomepr:`7947` by :ghuser:`jesserockz` - [const] Add RMT CONF variables to const.py :esphomepr:`7953` by :ghuser:`swoboda1337` - [sgp30] Set default update interval to 60s :esphomepr:`7952` by :ghuser:`jesserockz` (breaking-change) - [dallas_temp] Move delay_microseconds_safe to iram :esphomepr:`7957` by :ghuser:`swoboda1337` - [i2s_audio] Bugfix: Correctly set ring buffer size :esphomepr:`7959` by :ghuser:`kahrendt` - [adc] Restore missing LIBRETINY code in a separated file :esphomepr:`7955` by :ghuser:`edwardtfn` - [font] cleanly handle font file format exception (Bugfix) :esphomepr:`7970` by :ghuser:`clydebarrow` - [dashboard] Accept basic auth header :esphomepr:`7965` by :ghuser:`jesserockz` - Bump esphome-dashboard to 20241217.1 :esphomepr:`7971` by :ghuser:`jesserockz` - [esp32_ble] Use RAMAllocator to avoid panic abort from ``new`` :esphomepr:`7936` by :ghuser:`jesserockz` Past Changelogs --------------- - :doc:`2024.11.0` - :doc:`2024.10.0` - :doc:`2024.9.0` - :doc:`2024.8.0` - :doc:`2024.7.0` - :doc:`2024.6.0` - :doc:`2024.5.0` - :doc:`2024.4.0` - :doc:`2024.3.0` - :doc:`2024.2.0` - :doc:`2023.12.0` - :doc:`2023.11.0` - :doc:`2023.10.0` - :doc:`2023.9.0` - :doc:`2023.8.0` - :doc:`2023.7.0` - :doc:`2023.6.0` - :doc:`2023.5.0` - :doc:`2023.4.0` - :doc:`2023.3.0` - :doc:`2023.2.0` - :doc:`2022.12.0` - :doc:`2022.11.0` - :doc:`2022.10.0` - :doc:`2022.9.0` - :doc:`2022.8.0` - :doc:`2022.6.0` - :doc:`2022.5.0` - :doc:`2022.4.0` - :doc:`2022.3.0` - :doc:`2022.2.0` - :doc:`2022.1.0` - :doc:`2021.12.0` - :doc:`2021.11.0` - :doc:`2021.10.0` - :doc:`2021.9.0` - :doc:`2021.8.0` - :doc:`v1.20.0` - :doc:`v1.19.0` - :doc:`v1.18.0` - :doc:`v1.17.0` - :doc:`v1.16.0` - :doc:`v1.15.0` - :doc:`v1.14.0` - :doc:`v1.13.0` - :doc:`v1.12.0` - :doc:`v1.11.0` - :doc:`v1.10.0` - :doc:`v1.9.0` - :doc:`v1.8.0` - :doc:`v1.7.0`