@@ -209,7 +209,7 @@ Currently, the following domains are available to be used with Google Assistant,
- scene (on)
- script (on)
- switch (on/off)
-- fan (on/off/speed)
+- fan (on/off/speed percentage/preset mode)
- light (on/off/brightness/rgb color/color temp)
- lock
- cover (on/off/set position)
diff --git a/source/_integrations/google_travel_time.markdown b/source/_integrations/google_travel_time.markdown
index 15c9e41feef..2e567249ef8 100644
--- a/source/_integrations/google_travel_time.markdown
+++ b/source/_integrations/google_travel_time.markdown
@@ -23,6 +23,10 @@ A quota can be set against the API to avoid exceeding the free credit amount. Se
{% include integrations/config_flow.md %}
+## Manual Polling
+
+Using automatic polling can lead to calls that exceed your API limit, especially when you are tracking multiple travel times using the same API key. To use more granular polling, disable automated polling in your config entry's System Options. To manually trigger a polling request, call the [`homeassistant.update_entity` service](/integrations/homeassistant/#service-homeassistantupdate_entity) as needed, either manually or via automations.
+
## Dynamic Configuration
Tracking can be setup to track entities of type `device_tracker`, `zone`, `sensor` and `person`. If an entity is placed in the Origin or Destination then every 5 minutes when the platform updates it will use the latest location of that entity.
diff --git a/source/_integrations/heos.markdown b/source/_integrations/heos.markdown
index 8ba06854109..8184209445c 100644
--- a/source/_integrations/heos.markdown
+++ b/source/_integrations/heos.markdown
@@ -84,7 +84,7 @@ media_content_id: "Awesome Music"
#### Play Quick Select
-You can play a HEOS Quick Select by nubmer or name with the `media_player.play_media` service. Example service data payload:
+You can play a HEOS Quick Select by number or name with the `media_player.play_media` service. Example service data payload:
```yaml
entity_id: media_player.office
diff --git a/source/_integrations/here_travel_time.markdown b/source/_integrations/here_travel_time.markdown
index b019a13aa51..5adeeb0b93f 100644
--- a/source/_integrations/here_travel_time.markdown
+++ b/source/_integrations/here_travel_time.markdown
@@ -21,7 +21,7 @@ You need to register for an API key (REST & XYZ HUB API/CLI) by following the in
HERE offers a Freemium Plan which includes 250,000 free Transactions per month. For the Routing API, one transaction equals one request with one starting point (no multi stop). More information can be found [here](https://developer.here.com/faqs#payment-subscription)
-By default HERE will deactivate your account if you exceed the free Transaction limit for the month. You can add payment details to reenable your account as described [here](https://developer.here.com/faqs)
+By default HERE will deactivate your account if you exceed the free Transaction limit for the month. You can add payment details to re-enable your account as described [here](https://developer.here.com/faqs)
### Migrate from app_code to api_key
diff --git a/source/_integrations/homekit.markdown b/source/_integrations/homekit.markdown
index 8e4bef5c975..401b8269cea 100644
--- a/source/_integrations/homekit.markdown
+++ b/source/_integrations/homekit.markdown
@@ -468,7 +468,7 @@ The following home hubs have been reported to have trouble with a large number o
1. Delete the `HomeKit` integration in the **{% my integrations %}** screen.
2. **Restart** Home Assistant.
- 3. The configuration will be automaticlly reimported from YAML.
+ 3. The configuration will be automatically reimported from YAML.
4. [Pair the bridge or accessory](#setup).
### Resetting when created via the **Integrations** screen
diff --git a/source/_integrations/homematic.markdown b/source/_integrations/homematic.markdown
index 1846d13772b..955bde8d262 100644
--- a/source/_integrations/homematic.markdown
+++ b/source/_integrations/homematic.markdown
@@ -475,11 +475,11 @@ automation:
The important part is the `sensor.time` entity (from time_date component). This will update the binary sensor on every change of the sensor and every minute. If the Homematic sensor does not send any updates anymore, the `sensor.time` will set the binary sensor to `off` 10 minutes after the last sensor update. This will trigger the automation.
-- If you have a CCU you can also create a system variable on the CCU, which stores its last reboot time. Since Home Assistant can still refresh system variables from the CCU (even after a reboot) this is another option to call *homematic.reconnect*. Even though this option might look preferrable to many since it does not rely on a sensor, **it is less fail-safe** than checking for updates of a sensor. Since the variable on the CCU is only changed on boot, any problem that causes the connection between Home Assistant and the CCU to break but will not result in a reboot will not be detected (eg. in case of networking issues). This is how this can be done:
+- If you have a CCU you can also create a system variable on the CCU, which stores its last reboot time. Since Home Assistant can still refresh system variables from the CCU (even after a reboot) this is another option to call *homematic.reconnect*. Even though this option might look preferable to many since it does not rely on a sensor, **it is less fail-safe** than checking for updates of a sensor. Since the variable on the CCU is only changed on boot, any problem that causes the connection between Home Assistant and the CCU to break but will not result in a reboot will not be detected (eg. in case of networking issues). This is how this can be done:
1. Create a string variable **V_Last_Reboot** on the CCU
- 2. Creata a new programm on the CCU **without any conditions**, which executes the following *HM-Script* with a delay of 30 seconds. The Script needs to be implemented within the section `Activity: Then`.
+ 2. Create a new program on the CCU **without any conditions**, which executes the following *HM-Script* with a delay of 30 seconds. The script needs to be implemented within the section `Activity: Then`.
```javascript
var obj = dom.GetObject("V_Last_Reboot");
diff --git a/source/_integrations/http.markdown b/source/_integrations/http.markdown
index 8c09417060d..2578418472a 100644
--- a/source/_integrations/http.markdown
+++ b/source/_integrations/http.markdown
@@ -105,13 +105,16 @@ 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/).
+## Reverse proxies
+
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
+ - 10.0.0.200 # Add the IP address of the proxy server
+ - 172.30.33.0/24 # You may also provide the subnet mask
```
## APIs
diff --git a/source/_integrations/hvv_departures.markdown b/source/_integrations/hvv_departures.markdown
index 6a86714e9ec..8932d4d2ced 100644
--- a/source/_integrations/hvv_departures.markdown
+++ b/source/_integrations/hvv_departures.markdown
@@ -1,6 +1,6 @@
---
title: HVV Departures
-description: Display the departures of busses, trains and ferries in Hamburg within Home Assistant.
+description: Display the departures of buses, trains and ferries in Hamburg within Home Assistant.
ha_category:
- Transport
ha_iot_class: Cloud Polling
@@ -14,7 +14,7 @@ ha_platforms:
- sensor
---
-The `hvv_departures` sensor will display the departures of busses, trains and ferries in Hamburg.
+The `hvv_departures` sensor will display the departures of buses, trains and ferries in Hamburg.
{% include integrations/config_flow.md %}
diff --git a/source/_integrations/hydrawise.markdown b/source/_integrations/hydrawise.markdown
index 48054314774..5a0f614ba1a 100644
--- a/source/_integrations/hydrawise.markdown
+++ b/source/_integrations/hydrawise.markdown
@@ -73,7 +73,7 @@ monitored_conditions:
{% endconfiguration %}
-The Hydrawise API removed the ability to read the rain sensor status. Therefore it is no longer suppored by the Hydrawise integration to Home Assistant.
+The Hydrawise API removed the ability to read the rain sensor status. Therefore it is no longer supported by the Hydrawise integration to Home Assistant.
## Sensor
diff --git a/source/_integrations/iammeter.markdown b/source/_integrations/iammeter.markdown
index 77cea09b626..13ad92c7eef 100644
--- a/source/_integrations/iammeter.markdown
+++ b/source/_integrations/iammeter.markdown
@@ -60,7 +60,7 @@ Sensors available in the library:
| wem3080_voltage | V | Voltage. |
| wem3080_current | A | current. |
| wem3080_power | W | active power. |
-| wem3080_importenergy | kWh | Energy consumption from gird |
+| wem3080_importenergy | kWh | Energy consumption from grid |
| wem3080_exportgrid | kWh | Energy export to grid |
### Three-phase energy meter (WEM3080T)
diff --git a/source/_integrations/icloud.markdown b/source/_integrations/icloud.markdown
index 1d571a5ae67..be5c4cd38f4 100644
--- a/source/_integrations/icloud.markdown
+++ b/source/_integrations/icloud.markdown
@@ -33,9 +33,23 @@ You may receive an email and a notification from Apple saying that someone has l
For the notification, press "Allow", then "OK".
+To prevent excessive battery drainage, a dynamic interval is used for each individual device instead of a fixed interval for all devices linked to one account. The dynamic interval is based on the current zone of a device, the distance towards home and the battery level of the device.
+
+## Two Factor Authentication
+
If two-step authentication is enabled for your iCloud account, some time after Home Assistant startup the integration will ask to enter the verification code you receive on your device via a notification in the Home Assistant UI. The duration of this authentication is determined by Apple, so you will need to verify your account every now and then.
-To prevent excessive battery drainage, a dynamic interval is used for each individual device instead of a fixed interval for all devices linked to one account. The dynamic interval is based on the current zone of a device, the distance towards home and the battery level of the device.
+### App Specific Passwords
+Apple allows you to provide an [App Specific Password](https://support.apple.com/en-gb/HT204397), which **don't require two factor authentication**, and one could argue more secure than storing your iCloud password within Home Assistant.
+#### How to generate an app-specific password
+
+1. Sign in to your [Apple ID account page](https://appleid.apple.com/account/home).
+2. In the Security section, click Generate Password below App-Specific Passwords.
+3. Follow the steps on your screen.
+
+After you generate your app-specific password, enter or paste it into the password field of the integration.
+
+Any time you change or reset your primary Apple ID password, all your app-specific passwords are revoked automatically to protect the security of your account. You'll need to generate new app-specific passwords for any apps that you want to continue using.
## In case of troubleshooting
diff --git a/source/_integrations/iqvia.markdown b/source/_integrations/iqvia.markdown
index 88669ff5d76..e7771363f15 100644
--- a/source/_integrations/iqvia.markdown
+++ b/source/_integrations/iqvia.markdown
@@ -17,7 +17,7 @@ The `iqvia` sensor platform collects and displays allergy, asthma and disease
information (based on a U.S. ZIP code) from [IQVIA](https://www.iqvia.com/).
Data measured includes:
-* Indicies for allergies, asthma and cold/flu indices
+* Indices for allergies, asthma and cold/flu indices
* Trends
* Current outlook
* more!
diff --git a/source/_integrations/joaoapps_join.markdown b/source/_integrations/joaoapps_join.markdown
index 8cd85102102..5e836b2ed02 100644
--- a/source/_integrations/joaoapps_join.markdown
+++ b/source/_integrations/joaoapps_join.markdown
@@ -56,7 +56,7 @@ device_names:
required: false
type: string
name:
- description: The name parameter is optional but needed if you want to use multiple notification platforms. The platform will be exposed as service `notify.`. The name will defailt to `notify` if not supplied. See the [Notifications Component](/integrations/notify) for more details.
+ description: The name parameter is optional but needed if you want to use multiple notification platforms. The platform will be exposed as service `notify.`. The name will default to `notify` if not supplied. See the [Notifications Component](/integrations/notify) for more details.
required: false
type: string
{% endconfiguration %}
diff --git a/source/_integrations/kaiterra.markdown b/source/_integrations/kaiterra.markdown
index 40161e7c8aa..7a7702f928c 100644
--- a/source/_integrations/kaiterra.markdown
+++ b/source/_integrations/kaiterra.markdown
@@ -15,7 +15,7 @@ ha_platforms:
The `kaiterra` integration allows you to view the readings from your Laser Egg or Sensedge device using the [Kaiterra REST API](https://www.kaiterra.com/dev/).
-To use the integration, you need to get the API key by signing up at [Kaiterra dashboard](https://dashboard.kaiterra.cn/), registring the device and create the key under `Settings -> Profile -> Developer`.
+To use the integration, you need to get the API key by signing up at [Kaiterra dashboard](https://dashboard.kaiterra.cn/), registering the device and create the key under `Settings -> Profile -> Developer`.
## Configuration
diff --git a/source/_integrations/keyboard_remote.markdown b/source/_integrations/keyboard_remote.markdown
index b119368b3a8..49a193f1b26 100644
--- a/source/_integrations/keyboard_remote.markdown
+++ b/source/_integrations/keyboard_remote.markdown
@@ -97,7 +97,7 @@ automation:
entity_id: light.all
```
-`device_descriptor` or `device_name` may be specificed in the trigger so the automation will be fired only for that keyboard. This is especially useful if you wish to use several Bluetooth remotes to control different devices. Omit them to ensure the same key triggers the automation for all keyboards/remotes.
+`device_descriptor` or `device_name` may be specified in the trigger so the automation will be fired only for that keyboard. This is especially useful if you wish to use several Bluetooth remotes to control different devices. Omit them to ensure the same key triggers the automation for all keyboards/remotes.
## Disconnections
diff --git a/source/_integrations/lannouncer.markdown b/source/_integrations/lannouncer.markdown
index 6659329cbb4..9c7cf4b5f24 100644
--- a/source/_integrations/lannouncer.markdown
+++ b/source/_integrations/lannouncer.markdown
@@ -59,7 +59,7 @@ Spoken messages is the default method (`speak`). You just invoke the `notify` se
}
```
-The second method is to play notifications (`alarm`). There are 4 build-in sounds (`chime`, `doorbell`, `alarm` and `siren`).
+The second method is to play notifications (`alarm`). There are 4 built-in sounds (`chime`, `doorbell`, `alarm` and `siren`).
```json
{
diff --git a/source/_integrations/lcn.markdown b/source/_integrations/lcn.markdown
index 7b165df86b2..09bc96b1ef2 100644
--- a/source/_integrations/lcn.markdown
+++ b/source/_integrations/lcn.markdown
@@ -627,7 +627,7 @@ data:
```
- Ensure that the LCN module is configured properly to provide acces to the defined variable.
+ Ensure that the LCN module is configured properly to provide access to the defined variable.
Otherwise the module might show unexpected behaviors or return error messages.
diff --git a/source/_integrations/light.markdown b/source/_integrations/light.markdown
index a77cf71bb23..03a0f492050 100644
--- a/source/_integrations/light.markdown
+++ b/source/_integrations/light.markdown
@@ -22,7 +22,7 @@ profile,color_x,color_y,brightness,transition
The field transition is optional and can be omitted.
-The `.default` suffix should be added to the entity identifier of each light to define a default value, e.g., for `light.ceiling_2` the `profile` field is `light.ceiling_2.default`. To define a default for all lights, the identifier `group.all_lights.default` can be used. Individual settings always supercede the `all_lights` default setting.
+The `.default` suffix should be added to the entity identifier of each light to define a default value, e.g., for `light.ceiling_2` the `profile` field is `light.ceiling_2.default`. To define a default for all lights, the identifier `group.all_lights.default` can be used. Individual settings always supersede the `all_lights` default setting.
diff --git a/source/_integrations/magicseaweed.markdown b/source/_integrations/magicseaweed.markdown
index 5d2905b08bd..e0d8bcf55b5 100644
--- a/source/_integrations/magicseaweed.markdown
+++ b/source/_integrations/magicseaweed.markdown
@@ -10,11 +10,11 @@ ha_platforms:
- sensor
---
-The `magicseaweed` platform uses the [Magicseaweed Forecast API](https://magicseaweed.com/developer/forecast-api) as a source for surf forecasting data for the surf spots of your choice.
+The `magicseaweed` platform uses the [Magicseaweed Forecast API](https://magicseaweed.com/docs/developers/59/) as a source for surf forecasting data for the surf spots of your choice.
## Setup
-You need an API key which is free but requires [registration](https://magicseaweed.com/developer/sign-up). Magicseaweed is limiting users of the API to 1 spot for the free plan.
+You need an API key which is free but requires [registration](https://magicseaweed.com/docs/developers/59/sign-up/9908/). Magicseaweed is limiting users of the API to 1 spot for the free plan.
## Configuration
@@ -63,7 +63,7 @@ hours:
12AM:
description: Display forecast for 12AM.
spot_id:
- description: ID of the surf spot. Details for getting spot id available at [Magicseaweed](https://magicseaweed.com/developer/forecast-api)
+ description: ID of the surf spot. Details for getting spot id available at [Magicseaweed](https://magicseaweed.com/docs/developers/59/)
required: true
type: string
monitored_conditions:
@@ -84,4 +84,4 @@ units:
type: string
{% endconfiguration %}
-Details about the API are available in the [Magicseaweed documentation](https://magicseaweed.com/developer/forecast-api).
+Details about the API are available in the [Magicseaweed documentation](https://magicseaweed.com/docs/developers/59/).
diff --git a/source/_integrations/media_player.markdown b/source/_integrations/media_player.markdown
index 6b1146076f1..bf468537416 100644
--- a/source/_integrations/media_player.markdown
+++ b/source/_integrations/media_player.markdown
@@ -106,8 +106,8 @@ metadata:
Documentation:
-- [Google Dev Documentaion MediaData](https://developers.google.com/cast/docs/reference/messages#MediaData)
-- [Google Dev Documentaion MediaInformation](https://developers.google.com/cast/docs/reference/web_receiver/cast.framework.messages.MediaInformation)
+- [Google Dev Documentation MediaData](https://developers.google.com/cast/docs/reference/messages#MediaData)
+- [Google Dev Documentation MediaInformation](https://developers.google.com/cast/docs/reference/web_receiver/cast.framework.messages.MediaInformation)
Example of calling media_player service with title and image set:
diff --git a/source/_integrations/meteoalarm.markdown b/source/_integrations/meteoalarm.markdown
index 7c89906436f..b239430789f 100644
--- a/source/_integrations/meteoalarm.markdown
+++ b/source/_integrations/meteoalarm.markdown
@@ -12,7 +12,7 @@ ha_platforms:
- binary_sensor
---
-The `MeteoAlarm` platform allows one to watch for weather alerts in europe from [MeteoAlarm](https://www.meteoalarm.org) (EUMETNET). To use this binary sensor, you need the name of your country and the province name from [MeteoAlarm](https://www.meteoalarm.org). Please note that you need to write the exact details from the website with capitals.
+The `MeteoAlarm` platform allows one to watch for weather alerts in europe from [MeteoAlarm](https://www.meteoalarm.org) (EUMETNET). To use this binary sensor, you need the name of your country and the province name from [MeteoAlarm](https://feeds.meteoalarm.org). Please note that you need to write the exact country name (with hyphens) as at the end of the URL starting with: `https://feeds.meteoalarm.org/feeds/meteoalarm-legacy-atom-`.
The binary sensor state shows if applicable the warning message. The details are available as attribute.
diff --git a/source/_integrations/motion_blinds.markdown b/source/_integrations/motion_blinds.markdown
index fefba158ed2..41a39649190 100644
--- a/source/_integrations/motion_blinds.markdown
+++ b/source/_integrations/motion_blinds.markdown
@@ -21,6 +21,7 @@ Additionally the following brands have been reported to also work with this inte
- [Motion Blinds](https://motion-blinds.com)
- [Dooya](http://www.dooya.com/)
- [Bloc Blinds](https://www.blocblinds.com/)
+- [Brel Home](https://www.brel-home.nl/)
{% include integrations/config_flow.md %}
diff --git a/source/_integrations/mycroft.markdown b/source/_integrations/mycroft.markdown
index 5ad0a625be1..4bd8ff58b46 100644
--- a/source/_integrations/mycroft.markdown
+++ b/source/_integrations/mycroft.markdown
@@ -54,7 +54,7 @@ name:
## Examples
-Send a mesage to Mycroft by calling `notify.mycroft` service:
+Send a message to Mycroft by calling `notify.mycroft` service:
```yaml
message: "Hey Mycroft. Turn on the office light. "
diff --git a/source/_integrations/neato.markdown b/source/_integrations/neato.markdown
index ba317ac98cb..e56db785c09 100644
--- a/source/_integrations/neato.markdown
+++ b/source/_integrations/neato.markdown
@@ -125,7 +125,7 @@ Some information about the capabilities might be found on the [Neato Developer P
Try to restart the vacuum and wait about 5 minutes to see if it is no longer unavailable. If you are still having issues check the Neato app and make sure your robot is connected and working. If it is not then follow the steps in the app to reset your robot and give it the same name as before then restart Home Assistant.
-### My robot is not deteced by Home Assistant
+### My robot is not detected by Home Assistant
Please check your logs if there are any warnings. When there is a message about your robot being offline, check if it is connected to the internet and available though the app. If there is a message about a bad response, try to reset this robot via your app.
diff --git a/source/_integrations/nest.markdown b/source/_integrations/nest.markdown
index f7080e34058..e70ae145fee 100644
--- a/source/_integrations/nest.markdown
+++ b/source/_integrations/nest.markdown
@@ -35,6 +35,10 @@ There is currently support for the following device types within Home Assistant:
This integration supports two Nest APIs. The SDM API is the new primary API that accepts new users. The Legacy Works With Nest API is not accepting new users, but the documentation still exists at the bottom of the page so existing users can keep using it.
+Google applies strict [Redirect URI validation
+rules](https://developers.google.com/identity/protocols/oauth2/web-server#uri-validation) to keep your login
+credentials secure. In practice, this means that you must access Home Assistant *over SSL* and a *public top-level domain*. See the documentation on [Securing](/docs/configuration/securing/) or [Troubleshooting](#troubleshooting), and note that you don't need actually need to enable remote access.
+
## Overview: Supported Devices
Home Assistant is integrated with the following devices through the SDM API:
@@ -182,7 +186,7 @@ project_id:
required: false
type: string
subscriber_id:
- description: Full path for the Pub/sub Subscription ID used to receive events. This is required to use the SDM API. Enter this exactly as it appers under "Subscription name" in the [Pub/Sub console](https://console.cloud.google.com/cloudpubsub/subscription/list).
+ description: Full path for the Pub/sub Subscription ID used to receive events. This is required to use the SDM API. Enter this exactly as it appears under "Subscription name" in the [Pub/Sub console](https://console.cloud.google.com/cloudpubsub/subscription/list).
type: string
required: false
{% endconfiguration %}
@@ -247,8 +251,8 @@ everything, however, you can leave out any feature you do not wish to use with H
domain (such as .com or .org)* or *must use a valid domain that is a valid top private domain*. This means that you
may need to change the URL you use to access Home Assistant in order to access your devices.
- - A convienent solution is to use [Nabu Casa](https://www.nabucasa.com/)
- - There are subtle rules for what types of URLs are allowed, namely that they must use a publicly known hostname, though your Home Assistant ports do not need to be exposed to the internet.
+ - See [Securing](https://www.home-assistant.io/docs/configuration/securing/) Home Assistant for convient solutions e.g. [Nabu Casa](https://www.nabucasa.com/) or Duck DNS.
+ - There are subtle [rules](https://developers.google.com/identity/protocols/oauth2/web-server#uri-validation) for what types of URLs are allowed, namely that they must use SSL and a publicly known hostname, though your Home Assistant ports do not need to be exposed to the internet.
- You can use any publicly known hostname you own
- As a hack, you can use hosts tricks to temporarily assign a public hostname to your Home Assistant IP address.
@@ -275,13 +279,14 @@ logger:
homeassistant.components.nest.climate_sdm: debug
homeassistant.components.nest.camera_sdm: debug
homeassistant.components.nest.sensor_sdm: debug
+ homeassistant.helpers.config_entry_flow: debug
+ homeassistant.helpers.config_entry_oauth2_flow: debug
google_nest_sdm: debug
google_nest_sdm.device: debug
google_nest_sdm.device_manager: debug
google_nest_sdm.google_nest_subscriber: debug
google_nest_sdm.event: debug
google.cloud.pubsub_v1: debug
- google.cloud.pubsub_v1.subscriber._protocol.streaming_pull_manager: debug
```
## Camera
diff --git a/source/_integrations/nilu.markdown b/source/_integrations/nilu.markdown
index 5e8c1a0e1aa..3fa338d5d80 100644
--- a/source/_integrations/nilu.markdown
+++ b/source/_integrations/nilu.markdown
@@ -55,7 +55,7 @@ show_on_map:
type: boolean
{% endconfiguration %}
-## Health risk index explainations
+## Health risk index explanations
Under the attributes from a NILU station, there will be a `nilu pollution index`. This indicates how polluted the air is in the area around the sensor station. Following is a longer explanation of what the indexes mean.
@@ -75,7 +75,7 @@ Health effects may occur in asthmatics and people with other respiratory disease
Sensitive groups in the population can have health effects. Respiratory irritation and discomfort may occur in healthy subjects. People with heart or respiratory distress should reduce outdoor activity and not stay in the most polluted areas.
-Source: [Explainations in Norwegian](http://www.luftkvalitet.info/home/Varslingsklasser.aspx)
+Source: [Explanations in Norwegian](http://www.luftkvalitet.info/home/Varslingsklasser.aspx)
## Available areas
diff --git a/source/_integrations/number.mqtt.markdown b/source/_integrations/number.mqtt.markdown
index 3b04612926f..0ad640b7af5 100644
--- a/source/_integrations/number.mqtt.markdown
+++ b/source/_integrations/number.mqtt.markdown
@@ -79,6 +79,10 @@ device:
description: The name of the device.
required: false
type: string
+ suggested_area:
+ description: 'Suggest an area if the device isn’t in one yet.'
+ required: false
+ type: string
sw_version:
description: The firmware version of the device.
required: false
diff --git a/source/_integrations/onvif.markdown b/source/_integrations/onvif.markdown
index 22ce907a248..7168d78b647 100644
--- a/source/_integrations/onvif.markdown
+++ b/source/_integrations/onvif.markdown
@@ -77,6 +77,6 @@ If your ONVIF camera supports PTZ, you will be able to pan, tilt or zoom your ca
| `speed` | Speed coefficient. Sets how fast PTZ will be executed. Allowed values: floating point numbers, 0 to 1. Default : 0.5 |
| `preset` | PTZ preset profile token. Sets the preset profile token which is executed with GotoPreset. |
| `move_mode` | PTZ moving mode. Allowed values: `ContinuousMove`, `RelativeMove`, `AbsoluteMove`, `GotoPreset`, `Stop`. Default :`RelativeMove` |
-| `continuous_duration` | Set ContinuousMove delay in seconds before stoping the move. Allowed values: floating point numbers or integer. Default : 0.5 |
+| `continuous_duration` | Set ContinuousMove delay in seconds before stopping the move. Allowed values: floating point numbers or integer. Default : 0.5 |
If you are running into trouble with this sensor, please refer to the [Troubleshooting section](/integrations/ffmpeg/#troubleshooting).
diff --git a/source/_integrations/osramlightify.markdown b/source/_integrations/osramlightify.markdown
index 90172db4d11..cefceeee73f 100644
--- a/source/_integrations/osramlightify.markdown
+++ b/source/_integrations/osramlightify.markdown
@@ -62,7 +62,7 @@ Also for sensors a list of raw values is exposed as `sensor_values` attribute, a
in automations, if you know what particular values mean for your sensor.
It is suggested to make [scan_interval](/docs/configuration/platform_options/#scan-interval)
-(30 seconds by default) less or equal to `interval_lightify_status`, oherwise the latter won't work
+(30 seconds by default) less or equal to `interval_lightify_status`, otherwise the latter won't work
as expected. Shorter `scan_interval` may improve synchronization speed between individual lights and
groups. For example, if you turn on a group, all its lights may be updated to `on` immediately,
without querying the bridge.
diff --git a/source/_integrations/ozw.markdown b/source/_integrations/ozw.markdown
index 14506ebf05c..d2b4bbdf816 100644
--- a/source/_integrations/ozw.markdown
+++ b/source/_integrations/ozw.markdown
@@ -22,7 +22,14 @@ ha_platforms:
- switch
---
-This integration allows you to utilize OpenZWave's ozwdaemon to control a Z-Wave network over MQTT. If you're starting out with Z-Wave in Home Assistant, we recommend that you use [the Z-Wave JS integration](/integrations/zwave_js).
+This integration allows you to utilize OpenZWave's ozwdaemon to control a Z-Wave network over MQTT.
+
+
+
+ As of mid-2021 this integration, as well as the upstream ozwdaemon project, are not currently maintained. If you're starting out with Z-Wave in Home Assistant, we recommend that you use [the Z-Wave JS integration](/integrations/zwave_js).
+
+
+
## Requirements
diff --git a/source/_integrations/plex.markdown b/source/_integrations/plex.markdown
index 455e1ecb400..b33e71dd3ab 100644
--- a/source/_integrations/plex.markdown
+++ b/source/_integrations/plex.markdown
@@ -57,7 +57,7 @@ Alternatively, you can manually configure a Plex server connection by selecting
**Verify SSL certificate**: Verify the SSL certificate of your Plex server. May be used if connecting with an IP or if using a self-signed certificate.
-**Token**: A valid authorization token for your Plex server. If provided without 'Host', a connection URL will be retreived from Plex.
+**Token**: A valid authorization token for your Plex server. If provided without 'Host', a connection URL will be retrieved from Plex.
## Sensor
diff --git a/source/_integrations/point.markdown b/source/_integrations/point.markdown
index d18a7b7e8db..af0e199e6f1 100644
--- a/source/_integrations/point.markdown
+++ b/source/_integrations/point.markdown
@@ -68,7 +68,7 @@ Each home configured in the Point mobile application will show up as a separate
-The Point only supports a Arm/Disarm action, so it is only `Arm Away` that is implememented.
+The Point only supports a Arm/Disarm action, so it is only `Arm Away` that is implemented.
diff --git a/source/_integrations/prometheus.markdown b/source/_integrations/prometheus.markdown
index 3e541e0aa0b..b75a7403fcb 100644
--- a/source/_integrations/prometheus.markdown
+++ b/source/_integrations/prometheus.markdown
@@ -173,6 +173,23 @@ You can then configure Prometheus to fetch metrics from Home Assistant by adding
- targets: ['HOSTNAME:8123']
```
+The format to configure the bearer token has changed in Prometheus 2.26, so if you have a newer version, you can use this configuration sample:
+
+```yaml
+# Example Prometheus scrape_configs entry (For version 2.26+
+ - job_name: "hass"
+ scrape_interval: 60s
+ metrics_path: /api/prometheus
+
+ # Long-Lived Access Token
+ authorization:
+ credentials: "your.longlived.token"
+
+ scheme: https
+ static_configs:
+ - targets: ['HOSTNAME:8123']
+```
+
When looking into the metrics on the Prometheus side, there will be:
- All Home Assistant domains, which can be easily found through the common **namespace** prefix, if defined.
diff --git a/source/_integrations/rejseplanen.markdown b/source/_integrations/rejseplanen.markdown
index dec099121d1..471b58da69a 100644
--- a/source/_integrations/rejseplanen.markdown
+++ b/source/_integrations/rejseplanen.markdown
@@ -162,7 +162,7 @@ The sensor can filter the timetables by one or more routes, directions and types
| `type` | Transport type |
| `route` | Route code |
| `direction` | Destination stop |
-| `final_stop` | Final stop (if departure doesn't go all the way to the destionation stop) |
+| `final_stop` | Final stop (if departure doesn't go all the way to the destination stop) |
| `stop` | Departure stop |
| `stop_id` | ID of departure stop |
| `track` | Departure track (if available) |
@@ -180,6 +180,6 @@ The sensor can filter the timetables by one or more routes, directions and types
| `type` | Transport type |
| `route` | Route code |
| `direction` | Destination stop |
-| `final_stop` | Final stop (if departure doesn't go all the way to the destionation stop) |
+| `final_stop` | Final stop (if departure doesn't go all the way to the destination stop) |
| `stop` | Departure stop |
| `track` | Departure track (if available) |
diff --git a/source/_integrations/risco.markdown b/source/_integrations/risco.markdown
index ff59522dd6d..db4261fa444 100644
--- a/source/_integrations/risco.markdown
+++ b/source/_integrations/risco.markdown
@@ -94,7 +94,7 @@ This undoes a zone bypass. You can only unbypass a zone when the partitions it b
| ---------------------- | -------- | ----------- |
| `entity_id` | no | String or list of strings of entity_ids of zones. Use entity_id: all to target all zones. |
-## Supported Plaforms:
+## Supported Platforms:
- [Alarm Control Panel](/integrations/alarm_control_panel/)
- [Binary Sensor](/integrations/binary_sensor/)
diff --git a/source/_integrations/rituals_perfume_genie.markdown b/source/_integrations/rituals_perfume_genie.markdown
index ba7eb019e78..694a3c786bd 100644
--- a/source/_integrations/rituals_perfume_genie.markdown
+++ b/source/_integrations/rituals_perfume_genie.markdown
@@ -16,6 +16,7 @@ ha_domain: rituals_perfume_genie
ha_platforms:
- binary_sensor
- number
+ - select
- sensor
- switch
ha_quality_scale: silver
diff --git a/source/_integrations/roon.markdown b/source/_integrations/roon.markdown
index 34f11e9ca39..7778baf681b 100644
--- a/source/_integrations/roon.markdown
+++ b/source/_integrations/roon.markdown
@@ -36,7 +36,7 @@ Roon uses a path based on the roon browser hierarchy to specify which media to p
| -----------------------| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `entity_id` | yes | Target a specific media player. To target all media players, use `all`. |
| `media_content_id` | no | A path to specify the media you want to play, see examples below. |
-| `media_content_type` | no | Only `music` is suppported |
+| `media_content_type` | no | Only `music` is supported |
For example to play the album Harvest by Neil Young you should set `media_content_id` to `Library/Artists/Neil Young/Harvest` and to play BBC Radio 4 you would set `media_content_id` to `My Live Radio/BBC Radio 4`
diff --git a/source/_integrations/satel_integra.markdown b/source/_integrations/satel_integra.markdown
index 21aba110246..5e43e9075cc 100644
--- a/source/_integrations/satel_integra.markdown
+++ b/source/_integrations/satel_integra.markdown
@@ -27,7 +27,7 @@ The module communicates via Satel's open TCP protocol published on their website
## Setup
-Please note that **ETHM-1 module is currently not supported**: it does not provide functionality used by this extension. At the moment only ETHM-1 Plus module is supported. That might change in the future, but no promisses are given.
+Please note that **ETHM-1 module is currently not supported**: it does not provide functionality used by this extension. At the moment only ETHM-1 Plus module is supported. That might change in the future, but no promises are given.
The library currently doesn't support encrypted connection to your alarm, so you need **to turn off encryption for integration protocol**. In Polish: "koduj integracje" must be unchecked. You will find this setting in your DloadX program.
diff --git a/source/_integrations/select.markdown b/source/_integrations/select.markdown
index 59b80505e94..25f44253ab0 100644
--- a/source/_integrations/select.markdown
+++ b/source/_integrations/select.markdown
@@ -16,7 +16,7 @@ a limited set of selectable options for the entity.
### Services
-The Number entities registers the following services:
+The Select entities registers the following services:
| Service | Data | Description |
| ------- | ---- | ----------- |
diff --git a/source/_integrations/select.mqtt.markdown b/source/_integrations/select.mqtt.markdown
index b85c4417325..73229ce0eb0 100644
--- a/source/_integrations/select.mqtt.markdown
+++ b/source/_integrations/select.mqtt.markdown
@@ -83,6 +83,10 @@ device:
description: The name of the device.
required: false
type: string
+ suggested_area:
+ description: 'Suggest an area if the device isn’t in one yet.'
+ required: false
+ type: string
sw_version:
description: The firmware version of the device.
required: false
diff --git a/source/_integrations/sensehat.markdown b/source/_integrations/sensehat.markdown
index f2adbcc264c..6f7a303f250 100644
--- a/source/_integrations/sensehat.markdown
+++ b/source/_integrations/sensehat.markdown
@@ -60,7 +60,7 @@ display_options:
pressure:
description: Pressure
name:
- description: Change the name of te sensor, for in the frontend.
+ description: Change the name of the sensor, for in the frontend.
required: false
type: string
is_hat_attached:
diff --git a/source/_integrations/sma.markdown b/source/_integrations/sma.markdown
index 2d49261db2f..f57ebda9534 100644
--- a/source/_integrations/sma.markdown
+++ b/source/_integrations/sma.markdown
@@ -98,7 +98,7 @@ The SMA WebConnect module supports a wide variety of sensors, but not all of the
| power_l2 | W | Power for phase 2 |
| power_l3 | W | Power for phase 3 |
-### Batery Inverter
+### Battery Inverter
| name | Unit | Description |
| --- | --- | --- |
diff --git a/source/_integrations/smarthab.markdown b/source/_integrations/smarthab.markdown
index a915b374f31..2c1df153afe 100644
--- a/source/_integrations/smarthab.markdown
+++ b/source/_integrations/smarthab.markdown
@@ -27,5 +27,5 @@ Assistant.
To prevent being automatically logged out of your SmartHab mobile app, you
might want to create a secondary user in the app's settings and grant it
access to your home. You can then configure the integration using this account's
- credentials. This is also more secure, as this user should be less priviledged.
+ credentials. This is also more secure, as this user should be less privileged.
diff --git a/source/_integrations/smtp.markdown b/source/_integrations/smtp.markdown
index 8ab77f660c7..588e4962827 100644
--- a/source/_integrations/smtp.markdown
+++ b/source/_integrations/smtp.markdown
@@ -25,6 +25,8 @@ notify:
recipient: "YOUR_RECIPIENT"
```
+Check your e-mail provider configuration or help pages to get the correct SMTP settings.
+
{% configuration %}
name:
description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`.
@@ -78,27 +80,7 @@ debug:
default: false
{% endconfiguration %}
-A sample configuration entry for Google Mail.
-
-```yaml
-# Example configuration.yaml entry
-notify:
- - name: "NOTIFIER_NAME"
- platform: smtp
- server: "smtp.example.com"
- port: 587
- timeout: 15
- sender: "john@example.com"
- encryption: starttls
- username: "john@example.com"
- password: "thePassword"
- recipient:
- - "james@example.com"
- - "bob@example.com"
- sender_name: "My Home Assistant"
-```
-
-Keep in mind that Google has some extra layers of protection which need special attention (Hint: 'Less secure apps'). If you have 2-step verification enabled on your Google account, you'll need to use [an application-specific password](https://support.google.com/mail/answer/185833?hl=en).
+### Usage
To use the SMTP notification, refer to it in an automation or script like in this example:
@@ -190,11 +172,35 @@ burglar: