ESPHome 2022.5.0 - 18th May 2022
================================

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

.. imgtable::
    :columns: 3

    BedJet Climate System, components/climate/bedjet, bedjet.png
    BL0939, components/sensor/bl0939, bl0939.png
    ENS210, components/sensor/ens210, ens210.jpg
    SEN5x, components/sensor/sen5x, sen54.jpg
    SML, components/sml, sml.svg
    Delonghi Penguino PAC W120HP, components/climate/climate_ir, air-conditioner-ir.svg, dark-invert

Rename
------

ESPHome now offers a way for people to rename their devices automatically. This is done by creating a new YAML file with the new
filename, changing the ``name`` inside the YAML, and then OTA uploading to the device to its existing hostname. If all is successful,
the old YAML file will be removed and you can continue configuring your newly named device.

This is particularly useful if you have received a pre-installed device, or are installing pre-configured ESPHome from a website for example.

API Transport Encryption
------------------------

API transport encryption is now enabled by default when you create a new device in ESPHome. This will autogenerate a random encryption key in the device YAML file
that you will need to retrieve when you attempt to add the device to Home Assistant. Simply remove the encryption key lines from your YAML should you choose to not
use encryption.

Select & Number changes
-----------------------

The ``select`` component has had a bunch of new features and actions added.
``select.first``, ``select.last``, ``select.next``, and ``select.previous``.

Alongside these new changes were some removals of internal (but public) functions on ``select`` and ``number`` components that might break
``external_components`` or ``lambdas`` that might have been using them. See :esphomepr:`3457` and :esphomepr:`3458` for more details.

Release 2022.5.1 - May 24
-------------------------

- Update bedjet_const.h to remove blank spaces before speed steps, fixes Unknown Error when using climate.set_fan_mode in HA :esphomepr:`3476` by :ghuser:`user897943`
- Add missing import to bedjet :esphomepr:`3490` by :ghuser:`jesserockz`
- esp32: fix NVS  :esphomepr:`3497` by :ghuser:`martgras`


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

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

- Add support for Shelly Dimmer 2 :esphomepr:`2954` by :ghuser:`rnauber` (new-integration)
- Add BedJet BLE climate component :esphomepr:`2452` by :ghuser:`jhansche` (new-integration)
- Add support for BL0939 (Sonoff Dual R3 V2 powermeter) :esphomepr:`3300` by :ghuser:`ziceva` (new-integration)
- Add ENS210 Humidity & Temperature sensor component :esphomepr:`2942` by :ghuser:`itn3rd77` (new-integration)
- add support for Sen5x sensor series :esphomepr:`3383` by :ghuser:`martgras` (new-integration)
- Add SML (Smart Message Language) platform for energy meters :esphomepr:`2396` by :ghuser:`alengwenus` (new-integration)
- Delonghi Penguino PAC W120HP ir support :esphomepr:`3124` by :ghuser:`grob6000` (new-integration)

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

- Code cleanup fixes for the select component :esphomepr:`3457` by :ghuser:`mmakaay` (breaking-change)
- Code cleanup fixes for the number component :esphomepr:`3458` by :ghuser:`mmakaay` (breaking-change)

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

- Restore RealTimeClock's local TZ after epoch sync :esphomepr:`3462` by :ghuser:`mmakaay`
- Shelly dimmer: Use unique_ptr to handle the lifetime of stm32_t :esphomepr:`3400` by :ghuser:`edge90`
- Use heat mode for heat. Move EXT HT to custom presets. :esphomepr:`3437` by :ghuser:`jgissend10`
- Make custom_fan and custom_preset templatable as per documentation :esphomepr:`3330` by :ghuser:`MrMDavidson`
- Update captive portal canHandle function :esphomepr:`3360` by :ghuser:`bkaufx`
- Increase JSON buffer size on overflow :esphomepr:`3475` by :ghuser:`pyos`
- Mark improv_serial and ESP-IDF usb based serial on c3/s2/s3 unsupported :esphomepr:`3477` by :ghuser:`jesserockz`
- ESP32: Only save to NVS if data was changed :esphomepr:`3479` by :ghuser:`martgras`
- Retry Tuya init commands :esphomepr:`3482` by :ghuser:`ssieb`

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

- Enable api transport encryption for new projects :esphomepr:`3142` by :ghuser:`OttoWinter` (notable-change)

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

- Add default object_id_generator for mqtt :esphomepr:`3389` by :ghuser:`jesserockz`
- Add BedJet BLE climate component :esphomepr:`2452` by :ghuser:`jhansche` (new-integration)
- Multi conf for Teleinfo component :esphomepr:`3401` by :ghuser:`parats15`
- Add support for Mopeka Pro+ Residential sensor :esphomepr:`3393` by :ghuser:`jamesduke`
- Add support for BL0939 (Sonoff Dual R3 V2 powermeter) :esphomepr:`3300` by :ghuser:`ziceva` (new-integration)
- Add "esphome rename" command :esphomepr:`3403` by :ghuser:`jesserockz`
- SPS30: Add fan action :esphomepr:`3410` by :ghuser:`martgras`
- feat: add openssh-client on docker image (#1681) :esphomepr:`3319` by :ghuser:`quentin9696`
- Add duration device class for sensors :esphomepr:`3421` by :ghuser:`jesserockz`
- Missing `f` prefix on f-strings fix :esphomepr:`3415` by :ghuser:`code-review-doctor`
- Queue sensor publishes so we don't block for too long :esphomepr:`3422` by :ghuser:`trvrnrth`
- added RGB565 image type :esphomepr:`3229` by :ghuser:`lubeda`
- Allow wifi output_power down to 8.5dB :esphomepr:`3405` by :ghuser:`e28eta`
- Add help text to rename command :esphomepr:`3442` by :ghuser:`jesserockz`
- Add rename command handler :esphomepr:`3443` by :ghuser:`balloob`
- Support for Arduino 2 and serial port on ESP32-S2 and ESP32-C3 :esphomepr:`3436` by :ghuser:`jenscski`
- Bump dashboard to 20220508.0 :esphomepr:`3448` by :ghuser:`balloob`
- Waveshare epaper 7in5 v2alt :esphomepr:`3276` by :ghuser:`patvdleer`
- Early pin init :esphomepr:`3439` by :ghuser:`rainero84`
- Add ENS210 Humidity & Temperature sensor component :esphomepr:`2942` by :ghuser:`itn3rd77` (new-integration)
- Also rename yaml filename with rename command :esphomepr:`3447` by :ghuser:`jesserockz`
- Bump click from 8.1.2 to 8.1.3 :esphomepr:`3426` by :ghuser:`dependabot[bot]`
- Fix spi transfer with miso pin defined on espidf :esphomepr:`3450` by :ghuser:`jesserockz`
- Force using name substitution when adopting a device :esphomepr:`3451` by :ghuser:`jesserockz`
- Bump pyupgrade from 2.32.0 to 2.32.1 :esphomepr:`3452` by :ghuser:`dependabot[bot]`
- Bump pylint from 2.13.5 to 2.13.8 :esphomepr:`3432` by :ghuser:`dependabot[bot]`
- Esp32c3 deepsleep fix :esphomepr:`3433` by :ghuser:`MFlasskamp`
- Add SERIAL_JTAG/CDC logger option for ESP-IDF platform for ESP32-S2/S3/C3 :esphomepr:`3105` by :ghuser:`unaiur`
- Select enhancement :esphomepr:`3423` by :ghuser:`mmakaay`
- Number enhancement :esphomepr:`3429` by :ghuser:`mmakaay`
- mask deprecated adc_gpio_init() for esp32-s2 :esphomepr:`3445` by :ghuser:`MFlasskamp`
- tca9548a fix channel selection :esphomepr:`3417` by :ghuser:`martgras`
- add support for Sen5x sensor series :esphomepr:`3383` by :ghuser:`martgras` (new-integration)
- Add SML (Smart Message Language) platform for energy meters :esphomepr:`2396` by :ghuser:`alengwenus` (new-integration)
- Delonghi Penguino PAC W120HP ir support :esphomepr:`3124` by :ghuser:`grob6000` (new-integration)
- extend scd4x :esphomepr:`3409` by :ghuser:`martgras`
- PMSX003: Add support for specifying the update interval and spinning down :esphomepr:`3053` by :ghuser:`mjg59`
- CAN bus: on_frame remote_transmission_request :esphomepr:`3376` by :ghuser:`felixstorm`
- Fix cover set position by force pushing position_id datapoint (simila… :esphomepr:`3435` by :ghuser:`dennisvbussel`
- added prev_frame for animation :esphomepr:`3427` by :ghuser:`lubeda`
- Fix tests :esphomepr:`3455` by :ghuser:`jesserockz`
- Fix BME280 setup() when the sensor is marked as failed. :esphomepr:`3396` by :ghuser:`ctrix`
- Esp32c3 deepsleep fix :esphomepr:`3454` by :ghuser:`MFlasskamp`
- Make retry scheduler efficient :esphomepr:`3225` by :ghuser:`OttoWinter`
- Code cleanup fixes for the select component :esphomepr:`3457` by :ghuser:`mmakaay` (breaking-change)
- Code cleanup fixes for the number component :esphomepr:`3458` by :ghuser:`mmakaay` (breaking-change)
- Enable api transport encryption for new projects :esphomepr:`3142` by :ghuser:`OttoWinter` (notable-change)
- Implement allow_deep_sleep :esphomepr:`3282` by :ghuser:`rubdos`
- Add deep_sleep.allow YAML action :esphomepr:`3459` by :ghuser:`jesserockz`
- Restore RealTimeClock's local TZ after epoch sync :esphomepr:`3462` by :ghuser:`mmakaay`
- Shelly dimmer: Use unique_ptr to handle the lifetime of stm32_t :esphomepr:`3400` by :ghuser:`edge90`
- Use heat mode for heat. Move EXT HT to custom presets. :esphomepr:`3437` by :ghuser:`jgissend10`
- Make custom_fan and custom_preset templatable as per documentation :esphomepr:`3330` by :ghuser:`MrMDavidson`
- Update captive portal canHandle function :esphomepr:`3360` by :ghuser:`bkaufx`
- Increase JSON buffer size on overflow :esphomepr:`3475` by :ghuser:`pyos`
- Mark improv_serial and ESP-IDF usb based serial on c3/s2/s3 unsupported :esphomepr:`3477` by :ghuser:`jesserockz`
- ESP32: Only save to NVS if data was changed :esphomepr:`3479` by :ghuser:`martgras`
- Retry Tuya init commands :esphomepr:`3482` by :ghuser:`ssieb`

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

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