ESPHome 2023.10.0 - 18th October 2023
=====================================

.. seo::
    :description: Changelog for ESPHome 2023.10.0.
    :image: /_static/changelog-2023.10.0.png
    :author: Jesse Hills
    :author_twitter: @jesserockz

.. imgtable::
    :columns: 3

    MMC5983, components/sensor/mmc5983, mmc5983.jpg


This release is quite small as myself (:ghuser:`jesserockz`) and :ghuser:`kbx81` have been focusing
on ``voice_assistant`` updates and preparations for the Year of the Voice - Chapter 4.

Check out the stream replay here:

.. raw:: html

    <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/YzgYYkOrnhQ"
            title="YouTube video player" frameborder="0"
            allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
            allowfullscreen>
    </iframe>


XOR Condition
-------------

A new ``xor`` condition has been added to the automation engine. This condition will only be true
when a single condition in the list is true.


Release 2023.10.1 - October 19
------------------------------

- Fix voice_assistant without a speaker :esphomepr:`5558` by :ghuser:`jesserockz`
- esp32_improv add timeout :esphomepr:`5556` by :ghuser:`jesserockz`
- Create IPv4 sockets if ipv6 is not enabled :esphomepr:`5565` by :ghuser:`jesserockz`
- Incorrect ESP32 Strapping PIN Defined :esphomepr:`5563` by :ghuser:`descipher`

Release 2023.10.2 - October 24
------------------------------

- Fix XOR condition :esphomepr:`5567` by :ghuser:`jesserockz`
- Improv Serial support via USB CDC and JTAG :esphomepr:`5559` by :ghuser:`kbx81`
- Publish the `pulse_meter` total when setting the total :esphomepr:`5475` by :ghuser:`TrentHouliston`
- Remove explicit cast for IPAddress :esphomepr:`5574` by :ghuser:`HeMan`
- Set addr type when copy from ip4_addr_t :esphomepr:`5583` by :ghuser:`HeMan`
- fix canbus send config :esphomepr:`5585` by :ghuser:`ssieb`
- Allow set climate preset to NONE :esphomepr:`5588` by :ghuser:`dentra`

Release 2023.10.3 - October 24
------------------------------

- Set IP address `type` only when IPv4 and IPv6 are both enabled :esphomepr:`5595` by :ghuser:`kbx81`

Release 2023.10.4 - October 30
------------------------------

- Update current_based_cover bugfix :esphomepr:`5587` by :ghuser:`rogerbusser`
- Fixes ip include on arduino 2.7.4 :esphomepr:`5620` by :ghuser:`HeMan`
- Fix bug when requesting italic gfonts :esphomepr:`5623` by :ghuser:`dewet22`
- Handle enum type in tuya text_sensor :esphomepr:`5626` by :ghuser:`jesserockz`

Release 2023.10.5 - November 1
------------------------------

- Add connection triggers to api :esphomepr:`5628` by :ghuser:`jesserockz`
- Add on_client_connected and disconnected to voice assistant :esphomepr:`5629` by :ghuser:`jesserockz`
- Ensure that all uses of strncpy in wifi component are safe. :esphomepr:`5636` by :ghuser:`kpfleming`
- Remove some explicit IPAddress casts  :esphomepr:`5639` by :ghuser:`HeMan`

Release 2023.10.6 - November 3
------------------------------

- Revert "Ensure that all uses of strncpy in wifi component are safe." :esphomepr:`5662` by :ghuser:`jesserockz`

Breaking changes
----------------

The SHT3x had a ``heater_enabled`` config option added in the 2023.9.0 release with a default value of ``true``.
This has been flipped this release to be ``false`` as it started causing issues with various sensors.

The SPS30 number concentration sensors had their units fixed to be ``#/cm³`` instead of ``#/m³``.

Full list of changes
--------------------

New Components
^^^^^^^^^^^^^^

- Implement sensor component for MMC5983 :esphomepr:`5361` by :ghuser:`agoode` (new-integration)

Breaking Changes
^^^^^^^^^^^^^^^^

- Do not enable SHT3x heater by default. Fixes #4886. :esphomepr:`5445` by :ghuser:`jkl1337` (breaking-change)
- Fix units for SPS30 number concentration sensors :esphomepr:`5452` by :ghuser:`kahrendt` (breaking-change)

Beta Changes
^^^^^^^^^^^^

- Update htu21d.cpp, fix publishing of heater level :esphomepr:`5520` by :ghuser:`Nippey`
- BD5758D - Add delays and ACKs :esphomepr:`5524` by :ghuser:`Cossid`
- Update Improv BLE component :esphomepr:`5518` by :ghuser:`jesserockz`
- SM10BIT_BASE - Add delays and ACKs, clear all channels before sleeping. :esphomepr:`5526` by :ghuser:`Cossid`
- BP1658CJ - Clear all channels before sleeping. :esphomepr:`5525` by :ghuser:`Cossid`
- Prometheus fix for esp-idf and fix newlines :esphomepr:`5536` by :ghuser:`jesserockz`
- Make IPAddress's operator!= compare values, not memory addresses. :esphomepr:`5537` by :ghuser:`raineth`
- Add change i2c address and allow multi conf for TB6612FNG  :esphomepr:`5492` by :ghuser:`max246`
- Add stream start and end events :esphomepr:`5545` by :ghuser:`jesserockz`
- Fix esp32_improv authorizer with no binary sensors in config :esphomepr:`5546` by :ghuser:`jesserockz`
- More voice assistant fixes :esphomepr:`5547` by :ghuser:`jesserockz`
- Fix default libretiny manufacturer reported to HA :esphomepr:`5549` by :ghuser:`jesserockz`
- SML: fix incomplete sign extension for abbreviated transmissions :esphomepr:`5544` by :ghuser:`fblaese`
- esp32_improv advertise capabilities and state in ble service data :esphomepr:`5553` by :ghuser:`jesserockz`

Notable Changes
^^^^^^^^^^^^^^^

- Add xor automation condition :esphomepr:`5453` by :ghuser:`kahrendt` (notable-change)

All changes
^^^^^^^^^^^

- SX1509 component  :esphomepr:`5385` by :ghuser:`vr6racer`
- Ci find YAML tests dynamically :esphomepr:`5399` by :ghuser:`Fabian-Schmidt`
- Make ESPHome data dir configurable :esphomepr:`5417` by :ghuser:`werdnum`
- Bump actions/checkout from 4.0.0 to 4.1.0 :esphomepr:`5420` by :ghuser:`dependabot[bot]`
- Fix typo in documentation :esphomepr:`5425` by :ghuser:`kapily`
- Bump pylint from 2.17.5 to 2.17.6 :esphomepr:`5429` by :ghuser:`dependabot[bot]`
- Refactor ip address representation :esphomepr:`5252` by :ghuser:`HeMan`
- Fix .esphome path when not using envvar :esphomepr:`5440` by :ghuser:`jesserockz`
- [BP1658CJ] Missing clock line delays and ack bit :esphomepr:`5448` by :ghuser:`leoshusar`
- [ssd1351] fix: wait for the component to be at least in setup phase b… :esphomepr:`5454` by :ghuser:`xdecock`
- Do not enable SHT3x heater by default. Fixes #4886. :esphomepr:`5445` by :ghuser:`jkl1337` (breaking-change)
- Add testcases for multiple SPI buses on ESP32 Arduino :esphomepr:`5457` by :ghuser:`angelnu`
- Feat/component poller suspend :esphomepr:`5423` by :ghuser:`xdecock`
- Bump actions/setup-python from 4.7.0 to 4.7.1 :esphomepr:`5467` by :ghuser:`dependabot[bot]`
- Add xor automation condition :esphomepr:`5453` by :ghuser:`kahrendt` (notable-change)
- Fix units for SPS30 number concentration sensors :esphomepr:`5452` by :ghuser:`kahrendt` (breaking-change)
- ST7789v - Allow predefined backlight pin to be disabled. :esphomepr:`5476` by :ghuser:`clydebarrow`
- MAX7219 - Update intensity :esphomepr:`5477` by :ghuser:`clydebarrow`
- St7789v and SPI data rate :esphomepr:`5472` by :ghuser:`clydebarrow`
- Move CONF_IRQ_PIN into const.py :esphomepr:`5488` by :ghuser:`kbx81`
- Initial ESP32-H2 Support :esphomepr:`5498` by :ghuser:`vidplace7`
- Increased debug message precision :esphomepr:`5496` by :ghuser:`lukeansell`
- Support for Haier IR protocol added :esphomepr:`5403` by :ghuser:`paveldn`
- add USE_SPI define :esphomepr:`5500` by :ghuser:`angelnu`
- Implement sensor component for MMC5983 :esphomepr:`5361` by :ghuser:`agoode` (new-integration)
- Bump docker dependencies :esphomepr:`5501` by :ghuser:`jesserockz`
- Move to Pillow 10.x :esphomepr:`5489` by :ghuser:`hostcc`
- [Sprinkler] Initialize timers early to avoid crash :esphomepr:`5499` by :ghuser:`hostcc`
- Deep sleep is only available on esp32 and esp8266 :esphomepr:`5507` by :ghuser:`jesserockz`
- Use platform consts :esphomepr:`5508` by :ghuser:`jesserockz`
- Fixed precision for Nextion sensor with float values :esphomepr:`5497` by :ghuser:`olegtarasov`
- Remote wake word support for voice assistant :esphomepr:`5229` by :ghuser:`jesserockz`
- Don't allow entity category "CONFIG" for sensors :esphomepr:`5505` by :ghuser:`edenhaus`
- Prepare protobuf for ESP-IDF >= 5 :esphomepr:`5510` by :ghuser:`HeMan`
- fix build lang schema for spi and i2c :esphomepr:`5509` by :ghuser:`glmnet`
- Added Nextion display error handling during setup :esphomepr:`5493` by :ghuser:`olegtarasov`
- Fix e131 and voice_assistant sockets :esphomepr:`5502` by :ghuser:`justdaniel-gh`
- Allow manual set "Invert_display" :esphomepr:`5494` by :ghuser:`nielsnl68`
- As3935 calibration :esphomepr:`5366` by :ghuser:`mveinot`
- Small fixes for voice assistant :esphomepr:`5513` by :ghuser:`synesthesiam`
- Add detail param to allow listing of select options in WebServer REST API :esphomepr:`5503` by :ghuser:`DanielBaulig`
- Bump curl to 7.74.0-1.3+deb11u10 :esphomepr:`5517` by :ghuser:`jesserockz`
- Update htu21d.cpp, fix publishing of heater level :esphomepr:`5520` by :ghuser:`Nippey`
- BD5758D - Add delays and ACKs :esphomepr:`5524` by :ghuser:`Cossid`
- Update Improv BLE component :esphomepr:`5518` by :ghuser:`jesserockz`
- SM10BIT_BASE - Add delays and ACKs, clear all channels before sleeping. :esphomepr:`5526` by :ghuser:`Cossid`
- BP1658CJ - Clear all channels before sleeping. :esphomepr:`5525` by :ghuser:`Cossid`
- Prometheus fix for esp-idf and fix newlines :esphomepr:`5536` by :ghuser:`jesserockz`
- Make IPAddress's operator!= compare values, not memory addresses. :esphomepr:`5537` by :ghuser:`raineth`
- Add change i2c address and allow multi conf for TB6612FNG  :esphomepr:`5492` by :ghuser:`max246`
- Add stream start and end events :esphomepr:`5545` by :ghuser:`jesserockz`
- Fix esp32_improv authorizer with no binary sensors in config :esphomepr:`5546` by :ghuser:`jesserockz`
- More voice assistant fixes :esphomepr:`5547` by :ghuser:`jesserockz`
- Fix default libretiny manufacturer reported to HA :esphomepr:`5549` by :ghuser:`jesserockz`
- SML: fix incomplete sign extension for abbreviated transmissions :esphomepr:`5544` by :ghuser:`fblaese`
- esp32_improv advertise capabilities and state in ble service data :esphomepr:`5553` by :ghuser:`jesserockz`

Past Changelogs
---------------

- :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`
