ESPHome 2023.4.0 - 19th April 2023 ================================== .. seo:: :description: Changelog for ESPHome 2023.4.0. :image: /_static/changelog-2023.4.0.png :author: Jesse Hills :author_twitter: @jesserockz .. imgtable:: :columns: 3 Voice Assistant, components/voice_assistant, voice-assistant.svg, dark-invert Microphone Core, components/microphone/index, microphone.svg, dark-invert I2S Microphone, components/microphone/i2s_audio, i2s_audio.svg MMC5603, components/sensor/mmc5603, mmc5603.jpg KSZ8081 Ethernet, components/ethernet, ethernet.svg, dark-invert Voice Assistant --------------- This year is the Year of the Voice for Home Assistant, and ESPHome is charging ahead with this in mind. We've added a new :doc:`/components/voice_assistant` component that allows you to use ESPHome devices as an input for `assist `__ in Home Assistant **2023.5 or later**. With this also comes preliminary :doc:`microphone ` support, which has been built in a way that multiple components, like ``voice_assistant`` can request start / stop of the microphone and get the data. We hope this leads to more interesting use cases for the microphone in the future. Home Assistant is hosting a live stream all about the Year of the Voice - Chapter 2. .. raw:: html Keith joins Nabu Casa --------------------- Nabu Casa is pleased to announce that long time contributor Keith Burzinski (:ghuser:`kbx81`) is joining the team as a full time developer to help out on ESPHome. Keith created the :doc:`/components/sprinkler`, :doc:`/components/climate/thermostat`, a bunch of the ``ssd`` display components and a few other components as well as fixing many bug along the way. I expect his house climate and garden area are kept well in line. Looking forward to working with you Keith. Release 2023.4.1 - April 24 --------------------------- - fix flip_x :esphomepr:`4727` by :ghuser:`ssieb` - Use proper schema for delta filter :esphomepr:`4723` by :ghuser:`jesserockz` Release 2023.4.2 - April 27 --------------------------- - I2c scan recovery reset fix :esphomepr:`4724` by :ghuser:`gcopeland` - Debug component doesn't work on RP2040 :esphomepr:`4728` by :ghuser:`HeMan` - Only request VA port from first client that is subscribed :esphomepr:`4747` by :ghuser:`jesserockz` - Don't allow fingerprint_grow enroll cancellation when no enrollment started :esphomepr:`4745` by :ghuser:`itpeters` Release 2023.4.3 - May 2 ------------------------ - Fix sprinkler switch restore_mode :esphomepr:`4756` by :ghuser:`kbx81` - Fix i2s media player on devices with no internal DAC :esphomepr:`4768` by :ghuser:`jesserockz` Release 2023.4.4 - May 4 ------------------------ - Fixes for Arduino 2.7.4 (for FastLED) :esphomepr:`4777` by :ghuser:`timn` Breaking Changes ---------------- I²S Media Player ^^^^^^^^^^^^^^^^ With the introduction of the :doc:`/components/microphone/i2s_audio`, the media player platform has some required breaking changes to the YAML configuration. This involves moving the ``i2s_lrclk_pin`` and ``i2s_bclk_pin`` to a new :doc:`/components/i2s_audio` component. .. code-block:: yaml # Before media_player: - platform: i2s_audio name: ESPHome I2S Media Player dac_type: external i2s_lrclk_pin: GPIO33 i2s_bclk_pin: GPIO19 i2s_dout_pin: GPIO22 mode: mono # After i2s_audio: i2s_lrclk_pin: GPIO33 i2s_bclk_pin: GPIO19 media_player: - platform: i2s_audio name: ESPHome I2S Media Player dac_type: external i2s_dout_pin: GPIO22 mode: mono Default restore mode for Switches, Fans and Lights ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The default ``restore_mode`` for switches, fans and lights has been changed from ``RESTORE_DEFAULT_OFF`` to ``ALWAYS_OFF`` with the intention that restoring values from flash should be manually specified by a user if desired in their YAML configuration. Number ``step`` ^^^^^^^^^^^^^^^ The ``number`` components have always internally set a ``step`` required in config, but allowed it to be not specified at all. This caused issues on the Home Assistant side of things. This is only a breaking change for external components that have a ``number`` platform. UART ids ^^^^^^^^ Due to ``uart0`` / ``uart1`` / ``uart2`` being defined in some of the platform code ESPHome uses, ESPHome will now disallow these ids from being used in the config. You can simply change them to ``uart_0`` to continue using. Full list of changes -------------------- New Components ^^^^^^^^^^^^^^ - Added in mmc5603 code :esphomepr:`4175` by :ghuser:`benhoff` (new-integration) - Add push to talk voice assistant :esphomepr:`4648` by :ghuser:`jesserockz` (new-integration) Breaking Changes ^^^^^^^^^^^^^^^^ - Disallow uart0/1/2 as ids in config :esphomepr:`4446` by :ghuser:`jesserockz` (breaking-change) - Require step to be set when calling register_number :esphomepr:`4622` by :ghuser:`jesserockz` (breaking-change) - Fix restore :esphomepr:`4655` by :ghuser:`spacemanspiff2007` (breaking-change) Beta Changes ^^^^^^^^^^^^ - debug component, allow without debug logging :esphomepr:`4685` by :ghuser:`jesserockz` - Fixed dns2 for ethernet :esphomepr:`4698` by :ghuser:`HeMan` - Add timeout to i2c write error logs :esphomepr:`4697` by :ghuser:`Szewcson` - Add event triggers to voice_assistant :esphomepr:`4699` by :ghuser:`jesserockz` - Call on_error if no api client connected that handles voice :esphomepr:`4709` by :ghuser:`jesserockz` - Add ethernet powerdown (fixes esphome/issues#4420) :esphomepr:`4706` by :ghuser:`tracestep` - Bump arduino platform version to 5.3.0 :esphomepr:`4713` by :ghuser:`jesserockz` All changes ^^^^^^^^^^^ - Mark unique_id() virtual method as deprecated :esphomepr:`4538` by :ghuser:`oxan` - Drop deprecated entity property base methods :esphomepr:`4539` by :ghuser:`oxan` - Format test files :esphomepr:`4541` by :ghuser:`jesserockz` - EntityBase: Icon string can stay in flash. :esphomepr:`4566` by :ghuser:`Fabian-Schmidt` - Update the delta filter to be able to take a percentage change :esphomepr:`4391` by :ghuser:`TrentHouliston` - Added missing PM_1_0 and PM_10_0 for PMS5003T and PMS5003ST :esphomepr:`4560` by :ghuser:`genestealer` - Add an option to force SPI into software mode :esphomepr:`4556` by :ghuser:`wupeka` - allow using a binary output for the status led :esphomepr:`4532` by :ghuser:`ssieb` - Add option flip_x :esphomepr:`4555` by :ghuser:`rafal83` - Bump aioesphomeapi from 13.5.0 to 13.5.1 :esphomepr:`4572` by :ghuser:`dependabot[bot]` - Verbose output of define. :esphomepr:`4576` by :ghuser:`Fabian-Schmidt` - Add support for ESP32 CAM 3MP and 5MP resolutions and arbitrary camera clock. :esphomepr:`4580` by :ghuser:`peterhalicky` - Add a simple 'skip_initial' filter :esphomepr:`4582` by :ghuser:`sybrenstuvel` - Fix outdated filter string in platformio_api :esphomepr:`4587` by :ghuser:`LordMike` - Split test3.yaml :esphomepr:`4591` by :ghuser:`jesserockz` - Disallow uart0/1/2 as ids in config :esphomepr:`4446` by :ghuser:`jesserockz` (breaking-change) - Upgrade clang-format to v13 :esphomepr:`4535` by :ghuser:`oxan` - B/W support for GooDisplay GDEY029T94 (as used on Adafruit MagTag) :esphomepr:`4222` by :ghuser:`AaronJackson` - Fix negative sqrt root in ct_clamp_sensor.cpp :esphomepr:`4236` by :ghuser:`jerome992` - Wrap ipv6 code a bit more :esphomepr:`4574` by :ghuser:`jesserockz` - Remove EntityBase from sprinkler :esphomepr:`4606` by :ghuser:`jesserockz` - Fix wrong port multiplexer name in dump GPIO function of sx1509 :esphomepr:`4592` by :ghuser:`skaldo` - Bump zeroconf from 0.47.3 to 0.47.4 :esphomepr:`4597` by :ghuser:`dependabot[bot]` - Bump pytest-asyncio from 0.20.3 to 0.21.0 :esphomepr:`4599` by :ghuser:`dependabot[bot]` - Limit range on filter time period for remote_receiver :esphomepr:`4604` by :ghuser:`RoboMagus` - add select_schema to select component :esphomepr:`4545` by :ghuser:`regevbr` - Add ability to clear the gatt cache :esphomepr:`4621` by :ghuser:`bdraco` - Bump actions/stale from 7 to 8 :esphomepr:`4615` by :ghuser:`dependabot[bot]` - Require step to be set when calling register_number :esphomepr:`4622` by :ghuser:`jesserockz` (breaking-change) - Lower range of CONF_FREQUENCY :esphomepr:`4619` by :ghuser:`berendhaan` - Allow entity names to be set to None :esphomepr:`4607` by :ghuser:`jesserockz` - Fix platform restriction for bme680_bsec :esphomepr:`4616` by :ghuser:`jesserockz` - Fix EzoCommandType enum :esphomepr:`4593` by :ghuser:`alfredopironti` - `EntityBase` Name can stay in flash. :esphomepr:`4594` by :ghuser:`Fabian-Schmidt` - feat: Add support to unsubscribe from BLE advertisements :esphomepr:`4620` by :ghuser:`richardhopton` - EntityBase: Move ObjectId to Flash :esphomepr:`4569` by :ghuser:`Fabian-Schmidt` - Add workflow to sync device classes with HA dev :esphomepr:`4629` by :ghuser:`jesserockz` - Synchronise Device Classes from Home Assistant :esphomepr:`4633` by :ghuser:`github-actions[bot]` - Remove AUTO_LOAD from as3935 :esphomepr:`4630` by :ghuser:`jesserockz` - Add ifdef to new bt proxy unsubscribe :esphomepr:`4634` by :ghuser:`jesserockz` - add bluetooth mac address in dump_config() :esphomepr:`4628` by :ghuser:`felixlungu` - Binary map bugfixes :esphomepr:`4636` by :ghuser:`kahrendt` - entity_base avoid padding bytes. :esphomepr:`4637` by :ghuser:`Fabian-Schmidt` - Avoid sensor padding. :esphomepr:`4638` by :ghuser:`Fabian-Schmidt` - Support advanced UART customization :esphomepr:`4465` by :ghuser:`Fabian-Schmidt` - Log calibration results at level INFO :esphomepr:`4240` by :ghuser:`Duckle29` - Number step not optional :esphomepr:`4649` by :ghuser:`RoboMagus` - VSCode / devcontainer updates :esphomepr:`4647` by :ghuser:`jesserockz` - Retry PN532_COMMAND_VERSION_DATA on setup() (fixes esphome/issues#3823) :esphomepr:`4651` by :ghuser:`tracestep` - Bump pylint from 2.16.4 to 2.17.2 :esphomepr:`4650` by :ghuser:`dependabot[bot]` - Bump black from 23.1.0 to 23.3.0 :esphomepr:`4635` by :ghuser:`dependabot[bot]` - Added in mmc5603 code :esphomepr:`4175` by :ghuser:`benhoff` (new-integration) - fix compilation with latest esp-idf :esphomepr:`4671` by :ghuser:`Mic92` - Bump zeroconf from 0.47.4 to 0.56.0 :esphomepr:`4674` by :ghuser:`dependabot[bot]` - Bump pytest from 7.2.2 to 7.3.0 :esphomepr:`4673` by :ghuser:`dependabot[bot]` - Add push to talk voice assistant :esphomepr:`4648` by :ghuser:`jesserockz` (new-integration) - Fix ESP32 SPI hardware assignment in Arduino fw :esphomepr:`4669` by :ghuser:`kbx81` - Fix some NFC/PN532 crashes :esphomepr:`4678` by :ghuser:`kbx81` - Add support for SSD1306 72x40 displays :esphomepr:`4659` by :ghuser:`johnsto` - Fix pin schema for i2s microphone :esphomepr:`4680` by :ghuser:`jesserockz` - Fix BedJet setup priority [fixes esphome/issues#3807] :esphomepr:`4677` by :ghuser:`jhansche` - Add always trigger stop :esphomepr:`4249` by :ghuser:`X-Ryl669` - Fix graph limits for negative values and other corner cases :esphomepr:`4253` by :ghuser:`unhold` - Fix cut-off on 2.13" waveshare/ttgo epaper displays :esphomepr:`4255` by :ghuser:`unhold` - [Ethernet] Add PHY KSZ8081 support :esphomepr:`4668` by :ghuser:`Fabian-Schmidt` - Fix restore :esphomepr:`4655` by :ghuser:`spacemanspiff2007` (breaking-change) - debug component, allow without debug logging :esphomepr:`4685` by :ghuser:`jesserockz` - Fixed dns2 for ethernet :esphomepr:`4698` by :ghuser:`HeMan` - Add timeout to i2c write error logs :esphomepr:`4697` by :ghuser:`Szewcson` - Add event triggers to voice_assistant :esphomepr:`4699` by :ghuser:`jesserockz` - Call on_error if no api client connected that handles voice :esphomepr:`4709` by :ghuser:`jesserockz` - Add ethernet powerdown (fixes esphome/issues#4420) :esphomepr:`4706` by :ghuser:`tracestep` - Bump arduino platform version to 5.3.0 :esphomepr:`4713` by :ghuser:`jesserockz` Past Changelogs --------------- - :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`