From dfffc83508fb4cd971f613cfea42dae72cec6c06 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 30 Dec 2020 12:29:12 +0100 Subject: [PATCH 1/4] 2021.1 Beta release notes --- _config.yml | 8 +- .../_posts/2021-01-06-release-20211.markdown | 796 ++++++++++++++++++ source/images/blog/2021-01/social.png | Bin 0 -> 82223 bytes 3 files changed, 800 insertions(+), 4 deletions(-) create mode 100644 source/_posts/2021-01-06-release-20211.markdown create mode 100644 source/images/blog/2021-01/social.png diff --git a/_config.yml b/_config.yml index 71a0b54acf9..72a86c50e1b 100644 --- a/_config.yml +++ b/_config.yml @@ -99,10 +99,10 @@ social: account: home_assistant # Home Assistant release details -current_major_version: 2020 -current_minor_version: 12 -current_patch_version: 2 -date_released: 2020-12-30 +current_major_version: 2021 +current_minor_version: 1 +current_patch_version: 0 +date_released: 2021-01-06 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_posts/2021-01-06-release-20211.markdown b/source/_posts/2021-01-06-release-20211.markdown new file mode 100644 index 00000000000..e20537d0b8c --- /dev/null +++ b/source/_posts/2021-01-06-release-20211.markdown @@ -0,0 +1,796 @@ +--- +layout: post +title: "2021.1: Beta release notes" +description: "Beta release notes!" +date: 2020-12-30 00:00:00 +date_formatted: "January 6, 2021" +author: Franck Nijhof +author_twitter: frenck +comments: true +categories: Release-Notes +og_image: /images/blog/2021-01/social.png +--- + + + +These are the beta release notes for Home Assistant Core 2021.1 (and is thus a +work in progress). + +If you encounter any issues with the beta release, please report them on GitHub: + +- Issues with integrations, automations and such (Core related):
+ +- Issues with the frontend/Lovelace:
+ +- Issues with the Supervisor:
+ +- Issues with the documentation:
+ + +Please be sure to include the beta version you are running in the issue +description (not title), so we can classify your issue correctly. + +Issues introduced in the beta are processed with priority. + +## Table of contents + +- [Table of contents](#table-of-contents) +- [Lorem ipsum](#lorem-ipsum) +- [Other noteworthy changes](#other-noteworthy-changes) +- [New Integrations](#new-integrations) +- [New Platforms](#new-platforms) +- [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui) +- [If you need help...](#if-you-need-help) +- [Breaking Changes](#breaking-changes) +- [Farewell to the following](#farewell-to-the-following) +- [All changes](#all-changes) + +## Lorem ipsum + +Lorem ipsum + + + +## Other noteworthy changes + + + +From Core: + +- Add HmIP-HDM1 and HmIPW-DRD3 to Homematic IP Cloud ([@SukramJ] - [#43132]) ([homematicip_cloud docs]) +- Refactor LCN integration ([@alengwenus] - [#40665]) ([lcn docs]) +- Add ZHA Coordinator to LightLink cluster groups ([@Adminiuga] - [#43959]) ([zha docs]) +- Add target temperature range to homekit_controller ([@thevoltagesource] - [#42817]) ([homekit_controller docs]) +- Add UV unit to meteo_france UV sensor ([@mbo18] - [#43992]) ([meteo_france docs]) (breaking-change) +- Add discovery for MQTT device tracker ([@PeteBa] - [#42327]) ([mqtt docs]) +- Add pause and resume services to Rachio ([@brg468] - [#43944]) ([rachio docs]) +- Expose spider device information ([@peternijssen] - [#44085]) ([spider docs]) +- Add code_arm_required to IFTTT alarm ([@k2v1n58] - [#43928]) ([ifttt docs]) +- Support MSSQL in SQL Sensor ([@dgomes] - [#42778]) ([sql docs]) +- Add zha AnalogOutput cluster support ([@Shulyaka] - [#44092]) ([zha docs]) +- Add OAuth to Neato ([@Santobert] - [#44031]) ([neato docs]) (breaking-change) +- Add new sensors to meteo_france ([@mbo18] - [#44150]) ([meteo_france docs]) +- Temperatures, fan and battery in Glances sensors ([@guix77] - [#43500]) ([glances docs]) (breaking-change) +- Add send animation service to telegram ([@tofuSCHNITZEL] - [#41489]) ([telegram_bot docs]) +- Add extended device info and some attributes to Apple TV ([@postlund] - [#44277]) ([apple_tv docs]) ([media_player docs]) +- Publish timestamps in nest events ([@allenporter] - [#44641]) ([nest docs]) +- Add Wind to Accuweather sensors ([@abmantis] - [#44364]) ([accuweather docs]) +- Add options flow for Recollect Waste ([@bachya] - [#44234]) ([recollect_waste docs]) +- Home connect functional and ambient light added ([@Sjack-Sch] - [#44091]) ([home_connect docs]) (new-platform) +- Add xiamoi_miio the water_box / mop status ([@JJdeVries] - [#43355]) ([xiaomi_miio docs]) +- Support area on entities for google assistant ([@elupus] - [#44300]) ([google_assistant docs]) +- Add Olivia voice to Amazon Polly TTS ([@aque0us] - [#44513]) ([amazon_polly docs]) +- Add google cloud tts SSML + fix ([@lufton] - [#40203]) ([google_cloud docs]) +- Add album art support in the mpd component ([@mweinelt] - [#44527]) ([mpd docs]) +- Add OutdoorPlug to wemo ([@mattbilodeau] - [#44629]) ([wemo docs]) + +From frontend: + +- Mark entity ID as optional for button card (#7967) [@spacegaier] +- Do not render "No Area" in device table to reduce clutter (#7986) [@spacegaier] + +## New Integrations + +This release has not introduced new integrations. + +## New Platforms + +The following integration got support for a new platform: + +- [Somfy][somfy docs] added the climate controls and battery sensors, + added by [@tetienne] +- [Home Connect][home_connect docs] added support for functional and ambient + lights, added by [@Sjack-Sch] +- [Gree][gree docs] added support for device light panels, added by [@cmroche] + +## Integrations now available to set up from the UI + +The following integrations are now available via the Home Assistant UI: + +- [BMW Connected Drive][bmw_connected_drive docs], done by [@rikroe] + +## If you need help... + +...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). + +Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/core/issues). Make sure to fill in all fields of the issue template. + + + +## Breaking Changes + +Below is a listing of the breaking change for this release, per subject or +integration. Click on one of those to read more about the breaking change +for that specific item. + +
+ Météo-France +

+ +The unit of measurement of the UV sensor was missing and has been added. You +may have to adapt your configuration accordingly, if you were depending on the +unit of this sensor in any automations, scripts or 3rd party data loggers. + +([@mbo18] - [#43992]) ([meteo_france docs]) + +

+
+ +
+ Glances +

+ +Previously, the Glances integration was presuming that all sensors were +temperatures. Now, we can distinguish temperatures, fan speeds and battery +charges. + +In consequence, those entities have new Entity IDs, so you should update your +configuration in the UI or in your YAML files. + +Previously, they were all suffixed by `_temp`. Now they are suffixed by +`_temperature`, `_fan_speed` and `_charge`. + +Examples: + +- `sensor.glances_core_0_temp => sensor.glances_core_0_temperature` +- `sensor.glances_battery_temp => sensor.glances_battery_charge` +- `sensor.glances_thinkpad_1_temp => sensor.glances_thinkpad_1_fan_speed` + +([@guix77] - [#43500]) ([glances docs]) + +

+
+ +
+ Neato +

+ +Neato now uses a new authentication method: OAuth2. + +If you are an existing Neato user, you will need to update your YAML +configuration, as per the updated [Neato documentation][neato docs]. The +integration will then automatically be migrated. + +Vorwerk support is dropped from the neato integration. The parent library still +supports Vorwerk however, the authentication is completely different and +therefore will require a separate integration created. + +([@Santobert] - [#44031]) ([neato docs]) + +

+
+ +
+ Tado +

+ +The Tado Bridge sensor has been removed and replaced by its corresponding device +sensor. + +([@Noltari] - [#44475]) ([tado docs]) + +

+
+ +
+ OpenTherm Gateway +

+ +This release breaks `binary_sensor` and `sensor` entities of the `opentherm_gw` +integration. More specifically, all existing `binary_sensor` and `sensor` +entities are recreated with a different `entity_id`, `unique_id` and friendly +name. + +Some entities are recreated once, others will be recreated twice for different +data sources (boiler and thermostat). All entities that are recreated are +disabled by default. + +The old `sensor` and `binary_sensor` entities will log a deprecation warning +and change behavior slightly if they are enabled. They will be automatically +removed if they are disabled. Behavioral changes of the old entities may include +a delayed update and a possible change of data source (boiler vs. thermostat) +which may only become apparent when an override is active on the OpenTherm +Gateway. + +The `climate` entity is not affected. + +The OpenTherm Gateway sits between the thermostat and the boiler and thus deals +with 2 streams of information. Before this release, the status info we received +contained overlapping information from both streams of information, which led +to issues when the gateway was overriding some values. + +As of this release, therestatus is split up in multiple parts to reflect this. +Each part contains the status of its respective information stream. With this +change, we create sensor entities for each stream where necessary. + +([@mvn23] - [#43352]) ([opentherm_gw docs]) + +

+
+ +
+ BMW Connected Drive +

+ +BMW Connected Drive has been migrated for configuration via the UI. + +Your old entries from `configuration.yaml` are automatically imported __once__ +for initial setup. + +It is recommended to rename the device_tracker of your car(s) in +`config/known_devices.yaml` (you can e.g., add `_old` to the entity name) +before updating, otherwise a second device tracker entity (ending with `_2`) +per car will be created. + +After updating, the entity can be removed from known_devices as that will no +longer be used. + +([@rikroe] - [#39585]) ([bmw_connected_drive docs]) + +

+
+ +## Farewell to the following + +The following integrations have been removed: + +- **Avri** ([@timvancann] - [#44478]) + +Avri has changed their API and it seems not possible to use the new one. + +## All changes + +
+ Click to see all changes! + +- Rewrite the kira/test_init.py unittests to pytest style test functions ([@erogleva] - [#42753]) ([kira docs]) +- Add HmIP-HDM1 and HmIPW-DRD3 to Homematic IP Cloud ([@SukramJ] - [#43132]) ([homematicip_cloud docs]) +- Change config flow unique_id for devolo Home Control ([@Shutgun] - [#43005]) ([devolo_home_control docs]) +- Improve look up speed by inverting dictionaries ([@Kane610] - [#43883]) ([deconz docs]) +- Add reproduce state for Number ([@Shulyaka] - [#43870]) ([number docs]) +- Add number entity value property ([@MartinHjelmare] - [#43902]) ([demo docs]) ([number docs]) +- Bump icmplib to 2.0 for ping ([@bdraco] - [#43868]) ([ping docs]) +- Upgrade respx to 0.16.2 ([@lundberg] - [#43892]) ([rest docs]) +- Don't send MQTT birth message in tests ([@emontnemery] - [#43917]) ([mqtt docs]) +- Refactor ZHA core channel initialization ([@Adminiuga] - [#43953]) ([zha docs]) +- Remove zerproc threaded upstream reconnect logic ([@emlove] - [#43910]) ([zerproc docs]) +- Address PR cleanup for nest device triggers ([@allenporter] - [#43961]) ([nest docs]) +- Refactor LCN integration ([@alengwenus] - [#40665]) ([lcn docs]) +- Add reverse repeatmode mapping constant to Spotify ([@frenck] - [#43968]) ([spotify docs]) +- Add ZHA Coordinator to LightLink cluster groups ([@Adminiuga] - [#43959]) ([zha docs]) +- Cleanup ZHA fan channel ([@Adminiuga] - [#43973]) ([zha docs]) +- Add target temperature range to homekit_controller ([@thevoltagesource] - [#42817]) ([homekit_controller docs]) +- Add discovery of sensors on DS2409 MicroLan ([@awrede] - [#43599]) ([onewire docs]) +- Bump voluptuous to 0.12.1 ([@spacegaier] - [#44002]) +- Bump fritzconnection to 1.4.0 ([@springstan] - [#43996]) ([fritz docs]) ([fritzbox_callmonitor docs]) ([fritzbox_netmonitor docs]) +- Add support for system health to GIOS integration ([@bieniu] - [#43280]) ([gios docs]) +- Allow manual configuration of ignored config entries ([@nivnoach] - [#43947]) ([shelly docs]) +- Add UV unit to meteo_france UV sensor ([@mbo18] - [#43992]) ([meteo_france docs]) (breaking-change) +- Fix LCN service calls (invoking coroutines) ([@alengwenus] - [#43932]) ([lcn docs]) +- Add discovery for MQTT device tracker ([@PeteBa] - [#42327]) ([mqtt docs]) +- Unregister updates when a Wemo entry is removed ([@esev] - [#44005]) ([wemo docs]) +- Fix ZHA switch group test ([@dmulcahey] - [#44021]) ([zha docs]) +- Add pause and resume services to Rachio ([@brg468] - [#43944]) ([rachio docs]) +- Bump dependency to add more multi channel devices to HomematicIP Cloud ([@SukramJ] - [#43914]) ([homematicip_cloud docs]) +- Bump ciscomobilityexpress version: 0.3.3 → 0.3.9 ([@fbradyirl] - [#44050]) ([cisco_mobility_express docs]) +- Bump openwebifpy version: 3.1.1 → 3.1.6 ([@fbradyirl] - [#44064]) ([enigma2 docs]) +- Create httpx helper to wrap a shared httpx.AsyncClient ([@bdraco] - [#43877]) ([pvoutput docs]) ([rest docs]) ([scrape docs]) +- Include Hyperion in coverage testing ([@dermotduffy] - [#44096]) +- Bump up dependencies on pyserial and pyserial-asyncio ([@Adminiuga] - [#44089]) ([acer_projector docs]) ([serial docs]) ([zha docs]) +- Small cleanup of MQTT ([@emontnemery] - [#44110]) ([mqtt docs]) +- Address old review comments of Tasmota fan ([@emontnemery] - [#44112]) ([tasmota docs]) +- Add tests for the wemo component ([@esev] - [#44088]) ([wemo docs]) +- Cache Astral object in moon integration, to use less CPU ([@huonw] - [#44012]) ([moon docs]) +- Initialize numeric_state trigger tests ([@amelchio] - [#44114]) ([homeassistant docs]) +- Nuki to use entity platform ([@balloob] - [#43774]) ([nuki docs]) +- Expose spider device information ([@peternijssen] - [#44085]) ([spider docs]) +- Add code_arm_required to IFTTT alarm ([@k2v1n58] - [#43928]) ([ifttt docs]) +- Increase test coverage for nest camera ([@allenporter] - [#44144]) ([nest docs]) +- Update strings.json to clarify the requirements for the API key ([@finity69x2] - [#44143]) ([nws docs]) +- Log unique_id of device when ESPHome connection fails ([@ofalvai] - [#44152]) ([esphome docs]) +- Test edge cases in wemo platform code ([@esev] - [#44136]) ([wemo docs]) +- Increase nest climate test coverage ([@allenporter] - [#44146]) ([nest docs]) +- Share wemo entity code to reduce duplicate boilerplate ([@esev] - [#44113]) ([wemo docs]) +- Clear mpd source playlist when not playing a playlist ([@CrashWorksLLC] - [#44164]) ([mpd docs]) +- Add myself to the codeowners manifest for openhome and tapsaff ([@bazwilliams] - [#44188]) ([openhome docs]) ([tapsaff docs]) +- Upgrade restrictedpython to 5.1 (needed for python 3.9 support) ([@mikeage] - [#44181]) ([python_script docs]) +- Upgrade youtube_dl to version 2020.12.07 ([@BKPepe] - [#44004]) ([media_extractor docs]) +- Temperatures, fan and battery in Glances sensors ([@guix77] - [#43500]) ([glances docs]) (breaking-change) +- Add opensky longitude and latitude event metadata ([@SteveBrandt] - [#43205]) ([opensky docs]) +- Support MSSQL in SQL Sensor ([@dgomes] - [#42778]) ([sql docs]) +- Bump python-holidays ([@sermayoral] - [#44215]) ([workday docs]) +- Add zha AnalogOutput cluster support ([@Shulyaka] - [#44092]) ([zha docs]) +- Upgrade bandit to 1.7.0 ([@scop] - [#44184]) +- Use new PocketCast dependency ([@nwithan8] - [#44007]) +- Fix double underscore typo in fan_mode ValueError ([@allenporter] - [#44182]) ([nest docs]) +- Replace hard-coded domain strings with constants in the Wemo module ([@esev] - [#44222]) ([wemo docs]) +- Add tests for the Wemo __init__ module ([@esev] - [#44196]) ([wemo docs]) +- Register Wemo fan services with entity service helper ([@esev] - [#44192]) ([wemo docs]) +- Add send animation service to telegram ([@tofuSCHNITZEL] - [#41489]) ([telegram_bot docs]) +- Add Somfy climate platform ([@tetienne] - [#43895]) ([somfy docs]) (new-platform) +- Bump google-nest-sdm to 0.2.1 to support more SDM Pub/Sub realms ([@SeraphimSerapis] - [#44163]) ([nest docs]) +- Change shelly CONNECTION_CLASS to CONN_CLASS_LOCAL_PUSH ([@thecode] - [#44260]) ([shelly docs]) +- Bump python-qbittorrent to 0.4.2 ([@geoffreylagaisse] - [#44268]) +- Bump pychromecast to 7.6.0 ([@emontnemery] - [#44289]) ([cast docs]) +- Add OAuth to Neato ([@Santobert] - [#44031]) ([neato docs]) (breaking-change) +- Add reauth step to Hyperion config flow ([@dermotduffy] - [#43797]) ([hyperion docs]) +- Bump version to 2021.1 ([@balloob] - [#44298]) ([cloud docs]) +- Increase surepetcare api timeout to 60s ([@benleb] - [#44316]) ([surepetcare docs]) +- Fix philips_js channel and source name entry ([@elupus] - [#44296]) ([philips_js docs]) +- Refactor Airly tests ([@bieniu] - [#44315]) ([airly docs]) +- Add Somfy battery sensor ([@tetienne] - [#44311]) ([somfy docs]) (new-platform) +- Add extended device info and some attributes to Apple TV ([@postlund] - [#44277]) ([apple_tv docs]) ([media_player docs]) +- Update quality_scale for Hyperion ([@dermotduffy] - [#44306]) ([hyperion docs]) +- Revert "Change http to auto for cast media image url" ([@emontnemery] - [#44327]) ([cast docs]) +- Refactor Airly config flow ([@bieniu] - [#44330]) ([airly docs]) +- Update ReCollect docs to use proper name ([@bachya] - [#44291]) ([recollect_waste docs]) +- Upgrade Telegram lib, refactor component for breaking changes ([@ofalvai] - [#44147]) ([telegram_bot docs]) +- Add new sensors to meteo_france ([@mbo18] - [#44150]) ([meteo_france docs]) +- Convert filter tests to use pytest style ([@chrisgramberg678] - [#41743]) ([filter docs]) +- Alphabetize hyperion const.py ([@dermotduffy] - [#44343]) ([hyperion docs]) +- Bump pyps4-2ndscreen to 1.2.0 ([@ktnrg45] - [#44273]) ([ps4 docs]) +- Bump codecov/codecov-action from v1.0.15 to v1.1.0 (@dependabot - [#44346]) +- Bump actions/setup-python from v2.1.4 to v2.2.0 (@dependabot - [#44345]) +- Update sensor.py ([@elbueno222] - [#44350]) ([bme280 docs]) +- Adjust Rachio logging level when adding shared controllers ([@brg468] - [#44323]) ([rachio docs]) +- Add another xml content type for JSON conversion in RESTful sensor ([@emufan] - [#44312]) ([rest docs]) +- Enable more Bandit tests ([@scop] - [#44307]) ([recorder docs]) +- Use singleton enum for "not set" sentinels ([@scop] - [#41990]) ([camera docs]) ([cloud docs]) ([deconz docs]) ([person docs]) +- Add Wind to Accuweather sensors ([@abmantis] - [#44364]) ([accuweather docs]) +- Convert zerproc to use new upstream async api ([@emlove] - [#44357]) ([zerproc docs]) +- Strip "adb shell " prefix in `androidtv.adb_command` service ([@JeffLIrion] - [#44225]) ([androidtv docs]) +- Bump venstarcolortouch to 0.13 ([@doug-hoffman] - [#44373]) ([venstar docs]) +- Clean Airly config flow ([@bieniu] - [#44352]) ([airly docs]) +- Add filter sensor device class from source entity ([@dgomes] - [#44304]) ([filter docs]) +- Set amazon polly network timeout settings ([@eyager1] - [#44185]) ([amazon_polly docs]) +- Fix setup of SimpliSafe options flow test ([@bachya] - [#44375]) ([simplisafe docs]) +- Add options flow for Recollect Waste ([@bachya] - [#44234]) ([recollect_waste docs]) +- Connect concurrently to discovered Zerproc lights ([@emlove] - [#44376]) ([zerproc docs]) +- Home connect functional and ambient light added ([@Sjack-Sch] - [#44091]) ([home_connect docs]) (new-platform) +- Handle expiration of nest auth credentials ([@allenporter] - [#44202]) ([nest docs]) +- Add support for toggling Daikin streamers ([@viiru-] - [#40418]) ([daikin docs]) +- Add xiamoi_miio the water_box / mop status ([@JJdeVries] - [#43355]) ([xiaomi_miio docs]) +- Add google cloud tts SSML + fix ([@lufton] - [#40203]) ([google_cloud docs]) +- Bump meteofrance-api to 1.0.1 ([@oncleben31] - [#44389]) ([meteo_france docs]) +- Bump actions/setup-python from v2.2.0 to v2.2.1 (@dependabot - [#44420]) +- Update denonavr to 0.9.9 ([@scarface-4711] - [#44411]) ([denonavr docs]) +- Reduce IPP errors when printer is offline ([@dgomes] - [#44413]) ([ipp docs]) +- Add additional debug launch methods in launch.json ([@oncleben31] - [#44419]) +- Cleanup and optimization for Zerproc ([@emlove] - [#44430]) ([zerproc docs]) +- Add ecobee humidity attributes ([@treylok] - [#44366]) ([ecobee docs]) +- Support area on entities for google assistant ([@elupus] - [#44300]) ([google_assistant docs]) +- KNX BinarySensor takes float values for `reset_after` ([@farmio] - [#44446]) ([knx docs]) +- Fix KNX issue if 0 kelvin is reported by device ([@phibos] - [#44392]) ([knx docs]) +- Bump codecov/codecov-action from v1.1.0 to v1.1.1 (@dependabot - [#44442]) +- Remove Travis CI config ([@scop] - [#44443]) +- Move Legacy Works With Nest integration to subdirectory ([@allenporter] - [#44368]) ([nest docs]) (new-integration) +- Bump hyperion-py to 0.6.1 ([@dermotduffy] - [#44490]) ([hyperion docs]) +- Motion Blinds upgrade to local push ([@starkillerOG] - [#44391]) ([motion_blinds docs]) +- Fix filter sensor None state ([@dgomes] - [#44439]) ([filter docs]) +- Translate siri requests to turn on thermostats to valid targets ([@bdraco] - [#44236]) ([homekit docs]) +- Periodically attempt to discover new wemo devices ([@esev] - [#44361]) ([wemo docs]) +- Fix the docstring in type_fans.py ([@tomaszpieczykolan] - [#44511]) ([homekit docs]) +- Remove useless async_add_executor_job ([@tetienne] - [#44496]) ([somfy docs]) +- Support auto as Dyson fan on device state ([@GreenTentacle] - [#44472]) ([dyson docs]) +- Bump pywemo to 0.5.6 ([@mattbilodeau] - [#44440]) ([wemo docs]) +- Convert mpd component to use the async MPDClient ([@mweinelt] - [#44384]) ([mpd docs]) +- Handle missing Somfy devices during update ([@tetienne] - [#44425]) ([somfy docs]) +- Update README.rst to avoid redirects ([@hmmbob] - [#44519]) +- Upgrade huawei-lte-api to 1.4.17 ([@scop] - [#44499]) ([huawei_lte docs]) +- Add album art support in the mpd component ([@mweinelt] - [#44527]) ([mpd docs]) +- Add Olivia voice to Amazon Polly TTS ([@aque0us] - [#44513]) ([amazon_polly docs]) +- Fully remove Avri integration ([@timvancann] - [#44478]) (breaking-change) +- Add explicit support for Luxembourg Smarty meter in dsmr integration ([@RobBie1221] - [#43975]) ([dsmr docs]) +- Simplify nest event handling ([@allenporter] - [#44367]) ([nest docs]) +- Tado: add full list of devices ([@Noltari] - [#44475]) ([tado docs]) (breaking-change) +- Improve nest setup error handling ([@allenporter] - [#44385]) ([nest docs]) +- Tado: use proper variable name to avoid confusion ([@Noltari] - [#44571]) ([tado docs]) +- Soma cover battery level attribute ([@badguy99] - [#44459]) ([soma docs]) +- Turn on denonavr receiver when a source is changed ([@knyar] - [#44473]) ([denonavr docs]) +- Ensure consistent spelling of "ID" ([@spacegaier] - [#44585]) +- Reset hs color/color temperature when changing the other one (ZHA) ([@TheJulianJES] - [#44566]) ([zha docs]) +- Improve TDBU motion blinds control ([@starkillerOG] - [#44500]) ([motion_blinds docs]) +- Add support for Gree device light panels ([@cmroche] - [#42979]) ([gree docs]) (new-platform) +- Update pyotgw to 1.0b1 ([@mvn23] - [#43352]) ([opentherm_gw docs]) (breaking-change) +- Optimize api calls between envoy_reader and Home Assistant ([@gtdiehl] - [#42857]) ([enphase_envoy docs]) +- Bump version to fix returned data for old firmware ([@gtdiehl] - [#44600]) ([enphase_envoy docs]) +- Add Config Flow to bmw_connected_drive ([@rikroe] - [#39585]) ([bmw_connected_drive docs]) (breaking-change) +- Simplify motion blinds push callback ([@starkillerOG] - [#44579]) ([motion_blinds docs]) +- Fix typo in sensor names ([@tsvi] - [#44598]) ([jewish_calendar docs]) +- Move HomeKit autostart to advanced options flow ([@bdraco] - [#44599]) ([homekit docs]) +- Use entity service for motion blinds ([@starkillerOG] - [#44611]) ([motion_blinds docs]) +- Bump skybellpy to 0.6.3 ([@MisterWil] - [#44619]) ([skybell docs]) +- Add discovery to Motion Blinds ([@starkillerOG] - [#44615]) ([motion_blinds docs]) +- Updated frontend to 20201229.0 ([@bramkragten] - [#44632]) ([frontend docs]) +- Add OutdoorPlug to wemo ([@mattbilodeau] - [#44629]) ([wemo docs]) +- Support homekit discovery for roku ([@ctalkington] - [#44625]) ([roku docs]) +- Initial Verisure cleanups ([@frenck] - [#44639]) ([verisure docs]) +- Add debug logging for failed OAuth token refreshes to help users diagnose ([@allenporter] - [#44637]) +- Upgrade psutil to 5.8.0 ([@fabaff] - [#44640]) ([systemmonitor docs]) +- Publish timestamps in nest events ([@allenporter] - [#44641]) ([nest docs]) +- Fix shelly shutdown AttributeError ([@chemelli74] - [#44172]) ([shelly docs]) +- Upgrade youtube_dl to 2020.12.29 ([@fabaff] - [#44643]) ([media_extractor docs]) + +
+ +[#39585]: https://github.com/home-assistant/core/pull/39585 +[#40203]: https://github.com/home-assistant/core/pull/40203 +[#40418]: https://github.com/home-assistant/core/pull/40418 +[#40665]: https://github.com/home-assistant/core/pull/40665 +[#41489]: https://github.com/home-assistant/core/pull/41489 +[#41743]: https://github.com/home-assistant/core/pull/41743 +[#41990]: https://github.com/home-assistant/core/pull/41990 +[#42327]: https://github.com/home-assistant/core/pull/42327 +[#42753]: https://github.com/home-assistant/core/pull/42753 +[#42778]: https://github.com/home-assistant/core/pull/42778 +[#42817]: https://github.com/home-assistant/core/pull/42817 +[#42857]: https://github.com/home-assistant/core/pull/42857 +[#42979]: https://github.com/home-assistant/core/pull/42979 +[#43005]: https://github.com/home-assistant/core/pull/43005 +[#43132]: https://github.com/home-assistant/core/pull/43132 +[#43205]: https://github.com/home-assistant/core/pull/43205 +[#43280]: https://github.com/home-assistant/core/pull/43280 +[#43352]: https://github.com/home-assistant/core/pull/43352 +[#43355]: https://github.com/home-assistant/core/pull/43355 +[#43500]: https://github.com/home-assistant/core/pull/43500 +[#43599]: https://github.com/home-assistant/core/pull/43599 +[#43774]: https://github.com/home-assistant/core/pull/43774 +[#43797]: https://github.com/home-assistant/core/pull/43797 +[#43868]: https://github.com/home-assistant/core/pull/43868 +[#43870]: https://github.com/home-assistant/core/pull/43870 +[#43877]: https://github.com/home-assistant/core/pull/43877 +[#43883]: https://github.com/home-assistant/core/pull/43883 +[#43892]: https://github.com/home-assistant/core/pull/43892 +[#43895]: https://github.com/home-assistant/core/pull/43895 +[#43902]: https://github.com/home-assistant/core/pull/43902 +[#43910]: https://github.com/home-assistant/core/pull/43910 +[#43914]: https://github.com/home-assistant/core/pull/43914 +[#43917]: https://github.com/home-assistant/core/pull/43917 +[#43928]: https://github.com/home-assistant/core/pull/43928 +[#43932]: https://github.com/home-assistant/core/pull/43932 +[#43944]: https://github.com/home-assistant/core/pull/43944 +[#43947]: https://github.com/home-assistant/core/pull/43947 +[#43953]: https://github.com/home-assistant/core/pull/43953 +[#43959]: https://github.com/home-assistant/core/pull/43959 +[#43961]: https://github.com/home-assistant/core/pull/43961 +[#43968]: https://github.com/home-assistant/core/pull/43968 +[#43973]: https://github.com/home-assistant/core/pull/43973 +[#43975]: https://github.com/home-assistant/core/pull/43975 +[#43992]: https://github.com/home-assistant/core/pull/43992 +[#43996]: https://github.com/home-assistant/core/pull/43996 +[#44002]: https://github.com/home-assistant/core/pull/44002 +[#44004]: https://github.com/home-assistant/core/pull/44004 +[#44005]: https://github.com/home-assistant/core/pull/44005 +[#44007]: https://github.com/home-assistant/core/pull/44007 +[#44012]: https://github.com/home-assistant/core/pull/44012 +[#44021]: https://github.com/home-assistant/core/pull/44021 +[#44031]: https://github.com/home-assistant/core/pull/44031 +[#44050]: https://github.com/home-assistant/core/pull/44050 +[#44064]: https://github.com/home-assistant/core/pull/44064 +[#44085]: https://github.com/home-assistant/core/pull/44085 +[#44088]: https://github.com/home-assistant/core/pull/44088 +[#44089]: https://github.com/home-assistant/core/pull/44089 +[#44091]: https://github.com/home-assistant/core/pull/44091 +[#44092]: https://github.com/home-assistant/core/pull/44092 +[#44096]: https://github.com/home-assistant/core/pull/44096 +[#44110]: https://github.com/home-assistant/core/pull/44110 +[#44112]: https://github.com/home-assistant/core/pull/44112 +[#44113]: https://github.com/home-assistant/core/pull/44113 +[#44114]: https://github.com/home-assistant/core/pull/44114 +[#44136]: https://github.com/home-assistant/core/pull/44136 +[#44143]: https://github.com/home-assistant/core/pull/44143 +[#44144]: https://github.com/home-assistant/core/pull/44144 +[#44146]: https://github.com/home-assistant/core/pull/44146 +[#44147]: https://github.com/home-assistant/core/pull/44147 +[#44150]: https://github.com/home-assistant/core/pull/44150 +[#44152]: https://github.com/home-assistant/core/pull/44152 +[#44163]: https://github.com/home-assistant/core/pull/44163 +[#44164]: https://github.com/home-assistant/core/pull/44164 +[#44172]: https://github.com/home-assistant/core/pull/44172 +[#44181]: https://github.com/home-assistant/core/pull/44181 +[#44182]: https://github.com/home-assistant/core/pull/44182 +[#44184]: https://github.com/home-assistant/core/pull/44184 +[#44185]: https://github.com/home-assistant/core/pull/44185 +[#44188]: https://github.com/home-assistant/core/pull/44188 +[#44192]: https://github.com/home-assistant/core/pull/44192 +[#44196]: https://github.com/home-assistant/core/pull/44196 +[#44202]: https://github.com/home-assistant/core/pull/44202 +[#44215]: https://github.com/home-assistant/core/pull/44215 +[#44222]: https://github.com/home-assistant/core/pull/44222 +[#44225]: https://github.com/home-assistant/core/pull/44225 +[#44234]: https://github.com/home-assistant/core/pull/44234 +[#44236]: https://github.com/home-assistant/core/pull/44236 +[#44260]: https://github.com/home-assistant/core/pull/44260 +[#44268]: https://github.com/home-assistant/core/pull/44268 +[#44273]: https://github.com/home-assistant/core/pull/44273 +[#44277]: https://github.com/home-assistant/core/pull/44277 +[#44289]: https://github.com/home-assistant/core/pull/44289 +[#44291]: https://github.com/home-assistant/core/pull/44291 +[#44296]: https://github.com/home-assistant/core/pull/44296 +[#44298]: https://github.com/home-assistant/core/pull/44298 +[#44300]: https://github.com/home-assistant/core/pull/44300 +[#44304]: https://github.com/home-assistant/core/pull/44304 +[#44306]: https://github.com/home-assistant/core/pull/44306 +[#44307]: https://github.com/home-assistant/core/pull/44307 +[#44311]: https://github.com/home-assistant/core/pull/44311 +[#44312]: https://github.com/home-assistant/core/pull/44312 +[#44315]: https://github.com/home-assistant/core/pull/44315 +[#44316]: https://github.com/home-assistant/core/pull/44316 +[#44323]: https://github.com/home-assistant/core/pull/44323 +[#44327]: https://github.com/home-assistant/core/pull/44327 +[#44330]: https://github.com/home-assistant/core/pull/44330 +[#44343]: https://github.com/home-assistant/core/pull/44343 +[#44345]: https://github.com/home-assistant/core/pull/44345 +[#44346]: https://github.com/home-assistant/core/pull/44346 +[#44350]: https://github.com/home-assistant/core/pull/44350 +[#44352]: https://github.com/home-assistant/core/pull/44352 +[#44357]: https://github.com/home-assistant/core/pull/44357 +[#44361]: https://github.com/home-assistant/core/pull/44361 +[#44364]: https://github.com/home-assistant/core/pull/44364 +[#44366]: https://github.com/home-assistant/core/pull/44366 +[#44367]: https://github.com/home-assistant/core/pull/44367 +[#44368]: https://github.com/home-assistant/core/pull/44368 +[#44373]: https://github.com/home-assistant/core/pull/44373 +[#44375]: https://github.com/home-assistant/core/pull/44375 +[#44376]: https://github.com/home-assistant/core/pull/44376 +[#44384]: https://github.com/home-assistant/core/pull/44384 +[#44385]: https://github.com/home-assistant/core/pull/44385 +[#44389]: https://github.com/home-assistant/core/pull/44389 +[#44391]: https://github.com/home-assistant/core/pull/44391 +[#44392]: https://github.com/home-assistant/core/pull/44392 +[#44411]: https://github.com/home-assistant/core/pull/44411 +[#44413]: https://github.com/home-assistant/core/pull/44413 +[#44419]: https://github.com/home-assistant/core/pull/44419 +[#44420]: https://github.com/home-assistant/core/pull/44420 +[#44425]: https://github.com/home-assistant/core/pull/44425 +[#44430]: https://github.com/home-assistant/core/pull/44430 +[#44439]: https://github.com/home-assistant/core/pull/44439 +[#44440]: https://github.com/home-assistant/core/pull/44440 +[#44442]: https://github.com/home-assistant/core/pull/44442 +[#44443]: https://github.com/home-assistant/core/pull/44443 +[#44446]: https://github.com/home-assistant/core/pull/44446 +[#44459]: https://github.com/home-assistant/core/pull/44459 +[#44472]: https://github.com/home-assistant/core/pull/44472 +[#44473]: https://github.com/home-assistant/core/pull/44473 +[#44475]: https://github.com/home-assistant/core/pull/44475 +[#44478]: https://github.com/home-assistant/core/pull/44478 +[#44490]: https://github.com/home-assistant/core/pull/44490 +[#44496]: https://github.com/home-assistant/core/pull/44496 +[#44499]: https://github.com/home-assistant/core/pull/44499 +[#44500]: https://github.com/home-assistant/core/pull/44500 +[#44511]: https://github.com/home-assistant/core/pull/44511 +[#44513]: https://github.com/home-assistant/core/pull/44513 +[#44519]: https://github.com/home-assistant/core/pull/44519 +[#44527]: https://github.com/home-assistant/core/pull/44527 +[#44566]: https://github.com/home-assistant/core/pull/44566 +[#44571]: https://github.com/home-assistant/core/pull/44571 +[#44579]: https://github.com/home-assistant/core/pull/44579 +[#44585]: https://github.com/home-assistant/core/pull/44585 +[#44598]: https://github.com/home-assistant/core/pull/44598 +[#44599]: https://github.com/home-assistant/core/pull/44599 +[#44600]: https://github.com/home-assistant/core/pull/44600 +[#44611]: https://github.com/home-assistant/core/pull/44611 +[#44615]: https://github.com/home-assistant/core/pull/44615 +[#44619]: https://github.com/home-assistant/core/pull/44619 +[#44625]: https://github.com/home-assistant/core/pull/44625 +[#44629]: https://github.com/home-assistant/core/pull/44629 +[#44632]: https://github.com/home-assistant/core/pull/44632 +[#44637]: https://github.com/home-assistant/core/pull/44637 +[#44639]: https://github.com/home-assistant/core/pull/44639 +[#44640]: https://github.com/home-assistant/core/pull/44640 +[#44641]: https://github.com/home-assistant/core/pull/44641 +[#44643]: https://github.com/home-assistant/core/pull/44643 +[@Adminiuga]: https://github.com/Adminiuga +[@BKPepe]: https://github.com/BKPepe +[@CrashWorksLLC]: https://github.com/CrashWorksLLC +[@GreenTentacle]: https://github.com/GreenTentacle +[@JJdeVries]: https://github.com/JJdeVries +[@JeffLIrion]: https://github.com/JeffLIrion +[@Kane610]: https://github.com/Kane610 +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@MisterWil]: https://github.com/MisterWil +[@Noltari]: https://github.com/Noltari +[@PeteBa]: https://github.com/PeteBa +[@RobBie1221]: https://github.com/RobBie1221 +[@Santobert]: https://github.com/Santobert +[@SeraphimSerapis]: https://github.com/SeraphimSerapis +[@Shulyaka]: https://github.com/Shulyaka +[@Shutgun]: https://github.com/Shutgun +[@Sjack-Sch]: https://github.com/Sjack-Sch +[@SteveBrandt]: https://github.com/SteveBrandt +[@SukramJ]: https://github.com/SukramJ +[@TheJulianJES]: https://github.com/TheJulianJES +[@abmantis]: https://github.com/abmantis +[@alengwenus]: https://github.com/alengwenus +[@allenporter]: https://github.com/allenporter +[@amelchio]: https://github.com/amelchio +[@aque0us]: https://github.com/aque0us +[@awrede]: https://github.com/awrede +[@bachya]: https://github.com/bachya +[@badguy99]: https://github.com/badguy99 +[@balloob]: https://github.com/balloob +[@bazwilliams]: https://github.com/bazwilliams +[@bdraco]: https://github.com/bdraco +[@benleb]: https://github.com/benleb +[@bieniu]: https://github.com/bieniu +[@bramkragten]: https://github.com/bramkragten +[@brg468]: https://github.com/brg468 +[@chemelli74]: https://github.com/chemelli74 +[@chrisgramberg678]: https://github.com/chrisgramberg678 +[@cmroche]: https://github.com/cmroche +[@ctalkington]: https://github.com/ctalkington +[@dermotduffy]: https://github.com/dermotduffy +[@dgomes]: https://github.com/dgomes +[@dmulcahey]: https://github.com/dmulcahey +[@doug-hoffman]: https://github.com/doug-hoffman +[@elbueno222]: https://github.com/elbueno222 +[@elupus]: https://github.com/elupus +[@emlove]: https://github.com/emlove +[@emontnemery]: https://github.com/emontnemery +[@emufan]: https://github.com/emufan +[@erogleva]: https://github.com/erogleva +[@esev]: https://github.com/esev +[@eyager1]: https://github.com/eyager1 +[@fabaff]: https://github.com/fabaff +[@farmio]: https://github.com/farmio +[@fbradyirl]: https://github.com/fbradyirl +[@finity69x2]: https://github.com/finity69x2 +[@frenck]: https://github.com/frenck +[@geoffreylagaisse]: https://github.com/geoffreylagaisse +[@gtdiehl]: https://github.com/gtdiehl +[@guix77]: https://github.com/guix77 +[@hmmbob]: https://github.com/hmmbob +[@huonw]: https://github.com/huonw +[@k2v1n58]: https://github.com/k2v1n58 +[@knyar]: https://github.com/knyar +[@ktnrg45]: https://github.com/ktnrg45 +[@lufton]: https://github.com/lufton +[@lundberg]: https://github.com/lundberg +[@mattbilodeau]: https://github.com/mattbilodeau +[@mbo18]: https://github.com/mbo18 +[@mikeage]: https://github.com/mikeage +[@mvn23]: https://github.com/mvn23 +[@mweinelt]: https://github.com/mweinelt +[@nivnoach]: https://github.com/nivnoach +[@nwithan8]: https://github.com/nwithan8 +[@ofalvai]: https://github.com/ofalvai +[@oncleben31]: https://github.com/oncleben31 +[@peternijssen]: https://github.com/peternijssen +[@phibos]: https://github.com/phibos +[@postlund]: https://github.com/postlund +[@rikroe]: https://github.com/rikroe +[@scarface-4711]: https://github.com/scarface-4711 +[@scop]: https://github.com/scop +[@sermayoral]: https://github.com/sermayoral +[@spacegaier]: https://github.com/spacegaier +[@springstan]: https://github.com/springstan +[@starkillerOG]: https://github.com/starkillerOG +[@tetienne]: https://github.com/tetienne +[@thecode]: https://github.com/thecode +[@thevoltagesource]: https://github.com/thevoltagesource +[@timvancann]: https://github.com/timvancann +[@tofuSCHNITZEL]: https://github.com/tofuSCHNITZEL +[@tomaszpieczykolan]: https://github.com/tomaszpieczykolan +[@treylok]: https://github.com/treylok +[@tsvi]: https://github.com/tsvi +[@viiru-]: https://github.com/viiru- +[accuweather docs]: /integrations/accuweather/ +[acer_projector docs]: /integrations/acer_projector/ +[airly docs]: /integrations/airly/ +[amazon_polly docs]: /integrations/amazon_polly/ +[androidtv docs]: /integrations/androidtv/ +[apple_tv docs]: /integrations/apple_tv/ +[bme280 docs]: /integrations/bme280/ +[bmw_connected_drive docs]: /integrations/bmw_connected_drive/ +[camera docs]: /integrations/camera/ +[cast docs]: /integrations/cast/ +[cisco_mobility_express docs]: /integrations/cisco_mobility_express/ +[cloud docs]: /integrations/cloud/ +[daikin docs]: /integrations/daikin/ +[deconz docs]: /integrations/deconz/ +[demo docs]: /integrations/demo/ +[denonavr docs]: /integrations/denonavr/ +[devolo_home_control docs]: /integrations/devolo_home_control/ +[dsmr docs]: /integrations/dsmr/ +[dyson docs]: /integrations/dyson/ +[ecobee docs]: /integrations/ecobee/ +[enigma2 docs]: /integrations/enigma2/ +[enphase_envoy docs]: /integrations/enphase_envoy/ +[esphome docs]: /integrations/esphome/ +[filter docs]: /integrations/filter/ +[fritz docs]: /integrations/fritz/ +[fritzbox_callmonitor docs]: /integrations/fritzbox_callmonitor/ +[fritzbox_netmonitor docs]: /integrations/fritzbox_netmonitor/ +[frontend docs]: /integrations/frontend/ +[gios docs]: /integrations/gios/ +[glances docs]: /integrations/glances/ +[google_assistant docs]: /integrations/google_assistant/ +[google_cloud docs]: /integrations/google_cloud/ +[gree docs]: /integrations/gree/ +[home_connect docs]: /integrations/home_connect/ +[homeassistant docs]: /integrations/homeassistant/ +[homekit docs]: /integrations/homekit/ +[homekit_controller docs]: /integrations/homekit_controller/ +[homematicip_cloud docs]: /integrations/homematicip_cloud/ +[huawei_lte docs]: /integrations/huawei_lte/ +[hyperion docs]: /integrations/hyperion/ +[ifttt docs]: /integrations/ifttt/ +[ipp docs]: /integrations/ipp/ +[jewish_calendar docs]: /integrations/jewish_calendar/ +[kira docs]: /integrations/kira/ +[knx docs]: /integrations/knx/ +[lcn docs]: /integrations/lcn/ +[media_extractor docs]: /integrations/media_extractor/ +[media_player docs]: /integrations/media_player/ +[meteo_france docs]: /integrations/meteo_france/ +[moon docs]: /integrations/moon/ +[motion_blinds docs]: /integrations/motion_blinds/ +[mpd docs]: /integrations/mpd/ +[mqtt docs]: /integrations/mqtt/ +[neato docs]: /integrations/neato/ +[nest docs]: /integrations/nest/ +[nuki docs]: /integrations/nuki/ +[number docs]: /integrations/number/ +[nws docs]: /integrations/nws/ +[onewire docs]: /integrations/onewire/ +[openhome docs]: /integrations/openhome/ +[opensky docs]: /integrations/opensky/ +[opentherm_gw docs]: /integrations/opentherm_gw/ +[person docs]: /integrations/person/ +[philips_js docs]: /integrations/philips_js/ +[ping docs]: /integrations/ping/ +[ps4 docs]: /integrations/ps4/ +[pvoutput docs]: /integrations/pvoutput/ +[python_script docs]: /integrations/python_script/ +[rachio docs]: /integrations/rachio/ +[recollect_waste docs]: /integrations/recollect_waste/ +[recorder docs]: /integrations/recorder/ +[rest docs]: /integrations/rest/ +[roku docs]: /integrations/roku/ +[scrape docs]: /integrations/scrape/ +[serial docs]: /integrations/serial/ +[shelly docs]: /integrations/shelly/ +[simplisafe docs]: /integrations/simplisafe/ +[skybell docs]: /integrations/skybell/ +[soma docs]: /integrations/soma/ +[somfy docs]: /integrations/somfy/ +[spider docs]: /integrations/spider/ +[spotify docs]: /integrations/spotify/ +[sql docs]: /integrations/sql/ +[surepetcare docs]: /integrations/surepetcare/ +[systemmonitor docs]: /integrations/systemmonitor/ +[tado docs]: /integrations/tado/ +[tapsaff docs]: /integrations/tapsaff/ +[tasmota docs]: /integrations/tasmota/ +[telegram_bot docs]: /integrations/telegram_bot/ +[venstar docs]: /integrations/venstar/ +[verisure docs]: /integrations/verisure/ +[wemo docs]: /integrations/wemo/ +[workday docs]: /integrations/workday/ +[xiaomi_miio docs]: /integrations/xiaomi_miio/ +[zerproc docs]: /integrations/zerproc/ +[zha docs]: /integrations/zha/ diff --git a/source/images/blog/2021-01/social.png b/source/images/blog/2021-01/social.png new file mode 100644 index 0000000000000000000000000000000000000000..a31d790833597046a1c1399fe843312aee78c285 GIT binary patch literal 82223 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%0AZBC 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 literal 0 HcmV?d00001 From a1daef811eaf071f3b7ca1b32cea3e61efc4a6da Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 6 Jan 2021 15:56:18 +0100 Subject: [PATCH 2/4] Update release notes for 2021.1.0 --- .../_posts/2021-01-06-release-20211.markdown | 243 +++++++++++++----- 1 file changed, 182 insertions(+), 61 deletions(-) diff --git a/source/_posts/2021-01-06-release-20211.markdown b/source/_posts/2021-01-06-release-20211.markdown index e20537d0b8c..8fa7f3f3dcf 100644 --- a/source/_posts/2021-01-06-release-20211.markdown +++ b/source/_posts/2021-01-06-release-20211.markdown @@ -1,8 +1,8 @@ --- layout: post -title: "2021.1: Beta release notes" -description: "Beta release notes!" -date: 2020-12-30 00:00:00 +title: "2021.1: Happy New Year!" +description: "Kicking off 2021 slowly, with a nice and light release containing mainly fixes and tweaks." +date: 2021-01-06 00:00:00 date_formatted: "January 6, 2021" author: Franck Nijhof author_twitter: frenck @@ -13,29 +13,35 @@ og_image: /images/blog/2021-01/social.png -These are the beta release notes for Home Assistant Core 2021.1 (and is thus a -work in progress). +We said goodbye to 2020, which was a weird and wild year. 2020 will be +remembered because of the awful pandemic, that hopefully will get under control +in 2021. -If you encounter any issues with the beta release, please report them on GitHub: +We wish you, your family, friends and everyone around you, safety, health, +happiness and countless blessings for 2021! -- Issues with integrations, automations and such (Core related):
- -- Issues with the frontend/Lovelace:
- -- Issues with the Supervisor:
- -- Issues with the documentation:
- +Happy New Year! -Please be sure to include the beta version you are running in the issue -description (not title), so we can classify your issue correctly. +Kicking off the year with Home Assistant Core 2021.1! -Issues introduced in the beta are processed with priority. +Now don't get too excited. The 2020.12 release was jam-packed, and most of us +enjoyed the holidays with our loved ones. Furthermore, we didn't have a full +release cycle, this one was shorter than usual. This is due to the delaying of +the previous release cycle (for the conference) and the introduction of the new +release cycle (monthly now). -## Table of contents +As a result of that, this release starts 2021 slowly, with a light release. +No big new features, no new integrations. Just fixes, tweaking and tuning. -- [Table of contents](#table-of-contents) -- [Lorem ipsum](#lorem-ipsum) +Besides, I'm curious, what is your smart home new years resolution? +Let me know in the comments! + +Enjoy the release! + +../Frenck + +- [In memoriam of villhellm](#in-memoriam-of-villhellm) +- [Home Assistant Conference Videos](#home-assistant-conference-videos) - [Other noteworthy changes](#other-noteworthy-changes) - [New Integrations](#new-integrations) - [New Platforms](#new-platforms) @@ -45,53 +51,84 @@ Issues introduced in the beta are processed with priority. - [Farewell to the following](#farewell-to-the-following) - [All changes](#all-changes) -## Lorem ipsum +## In memoriam of villhellm -Lorem ipsum +It is with sadness that we announce that one of the Jedis in our Discord Server, +[@villhellm](https://www.github.com/villhellm) (William), who had been actively +involved with the Home Assistant community for a number of years, had passed +away right before Christmas of 2020 at the age of 27. - +He had been an active member in forums, and other discord servers related to +Home Automation (Dr. Zzs, DigiblurDIY, and many more.) + +We want to take a moment to recognize his efforts and the support he had +provided to the HA community, and may he rest in peace. + +Some of his friends have set up a [GoFundMe](https://gofund.me/f14a5a4a) account +to help his surviving wife and family members. We now have an opportunity to +help his family get through these difficult times. + +We thank you for your support! + +## Home Assistant Conference Videos + +A couple of weeks ago, the Home Assistant Conference of 2020 took place. We had +quite a few messages and requests for making all talks held at the conference +available for viewing. + +We have started the process of making those available on our +[YouTube Channel][channel]. So, if you haven't done ot already, go to our +channel and subscribe and you'll be notified when we make another talk +available. + +All videos of the conference will be added to the +[Home Assistant Conference 2020 playlist][playlist] on YouTube as well. + +[channel]: https://www.youtube.com/channel/UCbX3YkedQunLt7EQAdVxh7w +[playlist]: https://www.youtube.com/playlist?list=PLKsVm4cWHDQDGRXnybFUOLlcDWPsroGGB ## Other noteworthy changes - +This release has no big new features, but we do have quite a bit of tweaks +that are definitely noteworthy to mention. -From Core: - -- Add HmIP-HDM1 and HmIPW-DRD3 to Homematic IP Cloud ([@SukramJ] - [#43132]) ([homematicip_cloud docs]) -- Refactor LCN integration ([@alengwenus] - [#40665]) ([lcn docs]) -- Add ZHA Coordinator to LightLink cluster groups ([@Adminiuga] - [#43959]) ([zha docs]) -- Add target temperature range to homekit_controller ([@thevoltagesource] - [#42817]) ([homekit_controller docs]) -- Add UV unit to meteo_france UV sensor ([@mbo18] - [#43992]) ([meteo_france docs]) (breaking-change) -- Add discovery for MQTT device tracker ([@PeteBa] - [#42327]) ([mqtt docs]) -- Add pause and resume services to Rachio ([@brg468] - [#43944]) ([rachio docs]) -- Expose spider device information ([@peternijssen] - [#44085]) ([spider docs]) -- Add code_arm_required to IFTTT alarm ([@k2v1n58] - [#43928]) ([ifttt docs]) -- Support MSSQL in SQL Sensor ([@dgomes] - [#42778]) ([sql docs]) -- Add zha AnalogOutput cluster support ([@Shulyaka] - [#44092]) ([zha docs]) -- Add OAuth to Neato ([@Santobert] - [#44031]) ([neato docs]) (breaking-change) -- Add new sensors to meteo_france ([@mbo18] - [#44150]) ([meteo_france docs]) -- Temperatures, fan and battery in Glances sensors ([@guix77] - [#43500]) ([glances docs]) (breaking-change) -- Add send animation service to telegram ([@tofuSCHNITZEL] - [#41489]) ([telegram_bot docs]) -- Add extended device info and some attributes to Apple TV ([@postlund] - [#44277]) ([apple_tv docs]) ([media_player docs]) -- Publish timestamps in nest events ([@allenporter] - [#44641]) ([nest docs]) -- Add Wind to Accuweather sensors ([@abmantis] - [#44364]) ([accuweather docs]) -- Add options flow for Recollect Waste ([@bachya] - [#44234]) ([recollect_waste docs]) -- Home connect functional and ambient light added ([@Sjack-Sch] - [#44091]) ([home_connect docs]) (new-platform) -- Add xiamoi_miio the water_box / mop status ([@JJdeVries] - [#43355]) ([xiaomi_miio docs]) -- Support area on entities for google assistant ([@elupus] - [#44300]) ([google_assistant docs]) -- Add Olivia voice to Amazon Polly TTS ([@aque0us] - [#44513]) ([amazon_polly docs]) -- Add google cloud tts SSML + fix ([@lufton] - [#40203]) ([google_cloud docs]) -- Add album art support in the mpd component ([@mweinelt] - [#44527]) ([mpd docs]) -- Add OutdoorPlug to wemo ([@mattbilodeau] - [#44629]) ([wemo docs]) - -From frontend: - -- Mark entity ID as optional for button card (#7967) [@spacegaier] -- Do not render "No Area" in device table to reduce clutter (#7986) [@spacegaier] +- [@spacegaier] removed the "No Area" from the device tables, reducing the + clutter in those lists. +- Since 2020.12, entities can be assigned to areas. Thanks to [@elupus], these + area's are now sent to [Google Assistant][google_assistant docs] as room + hints. +- [Rachio][rachio docs] now has pause and resume services, thanks to [@brg468]. +- A bunch of new sensors are added to [Météo-France][meteo_france docs]. + Additional weather conditions, UV, and wind gust, done by [@mbo18]! +- [@alengwenus] has been refactoring the [LCN][lcn docs] integration. While + it does not bring new things to the surface, it does improve in quality and + prepares for future improvements. Keep up the good work! +- [Homeatic IP Cloud][homematicip_cloud docs] now supports HmIP-HDM1 and + HmIPW-DRD3, thanks to contributions by [@SukramJ]. +- [Accuweather][accuweather docs] now has Wind information, thanks [@abmantis]! +- [ReCollect Waste][recollect_waste docs] now has integration options, + starting by giving the option to display pickup types by their human-friendly + names. Thanks, [@bachya]! +- [@postlund] rewrote the [Apple TV][apple_tv docs] integration for 2020.12, + but he is not stopping! Besides some fixed, he extended the device information + and added some attributes. +- The [SQL Sensor][sql docs] now supports MSSQL, thanks to [@dgomes]! +- Support for climate devices with a temperature range, has been added to the + [HomeKit controller][homekit_controller docs] integration. + Thanks, [@thevoltagesource]! +- The [MQTT] integration discovery feature, now has support for device trackers, + which has been added by [@PeteBa]. +- Sending animations using the [Telegram Bot][telegram_bot docs] is now + possible with the new animation service added by [@tofuSCHNITZEL]. +- If you have a Xiaomi Miio vacuum cleaner with a mop function, this release + added status for the water box and the mop itself. Thanks, [@JJdeVries]! +- [WeMo][wemo docs] now supports the outdoor plug, thanks [@mattbilodeau]! +- The [Music Player Daemon][mpd docs] integration now shows album art in the + media player. Looks good [@mweinelt]! +- [Amazon Polly][amazon_polly docs] has a new voice: Olivia. A female, + Australian and neural voice. Thanks [@aque0us]! +- [Google Cloud TTS][google_cloud docs] now has support for SSML + (Speech Synthesis Markup Language). Thanks, [@lufton]! ## New Integrations @@ -434,10 +471,44 @@ Avri has changed their API and it seems not possible to use the new one. - Publish timestamps in nest events ([@allenporter] - [#44641]) ([nest docs]) - Fix shelly shutdown AttributeError ([@chemelli74] - [#44172]) ([shelly docs]) - Upgrade youtube_dl to 2020.12.29 ([@fabaff] - [#44643]) ([media_extractor docs]) +- Update py-august to 0.25.2 to fix august token refreshes ([@bdraco] - [#40109]) ([august docs]) (beta fix) +- Suppress vizio logging API call failures to prevent no-op logs ([@raman325] - [#44388]) ([vizio docs]) (beta fix) +- Add motion binary sensor ([@bieniu] - [#44445]) ([shelly docs]) (beta fix) (new-integration) +- Correct Dyson climate fan auto mode ([@Sian-Lee-SA] - [#44569]) ([dyson docs]) (beta fix) +- Upgrade canary integration to use py-canary 0.5.1 ([@markallanson] - [#44645]) ([canary docs]) (beta fix) +- Bump ZHA quirks version to 0.0.50 ([@dmulcahey] - [#44650]) ([zha docs]) (beta fix) +- Bump zm-py version to 0.5.2 ([@dlintott] - [#44658]) ([zoneminder docs]) (beta fix) +- always sync unit_of_measurement ([@dgomes] - [#44670]) ([utility_meter docs]) (beta fix) +- Catch Shelly zeroconf types with uppercase too ([@balloob] - [#44672]) ([shelly docs]) (beta fix) +- Fix legacy nest api binary_sensor initialization ([@allenporter] - [#44674]) ([nest docs]) (beta fix) +- Zeroconf lowercase ([@balloob] - [#44675]) ([brother docs]) ([zeroconf docs]) (beta fix) +- Bump up ZHA dependencies ([@Adminiuga] - [#44680]) ([zha docs]) (beta fix) +- Fix broken test test_auto_purge in recorder ([@allenporter] - [#44687]) ([recorder docs]) (beta fix) +- Fix script wait templates with now/utcnow ([@bdraco] - [#44717]) (beta fix) +- Fix rest notify GET without params configured ([@bdraco] - [#44723]) ([rest docs]) (beta fix) +- Fix templates for rest notify ([@bdraco] - [#44724]) ([rest docs]) (beta fix) +- Bump H11 library to support non RFC line endings ([@Kane610] - [#44735]) (beta fix) +- Guard unbound var for DSMR ([@balloob] - [#44673]) ([dsmr docs]) (beta fix) +- Change rest sensors update interval for Shelly Motion ([@bieniu] - [#44692]) ([shelly docs]) (beta fix) +- Add index to old_state_id column for postgres and older databases ([@bdraco] - [#44757]) ([recorder docs]) (beta fix) +- Update docker base image 2021.01.0 ([@pvizeli] - [#44761]) (beta fix) +- Fix bug with blink auth flow ([@bmatcuk] - [#44769]) ([blink docs]) (beta fix) +- Fix knx.send service not accepting floats ([@farmio] - [#44802]) ([knx docs]) (beta fix) +- Fix zeroconf outgoing dns compression corruption for large packets ([@bdraco] - [#44828]) ([zeroconf docs]) (beta fix) +- Implement color mode for ZHA light polling ([@TheJulianJES] - [#44829]) ([zha docs]) (beta fix) +- Bump pypck to 0.7.8 ([@alengwenus] - [#44834]) ([lcn docs]) (beta fix) +- Make Alexa custom ID unique ([@balloob] - [#44839]) ([alexa docs]) ([cloud docs]) (beta fix) +- Bump openwebifpy version: 3.1.6 → 3.2.7 ([@fbradyirl] - [#44847]) ([enigma2 docs]) (beta fix) +- Fix Canary doing I/O in event loop ([@frenck] - [#44854]) ([canary docs]) (beta fix) +- Update frontend to 20201229.1 ([@bramkragten] - [#44861]) ([frontend docs]) (beta fix) +- Bump pytradfri to 7.0.6 ([@MartinHjelmare] - [#44661]) ([tradfri docs]) (beta fix) +- Fix Plex media summary attribute ([@jjlawren] - [#44863]) ([plex docs]) (beta fix) +- Bump python-ecobee-api to 0.2.8 ([@treylok] - [#44866]) ([ecobee docs]) (beta fix) [#39585]: https://github.com/home-assistant/core/pull/39585 +[#40109]: https://github.com/home-assistant/core/pull/40109 [#40203]: https://github.com/home-assistant/core/pull/40203 [#40418]: https://github.com/home-assistant/core/pull/40418 [#40665]: https://github.com/home-assistant/core/pull/40665 @@ -559,6 +630,7 @@ Avri has changed their API and it seems not possible to use the new one. [#44376]: https://github.com/home-assistant/core/pull/44376 [#44384]: https://github.com/home-assistant/core/pull/44384 [#44385]: https://github.com/home-assistant/core/pull/44385 +[#44388]: https://github.com/home-assistant/core/pull/44388 [#44389]: https://github.com/home-assistant/core/pull/44389 [#44391]: https://github.com/home-assistant/core/pull/44391 [#44392]: https://github.com/home-assistant/core/pull/44392 @@ -572,6 +644,7 @@ Avri has changed their API and it seems not possible to use the new one. [#44440]: https://github.com/home-assistant/core/pull/44440 [#44442]: https://github.com/home-assistant/core/pull/44442 [#44443]: https://github.com/home-assistant/core/pull/44443 +[#44445]: https://github.com/home-assistant/core/pull/44445 [#44446]: https://github.com/home-assistant/core/pull/44446 [#44459]: https://github.com/home-assistant/core/pull/44459 [#44472]: https://github.com/home-assistant/core/pull/44472 @@ -587,6 +660,7 @@ Avri has changed their API and it seems not possible to use the new one. [#44519]: https://github.com/home-assistant/core/pull/44519 [#44527]: https://github.com/home-assistant/core/pull/44527 [#44566]: https://github.com/home-assistant/core/pull/44566 +[#44569]: https://github.com/home-assistant/core/pull/44569 [#44571]: https://github.com/home-assistant/core/pull/44571 [#44579]: https://github.com/home-assistant/core/pull/44579 [#44585]: https://github.com/home-assistant/core/pull/44585 @@ -604,6 +678,35 @@ Avri has changed their API and it seems not possible to use the new one. [#44640]: https://github.com/home-assistant/core/pull/44640 [#44641]: https://github.com/home-assistant/core/pull/44641 [#44643]: https://github.com/home-assistant/core/pull/44643 +[#44645]: https://github.com/home-assistant/core/pull/44645 +[#44650]: https://github.com/home-assistant/core/pull/44650 +[#44658]: https://github.com/home-assistant/core/pull/44658 +[#44661]: https://github.com/home-assistant/core/pull/44661 +[#44670]: https://github.com/home-assistant/core/pull/44670 +[#44672]: https://github.com/home-assistant/core/pull/44672 +[#44673]: https://github.com/home-assistant/core/pull/44673 +[#44674]: https://github.com/home-assistant/core/pull/44674 +[#44675]: https://github.com/home-assistant/core/pull/44675 +[#44680]: https://github.com/home-assistant/core/pull/44680 +[#44687]: https://github.com/home-assistant/core/pull/44687 +[#44692]: https://github.com/home-assistant/core/pull/44692 +[#44717]: https://github.com/home-assistant/core/pull/44717 +[#44723]: https://github.com/home-assistant/core/pull/44723 +[#44724]: https://github.com/home-assistant/core/pull/44724 +[#44735]: https://github.com/home-assistant/core/pull/44735 +[#44757]: https://github.com/home-assistant/core/pull/44757 +[#44761]: https://github.com/home-assistant/core/pull/44761 +[#44769]: https://github.com/home-assistant/core/pull/44769 +[#44802]: https://github.com/home-assistant/core/pull/44802 +[#44828]: https://github.com/home-assistant/core/pull/44828 +[#44829]: https://github.com/home-assistant/core/pull/44829 +[#44834]: https://github.com/home-assistant/core/pull/44834 +[#44839]: https://github.com/home-assistant/core/pull/44839 +[#44847]: https://github.com/home-assistant/core/pull/44847 +[#44854]: https://github.com/home-assistant/core/pull/44854 +[#44861]: https://github.com/home-assistant/core/pull/44861 +[#44863]: https://github.com/home-assistant/core/pull/44863 +[#44866]: https://github.com/home-assistant/core/pull/44866 [@Adminiuga]: https://github.com/Adminiuga [@BKPepe]: https://github.com/BKPepe [@CrashWorksLLC]: https://github.com/CrashWorksLLC @@ -620,6 +723,7 @@ Avri has changed their API and it seems not possible to use the new one. [@SeraphimSerapis]: https://github.com/SeraphimSerapis [@Shulyaka]: https://github.com/Shulyaka [@Shutgun]: https://github.com/Shutgun +[@Sian-Lee-SA]: https://github.com/Sian-Lee-SA [@Sjack-Sch]: https://github.com/Sjack-Sch [@SteveBrandt]: https://github.com/SteveBrandt [@SukramJ]: https://github.com/SukramJ @@ -637,6 +741,7 @@ Avri has changed their API and it seems not possible to use the new one. [@bdraco]: https://github.com/bdraco [@benleb]: https://github.com/benleb [@bieniu]: https://github.com/bieniu +[@bmatcuk]: https://github.com/bmatcuk [@bramkragten]: https://github.com/bramkragten [@brg468]: https://github.com/brg468 [@chemelli74]: https://github.com/chemelli74 @@ -645,6 +750,7 @@ Avri has changed their API and it seems not possible to use the new one. [@ctalkington]: https://github.com/ctalkington [@dermotduffy]: https://github.com/dermotduffy [@dgomes]: https://github.com/dgomes +[@dlintott]: https://github.com/dlintott [@dmulcahey]: https://github.com/dmulcahey [@doug-hoffman]: https://github.com/doug-hoffman [@elbueno222]: https://github.com/elbueno222 @@ -665,11 +771,13 @@ Avri has changed their API and it seems not possible to use the new one. [@guix77]: https://github.com/guix77 [@hmmbob]: https://github.com/hmmbob [@huonw]: https://github.com/huonw +[@jjlawren]: https://github.com/jjlawren [@k2v1n58]: https://github.com/k2v1n58 [@knyar]: https://github.com/knyar [@ktnrg45]: https://github.com/ktnrg45 [@lufton]: https://github.com/lufton [@lundberg]: https://github.com/lundberg +[@markallanson]: https://github.com/markallanson [@mattbilodeau]: https://github.com/mattbilodeau [@mbo18]: https://github.com/mbo18 [@mikeage]: https://github.com/mikeage @@ -682,6 +790,8 @@ Avri has changed their API and it seems not possible to use the new one. [@peternijssen]: https://github.com/peternijssen [@phibos]: https://github.com/phibos [@postlund]: https://github.com/postlund +[@pvizeli]: https://github.com/pvizeli +[@raman325]: https://github.com/raman325 [@rikroe]: https://github.com/rikroe [@scarface-4711]: https://github.com/scarface-4711 [@scop]: https://github.com/scop @@ -701,12 +811,17 @@ Avri has changed their API and it seems not possible to use the new one. [accuweather docs]: /integrations/accuweather/ [acer_projector docs]: /integrations/acer_projector/ [airly docs]: /integrations/airly/ +[alexa docs]: /integrations/alexa/ [amazon_polly docs]: /integrations/amazon_polly/ [androidtv docs]: /integrations/androidtv/ [apple_tv docs]: /integrations/apple_tv/ +[august docs]: /integrations/august/ +[blink docs]: /integrations/blink/ [bme280 docs]: /integrations/bme280/ [bmw_connected_drive docs]: /integrations/bmw_connected_drive/ +[brother docs]: /integrations/brother/ [camera docs]: /integrations/camera/ +[canary docs]: /integrations/canary/ [cast docs]: /integrations/cast/ [cisco_mobility_express docs]: /integrations/cisco_mobility_express/ [cloud docs]: /integrations/cloud/ @@ -763,6 +878,7 @@ Avri has changed their API and it seems not possible to use the new one. [person docs]: /integrations/person/ [philips_js docs]: /integrations/philips_js/ [ping docs]: /integrations/ping/ +[plex docs]: /integrations/plex/ [ps4 docs]: /integrations/ps4/ [pvoutput docs]: /integrations/pvoutput/ [python_script docs]: /integrations/python_script/ @@ -787,10 +903,15 @@ Avri has changed their API and it seems not possible to use the new one. [tapsaff docs]: /integrations/tapsaff/ [tasmota docs]: /integrations/tasmota/ [telegram_bot docs]: /integrations/telegram_bot/ +[tradfri docs]: /integrations/tradfri/ +[utility_meter docs]: /integrations/utility_meter/ [venstar docs]: /integrations/venstar/ [verisure docs]: /integrations/verisure/ +[vizio docs]: /integrations/vizio/ [wemo docs]: /integrations/wemo/ [workday docs]: /integrations/workday/ [xiaomi_miio docs]: /integrations/xiaomi_miio/ +[zeroconf docs]: /integrations/zeroconf/ [zerproc docs]: /integrations/zerproc/ [zha docs]: /integrations/zha/ +[zoneminder docs]: /integrations/zoneminder/ From 4cf0da2c34a949847ea31a8d212a88b25e5926d8 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 6 Jan 2021 15:58:39 +0100 Subject: [PATCH 3/4] Sync codebase with docs for 2021.1 --- CODEOWNERS | 19 +++++++++++++++++-- source/_integrations/apple_tv.markdown | 3 +++ source/_integrations/aurora.markdown | 3 +++ source/_integrations/dyson.markdown | 2 -- source/_integrations/edl21.markdown | 2 +- source/_integrations/enphase_envoy.markdown | 2 ++ source/_integrations/gree.markdown | 2 +- source/_integrations/hyperion.markdown | 2 ++ source/_integrations/neato.markdown | 1 - source/_integrations/number.markdown | 5 ++++- source/_integrations/openhome.markdown | 2 ++ source/_integrations/opentherm_gw.markdown | 1 - source/_integrations/plugwise.markdown | 1 + source/_integrations/qbittorrent.markdown | 2 ++ source/_integrations/recollect_waste.markdown | 3 +++ source/_integrations/slack.markdown | 2 ++ source/_integrations/srp_energy.markdown | 7 +++++-- source/_integrations/system_log.markdown | 2 +- source/_integrations/tapsaff.markdown | 2 ++ source/_integrations/tasmota.markdown | 2 +- source/_integrations/twinkly.markdown | 3 ++- source/_integrations/verisure.markdown | 2 ++ source/_integrations/zerproc.markdown | 1 - 23 files changed, 56 insertions(+), 15 deletions(-) diff --git a/CODEOWNERS b/CODEOWNERS index f50ff7828fa..6ff2eb9edcc 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -27,6 +27,7 @@ source/_integrations/amcrest.markdown @pnbruckner source/_integrations/androidtv.markdown @JeffLIrion source/_integrations/apache_kafka.markdown @bachya source/_integrations/api.markdown @home-assistant/core +source/_integrations/apple_tv.markdown @postlund source/_integrations/apprise.markdown @caronc source/_integrations/aprs.markdown @PhilRW source/_integrations/arcam_fmj.markdown @elupus @@ -38,6 +39,7 @@ source/_integrations/atag.markdown @MatsNL source/_integrations/aten_pe.markdown @mtdcr source/_integrations/atome.markdown @baqs source/_integrations/august.markdown @bdraco +source/_integrations/aurora.markdown @djtimca source/_integrations/aurora_abb_powerone.markdown @davet2001 source/_integrations/auth.markdown @home-assistant/core source/_integrations/automation.markdown @home-assistant/core @@ -53,6 +55,7 @@ source/_integrations/bitcoin.markdown @fabaff source/_integrations/bizkaibus.markdown @UgaitzEtxebarria source/_integrations/blebox.markdown @gadgetmobile source/_integrations/blink.markdown @fronzbot +source/_integrations/blueprint.markdown @home-assistant/core source/_integrations/bmp280.markdown @belidzs source/_integrations/bmw_connected_drive.markdown @gerard33 @rikroe source/_integrations/bond.markdown @prystupa @@ -104,7 +107,6 @@ source/_integrations/dunehd.markdown @bieniu source/_integrations/dwd_weather_warnings.markdown @runningman84 @stephan192 @Hummel95 source/_integrations/dweet.markdown @fabaff source/_integrations/dynalite.markdown @ziv1234 -source/_integrations/dyson.markdown @etheralm source/_integrations/ecobee.markdown @marthoc source/_integrations/ecovacs.markdown @OverloadUT source/_integrations/edl21.markdown @mtdcr @@ -118,6 +120,7 @@ source/_integrations/emoncms.markdown @borpin source/_integrations/emulated_kasa.markdown @kbickar source/_integrations/enigma2.markdown @fbradyirl source/_integrations/enocean.markdown @bdurrer +source/_integrations/enphase_envoy.markdown @gtdiehl source/_integrations/entur_public_transport.markdown @hfurubotten source/_integrations/environment_canada.markdown @michaeldavie source/_integrations/ephember.markdown @ttroy50 @@ -131,6 +134,7 @@ source/_integrations/ezviz.markdown @baqs source/_integrations/fastdotcom.markdown @rohankapoorcom source/_integrations/file.markdown @fabaff source/_integrations/filter.markdown @dgomes +source/_integrations/fireservicerota.markdown @cyberjunky source/_integrations/firmata.markdown @DaAwesomeP source/_integrations/fixer.markdown @fabaff source/_integrations/flick_electric.markdown @ZephireNZ @@ -223,6 +227,7 @@ source/_integrations/keyboard_remote.markdown @bendavid source/_integrations/knx.markdown @Julius2342 @farmio @marvin-w source/_integrations/kodi.markdown @OnFreund @cgtobi source/_integrations/konnected.markdown @heythisisnate @kit-klein +source/_integrations/kulersky.markdown @emlove source/_integrations/lametric.markdown @robbiet480 source/_integrations/launch_library.markdown @ludeeus source/_integrations/lcn.markdown @alengwenus @@ -258,6 +263,7 @@ source/_integrations/mobile_app.markdown @robbiet480 source/_integrations/modbus.markdown @adamchengtkc @janiversen @vzahradnik source/_integrations/monoprice.markdown @etsinko @OnFreund source/_integrations/moon.markdown @fabaff +source/_integrations/motion_blinds.markdown @starkillerOG source/_integrations/mpd.markdown @fabaff source/_integrations/mqtt.markdown @home-assistant/core @emontnemery source/_integrations/msteams.markdown @peroyvind @@ -288,6 +294,7 @@ source/_integrations/nsw_rural_fire_service_feed.markdown @exxamalte source/_integrations/nuheat.markdown @bdraco source/_integrations/nuki.markdown @pschmitt @pvizeli source/_integrations/numato.markdown @clssn +source/_integrations/number.markdown @home-assistant/core @Shulyaka source/_integrations/nut.markdown @bdraco source/_integrations/nws.markdown @MatthewFlamm source/_integrations/nzbget.markdown @chriscla @@ -300,6 +307,7 @@ source/_integrations/onewire.markdown @garbled1 @epenet source/_integrations/onvif.markdown @hunterjm source/_integrations/openerz.markdown @misialq source/_integrations/opengarage.markdown @danielhiversen +source/_integrations/openhome.markdown @bazwilliams source/_integrations/opentherm_gw.markdown @mvn23 source/_integrations/openuv.markdown @bachya source/_integrations/openweathermap.markdown @fabaff @freekode @nzapponi @@ -318,7 +326,7 @@ source/_integrations/pi_hole.markdown @fabaff @johnluetke @shenxn source/_integrations/pilight.markdown @trekky12 source/_integrations/plaato.markdown @JohNan source/_integrations/plex.markdown @jjlawren -source/_integrations/plugwise.markdown @CoMPaTech @bouwew +source/_integrations/plugwise.markdown @CoMPaTech @bouwew @brefra source/_integrations/plum_lightpad.markdown @ColinHarrington @prystupa source/_integrations/point.markdown @fredrike source/_integrations/poolsense.markdown @haemishkyd @@ -332,6 +340,7 @@ source/_integrations/ptvsd.markdown @swamp-ig source/_integrations/push.markdown @dgomes source/_integrations/pvoutput.markdown @fabaff source/_integrations/pvpc_hourly_pricing.markdown @azogue +source/_integrations/qbittorrent.markdown @geoffreylagaisse source/_integrations/qld_bushfire.markdown @exxamalte source/_integrations/qnap.markdown @colinodell source/_integrations/quantum_gateway.markdown @cisasteelersfan @@ -343,6 +352,7 @@ source/_integrations/raincloud.markdown @vanstinator source/_integrations/rainforest_eagle.markdown @gtdiehl @jcalbert source/_integrations/rainmachine.markdown @bachya source/_integrations/random.markdown @fabaff +source/_integrations/recollect_waste.markdown @bachya source/_integrations/rejseplanen.markdown @DarkFox source/_integrations/repetier.markdown @MTrab source/_integrations/rfxtrx.markdown @danielhiversen @elupus @RobBie1221 @@ -380,6 +390,7 @@ source/_integrations/simplisafe.markdown @bachya source/_integrations/sinch.markdown @bendikrb source/_integrations/sisyphus.markdown @jkeljo source/_integrations/sky_hub.markdown @rogerselwyn +source/_integrations/slack.markdown @bachya source/_integrations/slide.markdown @ualex73 source/_integrations/sma.markdown @kellerza source/_integrations/smappee.markdown @bsmappee @@ -404,6 +415,7 @@ source/_integrations/splunk.markdown @Bre77 source/_integrations/spotify.markdown @frenck source/_integrations/sql.markdown @dgomes source/_integrations/squeezebox.markdown @rajlaud +source/_integrations/srp_energy.markdown @briglx source/_integrations/starline.markdown @anonym-tsk source/_integrations/statistics.markdown @fabaff source/_integrations/stiebel_eltron.markdown @fucm @@ -427,6 +439,7 @@ source/_integrations/tado.markdown @michaelarnauts @bdraco source/_integrations/tag.markdown @balloob @dmulcahey source/_integrations/tahoma.markdown @philklei source/_integrations/tankerkoenig.markdown @guillempages +source/_integrations/tapsaff.markdown @bazwilliams source/_integrations/tasmota.markdown @emontnemery source/_integrations/tautulli.markdown @ludeeus source/_integrations/tellduslive.markdown @fredrike @@ -451,6 +464,7 @@ source/_integrations/transmission.markdown @engrbm87 @JPHutchins source/_integrations/tts.markdown @pvizeli source/_integrations/tuya.markdown @ollo69 source/_integrations/twentemilieu.markdown @frenck +source/_integrations/twinkly.markdown @dr1rrb source/_integrations/unifi.markdown @Kane610 source/_integrations/unifiled.markdown @florisvdk source/_integrations/upb.markdown @gwww @@ -464,6 +478,7 @@ source/_integrations/utility_meter.markdown @dgomes source/_integrations/velbus.markdown @Cereal2nd @brefra source/_integrations/velux.markdown @Julius2342 source/_integrations/vera.markdown @vangorra +source/_integrations/verisure.markdown @frenck source/_integrations/versasense.markdown @flamm3blemuff1n source/_integrations/version.markdown @fabaff @ludeeus source/_integrations/vesync.markdown @markperdue @webdjoe @thegardenmonkey diff --git a/source/_integrations/apple_tv.markdown b/source/_integrations/apple_tv.markdown index 661ca6e9d92..28986a843f2 100644 --- a/source/_integrations/apple_tv.markdown +++ b/source/_integrations/apple_tv.markdown @@ -8,6 +8,9 @@ ha_category: ha_iot_class: Local Push ha_release: 0.49 ha_domain: apple_tv +ha_codeowners: + - '@postlund' +ha_config_flow: true --- The Apple TV integration allows you to control an Apple TV (any generation). See the diff --git a/source/_integrations/aurora.markdown b/source/_integrations/aurora.markdown index 6ae26f74042..ac1cd908b72 100644 --- a/source/_integrations/aurora.markdown +++ b/source/_integrations/aurora.markdown @@ -6,6 +6,9 @@ ha_category: ha_iot_class: Cloud Polling ha_release: 0.39 ha_domain: aurora +ha_codeowners: + - '@djtimca' +ha_config_flow: true --- The `aurora` platform uses the [NOAA Aurora Forecast](https://www.swpc.noaa.gov/products/aurora-30-minute-forecast) service to let you know if an aurora might be visible at your home location in the next 30 minutes, based off of current solar flare activity. diff --git a/source/_integrations/dyson.markdown b/source/_integrations/dyson.markdown index f614f2ed779..236c40219b7 100644 --- a/source/_integrations/dyson.markdown +++ b/source/_integrations/dyson.markdown @@ -9,8 +9,6 @@ ha_category: - Vacuum ha_iot_class: Cloud Polling ha_release: 0.47 -ha_codeowners: - - '@etheralm' ha_domain: dyson --- diff --git a/source/_integrations/edl21.markdown b/source/_integrations/edl21.markdown index 33af296d09f..467b77a1902 100644 --- a/source/_integrations/edl21.markdown +++ b/source/_integrations/edl21.markdown @@ -51,4 +51,4 @@ To use this integration with a remote transceiver you could use [ser2net](https: Example `ser2net.conf` configuration file: -> 2001:raw:0:/dev/ttyUSB0:9600 8DATABITS NONE 1STOPBIT \ No newline at end of file +> 2001:raw:0:/dev/ttyUSB0:9600 8DATABITS NONE 1STOPBIT diff --git a/source/_integrations/enphase_envoy.markdown b/source/_integrations/enphase_envoy.markdown index 0a55306f4ff..8ef36e7e323 100644 --- a/source/_integrations/enphase_envoy.markdown +++ b/source/_integrations/enphase_envoy.markdown @@ -6,6 +6,8 @@ ha_category: ha_release: 0.76 ha_iot_class: Local Polling ha_domain: enphase_envoy +ha_codeowners: + - '@gtdiehl' --- A sensor platform for the [Enphase Envoy](https://enphase.com/en-us/products-and-services/envoy-and-combiner) solar energy gateway. Works with older models that only have production metrics (ie. Envoy-C) and newer models that offer both production and consumption metrics (ie. Envoy-S). diff --git a/source/_integrations/gree.markdown b/source/_integrations/gree.markdown index b238df6f744..12a126d408a 100644 --- a/source/_integrations/gree.markdown +++ b/source/_integrations/gree.markdown @@ -54,4 +54,4 @@ Preset mode **Away** represents Gree's "8°C heating mode." ## Switch -Gree devices expose a switch to turn on/off the light panel displaying the temperature set point and HVAC mode. \ No newline at end of file +Gree devices expose a switch to turn on/off the light panel displaying the temperature set point and HVAC mode. diff --git a/source/_integrations/hyperion.markdown b/source/_integrations/hyperion.markdown index 602686baca7..5daa7d17155 100644 --- a/source/_integrations/hyperion.markdown +++ b/source/_integrations/hyperion.markdown @@ -8,6 +8,8 @@ ha_iot_class: Local Push ha_domain: hyperion ha_codeowners: - '@dermotduffy' +ha_quality_scale: platinum +ha_config_flow: true --- The `hyperion` platform allows you to integrate your diff --git a/source/_integrations/neato.markdown b/source/_integrations/neato.markdown index ca2ef904572..ab749f0b615 100644 --- a/source/_integrations/neato.markdown +++ b/source/_integrations/neato.markdown @@ -13,7 +13,6 @@ ha_codeowners: - '@dshokouhi' - '@Santobert' ha_domain: neato -ha_quality_scale: gold --- The `neato` integration allows you to control your [Neato Botvac Connected Robots][botvac-connected]. diff --git a/source/_integrations/number.markdown b/source/_integrations/number.markdown index 3d76e187a9e..5fdb5f6ca73 100644 --- a/source/_integrations/number.markdown +++ b/source/_integrations/number.markdown @@ -6,7 +6,10 @@ ha_category: ha_release: 2020.12 ha_quality_scale: internal ha_domain: number -ha_iot_class: ~ +ha_iot_class: +ha_codeowners: + - '@home-assistant/core' + - '@Shulyaka' --- Keeps track on `number` entities in your environment, their state, and allows you to control them. This integration allows other integrations to get a value input from user within a range. diff --git a/source/_integrations/openhome.markdown b/source/_integrations/openhome.markdown index 68e265fd9d6..23b5cf2ea08 100644 --- a/source/_integrations/openhome.markdown +++ b/source/_integrations/openhome.markdown @@ -6,6 +6,8 @@ ha_category: ha_release: 0.39 ha_iot_class: Local Polling ha_domain: openhome +ha_codeowners: + - '@bazwilliams' --- The `openhome` platform allows you to connect an [Openhome Compliant Renderer](http://openhome.org/) to Home Assistant such as a [Linn Products Ltd](https://www.linn.co.uk) HiFi streamer. It will allow you to control media playback, volume, source and see the current playing item. Openhome devices should be discovered by using the [the discovery component](/integrations/discovery/), their device names are taken from the name of the room configured on the device. diff --git a/source/_integrations/opentherm_gw.markdown b/source/_integrations/opentherm_gw.markdown index 6691112a945..f3aa17e5f64 100644 --- a/source/_integrations/opentherm_gw.markdown +++ b/source/_integrations/opentherm_gw.markdown @@ -12,7 +12,6 @@ ha_config_flow: true ha_codeowners: - '@mvn23' ha_domain: opentherm_gw -ha_quality_scale: platinum --- The `opentherm_gw` integration is used to control the [OpenTherm Gateway](http://otgw.tclcode.com/) from Home Assistant. diff --git a/source/_integrations/plugwise.markdown b/source/_integrations/plugwise.markdown index 5f417e01244..6baf44ecd4d 100644 --- a/source/_integrations/plugwise.markdown +++ b/source/_integrations/plugwise.markdown @@ -11,6 +11,7 @@ ha_release: 0.98 ha_codeowners: - '@CoMPaTech' - '@bouwew' + - '@brefra' ha_config_flow: true ha_domain: plugwise --- diff --git a/source/_integrations/qbittorrent.markdown b/source/_integrations/qbittorrent.markdown index b0d96a502af..22c28349065 100644 --- a/source/_integrations/qbittorrent.markdown +++ b/source/_integrations/qbittorrent.markdown @@ -6,6 +6,8 @@ ha_category: ha_release: 0.84 ha_iot_class: Local Polling ha_domain: qbittorrent +ha_codeowners: + - '@geoffreylagaisse' --- The `qbittorrent` platform allows you to monitor your downloads with [qBittorrent](https://www.qbittorrent.org/) from within Home Assistant and setup automations based on the information. diff --git a/source/_integrations/recollect_waste.markdown b/source/_integrations/recollect_waste.markdown index e26f304c35e..b18fbc1f763 100644 --- a/source/_integrations/recollect_waste.markdown +++ b/source/_integrations/recollect_waste.markdown @@ -6,6 +6,9 @@ ha_category: ha_release: 0.87 ha_iot_class: Cloud Polling ha_domain: recollect_waste +ha_codeowners: + - '@bachya' +ha_config_flow: true --- The `recollect_waste` integration allows you to track the next scheduled waste pickup and what type of waste from [ReCollect](https://recollect.net/private-waste-haulers/). diff --git a/source/_integrations/slack.markdown b/source/_integrations/slack.markdown index c653e69b771..d560cc42e01 100644 --- a/source/_integrations/slack.markdown +++ b/source/_integrations/slack.markdown @@ -6,6 +6,8 @@ ha_category: ha_release: pre 0.7 ha_domain: slack ha_iot_class: Cloud Push +ha_codeowners: + - '@bachya' --- The `slack` platform allows you to deliver notifications from Home Assistant to [Slack](https://slack.com/). diff --git a/source/_integrations/srp_energy.markdown b/source/_integrations/srp_energy.markdown index bad4b869f9f..7216473f840 100644 --- a/source/_integrations/srp_energy.markdown +++ b/source/_integrations/srp_energy.markdown @@ -1,11 +1,14 @@ --- -title: "SRP Energy" -description: "How to integrate SRP Energy within Home Assistant." +title: SRP Energy +description: How to integrate SRP Energy within Home Assistant. ha_category: - Energy ha_release: 2020.12 ha_iot_class: Cloud Polling ha_domain: srp_energy +ha_codeowners: + - '@briglx' +ha_config_flow: true --- The SRP Energy integration shows information from SRP hourly energy usage report for their customers. diff --git a/source/_integrations/system_log.markdown b/source/_integrations/system_log.markdown index ac2a61deedd..3c103af479e 100644 --- a/source/_integrations/system_log.markdown +++ b/source/_integrations/system_log.markdown @@ -140,4 +140,4 @@ automation: data: message: 'Door opened!' level: info -``` \ No newline at end of file +``` diff --git a/source/_integrations/tapsaff.markdown b/source/_integrations/tapsaff.markdown index 455d1daf046..301b4eab5ba 100644 --- a/source/_integrations/tapsaff.markdown +++ b/source/_integrations/tapsaff.markdown @@ -6,6 +6,8 @@ ha_category: ha_release: 0.47 ha_iot_class: Local Polling ha_domain: tapsaff +ha_codeowners: + - '@bazwilliams' --- The `tapsaff` binary sensor provides the 'Taps Aff' status for a given location within the UK using [Taps Aff](https://www.taps-aff.co.uk/). diff --git a/source/_integrations/tasmota.markdown b/source/_integrations/tasmota.markdown index a01ade035bb..ec5b9863eb2 100644 --- a/source/_integrations/tasmota.markdown +++ b/source/_integrations/tasmota.markdown @@ -1,5 +1,5 @@ --- -title: Tasmota +title: Tasmota (beta) description: Instructions on how to integrate Tasmota with Home Assistant. ha_category: - Binary Sensor diff --git a/source/_integrations/twinkly.markdown b/source/_integrations/twinkly.markdown index 049c6cd7d5f..4ea5b8c2f1b 100644 --- a/source/_integrations/twinkly.markdown +++ b/source/_integrations/twinkly.markdown @@ -7,6 +7,8 @@ ha_release: 2020.12 ha_config_flow: true ha_domain: twinkly ha_iot_class: Local pull +ha_codeowners: + - '@dr1rrb' --- The Twinkly integration allows you to control [Twinkly](https://twinkly.com/) LED string from Home Assistant. @@ -25,4 +27,3 @@ You can setup this integration from the Home Assistant user interface: 1. Configure the host (or IP address) of your twinkly device. _If configured using an IP address, on your router / DHCP, you should assign a static IP to your Twinkly device._ - diff --git a/source/_integrations/verisure.markdown b/source/_integrations/verisure.markdown index d47b132bd48..e5b910d33cc 100644 --- a/source/_integrations/verisure.markdown +++ b/source/_integrations/verisure.markdown @@ -12,6 +12,8 @@ ha_category: ha_release: pre 0.7 ha_iot_class: Cloud Polling ha_domain: verisure +ha_codeowners: + - '@frenck' --- Home Assistant has support to integrate your [Verisure](https://www.verisure.com/) devices. diff --git a/source/_integrations/zerproc.markdown b/source/_integrations/zerproc.markdown index 6c92beee849..97957295168 100644 --- a/source/_integrations/zerproc.markdown +++ b/source/_integrations/zerproc.markdown @@ -9,7 +9,6 @@ ha_domain: zerproc ha_codeowners: - '@emlove' ha_config_flow: true -ha_quality_scale: platinum --- This integration discovers nearby Zerproc lights and adds them to Home Assistant. From 3c0694a7fcddd6db18e9fa4fb7c6ecc374b6d2d4 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 6 Jan 2021 16:46:52 +0100 Subject: [PATCH 4/4] Processing release note reviews --- .../_posts/2021-01-06-release-20211.markdown | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/source/_posts/2021-01-06-release-20211.markdown b/source/_posts/2021-01-06-release-20211.markdown index 8fa7f3f3dcf..c2c83872d15 100644 --- a/source/_posts/2021-01-06-release-20211.markdown +++ b/source/_posts/2021-01-06-release-20211.markdown @@ -51,10 +51,10 @@ Enjoy the release! - [Farewell to the following](#farewell-to-the-following) - [All changes](#all-changes) -## In memoriam of villhellm +## In memoriam of Villhellm It is with sadness that we announce that one of the Jedis in our Discord Server, -[@villhellm](https://www.github.com/villhellm) (William), who had been actively +[@Villhellm](https://www.github.com/villhellm) (William), who had been actively involved with the Home Assistant community for a number of years, had passed away right before Christmas of 2020 at the age of 27. @@ -77,7 +77,7 @@ quite a few messages and requests for making all talks held at the conference available for viewing. We have started the process of making those available on our -[YouTube Channel][channel]. So, if you haven't done ot already, go to our +[YouTube Channel][channel]. So, if you haven't done it already, go to our channel and subscribe and you'll be notified when we make another talk available. @@ -95,7 +95,7 @@ that are definitely noteworthy to mention. - [@spacegaier] removed the "No Area" from the device tables, reducing the clutter in those lists. - Since 2020.12, entities can be assigned to areas. Thanks to [@elupus], these - area's are now sent to [Google Assistant][google_assistant docs] as room + areas are now sent to [Google Assistant][google_assistant docs] as room hints. - [Rachio][rachio docs] now has pause and resume services, thanks to [@brg468]. - A bunch of new sensors are added to [Météo-France][meteo_france docs]. @@ -110,14 +110,14 @@ that are definitely noteworthy to mention. starting by giving the option to display pickup types by their human-friendly names. Thanks, [@bachya]! - [@postlund] rewrote the [Apple TV][apple_tv docs] integration for 2020.12, - but he is not stopping! Besides some fixed, he extended the device information + but he is not stopping! Besides some fixes, he extended the device information and added some attributes. - The [SQL Sensor][sql docs] now supports MSSQL, thanks to [@dgomes]! - Support for climate devices with a temperature range, has been added to the [HomeKit controller][homekit_controller docs] integration. Thanks, [@thevoltagesource]! -- The [MQTT] integration discovery feature, now has support for device trackers, - which has been added by [@PeteBa]. +- The [MQTT][mqtt docs] integration discovery feature, now has support for + device trackers, which has been added by [@PeteBa]. - Sending animations using the [Telegram Bot][telegram_bot docs] is now possible with the new animation service added by [@tofuSCHNITZEL]. - If you have a Xiaomi Miio vacuum cleaner with a mop function, this release @@ -138,7 +138,7 @@ This release has not introduced new integrations. The following integration got support for a new platform: -- [Somfy][somfy docs] added the climate controls and battery sensors, +- [Somfy][somfy docs] added climate controls and battery sensors, added by [@tetienne] - [Home Connect][home_connect docs] added support for functional and ambient lights, added by [@Sjack-Sch] @@ -260,7 +260,7 @@ with 2 streams of information. Before this release, the status info we received contained overlapping information from both streams of information, which led to issues when the gateway was overriding some values. -As of this release, therestatus is split up in multiple parts to reflect this. +As of this release, the status is split up in multiple parts to reflect this. Each part contains the status of its respective information stream. With this change, we create sensor entities for each stream where necessary.