diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index b666efdd068..16306aa2f26 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -8,7 +8,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v3.0.13 + - uses: actions/stale@v3.0.14 with: repo-token: ${{ secrets.GITHUB_TOKEN }} days-before-stale: 60 diff --git a/CODEOWNERS b/CODEOWNERS index 3dbc894a9eb..c0f2e59e8fb 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -72,6 +72,7 @@ source/_integrations/cisco_mobility_express.markdown @fbradyirl source/_integrations/cisco_webex_teams.markdown @fbradyirl source/_integrations/cloud.markdown @home-assistant/cloud source/_integrations/cloudflare.markdown @ludeeus @ctalkington +source/_integrations/color_extractor.markdown @GenericStudent source/_integrations/comfoconnect.markdown @michaelarnauts source/_integrations/config.markdown @home-assistant/core source/_integrations/configurator.markdown @home-assistant/core @@ -121,6 +122,7 @@ source/_integrations/enocean.markdown @bdurrer source/_integrations/entur_public_transport.markdown @hfurubotten source/_integrations/environment_canada.markdown @michaeldavie source/_integrations/ephember.markdown @ttroy50 +source/_integrations/epson.markdown @pszafer source/_integrations/epsonworkforce.markdown @ThaStealth source/_integrations/eq3btsmart.markdown @rytilahti source/_integrations/esphome.markdown @OttoWinter @@ -180,7 +182,6 @@ source/_integrations/homekit.markdown @bdraco source/_integrations/homekit_controller.markdown @Jc2k source/_integrations/homematic.markdown @pvizeli @danielperna84 source/_integrations/homematicip_cloud.markdown @SukramJ -source/_integrations/honeywell.markdown @zxdavb source/_integrations/http.markdown @home-assistant/core source/_integrations/huawei_lte.markdown @scop @fphammerle source/_integrations/huawei_router.markdown @abmantis @@ -248,7 +249,7 @@ source/_integrations/met.markdown @danielhiversen @thimic source/_integrations/meteo_france.markdown @hacf-fr @oncleben31 @Quentame source/_integrations/meteoalarm.markdown @rolfberkenbosch source/_integrations/metoffice.markdown @MrHarcombe -source/_integrations/miflora.markdown @danielhiversen @ChristianKuehnel @basnijholt +source/_integrations/miflora.markdown @danielhiversen @basnijholt source/_integrations/mikrotik.markdown @engrbm87 source/_integrations/mill.markdown @danielhiversen source/_integrations/min_max.markdown @fabaff @@ -302,7 +303,7 @@ source/_integrations/openerz.markdown @misialq source/_integrations/opengarage.markdown @danielhiversen source/_integrations/opentherm_gw.markdown @mvn23 source/_integrations/openuv.markdown @bachya -source/_integrations/openweathermap.markdown @fabaff @freekode +source/_integrations/openweathermap.markdown @fabaff @freekode @nzapponi source/_integrations/opnsense.markdown @mtreinish source/_integrations/orangepi_gpio.markdown @pascallj source/_integrations/oru.markdown @bvlaicu @@ -317,7 +318,6 @@ source/_integrations/pi4ioe5v9xxxx.markdown @antonverburg source/_integrations/pi_hole.markdown @fabaff @johnluetke @shenxn source/_integrations/pilight.markdown @trekky12 source/_integrations/plaato.markdown @JohNan -source/_integrations/plant.markdown @ChristianKuehnel source/_integrations/plex.markdown @jjlawren source/_integrations/plugwise.markdown @CoMPaTech @bouwew source/_integrations/plum_lightpad.markdown @ColinHarrington @prystupa @@ -353,6 +353,7 @@ source/_integrations/rmvtransport.markdown @cgtobi source/_integrations/roku.markdown @ctalkington source/_integrations/roomba.markdown @pschmitt @cyr-ius @shenxn source/_integrations/roon.markdown @pavoni +source/_integrations/rpi_gpio_pwm.markdown @soldag source/_integrations/rpi_power.markdown @shenxn @swetoast source/_integrations/ruckus_unleashed.markdown @gabe565 source/_integrations/safe_mode.markdown @home-assistant/core @@ -371,7 +372,7 @@ source/_integrations/seven_segments.markdown @fabaff source/_integrations/seventeentrack.markdown @bachya source/_integrations/sharkiq.markdown @ajmarks source/_integrations/shell_command.markdown @home-assistant/core -source/_integrations/shelly.markdown @balloob @bieniu +source/_integrations/shelly.markdown @balloob @bieniu @thecode source/_integrations/shiftr.markdown @fabaff source/_integrations/shodan.markdown @fabaff source/_integrations/sighthound.markdown @robmarkcole @@ -420,7 +421,7 @@ source/_integrations/switchbot.markdown @danielhiversen source/_integrations/switcher_kis.markdown @tomerfi source/_integrations/switchmate.markdown @danielhiversen source/_integrations/syncthru.markdown @nielstron -source/_integrations/synology_dsm.markdown @hacf-fr @Quentame +source/_integrations/synology_dsm.markdown @hacf-fr @Quentame @mib1185 source/_integrations/synology_srm.markdown @aerialls source/_integrations/syslog.markdown @fabaff source/_integrations/tado.markdown @michaelarnauts @bdraco diff --git a/Gemfile b/Gemfile index 591c4fc1b50..20f51ba2ea7 100644 --- a/Gemfile +++ b/Gemfile @@ -15,6 +15,7 @@ group :jekyll_plugins do gem 'jekyll-sitemap', '1.4.0' gem 'jekyll-time-to-read', '0.1.2' gem 'jekyll-commonmark', '1.3.1' + gem 'jekyll-toc', '0.15.0' end gem 'sinatra', '2.1.0' diff --git a/Gemfile.lock b/Gemfile.lock index fec8693fd6c..69775494474 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -56,6 +56,9 @@ GEM jekyll (>= 3.7, < 5.0) jekyll-time-to-read (0.1.2) jekyll + jekyll-toc (0.15.0) + jekyll (>= 3.8) + nokogiri (~> 1.10) jekyll-watch (2.2.1) listen (~> 3.0) kramdown (2.3.0) @@ -63,7 +66,7 @@ GEM kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) liquid (4.0.3) - listen (3.3.0) + listen (3.3.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.4.0) @@ -124,6 +127,7 @@ DEPENDENCIES jekyll-paginate (= 1.1.0) jekyll-sitemap (= 1.4.0) jekyll-time-to-read (= 0.1.2) + jekyll-toc (= 0.15.0) nokogiri (= 1.10.10) rake (= 13.0.1) sass-globbing (= 1.1.5) diff --git a/_config.yml b/_config.yml index 6983d5c4d3b..9b54ea88b83 100644 --- a/_config.yml +++ b/_config.yml @@ -46,6 +46,7 @@ highlighter: none plugins: - jekyll-time-to-read + - jekyll-toc paginate: 10 # Posts per page on the blog index paginate_path: "blog/posts/:num" # Directory base for pagination URLs eg. /posts/2/ @@ -99,9 +100,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 117 -current_patch_version: 5 -date_released: 2020-11-05 +current_minor_version: 118 +current_patch_version: 4 +date_released: 2020-11-26 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. @@ -123,6 +124,7 @@ defaults: featured: false # Defaults for blogs posts - scope: + path: "" type: posts values: layout: post @@ -130,9 +132,26 @@ defaults: footer: true sharing: true sidebar: true + # Enable table of contents for integrations + # + # To set toc as a default value, we need to set the scope with an empty path + # and the collection as type + # https://github.com/toshimaru/jekyll-toc/issues/116#issuecomment-644205770 + # + - scope: + path: "" + type: integrations + values: + toc: true # Support for files Jekyll will normally exclude include: - "_headers" - "_redirects" - ".well-known" + +# Table of contents +# https://github.com/toshimaru/jekyll-toc +toc: + min_level: 2 # default: 1 + max_level: 3 # default: 6 diff --git a/sass/custom/_paulus.scss b/sass/custom/_paulus.scss index 7162bb2a63a..4a528bcf30d 100644 --- a/sass/custom/_paulus.scss +++ b/sass/custom/_paulus.scss @@ -426,6 +426,21 @@ div.note { .aside-module { .section { margin-bottom: 10px; + + ul.section-nav { + margin-left: 0px; + + li.toc-entry { + list-style-type: none; + li { + list-style-type: circle; + margin-left: 1em; + } + ul { + margin-left: 1em; + } + } + } } .brand-logo-container { @@ -480,7 +495,8 @@ a code { color: $primary-color; } -twitter-widget { +twitter-widget, +.twitter-tweet-rendered { margin-left: auto; margin-right: auto; } diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index eacc004fd7f..f58013794d9 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -470,7 +470,7 @@ automation: #### Sensors of datetime device class -The Entity ID of a [sensor](/integrations/sensor/) with the "datetime" device class. +The Entity ID of a [sensor](/integrations/sensor/) with the "timestamp" device class. ```yaml automation: diff --git a/source/_docs/backend/database.markdown b/source/_docs/backend/database.markdown index fdc710bfca4..a0ad7b94c40 100644 --- a/source/_docs/backend/database.markdown +++ b/source/_docs/backend/database.markdown @@ -3,9 +3,9 @@ title: "Database" description: "Details about the database used by Home Assistant." --- -Database is used in by Home Assistant as history and tracker only, to store the events and its parameters. The default database used by Home Assistant is [SQLite](https://www.sqlite.org/), and the database file is stored in your [configuration directory](/getting-started/configuration/) (e.g., `/home-assistant_v2.db`). If you prefer to run a database server (e.g., PostgreSQL), use the [`recorder` component](/integrations/recorder/). +Home Assistant uses database to store events and parametersis for history and tracking. The default database used is [SQLite](https://www.sqlite.org/) and the database file is stored in your [configuration directory](/getting-started/configuration/) (e.g., `/home-assistant_v2.db`); however, other databases can be used. If you prefer to run a database server (e.g., PostgreSQL), use the [`recorder` component](/integrations/recorder/). -To work with the SQLite database manually from the command-line, you will need an [installation](http://www.sqlitetutorial.net/download-install-sqlite/) of `sqlite3`. Alternatively [DB Browser for SQLite](http://sqlitebrowser.org/) provides a viewer for exploring the database data and an editor for executing SQL commands. +To work with SQLite database manually from the command-line, you will need an [installation](http://www.sqlitetutorial.net/download-install-sqlite/) of `sqlite3`. Alternatively [DB Browser for SQLite](http://sqlitebrowser.org/) provides a viewer for exploring the database data and an editor for executing SQL commands. First load your database with `sqlite3`: ```bash diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index b79b1a10670..79d4bde86c4 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -183,6 +183,14 @@ The same thing can also be expressed as a filter: - `strptime(string, format)` parses a string based on a [format](https://docs.python.org/3.8/library/datetime.html#strftime-and-strptime-behavior) and returns a datetime object. - `relative_time` converts datetime object to its human-friendly "age" string. The age can be in second, minute, hour, day, month or year (but only the biggest unit is considered, e.g., if it's 2 days and 3 hours, "2 days" will be returned). Note that it only works for dates _in the past_. - `timedelta` returns a timedelta object and accepts the same arguments as the Python `datetime.timedelta` function -- days, seconds, microseconds, milliseconds, minutes, hours, weeks. + + {% raw %} + ```yaml + # 77 minutes before curret time. + {{ now() - timedelta( hours = 1, minutes = 17 ) }} + ``` + {% endraw %} + - Filter `timestamp_local` converts an UNIX timestamp to its string representation as date/time in your local timezone. - Filter `timestamp_utc` converts a UNIX timestamp to its string representation representation as date/time in UTC timezone. - Filter `timestamp_custom(format_string, local_time=True)` converts an UNIX timestamp to its string representation based on a custom format, the use of a local timezone is default. Supports the standard [Python time formatting options](https://docs.python.org/3/library/time.html#time.strftime). diff --git a/source/_docs/installation/docker.markdown b/source/_docs/installation/docker.markdown index 78d5ec0a1cd..345f2511674 100644 --- a/source/_docs/installation/docker.markdown +++ b/source/_docs/installation/docker.markdown @@ -310,6 +310,6 @@ On Mac, USB devices are [not passed through](https://github.com/docker/for-mac/i The Home Assistant Container is using an alternative memory allocation library [jemalloc](http://jemalloc.net/) for better memory management and Python runtime speedup. -As Jemalloc can cause issues on certain hardware, it can be disabled by passing the environment variable `DISABLE_JEMALLOC` with any value, for example: `-e "JEMALLOC_DISABLE=true"`. +As jemalloc can cause issues on certain hardware, it can be disabled by passing the environment variable `DISABLE_JEMALLOC` with any value, for example: `-e "DISABLE_JEMALLOC=true"`. -The error message `: Unsupported system page size` is one known indicator. +The error message `: Unsupported system page size` is one known indicator. diff --git a/source/_docs/mqtt/broker.markdown b/source/_docs/mqtt/broker.markdown index 68b1ffa595b..5ca39b9b7a3 100644 --- a/source/_docs/mqtt/broker.markdown +++ b/source/_docs/mqtt/broker.markdown @@ -94,7 +94,7 @@ mqtt: ### CloudMQTT -[CloudMQTT](https://www.cloudmqtt.com) is a hosted private MQTT instance. Plans start at 5$ per months. +[CloudMQTT](https://www.cloudmqtt.com) is a hosted private MQTT instance. Plans start at 5$ per month.
Home Assistant is not affiliated with CloudMQTT nor will receive any kickbacks. diff --git a/source/_docs/scripts.markdown b/source/_docs/scripts.markdown index 3c9b06c52dc..b32a7c39881 100644 --- a/source/_docs/scripts.markdown +++ b/source/_docs/scripts.markdown @@ -141,7 +141,7 @@ When used within an automation the `trigger` variable is available. See [Availab This action evaluates the template, and if true, the script will continue. If not, then it will wait until it is true. -The template is re-evaluated whenever an entity ID that it references changes state. If you use non-deterministic functions like `now()` in the template it will not be continuously re-evaluated, but only when an entity ID that is referenced is changed. If you need to periodically re-evaluate the template, reference a sensor from the (Time and Date)[/integrations/time_date/] component that will update minutely or daily. +The template is re-evaluated whenever an entity ID that it references changes state. If you use non-deterministic functions like `now()` in the template it will not be continuously re-evaluated, but only when an entity ID that is referenced is changed. If you need to periodically re-evaluate the template, reference a sensor from the [Time and Date](/integrations/time_date/) component that will update minutely or daily. {% raw %} ```yaml @@ -178,7 +178,7 @@ With both types of waits it is possible to set a timeout after which the script ``` {% endraw %} -You can also get the script to abort after the timeout by using optional `continue_on_timeout`. +You can also get the script to abort after the timeout by using optional `continue_on_timeout: false`. {% raw %} ```yaml @@ -194,7 +194,7 @@ You can also get the script to abort after the timeout by using optional `contin ``` {% endraw %} -Without `continue_on_timeout` the script will always continue. +Without `continue_on_timeout: false` the script will always continue since the default for `continue_on_timeout` is `true`. ### Wait Variable diff --git a/source/_headers b/source/_headers index 61d96baf8a7..d33567d39d7 100644 --- a/source/_headers +++ b/source/_headers @@ -1,7 +1,8 @@ /* Cache-Control: public, max-age: 0, s-maxage=3600, must-revalidate Content-Security-Policy: form-action https: - Feature-Policy: vibrate 'none'; geolocation 'none'; midi 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope 'none'; speaker 'none'; vibrate 'none'; payment 'none' + Feature-Policy: geolocation 'none'; midi 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope 'none'; payment 'none' + Permissions-Policy: geolocation=(), midi=(), microphone=(), camera=(), magnetometer=(), gyroscope=(), payment=() Referrer-Policy: no-referrer-when-downgrade X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block diff --git a/source/_includes/asides/component_navigation.html b/source/_includes/asides/component_navigation.html index 65d5a97f23b..a5e54266097 100644 --- a/source/_includes/asides/component_navigation.html +++ b/source/_includes/asides/component_navigation.html @@ -66,6 +66,12 @@
{%- endif -%} + + {%- unless page.no_toc -%} +
+

On this page

+ {% toc %} + {%- endunless -%} diff --git a/source/_integrations/alexa.smart_home.markdown b/source/_integrations/alexa.smart_home.markdown index 541bfc87c3d..816c76409a1 100644 --- a/source/_integrations/alexa.smart_home.markdown +++ b/source/_integrations/alexa.smart_home.markdown @@ -79,7 +79,7 @@ Amazon also provided a [step-by-step guide](https://developer.amazon.com/docs/sm
-OK, let's go. You first need sign in your [AWS console](https://console.aws.amazon.com/), if you don't have an AWS account yet, you can create a new user [here](https://aws.amazon.com/free/) with 12-month free tire benefit. You don't need worry the cost if your account already pass the first 12 months, AWS provides up to 1 million Lambda request, 1GB outbound data and all inbound data for free, every month, all users. See [Lambda pricing](https://aws.amazon.com/lambda/pricing/) for details. +OK, let's go. You first need to sign in to your [AWS console](https://console.aws.amazon.com/), if you don't have an AWS account yet, you can create a new user [here](https://aws.amazon.com/free/) with 12-month free tire benefit. You don't need worry the cost if your account already pass the first 12 months, AWS provides up to 1 million Lambda request, 1GB outbound data and all inbound data for free, every month, all users. See [Lambda pricing](https://aws.amazon.com/lambda/pricing/) for details. ### Create an IAM Role for Lambda @@ -115,6 +115,7 @@ Next you need create a Lambda function. - You will then be prompted to input the `Skill ID` from the skill you created in previous step. (Tips: you may need switch back to Alexa Developer Console to copy the `Skill ID`.) Then click `Add`. - Click your Lambda function icon in the middle of the diagram (above Layers), scroll down you will see a `Function code` window. - Clear the example code, copy the Python script from: [https://gist.github.com/matt2005/744b5ef548cc13d88d0569eea65f5e5b](https://gist.github.com/matt2005/744b5ef548cc13d88d0569eea65f5e5b) (modified code to support Alexa's proactive mode, see details below) +- Click `Deploy` button to publish updated code. - Scroll down a little bit, you will find `Environment variables`, you need add 1 environment variable and, if required, 3 optional variables. This is done by selecting `Manage environment variables` then adding the following: - *(required)* Key = BASE_URL, Value = your Home Assistant instance's Internet accessible URL with port if needed. *Do not include the trailing `/`*. - *(optional)* Key = NOT_VERIFY_SSL, Value = *True*. You can set this to *True* to ignore SSL issues, for example if you don't have a valid SSL certificate or you are using a self-signed certificate. diff --git a/source/_integrations/api.markdown b/source/_integrations/api.markdown index 9e812d45777..c52022a21a1 100644 --- a/source/_integrations/api.markdown +++ b/source/_integrations/api.markdown @@ -8,6 +8,7 @@ ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' ha_domain: api +ha_iot_class: --- The `api` integration exposes a RESTful API and allows one to interact with a Home Assistant instance that is running headless. This integration depends on the [HTTP integration](/integrations/http/). diff --git a/source/_integrations/color_extractor.markdown b/source/_integrations/color_extractor.markdown index 8664397abc9..c4998926dd5 100644 --- a/source/_integrations/color_extractor.markdown +++ b/source/_integrations/color_extractor.markdown @@ -1,5 +1,5 @@ --- -title: Color Extractor +title: ColorExtractor description: Instructions how to integrate the Color Extractor into Home Assistant. ha_release: 0.118 ha_category: diff --git a/source/_integrations/debugpy.markdown b/source/_integrations/debugpy.markdown index c021c3762ef..e96695ed19a 100644 --- a/source/_integrations/debugpy.markdown +++ b/source/_integrations/debugpy.markdown @@ -8,6 +8,7 @@ ha_codeowners: - '@frenck' ha_domain: debugpy ha_quality_scale: internal +ha_iot_class: Local Push --- The remote Python debugger integration allows you to use the Visual Studio Code diff --git a/source/_integrations/deconz.markdown b/source/_integrations/deconz.markdown index d3fcfdaea9e..66ac662ed1c 100644 --- a/source/_integrations/deconz.markdown +++ b/source/_integrations/deconz.markdown @@ -268,6 +268,39 @@ automation: ``` {% endraw %} + +#### Colored Flashing - RGB Philips Hue bulb using deconz.configure + +Note: Requires `on: true` to change color while the Philips Hue bulb is off. If `on: true` is specified, the bulb remains on after flashing is complete. The previous color is not saved or restored. To color flash light groups, replace `/state` with `/action` and specify the light group as the entity. + +```yaml +automation: + - alias: Flash Hue Bulb with Doorbell Motion + mode: single + trigger: + - platform: state + entity_id: binary_sensor.doorbell_motion + to: 'on' + action: + - service: deconz.configure + data: + entity: light.hue_lamp + field: /state + data: + 'on': true + hue: 65535 + sat: 255 + bri: 255 + alert: breathe + - delay: 00:00:15 + - service: deconz.configure + data: + entity: light.hue_lamp + field: /state + data: + 'on': false +``` + ## Binary Sensor The following sensor types are supported: diff --git a/source/_integrations/denonavr.markdown b/source/_integrations/denonavr.markdown index 0b9823f7dda..4d057f3182a 100644 --- a/source/_integrations/denonavr.markdown +++ b/source/_integrations/denonavr.markdown @@ -28,6 +28,8 @@ Known supported devices: - Denon AVR-X2200W - Denon AVR-X2300W - Denon AVR-X2400H +- Denon AVR-X2500H +- Denon AVR-X2700H - Denon AVR-X3200W - Denon AVR-X3300W - Denon AVR-X3400H diff --git a/source/_integrations/device_automation.markdown b/source/_integrations/device_automation.markdown index 90b57539d3f..e1ad32b361c 100644 --- a/source/_integrations/device_automation.markdown +++ b/source/_integrations/device_automation.markdown @@ -7,6 +7,7 @@ ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' ha_domain: device_automation +ha_iot_class: --- Device Automations is a plugin for the automation integration to allow other integrations to provide device specific triggers, conditions and actions. diff --git a/source/_integrations/downloader.markdown b/source/_integrations/downloader.markdown index ec05e327745..b4957472fd7 100644 --- a/source/_integrations/downloader.markdown +++ b/source/_integrations/downloader.markdown @@ -6,6 +6,7 @@ ha_category: ha_release: pre 0.7 ha_quality_scale: internal ha_domain: downloader +ha_iot_class: --- The `downloader` integration provides a service to download files. It will raise an error and not continue to set itself up when the download directory does not exist. The directory needs to be writable for the user that is running Home Assistant. diff --git a/source/_integrations/elkm1.markdown b/source/_integrations/elkm1.markdown index 54a15f0861e..5b0746ce790 100644 --- a/source/_integrations/elkm1.markdown +++ b/source/_integrations/elkm1.markdown @@ -424,7 +424,7 @@ The `event_data` contains the following: ## Services -Besides the standard Home Assistant services for Climate, Light, Scene, Sensor, +Besides the standard Home Assistant services for Alarm Control Panel, Climate, Light, Scene, Sensor, and Switch the ElkM1 integration offers these additional services: - `elkm1.alarm_arm_home_instant` diff --git a/source/_integrations/environment_canada.markdown b/source/_integrations/environment_canada.markdown index de209f53526..bc1e5feef89 100644 --- a/source/_integrations/environment_canada.markdown +++ b/source/_integrations/environment_canada.markdown @@ -56,7 +56,7 @@ weather: - The platform checks for new data every 10 minutes, and the source data is typically updated hourly within 10 minutes after the hour. - If no name is given, the weather entity will be named `weather.`. - The platform automatically determines which weather station to use based on the system's latitude/longitude settings. For greater precision, it is also possible to specify either: - - A specific station code of the form `AB/s0000123` based on those listed in [this CSV file](http://dd.weatheroffice.ec.gc.ca/citypage_weather/docs/site_list_towns_en.csv), or + - A specific station code of the form `AB/s0000123` based on those listed in [this CSV file](https://dd.weather.gc.ca/citypage_weather/docs/site_list_towns_en.csv), or - A specific latitude/longitude {% configuration %} @@ -123,7 +123,7 @@ sensor: - `statements` - Current special weather statements. - `endings` - Alerts that have recently ended. - The platform automatically determines which weather station to use based on the system's latitude/longitude settings. For greater precision, it is also possible to specify either: - - A specific station code of the form `AB/s0000123` based on those listed in [this CSV file](http://dd.weatheroffice.ec.gc.ca/citypage_weather/docs/site_list_towns_en.csv), or + - A specific station code of the form `AB/s0000123` based on those listed in [this CSV file](https://dd.weather.gc.ca/citypage_weather/docs/site_list_towns_en.csv), or - A specific latitude/longitude - In the case of multiple alerts in the same category, the titles of each are concatenated together with a pipe (`|`) separator. diff --git a/source/_integrations/epson.markdown b/source/_integrations/epson.markdown index 730a2e413bc..fea9839eb27 100644 --- a/source/_integrations/epson.markdown +++ b/source/_integrations/epson.markdown @@ -6,6 +6,9 @@ ha_category: ha_release: 0.72 ha_iot_class: Local Polling ha_domain: epson +ha_codeowners: + - '@pszafer' +ha_config_flow: true --- The `epson` platform allows you to control a Epson projector from Home Assistant. diff --git a/source/_integrations/ffmpeg.markdown b/source/_integrations/ffmpeg.markdown index 1aa89f6c6a3..ffd1d7185c6 100644 --- a/source/_integrations/ffmpeg.markdown +++ b/source/_integrations/ffmpeg.markdown @@ -5,6 +5,7 @@ ha_category: - Image Processing ha_release: 0.29 ha_domain: ffmpeg +ha_iot_class: --- The `ffmpeg` integration allows other Home Assistant integrations to process video and audio streams. This integration supports all FFmpeg versions since 3.0.0; if you have an older version, please update. diff --git a/source/_integrations/frontier_silicon.markdown b/source/_integrations/frontier_silicon.markdown index bef63567654..ed5c2694321 100644 --- a/source/_integrations/frontier_silicon.markdown +++ b/source/_integrations/frontier_silicon.markdown @@ -14,6 +14,7 @@ This integration provides support for Internet Radios based on the [Frontier Sil * Hama: [IR110], [DIR3110] * Medion: [Medion Radios] * Silvercrest: [SIRD 14 C2] +* Teufel: [Radio 3sixty(2019)] * Some models from: Auna, Technisat, Revo, Pinell, Como Audio This integration was developed and tested with a Hama [DIR3110] and a Medion [MD 87466]. @@ -104,6 +105,7 @@ The Frontier Silicon API does not provide a multi-user environment. There is alw [IR110]: https://www.hama.com/00054823/hama-ir110-internet-radio-internet-radio-multi-room-app-control [DIR3110]: https://www.hama.com/00054824/hama-digitalradio-dir3110-internetradio-dab+-fm-multiroom-app-steuerung [MD 87466]: https://www.medion.com/gb/service/start/_product.php?msn=50051273&gid=14 +[Radio 3sixty(2019)]: https://teufel.de/radio-3sixty-2019-105437000 [SIRD 14 C2]: https://www.silvercrest-multiroom.de/fileadmin/user_upload/pdf/handbucher/Bedienungsanleitungen/IR/279398_SIRD_14_C2_ML4_V1.1_GB_CZ_SK_DE.pdf [fsapi]: https://github.com/zhelev/python-fsapi [UNDOK]: https://www.frontier-silicon.com/undok diff --git a/source/_integrations/garadget.markdown b/source/_integrations/garadget.markdown index be4a1501fe7..eface9f7f3f 100644 --- a/source/_integrations/garadget.markdown +++ b/source/_integrations/garadget.markdown @@ -37,33 +37,30 @@ covers: description: List of your doors. required: true type: list - covers: - keys: - device: - description: This is the device id from your Garadget portal. - required: true - type: string - username: - description: Your Garadget account username. - required: true - type: string - password: - description: Your Garadget account password. - required: true - type: string - access_token: - description: A generated `access_token` from your Garadget account. - required: true - type: string - name: - description: me to use in the frontend, will use name configured in Garadget otherwise. - required: false - default: Garadget - type: string + keys: + device: + description: This is the device id from your Garadget portal. It can be found in the Settings section of the Garadget website or mobile application. + required: true + type: string + username: + description: Your Garadget account username. Use with `password` to obtain the `access_token` automatically. + required: false + type: string + password: + description: Your Garadget account password. Use with `username` to obtain the `access_token` automatically. + required: false + type: string + access_token: + description: A generated `access_token` from your Garadget account. To obtain an `access_token`, use the network tab of the developer tools for your web browser while logged into the Garadget website. When supplied, the `username` and `password` values are not required. + required: false + type: string + name: + description: Name to use in the frontend, will use name configured in Garadget otherwise. + required: false + default: Garadget + type: string {% endconfiguration %} -If provided, the **access_token** will be used, otherwise the **username** and **password** will be used to automatically generate an access token at start time. - ## Example

diff --git a/source/_integrations/generic.markdown b/source/_integrations/generic.markdown index a2f2a8b7c4a..77b930b2b7a 100644 --- a/source/_integrations/generic.markdown +++ b/source/_integrations/generic.markdown @@ -1,12 +1,12 @@ --- -title: "Generic IP Camera" -description: "Instructions on how to integrate IP cameras within Home Assistant." +title: Generic +description: Instructions on how to integrate IP cameras within Home Assistant. ha_category: - Camera logo: home-assistant.png ha_release: pre 0.7 ha_iot_class: Configurable -ha_domain: camera +ha_domain: generic --- The `generic` camera platform allows you to integrate any IP camera or other URL into Home Assistant. Templates can be used to generate the URLs on the fly. diff --git a/source/_integrations/google_assistant.markdown b/source/_integrations/google_assistant.markdown index 538f1f94211..664b06a4d73 100644 --- a/source/_integrations/google_assistant.markdown +++ b/source/_integrations/google_assistant.markdown @@ -75,9 +75,9 @@ If you want to allow other household users to control the devices: 1. Enter the email address of the user you want to add. 2. Click Select a role and choose Project < Viewer. 3. Click SAVE - 4. Copy and share the link with the new user. - 5. When the new user opens the link with their own Google account, it will enable your draft test app under their account. -5. Have the new user go to their `Google Assistant` app to add `[test] your app name` to their account. + 4. Copy and share the Actions project link (`https://console.actions.google.com/project/YOUR_PROJECT_ID/simulator`) with the new user. +5. Have the new user open the link with their own Google account, agree to the Terms of Service popup, then select "Start Testing", select VERSION - Draft in the dropdown, and click "Done". +6. Have the new user go to their `Google Assistant` app to add `[test] your app name` to their account. ### Enable Device Sync diff --git a/source/_integrations/google_maps.markdown b/source/_integrations/google_maps.markdown index 1e3dcc16f9c..64682505355 100644 --- a/source/_integrations/google_maps.markdown +++ b/source/_integrations/google_maps.markdown @@ -15,7 +15,7 @@ The `google_maps` platform allows you to detect presence using the unofficial AP You need two Google accounts. Account A is the account that has to be set up to share its location with account B. Account B is used to fetch the location of your device(s) and will be connected to this integration. 1. You first have to setup sharing of the location of account A through the Google Maps app on your mobile phone. Share your location with account B. You can find more information [here](https://support.google.com/accounts?p=location_sharing). -2. Next, you have to retrieve a valid cookie from Google, while being logged in with account B. Log in with your credentials of account B on [Google Maps](https://www.google.com/maps) with a PC with Firefox or Chrome. Make sure to use the `.com` TLD (e.g., maps.google.com), otherwise the cookie won't be able to provide a valid session. After you have properly authenticated, you can retrieve the cookie with either [Export cookies](https://addons.mozilla.org/en-US/firefox/addon/export-cookies-txt/?src=search) for Firefox (make sure that "Prefix HttpOnly cookies" is unchecked) or [cookies.txt](https://chrome.google.com/webstore/detail/cookiestxt/njabckikapfpffapmjgojcnbfjonfjfg?hl=en-US) for Chrome/Chromium. +2. Next, you have to retrieve a valid cookie from Google, while being logged in with account B. Log in with your credentials of account B on [Google Maps](https://www.google.com/maps) with a PC with Firefox or Chrome. Make sure to use the `.com` TLD (e.g., maps.google.com), otherwise the cookie won't be able to provide a valid session. After you have properly authenticated, you can retrieve the cookie with either [Export cookies](https://addons.mozilla.org/en-US/firefox/addon/export-cookies-txt/?src=search) for Firefox (make sure that "Prefix HttpOnly cookies" is unchecked) or [get_cookies.txt](https://chrome.google.com/webstore/detail/get-cookiestxt/bgaddhkoddajcdgocldbbfleckgcbcid?hl=en) for Chrome/Chromium. 3. Save the cookie file to your Home Assistant configuration directory with the following name: `.google_maps_location_sharing.cookies.` followed by the slugified username of the NEW Google account (account B). - For example: If your email address was `location.tracker@gmail.com`, the filename would be: `.google_maps_location_sharing.cookies.location_tracker_gmail_com`. diff --git a/source/_integrations/homeassistant.markdown b/source/_integrations/homeassistant.markdown index 253212eeef6..b9e2d3b298b 100644 --- a/source/_integrations/homeassistant.markdown +++ b/source/_integrations/homeassistant.markdown @@ -8,6 +8,7 @@ ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' ha_domain: homeassistant +ha_iot_class: --- The Home Assistant integration provides generic implementations like the generic `homeassistant.turn_on`. diff --git a/source/_integrations/honeywell.markdown b/source/_integrations/honeywell.markdown index 5832940612e..ec4919cf17f 100644 --- a/source/_integrations/honeywell.markdown +++ b/source/_integrations/honeywell.markdown @@ -5,8 +5,6 @@ ha_category: - Climate ha_release: pre 0.7 ha_iot_class: Cloud Polling -ha_codeowners: - - '@zxdavb' ha_domain: honeywell --- diff --git a/source/_integrations/html5.markdown b/source/_integrations/html5.markdown index aa59b053941..43027ceb179 100644 --- a/source/_integrations/html5.markdown +++ b/source/_integrations/html5.markdown @@ -238,12 +238,9 @@ data: You can dismiss notifications by using service html5.dismiss like so: ```json -{ - "target": ["my phone"], - "data": { - "tag": "notification_tag" - } -} +target: ['my phone'] +data: + tag: notification_tag ``` If no target is provided, it dismisses for all. @@ -339,10 +336,23 @@ If you still have the problem, even with mentioned rule, try to add this code: If you need to verify domain ownership with Google Webmaster Central/Search Console while configuring this component, follow these steps: +##### HTML file verification (only works for `/local` URLs) + 1. Enter your domain and add `/local` at the end, e.g., `https://example.com:8123/local` 2. Select HTML file verification and download the google*.html file. -2. Create a directory named `www` in your Home Assistant configuration directory (`/config/` share from Samba add-on). -3. Place the downloaded `google*.html` file in the `www` directory. -4. RESTART Home Assistant. **This is important!** -5. Verify the file can be accessed in the browser, e.g., `https://example.com:8123/local/google123456789.html` (change filename). You should see a plain text message saying "google-site-verification: ...". If you see "404: Not Found" or something else, retry the above steps. -6. Go back to Google Webmaster Central/Search Console and proceed with the verification. +3. Create a directory named `www` in your Home Assistant configuration directory (`/config/` share from Samba add-on). +4. Place the downloaded `google*.html` file in the `www` directory. +5. RESTART Home Assistant. **This is important!** +6. Verify the file can be accessed in the browser, e.g., `https://example.com:8123/local/google123456789.html` (change filename). You should see a plain text message saying "google-site-verification: ...". If you see "404: Not Found" or something else, retry the above steps. +7. Go back to Google Webmaster Central/Search Console and proceed with the verification. + +##### DNS verification (only if you control your DNS record or use DuckDNS) + +1. Enter your domain's base URL, like `https://example.com:8123/` +2. Select DNS verification. If you're asked to choose your DNS provider, choose "Any DNS provider" or "Other". +3. Add the TXT record to your DNS. If you use DuckDNS, use the format: + ```text + https://www.duckdns.org/update?domains={your Duck DNS subdomain (the part before .duckdns.org)}&token={your Duck DNS token}&txt={google-site-verification record} + ``` +4. Wait until the changes take effect. This can be anywhere from seconds to hours, so be patient. You can use [this site to test it](https://www.digwebinterface.com/). +5. Go back to Google Webmaster Central/Search Console and proceed with the verification. diff --git a/source/_integrations/image.markdown b/source/_integrations/image.markdown index c1512248380..78f3689b996 100644 --- a/source/_integrations/image.markdown +++ b/source/_integrations/image.markdown @@ -8,7 +8,7 @@ ha_codeowners: - '@home-assistant/core' ha_domain: image ha_quality_scale: internal -ha_iot_class: ~ +ha_iot_class: --- The Image integration allows Home Assistant to handle image assets in Home Assistant, for example, diff --git a/source/_integrations/image_processing.markdown b/source/_integrations/image_processing.markdown index ef1583000f6..3733c3fee47 100644 --- a/source/_integrations/image_processing.markdown +++ b/source/_integrations/image_processing.markdown @@ -5,7 +5,7 @@ ha_category: - Image Processing ha_release: 0.36 ha_domain: image_processing -ha_iot_class: ~ +ha_iot_class: --- Image processing enables Home Assistant to process images from [cameras](/integrations/#camera). Only camera entities are supported as sources. diff --git a/source/_integrations/insteon.markdown b/source/_integrations/insteon.markdown index 4fedce8b697..bf25c4168a8 100644 --- a/source/_integrations/insteon.markdown +++ b/source/_integrations/insteon.markdown @@ -234,7 +234,7 @@ device_override: type: list keys: address: - description: is found on the device itself in the form 1A.2B.3C or 1a2b3c. + description: "Is found on the device itself in the form `1A.2B.3C` or `1a2b3c`. If there's no letter in the address you need to use quotation marks, e.g., `\"123456\"`, to avoid it becoming a number in YAML." required: true type: string cat: diff --git a/source/_integrations/intent_script.markdown b/source/_integrations/intent_script.markdown index 2de7f9bdf3d..ca584851e58 100644 --- a/source/_integrations/intent_script.markdown +++ b/source/_integrations/intent_script.markdown @@ -6,6 +6,7 @@ ha_category: ha_release: '0.50' ha_quality_scale: internal ha_domain: intent_script +ha_iot_class: --- The `intent_script` integration allows users to configure actions and responses to intents. Intents can be fired by any integration that supports it. Examples are [Alexa](/integrations/alexa/) (Amazon Echo), [Dialogflow](/integrations/dialogflow/) (Google Assistant) and [Snips](/integrations/snips/). diff --git a/source/_integrations/keyboard.markdown b/source/_integrations/keyboard.markdown index 8c4a4bf91f6..ffad951b469 100644 --- a/source/_integrations/keyboard.markdown +++ b/source/_integrations/keyboard.markdown @@ -5,6 +5,7 @@ ha_category: - Automation ha_release: pre 0.7 ha_domain: keyboard +ha_iot_class: --- The `keyboard` integration simulates key presses on the host machine. It currently offers the following Buttons as a Service (BaaS): diff --git a/source/_integrations/knx.markdown b/source/_integrations/knx.markdown index 1706e237c06..9eef63b5d98 100644 --- a/source/_integrations/knx.markdown +++ b/source/_integrations/knx.markdown @@ -283,19 +283,24 @@ device_class: required: false type: string reset_after: - description: Reset back to OFF state after specified milliseconds. - required: false - type: integer -ignore_internal_state: - description: If set to true the update callbacks are always executed regardless of the current binary sensor state. If some of your automations are triggered multiple times make sure this setting is False. - required: false - type: boolean - default: True -context_timeout: - description: The time in seconds between multiple identical telegram payloads would count towards the internal counter that is used for automations. Ex. You have automations in place that trigger your lights on button press and another set of lights if you click that button twice. This setting defines the time that a second button press would count toward, so if you set this 3.0 you can take up to 3 seconds in order to trigger the second button press. Maximum value is 10.0. + description: Reset back to OFF state after specified seconds. required: false type: float - default: 1.0 +invert: + description: Invert the telegrams payload before processing. This is applied before `context_timeout` or `reset_after` is evaluated. + required: false + type: boolean + default: False +ignore_internal_state: + description: Specifies if telegrams should ignore the internal state and always trigger a Home Assistant state update. + required: false + type: boolean + default: False +context_timeout: + description: The time in seconds between multiple identical telegram payloads would count towards the internal counter that is used for automations. Ex. You have automations in place that trigger your lights on button press and another set of lights if you click that button twice. This setting defines the time that a second button press would count toward, so if you set this 3.0 you can take up to 3 seconds in order to trigger the second button press. If set `ignore_internal_state` will be set to `True` internally. Maximum value is 10.0. + required: false + type: float + default: None {% endconfiguration %} ### Support for automations @@ -455,6 +460,7 @@ The following values are valid for the `hvac_mode` attribute: The following presets are valid for the `preset_mode` attribute: +- Auto (maps internally to PRESET_NONE within Home Assistant) - Comfort (maps internally to PRESET_COMFORT within Home Assistant) - Standby (maps internally to PRESET_AWAY within Home Assistant) - Night (maps internally to PRESET_SLEEP within Home Assistant) @@ -556,7 +562,11 @@ operation_mode_standby_address: required: false type: string operation_modes: - description: Overrides the supported operation modes. Provide the supported `hvac_mode` and `preset_mode` values for your device. + description: Overrides the supported operation modes. Provide the supported `preset_mode` values for your device. + required: false + type: list +controller_modes: + description: Overrides the supported controller modes. Provide the supported `hvac_mode` values for your device. required: false type: list on_off_address: @@ -891,6 +901,11 @@ type: description: A type from the following table must be defined. The DPT of the group address should match the expected KNX DPT to be parsed correctly. required: true type: string +always_callback: + description: Defines if telegrams with equal payload as the previously received telegram should trigger a state update within Home Assistant. + required: false + type: boolean + default: False {% endconfiguration %} | KNX DPT | type | size in byte | range | unit | @@ -1078,6 +1093,15 @@ state_address: description: Separate KNX group address for retrieving the switch state. *DPT 1* required: false type: string +invert: + description: Invert the telegrams payload before processing or sending. This is applied before `reset_after` is evaluated so the reset will send "1" to the bus. + required: false + type: boolean + default: False +reset_after: + description: Reset the switch back to OFF after specified seconds. + required: false + type: float {% endconfiguration %} Some KNX devices can change their state internally without any messages on the KNX bus, e.g., if you configure a timer on a channel. The optional `state_address` can be used to inform Home Assistant about these state changes. If a KNX message is seen on the bus addressed to the given state address, this will overwrite the state of the switch object. diff --git a/source/_integrations/lightwave.markdown b/source/_integrations/lightwave.markdown index cb1f7b9fd73..d6d0977000d 100644 --- a/source/_integrations/lightwave.markdown +++ b/source/_integrations/lightwave.markdown @@ -65,12 +65,12 @@ trv: required: false type: map keys: - trv_proxy_ip: + proxy_ip: description: IP address of a proxy for TRV integration. required: false type: string default: "127.0.0.1" - trv_proxy_port: + proxy_port: description: IP port address of a proxy for TRV integration. required: false type: integer @@ -111,8 +111,8 @@ lightwave: R99D1: name: Bedroom Light trv: - trv_proxy_ip: 127.0.0.1 # Proxy address, do not change unless running on a different server - trv_proxy_port: 7878 # Do not change, unless a port clash + proxy_ip: 127.0.0.1 # Proxy address, do not change unless running on a different server + proxy_port: 7878 # Do not change, unless a port clash trvs: R1Dh: # The ID of the TRV. name: Bedroom TRV diff --git a/source/_integrations/logbook.markdown b/source/_integrations/logbook.markdown index c8eaa7bca18..a32efb62dfe 100644 --- a/source/_integrations/logbook.markdown +++ b/source/_integrations/logbook.markdown @@ -13,7 +13,7 @@ ha_iot_class: The logbook integration provides a different perspective on the history of your house by showing all the changes that happened to your house in reverse chronological order. It depends on -the `recorder` integration for storing the data. This means that if the +the [`recorder`](/integrations/recorder/) integration for storing the data. This means that if the [`recorder`](/integrations/recorder/) integration is set up to use e.g., MySQL or PostgreSQL as data store, the `logbook` integration does not use the default SQLite database to store data. diff --git a/source/_integrations/logger.markdown b/source/_integrations/logger.markdown index 8bca5f4fcba..bc797d0c154 100644 --- a/source/_integrations/logger.markdown +++ b/source/_integrations/logger.markdown @@ -8,6 +8,7 @@ ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' ha_domain: logger +ha_iot_class: --- The `logger` integration lets you define the level of logging activities in Home diff --git a/source/_integrations/media_source.markdown b/source/_integrations/media_source.markdown index e51c108f659..23df0cda176 100644 --- a/source/_integrations/media_source.markdown +++ b/source/_integrations/media_source.markdown @@ -7,6 +7,7 @@ ha_release: 0.115 ha_domain: media_source ha_codeowners: - '@hunterjm' +ha_iot_class: --- The Media Source integration platform allows integrations to expose media for @@ -24,7 +25,7 @@ media_source: ## Local Media -By default, the integration by default looks for media in a specified folder. +By default, the integration looks for media in a specified folder. If other `media_dirs` are not declared you need to use `/media/local` path for example in companion app notification. diff --git a/source/_integrations/microsoft.markdown b/source/_integrations/microsoft.markdown index 74cbed16181..392c348e824 100644 --- a/source/_integrations/microsoft.markdown +++ b/source/_integrations/microsoft.markdown @@ -8,7 +8,7 @@ ha_release: 0.57 ha_domain: microsoft --- -The `microsoft` text-to-speech platform uses the [TTS engine of the Microsoft Speech Service](https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/text-to-speech) to read a text with natural sounding voices. This integration uses an API that is part of the Cognitive Services offering and is known as the Microsoft Speech API. For this integration to work, you need a free API key. You can use your [Azure subscription](https://azure.microsoft.com) to create an [Azure Speech resource](https://portal.azure.com/#create/Microsoft.CognitiveServicesSpeechServices/). +The `microsoft` text-to-speech platform uses the [TTS engine of the Microsoft Speech Service](https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/text-to-speech) to read a text with natural sounding voices. This integration uses an API that is part of the Cognitive Services offering and is known as the Microsoft Speech API. For this integration to work, you need a free API key. You can use your [Azure subscription](https://azure.microsoft.com) to create an [Azure Speech resource](https://portal.azure.com/#create/Microsoft.CognitiveServicesSpeechServices). ## Configuration diff --git a/source/_integrations/miflora.markdown b/source/_integrations/miflora.markdown index 42ff35f8888..bd716919686 100644 --- a/source/_integrations/miflora.markdown +++ b/source/_integrations/miflora.markdown @@ -7,7 +7,6 @@ ha_release: 0.29 ha_iot_class: Local Polling ha_codeowners: - '@danielhiversen' - - '@ChristianKuehnel' - '@basnijholt' ha_domain: miflora --- diff --git a/source/_integrations/mobile_app.markdown b/source/_integrations/mobile_app.markdown index a9f4783230d..49be71bc117 100644 --- a/source/_integrations/mobile_app.markdown +++ b/source/_integrations/mobile_app.markdown @@ -9,6 +9,7 @@ ha_quality_scale: internal ha_codeowners: - '@robbiet480' ha_domain: mobile_app +ha_iot_class: Local Push --- The Mobile App integration allows Home Assistant mobile apps to easily integrate with Home Assistant. diff --git a/source/_integrations/nest.markdown b/source/_integrations/nest.markdown index 6d98818f240..63d9d9319b3 100644 --- a/source/_integrations/nest.markdown +++ b/source/_integrations/nest.markdown @@ -25,7 +25,7 @@ There is currently support for the following device types within Home Assistant: - [Sensor](#sensor)

-Note that this integration continues to support the Legacy Works With Nest API which is not accepting new users. The documentation for this API is at the bottom of this page so existing users can keep using it. +This integration continues to support the Legacy Works With Nest API which is not accepting new users. The documentation for this API is at the bottom of this page so existing users can keep using it.
## Overview: Supported Devices @@ -47,25 +47,29 @@ supported by the SDM API. ## Account Setup -You will need to follow the instructions in [Device Access Registration](https://developers.google.com/nest/device-access/registration), which includes the following steps in the -Quick Start Guide: +You will need to follow the instructions in [Device Access Registration](https://developers.google.com/nest/device-access/registration) to authorize access to your devices. Follow these steps in the Quick Start Guide: - Accept the Terms of Service. - Pay a fee (currently US$5). - Register in the Device Access Console to get a `project_id`. - Authorize your Google Account and create OAuth credentials to get a `client_id` and `client_secret`. -- Enable pubsub events in the Device Access Console (creates a topic). -- Create a pull subscription to get a `subscriber_id` ("Subscription ID" in Google Cloud Console).
It is currently not possible to share/be invited to a home with a G-Suite account. Make sure that you pay the fee with an account that has access to your devices.
+Then you need to configure a Pub/Sub subscriber following the SDM API Event instructions under [Device Access: Events](https://developers.google.com/nest/device-access/api/events) though not using a service account. The basic +steps are: + +- [Enable events](https://developers.google.com/nest/device-access/subscribe-to-events#enable_events) in the [Device Access Console](https://console.nest.google.com/device-access/project-list) which creates a Pub/Sub topic. +- [Enable the Cloud Pub/Sub API](https://console.developers.google.com/apis/library/pubsub.googleapis.com) in the Cloud Console. +- [Create a Pub/Sub subscription](https://console.cloud.google.com/cloudpubsub/subscription/list) in the Google Cloud Platform console. Make sure to create a pull subscription and get a `subscriber_id` ("Subscription ID" in Google Cloud Console). The *Topic name* should match the topic name in the device access console. + Additionally, Home Assistant must be configured with a URL (e.g., external exposed [`http`](/integrations/http/), Nabu Casa, etc). When setting up the OAuth credentials, make sure the Home Assistant URL is in the list of *Authorized redirect URIs*, so the redirect back to Home Assistant can get an OAuth authorization code. Follow all of the instructions in [Device Access: Quick Start Guide](https://developers.google.com/nest/device-access/get-started) carefully as it is easy to make a configuration mistake that is difficult to debug. It is recommended to exercise the entire guide, including the command to test out the API, to make sure that it is working before configuring Home Assistant. -It may be easiest to create a [Pub/Sub subscription](https://console.cloud.google.com/cloudpubsub/subscription/list) from the Google Cloud console. Make sure to use the *topic name* from the device access console and a unique subscription ID. Note the message retention is how long messages will queue while offline, so keep that short (e.g., under an hour) to avoid a potentially large backlog of updates. +When you get to the steps about configuring events make sure to follow guide under [Events](https://developers.google.com/nest/device-access/api/events) that configures the [Pub/Sub subscription](https://console.cloud.google.com/cloudpubsub/subscription/list) from the Google Cloud console. Make sure to use the *topic name* from the device access console and a unique subscription ID in the cloud console. Note the message retention is how long messages will queue while offline, so keep that short (e.g., under an hour) to avoid a potentially large backlog of updates. ## Configuration @@ -76,8 +80,10 @@ It may be easiest to create a [Pub/Sub subscription](https://console.cloud.googl nest: client_id: CLIENT_ID client_secret: CLIENT_SECRET - project_id: PROJECT_ID # ("Project ID" in the Device Access Console) - subscriber_id: SUBSCRIBER_ID # ("Subscription ID" in Google Cloud Console) + # "Project ID" in the Device Access Console + project_id: PROJECT_ID + # Provide the full path exactly as shown under "Subscription name" in Google Cloud Console + subscriber_id: projects/project-label-22ee1/subscriptions/SUBSCRIBER_ID ``` {% configuration %} @@ -94,7 +100,7 @@ project_id: required: false type: string subscriber_id: - description: Your Pub/sub Subscription ID used to receive events. This is required to use the SDM API. + description: Full path for the Pub/sub Subscription ID used to receive events. This is required to use the SDM API. Enter this exactly as it appers under "Subscription name" in the [Pub/Sub console](https://console.cloud.google.com/cloudpubsub/subscription/list). type: string required: false {% endconfiguration %} @@ -115,6 +121,29 @@ Once your developer account is set up and you have a valid `nest` entry in `conf - For trouble with the SDM API OAuth authorization flow with Google, see [Troubleshooting](https://developers.google.com/nest/device-access/authorize#troubleshooting) which includes guidance for errors like `redirect_uri_mismatch` where Google needs to know about your external URL +- You can see stats about your subscriber in the [Cloud Console](https://console.cloud.google.com/cloudpubsub/subscription/list) which includes # of messages that have yet to be acknowledged. This can tell you if the publisher is working, or if the subscriber is working. You can also `View Messages` to see any pending messages. Many old unacknowledged messages may indicate the subscriber is not working properly. + +- To aid in diagnosing subscriber problems or camera stream issues it may help to turn up verbose logging by adding some or all of these to your `configuration.yaml` depending on where you are having trouble: + +```yaml + +logger: + default: info + logs: + homeassistant.components.nest: debug + homeassistant.components.nest.climate_sdm: debug + homeassistant.components.nest.camera_sdm: debug + homeassistant.components.nest.sensor_sdm: debug + google_nest_sdm: debug + google_nest_sdm.device: debug + google_nest_sdm.device_manager: debug + google_nest_sdm.google_nest_subscriber: debug + google_nest_sdm.event: debug + google.cloud.pubsub_v1: debug + google.cloud.pubsub_v1.subscriber._protocol.streaming_pull_manager: debug + +``` + ## Camera All Google Nest Cam models, Google Nest Hello Video Doorbell, Google Nest Hub Max expose a [CameraLiveStream](https://developers.google.com/nest/device-access/traits/device/camera-live-stream) via the SDM API, which returns a RTSP live stream which can be viewed from Home Assistant. @@ -138,7 +167,7 @@ Given a thermostat named `Upstairs` then sensors are created with names such as # Legacy Works With Nest API -This section contains instructions for the Legacy [Works with Nest](https://developers.nest.com/) API. +This section contains instructions for the Legacy [Works with Nest](https://developers.nest.com/) API.
New users are not currently able to set up a Works With Nest Developer account. The documentation is preserved here for existing users of the API. diff --git a/source/_integrations/opensky.markdown b/source/_integrations/opensky.markdown index 86b46b4608e..8900721f85a 100644 --- a/source/_integrations/opensky.markdown +++ b/source/_integrations/opensky.markdown @@ -37,6 +37,8 @@ Both events have three attributes: - **sensor**: Name of `opensky` sensor that fired the event. - **callsign**: Callsign of the flight. +- **latitude**: Latitude of the flight. +- **longitude**: Longitude of the flight. - **altitude**: Altitude of the flight in meters. To receive notifications of the entering flights using the [Home Assistant Companion App](https://companion.home-assistant.io/), add the following lines to your `configuration.yaml` file: diff --git a/source/_integrations/openweathermap.markdown b/source/_integrations/openweathermap.markdown index af9f197f404..89eb6309fc6 100644 --- a/source/_integrations/openweathermap.markdown +++ b/source/_integrations/openweathermap.markdown @@ -10,6 +10,7 @@ ha_config_flow: true ha_codeowners: - '@fabaff' - '@freekode' + - '@nzapponi' ha_domain: openweathermap --- diff --git a/source/_integrations/panel_iframe.markdown b/source/_integrations/panel_iframe.markdown index e22bfd49c24..dece86721c2 100644 --- a/source/_integrations/panel_iframe.markdown +++ b/source/_integrations/panel_iframe.markdown @@ -8,6 +8,7 @@ ha_quality_scale: internal ha_codeowners: - '@home-assistant/frontend' ha_domain: panel_iframe +ha_iot_class: --- The `panel_iframe` support allows you to add additional panels to your Home Assistant frontend. The panels are listed in the sidebar and can contain external resources like the web frontend of your router, your monitoring system, or your media server. diff --git a/source/_integrations/plant.markdown b/source/_integrations/plant.markdown index b2584de4c90..decf2699370 100644 --- a/source/_integrations/plant.markdown +++ b/source/_integrations/plant.markdown @@ -6,8 +6,6 @@ ha_category: ha_iot_class: Calculated ha_release: 0.44 ha_quality_scale: internal -ha_codeowners: - - '@ChristianKuehnel' ha_domain: plant --- diff --git a/source/_integrations/proximity.markdown b/source/_integrations/proximity.markdown index 8aca0e7dd30..addc4d36bc7 100644 --- a/source/_integrations/proximity.markdown +++ b/source/_integrations/proximity.markdown @@ -10,7 +10,7 @@ ha_domain: proximity ha_iot_class: --- -The `proximity` integration allows you to monitor the proximity of devices to a particular [zone](/integrations/zone/) and the direction of travel. The result is an entity created in Home Assistant which maintains the proximity data. +The `proximity` integration allows you to monitor the proximity of devices or persons to a particular [zone](/integrations/zone/) and the direction of travel. The result is an entity created in Home Assistant which maintains the proximity data. This integration is useful to reduce the number of automation rules required when wanting to perform automations based on locations outside a particular zone. The [zone](/getting-started/automation-trigger/#zone-trigger) and [state](/getting-started/automation-trigger/#state-trigger) based triggers allow similar control but the number of rules grows exponentially when factors such as direction of travel need to be taken into account. @@ -22,7 +22,7 @@ Some examples of its use include: The Proximity entity which is created has the following values: - `state`: Distance from the monitored zone (in km) -- `dir_of_travel`: Direction of the closest device to the monitored zone. Values are: +- `dir_of_travel`: Direction of the closest device or person to the monitored zone. Values are: - 'not set' - 'arrived' - 'towards' @@ -36,7 +36,7 @@ The Proximity entity which is created has the following values: - 'mi' - 'yd' - 'ft' -- `nearest`: The device which is nearest to the zone +- `nearest`: The device or person which is nearest to the zone To enable this integration in your installation, add the following to your `configuration.yaml` file: @@ -59,11 +59,11 @@ zone: type: map keys: ignored_zones: - description: Where proximity is not calculated for a device (either the device being monitored or ones being compared (e.g., work or school). + description: Where proximity is not calculated for a device or person (either the device being monitored or ones being compared (e.g., work or school). required: false type: list devices: - description: A list of devices to compare location against to check closeness to the configured zone. + description: A list of devices and/or persons to compare location against to check closeness to the configured zone. required: false type: list tolerance: @@ -100,6 +100,6 @@ proximity: work: zone: work devices: - - device_tracker.iphone2 + - person.paulus tolerance: 10 ``` diff --git a/source/_integrations/proxy.markdown b/source/_integrations/proxy.markdown index f2cee20c59f..813aaaf0a99 100644 --- a/source/_integrations/proxy.markdown +++ b/source/_integrations/proxy.markdown @@ -5,6 +5,7 @@ ha_category: - Camera ha_release: 0.65 ha_domain: proxy +ha_iot_class: --- The `proxy` camera platform allows you to pass another camera's output through post-processing routines and generate a new camera with the post-processed output. diff --git a/source/_integrations/ptvsd.markdown b/source/_integrations/ptvsd.markdown index cb3ae6c6305..62f10f37d76 100644 --- a/source/_integrations/ptvsd.markdown +++ b/source/_integrations/ptvsd.markdown @@ -7,6 +7,7 @@ ha_release: 0.93 ha_codeowners: - '@swamp-ig' ha_domain: ptvsd +ha_iot_class: Local Push ---
diff --git a/source/_integrations/python_script.markdown b/source/_integrations/python_script.markdown index ad6e02e98dd..43c78ad68cc 100644 --- a/source/_integrations/python_script.markdown +++ b/source/_integrations/python_script.markdown @@ -6,6 +6,7 @@ ha_category: ha_release: 0.47 ha_quality_scale: internal ha_domain: python_script +ha_iot_class: --- This integration allows you to write Python scripts that are exposed as services in Home Assistant. Each Python file created in the `/python_scripts/` folder will be exposed as a service. The content is not cached so you can easily develop: edit file, save changes, call service. The scripts are run in a sandboxed environment. The following variables are available in the sandbox: diff --git a/source/_integrations/qnap.markdown b/source/_integrations/qnap.markdown index b0593d2f1e7..9eca1fa49b5 100644 --- a/source/_integrations/qnap.markdown +++ b/source/_integrations/qnap.markdown @@ -64,10 +64,10 @@ password: description: The password of the user to connect to the QNAP NAS. required: true type: string -drivers: +drives: description: "Array of drives to monitor (ex: `0:1`)." required: false - default: all drivers + default: all drives type: list volumes: description: "Array of volumes to monitor (ex: `DataVol1`)." diff --git a/source/_integrations/recorder.markdown b/source/_integrations/recorder.markdown index 4dd09cc587d..a9df3b7b4bd 100644 --- a/source/_integrations/recorder.markdown +++ b/source/_integrations/recorder.markdown @@ -6,6 +6,7 @@ ha_category: ha_release: pre 0.7 ha_quality_scale: internal ha_domain: recorder +ha_iot_class: Local Push --- The `recorder` integration is responsible for storing details in a database, which then are handled by the [`history` ](/integrations/history/) integration. diff --git a/source/_integrations/rpi_gpio_pwm.markdown b/source/_integrations/rpi_gpio_pwm.markdown index bac05f9635e..d06ea5dd5fe 100644 --- a/source/_integrations/rpi_gpio_pwm.markdown +++ b/source/_integrations/rpi_gpio_pwm.markdown @@ -6,6 +6,8 @@ ha_category: ha_iot_class: Local Push ha_release: 0.43 ha_domain: rpi_gpio_pwm +ha_codeowners: + - '@soldag' --- The `rpi_gpio_pwm` platform allows to control multiple lights using pulse-width modulation, for example LED strips. It supports one-color, RGB and RGBW LEDs driven by GPIOs of a Raspberry Pi (same host or remote) or a PCA9685 controller. diff --git a/source/_integrations/safe_mode.markdown b/source/_integrations/safe_mode.markdown index 25bcc4a9b6a..6a59a94b66e 100644 --- a/source/_integrations/safe_mode.markdown +++ b/source/_integrations/safe_mode.markdown @@ -6,6 +6,7 @@ ha_release: 0.105 ha_codeowners: - '@home-assistant/core' ha_domain: safe_mode +ha_iot_class: --- The `safe_mode` integration is an internally used integration by the diff --git a/source/_integrations/script.markdown b/source/_integrations/script.markdown index 367c3fa4892..3739d0ed09b 100644 --- a/source/_integrations/script.markdown +++ b/source/_integrations/script.markdown @@ -62,7 +62,7 @@ variables: description: The value of the variable. Any YAML is valid. Templates can also be used to pass a value to the variable. type: any fields: - description: Information about the parameters that the script uses; see the [Passing variables to scripts](#passing-variables-to-scripts) section below. + description: "Information about the parameters that the script uses; see the [Passing variables to scripts](#passing-variables-to-scripts) section below. Please Note: In order for this description to be displayed in the Services tab of the Developer Tools in Lovelace, the script description must be defined as well." required: false default: {} type: map diff --git a/source/_integrations/seventeentrack.markdown b/source/_integrations/seventeentrack.markdown index 1eabbfd3993..4e6b1d99188 100644 --- a/source/_integrations/seventeentrack.markdown +++ b/source/_integrations/seventeentrack.markdown @@ -50,3 +50,23 @@ show_delivered: type: boolean default: false {% endconfiguration %} + +## Examples + +### Lovelace summary card + +Use the following templated Markdown card to list all packages in transit along their status: + +{% raw %} +```yaml +type: markdown +title: Packages in transit +content: >- + {% for package in + states.sensor.seventeentrack_packages_in_transit.attributes.packages %} + + **{{ package.friendly_name }}:** {{ package.info_text }} + + {% endfor %} +``` +{% endraw %} diff --git a/source/_integrations/shelly.markdown b/source/_integrations/shelly.markdown index 4f24a4a203f..6d545187c22 100644 --- a/source/_integrations/shelly.markdown +++ b/source/_integrations/shelly.markdown @@ -10,6 +10,7 @@ ha_release: 0.115 ha_codeowners: - '@balloob' - '@bieniu' + - '@thecode' ha_iot_class: Local Polling ha_domain: shelly featured: true diff --git a/source/_integrations/sleepiq.markdown b/source/_integrations/sleepiq.markdown index 9a206fd5248..5e22f99c17e 100644 --- a/source/_integrations/sleepiq.markdown +++ b/source/_integrations/sleepiq.markdown @@ -6,7 +6,7 @@ ha_category: - Sensor - Binary Sensor ha_release: 0.29 -ha_iot_class: Local Polling +ha_iot_class: Cloud Polling ha_domain: sleepiq --- diff --git a/source/_integrations/spotify.markdown b/source/_integrations/spotify.markdown index 3703894be5f..de6705ba5cd 100644 --- a/source/_integrations/spotify.markdown +++ b/source/_integrations/spotify.markdown @@ -63,6 +63,7 @@ client_secret: ## Activating the Spotify integration +- Access Home Assistant using the URL that you used in the **Redirect URI** step above - Go to the **Configuration** page in the Home Assistant frontend. - Click on **Integrations**. - Click the orange **+** on the bottom-right. diff --git a/source/_integrations/stt.markdown b/source/_integrations/stt.markdown index c86e859ad20..7b2eac968b5 100644 --- a/source/_integrations/stt.markdown +++ b/source/_integrations/stt.markdown @@ -5,6 +5,7 @@ ha_release: '0.102' ha_codeowners: - '@pvizeli' ha_domain: stt +ha_iot_class: --- Speech-to-Text (STT) allows you to stream speech data to the STT API and get text back. diff --git a/source/_integrations/system_log.markdown b/source/_integrations/system_log.markdown index e60fa8f9356..336d6535a02 100644 --- a/source/_integrations/system_log.markdown +++ b/source/_integrations/system_log.markdown @@ -6,6 +6,7 @@ ha_category: ha_release: 0.58 ha_quality_scale: internal ha_domain: system_log +ha_iot_class: --- The `system_log` integration stores information about all logged errors and warnings in Home Assistant. To view your logs, navigate to **Configuration** -> **Logs**. In order to not overload Home Assistant with log data, only the 50 last errors and warnings will be stored. Older entries are automatically discarded from the log. It is possible to change the number of stored log entries using the parameter `max_entries`. diff --git a/source/_integrations/tag.markdown b/source/_integrations/tag.markdown index 9e8c5613912..967f19b65f6 100644 --- a/source/_integrations/tag.markdown +++ b/source/_integrations/tag.markdown @@ -90,6 +90,9 @@ automation: {% endraw %} +To find your scanner's device ID, open Developer tools -> Events -> Listen to events and subscribe to `tag_scanned`. +Then scan a tag on the reader and note down the `device_id` from the `data` section. + ## Printing tags NFC tags come in many different shapes and formats. [NFC Stickers](https://amzn.to/3bQU0nN) are great to make existing objects scannable, like books or photos. But another fun use case is to get printable NFC cards. The great thing about these cards is that they are very accessible. Kids as young as 1 year old will be able to use it. diff --git a/source/_integrations/webhook.markdown b/source/_integrations/webhook.markdown index fb2d4fa5ec8..5b9a33b46da 100644 --- a/source/_integrations/webhook.markdown +++ b/source/_integrations/webhook.markdown @@ -2,6 +2,7 @@ ha_release: 0.8 title: Webhook ha_domain: webhook +ha_iot_class: --- diff --git a/source/_integrations/websocket_api.markdown b/source/_integrations/websocket_api.markdown index 91e3452ce3c..f3fec6cb53a 100644 --- a/source/_integrations/websocket_api.markdown +++ b/source/_integrations/websocket_api.markdown @@ -8,6 +8,7 @@ ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' ha_domain: websocket_api +ha_iot_class: --- The `websocket_api` integration set up a WebSocket API and allows one to interact with a Home Assistant instance that is running headless. This integration depends on the [`http` component](/integrations/http/). diff --git a/source/_integrations/withings.markdown b/source/_integrations/withings.markdown index 93dea322180..c753af7cc4e 100644 --- a/source/_integrations/withings.markdown +++ b/source/_integrations/withings.markdown @@ -125,7 +125,7 @@ In a text editor, replace ```USER_PROFILE_NAME``` in the template sensors below ```yaml # Example configuration.yaml entry -sensors: +sensor: - platform: template sensors: withings_weight_lbs_USER_PROFILE_NAME: diff --git a/source/_integrations/wled.markdown b/source/_integrations/wled.markdown index 9ffa35b3612..28bd6d8aaea 100644 --- a/source/_integrations/wled.markdown +++ b/source/_integrations/wled.markdown @@ -122,4 +122,3 @@ This service allows for loading a preset saved on the WLED device. | `preset` | no | ID of the preset slot to load from. | More information on presets [is documented in the WLED Wiki](https://github.com/Aircoookie/WLED/wiki/Presets) - diff --git a/source/_integrations/xiaomi.markdown b/source/_integrations/xiaomi.markdown index 42503f3f218..4760dbf753a 100644 --- a/source/_integrations/xiaomi.markdown +++ b/source/_integrations/xiaomi.markdown @@ -18,6 +18,7 @@ In order to integrate the camera with Home Assistant, it is necessary to install * [Yi 720p](https://github.com/fritz-smh/yi-hack) * [Yi Home 17CN / 27US / 47US / 1080p Home / Dome / 1080p Dome](https://github.com/shadow-1/yi-hack-v3) +* [Recent Yi 1080p Home / 1080p Dome](https://github.com/roleoroleo/yi-hack-MStar) * [Xiaofang 1080p Camera](https://github.com/samtap/fang-hacks) Once installed, please ensure that you have enabled FTP. diff --git a/source/_integrations/xiaomi_miio.markdown b/source/_integrations/xiaomi_miio.markdown index 16a9b6d8235..d86d7571316 100644 --- a/source/_integrations/xiaomi_miio.markdown +++ b/source/_integrations/xiaomi_miio.markdown @@ -1480,10 +1480,11 @@ vacuum_kitchen: Valid room numbers can be retrieved using miio command-line tool: ```bash -miio protocol call get_room_mapping +miiocli vacuum --ip --token get_room_mapping ``` -It will only give room numbers and not the room names. To map the room numbers to your actual rooms, one can just test the clean_segment service with a number and see which room it cleans. The Xiaomi Home App will highlight the room after issuing the request, which makes the process rather convenient. +It will return the full mapping of room numbers to user-defined names as a list of (number,name) tuples. +Alternatively, one can just test the clean_segment service with a number and see which room it cleans. It seems to be the case that Numbers 1..15 are used to number the intitial segmentation done by the vacuum cleaner itself. Numbers 16 and upwards numbers rooms from the users manual editing. diff --git a/source/_integrations/yessssms.markdown b/source/_integrations/yessssms.markdown index c77f4dbc594..b12191a7453 100644 --- a/source/_integrations/yessssms.markdown +++ b/source/_integrations/yessssms.markdown @@ -57,7 +57,7 @@ name: type: string default: notify username: - description: This is your login name (usually your phone number). Veryfy that you can use your credentials on the Yesss.at website. + description: This is your login name (usually your phone number, but in some cases it could be your e-mail). Veryfy that you can use your credentials on the Yesss.at website. required: true type: string password: @@ -81,9 +81,9 @@ For an alternative provider you would set the `provider` option. An example conf notify: - name: sms_to_self platform: yessssms - username: 06641234567 + username: "+436641234567" password: tops3cr3tpass0rd - recipient: 06641234567 + recipient: "+436641234567" provider: educom ``` diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown index a4acf64b72a..3f79b87978c 100644 --- a/source/_integrations/zha.markdown +++ b/source/_integrations/zha.markdown @@ -59,16 +59,21 @@ Some other Zigbee coordinator hardware may not support a firmware that is capabl - [Elelabs Zigbee USB Adapter](https://elelabs.com/products/elelabs_usb_adapter.html) (Note! Not a must but recommend [upgrade the EmberZNet NCP application firmware](https://github.com/Elelabs/elelabs-zigbee-ezsp-utility)) - [Elelabs Zigbee Raspberry Pi Shield](https://elelabs.com/products/elelabs_zigbee_shield.html) (Note! Not a must but recommend [upgrade the EmberZNet NCP application firmware](https://github.com/Elelabs/elelabs-zigbee-ezsp-utility)) - Bitron Video/Smabit BV AV2010/10 USB-Stick with Silicon Labs Ember 3587 - - Telegesis ETRX357USB (Note! This first have to be flashed with other EmberZNet firmware) - - Telegesis ETRX357USB-LRS (Note! This first have to be flashed with other EmberZNet firmware) - - Telegesis ETRX357USB-LRS+8M (Note! This first have to be flashed with other EmberZNet firmware) + - Telegesis ETRX357USB (Note! This first have to be [flashed with other EmberZNet firmware](https://github.com/walthowd/husbzb-firmware)) + - Telegesis ETRX357USB-LRS (Note! This first have to be [flashed with other EmberZNet firmware](https://github.com/walthowd/husbzb-firmware)) + - Telegesis ETRX357USB-LRS+8M (Note! This first have to be [flashed with other EmberZNet firmware](https://github.com/walthowd/husbzb-firmware)) - Texas Instruments based radios with Z-Stack 3.x.x (via the [zigpy-znp](https://github.com/zha-ng/zigpy-znp) library for zigpy) - [CC2652P/CC2652R/CC2652RB USB stick or dev board hardware flashed with Z-Stack 3.x.x coordinator firmware](https://www.zigbee2mqtt.io/information/supported_adapters) - [CC1352P/CC1352R USB stick or dev board hardware flashed with Z-Stack 3.x.x coordinator firmware](https://www.zigbee2mqtt.io/information/supported_adapters) - Digi XBee Zigbee based radios (via the [zigpy-xbee](https://github.com/zigpy/zigpy-xbee) library for zigpy) - - Digi XBee Series 3 (xbee3-24) modules - - Digi XBee Series 2C (S2C) modules - - Digi XBee Series 2 (S2) modules (Note! This first have to be flashed with Zigbee Coordinator API firmware) + - [Digi XBee Series 3 (xbee3-24)](https://www.digi.com/products/embedded-systems/digi-xbee/rf-modules/2-4-ghz-rf-modules/xbee3-zigbee-3) and [Digi XBee Series S2C](https://www.digi.com/products/embedded-systems/digi-xbee/rf-modules/2-4-ghz-rf-modules/xbee-zigbee) modules + - Note! While not a must, [it is recommend to upgrade XBee Series 3 and S2C to newest firmware firmware using XCTU](https://www.digi.com/resources/documentation/Digidocs/90002002/Default.htm#Tasks/t_load_zb_firmware.htm) + - [Digi XBee Series 2 (S2)](https://www.digi.com/support/productdetail?pid=3430) modules (Note! This first have to be [flashed with Zigbee Coordinator API firmware](https://www.digi.com/support/productdetail?pid=3430)) +- ZiGate based radios (via the [zigpy-zigate](https://github.com/zigpy/zigpy-zigate) library for zigpy and require firmware 3.1d or later) + - [ZiGate USB-TTL](https://zigate.fr/produit/zigate-ttl/) + - [ZiGate USB-DIN](https://zigate.fr/produit/zigate-usb-din/) + - [PiZiGate](https://zigate.fr/produit/pizigate-v1-0/) + - [Wifi ZiGate](https://zigate.fr/produit/zigate-pack-wifi-v1-3/) ### Experimental support for additional Zigbee radio modules @@ -76,11 +81,6 @@ Some other Zigbee coordinator hardware may not support a firmware that is capabl - [CC2531 USB stick hardware flashed with Z-Stack Home 1.2.x coordinator firmware](https://www.zigbee2mqtt.io/information/supported_adapters) - [CC2530 + CC2591/CC2592 USB stick hardware flashed with Z-Stack Home 1.2.x coordinator firmware](https://www.zigbee2mqtt.io/information/supported_adapters) - [CC2538 + CC2592 dev board hardware flashed with Z-Stack Home 1.2.x coordinator firmware](https://www.zigbee2mqtt.io/information/supported_adapters) -- ZiGate based radios (via the [zigpy-zigate](https://github.com/zigpy/zigpy-zigate) library for zigpy and require firmware 3.1a or later) - - [ZiGate USB-TTL](https://zigate.fr/produit/zigate-ttl/) - - [ZiGate USB-DIN](https://zigate.fr/produit/zigate-usb-din/) - - [PiZiGate](https://zigate.fr/produit/pizigate-v1-0/) - - [Wifi ZiGate](https://zigate.fr/produit/zigate-pack-wifi-v1-3/) ## Configuration - GUI diff --git a/source/_lovelace/button.markdown b/source/_lovelace/button.markdown index 683015300eb..c9df3733a0a 100644 --- a/source/_lovelace/button.markdown +++ b/source/_lovelace/button.markdown @@ -7,18 +7,38 @@ description: "The Button card allows you to add buttons to perform tasks." The Button card allows you to add buttons to perform tasks.

-Screenshot of the button card -Screenshot of the Button card. +Screenshot of three Button Cards +Screenshot of three Button Cards.

To add the Button card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Button** from the card picker. All options for this card can be configured via the user interface. -Alternatively, the card can be configured using YAML: +## Card Settings -```yaml -type: button -entity: light.living_room -``` +{% configuration_basic %} +Entity: + description: The entity ID the card interacts with, for example, `light.living_room`. +Name: + description: The button name that is displayed on the card. If this field is left blank and the card interacts with an entity, the button name defaults to the entity name. Otherwise, no name is displayed. +Icon: + description: The icon that is displayed on the card. If this field is left blank and the card interacts with an entity, the icon defaults to the entity domain icon. Otherwise, no icon is displayed. +Show Name: + description: A toggle to show or hide the button name. +Show Icon: + description: A toggle to show or hide the icon. +Icon Height: + description: The height of the icon, in pixels. +Theme: + description: The card theme, which may be set to any installed theme. For more information about themes, see the [frontend documentation](https://www.home-assistant.io/integrations/frontend/). +Tap Action: + description: The action taken on card tap. For more information, see the [action documentation](/lovelace/actions/#tap-action). +Hold Action: + description: The action taken on card tap and hold. For more information, see the [action documentation](/lovelace/actions/#hold-action). +{% endconfiguration_basic %} + +### YAML + +This is for if you use YAML mode or prefer to use YAML in the Code Editor in the UI. {% configuration %} type: @@ -27,26 +47,26 @@ type: type: string entity: required: false - description: Home Assistant entity ID. + description: The entity ID the card interacts with, for example, `light.living_room`. type: string name: required: false - description: Overwrites friendly name. + description: The button name that is displayed on the card. It defaults to the entity name only if the card interacts with an entity. Otherwise, if not configured, no name is displayed. type: string - default: Name of Entity + default: Entity name icon: required: false - description: Icon that will be be used to overwrite the entity picture or entity icon. + description: The icon that is displayed on the card. It defaults to the entity domain icon only if the card interacts with an entity. Otherwise, if not configured, no icon is displayed. type: string default: Entity Domain Icon show_name: required: false - description: Show name. + description: If false, the button name is not shown on the card. type: boolean default: "true" show_icon: required: false - description: Show icon. + description: If false, the icon is not shown on the card. type: boolean default: "true" show_state: @@ -56,44 +76,51 @@ show_state: default: "false" icon_height: required: false - description: Set the height for the icon. This is in pixels which is handled by the configuration UI. (Advanced users can use other CSS values if they like) + description: The height of the icon. Any CSS value may be used. type: string default: auto state_color: required: false - description: Set to `true` to have icons colored when entity is active + description: If false, the icon does not change color when the entity is active. type: boolean default: true tap_action: required: false - description: Action taken on card tap. See [action documentation](/lovelace/actions/#tap-action). + description: The action taken on card tap. For more information, see the [action documentation](/lovelace/actions/#tap-action). type: map hold_action: required: false - description: Action taken on card tap and hold. See [action documentation](/lovelace/actions/#hold-action). + description: The action taken on card tap and hold. For more information, see the [action documentation](/lovelace/actions/#hold-action). type: map double_tap_action: required: false - description: Action taken on card double tap. See [action documentation](/lovelace/actions/#double-tap-action). + description: The action taken on card double-tap. For more information, see the [action documentation](/lovelace/actions/#double-tap-action). type: map theme: required: false - description: "Set to any theme within `themes.yaml`" + description: The card theme, which may be set to any theme from the `themes.yaml` file. For more information about themes, see the [frontend documentation](https://www.home-assistant.io/integrations/frontend/). type: string {% endconfiguration %} +Example: + +```yaml +type: button +entity: light.living_room +``` + ## Options For Exemptions {% configuration badges %} user: required: true - description: User id that can see the view tab. + description: The id of the user that can see the view tab. type: string {% endconfiguration %} ## Examples -Title and Script Service Example: +Button Card with a button name and a script that runs when card is tapped: ```yaml type: button @@ -107,6 +134,6 @@ tap_action: ```

-Screenshot of the button card -Screenshot of the Button card with Title and Script Service. +Screenshot of the Button card with Script Service +Screenshot of the Button card with Script Service.

diff --git a/source/_lovelace/logbook.markdown b/source/_lovelace/logbook.markdown new file mode 100644 index 00000000000..78f1b823513 --- /dev/null +++ b/source/_lovelace/logbook.markdown @@ -0,0 +1,67 @@ +--- +title: "Logbook Card" +sidebar_label: Logbook +description: "The Logbook card displays entries from the logbook for specific entities." +--- + +The Logbook card displays entries from the logbook for specific entities. + +

+ Screenshot of the logbook card + Screenshot of the Logbook card. +

+ +To add the Logbook card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Logbook** from the card picker. + +### Card Settings + + +{% configuration_basic %} +Entities: + description: The entities whose logbook entries will show in the card. +Title: + description: The title that shows on the top of the card. +Hours to show: + description: The number of hours in the past that will be tracked in the card. +Theme: + description: Theme your card using any installed theme in your HA environment. +{% endconfiguration_basic %} + +### YAML + +This is for if you use YAML mode or prefer to use YAML in the Code Editor in the UI. + +{% configuration %} +type: + required: true + description: logbook + type: string +entities: + required: true + description: "The entities that will show in the card." + type: list +title: + required: false + description: Title of the card. + type: string +hours_to_show: + required: false + description: Number of hours in the past to track. + type: integer + default: 24 +theme: + required: false + description: "Set to any theme within `themes.yaml`." + type: string +{% endconfiguration %} + +Example: + +```yaml +type: logbook +entities: + - fan.ceiling_fan + - fan.living_room_fan + - light.ceiling_lights +hours_to_show: 24 +``` diff --git a/source/_lovelace/markdown.markdown b/source/_lovelace/markdown.markdown index 2de258affc3..980bdde4471 100644 --- a/source/_lovelace/markdown.markdown +++ b/source/_lovelace/markdown.markdown @@ -99,4 +99,20 @@ content: | Hello, {{user}} ``` -{% endraw %} \ No newline at end of file +{% endraw %} + +## Icons + +You can also use [materialdesignicons.com]() icons in the `content` of the card. + +For example: + +{% raw %} + +```yaml +type: markdown +content: | + +``` + +{% endraw %} diff --git a/source/_posts/2020-10-28-release-117.markdown b/source/_posts/2020-10-28-release-117.markdown index eb082184277..f63ea27ed91 100644 --- a/source/_posts/2020-10-28-release-117.markdown +++ b/source/_posts/2020-10-28-release-117.markdown @@ -60,6 +60,7 @@ So, keep an eye on our social media for the announcement. - [Release 0.117.3 - November 4](#release-01173---november-4) - [Release 0.117.4 - November 4](#release-01174---november-4) - [Release 0.117.5 - November 5](#release-01175---november-5) +- [Release 0.117.6 - November 11](#release-01176---november-11) - [If you need help...](#if-you-need-help) - [Breaking Changes](#breaking-changes) - [Farewell to the following](#farewell-to-the-following) @@ -481,6 +482,24 @@ The following integrations are now available via the Home Assistant UI: [simplisafe docs]: /integrations/simplisafe/ [tasmota docs]: /integrations/tasmota/ +## Release 0.117.6 - November 11 + +- Remove unneeded state restoration of the physical device in rpi_gpio_pwm integration ([@soldag] - [#42804]) ([rpi_gpio_pwm docs]) +- Bump pwmled to v1.6.7 ([@soldag] - [#42903]) ([rpi_gpio_pwm docs]) +- Bump gTTS-token to 1.1.4 ([@hmmbob] - [#43015]) ([google_translate docs]) +- Fix Plex auth issues by setting header ([@jjlawren] - [#43081]) ([plex docs]) + +[#42804]: https://github.com/home-assistant/core/pull/42804 +[#42903]: https://github.com/home-assistant/core/pull/42903 +[#43015]: https://github.com/home-assistant/core/pull/43015 +[#43081]: https://github.com/home-assistant/core/pull/43081 +[@hmmbob]: https://github.com/hmmbob +[@jjlawren]: https://github.com/jjlawren +[@soldag]: https://github.com/soldag +[google_translate docs]: /integrations/google_translate/ +[plex docs]: /integrations/plex/ +[rpi_gpio_pwm docs]: /integrations/rpi_gpio_pwm/ + ## 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). diff --git a/source/_posts/2020-11-18-release-118.markdown b/source/_posts/2020-11-18-release-118.markdown new file mode 100644 index 00000000000..d10fbe32136 --- /dev/null +++ b/source/_posts/2020-11-18-release-118.markdown @@ -0,0 +1,1671 @@ +--- +layout: post +title: "0.118: Grid and logbook cards, quick navigation, native template types" +description: "New Grid & Logbook Lovelace cards, navigate around using the Quick bar, Shelly now support live push updates, Header & Footer editors and Nest thermostat support returns!" +date: 2020-11-18 00:00:00 +date_formatted: "November 18, 2020" +author: Franck Nijhof +author_twitter: frenck +comments: true +categories: Release-Notes +og_image: /images/blog/2020-11-0.118/social.png +--- + + + +Home Assistant Core 0.118! + +The second last release of 2020, while the end of the year is slowly closing in. + +This also means we have only one more release left this year... And we plan +to finish the year with a big bang! Also announced: the +[Home Assistant Conference](/conference). I am really excited about that one! +The last major release of this year will be during the conference on December 13. + +Back to 0.118! Some nice additions this release: Navigating around with the +Quick bar (oh, I just love that feature), some new Lovelace cards, native types +in templates is now the default and the Nest thermostat is back! 🎉 + +All in all, a fine release, with an exciting one ahead of us. + +../Frenck + +## Table of contents + +- [Table of contents](#table-of-contents) +- [Home Assistant Conference](#home-assistant-conference) + - [Edit: We all hate ads! But we do like to show off our users!](#edit-we-all-hate-ads-but-we-do-like-to-show-off-our-users) +- [Grid Card](#grid-card) +- [Quick Bar navigation](#quick-bar-navigation) +- [Native types support for templates](#native-types-support-for-templates) +- [Logbook Card](#logbook-card) +- [Header & Footer Editor](#header--footer-editor) +- [Supervisor Network Configuration](#supervisor-network-configuration) +- [Home Assistant OS](#home-assistant-os) +- [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) +- [Release 0.118.1 - November 19](#release-01181---november-19) +- [Release 0.118.2 - November 20](#release-01182---november-20) +- [Release 0.118.3 - November 23](#release-01183---november-23) +- [Release 0.118.4 - November 26](#release-01184---november-26) +- [If you need help...](#if-you-need-help) +- [Breaking Changes](#breaking-changes) +- [Farewell to the following](#farewell-to-the-following) +- [All changes](#all-changes) + +## Home Assistant Conference + +Exciting news! Home Assistant is hosting an [online conference](/conference) +this year! + +An event to celebrate our community, share ideas, history, creations and +celebrate major milestones! The event will take place on Sunday, December 13. + +[Paulus Schoutsen][@balloob], the founder of Home Assistant, will give the +opening and closing keynote, aided by other Home Assistant developers. +In between, we have three different tracks of talks (for everyone, advanced +users and developers) with a total of 16 different talks. + +Check out the [conference schedule](https://hopin.to/events/home-assistant-conference#schedule) +to see the subjects of the talks and the list of speakers. + +The Home Assistant Conference will be hosted on [Hopin](https://hopin.to/events/home-assistant-conference), +an online conference platform. Tickets to attend will cost $1, which will cover +the cost of the platform. + +Get your ticket + +The conference will also be available as a free YouTube live stream. The live +stream will be limited to the keynotes and the "everyone" track. You won't have +access to the chat and have that online conference feeling, so we recommend +getting a ticket! + +For the latest information, check our dedicated [Home Assistant Conference](/conference) page. + +Home Assistant Conference header + +### Edit: We all hate ads! But we do like to show off our users! + +For those who don’t keep up with the release notes, we added an announcement about the conference in the Configuration panel. It was always set to disappear automatically when the conference is over, but when you are ready to be rid of it, just press the x! + +We realize it is invoking concern of future ads and that it could have had a better execution. In fact, within some of the (yes, sometimes heated) discussions about it during the beta, there were some good thoughts and examples shared for working toward a truer "community news" integration. Such an integration could pull in future and ongoing community events, news, and project highlights, which could be enabled or disabled like any other integration. For now, it is this banner which will be removed on the next release. + +## Grid Card + +Ever since the start of Lovelace, users have been making grids. However, this was +not easy as it involved fiddling by combining horizontal and vertical stacks — +a confusing and frustrating experience. + +[@balloob] to the rescue! This release adds a new Grid Card. You won't have to +write a complicated YAML soup combining both horizontal and vertical stacks. + +The Grid Card offers straight forward options to mimic these setups and adds +an option to force each card to be square to boot. + +

+Screenshot of the Grid Card +Screenshot of Grid Card. +

+ +*_Note that the square option won't work with all cards._ + +## Quick Bar navigation + +The Quickbar, which was introduced in Home Assistant 0.117, really took off! We +are happy to see you like it. + +If you haven't tried the new Quick Bar yet... you should! It is a quick and +easy way to get to entities or run commands. From anywhere in Home +Assistant; press `e` for entities or `c` for commands. + +This release, support for navigating Home Assistant via the Quick Bar was added. +You can now jump to any place, from any place. Amazing job [@donkawechico] + +

+Screenshot of navigating around using the Quick Bar +Screenshot of navigating around using the Quick Bar. +

+ +[@donkawechico]: https://github.com/donkawechico + +## Native types support for templates + +Announced in 0.117, but now by default enabled. Native template types allow +templates to result in not just strings (text), but also other types. + +Ever tried to make a list of entities or set an RGB color via a template? +If so, you probably would have learned, that it is not that simple. In Home +Assistant, the result of a template always has been a piece of text (a string), +even if you made a list. + +{% raw %} + +```yaml +script: + my_script: + alias: Example + description: Example script with native lists in templates + variables: + entities: + - light.living_room_window + - light.living_room_table + color: [255, 0, 0] + sequence: + service: light.turn_on + data: + entity_id: "{{ entities }}" + rgb_color: "{{ color }}" +``` + +{% endraw %} + +This is an extremely powerful change to our template engine, that allows for +more advanced future additions and can significantly reduce the complexity of +existing templates in your set up. + +It should be mostly compatible with your existing templates; However, be sure +to check the breaking changes section for known possible breaking scenarios. + +## Logbook Card + +Another new Lovelace card this release. [@zsarnett] added the Logbook Card. + +This card allows you to show the logs of one (or more) entities on a Lovelace +Dashboard. This can be really helpful if you want to monitor, for example, the +motion events of a sensor or a camera. + +

+Screenshot of the new Logbook Card +Screenshot of the new Logbook Card. +

+ +[@zsarnett]: https://github.com/zsarnett + +## Header & Footer Editor + +Entity cards in Lovelace have support for customizing the header and footer of +that card. This is really useful for adding a nice image, a couple of buttons +or a graph to the card. + +Up until now, you needed some YAML magic to achieve that. Thanks to +[@zsarnett] we now have a Header & Footer editor available in the UI making +this feature much easier to use. + +

+Screenshot of the new Header/Footer editor. +Screenshot of the new Header/Footer editor. +

+ +[@zsarnett]: https://github.com/zsarnett + +## Supervisor Network Configuration + +Expected to be available soon, a new Supervisor version which includes a new +network layer with added support for wireless networks, multiple network +interfaces and even VLANs. + +This should cover most of the feature requests we had around networking. + +

+New Supervisor Network configuration UI +New Supervisor Network configuration UI +

+ +The next step is that we use all the information from our new network backend +to simplify some add-ons. Also, updates for Snapshot/Restore of these network +settings are planned. + +## Home Assistant OS + +The last few days, two new Home Assistant OS releases have been published. + +While 4.17 continues to make small improvements in the 4.x release series, the +latest pre-release 5.5 comes closer to our goals to declare 5.x release series +stable. In particular, this pre-release includes the Linux 5.4 kernel for all +Raspberry Pis! We also intend to declare 64-bit the recommended installation +method for Raspberry Pi 4. + +Release 5.5 is also the first release to support Hardkernel's ODROID-C4, +a very cost-effective single board computer featuring the Amlogic S905X3 SoC +and 4GB of DDR4 memory (thanks @ubergeek801). Testers welcome! + +## Other noteworthy changes + +- The new Nest SDM integration now supports thermostats! Thanks, [@allenporter]! +- Entity pickers in the UI will now show the full name of the entities. + Thanks, [@spacegaier]! +- The Roon media player now supports media browsing but also has support + for grouping and transferring between different players. Thanks [@pavoni] +- [@cnorick] added a button to duplicate Scripts from the UI. +- The Shelly integration now has real-time status updates, which has been + implemented by [@thecode]! +- [@apop880] prepared the WLED integration for Christmas by adding a service + for loading WLED presets. +- Date pickers in entity cards have been replaced with a modern, good looking + version. Thanks, [@thomasloven]! +- [@joshmcrty] Made numbers shown in the frontend formatted in a + way that matches your language settings. +- [@spacegaier] has been busy improving the frontend, making it more accessible to people + with disabilities. In this case, ARIA (Accessible Rich Internet Applications) + labels have been added, so screen readers can use our `+` buttons. Thanks! + +[@cnorick]: https://github.com/cnorick +[@joshmcrty]: https://github.com/joshmcrty +[@spacegaier]: https://github.com/spacegaier +[@thomasloven]: https://github.com/thomasloven + +## New Integrations + +We welcome the following new integration this release: + +- [Color Extractor][color_extractor docs], added by [@GenericStudent] + +## New Platforms + +The following integration got support for a new platform: + +- [1-Wire][onewire docs] now supports binary sensors and switches, + added by [@epenet] + +## Integrations now available to set up from the UI + +The following integrations are now available via the Home Assistant UI: + +- [1-Wire][onewire docs], done by [@epenet] +- [Epson][epson docs], done by [@pszafer] + +## Release 0.118.1 - November 19 + +- Bump wolf_smartset to 0.1.8 and handle server fetch error ([@adamkrol93] - [#43351]) ([wolflink docs]) +- Bump hatasmota to 0.0.32 ([@emontnemery] - [#43360]) ([tasmota docs]) +- Fix homekit bridges when no name was provided ([@bdraco] - [#43364]) ([homekit docs]) +- Bump pyvizio to 0.1.57 ([@raman325] - [#43374]) ([vizio docs]) +- Add back system_health_info to the base of lovelace ([@ludeeus] - [#43382]) ([lovelace docs]) + +[#43351]: https://github.com/home-assistant/core/pull/43351 +[#43360]: https://github.com/home-assistant/core/pull/43360 +[#43364]: https://github.com/home-assistant/core/pull/43364 +[#43374]: https://github.com/home-assistant/core/pull/43374 +[#43382]: https://github.com/home-assistant/core/pull/43382 +[@adamkrol93]: https://github.com/adamkrol93 +[@bdraco]: https://github.com/bdraco +[@emontnemery]: https://github.com/emontnemery +[@ludeeus]: https://github.com/ludeeus +[@raman325]: https://github.com/raman325 +[homekit docs]: /integrations/homekit/ +[lovelace docs]: /integrations/lovelace/ +[tasmota docs]: /integrations/tasmota/ +[vizio docs]: /integrations/vizio/ +[wolflink docs]: /integrations/wolflink/ + +## Release 0.118.2 - November 20 + +- Increase Advantage Air retry limit for older systems ([@Bre77] - [#43417]) ([advantage_air docs]) +- Fix time trigger based on entities ignoring entities if initially in the past ([@balloob] - [#43431]) ([homeassistant docs]) + +[#43417]: https://github.com/home-assistant/core/pull/43417 +[#43431]: https://github.com/home-assistant/core/pull/43431 +[@Bre77]: https://github.com/Bre77 +[@balloob]: https://github.com/balloob +[advantage_air docs]: /integrations/advantage_air/ +[homeassistant docs]: /integrations/homeassistant/ + +## Release 0.118.3 - November 23 + +- Fix bug related to possibly missing task ID in Notion API data ([@bachya] - [#43330]) ([notion docs]) +- Fix unhandled exception when IQVIA API fails to return data ([@bachya] - [#43359]) ([iqvia docs]) +- Ensure Plex content_id in play_on_sonos service is a string ([@frenck] - [#43483]) ([plex docs]) +- Gracefully handle no uuid in kodi discovery ([@OnFreund] - [#43494]) ([kodi docs]) +- Bump sleepyq to 0.8.1 ([@ahertz] - [#43505]) ([sleepiq docs]) +- Upgrade Docker base image to 2020.11.1 ([@frenck] - [#43538]) +- Upgrade Docker base image to 2020.11.2 ([@frenck] - [#43560]) + +[#43330]: https://github.com/home-assistant/core/pull/43330 +[#43359]: https://github.com/home-assistant/core/pull/43359 +[#43483]: https://github.com/home-assistant/core/pull/43483 +[#43494]: https://github.com/home-assistant/core/pull/43494 +[#43505]: https://github.com/home-assistant/core/pull/43505 +[#43538]: https://github.com/home-assistant/core/pull/43538 +[#43560]: https://github.com/home-assistant/core/pull/43560 +[@OnFreund]: https://github.com/OnFreund +[@ahertz]: https://github.com/ahertz +[@bachya]: https://github.com/bachya +[@frenck]: https://github.com/frenck +[iqvia docs]: /integrations/iqvia/ +[kodi docs]: /integrations/kodi/ +[notion docs]: /integrations/notion/ +[plex docs]: /integrations/plex/ +[sleepiq docs]: /integrations/sleepiq/ + +## Release 0.118.4 - November 26 + +- Make MQTT climate return PRESET_NONE when no preset is set ([@emontnemery] - [#43257]) ([mqtt docs]) +- Update zigpy-zigate to 0.7.3 ([@doudz] - [#43427]) ([zha docs]) +- Fix duplicate check on onewire config flow ([@epenet] - [#43590]) ([onewire docs]) +- Bump avea to 1.5.1 ([@pattyland] - [#43618]) ([avea docs]) +- Disable parsing scientific/complex number notation in template type ([@balloob] - [#43170]) +- Tweak template digit detection ([@balloob] - [#43621]) +- Fix deadlock if an integration from stage_1 fails ([@pvizeli] - [#43657]) + +[#43170]: https://github.com/home-assistant/core/pull/43170 +[#43257]: https://github.com/home-assistant/core/pull/43257 +[#43427]: https://github.com/home-assistant/core/pull/43427 +[#43590]: https://github.com/home-assistant/core/pull/43590 +[#43618]: https://github.com/home-assistant/core/pull/43618 +[#43621]: https://github.com/home-assistant/core/pull/43621 +[#43657]: https://github.com/home-assistant/core/pull/43657 +[@balloob]: https://github.com/balloob +[@doudz]: https://github.com/doudz +[@emontnemery]: https://github.com/emontnemery +[@epenet]: https://github.com/epenet +[@pattyland]: https://github.com/pattyland +[@pvizeli]: https://github.com/pvizeli +[avea docs]: /integrations/avea/ +[mqtt docs]: /integrations/mqtt/ +[onewire docs]: /integrations/onewire/ +[zha docs]: /integrations/zha/ + +## 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. + +
+ PTVSD +

+ +The `ptvsd` integration has been marked as deprecated and will be removed in +Home Assistant Core 0.120. A full-featured replacement is available with the +[`debugpy`](/integrations/debugpy) integration, which is now considered stable. + +([@frenck] - [#42351]) ([ptvsd docs]) + +

+
+ +
+ Flu Near You +

+ +Per ADR-0010, this PR deprecates YAML configuration for Flu Near You +until 0.119. + +Existing YAML configuration has already been imported automatically in the +previous releases and can now safely be removed from your configuration files. + +([@bachya] - [#42535]) ([flunearyou docs]) + +

+
+ +
+ DirecTV +

+ +DirecTV has fully transitioned to configuration via UI. YAML configuration is +no longer supported. Existing YAML configuration has already been imported +automatically in the previous releases and can now safely be removed from your +configuration files. + +([@ctalkington] - [#41961]) ([directv docs]) + +

+
+ +
+ Roku +

+ +Roku has fully transitioned to configuration via UI. YAML configuration is +no longer supported. Existing YAML configuration has already been imported +automatically in the previous releases and can now safely be removed from your +configuration files. + +([@ctalkington] - [#41960]) ([roku docs]) + +

+
+ +
+ Templates - Removal of extract_entities +

+ +This breaking change is for custom component developers only! + +The `template.helpers.extract_entities` has been removed as it has not been +used in core, been deprecated, and thrown warnings since the new template system +tracking was introduced. + +`homeassistant.helpers.event.async_track_template_result` should be used instead. + +([@bdraco] - [#42601]) + +

+
+ +
+ OpenWeatherMap +

+ +OpenWeatherMap has fully transitioned to configuration via UI. YAML +configuration is no longer supported. Existing YAML configuration has already +been imported automatically in the previous releases and can now safely be +removed from your configuration files. + +Additionally, previously the OpenWeatherMap integration used `Pa` as their unit +of measurement for air pressure. However, air pressure is measured and reported +as `hPa` so the unit of measurement has been changed to `hPa`. This could be a +breaking change for using such entities in, for example, `influxdb`. + +([@nzapponi] - [#39839]) ([@randyxxl] - [#42801]) ([openweathermap docs]) + +

+
+ +
+ Shelly +

+ +Shelly devices configured with new (fw >= 1.9) property "appliance_type" can +now be added to the light domain instead of the switch domain. + +([@chemelli74] - [#42508]) ([shelly docs]) + +

+
+ +
+ Epson +

+ +The Epson integration is now configured via the UI. Existing YAML configuration +if automatically imported on upgrade and can be safely removed afterward. + +The SSL option has been remove, as there is no signs that anybody used it with +success. + +([@pszafer] - [#39697]) ([epson docs]) + +

+
+ +
+ Global Disaster Alert and Coordination System (GDACS) +

+ +The integration will not consider bounding box geometries anymore when +calculating the distance to an event from the feed. In practice it has turned +out that these bounding boxes are way too large around the event to make them +useful for the purpose of notifying users about these events. + +Any existing configuration will continue to work and does not need to be +modified. However, please consider changing the radius defined for your +integration to match your expectations, especially if your main concern are +widespread and moving events such as tropical cyclones. + +([@exxamalte] - [#42957]) ([gdacs docs]) + +

+
+ +
+ Templates +

+ +This feature was introduced as an opt-in beta feature in Home Assistant Core +0.117, and is now enabled by default. + +A template would always result in a string (text). This made it hard to use +things like lists, or numbers as a result of a template. For example, returning +a list of entities or an RGB/HS/XY color. + +This change may impact your existing templates, as templates now can return +other types; For example, string, float, integer, boolean, lists +or dictionaries. + +The following templates can be impacted by this: + +- Entities with templated attributes. Attributes keep their native Python type, + thus if the attribute is used/processed in a template again later, + the type might be different. +- Templates working with lists or mappings (dictionaries). Previously, such + collection would be returned as a text, for example [1, 2, 3, 4, 5]. We’ve + seen examples where such results are decoded using text processing again + (e.g., by splitting the result on a, to get the separate values). The + additional processing is no longer needed, as the returned value will be a + collection now. +- Note: The entity state in Home Assistant is always a text (string). Even with + native types being supported in Templates now if a result is stored as an + entity state, they will be converted to a string. + +In case this new feature causes a problem for you, you can enable the old-style +template rendering again, by setting the following configuration: + +```yaml +homeassistant: + legacy_templates: true +``` + +Please note, this option is a temporary/transitional option, that will be +removed in the future. Adjusting your templates to the new situation is +therefore advised. + +([@frenck] - [#42967]) + +

+
+ +
+ Jewish Calendar +

+ +Entities for this integration now use a "timestamp" device class. Therefore, +the timetamp attributes have been removed. + +([@yuvalabou] - [#41397]) ([jewish_calendar docs]) + +

+
+ +
+ Sisyphus +

+ +This release contains updates to improve stability and support newer Sisyphus +table firmwares. There is a small chance that older firmwares will have issues +with this release; if you have trouble with the Sisyphus integration after this +update, make sure your table is running at least firmware 1.10.73. + +([@jkeljo] - [#42995]) ([sisyphus docs]) + +

+
+ +
+ Neurio energy +

+ +As of July 26, 2020, due to an API change; You now must provide a `sensor_id` +for the Neurio sensor to work; otherwise, an error returns that the request +is unauthorized. + +([@czechmark] - [#42728]) ([neurio_energy docs]) + +

+
+ +
+ AirVisual +

+ +Per ADR-0010, this PR deprecates YAML configuration for AirVisual until 0.119. +If you already use the AirVisual integration, you do not need to take action, +as your configuration has already been imported into the UI. + +([@bachya] - [#42581]) ([airvisual docs]) + +

+
+ +
+ Notion +

+ +Per ADR-0010, this release deprecates YAML configuration for Notion +until 0.119. + +Existing YAML configuration will be imported automatically when upgrading +and can be safely removed from your configuration files afterward. + +([@bachya] - [#43026]) ([notion docs]) + +

+
+ +
+ FRITZ! +

+ +The default value for password was set to "admin" in the +`fritz` and `fritzbox_callmonitor` integrations. This has been corrected and +moved to be the default value for the configuration option of `username`. + +

+
+ +
+ Tile +

+ +Per ADR-0010, this release deprecates YAML configuration for Tile until 0.119. + +Existing YAML configuration will be imported automatically when upgrading +and can be safely removed from your configuration files afterward. + +([@bachya] - [#43064]) ([tile docs]) + +

+
+ +
+ KNX +

+ +The parameter `context_timeout` is now optional for binary sensors and will +default to None. If you've previously not specified this parameter you'll have +to adjust your configuration and add it like this: + +```yaml +knx: + binary_sensor: + - name: sensor + state_address: "1/2/3" + context_timeout: 1.0 +``` + +This prevents users that do not use this feature from waiting one second until +automations are triggered. + +The parameter `reset_after` for binary sensors expects seconds now instead of +milliseconds to streamline the different configuration options. +(`context_timeout` also uses seconds). + +The parameter `ignore_internal_state` for binary sensors now defaults to `False` +as most users do not use this feature. It defaulted to `True` before. + +If you have validation errors of your configuration after the update and you +are using the `operation_modes` parameter for your climate devices, please add +all erroneous entries to the new `controller_modes` parameter. + +([@marvin-w] - [#42026]) ([knx docs]) + +

+
+ +## Farewell to the following + +- The **iAlarm** integration has been removed. + It was using webscraping to gather its data, which is not allowed. + ([@frenck] - [#43010]) + +## All changes + +
+ Click to see all changes! + +- Bump version to 0.118.0dev0 ([@frenck] - [#42178]) +- Enable co-existence of two IPMA weather entities for the same location ([@dgomes] - [#40354]) ([ipma docs]) +- Rewrite london_air tests in pytest style ([@ronanmu] - [#41165]) ([london_air docs]) +- Improve Axis tests ([@Kane610] - [#42183]) ([axis docs]) +- Version bump pyforked daapd and add error string for forbidden ([@uvjustin] - [#42156]) ([forked_daapd docs]) +- Add more builtins to safe list (python_script) ([@jaydesl] - [#42146]) ([python_script docs]) +- Rest test style ([@oxygen0211] - [#42032]) ([rest docs]) +- Remove not used legacy remote test helpers ([@CurrentThread] - [#42144]) ([remote docs]) +- Bump PAHO MQTT to 1.5.1 ([@emontnemery] - [#42099]) ([mqtt docs]) +- Convert nx584 tests to pytest ([@taiyeoguns] - [#42094]) ([nx584 docs]) +- Upgrade shodan to 1.24.0 ([@frenck] - [#42199]) ([shodan docs]) +- Improve the readability of the config flow code ([@balloob] - [#42169]) +- Add media browser support to roon media player ([@pavoni] - [#42061]) ([roon docs]) +- Rewrite mochad unittest to pytest style ([@tim-werner] - [#42164]) ([mochad docs]) +- Bump pypck to v0.7.4 ([@alengwenus] - [#42206]) ([lcn docs]) +- Handle multiple setups of devolo Home Control ([@Shutgun] - [#41752]) ([devolo_home_control docs]) +- Always use shared zeroconf in cast config flow ([@emontnemery] - [#42210]) ([cast docs]) +- Correct docstring in Skybell ([@tkdrob] - [#42218]) ([skybell docs]) +- Remove remnants of configurable RainMachine scan interval ([@bachya] - [#42239]) ([rainmachine docs]) +- Rewrite group unittest to pytest style ([@tim-werner] - [#42159]) ([group docs]) +- Bump version bsblan library to 0.4.0 ([@liudger] - [#42220]) ([bsblan docs]) +- Improve cast integration tests ([@emontnemery] - [#42229]) ([cast docs]) +- Stub light profiles ([@balloob] - [#42232]) +- Add support for homekit garage obstruction sensors ([@bdraco] - [#42243]) ([homekit docs]) ([homekit_controller docs]) +- Tidy Roon media_browser following recently merged PR ([@pavoni] - [#42276]) ([roon docs]) +- Add next alarm time sensor to Garmin ([@schachar] - [#40420]) ([garmin_connect docs]) +- Add config flow for One wire ([@epenet] - [#39321]) ([onewire docs]) (new-platform) +- Bump PyXiaomiGateway version to 0.13.4 ([@syssi] - [#42262]) ([xiaomi_aqara docs]) +- Add wired devices to Homematic IP Cloud ([@SukramJ] - [#41232]) ([homematicip_cloud docs]) +- Add unique_id and device_info to DSMR entities ([@RobBie1221] - [#42279]) ([dsmr docs]) +- Bump dist to focal in Travis CI ([@scop] - [#42286]) +- Fix block till done in create entry config flow tests ([@balloob] - [#42290]) +- Add onewire test for more devices ([@epenet] - [#42037]) ([onewire docs]) +- Add area id to entity registry ([@Kane610] - [#42221]) ([config docs]) +- Add unit of measurement to Netatmo sensors ([@cgtobi] - [#42208]) ([netatmo docs]) +- Add device_class information to onewire sensors ([@epenet] - [#42308]) ([onewire docs]) +- Fix nest to stop doing asyncio in a property ([@allenporter] - [#42312]) ([nest docs]) +- Minimize sense writes to the state machine ([@bdraco] - [#42310]) ([sense docs]) +- Send pro-active IAS Enroll Response ([@walthowd] - [#42282]) ([zha docs]) +- Clean up ElkM1 lib ([@gwww] - [#42319]) ([elkm1 docs]) +- Remove ChristianKuehnel from codeowners ([@ChristianKuehnel] - [#42335]) ([miflora docs]) ([plant docs]) +- Bump pyeight to 0.1.5 ([@mezz64] - [#42323]) ([eight_sleep docs]) +- Add WLED preset service ([@apop880] - [#42217]) ([wled docs]) +- Fix unmocked https in the test suite ([@bdraco] - [#42316]) ([airvisual docs]) +- Refactor august to use self.async_on_remove ([@bdraco] - [#42333]) ([august docs]) +- Upgrade to aiohttp 3.7.1 ([@bdraco] - [#42305]) +- Fix error strings for PTZ operations ([@bwarden] - [#42231]) ([onvif docs]) +- Bump python velbus to 2.0.47 ([@Cereal2nd] - [#42349]) ([velbus docs]) +- Remove split devices from HMIPC ([@SukramJ] - [#42348]) ([homematicip_cloud docs]) +- Add device_info to onewire sensors ([@epenet] - [#42309]) ([onewire docs]) +- Expose more Websocket API constants ([@balloob] - [#42263]) ([websocket_api docs]) +- Use common strings in opentherm_gw config flow ([@wouterbaake] - [#42211]) ([opentherm_gw docs]) +- Use common strings in luftdaten config flow ([@springstan] - [#42376]) ([luftdaten docs]) +- Add location to base strings for config flows ([@springstan] - [#42374]) ([ipma docs]) ([met docs]) ([pi_hole docs]) ([smartthings docs]) +- Use string-lights icon for zerproc ([@emlove] - [#42379]) ([zerproc docs]) +- Create __init__.py in AlarmDecoder tests ([@Olen] - [#42388]) ([alarmdecoder docs]) +- Convert logbook tests to pytest ([@taiyeoguns] - [#42289]) ([logbook docs]) +- Cleanup log style and tests for ElkM1 ([@gwww] - [#42353]) ([elkm1 docs]) +- Deprecate ptvsd integration ([@frenck] - [#42351]) ([ptvsd docs]) (breaking-change) +- Upgrade debugpy to 1.0.0 ([@frenck] - [#40929]) ([debugpy docs]) +- Rewrite pilight/test_init.py tests to pytest style test functions ([@erogleva] - [#42366]) ([pilight docs]) +- Add a test for template entities that reuse the template ([@bdraco] - [#42404]) ([template docs]) +- Implement PlatformNotReady on onewire integration ([@epenet] - [#42395]) ([onewire docs]) +- Restore somfy state in optimistic mode on restart ([@bdraco] - [#42426]) ([somfy docs]) +- Set device class for lutron_caseta cover ([@bdraco] - [#42436]) ([lutron_caseta docs]) +- Add mode to base strings for config flows ([@springstan] - [#42373]) ([homekit docs]) ([ipma docs]) ([openweathermap docs]) +- Add elevation to base strings for config flows ([@springstan] - [#42377]) ([met docs]) ([openuv docs]) +- Discover onewire devices at startup ([@epenet] - [#42410]) ([onewire docs]) +- Convert somfy to use DataUpdateCoordinator ([@bdraco] - [#42434]) ([somfy docs]) +- Use async functions for Somfy ([@balloob] - [#42448]) ([somfy docs]) +- Move onewire entity classes to separate module ([@epenet] - [#42445]) ([onewire docs]) +- Fix yeelight connection issue ([@shenxn] - [#40251]) ([yeelight docs]) +- Add Nest cam support for the SDM API ([@allenporter] - [#42325]) ([nest docs]) +- Bump fritzconnection from 1.2.0 to 1.3.4 ([@chemelli74] - [#40508]) ([fritz docs]) +- Use common strings in openuv config flow ([@springstan] - [#42480]) ([openuv docs]) +- Add platform services to Roon media player to allow grouping, ungrouping and transfer between players ([@pavoni] - [#42133]) ([roon docs]) +- Set the translations cache under the lock ([@bdraco] - [#42470]) +- Add color_extractor service ([@GenericStudent] - [#42129]) ([colorthief docs]) (new-integration) +- Remove zxdavb from honeywell codeowners ([@zxdavb] - [#42491]) ([honeywell docs]) +- Fix somfy device recreation on update ([@bdraco] - [#42462]) ([somfy docs]) +- Start homekit bridges with asyncio.gather ([@bdraco] - [#42498]) ([homekit docs]) +- Update tuyaha to 0.0.8 and adapt code ([@ollo69] - [#41375]) ([tuya docs]) +- Bump python-velbus to 2.1.1 ([@Cereal2nd] - [#42414]) ([velbus docs]) +- Upgrade debugpy to 1.1.0 ([@frenck] - [#42506]) ([debugpy docs]) +- Bump avea to 1.5 ([@pattyland] - [#42495]) ([avea docs]) +- Use common strings in Dexcom config flow ([@scheric] - [#41767]) ([dexcom docs]) +- Use dict.values() when appropriate ([@springstan] - [#42509]) ([apns docs]) ([netio docs]) ([scsgate docs]) ([wirelesstag docs]) +- Use common strings in life360 config flow ([@springstan] - [#42375]) ([life360 docs]) +- Ensure the oauth2 token is refreshed before it is expired ([@bdraco] - [#42487]) +- Tidy after adding group services to roon media player ([@pavoni] - [#42512]) ([roon docs]) +- Implement minor Colorfix alterations ([@GenericStudent] - [#42521]) ([color_extractor docs]) +- Remove unnecessary instances of dict.keys() ([@springstan] - [#42518]) +- Remove listener on async_unload_entry in devolo Home Control ([@Shutgun] - [#42520]) ([devolo_home_control docs]) +- Add update available binary sensor to synology_dsm ([@mib1185] - [#42378]) ([synology_dsm docs]) +- Recollect waste multi day ([@dcnoren] - [#41853]) ([recollect_waste docs]) +- Add options flow to RainMachine ([@bachya] - [#42241]) ([rainmachine docs]) +- Cleanup RainMachine ([@bachya] - [#42544]) ([rainmachine docs]) +- Deprecate YAML config for Flu Near You (0.119 removal) ([@bachya] - [#42535]) ([flunearyou docs]) (breaking-change) +- Add guppy3 memory profile to Profiler integration ([@hunterjm] - [#42435]) ([profiler docs]) +- Remove YAML config for directv ([@ctalkington] - [#41961]) ([directv docs]) ([directv docs]) (breaking-change) +- Remove YAML config for roku ([@ctalkington] - [#41960]) ([roku docs]) (breaking-change) +- Use common strings in twilio config flow ([@springstan] - [#42477]) ([twilio docs]) +- Gather all collection listeners and changes at the same time ([@bdraco] - [#42497]) +- Add telegram_sent event ([@NikoM87] - [#41159]) ([telegram_bot docs]) +- Fix flapping event template test ([@bdraco] - [#42614]) +- Remove legacy template extract_entities ([@bdraco] - [#42601]) (breaking-change) +- Fix inexact version of pylacrosse ([@onkelbeh] - [#42610]) ([lacrosse docs]) +- Properly unload listener for AirVisual config entry updates ([@bachya] - [#42583]) ([airvisual docs]) +- Reduce complexity of storage writes ([@bdraco] - [#42576]) +- Defer esphome persistent storage writes until after startup ([@bdraco] - [#42600]) ([esphome docs]) +- Rewrite mfi unittest tests to pytest ([@adriansuwala] - [#42510]) ([mfi docs]) +- Purge unused constants from template helper ([@bdraco] - [#42618]) +- Add missing config flow translation key to script scaffold ([@allenporter] - [#42621]) +- Add WS command to remove a Tasmota device ([@emontnemery] - [#42266]) ([tasmota docs]) +- Fix typo in Flunearyou config flow ([@SNoof85] - [#42617]) ([flunearyou docs]) +- Bump hatasmota to 0.0.26 ([@effelle] - [#42613]) ([tasmota docs]) +- Use list literal without using dict.keys() ([@springstan] - [#42573]) +- Revert "Bump hatasmota to 0.0.26 (#42613)" ([@emontnemery] - [#42641]) ([tasmota docs]) +- Fix on/off button ([@felipediel] - [#42443]) ([broadlink docs]) +- Bump hatasmota to 0.0.26 ([@emontnemery] - [#42644]) ([tasmota docs]) +- Bump ElkM1 library to 0.8.7 ([@gwww] - [#42645]) ([elkm1 docs]) +- Small cleanup to IQVIA DataUpdateCoordinator logic ([@bachya] - [#42642]) ([iqvia docs]) +- Add hassio service descriptions ([@Petro31] - [#42597]) ([hassio docs]) +- Remove redundant mock_storage fixture from mqtt_statestream tests ([@adriansuwala] - [#42652]) ([mqtt_statestream docs]) +- Allow saving zero precision option in Opentherm_gw ([@springstan] - [#42593]) ([opentherm_gw docs]) +- Add @mib1185 as codeowner to synology_dsm ([@mib1185] - [#42671]) ([synology_dsm docs]) +- Bump roonapi to 0.0.25 ([@pavoni] - [#42680]) ([roon docs]) +- Cleanup local imports on onewire integration ([@epenet] - [#42689]) ([onewire docs]) +- Optimise onewire sensor update method ([@epenet] - [#42690]) ([onewire docs]) +- Bump version to 0.16.2 ([@gtdiehl] - [#42696]) ([enphase_envoy docs]) +- Run tox verbosely in Travis CI ([@scop] - [#42706]) +- Remove classes in nx584 tests ([@taiyeoguns] - [#42628]) ([nx584 docs]) +- Fix typo exceeded, change to exceed, in HomeKit ([@lindsaymarkward] - [#42705]) ([homekit docs]) +- Remove homekit cover precision workarounds ([@bdraco] - [#42647]) ([homekit docs]) +- Upgrade youtube_dl to version 2020.11.01.1 ([@BKPepe] - [#42714]) ([media_extractor docs]) +- adding support for hardkernel odroid-c4 ([@ubergeek801] - [#42719]) (new-integration) +- Refactor ZHA light state restoration after a restart ([@Adminiuga] - [#42726]) ([zha docs]) +- Add support for manual updating a data coordinator ([@balloob] - [#42746]) +- Base image 2020.10.1 ([@pvizeli] - [#42666]) +- Add verify_ssl option for connection setup to synology_dsm ([@mib1185] - [#42539]) ([synology_dsm docs]) +- Provide a more useful error message in evohome ([@zxdavb] - [#42734]) ([evohome docs]) +- Bump plexapi to 4.2.0 ([@jjlawren] - [#42727]) ([plex docs]) +- Use own CoAP lib and support for multicast updates ([@thecode] - [#42718]) ([shelly docs]) +- Drop usage of asynctests ([@balloob] - [#42756]) ([onewire docs]) +- Upgrade pre-commit to 2.8.2 ([@frenck] - [#42757]) +- Fix existing synology_dsm config entries cannot be setup ([@mib1185] - [#42769]) ([synology_dsm docs]) +- Add DPI Restriction switch to UniFi integration ([@hunterjm] - [#42499]) ([unifi docs]) +- Remove unnecessary onewire variable ([@epenet] - [#42704]) ([onewire docs]) +- Add image support to nest SDM api ([@allenporter] - [#42556]) ([nest docs]) +- Fix shelly import ([@balloob] - [#42783]) ([shelly docs]) +- Catch unhandled exception in websocket_api ([@SigmaPic] - [#42693]) ([websocket_api docs]) +- Bump uEagle to 0.0.2 ([@jcalbert] - [#42780]) ([rainforest_eagle docs]) +- Migrate system health to use integration_platform ([@balloob] - [#42785]) ([lovelace docs]) ([system_health docs]) +- Upgrade sentry-sdk to 0.19.2 ([@frenck] - [#42786]) ([sentry docs]) +- Update definition of onewire device specifications ([@epenet] - [#42460]) ([onewire docs]) +- Add support for OpenWeatherMap One Call API ([@nzapponi] - [#39839]) ([openweathermap docs]) (breaking-change) +- Default some entities to disabled ([@epenet] - [#42797]) ([onewire docs]) +- Fix nest subscriber by upgrading google_pubsub to newer library version ([@allenporter] - [#42501]) ([google_pubsub docs]) +- Fix webhook when doorbird not yet setup ([@bdraco] - [#42657]) +- Split build release base + machine build ([@pvizeli] - [#42827]) +- Avoid the same task ending up multiple times in the ssdp asyncio.gather ([@bdraco] - [#42815]) ([ssdp docs]) +- Tweak Rachio integration strings ([@adamjernst] - [#42843]) ([rachio docs]) +- Properly unload listener for SimpliSafe config entry updates ([@bachya] - [#42579]) ([simplisafe docs]) +- Fix circular import of config_validation and template ([@palfrey] - [#41802]) +- Tweak Shelly message to be clearer ([@adamjernst] - [#42862]) ([shelly docs]) +- Fix evohome coroutine not allowed to be passed to HassJob ([@zxdavb] - [#42730]) ([evohome docs]) +- clarify range of max and min for intensity ([@jsloyer] - [#42853]) ([wled docs]) +- Add hdmi input attribute to AndroidTV ([@DiederikvandenB] - [#42571]) ([androidtv docs]) +- Distinguish Shutters and Awnings in Google Assistant ([@edomat] - [#42782]) ([google_assistant docs]) +- Add unique_id property to ARWN sensors ([@sdague] - [#42570]) ([arwn docs]) +- Bump androidtv to 0.0.54 ([@JeffLIrion] - [#42861]) ([androidtv docs]) +- Move to Launch Library 2 ([@ludeeus] - [#42723]) ([launch_library docs]) +- Fix async_track_utc_time_change firing too early ([@amelchio] - [#42176]) +- Cleanup onewire tests ([@epenet] - [#42864]) ([onewire docs]) +- Handle overriding of default apps for Android TV ([@JeffLIrion] - [#41893]) ([androidtv docs]) +- Tweak wording of Rachio options ([@adamjernst] - [#42849]) ([rachio docs]) +- Handle Shelly light domain for relay switches ( fw >=1.9 ) ([@chemelli74] - [#42508]) ([shelly docs]) (breaking-change) +- Bump pyvlx to 0.2.18 ([@sbyx] - [#42895]) ([velux docs]) +- Fix memory leak in websocket_api ([@bdraco] - [#42894]) ([websocket_api docs]) +- Add nest climate support for SDM API ([@allenporter] - [#42702]) ([nest docs]) +- Add Spanish US voice to amazon polly ([@manuel-jrs] - [#42891]) ([amazon_polly docs]) +- Migrate RainMachine to DataUpdateCoordinator ([@bachya] - [#42530]) ([rainmachine docs]) +- Upgrade hadolint to 0.18.2 ([@frenck] - [#42087]) +- Cloud: Recover when internet is not available yet ([@balloob] - [#42877]) ([cloud docs]) +- Handle offline gateways in devolo Home Control ([@Shutgun] - [#42897]) ([devolo_home_control docs]) +- Fix dimming for ISY994 Z-Wave devices using percent instead of 8-bit brightness values ([@shbatm] - [#42915]) ([isy994 docs]) +- Allow ZHA coordinator binding/unbinding ([@Adminiuga] - [#42854]) ([zha docs]) +- Upgrade Tibber library to 0.16.0 ([@Danielhiversen] - [#42929]) ([tibber docs]) +- Change fritzbox title for better product family distinction ([@AlexSchmitz222] - [#42432]) ([fritzbox docs]) +- Upgrade pytest to 6.1.2 ([@frenck] - [#40662]) +- Generate random MQTT client ID ([@emontnemery] - [#42934]) ([mqtt docs]) +- Ensure instances of async_add_entities can be garbage collected ([@bdraco] - [#42919]) +- Ensure storage task loads are always garbage collected ([@bdraco] - [#42917]) +- Bump aioshelly to 0.5.1 ([@chemelli74] - [#42940]) ([shelly docs]) +- Add config flow to epson and fix timeouts ([@pszafer] - [#39697]) ([epson docs]) (breaking-change) +- Change air pressure unit to hPa in OpenWeatherMap ([@randyxxl] - [#42801]) ([openweathermap docs]) (breaking-change) +- Only call utcnow once during a state changed event ([@bdraco] - [#42941]) +- Add binary_sensor platform to onewire integration ([@epenet] - [#42832]) ([onewire docs]) (new-platform) +- Migrate Flu Near You to DataUpdateCoordinator ([@bachya] - [#42594]) ([flunearyou docs]) +- Add icons for OBiTALK status and reboot sensors ([@absurdist81] - [#42883]) ([obihai docs]) +- Use common strings in locative config flow ([@springstan] - [#42481]) ([locative docs]) +- Add not internet accessible to base strings for config flows ([@springstan] - [#42478]) +- Bump aio_georss_gdacs to v0.4 ([@exxamalte] - [#42957]) ([gdacs docs]) (breaking-change) +- Upgrade colorlog to 4.5.0 ([@frenck] - [#42965]) +- Disable legacy templates by default ([@frenck] - [#42967]) (breaking-change) +- Bump hatasmota from 0.0.27 ([@emontnemery] - [#42802]) ([tasmota docs]) +- Add test for register configuration for modbus switch ([@janiversen] - [#42604]) ([modbus docs]) +- Add support for Stretch product to Plugwise integration ([@CoMPaTech] - [#40108]) ([plugwise docs]) +- Correct link to frontend repo ([@springstan] - [#42972]) ([frontend docs]) +- Add support for Broadlink SP4 series and the latest SP mini 3 devices ([@felipediel] - [#41522]) ([broadlink docs]) +- Remove debug prints from utcnow test ([@bdraco] - [#42977]) +- Add onewire switches ([@epenet] - [#42962]) ([onewire docs]) (new-platform) +- Add zone_entity_id to Risco events ([@OnFreund] - [#39678]) ([risco docs]) +- Remove empty dependencies from manifest ([@springstan] - [#42973]) +- Increase update timeouts used in Shelly integration ([@thecode] - [#42937]) ([shelly docs]) +- Fix Spotify scopes evaluation ([@OGKevin] - [#42819]) ([spotify docs]) +- Fix yeelight binary sensor unique ID ([@shenxn] - [#42562]) ([yeelight docs]) +- Correct logging and add test case for sharkiq ([@ajmarks] - [#41863]) ([sharkiq docs]) +- On HA restart parse last_reset as a datetime object ([@dgomes] - [#42939]) ([utility_meter docs]) +- Adds feature to get also longitude and latitude of the triggerd entry… ([@SteveBrandt] - [#42990]) ([opensky docs]) +- Allow options flows to be aborted ([@raman325] - [#41875]) +- Make Jewish Calendar use DEVICE_CLASS_TIMSTAMP and remove timestamp attribute ([@yuvalabou] - [#41397]) ([jewish_calendar docs]) (breaking-change) +- Upgrade sisyphus-control dependency to 3.0 ([@jkeljo] - [#42995]) ([sisyphus docs]) (breaking-change) +- Use strings instead of f-strings for constants ([@springstan] - [#40619]) +- Fix Neurio Sensor by making the sensor ID required ([@czechmark] - [#42728]) ([neurio_energy docs]) (breaking-change) +- Fix flaky epson CI ([@balloob] - [#42999]) ([epson docs]) +- Update nest SDM climate simplifying support for eco mode ([@allenporter] - [#42955]) ([nest docs]) +- Add more units to distance conversion util ([@springstan] - [#40181]) +- Fix enigma2 off state ([@reaper7] - [#42407]) ([enigma2 docs]) +- Replace lock bot with GitHub Action ([@frenck] - [#43001]) +- Replace stale bot with GitHub Action ([@frenck] - [#42994]) +- Add device trigger support for device trackers ([@mdonoughe] - [#42324]) ([device_tracker docs]) ([zone docs]) +- Update devolo-home-control-api to 0.16.0 ([@Shutgun] - [#42944]) +- Force color or white mode exclusivity for MQTT lights ([@emontnemery] - [#42887]) ([mqtt docs]) (breaking-change) +- Remove temporary variable from supported_features ([@springstan] - [#42685]) +- Add ozw config flow add-on management ([@MartinHjelmare] - [#42421]) ([hassio docs]) ([ozw docs]) +- Deprecate YAML config for AirVisual (0.119 removal) ([@bachya] - [#42581]) ([airvisual docs]) (breaking-change) +- Reload sonarr config entry on options update ([@ctalkington] - [#41958]) ([sonarr docs]) +- Support datetime sensor in time trigger ([@balloob] - [#42899]) ([homeassistant docs]) +- Remove iAlarm integration (ADR-0004) ([@frenck] - [#43010]) (breaking-change) +- Add data entry flow show progress step ([@MartinHjelmare] - [#42419]) +- Obtain zone entity id in Risco sensors through entity registry ([@OnFreund] - [#43007]) ([risco docs]) +- Fix vasttrafik sensor displaying incorrect departure times ([@ttuffin] - [#43011]) ([vasttrafik docs]) +- Extend WS API result when enabling an entity ([@emontnemery] - [#42667]) ([config docs]) +- Add services to log and dump objects to the profiler to help track down memory leaks ([@bdraco] - [#42951]) ([profiler docs]) +- Add missing device class strings (binary sensor) ([@oncleben31] - [#42326]) ([binary_sensor docs]) +- Make all translations cacheable ([@bdraco] - [#42892]) +- Fix volume calculation of Onkyo MediaPlayer ([@ZzetT] - [#42236]) ([onkyo docs]) +- Remove stale fixture from mqtt-statestream tests ([@dmonego] - [#42233]) ([mqtt_statestream docs]) +- Remove Tuya climate ext. temperature entity option ([@ollo69] - [#42546]) ([tuya docs]) +- Expose Dyson PureCool filter life remaining percentage ([@Flameeyes] - [#42765]) ([dyson docs]) +- Add support for additional SimpliSafe sensors ([@bachya] - [#43017]) ([simplisafe docs]) +- Update inheritance for onewire entities ([@epenet] - [#43019]) ([onewire docs]) +- Bump python-openzwave-mqtt to 1.3.2 ([@cgarwood] - [#43020]) ([ozw docs]) +- Migrate Recollect Waste integration to use aiorecollect library ([@bachya] - [#43022]) ([recollect_waste docs]) +- Increase timeout for setup of rfxtrx ([@RobBie1221] - [#43003]) ([rfxtrx docs]) +- Deprecate YAML config for Notion (0.119 removal) ([@bachya] - [#43026]) ([notion docs]) (breaking-change) +- Streamline Notion CoordinatorEntity ([@bachya] - [#43027]) ([notion docs]) +- Bump pymfy to 0.9.1 ([@tetienne] - [#43021]) ([somfy docs]) +- Bump aioasuswrt version to handle telnet asus routers ([@JJdeVries] - [#43031]) ([asuswrt docs]) +- Address review feedback for Epson ([@pszafer] - [#43012]) ([epson docs]) +- Catch correct error when Spotify has a request error ([@balloob] - [#43032]) ([spotify docs]) +- Set an appropriate SCAN_INTERVAL for Broadlink A1 sensor ([@felipediel] - [#41309]) ([broadlink docs]) +- Clean up yaml configurations for all fritz integrations ([@springstan] - [#39995]) ([fritz docs]) ([fritzbox_callmonitor docs]) ([fritzbox_netmonitor docs]) (breaking-change) +- Add function to remove holidays from workday sensor ([@epleypa] - [#41988]) ([workday docs]) +- Change instructions for unlocking Broadlink devices ([@felipediel] - [#42023]) ([broadlink docs]) +- Rewrite the pilight/test_sensor.py tests to use async pytest functions ([@erogleva] - [#42418]) ([pilight docs]) +- Include device_id in ZHA event ([@balloob] - [#43037]) ([zha docs]) +- Add set and check repeat mode to mpd component ([@9R] - [#42808]) ([mpd docs]) +- Add available state for Epson integration ([@pszafer] - [#43038]) ([epson docs]) +- Correct handling of existing MQTT subscriptions ([@emontnemery] - [#43056]) ([mqtt docs]) +- Update zigpy-zigate to 0.7.0 ([@doudz] - [#43043]) ([zha docs]) +- Fix mfi test ([@balloob] - [#43060]) ([mfi docs]) +- Remove setting log level of dsmr_parser inside dsmr integration ([@RobBie1221] - [#43059]) ([dsmr docs]) +- Improve restore of deleted devices ([@emontnemery] - [#42703]) +- Add system health streaming updates ([@balloob] - [#42831]) ([cloud docs]) ([lovelace docs]) ([system_health docs]) +- Update nest sdm camera to refresh in background ([@allenporter] - [#42865]) ([nest docs]) +- Add proxy support for browse media images ([@rajlaud] - [#42193]) ([squeezebox docs]) +- System health improvement ([@balloob] - [#43066]) ([cloud docs]) ([homeassistant docs]) ([lovelace docs]) ([system_health docs]) +- Fix mfi test ([@balloob] - [#43067]) ([mfi docs]) +- Fix API change with Notion batteries ([@bachya] - [#43073]) ([notion docs]) +- Streamline Tile CoordinatorEntity ([@bachya] - [#43065]) ([tile docs]) +- Limit concurrency of async_get_integration to avoid creating extra threads ([@bdraco] - [#43085]) +- Cleanup and naming schema fixes for Shelly ([@thecode] - [#42987]) ([shelly docs]) +- Upgrade pylutron-caseta to 0.7.2 ([@mdonoughe] - [#43075]) ([lutron_caseta docs]) +- Update bravia-tv to 1.0.8 ([@dcnielsen90] - [#43069]) ([braviatv docs]) +- Add MIN_TIME_BETWEEN_UPDATES to dsmr integration ([@RobBie1221] - [#43057]) ([dsmr docs]) +- Remove YAML config for Tile ([@bachya] - [#43064]) ([tile docs]) (breaking-change) +- Remove Octoprint log spam when printer endpoint status code is 409 ([@rrada] - [#42985]) ([octoprint docs]) +- Remove brand names from translations ([@balloob] - [#43092]) +- Chunk translation clean script to avoid too long url error ([@balloob] - [#43090]) +- Bump hatasmota to 0.0.29 ([@emontnemery] - [#43013]) ([tasmota docs]) +- Add watchdog to reset nest subscriber ([@allenporter] - [#43034]) ([nest docs]) +- Use internal url for Squeezebox if possible ([@balloob] - [#43089]) ([squeezebox docs]) +- Show media progress in sisyphus ([@jkeljo] - [#42996]) ([sisyphus docs]) +- Update frontend to 20201111.0 ([@bramkragten] - [#43101]) ([frontend docs]) +- Modify wait timeout in stream ([@uvjustin] - [#42794]) ([stream docs]) +- Bump up ZHA dependencies ([@Adminiuga] - [#43104]) ([zha docs]) +- Add reboot and shutdown service to synology_dsm ([@mib1185] - [#42697]) ([synology_dsm docs]) +- Bump greeclimate to 0.9.6 ([@cmroche] - [#43106]) ([gree docs]) +- Update xknx to 0.15.3 ([@marvin-w] - [#42026]) ([knx docs]) (breaking-change) (beta fix) +- Move setup_url_for_address to pyWeMo library ([@joshuaboniface] - [#42722]) ([wemo docs]) (beta fix) +- Bump dependency for HomematicIP Cloud ([@SukramJ] - [#43018]) ([homematicip_cloud docs]) (beta fix) +- Use media player image proxy for roku media browser ([@ctalkington] - [#43070]) ([roku docs]) (beta fix) +- Add system health section for the Supervisor ([@ludeeus] - [#43074]) ([hassio docs]) ([homeassistant docs]) (beta fix) +- Bump pycsspeechtts to 1.0.4 ([@hmmbob] - [#43105]) ([microsoft docs]) (beta fix) +- Fix incorrect Notion battery state calculation ([@bachya] - [#43108]) ([notion docs]) (beta fix) +- Make Appliance Type Case-insensitive ([@thecode] - [#43114]) ([shelly docs]) (beta fix) +- Streamline SimpliSafe errors ([@bachya] - [#43117]) ([simplisafe docs]) (beta fix) +- Fix bug preventing Notion entities from updating their bridge ([@bachya] - [#43122]) ([notion docs]) (beta fix) +- Added missing system health translation for "Views" ([@spacegaier] - [#43126]) ([lovelace docs]) (beta fix) +- Add missing 'hassio' translation string ([@ludeeus] - [#43127]) ([homeassistant docs]) (beta fix) +- Bump hatasmota to 0.0.30 ([@emontnemery] - [#43140]) ([tasmota docs]) (beta fix) +- Fix playing of Spotify URIs on Sonos ([@amelchio] - [#43154]) ([sonos docs]) (beta fix) +- Guard against empty ssdp locations ([@bdraco] - [#43156]) ([ssdp docs]) (beta fix) +- update zigpy_zigate to v0.7.1 ([@doudz] - [#43159]) ([zha docs]) (beta fix) +- Prevent spider from doing I/O in the event loop ([@balloob] - [#43182]) (beta fix) +- Revert opensky flight latitude and longitude ([@balloob] - [#43185]) ([opensky docs]) (beta fix) +- Catch the right nest stream refresh exception error ([@allenporter] - [#43189]) ([nest docs]) (beta fix) +- Revert "Remove YAML config for Tile (#43064)" ([@bachya] - [#43199]) ([tile docs]) (beta fix) +- Fix typo in lw12wifi shoud_poll ([@bdraco] - [#43213]) ([lw12wifi docs]) (beta fix) +- Bump elkm1-lib to 0.8.8 ([@gwww] - [#43230]) ([elkm1 docs]) (beta fix) +- Remove OpenCV dependecy from Environment Canada ([@michaeldavie] - [#43235]) ([environment_canada docs]) (beta fix) +- Remove pts adjustments in stream ([@uvjustin] - [#42399]) ([stream docs]) (beta fix) +- Bump hass-nabucasa to 0.37.2 ([@MartinHjelmare] - [#43146]) ([cloud docs]) (beta fix) +- Update greeclimate to 0.10.2 ([@cmroche] - [#43206]) ([gree docs]) (beta fix) +- Update greeclimate to 0.10.3 ([@cmroche] - [#43248]) ([gree docs]) (beta fix) +- Bump env_canada to 0.2.4, fix config validation ([@michaeldavie] - [#43251]) ([environment_canada docs]) (beta fix) +- Update zigpy-zigate to 0.7.2 ([@doudz] - [#43252]) ([zha docs]) (beta fix) +- Bump pyvera to 0.3.11 ([@pavoni] - [#43262]) ([vera docs]) (beta fix) +- Bump requests to 2.25.0 ([@spacegaier] - [#43279]) (beta fix) +- Update pytradfri to 7.0.3 ([@balloob] - [#43289]) ([tradfri docs]) (beta fix) +- Fix Enigma2 available entity property ([@reaper7] - [#43292]) (beta fix) +- Update pytradfri to 7.0.4 ([@balloob] - [#43297]) ([tradfri docs]) (beta fix) +- Updated frontend to 20201111.1 ([@bramkragten] - [#43298]) ([frontend docs]) (beta fix) +- Bump bimmer_connected to 0.7.13 ([@rikroe] - [#43294]) ([bmw_connected_drive docs]) (beta fix) +- Bump aioguardian to 1.0.4 ([@bachya] - [#43299]) ([guardian docs]) (beta fix) +- Abort vizio discovery flow without unique ID ([@raman325] - [#43303]) ([vizio docs]) (beta fix) +- Bump hatasmota to 0.0.31 ([@emontnemery] - [#43319]) ([tasmota docs]) (beta fix) +- Updated frontend to 20201111.2 ([@bramkragten] - [#43334]) ([frontend docs]) (beta fix) + +
+ +[#39321]: https://github.com/home-assistant/core/pull/39321 +[#39678]: https://github.com/home-assistant/core/pull/39678 +[#39697]: https://github.com/home-assistant/core/pull/39697 +[#39839]: https://github.com/home-assistant/core/pull/39839 +[#39995]: https://github.com/home-assistant/core/pull/39995 +[#40108]: https://github.com/home-assistant/core/pull/40108 +[#40181]: https://github.com/home-assistant/core/pull/40181 +[#40251]: https://github.com/home-assistant/core/pull/40251 +[#40354]: https://github.com/home-assistant/core/pull/40354 +[#40420]: https://github.com/home-assistant/core/pull/40420 +[#40508]: https://github.com/home-assistant/core/pull/40508 +[#40619]: https://github.com/home-assistant/core/pull/40619 +[#40662]: https://github.com/home-assistant/core/pull/40662 +[#40929]: https://github.com/home-assistant/core/pull/40929 +[#41159]: https://github.com/home-assistant/core/pull/41159 +[#41165]: https://github.com/home-assistant/core/pull/41165 +[#41232]: https://github.com/home-assistant/core/pull/41232 +[#41309]: https://github.com/home-assistant/core/pull/41309 +[#41375]: https://github.com/home-assistant/core/pull/41375 +[#41397]: https://github.com/home-assistant/core/pull/41397 +[#41522]: https://github.com/home-assistant/core/pull/41522 +[#41752]: https://github.com/home-assistant/core/pull/41752 +[#41767]: https://github.com/home-assistant/core/pull/41767 +[#41802]: https://github.com/home-assistant/core/pull/41802 +[#41853]: https://github.com/home-assistant/core/pull/41853 +[#41863]: https://github.com/home-assistant/core/pull/41863 +[#41875]: https://github.com/home-assistant/core/pull/41875 +[#41893]: https://github.com/home-assistant/core/pull/41893 +[#41958]: https://github.com/home-assistant/core/pull/41958 +[#41960]: https://github.com/home-assistant/core/pull/41960 +[#41961]: https://github.com/home-assistant/core/pull/41961 +[#41988]: https://github.com/home-assistant/core/pull/41988 +[#42023]: https://github.com/home-assistant/core/pull/42023 +[#42026]: https://github.com/home-assistant/core/pull/42026 +[#42032]: https://github.com/home-assistant/core/pull/42032 +[#42037]: https://github.com/home-assistant/core/pull/42037 +[#42061]: https://github.com/home-assistant/core/pull/42061 +[#42087]: https://github.com/home-assistant/core/pull/42087 +[#42094]: https://github.com/home-assistant/core/pull/42094 +[#42099]: https://github.com/home-assistant/core/pull/42099 +[#42129]: https://github.com/home-assistant/core/pull/42129 +[#42133]: https://github.com/home-assistant/core/pull/42133 +[#42144]: https://github.com/home-assistant/core/pull/42144 +[#42146]: https://github.com/home-assistant/core/pull/42146 +[#42156]: https://github.com/home-assistant/core/pull/42156 +[#42159]: https://github.com/home-assistant/core/pull/42159 +[#42164]: https://github.com/home-assistant/core/pull/42164 +[#42169]: https://github.com/home-assistant/core/pull/42169 +[#42176]: https://github.com/home-assistant/core/pull/42176 +[#42178]: https://github.com/home-assistant/core/pull/42178 +[#42183]: https://github.com/home-assistant/core/pull/42183 +[#42193]: https://github.com/home-assistant/core/pull/42193 +[#42199]: https://github.com/home-assistant/core/pull/42199 +[#42206]: https://github.com/home-assistant/core/pull/42206 +[#42208]: https://github.com/home-assistant/core/pull/42208 +[#42210]: https://github.com/home-assistant/core/pull/42210 +[#42211]: https://github.com/home-assistant/core/pull/42211 +[#42217]: https://github.com/home-assistant/core/pull/42217 +[#42218]: https://github.com/home-assistant/core/pull/42218 +[#42220]: https://github.com/home-assistant/core/pull/42220 +[#42221]: https://github.com/home-assistant/core/pull/42221 +[#42229]: https://github.com/home-assistant/core/pull/42229 +[#42231]: https://github.com/home-assistant/core/pull/42231 +[#42232]: https://github.com/home-assistant/core/pull/42232 +[#42233]: https://github.com/home-assistant/core/pull/42233 +[#42236]: https://github.com/home-assistant/core/pull/42236 +[#42239]: https://github.com/home-assistant/core/pull/42239 +[#42241]: https://github.com/home-assistant/core/pull/42241 +[#42243]: https://github.com/home-assistant/core/pull/42243 +[#42262]: https://github.com/home-assistant/core/pull/42262 +[#42263]: https://github.com/home-assistant/core/pull/42263 +[#42266]: https://github.com/home-assistant/core/pull/42266 +[#42276]: https://github.com/home-assistant/core/pull/42276 +[#42279]: https://github.com/home-assistant/core/pull/42279 +[#42282]: https://github.com/home-assistant/core/pull/42282 +[#42286]: https://github.com/home-assistant/core/pull/42286 +[#42289]: https://github.com/home-assistant/core/pull/42289 +[#42290]: https://github.com/home-assistant/core/pull/42290 +[#42305]: https://github.com/home-assistant/core/pull/42305 +[#42308]: https://github.com/home-assistant/core/pull/42308 +[#42309]: https://github.com/home-assistant/core/pull/42309 +[#42310]: https://github.com/home-assistant/core/pull/42310 +[#42312]: https://github.com/home-assistant/core/pull/42312 +[#42316]: https://github.com/home-assistant/core/pull/42316 +[#42319]: https://github.com/home-assistant/core/pull/42319 +[#42323]: https://github.com/home-assistant/core/pull/42323 +[#42324]: https://github.com/home-assistant/core/pull/42324 +[#42325]: https://github.com/home-assistant/core/pull/42325 +[#42326]: https://github.com/home-assistant/core/pull/42326 +[#42333]: https://github.com/home-assistant/core/pull/42333 +[#42335]: https://github.com/home-assistant/core/pull/42335 +[#42348]: https://github.com/home-assistant/core/pull/42348 +[#42349]: https://github.com/home-assistant/core/pull/42349 +[#42351]: https://github.com/home-assistant/core/pull/42351 +[#42353]: https://github.com/home-assistant/core/pull/42353 +[#42366]: https://github.com/home-assistant/core/pull/42366 +[#42373]: https://github.com/home-assistant/core/pull/42373 +[#42374]: https://github.com/home-assistant/core/pull/42374 +[#42375]: https://github.com/home-assistant/core/pull/42375 +[#42376]: https://github.com/home-assistant/core/pull/42376 +[#42377]: https://github.com/home-assistant/core/pull/42377 +[#42378]: https://github.com/home-assistant/core/pull/42378 +[#42379]: https://github.com/home-assistant/core/pull/42379 +[#42388]: https://github.com/home-assistant/core/pull/42388 +[#42395]: https://github.com/home-assistant/core/pull/42395 +[#42399]: https://github.com/home-assistant/core/pull/42399 +[#42404]: https://github.com/home-assistant/core/pull/42404 +[#42407]: https://github.com/home-assistant/core/pull/42407 +[#42410]: https://github.com/home-assistant/core/pull/42410 +[#42414]: https://github.com/home-assistant/core/pull/42414 +[#42418]: https://github.com/home-assistant/core/pull/42418 +[#42419]: https://github.com/home-assistant/core/pull/42419 +[#42421]: https://github.com/home-assistant/core/pull/42421 +[#42426]: https://github.com/home-assistant/core/pull/42426 +[#42432]: https://github.com/home-assistant/core/pull/42432 +[#42434]: https://github.com/home-assistant/core/pull/42434 +[#42435]: https://github.com/home-assistant/core/pull/42435 +[#42436]: https://github.com/home-assistant/core/pull/42436 +[#42443]: https://github.com/home-assistant/core/pull/42443 +[#42445]: https://github.com/home-assistant/core/pull/42445 +[#42448]: https://github.com/home-assistant/core/pull/42448 +[#42460]: https://github.com/home-assistant/core/pull/42460 +[#42462]: https://github.com/home-assistant/core/pull/42462 +[#42469]: https://github.com/home-assistant/core/pull/42469 +[#42470]: https://github.com/home-assistant/core/pull/42470 +[#42477]: https://github.com/home-assistant/core/pull/42477 +[#42478]: https://github.com/home-assistant/core/pull/42478 +[#42480]: https://github.com/home-assistant/core/pull/42480 +[#42481]: https://github.com/home-assistant/core/pull/42481 +[#42487]: https://github.com/home-assistant/core/pull/42487 +[#42491]: https://github.com/home-assistant/core/pull/42491 +[#42495]: https://github.com/home-assistant/core/pull/42495 +[#42497]: https://github.com/home-assistant/core/pull/42497 +[#42498]: https://github.com/home-assistant/core/pull/42498 +[#42499]: https://github.com/home-assistant/core/pull/42499 +[#42501]: https://github.com/home-assistant/core/pull/42501 +[#42506]: https://github.com/home-assistant/core/pull/42506 +[#42508]: https://github.com/home-assistant/core/pull/42508 +[#42509]: https://github.com/home-assistant/core/pull/42509 +[#42510]: https://github.com/home-assistant/core/pull/42510 +[#42512]: https://github.com/home-assistant/core/pull/42512 +[#42518]: https://github.com/home-assistant/core/pull/42518 +[#42520]: https://github.com/home-assistant/core/pull/42520 +[#42521]: https://github.com/home-assistant/core/pull/42521 +[#42530]: https://github.com/home-assistant/core/pull/42530 +[#42535]: https://github.com/home-assistant/core/pull/42535 +[#42539]: https://github.com/home-assistant/core/pull/42539 +[#42544]: https://github.com/home-assistant/core/pull/42544 +[#42546]: https://github.com/home-assistant/core/pull/42546 +[#42556]: https://github.com/home-assistant/core/pull/42556 +[#42562]: https://github.com/home-assistant/core/pull/42562 +[#42570]: https://github.com/home-assistant/core/pull/42570 +[#42571]: https://github.com/home-assistant/core/pull/42571 +[#42573]: https://github.com/home-assistant/core/pull/42573 +[#42576]: https://github.com/home-assistant/core/pull/42576 +[#42579]: https://github.com/home-assistant/core/pull/42579 +[#42581]: https://github.com/home-assistant/core/pull/42581 +[#42583]: https://github.com/home-assistant/core/pull/42583 +[#42593]: https://github.com/home-assistant/core/pull/42593 +[#42594]: https://github.com/home-assistant/core/pull/42594 +[#42597]: https://github.com/home-assistant/core/pull/42597 +[#42600]: https://github.com/home-assistant/core/pull/42600 +[#42601]: https://github.com/home-assistant/core/pull/42601 +[#42604]: https://github.com/home-assistant/core/pull/42604 +[#42610]: https://github.com/home-assistant/core/pull/42610 +[#42613]: https://github.com/home-assistant/core/pull/42613 +[#42614]: https://github.com/home-assistant/core/pull/42614 +[#42617]: https://github.com/home-assistant/core/pull/42617 +[#42618]: https://github.com/home-assistant/core/pull/42618 +[#42621]: https://github.com/home-assistant/core/pull/42621 +[#42628]: https://github.com/home-assistant/core/pull/42628 +[#42641]: https://github.com/home-assistant/core/pull/42641 +[#42642]: https://github.com/home-assistant/core/pull/42642 +[#42644]: https://github.com/home-assistant/core/pull/42644 +[#42645]: https://github.com/home-assistant/core/pull/42645 +[#42647]: https://github.com/home-assistant/core/pull/42647 +[#42652]: https://github.com/home-assistant/core/pull/42652 +[#42657]: https://github.com/home-assistant/core/pull/42657 +[#42666]: https://github.com/home-assistant/core/pull/42666 +[#42667]: https://github.com/home-assistant/core/pull/42667 +[#42671]: https://github.com/home-assistant/core/pull/42671 +[#42680]: https://github.com/home-assistant/core/pull/42680 +[#42685]: https://github.com/home-assistant/core/pull/42685 +[#42689]: https://github.com/home-assistant/core/pull/42689 +[#42690]: https://github.com/home-assistant/core/pull/42690 +[#42693]: https://github.com/home-assistant/core/pull/42693 +[#42696]: https://github.com/home-assistant/core/pull/42696 +[#42697]: https://github.com/home-assistant/core/pull/42697 +[#42702]: https://github.com/home-assistant/core/pull/42702 +[#42703]: https://github.com/home-assistant/core/pull/42703 +[#42704]: https://github.com/home-assistant/core/pull/42704 +[#42705]: https://github.com/home-assistant/core/pull/42705 +[#42706]: https://github.com/home-assistant/core/pull/42706 +[#42714]: https://github.com/home-assistant/core/pull/42714 +[#42718]: https://github.com/home-assistant/core/pull/42718 +[#42719]: https://github.com/home-assistant/core/pull/42719 +[#42722]: https://github.com/home-assistant/core/pull/42722 +[#42723]: https://github.com/home-assistant/core/pull/42723 +[#42726]: https://github.com/home-assistant/core/pull/42726 +[#42727]: https://github.com/home-assistant/core/pull/42727 +[#42728]: https://github.com/home-assistant/core/pull/42728 +[#42730]: https://github.com/home-assistant/core/pull/42730 +[#42734]: https://github.com/home-assistant/core/pull/42734 +[#42746]: https://github.com/home-assistant/core/pull/42746 +[#42756]: https://github.com/home-assistant/core/pull/42756 +[#42757]: https://github.com/home-assistant/core/pull/42757 +[#42765]: https://github.com/home-assistant/core/pull/42765 +[#42769]: https://github.com/home-assistant/core/pull/42769 +[#42780]: https://github.com/home-assistant/core/pull/42780 +[#42782]: https://github.com/home-assistant/core/pull/42782 +[#42783]: https://github.com/home-assistant/core/pull/42783 +[#42785]: https://github.com/home-assistant/core/pull/42785 +[#42786]: https://github.com/home-assistant/core/pull/42786 +[#42794]: https://github.com/home-assistant/core/pull/42794 +[#42797]: https://github.com/home-assistant/core/pull/42797 +[#42801]: https://github.com/home-assistant/core/pull/42801 +[#42802]: https://github.com/home-assistant/core/pull/42802 +[#42808]: https://github.com/home-assistant/core/pull/42808 +[#42815]: https://github.com/home-assistant/core/pull/42815 +[#42819]: https://github.com/home-assistant/core/pull/42819 +[#42827]: https://github.com/home-assistant/core/pull/42827 +[#42831]: https://github.com/home-assistant/core/pull/42831 +[#42832]: https://github.com/home-assistant/core/pull/42832 +[#42843]: https://github.com/home-assistant/core/pull/42843 +[#42849]: https://github.com/home-assistant/core/pull/42849 +[#42853]: https://github.com/home-assistant/core/pull/42853 +[#42854]: https://github.com/home-assistant/core/pull/42854 +[#42861]: https://github.com/home-assistant/core/pull/42861 +[#42862]: https://github.com/home-assistant/core/pull/42862 +[#42864]: https://github.com/home-assistant/core/pull/42864 +[#42865]: https://github.com/home-assistant/core/pull/42865 +[#42877]: https://github.com/home-assistant/core/pull/42877 +[#42883]: https://github.com/home-assistant/core/pull/42883 +[#42887]: https://github.com/home-assistant/core/pull/42887 +[#42891]: https://github.com/home-assistant/core/pull/42891 +[#42892]: https://github.com/home-assistant/core/pull/42892 +[#42894]: https://github.com/home-assistant/core/pull/42894 +[#42895]: https://github.com/home-assistant/core/pull/42895 +[#42897]: https://github.com/home-assistant/core/pull/42897 +[#42899]: https://github.com/home-assistant/core/pull/42899 +[#42915]: https://github.com/home-assistant/core/pull/42915 +[#42917]: https://github.com/home-assistant/core/pull/42917 +[#42919]: https://github.com/home-assistant/core/pull/42919 +[#42929]: https://github.com/home-assistant/core/pull/42929 +[#42934]: https://github.com/home-assistant/core/pull/42934 +[#42937]: https://github.com/home-assistant/core/pull/42937 +[#42939]: https://github.com/home-assistant/core/pull/42939 +[#42940]: https://github.com/home-assistant/core/pull/42940 +[#42941]: https://github.com/home-assistant/core/pull/42941 +[#42944]: https://github.com/home-assistant/core/pull/42944 +[#42951]: https://github.com/home-assistant/core/pull/42951 +[#42955]: https://github.com/home-assistant/core/pull/42955 +[#42957]: https://github.com/home-assistant/core/pull/42957 +[#42962]: https://github.com/home-assistant/core/pull/42962 +[#42965]: https://github.com/home-assistant/core/pull/42965 +[#42967]: https://github.com/home-assistant/core/pull/42967 +[#42972]: https://github.com/home-assistant/core/pull/42972 +[#42973]: https://github.com/home-assistant/core/pull/42973 +[#42977]: https://github.com/home-assistant/core/pull/42977 +[#42985]: https://github.com/home-assistant/core/pull/42985 +[#42987]: https://github.com/home-assistant/core/pull/42987 +[#42990]: https://github.com/home-assistant/core/pull/42990 +[#42994]: https://github.com/home-assistant/core/pull/42994 +[#42995]: https://github.com/home-assistant/core/pull/42995 +[#42996]: https://github.com/home-assistant/core/pull/42996 +[#42999]: https://github.com/home-assistant/core/pull/42999 +[#43001]: https://github.com/home-assistant/core/pull/43001 +[#43003]: https://github.com/home-assistant/core/pull/43003 +[#43007]: https://github.com/home-assistant/core/pull/43007 +[#43010]: https://github.com/home-assistant/core/pull/43010 +[#43011]: https://github.com/home-assistant/core/pull/43011 +[#43012]: https://github.com/home-assistant/core/pull/43012 +[#43013]: https://github.com/home-assistant/core/pull/43013 +[#43017]: https://github.com/home-assistant/core/pull/43017 +[#43018]: https://github.com/home-assistant/core/pull/43018 +[#43019]: https://github.com/home-assistant/core/pull/43019 +[#43020]: https://github.com/home-assistant/core/pull/43020 +[#43021]: https://github.com/home-assistant/core/pull/43021 +[#43022]: https://github.com/home-assistant/core/pull/43022 +[#43026]: https://github.com/home-assistant/core/pull/43026 +[#43027]: https://github.com/home-assistant/core/pull/43027 +[#43031]: https://github.com/home-assistant/core/pull/43031 +[#43032]: https://github.com/home-assistant/core/pull/43032 +[#43034]: https://github.com/home-assistant/core/pull/43034 +[#43037]: https://github.com/home-assistant/core/pull/43037 +[#43038]: https://github.com/home-assistant/core/pull/43038 +[#43043]: https://github.com/home-assistant/core/pull/43043 +[#43056]: https://github.com/home-assistant/core/pull/43056 +[#43057]: https://github.com/home-assistant/core/pull/43057 +[#43059]: https://github.com/home-assistant/core/pull/43059 +[#43060]: https://github.com/home-assistant/core/pull/43060 +[#43064]: https://github.com/home-assistant/core/pull/43064 +[#43065]: https://github.com/home-assistant/core/pull/43065 +[#43066]: https://github.com/home-assistant/core/pull/43066 +[#43067]: https://github.com/home-assistant/core/pull/43067 +[#43069]: https://github.com/home-assistant/core/pull/43069 +[#43070]: https://github.com/home-assistant/core/pull/43070 +[#43073]: https://github.com/home-assistant/core/pull/43073 +[#43074]: https://github.com/home-assistant/core/pull/43074 +[#43075]: https://github.com/home-assistant/core/pull/43075 +[#43085]: https://github.com/home-assistant/core/pull/43085 +[#43089]: https://github.com/home-assistant/core/pull/43089 +[#43090]: https://github.com/home-assistant/core/pull/43090 +[#43092]: https://github.com/home-assistant/core/pull/43092 +[#43101]: https://github.com/home-assistant/core/pull/43101 +[#43104]: https://github.com/home-assistant/core/pull/43104 +[#43105]: https://github.com/home-assistant/core/pull/43105 +[#43106]: https://github.com/home-assistant/core/pull/43106 +[#43108]: https://github.com/home-assistant/core/pull/43108 +[#43114]: https://github.com/home-assistant/core/pull/43114 +[#43117]: https://github.com/home-assistant/core/pull/43117 +[#43122]: https://github.com/home-assistant/core/pull/43122 +[#43126]: https://github.com/home-assistant/core/pull/43126 +[#43127]: https://github.com/home-assistant/core/pull/43127 +[#43140]: https://github.com/home-assistant/core/pull/43140 +[#43146]: https://github.com/home-assistant/core/pull/43146 +[#43154]: https://github.com/home-assistant/core/pull/43154 +[#43156]: https://github.com/home-assistant/core/pull/43156 +[#43159]: https://github.com/home-assistant/core/pull/43159 +[#43182]: https://github.com/home-assistant/core/pull/43182 +[#43185]: https://github.com/home-assistant/core/pull/43185 +[#43189]: https://github.com/home-assistant/core/pull/43189 +[#43199]: https://github.com/home-assistant/core/pull/43199 +[#43206]: https://github.com/home-assistant/core/pull/43206 +[#43213]: https://github.com/home-assistant/core/pull/43213 +[#43230]: https://github.com/home-assistant/core/pull/43230 +[#43235]: https://github.com/home-assistant/core/pull/43235 +[#43248]: https://github.com/home-assistant/core/pull/43248 +[#43251]: https://github.com/home-assistant/core/pull/43251 +[#43252]: https://github.com/home-assistant/core/pull/43252 +[#43262]: https://github.com/home-assistant/core/pull/43262 +[#43279]: https://github.com/home-assistant/core/pull/43279 +[#43289]: https://github.com/home-assistant/core/pull/43289 +[#43292]: https://github.com/home-assistant/core/pull/43292 +[#43294]: https://github.com/home-assistant/core/pull/43294 +[#43297]: https://github.com/home-assistant/core/pull/43297 +[#43298]: https://github.com/home-assistant/core/pull/43298 +[#43299]: https://github.com/home-assistant/core/pull/43299 +[#43303]: https://github.com/home-assistant/core/pull/43303 +[#43319]: https://github.com/home-assistant/core/pull/43319 +[#43334]: https://github.com/home-assistant/core/pull/43334 +[@9R]: https://github.com/9R +[@Adminiuga]: https://github.com/Adminiuga +[@AlexSchmitz222]: https://github.com/AlexSchmitz222 +[@BKPepe]: https://github.com/BKPepe +[@Cereal2nd]: https://github.com/Cereal2nd +[@ChristianKuehnel]: https://github.com/ChristianKuehnel +[@CoMPaTech]: https://github.com/CoMPaTech +[@CurrentThread]: https://github.com/CurrentThread +[@Danielhiversen]: https://github.com/Danielhiversen +[@DiederikvandenB]: https://github.com/DiederikvandenB +[@Flameeyes]: https://github.com/Flameeyes +[@GenericStudent]: https://github.com/GenericStudent +[@JJdeVries]: https://github.com/JJdeVries +[@JeffLIrion]: https://github.com/JeffLIrion +[@Kane610]: https://github.com/Kane610 +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@NikoM87]: https://github.com/NikoM87 +[@OGKevin]: https://github.com/OGKevin +[@Olen]: https://github.com/Olen +[@OnFreund]: https://github.com/OnFreund +[@Petro31]: https://github.com/Petro31 +[@RobBie1221]: https://github.com/RobBie1221 +[@SNoof85]: https://github.com/SNoof85 +[@Shutgun]: https://github.com/Shutgun +[@SigmaPic]: https://github.com/SigmaPic +[@SteveBrandt]: https://github.com/SteveBrandt +[@SukramJ]: https://github.com/SukramJ +[@ZzetT]: https://github.com/ZzetT +[@absurdist81]: https://github.com/absurdist81 +[@adamjernst]: https://github.com/adamjernst +[@adriansuwala]: https://github.com/adriansuwala +[@ajmarks]: https://github.com/ajmarks +[@alengwenus]: https://github.com/alengwenus +[@allenporter]: https://github.com/allenporter +[@amelchio]: https://github.com/amelchio +[@apop880]: https://github.com/apop880 +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@bdraco]: https://github.com/bdraco +[@bramkragten]: https://github.com/bramkragten +[@bwarden]: https://github.com/bwarden +[@cgarwood]: https://github.com/cgarwood +[@cgtobi]: https://github.com/cgtobi +[@chemelli74]: https://github.com/chemelli74 +[@cmroche]: https://github.com/cmroche +[@ctalkington]: https://github.com/ctalkington +[@czechmark]: https://github.com/czechmark +[@dcnielsen90]: https://github.com/dcnielsen90 +[@dcnoren]: https://github.com/dcnoren +[@dgomes]: https://github.com/dgomes +[@dmonego]: https://github.com/dmonego +[@doudz]: https://github.com/doudz +[@edomat]: https://github.com/edomat +[@effelle]: https://github.com/effelle +[@emlove]: https://github.com/emlove +[@emontnemery]: https://github.com/emontnemery +[@epenet]: https://github.com/epenet +[@epleypa]: https://github.com/epleypa +[@erogleva]: https://github.com/erogleva +[@exxamalte]: https://github.com/exxamalte +[@felipediel]: https://github.com/felipediel +[@frenck]: https://github.com/frenck +[@gtdiehl]: https://github.com/gtdiehl +[@gwww]: https://github.com/gwww +[@hmmbob]: https://github.com/hmmbob +[@hunterjm]: https://github.com/hunterjm +[@janiversen]: https://github.com/janiversen +[@jaydesl]: https://github.com/jaydesl +[@jcalbert]: https://github.com/jcalbert +[@jjlawren]: https://github.com/jjlawren +[@jkeljo]: https://github.com/jkeljo +[@joshuaboniface]: https://github.com/joshuaboniface +[@jsloyer]: https://github.com/jsloyer +[@lindsaymarkward]: https://github.com/lindsaymarkward +[@liudger]: https://github.com/liudger +[@ludeeus]: https://github.com/ludeeus +[@manuel-jrs]: https://github.com/manuel-jrs +[@marvin-w]: https://github.com/marvin-w +[@mdonoughe]: https://github.com/mdonoughe +[@mezz64]: https://github.com/mezz64 +[@mib1185]: https://github.com/mib1185 +[@michaeldavie]: https://github.com/michaeldavie +[@nzapponi]: https://github.com/nzapponi +[@ollo69]: https://github.com/ollo69 +[@oncleben31]: https://github.com/oncleben31 +[@onkelbeh]: https://github.com/onkelbeh +[@oxygen0211]: https://github.com/oxygen0211 +[@palfrey]: https://github.com/palfrey +[@pattyland]: https://github.com/pattyland +[@pavoni]: https://github.com/pavoni +[@pszafer]: https://github.com/pszafer +[@pvizeli]: https://github.com/pvizeli +[@rajlaud]: https://github.com/rajlaud +[@raman325]: https://github.com/raman325 +[@randyxxl]: https://github.com/randyxxl +[@reaper7]: https://github.com/reaper7 +[@rikroe]: https://github.com/rikroe +[@ronanmu]: https://github.com/ronanmu +[@rrada]: https://github.com/rrada +[@sbyx]: https://github.com/sbyx +[@schachar]: https://github.com/schachar +[@scheric]: https://github.com/scheric +[@scop]: https://github.com/scop +[@sdague]: https://github.com/sdague +[@shbatm]: https://github.com/shbatm +[@shenxn]: https://github.com/shenxn +[@spacegaier]: https://github.com/spacegaier +[@springstan]: https://github.com/springstan +[@syssi]: https://github.com/syssi +[@taiyeoguns]: https://github.com/taiyeoguns +[@tetienne]: https://github.com/tetienne +[@thecode]: https://github.com/thecode +[@tim-werner]: https://github.com/tim-werner +[@tkdrob]: https://github.com/tkdrob +[@ttuffin]: https://github.com/ttuffin +[@ubergeek801]: https://github.com/ubergeek801 +[@uvjustin]: https://github.com/uvjustin +[@walthowd]: https://github.com/walthowd +[@wouterbaake]: https://github.com/wouterbaake +[@yuvalabou]: https://github.com/yuvalabou +[@zxdavb]: https://github.com/zxdavb +[airvisual docs]: /integrations/airvisual/ +[alarmdecoder docs]: /integrations/alarmdecoder/ +[amazon_polly docs]: /integrations/amazon_polly/ +[androidtv docs]: /integrations/androidtv/ +[apns docs]: /integrations/apns/ +[arwn docs]: /integrations/arwn/ +[asuswrt docs]: /integrations/asuswrt/ +[august docs]: /integrations/august/ +[automation docs]: /integrations/automation/ +[avea docs]: /integrations/avea/ +[axis docs]: /integrations/axis/ +[binary_sensor docs]: /integrations/binary_sensor/ +[bmw_connected_drive docs]: /integrations/bmw_connected_drive/ +[braviatv docs]: /integrations/braviatv/ +[broadlink docs]: /integrations/broadlink/ +[bsblan docs]: /integrations/bsblan/ +[cast docs]: /integrations/cast/ +[cloud docs]: /integrations/cloud/ +[color_extractor docs]: /integrations/color_extractor/ +[colorthief docs]: /integrations/colorthief/ +[config docs]: /integrations/config/ +[debugpy docs]: /integrations/debugpy/ +[device_tracker docs]: /integrations/device_tracker/ +[devolo_home_control docs]: /integrations/devolo_home_control/ +[dexcom docs]: /integrations/dexcom/ +[directv docs]: /integrations/directv/ +[dsmr docs]: /integrations/dsmr/ +[dyson docs]: /integrations/dyson/ +[eight_sleep docs]: /integrations/eight_sleep/ +[elkm1 docs]: /integrations/elkm1/ +[enigma2 docs]: /integrations/enigma2/ +[enphase_envoy docs]: /integrations/enphase_envoy/ +[environment_canada docs]: /integrations/environment_canada/ +[epson docs]: /integrations/epson/ +[esphome docs]: /integrations/esphome/ +[evohome docs]: /integrations/evohome/ +[flunearyou docs]: /integrations/flunearyou/ +[forked_daapd docs]: /integrations/forked_daapd/ +[fritz docs]: /integrations/fritz/ +[fritzbox docs]: /integrations/fritzbox/ +[fritzbox_callmonitor docs]: /integrations/fritzbox_callmonitor/ +[fritzbox_netmonitor docs]: /integrations/fritzbox_netmonitor/ +[frontend docs]: /integrations/frontend/ +[garmin_connect docs]: /integrations/garmin_connect/ +[gdacs docs]: /integrations/gdacs/ +[google_assistant docs]: /integrations/google_assistant/ +[google_pubsub docs]: /integrations/google_pubsub/ +[gree docs]: /integrations/gree/ +[group docs]: /integrations/group/ +[guardian docs]: /integrations/guardian/ +[hassio docs]: /integrations/hassio/ +[homeassistant docs]: /integrations/homeassistant/ +[homekit docs]: /integrations/homekit/ +[homekit_controller docs]: /integrations/homekit_controller/ +[homematicip_cloud docs]: /integrations/homematicip_cloud/ +[honeywell docs]: /integrations/honeywell/ +[ipma docs]: /integrations/ipma/ +[iqvia docs]: /integrations/iqvia/ +[isy994 docs]: /integrations/isy994/ +[jewish_calendar docs]: /integrations/jewish_calendar/ +[knx docs]: /integrations/knx/ +[lacrosse docs]: /integrations/lacrosse/ +[launch_library docs]: /integrations/launch_library/ +[lcn docs]: /integrations/lcn/ +[life360 docs]: /integrations/life360/ +[locative docs]: /integrations/locative/ +[logbook docs]: /integrations/logbook/ +[london_air docs]: /integrations/london_air/ +[lovelace docs]: /integrations/lovelace/ +[luftdaten docs]: /integrations/luftdaten/ +[lutron_caseta docs]: /integrations/lutron_caseta/ +[lw12wifi docs]: /integrations/lw12wifi/ +[media_extractor docs]: /integrations/media_extractor/ +[met docs]: /integrations/met/ +[mfi docs]: /integrations/mfi/ +[microsoft docs]: /integrations/microsoft/ +[miflora docs]: /integrations/miflora/ +[mochad docs]: /integrations/mochad/ +[modbus docs]: /integrations/modbus/ +[mpd docs]: /integrations/mpd/ +[mqtt docs]: /integrations/mqtt/ +[mqtt_statestream docs]: /integrations/mqtt_statestream/ +[nest docs]: /integrations/nest/ +[netatmo docs]: /integrations/netatmo/ +[netio docs]: /integrations/netio/ +[neurio_energy docs]: /integrations/neurio_energy/ +[notion docs]: /integrations/notion/ +[nx584 docs]: /integrations/nx584/ +[obihai docs]: /integrations/obihai/ +[octoprint docs]: /integrations/octoprint/ +[onewire docs]: /integrations/onewire/ +[onkyo docs]: /integrations/onkyo/ +[onvif docs]: /integrations/onvif/ +[opensky docs]: /integrations/opensky/ +[opentherm_gw docs]: /integrations/opentherm_gw/ +[openuv docs]: /integrations/openuv/ +[openweathermap docs]: /integrations/openweathermap/ +[ozw docs]: /integrations/ozw/ +[pi_hole docs]: /integrations/pi_hole/ +[pilight docs]: /integrations/pilight/ +[plant docs]: /integrations/plant/ +[plex docs]: /integrations/plex/ +[plugwise docs]: /integrations/plugwise/ +[profiler docs]: /integrations/profiler/ +[ptvsd docs]: /integrations/ptvsd/ +[python_script docs]: /integrations/python_script/ +[rachio docs]: /integrations/rachio/ +[rainforest_eagle docs]: /integrations/rainforest_eagle/ +[rainmachine docs]: /integrations/rainmachine/ +[recollect_waste docs]: /integrations/recollect_waste/ +[remote docs]: /integrations/remote/ +[rest docs]: /integrations/rest/ +[rfxtrx docs]: /integrations/rfxtrx/ +[risco docs]: /integrations/risco/ +[roku docs]: /integrations/roku/ +[roon docs]: /integrations/roon/ +[scsgate docs]: /integrations/scsgate/ +[sense docs]: /integrations/sense/ +[sentry docs]: /integrations/sentry/ +[sharkiq docs]: /integrations/sharkiq/ +[shelly docs]: /integrations/shelly/ +[shodan docs]: /integrations/shodan/ +[simplisafe docs]: /integrations/simplisafe/ +[sisyphus docs]: /integrations/sisyphus/ +[skybell docs]: /integrations/skybell/ +[smartthings docs]: /integrations/smartthings/ +[somfy docs]: /integrations/somfy/ +[sonarr docs]: /integrations/sonarr/ +[sonos docs]: /integrations/sonos/ +[spotify docs]: /integrations/spotify/ +[squeezebox docs]: /integrations/squeezebox/ +[ssdp docs]: /integrations/ssdp/ +[stream docs]: /integrations/stream/ +[synology_dsm docs]: /integrations/synology_dsm/ +[system_health docs]: /integrations/system_health/ +[tasmota docs]: /integrations/tasmota/ +[telegram_bot docs]: /integrations/telegram_bot/ +[template docs]: /integrations/template/ +[tibber docs]: /integrations/tibber/ +[tile docs]: /integrations/tile/ +[tradfri docs]: /integrations/tradfri/ +[tuya docs]: /integrations/tuya/ +[twilio docs]: /integrations/twilio/ +[unifi docs]: /integrations/unifi/ +[utility_meter docs]: /integrations/utility_meter/ +[vasttrafik docs]: /integrations/vasttrafik/ +[velbus docs]: /integrations/velbus/ +[velux docs]: /integrations/velux/ +[vera docs]: /integrations/vera/ +[vizio docs]: /integrations/vizio/ +[websocket_api docs]: /integrations/websocket_api/ +[wemo docs]: /integrations/wemo/ +[wirelesstag docs]: /integrations/wirelesstag/ +[wled docs]: /integrations/wled/ +[workday docs]: /integrations/workday/ +[xiaomi_aqara docs]: /integrations/xiaomi_aqara/ +[yeelight docs]: /integrations/yeelight/ +[zerproc docs]: /integrations/zerproc/ +[zha docs]: /integrations/zha/ +[zone docs]: /integrations/zone/ diff --git a/source/_posts/2020-11-23-tplink-local-access.markdown b/source/_posts/2020-11-23-tplink-local-access.markdown new file mode 100644 index 00000000000..dcf970b29d5 --- /dev/null +++ b/source/_posts/2020-11-23-tplink-local-access.markdown @@ -0,0 +1,38 @@ +--- +title: "[Better solution!] TP-Link offers way to add local API back" +description: "TP-Link last week decided to publish a firmware upgrade that removed access to the local API. They are partially reverting this decision." +date: 2020-11-23 00:01:00 +date_formatted: "November 23, 2020" +author: Paulus Schoutsen +author_twitter: balloob +categories: Public-Service-Announcement +og_image: /images/blog/2020-11-23-tplink/forum-post-send-ticket.png +--- + +**Update Nov 26:** TP-Link has now announced that they are working on a new firmware that should solve it. DM them on Twitter for info. + + + +--- + +Last week TP-Link released an update for their HS100 and HS110 plugs that removed the local API. This was done because of a "security concern". I put this in quotes because it has not been verified and this reason has been given before when removing interoperability. TP-Link communicated this via Twitter in response to a user voicing their concern. + + + +Lots of users, rightfully so, got angry. They bought the plugs assuming the local API was a feature. Removing this feature and forcing users through the TP-Link cloud sucks. It removes the one feature why TP-Link stood out among many smart plugs. + +After a week of angry users, it looks like TP-Link has listened… _somewhat_. They are offering a temporary solution to roll back the firmware. We haven't found any public documentation, but there are forum posts by their employees [here](https://community.tp-link.com/en/home/forum/topic/236268#topic-reply-523030) and [here](https://community.tp-link.com/en/home/forum/topic/237614#topic-reply-520984) about it. + +

+TP-Link employee on the forums explaining how to downgrade the firmware +Forum post by a TP-Link employee to send in a ticket. +

+ +We are hoping for a better solution, but for now this is what you should do: + +1. ~~Submit a ticket to [technical support](https://www.tp-link.com/en/support/contact-technical-support/#E-mail-Support). Make sure to include the MAC address of your plug.~~ We got an update from TP-Link that this step is no longer necessary. +2. Go to the forums and send [this user](https://community.tp-link.com/en/home/uc/info/650029) a message with your TP-Link ID, model number, hardware version and MAC address. + +TP-Link, if you're reading along, please reach out to us at hello@home-assistant.io so we can discuss a better long term solution for local control. Happy to talk! diff --git a/source/conference/index.markdown b/source/conference/index.markdown index ccc718bc9b7..0d63b96748d 100644 --- a/source/conference/index.markdown +++ b/source/conference/index.markdown @@ -32,4 +32,7 @@ Recordings of the keynote and all tracks and sessions will be made available on ## Speakers & Schedule -_To be announced._ +The speakers and talks schedule is currently being finalized. Most of the +schedule is complete and listed on our Hopin page. + +[View the Home Assistant Conference schedule on Hopin](https://hopin.to/events/home-assistant-conference#schedule) diff --git a/source/hassio/enable_i2c.markdown b/source/hassio/enable_i2c.markdown index 025f1dd4beb..a4542745b08 100644 --- a/source/hassio/enable_i2c.markdown +++ b/source/hassio/enable_i2c.markdown @@ -28,7 +28,7 @@ and make sure the first partition is available. ```txt i2c-dev ``` -- In the root of the USB drive edit the file called `config.txt` add two lines +- In the root of the `hassos-boot` partition, edit the file called `config.txt` add two lines to it: ```txt dtparam=i2c_vc=on diff --git a/source/hassio/haos_common_tasks.markdown b/source/hassio/haos_common_tasks.markdown index 1a9c5a63426..e77e4cd3c30 100644 --- a/source/hassio/haos_common_tasks.markdown +++ b/source/hassio/haos_common_tasks.markdown @@ -131,3 +131,8 @@ You often need a snapshot in case your system has crashed. If you only store the - [Samba backup](https://github.com/thomasmauerer/hassio-addons/tree/master/samba-backup) - [Remote Backup (uses scp)](https://github.com/overkill32/hassio-remote-backup) + + +### Lost Password and password reset + +Please refer to the [I'm locked out!](https://www.home-assistant.io/docs/locked_out/#home-assistant-including-supervised) documentation page. diff --git a/source/hassio/hassos_faq.markdown b/source/hassio/hassos_faq.markdown index f4cf0c36a8a..8d4c577008a 100644 --- a/source/hassio/hassos_faq.markdown +++ b/source/hassio/hassos_faq.markdown @@ -2,11 +2,15 @@ title: "Home Assistant OS FAQ" description: "Frequently Asked Questions for Home Assistant OS" --- -## Is USB Boot for the Pi4 supported? Is the Pi4 with 8GB RAM supported? +## Is USB Boot for the Raspberry Pi 4 supported? -The bootloader for Home Assistant OS (uboot) does not yet support Pi4 booting from USB. Support is likely a month or two away as of July 2020. +Due to the complexity of USB and the USB mass storage device class booting from a USB device is brittle. Since booting from a USB drive this process has to be done multiple times (firmware/boot loader and the operating system), there is a high chance that this process doesn't complete in one of these stages. In general, the Linux USB stack is solid. Due to this, it is recommended to boot Home Assistant OS from an SD card and use a USB attached flash drive as data partition only. The `datactl` command, available on the OS shell, allows moving of the data partition. -The Pi4 with 8GB RAM is now supported on the 64-bit image. +That said, booting Home Assistant OS completely from a USB drive (SSD or any other USB mass storage device) works with *some* USB devices. USB Devices that are known to work with Raspberry Pi OS (check the Raspberry Pi Forum) are more likely to work with Home Assistant OS. However, because Home Assistant OS has also U-Boot in the boot chain, there are devices which are known to work with Raspberry Pi OS but do *not* work with Home Assistant OS. + +## Is the Raspberry Pi 4 with 8GB RAM supported? + +The Raspberry Pi 4 with 8GB RAM is supported with Home Assistant OS 5.5 and later using the 32-bit and 64-bit image. The 64-bit is the better tested option at this point. ## How do I run a specific version of Home Assistant? diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown index 61815606003..99f1641478b 100644 --- a/source/hassio/installation.markdown +++ b/source/hassio/installation.markdown @@ -14,7 +14,7 @@ The following will take you through the steps required to install Home Assistant - [Raspberry Pi 4 Model B (1 GB, 2 GB and 4 GB model) 32-bit][pi4-32] (32-bit is required for GPIO support) - [Raspberry Pi 4 Model B (1 GB, 2 GB, 4 GB and 8 GB model) 64-bit][pi4-64] (64-bit is required for 8 GB model) - [Tinkerboard][tinker] - - [Odroid-C2][odroid-c2], [Odroid-N2][odroid-n2], [Odroid-XU4][odroid-xu4] + - [Odroid-C2][odroid-c2], [Odroid-C4 (Beta)][odroid-c4], [Odroid-N2][odroid-n2], [Odroid-XU4][odroid-xu4] - [Intel NUC][intel-nuc] - As a virtual appliance (x86_64/UEFI): @@ -105,23 +105,24 @@ If you would like to test next release before anyone else, you can install the b [balenaEtcher]: https://www.balena.io/etcher [hassos-network]: https://github.com/home-assistant/operating-system/blob/dev/Documentation/network.md -[pi0-w]: https://github.com/home-assistant/operating-system/releases/download/4.15/hassos_rpi0-w-4.15.img.gz -[pi1]: https://github.com/home-assistant/operating-system/releases/download/4.15/hassos_rpi-4.15.img.gz -[pi2]: https://github.com/home-assistant/operating-system/releases/download/4.15/hassos_rpi2-4.15.img.gz -[pi3-32]: https://github.com/home-assistant/operating-system/releases/download/4.15/hassos_rpi3-4.15.img.gz -[pi3-64]: https://github.com/home-assistant/operating-system/releases/download/4.15/hassos_rpi3-64-4.15.img.gz -[pi4-32]: https://github.com/home-assistant/operating-system/releases/download/4.15/hassos_rpi4-4.15.img.gz -[pi4-64]: https://github.com/home-assistant/operating-system/releases/download/4.15/hassos_rpi4-64-4.15.img.gz -[tinker]: https://github.com/home-assistant/operating-system/releases/download/4.15/hassos_tinker-4.15.img.gz -[odroid-c2]: https://github.com/home-assistant/operating-system/releases/download/4.15/hassos_odroid-c2-4.15.img.gz -[odroid-n2]: https://github.com/home-assistant/operating-system/releases/download/4.15/hassos_odroid-n2-4.15.img.gz -[odroid-xu4]: https://github.com/home-assistant/operating-system/releases/download/4.15/hassos_odroid-xu4-4.15.img.gz -[intel-nuc]: https://github.com/home-assistant/operating-system/releases/download/4.15/hassos_intel-nuc-4.15.img.gz -[vmdk]: https://github.com/home-assistant/operating-system/releases/download/4.15/hassos_ova-4.15.vmdk.gz -[vhdx]: https://github.com/home-assistant/operating-system/releases/download/4.15/hassos_ova-4.15.vhdx.gz -[vdi]: https://github.com/home-assistant/operating-system/releases/download/4.15/hassos_ova-4.15.vdi.gz -[qcow2]: https://github.com/home-assistant/operating-system/releases/download/4.15/hassos_ova-4.15.qcow2.gz -[Virtual Appliance]: https://github.com/home-assistant/operating-system/releases/download/4.15/hassos_ova-4.15.ova +[pi0-w]: https://github.com/home-assistant/operating-system/releases/download/4.16/hassos_rpi0-w-4.16.img.gz +[pi1]: https://github.com/home-assistant/operating-system/releases/download/4.16/hassos_rpi-4.16.img.gz +[pi2]: https://github.com/home-assistant/operating-system/releases/download/4.16/hassos_rpi2-4.16.img.gz +[pi3-32]: https://github.com/home-assistant/operating-system/releases/download/4.16/hassos_rpi3-4.16.img.gz +[pi3-64]: https://github.com/home-assistant/operating-system/releases/download/4.16/hassos_rpi3-64-4.16.img.gz +[pi4-32]: https://github.com/home-assistant/operating-system/releases/download/4.16/hassos_rpi4-4.16.img.gz +[pi4-64]: https://github.com/home-assistant/operating-system/releases/download/4.16/hassos_rpi4-64-4.16.img.gz +[tinker]: https://github.com/home-assistant/operating-system/releases/download/4.16/hassos_tinker-4.16.img.gz +[odroid-c2]: https://github.com/home-assistant/operating-system/releases/download/4.16/hassos_odroid-c2-4.16.img.gz +[odroid-c4]: https://github.com/home-assistant/operating-system/releases/download/5.5/hassos_odroid-c4-5.5.img.gz +[odroid-n2]: https://github.com/home-assistant/operating-system/releases/download/4.16/hassos_odroid-n2-4.16.img.gz +[odroid-xu4]: https://github.com/home-assistant/operating-system/releases/download/4.16/hassos_odroid-xu4-4.16.img.gz +[intel-nuc]: https://github.com/home-assistant/operating-system/releases/download/4.16/hassos_intel-nuc-4.16.img.gz +[vmdk]: https://github.com/home-assistant/operating-system/releases/download/4.16/hassos_ova-4.16.vmdk.gz +[vhdx]: https://github.com/home-assistant/operating-system/releases/download/4.16/hassos_ova-4.16.vhdx.gz +[vdi]: https://github.com/home-assistant/operating-system/releases/download/4.16/hassos_ova-4.16.vdi.gz +[qcow2]: https://github.com/home-assistant/operating-system/releases/download/4.16/hassos_ova-4.16.qcow2.gz +[Virtual Appliance]: https://github.com/home-assistant/operating-system/releases/download/4.16/hassos_ova-4.16.ova [local]: http://homeassistant.local:8123 [samba]: /addons/samba/ [ssh]: /addons/ssh/ diff --git a/source/help/index.markdown b/source/help/index.markdown index 6d79663742d..e9f387538b9 100644 --- a/source/help/index.markdown +++ b/source/help/index.markdown @@ -49,6 +49,8 @@ Looking for [talking points](/help/talking-points/) or [trivia](/help/trivia)? Don't miss the regular [Home Assistant podcasts](https://hasspodcast.io/). +- [Why I use Home Assistant for open source home automation](https://opensource.com/article/20/11/home-assistant) - November 2020 +- [Thomas-Krenn-Award 2020: Dino, Teckids und Home Assistant](https://www.thomas-krenn.com/de/tkmag/allgemein/gewinner-thomas-krenn-award-2020/) - June 2020 - [Magical Smart Home Upgrade Lets Muggles Control Their Homes With a Wand Too](https://gizmodo.com/magical-smart-home-upgrade-lets-muggles-control-their-h-1833941228) - April 2019 - [Thomas-Krenn-Award 2019 – The winners](https://www.thomas-krenn.com/de/tkmag/tk-insights/thomas-krenn-award-2019-gewinner/) - March 2019 - [How to set up and use Home Assistant: For Dummies edition](https://www.the-ambient.com/how-to/set-up-use-home-assistant-644) - October 2018 diff --git a/source/images/blog/2020-11-0.118/grid-card.png b/source/images/blog/2020-11-0.118/grid-card.png new file mode 100644 index 00000000000..6cb2b1e8bce Binary files /dev/null and b/source/images/blog/2020-11-0.118/grid-card.png differ diff --git a/source/images/blog/2020-11-0.118/header-footer-editor.png b/source/images/blog/2020-11-0.118/header-footer-editor.png new file mode 100644 index 00000000000..b6e21eafd16 Binary files /dev/null and b/source/images/blog/2020-11-0.118/header-footer-editor.png differ diff --git a/source/images/blog/2020-11-0.118/logbook-card.png b/source/images/blog/2020-11-0.118/logbook-card.png new file mode 100644 index 00000000000..4b67b905849 Binary files /dev/null and b/source/images/blog/2020-11-0.118/logbook-card.png differ diff --git a/source/images/blog/2020-11-0.118/quickbar-navigate.png b/source/images/blog/2020-11-0.118/quickbar-navigate.png new file mode 100644 index 00000000000..8f264f893aa Binary files /dev/null and b/source/images/blog/2020-11-0.118/quickbar-navigate.png differ diff --git a/source/images/blog/2020-11-0.118/social.png b/source/images/blog/2020-11-0.118/social.png new file mode 100644 index 00000000000..d1d8c028d80 Binary files /dev/null and b/source/images/blog/2020-11-0.118/social.png differ diff --git a/source/images/blog/2020-11-0.118/supervisor-network.png b/source/images/blog/2020-11-0.118/supervisor-network.png new file mode 100644 index 00000000000..1bee0dc046d Binary files /dev/null and b/source/images/blog/2020-11-0.118/supervisor-network.png differ diff --git a/source/images/blog/2020-11-23-tplink/forum-post-send-ticket.png b/source/images/blog/2020-11-23-tplink/forum-post-send-ticket.png new file mode 100644 index 00000000000..0dd80cfb6be Binary files /dev/null and b/source/images/blog/2020-11-23-tplink/forum-post-send-ticket.png differ diff --git a/source/images/lovelace/lovelace_logbook.png b/source/images/lovelace/lovelace_logbook.png new file mode 100644 index 00000000000..0a658b2338f Binary files /dev/null and b/source/images/lovelace/lovelace_logbook.png differ diff --git a/source/images/screenshots/more-info-dialog-moon.png b/source/images/screenshots/more-info-dialog-moon.png index acc28369586..67e36d7d348 100644 Binary files a/source/images/screenshots/more-info-dialog-moon.png and b/source/images/screenshots/more-info-dialog-moon.png differ diff --git a/source/images/screenshots/supervisor_registry_dockerhub.png b/source/images/screenshots/supervisor_registry_dockerhub.png new file mode 100644 index 00000000000..e43bc813706 Binary files /dev/null and b/source/images/screenshots/supervisor_registry_dockerhub.png differ diff --git a/source/index.html b/source/index.html index 17fd27e38b7..a41d2cb8424 100644 --- a/source/index.html +++ b/source/index.html @@ -45,15 +45,6 @@ description: " > - -

Alexa, turn on the lights

Use Alexa to control Home Assistant. diff --git a/source/more-info/dockerhub-rate-limit.markdown b/source/more-info/dockerhub-rate-limit.markdown new file mode 100644 index 00000000000..757dd02a0d1 --- /dev/null +++ b/source/more-info/dockerhub-rate-limit.markdown @@ -0,0 +1,41 @@ +--- +title: "Docker Hub Rate Limit" +description: "Docker Hub is rate-limiting how many pull you can do." +--- + +## The issue + +Docker Hub enforces a limit on how much you are allowed to fetch container information from their container registry. [Read more about how it's handled here][docker-rate-limit]. + +Home Assistant uses Docker Hub as the container registry. When your IP address is rate limited updating our containers will fail. + +## The solutions + +If you are running watchtower or similar solutions to keep your containers up to date, you need to reconfigure them to check less often than the default configuration. If you are running a Supervised installation, you should also consider removing them completely since running those alongside the Supervisor is [not supported][unsupported-container]. + +When this is done, you need to wait until the limit has lifted, this can take up to 6 hours. + +If you are sharing the IP address with other parties, their usage will also affect you. The Supervisor supports logging in to Docker Hub with an account, with this approach, all the fetches between the Supervisor and Docker Hub will be using authentication and will not be limited by the anonymous rate limits. Authenticated users are also rate limited, but that is a dedicated limit tied to your account. + +_If you do not have a Docker Hub account [you can create one here][dockerhub-signup]._ + +To use your Docker Hub credentials with the Supervisor: + +- You need to have the advanced user toggle enabled in your user profile setting. +- Go to the Supervisor panel in the Home Assistant UI. +- Next, to the "Add-on Store" tab. +- Click the three dots in the top right corner of the screen, and select "Registries". + +In the dialog that opens up, click on "Add new registry" and enter `hub.docker.com` as the registry followed by your credentials: + +

+Adding authentication for Docker Hub in the Supervisor panel. +Adding authentication for Docker Hub in the Supervisor panel +

+ +_If you do not want to use the UI, this can also be done with the [CLI]_ + +[docker-rate-limit]: https://docs.docker.com/docker-hub/download-rate-limit/ +[dockerhub-signup]: https://hub.docker.com/signup +[unsupported-container]: /more-info/unsupported/container.markdown +[CLI]: https://github.com/home-assistant/cli diff --git a/source/more-info/no-url-available.markdown b/source/more-info/no-url-available.markdown index 89266bcb69b..5ed08449fc7 100644 --- a/source/more-info/no-url-available.markdown +++ b/source/more-info/no-url-available.markdown @@ -84,6 +84,12 @@ Some additional notes: might cause problems with casting to media devices. - If you do not have an external address for your Home Assistant instance, leave that field empty. +- Ensure that the URL you provide matches the true address your browser uses to + reach the instance. Many popular browsers will hide the www subdomain; if you + try to configure `http://foo.bar`, but you're actually at `http://www.foo.bar`, + OAuth will fail and you will receive this error. You can always check the + actual domain by pasting `javascript:alert(document.location)` in your address + bar and pressing enter. After setting the URLs, click save. There is no need to restart Home Assistant your changes are applied immediately. diff --git a/source/more-info/unhealthy/docker.markdown b/source/more-info/unhealthy/docker.markdown new file mode 100644 index 00000000000..8050c6255ca --- /dev/null +++ b/source/more-info/unhealthy/docker.markdown @@ -0,0 +1,13 @@ +--- +title: "The Docker environment is not working properly" +description: "More information on why a misconfigured Docker environment marks the system as unhealthy." +--- + +Docker is at the core of most operations that the Supervisor does, it is important that it is configured properly and is working the way the Supervisor expects. + +The Supervisor will be marked as unhealthy if any of these requirements are not met: + +- [Running containers known to cause issues](/more-info/unsupported/container) +- [Running an unsupported Docker version](/more-info/unsupported/docker_version) +- [Running the Supervisor under LXC](/more-info/unsupported/lxc) +- [Not running the Supervisor as privileged](/more-info/unsupported/privileged) diff --git a/source/more-info/unhealthy/setup.markdown b/source/more-info/unhealthy/setup.markdown new file mode 100644 index 00000000000..ade29596707 --- /dev/null +++ b/source/more-info/unhealthy/setup.markdown @@ -0,0 +1,28 @@ +--- +title: "Setup of the Supervisor failed" +description: "More information on why failing the setup stage makes an installation as unhealthy." +--- + +## The issue + +This happens when any of the setup tasks fails to complete, this can be due to the host not being completely ready when the Supervisor starts or that [DBUS] is not properly working. + +## The solution + +If the issue is related to DBUS, you will see an unsupported message about that as well; You can have a look [here][DBUS] on how to resolve that. + +If DBUS is not the problem, the first thing you should try is to restart the Supervisor. +This can be done from the "System" tab in the Supervisor panel. On the card for "Supervisor", there is a button to restart the Supervisor. + +This can also be done with the CLI, by running the following command: + +```bash +ha supervisor restart +``` + +If this does not help, you can try to reboot the host. +If you are running Home Assistant Operating System, this can be done from the "System" tab in the Supervisor panel. On the card for "Host System", there is a button to reboot the host. + +To help us make the setup more robust, please enable the sharing of diagnostics and crash logs on the "System" tab in the Supervisor panel. + +[DBUS]: /more-info/unsupported/dbus diff --git a/source/more-info/unhealthy/supervisor.markdown b/source/more-info/unhealthy/supervisor.markdown new file mode 100644 index 00000000000..167b8946839 --- /dev/null +++ b/source/more-info/unhealthy/supervisor.markdown @@ -0,0 +1,17 @@ +--- +title: "Supervisor was not able to update" +description: "More information on why a failed Supervisor update marks a system as unhealthy." +--- + +## The issue + +This can happen when there was a network issue during the startup of the Supervisor. + +## The solution + +Manually update the Supervisor. This can be done from the "System" tab in the Supervisor panel. On the card for "Supervisor", there is a button to update the Supervisor. + +This can also be done with the CLI, by running the following command: +```bash +ha supervisor update +``` diff --git a/source/more-info/unsupported/job_conditions.markdown b/source/more-info/unsupported/job_conditions.markdown new file mode 100644 index 00000000000..f916f0e3658 --- /dev/null +++ b/source/more-info/unsupported/job_conditions.markdown @@ -0,0 +1,24 @@ +--- +title: "Ignored job conditions" +description: "More information on why ignoring job conditions marks the installation as unsupported." +--- + +## The issue + +You have turned on the setting to ignore job conditions. Home Assistant has a built-in protection mechanism that detects if the system is working as expected. Ignoring job conditions disables this protection. + +If the system is not working as expected, certain tasks can result in breaking the system. + +## The solution + +To solve this you need to re-enable the protection mechanism by removing all the ignored conditions by using the CLI: + +```bash +ha jobs reset +``` + +When you have removed all of them, restart the Supervisor. + +```bash +ha supervisor restart +``` diff --git a/source/more-info/unsupported/network_manager.markdown b/source/more-info/unsupported/network_manager.markdown index 21fc69b51d6..711739b2d88 100644 --- a/source/more-info/unsupported/network_manager.markdown +++ b/source/more-info/unsupported/network_manager.markdown @@ -41,6 +41,13 @@ backend=journal `/etc/NetworkManager/system-connections/default`: ```txt +[connection] +id=Supervisor default +uuid=b653440a-544a-4e4f-aef5-6c443171c4f8 +type=802-3-ethernet +llmnr=2 +mdns=2 + [ipv4] method=auto