Changelog - Version 1.19.0 - 16th June 2021
===========================================

.. seo::
    :description: Changelog for ESPHome version 1.19.0.
    :image: /_static/changelog-1.19.0.png
    :author: ESPHome
    :author_twitter: @esphome_

.. imgtable::
    :columns: 3

    Improv, components/esp32_improv, improv.svg
    SM2135, components/output/sm2135, sm2135.svg
    XPT2046, components/binary_sensor/xpt2046, xpt2046.jpg
    SDM Meter, components/sensor/sdm_meter, sdm220m.png
    CS5460A, components/sensor/cs5460a, cs5460a.png

Wow. Ok, so this release may not look big, but there are a number of new features that are not new components.

Improv
------

:doc:`Improv Wi-Fi </components/esp32_improv>` is a new standard that stands for **Improved Provisioning of Wi-Fi
Credentials**. What it does is allow you to provision Wi-Fi credentials to the device by using Bluetooth LE.
Check out the website for more details at `improv-wifi.com <https://www.improv-wifi.com/>`__.


Home Assistant Sensor Attributes
--------------------------------

For a long time now one of the top requested features was to be able to read attributes from Home Assistant
entities into a local sensor in ESPHome. For example the brightness of a light, or the current temperature
of a climate device. :ghuser:`frenck` decided to take a stab and as long as you are running at least ESPHome
1.19.0 and Home Assistant 2021.6 then you can do this. Thanks Frenck!

.. code-block:: yaml

    # Example configuration entry
    sensor:
      - platform: homeassistant
        id: current_temperature
        entity_id: climate.living_room
        attribute: current_temperature

For the Creators
----------------

There have been a few additions to the ESPHome codebase that make it easier for creators to make projects
in ESPHome and distribute them pre-installed and ready to use. See the :doc:`new page here </guides/creators>`.


The Web Experience
------------------

We have been working hard on some new tooling to make it easier for everyone to install ESPHome and other DIY
firmwares onto their ESP-based devices. To do this we have created the
`ESP Web Tools <https://esphome.github.io/esp-web-tools/>`__. Big shoutout to :ghuser:`balloob` on most of that work!

Because of these new tools, the ESPHome dashboard has gotten a slight makeover when you choose to install to a device.
You are now given the option to install directly via WebSerial to the ESP from the browser. No more plugging into the
server/VM running ESPHome and restarting container etc. It just works. (Provided you are using Chrome or Edge).

Command Line Interface
----------------------

Thanks to :ghuser:`oxan` for making some change to the ESPHome CLI. Instead of ``esphome config.yaml run``
we now have ``esphome run config.yaml``. The old format is still accepted and will be removed in a future release,
but there is a **breaking change** with this release which is the arguments ``--upload-port`` and ``--serial-port`` have been
combined and changed to ``--device``.

Release 1.19.1 - June 18
------------------------

- Update dashboard to 20210617.0 :esphomepr:`1930` by :ghuser:`balloob`
- Fix: midea_ac: fixed query status frame :esphomepr:`1922` by :ghuser:`dudanov`
- Improve config final validation :esphomepr:`1917` by :ghuser:`OttoWinter`
- Replace CLIMATE_MODE_AUTO with CLIMATE_MODE_HEAT_COOL in most cases :esphomepr:`1933` by :ghuser:`jesserockz`

Release 1.19.2 - June 21
------------------------

- Don't send Tuya commands while currently receiving a message :esphomepr:`1886` by :ghuser:`nuttytree`
- Fix midea_ac query frame :esphomepr:`1940` by :ghuser:`dudanov`
- Allow wifi setup to proceed when there is no sta or ap :esphomepr:`1931` by :ghuser:`jesserockz`
- Fix bad climate control enum :esphomepr:`1942` by :ghuser:`jesserockz`

Release 1.19.3 - June 23
------------------------

- Bump esphome-dashboard to 20210622.0 :esphomepr:`1955` by :ghuser:`jesserockz`

Release 1.19.4 - June 24
------------------------

- Rework climate traits :esphomepr:`1941` by :ghuser:`OttoWinter`
- API raise minor version for climate changes :esphomepr:`1947` by :ghuser:`OttoWinter`
- Disallow power_save_mode NONE if used together with BLE :esphomepr:`1950` by :ghuser:`OttoWinter`
- Add climate preset NONE again :esphomepr:`1951` by :ghuser:`OttoWinter`
- Compat argv parsing improvements :esphomepr:`1952` by :ghuser:`OttoWinter`
- Bump dashboard to 20210623.0 :esphomepr:`1958` by :ghuser:`jesserockz`

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

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

- Add sm2135 component :esphomepr:`1736` by :ghuser:`BoukeHaarsma23` (cherry-picked) (new-integration)
- Add support for the XPT2046 touchscreen controller :esphomepr:`1542` by :ghuser:`numo68` (new-integration)
- Add support for SDMXXX energy meters :esphomepr:`1260` by :ghuser:`polyfaces` (new-integration)
- Add CS5460A power-meter component :esphomepr:`1474` by :ghuser:`balrog-kun` (new-integration)
- Added support for Xiaomi CGDK2 :esphomepr:`1451` by :ghuser:`zaluthar` (new-integration)
- Improv - BLE WiFi provisioning :esphomepr:`1807` by :ghuser:`jesserockz` (new-integration) (notable-change)

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

- Drop 128x160 ESP-32 camera resolution :esphomepr:`1813` by :ghuser:`oxan` (breaking-change)
- teleinfo: use text_sensor and sensor. :esphomepr:`1403` by :ghuser:`0hax` (breaking-change)
- CLI user experience improvements :esphomepr:`1805` by :ghuser:`oxan` (breaking-change) (notable-change)

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

- Add attribute support to Home Assistant sensors :esphomepr:`1770` by :ghuser:`frenck` (notable-change)
- CLI user experience improvements :esphomepr:`1805` by :ghuser:`oxan` (breaking-change) (notable-change)
- Improv - BLE WiFi provisioning :esphomepr:`1807` by :ghuser:`jesserockz` (new-integration) (notable-change)

Beta Fixes
^^^^^^^^^^

- Upgrade the version of AsyncTCP-esphome to v1.2.2 :esphomepr:`1762` by :ghuser:`glmnet` (cherry-picked)
- Fix build issues for idf 4.2 (Support ESP32-S2) :esphomepr:`1433` by :ghuser:`misery` (cherry-picked)
- Use core constants for sample duration on bh1750 :esphomepr:`1764` by :ghuser:`yuvalabou` (breaking-change) (cherry-picked)
- Add sm2135 component :esphomepr:`1736` by :ghuser:`BoukeHaarsma23` (cherry-picked) (new-integration)
- Allow RC522 components to have multiple configurations :esphomepr:`1782` by :ghuser:`jesserockz` (cherry-picked)
- Simplify LightCall validation :esphomepr:`1874` by :ghuser:`oxan` (cherry-picked)
- Simplify LightCall validation :esphomepr:`1874` by :ghuser:`oxan` (cherry-picked)
- BLE loop use :esphomepr:`1882` by :ghuser:`jesserockz` (cherry-picked)
- BLE loop use :esphomepr:`1882` by :ghuser:`jesserockz` (cherry-picked)
- Add support for waveshare_epaper 1.54v2 :esphomepr:`1843` by :ghuser:`geoffdavis` (cherry-picked)
- Add support for waveshare_epaper 1.54v2 :esphomepr:`1843` by :ghuser:`geoffdavis` (cherry-picked)
- Ensure wifi is in at least station mode before starting improv :esphomepr:`1899` by :ghuser:`jesserockz` (cherry-picked)
- Ensure wifi is in at least station mode before starting improv :esphomepr:`1899` by :ghuser:`jesserockz` (cherry-picked)
- Move esp32_ble_server to its own component :esphomepr:`1898` by :ghuser:`jesserockz` (breaking-change) (cherry-picked) (new-integration)
- Move esp32_ble_server to its own component :esphomepr:`1898` by :ghuser:`jesserockz` (breaking-change) (cherry-picked) (new-integration)
- Add new wizard + allow installing firmware over webserial :esphomepr:`1887` by :ghuser:`balloob` (cherry-picked)
- Add new wizard + allow installing firmware over webserial :esphomepr:`1887` by :ghuser:`balloob` (cherry-picked)
- Allow no networks or AP to be set. :esphomepr:`1908` by :ghuser:`jesserockz` (cherry-picked)
- Allow no networks or AP to be set. :esphomepr:`1908` by :ghuser:`jesserockz` (cherry-picked)
- Validate that either networks, ap, or improv is set up :esphomepr:`1910` by :ghuser:`jesserockz` (cherry-picked)
- Validate that either networks, ap, or improv is set up :esphomepr:`1910` by :ghuser:`jesserockz` (cherry-picked)
- Bump frontend to 20210614.0 :esphomepr:`1912` by :ghuser:`balloob` (cherry-picked)
- Bump frontend to 20210614.0 :esphomepr:`1912` by :ghuser:`balloob` (cherry-picked)
- fixes compatibility with esphome cfg vscode :esphomepr:`1911` by :ghuser:`glmnet` (cherry-picked)
- fixes compatibility with esphome cfg vscode :esphomepr:`1911` by :ghuser:`glmnet` (cherry-picked)
- Bump dashboard to 20210615.0 :esphomepr:`1918` by :ghuser:`balloob` (cherry-picked)
- Shorten the ble name to prevent crash with long device names :esphomepr:`1920` by :ghuser:`jesserockz` (cherry-picked)
- Fix update-all from dashboard :esphomepr:`1924` by :ghuser:`frenck`

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

- Bump black from 20.8b1 to 21.5b0 :esphomepr:`1745` by :ghuser:`dependabot[bot]`
- Bump pylint from 2.7.2 to 2.8.2 :esphomepr:`1729` by :ghuser:`dependabot[bot]`
- Fix error when using %% in printf format. :esphomepr:`1713` by :ghuser:`mmakaay`
- Update const.py :esphomepr:`1748` by :ghuser:`cciprian5`
- Allow duration for deep_sleep.enter to be templatable :esphomepr:`1765` by :ghuser:`jesserockz`
- Bump black from 21.5b0 to 21.5b1 :esphomepr:`1768` by :ghuser:`dependabot[bot]`
- Bump flake8 from 3.9.0 to 3.9.2 :esphomepr:`1763` by :ghuser:`dependabot[bot]`
- Bump pytest from 6.2.3 to 6.2.4 :esphomepr:`1769` by :ghuser:`dependabot[bot]`
- Adding delay to aht10.cpp (issue  #1635) :esphomepr:`1498` by :ghuser:`krunkel`
- Mitsubishi Heat Pump - Fixed default transmit_state to be generic instead of for a specific type of heat pump :esphomepr:`1414` by :ghuser:`RubyBailey`
- Add function to set SDS011 sensor in sleeping mode :esphomepr:`1416` by :ghuser:`onde2rock`
- Autorepeat filter for the binary sensors :esphomepr:`1681` by :ghuser:`numo68`
- Add action to set total pulses on pulse_meter :esphomepr:`1757` by :ghuser:`jesserockz`
- Add more json schema generation features :esphomepr:`1690` by :ghuser:`glmnet`
- Generate protobuf code closer to formatted files :esphomepr:`1790` by :ghuser:`jesserockz`
- Add attribute support to Home Assistant sensors :esphomepr:`1770` by :ghuser:`frenck` (notable-change)
- Bump Arduino SDK for ESP32 to 1.0.6 :esphomepr:`1789` by :ghuser:`agners`
- Added bottom segment to digit 9 :esphomepr:`1787` by :ghuser:`testbughub`
- Add support for the XPT2046 touchscreen controller :esphomepr:`1542` by :ghuser:`numo68` (new-integration)
- Revert "Added bottom segment to digit 9" :esphomepr:`1791` by :ghuser:`jesserockz`
- Introduce new async-def coroutine syntax :esphomepr:`1657` by :ghuser:`OttoWinter`
- Add on_tag_removed trigger to pn532 :esphomepr:`1436` by :ghuser:`romerod`
- Do not use Serial2 for ESP32C3, too :esphomepr:`1798` by :ghuser:`misery`
- Use latest version of upstream NeoPixelBus library :esphomepr:`1701` by :ghuser:`agners`
- Added fan triggers on_turn_on and on_turn_off :esphomepr:`1726` by :ghuser:`dataway`
- tm1637 - support 6 character displays :esphomepr:`1803` by :ghuser:`dataway`
- Convert core components to  async-def coroutine syntax :esphomepr:`1658` by :ghuser:`OttoWinter`
- Lights &  GPIO Switch inverted restore mode :esphomepr:`1810` by :ghuser:`frenck`
- allow default option for typed_schema :esphomepr:`1700` by :ghuser:`wifwucite`
- Refactor font creation to save stack space :esphomepr:`1707` by :ghuser:`numo68`
- BME680 BSEC: Allow sample rate overrides for T/P/H sensors :esphomepr:`1710` by :ghuser:`trvrnrth`
- Add the on_page_change display trigger :esphomepr:`1687` by :ghuser:`numo68`
- Allow segments in a light partition to be reversed :esphomepr:`1484` by :ghuser:`jimbauwens`
- Document considerations when changing recommended framework version :esphomepr:`1822` by :ghuser:`OttoWinter`
- Convert components to async-def syntax :esphomepr:`1821` by :ghuser:`OttoWinter`
- Bump protobuf from 3.15.8 to 3.17.0 :esphomepr:`1776` by :ghuser:`dependabot[bot]`
- Convert components to async-def syntax :esphomepr:`1823` by :ghuser:`OttoWinter`
- Update sensor device classes from HA :esphomepr:`1825` by :ghuser:`OttoWinter`
- Update platformio.ini settings and fix test apps :esphomepr:`1815` by :ghuser:`oxan`
- lambda condition should return :esphomepr:`1833` by :ghuser:`glmnet`
- fix dallas pin validation :esphomepr:`1692` by :ghuser:`glmnet`
- Fix typo in wizard :esphomepr:`1836` by :ghuser:`ThomDietrich`
- add validate to components :esphomepr:`1631` by :ghuser:`glmnet`
- Added bottom segment to digit 9 :esphomepr:`1847` by :ghuser:`testbughub`
- Add support for SDMXXX energy meters :esphomepr:`1260` by :ghuser:`polyfaces` (new-integration)
- Add CS5460A power-meter component :esphomepr:`1474` by :ghuser:`balrog-kun` (new-integration)
- Drop 128x160 ESP-32 camera resolution :esphomepr:`1813` by :ghuser:`oxan` (breaking-change)
- Rf Bridge: add bucket sniffing and beep functionality :esphomepr:`1819` by :ghuser:`ianchi`
- Use built-in validation for altitude :esphomepr:`1831` by :ghuser:`agners`
- Don't check uart settings for modbus :esphomepr:`1850` by :ghuser:`jesserockz`
- I2c raw cmds with multiplexer :esphomepr:`1817` by :ghuser:`mmakaay`
- Update fingerprint count after enroll :esphomepr:`1811` by :ghuser:`rwagnervm`
- teleinfo: use text_sensor and sensor. :esphomepr:`1403` by :ghuser:`0hax` (breaking-change)
- Copy missing BLE client characteristic read data :esphomepr:`1818` by :ghuser:`buxtronix`
- Added support for Xiaomi CGDK2 :esphomepr:`1451` by :ghuser:`zaluthar` (new-integration)
- Fix ble client esp_gatt_if comparison :esphomepr:`1852` by :ghuser:`jesserockz`
- Add optional lambda to BLESensor for raw data parsing :esphomepr:`1851` by :ghuser:`torfbolt`
- Support Tuya light color temperature control :esphomepr:`1412` by :ghuser:`rmounce`
- Tuya improvements :esphomepr:`1491` by :ghuser:`trvrnrth`
- Use size_t for length parameter :esphomepr:`1799` by :ghuser:`misery`
- Added vol +/- control to dfplayer :esphomepr:`1856` by :ghuser:`foxsam21`
- Support raw datapoints for tuya components :esphomepr:`1669` by :ghuser:`kroimon`
- Add support for Sensor state class :esphomepr:`1835` by :ghuser:`frenck`
- make crc16 function accessible :esphomepr:`1857` by :ghuser:`ssieb`
- Add preset, custom_preset and custom_fan_mode support to climate :esphomepr:`1471` by :ghuser:`Lumpusz`
- Avoid unnecessary waits to stabilize the VOC algorithm :esphomepr:`1834` by :ghuser:`agners`
- Fix SCD30 configuration on ESP32 :esphomepr:`1830` by :ghuser:`agners`
- Bump Docker base version to 3.1.0 :esphomepr:`1864` by :ghuser:`agners`
- CLI user experience improvements :esphomepr:`1805` by :ghuser:`oxan` (breaking-change) (notable-change)
- Improv - BLE WiFi provisioning :esphomepr:`1807` by :ghuser:`jesserockz` (new-integration) (notable-change)
- Implement versioning for esphome/esphome-lint docker images :esphomepr:`1877` by :ghuser:`OttoWinter`
- Bump base image to 3.4.0 :esphomepr:`1879` by :ghuser:`OttoWinter`
- Use Clang 11 :esphomepr:`1846` by :ghuser:`agners`
- Remove explain changes section from PR template :esphomepr:`1876` by :ghuser:`OttoWinter`
- Fixes for BLE/improv :esphomepr:`1878` by :ghuser:`jesserockz`
- Fix Clang 11 finds :esphomepr:`1880` by :ghuser:`agners`
- Allow setting creator project name and version into code :esphomepr:`1872` by :ghuser:`jesserockz`
- Add platform and board to mdns response when API is used :esphomepr:`1871` by :ghuser:`jesserockz`
- Update total_pulses at every detected pulse :esphomepr:`1875` by :ghuser:`rklomp`
- Simplify LightCall validation :esphomepr:`1874` by :ghuser:`oxan` (cherry-picked)
- BLE loop use :esphomepr:`1882` by :ghuser:`jesserockz` (cherry-picked)
- Add support for waveshare_epaper 1.54v2 :esphomepr:`1843` by :ghuser:`geoffdavis` (cherry-picked)
- Update ambiguous command :esphomepr:`1889` by :ghuser:`jesserockz`
- Configure clang-format for consistent pointer alignment :esphomepr:`1890` by :ghuser:`OttoWinter`
- Activate some clang-tidy checks :esphomepr:`1884` by :ghuser:`OttoWinter`
- Avoid non-const globals and enable clang-tidy check :esphomepr:`1892` by :ghuser:`agners`
- Convert st7735.cpp to use Unix line separators :esphomepr:`1894` by :ghuser:`oxan`
- Ensure wifi is in at least station mode before starting improv :esphomepr:`1899` by :ghuser:`jesserockz` (cherry-picked)
- Move esp32_ble_server to its own component :esphomepr:`1898` by :ghuser:`jesserockz` (breaking-change) (cherry-picked) (new-integration)
- Add new wizard + allow installing firmware over webserial :esphomepr:`1887` by :ghuser:`balloob` (cherry-picked)
- Split files in light component :esphomepr:`1893` by :ghuser:`oxan`
- Fix CI by avoiding non-const global :esphomepr:`1907` by :ghuser:`oxan`
- Adds support cpp to vscode :esphomepr:`1828` by :ghuser:`dentra`
- Allow no networks or AP to be set. :esphomepr:`1908` by :ghuser:`jesserockz` (cherry-picked)
- Validate that either networks, ap, or improv is set up :esphomepr:`1910` by :ghuser:`jesserockz` (cherry-picked)
- Support ESP8266 Arduino 3.0.0 :esphomepr:`1897` by :ghuser:`agners`
- Bump frontend to 20210614.0 :esphomepr:`1912` by :ghuser:`balloob` (cherry-picked)
- Run script/setup in devcontainer instead of pip install :esphomepr:`1913` by :ghuser:`OttoWinter`
- fixes compatibility with esphome cfg vscode :esphomepr:`1911` by :ghuser:`glmnet` (cherry-picked)
- Bump dashboard to 20210615.0 :esphomepr:`1918` by :ghuser:`balloob` (cherry-picked)
- Shorten the ble name to prevent crash with long device names :esphomepr:`1920` by :ghuser:`jesserockz` (cherry-picked)
- Fix update-all from dashboard :esphomepr:`1924` by :ghuser:`frenck`

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

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