#{render_config_vars(
vars: vars,
component: component,
diff --git a/sass/custom/_paulus.scss b/sass/custom/_paulus.scss
index 0a0c56c9762..e0d8677522e 100644
--- a/sass/custom/_paulus.scss
+++ b/sass/custom/_paulus.scss
@@ -40,6 +40,16 @@ $primary-color: #049cdb;
}
}
}
+.feedback {
+ h4 {
+ margin: 0 0 8px !important;
+
+ a {
+ text-decoration: none !important;
+ color: #000;
+ }
+ }
+}
@media only screen and (max-width: $menu-collapse) {
.search-container {
@@ -542,6 +552,20 @@ twitter-widget,
div.config-vars {
padding-bottom: 16px;
+ h3 {
+ margin-bottom: 0;
+ }
+
+ .configuration-link {
+ font-size: 13px;
+
+ a {
+ color: #8792a2;
+ text-decoration: none;
+ border-bottom: #8792a2 dotted 0.5px;
+ }
+ }
+
.config-vars-item {
border-bottom: 1px solid #d9dbde;
padding-top: 16px;
diff --git a/source/_docs/automation/modes.markdown b/source/_docs/automation/modes.markdown
index 70b083f3f07..81f6321a5e9 100644
--- a/source/_docs/automation/modes.markdown
+++ b/source/_docs/automation/modes.markdown
@@ -11,7 +11,7 @@ Mode | Description
-|-
`single` | (Default) Do not start a new run. Issue a warning.
`restart` | Start a new run after first stopping previous run.
-`queued` | Start a new run after all previous runs complete. Runs are guaranteed to execute in the order they were queued.
+`queued` | Start a new run after all previous runs complete. Runs are guaranteed to execute in the order they were queued. Note that subsequent queued automations will only join the queue if any conditions it may have are met at the time it is triggered.
`parallel` | Start a new, independent run in parallel with previous runs.
diff --git a/source/_docs/configuration.markdown b/source/_docs/configuration.markdown
index 67afdee479b..5b61f9289a5 100644
--- a/source/_docs/configuration.markdown
+++ b/source/_docs/configuration.markdown
@@ -1,56 +1,36 @@
---
-title: "Configuring Home Assistant"
-description: "Configuring Home Assistant."
+title: "Configuration.yaml"
+description: "Configuring Home Assistant via text files."
---
-When launched for the first time, Home Assistant will create a default configuration file enabling the web interface and device discovery. It can take up to a minute after startup for your devices to be discovered and appear in the user interface.
+While you can configure most of Home Assistant directly from the user interface under {% my configuration %}, some parts need you to edit `configuration.yaml`. This file contains integrations to be loaded along with their configurations. Throughout the documentation you will find snippets that you can add to your configuration file to enable specific functionality.
-The web interface can be found at `http://ip.ad.dre.ss:8123/` - for example if your Home Assistant system has the IP address `192.168.0.40` then you'll find the web interface as `http://192.168.0.40:8123/`.
-
-The location of the folder differs for different operating systems:
-
-| OS | Path |
-| -------------- | -------------------------- |
-| Home Assistant | `/config` |
-| Docker | `/config` |
-| macOS | `~/.homeassistant` |
-| Linux | `~/.homeassistant` |
-
-If you want to use a different folder for configuration, use the configuration command line parameter: `hass --config path/to/config`.
-
-Inside your configuration folder is the file `configuration.yaml`. This is the main file that contains integrations to be loaded along with their configurations. Throughout the documentation you will find snippets that you can add to your configuration file to enable specific functionality.
-
-If you run into trouble while configuring Home Assistant, refer the [configuration troubleshooting page](/getting-started/troubleshooting-configuration/) and at the [`configuration.yaml` examples](/examples/#example-configurationyaml).
-
-
-
- Test any changes to your configuration files from the command line with `hass --script check_config`. This script allows you to test changes without the need to restart Home Assistant. Remember to run this script as the user you logged in to Home Assistant as. Configuration changes can also be tested using the UI by navigating to Configuration, Server Controls and clicking "Check Configuration".
-
-
+If you run into trouble while configuring Home Assistant, refer to the [configuration troubleshooting page](/getting-started/configuration/troubleshooting/) and the [`configuration.yaml` examples](/examples/#example-configurationyaml).
## Editing `configuration.yaml`
-There are many ways you can edit `configuration.yaml`. Here are three options to get you started:
+The easiest option to edit `configuration.yaml` is to use the {% my supervisor_addon title="Visual Studio Code add-on" addon="a0d7b954_vscode" %}. VS Code offers live syntax checking and auto-fill of various Home Assistant entities (if unavailable on your system, use {% my supervisor_addon title="File Editor add-on" addon="core_configurator" %} instead).
-The simplest way is to use the "File Editor" add-on. This will allow you to edit your configuration from within Home Assistant itself.
+If you prefer to use a file editor on your computer, use the {% my supervisor_addon title="Samba add-on" addon="core_samba" %} to access the files as a network share.
-The most robust option is to load the Visual Studio Code add-on. VS Code offers live syntax checking and auto-fill of various Home Assistant entities.
+_If you use Home Assistant Container, you can find `configuration.yaml` in the config folder that you mounted in your container._
-You can use Samba file share (you need to install the "Samba" add-on) and your favorite file editor.
-
-The most basic is to use SSH to connect to the system (you may need to install the SSH add-on) and then use `nano` (or `vim`) to edit the file.
+_If you use Home Assistant Core, you can find `configuration.yaml` in the config folder passed to the `hass` command (default is `~/.homeasssistant`)._
## Reloading changes
-You will have to restart Home Assistant for most changes to `configuration.yaml` to take effect.
-You can load changes to the following components without restarting, by using the UI. Navigate to Configuration, Server Controls and scrolling down to the YAML configuration reloading: [automations](/docs/automation/), [core (customize)](/docs/configuration/customizing-devices/), [groups](/integrations/group/), [history stats](/integrations/history_stats/), [HomeKit](/integrations/homekit/), [input_booleans](/integrations/input_boolean/), [input_datetimes](/integrations/input_datetime/), [input_numbers](/integrations/input_number/), [input_selects](/integrations/input_select/), [input_texts](/integrations/input_text/), [MQTT](/integrations/mqtt/), [persons](/integrations/person/), [scenes](/integrations/scene/), [scripts](/integrations/script/), [statistics](/integrations/statistics/), [template sensors](/integrations/template/), [timers](/integrations/timer/), [zones](/integrations/zone/), and more without restarting.
+Most integrations in Home Assistant that do not interact with devices or services can reload changes made to their configuration in `configuration.yaml`. To do this, go to {% my server_controls title="Configuration -> Server Control" %} and scroll down to the YAML configuration reloading section (alternative, hit "c" in the UI and search for it).
+
+If you can't see your integration listed there, you will need to restart Home Assistant for changes to take effect.
-If you have made any changes, remember to [check your configuration](/docs/configuration/troubleshooting/#problems-with-the-configuration) before trying to reload or restart.
+ Test any changes to your configuration files from the command line check out the common tasks for [operating system](/common-tasks/os/#configuration-check), [supervised](/common-tasks/supervised/#configuration-check), [container](/common-tasks/container/#configuration-check), [core](/common-tasks/core/#configuration-check) for how to do that. Configuration changes can also be tested using the UI by navigating to {% my server_controls title="Configuration -> Server Control" %} and clicking "Check Configuration".
## Migrating to a new system
-If you want to migrate your configuration to a new system then you can copy the contents of your configuration folder from the current system to the new system. Be aware that some of the files you need start with `.`, which is hidden by default from both `ls` (in SSH), in Windows Explorer, and macOS Finder. You'll need to ensure that you're viewing all files before you copy them.
+The preferred way of migrating to a new system is by {% my supervisor_snapshots title="making a backup" %}.
+
+If you run the container or core installation methods, you will need to manually make a backup of your configuration folder. Be aware that some of the files you need start with `.`, which is hidden by default from both `ls` (in SSH), in Windows Explorer, and macOS Finder. You'll need to ensure that you're viewing all files before you copy them.
diff --git a/source/_includes/asides/docs_navigation.html b/source/_includes/asides/docs_navigation.html
index 91094ac2281..83315bea506 100644
--- a/source/_includes/asides/docs_navigation.html
+++ b/source/_includes/asides/docs_navigation.html
@@ -19,7 +19,7 @@
diff --git a/source/_includes/common-tasks/beta_version.md b/source/_includes/common-tasks/beta_version.md
index 25615bdd585..e7b84779491 100644
--- a/source/_includes/common-tasks/beta_version.md
+++ b/source/_includes/common-tasks/beta_version.md
@@ -38,14 +38,14 @@ If you would like to test next release before anyone else, you can install the b
{% endtabbed_block %}
-
-
{% elsif page.installation == "container" %}
```bash
-ha os update --version {{current_version}}
+docker pull {{ site.installation.container.base }}:beta
```
+**[You then need to recreate the container with the new image.](/installation/linux#install-home-assistant-container)**
+
{% elsif page.installation == "core" %}
1. Switch to the user that is running Home Assistant
diff --git a/source/_includes/common-tasks/development_version.md b/source/_includes/common-tasks/development_version.md
index 346fafccb93..96cde097ae7 100644
--- a/source/_includes/common-tasks/development_version.md
+++ b/source/_includes/common-tasks/development_version.md
@@ -31,9 +31,11 @@ If you want to stay on the bleeding-edge Home Assistant Core development branch,
{% elsif page.installation == "container" %}
```bash
-ha os update --version {{current_version}}
+docker pull {{ site.installation.container.base }}:dev
```
+**[You then need to recreate the container with the new image.](/installation/linux#install-home-assistant-container)**
+
{% elsif page.installation == "core" %}
1. Switch to the user that is running Home Assistant
diff --git a/source/_includes/common-tasks/flashing_n2_otg.md b/source/_includes/common-tasks/flashing_n2_otg.md
index 9cb6b66184b..380f7de6d14 100644
--- a/source/_includes/common-tasks/flashing_n2_otg.md
+++ b/source/_includes/common-tasks/flashing_n2_otg.md
@@ -45,7 +45,7 @@ ums /dev/mmcblk0
#### Flashing Home Assistant
-Connect the ODROID-N2+ to your PC via the micro-USB port at the front of the ODROID-N2+. When the ODROID-N2 is recognized as a USB connected storage device, you can flash the eMMC with [Etcher](https://www.balena.io/etcher/) using the latest stable version of Home Assistant OS for the [ODROID-N2+](https://github.com/home-assistant/operating-system/releases/latest) (hassos_odroid-n2-XXXX.img.gz).
+Connect the ODROID-N2+ to your PC via the micro-USB port at the front of the ODROID-N2+. When the ODROID-N2 is recognized as a USB connected storage device, you can flash the eMMC with [Etcher](https://www.balena.io/etcher/) using the latest stable version of Home Assistant OS for the [ODROID-N2+](https://github.com/home-assistant/operating-system/releases/download/{{site.data.version_data.hassos['odroid-n2']}}/haos_odroid-n2-{{site.data.version_data.hassos['odroid-n2']}}.img.xz) (haos_odroid-n2-{{site.data.version_data.hassos['odroid-n2']}}.img.xz).
When the flash process is complete, disconnect the ODROID-N2+ from your PC and remove the power cable. Remove the USB and HDMI cable, and make sure to toggle the boot mode switch back to MMC.
diff --git a/source/_includes/common-tasks/specific_version.md b/source/_includes/common-tasks/specific_version.md
index 6d11461ad50..3382f9c30fa 100644
--- a/source/_includes/common-tasks/specific_version.md
+++ b/source/_includes/common-tasks/specific_version.md
@@ -13,9 +13,11 @@ ha core update --version {{current_version}}
{% elsif page.installation == "container" %}
```bash
-ha os update --version {{current_version}}
+docker pull {{ site.installation.container.base }}:{{current_version}}
```
+**[You then need to recreate the container with the new image.](/installation/linux#install-home-assistant-container)**
+
{% elsif page.installation == "core" %}
1. Switch to the user that is running Home Assistant
diff --git a/source/_includes/common-tasks/update.md b/source/_includes/common-tasks/update.md
index 11b967ea447..9eab6f83ea9 100644
--- a/source/_includes/common-tasks/update.md
+++ b/source/_includes/common-tasks/update.md
@@ -44,16 +44,16 @@ To update Home Assistant Core when you run Home Assistant {{ page.installation_n
**First start with pulling the new container.**
```bash
- docker pull homeassistant/home-assistant:stable
+ docker pull {{ site.installation.container.base }}:stable
```
- You can also use spesific containers for your hardware. Like Raspberry pi 4:
+ You can also use specific containers for your hardware. Like Raspberry Pi 4:
```bash
- docker pull homeassistant/raspberrypi4-homeassistant:stable
+ docker pull {{ site.installation.container.raspberrypi4 }}:stable
```
- **[You then need to recreate the container with the new image.](/getting-started/installation)**
+ **[You then need to recreate the container with the new image.](/installation/linux#install-home-assistant-container)**
- title: Docker Compose
content: |
diff --git a/source/_includes/custom/features.html b/source/_includes/custom/features.html
index 5887bd05f98..dccb38865b0 100644
--- a/source/_includes/custom/features.html
+++ b/source/_includes/custom/features.html
@@ -60,7 +60,7 @@
All your smart home data stays local
-
Home Assistant keeps your data local, not need for a cloud.
+
Home Assistant keeps your data local, no need for a cloud.
Home Assistant communicates with your devices locally, and will fallback
diff --git a/source/_includes/feedback.html b/source/_includes/feedback.html
index 9381cbab459..4524e9aa43f 100644
--- a/source/_includes/feedback.html
+++ b/source/_includes/feedback.html
@@ -1,6 +1,6 @@
{% unless page.feedback == false %}
-
+
+### Configure the BIOS
+
+To boot Home Assistant OS the BIOS needs to have UEFI boot mode enabled and Secure Boot disabled. The following screenshots are from a 7th generation Intel NUC system. The BIOS menu will likely look different on your systems. However, the options should still be present and named similarly.
+
+1. Enter the BIOS using the can enter using the `F2` key (on some systems this might be `Del`, `F1` or `F10`).
+
+
+1. Make sure the UEFI Boot mode is enabled
+
+
+1. Disable Secure Boot
+
+
+As a next step, we need to write the Operating System image to the installation media. Depending on your system this can be a S-ATA hard disk, S-ATA SSD, a M.2 SSD or even a eMMC. Home Assistant Operating System has no integrated installer. You need to use your Desktop computer (e.g. by using a USB to S-ATA adapter) or boot a live operating system on your target system to install Home Assistant Operating System.
+
+If you prefer to use a live operating system, follow the instructions of your Live distribution (e.g., [this Ubuntu guide](https://ubuntu.com/tutorials/try-ubuntu-before-you-install)). Once you booted the live operating system, the following steps on how-to write the image to your installation media can be followed.
+
+{% endif %}
+
### Write the image to your installation media
1. Attach the installation media ({{site.installation.types[page.installation_type].installation_media}}) to your computer
@@ -64,7 +91,7 @@ We will need a few things to get started with installing Home Assistant. Links b
content: |
```text
- {{release_url}}/{{site.data.version_data.hassos[variant.key]}}/hassos_{{ variant.key }}-{{site.data.version_data.hassos[variant.key]}}.img.xz
+ {{release_url}}/{{site.data.version_data.hassos[variant.key]}}/haos_{{ variant.key }}-{{site.data.version_data.hassos[variant.key]}}.img.xz
```
{% if variant.key == "odroid-n2" %}
@@ -79,7 +106,7 @@ We will need a few things to get started with installing Home Assistant. Links b
```text
{% assign board_key = site.installation.types[page.installation_type].variants[0].key %}
-{{release_url}}/{{site.data.version_data.hassos[board_key]}}/hassos_{{ board_key }}-{{site.data.version_data.hassos[board_key]}}.img.xz
+{{release_url}}/{{site.data.version_data.hassos[board_key]}}/haos_{{ board_key }}-{{site.data.version_data.hassos[board_key]}}.img.xz
```
{% endif %}
@@ -99,23 +126,21 @@ _Select and copy the URL or use the "copy" button that appear when you hover it.
### Start up your {{site.installation.types[page.installation_type].board}}
+{% if page.installation_type == 'generic-x86-64' %}
+1. If you used your Desktop system to write to your installation media, install the installation media ({{site.installation.types[page.installation_type].installation_media}}) to the target system. Otherwise, shutdown the live operating system and make sure to remove the USB flash drive you have been using for the live system.
+2. Make sure an ethernet cable for network is plugged in
+3. Power the system on.
+{% else %}
1. Insert the installation media ({{site.installation.types[page.installation_type].installation_media}}) you just created
2. Attach a ethernet cable for network.
3. Attach a cable for power
+{% endif %}
4. Within a few minutes you will be able to reach Home Assistant on homeassistant.local:8123. If you are running an older Windows version or have a stricter network configuration, you might need to access Home Assistant at homeassistant:8123 or `http://X.X.X.X:8123` (replace X.X.X.X with your {{site.installation.types[page.installation_type].board}}’s IP address).
-
{% else %}
-{% if page.installation_type != 'nuc' %}
-Follow this guide if you already are running a hypervisor, if not look at the [Raspberry Pi](/installation/raspberrypi) or the [ODROID](/installation/odroid)
-{% endif %}
-
### Download the appropriate image
-{% if page.installation_type == 'nuc' %}
-- [Intel NUC][intel-nuc]
-{% else %}
- [VirtualBox][vdi] (.vdi)
{% if page.installation_type == 'macos' %}
- [KVM][qcow2] (.qcow2)
@@ -130,17 +155,12 @@ Follow this guide if you already are running a hypervisor, if not look at the [R
{% if page.installation_type == 'windows' %}
- [Hyper-V][vhdx] (.vhdx)
{% endif %}
-{% endif %}
-{% if page.installation_type == "nuc" %}
-1. Install the operating system from the link above on the drive you have on the NUC.
-2. Start the NUC with the drive you installed the operating system to as the boot device.
-3. Once the initial setup has completed you will be able to reach Home Assistant on homeassistant.local:8123. If you are running an older Windows version or have a stricter network configuration, you might need to access Home Assistant at homeassistant:8123 or `http://X.X.X.X:8123` (replace X.X.X.X with your {{site.installation.types[page.installation_type].board}}’s IP address).
-{% else %}
+Follow this guide if you already are running a supported virtual machine hypervisor. If you are not familiar with virtual machines we recommend installation Home Assistant OS directly on a [Raspberry Pi](/installation/raspberrypi) or an [ODROID](/installation/odroid).
### Create the Virtual Machine
-Load the appliance image into your virtual machine software. (Note: You are free to assign as much resources as you wish to the VM, please assign enough based on your add-on needs)
+Load the appliance image into your virtual machine hypervisor. (Note: You are free to assign as much resources as you wish to the VM, please assign enough based on your add-on needs)
Minimum recommended assignments:
@@ -214,16 +234,14 @@ _All these can be extended if your usage calls for more resources._
{% endif %}
-{% endif %}
-
With the Home Assistant Operating System installed and accessible you can continue with onboarding.
{% include getting-started/next_step.html step="Onboarding" link="/getting-started/onboarding/" %}
-[intel-nuc]: {{release_url}}/{{site.data.version_data.hassos['ova']}}/hassos_intel-nuc-{{site.data.version_data.hassos['ova']}}.img.xz
-[vmdk]: {{release_url}}/{{site.data.version_data.hassos['ova']}}/hassos_ova-{{site.data.version_data.hassos['ova']}}.vmdk.xz
-[vhdx]: {{release_url}}/{{site.data.version_data.hassos['ova']}}/hassos_ova-{{site.data.version_data.hassos['ova']}}.vhdx.xz
-[vdi]: {{release_url}}/{{site.data.version_data.hassos['ova']}}/hassos_ova-{{site.data.version_data.hassos['ova']}}.vdi.xz
-[qcow2]: {{release_url}}/{{site.data.version_data.hassos['ova']}}/hassos_ova-{{site.data.version_data.hassos['ova']}}.qcow2.xz
-[Virtual Appliance]: {{release_url}}/{{site.data.version_data.hassos['ova']}}/hassos_ova-{{site.data.version_data.hassos['ova']}}.ova
+[generic-x86-64]: {{release_url}}/{{site.data.version_data.hassos['ova']}}/haos_generic-x86-64-{{site.data.version_data.hassos['generic-x86-64']}}.img.xz
+[vmdk]: {{release_url}}/{{site.data.version_data.hassos['ova']}}/haos_ova-{{site.data.version_data.hassos['ova']}}.vmdk.zip
+[vhdx]: {{release_url}}/{{site.data.version_data.hassos['ova']}}/haos_ova-{{site.data.version_data.hassos['ova']}}.vhdx.zip
+[vdi]: {{release_url}}/{{site.data.version_data.hassos['ova']}}/haos_ova-{{site.data.version_data.hassos['ova']}}.vdi.zip
+[qcow2]: {{release_url}}/{{site.data.version_data.hassos['ova']}}/haos_ova-{{site.data.version_data.hassos['ova']}}.qcow2.xz
+[Virtual Appliance]: {{release_url}}/{{site.data.version_data.hassos['ova']}}/haos_ova-{{site.data.version_data.hassos['ova']}}.ova
diff --git a/source/_integrations/actiontec.markdown b/source/_integrations/actiontec.markdown
index 53bf8fc6564..a7d1afc6707 100644
--- a/source/_integrations/actiontec.markdown
+++ b/source/_integrations/actiontec.markdown
@@ -37,7 +37,7 @@ host:
required: true
type: string
username:
- description: The username of an user with administrative privileges, usually `admin`.
+ description: The username of a user with administrative privileges, usually `admin`.
required: true
type: string
password:
diff --git a/source/_integrations/agent_dvr.markdown b/source/_integrations/agent_dvr.markdown
index 1147b801512..6b9acc5f522 100644
--- a/source/_integrations/agent_dvr.markdown
+++ b/source/_integrations/agent_dvr.markdown
@@ -15,7 +15,7 @@ ha_platforms:
- camera
---
-[Agent DVR](https://www.ispyconnect.com/download.aspx/) is a free* software DVR solution for windows 10, Mac and Linux. Agent DVR runs as a service or console application and can access and control a huge range of third party cameras with advanced motion detection, including YOLO integration for object recognition. The iSpyConnect website provides secured (SSL) remote access without port forwarding needed.
+[Agent DVR](https://www.ispyconnect.com/download.aspx/) is a free* software DVR solution for windows 10, Mac and Linux. Agent DVR runs as a service or console application and can access and control a huge range of third party cameras with advanced motion detection, including DeepStack integration for object recognition. The iSpyConnect website provides secured (SSL) remote access without port forwarding needed.
You can add Agent DVR via integrations using the IP address and port of the server, e.g.,: `http://192.168.1.3:8090/`.
diff --git a/source/_integrations/alarm_control_panel.mqtt.markdown b/source/_integrations/alarm_control_panel.mqtt.markdown
index 5a79a75c638..36b703d4643 100644
--- a/source/_integrations/alarm_control_panel.mqtt.markdown
+++ b/source/_integrations/alarm_control_panel.mqtt.markdown
@@ -89,7 +89,7 @@ command_topic:
required: true
type: string
device:
- description: "Information about the device this alarm panel is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set."
+ description: "Information about the device this alarm panel is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device."
required: false
type: map
keys:
diff --git a/source/_integrations/alarm_control_panel.template.markdown b/source/_integrations/alarm_control_panel.template.markdown
index a17f3f5bc18..7f82d294c55 100644
--- a/source/_integrations/alarm_control_panel.template.markdown
+++ b/source/_integrations/alarm_control_panel.template.markdown
@@ -108,6 +108,6 @@ panels:
## Considerations
-If you are using the state of a integration that takes extra time to load, the Template Alarm Control Panel may get an `unknown` state during startup. This results in error messages in your log file until that integration has completed loading. If you use `is_state()` function in your template, you can avoid this situation.
+If you are using the state of an integration that takes extra time to load, the Template Alarm Control Panel may get an `unknown` state during startup. This results in error messages in your log file until that integration has completed loading. If you use `is_state()` function in your template, you can avoid this situation.
For example, you would replace {% raw %}`{{ states.switch.source.state == 'on' }}`{% endraw %} with this equivalent that returns `true`/`false` and never gives an unknown result: {% raw %}`{{ is_state('switch.source', 'on') }}`{% endraw %}
diff --git a/source/_integrations/alexa.smart_home.markdown b/source/_integrations/alexa.smart_home.markdown
index caae76bb80f..11ebf323301 100644
--- a/source/_integrations/alexa.smart_home.markdown
+++ b/source/_integrations/alexa.smart_home.markdown
@@ -891,7 +891,7 @@ Supports changing the Media Player `source` from the preset `source_list`.
- _"Alexa, change the input to DVD on the Living Room TV."_
-Home Assistant will attempt to translate the the `media_player` `source_list` into a valid `source` name for Alexa. Alexa only supports the following input names:
+Home Assistant will attempt to translate the `media_player` `source_list` into a valid `source` name for Alexa. Alexa only supports the following input names:
`AUX 1`, `AUX 2`, `AUX 3`, `AUX 4`, `AUX 5`, `AUX 6`, `AUX 7`, `BLURAY`, `CABLE`, `CD`, `COAX 1`, `COAX 2`, `COMPOSITE 1`, `DVD`, `GAME`, `HD RADIO`, `HDMI 1`, `HDMI 2`, `HDMI 3`, `HDMI 4`, `HDMI 5`, `HDMI 6`, `HDMI 7`, `HDMI 8`, `HDMI 9`, `HDMI 10`, `HDMI ARC`, `INPUT 1`, `INPUT 2`, `INPUT 3`, `INPUT 4`, `INPUT 5`, `INPUT 6`, `INPUT 7`, `INPUT 8`, `INPUT 9`, `INPUT 10`, `IPOD`, `LINE 1`, `LINE 2`, `LINE 3`, `LINE 4`, `LINE 5`, `LINE 6`, `LINE 7`, `MEDIA PLAYER`, `OPTICAL 1`, `OPTICAL 2`, `PHONO`, `PLAYSTATION`, `PLAYSTATION 3`, `PLAYSTATION 4`, `SATELLITE`, `SMARTCAST`, `TUNER`, `TV`, `USB DAC`, `VIDEO 1`, `VIDEO 2`, `VIDEO 3`, `XBOX`
diff --git a/source/_integrations/arduino.markdown b/source/_integrations/arduino.markdown
index 9efcd310551..64a41bf8688 100644
--- a/source/_integrations/arduino.markdown
+++ b/source/_integrations/arduino.markdown
@@ -126,7 +126,7 @@ switch:
{% configuration %}
pins:
- description: List of of pins to use.
+ description: List of pins to use.
required: true
type: map
keys:
diff --git a/source/_integrations/aruba.markdown b/source/_integrations/aruba.markdown
index 2264bbc4b41..f0f5e85eaae 100644
--- a/source/_integrations/aruba.markdown
+++ b/source/_integrations/aruba.markdown
@@ -37,7 +37,7 @@ host:
required: true
type: string
username:
- description: The username of an user with administrative privileges, usually `admin`.
+ description: The username of a user with administrative privileges, usually `admin`.
required: true
type: string
password:
diff --git a/source/_integrations/azure_event_hub.markdown b/source/_integrations/azure_event_hub.markdown
index b4a2e5efa5b..03c3e9e4e33 100644
--- a/source/_integrations/azure_event_hub.markdown
+++ b/source/_integrations/azure_event_hub.markdown
@@ -24,7 +24,7 @@ Once you have the name of your namespace, instance, Shared Access Policy and the
The alternative approach is to use a connection string and instance name, this can be retrieved in the same way as the Shared Access Policy and this can also be gotten for a device in an IoT Hub (Event Hub-compatible connection string). In the case of IoT Hub, you need to put the Device ID as the instance name.
-The final thing to consider is how often you want the integration to send messages in a batch to your hub, this is set with the `send_interval`, with a default of 5 seconds. The other thing to look at is what the maximum delay you want to use, since this component runs in a asynchronous way there is no guarantee that the sending happens exactly on time, so depending on your semantics you might want messages discarded. The actual check of the time happens with `max_delay` plus `send_interval`, so that even with a long `send_interval` the semantics are the same.
+The final thing to consider is how often you want the integration to send messages in a batch to your hub, this is set with the `send_interval`, with a default of 5 seconds. The other thing to look at is what the maximum delay you want to use, since this component runs in an asynchronous way there is no guarantee that the sending happens exactly on time, so depending on your semantics you might want messages discarded. The actual check of the time happens with `max_delay` plus `send_interval`, so that even with a long `send_interval` the semantics are the same.
## Configuration
diff --git a/source/_integrations/binary_sensor.mqtt.markdown b/source/_integrations/binary_sensor.mqtt.markdown
index edd2575a06e..458bbf01056 100644
--- a/source/_integrations/binary_sensor.mqtt.markdown
+++ b/source/_integrations/binary_sensor.mqtt.markdown
@@ -60,7 +60,7 @@ availability_topic:
required: false
type: string
device:
- description: "Information about the device this binary sensor is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set."
+ description: "Information about the device this binary sensor is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device."
required: false
type: map
keys:
diff --git a/source/_integrations/buienradar.markdown b/source/_integrations/buienradar.markdown
index 71f2e00564f..a69e68fe282 100644
--- a/source/_integrations/buienradar.markdown
+++ b/source/_integrations/buienradar.markdown
@@ -62,7 +62,7 @@ The following entities will be created:
- **Wind azimuth**: Where the wind is coming from in degrees, with true north at 0° and progressing clockwise.
- **Pressure**: "The sea-level air pressure in [hPa](https://en.wikipedia.org/wiki/Hectopascal)."
- **Visibility**: "Visibility in meters ([m](https://en.wikipedia.org/wiki/Metre))."
-- **Wind gust**: "The wind speed of wind gusts ([m/s](https://en.wikipedia.org/wiki/M/s))."
+- **Wind gust**: "The wind speed of wind gusts ([km/h](https://en.wikipedia.org/wiki/Kilometres_per_hour))."
- **Precipation**: The amount of precipitation/rain in mm/h.
- **Precipation forecast average**: The average expected precipitation/rain in mm/h within the given time-frame.
- **Precipation forecast total**: The total expected precipitation/rain in mm within the given time-frame. The total expected rain in the configured time-frame will be equal to _precipitation_forecast_total_/_timeframe_ mm/min. So, with time-frame configured to 30 minutes and a value of 5, the expected rain is 5 mm in 30 minutes, which is the same as 10 mm/h. If time-frame is set to 90 minutes and a value of 5, the expected rain is 5 mm in 90 minutes, which is equal to 3.3 mm/h.
diff --git a/source/_integrations/calendar.google.markdown b/source/_integrations/calendar.google.markdown
index 5263bc9e906..9e3a9eb2884 100644
--- a/source/_integrations/calendar.google.markdown
+++ b/source/_integrations/calendar.google.markdown
@@ -31,7 +31,7 @@ Generate a Client ID and Client Secret on
1. You then need to select a `Support email`. To do this, simply click the drop down box and select your email address.
1. You finally need to complete the section: `Developer contact information`. To do this, simply enter your email address (same as above is fine).
1. Scroll to the bottom and click `save`. (You don't have to fill out anything else)
-1. You will then be automatically taken to the OAuth consent screen, you do not need to add any scopes here so click `SAVE AND CONTINUE` to move to the `Test users` page. You will need to add the Gmail address you will be using with this integration as a test user before you will be allowed to use the API. Once you have added your email address under `Test users` click `SAVE AND CONTINUE` which will take to to the 'Summary' page (you do not need to do anything here).
+1. You will then be automatically taken to the OAuth consent screen, you do not need to add any scopes here so click `SAVE AND CONTINUE` to move to the `Test users` page. You will need to add the Gmail address you will be using with this integration as a test user before you will be allowed to use the API. Once you have added your email address under `Test users` click `SAVE AND CONTINUE` which will take to the 'Summary' page (you do not need to do anything here).
1. Click Credentials in the menu on the left hand side of the screen, then click `+ Create credentials` (at the top of the screen), then select `OAuth client ID`.
1. Set the Application type to `TV and Limited Input` and give this credential set a name (like "Home Assistant Credentials") then click 'Create'.
1. You will then be presented with a pop-up saying 'OAuth client created' showing `Your Client ID` and `Your Client Secret`. Make a note of these (for example, copy and paste them into a text editor) as you will need to put these in your `configuration.yaml` file shortly. Once you have noted these strings, click `OK`. If you need to find these credentials again at any point then simply nagivate to `APIs & Services` > `Credentials` and you will see `Home Assistant Credentials` (or whatever you named them in the previous step) under `OAuth 2.0 Clident IDs`. To view both the `Client ID` and `Client secret`, click on the pencil icon, this will take you to the settings page for these credentials and the information will be on the right hand side of the page.
diff --git a/source/_integrations/camera.mqtt.markdown b/source/_integrations/camera.mqtt.markdown
index e4fc88be5f7..7654562a68e 100644
--- a/source/_integrations/camera.mqtt.markdown
+++ b/source/_integrations/camera.mqtt.markdown
@@ -53,7 +53,7 @@ availability_topic:
required: false
type: string
device:
- description: "Information about the device this camera is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set."
+ description: "Information about the device this camera is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device."
required: false
type: map
keys:
diff --git a/source/_integrations/cisco_ios.markdown b/source/_integrations/cisco_ios.markdown
index 8a2ee6a43a4..8e82d99aa0a 100644
--- a/source/_integrations/cisco_ios.markdown
+++ b/source/_integrations/cisco_ios.markdown
@@ -65,7 +65,7 @@ host:
required: true
type: string
username:
- description: The username of an user with administrative privileges.
+ description: The username of a user with administrative privileges.
required: true
type: string
password:
diff --git a/source/_integrations/climate.mqtt.markdown b/source/_integrations/climate.mqtt.markdown
index 2c4d803957c..228a061b090 100644
--- a/source/_integrations/climate.mqtt.markdown
+++ b/source/_integrations/climate.mqtt.markdown
@@ -92,7 +92,7 @@ current_temperature_topic:
required: false
type: string
device:
- description: 'Information about the device this HVAC device is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.'
+ description: 'Information about the device this HVAC device is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device.'
required: false
type: map
keys:
diff --git a/source/_integrations/cover.mqtt.markdown b/source/_integrations/cover.mqtt.markdown
index a735951c0d9..102e6d8747f 100644
--- a/source/_integrations/cover.mqtt.markdown
+++ b/source/_integrations/cover.mqtt.markdown
@@ -70,7 +70,7 @@ command_topic:
required: false
type: string
device:
- description: "Information about the device this cover is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set."
+ description: "Information about the device this cover is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device."
required: false
type: map
keys:
diff --git a/source/_integrations/cover.template.markdown b/source/_integrations/cover.template.markdown
index 0de715b5881..aac75d22112 100644
--- a/source/_integrations/cover.template.markdown
+++ b/source/_integrations/cover.template.markdown
@@ -334,7 +334,7 @@ cover:
data:
modus: "stop"
value_template: "{{is_state('sensor.cover_group', 'open')}}"
- icon_template: >-
+ entity_picture_template: >-
{% if is_state('sensor.cover_group', 'open') %}
/local/cover-open.png
{% else %}
diff --git a/source/_integrations/darksky.markdown b/source/_integrations/darksky.markdown
index cc051c6f5ef..f13e6125f4d 100644
--- a/source/_integrations/darksky.markdown
+++ b/source/_integrations/darksky.markdown
@@ -19,7 +19,7 @@ The `darksky` platform uses the [Dark Sky](https://darksky.net/) web service as
-On March 31, 2020 Dark Sky was [acquired by Apple](https://blog.darksky.net/dark-sky-has-a-new-home/) and is no longer allowing new API registrations. The Dark Sky API will continue to function for existing users through the end of 2021, but it is no longer possible to obtain an API key for new users. Home Assistant supports many alternative [weather integrations](/integrations/#weather).
+On March 31, 2020 Dark Sky was [acquired by Apple](https://blog.darksky.net/dark-sky-has-a-new-home/) and is no longer allowing new API registrations. The Dark Sky API will continue to function for existing users through the [end of 2022](https://blog.darksky.net/), but it is no longer possible to obtain an API key for new users. Home Assistant supports many alternative [weather integrations](/integrations/#weather).
diff --git a/source/_integrations/ddwrt.markdown b/source/_integrations/ddwrt.markdown
index 44cac97c061..4729c5e1e77 100644
--- a/source/_integrations/ddwrt.markdown
+++ b/source/_integrations/ddwrt.markdown
@@ -29,7 +29,7 @@ host:
required: true
type: string
username:
- description: The username of an user with administrative privileges, usually `admin`.
+ description: The username of a user with administrative privileges, usually `admin`.
required: true
type: string
password:
diff --git a/source/_integrations/denonavr.markdown b/source/_integrations/denonavr.markdown
index c80412d1a4c..75672de7930 100644
--- a/source/_integrations/denonavr.markdown
+++ b/source/_integrations/denonavr.markdown
@@ -54,6 +54,7 @@ Known supported devices:
- Denon AVR-S710W
- Denon AVR-S720W
- Denon AVR-S750H
+- Denon AVR-S960H
- Denon DN-500AV
- Marantz M-CR510
- Marantz M-CR511
diff --git a/source/_integrations/device_tracker.mqtt.markdown b/source/_integrations/device_tracker.mqtt.markdown
index 77aeb5a2257..b8130a2abf0 100644
--- a/source/_integrations/device_tracker.mqtt.markdown
+++ b/source/_integrations/device_tracker.mqtt.markdown
@@ -109,7 +109,7 @@ availability_topic:
required: false
type: string
device:
- description: "Information about the device this device tracker is a part of that ties it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html)."
+ description: "Information about the device this device tracker is a part of that ties it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). At least one of identifiers or connections must be present to identify the device."
required: false
type: map
keys:
diff --git a/source/_integrations/device_trigger.mqtt.markdown b/source/_integrations/device_trigger.mqtt.markdown
index 53392f779dc..20b638be245 100644
--- a/source/_integrations/device_trigger.mqtt.markdown
+++ b/source/_integrations/device_trigger.mqtt.markdown
@@ -15,7 +15,7 @@ An MQTT device trigger is a better option than a [binary sensor](/integrations/b
## Configuration
MQTT device triggers are only supported through [MQTT discovery](/docs/mqtt/discovery/), manual setup through `configuration.yaml` is not supported.
-The discovery topic needs to be: `/device_automation/[/]/config`.
+The discovery topic needs to be: `/device_automation/[/]/config`. Note that only one trigger may be defined per unique discovery topic. Also note that the combination of `type` and `subtype` should be unique for a device.
{% configuration %}
automation_type:
@@ -44,7 +44,7 @@ subtype:
required: true
type: string
device:
- description: "Information about the device this device trigger is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html)."
+ description: "Information about the device this device trigger is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). At least one of identifiers or connections must be present to identify the device."
required: true
type: map
keys:
@@ -81,3 +81,26 @@ device:
required: false
type: string
{% endconfiguration %}
+
+### Example
+
+This shows a complete example of defining a remote control type device with two triggers: "left arrow click" and "right arrow click".
+
+Note that it is not necessary to provide the full device information in each message, but the identifying information, `identifier` in the example, must be the same.
+
+#### Left arrow click configuration:
+- Discovery topic: `homeassistant/device_automation/0x90fd9ffffedf1266/action_arrow_left_click/config`
+- Discovery payload:
+ ```json
+ {"automation_type":"trigger","type":"action","subtype":"arrow_left_click","payload":"arrow_left_click","topic":"zigbee2mqtt/0x90fd9ffffedf1266/action","device":{"identifiers":["zigbee2mqtt_0x90fd9ffffedf1266"],"name":"0x90fd9ffffedf1266","sw_version":"Zigbee2mqtt 1.14.0","model":"TRADFRI remote control (E1524/E1810)","manufacturer":"IKEA"}}
+ ```
+- Trigger topic: `zigbee2mqtt/0x90fd9ffffedf1266/action`
+- Trigger payload: `arrow_left_click`
+#### Right arrow click configuration:
+- Discovery topic: `homeassistant/device_automation/0x90fd9ffffedf1266/action_arrow_right_click/config`
+- Discovery payload:
+ ```json
+ {"automation_type":"trigger","type":"action","subtype":"arrow_right_click","payload":"arrow_right_click","topic":"zigbee2mqtt/0x90fd9ffffedf1266/action","device":{"identifiers":["zigbee2mqtt_0x90fd9ffffedf1266"]}}
+ ```
+- Trigger topic: `zigbee2mqtt/0x90fd9ffffedf1266/action`
+- Trigger payload: `arrow_right_click`
diff --git a/source/_integrations/dsmr.markdown b/source/_integrations/dsmr.markdown
index 8d7a3847e2e..a0a20536114 100644
--- a/source/_integrations/dsmr.markdown
+++ b/source/_integrations/dsmr.markdown
@@ -67,7 +67,7 @@ or
Docker users have to allow Docker access to the device by adding `--device /dev/ttyUSB21:/dev/ttyUSB21` to the run command:
```hass
-$ docker run --device /dev/ttyUSB0:/dev/ttyUSB0 -d --name="home-assistant" -v /home/USERNAME/hass:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/home-assistant
+$ docker run --device /dev/ttyUSB0:/dev/ttyUSB0 -d --name="home-assistant" -v /home/USERNAME/hass:/config -v /etc/localtime:/etc/localtime:ro --net=host {{ site.installation.container.base }}
```
### Options
diff --git a/source/_integrations/enigma2.markdown b/source/_integrations/enigma2.markdown
index f0de147efe4..62363470b1c 100644
--- a/source/_integrations/enigma2.markdown
+++ b/source/_integrations/enigma2.markdown
@@ -17,7 +17,7 @@ The `enigma2` platform allows you to control a Linux based set-top box which is
[OpenWebif](https://github.com/E2OpenPlugins/e2openplugin-OpenWebif) is an open source web interface for Enigma2 based set-top boxes.
-Enigma2 devices should be discovered automatically by using the [the discovery component](/integrations/discovery/).
+Enigma2 devices should be discovered automatically by using [the discovery component](/integrations/discovery/).
To manually add a set-top box to your installation, add the following to your `configuration.yaml` file:
diff --git a/source/_integrations/fan.mqtt.markdown b/source/_integrations/fan.mqtt.markdown
index df7a66d1c13..7dfff3fc4ae 100644
--- a/source/_integrations/fan.mqtt.markdown
+++ b/source/_integrations/fan.mqtt.markdown
@@ -65,7 +65,7 @@ command_topic:
required: true
type: string
device:
- description: "Information about the device this fan is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set."
+ description: "Information about the device this fan is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device."
required: false
type: map
keys:
@@ -209,7 +209,7 @@ preset_mode_command_topic:
required: false
type: string
preset_mode_state_topic:
- description: The MQTT topic to publish commands to change the preset mode.
+ description: The MQTT topic subscribed to receive fan speed based on presets.
required: false
type: string
preset_mode_value_template:
diff --git a/source/_integrations/fireservicerota.markdown b/source/_integrations/fireservicerota.markdown
index 777759b72a0..d63bbeaf708 100644
--- a/source/_integrations/fireservicerota.markdown
+++ b/source/_integrations/fireservicerota.markdown
@@ -80,7 +80,7 @@ This entity reflects the duty you have scheduled, the value can be `on` = on dut
### Incident Response Switch
-With this switch you can respond to a incident, either by manually controlling the switch via the GUI, or by using an automation action.
+With this switch you can respond to an incident, either by manually controlling the switch via the GUI, or by using an automation action.
It gets reset to `unknown` value with every incident received. Switching it to `on` means you send a response acknowledgement, switching it back `off` sends a response rejected.
The following attributes are available:
diff --git a/source/_integrations/google_assistant.markdown b/source/_integrations/google_assistant.markdown
index b74aa752606..6582bc98558 100644
--- a/source/_integrations/google_assistant.markdown
+++ b/source/_integrations/google_assistant.markdown
@@ -97,7 +97,7 @@ If you want to support active reporting of state to Google's server (configurati
5. In the Service account ID field, enter an ID.
6. From the Role list, select `Service Accounts` > `Service Account Token Creator`.
7. Click `CONTINUE` and then `DONE`. You are returned to the service account list, and your new account is shown.
- 8. Click the the three dots menu under `Actions` next to your new account, and click `Manage keys`. You are taken to a `Keys` page.
+ 8. Click the three dots menu under `Actions` next to your new account, and click `Manage keys`. You are taken to a `Keys` page.
9. Click `ADD KEY` then `Create new key`. Leave the `key type` as `JSON` and click `CREATE`. A JSON file that contains your key downloads to your computer.
10. Use the information in this file or the file directly to add to the `service_account` key in the configuration.
11. Click `Close`.
diff --git a/source/_integrations/heos.markdown b/source/_integrations/heos.markdown
index 1cd30d14741..8ba06854109 100644
--- a/source/_integrations/heos.markdown
+++ b/source/_integrations/heos.markdown
@@ -123,7 +123,7 @@ media_content_id: "http://path.to/stream.mp3"
### Debugging
-The HEOS integration will log additional information about commands, events, and other messages when the log level is set to `debug`. Add the the relevant line below to the `configuration.yaml` to enable debug logging:
+The HEOS integration will log additional information about commands, events, and other messages when the log level is set to `debug`. Add the relevant line below to the `configuration.yaml` to enable debug logging:
```yaml
logger:
diff --git a/source/_integrations/homekit.markdown b/source/_integrations/homekit.markdown
index c3ddc142eb1..73792ffbd6b 100644
--- a/source/_integrations/homekit.markdown
+++ b/source/_integrations/homekit.markdown
@@ -447,14 +447,17 @@ automation:
HomeKit relies heavily on your home hub to keep track of Bluetooth devices. Additionally, each home hub has to keep track of every HomeKit accessory that you bridge. If you have many accessories, notably cameras or Bluetooth devices, **consider disabling HomeKit on older home hubs**.
-The following home hubs showed strong results when testing with 300 accessories:
+#### The below testing was conducted with Home Assistant 2021.6 (HAP-python 3.5.0) and iOS/tvOS 14.6
+
+The following home hubs showed strong results when testing with 400 accessories:
- HomePod
- HomePod Mini
+- Apple TV 4k Gen 2 (best results when using ethernet instead of WiFi)
-The following home hubs showed strong results when testing with 200 accessories:
+The following home hubs showed strong results when testing with 300 accessories:
-- Apple TV 4k (best results when using ethernet instead of WiFi)
+- Apple TV 4k Gen 1 (best results when using ethernet instead of WiFi)
The following home hubs have been reported to have trouble with a large number of accessories:
diff --git a/source/_integrations/homematic.markdown b/source/_integrations/homematic.markdown
index 4b484675dfc..1846d13772b 100644
--- a/source/_integrations/homematic.markdown
+++ b/source/_integrations/homematic.markdown
@@ -28,7 +28,7 @@ ha_platforms:
- switch
---
-The [Homematic](https://www.homematic.com/) integration provides bi-directional communication with your CCU/Homegear. It uses a XML-RPC connection to set values on devices and subscribes to receive events the devices and the CCU emit.
+The [Homematic](https://www.homematic.com/) integration provides bi-directional communication with your CCU/Homegear. It uses an XML-RPC connection to set values on devices and subscribes to receive events the devices and the CCU emit.
If you are using Homegear with paired [Intertechno](https://intertechno.at/) devices, uni-directional communication is possible as well.
There is currently support for the following device types within Home Assistant:
diff --git a/source/_integrations/http.markdown b/source/_integrations/http.markdown
index 8bdf1dd1fa4..c5b9dcfd93d 100644
--- a/source/_integrations/http.markdown
+++ b/source/_integrations/http.markdown
@@ -105,6 +105,15 @@ http:
The [Set up encryption using Let's Encrypt](/blog/2015/12/13/setup-encryption-using-lets-encrypt/) blog post gives you details about the encryption of your traffic using free certificates from [Let's Encrypt](https://letsencrypt.org/).
+When using a reverse proxy, you will need to enable the `use_x_forwarded_for` and `trusted_proxies` options. Requests from reverse proxies will be blocked if these options are not set.
+
+```yaml
+http:
+ use_x_forwarded_for: true
+ trusted_proxies:
+ - 172.30.33.0/24 # Add the IP address of the proxy server
+```
+
## APIs
On top of the `http` integration is a [REST API](https://developers.home-assistant.io/docs/api/rest), [Python API](https://developers.home-assistant.io/docs/api_lib_index) and [WebSocket API](https://developers.home-assistant.io/docs/api/websocket) available.
diff --git a/source/_integrations/influxdb.markdown b/source/_integrations/influxdb.markdown
index 6ed20e981c9..3f8ced175a1 100644
--- a/source/_integrations/influxdb.markdown
+++ b/source/_integrations/influxdb.markdown
@@ -61,7 +61,7 @@ port:
default: 8086
path:
type: string
- description: Path to use if your InfuxDB is running behind an reverse proxy.
+ description: Path to use if your InfuxDB is running behind a reverse proxy.
required: false
username:
type: string
diff --git a/source/_integrations/isy994.markdown b/source/_integrations/isy994.markdown
index cd329855a39..bbdc9070558 100644
--- a/source/_integrations/isy994.markdown
+++ b/source/_integrations/isy994.markdown
@@ -184,7 +184,7 @@ Send a "raw" (e.g., `DON`, `DOF`) ISY REST Device Command to a Node using its Ho
#### Service `isy994.get_zwave_parameter`
-Request a Z-Wave Device parameter via the ISY. The parameter value will be returned as a entity extra state attribute with the name "ZW#" where "#" is the parameter number.
+Request a Z-Wave Device parameter via the ISY. The parameter value will be returned as an entity extra state attribute with the name "ZW#" where "#" is the parameter number.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------------------------------------------------------------------------------------------- |
@@ -193,7 +193,7 @@ Request a Z-Wave Device parameter via the ISY. The parameter value will be retur
#### Service `isy994.set_zwave_parameter`
-Update a Z-Wave Device parameter via the ISY. The parameter value will also be returned as a entity extra state attribute with the name "ZW#" where "#" is the parameter number.
+Update a Z-Wave Device parameter via the ISY. The parameter value will also be returned as an entity extra state attribute with the name "ZW#" where "#" is the parameter number.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------------------------------------------------------------------------------------------- |
diff --git a/source/_integrations/kraken.markdown b/source/_integrations/kraken.markdown
index 87af338e922..1d6dc90081f 100644
--- a/source/_integrations/kraken.markdown
+++ b/source/_integrations/kraken.markdown
@@ -15,7 +15,7 @@ ha_platforms:
---
The Kraken integration allows you to monitor exchange rates on [kraken.com](https://www.kraken.com/).
-For a list of tradable asset pairs check this [this kraken support article](https://support.kraken.com/hc/en-us/articles/201893658-Currency-pairs-available-for-trading-on-Kraken).
+For a list of tradable asset pairs check [this kraken support article](https://support.kraken.com/hc/en-us/articles/201893658-Currency-pairs-available-for-trading-on-Kraken).
{% include integrations/config_flow.md %}
diff --git a/source/_integrations/light.mqtt.markdown b/source/_integrations/light.mqtt.markdown
index 5cbae6cf313..1b3b00c29a6 100644
--- a/source/_integrations/light.mqtt.markdown
+++ b/source/_integrations/light.mqtt.markdown
@@ -124,7 +124,7 @@ command_topic:
required: true
type: string
device:
- description: 'Information about the device this light is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.'
+ description: 'Information about the device this light is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device.'
required: false
type: map
keys:
@@ -493,7 +493,7 @@ command_topic:
required: true
type: string
device:
- description: 'Information about the device this light is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.'
+ description: 'Information about the device this light is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device.'
required: false
type: map
keys:
@@ -831,7 +831,7 @@ command_topic:
required: true
type: string
device:
- description: 'Information about the device this light is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.'
+ description: 'Information about the device this light is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device.'
required: false
type: map
keys:
diff --git a/source/_integrations/light.template.markdown b/source/_integrations/light.template.markdown
index 92cf57d5a71..a5526929d1a 100644
--- a/source/_integrations/light.template.markdown
+++ b/source/_integrations/light.template.markdown
@@ -174,7 +174,7 @@ light:
required: false
type: action
set_effect:
- description: Defines an action to run when the light is given a effect command.
+ description: Defines an action to run when the light is given an effect command.
required: inclusive
type: action
{% endconfiguration %}
diff --git a/source/_integrations/lock.mqtt.markdown b/source/_integrations/lock.mqtt.markdown
index f9aa691b6ee..a5de9b1cf1c 100644
--- a/source/_integrations/lock.mqtt.markdown
+++ b/source/_integrations/lock.mqtt.markdown
@@ -61,7 +61,7 @@ command_topic:
required: true
type: string
device:
- description: 'Information about the device this lock is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.'
+ description: 'Information about the device this lock is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device.'
required: false
type: map
keys:
diff --git a/source/_integrations/logbook.markdown b/source/_integrations/logbook.markdown
index fc5908b83d2..5e8312ec57e 100644
--- a/source/_integrations/logbook.markdown
+++ b/source/_integrations/logbook.markdown
@@ -181,7 +181,7 @@ script:
-When calling the `logbook.log` service without a `domain` or `entity_id`, entries will be added with the the `logbook` domain. Ensure that the `logbook` domain is not filtered away if you want these entries to appear in your logbook.
+When calling the `logbook.log` service without a `domain` or `entity_id`, entries will be added with the `logbook` domain. Ensure that the `logbook` domain is not filtered away if you want these entries to appear in your logbook.
diff --git a/source/_integrations/luci.markdown b/source/_integrations/luci.markdown
index 64b163239aa..29c6c839894 100644
--- a/source/_integrations/luci.markdown
+++ b/source/_integrations/luci.markdown
@@ -37,7 +37,7 @@ host:
required: true
type: string
username:
- description: The username of an user with administrative privileges, usually `admin`.
+ description: The username of a user with administrative privileges, usually `admin`.
required: true
type: string
password:
diff --git a/source/_integrations/lyric.markdown b/source/_integrations/lyric.markdown
index 04a707564c6..e7cb8ccb153 100644
--- a/source/_integrations/lyric.markdown
+++ b/source/_integrations/lyric.markdown
@@ -17,7 +17,7 @@ ha_platforms:
ha_dhcp: true
---
-The Honeywell Lyric component integrates the Lyric thermostat platform into Home Assistant.
+The Honeywell Lyric integration integrates the Lyric thermostat platform into Home Assistant.
## Setup
diff --git a/source/_integrations/mcp23017.markdown b/source/_integrations/mcp23017.markdown
index 69f3e6df95f..f8ccfd7f30a 100644
--- a/source/_integrations/mcp23017.markdown
+++ b/source/_integrations/mcp23017.markdown
@@ -29,7 +29,7 @@ The pin numbers are from 0 to 15 where: 0-7 correspond to port A (A1-A8) and 8-1
### Configuration
-To use the I/O pins of an mcp23017 connected to an I2C bus of your Raspberry Pi as binary sensors, add the following to your `configuration.yaml` file:
+To use the I/O pins of a mcp23017 connected to an I2C bus of your Raspberry Pi as binary sensors, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@@ -87,7 +87,7 @@ The pin numbers are from 0 to 15 where: 0-7 correspond to port A (A1-A8) and 8-1
### Configuration
-To use the I/O pins of an mcp23017 connected to an I2C bus of your Raspberry Pi as switches, add the following to your `configuration.yaml` file:
+To use the I/O pins of a mcp23017 connected to an I2C bus of your Raspberry Pi as switches, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
diff --git a/source/_integrations/modbus.markdown b/source/_integrations/modbus.markdown
index 524cf91d65e..0f8d1279f8f 100644
--- a/source/_integrations/modbus.markdown
+++ b/source/_integrations/modbus.markdown
@@ -443,7 +443,7 @@ covers:
default: 0
type: integer
state_opening:
- description: A value in `status_register` or `register` representing a opening cover. Note that this state should be also supported on your connected Modbus cover. If it won't report the state, this state won't be detected.
+ description: A value in `status_register` or `register` representing an opening cover. Note that this state should be also supported on your connected Modbus cover. If it won't report the state, this state won't be detected.
required: false
default: 2
type: integer
@@ -453,7 +453,7 @@ covers:
default: 3
type: integer
status_register:
- description: An address of an register, from which all the cover states will be read. If you specified `register` attribute, and not `status_register` attribute, your main register will also be used as a status register.
+ description: An address of a register, from which all the cover states will be read. If you specified `register` attribute, and not `status_register` attribute, your main register will also be used as a status register.
required: false
type: integer
status_register_type:
diff --git a/source/_integrations/nest.markdown b/source/_integrations/nest.markdown
index c805fcb65e2..f7080e34058 100644
--- a/source/_integrations/nest.markdown
+++ b/source/_integrations/nest.markdown
@@ -256,7 +256,7 @@ everything, however, you can leave out any feature you do not wish to use with H
- *Error: invalid_client no application name* means the [OAuth Consent Screen](https://console.developers.google.com/apis/credentials/consent) has not been fully configured for the project. Enter the required fields (App Name, Support Email, Developer Email) and leave everything else as default.
-- *Subscriber error: Subscription misconfigured. Expected subscriber_id to match...* means that the `configuration.yaml` has an incorrect `subscriber_id` field. Re-enter the the *Subscription Name* which looks like `projects/project-label-22ee1/subscriptions/SUBSCRIBER_ID`. Make sure this is not the *Topic name*.
+- *Subscriber error: Subscription misconfigured. Expected subscriber_id to match...* means that the `configuration.yaml` has an incorrect `subscriber_id` field. Re-enter the *Subscription Name* which looks like `projects/project-label-22ee1/subscriptions/SUBSCRIBER_ID`. Make sure this is not the *Topic name*.
- *Subscriber error: Subscription misconfigured. Expected topic name to match ...* means that the topic name in the Google Cloud Console was entered incorrectly. The topic name comes from the Device Console and must start with `projects/sdm-prod/topics/`. It is easy to make the mistake of creating a new topic rather than manually entering the right topic name.
@@ -349,7 +349,7 @@ action:
image: /api/camera_proxy/camera.front_door
```
-The action in this section uses the [Android Companion App](https://companion.home-assistant.io/docs/notifications/notifications-basic/) and the camera proxy to send an notification with a snapshot from the camera.
+The action in this section uses the [Android Companion App](https://companion.home-assistant.io/docs/notifications/notifications-basic/) and the camera proxy to send a notification with a snapshot from the camera.
# Legacy Works With Nest API
diff --git a/source/_integrations/numato.markdown b/source/_integrations/numato.markdown
index 09eb5b166f9..a516fd58199 100644
--- a/source/_integrations/numato.markdown
+++ b/source/_integrations/numato.markdown
@@ -179,7 +179,7 @@ documentation](https://numato.com/docs/32-channel-usb-gpio-module-with-analog-in
## Device IDs
-This integration uses a internal device ID to identify the device, which is
+This integration uses an internal device ID to identify the device, which is
_not_ the Linux device path. The Linux device path (e.g., `/dev/ttyACM0`) can
change, for example, when you disconnect and re-connect the device or if you
connect the device to a different USB port.
diff --git a/source/_integrations/number.mqtt.markdown b/source/_integrations/number.mqtt.markdown
index d2da4c14d4e..18edf0b9528 100644
--- a/source/_integrations/number.mqtt.markdown
+++ b/source/_integrations/number.mqtt.markdown
@@ -55,7 +55,7 @@ command_topic:
required: false
type: string
device:
- description: "Information about the device this Number is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set."
+ description: "Information about the device this Number is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device."
required: false
type: map
keys:
diff --git a/source/_integrations/openhome.markdown b/source/_integrations/openhome.markdown
index 3c2ce291284..14b06ddd988 100644
--- a/source/_integrations/openhome.markdown
+++ b/source/_integrations/openhome.markdown
@@ -12,7 +12,7 @@ ha_platforms:
- media_player
---
-The `openhome` platform allows you to connect an [Openhome Compliant Renderer](http://openhome.org/) to Home Assistant such as a [Linn Products Ltd](https://www.linn.co.uk) HiFi streamer. It will allow you to control media playback, volume, source and see the current playing item. Openhome devices should be discovered by using the [the discovery component](/integrations/discovery/), their device names are taken from the name of the room configured on the device.
+The `openhome` platform allows you to connect an [Openhome Compliant Renderer](http://openhome.org/) to Home Assistant such as a [Linn Products Ltd](https://www.linn.co.uk) HiFi streamer. It will allow you to control media playback, volume, source and see the current playing item. Openhome devices should be discovered by using [the discovery component](/integrations/discovery/), their device names are taken from the name of the room configured on the device.
### Example `configuration.yaml` entry
diff --git a/source/_integrations/openuv.markdown b/source/_integrations/openuv.markdown
index d7406967a16..f52eeb77d00 100644
--- a/source/_integrations/openuv.markdown
+++ b/source/_integrations/openuv.markdown
@@ -148,7 +148,7 @@ automation:
- alias: "Update OpenUV every hour (24 of 50 calls per day)"
trigger:
platform: time_pattern
- minutes: "/60"
+ hours: "*"
action:
service: openuv.update_data
```
diff --git a/source/_integrations/openweathermap.markdown b/source/_integrations/openweathermap.markdown
index f132f462f39..78fccfd61bc 100644
--- a/source/_integrations/openweathermap.markdown
+++ b/source/_integrations/openweathermap.markdown
@@ -40,7 +40,7 @@ not be activated yet.
| Name | Name of the integration |
| Latitude | Latitude for weather forecast and sensor |
| Longitude | Longitude for weather forecast and sensor |
-| Mode | Forecast mode, `hourly` for a three-hour forecast, `daily` for daily forecast using a paid API tier, `onecall_hourly` for an hourly forecast up to 2 days, or `onecall_daily` for a daily forecast up to 7 days (ideal for the free tier). |
+| Mode | Forecast mode, `hourly` for a three-hour forecast, `daily` for daily forecast using a paid API tier, `onecall_hourly` for an hourly forecast up to 2 days, or `onecall_daily` for a daily forecast up to 7 days (ideal for the free tier, default). |
| Language | Language for receiving data (only for `sensor`) |
The integration creates a weather entity as well as sensors for supported weather conditions.
diff --git a/source/_integrations/philips_js.markdown b/source/_integrations/philips_js.markdown
index 551f2fe8a3f..9891c044e4b 100644
--- a/source/_integrations/philips_js.markdown
+++ b/source/_integrations/philips_js.markdown
@@ -45,7 +45,7 @@ Also, note that version 6 of the API needs to be authenticated by a PIN code dis
### Turn on device
-The Philips TV does not always support turning on via the API. You can either turn it on via IR blaster or on som models WOL. To trigger this command from the entities, the integration exposes a `device trigger` that can be setup to execute when the `media_player` is asked to turn on.
+The Philips TV does not always support turning on via the API. You can either turn it on via an IR blaster or on some models using Wake On LAN (WOL). To trigger this command from the entities, the integration exposes a `device trigger` that can be setup to execute when the `media_player` is asked to turn on.
### Remote
diff --git a/source/_integrations/pi4ioe5v9xxxx.markdown b/source/_integrations/pi4ioe5v9xxxx.markdown
index f28b0f6685f..526ab65d634 100644
--- a/source/_integrations/pi4ioe5v9xxxx.markdown
+++ b/source/_integrations/pi4ioe5v9xxxx.markdown
@@ -33,7 +33,7 @@ The pin numbers are from 1 to X where: 1-8 correspond to port 0 (00-07) and 9-16
### Configuration
-To use the I/O pins of an pi4ioe5v9xxxx connected to an I2C bus of your Raspberry Pi as binary sensors, add the following to your `configuration.yaml` file:
+To use the I/O pins of a pi4ioe5v9xxxx connected to an I2C bus of your Raspberry Pi as binary sensors, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@@ -91,7 +91,7 @@ The pin numbers are from 1 to X, where 1-8 correspond to port A (A1-A8) and 9-16
### Configuration
-To use the I/O pins of an pi4ioe5v9xxxx connected to an I2C bus as switches, add the following to your `configuration.yaml` file:
+To use the I/O pins of a pi4ioe5v9xxxx connected to an I2C bus as switches, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
diff --git a/source/_integrations/ping.markdown b/source/_integrations/ping.markdown
index c2a54676a9f..e279e687997 100644
--- a/source/_integrations/ping.markdown
+++ b/source/_integrations/ping.markdown
@@ -51,10 +51,10 @@ name:
The sensor exposes the different round trip times values measured by `ping` as attributes:
-- `round trip time mdev`
-- `round trip time avg`
-- `round trip time min`
-- `round trip time max`
+- `round_trip_time_mdev`
+- `round_trip_time_avg`
+- `round_trip_time_min`
+- `round_trip_time_max`
The default polling interval is 5 minutes. As many integrations [based on the entity class](/docs/configuration/platform_options), it is possible to overwrite this scan interval by specifying a `scan_interval` configuration key (value in seconds). In the example below we setup the `ping` binary sensor to poll the device every 30 seconds.
diff --git a/source/_integrations/plex.markdown b/source/_integrations/plex.markdown
index 66dbdfae500..455e1ecb400 100644
--- a/source/_integrations/plex.markdown
+++ b/source/_integrations/plex.markdown
@@ -93,6 +93,12 @@ Refer to these links if casting to non-Plex players:
+
+
+ The integration must be configured with a token for playback commands to work. This can occur if using the `List of IP addresses and networks that are allowed without auth` option on the Plex server. If that feature is required, it's recommended to configure the integration with that feature temporarily disabled.
+
+
+
#### Music
| Service data attribute | Description |
diff --git a/source/_integrations/rachio.markdown b/source/_integrations/rachio.markdown
index 3b784c033a2..4bd80720197 100644
--- a/source/_integrations/rachio.markdown
+++ b/source/_integrations/rachio.markdown
@@ -26,7 +26,7 @@ There is currently support for the following device types within Home Assistant:
- **Binary Sensor** - Allows you to view the status of your [Rachio irrigation system](https://rachio.com/).
- [**Switch**](#switch)
-They will be automatically added if the Rachio integration integration is loaded.
+They will be automatically added if the Rachio integration is loaded.
## Getting your Rachio API Key
diff --git a/source/_integrations/rpi_gpio_pwm.markdown b/source/_integrations/rpi_gpio_pwm.markdown
index c2b0b5a9e31..c37c29e3f25 100644
--- a/source/_integrations/rpi_gpio_pwm.markdown
+++ b/source/_integrations/rpi_gpio_pwm.markdown
@@ -103,7 +103,7 @@ light:
type: rgbw
```
-### RGB LED connected to the GPIO pins of an remote Raspberry Pi.
+### RGB LED connected to the GPIO pins of a remote Raspberry Pi.
On the Raspberry Pi the pigpio daemon is running on the default port 6666.
diff --git a/source/_integrations/satel_integra.markdown b/source/_integrations/satel_integra.markdown
index ff328755342..21aba110246 100644
--- a/source/_integrations/satel_integra.markdown
+++ b/source/_integrations/satel_integra.markdown
@@ -21,7 +21,7 @@ There is currently support for the following device types within Home Assistant:
- Binary Sensor: Reports on zone or output statuses
- Switch: allows for setting states of selected outputs
-- Alarm Control Panel: represents the partition (in Polish: "strefa"). Reports its status, and can be used to arm/disarm the the partition
+- Alarm Control Panel: represents the partition (in Polish: "strefa"). Reports its status, and can be used to arm/disarm the partition
The module communicates via Satel's open TCP protocol published on their website. It subscribes for new events coming from alarm system and reacts to them immediately.
diff --git a/source/_integrations/scrape.markdown b/source/_integrations/scrape.markdown
index 654aa408980..76ecb1e2eff 100644
--- a/source/_integrations/scrape.markdown
+++ b/source/_integrations/scrape.markdown
@@ -12,7 +12,7 @@ ha_platforms:
- sensor
---
-The `scrape` sensor platform is scraping information from websites. The sensor loads a HTML page and gives you the option to search and split out a value. As this is not a full-blown web scraper like [scrapy](https://scrapy.org/), it will most likely only work with simple web pages and it can be time-consuming to get the right section.
+The `scrape` sensor platform is scraping information from websites. The sensor loads an HTML page and gives you the option to search and split out a value. As this is not a full-blown web scraper like [scrapy](https://scrapy.org/), it will most likely only work with simple web pages and it can be time-consuming to get the right section.
To enable this sensor, add the following lines to your `configuration.yaml` file:
@@ -179,25 +179,3 @@ sensor:
```
{% endraw %}
-
-### BOM Weather
-
-The Australian Bureau of Meteorology website returns an error if the User Agent header is not sent.
-
-{% raw %}
-
-```yaml
-# Example configuration.yaml entry
-sensor:
- - platform: scrape
- resource: http://www.bom.gov.au/vic/forecasts/melbourne.shtml
- name: Melbourne Forecast Summary
- select: ".main .forecast p"
- value_template: "{{ value | truncate(255) }}"
- # Request every hour
- scan_interval: 3600
- headers:
- User-Agent: Mozilla/5.0
-```
-
-{% endraw %}
diff --git a/source/_integrations/sensehat.markdown b/source/_integrations/sensehat.markdown
index c3376342bdf..f2adbcc264c 100644
--- a/source/_integrations/sensehat.markdown
+++ b/source/_integrations/sensehat.markdown
@@ -185,7 +185,7 @@ sudo reboot
```
Unfortunately enabling the SenseHAT Sensor integration for a Virtual Environment install of Home Assistant fails with errors.
-_(The Raspberry Pi All-In-One installer run Home Assistant in an virtual environment)._
+_(The Raspberry Pi All-In-One installer run Home Assistant in a virtual environment)._
These issues have been discussed in the repository issue [#5093](https://github.com/home-assistant/home-assistant/issues/5093)
This fix has been tested with a clean install of:
diff --git a/source/_integrations/sensor.mqtt.markdown b/source/_integrations/sensor.mqtt.markdown
index be0ba3801af..f139e6e5c96 100644
--- a/source/_integrations/sensor.mqtt.markdown
+++ b/source/_integrations/sensor.mqtt.markdown
@@ -51,7 +51,7 @@ availability_topic:
required: false
type: string
device:
- description: "Information about the device this sensor is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set."
+ description: "Information about the device this sensor is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device."
required: false
type: map
keys:
diff --git a/source/_integrations/serial_pm.markdown b/source/_integrations/serial_pm.markdown
index e07f2863b2c..ef29975c235 100644
--- a/source/_integrations/serial_pm.markdown
+++ b/source/_integrations/serial_pm.markdown
@@ -12,7 +12,7 @@ ha_platforms:
Particulate matter sensors measure the amount of very small particles in the air. A short introduction how these sensors work can be found on [Open Home Automation](https://www.open-homeautomation.com/2016/07/19/measuring-air-quality/).
-Cheap LED based sensors usually use a GPIO interface that is hard to attach to computers. However, there are a lot of laser LED based sensors on the market that use a serial interface and can be [connected to your Home Assistant system easily with an USB to serial converter](https://www.open-homeautomation.com/2016/07/20/connecting-an-particulate-matter-sensor-to-your-pc-or-mac/).
+Cheap LED based sensors usually use a GPIO interface that is hard to attach to computers. However, there are a lot of laser LED based sensors on the market that use a serial interface and can be [connected to your Home Assistant system easily with a USB to serial converter](https://www.open-homeautomation.com/2016/07/20/connecting-an-particulate-matter-sensor-to-your-pc-or-mac/).
## Supported Sensors
diff --git a/source/_integrations/shell_command.markdown b/source/_integrations/shell_command.markdown
index 0b77b8a4fd0..9ff98e724a5 100644
--- a/source/_integrations/shell_command.markdown
+++ b/source/_integrations/shell_command.markdown
@@ -56,7 +56,7 @@ shell_command:
### Automation example
-This is a an example of an shell command used in conjunction with an input
+This is an example of a shell command used in conjunction with an input
helper and an automation.
{% raw %}
diff --git a/source/_integrations/sia.markdown b/source/_integrations/sia.markdown
index 6a4947db996..990a73b3e62 100644
--- a/source/_integrations/sia.markdown
+++ b/source/_integrations/sia.markdown
@@ -43,10 +43,10 @@ ping_interval:
zones:
description: The number of zones configured in your alarm.
additional_account:
- description: Used to ask if a additional account needs to be included, if so will open a dialog for the next account, after checking the current input.
+ description: Used to ask if an additional account needs to be included, if so will open a dialog for the next account, after checking the current input.
{% endconfiguration_basic %}
-ASCII characters are 0-9 and ABCDEF, so a account is something like `346EB` and the encryption key has the same characters but needs to be 16, 24 or 32 characters in length.
+ASCII characters are 0-9 and ABCDEF, so an account is something like `346EB` and the encryption key has the same characters but needs to be 16, 24 or 32 characters in length.
### Note on monitoring multiple alarm systems
@@ -54,7 +54,7 @@ If you have multiple accounts (alarm systems) that you want to monitor you can c
### Port usage
-The port used with this component must be a port no other processes use on the machine your HA instance is running. If you have a complex network setup or want to monitor alarm systems at other locations you will most likely have to open firewalls and/or create network routes for that purpose, the integration will just listen for messages coming into that port, and will not proactively send, only responding with a acknowledgement to the alarm system.
+The port used with this component must be a port no other processes use on the machine your HA instance is running. If you have a complex network setup or want to monitor alarm systems at other locations you will most likely have to open firewalls and/or create network routes for that purpose, the integration will just listen for messages coming into that port, and will not proactively send, only responding with an acknowledgement to the alarm system.
### Entities
diff --git a/source/_integrations/smartthings.markdown b/source/_integrations/smartthings.markdown
index 1022079254c..69873a3e079 100644
--- a/source/_integrations/smartthings.markdown
+++ b/source/_integrations/smartthings.markdown
@@ -60,7 +60,7 @@ The PAT is used to create a Home Assistant SmartApp in your SmartThings account
### Webhook
-This integration requires an internet accessible incoming webhook to receive push updates from SmartThings. The preferred approach is to subscribe to [Home Assistant Cloud (Nabu Casa)](https://www.nabucasa.com/) and the integration will configure and use a cloudhook automatically. Alternatively, you will have to configure and setup a internet accessible webhook in Home Assistant as described below:
+This integration requires an internet accessible incoming webhook to receive push updates from SmartThings. The preferred approach is to subscribe to [Home Assistant Cloud (Nabu Casa)](https://www.nabucasa.com/) and the integration will configure and use a cloudhook automatically. Alternatively, you will have to configure and setup an internet accessible webhook in Home Assistant as described below:
1. Setup [remote access](/docs/configuration/remote/) via a domain name secured with SSL. *Self-signed SSL certificates are not supported by the SmartThings Cloud API.*
1. Set the external URL in the Home Assistant [configuration](/docs/configuration/basic) to the URL that Home Assistant is available on the internet (this must start with `https://`).
@@ -349,7 +349,7 @@ If you have completed the checklist above and are still unable to setup the plat
### Debugging
-The SmartThings integration will log additional information about push updates received, events fired, and other messages when the log level is set to `debug`. Add the the relevant line below to the `configuration.yaml`:
+The SmartThings integration will log additional information about push updates received, events fired, and other messages when the log level is set to `debug`. Add the relevant line below to the `configuration.yaml`:
```yaml
logger:
diff --git a/source/_integrations/solaredge_local.markdown b/source/_integrations/solaredge_local.markdown
index 6ef55234a72..620760f7361 100644
--- a/source/_integrations/solaredge_local.markdown
+++ b/source/_integrations/solaredge_local.markdown
@@ -18,7 +18,7 @@ The `solaredge_local` platform uses the local API available on some SolarEdge In
Only specific models support the local API. The local API is available on inverters that do not have an LCD character screen. You can also check the datasheets if in the section "Additional Features", sub-section "Inverter Commissioning" is present the following line "With the SetApp mobile application using built-in Wi-Fi access point for local connection". These inverters also have a part number that ends with a 4. For example: SEXXK-XXXXXBXX4 or SEXXXXH-XXXXXBXX4
-You can check if the local API works by finding the IP address of your inverter and visiting it in a browser. If it supports the local API, you'll see a HTML page with the SolarEdge logo and a "Commissioning" menu.
+You can check if the local API works by finding the IP address of your inverter and visiting it in a browser. If it supports the local API, you'll see an HTML page with the SolarEdge logo and a "Commissioning" menu.
diff --git a/source/_integrations/sonos.markdown b/source/_integrations/sonos.markdown
index e05946d9185..fc4e5b3135a 100644
--- a/source/_integrations/sonos.markdown
+++ b/source/_integrations/sonos.markdown
@@ -40,6 +40,61 @@ The battery sensors rely on working change events or updates will be delayed. S1
The Sonos integration adds one `switch` for each alarm set in the Sonos app. The alarm switches are detected, deleted and assigned automatically and come with several attributes that help to monitor Sonos alarms.
+## Playing media
+
+Sonos accepts a variety of `media_content_id` formats in the `media_player.play_media` service, but most commonly as URIs. For example, both Spotify and Tidal share links can be provided as-is. Playback of [music hosted on a Plex server](/integrations/plex#sonos-playback) is possible. Direct HTTP/HTTPS links to local or remote media files can also be used if the Sonos device can reach the URI directly, but specific media encoding support may vary.
+
+Music services which require an account (e.g., Spotify) must first be configured using the Sonos app.
+
+An optional `enqueue` argument can be added to the service call. If `true`, the media will be appended to the end of the playback queue. If not provided or `false` then the queue will be replaced.
+
+### Examples:
+
+This is an example service call that plays an audio file from a web server on the local network (like the Home Assistant built-in webserver):
+
+```yaml
+service: media_player.play_media
+target:
+ entity_id: media_player.sonos
+data:
+ media_content_type: "music"
+ media_content_id: "http://192.168.1.50:8123/local/sound_files/doorbell-front.mp3"
+```
+
+Sonos can also play music or playlists from Spotify. Both Spotify URIs and URLs can be used directly. An example service call using a playlist URI:
+
+```yaml
+service: media_player.play_media
+target:
+ entity_id: media_player.sonos
+data:
+ media_content_type: "playlist"
+ media_content_id: "spotify:playlist:abcdefghij0123456789XY"
+ enqueue: true
+```
+
+An example service call using a Spotify URL:
+
+```yaml
+service: media_player.play_media
+target:
+ entity_id: media_player.sonos
+data:
+ media_content_type: "music"
+ media_content_id: "https://open.spotify.com/album/abcdefghij0123456789YZ"
+```
+
+Run a [Plex Media Server](/integrations/plex#sonos-playback) in your home? The Sonos integration can work with that as well. This example plays music directly from your Plex server:
+
+```yaml
+service: media_player.play_media
+target:
+ entity_id: media_player.sonos
+data:
+ media_content_type: "music"
+ media_content_id: 'plex://{ "library_name": "Music", "artist_name": "M83", "album_name": "Hurry Up, We're Dreaming" }'
+```
+
## Services
The Sonos integration makes various custom services available.
diff --git a/source/_integrations/splunk.markdown b/source/_integrations/splunk.markdown
index b8dd423be27..9daffdf01fa 100644
--- a/source/_integrations/splunk.markdown
+++ b/source/_integrations/splunk.markdown
@@ -35,7 +35,7 @@ host:
port:
description: Port to use.
required: false
- default: 8080
+ default: 8088
type: integer
ssl:
description: Use HTTPS instead of HTTP to connect.
diff --git a/source/_integrations/statistics.markdown b/source/_integrations/statistics.markdown
index 3d006cae8d9..84194cd5916 100644
--- a/source/_integrations/statistics.markdown
+++ b/source/_integrations/statistics.markdown
@@ -50,11 +50,11 @@ sampling_size:
default: 20
type: integer
max_age:
- description: Maximum age of measurements. Setting this to a time interval will cause older values to be discarded. Please note that you might have to increase the [sampling_size](/integrations/statistics#sampling_size) parameter. If you e.g., have a sensor value updated every second you will, by default, only get a max_age of 20s. Furthermore the sensor gets `unkown` if the entity is not updated within the time interval.
+ description: Maximum age of measurements. Setting this to a time interval will cause older values to be discarded. Please note that you might have to increase the [`sampling_size`](/integrations/statistics#sampling_size) parameter. If you e.g., have a sensor value updated every second you will by default only get a `max_age` of 20s. Furthermore the sensor gets `unknown` if the entity is not updated within the time interval.
required: false
type: time
precision:
- description: Defines the precision of the calculated values, through the argument of round().
+ description: Defines the precision of the calculated values, through the argument of [`round()`](/docs/configuration/templating/#numeric-functions-and-filters).
required: false
default: 2
type: integer
diff --git a/source/_integrations/switch.mqtt.markdown b/source/_integrations/switch.mqtt.markdown
index 291a96b9b76..28ff0338d34 100644
--- a/source/_integrations/switch.mqtt.markdown
+++ b/source/_integrations/switch.mqtt.markdown
@@ -61,7 +61,7 @@ command_topic:
required: false
type: string
device:
- description: "Information about the device this switch is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set."
+ description: "Information about the device this switch is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device."
required: false
type: map
keys:
diff --git a/source/_integrations/tag.mqtt.markdown b/source/_integrations/tag.mqtt.markdown
index f783b6b5dca..de36f509b0b 100644
--- a/source/_integrations/tag.mqtt.markdown
+++ b/source/_integrations/tag.mqtt.markdown
@@ -25,7 +25,7 @@ value_template:
required: false
type: string
device:
- description: "Information about the device this device trigger is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html)."
+ description: "Information about the device this device trigger is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). At least one of identifiers or connections must be present to identify the device."
required: true
type: map
keys:
diff --git a/source/_integrations/telegram.markdown b/source/_integrations/telegram.markdown
index 55c5243a0ce..fd1d2a104ed 100644
--- a/source/_integrations/telegram.markdown
+++ b/source/_integrations/telegram.markdown
@@ -245,11 +245,11 @@ action:
{% configuration %}
url:
- description: A remote path to an video. Either this or the `file` configuration option is required.
+ description: A remote path to a video. Either this or the `file` configuration option is required.
required: true
type: string
file:
- description: A local path to an video. Either this or the `url` configuration option is required.
+ description: A local path to a video. Either this or the `url` configuration option is required.
required: true
type: string
caption:
diff --git a/source/_integrations/template.markdown b/source/_integrations/template.markdown
index c9dc5d6cc39..90a337a6642 100644
--- a/source/_integrations/template.markdown
+++ b/source/_integrations/template.markdown
@@ -27,7 +27,7 @@ The `template` integration allows creating entities which derive their values fr
Sensors and binary (on/off) sensors are covered on this page. For other types, please see the specific pages:
-- [Alarm_control_panel](/integrations/alarm_control_panel.template/)
+- [Alarm Control Panel](/integrations/alarm_control_panel.template/)
- [Cover](/integrations/cover.template/)
- [Fan](/integrations/fan.template/)
- [Light](/integrations/light.template/)
@@ -36,7 +36,7 @@ Sensors and binary (on/off) sensors are covered on this page. For other types, p
- [Vacuum](/integrations/vacuum.template/)
- [Weather](/integrations/weather.template/)
-Sensor and binary sensor template entities are defined in YAML directly under the `template:` key. You can define multiple configuration blocks as a list. Each block defines sensors and/or binary sensor entities and can contain an optional update trigger.
+Sensor and binary sensor template entities are defined in your YAML configuration files, directly under the `template:` key and cannot be configured via the UI. You can define multiple configuration blocks as a list. Each block defines sensors and/or binary sensor entities and can contain an optional update trigger.
_For old sensor/binary sensor configuration format, [see below](#legacy-binary-sensor-configuration-format)._
diff --git a/source/_integrations/thomson.markdown b/source/_integrations/thomson.markdown
index ec7d72412c9..26d79ac69b4 100644
--- a/source/_integrations/thomson.markdown
+++ b/source/_integrations/thomson.markdown
@@ -31,7 +31,7 @@ host:
required: true
type: string
username:
- description: The username of an user with administrative privileges, usually *admin*.
+ description: The username of a user with administrative privileges, usually *admin*.
required: true
type: string
password:
diff --git a/source/_integrations/tomato.markdown b/source/_integrations/tomato.markdown
index 5a9b6f6e25c..558f8d5c3ce 100644
--- a/source/_integrations/tomato.markdown
+++ b/source/_integrations/tomato.markdown
@@ -60,7 +60,7 @@ verify_ssl:
type: [string, boolean]
default: true
username:
- description: "The username of an user with administrative privileges, usually *admin*."
+ description: "The username of a user with administrative privileges, usually *admin*."
required: true
type: string
password:
diff --git a/source/_integrations/trend.markdown b/source/_integrations/trend.markdown
index 3f3514fac54..e5efda2e4a7 100644
--- a/source/_integrations/trend.markdown
+++ b/source/_integrations/trend.markdown
@@ -90,7 +90,7 @@ sensors:
If the optional `sample_duration` and `max_samples` parameters are specified
then multiple samples can be stored and used to detect long-term trends.
-Each time the state changes, a new sample is stored along with the sample time. Samples older than `sample_duration` seconds will be discarded. The `max_samples` parameter must be large enough to store sensor updates over the requested duration. If you want to trend over two hours and your sensor updates every 120s then then `max_samples` must be at least 60, i.e., 7200/120 = 60.
+Each time the state changes, a new sample is stored along with the sample time. Samples older than `sample_duration` seconds will be discarded. The `max_samples` parameter must be large enough to store sensor updates over the requested duration. If you want to trend over two hours and your sensor updates every 120s then `max_samples` must be at least 60, i.e., 7200/120 = 60.
A trend line is then fitted to the available samples, and the gradient of this
line is compared to `min_gradient` to determine the state of the trend sensor.
diff --git a/source/_integrations/tts.markdown b/source/_integrations/tts.markdown
index 39e370ec8a7..14cf93d0069 100644
--- a/source/_integrations/tts.markdown
+++ b/source/_integrations/tts.markdown
@@ -26,7 +26,7 @@ tts:
-Depending on your setup, you might need to set a external URL (`external_url`) inside the [configuration](/docs/configuration/basic/) or in the parameters of this component.
+Depending on your setup, you might need to set an external URL (`external_url`) inside the [configuration](/docs/configuration/basic/) or in the parameters of this component.
@@ -97,7 +97,7 @@ The Google cast devices (Google Home, Chromecast, etc.) present the following pr
* They [reject self-signed certificates](#self-signed-certificates).
-* They do not work with URLs that contain hostnames established by local naming means. Let's say your Home Assistant instance is running on a machine made known locally as `ha`. All your machines on your local network are able to access it as `ha`. However, try as you may, your cast device won't download the media files from your `ha` machine. That's because your cast device ignores your local naming setup. In this example, the `say` service creates a URL like `http://ha/path/to/media.mp3` (or `https://...` if you are using SSL). If you are _not_ using SSL then setting a internal URL that contains the IP address of your server works around this issue. By using an IP address, the cast device does not have to resolve the hostname.
+* They do not work with URLs that contain hostnames established by local naming means. Let's say your Home Assistant instance is running on a machine made known locally as `ha`. All your machines on your local network are able to access it as `ha`. However, try as you may, your cast device won't download the media files from your `ha` machine. That's because your cast device ignores your local naming setup. In this example, the `say` service creates a URL like `http://ha/path/to/media.mp3` (or `https://...` if you are using SSL). If you are _not_ using SSL then setting an internal URL that contains the IP address of your server works around this issue. By using an IP address, the cast device does not have to resolve the hostname.
* If you are using an SSL (e.g., `https://yourhost.example.org/...`) then you _must_ use the hostname in the certificate (e.g., `base_url: https://yourhost.example.org`). You cannot use an IP address since the certificate won't be valid for the IP address, and the cast device will refuse the connection.
diff --git a/source/_integrations/ubus.markdown b/source/_integrations/ubus.markdown
index 98d47915cb5..4ed1603edf2 100644
--- a/source/_integrations/ubus.markdown
+++ b/source/_integrations/ubus.markdown
@@ -68,7 +68,7 @@ host:
required: true
type: string
username:
- description: The username of an user with administrative privileges, usually `root`.
+ description: The username of a user with administrative privileges, usually `root`.
required: true
type: string
password:
diff --git a/source/_integrations/universal.markdown b/source/_integrations/universal.markdown
index 2a46a6f807b..6d644ccd858 100644
--- a/source/_integrations/universal.markdown
+++ b/source/_integrations/universal.markdown
@@ -13,7 +13,7 @@ ha_platforms:
Universal Media Players combine multiple existing entities in Home Assistant into one media player entity. This is used for creating a single entity that controls an entire media center.
-Multiple media player entities can be controlled from an universal media player. Additionally, the universal media player allows volume and power commands to be re-routed to other entities in Home Assistant. This allows the power and volume to control external devices like a television or audio receiver.
+Multiple media player entities can be controlled from a universal media player. Additionally, the universal media player allows volume and power commands to be re-routed to other entities in Home Assistant. This allows the power and volume to control external devices like a television or audio receiver.
A Universal Media Player is created in `configuration.yaml` as follows.
@@ -161,7 +161,7 @@ media_player:
In this example, a [Kodi Media Player](/integrations/kodi) runs in a CEC capable device (OSMC/OpenElec running in a Raspberry Pi 24/7, for example), and, with the JSON-CEC Kodi add-on installed, it can turn on and off the attached TV.
-We store the state of the attached TV in a [input boolean](/integrations/input_boolean/), so we can differentiate the TV being on or off, while Kodi is always 'idle', and use the universal media player to render its state with a template. We now can differentiate between the 'idle' and the 'off' state (being the second when it is idle and the TV is off).
+We store the state of the attached TV in an [input boolean](/integrations/input_boolean/), so we can differentiate the TV being on or off, while Kodi is always 'idle', and use the universal media player to render its state with a template. We now can differentiate between the 'idle' and the 'off' state (being the second when it is idle and the TV is off).
Because the input boolean used to store the TV state is only changing when using the Home Assistant `turn_on` and `turn_off` actions, and Kodi could be controlled by so many ways, we also define some automations to update this Input Boolean when needed.
diff --git a/source/_integrations/vacuum.mqtt.markdown b/source/_integrations/vacuum.mqtt.markdown
index acde6dd6814..60b83f82b34 100644
--- a/source/_integrations/vacuum.mqtt.markdown
+++ b/source/_integrations/vacuum.mqtt.markdown
@@ -333,7 +333,7 @@ command_topic:
required: false
type: string
device:
- description: "Information about the device this switch is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set."
+ description: "Information about the device this switch is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device."
required: false
type: map
keys:
diff --git a/source/_integrations/version.markdown b/source/_integrations/version.markdown
index d29c9b63e1f..9054b9fd2a1 100644
--- a/source/_integrations/version.markdown
+++ b/source/_integrations/version.markdown
@@ -52,7 +52,7 @@ source:
### Supported images for Home Assistant
-`default`, `qemux86`, `qemux86-64`, `qemuarm`, `qemuarm-64`, `intel-nuc`, `raspberrypi`, `raspberrypi2`, `raspberrypi3`, `raspberrypi3-64`, `raspberrypi4`, `raspberrypi4-64`, `tinker`, `odroid-c2`, `odroid-n2`, `odroid-xu`
+`default`, `qemux86`, `qemux86-64`, `qemuarm`, `qemuarm-64`, `generic-x86-64`, `raspberrypi`, `raspberrypi2`, `raspberrypi3`, `raspberrypi3-64`, `raspberrypi4`, `raspberrypi4-64`, `tinker`, `odroid-c2`, `odroid-n2`, `odroid-xu`
## Alternatives for showing local version
diff --git a/source/_integrations/wake_on_lan.markdown b/source/_integrations/wake_on_lan.markdown
index 052703a0023..32bbc525740 100644
--- a/source/_integrations/wake_on_lan.markdown
+++ b/source/_integrations/wake_on_lan.markdown
@@ -32,7 +32,7 @@ wake_on_lan:
Available services: `send_magic_packet`.
-#### Service `wake_on_lan/send_magic_packet`
+#### Service `wake_on_lan.send_magic_packet`
Send a _magic packet_ to wake up a device with 'Wake-On-LAN' capabilities.
diff --git a/source/_integrations/weather.darksky.markdown b/source/_integrations/weather.darksky.markdown
index 51ce9dd7b82..731484e6cb1 100644
--- a/source/_integrations/weather.darksky.markdown
+++ b/source/_integrations/weather.darksky.markdown
@@ -16,7 +16,7 @@ The `darksky` platform uses the [Dark Sky](https://darksky.net/) web service as
-On March 31, 2020 Dark Sky was [acquired by Apple](https://blog.darksky.net/dark-sky-has-a-new-home/) and is no longer allowing new API registrations. The Dark Sky API will continue to function for existing users through the end of 2021, but it is no longer possible to obtain an API key for new users. Home Assistant supports many alternative [weather integrations](/integrations/#weather).
+On March 31, 2020 Dark Sky was [acquired by Apple](https://blog.darksky.net/dark-sky-has-a-new-home/) and is no longer allowing new API registrations. The Dark Sky API will continue to function for existing users through the [end of 2022](https://blog.darksky.net/), but it is no longer possible to obtain an API key for new users. Home Assistant supports many alternative [weather integrations](/integrations/#weather).
diff --git a/source/_integrations/xiaomi_miio.markdown b/source/_integrations/xiaomi_miio.markdown
index ec0f92c02ae..78f5ddaaa5c 100644
--- a/source/_integrations/xiaomi_miio.markdown
+++ b/source/_integrations/xiaomi_miio.markdown
@@ -46,7 +46,11 @@ For many of these devices you need an access token, the first section will descr
## Retrieving the Access Token
-### Xiaomi Cloud Tokens Extractor
+### Using Get Mi Home Devices Token App
+
+If you are on a Windows or macOS device, you can use the [Get MiHome devices token](https://github.com/Maxmudjon/Get_MiHome_devices_token/releases) App to retrieve the token. Click the link, download the file that corresponds to your OS, enter your login details and it will retrieve the access token.
+
+### Using Xiaomi Cloud Tokens Extractor
One of Home Assistant users wrote a tokens extractor tool, which is currently the easiest way to retrieve tokens for all devices assigned to Xiaomi account.
[In the repository](https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor) there's executable for convenient use on Windows or Python script to be run on any platform. If you do not wish to run executable, then you can run it using the source code:
@@ -66,7 +70,7 @@ One of Home Assistant users wrote a tokens extractor tool, which is currently th
3. Provide e-mail address or username for Xiaomi's account, password and country of the account (most used: CN - China Mainland, DE - Germany etc.)
4. Script will print out all devices connected to the account with their IP address and tokens for use in Home Assistant.
-### Xiaomi Home app (Xiaomi Aqara Gateway, Android & iOS)
+### Using Xiaomi Home app in developer mode (Xiaomi Aqara Gateway, Android & iOS)
1. Install the Xiaomi Home app.
2. Sign In/make an account.
@@ -81,10 +85,6 @@ iOS: Most options are still in Chinese, you need the fourth item from the top.
Note: If you have multiple devices needing a token, e.g., Xiaomi Mi Robot Vacuum and a Xiaomi IR Remote, the above method may not work. The Xiaomi Home app will display a token, though it isn't the correct one. The alternative method using "Mi Home v5.4.49" will provide the correct token.
-### Windows or macOS
-
-If using an Windows or macOS device to retrieve the Access Token use the [Get MiHome devices token](https://github.com/Maxmudjon/Get_MiHome_devices_token) App.
-
### Alternative methods
diff --git a/source/_integrations/yeelight.markdown b/source/_integrations/yeelight.markdown
index 4b96ebea7eb..1290ccd22dc 100644
--- a/source/_integrations/yeelight.markdown
+++ b/source/_integrations/yeelight.markdown
@@ -35,10 +35,10 @@ Possible transitions are `RGBTransition`, `HSVTransition`, `TemperatureTransitio
Where the array values are as per the following:
-- RGBTransition: [red, green, blue, duration, brightness] with red/green/blue being an number between 0 and 255, the duration being in milliseconds (with a minimum of 50) and the final brightness to transition to 1-100 (%).
-- HSVTransition: [hue, saturation, duration, brightness] with hue being an number between 0 and 359, saturation 0 -100, the duration in milliseconds (with a minimum of 50) and the final brightness 1-100 (%).
+- RGBTransition: [red, green, blue, duration, brightness] with red/green/blue being a number between 0 and 255, the duration being in milliseconds (with a minimum of 50) and the final brightness to transition to 1-100 (%).
+- HSVTransition: [hue, saturation, duration, brightness] with hue being a number between 0 and 359, saturation 0 -100, the duration in milliseconds (with a minimum of 50) and the final brightness 1-100 (%).
- TemperatureTransition: [temp, duration, brightness] with temp being the final color temperature between 1700 and 6500, the duration in milliseconds (with a minimum of 50) and the final brightness to transition to 1-100 (%).
-- SleepTransition: [duration] with duration being an number for the effect time in milliseconds (with a minimum of 50).
+- SleepTransition: [duration] with duration being a number for the effect time in milliseconds (with a minimum of 50).
More info about transitions and their expected parameters can be found in [python-yeelight documentation](https://yeelight.readthedocs.io/en/stable/flow.html).
diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown
index 5f4c38206d6..17b26e199d7 100644
--- a/source/_integrations/zha.markdown
+++ b/source/_integrations/zha.markdown
@@ -84,7 +84,7 @@ Some other Zigbee coordinator hardware may not support a firmware that is capabl
- [CC2538 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)](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)
+ - Note! While not a must, [it is recommend to upgrade XBee Series 3 and S2C to newest 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/)
diff --git a/source/_integrations/zwave_js.markdown b/source/_integrations/zwave_js.markdown
index fd8865364b9..7f2388dece0 100644
--- a/source/_integrations/zwave_js.markdown
+++ b/source/_integrations/zwave_js.markdown
@@ -593,7 +593,7 @@ Sure, in the settings of zwavejs2mqtt, make sure to enable "WS Server" and disab
### My device does not automatically update its status in HA if I control it manually
-Your device might not send send automatic status updates to the controller. While the best advice would be to update to recent Z-Wave Plus devices, there is a workaround with active polling (request the status) at some interval. See the section below for more info about this.
+Your device might not send automatic status updates to the controller. While the best advice would be to update to recent Z-Wave Plus devices, there is a workaround with active polling (request the status) at some interval. See the section below for more info about this.
### What about polling of devices?
diff --git a/source/_posts/2021-04-07-release-20214.markdown b/source/_posts/2021-04-07-release-20214.markdown
index 5eaf79fe8e6..2bc1f2ed315 100644
--- a/source/_posts/2021-04-07-release-20214.markdown
+++ b/source/_posts/2021-04-07-release-20214.markdown
@@ -951,8 +951,12 @@ Home Assistant Core 2021.7.0:
- `speed_command_topic`
- `speed_state_topic`
-- `state_value_template`
-- `speed_list`
+- `speed_value_template`
+- `speeds`
+- `payload_off_speed`
+- `payload_low_speed`
+- `payload_medium_speed`
+- `payload_high_speed`
Additionally,`preset_modes` and `percentage` are added to replace the legacy
model supporting only three speeds `low`, `medium` and `high`.
diff --git a/source/_posts/2021-06-02-release-20216.markdown b/source/_posts/2021-06-02-release-20216.markdown
index 24d5a14aa24..9cc26ce739e 100644
--- a/source/_posts/2021-06-02-release-20216.markdown
+++ b/source/_posts/2021-06-02-release-20216.markdown
@@ -40,6 +40,10 @@ worth scanning the all changes section for your favorite integrations.
- [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui)
- [Release 2021.6.1 - June 3](#release-202161---june-3)
- [Release 2021.6.2 - June 4](#release-202162---june-4)
+- [Release 2021.6.3 - June 7](#release-202163---june-7)
+- [Release 2021.6.4 - June 11](#release-202164---june-11)
+- [Release 2021.6.5 - June 15](#release-202165---june-15)
+- [Release 2021.6.6 - June 20](#release-202166---june-20)
- [If you need help...](#if-you-need-help)
- [Breaking Changes](#breaking-changes)
- [Integrations that removed deprecated YAML import](#integrations-that-removed-deprecated-yaml-import)
@@ -319,6 +323,147 @@ The following integrations are now available via the Home Assistant UI:
[modbus docs]: /integrations/modbus/
[samsungtv docs]: /integrations/samsungtv/
+## Release 2021.6.3 - June 7
+
+- Use a single job to ping all devices in the Broadlink integration ([@felipediel] - [#51466]) ([broadlink docs])
+- Fix loop in tod binary sensor ([@bdraco] - [#51491]) ([tod docs])
+- AsusWRT fix keyerror when firmver is missing from info ([@timmo001] - [#51499]) ([asuswrt docs])
+- Handle missing options in foreign_key for MSSQL ([@bdraco] - [#51503]) ([recorder docs])
+- Fix missing Tibber power production ([@Danielhiversen] - [#51505]) ([tibber docs])
+- Bump garminconnect_aio to 0.1.4 ([@cyberjunky] - [#51507]) ([garmin_connect docs])
+- Bump pyialarm to 1.8.1 ([@RyuzakiKK] - [#51519]) ([ialarm docs])
+- Improve log message when zone missing in geolocation trigger ([@exxamalte] - [#51522]) ([geo_location docs])
+- Ensure host is always set with samsungtv SSDP discovery ([@bdraco] - [#51527]) ([samsungtv docs])
+- Bump aiorecollect to 1.0.5 ([@bachya] - [#51538]) ([recollect_waste docs])
+- Fix garmin_connect config flow multiple account creation ([@cyberjunky] - [#51542]) ([garmin_connect docs])
+- Bump dwdwfsapi to 1.0.4 ([@stephan192] - [#51556]) ([dwd_weather_warnings docs])
+- Increase isy setup timeout to 60s ([@bdraco] - [#51559]) ([isy994 docs])
+- Fix Sonos restore calls ([@jjlawren] - [#51565]) ([sonos docs])
+- Update builder to 2021.06.2 ([@pvizeli] - [#51582])
+- Fix deprecated value_template for MQTT light ([@emontnemery] - [#51587]) ([mqtt docs])
+
+[#51466]: https://github.com/home-assistant/core/pull/51466
+[#51491]: https://github.com/home-assistant/core/pull/51491
+[#51499]: https://github.com/home-assistant/core/pull/51499
+[#51503]: https://github.com/home-assistant/core/pull/51503
+[#51505]: https://github.com/home-assistant/core/pull/51505
+[#51507]: https://github.com/home-assistant/core/pull/51507
+[#51519]: https://github.com/home-assistant/core/pull/51519
+[#51522]: https://github.com/home-assistant/core/pull/51522
+[#51527]: https://github.com/home-assistant/core/pull/51527
+[#51538]: https://github.com/home-assistant/core/pull/51538
+[#51542]: https://github.com/home-assistant/core/pull/51542
+[#51556]: https://github.com/home-assistant/core/pull/51556
+[#51559]: https://github.com/home-assistant/core/pull/51559
+[#51565]: https://github.com/home-assistant/core/pull/51565
+[#51582]: https://github.com/home-assistant/core/pull/51582
+[#51587]: https://github.com/home-assistant/core/pull/51587
+[@Danielhiversen]: https://github.com/Danielhiversen
+[@RyuzakiKK]: https://github.com/RyuzakiKK
+[@bachya]: https://github.com/bachya
+[@bdraco]: https://github.com/bdraco
+[@cyberjunky]: https://github.com/cyberjunky
+[@emontnemery]: https://github.com/emontnemery
+[@exxamalte]: https://github.com/exxamalte
+[@felipediel]: https://github.com/felipediel
+[@jjlawren]: https://github.com/jjlawren
+[@pvizeli]: https://github.com/pvizeli
+[@stephan192]: https://github.com/stephan192
+[@timmo001]: https://github.com/timmo001
+[asuswrt docs]: /integrations/asuswrt/
+[broadlink docs]: /integrations/broadlink/
+[dwd_weather_warnings docs]: /integrations/dwd_weather_warnings/
+[garmin_connect docs]: /integrations/garmin_connect/
+[geo_location docs]: /integrations/geo_location/
+[ialarm docs]: /integrations/ialarm/
+[isy994 docs]: /integrations/isy994/
+[mqtt docs]: /integrations/mqtt/
+[recollect_waste docs]: /integrations/recollect_waste/
+[recorder docs]: /integrations/recorder/
+[samsungtv docs]: /integrations/samsungtv/
+[sonos docs]: /integrations/sonos/
+[tibber docs]: /integrations/tibber/
+[tod docs]: /integrations/tod/
+
+## Release 2021.6.4 - June 11
+
+- Fix Sonos battery sensors on S1 firmware ([@jjlawren] - [#51585]) ([sonos docs])
+- Handle missing section ID for Plex clips ([@jjlawren] - [#51598]) ([plex docs])
+- Reduce ovo_energy polling rate to be less aggressive ([@blastoise186] - [#51613]) ([ovo_energy docs])
+- Do not configure Shelly config entry created by custom component ([@bieniu] - [#51616]) ([shelly docs])
+- Fix Onvif get_time_zone from device ([@pszafer] - [#51620])
+- Ensure samsungtv reloads after reauth ([@bdraco] - [#51714]) ([samsungtv docs])
+- Fix race condition in samsungtv turn off ([@bdraco] - [#51716]) ([samsungtv docs])
+
+[#51585]: https://github.com/home-assistant/core/pull/51585
+[#51598]: https://github.com/home-assistant/core/pull/51598
+[#51613]: https://github.com/home-assistant/core/pull/51613
+[#51616]: https://github.com/home-assistant/core/pull/51616
+[#51620]: https://github.com/home-assistant/core/pull/51620
+[#51714]: https://github.com/home-assistant/core/pull/51714
+[#51716]: https://github.com/home-assistant/core/pull/51716
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@blastoise186]: https://github.com/blastoise186
+[@jjlawren]: https://github.com/jjlawren
+[@pszafer]: https://github.com/pszafer
+[ovo_energy docs]: /integrations/ovo_energy/
+[plex docs]: /integrations/plex/
+[samsungtv docs]: /integrations/samsungtv/
+[shelly docs]: /integrations/shelly/
+[sonos docs]: /integrations/sonos/
+
+## Release 2021.6.5 - June 15
+
+- Replace garminconnect_aio with garminconnect_ha ([@cyberjunky] - [#51730]) ([garmin_connect docs])
+- Bump pydaikin, fix airbase issues ([@fredrike] - [#51797]) ([daikin docs])
+- Add httpcore with version 0.13.3 ([@ludeeus] - [#51799])
+- Bump pyialarm to 1.9.0 ([@RyuzakiKK] - [#51804]) ([ialarm docs])
+
+[#51730]: https://github.com/home-assistant/core/pull/51730
+[#51797]: https://github.com/home-assistant/core/pull/51797
+[#51799]: https://github.com/home-assistant/core/pull/51799
+[#51804]: https://github.com/home-assistant/core/pull/51804
+[@RyuzakiKK]: https://github.com/RyuzakiKK
+[@cyberjunky]: https://github.com/cyberjunky
+[@fredrike]: https://github.com/fredrike
+[@ludeeus]: https://github.com/ludeeus
+[daikin docs]: /integrations/daikin/
+[garmin_connect docs]: /integrations/garmin_connect/
+[ialarm docs]: /integrations/ialarm/
+
+## Release 2021.6.6 - June 20
+
+- Fix whois expiration date ([@kantselovich] - [#51868]) ([whois docs])
+- Add Omnilogic switch defaults for max_speed and min_speed ([@djtimca] - [#51889]) ([omnilogic docs])
+- Bump pyRFXtrx to 0.27.0 ([@RobBie1221] - [#51911]) ([rfxtrx docs])
+- Bump pydaikin to 2.4.3 ([@fredrike] - [#51926]) ([daikin docs])
+- Fix AccuWeather sensors updates ([@bieniu] - [#52031]) ([accuweather docs])
+- Fix double subscriptions for local push notifications ([@balloob] - [#52039]) ([mobile_app docs])
+- Catch unexpected battery update payloads on Sonos ([@jjlawren] - [#52040]) ([sonos docs])
+
+[#51868]: https://github.com/home-assistant/core/pull/51868
+[#51889]: https://github.com/home-assistant/core/pull/51889
+[#51911]: https://github.com/home-assistant/core/pull/51911
+[#51926]: https://github.com/home-assistant/core/pull/51926
+[#52031]: https://github.com/home-assistant/core/pull/52031
+[#52039]: https://github.com/home-assistant/core/pull/52039
+[#52040]: https://github.com/home-assistant/core/pull/52040
+[@RobBie1221]: https://github.com/RobBie1221
+[@balloob]: https://github.com/balloob
+[@bieniu]: https://github.com/bieniu
+[@djtimca]: https://github.com/djtimca
+[@fredrike]: https://github.com/fredrike
+[@jjlawren]: https://github.com/jjlawren
+[@kantselovich]: https://github.com/kantselovich
+[accuweather docs]: /integrations/accuweather/
+[daikin docs]: /integrations/daikin/
+[mobile_app docs]: /integrations/mobile_app/
+[omnilogic docs]: /integrations/omnilogic/
+[rfxtrx docs]: /integrations/rfxtrx/
+[sonos docs]: /integrations/sonos/
+[whois docs]: /integrations/whois/
+
## 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/2021-06-09-home-assistant-os-release-6.markdown b/source/_posts/2021-06-09-home-assistant-os-release-6.markdown
new file mode 100644
index 00000000000..7050ccdaa3a
--- /dev/null
+++ b/source/_posts/2021-06-09-home-assistant-os-release-6.markdown
@@ -0,0 +1,144 @@
+---
+layout: post
+title: "Home Assistant OS Release 6"
+description: ""
+date: 2021-06-11 00:00:00
+date_formatted: "June 11, 2021"
+author: Stefan Agner
+author_twitter: falstaff_ch
+comments: true
+categories: Release-Notes
+og_image: /images/blog/2021-06-11-os6/social.png
+---
+
+
+
+
+
+Home Assistant OS 6.0 stable is available now!
+
+**Highlights**:
+
+- OS Agent for better OS integration with Supervisor
+- Support for additional Wi-Fi and Bluetooth devices
+- Smaller virtual machine disk images
+
+- Improved: Generic x86-64 system support
+
+## Table of contents
+
+- [Operating System Changes](#operating-system-changes)
+ - [OS Agent](#os-agent)
+ - [Under the Hood](#under-the-hood)
+- [Device Support](#device-support)
+ - [Raspberry Pi](#raspberry-pi)
+ - [Generic x86-64](#generic-x86-64)
+ - [Open Virtualization Appliance](#open-virtualization-appliance)
+ - [Additional Wi-Fi and Bluetooth device support](#additional-wifi-and-bluetooth-device-support)
+ - [Homematic IP Support](#homematic-ip-support)
+ - [Google Coral PCIe AI Accelerator Support](#google-coral-pcie-ai-accelerator-support)
+- [Other Changes](#other-changes)
+
+## Operating System Changes
+
+### OS Agent
+
+Operating System release 6 comes with a new, Go written daemon called OS Agent.
+This allows the Supervisor to access more aspects of the OS. One such aspect is
+to move the data to an external data disk or wipe data to start over without
+reinstalling. Note however that at this point, the required logic in the
+Supervisor and Frontend is still being developed.
+
+### Under the Hood
+
+Under the hood, the OS was updated to the latest upstream Linux 5.10 kernel
+as well as Buildroot 2021.02.1. The latest Buildroot release brings tons of
+new software versions along with bug and security fixes. Some key components
+which received an update were systemd 247 and the Docker Container Engine
+20.10.6.
+
+### Other Changes
+
+- The short name of the OS used throughout the software stack was renamed to
+ "haos". From a users perspective not much changes, but it leads to new file
+ names.
+- The Home Assistant CLI is now started on tty1 instead of the login prompt. The
+ HA CLI banner shows the IP and other device information without the need
+ to attach a keyboard to login.
+- The default shell of the root user is now the Busybox ash. This allows to use
+ scp and similar tools using SSH.
+- The system start is now delayed until the system time has been synchronized
+ with an NTP server. This avoids connection issues to SSL/TLS enabled servers
+ when the system time is off. In practice, the delay should only be a few
+ seconds. The system proceeds with startup after 90s in case the NTP server was
+ not reachable (e.g. if no Internet connectivity is available).
+
+## Device Support
+
+### Raspberry Pi
+
+All Raspberry Pi versions were updated to use the Linux Kernel 5.10 from the
+Raspberry Pi team, just like Raspberry Pi OS. The latest Bluetooth firmware for
+CYW43455 (Raspberry Pi 3 B+/4) with security fixes is now part of the Raspberry
+Pi images.
+
+### Generic x86-64
+
+In Home Assistant OS 6 the board/image "Intel NUC" was renamed to "Generic
+x86-64". Existing "Intel NUC" installation will automatically migrate to the
+"Generic x86-64" image on update.
+
+Already with OS 5 the "Intel NUC" image was usable for most UEFI capable x86-64
+systems. With the rename that fact is emphasized. Home Assistant OS is open
+to changes to add drivers to extend support for other x86-64 platforms. However,
+keep in mind that we don't have access to all x86-64 hardware, so support for
+devices is on a best effort basis.
+
+Other Changes:
+
+- The Intel IGC network driver supports Intel network cards such as I225-LM/I225-V
+ used on some newer Intel NUC devices.
+
+- With Home Assistant OS 6 the latest version of the Barebox bootloader 2021.05.0
+ which fixes boot from hard disks larger than 2TB.
+
+- The ACPI kernel driver for Thinkpad devices is enabled.
+
+### Open Virtualization Appliance
+
+The virtual disk images are now built from a sparse file as source, which leads
+to smaller effective disk image sizes. Disk images are now also distributed in
+the more common zip file format (except the qcow2 images which are mostly used on
+Linux, they continue to be in the xz compression format).
+
+By default, the image now has a serial console enabled which is useful to access
+Home Assistant OS on headless host systems.
+
+### Additional Wi-Fi and Bluetooth Device Support
+
+Ralink rt27xx/rt28xx/rt30xx, as well as Realtek 87xx/88xx devices, are now
+supported on boards that don't have onboard Wi-Fi/Bluetooth. This is also
+true for the OVA image for virtualized environments (when using hardware
+passthrough functionality). For the OVA image, also Intel firmwares are now
+part of the image so that Intel Wi-Fi/Bluetooth devices can be used in
+passthrough mode as well.
+
+### Homematic IP Support
+
+[@jens-maus] contributed OS support for Homematic/Homematic IP dual-stack support
+for RPI-RF-MOD or HM-MOD-RPI-PCB devices. This together with the
+[RaspberryMatic CCU Add-On](https://github.com/jens-maus/RaspberryMatic/wiki/Installation-HomeAssistant)
+offers the full functionality of RaspberryMatic embedded in Home Assistant.
+
+### Google Coral PCIe AI Accelerator Support
+
+[@ryddler] enabled the driver for Google Coral PCIe TPU devices. This allows to
+use Google Coral Mini PCIe Accelerator or M.2 Accelerator on all boards
+supporting PCIe.
+
+
+That's all Folks! Now go out and update!
+
+[@jens-maus]: https://github.com/jens-maus
+[@ryddler]: https://github.com/ryddler
diff --git a/source/_posts/2021-06-11-community-highlights.markdown b/source/_posts/2021-06-11-community-highlights.markdown
new file mode 100644
index 00000000000..017cfb2016d
--- /dev/null
+++ b/source/_posts/2021-06-11-community-highlights.markdown
@@ -0,0 +1,118 @@
+---
+title: "Community Highlights: 25th edition"
+description: "Fool possible burglars by pretending you are at home with a blueprint, get started with a floorplan in your Lovelace dashboard and keep an eye on your own brewed beer."
+date: 2021-06-11 01:00:00
+date_formatted: "June 11, 2021"
+author: Klaas Schoute
+author_twitter: klaasnicolaas
+categories: Community
+og_image: /images/blog/2021-06-11-community-highlights/social.png
+---
+
+The 25th edition of the Home Assistant Community Highlights! Some interesting
+things popped up around our community, which we thought was worth sharing.
+
+Also, keep an eye out for the ESPHome release next week Wednesday. We're
+going to have some great announcements!
+
+Do you want to share something for the next edition?
+Information on [how to share](#got-a-tip-for-the-next-edition).
+
+./Klaas
+*Intern on Home Assistant Energy*
+
+## Blueprint of the week
+------
+
+Are there more people who turn their lights on and off at certain times
+when they go on holiday?
+
+{% my blueprint_import badge blueprint_url="https://community.home-assistant.io/t/vacation-lighting-replay-historical-lighting/282435" %}
+
+This week's blueprint is that of [timgiwo](https://community.home-assistant.io/u/timgiwo),
+who created a blueprint that can repeat the behavior of your lights from
+the past week, so it seems like you are still at home. Try it out! Read more
+about it on the [community forum][week_blueprint] or install this automation
+in your instance with a click on the My button!
+
+## Slider Button Card
+------
+
+
+
+[Mattieha](https://github.com/mattieha) made a [button card](https://github.com/mattieha/slider-button-card)
+that also included a slider, so you could, for example: switch a light but
+also immediately adjust the brightness with the slider. Useful for those who
+want to keep their dashboard compact.
+
+
+
+## Floorplan Dashboard
+------
+
+This week again we have a new Lovelace dashboard for the necessary portion
+of inspiration 😄 This time the one from [theone11](https://github.com/theone11)
+who has a [dashboard](https://github.com/theone11/HomeAssistantConfig) with a
+floorplan, definitely recommended to take a look at the repository because
+there is a lot of explanation on it.
+
+
+
+
+
+Would you also like your dashboard to be in the community highlight? Drop it
+on [Reddit][reddit] and maybe I'll pick it out for the next edition.
+
+## Ispindel
+------
+
+
+
+Between the community submissions, we came across a [nice project](https://github.com/alsFC/esphome-iSpindel)
+that works with [ESPHome][esphome], it's a sensor with which you can
+monitor your own homebrew, for example, the alcohol percentage and the
+temperature. Cheers [Alexander](https://github.com/alsFC)! 🍻
+
+## Got a tip for the next edition?
+------
+
+Have you seen (or made) something awesome, interesting, unique, amazing,
+inspirational, unusual or funny, using Home Assistant?
+
+[Click here to send us your Community Highlight suggestion](/suggest-community-highlight).
+
+Also, don't forget to share your creations with us via Social Media:
+
+- Tweet it! Be sure to mention [@home_assistant][twitter]
+- Share it on our [Facebook group][facebook-group]
+- Post it to our [subreddit][reddit]
+- Tag [@homeasssistant][instagram] on Instagram
+- Or via chat, drop us a line in the [#lounge at Discord][chat]
+
+See you next edition!
+
+[chat]: https://www.home-assistant.io/join-chat
+[facebook-group]: https://www.facebook.com/groups/HomeAssistant
+[instagram]: https://www.instagram.com/homeassistant
+[reddit]: https://www.reddit.com/r/homeassistant
+[twitter]: https://www.twitter.com/home_assistant
+[blueprints]: https://community.home-assistant.io/c/blueprints-exchange
+[community]: https://community.home-assistant.io
+[esphome]: https://esphome.io
+[week_blueprint]: https://community.home-assistant.io/t/vacation-lighting-replay-historical-lighting/282435
\ No newline at end of file
diff --git a/source/_posts/2021-06-16-power-up-your-esp-projects.markdown b/source/_posts/2021-06-16-power-up-your-esp-projects.markdown
new file mode 100644
index 00000000000..44a18e9374a
--- /dev/null
+++ b/source/_posts/2021-06-16-power-up-your-esp-projects.markdown
@@ -0,0 +1,261 @@
+---
+title: "Power-up your ESP8266 and ESP32 projects: browser-based installation and configure Wi-Fi via Bluetooth LE"
+description: "Power-up your ESP8266 and ESP32 projects: browser-based installation, configure Wi-Fi via Bluetooth LE and a renewed ESPHome dashboard!"
+date: 2021-06-16 00:00:00
+date_formatted: "June 16, 2021"
+author: Paulus Schoutsen
+author_twitter: balloob
+categories: Announcements
+og_image: /images/blog/2021-06-power-up-your-esp-projects/social.png
+---
+
+ESP8266 and ESP32 are microcontrollers made by the Chinese company Espressif.
+Microcontrollers are teeny tiny computers with little processor power,
+memory and space that can interact with sensors, send infrared commands
+and many other things.
+
+With the ESP devices Espressif has achieved something formidable: their devices
+have Wi-Fi, are compatible with code for the popular Arduino microcontroller
+and they are cheap. Like, $5-including-shipping-from-China-cheap
+([AliExpress][aliexpress]) or $15 for 2 on [Amazon][amazon] cheap.
+So cheap that they are the de facto standard for microcontrollers used in
+IoT products, both for manufacturers and creators in the DIY space.
+
+
+
+ Quindor and DrZzs playing with an ESP32-based QuinLED running WLED
+ (YouTube)
+
+
+Microcontrollers are just computers and so are nothing without their software.
+Open source software like [ESPHome][esphome], [WLED][wled] and
+[Tasmota][tasmota] allow users to turn their ESP8266 and ESP32 devices into
+powerful little machines that can gather information and control devices.
+In your home, microcontrollers are the eyes and ears while Home Assistant
+is the brain.
+
+But these projects all have a common problem: it is difficult to get started.
+We identified three pain points:
+
+1. Installing the software on the microcontroller.
+2. Connecting the microcontroller to your wireless network.
+3. Configure the software on the microcontroller.
+
+These pain points stand in the way for creators to reach a wider audience. It’s
+our mission to make local home automation succeed, and these projects,
+and all the possibilities that they unlock, are an important part of this.
+
+**Today, we are introducing some things to make using microcontrollers easier.**
+
+## Using terms everybody understands
+
+We are going to start using words that a user understands instead of forcing
+the technical terms on them. Terms like _“firmware”_ and _“flashing”_ are the
+correct terminology but for inexperienced users they do more harm than good.
+They will make the user feel uncomfortable before they even start.
+
+So instead of _“upload firmware”_ we’ve updated the ESPHome dashboard to talk
+about _“installing”_. We are encouraging other projects to do the same.
+
+Things will get more technical as a user continues playing with microcontrollers.
+But this change might just be that little thing why they will actually continue.
+
+## ESP Web Tools: Installing projects on your microcontroller via the browser
+
+We have created [ESP Web Tools][esp-web-tools]. ESP Web Tools allows project
+websites to offer a great onboarding by enabling users to install the software
+on their microcontrollers via their browser. All the user has to do is connect
+their microcontroller to their computer and hit the install button on the
+website. ESP Web Tools will automatically select the right build for your
+microcontroller and install it.
+
+This works for both the ESP8266 and ESP32 and with any project for these
+devices. This technology is powered by Web Serial, a web standard for serial
+communication that is part of Google Chrome and Microsoft Edge.
+
+ESP Web Tools Web has already been adopted as part of the onboarding by
+[WLED][wled] and [ESPEasy][espeasy].
+
+
+
+
+
+[Learn how to add ESP Web Tools to your website][add-esp-web-tools]
+
+If you have an ESP32 or ESP8266 device handy, you can try it out right here:
+
+
+
+
+
+ESP Web Tools uses [code][adafruit-esptool] written by
+[@MakerMelissa][makermelissa] from [Adafruit][adafruit]. We’re currently relying
+on an enhanced fork that can fit a wider range of use cases, including ours.
+We have a pull request open to get our changes contributed back.
+
+[ESP Web Tools website][esp-web-tools]
+
+_Note: We don’t like to use technology that is not available in all browsers
+and cannot be made available in other ways. However, in this case the benefits
+outweigh the cons. We hope that Firefox and WebKit add support for Web Serial
+in the future._
+
+## Improv Wi-Fi: Open standard to provision Wi-Fi credentials via Bluetooth Low Energy
+
+We have created [Improv Wi-Fi][improv]. Improv Wi-Fi is a free and open standard
+that anyone can use to offer a user-friendly way for users to connect their
+devices to the wireless network.
+
+
+
+
+
+For open source firmware there are two popular ways of getting a device to
+connect to your wireless network. The device sets up a wireless network and you
+need to connect to it via your phone or laptop, or the user compiles the
+network and password into the firmware before installing it on the ESP.
+Both methods are difficult and error prone, they offer a bad user experience.
+
+If you look at off-the-shelf products, you see another approach:
+send Wi-Fi credentials to the device via Bluetooth Low Energy (BLE). BLE allows
+the user to get instant feedback if something goes wrong. This technology is
+used in many products, but there is no open standard that is free to implement.
+Improv Wi-Fi is an open standard that is free to implement.
+
+Open source projects often host their control interface as a website on the
+ESP device. Improv Wi-Fi supports this and when provisioning is done, the user
+can be redirected to a URL to finish onboarding.
+
+
+
+
+
+Improv Wi-Fi can be used today to provision ESP32 microcontrollers running
+[ESPHome][esphome] (ESP8266 devices do not support BLE). Users will soon be
+able to provision devices with the Improv Wi-Fi service via the Home Assistant
+Android and iOS apps. All these implementations are open source and can be used
+in your projects.
+
+Improv Wi-Fi is also available for the web in the form of a button that can be
+added to your website. This will allow users to configure and set up a device
+from any browser that supports Web Bluetooth.
+
+If you’ve used the installation button in the previous section but have not yet
+connected it to the wireless network, you can onboard that device here:
+
+
+
+
+
+[Improv Wi-Fi website][improv]
+
+## ESPHome Dashboard: simplified and streamlined
+
+With [ESPHome][esphome] users don’t program microcontrollers, they configure
+them. Tell ESPHome there is a temperature sensor on pin 3 of your ESP device
+and ESPHome will install custom software on your ESP device that makes this
+information available in Home Assistant.
+
+```yaml
+# Example ESPHome configuration
+sensor:
+ - platform: dht
+ pin: D2
+ temperature:
+ name: "Living Room Temperature"
+ humidity:
+ name: "Living Room Humidity"
+ update_interval: 60s
+```
+
+
+
+
+
+The ESPHome Dashboard has been updated with a simplified and streamlined wizard
+for new configurations. You now enter the name of your project and your Wi-Fi
+credentials and it will install it on your ESP device via the browser. After
+that all further updates will happen wirelessly.
+
+
+
+
+
+## ESPHome: embracing projects
+
+We want to make it easy for creators to sell ESPHome powered products that offer
+a great user experience. ESPHome projects embrace local control and integrate
+nicely with Home Assistant, and so each extra ESPHome product that our users
+can buy is a win.
+
+To make it easier to keep creators and users connected once a product is
+installed, projects can now add a project identifier and version to their
+firmware ([docs][esphome-project]). With
+today’s release this information will be available in the device information,
+logging output and the mDNS discovery info.
+
+The goal is to integrate the projects tighter into the ESPHome dashboard by
+showing the project’s logo, link to the documentation and issue pages and allow
+installing updates.
+
+## Why we build this
+
+Home Assistant’s mission is to make local home automation a viable alternative
+to cloud based solutions and accessible to everyone.
+
+To make this mission a reality, we started the company Nabu Casa. Together with
+the community, Nabu Casa develops Home Assistant and ESPHome and is funded
+solely by people that support this mission. No investors or loans.
+
+If you want to help fund our work, subscribe to [Home Assistant Cloud][nabucasa].
+
+[adafruit-esptool]: https://github.com/adafruit/Adafruit_WebSerial_ESPTool
+[adafruit]: https://www.adafruit.com
+[add-esp-web-tools]: https://esphome.github.io/esp-web-tools/#add-website
+[aliexpress]: https://www.aliexpress.com/item/1005002354577296.html
+[amazon]: https://amzn.to/35cUvGj
+[esp-web-tools]: https://esphome.github.io/esp-web-tools/
+[espeasy]: https://github.com/letscontrolit/ESPEasy
+[esphome-project]: https://www.esphome.io/components/esphome.html#project-information
+[esphome]: https://www.esphome.io
+[improv]: https://www.improv-wifi.com
+[makermelissa]: https://github.com/MakerMelissa
+[nabucasa]: https://www.nabucasa.com
+[tasmota]: https://tasmota.github.io/docs/
+[wled]: https://wled.me
diff --git a/source/_posts/2021-06-18-community-highlights.markdown b/source/_posts/2021-06-18-community-highlights.markdown
new file mode 100644
index 00000000000..d0f11226adb
--- /dev/null
+++ b/source/_posts/2021-06-18-community-highlights.markdown
@@ -0,0 +1,119 @@
+---
+title: "Community Highlights: 26th edition"
+description: "Another new blueprint for your lights when it's dark, get started with 3D floorplans and make household chores a bit more fun with a chores tracker."
+date: 2021-06-18 01:00:00
+date_formatted: "June 18, 2021"
+author: Klaas Schoute
+author_twitter: klaasnicolaas
+categories: Community
+og_image: /images/blog/2021-06-18-community-highlights/social.png
+---
+
+The 26th edition of the Home Assistant Community Highlights! Some interesting
+things popped up around our community, which we thought was worth sharing.
+
+Do you want to share something for the next edition?
+Information on [how to share](#got-a-tip-for-the-next-edition).
+
+./Klaas
+*Intern on Home Assistant Energy*
+
+## Power-up your ESPHome Projects
+------
+
+
+
+
+
+Speaking of interesting stuff, have you seen what cool new stuff has come to
+[ESPHome][esphome]? Read more about it in [this blog](/blog/2021/06/16/power-up-your-esp-projects/).
+
+## Blueprint of the week
+------
+
+{% my blueprint_import badge blueprint_url="https://gist.github.com/Danielbook/7814e7eb32e880b2d7c3fb5ba8430f4f" %}
+
+This week's blueprint is that of [danielbook](https://community.home-assistant.io/u/danielbook),
+who created a blueprint that turns on the lights of a room based on a motion
+and brightness sensor. You will no longer be in the dark when you get
+home 😉 Try it out! Read more about it on the [community forum][week_blueprint]
+or install this automation in your instance with a click on the My button!
+
+## Floor3D Card
+------
+
+
+
+
+
+Last time we shared a [dashboard with floorplan][floorplan], this time the
+[floor3D card](https://github.com/adizanni/floor3d-card) from [adizanni](https://github.com/adizanni),
+which you can use to get started with your own floorplan.
+
+
+
+## Lovelace Dashboard
+------
+
+This week again we have a new Lovelace dashboard for the necessary portion
+of inspiration 😄 This time the one from [suckfail](https://www.reddit.com/user/suckfail/)
+which has a [dashboard](https://www.reddit.com/r/homeassistant/comments/nzn9u9/current_ha_dashboard_updated/)
+with a variety of cards. If you want to know more about it, check out the
+comment part on Reddit.
+
+
+
+
+
+Would you also like your dashboard to be in the community highlight? Drop it
+on [Reddit][reddit] and maybe I'll pick it out for the next edition.
+
+## Chore Tracker
+------
+
+
+
+Are you tired of doing those household chores all the time, or do the kids
+just don't want to unload the dishwasher? Make it more fun with the
+[chores tracker][chores] made by [djbrooks022](https://community.home-assistant.io/u/djbrooks022),
+where you can earn points for every chore you complete!
+
+Do you want to get started? Then find all the information [here][chores].
+
+## Got a tip for the next edition?
+------
+
+Have you seen (or made) something awesome, interesting, unique, amazing,
+inspirational, unusual or funny, using Home Assistant?
+
+[Click here to send us your Community Highlight suggestion](/suggest-community-highlight).
+
+Also, don't forget to share your creations with us via Social Media:
+
+- Tweet it! Be sure to mention [@home_assistant][twitter]
+- Share it on our [Facebook group][facebook-group]
+- Post it to our [subreddit][reddit]
+- Tag [@homeasssistant][instagram] on Instagram
+- Or via chat, drop us a line in the [#lounge at Discord][chat]
+
+See you next edition!
+
+[chat]: https://www.home-assistant.io/join-chat
+[facebook-group]: https://www.facebook.com/groups/HomeAssistant
+[instagram]: https://www.instagram.com/homeassistant
+[reddit]: https://www.reddit.com/r/homeassistant
+[twitter]: https://www.twitter.com/home_assistant
+[blueprints]: https://community.home-assistant.io/c/blueprints-exchange
+[community]: https://community.home-assistant.io
+[esphome]: https://esphome.io
+[floorplan]: /blog/2021/06/11/community-highlights/#floorplan-dashboard
+[chores]: https://community.home-assistant.io/t/created-a-chore-tracker-with-points-system-in-home-assistant/316175
+[week_blueprint]: https://community.home-assistant.io/t/simple-motion-activation-blueprint-with-illuminance-taken-into-account/308735
\ No newline at end of file
diff --git a/source/_redirects b/source/_redirects
index fe57e8f7883..a4ac105a185 100644
--- a/source/_redirects
+++ b/source/_redirects
@@ -2044,6 +2044,7 @@
/ecosystem/notebooks/installation https://data.home-assistant.io
/ecosystem/notebooks/stats https://data.home-assistant.io
/ios/whats-new https://companion.home-assistant.io/docs/getting_started/getting-started
+/installation/nuc /installation/generic-x86-64
/integrations/auth /docs/authentication
/integrations/automation /docs/automation
/integrations/blueprint /docs/automation/using_blueprints
diff --git a/source/images/blog/2021-06-11-community-highlights/button.gif b/source/images/blog/2021-06-11-community-highlights/button.gif
new file mode 100644
index 00000000000..2628f3717e7
Binary files /dev/null and b/source/images/blog/2021-06-11-community-highlights/button.gif differ
diff --git a/source/images/blog/2021-06-11-community-highlights/ispindel.png b/source/images/blog/2021-06-11-community-highlights/ispindel.png
new file mode 100644
index 00000000000..5b47c21617a
Binary files /dev/null and b/source/images/blog/2021-06-11-community-highlights/ispindel.png differ
diff --git a/source/images/blog/2021-06-11-community-highlights/social.png b/source/images/blog/2021-06-11-community-highlights/social.png
new file mode 100644
index 00000000000..4b2838da61b
Binary files /dev/null and b/source/images/blog/2021-06-11-community-highlights/social.png differ
diff --git a/source/images/blog/2021-06-11-os6/social.png b/source/images/blog/2021-06-11-os6/social.png
new file mode 100644
index 00000000000..83545ceeea3
Binary files /dev/null and b/source/images/blog/2021-06-11-os6/social.png differ
diff --git a/source/images/blog/2021-06-18-community-highlights/chores.png b/source/images/blog/2021-06-18-community-highlights/chores.png
new file mode 100644
index 00000000000..0f41387aacf
Binary files /dev/null and b/source/images/blog/2021-06-18-community-highlights/chores.png differ
diff --git a/source/images/blog/2021-06-18-community-highlights/social.png b/source/images/blog/2021-06-18-community-highlights/social.png
new file mode 100644
index 00000000000..6a6f9f6650e
Binary files /dev/null and b/source/images/blog/2021-06-18-community-highlights/social.png differ
diff --git a/source/images/blog/2021-06-power-up-your-esp-projects/dht22.png b/source/images/blog/2021-06-power-up-your-esp-projects/dht22.png
new file mode 100644
index 00000000000..bd4f035ee19
Binary files /dev/null and b/source/images/blog/2021-06-power-up-your-esp-projects/dht22.png differ
diff --git a/source/images/blog/2021-06-power-up-your-esp-projects/quindor-drzzs-esp32-wled.png b/source/images/blog/2021-06-power-up-your-esp-projects/quindor-drzzs-esp32-wled.png
new file mode 100644
index 00000000000..20f89a3a6c3
Binary files /dev/null and b/source/images/blog/2021-06-power-up-your-esp-projects/quindor-drzzs-esp32-wled.png differ
diff --git a/source/images/blog/2021-06-power-up-your-esp-projects/social.png b/source/images/blog/2021-06-power-up-your-esp-projects/social.png
new file mode 100644
index 00000000000..c51e6e574c7
Binary files /dev/null and b/source/images/blog/2021-06-power-up-your-esp-projects/social.png differ
diff --git a/source/images/improv-logo.svg b/source/images/improv-logo.svg
new file mode 100644
index 00000000000..c44bc0144d5
--- /dev/null
+++ b/source/images/improv-logo.svg
@@ -0,0 +1,3 @@
+
diff --git a/source/images/installation/generic-x86-64.svg b/source/images/installation/generic-x86-64.svg
new file mode 100644
index 00000000000..0e5f4e3ad54
--- /dev/null
+++ b/source/images/installation/generic-x86-64.svg
@@ -0,0 +1,274 @@
+
+
+
+
diff --git a/source/images/installation/intel-nuc-disable-secure-boot.jpg b/source/images/installation/intel-nuc-disable-secure-boot.jpg
new file mode 100644
index 00000000000..e7ef999d080
Binary files /dev/null and b/source/images/installation/intel-nuc-disable-secure-boot.jpg differ
diff --git a/source/images/installation/intel-nuc-enter-bios.jpg b/source/images/installation/intel-nuc-enter-bios.jpg
new file mode 100644
index 00000000000..e5d941715f1
Binary files /dev/null and b/source/images/installation/intel-nuc-enter-bios.jpg differ
diff --git a/source/images/installation/intel-nuc-uefi-boot.jpg b/source/images/installation/intel-nuc-uefi-boot.jpg
new file mode 100644
index 00000000000..10af6c01147
Binary files /dev/null and b/source/images/installation/intel-nuc-uefi-boot.jpg differ
diff --git a/source/images/installation/intel-nuc.svg b/source/images/installation/intel-nuc.svg
deleted file mode 100644
index 129840103d3..00000000000
--- a/source/images/installation/intel-nuc.svg
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
diff --git a/source/images/installation/linux.png b/source/images/installation/linux.png
deleted file mode 100644
index 3267f340769..00000000000
Binary files a/source/images/installation/linux.png and /dev/null differ
diff --git a/source/images/installation/linux.svg b/source/images/installation/linux.svg
new file mode 100644
index 00000000000..6e31c9cdc98
--- /dev/null
+++ b/source/images/installation/linux.svg
@@ -0,0 +1,1577 @@
+
+
diff --git a/source/installation/nuc.markdown b/source/installation/generic-x86-64.markdown
similarity index 64%
rename from source/installation/nuc.markdown
rename to source/installation/generic-x86-64.markdown
index dac96c15fa6..89d4c55e1b5 100644
--- a/source/installation/nuc.markdown
+++ b/source/installation/generic-x86-64.markdown
@@ -1,7 +1,7 @@
---
-title: "Intel NUC"
-description: "Install Home Assistant on Intel NUC"
-installation_type: nuc
+title: "Generic x86-64"
+description: "Install Home Assistant on Generic x86-64 systems (e.g. Intel NUC)"
+installation_type: generic-x86-64
---
{% comment %}
Included sections for this page is located under source/_includes/getting-started/installation
diff --git a/source/installation/index.html b/source/installation/index.html
index f5f6b70e4f3..76755c98269 100644
--- a/source/installation/index.html
+++ b/source/installation/index.html
@@ -98,15 +98,15 @@ toc: true