@@ -179,6 +183,10 @@ The information output is:
- `Address` - The IP that the device has on the network.
- `Token` - The token of the device or `???` if it could not be automatically determined.
+### Xiaomi Cloud Tokens Extractor
+
+Alternate method to get all yours devices tokens in one run. Please follow this [instruction](https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor).
+
## Xiaomi Gateway
The `xiaomi_miio` gateway integration allows you to control the gateway and its connected subdevices.
diff --git a/source/_layouts/default.html b/source/_layouts/default.html
index 15d7d57be4b..78aae3551b9 100644
--- a/source/_layouts/default.html
+++ b/source/_layouts/default.html
@@ -2,6 +2,38 @@
diff --git a/source/_lovelace/alarm-panel.markdown b/source/_lovelace/alarm-panel.markdown
index edb26ff053d..1288e296f4f 100644
--- a/source/_lovelace/alarm-panel.markdown
+++ b/source/_lovelace/alarm-panel.markdown
@@ -1,17 +1,17 @@
---
title: "Alarm Panel Card"
sidebar_label: Alarm Panel
-description: "The Alarm Panel card allows you to Arm and Disarm your alarm control panel integrations."
+description: "The Alarm Panel card allows you to arm and disarm your alarm control panel integrations."
---
-The Alarm Panel card allows you to Arm and Disarm your [alarm control panel](/integrations/#alarm) integrations.
+The Alarm Panel card allows you to arm and disarm your [alarm control panel](/integrations/#alarm) integrations.
Screenshot of the Alarm Panel card.
-To add the Alarm Panel card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Alarm Panel** from the card picker. All options for this card can be configured via the user interface.
+To add the Alarm Panel card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Alarm Panel** from the card picker. All options for this card can be configured via the user interface.
Alternatively, the card can be configured using YAML:
@@ -23,22 +23,22 @@ entity: alarm_control_panel.alarm
{% configuration %}
type:
required: true
- description: alarm-panel
+ description: "`alarm-panel`"
type: string
entity:
required: true
- description: "Entity ID of `alarm_control_panel` domain"
+ description: Entity ID of `alarm_control_panel` domain.
type: string
name:
required: false
- description: Overwrites Friendly Name
+ description: Overwrites friendly name.
type: string
- default: Current State of Alarm Entity
+ default: Current state of the alarm entity.
states:
required: false
- description: Controls which states to have available
+ description: Controls which states to have available.
type: list
- default: arm_home, arm_away
+ default: "`arm_home, arm_away`"
keys:
arm_home:
description: Arm Home
@@ -50,13 +50,13 @@ states:
description: Arm Custom Bypass
theme:
required: false
- description: "Set to any theme within `themes.yaml`"
+ description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
{% endconfiguration %}
## Examples
-Title Example:
+Title example:
```yaml
- type: alarm-panel
@@ -69,7 +69,7 @@ Title Example:
Screenshot of the Alarm Panel card.
-Define the State List:
+Define the state list:
```yaml
type: alarm-panel
diff --git a/source/_lovelace/button.markdown b/source/_lovelace/button.markdown
index c9df3733a0a..c7dca136f75 100644
--- a/source/_lovelace/button.markdown
+++ b/source/_lovelace/button.markdown
@@ -11,7 +11,7 @@ The Button card allows you to add buttons to perform tasks.
Screenshot of three Button Cards.
-To add the Button card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Button** from the card picker. All options for this card can be configured via the user interface.
+To add the Button card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Button** from the card picker. All options for this card can be configured via the user interface.
## Card Settings
@@ -29,7 +29,7 @@ Show Icon:
Icon Height:
description: The height of the icon, in pixels.
Theme:
- description: The card theme, which may be set to any installed theme. For more information about themes, see the [frontend documentation](https://www.home-assistant.io/integrations/frontend/).
+ description: Name of any loaded theme to be used for this card. For more information about themes, see the [frontend documentation](/integrations/frontend/).
Tap Action:
description: The action taken on card tap. For more information, see the [action documentation](/lovelace/actions/#tap-action).
Hold Action:
@@ -43,7 +43,7 @@ This is for if you use YAML mode or prefer to use YAML in the Code Editor in the
{% configuration %}
type:
required: true
- description: button
+ description: "`button`"
type: string
entity:
required: false
@@ -58,7 +58,7 @@ icon:
required: false
description: The icon that is displayed on the card. It defaults to the entity domain icon only if the card interacts with an entity. Otherwise, if not configured, no icon is displayed.
type: string
- default: Entity Domain Icon
+ default: Entity domain icon
show_name:
required: false
description: If false, the button name is not shown on the card.
@@ -98,7 +98,7 @@ double_tap_action:
type: map
theme:
required: false
- description: The card theme, which may be set to any theme from the `themes.yaml` file. For more information about themes, see the [frontend documentation](https://www.home-assistant.io/integrations/frontend/).
+ description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
{% endconfiguration %}
diff --git a/source/_lovelace/calendar.markdown b/source/_lovelace/calendar.markdown
index 2194b4e9c70..6b5d084212d 100644
--- a/source/_lovelace/calendar.markdown
+++ b/source/_lovelace/calendar.markdown
@@ -11,9 +11,9 @@ The Calendar card displays your [calendar](/integrations/#calendar) entities in
Screenshot of the Calendar card.
-To add the Calendar card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Calendar** from the card picker. All options for this card can be configured via the user interface.
+To add the Calendar card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Calendar** from the card picker. All options for this card can be configured via the user interface.
-### Card Settings
+## Card Settings
{% configuration_basic %}
Title:
@@ -23,7 +23,7 @@ Initial View:
Entities:
description: The calendar entities that will be displayed in the card.
Theme:
- description: Theme your card using any installed theme in your HA environment.
+ description: Name of any loaded theme to be used for this card. For more information about themes, see the [frontend documentation](/integrations/frontend/).
{% endconfiguration_basic %}
### YAML
@@ -33,7 +33,7 @@ This is for if you use YAML mode or just prefer to use YAML in the Code Editor i
{% configuration %}
type:
required: true
- description: calendar
+ description: "`calendar`"
type: string
title:
required: false
@@ -49,7 +49,7 @@ entities:
type: list
theme:
required: false
- description: "Set to any theme within `themes.yaml`"
+ description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
{% endconfiguration %}
diff --git a/source/_lovelace/conditional.markdown b/source/_lovelace/conditional.markdown
index eceb1dc9efd..b8fe0369d86 100644
--- a/source/_lovelace/conditional.markdown
+++ b/source/_lovelace/conditional.markdown
@@ -6,7 +6,7 @@ description: The Conditional card displays another card based on entity states.
The Conditional card displays another card based on entity states.
-To add the Conditional card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Conditional** from the card picker. All options for this card can be configured via the user interface.
+To add the Conditional card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Conditional** from the card picker. All options for this card can be configured via the user interface.
{% configuration %}
type:
@@ -20,7 +20,7 @@ conditions:
keys:
entity:
required: true
- description: Home Assistant entity ID.
+ description: Entity ID.
type: string
state:
required: false
diff --git a/source/_lovelace/entities.markdown b/source/_lovelace/entities.markdown
index bb044e2472b..e35f91b8287 100644
--- a/source/_lovelace/entities.markdown
+++ b/source/_lovelace/entities.markdown
@@ -4,26 +4,26 @@ sidebar_label: Entities
description: "The Entities card is the most common type of card. It groups items together into lists."
---
-The Entities card is the most common type of card. It groups items together into lists.
+The Entities card is the most common type of card. It groups items together into lists. It can be used to display an entity's state or attribute, but also contain buttons, web links, etc.
-To add the Entities card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Entities** from the card picker.
+To add the Entities card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Entities** from the card picker.
{% configuration %}
type:
required: true
- description: entities
+ description: "`entities`"
type: string
entities:
required: true
- description: "A list of entity IDs or `entity` objects, see below."
+ description: "A list of entity IDs or `entity` objects or special row objects (see below)."
type: list
title:
required: false
- description: The card title.
+ description: Card title.
type: string
icon:
required: false
- description: An icon to display to the left of the title
+ description: An icon to display to the left of the title.
type: string
show_header_toggle:
required: false
@@ -32,11 +32,11 @@ show_header_toggle:
default: true
theme:
required: false
- description: Set to any theme within `themes.yaml`.
+ description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
state_color:
required: false
- description: Set to `true` to have icons colored when entity is active
+ description: Set to `true` to have icons colored when entity is active.
type: boolean
default: false
header:
@@ -51,12 +51,12 @@ footer:
## Options For Entities
-If you define entities as objects instead of strings (by adding `entity:` before entity ID), you can add more customization and configuration:
+If you define entities as objects instead of strings (by adding `entity:` before entity ID), you can add more customization and configuration.
{% configuration %}
entity:
required: true
- description: Home Assistant entity ID.
+ description: Entity ID.
type: string
type:
required: false
@@ -82,21 +82,13 @@ format:
required: false
description: "How the state should be formatted. Currently only used for timestamp sensors. Valid values are: `relative`, `total`, `date`, `time` and `datetime`."
type: string
-header:
- required: false
- description: Header widget to render. See [header documentation](/lovelace/header-footer/).
- type: map
-footer:
- required: false
- description: Footer widget to render. See [footer documentation](/lovelace/header-footer/).
- type: map
action_name:
required: false
- description: Button label. (Only applies to `script` and `scene` rows)
+ description: Button label (only applies to `script` and `scene` rows).
type: string
state_color:
required: false
- description: Set to `true` to have icons colored when entity is active
+ description: Set to `true` to have icons colored when entity is active.
type: boolean
default: false
tap_action:
@@ -115,12 +107,45 @@ double_tap_action:
## Special Row Elements
-### Button
+Rather than only displaying an entity's state as a text output, the Entities card supports multiple special rows for buttons, attributes, web links, dividers and sections, etc.
+
+### Attribute
{% configuration %}
type:
required: true
- description: button
+ description: "`attribute`"
+ type: string
+entity:
+ required: true
+ description: Entity ID.
+ type: string
+attribute:
+ required: true
+ description: Attribute to display from the entity.
+ type: string
+prefix:
+ required: false
+ description: Text before entity state.
+ type: string
+suffix:
+ required: false
+ description: Text after entity state.
+ type: string
+name:
+ required: false
+ description: Overwrites friendly entity name.
+ type: string
+{% endconfiguration %}
+
+### Button
+
+Row with an (optional) icon, label and a single text button at the end of the row that can trigger a defined action.
+
+{% configuration %}
+type:
+ required: true
+ description: "`button`"
type: string
entity:
required: false
@@ -133,7 +158,7 @@ name:
default: "Friendly name of `entity` if specified."
icon:
required: false
- description: An icon to display to the left of the label.
+ description: An icon to display to the left of the main label.
type: string
action_name:
required: false
@@ -154,6 +179,61 @@ double_tap_action:
type: map
{% endconfiguration %}
+### Buttons
+
+Multiple buttons displayed in a single row next to each other. See examples further below.
+
+{% configuration %}
+type:
+ required: true
+ description: "`buttons`"
+ type: string
+entities:
+ required: true
+ description: A list of entities to show. Each entry is either an entity ID or a map.
+ type: list
+ keys:
+ entity:
+ required: true
+ description: Entity ID.
+ type: string
+ icon:
+ required: false
+ description: Override the entity icon.
+ type: string
+ image:
+ required: false
+ description: Override the entity image.
+ type: string
+ name:
+ required: false
+ description: Override the friendly entity name.
+ type: string
+ default: Entity name
+ show_name:
+ required: false
+ description: If false, the button name is not shown.
+ type: boolean
+ default: "true"
+ show_icon:
+ required: false
+ description: If false, the icon is not shown.
+ type: boolean
+ default: "true"
+ tap_action:
+ required: false
+ description: Action taken on card tap. See [action documentation](/lovelace/actions/#tap-action).
+ type: map
+ hold_action:
+ required: false
+ description: Action taken on card tap and hold. See [action documentation](/lovelace/actions/#hold-action).
+ type: map
+ double_tap_action:
+ required: false
+ description: Action taken on card double tap. See [action documentation](/lovelace/actions/#double-tap-action).
+ type: map
+{% endconfiguration %}
+
### Cast
Special row to start Home Assistant Cast.
@@ -161,7 +241,7 @@ Special row to start Home Assistant Cast.
{% configuration %}
type:
required: true
- description: cast
+ description: "`cast`"
type: string
dashboard:
required: false
@@ -173,12 +253,12 @@ view:
type: string
name:
required: false
- description: Name to show in the row
+ description: Name to show in the row.
type: string
default: Home Assistant Cast
icon:
required: false
- description: Icon to use
+ description: Icon to use.
type: string
default: "`hass:television`"
hide_if_unavailable:
@@ -195,7 +275,7 @@ Special row that displays based on entity states.
{% configuration %}
type:
required: true
- description: conditional
+ description: "`conditional`"
type: string
conditions:
required: true
@@ -204,7 +284,7 @@ conditions:
keys:
entity:
required: true
- description: HA entity ID.
+ description: Entity ID.
type: string
state:
required: false
@@ -216,7 +296,7 @@ conditions:
type: string
row:
required: true
- description: Row to display if all conditions match.
+ description: Row to display if all conditions match. Can be any of the various supported rows described on this page.
type: map
{% endconfiguration %}
@@ -229,7 +309,7 @@ Note: Conditions with more than one entity are treated as an 'and' condition. Th
{% configuration %}
type:
required: true
- description: divider
+ description: "`divider`"
type: string
style:
required: false
@@ -243,11 +323,11 @@ style:
{% configuration %}
type:
required: true
- description: section
+ description: "`section`"
type: string
label:
required: false
- description: Section label
+ description: Section label.
type: string
{% endconfiguration %}
@@ -256,20 +336,20 @@ label:
{% configuration %}
type:
required: true
- description: weblink
+ description: "`weblink`"
type: string
url:
required: true
- description: "Website URL (or internal URL e.g., `/hassio/dashboard` or `/panel_custom_name`)"
+ description: "Website URL (or internal URL e.g., `/hassio/dashboard` or `/panel_custom_name`)."
type: string
name:
required: false
- description: Link label
+ description: Link label.
type: string
default: URL path
icon:
required: false
- description: "Icon to display (e.g., `mdi:home`)"
+ description: "Icon to display (e.g., `mdi:home`)."
type: string
default: "`mdi:link`"
{% endconfiguration %}
@@ -336,10 +416,9 @@ format:
description: "How the attribute value should be formatted. Currently only supported for timestamp attributes. Valid values are: `relative`, `total`, `date`, `time` and `datetime`."
type: string
{% endconfiguration %}
+## Examples
-## Example
-
-Entity rows:
+### Entity rows
```yaml
type: entities
@@ -357,21 +436,69 @@ entities:
- group.all_locks
```
-Special rows:
+### Buttons row
+
+Above the divider are regular entity rows, below one of type `buttons`. Note that regular entity rows automatically show the entity name, whereas for buttons you have to explicitely specify a label / name.
+
+
+
+Screenshot of buttons row.
+
+
+```yaml
+type: entities
+entities:
+ - entity: light.office_ceiling
+ - entity: light.dining_ceiling
+ - type: divider
+ - type: buttons
+ entities:
+ - entity: light.office_ceiling
+ name: Office Ceiling
+ - entity: light.dining_ceiling
+ name: Dining Ceiling
+```
+
+### Other special rows
+
+
+
+Screenshot of other special rows.
+
```yaml
type: entities
title: Entities card sample
-show_header_toggle: true
entities:
- - type: call-service
+ - type: button
icon: mdi:power
- name: Bed light
+ name: Bed light transition
action_name: Toggle light
- service: light.toggle
- service_data:
- entity_id: light.bed_light
+ tap_action:
+ type: call-service
+ service: light.toggle
+ service_data:
+ entity_id: light.bed_light
+ transition: 10
- type: divider
+ - type: attribute
+ entity: sun.sun
+ attribute: elevation
+ name: Sun elevation
+ prefix: '~'
+ suffix: Units
+ - type: conditional
+ conditions:
+ - entity: sun.sun
+ state: above_horizon
+ row:
+ entity: sun.sun
+ type: attribute
+ attribute: azimuth
+ icon: mdi:angle-acute
+ name: Sun azimuth
+ - type: section
+ label: Section example
- type: weblink
name: Home Assistant
url: https://www.home-assistant.io/
diff --git a/source/_lovelace/entity-filter.markdown b/source/_lovelace/entity-filter.markdown
index 9c798516749..78a7cb79369 100644
--- a/source/_lovelace/entity-filter.markdown
+++ b/source/_lovelace/entity-filter.markdown
@@ -16,7 +16,7 @@ Screenshot of the entity filter card.
{% configuration %}
type:
required: true
- description: entity-filter
+ description: "`entity-filter`"
type: string
entities:
required: true
@@ -45,11 +45,11 @@ If you define entities as objects instead of strings (by adding `entity:` before
{% configuration %}
entity:
required: true
- description: Home Assistant entity ID.
+ description: Entity ID.
type: string
type:
required: false
- description: "Sets a custom card type: `custom:my-custom-card`"
+ description: "Sets a custom card type: `custom:my-custom-card`."
type: string
name:
required: false
@@ -92,7 +92,7 @@ attribute:
type: string
{% endconfiguration %}
-### Examples
+## Examples
Show only active switches or lights in the house.
diff --git a/source/_lovelace/entity.markdown b/source/_lovelace/entity.markdown
index 82cae39e3b3..528e24de78a 100644
--- a/source/_lovelace/entity.markdown
+++ b/source/_lovelace/entity.markdown
@@ -11,38 +11,38 @@ The Entity card gives you a quick overview of your entity's state.
Screenshot of the Entity card.
-To add the Entity card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Entity** from the card picker.
+To add the Entity card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Entity** from the card picker.
{% configuration %}
type:
required: true
- description: entity
+ description: "`entity`"
type: string
entity:
required: true
- description: Home Assistant entity ID.
+ description: Entity ID.
type: string
name:
required: false
- description: Name of Entity
+ description: Name of entity.
type: string
- default: Entity Name
+ default: Entity name.
icon:
required: false
description: Overwrites icon.
type: string
attribute:
required: false
- description: An attribute associated with the `entity`
+ description: An attribute associated with the `entity`.
type: string
unit:
required: false
- description: Unit of Measurement given to data
+ description: Unit of measurement given to data.
type: string
- default: "Unit Of Measurement given by entity"
+ default: Unit of measurement given by entity.
theme:
required: false
- description: Set to any theme within `themes.yaml`
+ description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
footer:
required: false
@@ -67,4 +67,4 @@ Alternatively, the card can be configured using YAML:
icon: 'mdi:battery'
attribute: battery_level
unit: '%'
-```
\ No newline at end of file
+```
diff --git a/source/_lovelace/gauge.markdown b/source/_lovelace/gauge.markdown
index 1e99890eb22..b9d91aef58a 100644
--- a/source/_lovelace/gauge.markdown
+++ b/source/_lovelace/gauge.markdown
@@ -11,7 +11,7 @@ The Gauge card is a basic card that allows visually seeing sensor data.
Screenshot of the Gauge card.
-To add the Gauge card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Gauge** from the card picker. All options for this card can be configured via the user interface.
+To add the Gauge card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Gauge** from the card picker. All options for this card can be configured via the user interface.
Alternatively, the card can be configured using YAML:
@@ -23,58 +23,58 @@ entity: sensor.cpu_usage
{% configuration %}
type:
required: true
- description: gauge
+ description: "`gauge`"
type: string
entity:
required: true
- description: "Entity id to show"
+ description: Entity ID to show.
type: string
name:
required: false
- description: Name of Gauge Entity
+ description: Name of gauge entity.
type: string
- default: Entity Name
+ default: Entity name
unit:
required: false
- description: Unit of Measurement given to data
+ description: Unit of measurement given to data.
type: string
- default: "Unit Of Measurement given by entity"
+ default: Unit of measurement given by entity.
theme:
required: false
- description: Set to any theme within `themes.yaml`
+ description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
min:
required: false
- description: Minimum value for graph
+ description: Minimum value for graph.
type: integer
default: 0
max:
required: false
- description: Maximum value for graph
+ description: Maximum value for graph.
type: integer
default: 100
severity:
required: false
- description: Allows setting of colors for different numbers
+ description: Allows setting of colors for different numbers.
type: map
keys:
green:
required: true
- description: Value from which to start green color
+ description: Value from which to start green color.
type: integer
yellow:
required: true
- description: Value from which to start yellow color
+ description: Value from which to start yellow color.
type: integer
red:
required: true
- description: Value from which to start red color
+ description: Value from which to start red color.
type: integer
{% endconfiguration %}
## Examples
-Title and Unit of Measurement Example:
+Title and unit of measurement:
```yaml
type: gauge
diff --git a/source/_lovelace/glance.markdown b/source/_lovelace/glance.markdown
index bc6d15a4c1e..812c9269ca7 100644
--- a/source/_lovelace/glance.markdown
+++ b/source/_lovelace/glance.markdown
@@ -11,12 +11,12 @@ The Glance card is useful to group multiple sensors in a compact overview. Keep
Screenshot of the Glance card.
-To add the Glance card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Glance** from the card picker.
+To add the Glance card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Glance** from the card picker.
{% configuration %}
type:
required: true
- description: glance
+ description: "`glance`"
type: string
entities:
required: true
@@ -24,7 +24,7 @@ entities:
type: list
title:
required: false
- description: Card title
+ description: Card title.
type: string
show_name:
required: false
@@ -38,12 +38,12 @@ show_icon:
default: "true"
show_state:
required: false
- description: Show entity state-text.
+ description: Show entity state text.
type: boolean
default: "true"
theme:
required: false
- description: "Set to any theme within `themes.yaml`"
+ description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
columns:
required: false
@@ -51,7 +51,7 @@ columns:
type: integer
state_color:
required: false
- description: Set to `true` to have icons colored when entity is active
+ description: Set to `true` to have icons colored when entity is active.
type: boolean
default: true
{% endconfiguration %}
@@ -63,7 +63,7 @@ If you define entities as objects instead of strings, you can add more customiza
{% configuration %}
entity:
required: true
- description: Home Assistant entity ID.
+ description: Entity ID.
type: string
name:
required: false
@@ -84,7 +84,7 @@ show_last_changed:
default: false
show_state:
required: false
- description: Show entity state-text.
+ description: Show entity state text.
type: boolean
default: true
tap_action:
@@ -106,7 +106,7 @@ double_tap_action:
{% configuration badges %}
user:
required: true
- description: User id that can see the view tab.
+ description: User ID that can see the view tab.
type: string
{% endconfiguration %}
diff --git a/source/_lovelace/grid.markdown b/source/_lovelace/grid.markdown
index 24d4fcaeca2..3b31e81f53a 100644
--- a/source/_lovelace/grid.markdown
+++ b/source/_lovelace/grid.markdown
@@ -11,16 +11,16 @@ The Grid card allows you to show multiple cards in a grid. It will first fill th
Screenshot of the Grid card.
-To add the Grid card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Grid Card** from the card picker.
+To add the Grid card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Grid Card** from the card picker.
{% configuration %}
type:
required: true
- description: grid
+ description: "`grid`"
type: string
title:
required: false
- description: Title of Grid
+ description: Title of grid.
type: string
square:
required: false
@@ -38,7 +38,7 @@ cards:
type: list
{% endconfiguration %}
-### Examples
+## Examples
Alternatively, the card can be configured using YAML:
diff --git a/source/_lovelace/history-graph.markdown b/source/_lovelace/history-graph.markdown
index f5669bfd83c..a82238632a2 100644
--- a/source/_lovelace/history-graph.markdown
+++ b/source/_lovelace/history-graph.markdown
@@ -16,7 +16,7 @@ Screenshot of the History Graph card, when the sensor has no `unit_of_measuremen
Screenshot of the History Graph card, when the sensor has a `unit_of_measurement` defined.
-To add the History Graph card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **History Graph** from the card picker. All options for this card can be configured via the user interface.
+To add the History Graph card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **History Graph** from the card picker. All options for this card can be configured via the user interface.
{% configuration %}
type:
@@ -50,7 +50,7 @@ If you define entities as objects instead of strings, you can add more customiza
{% configuration %}
entity:
required: true
- description: Home Assistant entity ID.
+ description: Entity ID.
type: string
name:
required: false
diff --git a/source/_lovelace/horizontal-stack.markdown b/source/_lovelace/horizontal-stack.markdown
index fdbfaf6607f..eaf96be80f0 100644
--- a/source/_lovelace/horizontal-stack.markdown
+++ b/source/_lovelace/horizontal-stack.markdown
@@ -6,16 +6,16 @@ description: "The Horizontal Stack card allows you to stack together multiple ca
The Horizontal Stack card allows you to stack together multiple cards, so they always sit next to each other in the space of one column.
-To add the Horizontal Stack card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Horizontal Stack** from the card picker. All options for this card can be configured via the user interface.
+To add the Horizontal Stack card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Horizontal Stack** from the card picker. All options for this card can be configured via the user interface.
{% configuration %}
type:
required: true
- description: horizontal-stack
+ description: "`horizontal-stack`"
type: string
title:
required: false
- description: Title of Stack
+ description: Title of stack.
type: string
cards:
required: true
diff --git a/source/_lovelace/humidifier.markdown b/source/_lovelace/humidifier.markdown
index 3735d50d1ed..935e42c2dad 100644
--- a/source/_lovelace/humidifier.markdown
+++ b/source/_lovelace/humidifier.markdown
@@ -11,25 +11,25 @@ The Humidifier card lets you control and monitor humidifiers, dehumidifiers, and
Screenshot of the humidifier card.
-To add the Humidifier card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Humidifier** from the card picker. All options for this card can be configured via the user interface.
+To add the Humidifier card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Humidifier** from the card picker. All options for this card can be configured via the user interface.
{% configuration %}
type:
required: true
- description: humidifier
+ description: "`humidifier`"
type: string
entity:
required: true
- description: Entity id of `humidifier` domain
+ description: Entity ID of `humidifier` domain.
type: string
name:
required: false
- description: Name of Entity
+ description: Name of entity.
type: string
- default: Entity Name
+ default: Entity name
theme:
required: false
- description: Set to any theme within `themes.yaml`
+ description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
{% endconfiguration %}
diff --git a/source/_lovelace/iframe.markdown b/source/_lovelace/iframe.markdown
index 71490ecd710..9b2316e41c6 100644
--- a/source/_lovelace/iframe.markdown
+++ b/source/_lovelace/iframe.markdown
@@ -15,12 +15,12 @@ You can't embed sites using HTTP if you are using HTTPS for your Home Assistant.
Windy weather radar as Webpage.
-To add the Webpage card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Webpage** from the card picker. All options for this card can be configured via the user interface.
+To add the Webpage card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Webpage** from the card picker. All options for this card can be configured via the user interface.
{% configuration %}
type:
required: true
- description: iframe
+ description: "`iframe`"
type: string
url:
required: true
@@ -28,7 +28,7 @@ url:
type: string
aspect_ratio:
required: false
- description: Height-width-ratio.
+ description: Height to width ratio.
type: string
default: "50%"
title:
@@ -37,7 +37,7 @@ title:
type: string
{% endconfiguration %}
-### Examples
+## Examples
The card can also be configured using YAML, some examples below:
diff --git a/source/_lovelace/light.markdown b/source/_lovelace/light.markdown
index 97f7a73aca3..56e74ee880a 100644
--- a/source/_lovelace/light.markdown
+++ b/source/_lovelace/light.markdown
@@ -11,7 +11,7 @@ The Light card allows you to change the brightness of the light.
Screenshot of the Light card.
-To add the Light card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Light** from the card picker. All options for this card can be configured via the user interface.
+To add the Light card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Light** from the card picker. All options for this card can be configured via the user interface.
Alternatively, the card can be configured using YAML:
@@ -23,25 +23,25 @@ entity: light.bedroom
{% configuration %}
type:
required: true
- description: light
+ description: "`light`"
type: string
entity:
required: true
- description: Home Assistant Light Domain entity ID.
+ description: Entity ID of `light` domain.
type: string
name:
required: false
description: Overwrites friendly name.
type: string
- default: Name of Entity
+ default: Name of entity
icon:
required: false
description: Overwrites icon.
type: string
- default: Entity Domain Icon
+ default: Entity domain icon
theme:
required: false
- description: Set to any theme within `themes.yaml`.
+ description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
hold_action:
required: false
diff --git a/source/_lovelace/logbook.markdown b/source/_lovelace/logbook.markdown
index 78f1b823513..5d9e8f46075 100644
--- a/source/_lovelace/logbook.markdown
+++ b/source/_lovelace/logbook.markdown
@@ -11,10 +11,9 @@ The Logbook card displays entries from the logbook for specific entities.
Screenshot of the Logbook card.
-To add the Logbook card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Logbook** from the card picker.
-
-### Card Settings
+To add the Logbook card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Logbook** from the card picker.
+## Card Settings
{% configuration_basic %}
Entities:
@@ -24,7 +23,7 @@ Title:
Hours to show:
description: The number of hours in the past that will be tracked in the card.
Theme:
- description: Theme your card using any installed theme in your HA environment.
+ description: Name of any loaded theme to be used for this card. For more information about themes, see the [frontend documentation](/integrations/frontend/).
{% endconfiguration_basic %}
### YAML
@@ -34,11 +33,11 @@ This is for if you use YAML mode or prefer to use YAML in the Code Editor in the
{% configuration %}
type:
required: true
- description: logbook
+ description: "`logbook`"
type: string
entities:
required: true
- description: "The entities that will show in the card."
+ description: The entities that will show in the card.
type: list
title:
required: false
@@ -51,7 +50,7 @@ hours_to_show:
default: 24
theme:
required: false
- description: "Set to any theme within `themes.yaml`."
+ description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
{% endconfiguration %}
diff --git a/source/_lovelace/map.markdown b/source/_lovelace/map.markdown
index 75f83599340..63815a9885c 100644
--- a/source/_lovelace/map.markdown
+++ b/source/_lovelace/map.markdown
@@ -11,12 +11,12 @@ The Map card that allows you to display entities on a map
Screenshot of the map card.
-To add the Map card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Map** from the card picker. All options for this card can be configured via the user interface.
+To add the Map card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Map** from the card picker. All options for this card can be configured via the user interface.
{% configuration %}
type:
required: true
- description: map
+ description: "`map`"
type: string
entities:
required: true
diff --git a/source/_lovelace/markdown.markdown b/source/_lovelace/markdown.markdown
index 980bdde4471..0669d69b802 100644
--- a/source/_lovelace/markdown.markdown
+++ b/source/_lovelace/markdown.markdown
@@ -13,12 +13,12 @@ The renderer uses [Marked.js](https://marked.js.org), which supports [several sp
Screenshot of the Markdown card.
-To add the Markdown card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Markdown** from the card picker.
+To add the Markdown card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Markdown** from the card picker.
{% configuration %}
type:
required: true
- description: markdown
+ description: "`markdown`"
type: string
content:
required: true
@@ -41,7 +41,7 @@ entity_id:
description: "A list of entity IDs so a template in `content:` only reacts to the state changes of these entities. This can be used if the automatic analysis fails to find all relevant entities."
theme:
required: false
- description: "Set to any theme within `themes.yaml`"
+ description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
{% endconfiguration %}
@@ -86,7 +86,6 @@ card:
{% endraw %}
-
A special template variable - `user` is set up for the `content` of the card. It contains the currently logged in user.
For example:
@@ -103,7 +102,7 @@ content: |
## Icons
-You can also use [materialdesignicons.com]() icons in the `content` of the card.
+You can also use [materialdesignicons.com](https://materialdesignicons.com/) icons in the `content` of the card.
For example:
diff --git a/source/_lovelace/media-control.markdown b/source/_lovelace/media-control.markdown
index 181662cc289..081ded94460 100644
--- a/source/_lovelace/media-control.markdown
+++ b/source/_lovelace/media-control.markdown
@@ -11,22 +11,22 @@ The Media Control card is used to display [Media Player](/integrations/#media-pl
Screenshot of the Media Control card.
-To add the Media Control card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Media Control** from the card picker.
+To add the Media Control card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Media Control** from the card picker.
{% configuration %}
type:
required: true
- description: media-control
+ description: "`media-control`"
type: string
entity:
required: true
- description: "A media player `entity_id`."
+ description: Entity ID of `media_player` domain.
type: string
name:
required: false
description: Overwrites friendly name.
type: string
- default: Name of Entity
+ default: Name of entity
{% endconfiguration %}
## Example
diff --git a/source/_lovelace/picture-elements.markdown b/source/_lovelace/picture-elements.markdown
index bed5581debd..40cdd2a0607 100644
--- a/source/_lovelace/picture-elements.markdown
+++ b/source/_lovelace/picture-elements.markdown
@@ -16,7 +16,7 @@ The cards allow you to position icons or text and even services on an image base
{% configuration %}
type:
required: true
- description: picture-elements
+ description: "`picture-elements`"
type: string
image:
required: true
@@ -33,11 +33,11 @@ camera_view:
type: string
elements:
required: true
- description: List of elements
+ description: List of elements.
type: list
title:
required: false
- description: Card title
+ description: Card title.
type: string
state_filter:
required: false
@@ -45,7 +45,7 @@ state_filter:
type: map
theme:
required: false
- description: "Set to any theme within `themes.yaml`"
+ description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
dark_mode_image:
required: false
@@ -79,11 +79,11 @@ This element creates a badge representing the state of an entity.
{% configuration %}
type:
required: true
- description: state-badge
+ description: "`state-badge`"
type: string
entity:
required: true
- description: Entity id
+ description: Entity ID.
type: string
style:
required: true
@@ -115,11 +115,11 @@ This element represents an entity state using an icon.
{% configuration %}
type:
required: true
- description: state-icon
+ description: "`state-icon`"
type: string
entity:
required: true
- description: The entity id to use.
+ description: The entity ID to use.
type: string
icon:
required: false
@@ -131,42 +131,42 @@ title:
type: string
state_color:
required: false
- description: Set to `true` to have icons colored when entity is active
+ description: Set to `true` to have icons colored when entity is active.
type: boolean
default: true
tap_action:
required: false
- description: Action to take on tap
+ description: Action to take on tap.
type: map
keys:
action:
required: true
- description: "Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `url`, `none`)"
+ description: "Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `url`, `none`)."
type: string
default: "`more-info`"
navigation_path:
required: false
- description: "Path to navigate to (e.g., `/lovelace/0/`) when `action` defined as `navigate`"
+ description: "Path to navigate to (e.g., `/lovelace/0/`) when `action` defined as `navigate`."
type: string
default: none
url_path:
required: false
- description: "Path to navigate to (e.g., `https://www.home-assistant.io`) when `action` defined as `url`"
+ description: "Path to navigate to (e.g., `https://www.home-assistant.io`) when `action` defined as `url`."
type: string
default: none
service:
required: false
- description: "Service to call (e.g., `media_player.media_play_pause`) when `action` defined as `call-service`"
+ description: "Service to call (e.g., `media_player.media_play_pause`) when `action` defined as `call-service`."
type: string
default: none
service_data:
required: false
- description: "Service data to include (e.g., `entity_id: media_player.bedroom`) when `action` defined as `call-service`"
+ description: "Service data to include (e.g., `entity_id: media_player.bedroom`) when `action` defined as `call-service`."
type: string
default: none
confirmation:
required: false
- description: "Present a confirmation dialog to confirm the action. See `confirmation` object below"
+ description: "Present a confirmation dialog to confirm the action. See `confirmation` object below."
type: [boolean, map]
default: "false"
tap_action:
@@ -195,16 +195,15 @@ This element represents an entity's state via text.
{% configuration %}
type:
required: true
- description: state-label
+ description: "`state-label`"
type: string
entity:
required: true
- description: Entity id
+ description: Entity ID.
type: string
attribute:
required: false
- description: If present, the corresponding attribute will be shown,
- instead of the entity's state
+ description: If present, the corresponding attribute will be shown, instead of the entity's state.
type: string
prefix:
required: false
@@ -244,15 +243,15 @@ This entity creates a button (with arbitrary text) that can be used to call a se
{% configuration %}
type:
required: true
- description: service-button
+ description: "`service-button`"
type: string
title:
required: true
- description: Button label
+ description: Button label.
type: string
service:
required: true
- description: light.turn_on
+ description: "`light.turn_on`"
type: string
service_data:
required: false
@@ -267,16 +266,16 @@ style:
### Icon Element
-This element creates a static icon that is not linked to the state of an entity.
+This element creates a static icon that is not linked to the state of an entity.
{% configuration %}
type:
required: true
- description: icon
+ description: "`icon`"
type: string
icon:
required: true
- description: "Icon to display (e.g., `mdi:home`)"
+ description: "Icon to display (e.g., `mdi:home`)."
type: string
title:
required: false
@@ -284,7 +283,7 @@ title:
type: string
entity:
required: false
- description: Entity to use for more-info/toggle
+ description: Entity to use for more-info/toggle.
type: string
tap_action:
required: false
@@ -312,11 +311,11 @@ This creates an image element that overlays the background image.
{% configuration %}
type:
required: true
- description: image
+ description: "`image`"
type: string
entity:
required: false
- description: Entity to use for state_image and state_filter and also target for actions.
+ description: "Entity to use for `state_image` and `state_filter` and also target for actions."
type: string
title:
required: false
@@ -353,7 +352,7 @@ state_image:
type: map
filter:
required: false
- description: Default CSS filter
+ description: Default CSS filter.
type: string
state_filter:
required: false
@@ -361,7 +360,7 @@ state_filter:
type: map
aspect_ratio:
required: false
- description: Height-width-ratio.
+ description: Height to width ratio.
type: string
default: "50%"
style:
@@ -378,7 +377,7 @@ Much like the Conditional card, this element will let you show its sub-elements
{% configuration %}
type:
required: true
- description: conditional
+ description: "`conditional`"
type: string
conditions:
required: true
@@ -387,7 +386,7 @@ conditions:
keys:
entity:
required: true
- description: Home Assistant entity ID.
+ description: Entity ID.
type: string
state:
required: false
@@ -412,7 +411,7 @@ for more information.
{% configuration %}
type:
required: true
- description: 'Card name with `custom:` prefix (e.g., `custom:my-custom-card`)'
+ description: 'Card name with `custom:` prefix (e.g., `custom:my-custom-card`).'
type: string
style:
required: true
@@ -421,13 +420,12 @@ style:
default: "position: absolute, transform: translate(-50%, -50%)"
{% endconfiguration %}
-
## Options For Exemptions
{% configuration badges %}
user:
required: true
- description: User id that can see the view tab.
+ description: User ID that can see the view tab.
type: string
{% endconfiguration %}
diff --git a/source/_lovelace/picture-entity.markdown b/source/_lovelace/picture-entity.markdown
index ce1f698b939..372f85f09f7 100644
--- a/source/_lovelace/picture-entity.markdown
+++ b/source/_lovelace/picture-entity.markdown
@@ -14,7 +14,7 @@ The Picture Entity card displays an entity in the form of an image. Instead of i
{% configuration %}
type:
required: true
- description: picture-entity
+ description: "`picture-entity`"
type: string
entity:
required: true
@@ -31,7 +31,7 @@ camera_view:
type: string
image:
required: false
- description: URL of an image.
+ description: URL of an image. To use a locally hosted image, see [Hosting](/integrations/http#hosting-files).
type: string
state_image:
required: false
@@ -61,7 +61,7 @@ show_state:
default: true
theme:
required: false
- description: "Set to any theme within `themes.yaml`"
+ description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
tap_action:
required: false
diff --git a/source/_lovelace/picture-glance.markdown b/source/_lovelace/picture-glance.markdown
index bd99a9c2505..d97600e522c 100644
--- a/source/_lovelace/picture-glance.markdown
+++ b/source/_lovelace/picture-glance.markdown
@@ -14,7 +14,7 @@ The Picture Glance card shows an image and corresponding entity states as an ico
{% configuration %}
type:
required: true
- description: picture-glance
+ description: "`picture-glance`"
type: string
entities:
required: true
@@ -60,12 +60,12 @@ entity:
type: string
show_state:
required: false
- description: Show entity state-text.
+ description: Show entity state text.
type: boolean
default: true
theme:
required: false
- description: "Set to any theme within `themes.yaml`"
+ description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
tap_action:
required: false
@@ -88,19 +88,19 @@ If you define entities as objects instead of strings, you can add more customiza
{% configuration %}
entity:
required: true
- description: Home Assistant entity ID.
+ description: Entity ID.
type: string
attribute:
required: false
- description: Attribute of the entity to display instead of the state
+ description: Attribute of the entity to display instead of the state.
type: string
prefix:
required: false
- description: Prefix to display before the attribute's value
+ description: Prefix to display before the attribute's value.
type: string
suffix:
required: false
- description: Suffix to display after the attribute's value
+ description: Suffix to display after the attribute's value.
type: string
icon:
required: false
@@ -108,7 +108,7 @@ icon:
type: string
show_state:
required: false
- description: Show entity state-text.
+ description: Show entity state text.
type: boolean
default: true
tap_action:
@@ -130,7 +130,7 @@ double_tap_action:
{% configuration badges %}
user:
required: true
- description: User id that can see the view tab.
+ description: User ID that can see the view tab.
type: string
{% endconfiguration %}
diff --git a/source/_lovelace/picture.markdown b/source/_lovelace/picture.markdown
index 4b57d11f994..5dffca2b3e3 100644
--- a/source/_lovelace/picture.markdown
+++ b/source/_lovelace/picture.markdown
@@ -14,15 +14,15 @@ Screenshot of the picture card.
{% configuration %}
type:
required: true
- description: picture
+ description: "`picture`"
type: string
image:
required: true
- description: The URL of an image. When you want to store images in your Home Assistant installation use the [hosting files documentation](/integrations/http/#hosting-files). After storing your files, use the /local path, for example /local/filename.jpg .
+ description: "The URL of an image. When you want to store images in your Home Assistant installation use the [hosting files documentation](/integrations/http/#hosting-files). After storing your files, use the `/local` path, for example, `/local/filename.jpg`."
type: string
theme:
required: false
- description: "Set to any theme within `themes.yaml`"
+ description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
tap_action:
required: false
@@ -43,7 +43,7 @@ double_tap_action:
{% configuration badges %}
user:
required: true
- description: User id that can see the view tab.
+ description: User ID that can see the view tab.
type: string
{% endconfiguration %}
diff --git a/source/_lovelace/plant-status.markdown b/source/_lovelace/plant-status.markdown
index 6834b1b33ff..24dc0b1cecb 100644
--- a/source/_lovelace/plant-status.markdown
+++ b/source/_lovelace/plant-status.markdown
@@ -20,16 +20,16 @@ type:
type: string
entity:
required: true
- description: "Entity ID from `plant` domain"
+ description: Entity ID of `plant` domain.
type: string
name:
required: false
- description: Overwrites friendly name
+ description: Overwrites friendly name.
type: string
- default: Entity Name
+ default: Entity name
theme:
required: false
- description: "Set to any theme within `themes.yaml`"
+ description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
{% endconfiguration %}
diff --git a/source/_lovelace/sensor.markdown b/source/_lovelace/sensor.markdown
index 01949b77cc8..5708023196e 100644
--- a/source/_lovelace/sensor.markdown
+++ b/source/_lovelace/sensor.markdown
@@ -11,46 +11,46 @@ The Sensor card gives you a quick overview of your sensors state with an optiona
Screenshot of the sensor card.
-To add the Sensor card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Sensor** from the card picker. All options for this card can be configured via the user interface.
+To add the Sensor card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Sensor** from the card picker. All options for this card can be configured via the user interface.
{% configuration %}
type:
required: true
- description: sensor
+ description: "`sensor`"
type: string
entity:
required: true
- description: Entity id of `sensor` domain
+ description: Entity ID of `sensor` domain.
type: string
icon:
required: false
- description: The card icon
+ description: The card icon.
type: string
name:
required: false
- description: The card name
+ description: The card name.
type: string
graph:
required: false
- description: Type of graph `none` or `line`
+ description: Type of graph (`none` or `line`).
type: string
unit:
required: false
- description: The unit of measurement
+ description: The unit of measurement.
type: string
detail:
required: false
- description: Detail of the graph `1` or `2`, `1` equals one point/hour, `2` equals six points/hour
+ description: Detail of the graph `1` or `2` (`1` = one point/hour, `2` = six points/hour).
type: integer
default: 1
hours_to_show:
required: false
- description: Hours to show in graph
+ description: Hours to show in graph.
type: integer
default: 24
theme:
required: false
- description: Set to any theme within `themes.yaml`
+ description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
{% endconfiguration %}
diff --git a/source/_lovelace/shopping-list.markdown b/source/_lovelace/shopping-list.markdown
index ba1893b3960..360a4172448 100644
--- a/source/_lovelace/shopping-list.markdown
+++ b/source/_lovelace/shopping-list.markdown
@@ -13,8 +13,7 @@ Setup of the [Shopping List integration](/integrations/shopping_list/) is requir
Screenshot of the Shopping List card.
-
-To add the Shopping List card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Shopping List** from the card picker. All options for this card can be configured via the user interface.
+To add the Shopping List card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Shopping List** from the card picker. All options for this card can be configured via the user interface.
Alternatively, the card can be configured using YAML:
@@ -25,15 +24,15 @@ type: shopping-list
{% configuration %}
type:
required: true
- description: shopping-list
+ description: "`shopping-list`"
type: string
title:
required: false
- description: Title of Shopping List
+ description: Title of shopping list.
type: string
theme:
required: false
- description: "Set to any theme within `themes.yaml`"
+ description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
{% endconfiguration %}
diff --git a/source/_lovelace/thermostat.markdown b/source/_lovelace/thermostat.markdown
index ffba79e7b41..4add4187272 100644
--- a/source/_lovelace/thermostat.markdown
+++ b/source/_lovelace/thermostat.markdown
@@ -11,25 +11,25 @@ The Thermostat card gives control of your [climate](/integrations/#climate) enti
Screenshot of the Thermostat card.
-To add the Thermostat card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Thermostat** from the card picker. All options for this card can be configured via the user interface.
+To add the Thermostat card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Thermostat** from the card picker. All options for this card can be configured via the user interface.
{% configuration %}
type:
required: true
- description: thermostat
+ description: "`thermostat`"
type: string
entity:
required: true
- description: Entity id of `climate` domain
+ description: Entity ID of `climate` domain.
type: string
name:
required: false
description: Overwrites friendly name.
type: string
- default: Name of Entity.
+ default: Name of entity.
theme:
required: false
- description: Set to any theme within `themes.yaml`
+ description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
{% endconfiguration %}
diff --git a/source/_lovelace/vertical-stack.markdown b/source/_lovelace/vertical-stack.markdown
index 23bb093243e..fb3d0b05b43 100644
--- a/source/_lovelace/vertical-stack.markdown
+++ b/source/_lovelace/vertical-stack.markdown
@@ -6,16 +6,16 @@ description: "The Vertical Stack card allows you to group multiple cards so they
The Vertical Stack card allows you to group multiple cards so they always sit in the same column.
-To add the Vertical Stack card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Vertical Stack** from the card picker. All options for this card can be configured via the user interface.
+To add the Vertical Stack card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Vertical Stack** from the card picker. All options for this card can be configured via the user interface.
{% configuration %}
type:
required: true
- description: vertical-stack
+ description: "`vertical-stack`"
type: string
title:
required: false
- description: Title of Stack
+ description: Title of stack.
type: string
cards:
required: true
@@ -23,7 +23,7 @@ cards:
type: list
{% endconfiguration %}
-### Examples
+## Examples
Alternatively, the card can be configured using YAML:
diff --git a/source/_lovelace/weather-forecast.markdown b/source/_lovelace/weather-forecast.markdown
index b363b5d32e0..ec562aa14ca 100644
--- a/source/_lovelace/weather-forecast.markdown
+++ b/source/_lovelace/weather-forecast.markdown
@@ -11,10 +11,9 @@ The Weather Forecast card displays the weather. Very useful to include on interf
Screenshot of the Weather card.
-To add the Weather card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Weather** from the card picker.
-
-### Card Settings
+To add the Weather card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Weather** from the card picker.
+## Card Settings
{% configuration_basic %}
Entity:
@@ -26,7 +25,7 @@ Show Forecast:
Secondary Info Attribute:
description: Here you can specify a secondary attribute to show under the current temperature. Ex. Extrema, Precipitation, Humidity. If not set, it will default to Extrema (High/Low) if available, if not available then Precipitation and if precipitation isn't available then Humidity.
Theme:
- description: Theme your card using any installed theme in your HA environment.
+ description: Name of any loaded theme to be used for this card. For more information about themes, see the [frontend documentation](/integrations/frontend/).
{% endconfiguration_basic %}
@@ -37,25 +36,24 @@ Theme:
-
### YAML
-This is for if you use YAML mode or just prefer to use YAML in the Code Editor in the UI
+This is for if you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
required: true
- description: weather-forecast
+ description: "`weather-forecast`"
type: string
entity:
required: true
- description: "The `entity_id` of the `weather` platform to use."
+ description: Entity ID of `weather` domain.
type: string
name:
required: false
description: Overwrites the friendly name.
type: string
- default: Entity Name
+ default: Entity name
show_forecast:
required: false
description: Show next hours/days forecast.
@@ -68,7 +66,7 @@ secondary_info_attribute:
default: Defaults to `extrema` if available, if not available then `precipitation` and if precipitation isn't available then `humidity`.
theme:
required: false
- description: "Set to any theme within `themes.yaml`"
+ description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
{% endconfiguration %}
@@ -79,12 +77,11 @@ type: weather-forecast
entity: weather.openweathermap
```
-
### Advanced
-##### Themeable Icons
+#### Themeable Icons
-The default weather icons are themable via a [theme](/integrations/frontend/#themes). Theme variables include:
+The default weather icons are themable via a [theme](/integrations/frontend/#themes). Theme variables include:
```yaml
--weather-icon-cloud-front-color
@@ -105,7 +102,7 @@ Example theme configuration:
-##### Personal Icons
+#### Personal Icons
Weather icons can be overwritten with your own personal images via a [theme](/integrations/frontend/#themes). Theme variables include:
diff --git a/source/_posts/2021-01-06-release-20211.markdown b/source/_posts/2021-01-06-release-20211.markdown
index c2c83872d15..d763c93e3d0 100644
--- a/source/_posts/2021-01-06-release-20211.markdown
+++ b/source/_posts/2021-01-06-release-20211.markdown
@@ -40,12 +40,17 @@ Enjoy the release!
../Frenck
-- [In memoriam of villhellm](#in-memoriam-of-villhellm)
+- [In memoriam of Villhellm](#in-memoriam-of-villhellm)
- [Home Assistant Conference Videos](#home-assistant-conference-videos)
- [Other noteworthy changes](#other-noteworthy-changes)
- [New Integrations](#new-integrations)
- [New Platforms](#new-platforms)
- [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui)
+- [Release 2021.1.1 - January 9](#release-202111---january-9)
+- [Release 2021.1.2 - January 14](#release-202112---january-14)
+- [Release 2021.1.3 - January 15](#release-202113---january-15)
+- [Release 2021.1.4 - January 16](#release-202114---january-16)
+- [Release 2021.1.5 - January 23](#release-202115---january-23)
- [If you need help...](#if-you-need-help)
- [Breaking Changes](#breaking-changes)
- [Farewell to the following](#farewell-to-the-following)
@@ -150,6 +155,108 @@ The following integrations are now available via the Home Assistant UI:
- [BMW Connected Drive][bmw_connected_drive docs], done by [@rikroe]
+## Release 2021.1.1 - January 9
+
+- Fix KNX cover state return open when unknown ([@farmio] - [#44926]) ([knx docs])
+- Fix wait_template incorrectly matching falsey values ([@bdraco] - [#44938])
+- Disambiguate Supervisor HTTPUnauthorized on user/password validation ([@zeehio] - [#44940]) ([hassio docs])
+- Fix parameters when toggling light ([@emontnemery] - [#44950]) ([light docs])
+- Bump pymyq to 2.0.13 ([@ehendrix23] - [#44961]) ([myq docs])
+
+[#44926]: https://github.com/home-assistant/core/pull/44926
+[#44938]: https://github.com/home-assistant/core/pull/44938
+[#44940]: https://github.com/home-assistant/core/pull/44940
+[#44950]: https://github.com/home-assistant/core/pull/44950
+[#44961]: https://github.com/home-assistant/core/pull/44961
+[@bdraco]: https://github.com/bdraco
+[@ehendrix23]: https://github.com/ehendrix23
+[@emontnemery]: https://github.com/emontnemery
+[@farmio]: https://github.com/farmio
+[@zeehio]: https://github.com/zeehio
+[hassio docs]: /integrations/hassio/
+[knx docs]: /integrations/knx/
+[light docs]: /integrations/light/
+[myq docs]: /integrations/myq/
+
+## Release 2021.1.2 - January 14
+
+- Update the Utility Meter sensor status on HA start ([@dgomes] - [#44765]) ([utility_meter docs])
+- Bump bimmer_connected to 0.7.14 ([@rikroe] - [#45086]) ([bmw_connected_drive docs])
+- Fix neato battery sensor not ready ([@Santobert] - [#44946]) ([neato docs])
+- Fallback to tag for any AfterShip tracking that have no checkpoints ([@ludeeus] - [#45053]) ([aftership docs])
+- Bump MyQ to 2.0.14 ([@ehendrix23] - [#45067]) ([myq docs])
+- Fix OpenWeatherMap forecast timestamp ([@spacegaier] - [#45124]) ([openweathermap docs])
+- Add filtering ([@frenck] - [commit](https://github.com/home-assistant/core/commit/0bd2c13e261c7b3d96ba451c50f81dd3e659c5c9))
+
+[#44765]: https://github.com/home-assistant/core/pull/44765
+[#44946]: https://github.com/home-assistant/core/pull/44946
+[#45053]: https://github.com/home-assistant/core/pull/45053
+[#45067]: https://github.com/home-assistant/core/pull/45067
+[#45086]: https://github.com/home-assistant/core/pull/45086
+[#45124]: https://github.com/home-assistant/core/pull/45124
+[@Santobert]: https://github.com/Santobert
+[@dgomes]: https://github.com/dgomes
+[@ehendrix23]: https://github.com/ehendrix23
+[@ludeeus]: https://github.com/ludeeus
+[@rikroe]: https://github.com/rikroe
+[@spacegaier]: https://github.com/spacegaier
+[aftership docs]: /integrations/aftership/
+[bmw_connected_drive docs]: /integrations/bmw_connected_drive/
+[myq docs]: /integrations/myq/
+[neato docs]: /integrations/neato/
+[openweathermap docs]: /integrations/openweathermap/
+[utility_meter docs]: /integrations/utility_meter/
+
+## Release 2021.1.3 - January 15
+
+- Extend filter and filter tests ([@frenck] - [#45179]) ([http docs])
+- Bump aioHTTP 3.7.3 - YARL 1.6.3 ([@pvizeli] - [#45180])
+
+[#45179]: https://github.com/home-assistant/core/pull/45179
+[#45180]: https://github.com/home-assistant/core/pull/45180
+[@frenck]: https://github.com/frenck
+[@pvizeli]: https://github.com/pvizeli
+[http docs]: /integrations/http/
+
+## Release 2021.1.4 - January 16
+
+- Fix Home Connect ambient color ([@Sjack-Sch] - [#45038]) ([home_connect docs])
+- Fix HomeKit climate integration for devices with a single set point in Heat_Cool mode. ([@thevoltagesource] - [#45065]) ([homekit_controller docs])
+- Fix all forecast datetime values in OpenWeatherMap ([@spacegaier] - [#45202]) ([openweathermap docs])
+- Bump up ZHA dependency ([@Adminiuga] - [#45230]) ([zha docs])
+
+[#45038]: https://github.com/home-assistant/core/pull/45038
+[#45065]: https://github.com/home-assistant/core/pull/45065
+[#45202]: https://github.com/home-assistant/core/pull/45202
+[#45230]: https://github.com/home-assistant/core/pull/45230
+[@Adminiuga]: https://github.com/Adminiuga
+[@Sjack-Sch]: https://github.com/Sjack-Sch
+[@spacegaier]: https://github.com/spacegaier
+[@thevoltagesource]: https://github.com/thevoltagesource
+[home_connect docs]: /integrations/home_connect/
+[homekit_controller docs]: /integrations/homekit_controller/
+[openweathermap docs]: /integrations/openweathermap/
+[zha docs]: /integrations/zha/
+
+## Release 2021.1.5 - January 23
+
+- Update python-mpd2 to 3.0.3 ([@mweinelt] - [#45141]) ([mpd docs])
+- Bump pybotvac to 0.0.20 ([@Santobert] - [#45367]) ([neato docs])
+- Bump pyatmo to v4.2.2 ([@cgtobi] - [#45386]) ([netatmo docs])
+- Avoid misuse sanitize_path, clarify docs ([@balloob] - [#45469])
+
+[#45141]: https://github.com/home-assistant/core/pull/45141
+[#45367]: https://github.com/home-assistant/core/pull/45367
+[#45386]: https://github.com/home-assistant/core/pull/45386
+[#45469]: https://github.com/home-assistant/core/pull/45469
+[@Santobert]: https://github.com/Santobert
+[@balloob]: https://github.com/balloob
+[@cgtobi]: https://github.com/cgtobi
+[@mweinelt]: https://github.com/mweinelt
+[mpd docs]: /integrations/mpd/
+[neato docs]: /integrations/neato/
+[netatmo docs]: /integrations/netatmo/
+
## If you need help...
...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e).
diff --git a/source/_posts/2021-01-14-security-bulletin.markdown b/source/_posts/2021-01-14-security-bulletin.markdown
new file mode 100644
index 00000000000..dc290a8f996
--- /dev/null
+++ b/source/_posts/2021-01-14-security-bulletin.markdown
@@ -0,0 +1,38 @@
+---
+layout: post
+title: "Security Bulletin"
+description: "Update your Home Assistant instance as soon as possible."
+date: 2021-01-14 00:00:00
+date_formatted: "January 14, 2021"
+author: Paulus Schoutsen
+author_twitter: balloob
+comments: true
+categories: Public-Service-Announcement
+og_image: /images/blog/2021-01-security-bulletin/social.png
+---
+
+
+
+It has come to our attention that certain custom integrations have security issues and could potentially leak sensitive information. Home Assistant is not responsible for custom integrations and you use custom integrations at your own risk.
+
+The latest version of Home Assistant Core has extra protection to help secure your instance.
+
+**Update your Home Assistant instance as soon as possible.**
+
+To update Home Assistant, click on the Supervisor menu item to see if an update to 2021.1.3 (or newer) is available. If you don’t have the Supervisor menu item, follow the [update instructions](/docs/installation/updating/). Home Assistant 2021.1.3 is still compatible with Python 3.7 and an upgrade is possible.
+
+**If you cannot update Home Assistant at this time, we strongly advise you to disable all custom integrations.** You can disable your custom integrations by renaming the `custom_components` folder inside your Home Assistant configuration folder to something else. Please be sure to restart Home Assistant after you’ve renamed it.
+
+If you need additional help with upgrading, we are happy to help you out on our [Discord chat](/join-chat/) server.
+
+We will provide more details about impacted custom integrations in the future.
+
+Paulus
+
+**Edit: 15 January 2021**: Blog post updated to state 2021.1.3, which added some additional checks.
+
+**Edit: 16 January 2021**: Blog post updated to remove supervisor reload instructions, as latest version is now generally available. Added note that Python 3.7 is still supported.
+
+**Edit: 22 January 2021**: More details are now available in the [disclosure post](/blog/2021/01/22/security-disclosure/).
+
+**Edit: 23 January 2021**: Additional security vulnerabilities disclosed in this [second disclosure post](/blog/2021/01/23/security-disclosure2/).
diff --git a/source/_posts/2021-01-21-security-disclosure.markdown b/source/_posts/2021-01-21-security-disclosure.markdown
new file mode 100644
index 00000000000..84a28121d4b
--- /dev/null
+++ b/source/_posts/2021-01-21-security-disclosure.markdown
@@ -0,0 +1,81 @@
+---
+layout: post
+title: "Disclosure: security vulnerabilities in custom integrations HACS, Dwains Dashboard, Font Awesome and others"
+description: "Update your Home Assistant instance as soon as possible."
+date: 2021-01-22 00:00:00
+date_formatted: "January 22, 2021"
+author: Paulus Schoutsen
+author_twitter: balloob
+comments: true
+categories: Public-Service-Announcement
+og_image: /images/blog/2021-01-security-disclosure/social.png
+---
+
+
+
+
This is a disclosure about security vulnerabilities found in 3rd party custom integrations. Custom integrations are not created and/or maintained by Home Assistant. Users install them at their own risk. We want to inform you about these because the found vulnerabilities impact the security of your Home Assistant instance.
+
+
If you do not use custom integrations, your Home Assistant is not vulnerable. If you do use custom integrations, your instance might be vulnerable if you use one of the impacted integrations.
+
+TL;DR:
+
+- Multiple custom integrations were found that allowed an attacker to steal any file without logging in.
+- Upgrade Home Assistant as soon as possible. Home Assistant Core 2021.1.3 added extra protections that stops attackers from reaching the vulnerable code in custom integrations.
+- Upgrade the custom integrations to a fixed version or remove them from your installation.
+- If you have used any of the custom integrations with a known vulnerability, we recommend that you update your credentials.
+
+On the morning of Thursday, January 14 2021, the custom integration Home Assistant Community Store (HACS) project was informed by [security researcher Oriel Goel](https://www.linkedin.com/in/oriel-goel/) about a security vulnerability. It was vulnerable to a directory traversal attack via an unauthenticated webview, allowing an attacker to access any file that is accessible by the Home Assistant process. This access includes any credential that you might have stored to allow Home Assistant to access other services.
+
+We started to research what other custom integrations could be impacted and found several more. We have responsibly disclosed these issues to the authors of those custom integrations and worked with them on fixing their integrations.
+
+The following have been found:
+
+- [Home Assistant Community Store](https://github.com/hacs/integration) (HACS) -- fixed in 1.10.0
+- [Dwains Lovelace Dashboard](https://github.com/dwainscheeren/dwains-lovelace-dashboard) -- fixed in 2.0.1
+- [Font Awesome](https://github.com/thomasloven/hass-fontawesome) -- fixed in 1.3.0
+- [BWAlarm (ak74 edition)](https://github.com/akasma74/Hass-Custom-Alarm) -- fixed in 1.12.8
+- [Simple Icons](https://github.com/vigonotion/hass-simpleicons) -- fixed in 1.10.0
+- [Custom Updater](https://github.com/custom-components/custom_updater/) (deprecated) -- fixed in latest commit
+
+We haven't been able to get in touch with the authors of the following integration. You should remove this custom integration as soon as possible:
+
+- [Custom icons](https://github.com/Armaell/home-assistant-custom-icons-loader) -- not fixed
+
+The following integration was discovered to be vulnerable to a variant of the above security vulnerability. It allows for a directory traversal attack but requires the attacker to be authenticated. We have been unable to reach the author:
+
+- [Hass-album](https://github.com/yunsean/hass-album/) -- not fixed
+
+If you have used any of these custom integrations, we recommend that you update your credentials.
+
+Besides working with the custom integration authors, the following actions have been taken to help protect users:
+
+- Home Assistant released Home Assistant Core 2021.1.3 with extra protection to stop directory traversal attacks before reaching the vulnerable code. This prevents the abuse of all found vulnerabilities.
+- Home Assistant published a [security bulletin](https://www.home-assistant.io/blog/2021/01/14/security-bulletin/) strongly urging people to upgrade their Home Assistant instance. This bulletin has been shared widely and linked from banners on the Home Assistant website and forums.
+- The Home Assistant Supervisor will notify the user when a possible insecure installation is found that uses custom integrations.
+- The Home Assistant Companion apps for Android and iOS have been updated to notify the user if their Home Assistant instance is potentially insecure.
+- Nabu Casa emailed the security bulletin to all Home Assistant Cloud subscribers and users on trial.
+- Nabu Casa activated their feature to [limit remote access](https://www.nabucasa.com/config/remote/#insecure-versions) via Home Assistant Cloud and block instances that run an insecure version of Home Assistant.
+
+Look. It sucks that this happened. The custom integrations we have listed are all open source, maintained by volunteers in their spare time. They often work alone on this and that's why it's more likely for a bug to go undetected. But more eyes doesn't guarantee bug-free software either. From time to time, such things will happen to every piece of software.
+
+I want to emphasize that it's not allowed to personally harass/attack/insult the developers of these custom integrations. That would be a violation of our Code of Conduct and we will enforce this.
+
+As Home Assistant, we could have done more to prepare for this scenario. We are currently exploring adding new opt-in features for users to be notified and allow Home Assistant to take action preemptively to patch vulnerabilities.
+
+Paulus
+
+**Edit: 23 January 2021**: Additional security vulnerabilities disclosed in this [second disclosure post](/blog/2021/01/23/security-disclosure2/).
+
+## FAQ
+
+---
+
+### Why didn't you release the names of the custom integrations in the first security bulletin?
+
+When we discovered the issues, we disclosed them to the authors of the affected custom integrations and gave them time to fix the problem and release a new version. This is a good and common practice when disclosing security vulnerabilities.
+
+Since some of these custom integrations are quite popular, we also decided to publish a security bulletin to urge Home Assistant users to upgrade their instances. We made sure to include enough information for users to resolve the vulnerability.
+
+### Has this vulnerability been abused?
+
+We don't know.
diff --git a/source/_posts/2021-01-23-security-disclosure2.markdown b/source/_posts/2021-01-23-security-disclosure2.markdown
new file mode 100644
index 00000000000..f37489705e1
--- /dev/null
+++ b/source/_posts/2021-01-23-security-disclosure2.markdown
@@ -0,0 +1,65 @@
+---
+layout: post
+title: "Security Disclosure 2: vulnerabilities in custom integrations HACS, Font Awesome and others"
+description: "Update your Home Assistant instance as soon as possible."
+date: 2021-01-23 00:00:00
+date_formatted: "January 23, 2021"
+author: Paulus Schoutsen
+author_twitter: balloob
+comments: true
+categories: Public-Service-Announcement
+og_image: /images/blog/2021-01-security-disclosure2/social.png
+---
+
+
+
+This blog looks pretty much the same [as the security disclosure of yesterday](/blog/2021/01/22/security-disclosure/). However, **it is a new disclosure**, affecting a similar issue. We want to make sure the information is complete.
+
+
This is a disclosure about security vulnerabilities found in 3rd party custom integrations. Custom integrations are not created and/or maintained by Home Assistant. Users install them at their own risk. We want to inform you about these because the found vulnerabilities impact the security of your Home Assistant instance.
+
+
If you do not use custom integrations, your Home Assistant is not vulnerable. If you do use custom integrations, your instance might be vulnerable if you use one of the impacted integrations.
+
+TL;DR:
+
+- Multiple custom integrations were found that allowed an attacker to steal any file without logging in. Previously implemented fixes were not sufficient.
+- Upgrade Home Assistant as soon as possible. Home Assistant Core **2021.1.5** added mitigation to prevent the issue from happening.
+- Upgrade the custom integrations to a fixed version or remove them from your installation.
+- If you have used any of the custom integrations with a known vulnerability, we recommend that you update your credentials.
+
+On the morning of Saturday, January 23 2021, the Home Assistant project was informed by [security researcher Nathan Brady](https://twitter.com/NateBrady23) about a security vulnerability. It provided more insight on the implementation of the fixes done for the [previous security vulnerability](/blog/2021/01/22/security-disclosure/). We learned that not all custom integrations that implement security patches are sufficient to deflect the problem.
+
+We verified all fixes made to custom integrations that were found to be vulnerable in the previous security disclosure. The conclusion is that some custom integrations are still vulnerable to a directory traversal attack while not being authenticated with Home Assistant. It allows an attacker to access any file without having to log in. This access includes any credentials that you might have stored to allow Home Assistant to access other services.
+
+We have responsibly disclosed these issues to the authors of those custom integrations and worked with them on fixing their integrations.
+
+The following have been found:
+
+- [Home Assistant Community Store](https://github.com/hacs/integration) (HACS) -- fixed in **1.10.1**
+- [Font Awesome](https://github.com/thomasloven/hass-fontawesome) -- fixed in **1.3.1**
+- [BWAlarm (ak74 edition)](https://github.com/akasma74/Hass-Custom-Alarm) -- fixed in **1.12.9**
+- [Simple Icons](https://github.com/vigonotion/hass-simpleicons) -- fixed in **1.11.0**
+
+Please make sure to also read the [previous security disclosure](/blog/2021/01/22/security-disclosure/). While this specific security vulnerability might not impact them, you might be impacted by the previously found vulnerability.
+
+Besides working with the custom integration authors, the following actions have been taken to help protect users:
+
+- Home Assistant released Home Assistant Core **2021.1.5** with extra protection to stop directory traversal attacks before reaching the vulnerable code. This prevents the abuse of all found vulnerabilities.
+- This security disclosure is shared widely and linked from banners on the Home Assistant website and forums.
+- The Home Assistant Supervisor will notify the user when a possible insecure installation is found that uses custom integrations.
+- The Android & iOS Apps are updated to notify the user if their Home Assistant instance is potentially insecure.
+- Nabu Casa updated their feature to limit remote access via Home Assistant Cloud and block instances that run an insecure Home Assistant Core version.
+- An alert has been placed at [alerts.home-assistant.io](https://alerts.home-assistant.io).
+
+Alright, so here we are, a day after our first major security disclosure, disclosing a second one. Surely it is not fun, but we are thankful it got reported responsibly to us. This time we were able to move quickly and got everything updated pretty fast. Therefore, we decided to disclose all information immediately.
+
+I want to emphasize that it's not allowed to personally harass/attack/insult the developers of these custom integrations. That would be a violation of our Code of Conduct and we will enforce this.
+
+Paulus
+
+## FAQ
+
+---
+
+### Has this vulnerability been abused?
+
+We don't know.
diff --git a/source/_redirects b/source/_redirects
index 173c3b8d890..a9eae20efa8 100644
--- a/source/_redirects
+++ b/source/_redirects
@@ -5,6 +5,7 @@
/join-chat https://discord.gg/BzQNTqK
/suggest-community-highlight https://docs.google.com/forms/d/e/1FAIpQLSd9VWPeVM0xg0swWL6kT3wkQUKt8vWsTL5WtPO95LAy-0cYZw/viewform
/get-blueprints https://community.home-assistant.io/c/blueprints-exchange/53
+/latest-security-alert /blog/2021/01/23/security-disclosure2/
# Older development pages
/developers https://developers.home-assistant.io
@@ -2183,3 +2184,79 @@
# Blog
/blog/2019/05/29/release-94 /blog/2019/06/05/release-94
/state-of-the-union /blog/2019/11/22/state-of-the-union
+
+
+# Removed integrations
+/components/alarm_control_panel.alarmdotcom /more-info/removed-integration 301
+/components/alarm_control_panel.ialarm /more-info/removed-integration 301
+/components/device_tracker.ubee /more-info/removed-integration 301
+/components/device_tracker.xfinity /more-info/removed-integration 301
+/components/edp_redy /more-info/removed-integration 301
+/components/fedex /more-info/removed-integration 301
+/components/fortigate /more-info/removed-integration 301
+/components/history_graph /more-info/removed-integration 301
+/components/hydroquebec /more-info/removed-integration 301
+/components/linksys_ap /more-info/removed-integration 301
+/components/liveboxplaytv /more-info/removed-integration 301
+/components/lock.lockitron /more-info/removed-integration 301
+/components/lockitron /more-info/removed-integration 301
+/components/media_player.liveboxplaytv /more-info/removed-integration 301
+/components/media_player.liveboxplaytv /more-info/removed-integration 301
+/components/nma /more-info/removed-integration 301
+/components/notify.nma /more-info/removed-integration 301
+/components/notify.pushetta /more-info/removed-integration 301
+/components/notify.yessssms /more-info/removed-integration 301
+/components/postnl /more-info/removed-integration 301
+/components/pushetta /more-info/removed-integration 301
+/components/ruter /more-info/removed-integration 301
+/components/sensor.bom /more-info/removed-integration 301
+/components/sensor.duke_energy /more-info/removed-integration 301
+/components/sensor.gearbest /more-info/removed-integration 301
+/components/sensor.hydroquebec /more-info/removed-integration 301
+/components/sensor.linky /more-info/removed-integration 301
+/components/sensor.mopar /more-info/removed-integration 301
+/components/sensor.postnl /more-info/removed-integration 301
+/components/sensor.prezzibenzina /more-info/removed-integration 301
+/components/sensor.teksavvy /more-info/removed-integration 301
+/components/sensor.yweather /more-info/removed-integration 301
+/components/simple_alarm /more-info/removed-integration 301
+/components/srp_energy /more-info/removed-integration 301
+/components/switch.edp_redy /more-info/removed-integration 301
+/components/sytadin /more-info/removed-integration 301
+/components/teksavvy /more-info/removed-integration 301
+/components/uber /more-info/removed-integration 301
+/components/ups /more-info/removed-integration 301
+/components/usps /more-info/removed-integration 301
+/components/weather.bom /more-info/removed-integration 301
+/components/weather.yweather /more-info/removed-integration 301
+/components/weblink /more-info/removed-integration 301
+/components/yessssms /more-info/removed-integration 301
+/components/yweather /more-info/removed-integration 301
+/integrations/alarmdotcom /more-info/removed-integration 301
+/integrations/bom /more-info/removed-integration 301
+/integrations/ciscospark /more-info/removed-integration 301
+/integrations/duke_energy /more-info/removed-integration 301
+/integrations/edp_redy /more-info/removed-integration 301
+/integrations/fortigate /more-info/removed-integration 301
+/integrations/gearbest /more-info/removed-integration 301
+/integrations/history_graph /more-info/removed-integration 301
+/integrations/hydroquebec /more-info/removed-integration 301
+/integrations/ialarm /more-info/removed-integration 301
+/integrations/linky /more-info/removed-integration 301
+/integrations/liveboxplaytv /more-info/removed-integration 301
+/integrations/liveboxplaytv /more-info/removed-integration 301
+/integrations/lockitron /more-info/removed-integration 301
+/integrations/mopar /more-info/removed-integration 301
+/integrations/nma /more-info/removed-integration 301
+/integrations/postnl /more-info/removed-integration 301
+/integrations/prezzibenzina /more-info/removed-integration 301
+/integrations/pushetta /more-info/removed-integration 301
+/integrations/salt /more-info/removed-integration 301
+/integrations/simple_alarm /more-info/removed-integration 301
+/integrations/teksavvy /more-info/removed-integration 301
+/integrations/ubee /more-info/removed-integration 301
+/integrations/uber /more-info/removed-integration 301
+/integrations/weblink /more-info/removed-integration 301
+/integrations/xfinity /more-info/removed-integration 301
+/integrations/yessssms /more-info/removed-integration 301
+/integrations/yweather /more-info/removed-integration 301
diff --git a/source/conference/index.markdown b/source/conference/index.markdown
index ec7aa59bae9..23e5b3e5dd2 100644
--- a/source/conference/index.markdown
+++ b/source/conference/index.markdown
@@ -20,10 +20,10 @@ After the talks, attendees will be able to join various sessions about different
## Watch it back
-The conference is over! The live stream of the main stage is available below. All other videos will come online when we have time.
+The conference is over! All talks have been [published online on YouTube](https://www.youtube.com/playlist?list=PLKsVm4cWHDQDGRXnybFUOLlcDWPsroGGB) and are also embedded below:
-
+
## Keynotes & Talks schedule
diff --git a/source/getting-started/index.markdown b/source/getting-started/index.markdown
index 8164e905102..caa54501b15 100644
--- a/source/getting-started/index.markdown
+++ b/source/getting-started/index.markdown
@@ -36,7 +36,7 @@ Follow this guide if you want to get started with Home Assistant easily or if yo
We will need a few things to get started with installing Home Assistant. The Raspberry Pi 4 Model B is a good, affordable starting point for your home automation journey. Links below lead to Amazon US. If you're not in the US, you should be able to find these items in web stores in your country.
- [Raspberry Pi 4 Model B (2GB)](https://amzn.to/2XULT2z) + [Power Supply](https://www.raspberrypi.org/help/faqs/#powerReqs) (at least 3A)
-- [Micro SD Card](https://amzn.to/2X0Z2di). Ideally get one that is [Application Class 2](https://www.sdcard.org/developers/overview/application/index.html) as they handle small I/O much more consistently than cards not optimized to host applications. A 32 GB or bigger card is recommended.
+- [Micro SD Card](https://amzn.to/2X0Z2di). Ideally get one that is [Application Class 2](https://www.sdcard.org/developers/sd-standard-overview/application-performance-class/) as they handle small I/O much more consistently than cards not optimized to host applications. A 32 GB or bigger card is recommended.
- SD Card reader. This is already part of most laptops, but you can purchase a [standalone USB adapter](https://amzn.to/2WWxntY) if you don't have one. The brand doesn't matter, just pick the cheapest.
- Ethernet cable. Home Assistant can work with Wi-Fi, but an Ethernet connection would be more reliable.
diff --git a/source/hassio/enable_i2c.markdown b/source/hassio/enable_i2c.markdown
index a4542745b08..d04f55a64ea 100644
--- a/source/hassio/enable_i2c.markdown
+++ b/source/hassio/enable_i2c.markdown
@@ -12,7 +12,7 @@ You will need:
- SD card reader
- SD card with Home Assistant Operating System flashed on it
-### Step 1 - Access the Home Assistant OS boot partition
+### Step 1 - Access the Home Assistant Operating System boot partition
Shutdown/turn-off your Home Assistant installation and unplug the SD card.
Plug the SD card into an SD card reader and find a drive/file system named
@@ -44,3 +44,24 @@ and make sure the first partition is available.
present at boot time.
The I2C devices should now be present under /dev.
+
+## From Home Assistant Operating System Terminal
+
+Alternatively, by attaching a keyboard and screen to your device, you can access the physical terminal to the Home Assistant Operating System.
+
+You can enable i2c via this terminal:
+
+- Login as `root`.
+- Type `login` and press enter to access the shell.
+- Type the following to enable i2c, you may need to replace `sda1` with `sdb1` or `mmcblk0p1` depending on your platform:
+
+ ```shell
+ mkdir /tmp/mnt
+ mount /dev/sda1 /tmp/mnt
+ mkdir -p /tmp/mnt/CONFIG/modules
+ echo -ne i2c-dev>/tmp/mnt/CONFIG/modules/rpi-i2c.conf
+ echo dtparam=i2c_vc=on >> /tmp/mnt/CONFIG/config.txt
+ echo dtparam=i2c_arm=on >> /tmp/mnt/CONFIG/config.txt
+ sync
+ reboot
+ ```
diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown
index 02e47531a41..16c0b86f494 100644
--- a/source/hassio/installation.markdown
+++ b/source/hassio/installation.markdown
@@ -28,7 +28,7 @@ The following will take you through the steps required to install Home Assistant
- **For the virtual appliance images:** Load the appliance image into your virtual machine software. (Note: You are free to assign as much resources as you wish to the VM, please assign enough based on your add-on needs)
- For VirtualBox create a new virtual machine, select "Other Linux (64Bit), assign it at least 2 GB of memory and "Use an existing virtual hard disk file", select the VDI file from above, afterwards edit the "Settings" of the VM and go "System" then Motherboard and Enable EFI, then "Network" "Adapter 1" Bridged and your adapter.
- For Hyper-V create a new virtual machine, select "Generation 2", assign it at least 2 GB of memory and select "Connection -> "Your Virtual Switch that is bridged", then "Use an existing virtual hard disk" and select the VHDX file from above, after creation go to "Settings" -> "Security" and deselect "Enable Secure Boot".
- - For KVM create a new virtual machine in `virt-manager`, select "Import existing disk image", provide the path to the QCOW2 image above, choose "Generic Default" for the operating system, assign at least 2 GB memory and 1 vCPU, check the box for "Customize configuration before install" and select your bridge under "Network Selection", then under customization select "Overview" -> "Firmware" -> "UEFI x86_64: ...".
+ - For KVM create a new virtual machine in `virt-manager`, select "Import existing disk image", provide the path to the QCOW2 image above, choose "Generic Default" for the operating system, assign at least 2 GB memory and 1 vCPU, check the box for "Customize configuration before install" and select your bridge under "Network Selection", then under customization select "Overview" -> "Firmware" -> "UEFI x86_64: ...". If you want mDNS and another multicast to work, you'll need to manually edit the XML to add trustGuestRxFilters='yes' to the interfaces tag. See virsh or virt-manager documentation for how to do that.
- For Vmware Workstation create a new virtual machine, select "Custom", make it compatible with the default of Workstation and ESX, Choose "I will install the operating system later", select "Linux" -> "Other Linux 5.x or later kernel 64-bit", give it at least 2 GB RAM and 1vCPU, select "Use Bridged Networking" then "Use an existing virtual disk" and select the VMDK file above, after creation of VM go to "Settings" and "Options" then "Advanced" and select "Firmware type" to "UEFI".
- For VMware ESXi/vSphere installation use the "E1001" or "E1001E" virtual network adapater. There are confirmed mDNS/Multicast discovery issues when using VMware's "VMXnet3" virtual network adapter.
@@ -105,21 +105,21 @@ If you would like to test next release before anyone else, you can install the b
[balenaEtcher]: https://www.balena.io/etcher
[hassos-network]: https://github.com/home-assistant/operating-system/blob/dev/Documentation/network.md
-[pi3-32]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_rpi3-5.9.img.xz
-[pi3-64]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_rpi3-64-5.9.img.xz
-[pi4-32]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_rpi4-5.9.img.xz
-[pi4-64]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_rpi4-64-5.9.img.xz
-[tinker]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_tinker-5.9.img.xz
-[odroid-c2]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_odroid-c2-5.9.img.xz
-[odroid-c4]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_odroid-c4-5.9.img.xz
-[odroid-n2]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_odroid-n2-5.9.img.xz
-[odroid-xu4]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_odroid-xu4-5.9.img.xz
-[intel-nuc]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_intel-nuc-5.9.img.xz
-[vmdk]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_ova-5.9.vmdk.xz
-[vhdx]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_ova-5.9.vhdx.xz
-[vdi]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_ova-5.9.vdi.xz
-[qcow2]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_ova-5.9.qcow2.xz
-[Virtual Appliance]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_ova-5.9.ova
+[pi3-32]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_rpi3-5.10.img.xz
+[pi3-64]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_rpi3-64-5.10.img.xz
+[pi4-32]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_rpi4-5.10.img.xz
+[pi4-64]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_rpi4-64-5.10.img.xz
+[tinker]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_tinker-5.10.img.xz
+[odroid-c2]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_odroid-c2-5.10.img.xz
+[odroid-c4]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_odroid-c4-5.10.img.xz
+[odroid-n2]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_odroid-n2-5.10.img.xz
+[odroid-xu4]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_odroid-xu4-5.10.img.xz
+[intel-nuc]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_intel-nuc-5.10.img.xz
+[vmdk]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_ova-5.10.vmdk.xz
+[vhdx]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_ova-5.10.vhdx.xz
+[vdi]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_ova-5.10.vdi.xz
+[qcow2]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_ova-5.10.qcow2.xz
+[Virtual Appliance]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_ova-5.10.ova
[local]: http://homeassistant.local:8123
[samba]: /addons/samba/
[ssh]: /addons/ssh/
diff --git a/source/images/blog/2021-01-security-bulletin/social.png b/source/images/blog/2021-01-security-bulletin/social.png
new file mode 100644
index 00000000000..199a11ee9f2
Binary files /dev/null and b/source/images/blog/2021-01-security-bulletin/social.png differ
diff --git a/source/images/blog/2021-01-security-disclosure/social.png b/source/images/blog/2021-01-security-disclosure/social.png
new file mode 100644
index 00000000000..739f783c4d7
Binary files /dev/null and b/source/images/blog/2021-01-security-disclosure/social.png differ
diff --git a/source/images/blog/2021-01-security-disclosure2/social.png b/source/images/blog/2021-01-security-disclosure2/social.png
new file mode 100644
index 00000000000..8615646397a
Binary files /dev/null and b/source/images/blog/2021-01-security-disclosure2/social.png differ
diff --git a/source/images/integrations/nest/device_triggers.png b/source/images/integrations/nest/device_triggers.png
new file mode 100644
index 00000000000..8cb5868c4ef
Binary files /dev/null and b/source/images/integrations/nest/device_triggers.png differ
diff --git a/source/images/lovelace/lovelace_entity_row_buttons.jpg b/source/images/lovelace/lovelace_entity_row_buttons.jpg
new file mode 100644
index 00000000000..638c9e70299
Binary files /dev/null and b/source/images/lovelace/lovelace_entity_row_buttons.jpg differ
diff --git a/source/images/lovelace/lovelace_entity_row_special.jpg b/source/images/lovelace/lovelace_entity_row_special.jpg
new file mode 100644
index 00000000000..fc9c3e643a5
Binary files /dev/null and b/source/images/lovelace/lovelace_entity_row_special.jpg differ
diff --git a/source/lovelace/actions.markdown b/source/lovelace/actions.markdown
index c1987a35b9f..bd5e9d3aa43 100644
--- a/source/lovelace/actions.markdown
+++ b/source/lovelace/actions.markdown
@@ -35,7 +35,7 @@ tap_action:
required: true
description: "Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `url`, `none`)"
type: string
- default: "`toggle`"
+ default: "`toggle` (some cards overwrite default to `more-info` if the provided entity cannot be toggled)"
navigation_path:
required: false
description: "Path to navigate to (e.g., `/lovelace/0/`) when `action` defined as `navigate`"
@@ -189,7 +189,7 @@ exemptions:
{% configuration exemptions %}
user:
required: true
- description: User id that can see the view tab. For each user´s id listed, the confirmation dialog will NOT be shown.
+ description: User ID for which the confirmation dialog will **not** be shown.
type: string
{% endconfiguration %}
diff --git a/source/lovelace/badges.markdown b/source/lovelace/badges.markdown
index 638b1735849..3934736eee1 100644
--- a/source/lovelace/badges.markdown
+++ b/source/lovelace/badges.markdown
@@ -5,7 +5,7 @@ description: "Description of the various badges that are available."
Badges are widgets that sit at the top of a Lovelace panel, above all the cards.
-### State Label Badge
+## State Label Badge
The State Label badge allows you to display a state badge. This badge supports [actions](/lovelace/actions/).
@@ -17,22 +17,22 @@ entity: light.living_room
{% configuration state_label %}
type:
required: true
- description: state-label
+ description: "`state-label`"
type: string
entity:
required: true
- description: Home Assistant entity ID.
+ description: Entity ID.
type: string
name:
required: false
description: Overwrites friendly name.
type: string
- default: Name of Entity
+ default: Name of entity
icon:
required: false
description: Overwrites icon or entity picture.
type: string
- default: Entity Domain Icon
+ default: Entity domain icon
image:
required: false
description: The URL of an image.
@@ -49,14 +49,14 @@ show_icon:
default: "true"
{% endconfiguration %}
-### Entity Filter Badge
+## Entity Filter Badge
This badge allows you to define a list of entities that you want to track only when in a certain state. Very useful for showing lights that you forgot to turn off or show a list of people only when they're at home.
{% configuration filter_badge %}
type:
required: true
- description: entity-filter
+ description: "`entity-filter`"
type: string
entities:
required: true
@@ -68,7 +68,7 @@ state_filter:
type: list
{% endconfiguration %}
-#### Options For Entities
+### Options For Entities
If you define entities as objects instead of strings (by adding `entity:` before entity ID), you can add more customization and configurations:
@@ -79,7 +79,7 @@ type:
type: string
entity:
required: true
- description: Home Assistant entity ID.
+ description: Entity ID.
type: string
name:
required: false
@@ -99,7 +99,7 @@ state_filter:
type: list
{% endconfiguration %}
-#### Options For state_filter
+### Options For state_filter
If you define state_filter as objects instead of strings (by adding `value:` before your state value), you can add more customization to your filter:
@@ -118,7 +118,7 @@ attribute:
type: string
{% endconfiguration %}
-#### Examples
+### Examples
Show only active switches or lights in the house
diff --git a/source/lovelace/dashboards-and-views.markdown b/source/lovelace/dashboards-and-views.markdown
index 77f264b2d9f..1f0050b8d14 100644
--- a/source/lovelace/dashboards-and-views.markdown
+++ b/source/lovelace/dashboards-and-views.markdown
@@ -59,6 +59,7 @@ lovelace:
```
You can also add YAML dashboards when your main dashboard is UI configured:
+
```yaml
lovelace:
mode: storage
@@ -329,7 +330,7 @@ If you define `visible` as objects instead of a boolean to specify conditions fo
{% configuration badges %}
user:
required: true
- description: User id that can see the view tab (unique hex value found on the Users configuration page).
+ description: User ID that can see the view tab (unique hex value found on the Users configuration page).
type: string
{% endconfiguration %}
diff --git a/source/lovelace/header-footer.markdown b/source/lovelace/header-footer.markdown
index e0dcd885f3a..330a047a6d6 100644
--- a/source/lovelace/header-footer.markdown
+++ b/source/lovelace/header-footer.markdown
@@ -22,7 +22,7 @@ header:
{% configuration header-footer %}
type:
required: true
- description: picture
+ description: "`picture`"
type: string
image:
required: true
@@ -65,7 +65,7 @@ entities:
keys:
entity:
required: true
- description: The entity to render.
+ description: The entity ID to render.
type: string
icon:
required: false
@@ -77,7 +77,7 @@ entities:
type: string
name:
required: false
- description: Label for the button
+ description: Label for the button.
type: string
{% endconfiguration %}
@@ -100,11 +100,11 @@ footer:
{% configuration header-footer %}
entity:
required: true
- description: Entity id of `sensor` domain
+ description: Entity ID of `sensor` domain.
type: string
detail:
required: false
- description: Detail of the graph `1` or `2`, `1` equals one point/hour, `2` equals six points/hour
+ description: "Detail level of the graph: `1` or `2` (`1` = one point/hour, `2` = six points/hour)"
type: integer
default: 1
hours_to_show:
diff --git a/source/more-info/removed-integration.markdown b/source/more-info/removed-integration.markdown
new file mode 100644
index 00000000000..f05c114384e
--- /dev/null
+++ b/source/more-info/removed-integration.markdown
@@ -0,0 +1,20 @@
+---
+title: Removed integration
+description: The integration you requested has been removed
+sidebar: false
+---
+
+The integration you requested has been removed.
+
+Possible reasons for the removal:
+
+- It's unmaintained.
+- It's no longer working.
+- It does not comply with the rules described in our [ADR's][architecture-repo].
+- It does not follow our [design guidelines][dev-docs] for integrations.
+
+For alternative integrations have a look at the list of our [integrations here][integrations].
+
+[architecture-repo]: https://github.com/home-assistant/architecture
+[dev-docs]: https://developers.home-assistant.io/docs/development_index
+[integrations]: /integrations