From 9a3e2ed86a355cf162b98cdf33142492f5d1de42 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 2 Dec 2020 22:29:20 +0100 Subject: [PATCH 01/92] Beta release notes for 1.0 (#15808) --- _config.yml | 8 +- source/_integrations/fireservicerota.markdown | 2 +- source/_integrations/motion_blinds.markdown | 2 +- source/_integrations/number.markdown | 2 +- source/_integrations/scene.mqtt.markdown | 2 +- source/_integrations/srp_energy.markdown | 2 +- source/_integrations/twinkly.markdown | 2 +- source/_posts/2020-12-13-release-10.markdown | 1131 +++++++++++++++++ source/images/blog/2020-12-1.0/social.png | Bin 0 -> 120822 bytes 9 files changed, 1141 insertions(+), 10 deletions(-) create mode 100644 source/_posts/2020-12-13-release-10.markdown create mode 100644 source/images/blog/2020-12-1.0/social.png diff --git a/_config.yml b/_config.yml index 9b54ea88b83..843df9cd191 100644 --- a/_config.yml +++ b/_config.yml @@ -99,10 +99,10 @@ social: account: home_assistant # Home Assistant release details -current_major_version: 0 -current_minor_version: 118 -current_patch_version: 4 -date_released: 2020-11-26 +current_major_version: 1 +current_minor_version: 0 +current_patch_version: 0 +date_released: 2020-12-13 # 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/_integrations/fireservicerota.markdown b/source/_integrations/fireservicerota.markdown index 1541e2352d6..5c704c75af6 100644 --- a/source/_integrations/fireservicerota.markdown +++ b/source/_integrations/fireservicerota.markdown @@ -6,7 +6,7 @@ ha_category: - Sensor - Switch ha_iot_class: Cloud Polling -ha_release: 0.119 +ha_release: 1.0 ha_codeowners: - '@cyberjunky' ha_config_flow: true diff --git a/source/_integrations/motion_blinds.markdown b/source/_integrations/motion_blinds.markdown index c9268cc80a0..9d4219b7f3d 100644 --- a/source/_integrations/motion_blinds.markdown +++ b/source/_integrations/motion_blinds.markdown @@ -4,7 +4,7 @@ description: Instructions on how to integrate Motion Blinds from Coulisse B.V. i ha_category: - Cover ha_iot_class: Local Polling -ha_release: 0.119.0 +ha_release: 1.0 ha_domain: motion_blinds ha_codeowners: - '@starkillerOG' diff --git a/source/_integrations/number.markdown b/source/_integrations/number.markdown index e340d19e911..d2fb245523f 100644 --- a/source/_integrations/number.markdown +++ b/source/_integrations/number.markdown @@ -3,7 +3,7 @@ title: Number description: Instructions on how to manage your Number entities with Home Assistant. ha_category: - Number -ha_release: 0.119 +ha_release: 1.0 ha_quality_scale: internal ha_domain: number ha_iot_class: ~ diff --git a/source/_integrations/scene.mqtt.markdown b/source/_integrations/scene.mqtt.markdown index a23ff9be591..7a933f2ddb3 100644 --- a/source/_integrations/scene.mqtt.markdown +++ b/source/_integrations/scene.mqtt.markdown @@ -3,7 +3,7 @@ title: "MQTT Scene" description: "Instructions on how to integrate MQTT scenes into Home Assistant." ha_category: - Scene -ha_release: 0.119 +ha_release: 1.0 ha_iot_class: Configurable ha_domain: mqtt --- diff --git a/source/_integrations/srp_energy.markdown b/source/_integrations/srp_energy.markdown index 0af75e7c7d5..27801107dcb 100644 --- a/source/_integrations/srp_energy.markdown +++ b/source/_integrations/srp_energy.markdown @@ -3,7 +3,7 @@ title: "SRP Energy" description: "How to integrate SRP Energy within Home Assistant." ha_category: - Energy -ha_release: 0.119 +ha_release: 1.0 ha_iot_class: Cloud Polling --- diff --git a/source/_integrations/twinkly.markdown b/source/_integrations/twinkly.markdown index 9652f048d83..9763ad80c3c 100644 --- a/source/_integrations/twinkly.markdown +++ b/source/_integrations/twinkly.markdown @@ -3,7 +3,7 @@ title: Twinkly description: Instructions on how to integrate Twinkly LED string to Home Assistant. ha_category: - Light -ha_release: 0.119 +ha_release: 1.0 ha_config_flow: true ha_domain: twinkly ha_iot_class: Local pull diff --git a/source/_posts/2020-12-13-release-10.markdown b/source/_posts/2020-12-13-release-10.markdown new file mode 100644 index 00000000000..a6590d73ed3 --- /dev/null +++ b/source/_posts/2020-12-13-release-10.markdown @@ -0,0 +1,1131 @@ +--- +layout: post +title: "1.0: Beta release notes" +description: "Beta release notes for Home Assistant Core 1.0" +date: 2020-12-2 00:00:00 +date_formatted: "December 13, 2020" +author: Franck Nijhof +author_twitter: frenck +comments: true +categories: Release-Notes +og_image: /images/blog/2020-12-1.0/social.png +--- + + + +These are the beta release notes for Home Assistant Core 1.0 (and is thus a +work in progress). + +**Yes, Home Assistant Core 1.0! This major release is going to be announced at the [Home Assistant Conference](/conference) on 13 December**: + +Get your $1 ticket + +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 + + + +## Home Assistant Blueprints + +Check Configuration panel -> Blueprints + +Examples: + + +More information and documentation will be put up as soon as possible. + +Some background in this PR: + + + +## Other noteworthy changes + +- Lorem ipsum! Thanks, [@frenck]! + +Core: + +- Refactor Apple TV integration ([@postlund] - [#31952]) ([apple_tv docs]) (breaking-change) +- Add initial rest query params ([@boxcee] - [#42198]) ([pvoutput docs]) ([rest docs]) ([scrape docs]) +- Add reload support to KNX ([@spacegaier] - [#42429]) ([knx docs]) +- Add support for learning RF commands with Broadlink remotes ([@felipediel] - [#39671]) ([broadlink docs]) ([remote docs]) +- Add HomeKit humidifier/dehumidifier ([@adrum] - [#42311]) ([homekit_controller docs]) +- Support gas meter capability for smartthings ([@javache] - [#41310]) ([smartthings docs]) +- Add dsmr_reader telegram timestamp and device classes ([@tim427] - [#42909]) ([dsmr_reader docs]) +- Add an option to template delay_on/off in template binary sensor ([@mLupine] - [#43259]) ([template docs]) +- Add shelly installed firmware info ([@chemelli74] - [#43221]) ([shelly docs]) +- Add Shelly support for REST sensors ([@chemelli74] - [#40429]) ([shelly docs]) +- Support for Shelly Input Events ([@thecode] - [#43479]) ([shelly docs]) +- Support for Shelly Binary Input Sensors ([@thecode] - [#43313]) ([shelly docs]) +- Support openRelativePercent for google assistant covers ([@elupus] - [#43336]) ([google_assistant docs]) +- Add repeat mode support to Spotify ([@frenck] - [#43247]) ([spotify docs]) +- Add tilt support to deCONZ covers ([@Kane610] - [#43607]) ([deconz docs]) +- Add nest SDM API camera/doorbell events ([@allenporter] - [#42700]) ([nest docs]) +- Add nest device triggers for camera and doorbell events ([@allenporter] - [#43548]) ([nest docs]) +- Support disabling devices ([@emontnemery] - [#43293]) ([config docs]) +- OAuth2 to use current request header ([@balloob] - [#43668]) ([toon docs]) +- Add a service target ([@balloob] - [#43725]) +- Base area IDs on initial name ([@balloob] - [#43804]) +- Make simple deCONZ thermostats work ([@Kane610] - [#43781]) ([deconz docs]) +- Add fan support to deCONZ climate platform ([@Kane610] - [#43721]) ([deconz docs]) +- Add preset support to deCONZ climate platform ([@Kane610] - [#43722]) ([deconz docs]) + +Frontend: + +- Add target selector (#7864) @bramkragten +- Enhance ZHA device pairing feedback (#7843) @dmulcahey +- Add network visualization to the ZHA config panel (#7802) @dmulcahey +- Additional number formatting (#7763) @joshmcrty +- Initial Blueprint UI (#7695) @bramkragten + +## New Integrations + +We welcome the following new integration this release: + +- [FireServiceRota][fireservicerota docs], added by [@cyberjunky] +- [Motion Blinds][motion_blinds docs], added by [@starkillerOG] +- [SRP Energy][srp_energy docs], added by [@briglx] +- [Twinkly][twinkly docs], added by [@dr1rrb] + +## New Platforms + +The following integration got support for a new platform: + +- [HomeKit Controller][homekit_controller docs] now has initial support for + cameras, added by [@Jc2k] +- [@emontnemery] has added support for fans and covers to the + [Tasmota][tasmota docs] integration. + +## Integrations now available to set up from the UI + +The following integrations are now available via the Home Assistant UI: + +- [Aurora][aurora docs], done by [@djtimca] +- [Recollect Waste][recollect_waste docs], done by [@bachya] + +## 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. + +
+ Aurora +

+ +Configuring Aurora sensor via YAML has been removed (it was non-functional +already). The Aurora integration can now be configured via the UI. + +([@djtimca] - [#43045]) ([aurora docs]) + +

+
+ +
+ Certificate Expiry +

+ +In order to optimize stability and performance of Home Assistant, time based +sensors should use only absolute time values (store the date of the event) and +not relative time values (seconds from event), so the value doesn't change +each second. + +The Certificate Expiry integration has both of them, so to adhere to +Home Assistant architectural design rules, the offending relative time +sensor is now removed. + +If your configuration was based on it, please switch to the other one. + +([@chemelli74] - [#42338]) ([cert_expiry docs]) + +

+
+ +
+ Solar-Log +

+ +Per ADR-0010, this release deprecates YAML configuration for the Solar-log +integration. If you already use the Solar-log integration you do not need to +take action, as your configuration has already been imported into the UI. + +([@Ernst79] - [#43484]) ([solarlog docs]) + +

+
+ +
+ LCN +

+ +The logic operation sensor states are renamed from (`not`, `or`, `and`) to +(`none`, `some`, `all`). + +The renaming is more consistent with the LCN naming convention. +When using the states in an automation ensure they are correctly renamed. + +([@alengwenus] - [#43710]) ([lcn docs]) + +

+
+ +
+ Uptime +

+ +In order to optimize stability and performance of Home Assistant, sensors +should use only absolute time values (store the date of the event) and not +relative time values (seconds from event) so the value doesn't change each +second. + +The Uptime integration is one leftover, so to adhere to Home Assistant +architectural design rules, the sensor is now changed to a timestamp. + +As a side effect of this change, the `unit_of_measurement` option of this +integration is now deprecated and can be removed from your configuration if +you used that. + +Please review your Automations and Lovelace configuration to reflect this +change. + +([@chemelli74] - [#43623]) ([uptime docs]) + +

+
+ +
+ Keyring & Credstash +

+ +Support for storing secrets in Credstash and Keyring is deprecated and will be +removed in March 2021. + +([@balloob] - [#43854]) + +

+
+ +
+ Apple TV +

+ +The Apple TV integration has been completely rewritten. Support for YAML is +removed, so old configuration must be removed and devices re-added via the +integrations page. + +Furthermore, the old services `apple_tv.apple_tv_authenticate` and +`apple_tv.apple_tv_scan` are deprecated and replaced by the configration flow. + +([@postlund] - [#31952]) ([apple_tv docs]) + +

+
+ +
+ Telegram Bot +

+ +The telegram bot integration now allows/accepts messages when either the allowed +group (Chat ID) OR the User ID of the sender matches. + +This is a different behavior compared to before as before both Group (Chat ID) +AND User ID needed to be allowed. This allows members of a group to talk to +the bot, even if they are not specifically listed as a user. + +If you use Telegram groups, make sure you adjust your configuration accordingly. + +([@wicol] - [#43241]) ([telegram_bot docs]) + +

+
+ +## Farewell to the following + +The following integrations have been removed: + +- **Salt Fiber Box** ([@MartinHjelmare] - [#43452]) +- **Ubee Router** ([@frenck] - [#43809]) +- **Yessssms** ([@flowolf] - [#43200]) + +These integrations where using webscraping, which is no longer allowed. + +## All changes + +
+ Click to see all changes! + +- Add initial rest query params ([@boxcee] - [#42198]) ([pvoutput docs]) ([rest docs]) ([scrape docs]) +- Simplify distance conversion ([@springstan] - [#43107]) +- Add Shelly support for REST sensors ([@chemelli74] - [#40429]) ([shelly docs]) +- Fix Aurora integration including externalizing API to PyPi and adding config_flow ([@djtimca] - [#43045]) ([aurora docs]) (breaking-change) +- Add save and delete WS commands to blueprints ([@bramkragten] - [#42907]) ([blueprint docs]) +- Add Shelly totalWorkTime as Lamp life (Shelly Air) ([@chemelli74] - [#43112]) ([shelly docs]) +- Add a config flow for Recollect Waste ([@bachya] - [#43063]) ([recollect_waste docs]) +- Add support for multiple event triggers in automation ([@frenck] - [#43097]) ([homeassistant docs]) +- Fix aurora config flow tests ([@MartinHjelmare] - [#43128]) ([aurora docs]) +- Add reload support to KNX ([@spacegaier] - [#42429]) ([knx docs]) +- Revert "shelly_naming" rebase errors ([@thecode] - [#43134]) ([shelly docs]) +- Add VSCode debug launch conf ([@balloob] - [#43130]) +- Add support for learning RF commands with Broadlink remotes ([@felipediel] - [#39671]) ([broadlink docs]) ([remote docs]) +- Shelly: minor improvements ([@chemelli74] - [#43138]) ([shelly docs]) +- Mock time_date sensor tests ([@amelchio] - [#43141]) ([time_date docs]) +- Fix beat calculation ([@amelchio] - [#43142]) ([time_date docs]) +- Further improve MFI tests ([@balloob] - [#43167]) +- Remove relative time sensor from cert_expiry ([@chemelli74] - [#42338]) ([cert_expiry docs]) (breaking-change) +- Fix time_date timestamp offsets ([@amelchio] - [#43165]) ([time_date docs]) +- Improve entity domain validator ([@balloob] - [#43164]) +- Fix time_date interval for DST ([@amelchio] - [#43166]) ([time_date docs]) +- Add test to access current request in websocket API ([@balloob] - [#43133]) ([websocket_api docs]) +- Add log message server startup ([@balloob] - [#43177]) ([http docs]) +- Upgrade sentry-sdk to 0.19.3 ([@frenck] - [#43176]) ([sentry docs]) +- Rewrite google_wifi unittest tests to pytest style ([@Danielinte] - [#42030]) ([google_wifi docs]) +- Copy default vscode settings during bootstrap ([@MartinHjelmare] - [#43180]) +- Update ozw get_config_parameter websocket response ([@cgarwood] - [#43058]) ([ozw docs]) +- Hide cancelled trips from being displayed in vasttrafik integration ([@ttuffin] - [#43184]) ([vasttrafik docs]) +- Fix automation in packages ([@balloob] - [#43202]) ([automation docs]) +- Add support for selectors in services.yaml ([@balloob] - [#43162]) ([blueprint docs]) ([sonos docs]) +- Update fitbit battery status ([@czechmark] - [#42980]) ([fitbit docs]) +- Add quarter-hour period feature for utility_meter component ([@thomasdelaet] - [#41999]) ([utility_meter docs]) +- Add initial camera support to homekit_controller ([@Jc2k] - [#43100]) ([homekit_controller docs]) (new-platform) +- Add support for Broadlink BG1 devices ([@b4dpxl] - [#42314]) ([broadlink docs]) +- Add HomeKit humidifier/dehumidifier ([@adrum] - [#42311]) ([homekit_controller docs]) +- Upgrade youtube_dl to version 2020.11.12 ([@BKPepe] - [#43231]) ([media_extractor docs]) +- Switch ios to dispatching instead of polling ([@bdraco] - [#43233]) ([ios docs]) +- Bump pyheos to 0.7.2 ([@andrewsayre] - [#43239]) ([heos docs]) +- Bypass the slow update warning for group updates ([@bdraco] - [#43209]) ([group docs]) +- Eliminate doorbird switch polling ([@bdraco] - [#43215]) ([doorbird docs]) +- Bump pysmartthings and pysmartapp ([@andrewsayre] - [#43240]) ([smartthings docs]) +- Refactor ZHA light initialization ([@Adminiuga] - [#43149]) ([zha docs]) +- Remove yessssms integration ([@flowolf] - [#43200]) ([yessssms docs]) +- Set should_poll for zone entities ([@bdraco] - [#43212]) ([zone docs]) +- Support gas meter capability for smartthings ([@javache] - [#41310]) ([smartthings docs]) +- Add dsmr_reader telegram timestamp and device classes ([@tim427] - [#42909]) ([dsmr_reader docs]) +- Convert most esphome state updates to callbacks ([@bdraco] - [#43246]) ([esphome docs]) +- Add tests for browse media image proxy ([@ctalkington] - [#43076]) ([media_player docs]) +- Apply suggestions from #42697 to synology_dsm ([@mib1185] - [#43197]) ([synology_dsm docs]) +- Avoid creating battery sensor if Shelly device is external powered ([@chemelli74] - [#43243]) ([shelly docs]) +- Rewrite ecobee unittest tests to pytest ([@adriansuwala] - [#42584]) ([ecobee docs]) +- Bump python-miio and construct version ([@syssi] - [#43267]) ([eddystone_temperature docs]) ([eq3btsmart docs]) ([xiaomi_miio docs]) +- Xiaomi Device Tracker - Move "Refreshing device list" to debug ([@GuyKh] - [#43276]) ([xiaomi docs]) +- Bump actions/upload-artifact from v2.2.0 to v2.2.1 (dependabot - [#43272]) +- Bump Pywemo to 0.5.3 ([@pavoni] - [#43263]) ([wemo docs]) +- Automatically clean up executor as part of closing loop ([@balloob] - [#43284]) +- Convert core tests to async ([@balloob] - [#43287]) +- Bump PyEssent to 0.14 ([@TheLastProject] - [#43282]) ([essent docs]) +- Refactor how entities are created for homekit_controller services ([@Jc2k] - [#43242]) ([homekit_controller docs]) +- Add notification binary_sensor to Plugwise integration ([@CoMPaTech] - [#41473]) ([plugwise docs]) +- Update directv to 0.4.0 ([@ctalkington] - [#43302]) ([directv docs]) ([directv docs]) +- Improvement to allow parsing of station ID in vasttrafik integration. Addresses #34851 ([@ttuffin] - [#43136]) ([vasttrafik docs]) +- Bump codecov/codecov-action from v1.0.14 to v1.0.15 (dependabot - [#43304]) +- Add progress translation key to hassfest ([@MartinHjelmare] - [#43311]) +- Update cloud integration to 0.38.0 ([@klaasnicolaas] - [#43314]) ([cloud docs]) +- Add an option to template delay_on/off in template binary sensor ([@mLupine] - [#43259]) ([template docs]) +- Fix kodi media_player unavailable at start ([@mvn23] - [#41714]) ([kodi docs]) +- Improve Google Assistant cover assumed state handling ([@elupus] - [#43255]) ([google_assistant docs]) +- Add TV channel name to smartthings integration ([@Alex-Klein] - [#41729]) ([smartthings docs]) +- Tweak OZW Light discovery ([@firstof9] - [#43325]) ([ozw docs]) +- Refactor ZHA tests to allow attribute reads during device initialization ([@Adminiuga] - [#43357]) ([zha docs]) +- Update Zha dependencies ([@Adminiuga] - [#43373]) ([zha docs]) +- Refactor ZHA sensor initialization ([@Adminiuga] - [#43339]) ([zha docs]) +- Update denonavr to 0.9.6 ([@scarface-4711] - [#43370]) ([denonavr docs]) +- Add shelly installed firmware info ([@chemelli74] - [#43221]) ([shelly docs]) +- Support for Shelly Binary Input Sensors ([@thecode] - [#43313]) ([shelly docs]) +- Reword numeric_state trigger ([@amelchio] - [#43367]) ([homeassistant docs]) +- Raise in base implementation of FanEntity.oscillate ([@emontnemery] - [#43354]) ([fan docs]) +- Improve nest SDM integration error handling ([@allenporter] - [#43271]) ([nest docs]) +- Update ovoenergy to v1.1.11 ([@timmo001] - [#43391]) ([ovo_energy docs]) +- Fix selector to return the selector type ([@bramkragten] - [#43395]) +- Add twinkly integration ([@dr1rrb] - [#42103]) ([twinkly docs]) (new-integration) +- Add new air-humidifier device CA4 with miot protocol ([@Toxblh] - [#39398]) ([xiaomi_miio docs]) +- Check config to use config platforms ([@balloob] - [#43407]) +- Update pymyq to 2.0.10 ([@ehendrix23] - [#43413]) ([myq docs]) +- Update python-awair to 0.2.1 ([@ahayworth] - [#43415]) ([awair docs]) +- Add Srp energy component ([@briglx] - [#41091]) ([srp_energy docs]) (new-integration) +- Update Alexa supported languages ([@100ferhas] - [#43139]) ([alexa docs]) +- Support openRelativePercent for google assistant covers ([@elupus] - [#43336]) ([google_assistant docs]) +- Add support for checking minimum HA version ([@balloob] - [#43350]) ([blueprint docs]) +- Provide HA username via auth WS ([@spacegaier] - [#43283]) ([config docs]) +- Verify that we register blueprints on automation setup ([@balloob] - [#43434]) ([automation docs]) ([blueprint docs]) +- Update dsmr_parser to 0.23 ([@RobBie1221] - [#43403]) ([dsmr docs]) +- Upgrade Beewi Smartclim component to 0.0.10 ([@alemuro] - [#43441]) ([beewi_smartclim docs]) +- Fix empty local_ip config flow ([@spacegaier] - [#43333]) ([local_ip docs]) +- Use weather attribute conditions constants ([@springstan] - [#39945]) +- Move Flo logger to a package logger ([@bachya] - [#43449]) ([flo docs]) +- Move Ambient PWS logger to a package logger ([@bachya] - [#43448]) ([ambient_station docs]) +- Move legacy device tracker setup to legacy module ([@MartinHjelmare] - [#43447]) ([device_tracker docs]) +- Remove salt integration for webscraping ([@MartinHjelmare] - [#43452]) ([salt docs]) (breaking-change) +- Move Notion logger to a package logger ([@bachya] - [#43450]) ([notion docs]) +- Add ONVIF PTZ Stop support ([@scop] - [#39734]) ([onvif docs]) +- Remove zigpy monkey patching ([@Adminiuga] - [#43456]) ([zha docs]) +- Change Plugwise integration to plugwise module ([@CoMPaTech] - [#43036]) ([plugwise docs]) +- Avoid arbitrarily reducing ZHA climate temperature information ([@FrnchFrgg] - [#43442]) ([zha docs]) +- Bump acmeda dependency aiopulse to 0.4.2 ([@atmurray] - [#43217]) ([acmeda docs]) +- Fix ConnectTimeout during wolflink start ([@adamkrol93] - [#43418]) ([wolflink docs]) +- Add reauth support for OVO Energy ([@timmo001] - [#38882]) ([ovo_energy docs]) +- Upgrade debugpy to 1.2.0 ([@frenck] - [#43328]) ([debugpy docs]) +- Add repeat mode support to Spotify ([@frenck] - [#43247]) ([spotify docs]) +- Fix Luftdaten.info data retrieval ([@FlavorFx] - [#43471]) ([luftdaten docs]) +- Support for multiple states in history_stats ([@iprak] - [#43416]) ([history_stats docs]) +- Upgrade discord.py to 1.5.1 ([@LordBoos] - [#43473]) +- Bump rpi-bad-power to 0.1.0 ([@shenxn] - [#43476]) ([rpi_power docs]) +- Deprecate YAML config for Solar-log ([@Ernst79] - [#43484]) ([solarlog docs]) (breaking-change) +- Add updated British Voices ([@CrashWorksLLC] - [#43496]) ([watson_tts docs]) +- Clean up Solar-log review comments ([@frenck] - [#43503]) ([solarlog docs]) +- Optimize Sonos queue position ([@amelchio] - [#43514]) ([sonos docs]) +- Re-organize OpenUV constants ([@bachya] - [#43453]) ([openuv docs]) +- Bump envoy version to 0.17.0 ([@gtdiehl] - [#43498]) ([enphase_envoy docs]) +- Optimize Sonos favorites updates ([@amelchio] - [#43516]) ([sonos docs]) +- Add seek support to plex media players ([@shocklateboy92] - [#43420]) ([plex docs]) +- Clean up RainMachine config entry ([@bachya] - [#43508]) ([rainmachine docs]) +- Add vendor effects to Yeelight integration ([@danielrheinbay] - [#42711]) ([yeelight docs]) +- Optimize Sonos current playing state ([@amelchio] - [#43517]) ([sonos docs]) +- Make Brother uptime sensor disabled by default ([@bieniu] - [#43478]) ([brother docs]) +- Add device id to deconz_event ([@Kane610] - [#43552]) ([deconz docs]) +- Bump actions/stale from v3.0.13 to v3.0.14 (dependabot - [#43551]) +- Update Blinkpy to fix non-updating blink mini cameras ([@fronzbot] - [#43549]) ([blink docs]) +- Optimize reading of Sonos source mode ([@amelchio] - [#43541]) ([sonos docs]) +- Mill Heater: Add support for Energy consumption ([@Danielhiversen] - [#43523]) ([mill docs]) +- Track deCONZ lib changes to light based devices ([@Kane610] - [#43366]) ([deconz docs]) +- update solax to 0.2.5 ([@squishykid] - [#43564]) ([solax docs]) +- Upgrade sentry-sdk to 0.19.4 ([@frenck] - [#43504]) ([sentry docs]) +- Update denonavr to 0.9.7 ([@scarface-4711] - [#43546]) ([denonavr docs]) +- Fix RTS cover with set position available ([@tetienne] - [#43555]) ([somfy docs]) +- Add codeowner to Enphase Envoy manifest ([@gtdiehl] - [#43402]) ([enphase_envoy docs]) +- Add webhook to default config ([@frenck] - [#43521]) ([default_config docs]) +- Cannot use vcgencmd in HassOS ([@denics] - [#42710]) ([sensehat docs]) +- Add Motion Blinds integration ([@starkillerOG] - [#42989]) ([motion_blinds docs]) (new-integration) +- Use references in config flow for solaredge ([@Cereal2nd] - [#43511]) ([solaredge docs]) +- Bump version to 0.119.0dev0 ([@frenck] - [#43485]) +- Decrease asuswrt connects per sensor ([@JJdeVries] - [#43383]) ([asuswrt docs]) +- Fix warning generated by surpetcare test ([@balloob] - [#43598]) ([surepetcare docs]) +- Fix conversion of cover position between HASS and deCONZ ([@Kane610] - [#43602]) ([deconz docs]) +- Update nest library and switch events to async ([@allenporter] - [#43583]) ([nest docs]) +- Add unknown_authorize_url_generation to base strings for config flows ([@springstan] - [#42484]) ([nest docs]) ([point docs]) ([tellduslive docs]) ([toon docs]) +- Bump hatasmota to 0.1.1 ([@emontnemery] - [#43608]) ([tasmota docs]) +- Fix Meraki API Auth ([@koolsb] - [#43578]) ([meraki docs]) +- Upgrade foobot_async to 1.0.0 ([@balloob] - [#43611]) ([foobot docs]) +- Add tilt support to deCONZ covers ([@Kane610] - [#43607]) ([deconz docs]) +- update xknx to 0.15.4 ([@farmio] - [#43536]) ([knx docs]) +- Add nest SDM API camera/doorbell events ([@allenporter] - [#42700]) ([nest docs]) +- Bump pyhs100 dependency to fix hs220 discoverability issues ([@rytilahti] - [#43619]) ([tplink docs]) +- Bump ha-ffmpeg to 3.0.2 ([@balloob] - [#43597]) +- Add default config if not there ([@balloob] - [#43321]) +- Support for Shelly Input Events ([@thecode] - [#43479]) ([shelly docs]) +- Add Shelly UNI ADC sensor ([@chemelli74] - [#43490]) ([shelly docs]) +- Add FireServiceRota/BrandweerRooster integration ([@cyberjunky] - [#38206]) ([fireservicerota docs]) (new-integration) +- Fix flapping derivative tests where time would move between state changes ([@elupus] - [#43579]) ([derivative docs]) +- Add Tasmota fan ([@emontnemery] - [#43353]) ([tasmota docs]) (new-platform) +- Add Tasmota cover ([@emontnemery] - [#43368]) ([tasmota docs]) (new-platform) +- Add more selectors ([@bramkragten] - [#43639]) ([input_number docs]) +- Add default to inputs ([@bramkragten] - [#43636]) ([blueprint docs]) +- Add location to summary sensor attributes ([@ofalvai] - [#43641]) ([seventeentrack docs]) +- Suggest folder when importing blueprint and store source_url ([@balloob] - [#43650]) ([blueprint docs]) +- Add Duty binary_sensor platform to FireServiceRota integration ([@cyberjunky] - [#43638]) ([fireservicerota docs]) (new-platform) +- Add area selector, remove date selector ([@bramkragten] - [#43658]) +- Allow importing gist ([@balloob] - [#43659]) ([blueprint docs]) +- Support disabling devices ([@emontnemery] - [#43293]) ([config docs]) +- Add Roomba support for automatic emptying of bin ([@jasperslits] - [#43594]) ([roomba docs]) +- Make input_datetime better handle timezones ([@balloob] - [#43396]) ([input_datetime docs]) +- Fix check config ([@balloob] - [#43663]) ([blueprint docs]) +- Fix MQTT threading bug ([@emontnemery] - [#43667]) ([mqtt docs]) +- Upgrade pre-commit to 2.9.2 ([@frenck] - [#43655]) +- Small cleanup of Tasmota ([@emontnemery] - [#43642]) ([tasmota docs]) +- Updated frontend to 20201126.0 ([@bramkragten] - [#43682]) ([frontend docs]) +- Met.no: Fix for zero temp entries ([@thimic] - [#43684]) ([met docs]) +- OAuth2 to use current request header ([@balloob] - [#43668]) ([toon docs]) +- Exclude disabled entities from async_entries_for_device ([@emontnemery] - [#43665]) ([deconz docs]) ([mqtt docs]) ([tasmota docs]) ([tuya docs]) ([unifi docs]) ([zha docs]) +- Add option to deactivate a user ([@spacegaier] - [#43463]) ([config docs]) +- Bugfix schedule assigned to wrong day of week ([@zxdavb] - [#43676]) ([evohome docs]) +- Code quality improvement for evohome ([@zxdavb] - [#43678]) ([evohome docs]) +- Fix Shelly uptime sensor ([@thecode] - [#43651]) ([shelly docs]) +- Convert API integration to async setup ([@balloob] - [#43685]) ([api docs]) +- Eliminate evohome unhandled exceptions when client API call fails ([@zxdavb] - [#43681]) ([evohome docs]) +- Maybe fix flaky test ([@balloob] - [#43690]) ([shelly docs]) +- Stub finding custom integrations in tests ([@balloob] - [#43692]) +- Add Abode MFA support ([@shred86] - [#43572]) ([abode docs]) +- Use run_job for service helper ([@balloob] - [#43696]) ([input_boolean docs]) ([input_datetime docs]) +- Use utcnow from date util for http.ban ([@balloob] - [#43686]) ([http docs]) +- Await callbacks to keep cleaner stacktraces ([@balloob] - [#43693]) ([mqtt docs]) +- Update xknx to 0.15.6 ([@farmio] - [#43645]) ([knx docs]) +- Add system health check to Spotify ([@frenck] - [#43249]) ([spotify docs]) +- Fix exception upon lock initialization on V2 SimpliSafe systems ([@bachya] - [#43705]) ([simplisafe docs]) +- Bump RFLink to v0.0.55 ([@javicalle] - [#43704]) ([rflink docs]) +- Proxy Plex media browser images ([@jjlawren] - [#43111]) ([plex docs]) +- Bump up ZHA dependencies ([@Adminiuga] - [#43707]) ([zha docs]) +- Add support to control cooling in deCONZ climate platform ([@Kane610] - [#43720]) ([deconz docs]) +- Blueprint config to override blueprint ([@balloob] - [#43724]) ([blueprint docs]) +- Ensure MariaDB/MySQL can be purged and handle states being deleted out from under the recorder ([@moinmoin-sh] - [#43610]) ([recorder docs]) +- Bump Brother library to version 0.1.20 ([@bieniu] - [#43628]) ([brother docs]) +- Bump hatasmota to 0.1.2 ([@emontnemery] - [#43719]) ([tasmota docs]) +- Make threshold binary sensor faster ([@balloob] - [#43695]) ([threshold docs]) +- Add Response switch platform to FireServiceRota integration ([@cyberjunky] - [#43700]) ([fireservicerota docs]) (new-platform) +- Add additional events to enhance the ZHA device pairing experience ([@dmulcahey] - [#43729]) ([zha docs]) +- Add a service target ([@balloob] - [#43725]) +- Create tables with a charset that can hold all expected data under mysql ([@bdraco] - [#43732]) ([recorder docs]) +- Allow configuring the delay in the motion light blueprint ([@balloob] - [#43737]) ([automation docs]) +- Add support for multiple tags and devices in tag trigger ([@frenck] - [#43098]) ([tag docs]) +- Remove temporary variable by only retrieving needed value ([@springstan] - [#42522]) +- Bump pypck to v0.7.6 ([@alengwenus] - [#43710]) ([lcn docs]) (breaking-change) +- Use the correct property for full init event ([@dmulcahey] - [#43745]) ([zha docs]) +- ZHA: remove unused 'from_cache' argument from 'async_get_state' and add 'async_update' ([@basnijholt] - [#42413]) ([zha docs]) +- Address FireServiceRota late code review ([@cyberjunky] - [#43741]) ([fireservicerota docs]) +- Always keep the current recorder run when purging ([@bdraco] - [#43733]) ([recorder docs]) +- Add nest device triggers for camera and doorbell events ([@allenporter] - [#43548]) ([nest docs]) +- Report correct weather condition at night for OpenWeatherMap ([@springstan] - [#42982]) ([openweathermap docs]) +- Support asking covers to stop using google assistant ([@elupus] - [#43537]) ([google_assistant docs]) +- Fix updating of Tesla switches after command ([@alandtse] - [#43754]) ([tesla docs]) +- Allow specifying device_id as target ([@balloob] - [#43767]) +- Add system health check to IPMA ([@dgomes] - [#43762]) ([ipma docs]) +- Add device information to solarlog integration ([@Ernst79] - [#43680]) ([solarlog docs]) +- Add hyperion config options flow ([@dermotduffy] - [#43673]) ([hyperion docs]) +- Add show progress to ozw config flow ([@MartinHjelmare] - [#43310]) ([ozw docs]) +- Pin pip < 20.3 ([@MartinHjelmare] - [#43771]) +- Add authentication support to bsblan ([@liudger] - [#42306]) ([bsblan docs]) +- Increase Supervisor add-on helper timeout ([@MartinHjelmare] - [#43778]) ([hassio docs]) +- Add support for device class in target selector ([@balloob] - [#43768]) +- Fix MQTT birth message deadlock ([@emontnemery] - [#43790]) ([mqtt docs]) +- Warn when referencing missing devices/areas ([@balloob] - [#43787]) +- Add lock.open service to nello ([@pattyland] - [#42141]) ([nello docs]) ([nello docs]) +- Migrate foscam to use entity platform entity services ([@balloob] - [#43775]) ([foscam docs]) +- Use entity platform for Neato ([@balloob] - [#43772]) ([neato docs]) +- Upgrade elgato to 1.0.0 ([@frenck] - [#43792]) ([elgato docs]) +- Bump aiorecollect to 0.2.2 ([@bachya] - [#43796]) ([recollect_waste docs]) +- Base area IDs on initial name ([@balloob] - [#43804]) +- Remove unused stuff from ZHA registries ([@abmantis] - [#43786]) ([zha docs]) +- Remove Ubee Router integration (ADR-0004) ([@frenck] - [#43809]) ([ubee docs]) (breaking-change) +- Fix config validation tests for upcoming beta ([@frenck] - [#43811]) +- Remove invalidation version from Airvisual ([@frenck] - [#43810]) ([airvisual docs]) +- Move uptime from relative time to absolute time ([@chemelli74] - [#43623]) ([uptime docs]) (breaking-change) +- Add device action to mobile app to notify ([@balloob] - [#43814]) ([mobile_app docs]) ([notify docs]) +- Use !input instead of !placeholder ([@balloob] - [#43820]) ([automation docs]) ([blueprint docs]) +- Fix wrong temperature setting in LCN climate ([@alengwenus] - [#43818]) ([lcn docs]) +- Make simple deCONZ thermostats work ([@Kane610] - [#43781]) ([deconz docs]) +- Another try to get rid of Shelly flaky test ([@balloob] - [#43821]) ([shelly docs]) +- Add Analog cluster for Lumi plugs ([@Adminiuga] - [#43817]) ([zha docs]) +- Add ozw scene_instance to scene_activated ([@firstof9] - [#43829]) ([ozw docs]) +- Support more edl21 devices and sensors ([@mtdcr] - [#43603]) ([edl21 docs]) +- Update area and target selectors add sequence selector ([@bramkragten] - [#43831]) ([automation docs]) +- Bump libpurecool to 0.6.4 ([@etheralm] - [#43779]) ([dyson docs]) +- Add test for is_internal_request ([@ctalkington] - [#43841]) +- Upgrade TwitterAPI to 2.6.2.1 ([@fabaff] - [#43833]) ([twitter docs]) +- Correct service not found exception message ([@frenck] - [#43846]) +- Upgrade pylast to 4.0.0 ([@fabaff] - [#43830]) ([lastfm docs]) +- Bump pypck to 0.7.7 ([@alengwenus] - [#43824]) ([lcn docs]) +- Use light turn on service ([@balloob] - [#43847]) ([automation docs]) +- Do not warn for weak referenced entities ([@balloob] - [#43848]) ([homeassistant docs]) +- Migrate notify-leaving-zone to use mobile app device action ([@balloob] - [#43832]) ([automation docs]) ([mobile_app docs]) +- Add new number entity integration ([@Shulyaka] - [#42735]) ([demo docs]) ([number docs]) (new-integration) +- Make "invalid password" error message clearer ([@spacegaier] - [#43853]) ([config docs]) +- Guard for when refreshing token fails ([@balloob] - [#43855]) ([spotify docs]) +- Cleanup unique_id on onewire integration ([@epenet] - [#43783]) ([onewire docs]) +- Fix using execute on the notify_leaving_zone ([@balloob] - [#43858]) ([automation docs]) +- deCONZ improve options updating entities ([@Kane610] - [#42320]) ([deconz docs]) +- Deprecate the use of keyring and credstash ([@balloob] - [#43854]) (breaking-change) +- Refactor Apple TV integration ([@postlund] - [#31952]) ([apple_tv docs]) (breaking-change) +- Add preset support to deCONZ climate platform ([@Kane610] - [#43722]) ([deconz docs]) +- Bump androidtv to 0.0.56 ([@JeffLIrion] - [#43859]) +- Add fan support to deCONZ climate platform ([@Kane610] - [#43721]) ([deconz docs]) +- Use Plex websocket payloads to reduce overhead ([@jjlawren] - [#42332]) ([plex docs]) +- Bump Synology DSM to 1.0.1 ([@Quentame] - [#43860]) ([synology_dsm docs]) +- Allow members of allowed groups to talk to telegram_bot ([@wicol] - [#43241]) ([telegram_bot docs]) (breaking-change) +- Add support for system health to Airly integrarion ([@bieniu] - [#43220]) ([airly docs]) +- Add support for system health to AccuWeather integration ([@bieniu] - [#43277]) ([accuweather docs]) +- Automatically select "Solid" effect in Hyperion ([@dermotduffy] - [#43799]) ([hyperion docs]) +- Add support for MQTT Scenes ([@kiall] - [#42639]) ([mqtt docs]) (new-platform) +- Add ozw add-on discovery and mqtt client ([@MartinHjelmare] - [#43838]) ([hassio docs]) ([ozw docs]) +- Add telegram_bot.send_voice service ([@dvv] - [#43433]) ([telegram_bot docs]) +- Updated frontend to 20201202.0 ([@bramkragten] - [#43862]) ([frontend docs]) +- Improve custom datatype parsing in Modbus sensor and climate ([@vzahradnik] - [#42354]) ([modbus docs]) +- Improve handling of disabled devices ([@emontnemery] - [#43864]) ([config docs]) +- Implement new Google TTS API via dedicated library ([@marvin-w] - [#43863]) ([google_translate docs]) + +
+ +[#31952]: https://github.com/home-assistant/core/pull/31952 +[#38206]: https://github.com/home-assistant/core/pull/38206 +[#38882]: https://github.com/home-assistant/core/pull/38882 +[#39398]: https://github.com/home-assistant/core/pull/39398 +[#39671]: https://github.com/home-assistant/core/pull/39671 +[#39734]: https://github.com/home-assistant/core/pull/39734 +[#39945]: https://github.com/home-assistant/core/pull/39945 +[#40429]: https://github.com/home-assistant/core/pull/40429 +[#41091]: https://github.com/home-assistant/core/pull/41091 +[#41310]: https://github.com/home-assistant/core/pull/41310 +[#41473]: https://github.com/home-assistant/core/pull/41473 +[#41714]: https://github.com/home-assistant/core/pull/41714 +[#41729]: https://github.com/home-assistant/core/pull/41729 +[#41999]: https://github.com/home-assistant/core/pull/41999 +[#42030]: https://github.com/home-assistant/core/pull/42030 +[#42103]: https://github.com/home-assistant/core/pull/42103 +[#42141]: https://github.com/home-assistant/core/pull/42141 +[#42198]: https://github.com/home-assistant/core/pull/42198 +[#42306]: https://github.com/home-assistant/core/pull/42306 +[#42311]: https://github.com/home-assistant/core/pull/42311 +[#42314]: https://github.com/home-assistant/core/pull/42314 +[#42320]: https://github.com/home-assistant/core/pull/42320 +[#42332]: https://github.com/home-assistant/core/pull/42332 +[#42338]: https://github.com/home-assistant/core/pull/42338 +[#42354]: https://github.com/home-assistant/core/pull/42354 +[#42413]: https://github.com/home-assistant/core/pull/42413 +[#42429]: https://github.com/home-assistant/core/pull/42429 +[#42484]: https://github.com/home-assistant/core/pull/42484 +[#42522]: https://github.com/home-assistant/core/pull/42522 +[#42584]: https://github.com/home-assistant/core/pull/42584 +[#42639]: https://github.com/home-assistant/core/pull/42639 +[#42700]: https://github.com/home-assistant/core/pull/42700 +[#42710]: https://github.com/home-assistant/core/pull/42710 +[#42711]: https://github.com/home-assistant/core/pull/42711 +[#42735]: https://github.com/home-assistant/core/pull/42735 +[#42907]: https://github.com/home-assistant/core/pull/42907 +[#42909]: https://github.com/home-assistant/core/pull/42909 +[#42980]: https://github.com/home-assistant/core/pull/42980 +[#42982]: https://github.com/home-assistant/core/pull/42982 +[#42989]: https://github.com/home-assistant/core/pull/42989 +[#43036]: https://github.com/home-assistant/core/pull/43036 +[#43045]: https://github.com/home-assistant/core/pull/43045 +[#43058]: https://github.com/home-assistant/core/pull/43058 +[#43063]: https://github.com/home-assistant/core/pull/43063 +[#43076]: https://github.com/home-assistant/core/pull/43076 +[#43097]: https://github.com/home-assistant/core/pull/43097 +[#43098]: https://github.com/home-assistant/core/pull/43098 +[#43100]: https://github.com/home-assistant/core/pull/43100 +[#43107]: https://github.com/home-assistant/core/pull/43107 +[#43111]: https://github.com/home-assistant/core/pull/43111 +[#43112]: https://github.com/home-assistant/core/pull/43112 +[#43128]: https://github.com/home-assistant/core/pull/43128 +[#43130]: https://github.com/home-assistant/core/pull/43130 +[#43133]: https://github.com/home-assistant/core/pull/43133 +[#43134]: https://github.com/home-assistant/core/pull/43134 +[#43136]: https://github.com/home-assistant/core/pull/43136 +[#43138]: https://github.com/home-assistant/core/pull/43138 +[#43139]: https://github.com/home-assistant/core/pull/43139 +[#43141]: https://github.com/home-assistant/core/pull/43141 +[#43142]: https://github.com/home-assistant/core/pull/43142 +[#43149]: https://github.com/home-assistant/core/pull/43149 +[#43162]: https://github.com/home-assistant/core/pull/43162 +[#43164]: https://github.com/home-assistant/core/pull/43164 +[#43165]: https://github.com/home-assistant/core/pull/43165 +[#43166]: https://github.com/home-assistant/core/pull/43166 +[#43167]: https://github.com/home-assistant/core/pull/43167 +[#43176]: https://github.com/home-assistant/core/pull/43176 +[#43177]: https://github.com/home-assistant/core/pull/43177 +[#43180]: https://github.com/home-assistant/core/pull/43180 +[#43184]: https://github.com/home-assistant/core/pull/43184 +[#43197]: https://github.com/home-assistant/core/pull/43197 +[#43200]: https://github.com/home-assistant/core/pull/43200 +[#43202]: https://github.com/home-assistant/core/pull/43202 +[#43209]: https://github.com/home-assistant/core/pull/43209 +[#43212]: https://github.com/home-assistant/core/pull/43212 +[#43215]: https://github.com/home-assistant/core/pull/43215 +[#43217]: https://github.com/home-assistant/core/pull/43217 +[#43220]: https://github.com/home-assistant/core/pull/43220 +[#43221]: https://github.com/home-assistant/core/pull/43221 +[#43231]: https://github.com/home-assistant/core/pull/43231 +[#43233]: https://github.com/home-assistant/core/pull/43233 +[#43239]: https://github.com/home-assistant/core/pull/43239 +[#43240]: https://github.com/home-assistant/core/pull/43240 +[#43241]: https://github.com/home-assistant/core/pull/43241 +[#43242]: https://github.com/home-assistant/core/pull/43242 +[#43243]: https://github.com/home-assistant/core/pull/43243 +[#43246]: https://github.com/home-assistant/core/pull/43246 +[#43247]: https://github.com/home-assistant/core/pull/43247 +[#43249]: https://github.com/home-assistant/core/pull/43249 +[#43255]: https://github.com/home-assistant/core/pull/43255 +[#43259]: https://github.com/home-assistant/core/pull/43259 +[#43263]: https://github.com/home-assistant/core/pull/43263 +[#43267]: https://github.com/home-assistant/core/pull/43267 +[#43271]: https://github.com/home-assistant/core/pull/43271 +[#43272]: https://github.com/home-assistant/core/pull/43272 +[#43276]: https://github.com/home-assistant/core/pull/43276 +[#43277]: https://github.com/home-assistant/core/pull/43277 +[#43282]: https://github.com/home-assistant/core/pull/43282 +[#43283]: https://github.com/home-assistant/core/pull/43283 +[#43284]: https://github.com/home-assistant/core/pull/43284 +[#43287]: https://github.com/home-assistant/core/pull/43287 +[#43293]: https://github.com/home-assistant/core/pull/43293 +[#43302]: https://github.com/home-assistant/core/pull/43302 +[#43304]: https://github.com/home-assistant/core/pull/43304 +[#43310]: https://github.com/home-assistant/core/pull/43310 +[#43311]: https://github.com/home-assistant/core/pull/43311 +[#43313]: https://github.com/home-assistant/core/pull/43313 +[#43314]: https://github.com/home-assistant/core/pull/43314 +[#43321]: https://github.com/home-assistant/core/pull/43321 +[#43325]: https://github.com/home-assistant/core/pull/43325 +[#43328]: https://github.com/home-assistant/core/pull/43328 +[#43333]: https://github.com/home-assistant/core/pull/43333 +[#43336]: https://github.com/home-assistant/core/pull/43336 +[#43339]: https://github.com/home-assistant/core/pull/43339 +[#43350]: https://github.com/home-assistant/core/pull/43350 +[#43353]: https://github.com/home-assistant/core/pull/43353 +[#43354]: https://github.com/home-assistant/core/pull/43354 +[#43357]: https://github.com/home-assistant/core/pull/43357 +[#43366]: https://github.com/home-assistant/core/pull/43366 +[#43367]: https://github.com/home-assistant/core/pull/43367 +[#43368]: https://github.com/home-assistant/core/pull/43368 +[#43370]: https://github.com/home-assistant/core/pull/43370 +[#43373]: https://github.com/home-assistant/core/pull/43373 +[#43383]: https://github.com/home-assistant/core/pull/43383 +[#43391]: https://github.com/home-assistant/core/pull/43391 +[#43395]: https://github.com/home-assistant/core/pull/43395 +[#43396]: https://github.com/home-assistant/core/pull/43396 +[#43402]: https://github.com/home-assistant/core/pull/43402 +[#43403]: https://github.com/home-assistant/core/pull/43403 +[#43407]: https://github.com/home-assistant/core/pull/43407 +[#43413]: https://github.com/home-assistant/core/pull/43413 +[#43415]: https://github.com/home-assistant/core/pull/43415 +[#43416]: https://github.com/home-assistant/core/pull/43416 +[#43418]: https://github.com/home-assistant/core/pull/43418 +[#43420]: https://github.com/home-assistant/core/pull/43420 +[#43433]: https://github.com/home-assistant/core/pull/43433 +[#43434]: https://github.com/home-assistant/core/pull/43434 +[#43441]: https://github.com/home-assistant/core/pull/43441 +[#43442]: https://github.com/home-assistant/core/pull/43442 +[#43447]: https://github.com/home-assistant/core/pull/43447 +[#43448]: https://github.com/home-assistant/core/pull/43448 +[#43449]: https://github.com/home-assistant/core/pull/43449 +[#43450]: https://github.com/home-assistant/core/pull/43450 +[#43452]: https://github.com/home-assistant/core/pull/43452 +[#43453]: https://github.com/home-assistant/core/pull/43453 +[#43456]: https://github.com/home-assistant/core/pull/43456 +[#43463]: https://github.com/home-assistant/core/pull/43463 +[#43471]: https://github.com/home-assistant/core/pull/43471 +[#43473]: https://github.com/home-assistant/core/pull/43473 +[#43476]: https://github.com/home-assistant/core/pull/43476 +[#43478]: https://github.com/home-assistant/core/pull/43478 +[#43479]: https://github.com/home-assistant/core/pull/43479 +[#43484]: https://github.com/home-assistant/core/pull/43484 +[#43485]: https://github.com/home-assistant/core/pull/43485 +[#43490]: https://github.com/home-assistant/core/pull/43490 +[#43496]: https://github.com/home-assistant/core/pull/43496 +[#43498]: https://github.com/home-assistant/core/pull/43498 +[#43503]: https://github.com/home-assistant/core/pull/43503 +[#43504]: https://github.com/home-assistant/core/pull/43504 +[#43508]: https://github.com/home-assistant/core/pull/43508 +[#43511]: https://github.com/home-assistant/core/pull/43511 +[#43514]: https://github.com/home-assistant/core/pull/43514 +[#43516]: https://github.com/home-assistant/core/pull/43516 +[#43517]: https://github.com/home-assistant/core/pull/43517 +[#43521]: https://github.com/home-assistant/core/pull/43521 +[#43523]: https://github.com/home-assistant/core/pull/43523 +[#43536]: https://github.com/home-assistant/core/pull/43536 +[#43537]: https://github.com/home-assistant/core/pull/43537 +[#43541]: https://github.com/home-assistant/core/pull/43541 +[#43546]: https://github.com/home-assistant/core/pull/43546 +[#43548]: https://github.com/home-assistant/core/pull/43548 +[#43549]: https://github.com/home-assistant/core/pull/43549 +[#43551]: https://github.com/home-assistant/core/pull/43551 +[#43552]: https://github.com/home-assistant/core/pull/43552 +[#43555]: https://github.com/home-assistant/core/pull/43555 +[#43564]: https://github.com/home-assistant/core/pull/43564 +[#43572]: https://github.com/home-assistant/core/pull/43572 +[#43578]: https://github.com/home-assistant/core/pull/43578 +[#43579]: https://github.com/home-assistant/core/pull/43579 +[#43583]: https://github.com/home-assistant/core/pull/43583 +[#43594]: https://github.com/home-assistant/core/pull/43594 +[#43597]: https://github.com/home-assistant/core/pull/43597 +[#43598]: https://github.com/home-assistant/core/pull/43598 +[#43602]: https://github.com/home-assistant/core/pull/43602 +[#43603]: https://github.com/home-assistant/core/pull/43603 +[#43607]: https://github.com/home-assistant/core/pull/43607 +[#43608]: https://github.com/home-assistant/core/pull/43608 +[#43610]: https://github.com/home-assistant/core/pull/43610 +[#43611]: https://github.com/home-assistant/core/pull/43611 +[#43619]: https://github.com/home-assistant/core/pull/43619 +[#43623]: https://github.com/home-assistant/core/pull/43623 +[#43628]: https://github.com/home-assistant/core/pull/43628 +[#43636]: https://github.com/home-assistant/core/pull/43636 +[#43638]: https://github.com/home-assistant/core/pull/43638 +[#43639]: https://github.com/home-assistant/core/pull/43639 +[#43641]: https://github.com/home-assistant/core/pull/43641 +[#43642]: https://github.com/home-assistant/core/pull/43642 +[#43645]: https://github.com/home-assistant/core/pull/43645 +[#43650]: https://github.com/home-assistant/core/pull/43650 +[#43651]: https://github.com/home-assistant/core/pull/43651 +[#43655]: https://github.com/home-assistant/core/pull/43655 +[#43658]: https://github.com/home-assistant/core/pull/43658 +[#43659]: https://github.com/home-assistant/core/pull/43659 +[#43663]: https://github.com/home-assistant/core/pull/43663 +[#43665]: https://github.com/home-assistant/core/pull/43665 +[#43667]: https://github.com/home-assistant/core/pull/43667 +[#43668]: https://github.com/home-assistant/core/pull/43668 +[#43673]: https://github.com/home-assistant/core/pull/43673 +[#43676]: https://github.com/home-assistant/core/pull/43676 +[#43678]: https://github.com/home-assistant/core/pull/43678 +[#43680]: https://github.com/home-assistant/core/pull/43680 +[#43681]: https://github.com/home-assistant/core/pull/43681 +[#43682]: https://github.com/home-assistant/core/pull/43682 +[#43684]: https://github.com/home-assistant/core/pull/43684 +[#43685]: https://github.com/home-assistant/core/pull/43685 +[#43686]: https://github.com/home-assistant/core/pull/43686 +[#43690]: https://github.com/home-assistant/core/pull/43690 +[#43692]: https://github.com/home-assistant/core/pull/43692 +[#43693]: https://github.com/home-assistant/core/pull/43693 +[#43695]: https://github.com/home-assistant/core/pull/43695 +[#43696]: https://github.com/home-assistant/core/pull/43696 +[#43700]: https://github.com/home-assistant/core/pull/43700 +[#43704]: https://github.com/home-assistant/core/pull/43704 +[#43705]: https://github.com/home-assistant/core/pull/43705 +[#43707]: https://github.com/home-assistant/core/pull/43707 +[#43710]: https://github.com/home-assistant/core/pull/43710 +[#43719]: https://github.com/home-assistant/core/pull/43719 +[#43720]: https://github.com/home-assistant/core/pull/43720 +[#43721]: https://github.com/home-assistant/core/pull/43721 +[#43722]: https://github.com/home-assistant/core/pull/43722 +[#43724]: https://github.com/home-assistant/core/pull/43724 +[#43725]: https://github.com/home-assistant/core/pull/43725 +[#43729]: https://github.com/home-assistant/core/pull/43729 +[#43732]: https://github.com/home-assistant/core/pull/43732 +[#43733]: https://github.com/home-assistant/core/pull/43733 +[#43737]: https://github.com/home-assistant/core/pull/43737 +[#43741]: https://github.com/home-assistant/core/pull/43741 +[#43745]: https://github.com/home-assistant/core/pull/43745 +[#43754]: https://github.com/home-assistant/core/pull/43754 +[#43762]: https://github.com/home-assistant/core/pull/43762 +[#43767]: https://github.com/home-assistant/core/pull/43767 +[#43768]: https://github.com/home-assistant/core/pull/43768 +[#43771]: https://github.com/home-assistant/core/pull/43771 +[#43772]: https://github.com/home-assistant/core/pull/43772 +[#43775]: https://github.com/home-assistant/core/pull/43775 +[#43778]: https://github.com/home-assistant/core/pull/43778 +[#43779]: https://github.com/home-assistant/core/pull/43779 +[#43781]: https://github.com/home-assistant/core/pull/43781 +[#43783]: https://github.com/home-assistant/core/pull/43783 +[#43786]: https://github.com/home-assistant/core/pull/43786 +[#43787]: https://github.com/home-assistant/core/pull/43787 +[#43790]: https://github.com/home-assistant/core/pull/43790 +[#43792]: https://github.com/home-assistant/core/pull/43792 +[#43796]: https://github.com/home-assistant/core/pull/43796 +[#43799]: https://github.com/home-assistant/core/pull/43799 +[#43804]: https://github.com/home-assistant/core/pull/43804 +[#43809]: https://github.com/home-assistant/core/pull/43809 +[#43810]: https://github.com/home-assistant/core/pull/43810 +[#43811]: https://github.com/home-assistant/core/pull/43811 +[#43814]: https://github.com/home-assistant/core/pull/43814 +[#43817]: https://github.com/home-assistant/core/pull/43817 +[#43818]: https://github.com/home-assistant/core/pull/43818 +[#43820]: https://github.com/home-assistant/core/pull/43820 +[#43821]: https://github.com/home-assistant/core/pull/43821 +[#43824]: https://github.com/home-assistant/core/pull/43824 +[#43829]: https://github.com/home-assistant/core/pull/43829 +[#43830]: https://github.com/home-assistant/core/pull/43830 +[#43831]: https://github.com/home-assistant/core/pull/43831 +[#43832]: https://github.com/home-assistant/core/pull/43832 +[#43833]: https://github.com/home-assistant/core/pull/43833 +[#43838]: https://github.com/home-assistant/core/pull/43838 +[#43841]: https://github.com/home-assistant/core/pull/43841 +[#43846]: https://github.com/home-assistant/core/pull/43846 +[#43847]: https://github.com/home-assistant/core/pull/43847 +[#43848]: https://github.com/home-assistant/core/pull/43848 +[#43853]: https://github.com/home-assistant/core/pull/43853 +[#43854]: https://github.com/home-assistant/core/pull/43854 +[#43855]: https://github.com/home-assistant/core/pull/43855 +[#43858]: https://github.com/home-assistant/core/pull/43858 +[#43859]: https://github.com/home-assistant/core/pull/43859 +[#43860]: https://github.com/home-assistant/core/pull/43860 +[#43862]: https://github.com/home-assistant/core/pull/43862 +[#43863]: https://github.com/home-assistant/core/pull/43863 +[#43864]: https://github.com/home-assistant/core/pull/43864 +[@100ferhas]: https://github.com/100ferhas +[@Adminiuga]: https://github.com/Adminiuga +[@Alex-Klein]: https://github.com/Alex-Klein +[@BKPepe]: https://github.com/BKPepe +[@Cereal2nd]: https://github.com/Cereal2nd +[@CoMPaTech]: https://github.com/CoMPaTech +[@CrashWorksLLC]: https://github.com/CrashWorksLLC +[@Danielhiversen]: https://github.com/Danielhiversen +[@Danielinte]: https://github.com/Danielinte +[@Ernst79]: https://github.com/Ernst79 +[@FlavorFx]: https://github.com/FlavorFx +[@FrnchFrgg]: https://github.com/FrnchFrgg +[@GuyKh]: https://github.com/GuyKh +[@JJdeVries]: https://github.com/JJdeVries +[@Jc2k]: https://github.com/Jc2k +[@JeffLIrion]: https://github.com/JeffLIrion +[@Kane610]: https://github.com/Kane610 +[@LordBoos]: https://github.com/LordBoos +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@Quentame]: https://github.com/Quentame +[@RobBie1221]: https://github.com/RobBie1221 +[@Shulyaka]: https://github.com/Shulyaka +[@TheLastProject]: https://github.com/TheLastProject +[@Toxblh]: https://github.com/Toxblh +[@abmantis]: https://github.com/abmantis +[@adamkrol93]: https://github.com/adamkrol93 +[@adriansuwala]: https://github.com/adriansuwala +[@adrum]: https://github.com/adrum +[@ahayworth]: https://github.com/ahayworth +[@alandtse]: https://github.com/alandtse +[@alemuro]: https://github.com/alemuro +[@alengwenus]: https://github.com/alengwenus +[@allenporter]: https://github.com/allenporter +[@amelchio]: https://github.com/amelchio +[@andrewsayre]: https://github.com/andrewsayre +[@atmurray]: https://github.com/atmurray +[@b4dpxl]: https://github.com/b4dpxl +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@basnijholt]: https://github.com/basnijholt +[@bdraco]: https://github.com/bdraco +[@bieniu]: https://github.com/bieniu +[@boxcee]: https://github.com/boxcee +[@bramkragten]: https://github.com/bramkragten +[@briglx]: https://github.com/briglx +[@cgarwood]: https://github.com/cgarwood +[@chemelli74]: https://github.com/chemelli74 +[@ctalkington]: https://github.com/ctalkington +[@cyberjunky]: https://github.com/cyberjunky +[@czechmark]: https://github.com/czechmark +[@danielrheinbay]: https://github.com/danielrheinbay +[@denics]: https://github.com/denics +[@dermotduffy]: https://github.com/dermotduffy +[@dgomes]: https://github.com/dgomes +[@djtimca]: https://github.com/djtimca +[@dmulcahey]: https://github.com/dmulcahey +[@dr1rrb]: https://github.com/dr1rrb +[@dvv]: https://github.com/dvv +[@ehendrix23]: https://github.com/ehendrix23 +[@elupus]: https://github.com/elupus +[@emontnemery]: https://github.com/emontnemery +[@epenet]: https://github.com/epenet +[@etheralm]: https://github.com/etheralm +[@fabaff]: https://github.com/fabaff +[@farmio]: https://github.com/farmio +[@felipediel]: https://github.com/felipediel +[@firstof9]: https://github.com/firstof9 +[@flowolf]: https://github.com/flowolf +[@frenck]: https://github.com/frenck +[@fronzbot]: https://github.com/fronzbot +[@gtdiehl]: https://github.com/gtdiehl +[@iprak]: https://github.com/iprak +[@jasperslits]: https://github.com/jasperslits +[@javache]: https://github.com/javache +[@javicalle]: https://github.com/javicalle +[@jjlawren]: https://github.com/jjlawren +[@kiall]: https://github.com/kiall +[@klaasnicolaas]: https://github.com/klaasnicolaas +[@koolsb]: https://github.com/koolsb +[@liudger]: https://github.com/liudger +[@mLupine]: https://github.com/mLupine +[@marvin-w]: https://github.com/marvin-w +[@mib1185]: https://github.com/mib1185 +[@moinmoin-sh]: https://github.com/moinmoin-sh +[@mtdcr]: https://github.com/mtdcr +[@mvn23]: https://github.com/mvn23 +[@ofalvai]: https://github.com/ofalvai +[@pattyland]: https://github.com/pattyland +[@pavoni]: https://github.com/pavoni +[@postlund]: https://github.com/postlund +[@rytilahti]: https://github.com/rytilahti +[@scarface-4711]: https://github.com/scarface-4711 +[@scop]: https://github.com/scop +[@shenxn]: https://github.com/shenxn +[@shocklateboy92]: https://github.com/shocklateboy92 +[@shred86]: https://github.com/shred86 +[@spacegaier]: https://github.com/spacegaier +[@springstan]: https://github.com/springstan +[@squishykid]: https://github.com/squishykid +[@starkillerOG]: https://github.com/starkillerOG +[@syssi]: https://github.com/syssi +[@tetienne]: https://github.com/tetienne +[@thecode]: https://github.com/thecode +[@thimic]: https://github.com/thimic +[@thomasdelaet]: https://github.com/thomasdelaet +[@tim427]: https://github.com/tim427 +[@timmo001]: https://github.com/timmo001 +[@ttuffin]: https://github.com/ttuffin +[@vzahradnik]: https://github.com/vzahradnik +[@wicol]: https://github.com/wicol +[@zxdavb]: https://github.com/zxdavb +[abode docs]: /integrations/abode/ +[accuweather docs]: /integrations/accuweather/ +[acmeda docs]: /integrations/acmeda/ +[airly docs]: /integrations/airly/ +[airvisual docs]: /integrations/airvisual/ +[alexa docs]: /integrations/alexa/ +[ambient_station docs]: /integrations/ambient_station/ +[api docs]: /integrations/api/ +[apple_tv docs]: /integrations/apple_tv/ +[asuswrt docs]: /integrations/asuswrt/ +[aurora docs]: /integrations/aurora/ +[automation docs]: /integrations/automation/ +[awair docs]: /integrations/awair/ +[beewi_smartclim docs]: /integrations/beewi_smartclim/ +[blink docs]: /integrations/blink/ +[blueprint docs]: /integrations/blueprint/ +[broadlink docs]: /integrations/broadlink/ +[brother docs]: /integrations/brother/ +[bsblan docs]: /integrations/bsblan/ +[cert_expiry docs]: /integrations/cert_expiry/ +[cloud docs]: /integrations/cloud/ +[config docs]: /integrations/config/ +[debugpy docs]: /integrations/debugpy/ +[deconz docs]: /integrations/deconz/ +[default_config docs]: /integrations/default_config/ +[demo docs]: /integrations/demo/ +[denonavr docs]: /integrations/denonavr/ +[derivative docs]: /integrations/derivative/ +[device_tracker docs]: /integrations/device_tracker/ +[directv docs]: /integrations/directv/ +[doorbird docs]: /integrations/doorbird/ +[dsmr docs]: /integrations/dsmr/ +[dsmr_reader docs]: /integrations/dsmr_reader/ +[dyson docs]: /integrations/dyson/ +[ecobee docs]: /integrations/ecobee/ +[eddystone_temperature docs]: /integrations/eddystone_temperature/ +[edl21 docs]: /integrations/edl21/ +[elgato docs]: /integrations/elgato/ +[enphase_envoy docs]: /integrations/enphase_envoy/ +[eq3btsmart docs]: /integrations/eq3btsmart/ +[esphome docs]: /integrations/esphome/ +[essent docs]: /integrations/essent/ +[evohome docs]: /integrations/evohome/ +[fan docs]: /integrations/fan/ +[fireservicerota docs]: /integrations/fireservicerota/ +[fitbit docs]: /integrations/fitbit/ +[flo docs]: /integrations/flo/ +[foobot docs]: /integrations/foobot/ +[foscam docs]: /integrations/foscam/ +[frontend docs]: /integrations/frontend/ +[google_assistant docs]: /integrations/google_assistant/ +[google_translate docs]: /integrations/google_translate/ +[google_wifi docs]: /integrations/google_wifi/ +[group docs]: /integrations/group/ +[hassio docs]: /integrations/hassio/ +[heos docs]: /integrations/heos/ +[history_stats docs]: /integrations/history_stats/ +[homeassistant docs]: /integrations/homeassistant/ +[homekit_controller docs]: /integrations/homekit_controller/ +[http docs]: /integrations/http/ +[hyperion docs]: /integrations/hyperion/ +[input_boolean docs]: /integrations/input_boolean/ +[input_datetime docs]: /integrations/input_datetime/ +[input_number docs]: /integrations/input_number/ +[ios docs]: /integrations/ios/ +[ipma docs]: /integrations/ipma/ +[knx docs]: /integrations/knx/ +[kodi docs]: /integrations/kodi/ +[lastfm docs]: /integrations/lastfm/ +[lcn docs]: /integrations/lcn/ +[local_ip docs]: /integrations/local_ip/ +[luftdaten docs]: /integrations/luftdaten/ +[media_extractor docs]: /integrations/media_extractor/ +[media_player docs]: /integrations/media_player/ +[meraki docs]: /integrations/meraki/ +[met docs]: /integrations/met/ +[mill docs]: /integrations/mill/ +[mobile_app docs]: /integrations/mobile_app/ +[modbus docs]: /integrations/modbus/ +[motion_blinds docs]: /integrations/motion_blinds/ +[mqtt docs]: /integrations/mqtt/ +[myq docs]: /integrations/myq/ +[neato docs]: /integrations/neato/ +[nello docs]: /integrations/nello/ +[nest docs]: /integrations/nest/ +[notify docs]: /integrations/notify/ +[notion docs]: /integrations/notion/ +[number docs]: /integrations/number/ +[onewire docs]: /integrations/onewire/ +[onvif docs]: /integrations/onvif/ +[openuv docs]: /integrations/openuv/ +[openweathermap docs]: /integrations/openweathermap/ +[ovo_energy docs]: /integrations/ovo_energy/ +[ozw docs]: /integrations/ozw/ +[plex docs]: /integrations/plex/ +[plugwise docs]: /integrations/plugwise/ +[point docs]: /integrations/point/ +[pvoutput docs]: /integrations/pvoutput/ +[rainmachine docs]: /integrations/rainmachine/ +[recollect_waste docs]: /integrations/recollect_waste/ +[recorder docs]: /integrations/recorder/ +[remote docs]: /integrations/remote/ +[rest docs]: /integrations/rest/ +[rflink docs]: /integrations/rflink/ +[roomba docs]: /integrations/roomba/ +[rpi_power docs]: /integrations/rpi_power/ +[salt docs]: /integrations/salt/ +[scrape docs]: /integrations/scrape/ +[sensehat docs]: /integrations/sensehat/ +[sentry docs]: /integrations/sentry/ +[seventeentrack docs]: /integrations/seventeentrack/ +[shelly docs]: /integrations/shelly/ +[simplisafe docs]: /integrations/simplisafe/ +[smartthings docs]: /integrations/smartthings/ +[solaredge docs]: /integrations/solaredge/ +[solarlog docs]: /integrations/solarlog/ +[solax docs]: /integrations/solax/ +[somfy docs]: /integrations/somfy/ +[sonos docs]: /integrations/sonos/ +[spotify docs]: /integrations/spotify/ +[srp_energy docs]: /integrations/srp_energy/ +[surepetcare docs]: /integrations/surepetcare/ +[synology_dsm docs]: /integrations/synology_dsm/ +[tag docs]: /integrations/tag/ +[tasmota docs]: /integrations/tasmota/ +[telegram_bot docs]: /integrations/telegram_bot/ +[tellduslive docs]: /integrations/tellduslive/ +[template docs]: /integrations/template/ +[tesla docs]: /integrations/tesla/ +[threshold docs]: /integrations/threshold/ +[time_date docs]: /integrations/time_date/ +[toon docs]: /integrations/toon/ +[tplink docs]: /integrations/tplink/ +[tuya docs]: /integrations/tuya/ +[twinkly docs]: /integrations/twinkly/ +[twitter docs]: /integrations/twitter/ +[ubee docs]: /integrations/ubee/ +[unifi docs]: /integrations/unifi/ +[uptime docs]: /integrations/uptime/ +[utility_meter docs]: /integrations/utility_meter/ +[vasttrafik docs]: /integrations/vasttrafik/ +[watson_tts docs]: /integrations/watson_tts/ +[websocket_api docs]: /integrations/websocket_api/ +[wemo docs]: /integrations/wemo/ +[wolflink docs]: /integrations/wolflink/ +[xiaomi docs]: /integrations/xiaomi/ +[xiaomi_miio docs]: /integrations/xiaomi_miio/ +[yeelight docs]: /integrations/yeelight/ +[yessssms docs]: /integrations/yessssms/ +[zha docs]: /integrations/zha/ +[zone docs]: /integrations/zone/ diff --git a/source/images/blog/2020-12-1.0/social.png b/source/images/blog/2020-12-1.0/social.png new file mode 100644 index 0000000000000000000000000000000000000000..48a46a388732d1cd521de8722f649dbfc75b87a3 GIT binary patch literal 120822 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

c~x4G1z-EDLSh@j+U%vt|u6canBn+L_) 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 a7uUcDNt@@h3~vDd{zF4mTcr|e6Y*cj#crhl literal 0 HcmV?d00001 From 3407705f98b9982040700ce38796213a51ff7c51 Mon Sep 17 00:00:00 2001 From: Emily Mills Date: Wed, 2 Dec 2020 17:04:32 -0600 Subject: [PATCH 02/92] Add docs for the new Kuler Sky integration (#15410) Co-authored-by: Paulus Schoutsen --- source/_integrations/kulersky.markdown | 46 ++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 source/_integrations/kulersky.markdown diff --git a/source/_integrations/kulersky.markdown b/source/_integrations/kulersky.markdown new file mode 100644 index 00000000000..5ac71d6e9f8 --- /dev/null +++ b/source/_integrations/kulersky.markdown @@ -0,0 +1,46 @@ +--- +title: Kuler Sky +description: Instructions for integrating Brightech Kuler Sky Bluetooth floor lamps with Home Assistant. +ha_category: + - Light +ha_iot_class: Local Polling +ha_release: '1.0.0' +ha_domain: kulersky +ha_codeowners: + - '@emlove' +ha_config_flow: true +--- + +This integration connects Brightech Kuler Sky floor lamps to Home Assistant. + +## Configuration + +This integration can be configured using the integrations page in Home Assistant. + +Menu: **Configuration** -> **Integrations**. + +Click on the `+` sign to add an integration and search for **Kuler Sky**. + +The integration will scan for nearby Bluetooth devices, and ask you to select your lamp. + +## Additional information for Home Assistant Core on Python environments + +This integration requires `pybluez` to be installed. On Debian based installs, run: + +```bash +sudo apt install bluetooth +``` + +Before you get started with this integration, please note that: + +- Requires access to the Bluetooth stack, see [Rootless Setup section](#rootless-setup) for further information + +## Rootless Setup + +Normally accessing the Bluetooth stack is reserved for `root`, but running programs that are networked as `root` is a bad security wise. To allow non-root access to the Bluetooth stack we can give Python 3 and `hcitool` the missing capabilities to access the Bluetooth stack. Quite like setting the setuid bit (see [Stack Exchange](https://unix.stackexchange.com/questions/96106/bluetooth-le-scan-as-non-root) for more information). + +```bash +sudo apt-get install libcap2-bin +sudo setcap 'cap_net_raw,cap_net_admin+eip' `readlink -f \`which python3\`` +sudo setcap 'cap_net_raw+ep' `readlink -f \`which hcitool\`` +``` From b9c063cb7f7d196f7e399f52f905e1814695f419 Mon Sep 17 00:00:00 2001 From: Matthias Alphart Date: Wed, 2 Dec 2020 21:25:23 +0100 Subject: [PATCH 03/92] knx - cover: add device_class configuration (#15807) --- source/_integrations/knx.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_integrations/knx.markdown b/source/_integrations/knx.markdown index 9eef63b5d98..732b07c26d9 100644 --- a/source/_integrations/knx.markdown +++ b/source/_integrations/knx.markdown @@ -666,6 +666,10 @@ invert_angle: required: false default: false type: boolean +device_class: + description: Sets the [class of the device](/integrations/cover/), changing the device state and icon that is displayed on the frontend. + required: false + type: string {% endconfiguration %} ## Light From 48af733066e8a534d13b842eff0d4e5eb9da4b92 Mon Sep 17 00:00:00 2001 From: Shulyaka Date: Wed, 2 Dec 2020 23:21:20 +0300 Subject: [PATCH 04/92] Add number entity to demo platform (#15809) --- source/_integrations/demo.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_integrations/demo.markdown b/source/_integrations/demo.markdown index 824323274a8..f47d63d3d38 100644 --- a/source/_integrations/demo.markdown +++ b/source/_integrations/demo.markdown @@ -30,6 +30,7 @@ Available demo platforms: - [Mailbox](/integrations/mailbox/) (`mailbox`) - [Media Player](/integrations/media_player/) (`media_player`) - [Notification](/integrations/notify/) (`notify`) +- [Number](/integrations/number/) (`number`) - [Remote](/integrations/remote/) (`remote`) - [Sensor](/integrations/sensor/) (`sensor`) - [Switch](/integrations/switch/) (`switch`) From f4cc86387788db5f46ad1351cc444e0c4295b70f Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 4 Dec 2020 10:26:04 +0100 Subject: [PATCH 05/92] Reorg automation docs and add a using blueprints section (#15811) Co-authored-by: Franck Nijhof Co-authored-by: Zack Barett --- source/_docs/automation.markdown | 40 +---- source/_docs/automation/basics.markdown | 46 ++++++ source/_docs/automation/editor.markdown | 72 +-------- source/_docs/automation/examples.markdown | 77 ---------- source/_docs/automation/modes.markdown | 53 +++++++ source/_docs/automation/services.markdown | 46 ++++++ .../automation/using_blueprints.markdown | 45 ++++++ source/_docs/automation/yaml.markdown | 145 ++++++++++++++++++ source/_includes/asides/docs_navigation.html | 6 +- source/_integrations/automation.markdown | 110 +------------ source/_redirects | 1 + 11 files changed, 350 insertions(+), 291 deletions(-) create mode 100644 source/_docs/automation/basics.markdown delete mode 100644 source/_docs/automation/examples.markdown create mode 100644 source/_docs/automation/modes.markdown create mode 100644 source/_docs/automation/services.markdown create mode 100644 source/_docs/automation/using_blueprints.markdown create mode 100644 source/_docs/automation/yaml.markdown diff --git a/source/_docs/automation.markdown b/source/_docs/automation.markdown index 6294c48f783..85a9b72a15e 100644 --- a/source/_docs/automation.markdown +++ b/source/_docs/automation.markdown @@ -3,42 +3,14 @@ title: "Automating Home Assistant" description: "Steps to help you get automation setup in Home Assistant." --- -Home Assistant offers a wide range of automation configurations. In this section, we'll try to guide you through all the different possibilities and options. Besides this documentation, there are also a couple of people who have made their automations [publicly available](/cookbook/#example-configurationyaml). +Home Assistant contains information about all your devices and services. This information is not only available for the user in the dashboard, it can also be used to trigger automations. And that's fun! -Please see [Automation Integration](/integrations/automation/) for configuration options and services. +Automations in Home Assistant allow you to automatically respond to things that happen. You can turn the lights on at sunset or pause the music when you receive a call. -### Automation basics +If you are just starting out, we strongly suggest you start with blueprint automations. These are ready-made automations by the community that you only need to configure. -Before you can go ahead and create your own automations, it's important to learn the basics. To explore these, let's have a look at the following example home automation rule: +### [Learn about automation blueprints »](/docs/automation/using_blueprints/) -```text -(trigger) When Paulus arrives home -(condition) and it is after sunset: -(action) Turn the lights in the living room on -``` +If you got the hang of blueprints and need more, it's time for the next step. But before we can start creating automations, you will need to learn about the automation basics. -The example consists of three different parts: a [trigger](/docs/automation/trigger/), a [condition](/docs/automation/condition/) and an [action](/docs/automation/action/). - -The first line is the **trigger** of the automation rule. Triggers describe events that should trigger the automation rule. In this case, it is a person arriving home, which can be observed in Home Assistant by observing the state of Paulus changing from 'not_home' to 'home'. - -The second line is the **condition**. Conditions are optional tests that can limit an automation rule to only work in your specific use cases. A condition will test against the current state of the system. This includes the current time, devices, people and other things like the sun. In this case, we only want to act when the sun has set. - -The third part is the **action**, which will be performed when a rule is triggered and all conditions are met. For example, it can turn a light on, set the temperature on your thermostat or activate a scene. - -

-The difference between a condition and a trigger can be confusing as they are very similar. Triggers look at the actions, while conditions look at the results: turning a light on versus a light being on. -
- -### Exploring the internal state - -Automation rules interact directly with the internal state of Home Assistant, so you'll need to familiarize yourself with it. Home Assistant exposes its current state via the developer tools. These are available at the bottom of the sidebar in the frontend. **Developer Tools** -> **States** will show all currently available states. An entity can be anything. A light, a switch, a person and even the sun. A state consists of the following parts: - -| Name | Description | Example | -| ---- | ----- | ---- | -| Entity ID | Unique identifier for the entity. | `light.kitchen` -| State | The current state of the device. | `home` -| Attributes | Extra data related to the device and/or current state. | `brightness` - -State changes can be used as the source of triggers and the current state can be used in conditions. - -Actions are all about calling services. To explore the available services open the **Developer Tools** -> **Services**. Services allow to change anything. For example turn on a light, run a script or enable a scene. Each service has a domain and a name. For example the service `light.turn_on` is capable of turning on any light in your system. Services can be passed parameters to for example tell which device to turn on or what color to use. +### [Learn about automation basics »](/docs/automation/basics/) diff --git a/source/_docs/automation/basics.markdown b/source/_docs/automation/basics.markdown new file mode 100644 index 00000000000..fb46acb9a40 --- /dev/null +++ b/source/_docs/automation/basics.markdown @@ -0,0 +1,46 @@ +--- +title: "Understanding Automations" +description: "A breakdown of what an automation consists of." +--- + +All automations are made up of a trigger and an action. Optionally combined with a condition. Take for example the automation: + +> When Paulus arrives home and it is after sunset: Turn the lights on in the living room.". + +We can break up this automation into the following three parts: + +```text +(trigger) When Paulus arrives home +(condition) and it is after sunset: +(action) Turn the lights on in the living room +``` + +The first part is the [trigger](/docs/automation/trigger/) of the automation rule. Triggers describe events that should trigger the automation rule. In this case, it is a person arriving home, which can be observed in Home Assistant by observing the state of Paulus changing from 'not_home' to 'home'. + +The second part is the [condition](/docs/automation/condition/). Conditions are optional tests that can limit an automation rule to only work in your specific use cases. A condition will test against the current state of the system. This includes the current time, devices, people and other things like the sun. In this case, we only want to act when the sun has set. + +The third part is the [action](/docs/automation/action/), which will be performed when a rule is triggered and all conditions are met. For example, it can turn a light on, set the temperature on your thermostat or activate a scene. + +
+The difference between a condition and a trigger can be confusing as they are very similar. Triggers look at the actions, while conditions look at the results: turning a light on versus a light being on. +
+ +## Exploring the internal state + +Automation rules interact directly with the internal state of Home Assistant, so you'll need to familiarize yourself with it. Home Assistant exposes its current state via the developer tools. These are available at the bottom of the sidebar in the frontend. **Developer Tools** -> **States** will show all currently available states. An entity can be anything. A light, a switch, a person and even the sun. A state consists of the following parts: + +| Name | Description | Example | +| ---- | ----- | ---- | +| Entity ID | Unique identifier for the entity. | `light.kitchen` +| State | The current state of the device. | `home` +| Attributes | Extra data related to the device and/or current state. | `brightness` + +State changes can be used as the source of triggers and the current state can be used in conditions. + +Actions are all about calling services. To explore the available services open the **Developer Tools** -> **Services**. Services allow changing anything. For example turn on a light, run a script or enable a scene. Each service has a domain and a name. For example the service `light.turn_on` is capable of turning on any light in your system. Services can be passed parameters to for example tell which device to turn on or what color to use. + +## Creating automations + +Now that you've got a sneak peek of what is possible, it's time to get your feet wet and create your first automation. + +### [Using the automation editor »](/docs/automation/editor/) diff --git a/source/_docs/automation/editor.markdown b/source/_docs/automation/editor.markdown index a1ad5f128a3..6e3b2e3b0da 100644 --- a/source/_docs/automation/editor.markdown +++ b/source/_docs/automation/editor.markdown @@ -3,8 +3,6 @@ title: "Automation Editor" description: "Instructions on how to use the automation editor." --- -In Home Assistant 0.45 we introduced the first version of our automation editor. If you just created a new configuration with Home Assistant, then you're all set! Go to the UI and enjoy. - From the UI choose **Configuration** which is located in the sidebar, then click on **Automation** to go to the automation editor. Press the **+** sign in the lower right corner to get started. This example is based on the manual steps described in the [Getting started section](/getting-started/automation/) for a [`random` sensor](/integrations/random#sensor). Choose a meaningful name for your automation rules. @@ -27,75 +25,9 @@ Firing a [persistent notification](/integrations/persistent_notification/) is th As "Service Data" we want a simple text that is shown as part of the notification. -```json -{ - "message": "Sensor value greater than 10" -} +```yaml +message: Sensor value greater than 10 ``` Don't forget to save your new automation rule. For your saved automation rule to come into effect, you will need to go to the **Configuration** page and click on **Reload Automation**. -## Updating your configuration to use the editor - -First, check that you have activated the configuration editor. - -```yaml -# Activate the configuration editor -config: -``` - -The automation editor reads and writes to the file `automations.yaml` in the root of your [configuration](/docs/configuration/) folder. -Currently, both the name of this file and its location are fixed. -Make sure that you have set up the automation integration to read from it: - -```yaml -# Configuration.yaml example -automation: !include automations.yaml -``` - -If you still want to use your old automation section, add a label to the old entry: - -```yaml -automation old: -- trigger: - platform: ... -``` - -You can use the `automation:` and `automation old:` sections at the same time: - - `automation old:` to keep your manual designed automations - - `automation:` to save the automation created by the online editor - -```yaml -automation: !include automations.yaml -automation old: !include_dir_merge_list automations -``` - - -## Migrating your automations to `automations.yaml` - -If you want to migrate your old automations to use the editor, you'll have to copy them to `automations.yaml`. Make sure that `automations.yaml` remains a list! For each automation that you copy over, you'll have to add an `id`. This can be any string as long as it's unique. - -For example, the below automation will be triggered when the sun goes from below the horizon to above the horizon. Then, if the temperature is between 17 and 25 degrees, a light will be turned on. - -```yaml -# Example automations.yaml entry -- id: my_unique_id # <-- Required for editor to work, for automations created with the editor the id will be automatically generated. - alias: Hello world - trigger: - - platform: state - entity_id: sun.sun - from: below_horizon - to: above_horizon - condition: - - condition: numeric_state - entity_id: sensor.temperature - above: 17 - below: 25 - value_template: '{% raw %}{{ float(state.state) + 2 }}{% endraw %}' - action: - - service: light.turn_on -``` - -
-Any comments in the YAML file will be lost and templates will be reformatted when you update an automation via the editor. -
diff --git a/source/_docs/automation/examples.markdown b/source/_docs/automation/examples.markdown deleted file mode 100644 index 2a9e33309b2..00000000000 --- a/source/_docs/automation/examples.markdown +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: "Automation Examples" -description: "Some automation examples to get you started." ---- - -Just some sample automation rules to get you started. - -{% raw %} -```yaml -# Example of entry in configuration.yaml -automation: -# Turns on lights 1 hour before sunset if people are home -# and if people get home between 16:00-23:00 - - alias: 'Rule 1 Light on in the evening' - trigger: - # Prefix the first line of each trigger configuration - # with a '-' to enter multiple - - platform: sun - event: sunset - offset: '-01:00:00' - - platform: state - entity_id: all - to: 'home' - condition: - # Prefix the first line of each condition configuration - # with a '-'' to enter multiple - - condition: state - entity_id: all - state: 'home' - - condition: time - after: '16:00:00' - before: '23:00:00' - action: - # With a single service call, we don't need a '-' before service - though you can if you want to - service: homeassistant.turn_on - entity_id: group.living_room - -# Turn off lights when everybody leaves the house - - alias: 'Rule 2 - Away Mode' - trigger: - platform: state - entity_id: all - to: 'not_home' - action: - service: light.turn_off - entity_id: all - -# Notify when Paulus leaves the house in the evening - - alias: 'Leave Home notification' - trigger: - platform: zone - event: leave - zone: zone.home - entity_id: device_tracker.paulus - condition: - condition: time - after: '20:00' - action: - service: notify.notify - data: - message: 'Paulus left the house' - -# Send a notification via Pushover with the event of a Xiaomi cube. Custom event from the Xiaomi component. - - alias: 'Xiaomi Cube Action' - initial_state: false - trigger: - platform: event - event_type: cube_action - event_data: - entity_id: binary_sensor.cube_158d000103a3de - action: - service: notify.pushover - data: - title: "Cube event detected" - message: "Cube has triggered this event: {{ trigger.event }}" -``` -{% endraw %} diff --git a/source/_docs/automation/modes.markdown b/source/_docs/automation/modes.markdown new file mode 100644 index 00000000000..70b083f3f07 --- /dev/null +++ b/source/_docs/automation/modes.markdown @@ -0,0 +1,53 @@ +--- +title: "Automation Modes" +description: "How to use and configure automation modes." +--- + +An automation can be triggered while it is already running. + +The automation's `mode` configuration option controls what happens when the automation is triggered while the actions are still running from a previous trigger. + +Mode | Description +-|- +`single` | (Default) Do not start a new run. Issue a warning. +`restart` | Start a new run after first stopping previous run. +`queued` | Start a new run after all previous runs complete. Runs are guaranteed to execute in the order they were queued. +`parallel` | Start a new, independent run in parallel with previous runs. + +

+ +

+ +For both `queued` and `parallel` modes, configuration option `max` controls the maximum +number of runs that can be executing and/or queued up at a time. The default is 10. + +When `max` is exceeded (which is effectively 1 for `single` mode) a log message will be emitted to indicate this has happened. Configuration option `max_exceeded` controls the severity level of that log message. Set it to `silent` to ignore warnings or set it to a [log level](/integrations/logger/#log-levels). The default is `warning`. + +## Example throttled automation + +Some automations you only want to run every 5 minutes. This can be achieved using the `single` mode and silencing the warnings when the automation is triggered while it's running. + +```yaml +automation: + - mode: single + max_exceeded: silent + trigger: + - ... + action: + - ... + - delay: 300 # seconds (=5 minutes) +``` + +## Example Queued + +Sometimes an automation is doing an action on a device that does not support multiple simultaneous actions. In such cases, a queue can be used. In that case, the automation will be executed once it's current invocation and queue are done. + +```yaml +automation: + - mode: queued + max: 25 + trigger: + - ... + action: + - ... +``` diff --git a/source/_docs/automation/services.markdown b/source/_docs/automation/services.markdown new file mode 100644 index 00000000000..57525889bde --- /dev/null +++ b/source/_docs/automation/services.markdown @@ -0,0 +1,46 @@ +--- +title: "Automation Services" +description: "How to use the various automation services." +--- + +The automation integration has services to control automations, like turning automations on and off. This can be useful if you want to disable an automation from another automation. + +## Service `automation.turn_on` + +This service enables the automation's triggers. + +Service data attribute | Optional | Description +-|-|- +`entity_id` | no | Entity ID of automation to turn on. Can be a list. `none` or `all` are also accepted. + +## Service `automation.turn_off` + +This service disables the automation's triggers, and optionally stops any currently active actions. + +Service data attribute | Optional | Description +-|-|- +`entity_id` | no | Entity ID of automation to turn on. Can be a list. `none` or `all` are also accepted. +`stop_actions` | yes | Stop any currently active actions (defaults to true). + +## Service `automation.toggle` + +This service enables the automation's triggers if they were disabled, or disables the automation's triggers, and stops any currently active actions, if the triggers were enabled. + +Service data attribute | Optional | Description +-|-|- +`entity_id` | no | Entity ID of automation to turn on. Can be a list. `none` or `all` are also accepted. + +## Service `automation.trigger` + +This service will trigger the action of an automation. By default it bypasses any conditions, though that can be changed via the `skip_condition` attribute. + +Service data attribute | Optional | Description +-|-|- +`entity_id` | no | Entity ID of automation to trigger. Can be a list. `none` or `all` are also accepted. +`skip_condition` | yes | Whether or not the condition will be skipped (defaults to true). + +## Service `automation.reload` + +_This service is only required if you create/edit automations in YAML. Automations via the UI do this automatically._ + +This service reloads all automations, stopping all currently active automation actions. diff --git a/source/_docs/automation/using_blueprints.markdown b/source/_docs/automation/using_blueprints.markdown new file mode 100644 index 00000000000..4721b796b84 --- /dev/null +++ b/source/_docs/automation/using_blueprints.markdown @@ -0,0 +1,45 @@ +--- +title: "Using Automation Blueprints" +description: "How to crete automations based off blueprints." +--- + +Automation blueprints are pre-made automations that you can easily add to your Home Assistant instance. Each blueprint can be added as many times as you want. + +Quick links: + - [Blueprints in the Home Assistant forums][blueprint-tag] + +## Blueprint Automations + +Automations based on a blueprint only need to be configured to be used. What needs to be configured differs on each blueprint. + +To create your first automation based on a blueprint, go to **Configuration** and then **Blueprints**. Find the blueprint that you want to use and click on "Create Automation". + +This will open the automation editor with the blueprint selected. Give it a name and configure the blueprint and click on the blue button "Save Automation" in the bottom right. + +Done! If you want to revisit the configuration values, you can find it by going to **Configuration** and then **Automations**. + +## Importing blueprints + +Home Assistant can import blueprints from the Home Assistant forums, GitHub and GitHub gists. + +To do this, first [find a blueprint you want to import][blueprint-tag]. If you just want to practice importing, you can use this URL: + +```text +https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/motion_light.yaml +``` + +Go to **Configuration** and then **Blueprints**. Click on the blue "Import Blueprint" button in the bottom right. + +A new dialog will pop-up asking you for the URL. Enter the URL and click on "preview blueprint". + +This will load the blueprint and show a preview in the import dialog. You can change the name and finish the import. + +The blueprint can now be used for creating automations. + +## Finding new blueprints + +The Home Assistant Community forums have a specific tag for blueprints. This tag is used to collect all blueprints. + +[Visit the Home Assistant forums][blueprint-tag] + +[blueprint-tag]: https://community.home-assistant.io/tag/blueprint diff --git a/source/_docs/automation/yaml.markdown b/source/_docs/automation/yaml.markdown new file mode 100644 index 00000000000..7ab5a71d95f --- /dev/null +++ b/source/_docs/automation/yaml.markdown @@ -0,0 +1,145 @@ +--- +title: "Automation YAML" +description: "How to use the automation integration with YAML." +--- + +Automations are created in Home Assistant via the UI, but are stored in a YAML format. If you want to edit the YAML of an automation, go to edit the automation, click on the menu button in the top right and turn on YAML mode. + +The UI will write your automations to `automations.yaml`. This file is managed by the UI and should not be edited manually. + +It is also possible to write your automations directly inside `configuration.yaml` or other YAML files. You can do this by adding a labeled `automation` block to your `configuration.yaml`: + +```yaml +# The configuration required for the UI to work +automation: !include automations.yaml + +# Labeled automation block +automation kitchen: +- trigger: + platform: ... +``` + +You can add as many labeled `automation` blocks as you want. + +## YAML Example + +Example of a YAML based automation that you can add to `configuration.yaml`. + +{% raw %} +```yaml +# Example of entry in configuration.yaml +automation my_lights: +# Turns on lights 1 hour before sunset if people are home +# and if people get home between 16:00-23:00 + - alias: 'Rule 1 Light on in the evening' + trigger: + # Prefix the first line of each trigger configuration + # with a '-' to enter multiple + - platform: sun + event: sunset + offset: '-01:00:00' + - platform: state + entity_id: all + to: 'home' + condition: + # Prefix the first line of each condition configuration + # with a '-'' to enter multiple + - condition: state + entity_id: all + state: 'home' + - condition: time + after: '16:00:00' + before: '23:00:00' + action: + # With a single service call, we don't need a '-' before service - though you can if you want to + service: homeassistant.turn_on + entity_id: group.living_room + +# Turn off lights when everybody leaves the house + - alias: 'Rule 2 - Away Mode' + trigger: + platform: state + entity_id: all + to: 'not_home' + action: + service: light.turn_off + entity_id: all + +# Notify when Paulus leaves the house in the evening + - alias: 'Leave Home notification' + trigger: + platform: zone + event: leave + zone: zone.home + entity_id: device_tracker.paulus + condition: + condition: time + after: '20:00' + action: + service: notify.notify + data: + message: 'Paulus left the house' + +# Send a notification via Pushover with the event of a Xiaomi cube. Custom event from the Xiaomi component. + - alias: 'Xiaomi Cube Action' + initial_state: false + trigger: + platform: event + event_type: cube_action + event_data: + entity_id: binary_sensor.cube_158d000103a3de + action: + service: notify.pushover + data: + title: "Cube event detected" + message: "Cube has triggered this event: {{ trigger.event }}" +``` +{% endraw %} + + +## Extra options + +When writing automations directly in YAML, you will have access to advanced options that are not available in the user interface. + +### Automation initial state + +At startup, automations by default restore their last state of when Home Assistant ran. This can be controlled with the `initial_state` option. Set it to `false` or `true` to force initial state to be off or on. + +```yaml +automation: +- alias: Automation Name + initial_state: false + trigger: + - platform: ... +``` + +## Migrating your YAML automations to `automations.yaml` + +If you want to migrate your manual automations to use the editor, you'll have to copy them to `automations.yaml`. Make sure that `automations.yaml` remains a list! For each automation that you copy over, you'll have to add an `id`. This can be any string as long as it's unique. + +```yaml +# Example automations.yaml entry. Note, automations.yaml is always a list! +- id: my_unique_id # <-- Required for editor to work, for automations created with the editor the id will be automatically generated. + alias: Hello world + trigger: + - platform: state + entity_id: sun.sun + from: below_horizon + to: above_horizon + condition: + - condition: numeric_state + entity_id: sensor.temperature + above: 17 + below: 25 + value_template: '{% raw %}{{ float(state.state) + 2 }}{% endraw %}' + action: + - service: light.turn_on +``` + +### Deleting Automations + +When automations remain visible in the Home Assistant Dashboard, even after having deleted in the YAML file, you have to delete them in the UI. + +To delete them completely, go to UI **Configuration** -> **Entities** and find the automation in the search field or by scrolling down. + +Check the square box aside of the automation you wish to delete and from the top-right of your screen, select 'REMOVE SELECTED'. diff --git a/source/_includes/asides/docs_navigation.html b/source/_includes/asides/docs_navigation.html index 5ccf656b2e8..416eaae3fb8 100644 --- a/source/_includes/asides/docs_navigation.html +++ b/source/_includes/asides/docs_navigation.html @@ -85,12 +85,16 @@
  • {% active_link /docs/automation/ Automation %}
      -
    • {% active_link /docs/automation/examples/ Examples %}
    • +
    • {% active_link /docs/automation/using_blueprints/ Using Automation Blueprints %}
    • +
    • {% active_link /docs/automation/basics/ Automation Basics %}
    • {% active_link /docs/automation/editor/ Editor %}
    • {% active_link /docs/automation/trigger/ Triggers %}
    • {% active_link /docs/automation/condition/ Conditions %}
    • {% active_link /docs/automation/action/ Actions %}
    • +
    • {% active_link /docs/automation/modes/ Run Modes %}
    • +
    • {% active_link /docs/automation/services/ Services %}
    • {% active_link /docs/automation/templating/ Templates %}
    • +
    • {% active_link /docs/automation/yaml/ YAML %}
    • {% active_link /docs/automation/troubleshooting/ Troubleshooting %}
    • diff --git a/source/_integrations/automation.markdown b/source/_integrations/automation.markdown index 1882d98d6ae..b5a19fd579b 100644 --- a/source/_integrations/automation.markdown +++ b/source/_integrations/automation.markdown @@ -11,112 +11,4 @@ ha_iot_class: ha_domain: automation --- -Please see [Automating Home Assistant](/docs/automation/) for in-depth -documentation on how to use the automation integration. - -

      - -

      - -## Configuration - -This integration is by default enabled, unless you've disabled or removed the [`default_config:`](https://www.home-assistant.io/integrations/default_config/) line from your configuration. If that is the case, the following example shows you how to enable this integration manually: - -```yaml -# Example configuration.yaml entry -automation: -``` - -### Automation initial state - -When you create a new automation, it will be enabled unless you explicitly add `initial_state: false` to it or turn it off manually via UI/another automation/developer tools. In case automations need to be always enabled or disabled when Home Assistant starts, then you can set the `initial_state` in your automations. Otherwise, the previous state will be restored. - -Please note that if for some reason Home Assistant cannot restore the previous state, it will result in the automation being enabled. - -```yaml -automation: -- alias: Automation Name - initial_state: false - trigger: - ... -``` - -### Automation Modes - -The automation's `mode` configuration option controls what happens when the automation is triggered while the actions are still running from a previous trigger. - -Mode | Description --|- -`single` | (Default) Do not start a new run. Issue a warning. -`restart` | Start a new run after first stopping previous run. -`queued` | Start a new run after all previous runs complete. Runs are guaranteed to execute in the order they were queued. -`parallel` | Start a new, independent run in parallel with previous runs. - -

      - -

      - -For both `queued` and `parallel` modes, configuration option `max` controls the maximum -number of runs that can be executing and/or queued up at a time. The default is 10. - -When `max` is exceeded (which is effectively 1 for `single` mode) a log message will be emitted to indicate this has happened. Configuration option `max_exceeded` controls the severity level of that log message. See [Log Levels](/integrations/logger/#log-levels) for a list of valid options. Or `silent` may be specified to suppress the message from being emitted. The default is `warning`. - -#### Example Setting Automation Mode - -```yaml -automation: - - trigger: - - ... - mode: queued - max: 25 - action: - - ... -``` - -### Deleting Automations - -When automations remain visible in the Home Assistant Dashboard, even after having deleted in the YAML file, you have to delete them in the UI. - -To delete them completely, go to UI **Configuration** -> **Entities** and find the automation in the search field or by scrolling down. - -Check the square box aside of the automation you wish to delete and from the top-right of your screen, select 'REMOVE SELECTED'. - -## Services - -### `automation.turn_on` - -This service enables the automation's triggers. - -Service data attribute | Optional | Description --|-|- -`entity_id` | no | Entity ID of automation to turn on. Can be a list. `none` or `all` are also accepted. - -### `automation.turn_off` - -This service disables the automation's triggers, and optionally stops any currently active actions. - -Service data attribute | Optional | Description --|-|- -`entity_id` | no | Entity ID of automation to turn on. Can be a list. `none` or `all` are also accepted. -`stop_actions` | yes | Stop any currently active actions (defaults to true). - -### `automation.toggle` - -This service enables the automation's triggers if they were disabled, or disables the automation's triggers, and stops any currently active actions, if the triggers were enabled. - -Service data attribute | Optional | Description --|-|- -`entity_id` | no | Entity ID of automation to turn on. Can be a list. `none` or `all` are also accepted. - -### `automation.reload` - -This service reloads all automations, stopping any currently active actions in all of them. - -### `automation.trigger` - -This service will trigger the action of an automation. By default it bypasses any conditions, though that can be changed via the `skip_condition` attribute. - -Service data attribute | Optional | Description --|-|- -`entity_id` | no | Entity ID of automation to trigger. Can be a list. `none` or `all` are also accepted. -`skip_condition` | yes | Whether or not the condition will be skipped (defaults to true). + diff --git a/source/_redirects b/source/_redirects index 8b4cb598139..21022fb4287 100644 --- a/source/_redirects +++ b/source/_redirects @@ -2050,6 +2050,7 @@ /ecosystem/notebooks/stats https://data.home-assistant.io /ios/whats-new https://companion.home-assistant.io/docs/getting_started/getting-started /integrations/auth /docs/authentication +/integrations/automation /docs/automation /integrations/binary_sensor.knx /integrations/knx#binary-sensor /integrations/climate.knx /integrations/knx#climate /integrations/cover.knx /integrations/knx#cover From a34a0083185f1e0252f83ec67835c88026569227 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 4 Dec 2020 11:13:58 +0100 Subject: [PATCH 06/92] Initial creating blueprint docs (#15816) Co-authored-by: Philip Allgaier Co-authored-by: Franck Nijhof --- source/_docs/blueprint.markdown | 22 ++ source/_docs/blueprint/schema.markdown | 83 +++++++ source/_docs/blueprint/selectors.markdown | 114 ++++++++++ source/_docs/blueprint/tutorial.markdown | 223 +++++++++++++++++++ source/_includes/asides/docs_navigation.html | 8 + source/images/blueprints/tutorial-ui.png | Bin 0 -> 17498 bytes 6 files changed, 450 insertions(+) create mode 100644 source/_docs/blueprint.markdown create mode 100644 source/_docs/blueprint/schema.markdown create mode 100644 source/_docs/blueprint/selectors.markdown create mode 100644 source/_docs/blueprint/tutorial.markdown create mode 100644 source/images/blueprints/tutorial-ui.png diff --git a/source/_docs/blueprint.markdown b/source/_docs/blueprint.markdown new file mode 100644 index 00000000000..d97d4f95c24 --- /dev/null +++ b/source/_docs/blueprint.markdown @@ -0,0 +1,22 @@ +--- +title: "Creating blueprints" +description: "Documentation on how to get started creating blueprints." +--- + +
      + +If you're looking on how to use blueprints, see the [automation documentation](/docs/automation/using_blueprints/). + +
      + +An automation blueprint is an automation configuration with certain parts marked as configurable. This allows users to create multiple automations based on the same blueprint, with each having its own configuration. + +Imagine a blueprint that controls a light based on motion, that allows you to configure the motion sensor to trigger on, and the light to control. It is now possible to create two automations that each have their own configuration for this blueprint and that act completely independent, yet are based on the same automation configuration. + +
      + +This is an advanced feature and requires knowledge of writing [automations in YAML](/docs/automation/yaml/). + +
      + +### [Tutorial: Create a blueprint »](/docs/blueprint/tutorial/) diff --git a/source/_docs/blueprint/schema.markdown b/source/_docs/blueprint/schema.markdown new file mode 100644 index 00000000000..9bc993f26b1 --- /dev/null +++ b/source/_docs/blueprint/schema.markdown @@ -0,0 +1,83 @@ +--- +title: "Blueprint schema" +description: "The schema for a valid blueprint." +--- + +Schema of the blueprint metadata: + +```ts +interface BlueprintInput { + name?: string; + description?: string; + selector?: Selector; + default?: any; +} + +interface Blueprint { + blueprint: { + domain: string; + name: string; + input?: Record; + description?: string; + source_url?: string; + } +} +``` + +The [built-in blueprints](https://github.com/home-assistant/core/tree/dev/homeassistant/components/automation/blueprints) are great examples. + +Here is the built-in motion light blueprint: + +```yaml +blueprint: + name: Motion-activated Light + description: Turn on a light when motion is detected. + domain: automation + source_url: https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/motion_light.yaml + input: + motion_entity: + name: Motion Sensor + selector: + entity: + domain: binary_sensor + device_class: motion + light_target: + name: Light + selector: + target: + entity: + domain: light + no_motion_wait: + name: Wait time + description: Time to leave the light on after last motion is detected. + default: 120 + selector: + number: + min: 0 + max: 3600 + unit_of_measurement: seconds + +# If motion is detected within the delay, +# we restart the script. +mode: restart +max_exceeded: silent + +trigger: + platform: state + entity_id: !input motion_entity + from: "off" + to: "on" + +action: + - service: light.turn_on + target: !input light_target + - wait_for_trigger: + platform: state + entity_id: !input motion_entity + from: "on" + to: "off" + - delay: !input no_motion_wait + - service: light.turn_off + target: !input light_target + +``` diff --git a/source/_docs/blueprint/selectors.markdown b/source/_docs/blueprint/selectors.markdown new file mode 100644 index 00000000000..1e26730569a --- /dev/null +++ b/source/_docs/blueprint/selectors.markdown @@ -0,0 +1,114 @@ +--- +title: "Selectors" +description: "Documentation on available selectors." +--- + +Selectors can be used to specify what values are accepted for an input. + +## Entity Selector + +Pick an entity. The chosen value will be an entity ID. + +```yaml +entity: + # All fields are optional + integration: zha + domain: binary_sensor + device_class: motion +``` + +## Device Selector + +Pick a device. The chosen value will be a device ID. + +```yaml +device: + # All fields are optional + integration: zha + manufacturer: Philips + model: Remote X1 + entity: +``` + +The `entity` option will limit devices that have an entity matching the entity selector. + + +## Target Selector + +Pick a target for service calls. Will be a dictionary containing optionally `entity_id`, `device_id` or `area_id` keys with the picked values. + +Meant to be specified as the `target` property in a call service step in a script sequence. + +```yaml +target: + # All fields are optional + entity: + integration: zha + domain: binary_sensor + device_class: motion + + device: + integration: zha + manufacturer: Philips + model: Remote X1 +``` + +## Number Selector + +Pick a number. + +```yaml +number: + # Required + min: 0 + max: 100 + # Optional + step: 5 + unit_of_measurement: seconds + mode: slider # other valid value 'box' +``` + +## Boolean Selector + +Pick true or false. + +```yaml +boolean: +``` + +## Time Selector + +Pick a time. + +```yaml +time: +``` + +## Action Selector + +Enter a script action. Will be a list of action steps. + +Meant to be specified as the `action` of an automation or any syntax that accepts actions, like `choose`. + +```yaml +action: +``` + + +## Area Selector + +Pick an area. The chosen value will be an area ID. + +```yaml +area: + # All fields are optional + entity: + integration: zha + domain: binary_sensor + device_class: motion + + device: + integration: zha + manufacturer: Philips + model: Remote X1 +``` diff --git a/source/_docs/blueprint/tutorial.markdown b/source/_docs/blueprint/tutorial.markdown new file mode 100644 index 00000000000..318d763f1a8 --- /dev/null +++ b/source/_docs/blueprint/tutorial.markdown @@ -0,0 +1,223 @@ +--- +title: "Blueprint tutorial" +description: "Tutorial on creating a blueprint." +--- + +In this tutorial, we're going to create a blueprint that controls a light based on a motion sensor. We will do this by taking an existing automation and converting it to a blueprint. + +For this tutorial, we use a simple automation. The process for converting a complex automation is not any different. + +## Our automation + +To create a blueprint, we first need to have a working automation. The automation we're going to use in this tutorial, which controls a light based on a motion sensor, looks like this: + +{% raw %} +```yaml +trigger: + platform: state + entity_id: binary_sensor.motion_kitchen + +action: + service: > + {% if trigger.to_state.state == "on" %} + light.turn_on + {% else %} + light.turn_off + {% endif %} + target: + entity_id: light.kitchen +``` +{% endraw %} + +## Create the blueprint file + +Automation blueprints are YAML files (with the `.yaml` extension) and live in the `/blueprints/automation/` folder. You can create as many subdirectories in this folder as you want. + +To get started with our blueprint, we're going to copy the above automation YAML and save it in that directory with the name `motion_light_tutorial.yaml`. + +## Add basic blueprint metadata + +Home Assistant needs to know about the blueprint. This is achieved by adding a `blueprint:` section. It should contain the `domain` of the integration it is for (`automation`) and `name`, the name of your blueprint. Optionally, you can also include a `description` for your blueprint. + +Add this to the top of the file: + +```yaml +blueprint: + name: Motion Light Tutorial + description: Turn a light on based on detected motion + domain: automation +``` + +## Define the configurable parts as inputs + +Now we have to decide what steps we want to make configurable. We want to make it as re-usable as possible, without losing its original intent of turning on a light-based on a motion sensor. + +Configurable parts in blueprints are called inputs. To make the motion sensor entity configurable, we're replacing the entity ID with a custom YAML tag `!input`. This YAML tag has to be combined with the name of the input: + +```yaml +trigger: + platform: state + entity_id: !input motion_sensor +``` + +For the light, we can offer some more flexibility. We want to allow the user to be able to define any device or area as the target. The `target` property in the service action can contain references to areas, devices and/or entities, so that's what we will use. + +Inputs are not limited to strings. They can contain complex objects too. So in this case, we're going to mark the whole `target` as input: + +{% raw %} +```yaml +action: + service: > + {% if trigger.to_state.state == "on" %} + light.turn_on + {% else %} + light.turn_off + {% endif %} + target: !input target_light +``` +{% endraw %} + +## Add the inputs to the metadata + +All parts that are marked as inputs need to be added to the metadata. The minimum is that we add their names as used in the automation: + +```yaml +blueprint: + name: Motion Light Tutorial + description: Turn a light on based on detected motion + domain: automation + input: + motion_sensor: + target_light: +``` + +## Use it via `configuration.yaml` + +With the bare minimum metadata added, your blueprint is ready to use. + +Open your `configuration.yaml` and add the following: + +```yaml +automation tutorial: + use_blueprint: + path: motion_light_tutorial.yaml + input: + motion_sensor: binary_sensor.kitchen + target_light: + entity_id: light.kitchen +``` + +Reload automations and your new automation should popup. Because we configured the exact values as the original automation, they should work exactly the same. + +## Adding user friendly names to the inputs + +Blueprints are easier to use if it's easy to see what each field is used for. We can improve this experience by adding names and descriptions to our inputs: + +```yaml +blueprint: + name: Motion Light Tutorial + domain: automation + input: + motion_sensor: + name: Motion Sensor + description: This sensor will be synchronized with the light. + target_light: + name: Lights + description: The lights to keep in sync. +``` + +## Describing the inputs + +Our blueprint doesn't currently describe what the inputs should contain. Without this information, Home Assistant will offer the user an empty text box. + +To instead allow Home Assistant to offer more assistance, we will use [selectors](/docs/blueprint/selectors/). Selectors describe a type and can be used to help the user pick a matching value. + +The selector for the motion sensor entity should describe that we want entities from the binary sensor domain that have the device class `motion`. + +The selector for the target light should describe that we want to target light entities. + +```yaml +blueprint: + name: Motion Light Tutorial + domain: automation + input: + motion_sensor: + name: Motion Sensor + description: This sensor will be synchronized with the light. + selector: + entity: + domain: binary_sensor + device_class: motion + target_light: + name: Lights + description: The lights to keep in sync. + selector: + target: + entity: + domain: light +``` + +By limiting our blueprint to working with lights and motion sensors, we unlock a couple of benefits: the UI will be able to limit suggested values to lights and motion sensors instead of all devices. It will also allow the user to pick an area to control the lights in. + +## The final blueprint + +After we have added all the steps, our blueprint will look like this: + +{% raw %} +```yaml +blueprint: + name: Motion Light Tutorial + description: Turn a light on based on detected motion + domain: automation + input: + motion_sensor: + name: Motion Sensor + description: This sensor will be synchronized with the light. + selector: + entity: + domain: binary_sensor + device_class: motion + target_light: + name: Lights + description: The lights to keep in sync. + selector: + target: + entity: + domain: light + +trigger: + platform: state + entity_id: !input motion_sensor + +action: + service: > + {% if trigger.to_state.state == "on" %} + light.turn_on + {% else %} + light.turn_off + {% endif %} + target: !input target_light +``` +{% endraw %} + +## Use it via the UI + +To configure it via the UI, go to **Configuration** and then **Blueprints**. Find the "Motion Light Tutorial" blueprint and click on "Create Automation". + +
      +Don't forget to reload automations after you make changes to your blueprint to have the UI and the automation integration pick up the latest blueprint changes. +
      + +![Screenshot of the blueprint UI](/images/blueprints/tutorial-ui.png) + +## Share the love + +The final step is to share this blueprint with others. For this tutorial we're going to share it on GitHub Gists. + +- Go to [GitHub Gists](https://gist.github.com/) +- Gist description: blueprint tutorial +- Filename including extension: `motion_light_tutorial.yaml` +- Content is the content of the blueprint file. +- Click the "Create Gist" button + +You can now copy the URL of your new Gist and share it with other people. They can import it by going to **Configuration**, **Blueprints** and clicking on the blue "Import Blueprint" button. diff --git a/source/_includes/asides/docs_navigation.html b/source/_includes/asides/docs_navigation.html index 416eaae3fb8..f70674aa17c 100644 --- a/source/_includes/asides/docs_navigation.html +++ b/source/_includes/asides/docs_navigation.html @@ -100,6 +100,14 @@
  • +
  • + {% active_link /docs/blueprint/ Blueprints %} +
      +
    • {% active_link /docs/blueprint/tutorial/ Tutorial %}
    • +
    • {% active_link /docs/blueprint/schema/ Schema %}
    • +
    • {% active_link /docs/blueprint/selectors/ Selectors %}
    • +
    +
  • {% active_link /docs/frontend/ Frontend %}