ESPHome 2022.4.0 - 20th April 2022
==================================

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

.. imgtable::
    :columns: 3

    QMP6988, components/sensor/qmp6988, qmp6988_env3.png
    Hydreon Rain Sensor, components/binary_sensor/hydreon_rgxx, hydreon_rg9.jpg
    Mi Motion Sensor 2, components/sensor/xiaomi_ble, xiaomi_rtcgq02lm.jpg
    Sonoff D1 Dimmer, components/light/sonoff_d1, sonoff_d1.jpg
    MCP3208, components/sensor/mcp3204, mcp3204.jpg
    Shelly Dimmer, components/light/shelly_dimmer, shellydimmer2.jpg


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

This is a repeat from the 2022.2 release notes.

The `ESPHome Home Assistant addon repository <https://github.com/esphome/home-assistant-addon>`__
is added by default to new Home Assistant installations. Because of this, we have decided that we would
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 Community 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>

Python 3.8 Minimum
------------------

A friendly reminder that 2022.3 set the minimum Python version to 3.8.
Please upgrade your local python if you are unable to update ESPHome further.
This is taken care of automatically if you are using the Home Assistant Add-on, or the
ESPHome docker container.

Shelly Dimmer 2
---------------

Support for the STM32 chip of the Shelly Dimmer has been added in this release. The component also supports flashing custom firmware to the
stm32 via ESPHome which is required to use the component. See the :doc:`documentation </components/light/shelly_dimmer>` for more details.

Google Fonts
------------

:ghuser:`OttoWinter` has given everyone a way to use Google Fonts in their YAML and displays without having to manually download
TTF font files. The example below will automatically download and cache the Roboto TTF font file required so you can utilise it.
See the :ref:`display-fonts` documentation for more details.

.. code-block:: yaml

    font:
      - file: "gfonts://Roboto"
        id: roboto
        size: 20


Deep sleep wakeup time
----------------------

Deep sleep for ESP32 has had a new feature added.

.. code-block:: yaml

    on_...:
      - deep_sleep.enter:
          until: "14:00:00"
          time_id: ...

This will automatically calculate the time required to deep sleep to ensure that the device will
wake up at "14:00:00". The time format here is local time to match the timezone you have configured and
this requires a time component to be configured.


Sensors imported from Home Assistant
------------------------------------

In this release there is a breaking change on the sensors that are imported from homeassistant, ``platform: homeassistant``.
They will now default to being internal to ESPHome and will not be re-exported back to Home Assistant, MQTT or the web server.
This change makes sense as it was just extra sensors and network traffic. You are able to add these back as non internal by
adding ``internal: false`` to the YAML for each of the sensors.


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

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

- Allow to set user defined characters on LCD :esphomepr:`3322` by :ghuser:`numo68` (new-feature)
- Font allow using google fonts directly :esphomepr:`3243` by :ghuser:`OttoWinter` (new-feature) (notable-change)
- Add mqtt for idf :esphomepr:`2930` by :ghuser:`martgras` (new-feature)
- Extend mcp3204 to support 8 channels (mcp3208 variant) :esphomepr:`3332` by :ghuser:`RadekHvizdos` (new-feature)
- Add cover toggle support to endstop cover :esphomepr:`3358` by :ghuser:`rrooggiieerr` (new-feature)
- Remote base pronto receive :esphomepr:`2826` by :ghuser:`cvwillegen` (new-feature)
- Allow specifying deep sleep wakup clock time :esphomepr:`3312` by :ghuser:`jesserockz` (new-feature)

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

- Add support for QMP6988 Pressure sensor :esphomepr:`3192` by :ghuser:`andrewpc` (new-integration)
- Add integration hydreon_rgxx for rain sensors by Hydreon :esphomepr:`2711` by :ghuser:`functionpointer` (new-integration)
- Add Xiaomi RTCGQ02LM - Mi Motion Sensor 2 :esphomepr:`3186` by :ghuser:`jesserockz` (new-integration)
- Add Sonoff D1 Dimmer support :esphomepr:`2775` by :ghuser:`anatoly-savchenkov` (new-integration)
- Refactor Sensirion Sensors :esphomepr:`3374` by :ghuser:`martgras` (new-integration)
- Add support for Shelly Dimmer 2 :esphomepr:`2954` by :ghuser:`rnauber` (new-integration)

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

- Make home_assistant imported sensors internal by default :esphomepr:`3372` by :ghuser:`jesserockz` (breaking-change)

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

- Actually increase request memory for json parsing :esphomepr:`3331` by :ghuser:`jesserockz`
- Actually increase request memory for json parsing :esphomepr:`3331` by :ghuser:`jesserockz`
- Changes accuracy of single cell voltage :esphomepr:`3387` by :ghuser:`matthias882`
- Add support for Shelly Dimmer 2 :esphomepr:`2954` by :ghuser:`rnauber` (new-integration)
- Allocate smaller amount of buffer for JSON :esphomepr:`3384` by :ghuser:`dz0ny`
- Fix power_delivered/produced_phase sensor deviceclass in DSMR :esphomepr:`3395` by :ghuser:`mvdwetering`
- Shelly Dimmer: Delete obsolete LICENSE.txt :esphomepr:`3394` by :ghuser:`rnauber`
- Dont require empty object for wifi ap with defaults :esphomepr:`3404` by :ghuser:`jesserockz`

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

- Font allow using google fonts directly :esphomepr:`3243` by :ghuser:`OttoWinter` (new-feature) (notable-change)

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

- Bump pytest-asyncio from 0.18.1 to 0.18.2 :esphomepr:`3262` by :ghuser:`dependabot[bot]`
- Bump zeroconf from 0.38.3 to 0.38.4 :esphomepr:`3257` by :ghuser:`dependabot[bot]`
- Bump click from 8.0.3 to 8.0.4 :esphomepr:`3248` by :ghuser:`dependabot[bot]`
- Bump docker dependencies :esphomepr:`3281` by :ghuser:`OttoWinter`
- Fixed wrong comment :esphomepr:`3286` by :ghuser:`Rai-Rai`
- Add support for QMP6988 Pressure sensor :esphomepr:`3192` by :ghuser:`andrewpc` (new-integration)
- Adds support for b-parasite's v2 BLE protocol :esphomepr:`3290` by :ghuser:`rbaron`
- increase delay for Ethernet module warm up Safe Mode :esphomepr:`3326` by :ghuser:`nagyrobi`
- Bump esptool from 3.2 to 3.3 :esphomepr:`3327` by :ghuser:`dependabot[bot]`
- Allow to set user defined characters on LCD :esphomepr:`3322` by :ghuser:`numo68` (new-feature)
- Font allow using google fonts directly :esphomepr:`3243` by :ghuser:`OttoWinter` (new-feature) (notable-change)
- Actually increase request memory for json parsing :esphomepr:`3331` by :ghuser:`jesserockz`
- Actually increase request memory for json parsing :esphomepr:`3331` by :ghuser:`jesserockz`
- Change beginning of file comments to avoid creating doxygen tag for `esphome` namespace :esphomepr:`3314` by :ghuser:`e28eta`
- Publish custom data when modbus number lambda fills vector :esphomepr:`3295` by :ghuser:`jesserockz`
- Define touchscreen support when in use. :esphomepr:`3296` by :ghuser:`geiseri`
- New vscode schema gen :esphomepr:`3336` by :ghuser:`glmnet`
- protobuf: fix incomplete 64 bits implementation :esphomepr:`3341` by :ghuser:`ianchi`
- feat: support ble_client that use security w/o pin codes :esphomepr:`3320` by :ghuser:`ammmze`
- Add mqtt for idf :esphomepr:`2930` by :ghuser:`martgras` (new-feature)
- Added a function to load custom characters in LCD display :esphomepr:`3279` by :ghuser:`andrewjswan`
- CAN bus: support remote transmission request flag for canbus.send :esphomepr:`3193` by :ghuser:`felixstorm`
- Tm1637 binarysensor :esphomepr:`2792` by :ghuser:`mvturnho`
- Bump click from 8.0.4 to 8.1.2 :esphomepr:`3351` by :ghuser:`dependabot[bot]`
- Bump pylint from 2.12.2 to 2.13.4 :esphomepr:`3348` by :ghuser:`dependabot[bot]`
- Bump pytest-asyncio from 0.18.2 to 0.18.3 :esphomepr:`3335` by :ghuser:`dependabot[bot]`
- Bump pytest from 7.0.1 to 7.1.1 :esphomepr:`3313` by :ghuser:`dependabot[bot]`
- Bump docker dependencies :esphomepr:`3354` by :ghuser:`OttoWinter`
- Bump voluptuous from 0.12.2 to 0.13.0 :esphomepr:`3355` by :ghuser:`dependabot[bot]`
- Bump tzlocal from 4.1 to 4.2 :esphomepr:`3356` by :ghuser:`dependabot[bot]`
- Bump pyupgrade from 2.31.0 to 2.31.1 :esphomepr:`3292` by :ghuser:`dependabot[bot]`
- Bump black from 22.1.0 to 22.3.0 :esphomepr:`3357` by :ghuser:`dependabot[bot]`
- Allow on_value_range for sensor and number to be templated :esphomepr:`3359` by :ghuser:`jesserockz`
- Add support for Electrolux heatpump and bump arduino-heatpumpir version :esphomepr:`3353` by :ghuser:`ikilledmypc`
- Implement newer RTU protocol of Growatt inverters :esphomepr:`3315` by :ghuser:`djwlindenaar`
- Add parameter to control i2c stop signal at endTransmission :esphomepr:`3370` by :ghuser:`kbickar`
- Fix SHTC3 sensor detection :esphomepr:`3365` by :ghuser:`ssieb`
- Extend mcp3204 to support 8 channels (mcp3208 variant) :esphomepr:`3332` by :ghuser:`RadekHvizdos` (new-feature)
- Bump pyupgrade from 2.31.1 to 2.32.0 :esphomepr:`3366` by :ghuser:`dependabot[bot]`
- Bump voluptuous from 0.13.0 to 0.13.1 :esphomepr:`3364` by :ghuser:`dependabot[bot]`
- Bump pylint from 2.13.4 to 2.13.5 :esphomepr:`3363` by :ghuser:`dependabot[bot]`
- Fix HM3301 AQI int8 overflow :esphomepr:`3361` by :ghuser:`calco88`
- Add cover toggle support to endstop cover :esphomepr:`3358` by :ghuser:`rrooggiieerr` (new-feature)
- Make home_assistant imported sensors internal by default :esphomepr:`3372` by :ghuser:`jesserockz` (breaking-change)
- Add integration hydreon_rgxx for rain sensors by Hydreon :esphomepr:`2711` by :ghuser:`functionpointer` (new-integration)
- Addition of Deep Sleep RTC pin definition for ESP32-S2 :esphomepr:`3303` by :ghuser:`andrewpc`
- Add Xiaomi RTCGQ02LM - Mi Motion Sensor 2 :esphomepr:`3186` by :ghuser:`jesserockz` (new-integration)
- Add Sonoff D1 Dimmer support :esphomepr:`2775` by :ghuser:`anatoly-savchenkov` (new-integration)
- Remote base pronto receive :esphomepr:`2826` by :ghuser:`cvwillegen` (new-feature)
- Use correct http defines :esphomepr:`3378` by :ghuser:`dz0ny`
- Refactor Sensirion Sensors :esphomepr:`3374` by :ghuser:`martgras` (new-integration)
- Fix silent config errors :esphomepr:`3380` by :ghuser:`jesserockz`
- Move PN532OnTagTrigger to nfc::NfcOnTagTrigger :esphomepr:`3379` by :ghuser:`jesserockz`
- Allow specifying deep sleep wakup clock time :esphomepr:`3312` by :ghuser:`jesserockz` (new-feature)
- Changes accuracy of single cell voltage :esphomepr:`3387` by :ghuser:`matthias882`
- Add support for Shelly Dimmer 2 :esphomepr:`2954` by :ghuser:`rnauber` (new-integration)
- Allocate smaller amount of buffer for JSON :esphomepr:`3384` by :ghuser:`dz0ny`
- Fix power_delivered/produced_phase sensor deviceclass in DSMR :esphomepr:`3395` by :ghuser:`mvdwetering`
- Shelly Dimmer: Delete obsolete LICENSE.txt :esphomepr:`3394` by :ghuser:`rnauber`
- Dont require empty object for wifi ap with defaults :esphomepr:`3404` by :ghuser:`jesserockz`

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

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