ESPHome 2021.9.0 - 15th September 2021 ====================================== .. seo:: :description: Changelog for ESPHome 2021.9.0. :image: /_static/changelog-2021.9.0.png :author: ESPHome :author_twitter: @esphome_ .. imgtable:: :columns: 3 AirThings BLE, components/sensor/airthings_ble, airthings_logo.png H-bridge Fan, components/fan/hbridge, fan.svg, dark-invert ST7920, components/display/st7920, st7920.jpg Web Server Vulnerability ------------------------ It was brought to our attention by :ghuser:`andir` that the :doc:`/components/web_server` had a vulnerability in that the OTA form could be POST'd to without the basic auth credentials set in the ``web_server`` configuration. If you use the ``web_server`` and rely on the credentials for security, then you need to upgrade to 2021.9.2 or disable the ``web_server`` completely. The `Security Advisory on GitHub `__ has been given ``CVE-2021-41104``. `Home Assistant Yellow `__ ------------------------------------------------------------ You get the most out of your ESPHome devices when you combine it with Home Assistant, which offers a seamless and local integration to control and manage all your ESPHome devices. Today Home Assistant launched a crowdfunding campaign for the `Home Assistant Yellow `__, the easiest way to get started with Home Assistant and a privacy focused smart home. API Encryption -------------- :ghuser:`OttoWinter` has been hard at work adding a layer of encryption to the API which utilises the ``noise`` protocol. This releases adds the capabilities to ESPHome devices, but Home Assistant (or other clients) will need to upgrade their client libraries (e.g. ``aioesphomeapi``) before they can connect and communicate to devices with encryption. This is scheduled to be available in Home Assistant 2021.10. Git Packages ------------ :ref:`Packages` have been extended to allow loading (multiple) YAML file(s) from a git repo. Take a look at the examples to see how to use them. Midea AC -------- ``platform: midea_ac`` has been changed to ``platform: midea`` in this release and has quite a few upgrades. Check the docs for the new features. :doc:`/components/climate/midea` SDM Meters ---------- :doc:`SDM Meters` have been fixed to use kWh instead of Wh as the energy unit of measurement. Template Select/Number/Switch ----------------------------- The template selects, numbers and switches now have more validations on them preventing weird usage. If you do not set a ``lambda`` then you are required to make them either ``optimistic: true``, or utilise the ``set_action`` (select/number) / ``turn_on_trigger`` (switch). Release 2021.9.1 - September 20 ------------------------------- - Fix MQTT discovery for sensor state_class :esphomepr:`2331` by :ghuser:`paulmonigatti` - Light transition fixes :esphomepr:`2320` by :ghuser:`oxan` - Cease using deprecated Cover methods in automations :esphomepr:`2326` by :ghuser:`oxan` - Apply color brightness to addressable light effects :esphomepr:`2321` by :ghuser:`oxan` - Add readv and writev for more efficient API packets :esphomepr:`2342` by :ghuser:`OttoWinter` - Clean-up sensor integration :esphomepr:`2275` by :ghuser:`oxan` Release 2021.9.2 - September 28 ------------------------------- - Bump aioesphomeapi to 9.1.1 :esphomepr:`2350` by :ghuser:`OttoWinter` - Midea fix :esphomepr:`2395` by :ghuser:`dudanov` - Move web_server auth to web_server_base `be965a6 `__ by :ghuser:`OttoWinter` - Fix lint issues in web_server_base :esphomepr:`2409` by :ghuser:`jesserockz` Release 2021.9.3 - October 7 ---------------------------- - Re-enable TCP nodelay for ESP32 :esphomepr:`2390` by :ghuser:`OttoWinter` - Bump aioesphomeapi from 9.1.1 to 9.1.2 :esphomepr:`2426` by :ghuser:`dependabot[bot]` - Fix socket abstraction for ESP-IDF v4 :esphomepr:`2434` by :ghuser:`agners` - Bump aioesphomeapi from 9.1.2 to 9.1.4 :esphomepr:`2443` by :ghuser:`dependabot[bot]` - Add log line to show if API encryption is being used :esphomepr:`2450` by :ghuser:`jesserockz` - API encryption switch to libsodium backend :esphomepr:`2456` by :ghuser:`OttoWinter` Full list of changes -------------------- New Features ^^^^^^^^^^^^ - Add H-Bridge fan component :esphomepr:`2212` by :ghuser:`WeekendWarrior1` (new-feature) - Allow using a git source for a package :esphomepr:`2193` by :ghuser:`jesserockz` (new-feature) New Components ^^^^^^^^^^^^^^ - Add st7920 display, :esphomepr:`1440` by :ghuser:`marsjan155` (new-integration) - Support for the AirThings Wave Plus :esphomepr:`1656` by :ghuser:`jeromelaban` (new-integration) Breaking Changes ^^^^^^^^^^^^^^^^ - Fix SDM energy units to be KILO... :esphomepr:`2206` by :ghuser:`jesserockz` (breaking-change) - Reject template select/number/switches that don't handle user input :esphomepr:`2230` by :ghuser:`oxan` (breaking-change) - Remove last_reset_type and convert all those sensors to TOTAL_INCREASING :esphomepr:`2233` by :ghuser:`jesserockz` (breaking-change) - Midea support v2 :esphomepr:`2188` by :ghuser:`dudanov` (breaking-change) Beta Fixes ^^^^^^^^^^ - Fix a few ESP32-C3 compiler issues :esphomepr:`2265` by :ghuser:`jesserockz` - sm300d2: Accept (undocumented) 0x80 checksum offset. :esphomepr:`2263` by :ghuser:`poptix` - Disable automatic usage of SNTP servers from DHCP :esphomepr:`2273` by :ghuser:`oxan` - Only try compat parsing after regular parsing fails :esphomepr:`2269` by :ghuser:`oxan` - Suppress excessive warnings about deprecated Fan interfaces :esphomepr:`2270` by :ghuser:`oxan` - t6615: tolerate sensor dropping commands :esphomepr:`2255` by :ghuser:`jasstrong` - Fix API socket issues :esphomepr:`2288` by :ghuser:`OttoWinter` - Bump platformio to 5.2.0 :esphomepr:`2291` by :ghuser:`OttoWinter` - API Noise logging :esphomepr:`2298` by :ghuser:`OttoWinter` - Fix api noise explicit reject :esphomepr:`2297` by :ghuser:`OttoWinter` - Allow simple hostname for sntp servers :esphomepr:`2300` by :ghuser:`jesserockz` - Fix binary strobe :esphomepr:`2301` by :ghuser:`jesserockz` - Fix unit of measurement fields for DSMR power consumed/delivered fields :esphomepr:`2304` by :ghuser:`jsuanet` - Simple time.sleep in place of threading wait due to upgraded zeroconf :esphomepr:`2307` by :ghuser:`jesserockz` - Fix aioesphomeapi API logger with explicit API port config :esphomepr:`2310` by :ghuser:`mmakaay` - Start a wifi scan after saving station details :esphomepr:`2315` by :ghuser:`jesserockz` All changes ^^^^^^^^^^^ - Minor code cleanup in light components :esphomepr:`2162` by :ghuser:`mmakaay` - Add device class update to binary sensor :esphomepr:`2170` by :ghuser:`frenck` - Total daily energy methods :esphomepr:`2163` by :ghuser:`nuttytree` - Set SDM voltage state class to measurement :esphomepr:`2181` by :ghuser:`jesserockz` - Add macros header with more usable Arduino version defines :esphomepr:`2145` by :ghuser:`oxan` - Clean-up constant definitions :esphomepr:`2148` by :ghuser:`oxan` - Remove double scheduling from addressable lights :esphomepr:`1963` by :ghuser:`oxan` - Reduce static RAM usage :esphomepr:`2140` by :ghuser:`oxan` - Fix template select log message mentioning number :esphomepr:`2194` by :ghuser:`jesserockz` - Add deprecated attribute to some deprecated types/methods :esphomepr:`2185` by :ghuser:`oxan` - Store source package in Component for debugging :esphomepr:`2070` by :ghuser:`OttoWinter` - ST7789V: Make backlight_pin optional :esphomepr:`2180` by :ghuser:`speijnik` - Fix SDM energy units to be KILO... :esphomepr:`2206` by :ghuser:`jesserockz` (breaking-change) - Optionally set direction on fan.turn_on action :esphomepr:`2171` by :ghuser:`WeekendWarrior1` - Add st7920 display, :esphomepr:`1440` by :ghuser:`marsjan155` (new-integration) - Fix css/js file loading for webserver when esphome not executed form config directory :esphomepr:`2207` by :ghuser:`jesserockz` - cs_pin made optional for ili9341 :esphomepr:`2219` by :ghuser:`a13ssandr0` - Fix Packages when using MQTT :esphomepr:`2210` by :ghuser:`paulmonigatti` - Update known boards :esphomepr:`2190` by :ghuser:`oxan` - Bump dashboard to 20210826.0 :esphomepr:`2211` by :ghuser:`jesserockz` - Remove footer validation for fujitsu_general :esphomepr:`2196` by :ghuser:`marciogranzotto` - Glmnet schema 202105 :esphomepr:`2220` by :ghuser:`glmnet` - Add H-Bridge fan component :esphomepr:`2212` by :ghuser:`WeekendWarrior1` (new-feature) - Bump black from 21.7b0 to 21.8b0 :esphomepr:`2222` by :ghuser:`dependabot[bot]` - Bump pytest from 6.2.4 to 6.2.5 :esphomepr:`2223` by :ghuser:`dependabot[bot]` - Support for the AirThings Wave Plus :esphomepr:`1656` by :ghuser:`jeromelaban` (new-integration) - Fix some lint errors in pylint 2.10.2 :esphomepr:`2226` by :ghuser:`jesserockz` - Add transitions to light flash :esphomepr:`2201` by :ghuser:`alexyao2015` - iBeacon support for ble_presence :esphomepr:`1627` by :ghuser:`ignisf` - Cleanup flash transitions :esphomepr:`2227` by :ghuser:`alexyao2015` - Add is_on and is_off conditions for the fan component :esphomepr:`2225` by :ghuser:`nuttytree` - Bump pylint from 2.9.6 to 2.10.2 :esphomepr:`2197` by :ghuser:`dependabot[bot]` - mqtt_sensor: properly send state_class via MQTT :esphomepr:`2228` by :ghuser:`ayufan` - Change uptime's state_class to total_increasing (esphome/issues#2337) :esphomepr:`2205` by :ghuser:`DAVe3283` - Expose WHITE/CWWW/RGBCT color modes over MQTT :esphomepr:`2231` by :ghuser:`oxan` - Reject template select/number/switches that don't handle user input :esphomepr:`2230` by :ghuser:`oxan` (breaking-change) - Fix UARTComponent hardware vs software UART0 conflict :esphomepr:`2229` by :ghuser:`ferbar` - Move to use zeroconf library instead of inline copy :esphomepr:`2192` by :ghuser:`jesserockz` - Allow using a git source for a package :esphomepr:`2193` by :ghuser:`jesserockz` (new-feature) - Remove last_reset_type and convert all those sensors to TOTAL_INCREASING :esphomepr:`2233` by :ghuser:`jesserockz` (breaking-change) - Dont dump legacy fields :esphomepr:`2241` by :ghuser:`jesserockz` - Fix encoding bug :esphomepr:`2242` by :ghuser:`jesserockz` - Light: include ON_OFF capability to BRIGHTNESS ColorMode :esphomepr:`2204` by :ghuser:`jesserockz` - LOG_UPDATE_INTERVAL: correctly report "never" :esphomepr:`2240` by :ghuser:`Habbie` - Fix runtime exception due to dict typing :esphomepr:`2243` by :ghuser:`alexyao2015` - template: select: fix initial_value cannot be used with lambda :esphomepr:`2244` by :ghuser:`ayufan` - Add device classes new in HA 2021.9 :esphomepr:`2248` by :ghuser:`oxan` - Logger prevent recursive logging :esphomepr:`2251` by :ghuser:`OttoWinter` - Add new trigger to fan component `on_speed_set` :esphomepr:`2246` by :ghuser:`dgtal1` - Fix fan speed restore issue on boot :esphomepr:`1867` by :ghuser:`wifwucite` - Template sensors always publish on update interval :esphomepr:`2224` by :ghuser:`nuttytree` - Socket component :esphomepr:`2250` by :ghuser:`OttoWinter` - Allow .yml files in dashboard :esphomepr:`2257` by :ghuser:`jesserockz` - Bump dashboard to 20210908.0 and fix card names for yml :esphomepr:`2258` by :ghuser:`jesserockz` - Fix socket not setting callbacks early enough :esphomepr:`2260` by :ghuser:`OttoWinter` - Convert API to use sockets :esphomepr:`2253` by :ghuser:`OttoWinter` - Midea support v2 :esphomepr:`2188` by :ghuser:`dudanov` (breaking-change) - ccs811: publish firmware version; log bootloader and HW version; fix a bug :esphomepr:`2006` by :ghuser:`Habbie` - API encryption :esphomepr:`2254` by :ghuser:`OttoWinter` - Revert "Dont dump legacy fields" :esphomepr:`2259` by :ghuser:`jesserockz` - pm1006: add support for sending a measurement request :esphomepr:`2214` by :ghuser:`Habbie` - SGP40 sensor start-up fix :esphomepr:`2178` by :ghuser:`kbx81` - PMSA003i Update state_class and async :esphomepr:`2216` by :ghuser:`sjtrny` - Fix a few ESP32-C3 compiler issues :esphomepr:`2265` by :ghuser:`jesserockz` - sm300d2: Accept (undocumented) 0x80 checksum offset. :esphomepr:`2263` by :ghuser:`poptix` - Disable automatic usage of SNTP servers from DHCP :esphomepr:`2273` by :ghuser:`oxan` - Only try compat parsing after regular parsing fails :esphomepr:`2269` by :ghuser:`oxan` - Suppress excessive warnings about deprecated Fan interfaces :esphomepr:`2270` by :ghuser:`oxan` - t6615: tolerate sensor dropping commands :esphomepr:`2255` by :ghuser:`jasstrong` - Fix API socket issues :esphomepr:`2288` by :ghuser:`OttoWinter` - Bump platformio to 5.2.0 :esphomepr:`2291` by :ghuser:`OttoWinter` - API Noise logging :esphomepr:`2298` by :ghuser:`OttoWinter` - Fix api noise explicit reject :esphomepr:`2297` by :ghuser:`OttoWinter` - Allow simple hostname for sntp servers :esphomepr:`2300` by :ghuser:`jesserockz` - Fix binary strobe :esphomepr:`2301` by :ghuser:`jesserockz` - Fix unit of measurement fields for DSMR power consumed/delivered fields :esphomepr:`2304` by :ghuser:`jsuanet` - Simple time.sleep in place of threading wait due to upgraded zeroconf :esphomepr:`2307` by :ghuser:`jesserockz` - Fix aioesphomeapi API logger with explicit API port config :esphomepr:`2310` by :ghuser:`mmakaay` - Start a wifi scan after saving station details :esphomepr:`2315` by :ghuser:`jesserockz` Past Changelogs --------------- - :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`