ESPHome 2022.2.0 - 16th February 2022
=====================================

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

.. imgtable::
    :columns: 4

    Lock Core, components/lock/index, folder-open.svg
    Generic Output Lock, components/lock/output, upload.svg
    Template Lock, components/lock/template, description.svg
    QR Code, components/display/index, qr-code.svg

    Touchscreen Core, components/touchscreen/index, folder-open.svg
    EKTF2232, components/touchscreen/ektf2232, ektf2232.svg
    Lilygo T5 4.7", components/touchscreen/lilygo_t5_47, lilygo_t5_47_touch.jpg
    MLX90393, components/sensor/mlx90393, mlx90393.jpg

    Wake-on-LAN Button, components/button/wake_on_lan, power_settings.svg
    Generic Output Button, components/button/output, upload.svg
    Xiaomi MHOC303, components/sensor/xiaomi_ble, xiaomi_mijia_logo.jpg
    RadonEye BLE, components/sensor/radon_eye_ble, radon_eye_logo.png

    Modbus Select, components/select/modbus_controller, modbus.png
    MAX9611, components/sensor/max9611, max9611.jpg
    Inkplate 6 Plus, components/display/inkplate6, inkplate6.jpg


Home Assistant Addon Repo
-------------------------

In a future Supervisor version, the `ESPHome Home Assistant addon repository <https://github.com/esphome/home-assistant-addon>`__
will be added by default to new Home Assistant installations.
We have decided that we will deprecate the ESPHome addon inside the
`Community Addons <https://github.com/hassio-addons/repository>`__
and everyone should move to the ESPHome repo. It is safe to delete the
ESPHome addon as your configuration YAML files are stored in the Home
Assistant configuration folder.

You can add the ESPHome addon here:

.. raw:: html

    <a href="https://my.home-assistant.io/redirect/supervisor_addon/?addon=5c53de3b_esphome&repository_url=https%3A%2F%2Fgithub.com%2Fesphome%2Fhome-assistant-addon" target="_blank">
        <img src="https://my.home-assistant.io/badges/supervisor_addon.svg" alt="Open your Home Assistant instance and show the dashboard of the ESPHome add-on." />
    </a>

Locks
-----

Lock Entities have been added to ESPHome. These will be available after Home Assistant 2022.3 is released. Thanks :ghuser:`kbickar`.

ESP8266 recommended framework bump
----------------------------------

The recommended (and therefore default) version of Arduino for ESP8266 devices
has been bumped to 3.0.2 from 2.7.4. This brings many underlying changes to the
ESP8266 SDK. The 3.0.2 release has been out since July 2021 but ESPHome just
did not bump the default until now.


FastLED
-------

Due to the Arduino bump, the FastLED library suffers issues when running on ESP8266
on Arduino 3+. Because of this there is now a restriction on the ``fastled_clockless``
and ``fastled_spi`` components to only allow using them if you change the arduino version
back to 2.7.4 or lower. This will be in place until the library can update and fix the
issues. See the :doc:`documentation </components/light/fastled>` for information on how
to continue using the lights.


Improv serial Wi-Fi scan
------------------------

Improv serial has been updated to be able to start a Wi-Fi scan and send the results
back to the improv client so the user can select the network SSID instead of having to type it in.


Tuya Multi multi-datapoint
--------------------------

Some work was done on the tuya component to support devices that send all of their
datapoints in a single message. This allows for more devices to be supported and should
not cause issues with existing devices but please create an issue if it does.


Debug Sensors Breaking change
-----------------------------

The sub-sensors of the ``debug`` have been moved to their respective component platforms.
Please see the :doc:`documentation </components/debug>` page for the new way to configure them.

Release 2022.2.1 - February 17
------------------------------

- Fix missed ARDUINO_VERSION_CODE to USE_ARDUINO_VERSION_CODE changes :esphomepr:`3206` by :ghuser:`stewiem2000`

Release 2022.2.2 - February 18
------------------------------

- Set entity-category to diagnostic for debug component :esphomepr:`3209` by :ghuser:`stewiem2000`
- Fix platformio docker version mismstch :esphomepr:`3215` by :ghuser:`OttoWinter`
- Add LONG LONG flag for arduinojson :esphomepr:`3212` by :ghuser:`jesserockz`

Release 2022.2.3 - February 18
------------------------------

- Bump platformio from 5.2.4 to 5.2.5 :esphomepr:`3188` by :ghuser:`dependabot[bot]`

Release 2022.2.4 - February 21
------------------------------

- Publish NAN when dallas conversion failed :esphomepr:`3227` by :ghuser:`OttoWinter`
- Fix ESP8266 climate memaccess warning :esphomepr:`3226` by :ghuser:`OttoWinter`
- Improve ESP8266 iram usage :esphomepr:`3223` by :ghuser:`OttoWinter`
- ESP32-C3 deep sleep fix :esphomepr:`3066` by :ghuser:`Troublebrewing`
- Fix lilygo touchscreen rotation :esphomepr:`3221` by :ghuser:`jesserockz`
- Fix fatal erroring in addon startup script :esphomepr:`3244` by :ghuser:`jesserockz`

Release 2022.2.5 - February 23
------------------------------

- Respect ESPHOME_USE_SUBPROCESS in esp32 post_build script :esphomepr:`3246` by :ghuser:`mweinelt`
- Fix regression caused by TSL2591 auto gain :esphomepr:`3249` by :ghuser:`Azimath`

Release 2022.2.6 - March 2
--------------------------

- Only get free memory size from internal :esphomepr:`3259` by :ghuser:`jesserockz`

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

New Features
^^^^^^^^^^^^

- Add initial_run to regular lambda light effect :esphomepr:`3059` by :ghuser:`jesserockz` (new-feature)
- Support simple transparent pngs for display :esphomepr:`3035` by :ghuser:`jesserockz` (new-feature)
- Add restore_mode to fan component :esphomepr:`3051` by :ghuser:`joshuaspence` (new-feature)
- slow_pwm: allow to restart a cycle on state change :esphomepr:`3004` by :ghuser:`Chupaka` (new-feature)
- Command retain option for MQTT component :esphomepr:`3078` by :ghuser:`VitaliyKurokhtin` (new-feature)
- Esp32cam full control :esphomepr:`3090` by :ghuser:`dav-id-org` (new-feature)
- Configurable HTTP redirect following :esphomepr:`3100` by :ghuser:`guillempages` (new-feature)
- Add IPv6 for esp-idf framework :esphomepr:`2953` by :ghuser:`HeMan` (new-feature)
- Improv_serial scan and send wifi networks list :esphomepr:`3116` by :ghuser:`jesserockz` (new-feature)
- Inkplate 6 PLUS :esphomepr:`3013` by :ghuser:`jesserockz` (new-feature)

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

- Add ektf2232 touchscreen support :esphomepr:`3027` by :ghuser:`jesserockz` (new-integration)
- Wake-on-LAN button :esphomepr:`3030` by :ghuser:`willwill2will54` (new-integration)
- Implement output button :esphomepr:`3109` by :ghuser:`oxan` (new-integration)
- Create base touchscreen component and refactor ektf2232 :esphomepr:`3083` by :ghuser:`jesserockz` (new-integration)
- Add qr code support for displays :esphomepr:`2952` by :ghuser:`wjtje` (new-integration)
- Add Xiaomi MHOC303 sensor e-ink clock :esphomepr:`3115` by :ghuser:`drug123` (new-integration)
- Add new Lock core component :esphomepr:`2958` by :ghuser:`kbickar` (new-integration)
- Added RadonEye RD200 Component :esphomepr:`3119` by :ghuser:`jeffeb3` (new-integration)
- MLX90393 three-axis magnetometer :esphomepr:`2770` by :ghuser:`functionpointer` (new-integration)
- Add Lilygo t5 4.7 Touchscreen :esphomepr:`3084` by :ghuser:`jesserockz` (new-integration)
- Add Select for modbus :esphomepr:`3032` by :ghuser:`stegm` (new-integration)
- Add max9611 High Side Current Shunt ADC :esphomepr:`2705` by :ghuser:`mckaymatthew` (new-integration)

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

- [TCS34725] remove duplicated endian conversion :esphomepr:`3037` by :ghuser:`martgras` (breaking-change)
- TSL2591 automatic gain control :esphomepr:`3071` by :ghuser:`Azimath` (breaking-change)
- [debug] Refactor debug sensors to use the normal sensor model. :esphomepr:`3162` by :ghuser:`mknjc` (breaking-change)
- Allow framework version validator to be maximum version  :esphomepr:`3197` by :ghuser:`jesserockz` (breaking-change)

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

- ESP8266 Set recommended framework to 3.0.2 :esphomepr:`2606` by :ghuser:`OttoWinter` (notable-change)
- Handle Tuya multi-datapoint messages :esphomepr:`3159` by :ghuser:`ssieb` (notable-change)

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

- Enable mDNS during OTA safe mode :esphomepr:`3146` by :ghuser:`OttoWinter`
- Try fix canbus config validation :esphomepr:`3173` by :ghuser:`jesserockz`
- Bump aioesphomeapi from 10.8.1 to 10.8.2 :esphomepr:`3182` by :ghuser:`dependabot[bot]`
- Clamp rotary_encoder restored value to min and max :esphomepr:`3184` by :ghuser:`jesserockz`
- Make generating combined binary output verbose :esphomepr:`3127` by :ghuser:`OttoWinter`
- Allow framework version validator to be maximum version  :esphomepr:`3197` by :ghuser:`jesserockz` (breaking-change)
- Fix strlcpy() uses to make long SSIDs and passwords work :esphomepr:`3199` by :ghuser:`mmakaay`
- Update HA addon token :esphomepr:`3200` by :ghuser:`jesserockz`

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

- Bump pytest-asyncio from 0.16.0 to 0.17.0 :esphomepr:`3047` by :ghuser:`dependabot[bot]`
- Fix argument order in gitpod config file :esphomepr:`3058` by :ghuser:`oxan`
- Bump pytest-asyncio from 0.17.0 to 0.17.2 :esphomepr:`3064` by :ghuser:`dependabot[bot]`
- Fix calibration parameter for bme680 humidity calculation :esphomepr:`3069` by :ghuser:`cwitting`
- Bump improv library version :esphomepr:`3072` by :ghuser:`jesserockz`
- API: Expect a name for connections :esphomepr:`2533` by :ghuser:`OttoWinter`
- AM43: autoload "sensor" to avoid compile errors :esphomepr:`3077` by :ghuser:`buxtronix`
- Add initial_run to regular lambda light effect :esphomepr:`3059` by :ghuser:`jesserockz` (new-feature)
- Support simple transparent pngs for display :esphomepr:`3035` by :ghuser:`jesserockz` (new-feature)
- Bump aioesphomeapi from 10.6.0 to 10.8.0 :esphomepr:`3081` by :ghuser:`dependabot[bot]`
- Add ektf2232 touchscreen support :esphomepr:`3027` by :ghuser:`jesserockz` (new-integration)
- Implement IPv6 sockets for lwIP :esphomepr:`3015` by :ghuser:`HeMan`
- Allow multiple configs for cd74hc4067 :esphomepr:`3085` by :ghuser:`jesserockz`
- Wake-on-LAN button :esphomepr:`3030` by :ghuser:`willwill2will54` (new-integration)
- Add restore_mode to fan component :esphomepr:`3051` by :ghuser:`joshuaspence` (new-feature)
- slow_pwm: allow to restart a cycle on state change :esphomepr:`3004` by :ghuser:`Chupaka` (new-feature)
- Enable readability-const-return-type check :esphomepr:`3099` by :ghuser:`oxan`
- Enable readability-qualified-auto check :esphomepr:`3095` by :ghuser:`oxan`
- Enable readability-redundant-member-init check :esphomepr:`3097` by :ghuser:`oxan`
- Enable readability-named-parameter check :esphomepr:`3098` by :ghuser:`oxan`
- Enable readability-redundant-access-specifiers check :esphomepr:`3096` by :ghuser:`oxan`
- Command retain option for MQTT component :esphomepr:`3078` by :ghuser:`VitaliyKurokhtin` (new-feature)
- Refactor fan platform to resemble climate/cover platforms :esphomepr:`2848` by :ghuser:`oxan`
- Rename WEBSERVER_PORT define to USE_WEBSERVER_PORT :esphomepr:`3102` by :ghuser:`oxan`
- Fix path to extra_scripts in platformio.ini :esphomepr:`3093` by :ghuser:`oxan`
- Generate ARDUINO_VERSION_CODE in Python code :esphomepr:`3101` by :ghuser:`oxan`
- Add cv.require_esphome_version helper :esphomepr:`3103` by :ghuser:`oxan`
- Bump aioesphomeapi from 10.8.0 to 10.8.1 :esphomepr:`3110` by :ghuser:`dependabot[bot]`
- Remove unused polling_component_schema from modbus number :esphomepr:`3108` by :ghuser:`martgras`
- Force braces around multi-line statements :esphomepr:`3094` by :ghuser:`oxan`
- Make CallbackManager invocable :esphomepr:`3089` by :ghuser:`oxan`
- Implement output button :esphomepr:`3109` by :ghuser:`oxan` (new-integration)
- Add increment_day function to ESPTime :esphomepr:`2955` by :ghuser:`RebbePod`
- [TCS34725] remove duplicated endian conversion :esphomepr:`3037` by :ghuser:`martgras` (breaking-change)
- Perform merges when substituting dict keys :esphomepr:`3062` by :ghuser:`joshuaspence`
- Esp32cam full control :esphomepr:`3090` by :ghuser:`dav-id-org` (new-feature)
- Fix config merging with null :esphomepr:`3113` by :ghuser:`joshuaspence`
- Configurable HTTP redirect following :esphomepr:`3100` by :ghuser:`guillempages` (new-feature)
- Add IPv6 for esp-idf framework :esphomepr:`2953` by :ghuser:`HeMan` (new-feature)
- Add support for additional colors on GROW R503 :esphomepr:`3087` by :ghuser:`Zebble`
- Add Heap Sensors - free/max block/fragmentation :esphomepr:`1578` by :ghuser:`micronen`
- Create base touchscreen component and refactor ektf2232 :esphomepr:`3083` by :ghuser:`jesserockz` (new-integration)
- Add qr code support for displays :esphomepr:`2952` by :ghuser:`wjtje` (new-integration)
- ESP8266 Set recommended framework to 3.0.2 :esphomepr:`2606` by :ghuser:`OttoWinter` (notable-change)
- TSL2591 automatic gain control :esphomepr:`3071` by :ghuser:`Azimath` (breaking-change)
- set adc width to 13 bits for esp32-s2 :esphomepr:`3117` by :ghuser:`martgras`
- Fix lint for TSL2591 :esphomepr:`3118` by :ghuser:`OttoWinter`
- Add Xiaomi MHOC303 sensor e-ink clock :esphomepr:`3115` by :ghuser:`drug123` (new-integration)
- Logically group and document helper functions :esphomepr:`3112` by :ghuser:`oxan`
- Add support for Waveshare 7.5in-bv2 :esphomepr:`3121` by :ghuser:`Eriner`
- Bump docker dependencies :esphomepr:`3131` by :ghuser:`OttoWinter`
- Bump pytest-mock from 3.6.1 to 3.7.0 :esphomepr:`3128` by :ghuser:`dependabot[bot]`
- Improv_serial scan and send wifi networks list :esphomepr:`3116` by :ghuser:`jesserockz` (new-feature)
- Disable platformio ldf for build :esphomepr:`3130` by :ghuser:`OttoWinter`
- Bump esp-idf framework version from 4.3.0 to 4.3.2 :esphomepr:`3120` by :ghuser:`OttoWinter`
- Bump pre-commit flake8 from 3.8.4 to 4.0.1 :esphomepr:`3149` by :ghuser:`OttoWinter`
- Bump black from 21.12b0 to 22.1.0 :esphomepr:`3147` by :ghuser:`dependabot[bot]`
- Fix ESP32C3 toolchain requires stdarg import in helpers :esphomepr:`3151` by :ghuser:`OttoWinter`
- Add new Lock core component :esphomepr:`2958` by :ghuser:`kbickar` (new-integration)
- Add device class support to Switch :esphomepr:`3012` by :ghuser:`frenck`
- Handle Tuya multi-datapoint messages :esphomepr:`3159` by :ghuser:`ssieb` (notable-change)
- Bump improv library to 1.2.1 :esphomepr:`3160` by :ghuser:`jesserockz`
- Fix copy_file_if_changed src permissions copied too :esphomepr:`3161` by :ghuser:`OttoWinter`
- [debug] Refactor debug sensors to use the normal sensor model. :esphomepr:`3162` by :ghuser:`mknjc` (breaking-change)
- Added RadonEye RD200 Component :esphomepr:`3119` by :ghuser:`jeffeb3` (new-integration)
- Text sensor schema generator similar to sensor :esphomepr:`3172` by :ghuser:`jesserockz`
- wifi_info, reduce polling interval :esphomepr:`3165` by :ghuser:`jbergler`
- MLX90393 three-axis magnetometer :esphomepr:`2770` by :ghuser:`functionpointer` (new-integration)
- Enable mDNS during OTA safe mode :esphomepr:`3146` by :ghuser:`OttoWinter`
- Dont warn on nonnull comparisons :esphomepr:`3123` by :ghuser:`jesserockz`
- Add require response option for BLE binary output :esphomepr:`3091` by :ghuser:`AshtonKem`
- Add Lilygo t5 4.7 Touchscreen :esphomepr:`3084` by :ghuser:`jesserockz` (new-integration)
- Add Select for modbus :esphomepr:`3032` by :ghuser:`stegm` (new-integration)
- Add max9611 High Side Current Shunt ADC :esphomepr:`2705` by :ghuser:`mckaymatthew` (new-integration)
- Inkplate 6 PLUS :esphomepr:`3013` by :ghuser:`jesserockz` (new-feature)
- Implement MQTT discovery object_id generator :esphomepr:`3114` by :ghuser:`akomelj`
- Fix files CI after merging :esphomepr:`3175` by :ghuser:`jesserockz`
- Try fix canbus config validation :esphomepr:`3173` by :ghuser:`jesserockz`
- Bump pytest from 6.2.5 to 7.0.0 :esphomepr:`3163` by :ghuser:`dependabot[bot]`
- Bump pytest-asyncio from 0.17.2 to 0.18.0 :esphomepr:`3168` by :ghuser:`dependabot[bot]`
- Allow to set manufacturer data for BLEAdvertising :esphomepr:`3179` by :ghuser:`ashald`
- Change most references from hassio to ha-addon :esphomepr:`3178` by :ghuser:`jesserockz`
- Bump aioesphomeapi from 10.8.1 to 10.8.2 :esphomepr:`3182` by :ghuser:`dependabot[bot]`
- Clamp rotary_encoder restored value to min and max :esphomepr:`3184` by :ghuser:`jesserockz`
- Make generating combined binary output verbose :esphomepr:`3127` by :ghuser:`OttoWinter`
- Allow framework version validator to be maximum version  :esphomepr:`3197` by :ghuser:`jesserockz` (breaking-change)
- Fix strlcpy() uses to make long SSIDs and passwords work :esphomepr:`3199` by :ghuser:`mmakaay`
- Update HA addon token :esphomepr:`3200` by :ghuser:`jesserockz`
- Fix missed ARDUINO_VERSION_CODE to USE_ARDUINO_VERSION_CODE changes :esphomepr:`3206` by :ghuser:`stewiem2000`

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

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