ESPHome 2023.7.0 - 19th July 2023
=================================

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

.. imgtable::
    :columns: 4

    XL9535 I/O Expander, components/xl9535, xl9535.svg
    Zio Ultrasonic Sensor, components/sensor/zio_ultrasonic, zio_ultrasonic.jpg
    Alpha3, components/sensor/alpha3, alpha3.jpg
    PCF8563 RTC, components/time/pcf8563, clock-outline.svg, dark-invert
    TT21100, components/touchscreen/tt21100, esp32-s3-korvo-2-lcd.png
    Grove TB6612FNG, components/grove_tb6612fng, motor.png
    ATM90E26, components/sensor/atm90e26, atm90e26.jpg
    Duty Time, components/sensor/duty_time, timer-play-outline.svg, dark-invert

Webserver with ESP-IDF
----------------------

This releases adds support for the :doc:`Webserver </components/web_server>` and :doc:`/components/captive_portal`
when using the ``esp-idf`` framework on ESP32 boards.

Display components
------------------

This release adds a few changes to the display core code to optimise and allow for future
improvements which are already in progress. This also may bring breaking changes to the internal APIs that ``external_components``
may be relying on.

A new warning in the logs
-------------------------

.. code:: text

    [00:00:00][W][component:204]: Component xxxxxx took a long time for an operation (x.xx s).
    [00:00:00][W][component:205]: Components should block for at most 20-30ms.


These 2 log lines may show up in the most recent version of ESPHome due to the log level being changed from `verbose` to `warning`.
I made this change because changing the device log level to verbose just to see if these lines show up significantly slowed down
the device due to all the extra logging it had to do.

Please do not report new issues for this, but `comment on this issue <https://github.com/esphome/issues/issues/4717>`__
if someone has not already commented for that specific component.


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

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

- XL9535 I/O Expander :esphomepr:`4899` by :ghuser:`mreditor97` (new-integration)
- Add Zio Ultrasonic Distance Sensor Component :esphomepr:`5059` by :ghuser:`kahrendt` (new-integration)
- Add Alpha3 pump component :esphomepr:`3787` by :ghuser:`jan-hofmeier` (new-integration)
- RTC implementation of pcf8563 :esphomepr:`4998` by :ghuser:`KoenBreeman` (new-integration)
- web server esp idf suppport :esphomepr:`3500` by :ghuser:`dentra` (new-integration)
- Add TT21100 touchscreen component :esphomepr:`4793` by :ghuser:`kroimon` (new-integration)
- Add support for Grove tb6612 fng :esphomepr:`4797` by :ghuser:`max246` (new-integration)
- Add support for ATM90E26 :esphomepr:`4366` by :ghuser:`danieltwagner` (new-integration)
- New 'Duty Time' sensor component :esphomepr:`5069` by :ghuser:`dudanov` (new-integration)

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

- display: add `BaseFont` and introduce `Font::draw` methods :esphomepr:`4963` by :ghuser:`ayufan` (breaking-change)
- display: Rename `display.DisplayBufferRef` to `display.DisplayRef` used by lambda :esphomepr:`5002` by :ghuser:`ayufan` (breaking-change)
- Remove template switch restore_state :esphomepr:`5106` by :ghuser:`jesserockz` (breaking-change)

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

- Dont do mqtt ip lookup if `use_address` has ip address :esphomepr:`5096` by :ghuser:`jesserockz`
- ESP32 enable ADC2 when wifi is disabled :esphomepr:`4381` by :ghuser:`pciavald`
- [Sprinkler] Resume fixes :esphomepr:`5100` by :ghuser:`hostcc`
- Remove template switch restore_state :esphomepr:`5106` by :ghuser:`jesserockz` (breaking-change)
- Add timeout filter :esphomepr:`5104` by :ghuser:`clydebarrow`
- P1 values for capacity tariff in Belgium :esphomepr:`5081` by :ghuser:`bwynants`
- airthings_wave: Silence compiler warnings :esphomepr:`5098` by :ghuser:`kpfleming`
- Sigma delta fix :esphomepr:`4911` by :ghuser:`PlainTechEnthusiast`
- [LD2410] Remove baud_rate check :esphomepr:`5112` by :ghuser:`voed`
- Fix silence detection flag on voice assistant :esphomepr:`5120` by :ghuser:`jesserockz`

Release 2023.7.1 - August 1
---------------------------

- Dashboard: use Popen() on Windows :esphomepr:`5110` by :ghuser:`kuba2k2`
- Swap ADC back to use 'int' because C3 :esphomepr:`5151` by :ghuser:`kbx81`
- wifi: handle WIFI_REASON_ROAMING reason in event :esphomepr:`5153` by :ghuser:`stintel`
- Slightly lower template switch setup priority :esphomepr:`5163` by :ghuser:`cvwillegen`
- update "Can't convert" warning to match others in homeassistant_sensor :esphomepr:`5162` by :ghuser:`PlainTechEnthusiast`
- Increase maximum number of BLE notifications :esphomepr:`5155` by :ghuser:`bdraco`
- invert min_rssi check :esphomepr:`5150` by :ghuser:`Jorre05`
- Fix graininess & streaks for 7.50inV2alt Waveshare e-paper :esphomepr:`5168` by :ghuser:`Egglestron`

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

- Upgraded Haier climate component implementation :esphomepr:`4521` by :ghuser:`paveldn`
- display: add `BaseFont` and introduce `Font::draw` methods :esphomepr:`4963` by :ghuser:`ayufan` (breaking-change)
- display/font: optimise font rendering by about 25% :esphomepr:`4956` by :ghuser:`ayufan`
- display: move `Rect` into `rect.cpp/.h` :esphomepr:`4957` by :ghuser:`ayufan`
- Bump pytest from 7.3.1 to 7.3.2 :esphomepr:`4936` by :ghuser:`dependabot[bot]`
- Add read/write for 16bit registers :esphomepr:`4844` by :ghuser:`CarsonF`
- XL9535 I/O Expander :esphomepr:`4899` by :ghuser:`mreditor97` (new-integration)
- Fix python venv restoring :esphomepr:`4965` by :ghuser:`jesserockz`
- Preprocess away unused code when IPv6 is disabled :esphomepr:`4973` by :ghuser:`HeMan`
- Bump aioesphomeapi from 14.0.0 to 14.1.0 :esphomepr:`4972` by :ghuser:`dependabot[bot]`
- Add actions to animation :esphomepr:`4959` by :ghuser:`guillempages`
- Bump zeroconf from 0.63.0 to 0.69.0 :esphomepr:`4970` by :ghuser:`dependabot[bot]`
- mqtt: add ESP-IDF >= 5.0 support :esphomepr:`4854` by :ghuser:`stintel`
- display: move `Image`, `Font` and `Animation` code into components :esphomepr:`4967` by :ghuser:`ayufan`
- support empty schemas and one platform components :esphomepr:`4999` by :ghuser:`glmnet`
- update dsmr to 0.7 :esphomepr:`5011` by :ghuser:`Pvlerick`
- add water delivered to dsmr component :esphomepr:`4237` by :ghuser:`jerome992`
- Update sync workflow :esphomepr:`5017` by :ghuser:`jesserockz`
- Bump aioesphomeapi from 14.1.0 to 15.0.0 :esphomepr:`5012` by :ghuser:`dependabot[bot]`
- Bump pyupgrade from 3.4.0 to 3.7.0 :esphomepr:`4971` by :ghuser:`dependabot[bot]`
- Bump pytest from 7.3.2 to 7.4.0 :esphomepr:`5000` by :ghuser:`dependabot[bot]`
- Attempt to fix script parameters :esphomepr:`4627` by :ghuser:`jesserockz`
- Remove yaml test cache :esphomepr:`5019` by :ghuser:`jesserockz`
- Bump esptool from 4.6 to 4.6.2 :esphomepr:`4949` by :ghuser:`dependabot[bot]`
- Bump pytest-mock from 3.10.0 to 3.11.1 :esphomepr:`4977` by :ghuser:`dependabot[bot]`
- binary_sensor removed unused filter :esphomepr:`5039` by :ghuser:`dudanov`
- binary_sensor filters templatable delays :esphomepr:`5029` by :ghuser:`dudanov`
- Improve the gamma settings for the S3-Box-lite display :esphomepr:`5046` by :ghuser:`guillempages`
- Prepare ethernet to work with esp idf 5.0 :esphomepr:`5037` by :ghuser:`HeMan`
- Prepare debug and logger component to work with idf 5.0 :esphomepr:`5036` by :ghuser:`HeMan`
- Mopeka std fixes :esphomepr:`5041` by :ghuser:`Fabian-Schmidt`
- Adjust signature for on_disconnect :esphomepr:`5009` by :ghuser:`bdraco`
- Log component long time message at warning level :esphomepr:`5048` by :ghuser:`jesserockz`
- Log start of i2c setup :esphomepr:`5049` by :ghuser:`jesserockz`
- Initial debug component support for rp2040 :esphomepr:`5056` by :ghuser:`HeMan`
- Fix when idf component has broken symlinks :esphomepr:`5058` by :ghuser:`jesserockz`
- Some tests wasn't running (locally) :esphomepr:`5050` by :ghuser:`HeMan`
- [ILI9xxx] Add ili9488_a (alternative gamma configuration for ILI9488) :esphomepr:`5027` by :ghuser:`lnicolas83`
- [ili9xxx] Allow config of spi data rate. :esphomepr:`4701` by :ghuser:`Fabian-Schmidt`
- Make scheduler debuging work with idf >= 5 :esphomepr:`5052` by :ghuser:`HeMan`
- Adds 1.54" e-ink display (gdew0154m09) support to waveshare_epaper component :esphomepr:`4939` by :ghuser:`tobiasoort`
- display: split `DisplayBuffer` and `Display` :esphomepr:`5001` by :ghuser:`ayufan`
- Fixed ili9xxx_display update() method :esphomepr:`5013` by :ghuser:`nielsnl68`
- [Ethernet] ksz8081rna support :esphomepr:`4739` by :ghuser:`Fabian-Schmidt`
- Improve BME680 BSEC sensor device classes :esphomepr:`4859` by :ghuser:`trvrnrth`
- Update RP2040 Aruino framwork and platform to latest :esphomepr:`5025` by :ghuser:`HeMan`
- Allow pillow versions over 10 :esphomepr:`5071` by :ghuser:`HeMan`
- display: Rename `display.DisplayBufferRef` to `display.DisplayRef` used by lambda :esphomepr:`5002` by :ghuser:`ayufan` (breaking-change)
- Add Zio Ultrasonic Distance Sensor Component :esphomepr:`5059` by :ghuser:`kahrendt` (new-integration)
- Add Alpha3 pump component :esphomepr:`3787` by :ghuser:`jan-hofmeier` (new-integration)
- RTC implementation of pcf8563 :esphomepr:`4998` by :ghuser:`KoenBreeman` (new-integration)
- web server esp idf suppport :esphomepr:`3500` by :ghuser:`dentra` (new-integration)
- Add TT21100 touchscreen component :esphomepr:`4793` by :ghuser:`kroimon` (new-integration)
- tuya_light: fix float->int conversion while setting color temperature :esphomepr:`5067` by :ghuser:`kswt`
- Fix typo in mpu6050.cpp :esphomepr:`5086` by :ghuser:`stefanklug`
- airthings_wave: Battery level reporting :esphomepr:`4979` by :ghuser:`kpfleming`
- Add support for Grove tb6612 fng :esphomepr:`4797` by :ghuser:`max246` (new-integration)
- Add MCP2515 12MHz xtal support :esphomepr:`5089` by :ghuser:`clydebarrow`
- Correct message for standard transmission. :esphomepr:`5088` by :ghuser:`clydebarrow`
- Restrict pillow to versions before 10.0.0 :esphomepr:`5090` by :ghuser:`jesserockz`
- Bump esphome-dashboard to 20230711.0 :esphomepr:`5085` by :ghuser:`jesserockz`
- added uart final validate data bits :esphomepr:`5079` by :ghuser:`dudanov`
- Add support for ATM90E26 :esphomepr:`4366` by :ghuser:`danieltwagner` (new-integration)
- Grove amend name :esphomepr:`5093` by :ghuser:`max246`
- Fixing colon for tm1637 display if inverted set true :esphomepr:`5072` by :ghuser:`paveldn`
- Fix use of optional<T> :esphomepr:`5091` by :ghuser:`dudanov`
- New 'Duty Time' sensor component :esphomepr:`5069` by :ghuser:`dudanov` (new-integration)
- Fix PIDController::in_deadband() to give correct result when error is zero :esphomepr:`5078` by :ghuser:`lewissbaker`
- Edit error message for pillow install to add version restrictions :esphomepr:`5094` by :ghuser:`jesserockz`
- Dont do mqtt ip lookup if `use_address` has ip address :esphomepr:`5096` by :ghuser:`jesserockz`
- ESP32 enable ADC2 when wifi is disabled :esphomepr:`4381` by :ghuser:`pciavald`
- [Sprinkler] Resume fixes :esphomepr:`5100` by :ghuser:`hostcc`
- Remove template switch restore_state :esphomepr:`5106` by :ghuser:`jesserockz` (breaking-change)
- Add timeout filter :esphomepr:`5104` by :ghuser:`clydebarrow`
- P1 values for capacity tariff in Belgium :esphomepr:`5081` by :ghuser:`bwynants`
- airthings_wave: Silence compiler warnings :esphomepr:`5098` by :ghuser:`kpfleming`
- Sigma delta fix :esphomepr:`4911` by :ghuser:`PlainTechEnthusiast`
- [LD2410] Remove baud_rate check :esphomepr:`5112` by :ghuser:`voed`
- Fix silence detection flag on voice assistant :esphomepr:`5120` by :ghuser:`jesserockz`

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

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