diff --git a/Gemfile.lock b/Gemfile.lock
index 627ff3d06ef..cbcee356060 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -78,7 +78,7 @@ GEM
mini_portile2 (~> 2.4.0)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
- public_suffix (4.0.3)
+ public_suffix (4.0.4)
rack (2.2.2)
rack-protection (2.0.8.1)
rack
@@ -107,7 +107,7 @@ GEM
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
tilt (2.0.10)
- tzinfo (2.0.1)
+ tzinfo (2.0.2)
concurrent-ruby (~> 1.0)
tzinfo-data (1.2019.3)
tzinfo (>= 1.0.0)
diff --git a/package-lock.json b/package-lock.json
index 230137f1d6e..234746dc07e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -439,6 +439,16 @@
"integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
"dev": true
},
+ "remark-frontmatter": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-1.3.3.tgz",
+ "integrity": "sha512-fM5eZPBvu2pVNoq3ZPW22q+5Ativ1oLozq2qYt9I2oNyxiUd/tDl0iLLntEVAegpZIslPWg1brhcP1VsaSVUag==",
+ "dev": true,
+ "requires": {
+ "fault": "^1.0.1",
+ "xtend": "^4.0.1"
+ }
+ },
"remark-parse": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz",
@@ -2088,13 +2098,12 @@
}
},
"remark-frontmatter": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-1.3.3.tgz",
- "integrity": "sha512-fM5eZPBvu2pVNoq3ZPW22q+5Ativ1oLozq2qYt9I2oNyxiUd/tDl0iLLntEVAegpZIslPWg1brhcP1VsaSVUag==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-2.0.0.tgz",
+ "integrity": "sha512-uNOQt4tO14qBFWXenF0MLC4cqo3dv8qiHPGyjCl1rwOT0LomSHpcElbjjVh5CwzElInB38HD8aSRVugKQjeyHA==",
"dev": true,
"requires": {
- "fault": "^1.0.1",
- "xtend": "^4.0.1"
+ "fault": "^1.0.1"
}
},
"remark-lint": {
diff --git a/package.json b/package.json
index b44e2c4152d..4217174ee11 100644
--- a/package.json
+++ b/package.json
@@ -5,7 +5,7 @@
"dependencies": {},
"devDependencies": {
"remark-cli": "^8.0.0",
- "remark-frontmatter": "^1.3.3",
+ "remark-frontmatter": "^2.0.0",
"remark-lint": "^7.0.0",
"remark-lint-fenced-code-flag": "^2.0.0",
"remark-lint-no-shell-dollars": "^2.0.0",
diff --git a/source/_docs/authentication/providers.markdown b/source/_docs/authentication/providers.markdown
index 9068562e563..e49e2704752 100644
--- a/source/_docs/authentication/providers.markdown
+++ b/source/_docs/authentication/providers.markdown
@@ -143,7 +143,7 @@ homeassistant:
- type: homeassistant
```
-Assuming you have only the owner created though onboarding process, no other users ever created. The above example configuration will allow you directly access Home Assistant main page if you access from your internal network (192.168.0.0/24) or from localhost (127.0.0.1). If you get a login abort error, then you can change to use HomeAsssitant Authentication Provider to login, if you access your Home Assistant instance from outside network.
+Assuming you have only the owner created though onboarding process, no other users ever created. The above example configuration will allow you directly access Home Assistant main page if you access from your internal network (192.168.0.0/24) or from localhost (127.0.0.1). If you get a login abort error, then you can change to use Home Assistant Authentication Provider to login, if you access your Home Assistant instance from outside network.
### Command Line
diff --git a/source/_docs/automation/examples.markdown b/source/_docs/automation/examples.markdown
index 820ea637c34..6ecf4405083 100644
--- a/source/_docs/automation/examples.markdown
+++ b/source/_docs/automation/examples.markdown
@@ -44,7 +44,7 @@ automation:
to: 'not_home'
action:
service: light.turn_off
- entity_id: group.all_lights
+ entity_id: all
# Notify when Paulus leaves the house in the evening
- alias: 'Leave Home notification'
diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown
index 9cad84046be..47f359d96ea 100644
--- a/source/_docs/automation/trigger.markdown
+++ b/source/_docs/automation/trigger.markdown
@@ -4,11 +4,12 @@ description: "All the different ways how automations can be triggered."
redirect_from: /getting-started/automation-trigger/
---
-Triggers are what starts the processing of an automation rule. It is possible to specify [multiple triggers](/docs/automation/trigger/#multiple-triggers) for the same rule - when _any_ of the triggers becomes true then the automation will start. Once a trigger starts, Home Assistant will validate the conditions, if any, and call the action.
+### What are triggers
+Triggers are what starts the processing of an automation rule. When _any_ of the automation's triggers becomes true (trigger _fires_), Home Assistant will validate the [conditions](/docs/automation/condition/), if any, and call the [action](/docs/automation/action/).
### Event trigger
-Triggers when an event is being processed. Events are the raw building blocks of Home Assistant. You can match events on just the event name or also require specific event data to be present.
+Fires when an event is being received. Events are the raw building blocks of Home Assistant. You can match events on just the event name or also require specific event data to be present.
Events can be fired by integrations or via the API. There is no limitation to the types. A list of built-in events can be found [here](/docs/configuration/events/).
@@ -24,7 +25,7 @@ automation:
### Home Assistant trigger
-Triggers when Home Assistant starts up or shuts down.
+Fires when Home Assistant starts up or shuts down.
```yaml
automation:
@@ -36,7 +37,7 @@ automation:
### MQTT trigger
-Triggers when a specific message is received on given topic. Optionally can match on the payload being sent over the topic. The default payload encoding is 'utf-8'. For images and other byte payloads use `encoding: ''` to disable payload decoding completely.
+Fires when a specific message is received on given MQTT topic. Optionally can match on the payload being sent over the topic. The default payload encoding is 'utf-8'. For images and other byte payloads use `encoding: ''` to disable payload decoding completely.
```yaml
automation:
@@ -50,7 +51,7 @@ automation:
### Numeric state trigger
-Triggers when numeric value of an entity's state crosses a given threshold. On state change of a specified entity, attempts to parse the state as a number and triggers once if value is changing from above to below or from below to above the given threshold.
+Fires when numeric value of an entity's state crosses a given threshold. On state change of a specified entity, attempts to parse the state as a number and fires if value is changing from above to below or from below to above the given threshold.
{% raw %}
@@ -76,7 +77,7 @@ automation:
Listing above and below together means the numeric_state has to be between the two values.
-In the example above, a numeric_state that goes to 17.1-24.9 (from 17 or below, or 25 or above) would fire this trigger.
+In the example above, the trigger would fire if a numeric_state goes to 17.1-24.9 (from 17 or below, or 25 or above).
The `for:` can also be specified as `HH:MM:SS` like this:
@@ -128,7 +129,7 @@ The `for` template(s) will be evaluated when an entity changes as specified.
### State trigger
-Triggers when the state of any of given entities changes. If only `entity_id` is given trigger will activate for all state changes, even if only state attributes change.
+Fires when the state of any of given entities changes. If only `entity_id` is given trigger will fire for all state changes, even if only state attributes change.
@@ -182,9 +183,9 @@ Use quotes around your values for `from` and `to` to avoid the YAML parser inter
#### Sunset / Sunrise trigger
-Triggers when the sun is setting or rising, i.e., when the sun elevation reaches 0°.
+Fires when the sun is setting or rising, i.e., when the sun elevation reaches 0°.
-An optional time offset can be given to have it trigger a set time before or after the sun event (e.g., 45 minutes before sunset).
+An optional time offset can be given to have it fire a set time before or after the sun event (e.g., 45 minutes before sunset).
@@ -206,7 +207,7 @@ automation:
#### Sun elevation trigger
-Sometimes you may want more granular control over an automation than simply sunset or sunrise and specify an exact elevation of the sun. This can be used to layer automations to occur as the sun lowers on the horizon or even after it is below the horizon. This is also useful when the "sunset" event is not dark enough outside and you would like the automation to run later at a precise solar angle instead of the time offset such as turning on exterior lighting. For most things intended to trigger during dusk or dawn, a number between 0° and -6° is suitable; -4° is used in this example:
+Sometimes you may want more granular control over an automation than simply sunset or sunrise and specify an exact elevation of the sun. This can be used to layer automations to occur as the sun lowers on the horizon or even after it is below the horizon. This is also useful when the "sunset" event is not dark enough outside and you would like the automation to run later at a precise solar angle instead of the time offset such as turning on exterior lighting. For most automations intended to run during dusk or dawn, a number between 0° and -6° is suitable; -4° is used in this example:
{% raw %}
@@ -241,7 +242,7 @@ A very thorough explanation of this is available in the Wikipedia article about
### Template trigger
-Template triggers work by evaluating a [template](/docs/configuration/templating/) on every state change for all of the recognized entities. The trigger will fire if the state change caused the template to render 'true'. This is achieved by having the template result in a true boolean expression (`{% raw %}{{ is_state('device_tracker.paulus', 'home') }}{% endraw %}`) or by having the template render 'true' (example below). Being a boolean expression the template must evaluate to false (or anything other than true) before it will fire again.
+Template triggers work by evaluating a [template](/docs/configuration/templating/) on every state change for all of the recognized entities. The trigger will fire if the state change caused the template to render 'true'. This is achieved by having the template result in a true boolean expression (`{% raw %}{{ is_state('device_tracker.paulus', 'home') }}{% endraw %}`) or by having the template render 'true' (example below). Being a boolean expression the template must evaluate to false (or anything other than true) before the trigger will fire again.
With template triggers you can also evaluate attribute changes by using is_state_attr (`{% raw %}{{ is_state_attr('climate.living_room', 'away_mode', 'off') }}{% endraw %}`)
{% raw %}
@@ -276,7 +277,7 @@ automation:
The `for` template(s) will be evaluated when the `value_template` becomes `true`.
-Rendering templates with time (`now()`) is dangerous as trigger templates only update based on entity state changes.
+Rendering templates with time (`now()`) is dangerous as trigger templates are only updated based on entity state changes.
@@ -297,7 +298,7 @@ which will evaluate to `True` if `YOUR.ENTITY` changed more than 300 seconds ago
### Time trigger
-The time trigger is configured to run once at a specific point in time each day.
+The time trigger is configured to fire once at a specific point in time each day.
```yaml
automation:
@@ -340,7 +341,7 @@ Do not prefix numbers with a zero - using `'00'` instead of '0' for example will
### Webhook trigger
-Webhook triggers are triggered by web requests made to the webhook endpoint: `/api/webhook/
`. This endpoint does not require authentication besides knowing the webhook id. You can either send encoded form or JSON data, available in the template as either `trigger.json` or `trigger.data`. URL query parameters are available in the template as `trigger.query`.
+Webhook trigger fires when a web request is made to the webhook endpoint: `/api/webhook/`. This endpoint does not require authentication besides knowing the webhook id. You can either send encoded form or JSON data, available in the template as either `trigger.json` or `trigger.data`. URL query parameters are available in the template as `trigger.query`.
```yaml
automation:
@@ -349,11 +350,11 @@ automation:
webhook_id: some_hook_id
```
-You could test triggering the above automation by sending a POST HTTP request to `http://your-home-assistant:8123/api/webhook/some_hook_id`. An example with no data sent to a SSL/TLS secured installation and using the command-line curl program is `curl -d "" https://your-home-assistant:8123/api/webhook/some_hook_id`.
+You could run the above automation by sending a POST HTTP request to `http://your-home-assistant:8123/api/webhook/some_hook_id`. An example with no data sent to a SSL/TLS secured installation and using the command-line curl program is `curl -d "" https://your-home-assistant:8123/api/webhook/some_hook_id`.
### Zone trigger
-Zone triggers can trigger when an entity is entering or leaving the zone. For zone automation to work, you need to have setup a device tracker platform that supports reporting GPS coordinates. This includes [GPS Logger](/integrations/gpslogger/), the [OwnTracks platform](/integrations/owntracks/) and the [iCloud platform](/integrations/icloud/).
+Zone trigger fires when an entity is entering or leaving the zone. For zone automation to work, you need to have setup a device tracker platform that supports reporting GPS coordinates. This includes [GPS Logger](/integrations/gpslogger/), the [OwnTracks platform](/integrations/owntracks/) and the [iCloud platform](/integrations/icloud/).
```yaml
automation:
@@ -367,8 +368,8 @@ automation:
### Geolocation trigger
-Geolocation triggers can trigger when an entity is appearing in or disappearing from a zone. Entities that are created by a [Geolocation](/integrations/geo_location/) platform support reporting GPS coordinates.
-Because entities are generated and removed by these platforms automatically, the entity id normally cannot be predicted. Instead, this trigger requires the definition of a `source` which is directly linked to one of the Geolocation platforms.
+Geolocation trigger fires when an entity is appearing in or disappearing from a zone. Entities that are created by a [Geolocation](/integrations/geo_location/) platform support reporting GPS coordinates.
+Because entities are generated and removed by these platforms automatically, the entity id normally cannot be predicted. Instead, this trigger requires the definition of a `source`, which is directly linked to one of the Geolocation platforms.
```yaml
automation:
@@ -382,7 +383,7 @@ automation:
### Multiple triggers
-When your want your automation rule to have multiple triggers, just prefix the first line of each trigger with a dash (-) and indent the next lines accordingly. Whenever one of the triggers fires, your rule is executed.
+It is possible to specify multiple triggers for the same rule. To do so just prefix the first line of each trigger with a dash (-) and indent the next lines accordingly. Whenever one of the triggers fires, [processing](#what-are-triggers) of your automation rule begins.
```yaml
automation:
diff --git a/source/_docs/locked_out.md b/source/_docs/locked_out.md
index bf0d7317d77..b40e66ff71b 100644
--- a/source/_docs/locked_out.md
+++ b/source/_docs/locked_out.md
@@ -18,7 +18,7 @@ If you know the user, but not the password and you can access the [Home Assistan
Connect a keyboard and monitor to your device.
-`ha auth reset --username "" --password ""`
+`auth reset --username existing_user --password new_password`
### Home Assistant Core
diff --git a/source/_docs/scripts.markdown b/source/_docs/scripts.markdown
index ee17347b3da..e806b9d5d75 100644
--- a/source/_docs/scripts.markdown
+++ b/source/_docs/scripts.markdown
@@ -79,7 +79,7 @@ Delays are useful for temporarily suspending your script and start it at a later
# Waits however many seconds input_number.second_delay is set to
- delay:
# Supports milliseconds, seconds, minutes, hours, days
- seconds: "{{ states('input_number.second_delay') }}"
+ seconds: "{{ states('input_number.second_delay') | int }}"
```
{% endraw %}
diff --git a/source/_docs/z-wave/installation.markdown b/source/_docs/z-wave/installation.markdown
index bfd703af5ea..e3effd00110 100644
--- a/source/_docs/z-wave/installation.markdown
+++ b/source/_docs/z-wave/installation.markdown
@@ -287,3 +287,7 @@ WARNING: Checksum incorrect - sending NAK
```
If you see any of these messages repeated in the log then _probably_ you've got something else running that's also using the Z-Wave controller. That might mean you've also got the OpenZ-Wave control panel (ozwcp) running, a second instance of Home Assistant or something else. You need to stop that other process to resolve this.
+
+### Changing device paths
+
+Configurations using `udev` can experience race conditions in creating device paths such that they change on reboot. This can cause a device to appear to change between `/dev/ttyACM0` and `/dev/ttyACM1` after reboot. In this case using the symlinks created for device IDs can ensure the correct device is used, for example: `/dev/serial/by-id/usb-0658_0200-if00` for Aeotec Z-Stick.
diff --git a/source/_includes/asides/lovelace_navigation.html b/source/_includes/asides/lovelace_navigation.html
index b11dff43f86..cbf144fd6e1 100644
--- a/source/_includes/asides/lovelace_navigation.html
+++ b/source/_includes/asides/lovelace_navigation.html
@@ -16,7 +16,7 @@
{% active_link /lovelace/how-it-works/ How it works %}
{% active_link /lovelace/header-footer/ Headers & Footers %}
{% active_link /lovelace/yaml-mode/ YAML mode %}
- {% active_link /lovelace/views/ Views %}
+ {% active_link /lovelace/dashboards-and-views/ Dashboards & Views %}
{% active_link /lovelace/actions/ Actions %}
Developing Custom Cards
diff --git a/source/_integrations/alarm_control_panel.markdown b/source/_integrations/alarm_control_panel.markdown
index f2d52d2aafd..a2b0e8afc20 100644
--- a/source/_integrations/alarm_control_panel.markdown
+++ b/source/_integrations/alarm_control_panel.markdown
@@ -9,3 +9,4 @@ ha_domain: alarm_control_panel
---
Home Assistant can give you an interface which is similar to a classic alarm system.
+Please see [manual alarm](/integrations/manual) for alarm configuration.
diff --git a/source/_integrations/alarm_control_panel.mqtt.markdown b/source/_integrations/alarm_control_panel.mqtt.markdown
index ba3583c8448..e606c064b8d 100644
--- a/source/_integrations/alarm_control_panel.mqtt.markdown
+++ b/source/_integrations/alarm_control_panel.mqtt.markdown
@@ -93,6 +93,10 @@ device:
description: 'The firmware version of the device.'
required: false
type: string
+ via_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
json_attributes_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
required: false
diff --git a/source/_integrations/alexa.smart_home.markdown b/source/_integrations/alexa.smart_home.markdown
index a82e4791bd3..2dd0ed9c5ff 100644
--- a/source/_integrations/alexa.smart_home.markdown
+++ b/source/_integrations/alexa.smart_home.markdown
@@ -182,6 +182,7 @@ Alexa can link your Amazon account to your Home Assistant account. Therefore Hom
- Sign in [Alexa Developer Console][alexa-dev-console], go to `Alexa Skills` page if you are not.
- Find the skill you just created, click `Edit` link in the `Actions` column.
- Click `ACCOUNT LINKING` in the left navigation bar of build page
+- Do not turn on the "Allow users to link their account to your skill from within your application or website" switch. This will require a Redirect URI, which won't work.
- Input all information required. Assuming your Home Assistant can be accessed by `https://[YOUR HOME ASSISTANT URL:PORT]`
- `Authorization URI`: `https://[YOUR HOME ASSISTANT URL]/auth/authorize`
- `Access Token URI`: `https://[YOUR HOME ASSISTANT URL]/auth/token`
diff --git a/source/_integrations/alpha_vantage.markdown b/source/_integrations/alpha_vantage.markdown
index f79d83adb9b..758786c2752 100644
--- a/source/_integrations/alpha_vantage.markdown
+++ b/source/_integrations/alpha_vantage.markdown
@@ -73,6 +73,10 @@ foreign_exchange:
type: string
{% endconfiguration %}
+## API Information
+
+Alpha Vantage offers two tiers of the API key, one free and one paid for. If you are using the free version you will be limited to five queries per minute. This means that you'll likely only be able to have one or two ticker entries. The paid version starts at thirty queries per minute increasing ticker quantity quite a bit.
+
## Examples
In this section you find some real-life examples of how to use this sensor.
diff --git a/source/_integrations/api.markdown b/source/_integrations/api.markdown
index a2ac0becc0c..0f5eeff4e67 100644
--- a/source/_integrations/api.markdown
+++ b/source/_integrations/api.markdown
@@ -17,4 +17,4 @@ The `api` integration exposes a RESTful API and allows one to interact with a Ho
api:
```
-For details to use the API, please refer to the [REST API](/developers/rest_api/) or the [Python REST API documentation](/developers/python_api/) in the "Developer" section.
+For details to use the API, please refer to the [REST API](/developers/rest_api/) in the "Developer" section.
diff --git a/source/_integrations/binary_sensor.mqtt.markdown b/source/_integrations/binary_sensor.mqtt.markdown
index 6154fd3c550..32adba9baaa 100644
--- a/source/_integrations/binary_sensor.mqtt.markdown
+++ b/source/_integrations/binary_sensor.mqtt.markdown
@@ -65,6 +65,10 @@ device:
description: The firmware version of the device.
required: false
type: string
+ via_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
device_class:
description: Sets the [class of the device](/integrations/binary_sensor/#device-class), changing the device state and icon that is displayed on the frontend.
required: false
diff --git a/source/_integrations/buienradar.markdown b/source/_integrations/buienradar.markdown
index d141dade0c6..006d80541ac 100644
--- a/source/_integrations/buienradar.markdown
+++ b/source/_integrations/buienradar.markdown
@@ -1,7 +1,6 @@
---
title: Buienradar
description: Instructions on how to integrate buienradar.nl weather within Home Assistant.
-logo: buienradar.png
ha_category:
- Camera
- Weather
diff --git a/source/_integrations/camera.mqtt.markdown b/source/_integrations/camera.mqtt.markdown
index ef8082632dd..081c75efc95 100644
--- a/source/_integrations/camera.mqtt.markdown
+++ b/source/_integrations/camera.mqtt.markdown
@@ -65,6 +65,10 @@ json_attributes_topic:
description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Implies `force_update` of the current sensor state when a message is received on this topic.
required: false
type: string
+ via_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
name:
description: The name of the camera.
required: false
diff --git a/source/_integrations/climate.mqtt.markdown b/source/_integrations/climate.mqtt.markdown
index fa9b95d703c..a07c1f6623f 100644
--- a/source/_integrations/climate.mqtt.markdown
+++ b/source/_integrations/climate.mqtt.markdown
@@ -96,6 +96,10 @@ device:
description: 'The firmware version of the device.'
required: false
type: string
+ via_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
fan_mode_command_topic:
description: The MQTT topic to publish commands to change the fan mode.
required: false
diff --git a/source/_integrations/cover.mqtt.markdown b/source/_integrations/cover.mqtt.markdown
index 1c65d259d7a..5edc481f7b8 100644
--- a/source/_integrations/cover.mqtt.markdown
+++ b/source/_integrations/cover.mqtt.markdown
@@ -74,6 +74,10 @@ device:
description: The firmware version of the device.
required: false
type: string
+ via_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
device_class:
description: Sets the [class of the device](/integrations/cover/), changing the device state and icon that is displayed on the frontend.
required: false
diff --git a/source/_integrations/currencylayer.markdown b/source/_integrations/currencylayer.markdown
index d1b8509d257..6c407f0327f 100644
--- a/source/_integrations/currencylayer.markdown
+++ b/source/_integrations/currencylayer.markdown
@@ -9,7 +9,7 @@ ha_release: 0.32
ha_domain: currencylayer
---
-The `currencylayer` sensor will show you the current exchange rate from [Currencylayer](https://currencylayer.com/) that provides real-time exchange rates for [170 currencies](https://currencylayer.com/currencies). The free account is limited to only USD as a base currency, allows 1000 requests per month, and updates every hour.
+The `currencylayer` sensor will show you the current exchange rate from [Currencylayer](https://currencylayer.com/) that provides real-time exchange rates for [170 currencies](https://currencylayer.com/currencies). The free account is limited to only USD as a base currency, allows 250 requests per month, and updates daily.
Obtain your API key [here](https://currencylayer.com/product)
diff --git a/source/_integrations/denon.markdown b/source/_integrations/denon.markdown
index ffb1dca5c12..c2cf804bece 100644
--- a/source/_integrations/denon.markdown
+++ b/source/_integrations/denon.markdown
@@ -1,7 +1,6 @@
---
title: Denon Network Receivers
description: Instructions on how to integrate Denon Network Receivers into Home Assistant.
-logo: denon.png
ha_category:
- Media Player
ha_iot_class: Local Polling
diff --git a/source/_integrations/denonavr.markdown b/source/_integrations/denonavr.markdown
index 871a3459d4b..3878fcf2cab 100644
--- a/source/_integrations/denonavr.markdown
+++ b/source/_integrations/denonavr.markdown
@@ -11,7 +11,7 @@ ha_domain: denonavr
The `denonavr` platform allows you to control a [Denon Network Receivers](https://www.denon.co.uk/chg/product/compactsystems/networkmusicsystems/ceolpiccolo) from Home Assistant. It might be that your device is supported by the [Denon] platform.
-Supported devices:
+Known supported devices:
- Denon AVR-X1300W
- Denon AVR-X1500H
@@ -24,6 +24,7 @@ Supported devices:
- Denon AVR-2312CI
- Denon AVR-3311CI
- Denon AVR-4810
+- Denon AVR-S750H
- Marantz M-CR510
- Marantz M-CR603
- Marantz M-RC610
diff --git a/source/_integrations/device_tracker.markdown b/source/_integrations/device_tracker.markdown
index 608bfa4b033..a1a532794d7 100644
--- a/source/_integrations/device_tracker.markdown
+++ b/source/_integrations/device_tracker.markdown
@@ -62,7 +62,7 @@ Multiple device trackers can be used in parallel, such as [Owntracks](/integrati
-As of 0.94 `known_devices.yaml` is being phased out and no longer used by all trackers. Depending on the integration you use this section may no longer apply. This includes the mobile app, OwnTracks, GeoFency, GPSLogger, Locative and Huawei LTE.
+As of 0.94 `known_devices.yaml` is being phased out and no longer used by all trackers. Depending on the integration you use this section may no longer apply. This includes OwnTracks, GeoFency, GPSLogger, Locative and Huawei LTE.
diff --git a/source/_integrations/device_trigger.mqtt.markdown b/source/_integrations/device_trigger.mqtt.markdown
index 8a843437826..1f47e3f0fe6 100644
--- a/source/_integrations/device_trigger.mqtt.markdown
+++ b/source/_integrations/device_trigger.mqtt.markdown
@@ -72,4 +72,8 @@ device:
description: The firmware version of the device.
required: false
type: string
+ via_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
{% endconfiguration %}
diff --git a/source/_integrations/discord.markdown b/source/_integrations/discord.markdown
index ac438ce96e4..cd647ee1d57 100644
--- a/source/_integrations/discord.markdown
+++ b/source/_integrations/discord.markdown
@@ -1,7 +1,6 @@
---
title: Discord
description: Instructions on how to add Discord notifications to Home Assistant.
-logo: discord.png
ha_category:
- Notifications
ha_release: 0.37
diff --git a/source/_integrations/dublin_bus_transport.markdown b/source/_integrations/dublin_bus_transport.markdown
index a6e6bcced2b..2cc18600f11 100644
--- a/source/_integrations/dublin_bus_transport.markdown
+++ b/source/_integrations/dublin_bus_transport.markdown
@@ -1,7 +1,6 @@
---
title: Dublin Bus
description: Instructions on how to integrate timetable data for traveling on Dublin Bus within Home Assistant.
-logo: dublin_bus.png
ha_category:
- Transport
ha_iot_class: Cloud Polling
diff --git a/source/_integrations/fan.mqtt.markdown b/source/_integrations/fan.mqtt.markdown
index 2a12a35a02b..3f9649d2ca8 100644
--- a/source/_integrations/fan.mqtt.markdown
+++ b/source/_integrations/fan.mqtt.markdown
@@ -65,6 +65,10 @@ device:
description: The firmware version of the device.
required: false
type: string
+ via_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
json_attributes_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
required: false
diff --git a/source/_integrations/flic.markdown b/source/_integrations/flic.markdown
index b5ceba3b9b8..6e275502f1a 100644
--- a/source/_integrations/flic.markdown
+++ b/source/_integrations/flic.markdown
@@ -1,7 +1,6 @@
---
title: Flic
description: Instructions on how to integrate flic buttons within Home Assistant.
-logo: flic.png
ha_category:
- Binary Sensor
ha_iot_class: Local Push
diff --git a/source/_integrations/foscam.markdown b/source/_integrations/foscam.markdown
index 4e677baf85c..5ce1b403d33 100644
--- a/source/_integrations/foscam.markdown
+++ b/source/_integrations/foscam.markdown
@@ -1,7 +1,6 @@
---
title: Foscam
description: Instructions on how to integrate Foscam IP cameras within Home Assistant.
-logo: foscam.png
ha_category:
- Camera
ha_iot_class: Local Polling
diff --git a/source/_integrations/garmin_connect.markdown b/source/_integrations/garmin_connect.markdown
index aac4d4f8be9..62fba593bb0 100644
--- a/source/_integrations/garmin_connect.markdown
+++ b/source/_integrations/garmin_connect.markdown
@@ -1,7 +1,6 @@
---
title: Garmin Connect
description: Instructions on how to configure the Garmin Connect integration for Home Assistant.
-logo: garmin_connect.png
ha_category:
- Health
ha_iot_class: Cloud Polling
diff --git a/source/_integrations/gdacs.markdown b/source/_integrations/gdacs.markdown
index 5ba90e242cd..622d80af237 100644
--- a/source/_integrations/gdacs.markdown
+++ b/source/_integrations/gdacs.markdown
@@ -1,7 +1,6 @@
---
title: Global Disaster Alert and Coordination System (GDACS)
description: Instructions on how to integrate the Global Disaster Alert and Coordination System (GDACS) feed into Home Assistant.
-logo: gdacs.jpg
ha_category:
- Geolocation
ha_iot_class: Cloud Polling
diff --git a/source/_integrations/geonetnz_quakes.markdown b/source/_integrations/geonetnz_quakes.markdown
index bee62f90641..c62983e118e 100644
--- a/source/_integrations/geonetnz_quakes.markdown
+++ b/source/_integrations/geonetnz_quakes.markdown
@@ -1,7 +1,6 @@
---
title: GeoNet NZ Quakes
description: Instructions on how to integrate the GeoNet New Zealand Quakes feed into Home Assistant.
-logo: geonet-nz.png
ha_category:
- Geolocation
ha_iot_class: Cloud Polling
diff --git a/source/_integrations/geonetnz_volcano.markdown b/source/_integrations/geonetnz_volcano.markdown
index 5d04d7495e3..209839d4d89 100644
--- a/source/_integrations/geonetnz_volcano.markdown
+++ b/source/_integrations/geonetnz_volcano.markdown
@@ -1,7 +1,6 @@
---
title: GeoNet NZ Volcano
description: Instructions on how to integrate the GeoNet New Zealand Volcanic Alert Level feed into Home Assistant.
-logo: geonet-nz.png
ha_category:
- Sensor
ha_iot_class: Cloud Polling
diff --git a/source/_integrations/github.markdown b/source/_integrations/github.markdown
index 8c383d3baac..bce71e70415 100644
--- a/source/_integrations/github.markdown
+++ b/source/_integrations/github.markdown
@@ -1,7 +1,6 @@
---
title: GitHub
description: How to integrate the GitHub sensor into Home Assistant.
-logo: github.png
ha_category:
- Sensor
ha_release: 0.88
diff --git a/source/_integrations/gstreamer.markdown b/source/_integrations/gstreamer.markdown
index fe212313f4f..285320dc499 100644
--- a/source/_integrations/gstreamer.markdown
+++ b/source/_integrations/gstreamer.markdown
@@ -3,7 +3,6 @@ title: GStreamer
description: Instructions on how to integrate Gstreamer into Home Assistant.
ha_category:
- Media Player
-logo: gstreamer.png
ha_release: 0.39
ha_iot_class: Local Push
ha_domain: gstreamer
diff --git a/source/_integrations/haveibeenpwned.markdown b/source/_integrations/haveibeenpwned.markdown
index f931c6c3365..58575bce85c 100644
--- a/source/_integrations/haveibeenpwned.markdown
+++ b/source/_integrations/haveibeenpwned.markdown
@@ -1,7 +1,6 @@
---
title: HaveIBeenPwned
description: Instructions on how to integrate HaveIBeenPwned sensor into Home Assistant.
-logo: haveibeenpwned.png
ha_category:
- Sensor
ha_release: 0.31
diff --git a/source/_integrations/homematicip_cloud.markdown b/source/_integrations/homematicip_cloud.markdown
index d6431a9c4ad..50e5467c5c5 100644
--- a/source/_integrations/homematicip_cloud.markdown
+++ b/source/_integrations/homematicip_cloud.markdown
@@ -1,7 +1,6 @@
---
title: HomematicIP Cloud
description: Instructions for integrating HomematicIP into Home Assistant.
-logo: homematicip_cloud.png
ha_category:
- Hub
- Alarm
diff --git a/source/_integrations/influxdb.markdown b/source/_integrations/influxdb.markdown
index 636852852f2..3e129b50685 100644
--- a/source/_integrations/influxdb.markdown
+++ b/source/_integrations/influxdb.markdown
@@ -1,7 +1,6 @@
---
title: InfluxDB
description: Record events in InfluxDB.
-logo: influxdb.png
ha_category:
- History
- Sensor
diff --git a/source/_integrations/keba.markdown b/source/_integrations/keba.markdown
index fd41c73073c..b38d6351a42 100644
--- a/source/_integrations/keba.markdown
+++ b/source/_integrations/keba.markdown
@@ -1,7 +1,6 @@
---
title: Keba Charging Station
description: Instructions on how to setup your Keba charging station with Home Assistant.
-logo: keba.png
ha_category:
- Binary Sensor
- Lock
diff --git a/source/_integrations/konnected.markdown b/source/_integrations/konnected.markdown
index 5ab48da641d..fe9c5e3cf52 100644
--- a/source/_integrations/konnected.markdown
+++ b/source/_integrations/konnected.markdown
@@ -1,7 +1,6 @@
---
title: Konnected
description: Connect wired alarm sensors and siren using the NodeMCU based Konnected Alarm Panel
-logo: konnected.png
ha_category:
- Alarm
- Binary Sensor
diff --git a/source/_integrations/lastfm.markdown b/source/_integrations/lastfm.markdown
index 45348a13d7b..90b4fe5b26d 100644
--- a/source/_integrations/lastfm.markdown
+++ b/source/_integrations/lastfm.markdown
@@ -1,7 +1,6 @@
---
title: Last.fm
description: Instructions on how to integrate Last.fm sensors into Home Assistant.
-logo: lastfm.png
ha_category:
- Social
ha_iot_class: Cloud Polling
diff --git a/source/_integrations/life360.markdown b/source/_integrations/life360.markdown
index a0cc57b0b75..ef215a02441 100644
--- a/source/_integrations/life360.markdown
+++ b/source/_integrations/life360.markdown
@@ -1,7 +1,6 @@
---
title: Life360
description: Instructions how to use Life360 to track devices in Home Assistant.
-logo: life360.png
ha_release: 0.95
ha_config_flow: true
ha_category:
diff --git a/source/_integrations/lifx.markdown b/source/_integrations/lifx.markdown
index 19108162ed4..184939259c7 100644
--- a/source/_integrations/lifx.markdown
+++ b/source/_integrations/lifx.markdown
@@ -1,7 +1,6 @@
---
title: LIFX
description: Instructions on how to integrate LIFX into Home Assistant.
-logo: lifx.png
ha_category:
- Light
ha_iot_class: Local Polling
diff --git a/source/_integrations/light.mqtt.markdown b/source/_integrations/light.mqtt.markdown
index 2712d5d1a78..199f89539aa 100644
--- a/source/_integrations/light.mqtt.markdown
+++ b/source/_integrations/light.mqtt.markdown
@@ -115,6 +115,10 @@ device:
description: 'The firmware version of the device.'
required: false
type: string
+ via_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
effect_command_topic:
description: "The MQTT topic to publish commands to change the light's effect state."
required: false
diff --git a/source/_integrations/lock.mqtt.markdown b/source/_integrations/lock.mqtt.markdown
index f4eae2dc7ee..5a9baf5a6cc 100644
--- a/source/_integrations/lock.mqtt.markdown
+++ b/source/_integrations/lock.mqtt.markdown
@@ -65,6 +65,10 @@ device:
description: 'The firmware version of the device.'
required: false
type: string
+ via_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
json_attributes_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
required: false
diff --git a/source/_integrations/message_bird.markdown b/source/_integrations/message_bird.markdown
index 4bf0975be1f..9650a58fb9b 100644
--- a/source/_integrations/message_bird.markdown
+++ b/source/_integrations/message_bird.markdown
@@ -1,7 +1,6 @@
---
title: MessageBird
description: Instructions on how to add user notifications to Home Assistant.
-logo: message_bird.png
ha_category:
- Notifications
ha_release: 0.16
diff --git a/source/_integrations/mikrotik.markdown b/source/_integrations/mikrotik.markdown
index 3ad46a5651a..9bbd4868aaf 100644
--- a/source/_integrations/mikrotik.markdown
+++ b/source/_integrations/mikrotik.markdown
@@ -1,7 +1,6 @@
---
title: Mikrotik
description: Instructions on how to integrate MikroTik/RouterOS based devices into Home Assistant.
-logo: mikrotik.png
ha_category:
- Hub
- Presence Detection
diff --git a/source/_integrations/neato.markdown b/source/_integrations/neato.markdown
index 4beffd87bf9..d8e768795c2 100644
--- a/source/_integrations/neato.markdown
+++ b/source/_integrations/neato.markdown
@@ -1,7 +1,6 @@
---
title: Neato Botvac
description: Instructions on how to integrate your Neato within Home Assistant.
-logo: neato.png
ha_category:
- Camera
- Sensor
diff --git a/source/_integrations/nederlandse_spoorwegen.markdown b/source/_integrations/nederlandse_spoorwegen.markdown
index fff91654d82..5ca74d2051c 100644
--- a/source/_integrations/nederlandse_spoorwegen.markdown
+++ b/source/_integrations/nederlandse_spoorwegen.markdown
@@ -1,7 +1,6 @@
---
title: Nederlandse Spoorwegen (NS)
description: Instructions on how to integrate timetable data for traveling by train in the Netherlands within Home Assistant.
-logo: nederlandse_spoorwegen.png
ha_category:
- Transport
ha_iot_class: Cloud Polling
diff --git a/source/_integrations/nest.markdown b/source/_integrations/nest.markdown
index 4370256db98..838f89eefee 100644
--- a/source/_integrations/nest.markdown
+++ b/source/_integrations/nest.markdown
@@ -1,7 +1,6 @@
---
title: Nest
description: Instructions on how to integrate Nest into Home Assistant.
-logo: nest.png
ha_category:
- Hub
- Binary Sensor
diff --git a/source/_integrations/persistent_notification.markdown b/source/_integrations/persistent_notification.markdown
index 097a1f7ab74..4a273ff1313 100644
--- a/source/_integrations/persistent_notification.markdown
+++ b/source/_integrations/persistent_notification.markdown
@@ -22,13 +22,11 @@ The service `persistent_notification.create` takes in `message`, `title`, and `n
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
-| `message` | no | Body of the notification.
-| `title` | yes | Title of the notification.
+| `message` | no | Body of the notification. Accepts [templates](/topics/templating/).
+| `title` | yes | Title of the notification. Accepts [templates](/topics/templating/).
| `notification_id` | yes | If `notification_id` is given, it will overwrite the notification if there already was a notification with that ID.
-The `persistent_notification` integration supports specifying [templates](/topics/templating/) for both the `message` and the `title`. This will allow you to use the current state of Home Assistant in your notifications.
-
-In an [action](/getting-started/automation-action/) of your [automation setup](/getting-started/automation/) it could look like this with a customized subject.
+Here is how an [action](/getting-started/automation-action/) of your [automation setup](/getting-started/automation/) with static content could look like.
```yaml
action:
@@ -38,6 +36,21 @@ action:
title: "Custom subject"
```
+If you want to show some runtime information, you have to use [templates](/topics/templating/ inside `data_template`.
+
+{% raw %}
+
+```yaml
+action:
+ service: persistent_notification.create
+ data_template:
+ title: >
+ Thermostat is {{ state_attr('climate.thermostat', 'hvac_action') }}
+ message: "Temperature {{ state_attr('climate.thermostat', 'current_temperature') }}"
+```
+
+{% endraw %}
+
The service `persistent_notification.dismiss` requires a `notification_id`.
| Service data attribute | Optional | Description |
diff --git a/source/_integrations/pioneer.markdown b/source/_integrations/pioneer.markdown
index afdbe6f12f3..8ecd042559a 100644
--- a/source/_integrations/pioneer.markdown
+++ b/source/_integrations/pioneer.markdown
@@ -1,7 +1,6 @@
---
title: Pioneer
description: Instructions on how to integrate a Pioneer Network Receivers into Home Assistant.
-logo: pioneer.png
ha_category:
- Media Player
ha_release: 0.19
diff --git a/source/_integrations/plum_lightpad.markdown b/source/_integrations/plum_lightpad.markdown
index 8260f8d0197..210883e7150 100644
--- a/source/_integrations/plum_lightpad.markdown
+++ b/source/_integrations/plum_lightpad.markdown
@@ -4,7 +4,6 @@ description: Instructions on setting up Plum Lightpads within Home Assistant.
ha_category:
- Switch
ha_iot_class: Local Push
-logo: plum.png
ha_release: 0.85
ha_domain: plum_lightpad
---
diff --git a/source/_integrations/ps4.markdown b/source/_integrations/ps4.markdown
index 3ee83d4c6ee..3e864a5bccc 100644
--- a/source/_integrations/ps4.markdown
+++ b/source/_integrations/ps4.markdown
@@ -1,7 +1,6 @@
---
title: Sony PlayStation 4
description: Instructions on how to integrate a Sony PlayStation 4 into Home Assistant.
-logo: ps4.png
ha_category:
- Media Player
ha_release: 0.89
diff --git a/source/_integrations/qnap.markdown b/source/_integrations/qnap.markdown
index 2700ee6061e..18d5c690756 100644
--- a/source/_integrations/qnap.markdown
+++ b/source/_integrations/qnap.markdown
@@ -1,7 +1,6 @@
---
title: QNAP
description: Instructions on how to integrate the QNAP sensor within Home Assistant.
-logo: qnap.png
ha_category:
- System Monitor
ha_release: 0.38
diff --git a/source/_integrations/roomba.markdown b/source/_integrations/roomba.markdown
index 323c8ebb40a..bacde3a883f 100644
--- a/source/_integrations/roomba.markdown
+++ b/source/_integrations/roomba.markdown
@@ -1,7 +1,6 @@
---
title: iRobot Roomba
description: Instructions on how to integrate your Wi-Fi enabled Roomba within Home Assistant.
-logo: irobot_roomba.png
ha_category:
- Vacuum
ha_release: 0.51
diff --git a/source/_integrations/sabnzbd.markdown b/source/_integrations/sabnzbd.markdown
index d1c127e77a4..fa3e9db076a 100644
--- a/source/_integrations/sabnzbd.markdown
+++ b/source/_integrations/sabnzbd.markdown
@@ -1,7 +1,6 @@
---
title: SABnzbd
description: Instructions on how to integrate SABnzbd with Home Assistant.
-logo: sabnzbd.png
ha_category:
- Downloading
- Sensor
diff --git a/source/_integrations/salt.markdown b/source/_integrations/salt.markdown
index 3e348821e44..331f193b74a 100644
--- a/source/_integrations/salt.markdown
+++ b/source/_integrations/salt.markdown
@@ -1,7 +1,6 @@
---
title: Salt Fiber Box
description: Instructions on how to integrate Salt Fiber Box router into Home Assistant.
-logo: salt.png
ha_category:
- Presence Detection
ha_iot_class: Local Polling
diff --git a/source/_integrations/sensibo.markdown b/source/_integrations/sensibo.markdown
index ba1ac6f2bf3..d08dcf37ce3 100644
--- a/source/_integrations/sensibo.markdown
+++ b/source/_integrations/sensibo.markdown
@@ -1,7 +1,6 @@
---
title: Sensibo
description: Instructions on how to integrate Sensibo A/C controller into Home Assistant.
-logo: sensibo.png
ha_category:
- Climate
ha_release: 0.44
diff --git a/source/_integrations/sensor.mqtt.markdown b/source/_integrations/sensor.mqtt.markdown
index d82da2d8232..a8c67ec2689 100644
--- a/source/_integrations/sensor.mqtt.markdown
+++ b/source/_integrations/sensor.mqtt.markdown
@@ -55,6 +55,10 @@ device:
description: The firmware version of the device.
required: false
type: string
+ via_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
device_class:
description: The [type/class](/integrations/sensor/#device-class) of the sensor to set the icon in the frontend.
required: false
diff --git a/source/_integrations/simplepush.markdown b/source/_integrations/simplepush.markdown
index 419219b3151..8c5d2ed259e 100644
--- a/source/_integrations/simplepush.markdown
+++ b/source/_integrations/simplepush.markdown
@@ -1,7 +1,6 @@
---
title: Simplepush
description: Instructions on how to add Simplepush notifications to Home Assistant.
-logo: simplepush.png
ha_category:
- Notifications
ha_release: 0.29
diff --git a/source/_integrations/simplisafe.markdown b/source/_integrations/simplisafe.markdown
index 91f809e5ace..41098bbee46 100644
--- a/source/_integrations/simplisafe.markdown
+++ b/source/_integrations/simplisafe.markdown
@@ -1,7 +1,6 @@
---
title: SimpliSafe
description: Instructions on how to integrate SimpliSafe into Home Assistant.
-logo: simplisafe.png
ha_release: 0.81
ha_category:
- Alarm
diff --git a/source/_integrations/sinch.markdown b/source/_integrations/sinch.markdown
index fc728328eff..206c9fc3f11 100644
--- a/source/_integrations/sinch.markdown
+++ b/source/_integrations/sinch.markdown
@@ -1,7 +1,6 @@
---
title: Sinch SMS
description: Instructions on how to add Sinch notifications to Home Assistant.
-logo: sinch.png
ha_category:
- Notifications
ha_release: 0.101
diff --git a/source/_integrations/sky_hub.markdown b/source/_integrations/sky_hub.markdown
index 60d43e6a48f..bc22ef9b0c6 100644
--- a/source/_integrations/sky_hub.markdown
+++ b/source/_integrations/sky_hub.markdown
@@ -1,7 +1,6 @@
---
title: Sky Hub
description: Instructions on how to integrate Sky Hub routers into Home Assistant.
-logo: sky.png
ha_category:
- Presence Detection
ha_release: 0.37
diff --git a/source/_integrations/slack.markdown b/source/_integrations/slack.markdown
index 190feaebb4f..1d64eb376dc 100644
--- a/source/_integrations/slack.markdown
+++ b/source/_integrations/slack.markdown
@@ -1,7 +1,6 @@
---
title: Slack
description: Instructions on how to add Slack notifications to Home Assistant.
-logo: slack.png
ha_category:
- Notifications
ha_release: pre 0.7
diff --git a/source/_integrations/smappee.markdown b/source/_integrations/smappee.markdown
index 8a12de328fe..cb198ad0442 100644
--- a/source/_integrations/smappee.markdown
+++ b/source/_integrations/smappee.markdown
@@ -1,7 +1,6 @@
---
title: Smappee
description: Instructions on how to setup Smappee within Home Assistant.
-logo: smappee.png
ha_release: 0.64
ha_category:
- Hub
diff --git a/source/_integrations/speedtestdotnet.markdown b/source/_integrations/speedtestdotnet.markdown
index 5480f99c02a..87c79c7728b 100644
--- a/source/_integrations/speedtestdotnet.markdown
+++ b/source/_integrations/speedtestdotnet.markdown
@@ -1,7 +1,6 @@
---
title: Speedtest.net
description: How to integrate Speedtest.net within Home Assistant.
-logo: speedtest.png
ha_category:
- System Monitor
- Sensor
diff --git a/source/_integrations/splunk.markdown b/source/_integrations/splunk.markdown
index eefe69f2344..be0ed9431e7 100644
--- a/source/_integrations/splunk.markdown
+++ b/source/_integrations/splunk.markdown
@@ -1,7 +1,6 @@
---
title: Splunk
description: Record events in Splunk.
-logo: splunk.png
ha_category:
- History
ha_release: 0.13
diff --git a/source/_integrations/switch.mqtt.markdown b/source/_integrations/switch.mqtt.markdown
index 4f4016de406..179a946baac 100644
--- a/source/_integrations/switch.mqtt.markdown
+++ b/source/_integrations/switch.mqtt.markdown
@@ -65,6 +65,10 @@ device:
description: The firmware version of the device.
required: false
type: string
+ via_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
icon:
description: Icon for the switch.
required: false
diff --git a/source/_integrations/toon.markdown b/source/_integrations/toon.markdown
index 59ffe07b397..616344fe3f6 100644
--- a/source/_integrations/toon.markdown
+++ b/source/_integrations/toon.markdown
@@ -7,7 +7,6 @@ ha_category:
- Energy
- Sensor
ha_release: 0.56
-logo: toon.png
ha_iot_class: Cloud Polling
ha_config_flow: true
ha_codeowners:
diff --git a/source/_integrations/tplink.markdown b/source/_integrations/tplink.markdown
index bfe2e596fbf..f661cea6cd7 100644
--- a/source/_integrations/tplink.markdown
+++ b/source/_integrations/tplink.markdown
@@ -1,7 +1,6 @@
---
title: TP-Link Kasa Smart
description: Instructions on integrating TP-Link Smart Home Devices to Home Assistant.
-logo: tp-link.png
ha_category:
- Hub
- Switch
diff --git a/source/_integrations/traccar.markdown b/source/_integrations/traccar.markdown
index 2a4ace76419..5c218a3331d 100644
--- a/source/_integrations/traccar.markdown
+++ b/source/_integrations/traccar.markdown
@@ -1,7 +1,6 @@
---
title: Traccar
description: Instructions how to use Traccar GPS tracker to track devices in Home Assistant.
-logo: traccar.png
ha_release: 0.83
ha_category:
- Presence Detection
diff --git a/source/_integrations/twitch.markdown b/source/_integrations/twitch.markdown
index b399b0dbbf0..12927722335 100644
--- a/source/_integrations/twitch.markdown
+++ b/source/_integrations/twitch.markdown
@@ -1,7 +1,6 @@
---
title: Twitch
description: Instructions on how to integrate Twitch sensors into Home Assistant.
-logo: twitch.png
ha_category:
- Social
ha_release: '0.10'
diff --git a/source/_integrations/unifi.markdown b/source/_integrations/unifi.markdown
index 70c16212a2b..9909e484882 100644
--- a/source/_integrations/unifi.markdown
+++ b/source/_integrations/unifi.markdown
@@ -1,7 +1,6 @@
---
title: Ubiquiti UniFi
description: Instructions on how to configure UniFi integration with UniFi Controller by Ubiquiti.
-logo: ubiquiti.png
ha_category:
- Hub
- Presence Detection
diff --git a/source/_integrations/upcloud.markdown b/source/_integrations/upcloud.markdown
index b92abf0662f..7a4e8cd5048 100644
--- a/source/_integrations/upcloud.markdown
+++ b/source/_integrations/upcloud.markdown
@@ -6,7 +6,6 @@ ha_category:
- Binary Sensor
- Switch
ha_release: 0.65
-logo: upcloud.png
ha_iot_class: Cloud Polling
ha_codeowners:
- '@scop'
diff --git a/source/_integrations/vacuum.mqtt.markdown b/source/_integrations/vacuum.mqtt.markdown
index a3417ae0069..a1fab2b94bb 100644
--- a/source/_integrations/vacuum.mqtt.markdown
+++ b/source/_integrations/vacuum.mqtt.markdown
@@ -220,11 +220,12 @@ vacuum:
```
{% endraw %}
-## Legacy MQTT Protocol
+### Legacy MQTT Protocol
The above configuration for this integration expects an MQTT protocol like the following.
+See also [Shared MQTT Protocol](#shared-mqtt-protocol).
-### Legacy Basic Commands
+#### Legacy Basic Commands
MQTT topic: `vacuum/command`
@@ -238,7 +239,7 @@ Possible MQTT payloads:
- `locate` - Locate the vacuum (typically by playing a song)
- `start_pause` - Toggle the vacuum between cleaning and stopping
-### Status/Sensor Updates
+#### Status/Sensor Updates
MQTT topic: `vacuum/state`
@@ -268,6 +269,39 @@ command_topic:
description: The MQTT topic to publish commands to control the vacuum.
required: false
type: string
+device:
+ description: "Information about the device this switch is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set."
+ required: false
+ type: map
+ keys:
+ connections:
+ description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
+ required: false
+ type: list
+ identifiers:
+ description: A list of IDs that uniquely identify the device. For example a serial number.
+ required: false
+ type: [string, list]
+ manufacturer:
+ description: The manufacturer of the device.
+ required: false
+ type: string
+ model:
+ description: The model of the device.
+ required: false
+ type: string
+ name:
+ description: The name of the device.
+ required: false
+ type: string
+ sw_version:
+ description: The firmware version of the device.
+ required: false
+ type: string
+ via_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
fan_speed_list:
description: List of possible fan speeds for the vacuum.
required: false
@@ -349,7 +383,7 @@ set_fan_speed_topic:
required: false
type: string
state_topic:
- description: The MQTT topic subscribed to receive state messages from the vacuum. State topic is extracting JSON if no `value_template` is defined.
+ description: "The MQTT topic subscribed to receive state messages from the vacuum. Messages received on the `state_topic` must be a valid JSON dictionary, with a mandatory `state` key and optionally `battery_level` and `fan_speed` keys as shown in the [example](#state-mqtt-protocol)."
required: false
type: string
supported_features:
@@ -357,10 +391,6 @@ supported_features:
required: false
type: [string, list]
default: "`start`, `stop`, `return_home`, `status`, `battery`, `clean_spot`"
-value_template:
- description: "Defines a [template](/topics/templating/) to extract possible states from the vacuum."
- required: false
- type: string
{% endconfiguration %}
### State configuration example
@@ -395,11 +425,12 @@ vacuum:
```
{% endraw %}
-## State MQTT Protocol
+### State MQTT Protocol
The above configuration for this integration expects an MQTT protocol like the following.
+See also [Shared MQTT Protocol](#shared-mqtt-protocol).
-### State Basic Commands
+#### State Basic Commands
MQTT topic: `vacuum/command`
@@ -412,7 +443,7 @@ Possible MQTT payloads:
- `clean_spot` - Initialize a spot cleaning cycle
- `locate` - Locate the vacuum (typically by playing a song)
-### Send Custom Command
+#### Send Custom Command
Vacuum send_command allows three parameters:
@@ -448,7 +479,7 @@ Service trigger example:
MQTT topic: `vacuum/send_command`
-### Status/Sensor Updates
+#### Status/Sensor Updates
MQTT topic: `vacuum/state`
@@ -523,6 +554,8 @@ Service trigger example:
MQTT topic: `vacuum/send_command`
+## Usage examples
+
### Usage with cloudless Xiaomi vacuums
This integration is supported by the cloud-free Xiaomi Vacuum Webinterface [Valetudo](https://github.com/Hypfer/Valetudo).
diff --git a/source/_integrations/velbus.markdown b/source/_integrations/velbus.markdown
index 54d4e75eb20..cf61cce1ce9 100644
--- a/source/_integrations/velbus.markdown
+++ b/source/_integrations/velbus.markdown
@@ -1,7 +1,6 @@
---
title: Velbus
description: Access and control your Velbus devices.
-logo: velbus.png
ha_category:
- Hub
- Binary Sensor
diff --git a/source/_integrations/volumio.markdown b/source/_integrations/volumio.markdown
index 30ae1f073a0..4f3ce4188c5 100644
--- a/source/_integrations/volumio.markdown
+++ b/source/_integrations/volumio.markdown
@@ -1,7 +1,6 @@
---
title: Volumio
description: How to set up the Volumio media player platform
-logo: volumio.png
ha_category:
- Media Player
ha_release: 0.41
diff --git a/source/_integrations/vultr.markdown b/source/_integrations/vultr.markdown
index 2a5e99e0a74..cf8897f3079 100644
--- a/source/_integrations/vultr.markdown
+++ b/source/_integrations/vultr.markdown
@@ -7,7 +7,6 @@ ha_category:
- Sensor
- Switch
ha_release: 0.58
-logo: vultr.png
ha_iot_class: Cloud Polling
ha_domain: vultr
---
diff --git a/source/_integrations/webostv.markdown b/source/_integrations/webostv.markdown
index 3658040ee3d..06319a62396 100644
--- a/source/_integrations/webostv.markdown
+++ b/source/_integrations/webostv.markdown
@@ -119,7 +119,7 @@ webostv:
turn_on_action:
service: wake_on_lan.send_magic_packet
data:
- mac: "B4:E6:2A:1E:11:0F"
+ mac: AA-BB-CC-DD-EE-FF
media_player:
diff --git a/source/_integrations/websocket_api.markdown b/source/_integrations/websocket_api.markdown
index 35d004b11d3..9f69ec191ba 100644
--- a/source/_integrations/websocket_api.markdown
+++ b/source/_integrations/websocket_api.markdown
@@ -1,5 +1,5 @@
---
-title: Home Asssitant WebSocket API
+title: Home Assistant WebSocket API
description: Instructions on how to setup the WebSocket API within Home Assistant.
ha_category:
- Other
diff --git a/source/_integrations/wink.markdown b/source/_integrations/wink.markdown
index 1a203caceed..b455272e61d 100644
--- a/source/_integrations/wink.markdown
+++ b/source/_integrations/wink.markdown
@@ -1,7 +1,6 @@
---
title: Wink
description: Instructions on how to set up the Wink hub within Home Assistant.
-logo: wink.png
ha_category:
- Hub
- Alarm
diff --git a/source/_integrations/worxlandroid.markdown b/source/_integrations/worxlandroid.markdown
index bbd644c901e..f7d8d4d24bb 100644
--- a/source/_integrations/worxlandroid.markdown
+++ b/source/_integrations/worxlandroid.markdown
@@ -1,7 +1,6 @@
---
title: Worx Landroid
description: Instructions on how to integrate Worx Landroid WG796E.1 or WG797E as sensors within Home Assistant.
-logo: worx.png
ha_category:
- DIY
ha_release: 0.54
diff --git a/source/_integrations/wsdot.markdown b/source/_integrations/wsdot.markdown
index 958e93d3d32..cba9c7cee98 100644
--- a/source/_integrations/wsdot.markdown
+++ b/source/_integrations/wsdot.markdown
@@ -1,7 +1,6 @@
---
title: Washington State Department of Transportation (WSDOT)
description: Instructions on how to integrate WSDOT data into your home.
-logo: wsdot.png
ha_category:
- Transport
ha_iot_class: Cloud Polling
diff --git a/source/_integrations/wunderground.markdown b/source/_integrations/wunderground.markdown
index 473d6a0dbac..4d278994c29 100644
--- a/source/_integrations/wunderground.markdown
+++ b/source/_integrations/wunderground.markdown
@@ -1,7 +1,6 @@
---
title: Weather Underground (WUnderground)
description: Instructions on how to integrate Weather Underground (WUnderground) Weather within Home Assistant.
-logo: wunderground.png
ha_category:
- Weather
ha_release: 0.27
diff --git a/source/_integrations/wunderlist.markdown b/source/_integrations/wunderlist.markdown
index 6fada54fe3f..31372a10499 100644
--- a/source/_integrations/wunderlist.markdown
+++ b/source/_integrations/wunderlist.markdown
@@ -1,7 +1,6 @@
---
title: Wunderlist
description: Instructions on how to use Wunderlist with Home Assistant.
-logo: wunderlist.png
ha_category:
- Calendar
ha_release: 0.84
diff --git a/source/_integrations/yamaha_musiccast.markdown b/source/_integrations/yamaha_musiccast.markdown
index 68afcada03e..c54ff6ac18b 100644
--- a/source/_integrations/yamaha_musiccast.markdown
+++ b/source/_integrations/yamaha_musiccast.markdown
@@ -1,7 +1,6 @@
---
title: Yamaha MusicCast
description: Instructions on how to integrate Yamaha MusicCast Receivers into Home Assistant.
-logo: yamaha.png
ha_category:
- Media Player
ha_release: 0.53
diff --git a/source/_integrations/yandextts.markdown b/source/_integrations/yandextts.markdown
index e6669e78709..8f2c6986682 100644
--- a/source/_integrations/yandextts.markdown
+++ b/source/_integrations/yandextts.markdown
@@ -1,7 +1,6 @@
---
title: Yandex TTS
description: Instructions on how to setup Yandex SpeechKit TTS with Home Assistant.
-logo: yandex.png
ha_category:
- Text-to-speech
ha_release: 0.36
diff --git a/source/_integrations/yr.markdown b/source/_integrations/yr.markdown
index 6c3151563ea..91b614b524e 100644
--- a/source/_integrations/yr.markdown
+++ b/source/_integrations/yr.markdown
@@ -1,7 +1,6 @@
---
title: Yr
description: Instructions on how to integrate Yr.no within Home Assistant.
-logo: yr.png
ha_category:
- Weather
ha_release: 0.11
diff --git a/source/_integrations/yweather.markdown b/source/_integrations/yweather.markdown
index d7f9d87af71..c6aaeee9733 100644
--- a/source/_integrations/yweather.markdown
+++ b/source/_integrations/yweather.markdown
@@ -11,7 +11,7 @@ ha_domain: yweather
-The Yahoo Weather API is being [retired](https://developer.yahoo.com/weather/?guccounter=1). A replacement is the [`darksky` sensor](/integrations/darksky).
+The Yahoo Weather API is being [retired](https://developer.yahoo.com/weather/?guccounter=1). A replacement is the [`OpenWeatherMap` integration](/integrations/openweathermap).
diff --git a/source/_integrations/zabbix.markdown b/source/_integrations/zabbix.markdown
index 4f581f386a4..843204cf8d1 100644
--- a/source/_integrations/zabbix.markdown
+++ b/source/_integrations/zabbix.markdown
@@ -1,7 +1,6 @@
---
title: Zabbix
description: Instructions on how to integrate Zabbix into Home Assistant.
-logo: zabbix.png
ha_category:
- System Monitor
- Sensor
diff --git a/source/_integrations/zamg.markdown b/source/_integrations/zamg.markdown
index 5e9ff97c481..e50edc17773 100644
--- a/source/_integrations/zamg.markdown
+++ b/source/_integrations/zamg.markdown
@@ -1,7 +1,6 @@
---
title: Zentralanstalt für Meteorologie und Geodynamik (ZAMG)
description: Instructions on how to integrate ZAMG within Home Assistant.
-logo: zamg.png
ha_category:
- Weather
- Sensor
diff --git a/source/_lovelace/button.markdown b/source/_lovelace/button.markdown
index 858bbb81a88..8d18a84a985 100644
--- a/source/_lovelace/button.markdown
+++ b/source/_lovelace/button.markdown
@@ -32,7 +32,7 @@ name:
default: Name of Entity
icon:
required: false
- description: Overwrites icon or entity picture.
+ description: Icon that will be be used to overwrite the entity picture or entity icon.
type: string
default: Entity Domain Icon
show_name:
diff --git a/source/_redirects b/source/_redirects
index cd5335521a7..46c6a670041 100644
--- a/source/_redirects
+++ b/source/_redirects
@@ -2085,3 +2085,4 @@
# Lovelace documentation
/lovelace/entity-button /lovelace/button
+/lovelace/views /lovelace/dashboards-and-views
diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown
index 9b4191bb644..0033be38ec5 100644
--- a/source/hassio/installation.markdown
+++ b/source/hassio/installation.markdown
@@ -106,6 +106,12 @@ You can also install Home Assistant on a Linux operating system of choice, calle
Home Assistant Supervised, will still give you access to most features Home Assistant has to offer, including add-ons.
+
+
+The Supervisord system is designed to provide a full-featured environment that is comparable with Kubernetes, which is also a bad idea to run it by the side of another orchestrator on the same Host. The Supervisor is also not caring for other software they run on your Host, and it can affect things bad on both sides. You also need to know that the Home Assistant OS runs with less overhead on your Proxmox or other Hypervisor as if you install first Debian and Ubuntu. In most cases, it's not the best choice to run the Supervisord on top of a Linux, if you not 100% sure what you do. **It is not just a container inside Docker!**
+
+
+
### Supported systems and limitations
While Home Assistant Supervised can be run on practically any Linux systems,
diff --git a/source/lovelace/views.markdown b/source/lovelace/dashboards-and-views.markdown
similarity index 71%
rename from source/lovelace/views.markdown
rename to source/lovelace/dashboards-and-views.markdown
index fa53e24ff22..7555bee4454 100644
--- a/source/lovelace/views.markdown
+++ b/source/lovelace/dashboards-and-views.markdown
@@ -1,8 +1,175 @@
---
-title: "Views"
+title: "Dashboards and Views"
description: "The Lovelace UI is a powerful and configurable interface for Home Assistant."
---
+### Dashboards
+
+You can define multiple dashboards that all have their own YAML file, and add custom resources that are shared by all dashboards.
+
+The key of the dashboard is used as the URL, this needs to contain a hyphen (`-`).
+
+```yaml
+lovelace:
+ mode: yaml
+ # Include external resources only add when mode is yaml, otherwise manage in the resources in the lovelace configuration panel.
+ resources:
+ - url: /local/my-custom-card.js
+ type: module
+ - url: /local/my-webfont.css
+ type: css
+ # Add more dashboards
+ dashboards:
+ lovelace-generated: # Needs to contain a hyphen (-)
+ mode: yaml
+ filename: notexist.yaml
+ title: Generated
+ icon: mdi:tools
+ show_in_sidebar: true
+ require_admin: true
+ lovelace-hidden:
+ mode: yaml
+ title: hidden
+ show_in_sidebar: false
+ filename: hidden.yaml
+```
+
+You can also add YAML dashboards when your main dashboard is UI configurated:
+```yaml
+lovelace:
+ mode: storage
+ # Add yaml dashboards
+ dashboards:
+ lovelace-yaml:
+ mode: yaml
+ title: YAML
+ icon: mdi:script
+ show_in_sidebar: true
+ filename: lovelace.yaml
+```
+
+{% configuration Lovelace %}
+mode:
+ required: true
+ description: "In what mode should the main Lovelace panel be, `yaml` or `storage` (UI managed)."
+ type: string
+resources:
+ required: false
+ description: "List of resources that should be loaded when you use Lovelace. Only use this when mode is `yaml`."
+ type: list
+ keys:
+ url:
+ required: true
+ description: The URL of the resource to load.
+ type: string
+ type:
+ required: true
+ description: "The type of resource, this should be either `module` for a JavaScript module or `css` for a StyleSheet."
+ type: string
+dashboards:
+ required: false
+ description: Additional Lovelace YAML dashboards. The key is used for the URL and should contain a hyphen (`-`)
+ type: map
+ keys:
+ mode:
+ required: true
+ description: "The mode of the dashboard, this should always be `yaml`. Dashboards in `storage` mode can be created in the Lovelace configuration panel."
+ type: string
+ filename:
+ required: true
+ description: "The file in your `config` directory where the Lovelace configuration for this panel is."
+ type: string
+ title:
+ required: true
+ description: "The title of the dashboard, will be used in the sidebar."
+ type: string
+ icon:
+ required: false
+ description: The icon to show in the sidebar.
+ type: string
+ show_in_sidebar:
+ required: false
+ description: Should this view be shown in the sidebar.
+ type: boolean
+ default: true
+ require_admin:
+ required: false
+ description: Should this view be only accessible for admin users.
+ type: boolean
+ default: false
+{% endconfiguration %}
+
+As a super minimal example of a Lovelace dashboard config, here's the bare minimum you will need for it to work:
+
+```yaml
+title: My Awesome Home
+views:
+ # View tab title.
+ - title: Example
+ cards:
+ # The markdown card will render markdown text.
+ - type: markdown
+ title: Lovelace
+ content: >
+ Welcome to your **Lovelace UI**.
+```
+
+A slightly more advanced example:
+
+```yaml
+title: My Awesome Home
+views:
+ # View tab title.
+ - title: Example
+ # Unique path for direct access /lovelace/${path}
+ path: example
+ # Each view can have a different theme applied. Theme should be defined in the frontend.
+ theme: dark-mode
+ # The cards to show on this view.
+ cards:
+ # The filter card will filter entities for their state
+ - type: entity-filter
+ entities:
+ - device_tracker.paulus
+ - device_tracker.anne_there
+ state_filter:
+ - 'home'
+ card:
+ type: glance
+ title: People that are home
+
+ # The picture entity card will represent an entity with a picture
+ - type: picture-entity
+ image: https://www.home-assistant.io/images/default-social.png
+ entity: light.bed_light
+
+ # Specify a tab icon if you want the view tab to be an icon.
+ - icon: mdi:home-assistant
+ # Title of the view. Will be used as the tooltip for tab icon
+ title: Second view
+ cards:
+ # Entities card will take a list of entities and show their state.
+ - type: entities
+ # Title of the entities card
+ title: Example
+ # The entities here will be shown in the same order as specified.
+ # Each entry is an entity ID or a map with extra options.
+ entities:
+ - light.kitchen
+ - switch.ac
+ - entity: light.living_room
+ # Override the name to use
+ name: LR Lights
+
+ # The markdown card will render markdown text.
+ - type: markdown
+ title: Lovelace
+ content: >
+ Welcome to your **Lovelace UI**.
+```
+
+### Views
+
To display cards on the UI you have to define them in views. Views sort cards in columns based on their `card size`. If you want to group some cards you have to use `stack` cards.
diff --git a/source/lovelace/yaml-mode.markdown b/source/lovelace/yaml-mode.markdown
index 871a35b5eb7..746c733b066 100644
--- a/source/lovelace/yaml-mode.markdown
+++ b/source/lovelace/yaml-mode.markdown
@@ -25,165 +25,4 @@ To revert back to using the UI to edit your Lovelace interface, remove the `love
### Advanced configuration
-You can define multiple dashboards that all have their own YAML file, and add custom resources that are shared by all dashboards.
-
-The key of the dashboard is used as the URL, this needs to contain a hyphen (`-`).
-
-```yaml
-lovelace:
- mode: yaml
- # Include external resources only add when mode is yaml, otherwise manage in the resources in the lovelace configuration panel.
- resources:
- - url: /local/my-custom-card.js
- type: module
- - url: /local/my-webfont.css
- type: css
- # Add more dashboards
- dashboards:
- lovelace-generated: # Needs to contain a hyphen (-)
- mode: yaml
- filename: notexist.yaml
- title: Generated
- icon: mdi:tools
- show_in_sidebar: true
- require_admin: true
- lovelace-hidden:
- mode: yaml
- title: hidden
- show_in_sidebar: false
- filename: hidden.yaml
-```
-
-You can also add YAML dashboards when your main dashboard is UI configurated:
-```yaml
-lovelace:
- mode: storage
- # Add yaml dashboards
- dashboards:
- lovelace-yaml:
- mode: yaml
- title: YAML
- icon: mdi:script
- show_in_sidebar: true
- filename: lovelace.yaml
-```
-
-{% configuration Lovelace %}
-mode:
- required: true
- description: "In what mode should the main Lovelace panel be, `yaml` or `storage` (UI managed)."
- type: string
-resources:
- required: false
- description: "List of resources that should be loaded when you use Lovelace. Only use this when mode is `yaml`."
- type: list
- keys:
- url:
- required: true
- description: The URL of the resource to load.
- type: string
- type:
- required: true
- description: "The type of resource, this should be either `module` for a JavaScript module or `css` for a StyleSheet."
- type: string
-dashboards:
- required: false
- description: Additional Lovelace YAML dashboards. The key is used for the URL and should contain a hyphen (`-`)
- type: map
- keys:
- mode:
- required: true
- description: "The mode of the dashboard, this should always be `yaml`. Dashboards in `storage` mode can be created in the Lovelace configuration panel."
- type: string
- filename:
- required: true
- description: "The file in your `config` directory where the Lovelace configuration for this panel is."
- type: string
- title:
- required: true
- description: "The title of the dashboard, will be used in the sidebar."
- type: string
- icon:
- required: false
- description: The icon to show in the sidebar.
- type: string
- show_in_sidebar:
- required: false
- description: Should this view be shown in the sidebar.
- type: boolean
- default: true
- require_admin:
- required: false
- description: Should this view be only accessible for admin users.
- type: boolean
- default: false
-{% endconfiguration %}
-
-As a super minimal example of a Lovelace dashboard config, here's the bare minimum you will need for it to work:
-
-```yaml
-title: My Awesome Home
-views:
- # View tab title.
- - title: Example
- cards:
- # The markdown card will render markdown text.
- - type: markdown
- title: Lovelace
- content: >
- Welcome to your **Lovelace UI**.
-```
-
-A slightly more advanced example:
-
-```yaml
-title: My Awesome Home
-views:
- # View tab title.
- - title: Example
- # Unique path for direct access /lovelace/${path}
- path: example
- # Each view can have a different theme applied. Theme should be defined in the frontend.
- theme: dark-mode
- # The cards to show on this view.
- cards:
- # The filter card will filter entities for their state
- - type: entity-filter
- entities:
- - device_tracker.paulus
- - device_tracker.anne_there
- state_filter:
- - 'home'
- card:
- type: glance
- title: People that are home
-
- # The picture entity card will represent an entity with a picture
- - type: picture-entity
- image: https://www.home-assistant.io/images/default-social.png
- entity: light.bed_light
-
- # Specify a tab icon if you want the view tab to be an icon.
- - icon: mdi:home-assistant
- # Title of the view. Will be used as the tooltip for tab icon
- title: Second view
- cards:
- # Entities card will take a list of entities and show their state.
- - type: entities
- # Title of the entities card
- title: Example
- # The entities here will be shown in the same order as specified.
- # Each entry is an entity ID or a map with extra options.
- entities:
- - light.kitchen
- - switch.ac
- - entity: light.living_room
- # Override the name to use
- name: LR Lights
-
- # The markdown card will render markdown text.
- - type: markdown
- title: Lovelace
- content: >
- Welcome to your **Lovelace UI**.
-```
+You can define multiple dashboards that all have their own YAML file, and add custom resources that are shared by all dashboards. For more details refer to [this](/lovelace/dashboards-and-views/) page.