diff --git a/Gemfile b/Gemfile
index 60821c84bfc..b56f027fa86 100644
--- a/Gemfile
+++ b/Gemfile
@@ -21,7 +21,7 @@ group :jekyll_plugins do
end
gem 'sinatra', '2.1.0'
-gem 'nokogiri', '1.12.5'
+gem 'nokogiri', '1.13.1'
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library
diff --git a/Gemfile.lock b/Gemfile.lock
index 0f2a28fb0e6..bd0d7ed1574 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -25,8 +25,8 @@ GEM
http_parser.rb (~> 0)
eventmachine (1.2.7)
eventmachine (1.2.7-x64-mingw32)
- ffi (1.15.4)
- ffi (1.15.4-x64-mingw32)
+ ffi (1.15.5)
+ ffi (1.15.5-x64-mingw32)
forwardable-extended (2.6.0)
http_parser.rb (0.8.0)
i18n (1.8.11)
@@ -66,18 +66,18 @@ GEM
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.3)
- listen (3.7.0)
+ listen (3.7.1)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
- mini_portile2 (2.6.1)
+ mini_portile2 (2.7.1)
multi_json (1.15.0)
mustermann (1.1.1)
ruby2_keywords (~> 0.0.1)
- nokogiri (1.12.5)
- mini_portile2 (~> 2.6.1)
+ nokogiri (1.13.1)
+ mini_portile2 (~> 2.7.0)
racc (~> 1.4)
- nokogiri (1.12.5-x64-mingw32)
+ nokogiri (1.13.1-x64-mingw32)
racc (~> 1.4)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
@@ -130,7 +130,7 @@ DEPENDENCIES
jekyll-sitemap (= 1.4.0)
jekyll-time-to-read (= 0.1.2)
jekyll-toc (= 0.17.1)
- nokogiri (= 1.12.5)
+ nokogiri (= 1.13.1)
rake (= 13.0.6)
sass-globbing (= 1.1.5)
sassc (= 2.1.0)
diff --git a/_config.yml b/_config.yml
index bda039af716..e7a40bdc820 100644
--- a/_config.yml
+++ b/_config.yml
@@ -108,8 +108,8 @@ social:
# Home Assistant release details
current_major_version: 2021
current_minor_version: 12
-current_patch_version: 7
-date_released: 2021-12-29
+current_patch_version: 10
+date_released: 2022-01-17
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.
diff --git a/source/_docs/authentication/providers.markdown b/source/_docs/authentication/providers.markdown
index 4ee47ec59c0..c99afe2a1bd 100644
--- a/source/_docs/authentication/providers.markdown
+++ b/source/_docs/authentication/providers.markdown
@@ -51,7 +51,7 @@ If you don't specify any `auth_providers` section in the `configuration.yaml` fi
### Trusted Networks
-The Trusted Networks auth provider defines a range of IP addresses for which no authentication will be required (also known as "whitelisting"). For example, you can whitelist your local network so you won't be prompted for a password if you access Home Assistant from inside your home.
+The Trusted Networks auth provider defines a range of IP addresses for which no authentication will be required (also known as "allowlisting"). For example, you can allowlist your local network so you won't be prompted for a password if you access Home Assistant from inside your home.
When you log in from one of these networks, you will be asked which user account to use and won't need to enter a password.
@@ -74,7 +74,7 @@ homeassistant:
{% configuration %}
trusted_networks:
- description: A list of IP address or IP network you want to whitelisted. It accepts both IPv4 and IPv6 IP address or network
+ description: A list of IP addresses or an IP network you want allowlisted. It accepts both IPv4 and IPv6 IP address or network
required: true
type: list
trusted_users:
diff --git a/source/_docs/configuration/customizing-devices.markdown b/source/_docs/configuration/customizing-devices.markdown
index 0498be31097..53c452358f2 100644
--- a/source/_docs/configuration/customizing-devices.markdown
+++ b/source/_docs/configuration/customizing-devices.markdown
@@ -3,16 +3,16 @@ title: "Customizing entities"
description: "Simple customization for entities."
---
-## Changing the entity_id
+## Changing the entity ID
-You can use the UI to change the `entity_id` and friendly name of supported entities. To do this:
+You can use the UI to change the entity ID and friendly name of supported entities. To do this:
1. Select the entity, either from the frontend or by clicking the info button next to the entity in the Developer Tools "States" tab.
-2. Click on the cog in the right corner of the entity's dialog
+2. Click on the cog icon in the right corner of the entity's dialog
3. Enter the new name or the new entity ID (remember not to change the domain of the entity - the part before the `.`)
4. Select *Save*
-If your entity is not supported, or you cannot customize what you need via this method, please see below for more options:
+If your entity is not supported, or you cannot customize what you need via this method, please see below for more options.
## Customizing entities
diff --git a/source/_docs/configuration/devices.markdown b/source/_docs/configuration/devices.markdown
index e042d212dd7..4a51048b9ee 100644
--- a/source/_docs/configuration/devices.markdown
+++ b/source/_docs/configuration/devices.markdown
@@ -59,25 +59,3 @@ switch 1:
switch 2:
platform: vera
```
-
-## Grouping entities
-
-Once you have several entities set up, it is time to organize them into groups.
-Each group consists of a name and a list of entity IDs. Entity IDs can be
-retrieved from the web interface by using the
-{% my developer_states title="States page in the Developer Tools" %}.
-
-```yaml
-# Example configuration.yaml entry
-group:
- living_room:
- entities:
- - light.table_lamp
- - switch.ac
- bedroom:
- entities:
- - light.bedroom
- - media_player.nexus_player
-```
-
-For more details please check the [Group](/integrations/group/) page.
diff --git a/source/_docs/configuration/splitting_configuration.markdown b/source/_docs/configuration/splitting_configuration.markdown
index 43472c7eb24..b378313d439 100644
--- a/source/_docs/configuration/splitting_configuration.markdown
+++ b/source/_docs/configuration/splitting_configuration.markdown
@@ -183,6 +183,9 @@ This (large) sensor configuration gives us another example:
You'll notice that this example includes a secondary parameter section (under the steam section) as well as a better example of the way comments can be used to break down files into sections.
+All of the above can be applied when splitting up files using packages. To
+learn more about packages, see the [Packages](/docs/configuration/packages) page.
+
That about wraps it up.
If you have issues checkout `home-assistant.log` in the configuration directory as well as your indentations. If all else fails, head over to our [Discord chat server][discord] and ask away.
diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown
index 4e69c06e69e..3ca23e2808d 100644
--- a/source/_docs/configuration/templating.markdown
+++ b/source/_docs/configuration/templating.markdown
@@ -397,8 +397,8 @@ Examples using `iif`:
{% endraw %}
- `as_datetime()` converts a string containing a timestamp, or valid UNIX timestamp, to a datetime object.
-- `as_timestamp(value, default)` converts datetime object or string to UNIX timestamp. If that fails, returns the `default` value, or if omitted `None`. This function also be used as a filter.
-- `as_local()` converts datetime object to local time. This function also be used as a filter.
+- `as_timestamp(value, default)` converts datetime object or string to UNIX timestamp. If that fails, returns the `default` value, or if omitted `None`. This function can also be used as a filter.
+- `as_local()` converts datetime object to local time. This function can also be used as a filter.
- `strptime(string, format)` parses a string based on a [format](https://docs.python.org/3.8/library/datetime.html#strftime-and-strptime-behavior) and returns a datetime object. If that fails, returns the `default` value, or if omitted the unprocessed input value.
- `relative_time` converts datetime object to its human-friendly "age" string. The age can be in second, minute, hour, day, month or year (but only the biggest unit is considered, e.g., if it's 2 days and 3 hours, "2 days" will be returned). Note that it only works for dates _in the past_.
- `timedelta` returns a timedelta object and accepts the same arguments as the Python `datetime.timedelta` function -- days, seconds, microseconds, milliseconds, minutes, hours, weeks.
@@ -414,7 +414,7 @@ Examples using `iif`:
- Filter `timestamp_local(default)` converts a UNIX timestamp to the ISO format string representation as date/time in your local timezone. If that fails, returns the `default` value, or if omitted the unprocessed input value. If a custom string format is needed in the string, use `timestamp_custom` instead.
- Filter `timestamp_utc(default)` converts a UNIX timestamp to the ISO format string representation representation as date/time in UTC timezone. If that fails, returns the `default` value, or if omitted the unprocessed input value. If a custom string format is needed in the string, use `timestamp_custom` instead.
-- Filter `timestamp_custom(format_string, local_time=True, default)` converts an UNIX timestamp to its string representation based on a custom format, the use of a local timezone is default. If that fails, returns the `default` value, or if omitted the unprocessed input value. Supports the standard [Python time formatting options](https://docs.python.org/3/library/time.html#time.strftime).
+- Filter `timestamp_custom(format_string, local=True, default)` converts an UNIX timestamp to its string representation based on a custom format, the use of a local timezone is default. If that fails, returns the `default` value, or if omitted the unprocessed input value. Supports the standard [Python time formatting options](https://docs.python.org/3/library/time.html#time.strftime).
diff --git a/source/_docs/locked_out.md b/source/_docs/locked_out.md
index c1f0e47df63..42f78743768 100644
--- a/source/_docs/locked_out.md
+++ b/source/_docs/locked_out.md
@@ -23,13 +23,13 @@ Connect a keyboard and monitor to your device.
#### To reset a user's password, via the container command line
-If you are running Home Assistant in a container, you can use the command line in the container with the `hass` command to change your password. The steps below refer to a Home Assistant container in Docker named `ha`. Note that while working in the container, commands will take a few moments to execute.
+If you are running Home Assistant in a container, you can use the command line in the container with the `hass` command to change your password. The steps below refer to a Home Assistant container in Docker named `homeassistant`. Note that while working in the container, commands will take a few moments to execute.
-1. `docker exec -it ha bash` to open to the container command line
+1. `docker exec -it homeassistant bash` to open to the container command line
2. `hass` to create a default user, if this is your first time using the tool
3. `hass --script auth --config /config change_password existing_user new_password` to change the password
4. `exit` to exit the container command line
-5. `docker restart ha` to restart the container
+5. `docker restart homeassistant` to restart the container
#### To reset a user's password, as an administrator via the web interface
diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown
index 35908910a26..77ce66f2a1c 100644
--- a/source/_docs/mqtt/discovery.markdown
+++ b/source/_docs/mqtt/discovery.markdown
@@ -4,7 +4,7 @@ description: "Instructions on how to setup MQTT Discovery within Home Assistant.
logo: mqtt.png
---
-The discovery of MQTT devices will enable one to use MQTT devices with only minimal configuration effort on the side of Home Assistant. The configuration is done on the device itself and the topic used by the device. Similar to the [HTTP binary sensor](/integrations/http/#binary-sensor) and the [HTTP sensor](/integrations/http/#sensor). To prevent multiple identical entries if a device reconnects a unique identifier is necessary. Two parts are required on the device side: The configuration topic which contains the necessary device type and unique identifier and the remaining device configuration without the device type.
+The discovery of MQTT devices will enable one to use MQTT devices with only minimal configuration effort on the side of Home Assistant. The configuration is done on the device itself and the topic used by the device. Similar to the [HTTP binary sensor](/integrations/http/#binary-sensor) and the [HTTP sensor](/integrations/http/#sensor). To prevent multiple identical entries if a device reconnects, a unique identifier is necessary. Two parts are required on the device side: The configuration topic which contains the necessary device type and unique identifier, and the remaining device configuration without the device type.
Supported by MQTT discovery:
@@ -314,6 +314,7 @@ The following software has built-in support for MQTT discovery:
- [ecowitt2mqtt](https://github.com/bachya/ecowitt2mqtt)
- [ESPHome](https://esphome.io)
- [ESPurna](https://github.com/xoseperez/espurna)
+- [HASS.Agent](https://github.com/LAB02-Research/HASS.Agent)
- [IOTLink](https://iotlink.gitlab.io) (starting with 2.0.0)
- [MiFlora MQTT Daemon](https://github.com/ThomDietrich/miflora-mqtt-daemon)
- [OpenMQTTGateway](https://github.com/1technophile/OpenMQTTGateway)
@@ -501,7 +502,7 @@ The entity id is automatically generated from the entity's name. All MQTT entity
{
"name":"My Super Device",
"object_id":"device1",
- "state_topic": "homeassistant/sensor/device1/state",
+ "state_topic": "homeassistant/sensor/device1/state"
}
```
diff --git a/source/_docs/tools/dev-tools.markdown b/source/_docs/tools/dev-tools.markdown
index 879583afbfc..566c10a488a 100644
--- a/source/_docs/tools/dev-tools.markdown
+++ b/source/_docs/tools/dev-tools.markdown
@@ -61,7 +61,7 @@ The Template Editor provides a way to quickly test templates prior to placing th
By default, this will contain sample code that illustrates how templates can be written and tested. This sample code can be removed and replaced with your own. You can restore the default example by pressing the "Reset to Demo Template" button beneath the code editor.
-For more information about Jinja2, visit [Jinja2 documentation](http://jinja.pocoo.org/docs/dev/templates/), and also read templating document [here](/topics/templating/).
+For more information about Jinja2, visit [Jinja2 documentation](https://jinja.palletsprojects.com/en/latest/templates/), and also read templating document [here](/docs/configuration/templating).
## Events
diff --git a/source/_docs/z-wave/controllers.markdown b/source/_docs/z-wave/controllers.markdown
index 2416b7a6a69..d445791e7f4 100644
--- a/source/_docs/z-wave/controllers.markdown
+++ b/source/_docs/z-wave/controllers.markdown
@@ -24,7 +24,7 @@ You need to have a compatible Z-Wave stick or module installed. The following de
- Aeotec Z-Pi 7 (700 series)
- ZWave.me Razberry Board (500 series)
-If you are just starting out, we recommend that you purchase a 700 series controller to take advantage of the latest improvements. At the very least, you should purchase a [Z-Wave Plus](https://z-wavealliance.org/z-wave_plus_certification/) controller.
+If you are just starting out, we recommend that you purchase a 500 series controller. At the very least, you should purchase a [Z-Wave Plus](https://z-wavealliance.org/z-wave_plus_certification/) controller.
Not all of the above devices are supported by the deprecated Z-Wave integration.
diff --git a/source/_faq/unique_id.markdown b/source/_faq/unique_id.markdown
index 346000177c2..daaf22ef890 100644
--- a/source/_faq/unique_id.markdown
+++ b/source/_faq/unique_id.markdown
@@ -34,6 +34,6 @@ Typically, you'll see this when you create entities manually using YAML, but it
- Entity with a unique ID: Entity ID can be adjusted freely (as long as it follows the format `
.` and does not result in duplicates in your Home Assistant). Keep in mind that if you change the entity ID, you also need to update the references, e.g., in automations and dashboards.
- Entity without a unique ID: Entity ID is considered a fixed, static identifier and cannot be changed.
-If your user profile has the "Advanced Mode" activated, you will also see the second paragraph in the popup with a link to the [customization user interface](/docs/configuration/customizing-devices/#customization-using-the-ui) for this specific entity, which offers some customization options.
+In case your entity has no unique ID and therefore cannot be changed through the UI, there are some [manual customization options](/docs/configuration/customizing-devices) directly through YAML files.
In case you want to read more about unique IDs, head over to this [developer documentation page](https://developers.home-assistant.io/docs/entity_registry_index/).
diff --git a/source/_includes/installation/container.md b/source/_includes/installation/container.md
index 90cf621843e..b8264db83e7 100644
--- a/source/_includes/installation/container.md
+++ b/source/_includes/installation/container.md
@@ -74,6 +74,10 @@ Start it by running:
docker-compose up -d
```
+Once the Home Assistant Container is running Home Assistant should be accessible using `http://:8123` (replace with the hostname or IP of the system). You can continue with onboarding.
+
+{% include getting-started/next_step.html step="Onboarding" link="/getting-started/onboarding/" %}
+
### Exposing Devices
In order to use Z-Wave, Zigbee or other integrations that require access to devices, you need to map the appropriate device into the container. Ensure the user that is running the container has the correct privileges to access the `/dev/tty*` file, then add the device mapping to your container instructions:
diff --git a/source/_integrations/alarmdecoder.markdown b/source/_integrations/alarmdecoder.markdown
index db34c2eb4f0..2e3f7b8a629 100644
--- a/source/_integrations/alarmdecoder.markdown
+++ b/source/_integrations/alarmdecoder.markdown
@@ -132,10 +132,14 @@ Using a combination of the available services and attributes, you can create swi
value_template: "{{ is_state_attr('alarm_control_panel.alarm_panel', 'chime', true) }}"
turn_on:
service: alarmdecoder.alarm_toggle_chime
+ target:
+ entity_id: alarm_control_panel.alarm_panel
data:
code: !secret alarm_code
turn_off:
service: alarmdecoder.alarm_toggle_chime
+ target:
+ entity_id: alarm_control_panel.alarm_panel
data:
code: !secret alarm_code
icon_template: >-
diff --git a/source/_integrations/august.markdown b/source/_integrations/august.markdown
index d026cb61194..59cae7be9a4 100644
--- a/source/_integrations/august.markdown
+++ b/source/_integrations/august.markdown
@@ -29,14 +29,15 @@ The `august` integration allows you to integrate your [August](https://august.co
| Device | Requires [Connect Bridge](https://august.com/products/august-connect/) or Doorbell |
| --------------------------------- | ------------------------------------|
-| August Wi-Fi Smart Lock (Gen 4) | yes |
+| August Wi-Fi Smart Lock (Gen 4) | no |
| August Smart Lock Pro (Gen 3) | yes |
| August Smart Lock (Gen 2) | yes |
| August Smart Lock (Gen 1) | no |
| August Doorbell Cam (Gen 1, Gen2) | no |
| August View | no |
-| Yale Assure Locks with August/Yale Connect Module | yes |
-| Yale Conexis L1 with August/Yale Connect Module | yes |
+| Yale Assure Lock | yes |
+| Yale Conexis L1 | yes |
+| Yale Linus | yes |
There is currently support for the following device types within Home Assistant:
diff --git a/source/_integrations/blockchain.markdown b/source/_integrations/blockchain.markdown
index d70e0934546..558ab322a0c 100644
--- a/source/_integrations/blockchain.markdown
+++ b/source/_integrations/blockchain.markdown
@@ -14,6 +14,9 @@ The `Blockchain` sensor platform displays Bitcoin wallet balances from [blockcha
To add the Blockchain sensor to your installation, specify a list of bitcoin addresses to watch in the `configuration.yaml` file. The sensor state will be the sum of the balances of all addresses listed.
+Currently, the original Bitcoin address format is supported.
+For example, the newer Segwit and Taproot format are not supported.
+
```yaml
# Example configuration.yaml entry
sensor:
diff --git a/source/_integrations/counter.markdown b/source/_integrations/counter.markdown
index 199aa665fbc..baa23b6757b 100644
--- a/source/_integrations/counter.markdown
+++ b/source/_integrations/counter.markdown
@@ -79,7 +79,7 @@ Pick an icon that you can find on [materialdesignicons.com](https://materialdesi
This integration will automatically restore the state it had prior to Home Assistant stopping as long as your entity has `restore` set to `true`, which is the default. To disable this feature, set `restore` to `false`.
-If `restore` is set to `false`, the `initial` value will only be used when no previous state is found or when the counter is reset.
+If `restore` is set to `true`, the `initial` value will only be used when no previous state is found or when the counter is reset.
## Services
diff --git a/source/_integrations/cover.markdown b/source/_integrations/cover.markdown
index 3816ca93de1..6287f9363ee 100644
--- a/source/_integrations/cover.markdown
+++ b/source/_integrations/cover.markdown
@@ -28,6 +28,10 @@ The way these sensors are displayed in the frontend can be modified in the [cust
- **shutter**: Control of shutters, which are linked slats that swing out/in to covering an opening or may be tilted to partially cover an opening, such as indoor or exterior window shutters.
- **window**: Control of a physical window that opens and closes or may tilt.
+Here are a few examples of this representation in the UI:
+
+
Example of various device classes icons in `open` and `closed` state. The open image in this example has `state_color: true` specified in the Entities card configuration to receive the icon coloring.
+
## Services
### Cover control services
diff --git a/source/_integrations/daikin.markdown b/source/_integrations/daikin.markdown
index 6ba5819e8b0..7ccc144ec41 100644
--- a/source/_integrations/daikin.markdown
+++ b/source/_integrations/daikin.markdown
@@ -5,6 +5,7 @@ ha_category:
- Climate
- Sensor
- Switch
+ - Energy
ha_release: 0.59
ha_iot_class: Local Polling
ha_config_flow: true
diff --git a/source/_integrations/denonavr.markdown b/source/_integrations/denonavr.markdown
index b8641424077..bc1b49fe862 100644
--- a/source/_integrations/denonavr.markdown
+++ b/source/_integrations/denonavr.markdown
@@ -32,6 +32,7 @@ Known supported devices:
- Denon AVR-X2300W
- Denon AVR-X2400H
- Denon AVR-X2500H
+- Denon AVR-X2600H
- Denon AVR-X2700H
- Denon AVR-X3000
- Denon AVR-X3200W
diff --git a/source/_integrations/device_trigger.mqtt.markdown b/source/_integrations/device_trigger.mqtt.markdown
index f1f71eda1eb..0b9de6643b0 100644
--- a/source/_integrations/device_trigger.mqtt.markdown
+++ b/source/_integrations/device_trigger.mqtt.markdown
@@ -84,6 +84,10 @@ device:
description: 'Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device. This is used to show device topology in Home Assistant.'
required: false
type: string
+value_template:
+ description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the value."
+ required: false
+ type: template
{% endconfiguration %}
### Example
diff --git a/source/_integrations/dlna_dmr.markdown b/source/_integrations/dlna_dmr.markdown
index ab6db01576d..d661872d7da 100644
--- a/source/_integrations/dlna_dmr.markdown
+++ b/source/_integrations/dlna_dmr.markdown
@@ -33,3 +33,19 @@ Event listener callback URL:
Poll for device availability:
description: "Periodically try to connect to the DLNA device, even if it is unavailable. Enable this if SSDP advertisements sent by the device are not received by Home Assistant, e.g. when IP multicast is broken on your network."
{% endconfiguration_basic %}
+
+## Services
+
+DLNA devices can support a range of features. Depending on the device itself, the following [media_player](/integrations/media_player/#services) services may be supported:
+
+* `media_player.volume_up`, `media_player.volume_down`, and `media_player.volume_set`
+* `media_player.volume_mute`
+* `media_player.media_play`
+* `media_player.media_pause` and `media_player.media_play_pause`
+* `media_player.media_stop`
+* `media_player.media_next_track`
+* `media_player.media_previous_track`
+* `media_player.play_media`
+* `media_player.shuffle_set`
+* `media_player.repeat_set`
+* `media_player.select_sound_mode`
diff --git a/source/_integrations/edl21.markdown b/source/_integrations/edl21.markdown
index 196d4b080be..8a5bf9117da 100644
--- a/source/_integrations/edl21.markdown
+++ b/source/_integrations/edl21.markdown
@@ -20,12 +20,14 @@ Compatible transceivers:
- [DIY](https://wiki.volkszaehler.org/hardware/controllers/ir-schreib-lesekopf-rs232-ausgang)
- [Weidmann Elektronik Schreib-/Lesekopf USB](https://shop.weidmann-elektronik.de/index.php?page=product&info=24)
+- [USB IR Lesekopf EHZ Lese-Schreib-Kopf Volkszähler Hichi Smartmeter](https://www.ebay.de/itm/313455434998)
Tested smart meters:
- APATOR Norax 3D (enable InF Mode as described in manual to retrieve full data)
- DZG DWS76 (enable InF as described in manual to retrieve full data)
- Iskraemeco MT175 (ISKRA MT175-D2A51-V22-K0t)
+- EMH metering eHZ Generation K (enable InF as described in manual to retrieve full data)
## Configuration
diff --git a/source/_integrations/eight_sleep.markdown b/source/_integrations/eight_sleep.markdown
index c0eed2c3ab3..3b6ac35ebc0 100644
--- a/source/_integrations/eight_sleep.markdown
+++ b/source/_integrations/eight_sleep.markdown
@@ -56,12 +56,47 @@ partner:
### Supported features
-Sensors:
+Sensors and associated attributes:
- eight_left/right_bed_state
+ - Attributes:
+ - Target Heating Level
+ - Heating Active
+ - Heating Time Remaining
- eight left/right_sleep_fitness
+ - Attributes:
+ - Fitness Date
+ - Fitness Duration Score
+ - Fitness Asleep Score
+ - Fitness Out-of-Bed Score
+ - Fitness Wakeup Score
- eight_left/right_sleep_session
+ - Attributes:
+ - Session Start
+ - Tosses & Turns
+ - Processing (True/False)
+ - Time Slept (s)
+ - Light Sleep %
+ - Deep Sleep %
+ - REM Sleep %
+ - Respiratory Rate
+ - Heart Rate
+ - Sleep Stage
+ - Room Temperature
+ - Bed Temperature
- eight_left/right_previous_sleep_session
+ - Attributes:
+ - Session Start
+ - Tosses & Turns
+ - Processing (True/False)
+ - Time Slept (s)
+ - Light Sleep %
+ - Deep Sleep %
+ - REM Sleep %
+ - Average Respiratory Rate
+ - Average Heart Rate
+ - Average Room Temperature
+ - Average Bed Temperature
- eight_left/right_bed_temperature
- eight_left/right_sleep_stage
- eight_room_temperature
@@ -93,3 +128,7 @@ script:
target: 35
duration: 3600
```
+
+### Notice
+
+Please note this component relies on an undocumented API utilized by the Eight Sleep mobile app to communicate with the Eight Sleep servers. It is not supported by Eight Sleep and may malfunction if changes are made to either the mobile app operation or the API format.
diff --git a/source/_integrations/emulated_roku.markdown b/source/_integrations/emulated_roku.markdown
index 703eceac4a8..44ed3edd615 100644
--- a/source/_integrations/emulated_roku.markdown
+++ b/source/_integrations/emulated_roku.markdown
@@ -123,26 +123,6 @@ The following is an example implementation of an automation:
entity_id: media_player.amplifier
```
-## Selecting apps, channels, or favorites
-
-Apps, channels, and favorites are exposed as media content to the integration. You can see which ones are available by clicking the media button in the media player more info card for your TV. To capture the `content_id` for the one you want to use in an automation or script, turn your logging on to debug level and tail the log while choosing the media content in the media player more info card. You will find a log message that looks like this when you choose the media:
-
-```txt
-2021-11-22 01:45:14 DEBUG (MainThread) [homeassistant.core] Bus:Handling
-```
-
-Then you can turn that into a service call for the script or automation like the following, which can then open the app/channel/favorite automatically.
-
-```yaml
-service: media_player.play_media
-data:
- media_content_id: com.amazon.ignition.IgnitionActivity-com.amazon.amazonvideo.livingroom
- media_content_type: app
-target:
- entity_id:
- - media_player.philips936_tv
-```
-
## Troubleshooting
If you change your advertised IP or ports, you will have to re-add the emulated Roku in your app.
diff --git a/source/_integrations/evil_genius_labs.markdown b/source/_integrations/evil_genius_labs.markdown
index e253c58f59a..00d09059204 100644
--- a/source/_integrations/evil_genius_labs.markdown
+++ b/source/_integrations/evil_genius_labs.markdown
@@ -15,4 +15,6 @@ ha_platforms:
This integration allows you to control and monitor the artworks by [Evil Genius Labs](https://www.evilgeniuslabs.org/). Tested with the Fibonacci256.
+If the integration is unable to connect, make sure the firmware is up to date.
+
{% include integrations/config_flow.md %}
diff --git a/source/_integrations/firmata.markdown b/source/_integrations/firmata.markdown
index a3739f91fe8..8742c9e6aa2 100644
--- a/source/_integrations/firmata.markdown
+++ b/source/_integrations/firmata.markdown
@@ -142,7 +142,7 @@ binary_sensor:
required: true
type: string
pin:
- description: The digital or analog pin number on the board.
+ description: The digital or analog pin number on the board. For analog pins the corresponding digital number must be used. Please use the pinout that corresponds to your board. For example, on the Arduino Uno, pin A2 corresponds to the digital pin number 16.
required: true
type: [integer, string]
pin_mode:
@@ -232,7 +232,7 @@ firmata:
negate: true
- name: my_other_door
pin_mode: INPUT
- pin: A1
+ pin: 16 # A2
negate: true
sensors:
- name: my_sensor
diff --git a/source/_integrations/flux_led.markdown b/source/_integrations/flux_led.markdown
index 98d1a90bf4e..059d9406de1 100644
--- a/source/_integrations/flux_led.markdown
+++ b/source/_integrations/flux_led.markdown
@@ -31,14 +31,25 @@ This integration will provide local control over your LED lights/strips and can
Example of bulbs:
-- [Flux Smart Lighting](https://www.fluxsmartlighting.com/)
-- [Flux WiFi Smart LED Light Bulb4](https://amzn.to/2X0dVwu)
-- [WIFI smart LED light Bulb1](https://amzn.to/2J2fksr)
+- [MagicLight Smart Bulbs](https://www.magiclightbulbs.com/lightbulbs) or [Amazon](https://www.amazon.com/gp/product/B081YJHHB1/)
+- [RGBCW Downlights](https://www.amazon.com/gp/product/B093Q83G7S/)
+- [RGBCW Floodlights](https://www.amazon.com/gp/product/B09J38NKPN)
+
+Examples of controllers with strips:
+
+- [MagicLight Strip Lights](https://www.magiclightbulbs.com/strip-lights) or [Amazon](https://www.amazon.com/gp/product/B08LPSS4J3/)
Examples of controllers:
-- [Ledenet WiFi RGBW Controller](https://amzn.to/2WZKXNa)
-- [SUPERNIGHT WiFi Wireless LED Smart Controller](https://amzn.to/2WURx7w)
+- [Single color](https://www.amazon.com/gp/product/B07J5B3R5L/)
+- [RGB](https://www.amazon.com/gp/product/B07C1LN7FZ/)
+- [RGBW](https://www.amazon.com/gp/product/B07J9QCQNN/)
+- [RGBCW](https://www.amazon.com/gp/product/B09BMC4JNJ/)
+- [RGB/W/CW](https://www.amazon.com/gp/product/B01DY56N8U/)
+
+Examples of addressable controllers:
+
+- [Addressable v3](https://www.amazon.com/gp/product/B09BMBSCRF/)
These devices have been sold under at least the following brands:
@@ -112,7 +123,6 @@ These devices have been sold under at least the following brands:
After the devices have been added they can be configured with different effects listed below. These settings can be accessed by navigating to the integration settings in Configuration -> Integrations and selecting the "Magic Home" configuration for the bulb or controller.
-
**Custom Effect**\
A list of RGB colors can be entered to create an effect. The effect speed can be adjusted using the slider underneath.
diff --git a/source/_integrations/fronius.markdown b/source/_integrations/fronius.markdown
index bb780e48f3c..e2d32244083 100644
--- a/source/_integrations/fronius.markdown
+++ b/source/_integrations/fronius.markdown
@@ -80,8 +80,10 @@ Recommended energy dashboard configuration for meter location in feed in path (`
- For `Grid consumption` use the meters `Energy real consumed` entity.
- For `Return to grid` use the meters `Energy real produced` entity.
-- For `Solar production` add each inverters `Energy total` entity.
-- `Battery systems` aren't supported directly. Use [Riemann sum](/integrations/integration/) with negative values of `Power battery` entity (from power_flow endpoint found in your `SolarNet` device) for charging and positive values for discharging.
+- For `Solar production`:
+ - If no battery is connected to an inverter: Add each inverters `Energy total` entity.
+ - If a battery is connected to an inverter: Use [Riemann sum](/integrations/integration/) over `Power photovoltaics` entity (from power_flow endpoint found in your `SolarNet` device)
+- `Battery systems` aren't supported directly. Use [Template](/integrations/template) to split and invert negative values of `Power battery` entity (from power_flow) for charging power (W) and positive values for discharging power (W). Then use [Riemann sum](/integrations/integration/) to integrate each into energy values (kWh).
- For `Devices` use the Ohmpilots `Energy consumed` entity.
## Note
diff --git a/source/_integrations/gdacs.markdown b/source/_integrations/gdacs.markdown
index 2e782feb516..1f76797fef7 100644
--- a/source/_integrations/gdacs.markdown
+++ b/source/_integrations/gdacs.markdown
@@ -21,12 +21,12 @@ about major droughts, earthquakes, floods, tropical cyclones, tsunamis and
volcanic activities worldwide.
It retrieves alerts from a feed and shows information of those alerts filtered
by distance to Home Assistant's location.
+The filter is set in the configuration as categories, radius (kilometers or miles based on unit system set in Home Assistant), latitude and longatude.
Entities are generated, updated and removed automatically with each update
from the feed. Each entity defines latitude and longitude and will be shown
on the default map automatically, or on a map card by defining the source
-`gdacs`. The distance is available as the state of each entity, and
-converted to the unit (kilometers or miles) configured in Home Assistant.
+`gdacs`. The distance is available as the state of each entity converted to the configured unit system (kilometers or miles).
diff --git a/source/_integrations/google.markdown b/source/_integrations/google.markdown
index ae5e1c4d77c..0593a44ee85 100644
--- a/source/_integrations/google.markdown
+++ b/source/_integrations/google.markdown
@@ -47,6 +47,9 @@ If you are trying to switch to a new Google account then you would run into the
'oauth2client.client.HttpAccessTokenRefreshError: deleted_client: The OAuth client was deleted'
+In case you get an `Authentication code expired, please restart Home-Assistant and try again` error message, switch your timezone to `Etc/GMT` and restart Home Assistant. This should fix the issue and the `google_calendars.yaml` configuration file will be created.
+You can then switch back the timezone to your original one and restart Home Assistant again.
+
## Configuration
To integrate Google Calendar in Home Assistant,
diff --git a/source/_integrations/group.markdown b/source/_integrations/group.markdown
index f7a5847aa89..70a49289dd6 100644
--- a/source/_integrations/group.markdown
+++ b/source/_integrations/group.markdown
@@ -65,6 +65,10 @@ icon:
By default when any member of a group is `on` then the group will also be `on`. Similarly with a device tracker, when any member of the group is `home` then the group is `home`. If you set the `all` option to `true` though, this behavior is inverted and all members of the group have to be `on` for the group to turn on as well.
+## Group state update
+
+The group's state is updated when any group member's state is updated. Calling `homeassistant.update_entity` with the target set to the group will not be forwarded to the group members, instead the `expand()` template function can be used to force all group members to update state.
+
## Group state calculation
The system can calculate group state with entities from the following domains:
diff --git a/source/_integrations/homekit.markdown b/source/_integrations/homekit.markdown
index 6b1352217b3..b0a80a081a2 100644
--- a/source/_integrations/homekit.markdown
+++ b/source/_integrations/homekit.markdown
@@ -545,6 +545,10 @@ You can also try to use `avahi-daemon` in reflector mode together with the optio
Configure the network mode as `networkbridge`. Otherwise the Home Assistant Bridge won't be exposed to the network.
+#### Accessory does not appear in the Home App (for pairing) - Libvirt QEMU/KVM virtual machine with macvtap adapter
+
+Please see the [Zero-configuration networking](/integrations/zeroconf/#troubleshooting) integration for more details.
+
#### Pairing hangs - zeroconf error
Pairing eventually fails, you might see the error message, `NonUniqueNameException`, you likely need to enable `default_interface: true` in the `zeroconf` integration configuration and set a unique name such as `name: MyHASS42`.
diff --git a/source/_integrations/homematic.markdown b/source/_integrations/homematic.markdown
index 13aae4ca482..7894d656670 100644
--- a/source/_integrations/homematic.markdown
+++ b/source/_integrations/homematic.markdown
@@ -450,7 +450,7 @@ lock:
- platform: template
name: Basedoor
unique_id: basedoor
- value_template: "{{ state_attr('homematic.ccu2', 'base_lock_status') }}"
+ value_template: "{{ is_state('sensor.lock_status', 'locked') }}"
lock:
service: homematic.set_device_value
data:
@@ -469,9 +469,6 @@ lock:
{% endraw %}
-To get the current value of the current lock status, you have to create a system variable (in the example above it is `base_lock_status`) and create a program on CCU, which updates the variable with every change of the Lock level to `true` for locked and `false` for unlocked.
-
-
#### Detecting lost connections
When the connection to your Homematic CCU or Homegear is lost, Home Assistant will stop getting updates from devices. This may happen after rebooting the CCU for example. Due to the nature of the communication protocol this cannot be handled automatically, so you must call *homematic.reconnect* in this case. That's why it is usually a good idea to check if your Homematic integrations are still updated properly, in order to detect connection losses. This can be done in several ways through an automation:
diff --git a/source/_integrations/isy994.markdown b/source/_integrations/isy994.markdown
index bbdc9070558..31a2637e5cb 100644
--- a/source/_integrations/isy994.markdown
+++ b/source/_integrations/isy994.markdown
@@ -45,7 +45,7 @@ There is currently support for the following device types within Home Assistant:
- Sensor
- Switch
-Home Assistant is capable of communicating with any binary sensor, cover, fan, light, lock, sensor and switch that is configured on the controller. Using the programs on the controller, custom binary sensors, cover, fan, lock, and switches can also be created.
+Home Assistant is capable of communicating with any binary sensor, cover, fan, light, lock, sensor and switch that is configured on the controller. Using the programs on the controller, custom binary sensors, covers, fans, locks, and switches can also be created.
{% include integrations/config_flow.md %}
@@ -67,20 +67,20 @@ host:
required: true
type: string
username:
- description: The username that used to access the ISY interface.
+ description: The username that is used to access the ISY interface.
required: true
type: string
password:
- description: The password that used to access the ISY interface.
+ description: The password that is used to access the ISY interface.
required: true
type: string
sensor_string:
- description: This is the string that is used to identify which devices are to be assumed to be sensors instead of lights of switches. If this string is found in the device name or folder, Home Assistant will assume it is as a sensor or binary sensor (if the device has on/off or true/false states). This is only necessary for nodes that are not automatically detected as sensors by Home Assistant. Insteon door, window, motion and leak sensors should all be detected automatically.
+ description: This is the string that is used to identify which devices are to be assumed to be sensors instead of lights or switches. If this string is found in the device name or folder, Home Assistant will assume it is a sensor or binary sensor (if the device has on/off or true/false states). This is only necessary for nodes that are not automatically detected as sensors by Home Assistant. Insteon door, window, motion and leak sensors should all be detected automatically.
required: false
type: string
default: sensor
variable_sensor_string:
- description: This is the string that is used to identify which Integer or State Variables are to be added as sensors. If this string is found in the device name, Home Assistant will assume it is as a sensor.
+ description: This is the string that is used to identify which Integer or State Variables are to be added as sensors. If this string is found in the device name, Home Assistant will assume it is a sensor.
required: false
type: string
default: sensor
@@ -149,7 +149,7 @@ All `isy994_control` events will have an `entity_id` and `control` parameter in
### Insteon Scenes & Keypad/Remote Buttons
-All Insteon scenes configured in the ISY994 will show up as a `switch` in Home Assistant, as they do not support dimming or setting specific brightness settings as Home Assisstant's `light` component.
+All Insteon scenes configured in the ISY994 will show up as a `switch` in Home Assistant, as they do not support dimming or setting specific brightness settings as Home Assistant's `light` component.
Insteon Secondary Keypad buttons and Remote buttons are added to Home Assistant to allow support for using Control Events in Automations. These devices are added as `sensors` since they cannot be directly controlled (turned on/off); their state is the last ON level command they sent, in a range from `0` (Off) to `255` (On 100%). Note: these devices may report incorrect states before being used after a reboot of the ISY. Secondary Keypad buttons may be turned on or off using ISY Scenes (refer to ISY Documentation for more details).
@@ -167,7 +167,7 @@ Send a command to an ISY Device using its Home Assistant entity ID. Valid comman
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
-| `entity_id` | no | Name(s) of entities to send the command, e.g., `light.front_porch`. |
+| `entity_id` | no | Name(s) of target entities for the command, e.g., `light.front_porch`. |
| `command` | no | The command to be sent to the device, e.g., `"fast_on"` |
#### Service `isy994.send_raw_node_command`
@@ -176,7 +176,7 @@ Send a "raw" (e.g., `DON`, `DOF`) ISY REST Device Command to a Node using its Ho
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
-| `entity_id` | no | Name(s) of entities to send the command, e.g., `light.front_porch`. |
+| `entity_id` | no | Name(s) of target entities for the command, e.g., `light.front_porch`. |
| `command` | no | The ISY REST Command to be sent to the device, e.g., `"DON"` |
| `value` | yes | The integer value to be sent with the command, if required by the command, e.g., `255` |
| `parameters` | yes | A `dict` of parameters to be sent in the query string for controlling colored bulbs or advanced parameters, e.g., `{ GV2: 0, GV3: 0, GV4: 255 }` |
@@ -188,7 +188,7 @@ Request a Z-Wave Device parameter via the ISY. The parameter value will be retur
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------------------------------------------------------------------------------------------- |
-| `entity_id` | no | Name of entity to send the command, e.g., `light.front_porch`. This must be an ISY Z-Wave Node. |
+| `entity_id` | no | Name of target entity for the command, e.g., `light.front_porch`. This must be an ISY Z-Wave Node. |
| `parameter` | no | The parameter number to retrieve from the end device. |
#### Service `isy994.set_zwave_parameter`
@@ -197,7 +197,7 @@ Update a Z-Wave Device parameter via the ISY. The parameter value will also be r
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------------------------------------------------------------------------------------------- |
-| `entity_id` | no | Name of entity to send the command, e.g., `light.front_porch`. This must be an ISY Z-Wave Node. |
+| `entity_id` | no | Name of target entity for the command, e.g., `light.front_porch`. This must be an ISY Z-Wave Node. |
| `parameter` | no | The parameter number to set on the end device. |
| `value` | no | The value to set for the parameter. May be an integer or byte string (e.g. "0xFFFF"). |
| `size` | no | The size of the parameter, either 1, 2, or 4 bytes. |
@@ -208,7 +208,7 @@ Rename a node or group (scene) on the ISY994. Note: this will not automatically
| Service data attribute | Optional | Description |
| ---------------------- | -------- | -------------------------------------------------------------- |
-| `entity_id` | no | Name of entity to send the command, e.g., `light.front_porch`. |
+| `entity_id` | no | Name of target entity for the command, e.g., `light.front_porch`. |
| `name` | no | The new name to use within the ISY994. |
#### Service `isy994.set_on_level`
@@ -217,7 +217,7 @@ Send an ISY set_on_level command to a `light` Node to set the devices' local On
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
-| `entity_id` | no | Name(s) of entities to send the command, e.g., `light.front_porch`. |
+| `entity_id` | no | Name(s) of target entities for the command, e.g., `light.front_porch`. |
| `value` | no | The integer value to set the On Level to in a range of 0-255, e.g., `255` |
#### Service `isy994.set_ramp_rate`
@@ -226,7 +226,7 @@ Send an ISY set_ramp_rate command to a `light` Node to set the devices' ramp rat
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
-| `entity_id` | no | Name(s) of entities to send the command, e.g., `light.front_porch`. |
+| `entity_id` | no | Name(s) of target entities for the command, e.g., `light.front_porch`. |
| `value` | no | The integer index value to set the Ramp Rate to in a range of `0` (9.5 minutes) to `31` (0.1 Seconds), e.g., `28` |
#### Service `isy994.system_query`
@@ -330,13 +330,17 @@ A device is created by creating a directory, with the name for the device, under
- *HA.lock* will create a lock.
- *HA.switch* will create a switch.
-A program, named *status*, is required under the program device directory. A program, named *actions*, is required for all program devices except for binary_sensor. Any other programs in these device directories will be ignored. The *status* program requires that you create a variable with the name of your choice. This variable will store the actual status of the new device and will be updated by the *action* program.
+A program, named *status*, is required under the program device directory. A program, named *actions*, is required for all program devices except for binary_sensor. Any other programs in these device directories will be ignored.
-The *status* program in this directory is what indicates the state of the device:
+The *status* program requires that you create a state variable with the name of your choice. Note that you must use a state variable, not an integer variable. This variable will store the actual status of the new device and will be updated by the *action* program.
+
+
+
+The IF clause of the *status* program in the device directory is what indicates the state of the device:
- *binary_sensor* on if the clause returns true, otherwise off.
- *cover* closed if the clause returns true, otherwise open.
diff --git a/source/_integrations/light.group.markdown b/source/_integrations/light.group.markdown
index f293fd33af9..9de2200a3c2 100644
--- a/source/_integrations/light.group.markdown
+++ b/source/_integrations/light.group.markdown
@@ -9,7 +9,7 @@ ha_quality_scale: internal
ha_domain: group
---
-The group light platform lets you combine multiple lights into one entity. All child lights of a light group can still be used as usual, but controlling the state of the grouped light will forward the command to each child light.
+The light group platform lets you combine multiple lights into one entity. All child lights of a light group can still be used as usual, but controlling the state of the grouped light will forward the command to each child light.
To enable this platform in your installation, add the following to your `configuration.yaml` file:
diff --git a/source/_integrations/light.markdown b/source/_integrations/light.markdown
index 659c2b75b87..a3a522bc733 100644
--- a/source/_integrations/light.markdown
+++ b/source/_integrations/light.markdown
@@ -38,7 +38,7 @@ Most lights do not support all attributes. You can check the integration documen
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
-| `entity_id` | no | String or list of strings that point at `entity_id`s of lights. To target all the lights use `all` as `entity_id`.
+| `entity_id` | no | String or list of strings that point at `entity_id`s of lights. To target all lights, set `entity_id` to `all`.
| `transition` | yes | Number that represents the time (in seconds) the light should take to transition to the new state.
| `profile` | yes | String with the name of one of the [built-in profiles](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/light/light_profiles.csv) (relax, energize, concentrate, reading) or one of the custom profiles defined in `light_profiles.csv` in the current working directory. Light profiles define an xy color, brightness and a transition value (if no transition is desired, set to 0 or leave out the column entirely). If a profile is given, and a brightness is set, then the profile brightness will be overwritten.
| `hs_color` | yes | A list containing two floats representing the hue and saturation of the color you want the light to be. Hue is scaled 0-360, and saturation is scaled 0-100.
@@ -107,7 +107,7 @@ Turns one or multiple lights off.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
-| `entity_id` | no | String or list of strings that point at `entity_id`s of lights. To target all the lights use all as `entity_id`.
+| `entity_id` | no | String or list of strings that point at `entity_id`s of lights. To target all lights, set `entity_id` to `all`.
| `transition` | yes | Integer that represents the time the light should take to transition to the new state in seconds.
### Service `light.toggle`
diff --git a/source/_integrations/motion_blinds.markdown b/source/_integrations/motion_blinds.markdown
index f36fecbd610..a79e894cc2f 100644
--- a/source/_integrations/motion_blinds.markdown
+++ b/source/_integrations/motion_blinds.markdown
@@ -40,6 +40,8 @@ Please note that "-" characters need to be included in the key when providing it
+Note that it has been reported that the official Bloc Blinds app doesn't seem to hand out the API key on Android, it does seem to provide the API key on the iOS version of the official Bloc Blinds app.
+
## Top Down Bottom Up (TDBU) blinds
TDBU blinds consist of two bars controlled by two motors designated by Top and Bottom with fabric in between.
diff --git a/source/_integrations/mqtt_statestream.markdown b/source/_integrations/mqtt_statestream.markdown
index 01a01034e40..6d432d8f4a0 100644
--- a/source/_integrations/mqtt_statestream.markdown
+++ b/source/_integrations/mqtt_statestream.markdown
@@ -8,7 +8,7 @@ ha_iot_class: Local Push
ha_domain: mqtt_statestream
---
-The `mqtt_statestream` integration publishes state changes in Home Assistant to individual MQTT topics.
+The `mqtt_statestream` integration publishes state changes in Home Assistant to individual MQTT topics. [The MQTT integration](/integrations/mqtt/) is a prerequisite for MQTT Statestream to work.
## Configuration
diff --git a/source/_integrations/nest.markdown b/source/_integrations/nest.markdown
index da4394d3c78..ea80e23ce25 100644
--- a/source/_integrations/nest.markdown
+++ b/source/_integrations/nest.markdown
@@ -41,6 +41,12 @@ The Nest Smart Device Management (SDM) API **requires a US$5 fee**.
+## Video Walkthrough
+
+
+
+
+
## Device Access Registration
For the first phase, you will turn on the API and create the necessary credentials to have Home Assistant talk to the Nest API.
diff --git a/source/_integrations/netatmo.markdown b/source/_integrations/netatmo.markdown
index 598cc26c383..3dc3bd01a37 100644
--- a/source/_integrations/netatmo.markdown
+++ b/source/_integrations/netatmo.markdown
@@ -233,7 +233,7 @@ client_secret:
type: string
{% endconfiguration %}
-**After the client_id and client_secret is added to your `configuration.yaml` you must enable Netatmo through the integrations page.**
+**After the `client_id` and `client_secret` are added to your `configuration.yaml` you must restart Home Assistant and then enable Netatmo through the integrations page.**
Menu: **Configuration** -> **Devices & Services**.
diff --git a/source/_integrations/netgear.markdown b/source/_integrations/netgear.markdown
index 7e89df118e9..11188e5ae00 100644
--- a/source/_integrations/netgear.markdown
+++ b/source/_integrations/netgear.markdown
@@ -22,6 +22,7 @@ This platform allows you to detect presence by looking at connected devices to a
{% include integrations/config_flow.md %}
Most NETGEAR routers use port 5000 to communicate, however the following list of models are known to use port 80:
+- Nighthawk RAX50
- Nighthawk X4S - AC2600 (R7800)
- Orbi
- XR500
diff --git a/source/_integrations/nfandroidtv.markdown b/source/_integrations/nfandroidtv.markdown
index 6b8448cbc52..c2b6d42c821 100644
--- a/source/_integrations/nfandroidtv.markdown
+++ b/source/_integrations/nfandroidtv.markdown
@@ -125,4 +125,24 @@ icon:
auth: "digest"
```
+Example of an automation with an service call, full configuration:
+
+{% raw %}
+
+```yaml
+service: notify.living_room_tv
+data:
+ title: "Thanks for the water!"
+ message: "Nigel is {{ states('sensor.nigel_moisture') }}% moisture"
+ data:
+ duration: 4
+ position: "bottom-left"
+ fontsize: "medium"
+ transparency: "80%"
+ color: "teal"
+ interrupt: 0
+```
+
+{% endraw %}
+
Please note that `path` is validated against the `allowlist_external_dirs` in the `configuration.yaml`.
diff --git a/source/_integrations/pulseaudio_loopback.markdown b/source/_integrations/pulseaudio_loopback.markdown
index 131b4238ed2..b3b00d75665 100644
--- a/source/_integrations/pulseaudio_loopback.markdown
+++ b/source/_integrations/pulseaudio_loopback.markdown
@@ -54,6 +54,6 @@ port:
-This integration relies on raw TCP commands to PulseAudio. In order for PulseAudio to accept commands with this component, `module-native-protocol` must be loaded on the PulseAudio server.
+This integration relies on raw TCP commands to PulseAudio. In order for PulseAudio to accept commands with this component, `module-native-protocol-tcp auth-ip-acl=` must be loaded on the PulseAudio server.
diff --git a/source/_integrations/recorder.markdown b/source/_integrations/recorder.markdown
index a14c71b2423..9b61f82533b 100644
--- a/source/_integrations/recorder.markdown
+++ b/source/_integrations/recorder.markdown
@@ -219,14 +219,16 @@ Note that purging will not immediately decrease disk space usage but it will sig
### Service `purge_entities`
-Call the service `recorder.purge_entities` to start a task that purges events and states from the recorder database that match any of the specified `entity_id`, `domains` and `entity_globs` fields. Note: leaving all three parameters empty will result in all entities being selected for purging.
+Call the service `recorder.purge_entities` to start a task that purges events and states from the recorder database that match any of the specified `entity_id`, `domains` and `entity_globs` fields. Leaving all three parameters empty will result in all entities being selected for purging.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `entity_id` | yes | A list of entity_ids that should be purged from the recorder database. |
+| `entity_id` | yes
* | A list of entity_ids that should be purged from the recorder database. |
| `domains` | yes | A list of domains that should be purged from the recorder database. |
| `entity_globs` | yes | A list of regular expressions that identify entities to purge from the recorder database. |
+Note: The `entity_id` is only optional when used in `automations.yaml` or `scripts.yaml`. When using the UI to call this service then it is mandatory to specify at least one `entity_id` using the Target Picker or via YAML mode.
+
### Service `disable`
Call the service `recorder.disable` to stop saving events and states to the database.
diff --git a/source/_integrations/rfxtrx.markdown b/source/_integrations/rfxtrx.markdown
index fe3602bbf48..fa9884ea13f 100644
--- a/source/_integrations/rfxtrx.markdown
+++ b/source/_integrations/rfxtrx.markdown
@@ -102,7 +102,9 @@ See [Generate codes](#generate-codes) how to generate event codes.
#### Somfy RTS
-The [RFXtrx433e](http://www.rfxcom.com/RFXtrx433E-USB-43392MHz-Transceiver/en) or later versions like [RFXtrx433XL](http://www.rfxcom.com/epages/78165469.sf/en_GB/?ObjectPath=/Shops/78165469/Products/18103) is required for support, however, it does not support receive for the Somfy RTS protocol - as such devices cannot be automatically added. Instead, configure the device in the [rfxmngr](http://www.rfxcom.com/downloads.htm) tool. Make a note of the assigned ID and Unit Code and then add a device to the configuration with the following id `071a0000[id][unit_code]`. E.g., if the id was `0a` `00` `01`, and the unit code was `01` then the fully qualified id would be `071a00000a000101`, if you set your id/code to single digit in the rfxmngr, e.g., id: `1` `02` `04` and unit code: `1` you will need to add `0` before, so `102031` becomes `071a000001020301`.
+The [RFXtrx433e](http://www.rfxcom.com/RFXtrx433E-USB-43392MHz-Transceiver/en) or later versions like [RFXtrx433XL](http://www.rfxcom.com/epages/78165469.sf/en_GB/?ObjectPath=/Shops/78165469/Products/18103) is required for support, however, it does not support receive for the Somfy RTS protocol - as such devices cannot be automatically added. Instead, configure the device in the [rfxmngr](http://www.rfxcom.com/downloads.htm) tool. Make a note of the assigned ID and Unit Code and then add a device to the configuration with the following id `071a0000[id][unit_code]`. E.g., if the id was `0a` `00` `01`, and the unit code was `01` then the fully qualified id would be `071a00000a000101`, if you set your id/code to single digit in the rfxmngr, e.g., id: `1` `02` `03` and unit code: `1` you will need to add `0` before, so `102031` becomes `071a000001020301`.
+
+To add the device, enter the value unaltered in the Event Code field, and click Submit.
#### Convert switch event to dimming event
diff --git a/source/_integrations/roomba.markdown b/source/_integrations/roomba.markdown
index f8824ba09de..333887b0250 100644
--- a/source/_integrations/roomba.markdown
+++ b/source/_integrations/roomba.markdown
@@ -27,7 +27,7 @@ The `roomba` integration allows you to control your [iRobot Roomba](https://www.
-This integration has been tested and confirmed to be working with the iRobot Roomba s9+, Roomba 980, Roomba 960, Roomba 890, and Braava jet m6 models, but should also work fine with any Wi-Fi enabled Roomba or Braava like the 690. For auto-discovery, you will need to initiate a Roomba reboot. For example, by holding the clean button for up to 20 seconds on an i7 or 980. [More information about rebooting your robot](https://homesupport.irobot.com/app/answers/detail/a_id/9087/~/rebooting-or-resetting-your-robot).
+This integration has been tested and confirmed to be working with the iRobot Roomba s9+, Roomba 980, Roomba 960, Roomba 890, and Braava jet m6 models, but should also work fine with any Wi-Fi enabled Roomba or Braava like the 690. For auto-discovery, you will need to initiate a Roomba reboot. For example, by holding the clean button for up to 20 seconds on an i7 or 980. [More information about rebooting your robot](https://homesupport.irobot.com/s/article/9087).
diff --git a/source/_integrations/sense.markdown b/source/_integrations/sense.markdown
index 24758810c65..c423d036a44 100644
--- a/source/_integrations/sense.markdown
+++ b/source/_integrations/sense.markdown
@@ -34,10 +34,10 @@ Sensors are added for both usage and production:
- Usage: Current active power usage in Watts.
- Production: Current active power production in Watts.
- Trend sensors: Data provided for daily, weekly, monthly and yearly scales. Updated every 5 minutes.
- - Usage: Power usage in kWh.
- - Production: Power production in kWh.
- - To Grid: Power exported to the grid in kWh.
- - From Grid: Power imported from the grid in kWh.
+ - Usage: Energy usage in kWh.
+ - Production: Energy production in kWh.
+ - To Grid: Energy exported to the grid in kWh.
+ - From Grid: Energy imported from the grid in kWh.
- Net Production: Measures total solar production against usage.
- Net Production Percentage: Net production as a percentage value.
- Solar Powered Percentage: Percentage of power used directly from solar.
diff --git a/source/_integrations/sensor.rest.markdown b/source/_integrations/sensor.rest.markdown
index 2ad97ab5dbd..bc1d5a69a3e 100644
--- a/source/_integrations/sensor.rest.markdown
+++ b/source/_integrations/sensor.rest.markdown
@@ -271,7 +271,7 @@ sensor:
{% endraw %}
-### Fetch multiple JSON values and present them as attributes
+### Fetch multiple JSON attributes and present them as values
[JSON Test](https://www.jsontest.com/) returns the current time, date and milliseconds since epoch from [http://date.jsontest.com/](http://date.jsontest.com/).
diff --git a/source/_integrations/shell_command.markdown b/source/_integrations/shell_command.markdown
index 0f2e5e02833..8377fe5f809 100644
--- a/source/_integrations/shell_command.markdown
+++ b/source/_integrations/shell_command.markdown
@@ -44,10 +44,12 @@ Any service data passed into the service call to activate the shell command will
The `command` is executed within the [configuration directory](/docs/configuration/).
-If you are using [Home Assistant operating system](https://github.com/home-assistant/operating-system), the commands are executed in the `homeassistant` container context. So if you test or debug your script, it might make sense to do this in the context of this container to get the same runtime environment.
+
+If you are using [Home Assistant Operating System](https://github.com/home-assistant/operating-system), the commands are executed in the `homeassistant` container context. So if you test or debug your script, it might make sense to do this in the context of this container to get the same runtime environment.
+
-With a `0` exit code, the output (stdout) of the command is used as `value`. In case a command results in a non `0` exit code or is terminated by the `command_timeout`, the result is only logged to Home Assistant log and the value of the sensor is not updated.
+With a `0` exit code, the output (stdout) of the command is used as `value`. In case a command results in a non `0` exit code or is terminated after a timeout of 60 seconds, the result is only logged to Home Assistant log and the value of the sensor is not updated.
## Examples
diff --git a/source/_integrations/shelly.markdown b/source/_integrations/shelly.markdown
index f48feed9069..1f79b32e213 100644
--- a/source/_integrations/shelly.markdown
+++ b/source/_integrations/shelly.markdown
@@ -4,6 +4,7 @@ description: Integrate Shelly devices
ha_category:
- Binary Sensor
- Cover
+ - Energy
- Light
- Sensor
- Switch
@@ -79,6 +80,16 @@ The integration uses the following strategy to name its entities:
- If `Channel Name` is set in the device, the integration will use it to generate the entities' name, e.g. `Kitchen Light`
- If `Channel Name` is set to the default value, the integration will use the `Device ID` and default channel name to generate the entities' name, e.g. `ShellyPro4PM-9808D1D8B912 switch_0`.
+## Binary input sensors
+
+### Binary input sensors (generation 1)
+
+Depending on how a device's button type is configured, the integration will create binary sensors corresponding to those inputs. binary sensors are not created when the button type is `momentary` or `momentary_on_release`, for these types you need to use events for your automations.
+
+### Binary input sensors (generation 2)
+
+For generation 2 hardware it's possible to select if a device's input is connected to a button or a switch. Binary sensors are created only if the input mode is set to `switch`. When the input is of type `button` you need to use events for your automations.
+
## Events
If the **BUTTON TYPE** of the switch connected to the device is set to `momentary` or `detached switch`, integration fires events under the type `shelly.click` when the switch is used. You can use these events in your automations.
diff --git a/source/_integrations/sql.markdown b/source/_integrations/sql.markdown
index e9902d41c41..6f39fad3a04 100644
--- a/source/_integrations/sql.markdown
+++ b/source/_integrations/sql.markdown
@@ -108,7 +108,7 @@ Note that the SQL sensor state corresponds to the last row of the SQL result set
Based on previous example with temperature, the query to get the former state is :
```sql
-SELECT * FROM (SELECT * FROM states WHERE entity_id = 'sensor.temperature_in' ORDER BY state_id DESC LIMIT 2) two_entity ORDER BY state_id ASC LIMIT 1;
+SELECT * FROM (SELECT * FROM states WHERE entity_id = 'sensor.temperature_in' ORDER BY state_id DESC LIMIT 2) two_entity ORDER BY state_id ASC LIMIT 1;
```
Thus in yaml
```yaml
@@ -117,7 +117,7 @@ sensor:
- platform: sql
queries:
- name: Former_Temperature_In
- query: "SELECT * FROM (SELECT state FROM states WHERE entity_id = 'sensor.temperature_in' ORDER BY state_id DESC LIMIT 2) two_entity ORDER BY state_id ASC LIMIT 1;"
+ query: "SELECT * FROM (SELECT state, state_id FROM states WHERE entity_id = 'sensor.temperature_in' ORDER BY state_id DESC LIMIT 2) two_entity ORDER BY state_id ASC LIMIT 1;"
column: "state"
```
diff --git a/source/_integrations/switch.command_line.markdown b/source/_integrations/switch.command_line.markdown
index 7c22c201571..7edafef40ec 100644
--- a/source/_integrations/switch.command_line.markdown
+++ b/source/_integrations/switch.command_line.markdown
@@ -56,7 +56,7 @@ switches:
description: The name used to display the switch in the frontend.
required: false
type: string
- icon:
+ icon_template:
description: Defines a template for the icon of the entity.
required: false
type: template
diff --git a/source/_integrations/switch.markdown b/source/_integrations/switch.markdown
index fd4fb074cc3..19764e3176f 100644
--- a/source/_integrations/switch.markdown
+++ b/source/_integrations/switch.markdown
@@ -33,4 +33,4 @@ In the frontend open the sidebar. At the bottom, under **Developer Tools**, clic
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
-| `entity_id` | no | The entity ID of the switch to control. To target all switches, set the entity ID to `all`|
+| `entity_id` | no | String or list of strings that point at `entity_id`s of switches. To target all switches, set `entity_id` to `all`.
diff --git a/source/_integrations/syncthru.markdown b/source/_integrations/syncthru.markdown
index d7d3ab9615d..76568301b48 100644
--- a/source/_integrations/syncthru.markdown
+++ b/source/_integrations/syncthru.markdown
@@ -15,11 +15,9 @@ ha_platforms:
- sensor
---
-The Samsung SyncThru Printer platform allows you to read current data from your local Samsung printer.
+The Samsung SyncThru Printer platform allows Home Asssitant to read current data from a local Samsung printer.
-It usually provides information about the device's state, the left amount of ink or toner and the state of paper trays.
-
-The following information is displayed in separate sensors, if it is available:
+Depending on device abilities, the following separate sensors are created if supported:
- Whether the printer is online
- Whether the printer is in an error state
@@ -28,4 +26,6 @@ The following information is displayed in separate sensors, if it is available:
- First to fifth paper input tray state
- First to sixth paper output tray state
+In order for a device to be discovered automatically, SSPD / UPnP (under Network settings) must be enabled.
+
{% include integrations/config_flow.md %}
diff --git a/source/_integrations/system_log.markdown b/source/_integrations/system_log.markdown
index 6572ecdeefd..325f0a38747 100644
--- a/source/_integrations/system_log.markdown
+++ b/source/_integrations/system_log.markdown
@@ -8,7 +8,7 @@ ha_quality_scale: internal
ha_domain: system_log
---
-The `system_log` integration stores information about all logged errors and warnings in Home Assistant. To view your logs, navigate to **Configuration** -> **Logs**. In order to not overload Home Assistant with log data, only the 50 last errors and warnings will be stored. Older entries are automatically discarded from the log. It is possible to change the number of stored log entries using the parameter `max_entries`.
+The `system_log` integration stores information about all logged errors and warnings in Home Assistant. To view your logs, navigate to **Configuration** -> **Settings** -> **Logs**. In order to not overload Home Assistant with log data, only the 50 last errors and warnings will be stored. Older entries are automatically discarded from the log. It is possible to change the number of stored log entries using the parameter `max_entries`.
## Configuration
diff --git a/source/_integrations/systemmonitor.markdown b/source/_integrations/systemmonitor.markdown
index 2282562a667..cf9602d24ce 100644
--- a/source/_integrations/systemmonitor.markdown
+++ b/source/_integrations/systemmonitor.markdown
@@ -90,6 +90,17 @@ tmpfs 934M 0 934M 0% /dev/shm
Defining a `disk_use` sensor for `/` and `/home/pi` is redundant and will return the same values, since they both belong to the same "disk". However, defining separate sensors for `/dev` and `/dev/shm` is possible and provides different values, since those are treated as separate "disks" by the integration.
+```yaml
+# Example configuration.yaml entry
+sensor:
+ - platform: systemmonitor
+ resources:
+ - type: disk_use
+ arg: /dev
+ - type: disk_use
+ arg: /dev/shm
+```
+
## Processor temperature
- If no hardware sensor data is available (e.g., because the integration runs in a virtualized environment), the sensor entity will not be created.
diff --git a/source/_integrations/tailscale.markdown b/source/_integrations/tailscale.markdown
index cda49171b0c..aa4068171eb 100644
--- a/source/_integrations/tailscale.markdown
+++ b/source/_integrations/tailscale.markdown
@@ -21,6 +21,10 @@ The Tailscale integration integrates the [Tailscale](https://www.tailscale.com)
with Home Assistant; giving you the possibility to monitor and automate on
the state of the devices in your Tailscale VPN network (Tailnet).
+Please, note that this integration integrates with data from the Tailscale API,
+it is not a Tailscale client itself, and thus add Home Assistant to your
+Tailscale VPN network.
+
## Prerequisites
To use the Tailscale integration, you will need to obtain an API key,
diff --git a/source/_integrations/timer.markdown b/source/_integrations/timer.markdown
index 1d3cf1344fd..4b799dfcdb1 100644
--- a/source/_integrations/timer.markdown
+++ b/source/_integrations/timer.markdown
@@ -17,7 +17,7 @@ When a timer finishes or gets canceled the corresponding events are fired. This
## Configuration
-The preferred way to configure timer helpers is via the user interface. To add one, go to Configuration -> Helpers and click the add button; next choose the “Timer” option.
+The preferred way to configure timer helpers is via the user interface. To add one, go to Configuration -> Automations & Scenes, select the "Helpers" tab and click the add button; next choose the “Timer” option.
You can also click the following button to be redirected to the Helpers page of your Home Assistant instance.
diff --git a/source/_integrations/tuya.markdown b/source/_integrations/tuya.markdown
index 5f3c1b743c6..60fba6ba8fc 100644
--- a/source/_integrations/tuya.markdown
+++ b/source/_integrations/tuya.markdown
@@ -77,7 +77,7 @@ This is a separate account from the one you made for the app. You cannot log in

4. Click `Confirm` in the app.
5. To confirm that everything worked, navigate to the `All Devices` tab. Here you should be able to find the devices from the app.
-6. If zero devices are imported, try changing the DataCenter.
+6. If zero devices are imported. Try changing the DataCenter and check the account used is the "Home Owner".

@@ -100,10 +100,10 @@ Click the created project to enter the `Project Overview` page and get the `Auth
description: Go to your cloud project on [Tuya IoT Platform](https://iot.tuya.com/). Find the **Access Secret** under [Authorization Key](#get-authorization-key) on the **Project Overview** tab.
Account:
- description: Tuya Smart or Smart Life app account.
+ description: Tuya Smart or Smart Life **app** account.
Password:
- description: The password of your app account.
+ description: The password of your **app** account.
{% endconfiguration_basic %}
diff --git a/source/_integrations/wled.markdown b/source/_integrations/wled.markdown
index 1b568d3da7a..f087720bd26 100644
--- a/source/_integrations/wled.markdown
+++ b/source/_integrations/wled.markdown
@@ -143,3 +143,59 @@ data:
```
{% endraw %}
+
+### Activating a preset
+
+Activating a preset is an easy way to set a WLED light to a specific
+configuration. Here is an example service call to set a WLED light
+to a preset called My Preset:
+
+```yaml
+- service: light.turn_on
+ target:
+ entity_id: light.wled
+- service: select.select_option
+ target:
+ entity_id: select.wled_preset
+ data:
+ option: "My Preset"
+```
+
+### Automation Using Specific Palette Name
+
+An automation to turn on a WLED light and select a specific palette and
+set intensity, and speed can be created by first calling the `light.turn_on`
+service, then calling the `select.select_option` service to select the
+palette, then call the `number.set_value` service to set the intensity
+and again to set the speed.
+
+Here is an example of all of these put together into an automation:
+
+```yaml
+- alias: "Turn on WLED rain effect when weather changes to rainy"
+ trigger:
+ - platform: state
+ entity_id: sensor.weather_condition
+ to: "rainy"
+ action:
+ - service: light.turn_on
+ target:
+ entity_id: light.wled
+ data:
+ effect: "Rain"
+ - service: select.select_option
+ target:
+ entity_id: select.wled_color_palette
+ data:
+ option: "Breeze"
+ - service: number.set_value
+ target:
+ entity_id: number.wled_intensity
+ data:
+ value: 200
+ - service: number.set_value
+ target:
+ entity_id: number.wled_speed
+ data:
+ value: 255
+```
diff --git a/source/_integrations/zeroconf.markdown b/source/_integrations/zeroconf.markdown
index 0b83a9c0181..cf744403f49 100644
--- a/source/_integrations/zeroconf.markdown
+++ b/source/_integrations/zeroconf.markdown
@@ -29,3 +29,28 @@ zeroconf:
Zeroconf chooses which interfaces to broadcast on based on the [Network](/integrations/network/) integration.
IPv6 will automatically be enabled if one of the selected interfaces has an IPv6 address that is enabled via the Network integration.
+
+## Troubleshooting
+
+### Integrations relying on Zeroconf traffic are unresponsive
+
+Some integrations rely on Zeroconf traffic to work, for example, the [HomeKit](/integrations/homekit/) integration.
+These integrations will not respond to traffic from other devices if the host device is not configured correctly.
+
+#### Libvirt virtual machine with macvtap adapter
+
+By default, the macvtap adapter created by libvirt does not allow the guest to receive Zeroconf or multicast traffic.
+
+Configure the virtual machine to accept this traffic by adding the `trustGuestRxFilters="yes"` setting in the adapter's XML. For example:
+
+```xml
+