-To add the Alarm Panel card to your user interface, click the 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.
+To add the Alarm Panel card to your user interface, click the 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 from the card picker.
-Alternatively, the card can be configured using YAML:
+All options for this card can be configured via the user interface.
-```yaml
-type: alarm-panel
-entity: alarm_control_panel.alarm
-```
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -55,14 +54,14 @@ theme:
type: string
{% endconfiguration %}
-## Examples
+### Examples
Title example:
```yaml
-- type: alarm-panel
- name: House Alarm
- entity: alarm_control_panel.alarm
+type: alarm-panel
+name: House Alarm
+entity: alarm_control_panel.alarm
```
diff --git a/source/_dashboards/area.markdown b/source/_dashboards/area.markdown
index 0518cd83131..a20a530fed7 100644
--- a/source/_dashboards/area.markdown
+++ b/source/_dashboards/area.markdown
@@ -12,13 +12,18 @@ The Area card lets you control and monitor an individual area.
Screenshot of the Area card.
+To add the Area card to your user interface, click the 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 from the card picker.
-To add the Area card to your user interface, click the 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 **Area** from the card picker. All options for this card can be configured via the user interface.
+All options for this card can be configured via the user interface.
Buttons will appear on the card for the entities in the area including fan, light and switch. A motion sensor icon will appear in the top left if a motion sensor is in the area and motion is detected by the motion sensor.
If a camera is added to the area you can show the camera feed instead of the area picture.
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
+
{% configuration %}
type:
required: true
@@ -43,23 +48,21 @@ theme:
type: string
{% endconfiguration %}
-## Example
-
-Alternatively, the card can be configured using YAML:
+### Example
Basic example:
```yaml
-- type: area
- area: bedroom
+type: area
+area: bedroom
```
Complex example
```yaml
-- type: area
- area: bedroom
- navigation_path: my_bedroom
- show_camera: true
- theme: green
+type: area
+area: bedroom
+navigation_path: my_bedroom
+show_camera: true
+theme: green
```
diff --git a/source/_dashboards/button.markdown b/source/_dashboards/button.markdown
index 3cb5c6eb442..45f1c66f3bd 100644
--- a/source/_dashboards/button.markdown
+++ b/source/_dashboards/button.markdown
@@ -12,7 +12,9 @@ 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 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.
+To add the Button card to your user interface, click the 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 from the card picker.
+
+All options for this card can be configured via the user interface.
## Card Settings
@@ -37,9 +39,9 @@ Hold Action:
description: The action taken on card tap and hold. For more information, see the [action documentation](/dashboards/actions/#hold-action).
{% endconfiguration_basic %}
-### YAML
+## YAML Configuration
-This is for if you use YAML mode or prefer to use YAML in the Code Editor in the UI.
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -108,24 +110,15 @@ action_name:
default: Run
{% endconfiguration %}
-Example:
+### Examples
+
+Basic example:
```yaml
type: button
entity: light.living_room
```
-## Options For Exemptions
-
-{% configuration badges %}
-user:
- required: true
- description: The id of the user that can see the view tab.
- type: string
-{% endconfiguration %}
-
-## Examples
-
Button Card with a button name and a script that runs when card is tapped:
```yaml
diff --git a/source/_dashboards/calendar.markdown b/source/_dashboards/calendar.markdown
index 32b5d0ce772..e4ca202568d 100644
--- a/source/_dashboards/calendar.markdown
+++ b/source/_dashboards/calendar.markdown
@@ -13,7 +13,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 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.
+To add the Calendar card to your user interface, click the 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 from the card picker.
+
+All options for this card can be configured via the user interface.
## Card Settings
@@ -28,9 +30,9 @@ Theme:
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
+## YAML Configuration
-This is for if you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -55,7 +57,7 @@ theme:
type: string
{% endconfiguration %}
-Example:
+### Examples
```yaml
type: calendar
diff --git a/source/_dashboards/conditional.markdown b/source/_dashboards/conditional.markdown
index 26fc953c1dd..a678400f644 100644
--- a/source/_dashboards/conditional.markdown
+++ b/source/_dashboards/conditional.markdown
@@ -7,7 +7,15 @@ 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 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.
+Note: Conditions with more than one entity are treated as an 'and' condition. This means that for the card to show, *all* entities must meet the state requirements set.
+
+To add the Conditional card to your user interface, click the 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 from the card picker.
+
+All options for this card can be configured via the user interface.
+
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -39,9 +47,7 @@ card:
*one is required (`state` or `state_not`)
-Note: Conditions with more than one entity are treated as an 'and' condition. This means that for the card to show, *all* entities must meet the state requirements set.
-
-## Examples
+### Examples
```yaml
type: conditional
diff --git a/source/_dashboards/entities.markdown b/source/_dashboards/entities.markdown
index 906025b5974..7efa6538ffd 100644
--- a/source/_dashboards/entities.markdown
+++ b/source/_dashboards/entities.markdown
@@ -7,7 +7,11 @@ description: "The Entities card is the most common type of card. It groups items
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 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.
+To add the Entities card to your user interface, click the 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 from the card picker.
+
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -373,9 +377,9 @@ download:
default: false
{% endconfiguration %}
-## Examples
+### Examples
-### Entity rows
+#### Entity rows
```yaml
type: entities
@@ -393,7 +397,7 @@ entities:
- group.all_locks
```
-### Buttons row
+#### 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 explicitly specify a label / name.
@@ -416,7 +420,7 @@ entities:
name: Dining Ceiling
```
-### Other special rows
+#### Other special rows
diff --git a/source/_dashboards/entity-filter.markdown b/source/_dashboards/entity-filter.markdown
index 32130457ec5..91e66b07afd 100644
--- a/source/_dashboards/entity-filter.markdown
+++ b/source/_dashboards/entity-filter.markdown
@@ -7,13 +7,19 @@ description: "The Entity Filter card allows you to define a list of entities tha
The Entity Filter card 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.
-This type of card can also be used together with rest of cards that allow multiple entities, allowing you to use [glance](/dashboards/glance/) or [picture-glance](/dashboards/picture-glance/). By default it uses [entities](/dashboards/entities/) card model.
-
Screenshot of the Entity Filter card.
+This type of card can also be used together with other cards that allow multiple entities, allowing you to use [glance](/dashboards/glance/) or [picture-glance](/dashboards/picture-glance/). By default, it uses the [entities](/dashboards/entities/) card model.
+
+To add the Entity Filter card to your user interface, click the 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 from the card picker.
+
+## YAML Configuration
+
+This card can only be configured in YAML.
+
{% configuration %}
type:
required: true
@@ -39,7 +45,7 @@ show_empty:
default: true
{% 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:
@@ -74,7 +80,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:
diff --git a/source/_dashboards/entity.markdown b/source/_dashboards/entity.markdown
index 125724a6a5b..5125642d791 100644
--- a/source/_dashboards/entity.markdown
+++ b/source/_dashboards/entity.markdown
@@ -12,7 +12,13 @@ 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 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.
+To add the Entity card to your user interface, click the 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 from the card picker.
+
+All options for this card can be configured via the user interface.
+
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -56,9 +62,7 @@ footer:
type: map
{% endconfiguration %}
-## Example
-
-Alternatively, the card can be configured using YAML:
+### Example
```yaml
- type: entity
diff --git a/source/_dashboards/gauge.markdown b/source/_dashboards/gauge.markdown
index 1c825c903a3..36078abad79 100644
--- a/source/_dashboards/gauge.markdown
+++ b/source/_dashboards/gauge.markdown
@@ -17,14 +17,13 @@ Screenshot of the Gauge card.
Screenshot of the Gauge card in needle mode.
-To add the Gauge card to your user interface, click the 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.
+To add the Gauge card to your user interface, click the 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 from the card picker.
-Alternatively, the card can be configured using YAML:
+All options for this card can be configured via the user interface.
-```yaml
-type: gauge
-entity: sensor.cpu_usage
-```
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -100,7 +99,7 @@ segments:
type: string
{% endconfiguration %}
-## Examples
+### Examples
Title and unit of measurement:
diff --git a/source/_dashboards/glance.markdown b/source/_dashboards/glance.markdown
index bb0e4859f07..27f045b0060 100644
--- a/source/_dashboards/glance.markdown
+++ b/source/_dashboards/glance.markdown
@@ -12,7 +12,13 @@ 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 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.
+To add the Glance card to your user interface, click the 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 from the card picker.
+
+All options for this card can be configured via the user interface.
+
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -57,7 +63,7 @@ state_color:
default: true
{% endconfiguration %}
-## Options For Entities
+### Options For Entities
If you define entities as objects instead of strings, you can add more customization and configuration:
@@ -102,7 +108,7 @@ double_tap_action:
type: map
{% endconfiguration %}
-## Options For Exemptions
+### Options For Exemptions
{% configuration badges %}
user:
@@ -111,7 +117,7 @@ user:
type: string
{% endconfiguration %}
-## Examples
+### Examples
Basic example:
diff --git a/source/_dashboards/grid.markdown b/source/_dashboards/grid.markdown
index 3e397a09483..9d4fd1c5286 100644
--- a/source/_dashboards/grid.markdown
+++ b/source/_dashboards/grid.markdown
@@ -12,7 +12,13 @@ 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 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.
+To add the Grid card to your user interface, click the 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 from the card picker.
+
+All options for this card can be configured via the user interface.
+
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -41,8 +47,6 @@ cards:
## Examples
-Alternatively, the card can be configured using YAML:
-
Basic example:
```yaml
diff --git a/source/_dashboards/history-graph.markdown b/source/_dashboards/history-graph.markdown
index d43210e4e6c..2a53045b0e3 100644
--- a/source/_dashboards/history-graph.markdown
+++ b/source/_dashboards/history-graph.markdown
@@ -17,7 +17,13 @@ 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 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.
+To add the History Graph card to your user interface, click the 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 from the card picker.
+
+All options for this card can be configured via the user interface.
+
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -49,7 +55,7 @@ show_names:
default: true
{% endconfiguration %}
-## Options For Entities
+### Options For Entities
If you define entities as objects instead of strings, you can add more customization and configuration:
@@ -64,9 +70,7 @@ name:
type: string
{% endconfiguration %}
-## Examples
-
-Alternatively, the card can be configured using YAML:
+### Examples
```yaml
type: history-graph
diff --git a/source/_dashboards/horizontal-stack.markdown b/source/_dashboards/horizontal-stack.markdown
index 6ee2246815c..348e5a845cf 100644
--- a/source/_dashboards/horizontal-stack.markdown
+++ b/source/_dashboards/horizontal-stack.markdown
@@ -7,7 +7,11 @@ 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 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.
+To add the Horizontal Stack card to your user interface, click the 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 from the card picker.
+
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -24,7 +28,7 @@ cards:
type: list
{% endconfiguration %}
-## Example
+### Example
```yaml
type: horizontal-stack
diff --git a/source/_dashboards/humidifier.markdown b/source/_dashboards/humidifier.markdown
index 38959d25b0a..4b1810d5d69 100644
--- a/source/_dashboards/humidifier.markdown
+++ b/source/_dashboards/humidifier.markdown
@@ -12,7 +12,13 @@ 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 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.
+To add the Humidifier card to your user interface, click the 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 from the card picker.
+
+All options for this card can be configured via the user interface.
+
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -34,12 +40,10 @@ theme:
type: string
{% endconfiguration %}
-## Example
-
-Alternatively, the card can be configured using YAML:
+### Example
```yaml
-- type: humidifier
- entity: humidifier.bedroom
- name: Bedroom Humidifier
+type: humidifier
+entity: humidifier.bedroom
+name: Bedroom Humidifier
```
diff --git a/source/_dashboards/iframe.markdown b/source/_dashboards/iframe.markdown
index 75cf503c4b4..5e3e27d54d4 100644
--- a/source/_dashboards/iframe.markdown
+++ b/source/_dashboards/iframe.markdown
@@ -7,16 +7,22 @@ description: "The Webpage card allows you to embed your favorite webpage right i
The Webpage card allows you to embed your favorite webpage right into Home Assistant. You can also embed files stored in your `/www` folder and reference them using `/local/`.
-
-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 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.
+To add the Webpage card to your user interface, click the 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 from the card picker.
+
+All options for this card can be configured via the user interface.
+
+
+You can't embed sites using HTTP if you are using HTTPS for your Home Assistant.
+
+
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -38,9 +44,7 @@ title:
type: string
{% endconfiguration %}
-## Examples
-
-The card can also be configured using YAML, some examples below:
+### Examples
```yaml
type: iframe
diff --git a/source/_dashboards/light.markdown b/source/_dashboards/light.markdown
index c7be4b2720d..4cd5a824b25 100644
--- a/source/_dashboards/light.markdown
+++ b/source/_dashboards/light.markdown
@@ -12,14 +12,13 @@ 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 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.
+To add the Light card to your user interface, click the 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 from the card picker.
-Alternatively, the card can be configured using YAML:
+All options for this card can be configured via the user interface.
-```yaml
-type: light
-entity: light.bedroom
-```
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -54,7 +53,14 @@ double_tap_action:
type: map
{% endconfiguration %}
-## Examples
+### Examples
+
+Basic example:
+
+```yaml
+type: light
+entity: light.bedroom
+```
Overwriting names example:
diff --git a/source/_dashboards/logbook.markdown b/source/_dashboards/logbook.markdown
index 2581a0e4baa..2cb58f9b065 100644
--- a/source/_dashboards/logbook.markdown
+++ b/source/_dashboards/logbook.markdown
@@ -12,7 +12,7 @@ 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 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.
+To add the Logbook card to your user interface, click the 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 from the card picker.
## Card Settings
@@ -27,9 +27,9 @@ Theme:
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
+## YAML Configuration
-This is for if you use YAML mode or prefer to use YAML in the Code Editor in the UI.
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -55,7 +55,7 @@ theme:
type: string
{% endconfiguration %}
-Example:
+### Examples
```yaml
type: logbook
diff --git a/source/_dashboards/map.markdown b/source/_dashboards/map.markdown
index c4cfb69d554..1608dd20535 100644
--- a/source/_dashboards/map.markdown
+++ b/source/_dashboards/map.markdown
@@ -12,7 +12,13 @@ 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 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.
+To add the Map card to your user interface, click the 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 from the card picker.
+
+All options for this card can be configured via the user interface.
+
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -71,8 +77,6 @@ hours_to_show:
## Examples
-The card can also be configured using YAML, some examples below:
-
```yaml
type: map
aspect_ratio: 16:9
diff --git a/source/_dashboards/markdown.markdown b/source/_dashboards/markdown.markdown
index 3bf4d65c523..62ae632a637 100644
--- a/source/_dashboards/markdown.markdown
+++ b/source/_dashboards/markdown.markdown
@@ -7,14 +7,18 @@ description: "The Markdown card is used to render Markdown"
The Markdown card is used to render [Markdown](https://commonmark.org/help/).
-The renderer uses [Marked.js](https://marked.js.org), which supports [several specifications of Markdown](https://marked.js.org/#specifications), including CommonMark, GitHub Flavored Markdown (GFM) and `markdown.pl`.
-
Screenshot of the Markdown card.
-To add the Markdown card to your user interface, click the 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.
+The renderer uses [Marked.js](https://marked.js.org), which supports [several specifications of Markdown](https://marked.js.org/#specifications), including CommonMark, GitHub Flavored Markdown (GFM) and `markdown.pl`.
+
+To add the Markdown card to your user interface, click the 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 from the card picker.
+
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -46,9 +50,7 @@ theme:
type: string
{% endconfiguration %}
-## Example
-
-The card can also be configured using YAML, some examples below:
+### Example
```yaml
type: markdown
@@ -58,7 +60,7 @@ content: >
Starting with Home Assistant 0.72, we're experimenting with a new way of defining your interface.
```
-## Template variables
+### Template variables
A special template variable - `config` is set up for the `content` of the card. It contains the configuration of the card.
@@ -101,9 +103,9 @@ content: |
{% endraw %}
-## Icons
+### Icons
-You can use [materialdesignicons.com](https://materialdesignicons.com/) icons in the `content` of the card.
+You can use [Material Design Icons](https://pictogrammers.com/library/mdi/) icons in the `content` of the card.
For example:
diff --git a/source/_dashboards/media-control.markdown b/source/_dashboards/media-control.markdown
index dfe6d462eab..0d20627e5f5 100644
--- a/source/_dashboards/media-control.markdown
+++ b/source/_dashboards/media-control.markdown
@@ -12,7 +12,11 @@ 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 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.
+To add the Media Control card to your user interface, click the 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 from the card picker.
+
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -34,9 +38,9 @@ theme:
type: string
{% endconfiguration %}
-## Example
+### Example
-Alternatively, the card can be configured using YAML:
+Basic example:
```yaml
type: media-control
diff --git a/source/_dashboards/picture-elements.markdown b/source/_dashboards/picture-elements.markdown
index d3d9b2e557b..25be07e6f3d 100644
--- a/source/_dashboards/picture-elements.markdown
+++ b/source/_dashboards/picture-elements.markdown
@@ -7,13 +7,19 @@ description: "The Picture Elements card is one of the most versatile types of ca
The Picture Elements card is one of the most versatile types of cards.
-The cards allow you to position icons or text and even services on an image based on coordinates. Imagine floor plan, imagine [picture-glance](/dashboards/picture-glance/) with no restrictions!
-
A functional floorplan powered by picture elements.
+The cards allow you to position icons or text and even services on an image based on coordinates. Imagine floor plan, imagine [picture-glance](/dashboards/picture-glance/) with no restrictions!
+
+To add the Picture Elements card to your user interface, click the 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 from the card picker.
+
+## YAML Configuration
+
+This card can only be configured in YAML.
+
{% configuration %}
type:
required: true
diff --git a/source/_dashboards/picture-entity.markdown b/source/_dashboards/picture-entity.markdown
index 206de366042..2fa63308b7b 100644
--- a/source/_dashboards/picture-entity.markdown
+++ b/source/_dashboards/picture-entity.markdown
@@ -12,6 +12,12 @@ The Picture Entity card displays an entity in the form of an image. Instead of i
Background changes according to the entity state.
+To add the Picture Entity card to your user interface, click the 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 from the card picker.
+
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
+
{% configuration %}
type:
required: true
@@ -78,7 +84,7 @@ double_tap_action:
type: map
{% endconfiguration %}
-## How to use state_filter
+### How to use state_filter
Specify different [CSS filters](https://developer.mozilla.org/en-US/docs/Web/CSS/filter)
@@ -88,7 +94,7 @@ state_filter:
"off": brightness(50%) hue-rotate(45deg)
```
-## Examples
+### Examples
Basic example:
diff --git a/source/_dashboards/picture-glance.markdown b/source/_dashboards/picture-glance.markdown
index 8f78dcab9ce..5f31ea3005a 100644
--- a/source/_dashboards/picture-glance.markdown
+++ b/source/_dashboards/picture-glance.markdown
@@ -12,6 +12,12 @@ The Picture Glance card shows an image and corresponding entity states as an ico
Picture glance card for a living room.
+To add the Picture Glance card to your user interface, click the 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 from the card picker.
+
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
+
{% configuration %}
type:
required: true
@@ -82,7 +88,7 @@ double_tap_action:
type: map
{% endconfiguration %}
-## Options For Entities
+### Options For Entities
If you define entities as objects instead of strings, you can add more customization and configuration:
@@ -126,7 +132,7 @@ double_tap_action:
type: map
{% endconfiguration %}
-## Options For Exemptions
+### Options For Exemptions
{% configuration badges %}
user:
@@ -135,7 +141,7 @@ user:
type: string
{% endconfiguration %}
-## How to use state_filter
+### How to use state_filter
Specify different [CSS filters](https://developer.mozilla.org/en-US/docs/Web/CSS/filter)
@@ -146,7 +152,7 @@ state_filter:
entity: switch.decorative_lights
```
-## Examples
+### Examples
```yaml
type: picture-glance
diff --git a/source/_dashboards/picture.markdown b/source/_dashboards/picture.markdown
index 998119591b7..b7e84d23940 100644
--- a/source/_dashboards/picture.markdown
+++ b/source/_dashboards/picture.markdown
@@ -12,6 +12,12 @@ The Picture card allows you to set an image to use for navigation to various pat
Screenshot of the picture card.
+To add the Picture card to your user interface, click the 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 from the card picker.
+
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
+
{% configuration %}
type:
required: true
@@ -43,16 +49,7 @@ double_tap_action:
type: map
{% endconfiguration %}
-## Options For Exemptions
-
-{% configuration badges %}
-user:
- required: true
- description: User ID that can see the view tab.
- type: string
-{% endconfiguration %}
-
-## Examples
+### Examples
Navigate to another view:
diff --git a/source/_dashboards/plant-status.markdown b/source/_dashboards/plant-status.markdown
index 72b6378ddfd..f55c0820a13 100644
--- a/source/_dashboards/plant-status.markdown
+++ b/source/_dashboards/plant-status.markdown
@@ -12,7 +12,13 @@ The Plant Status card is for all the lovely botanists out there.
Screenshot of the plant status card.
-To add the Plant Status card to your user interface, click the 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 **Plant Status** from the card picker. All options for this card can be configured via the user interface.
+To add the Plant Status card to your user interface, click the 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 from the card picker.
+
+All options for this card can be configured via the user interface.
+
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -34,9 +40,9 @@ theme:
type: string
{% endconfiguration %}
-## Example
+### Example
-Alternatively, the card can be configured using YAML:
+Basic example:
```yaml
type: plant-status
diff --git a/source/_dashboards/sensor.markdown b/source/_dashboards/sensor.markdown
index 1a134fa0b08..6eb923fa775 100644
--- a/source/_dashboards/sensor.markdown
+++ b/source/_dashboards/sensor.markdown
@@ -12,7 +12,13 @@ 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 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.
+To add the Sensor card to your user interface, click the 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 from the card picker.
+
+All options for this card can be configured via the user interface.
+
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -70,9 +76,7 @@ theme:
type: string
{% endconfiguration %}
-## Example
-
-Alternatively, the card can be configured using YAML:
+### Example
```yaml
type: sensor
diff --git a/source/_dashboards/shopping-list.markdown b/source/_dashboards/shopping-list.markdown
index 1c5a8cb788a..e6d5d7cd074 100644
--- a/source/_dashboards/shopping-list.markdown
+++ b/source/_dashboards/shopping-list.markdown
@@ -7,20 +7,20 @@ description: "The Shopping List card allows you to add, edit, check-off, and cle
The Shopping List card allows you to add, edit, check-off, and clear items from your shopping list.
-Setup of the [Shopping List integration](/integrations/shopping_list/) is required.
-
Screenshot of the Shopping List card.
-To add the Shopping List card to your user interface, click the 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.
+Setup of the [Shopping List integration](/integrations/shopping_list/) is required.
-Alternatively, the card can be configured using YAML:
+To add the Shopping List card to your user interface, click the 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 from the card picker.
-```yaml
-type: shopping-list
-```
+All options for this card can be configured via the user interface.
+
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -37,7 +37,7 @@ theme:
type: string
{% endconfiguration %}
-## Examples
+### Examples
Title Example:
diff --git a/source/_dashboards/statistics-graph.markdown b/source/_dashboards/statistics-graph.markdown
index 79239b9d2c5..e3409b6215c 100644
--- a/source/_dashboards/statistics-graph.markdown
+++ b/source/_dashboards/statistics-graph.markdown
@@ -7,10 +7,6 @@ description: "The Statistics Graph card allows you to display a graph with stati
The Statistics Graph card allows you to display a graph of statistics data for each of the entities listed.
-Statistics are gathered every 5 minutes for sensors that support it. It will either keep the `min`, `max` and `mean` of a sensors value for a specific hour, or the `sum` for a metered entity.
-
-If your sensor doesn't work with statistics, check [this](/more-info/statistics/).
-
Screenshot of the Statistics Graph card with none metered entities and `chart_type` `line`.
@@ -21,7 +17,17 @@ Screenshot of the Statistics Graph card with none metered entities and `chart_ty
Screenshot of the Statistics Graph card with a metered entity and `chart_type` `bar`.
-To add the Statistics Graph card to your user interface, click the 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 **Statistics Graph** from the card picker. All options for this card can be configured via the user interface.
+Statistics are gathered every 5 minutes for sensors that support it. It will either keep the `min`, `max`, and `mean` of a sensor's value for a specific hour or the `sum` for a metered entity.
+
+If your sensor doesn't work with statistics, check [this](/more-info/statistics/).
+
+To add the Statistics Graph card to your user interface, click the 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 from the card picker.
+
+All options for this card can be configured via the user interface.
+
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -55,7 +61,7 @@ period:
type: string
{% endconfiguration %}
-## Options For Entities
+### Options For Entities
If you define entities as objects instead of strings, you can add more customization and configuration:
@@ -70,9 +76,7 @@ name:
type: string
{% endconfiguration %}
-## Example
-
-Alternatively, the card can be configured using YAML:
+### Example
```yaml
type: statistics-graph
diff --git a/source/_dashboards/thermostat.markdown b/source/_dashboards/thermostat.markdown
index e9bb53a45ad..1007d5a4c55 100644
--- a/source/_dashboards/thermostat.markdown
+++ b/source/_dashboards/thermostat.markdown
@@ -12,7 +12,13 @@ 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 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.
+To add the Thermostat card to your user interface, click the 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 from the card picker.
+
+All options for this card can be configured via the user interface.
+
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -34,9 +40,7 @@ theme:
type: string
{% endconfiguration %}
-## Example
-
-Alternatively, the card can be configured using YAML:
+### Example
```yaml
type: thermostat
diff --git a/source/_dashboards/vertical-stack.markdown b/source/_dashboards/vertical-stack.markdown
index 333788832f1..4aedb13d089 100644
--- a/source/_dashboards/vertical-stack.markdown
+++ b/source/_dashboards/vertical-stack.markdown
@@ -7,7 +7,11 @@ 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 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.
+To add the Vertical Stack card to your user interface, click the 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 from the card picker.
+
+## YAML Configuration
+
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -24,9 +28,7 @@ cards:
type: list
{% endconfiguration %}
-## Examples
-
-Alternatively, the card can be configured using YAML:
+### Examples
Basic example:
diff --git a/source/_dashboards/weather-forecast.markdown b/source/_dashboards/weather-forecast.markdown
index bc34e13db01..5e5c0c7db37 100644
--- a/source/_dashboards/weather-forecast.markdown
+++ b/source/_dashboards/weather-forecast.markdown
@@ -12,7 +12,7 @@ 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 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.
+To add the Weather card to your user interface, click the 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 from the card picker.
## Card Settings
@@ -37,9 +37,9 @@ Theme:
-### YAML
+## YAML Configuration
-This is for if you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
+The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@@ -83,7 +83,7 @@ double_tap_action:
type: map
{% endconfiguration %}
-Example
+### Example
```yaml
type: weather-forecast
@@ -113,8 +113,6 @@ Example theme configuration:
--weather-icon-rain-color: purple
```
-
-
#### 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/_docs/automation/templating.markdown b/source/_docs/automation/templating.markdown
index a561d298f92..a61ef722765 100644
--- a/source/_docs/automation/templating.markdown
+++ b/source/_docs/automation/templating.markdown
@@ -41,12 +41,11 @@ The following describes trigger data associated with all platforms.
### Device
+Inherites template variables from [event](#event) or [state](#state) template based on the type of trigger selected for the device.
+
| Template variable | Data |
| ---- | ---- |
| `trigger.platform` | Hardcoded: `device`.
-| `trigger.event` | Event object that matched.
-| `trigger.event.event_type` | Event type.
-| `trigger.event.data` | Optional event data.
### Event
diff --git a/source/_docs/configuration/customizing-devices.markdown b/source/_docs/configuration/customizing-devices.markdown
index 88cad062b86..94f9456372e 100644
--- a/source/_docs/configuration/customizing-devices.markdown
+++ b/source/_docs/configuration/customizing-devices.markdown
@@ -32,7 +32,7 @@ entity_picture:
required: false
type: string
icon:
- description: "Any icon from [MaterialDesignIcons.com](https://materialdesignicons.com). Prefix name with `mdi:`, ie `mdi:home`. Note: Newer icons may not yet be available in the current Home Assistant release. You can check when an icon was added to MaterialDesignIcons.com at [MDI History](https://materialdesignicons.com/history)."
+ description: "Any icon from [Material Design Icons](https://pictogrammers.com/library/mdi/). Prefix name with `mdi:`, ie `mdi:home`. Note: Newer icons may not yet be available in the current Home Assistant release."
required: false
type: string
assumed_state:
diff --git a/source/_docs/configuration/devices.markdown b/source/_docs/configuration/devices.markdown
deleted file mode 100644
index 4a51048b9ee..00000000000
--- a/source/_docs/configuration/devices.markdown
+++ /dev/null
@@ -1,61 +0,0 @@
----
-title: "Adding devices to Home Assistant"
-description: "Steps to help you get your devices in Home Assistant."
----
-
-Home Assistant will be able to automatically discover many devices and services
-available on your network.
-
-See the [integrations overview page](/integrations/) to find installation
-instructions for your devices and services. Most integration can be
-fully configured via the user interface these days; however, some older or
-more complex integrations may need to be configured manually using YAML.
-
-For some of these integrations, every entity needs its own entry in the
-`configuration.yaml` file. There are two styles for multiple entity entries:
-
-## Style 1: Collect every entity under the "parent"
-
-```yaml
-sensor:
- - platform: mqtt
- state_topic: "home/bedroom/temperature"
- name: "MQTT Sensor 1"
- - platform: mqtt
- state_topic: "home/kitchen/temperature"
- name: "MQTT Sensor 2"
- - platform: rest
- resource: "http://IP_ADDRESS/ENDPOINT"
- name: "Weather"
-
-switch:
- - platform: vera
-```
-
-## Style 2: List each entity separately
-
-You need to append numbers or strings to differentiate the entries, as in the
-example below. The appended number or string must be unique.
-
-```yaml
-sensor bedroom:
- platform: mqtt
- state_topic: "home/bedroom/temperature"
- name: "MQTT Sensor 1"
-
-sensor kitchen:
- platform: mqtt
- state_topic: "home/kitchen/temperature"
- name: "MQTT Sensor 2"
-
-sensor weather:
- platform: rest
- resource: "http://IP_ADDRESS/ENDPOINT"
- name: "Weather"
-
-switch 1:
- platform: vera
-
-switch 2:
- platform: vera
-```
diff --git a/source/_docs/configuration/packages.markdown b/source/_docs/configuration/packages.markdown
index 9680a6b30e1..08f37938bbc 100644
--- a/source/_docs/configuration/packages.markdown
+++ b/source/_docs/configuration/packages.markdown
@@ -3,7 +3,7 @@ title: "Packages"
description: "Describes all there is to know about configuration packages in Home Assistant."
---
-Packages in Home Assistant provide a way to bundle different component's configuration together. We already learned about the two configuration styles (specifying platforms entries together or individually) on the [adding devices](/docs/configuration/devices/) page. Both of these configuration methods require you to create the integration key in the main `configuration.yaml` file. With packages we have a way to include different components, or different configuration parts using any of the `!include` directives introduced in [splitting the configuration](/docs/configuration/splitting_configuration).
+Packages in Home Assistant provide a way to bundle different component's configuration together. With packages we have a way to include different components, or different configuration parts using any of the `!include` directives introduced in [splitting the configuration](/docs/configuration/splitting_configuration).
Packages are configured under the core `homeassistant/packages` in the configuration and take the format of a package name (no spaces, all lower case) followed by a dictionary with the package configuration. For example, package `pack_1` would be created as:
diff --git a/source/_docs/configuration/troubleshooting.markdown b/source/_docs/configuration/troubleshooting.markdown
index 2f4d628efc7..47b423abb3e 100644
--- a/source/_docs/configuration/troubleshooting.markdown
+++ b/source/_docs/configuration/troubleshooting.markdown
@@ -29,7 +29,7 @@ One of the most common problems with Home Assistant is an invalid `configuration
- You can verify your configuration's YAML structure using [this online YAML parser](https://yaml-online-parser.appspot.com/) or [YAML Validator](https://codebeautify.org/yaml-validator/).
- To learn more about the quirks of YAML, read [YAML IDIOSYNCRASIES](https://docs.saltproject.io/en/latest/topics/troubleshooting/yaml_idiosyncrasies.html) by SaltStack (the examples there are specific to SaltStack, but do explain YAML issues well).
-`configuration.yaml` does not allow multiple sections to have the same name. If you want to load multiple platforms for one component, you can append a [number or string](/docs/configuration/devices/#style-2-list-each-entity-separately) to the name or nest them using [this style](/docs/configuration/devices/#style-1-collect-every-entity-under-the-parent):
+`configuration.yaml` does not allow multiple sections to have the same name. If you want to load multiple platforms for one component, you can append a number or string to the name or nest them:
```yaml
sensor:
diff --git a/source/_docs/energy/electricity-grid.markdown b/source/_docs/energy/electricity-grid.markdown
index c1c0415e373..a9b56ac7f95 100644
--- a/source/_docs/energy/electricity-grid.markdown
+++ b/source/_docs/energy/electricity-grid.markdown
@@ -45,6 +45,10 @@ We have developed [Home Assistant Glow](https://github.com/klaasnicolaas/home-as

+#### Using (Smart Message Language) interface
+
+In countries like Germany, SML (Smart Message Language) is used typically. ESPHome's [SML (Smart Message Language)](https://esphome.io/components/sml.html) is one way to integrate it. If you prefer to integrate it via MQTT, [sml2mqtt](https://github.com/spacemanspiff2007/sml2mqtt) is another open source option.
+
#### Read the meter using an AI-on-the-edge-device
[AI-on-the-edge-device](https://github.com/jomjol/AI-on-the-edge-device) is a project running on an ESP32-CAM and can be fully integrated into Home Assistant using the Home Assistant discovery functionality of MQTT. It digitalizes your gas/water/electricity meter display and provides its data in various ways.
@@ -65,6 +69,10 @@ _Attention! Installing CT clamp sensor devices requires opening your electrical
Some energy providers will provide you real-time information about your usage and have this data integrated into Home Assistant.
+### Manual Integration
+
+If you manually integrate your sensors, for example, using the [MQTT](/integrations/mqtt) or [Template](/integrations/template) integrations: Make sure you set and provide the `device_class`, `state_class`, and `unit_of_measurement` for those sensors.
+
### Troubleshooting
If you are unable to select your energy sensor in the grid consumption drop-down, make sure that its value is being recorded in the Recorder settings.
diff --git a/source/_docs/energy/water.markdown b/source/_docs/energy/water.markdown
index 02077b8f57a..9fcd67e92af 100644
--- a/source/_docs/energy/water.markdown
+++ b/source/_docs/energy/water.markdown
@@ -26,9 +26,9 @@ Alternatively, the following shops sell ESPHome-based devices, that use a proxim
Maybe you like to build one yourself?
- Pieter Brinkman has quite a [nice blog article on how to create your own water sensor](https://www.pieterbrinkman.com/2022/02/02/build-a-cheap-water-usage-sensor-using-esphome-home-assistant-and-a-proximity-sensor/) using ESPHome, or [build a water meter](https://www.ztatz.nl/p1-monitor-watermeter/) that works with the [P1 Monitor](/integrations/p1_monitor) integration.
- - [AI-on-the-edge-device](https://github.com/jomjol/AI-on-the-edge-device) is a project running on an ESP32-CAM and can be fully integrated into Home Assistant using the Home Assistant Discovery Functionality of MQTT. It digitalizes your gas/water/electricity meter display and provides its data in various ways.
-
-
+ - [AI-on-the-edge-device](https://github.com/jomjol/AI-on-the-edge-device) is a project running on an ESP32-CAM and can be fully integrated into Home Assistant using the Home Assistant Discovery Functionality of MQTT. It digitalizes your gas/water/electricity meter display and provides its data in various ways.
+ - [watermeter](https://github.com/nohn/watermeter) running classic OCR and statistical pattern recognition on any system supporting Docker
+If you manually integrate your sensors, for example, using the [MQTT](/integrations/mqtt) or [RESTful](/integrations/rest) integrations: Make sure you set and provide the `device_class`, `state_class`, and `unit_of_measurement` for those sensors.
For any of the above-listed options, make sure it actually works with the type of water meter you have before getting one.
diff --git a/source/_docs/frontend.markdown b/source/_docs/frontend.markdown
index e9c6173a870..12852b2891c 100644
--- a/source/_docs/frontend.markdown
+++ b/source/_docs/frontend.markdown
@@ -3,12 +3,23 @@ title: "Frontend of Home Assistant"
description: "Frontend of Home Assistant."
---
-The frontend of Home Assistant is built with [Polymer](https://www.polymer-project.org/).
+The Home Assistant frontend allows users to browse and control the state of their house, manage their automations and configure integrations.
+The frontend is built with [Polymer](https://www.polymer-project.org/).
-
+
-The [User Interface section](/examples/#user-interface) can give you some starting points to expand the frontend.
+
-If you want to work on the frontend, please refer to the [Frontend Development documentation](/developers/frontend/).
+ If you're looking to contribute to the frontend, please refer to the [Frontend Development documentation](/developers/frontend/).
+
+
+
+## Icons
+
+Home Assistant utilizes the community-driven [Material Design Icons](https://pictogrammers.com/library/mdi/) project for icons in the frontend. The [Icons section](/docs/frontend/icons/) has more information on how to use icons and suggest new ones.
+
+## Examples
+
+The [User Interface section](/examples/#user-interface) can give you some starting points to expand the frontend.
diff --git a/source/_docs/frontend/browsers.markdown b/source/_docs/frontend/browsers.markdown
index 6af9a2b70c1..9c193cef37b 100644
--- a/source/_docs/frontend/browsers.markdown
+++ b/source/_docs/frontend/browsers.markdown
@@ -5,7 +5,9 @@ description: "Browser Compatibility List"
Home Assistant requires a web browser to show the frontend and supports all major modern browsers. We don't test the web interface against all available browsers but this page tracks different browsers on various operating systems and should help you to pick a browser which works. The "Release" column contains the release number which was tested. This doesn't mean that older or newer releases will not work.
-If a browser is listed as working but you are still having problems, it is possible that some add-on or extension may be the problem. Some add-ons or extension are known to cause issue with the frontend, but it's not possible to test them all. If you are having issues with the frontend displaying correctly, you should disable all your add-ons or extensions and enable them one at a time.
+If a browser is listed as working but you are still having problems, it is possible that some add-on or extension may be the problem. Some add-ons or extension are known to cause issue with the frontend, but it's not possible to test them all.
+
+If you are having issues with the frontend displaying correctly, you should disable all your add-ons or extensions and enable them one at a time. At last but not least, consider restarting your browser.
We would appreciate if you help to keep this page up-to-date and add feedback.
diff --git a/source/_docs/frontend/icons.markdown b/source/_docs/frontend/icons.markdown
new file mode 100644
index 00000000000..0d394792e71
--- /dev/null
+++ b/source/_docs/frontend/icons.markdown
@@ -0,0 +1,84 @@
+---
+title: "Icons"
+description: "Material Design Icons in the Home Assistant frontend"
+---
+
+
+
+
+
+Home Assistant utilizes the community-driven [Material Design Icons](https://pictogrammers.com/library/mdi/) (MDI) project for icons in the frontend. The icon library is a superset of the base icon library provided by Google and contains thousands of community-made icons for very specific applications, industries, and use-cases.
+
+## Default Icons
+
+Every entity in Home Assistant has a default icon assigned to it. There are way too many to list out here, but you'll see them in your dashboard. You can [customize any of your entities](/docs/configuration/customizing-devices/#icon) to change the icons displayed to you.
+
+## Finding Icons
+
+### Icon Picker
+
+The most common way you can find icons is by using the icon picker built right into Home Assistant. Click into the "Icon" field when customizing an entity and start typing. The list will filter to icons that match your search criteria. You can also scroll through all available icons when the field is empty.
+
+
+
+
+
+
+
+ The icon picker will filter by icon name and by aliases applied to the icon by the MDI project. For example, typing "user" will show you most "account"-named icons.
+
+
+
+### Material Design Icons Picker Browser Extension
+
+The easiest way to browse and find icons outside of Home Assistant is with the official [Material Design Icons Picker](https://github.com/Pictogrammers/MaterialDesignIcons-Picker) browser extension. The extension is available for Chrome, Firefox, and Edge and is maintained by the MDI team.
+
+
+
+
+
+
+
+ Not all icons that appear in the MDI Picker Browser Extension may be available in Home Assistant (yet!). While the browser extension is updated as MDI releases new packages, Home Assistant may lag behind until its next release.
+
+
+
+### Material Design Icons on the Pictogrammers Website
+
+The last way to browse through available icons is by viewing the library on the Pictogrammers website, [https://pictogrammers.com/library/mdi/](https://pictogrammers.com/library/mdi/). Select an icon you'd like to use, then click "Home Assistant" to see an example of its usage.
+
+
+
+ The Pictogrammers website will always show the latest release of the Material Design Icons library. However, you may find icons that may not yet be available in Home Assistant (yet!). Watch the Home Assistant release notes for announcements on upgrades of the Material Design Icons library.
+
+
+
+## Suggesting or Contributing New Icons
+
+Being open-source like Home Assistant, the Material Design Icons library is always accepting suggestions and contributions to expand the library.
+
+
+
+ Before suggesting or creating a new icon, it is very important that you [search the current library](https://pictogrammers.com/library/mdi/) and [search all issues](https://github.com/Templarian/MaterialDesign/issues?q=is%3Aissue), open and closed, on their GitHub. Try searching with different terms that might mean the same thing. (e.g. "user", "person", "account")
+
+
+
+### Suggesting a New Icon
+
+If you have an idea for an icon that isn't currently in the library, but are not interested in creating it yourself, [open a new icon suggestion](https://github.com/Templarian/MaterialDesign/issues/new?assignees=&labels=Icon+Request&template=1_icon_request.yml).
+
+### Contributing a New Icon
+
+If you want to contribute a new icon to the library, familiarize yourself with the [System icons guidelines](https://material.io/design/iconography/system-icons.html#design-principles) in the Material Design system. Then create your icon and [submit it to the Pictogrammers team for review](https://github.com/Templarian/MaterialDesign/issues/new?assignees=&labels=Icon+Request%2CContribution&template=2_contribution.yml).
+
+#### Tips for Creating New Icons
+
+- Really pay attention to [Material Design guidelines](https://material.io/design/iconography/system-icons.html#design-principles).
+- Keep in mind that icons are meant to be contextual, not literal.
+- When it comes to little details, less is more.
+- If you're unsure, open an issue on their GitHub. They're more than happy to help you!
+- Not all icons make it into the library and that is okay!
+
+### Suggesting an Icon Alias
+
+Sometimes an icon exists, but you aren't able to find it with the terms you were searching for. If this has ever happened to you, please [open an issue with the Pictogrammers team to suggest new aliases](https://github.com/Templarian/MaterialDesign/issues/new?assignees=&labels=Alias&template=4_alias.yml) that can be added to existing icons.
diff --git a/source/_includes/asides/docs_navigation.html b/source/_includes/asides/docs_navigation.html
index d37d9db9f0f..7fa5b627746 100644
--- a/source/_includes/asides/docs_navigation.html
+++ b/source/_includes/asides/docs_navigation.html
@@ -25,9 +25,6 @@
{% active_link /docs/configuration/basic/ Basic information %}
-
- {% active_link /docs/configuration/devices/ Setting up devices %}
-
diff --git a/source/_integrations/airvisual.markdown b/source/_integrations/airvisual.markdown
index 84f2a88aab0..dfa2b922a06 100644
--- a/source/_integrations/airvisual.markdown
+++ b/source/_integrations/airvisual.markdown
@@ -1,5 +1,5 @@
---
-title: AirVisual
+title: AirVisual Cloud
description: Instructions on how to use AirVisual data within Home Assistant
ha_category:
- Health
@@ -12,7 +12,7 @@ ha_config_flow: true
ha_platforms:
- diagnostics
- sensor
-ha_integration_type: device
+ha_integration_type: service
---
The `airvisual` sensor platform queries the [AirVisual](https://www.iqair.com) cloud API for air quality data. Data can be collected via latitude/longitude or city/state/country.
diff --git a/source/_integrations/airvisual_pro.markdown b/source/_integrations/airvisual_pro.markdown
index 60731979346..25a66d75ad3 100644
--- a/source/_integrations/airvisual_pro.markdown
+++ b/source/_integrations/airvisual_pro.markdown
@@ -12,7 +12,7 @@ ha_config_flow: true
ha_platforms:
- diagnostics
- sensor
-ha_integration_type: integration
+ha_integration_type: device
---
The AirVisual Pro integration allows users to retrieve data from an [AirVisual Node/Pro unit](https://www.iqair.com/air-quality-monitors/airvisual-pro). Communication with the device occurs over the local network.
diff --git a/source/_integrations/alexa.smart_home.markdown b/source/_integrations/alexa.smart_home.markdown
index ba259355b24..633f81e567f 100644
--- a/source/_integrations/alexa.smart_home.markdown
+++ b/source/_integrations/alexa.smart_home.markdown
@@ -119,16 +119,6 @@ Steps to Integrate an Amazon Alexa Smart Home Skill with Home Assistant:
We will write a small piece of code hosted as an AWS Lambda function that will redirect requests from the Alexa Smart Home skill to your Home Assistant instance, then the Alexa integration in Home Assistant will process the request and send back the response. The Lambda function will then deliver the response back to the Alexa Smart Home skill.
-
-
-There already are some great alternative tutorials and solutions to ours in our community to achieve the same goal of creating your Alexa Smart Home Skill and its connection to Home Assistant, for example: [haaska](https://github.com/mike-grant/haaska/wiki).
-
-Amazon also has provided a [step-by-step guide](https://developer.amazon.com/docs/smarthome/steps-to-build-a-smart-home-skill.html) to create a Smart Home Skill, however you have to adapt its sample code to match the Home Assistant API.
-
-You can follow this document or others, but you cannot mix and match different solutions since they may have different designs.
-
-
-
OK, let's go. You first need to sign in to your [AWS console](https://console.aws.amazon.com/), if you don't have an AWS account yet, you can create a new user [here](https://aws.amazon.com/free/) with 12-month free tier benefit. You don't need to worry about the cost if your account has already passed the first 12 months, as AWS provides up to 1 million Lambda requests, 1GB of outbound data and all inbound data for free, every month, for all users. See [Lambda pricing](https://aws.amazon.com/lambda/pricing/) for more details.
### Create an IAM Role for Lambda
diff --git a/source/_integrations/androidtv.markdown b/source/_integrations/androidtv.markdown
index d437a8f1fc7..c001cf636ac 100644
--- a/source/_integrations/androidtv.markdown
+++ b/source/_integrations/androidtv.markdown
@@ -13,7 +13,7 @@ ha_domain: androidtv
ha_platforms:
- diagnostics
- media_player
-ha_integration_type: integration
+ha_integration_type: device
---
The `androidtv` platform allows you to control an Android TV device or [Amazon Fire TV](https://www.amazon.com/b/?node=8521791011) device.
diff --git a/source/_integrations/asuswrt.markdown b/source/_integrations/asuswrt.markdown
index e00f836d420..5bea3d5c2f8 100644
--- a/source/_integrations/asuswrt.markdown
+++ b/source/_integrations/asuswrt.markdown
@@ -16,7 +16,7 @@ ha_platforms:
- device_tracker
- diagnostics
- sensor
-ha_integration_type: integration
+ha_integration_type: hub
---
The ASUSWRT integration can connect Home Assistant to a ASUS router that runs on ASUSWRT firmware.
diff --git a/source/_integrations/bayesian.markdown b/source/_integrations/bayesian.markdown
index f72a13ba1d8..788f3897bdc 100644
--- a/source/_integrations/bayesian.markdown
+++ b/source/_integrations/bayesian.markdown
@@ -15,13 +15,13 @@ ha_codeowners:
- '@HarvsG'
---
-The `bayesian` binary sensor platform observes the state from multiple sensors and uses [Bayes' rule](https://en.wikipedia.org/wiki/Bayes%27_theorem) to estimate the probability that an event has occurred given the state of the observed sensors. If the estimated posterior probability is above the `probability_threshold`, the sensor is `on` otherwise it is `off`.
+The `bayesian` binary sensor platform observes the state from multiple sensors. It uses [Bayes' rule](https://en.wikipedia.org/wiki/Bayes%27_theorem) to estimate the probability that an event is occurring given the state of the observed sensors. If the estimated posterior probability is above the `probability_threshold`, the sensor is `on`; otherwise, it is `off`.
This allows for the detection of complex events that may not be readily observable, e.g., cooking, showering, in bed, the start of a morning routine, etc. It can also be used to gain greater confidence about events that _are_ directly observable, but for which the sensors can be unreliable, e.g., presence.
## Theory
-A key concept in Bayes' Rule is the difference between the probability of the 'event given the observation' and the probability of the 'observation given the event'. In some cases these probabilities will be similar. The probability that someone is in the room given that motion is detected is similar to the probability motion is detected given that someone is in the room. In other cases, the distinction is much more important. The probability I have just arrived home (the event) each time the front door contact sensor reports `open` (the observation) (p=0.2) is not the same as the probability the front door contact sensor reports `open` (the observation) when I come home (the event) (p=0.999).
+A key concept in Bayes' Rule is the difference between the probability of the 'event given the observation' and the probability of the 'observation given the event'. In some cases, these probabilities will be similar. The probability that someone is in the room given that motion is detected is similar to the probability motion is detected given that someone is in the room when motion sensors are accurate. In other cases, the distinction is much more important. The probability one has just arrived home (the event) each time the front door contact sensor reports `open` (the observation) (p=0.2) is not the same as the probability the front door contact sensor reports `open` (the observation) when one comes home (the event) (p=0.999). This difference is because one opens the door several times a day for other purposes.
In the configuration use the probability of the observation (the sensor state in question) given the event (the assumed state of the Bayesian binary_sensor).
diff --git a/source/_integrations/blebox.markdown b/source/_integrations/blebox.markdown
index 5f1943a5534..5662e0d6599 100644
--- a/source/_integrations/blebox.markdown
+++ b/source/_integrations/blebox.markdown
@@ -19,6 +19,7 @@ ha_platforms:
- sensor
- switch
ha_integration_type: integration
+ha_zeroconf: true
---
[BleBox](https://blebox.eu/?lang=en) produces small, low-power, surprisingly affordable, feature-rich WiFi devices for serverless home automation.
diff --git a/source/_integrations/brandt.markdown b/source/_integrations/brandt.markdown
index fdbd2531fb5..9ced5622c56 100644
--- a/source/_integrations/brandt.markdown
+++ b/source/_integrations/brandt.markdown
@@ -26,6 +26,7 @@ ha_codeowners:
- '@imicknl'
- '@vlebourl'
- '@tetienne'
+ - '@nyroDev'
ha_config_flow: true
ha_platforms:
- alarm_control_panel
diff --git a/source/_integrations/citybikes.markdown b/source/_integrations/citybikes.markdown
index f22993c6098..f786a5864a6 100644
--- a/source/_integrations/citybikes.markdown
+++ b/source/_integrations/citybikes.markdown
@@ -21,6 +21,7 @@ To enable it, add the following lines to your `configuration.yaml`:
# Example configuration.yaml entry (using radius)
sensor:
- platform: citybikes
+ radius: 200
```
{% configuration %}
@@ -44,11 +45,11 @@ longitude:
default: Defaults to the longitude in your `configuration.yaml` file.
type: string
radius:
- description: The radius (in meters or feet, depending on the Home Assistant configuration) around the monitored location. Only stations closer than this distance will be monitored.
+ description: The radius (in meters or feet, depending on the Home Assistant configuration) around the monitored location. Only stations closer than this distance will be monitored. Either `radius` or `stations` are required.
required: false
type: integer
stations:
- description: A list of specific stations to monitor. The list should contain station `ID`s or `UID`s, which can be obtained from the CityBikes API.
+ description: A list of specific stations to monitor. The list should contain station `ID`s or `UID`s, which can be obtained from the CityBikes API. Either `radius` or `stations` are required.
required: false
type: list
{% endconfiguration %}
diff --git a/source/_integrations/counter.markdown b/source/_integrations/counter.markdown
index 569c09995c0..7c43cfadb1e 100644
--- a/source/_integrations/counter.markdown
+++ b/source/_integrations/counter.markdown
@@ -75,7 +75,7 @@ counter:
type: icon
{% endconfiguration %}
-Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance` or `mdi:motorbike`.
+Pick an icon that from [Material Design Icons](https://pictogrammers.com/library/mdi/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance` or `mdi:motorbike`.
### Restore State
diff --git a/source/_integrations/cover.mqtt.markdown b/source/_integrations/cover.mqtt.markdown
index 6cb0a100c33..e0d0054d394 100644
--- a/source/_integrations/cover.mqtt.markdown
+++ b/source/_integrations/cover.mqtt.markdown
@@ -205,7 +205,7 @@ position_open:
type: integer
default: 100
position_template:
- description: "Defines a [template](/topics/templating/) that can be used to extract the payload for the `position_topic` topic. Within the template the following variables are available: `entity_id`, `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
+ description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that can be used to extract the payload for the `position_topic` topic. Within the template the following variables are available: `entity_id`, `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
required: false
type: string
position_topic:
@@ -223,7 +223,7 @@ retain:
type: boolean
default: false
set_position_template:
- description: "Defines a [template](/topics/templating/) to define the position to be sent to the `set_position_topic` topic. Incoming position value is available for use in the template `{% raw %}{{ position }}{% endraw %}`. Within the template the following variables are available: `entity_id`, `position`, the target position in percent; `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
+ description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to define the position to be sent to the `set_position_topic` topic. Incoming position value is available for use in the template `{% raw %}{{ position }}{% endraw %}`. Within the template the following variables are available: `entity_id`, `position`, the target position in percent; `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
required: false
type: string
set_position_topic:
@@ -265,7 +265,7 @@ tilt_closed_value:
type: integer
default: 0
tilt_command_template:
- description: "Defines a [template](/topics/templating/) that can be used to extract the payload for the `tilt_command_topic` topic. Within the template the following variables are available: `entity_id`, `tilt_position`, the target tilt position in percent; `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
+ description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that can be used to extract the payload for the `tilt_command_topic` topic. Within the template the following variables are available: `entity_id`, `tilt_position`, the target tilt position in percent; `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
required: false
type: string
tilt_command_topic:
@@ -293,7 +293,7 @@ tilt_optimistic:
type: boolean
default: "`true` if `tilt_status_topic` is not defined, else `false`"
tilt_status_template:
- description: "Defines a [template](/topics/templating/) that can be used to extract the payload for the `tilt_status_topic` topic. Within the template the following variables are available: `entity_id`, `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
+ description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that can be used to extract the payload for the `tilt_status_topic` topic. Within the template the following variables are available: `entity_id`, `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
required: false
type: string
tilt_status_topic:
@@ -305,7 +305,7 @@ unique_id:
required: false
type: string
value_template:
- description: "Defines a [template](/topics/templating/) that can be used to extract the payload for the `state_topic` topic."
+ description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that can be used to extract the payload for the `state_topic` topic."
required: false
type: string
{% endconfiguration %}
diff --git a/source/_integrations/cozytouch.markdown b/source/_integrations/cozytouch.markdown
index 60bdc8de1a1..cb331eec740 100644
--- a/source/_integrations/cozytouch.markdown
+++ b/source/_integrations/cozytouch.markdown
@@ -26,6 +26,7 @@ ha_codeowners:
- '@imicknl'
- '@vlebourl'
- '@tetienne'
+ - '@nyroDev'
ha_config_flow: true
ha_platforms:
- alarm_control_panel
diff --git a/source/_integrations/default_config.markdown b/source/_integrations/default_config.markdown
index e0db645a10c..a075a1f87bd 100644
--- a/source/_integrations/default_config.markdown
+++ b/source/_integrations/default_config.markdown
@@ -25,7 +25,7 @@ This integration is a meta-component and configures a default set of integration
- [History](/integrations/history/) (`history`)
- [Home Assistant Alerts](/integrations/homeassistant_alerts) (`homeassistant_alerts`)
- [Home Assistant Cloud](/integrations/cloud/) (`cloud`)
-- [Image](/integrations/image/) (`image`)
+- [Image upload](/integrations/image_upload/) (`image_upload`)
- [Input boolean](/integrations/input_boolean/) (`input_boolean`)
- [Input button](/integrations/input_button/) (`input_button`)
- [Input datetime](/integrations/input_datetime/) (`input_datetime`)
diff --git a/source/_integrations/demo.markdown b/source/_integrations/demo.markdown
index 59bb74795c7..d67aa39388b 100644
--- a/source/_integrations/demo.markdown
+++ b/source/_integrations/demo.markdown
@@ -50,9 +50,12 @@ Available demo platforms:
- [Air Quality](/integrations/air_quality/) (`air_quality`)
- [Alarm control panel](/integrations/alarm_control_panel/) (`alarm_control_panel`)
- [Binary sensor](/integrations/binary_sensor/) (`binary_sensor`)
+- [Button](/integrations/button/) (`button`)
+- [Calendar](/integrations/calendar/) (`calendar`)
- [Camera](/integrations/camera/) (`camera`)
- [Climate](/integrations/climate/) (`climate`)
- [Cover](/integrations/cover/) (`cover`)
+- [Device Tracker](/integrations/device_tracker/) (`device_tracker`)
- [Fan](/integrations/fan/) (`fan`)
- [Geolocation](/integrations/geo_location/) (`geo_location`)
- [Humidifier](/integrations/humidifier/) (`humidifier`)
@@ -64,9 +67,15 @@ Available demo platforms:
- [Notification](/integrations/notify/) (`notify`)
- [Number](/integrations/number/) (`number`)
- [Remote](/integrations/remote/) (`remote`)
+- [Select](/integrations/select/) (`select`)
- [Sensor](/integrations/sensor/) (`sensor`)
+- [Siren](/integrations/siren/) (`siren`)
- [Switch](/integrations/switch/) (`switch`)
+- [Text](/integrations/text/) (`text`)
- [Text-to-speech](/integrations/tts/) (`tts`)
+- [Update](/integrations/update/) (`update`)
+- [Vacuum](/integrations/vacuum/) (`vacuum`)
+- [Water Heater](/integrations/water_heater/) (`water_heater`)
- [Weather](/integrations/weather/) (`weather`)
To integrate a demo platform in Home Assistant, add the following section to your `configuration.yaml` file:
diff --git a/source/_integrations/derivative.markdown b/source/_integrations/derivative.markdown
index d4144a099b3..d2957938614 100644
--- a/source/_integrations/derivative.markdown
+++ b/source/_integrations/derivative.markdown
@@ -18,8 +18,9 @@ ha_platforms:
ha_integration_type: helper
---
-The derivative ([Wikipedia](https://en.wikipedia.org/wiki/Derivative)) integration creates a sensor that estimates the derivative of the
-values provided by another sensor (the **source sensor**). Derivative sensors are updated upon changes of the **source sensor**.
+The derivative ([Wikipedia](https://en.wikipedia.org/wiki/Derivative)) integration creates a sensor that "smooths-out" another sensor (the **source sensor**).
+Derivatives of the specified sensor will be averaged in a given time window with a Simple Moving Average algorithm weighted by time. This is, for instance, useful for a sensor that outputs discrete values or to filter out short-duration noise.
+Derivative sensors are updated upon changes of the **source sensor**.
For sensors that reset to zero after a power interruption and need a "non-negative derivative", such as bandwidth counters in routers, or rain gauges, consider using the [Utility Meter](/integrations/utility_meter/) integration instead. Otherwise, each reset will register a significant change in the derivative sensor.
@@ -30,7 +31,7 @@ Name:
Input sensor:
description: The entity providing numeric readings to create the derivative of.
Precision:
- description: Round the calculated integration value to at most N decimal places.
+ description: Round the calculated derivative value to at most N decimal places.
Time window:
description: The time window in which to calculate the derivative. Derivatives in this window will be averaged with a simple moving average algorithm (SMA) weighted by time. This is for instance useful for a sensor that outputs discrete values, or to filter out short duration noise. By default the derivative is calculated between two consecutive updates without any smoothing.
Metric Prefix:
@@ -42,7 +43,7 @@ Time unit:
## YAML Configuration
Alternatively, this integration can be configured and set up manually via YAML
-instead. To enable the Integration sensor in your installation, add the
+instead. To enable the Derivative sensor in your installation, add the
following to your `configuration.yaml` file:
```yaml
@@ -82,7 +83,7 @@ unit:
required: false
type: string
time_window:
- description: The time window in which to calculate the derivative. Derivatives in this window will be averaged with a Simple Moving Average algorithm weighted by time. This is for instance useful for a sensor that outputs discrete values, or to filter out short duration noise. By default the derivative is calculated between two consecutive updates without any smoothing.
+ description: The time window in which to calculate the derivative. By default the derivative is calculated between two consecutive updates without any smoothing.
default: 0
required: false
type: time
diff --git a/source/_integrations/econet.markdown b/source/_integrations/econet.markdown
index f9a4c681e4e..9020cb1298f 100644
--- a/source/_integrations/econet.markdown
+++ b/source/_integrations/econet.markdown
@@ -21,7 +21,7 @@ ha_platforms:
ha_integration_type: integration
---
-The EcoNet integration is consuming the information provided by a [EcoNet enabled Rheem water heater or thermostat](https://www.rheem.com/EcoNet/Home).
+The EcoNet integration is consuming the information provided by a [EcoNet enabled Rheem water heater or thermostat](https://www.rheem.com/econet).
{% include integrations/config_flow.md %}
diff --git a/source/_integrations/edl21.markdown b/source/_integrations/edl21.markdown
index f61a0be1bce..1198593a81a 100644
--- a/source/_integrations/edl21.markdown
+++ b/source/_integrations/edl21.markdown
@@ -28,6 +28,7 @@ Tested smart meters:
- Iskraemeco MT175 (ISKRA MT175-D2A51-V22-K0t)
- EMH metering eHZ Generation K (enable InF as described in manual to retrieve full data)
- efr SGM-C4 (enable InF as described in manual to retrieve full data)
+- easymeter Q3 ([Link](https://www.easymeter.com/products/zaehler/q3a))
## Configuration
diff --git a/source/_integrations/elmax.markdown b/source/_integrations/elmax.markdown
index ecd8fceab71..e3d64206130 100644
--- a/source/_integrations/elmax.markdown
+++ b/source/_integrations/elmax.markdown
@@ -10,6 +10,7 @@ ha_codeowners:
- '@albertogeniola'
ha_domain: elmax
ha_platforms:
+ - alarm_control_panel
- binary_sensor
- switch
ha_integration_type: integration
diff --git a/source/_integrations/envisalink.markdown b/source/_integrations/envisalink.markdown
index 4add5376b96..8e922199441 100644
--- a/source/_integrations/envisalink.markdown
+++ b/source/_integrations/envisalink.markdown
@@ -49,10 +49,10 @@ envisalink:
timeout: 10
panic_type: Police
zones:
- 11:
+ 1:
name: "Back Door"
type: "opening"
- 21:
+ 2:
name: "First Floor Motion"
type: "motion"
partitions:
@@ -112,7 +112,7 @@ panic_type:
default: Police
type: string
zones:
- description: "Envisalink boards have no way to tell us which zones are actually in use, so each zone must be configured in Home Assistant. For each zone, at least a name must be given. For more information about the visual representation of a zone, take a look at the [Binary Sensor](/integrations/binary_sensor/#device-class) documentation. *Note: If no zones are specified, Home Assistant will not load any binary_sensor components.*"
+ description: "Envisalink boards have no way to tell us which zones are actually in use, so each zone must be configured in Home Assistant. Zone numbers correspond to the zone numbers configured on your alarm system and must be in the range of 1 to 64. For each zone, at least a name must be given. For more information about the visual representation of a zone, take a look at the [Binary Sensor](/integrations/binary_sensor/#device-class) documentation. *Note: If no zones are specified, Home Assistant will not load any binary_sensor components.*"
required: false
type: integer
keys:
diff --git a/source/_integrations/ezviz.markdown b/source/_integrations/ezviz.markdown
index 36de3c8847b..77ec77c44bf 100644
--- a/source/_integrations/ezviz.markdown
+++ b/source/_integrations/ezviz.markdown
@@ -90,3 +90,7 @@ To enable/disable motion detection, use the Home Assistant built in services.
| Service data attribute | Description |
| -----------------------| ----------- |
| `entity_id` | String or list of strings that point at `entity_id`s of cameras. Use `entity_id: all` to target all. |
+
+## Troubleshooting
+
+- `authentication failed`: The authentication requires an EZVIZ account with two-step verification disabled. Google, Facebook, TikTok, or other Oauth-based accounts will not work.
diff --git a/source/_integrations/flexom.markdown b/source/_integrations/flexom.markdown
index e3f3ae31e8b..d47ec74f02a 100644
--- a/source/_integrations/flexom.markdown
+++ b/source/_integrations/flexom.markdown
@@ -26,6 +26,7 @@ ha_codeowners:
- '@imicknl'
- '@vlebourl'
- '@tetienne'
+ - '@nyroDev'
ha_config_flow: true
ha_platforms:
- alarm_control_panel
diff --git a/source/_integrations/google_assistant.markdown b/source/_integrations/google_assistant.markdown
index 86596b1cd71..06546b5f6de 100644
--- a/source/_integrations/google_assistant.markdown
+++ b/source/_integrations/google_assistant.markdown
@@ -338,6 +338,10 @@ If you receive 404 errors linked to reporting state in your log, Home Assistant
Your fulfillment URL may be invalid or unreachable. Recheck the `Fulfillment URL` as specified in [Manual Setup](#manual-setup) and verify that it's publicly reachable.
+#### 500 / 429 error on request sync
+
+This error may occur if the service key is invalid. Try deleting and creating a new service account and key.
+
#### NGINX
When using NGINX, ensure that your `proxy_pass` line *does not* have a trailing `/`, as this will result in errors. Your line should look like:
diff --git a/source/_integrations/google_assistant_sdk.markdown b/source/_integrations/google_assistant_sdk.markdown
index ea558e6768b..a25c6442b6e 100644
--- a/source/_integrations/google_assistant_sdk.markdown
+++ b/source/_integrations/google_assistant_sdk.markdown
@@ -4,12 +4,14 @@ description: Instructions on how to use Google Assistant SDK in Home Assistant.
ha_category:
- Utility
ha_iot_class: Cloud Polling
-ha_release: '2023.01'
+ha_release: 2023.1
ha_config_flow: true
ha_domain: google_assistant_sdk
ha_codeowners:
- - '@tronikos'
-ha_integration_type: integration
+ - "@tronikos"
+ha_integration_type: service
+ha_platforms:
+ - notify
---
The Google Assistant SDK integration allows Home Assistant to interact with Google Assistant. If you want to use Google Assistant (for example, from your phone or Google Home device) to interact with your Home Assistant managed devices, then you want the [Google Assistant](/integrations/google_assistant) integration.
@@ -29,6 +31,8 @@ This integration allows:
- Water leak detected in the master bathroom
- Having a conversation with Google Assistant using the [conversation](/integrations/conversation/) integration via text or voice.
+
+
## Prerequisites
You need to configure developer credentials to allow Home Assistant to access your Google Account.
@@ -43,21 +47,20 @@ This section explains how to generate a Client ID and Client Secret on
1. First go to the Google Developers Console to enable [Google Assistant API](https://console.developers.google.com/apis/api/embeddedassistant.googleapis.com/overview)
2. Select an existing project or create a new one from the dropdown menu in the upper left corner.
3. Click to enable this API.
-4. From the left sidebar click on [Credentials](https://console.cloud.google.com/apis/credentials)
-5. Click on the field on the left of the screen, **OAuth Consent Screen**.
-6. Select **External** and **Create**.
-7. Set the *App Name* (the name of the application asking for consent) to anything you want e.g. *Home Assistant*.
-8. You then need to select a *Support email*. To do this, simply click the drop down box and select your email address.
-9. You finally need to complete the section: *Developer contact information*. To do this, simply enter your email address (same as above is fine).
-10. Scroll to the bottom and click **Save and Continue**. Don't have to fill out anything else or it may enable additional review.
-11. You will then be automatically taken to the Scopes page. You do not need to add any scopes here so click Save and Continue to move to the Optional info page. You do not need to add anything to the Optional info page so click Save and Continue which will take you to the Summary page. Click Back to Dashboard.
-12. Click **OAuth consent screen** again and set *Publish Status* to **Production** otherwise your credentials will expire every 7 days.
-13. Make sure **Publishing status** is set to production.
-14. Click **Credentials** in the menu on the left hand side of the screen, then click **Create credentials** (at the top of the screen), then select *OAuth client ID*.
-15. Set the Application type to *Web application* and give this credential set a name (like "Home Assistant Credentials").
-16. Add https://my.home-assistant.io/redirect/oauth to *Authorized redirect URIs* then click **Create**.
-17. You will then be presented with a pop-up saying *OAuth client created* showing *Your Client ID* and *Your Client Secret*. Make a note of these (for example, copy and paste them into a text editor) as you will need these shortly. Once you have noted these strings, click **OK**. If you need to find these credentials again at any point then simply navigate to *APIs & Services > Credentials* and you will see *Home Assistant Credentials* (or whatever you named them in the previous step) under *OAuth 2.0 Client IDs*. To view both the *Client ID* and *Client secret*, click on the pencil icon, this will take you to the settings page for these credentials and the information will be on the right hand side of the page.
-18. Double check that the *Google Assistant API* has been automatically enabled. To do this, select **Library** from the menu, then search for *Google Assistant API*. If it is enabled you will see *API Enabled* with a green tick next to it. If it is not enabled, then enable it.
+4. Click on the field on the left of the screen, **OAuth Consent Screen**.
+5. Select **External** and **Create**.
+6. Set the _App Name_ (the name of the application asking for consent) to anything you want e.g. _Home Assistant_.
+7. You then need to select a _Support email_. To do this, simply click the drop down box and select your email address.
+8. You finally need to complete the section: _Developer contact information_. To do this, simply enter your email address (same as above is fine).
+9. Scroll to the bottom and click **Save and Continue**. Don't have to fill out anything else or it may enable additional review.
+10. You will then be automatically taken to the Scopes page. You do not need to add any scopes here so click Save and Continue to move to the Optional info page. You do not need to add anything to the Optional info page so click Save and Continue which will take you to the Summary page. Click Back to Dashboard.
+11. Click **OAuth consent screen** again and set _Publish Status_ to **Production** otherwise your credentials will expire every 7 days.
+12. Make sure **Publishing status** is set to production.
+13. Click **Credentials** in the menu on the left hand side of the screen, then click **Create credentials** (at the top of the screen), then select _OAuth client ID_.
+14. Set the Application type to _Web application_ and give this credential set a name (like "Home Assistant Credentials").
+15. Add https://my.home-assistant.io/redirect/oauth to _Authorized redirect URIs_ then click **Create**.
+16. You will then be presented with a pop-up saying _OAuth client created_ showing _Your Client ID_ and _Your Client Secret_. Make a note of these (for example, copy and paste them into a text editor) as you will need these shortly. Once you have noted these strings, click **OK**. If you need to find these credentials again at any point then simply navigate to _APIs & Services > Credentials_ and you will see _Home Assistant Credentials_ (or whatever you named them in the previous step) under _OAuth 2.0 Client IDs_. To view both the _Client ID_ and _Client secret_, click on the pencil icon, this will take you to the settings page for these credentials and the information will be on the right hand side of the page.
+17. Double check that the _Google Assistant API_ has been automatically enabled. To do this, select **Library** from the menu, then search for _Google Assistant API_. If it is enabled you will see _API Enabled_ with a green tick next to it. If it is not enabled, then enable it.
{% enddetails %}
@@ -73,9 +76,9 @@ The integration setup will next give you instructions to enter the [Application
3. You can now see the details of what you are authorizing Home Assistant to access with two options at the bottom. Click **Continue**.
-4. The page will now display *Link account to Home Assistant?*, note *Your instance URL*. If this is not correct, please refer to [My Home Assistant](/integrations/my). If everything looks good, click **Link Account**.
+4. The page will now display _Link account to Home Assistant?_, note _Your instance URL_. If this is not correct, please refer to [My Home Assistant](/integrations/my). If everything looks good, click **Link Account**.
-5. You may close the window, and return back to Home Assistant where you should see a *Success!* message from Home Assistant.
+5. You may close the window, and return back to Home Assistant where you should see a _Success!_ message from Home Assistant.
{% enddetails %}
@@ -83,7 +86,15 @@ The integration setup will next give you instructions to enter the [Application
If you have an error with your credentials you can delete them in the [Application Credentials](/integrations/application_credentials/) user interface.
-If broadcasting doesn't work, make sure: the speakers aren't in do not disturb mode and that the Home Assistant server is in the same network as the speakers.
+If commands don't work try removing superfluous words such as "the". E.g. "play rain sounds on bedroom speaker" instead of "play rain sounds on the bedroom speaker".
+
+If broadcasting doesn't work, make sure: the speakers aren't in do not disturb mode, the Home Assistant server is in the same network as the speakers, and IPv6 is disabled in the router.
+
+## Limitations/known issues
+
+Multiple Google accounts are not supported.
+
+Limitations of the underlying library are listed [here](https://github.com/tronikos/gassist_text#limitationsknown-issues) (media playback, routines, and personal results are not working).
## Configuration
@@ -95,8 +106,8 @@ On the configure page, you can set the language code of the interactions with Go
You can use the service `google_assistant_sdk.send_text_command` to send commands to Google Assistant.
-| Service data attribute | Optional | Description | Example |
-| ---------------------- | -------- | ----------- | --------|
+| Service data attribute | Optional | Description | Example |
+| ---------------------- | -------- | ------------------------------------ | ------------------- |
| `command` | no | Command to send to Google Assistant. | turn off kitchen TV |
Example:
@@ -111,10 +122,10 @@ data:
You can use the service `notify.google_assistant_sdk` to broadcast messages to Google Assistant speakers and displays without interrupting music/video playback.
-| Service data attribute | Optional | Description | Example |
-| ---------------------- | -------- | ----------- | --------|
-| `message` | no | Message to broadcast. | someone is at the front door |
-| `target` | yes | Rooms (in Google Assistant) | bedroom |
+| Service data attribute | Optional | Description | Example |
+| ---------------------- | -------- | --------------------------- | ---------------------------- |
+| `message` | no | Message to broadcast. | someone is at the front door |
+| `target` | yes | Rooms (in Google Assistant) | bedroom |
Example to broadcast to all speakers:
@@ -138,6 +149,7 @@ data:
## Conversation agent
In `configuration.yaml` add:
+
```yaml
conversation:
```
diff --git a/source/_integrations/google_translate.markdown b/source/_integrations/google_translate.markdown
index 929b06ce756..2e5b95604d1 100644
--- a/source/_integrations/google_translate.markdown
+++ b/source/_integrations/google_translate.markdown
@@ -139,4 +139,4 @@ data:
{% endraw %}
-For more information about using text-to-speech with Home Assistant and more details on all the options it provides, see the [TTS documentation](/integrations/tts/).
\ No newline at end of file
+For more information about using text-to-speech with Home Assistant and more details on all the options it provides, see the [TTS documentation](/integrations/tts/).
diff --git a/source/_integrations/govee_ble.markdown b/source/_integrations/govee_ble.markdown
index 2fbf1f5bd49..573bc174651 100644
--- a/source/_integrations/govee_ble.markdown
+++ b/source/_integrations/govee_ble.markdown
@@ -8,6 +8,7 @@ ha_release: 2022.8
ha_iot_class: Local Push
ha_codeowners:
- '@bdraco'
+ - '@PierreAronnax'
ha_domain: govee_ble
ha_config_flow: true
ha_platforms:
diff --git a/source/_integrations/here_travel_time.markdown b/source/_integrations/here_travel_time.markdown
index 0c8ba8a123d..cccd49029be 100644
--- a/source/_integrations/here_travel_time.markdown
+++ b/source/_integrations/here_travel_time.markdown
@@ -14,7 +14,7 @@ ha_platforms:
ha_integration_type: integration
---
-The `here_travel_time` sensor provides travel time from the [HERE Routing API](https://developer.here.com/documentation/routing/dev_guide/topics/introduction.html).
+The `here_travel_time` sensor provides travel time from the [HERE Routing API](https://developer.here.com/documentation/routing-api/dev_guide/index.html).
## Setup
diff --git a/source/_integrations/hexaom.markdown b/source/_integrations/hexaom.markdown
index 9242f17d95c..834c7f940f2 100644
--- a/source/_integrations/hexaom.markdown
+++ b/source/_integrations/hexaom.markdown
@@ -26,6 +26,7 @@ ha_codeowners:
- '@imicknl'
- '@vlebourl'
- '@tetienne'
+ - '@nyroDev'
ha_config_flow: true
ha_platforms:
- alarm_control_panel
diff --git a/source/_integrations/hi_kumo.markdown b/source/_integrations/hi_kumo.markdown
index 2e1c8a526d8..2daeeeb300b 100644
--- a/source/_integrations/hi_kumo.markdown
+++ b/source/_integrations/hi_kumo.markdown
@@ -26,6 +26,7 @@ ha_codeowners:
- '@imicknl'
- '@vlebourl'
- '@tetienne'
+ - '@nyroDev'
ha_config_flow: true
ha_platforms:
- alarm_control_panel
diff --git a/source/_integrations/hydrawise.markdown b/source/_integrations/hydrawise.markdown
index beb9db3ce85..571c2351199 100644
--- a/source/_integrations/hydrawise.markdown
+++ b/source/_integrations/hydrawise.markdown
@@ -45,7 +45,7 @@ scan_interval:
description: The time interval, in seconds, to poll the Hydrawise cloud.
required: false
type: integer
- default: 30
+ default: 120
{% endconfiguration %}
To get your API access token log into your [Hydrawise account](https://app.hydrawise.com/config/login) and in the 'My Account Details' section under Account Settings click 'Generate API Key'. Enter that key in your configuration file as `YOUR_API_KEY`.
@@ -77,6 +77,13 @@ monitored_conditions:
The Hydrawise API removed the ability to read the rain sensor status. Therefore it is no longer supported by the Hydrawise integration to Home Assistant.
+
+
+The Hydrawise API uses rate limiting and might throw errors in case the `scan_interval` is too low or too many manual service calls are triggered:
+The limit is 3 calls to start/stop/suspend a zone per 30 seconds and an additional limit across the entire API of 30 calls in a 5-minute period per user.
+
+
+
## Sensor
Once you have enabled the `hydrawise` component, add the following to your `configuration.yaml` file:
diff --git a/source/_integrations/ibeacon.markdown b/source/_integrations/ibeacon.markdown
index adf0c5d0196..46a19d6ab7c 100644
--- a/source/_integrations/ibeacon.markdown
+++ b/source/_integrations/ibeacon.markdown
@@ -77,6 +77,7 @@ To get the Estimated distance sensor to work, in most cases, it has to be calibr
- [NRF51822 iBeacon](https://www.aliexpress.com/item/32826502025.html)
- [NRF52810 iBeacon](https://www.aliexpress.com/item/1005003211033416.html)
- [Pawscout Tag](https://pawscout.com/shop/pawscout-tag/)
+- [SwiftFinder](https://www.amazon.com/dp/B089MD5NP7) (Requires being paired to a phone first before it starts transmitting once a minute, otherwise it stays asleep)
## Example automation
diff --git a/source/_integrations/image_upload.markdown b/source/_integrations/image_upload.markdown
index d121f95174e..f45e0a85262 100644
--- a/source/_integrations/image_upload.markdown
+++ b/source/_integrations/image_upload.markdown
@@ -24,5 +24,5 @@ integration manually:
```yaml
# Example configuration.yaml entry
-image:
+image_upload:
```
diff --git a/source/_integrations/iotawatt.markdown b/source/_integrations/iotawatt.markdown
index f77f27ae19b..a90625e8668 100644
--- a/source/_integrations/iotawatt.markdown
+++ b/source/_integrations/iotawatt.markdown
@@ -23,7 +23,7 @@ and create them as sensors in Home Assistant.
## Energy management
-You can use the accumulated energy sensors directly with the Home Assistant energy dashboard.
+You can use the energy sensors directly with the Home Assistant energy dashboard.
If you have an energy production system such as solar panels, follow these instructions:
@@ -49,6 +49,6 @@ If you have two solar sensors named `Solar1` and `Solar2` you would use:
### Configure Energy Management
-In the `Grid Consumption` settings, click `Add Consumption` and select `MainsConsumption.wh Accumulated`
-In the `Return to grid` settings, click `Add Return` and select `MainsExport.wh Accumulated`
-In the `Solar production` settings, click `Add Solar Production` and select `Solar.wh Accumulated`
+In the Grid Consumption settings, select `MainsConsumption.wh`
+In the Return to grid settings, select `MainsExport.wh`
+In the Solar production settings, select `Solar.wh`
diff --git a/source/_integrations/lacrosse.markdown b/source/_integrations/lacrosse.markdown
index 4a3b1c8c660..c8cdb7642d1 100644
--- a/source/_integrations/lacrosse.markdown
+++ b/source/_integrations/lacrosse.markdown
@@ -17,6 +17,7 @@ The `lacrosse` sensor platform is using the data provided by a [Jeelink](https:/
- Technoline TX 29 IT (temperature only)
- Technoline TX 29 DTH-IT (including humidity)
+- TFA Dostmann LaCrosse sensors (type 30.3147.IT)
## Setup
diff --git a/source/_integrations/litterrobot.markdown b/source/_integrations/litterrobot.markdown
index 26150a5843d..67aef645b8d 100644
--- a/source/_integrations/litterrobot.markdown
+++ b/source/_integrations/litterrobot.markdown
@@ -6,6 +6,7 @@ ha_category:
- Select
- Sensor
- Switch
+ - Update
- Vacuum
ha_iot_class: Cloud Push
ha_release: 2021.3
diff --git a/source/_integrations/magicseaweed.markdown b/source/_integrations/magicseaweed.markdown
index c508f08c951..b65428bc871 100644
--- a/source/_integrations/magicseaweed.markdown
+++ b/source/_integrations/magicseaweed.markdown
@@ -11,6 +11,10 @@ ha_platforms:
ha_integration_type: integration
---
+
+ This integration is pending removal from Home Assistant and will be no longer available as of Home Assistant 2023.2.
+
+
The `magicseaweed` platform uses the [Magicseaweed Forecast API](https://magicseaweed.com/docs/developers/59/) as a source for surf forecasting data for the surf spots of your choice.
## Setup
diff --git a/source/_integrations/modbus.markdown b/source/_integrations/modbus.markdown
index 3b6ad872079..68d595efc5a 100644
--- a/source/_integrations/modbus.markdown
+++ b/source/_integrations/modbus.markdown
@@ -1142,6 +1142,7 @@ following lines to configuration.yaml:
```yaml
logger:
+ default: warning
logs:
homeassistant.components.modbus: debug
pymodbus.client: debug
diff --git a/source/_integrations/mqtt.markdown b/source/_integrations/mqtt.markdown
index 3f6c890ada2..992d72391c6 100644
--- a/source/_integrations/mqtt.markdown
+++ b/source/_integrations/mqtt.markdown
@@ -509,6 +509,7 @@ Configuration variable names in the discovery payload may be abbreviated to cons
The following software has built-in support for MQTT discovery:
+- [ArduinoHA](https://github.com/dawidchyrzynski/arduino-home-assistant)
- [Arilux AL-LC0X LED controllers](https://github.com/smrtnt/Arilux_AL-LC0X)
- [ebusd](https://github.com/john30/ebusd)
- [ecowitt2mqtt](https://github.com/bachya/ecowitt2mqtt)
@@ -520,15 +521,16 @@ The following software has built-in support for MQTT discovery:
- [OpenMQTTGateway](https://github.com/1technophile/OpenMQTTGateway)
- [room-assistant](https://github.com/mKeRix/room-assistant) (starting with 1.1.0)
- [SmartHome](https://github.com/roncoa/SmartHome)
+- [SpeedTest-CLI MQTT](https://github.com/adorobis/speedtest-CLI2mqtt)
- [Tasmota](https://github.com/arendst/Tasmota) (starting with 5.11.1e, development halted)
- [Teleinfo MQTT](https://fmartinou.github.io/teleinfo2mqtt) (starting with 3.0.0)
- [Tydom2MQTT](https://fmartinou.github.io/tydom2mqtt/)
- [What's up Docker?](https://fmartinou.github.io/whats-up-docker/) (starting with 3.5.0)
- [WyzeSense2MQTT](https://github.com/raetha/wyzesense2mqtt)
- [Xiaomi DaFang Hacks](https://github.com/EliasKotlyar/Xiaomi-Dafang-Hacks)
+- [Zehnder Comfoair RS232 MQTT](https://github.com/adorobis/hacomfoairmqtt)
- [Zigbee2mqtt](https://github.com/koenkk/zigbee2mqtt)
- [Zwave2Mqtt](https://github.com/OpenZWave/Zwave2Mqtt) (starting with 2.0.1)
-- [ArduinoHA](https://github.com/dawidchyrzynski/arduino-home-assistant)
### Discovery examples
diff --git a/source/_integrations/netgear.markdown b/source/_integrations/netgear.markdown
index c9f36de0cf4..8116a4a6530 100644
--- a/source/_integrations/netgear.markdown
+++ b/source/_integrations/netgear.markdown
@@ -71,9 +71,10 @@ The following router features can be turned on/off, and the status can be read:
### Speed test data
-The "Average Ping", "Downlink Bandwidth" and "Uplink Bandwidth" can be tracked by performing a speed test every 30 minutes.
-If these sensor entities are enabled they will first show as Unknown since the first speed test does only happen 30 minutes after the integration loads, previous results will be restored on subsequent restarts.
-The speed test interval is chosen to be 30 minutes to not put unnecessary load on the network.
+The "Average Ping", "Downlink Bandwidth," and "Uplink Bandwidth" can be tracked by performing a speed test every 2 hours.
+If these sensor entities are enabled, they will first show previous results on integration load. The first new speed tests happens 2 hours after the integration loads.
+The speed test interval is chosen to be 2 hours not to put unnecessary load on the network and reduce data usage.
+When one or more of the three sensors is enabled, the speed tests will be performed. Note that this can cause high data usage depending on your internet connection speed which might be relevant when using metered/limited networks.
### Ethernet link status
diff --git a/source/_integrations/nexity.markdown b/source/_integrations/nexity.markdown
index 7a7a4d0fefd..c609c6afaf5 100644
--- a/source/_integrations/nexity.markdown
+++ b/source/_integrations/nexity.markdown
@@ -26,6 +26,7 @@ ha_codeowners:
- '@imicknl'
- '@vlebourl'
- '@tetienne'
+ - '@nyroDev'
ha_config_flow: true
ha_platforms:
- alarm_control_panel
diff --git a/source/_integrations/nibe_heatpump.markdown b/source/_integrations/nibe_heatpump.markdown
index bfc3da57749..7d71532c78f 100644
--- a/source/_integrations/nibe_heatpump.markdown
+++ b/source/_integrations/nibe_heatpump.markdown
@@ -11,6 +11,8 @@ ha_codeowners:
ha_domain: nibe_heatpump
ha_platforms:
- binary_sensor
+ - button
+ - climate
- number
- select
- sensor
diff --git a/source/_integrations/number.markdown b/source/_integrations/number.markdown
index 88de30d75ad..d5b5ff93b8e 100644
--- a/source/_integrations/number.markdown
+++ b/source/_integrations/number.markdown
@@ -24,7 +24,7 @@ The type of data a number represents impacts how it is displayed in the frontend
- **None**: Generic number. This is the default and doesn't need to be set.
- **apparent_power**: Apparent power in VA.
-- **aqi**: Air Quality Index
+- **aqi**: Air Quality Index (unitless).
- **atmospheric_pressure**: Atmospheric pressure in cbar, bar, hPa, inHg, kPa, mbar, Pa, psi
- **battery**: Percentage of battery that is left
- **carbon_dioxide**: Carbon Dioxide in CO2 (Smoke)
@@ -48,7 +48,7 @@ The type of data a number represents impacts how it is displayed in the frontend
- **pm1**: Concentration of particulate matter less than 1 micrometer in µg/m³
- **pm10**: Concentration of particulate matter less than 10 micrometers in µg/m³
- **pm25**: Concentration of particulate matter less than 2.5 micrometers in µg/m³
-- **power_factor**: Power factor in %
+- **power_factor**: Power factor(unitless), unit may be `None` or %
- **power**: Power in W or kW
- **precipitation**: Accumulated precipitation in cm, in or mm
- **precipitation_intensity**: Precipitation intensity in in/d, in/h, mm/d, or mm/h
diff --git a/source/_integrations/nut.markdown b/source/_integrations/nut.markdown
index f4f90ad57a6..0adcee441df 100644
--- a/source/_integrations/nut.markdown
+++ b/source/_integrations/nut.markdown
@@ -14,7 +14,7 @@ ha_zeroconf: true
ha_platforms:
- diagnostics
- sensor
-ha_integration_type: integration
+ha_integration_type: device
---
The Network UPS Tools (NUT) integration allows you to monitor a UPS
diff --git a/source/_integrations/nws.markdown b/source/_integrations/nws.markdown
index 6b9fd78bc59..8fdf756d46b 100644
--- a/source/_integrations/nws.markdown
+++ b/source/_integrations/nws.markdown
@@ -7,6 +7,7 @@ ha_release: 0.99
ha_iot_class: Cloud Polling
ha_codeowners:
- '@MatthewFlamm'
+ - '@kamiyo'
ha_domain: nws
ha_quality_scale: platinum
ha_config_flow: true
diff --git a/source/_integrations/openuv.markdown b/source/_integrations/openuv.markdown
index 51bb8696831..1024d443c59 100644
--- a/source/_integrations/openuv.markdown
+++ b/source/_integrations/openuv.markdown
@@ -174,3 +174,23 @@ automation:
- sensor.LATITUDE_LONGITUDE_current_uv_index
```
{% endraw %}
+
+## Expired API Keys and Re-authentication
+
+In OpenUV, an `HTTP 403` response indicates one of two conditions:
+
+1. An invalid API key
+2. An API key whose daily/monthly limit is reached
+
+Unfortunately, the integration is unable to determine which is which from the API data
+provided by OpenUV. So, this strategy is followed:
+
+1. Any `HTTP 403` response will create a persistent notification asking you to
+ re-authenticate the OpenUV integration.
+2. In the case of an overrun API call limit, once the `homeassistant.update_entity`
+ service call is again successful, existing re-authentication notifications will
+ automatically be removed.
+
+If you receive a re-authentication notification and are certain that your key has merely
+reached its daily call limit, you can safely ignore it.
+
diff --git a/source/_integrations/overkiz.markdown b/source/_integrations/overkiz.markdown
index eeba5084259..7cad9043011 100644
--- a/source/_integrations/overkiz.markdown
+++ b/source/_integrations/overkiz.markdown
@@ -24,6 +24,7 @@ ha_codeowners:
- '@imicknl'
- '@vlebourl'
- '@tetienne'
+ - '@nyroDev'
ha_domain: overkiz
ha_dhcp: true
ha_zeroconf: true
diff --git a/source/_integrations/panel_custom.markdown b/source/_integrations/panel_custom.markdown
index d7c2643f9e1..95074a308d7 100644
--- a/source/_integrations/panel_custom.markdown
+++ b/source/_integrations/panel_custom.markdown
@@ -43,7 +43,7 @@ sidebar_title:
required: false
type: string
sidebar_icon:
- description: Icon for entry. Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`.
+ description: Icon for entry. Pick an icon that from [Material Design Icons](https://pictogrammers.com/library/mdi/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`.
required: false
default: "mdi:bookmark"
type: icon
diff --git a/source/_integrations/pi_hole.markdown b/source/_integrations/pi_hole.markdown
index 705202eb9fd..32eeccc7ce1 100644
--- a/source/_integrations/pi_hole.markdown
+++ b/source/_integrations/pi_hole.markdown
@@ -22,14 +22,10 @@ ha_integration_type: integration
---
The Pi-hole integration allows you to retrieve statistics and interact with a
-[Pi-hole](https://pi-hole.net/) system.
+[Pi-hole](https://pi-hole.net/) system. If your Pi-hole web interface is password protected, an API key is needed for the setup (_from Settings -> API / Web interface_).
{% include integrations/config_flow.md %}
-Please note, that during the integration set up, an API key can be provided.
-Providing one, gives access to the Pi-Hole `disable` service and a switch
-to enable/disable Pi-Hole from Home Assistant.
-
## Services
The platform provides the following services to interact with your Pi-hole. Use switch entities when calling the services.
diff --git a/source/_integrations/proximity.markdown b/source/_integrations/proximity.markdown
index 83535d02c70..f054018cf49 100644
--- a/source/_integrations/proximity.markdown
+++ b/source/_integrations/proximity.markdown
@@ -77,7 +77,7 @@ zone:
default: km
{% endconfiguration %}
-To add multiple proximity components, simply use a list in your `configuration.yaml` file:
+To add multiple proximity components, add a mapping to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
diff --git a/source/_integrations/purpleair.markdown b/source/_integrations/purpleair.markdown
index f742cac7879..3efe64059b8 100644
--- a/source/_integrations/purpleair.markdown
+++ b/source/_integrations/purpleair.markdown
@@ -9,12 +9,14 @@ ha_codeowners:
- '@bachya'
ha_domain: purpleair
ha_platforms:
+ - diagnostics
- sensor
-ha_integration_type: device
+ha_integration_type: integration
ha_config_flow: true
---
-[PurpleAir](https://www2.purpleair.com/) makes sensors that measure hyper-local air quality data and share it with the public.
+[PurpleAir](https://www2.purpleair.com/) makes sensors that measure hyper-local air
+quality data and share it with the public.
{% include integrations/config_flow.md %}
@@ -26,3 +28,120 @@ Add Sensor:
Remove Sensor:
description: Untrack a sensor.
{% endconfiguration_basic %}
+
+## Creating an AQI Rating from Raw Particulate Data
+
+The PurpleAir API does not provide AQI data; therefore, the integration does not create
+an AQI sensor automatically. However, sensors providing raw particulate data can be used
+to create a human-friendly AQI rating sensor.
+
+
+The guidelines within this documentation constitute estimates and are intended to help
+informed decision making. They should not replace analysis, advice or diagnosis from a
+trained medical professional.
+
+
+### Understanding EPA Guidelines
+
+The United States Environmental Protection Agency (EPA) provides
+[guidelines](https://aqs.epa.gov/aqsweb/documents/codetables/aqi_breakpoints.html) on
+correlating the concentration of pollution over a time period to overall "healthiness."
+For example, a PM2.5 concentration between 0.0 and 12.0 µg/m³ over a 24-hour period
+equates to a "Good" AQI rating.
+
+Therefore, a common strategy would be to use the guidelines for the particulate types
+provided by the PurpleAir integration and "merge" them into a single AQI rating.
+
+### Creating Statistics Sensors
+
+With the EPA guidelines in hand, the next step is to create
+[`statistics`](/integrations/statistics/) sensors for each particulate sensor you are
+interested. This example uses PM2.5 and PM10.0 over a 24-hour period:
+
+
+The entity IDs provided below are simulated; make sure that you use entity IDs that
+actually exist in your Home Assistant instance.
+
+
+```yaml
+sensor:
+ - platform: statistics
+ name: "Average Outdoor PM2.5 (24h)"
+ entity_id: sensor.sensor_pm2_5_mass_concentration
+ state_characteristic: mean
+ max_age:
+ hours: 24
+
+ - platform: statistics
+ name: "Average Outdoor PM10.0 (24h)"
+ entity_id: sensor.sensor_pm10_0_mass_concentration
+ state_characteristic: mean
+ max_age:
+ hours: 24
+```
+
+### Creating the AQI Rating Sensor
+
+The [`statistics`](/integrations/statistics/) sensors can then be combined into a template
+sensor. Note that this example takes a conservative approach: the "worse" of the two
+values (PM2.5 or PM10.0) is used to determine the overall rating.
+
+
+Reminder that the breakpoints used below can be determined from the aforementioned EPA
+guidelines.
+
+
+{% raw %}
+
+```yaml
+sensor:
+ - name: "Local Outdoor Air Quality"
+ state: >
+ {% set pm2_5_avg = states("sensor.average_outdoor_pm2_5_24h") | int %}
+ {% if 0 <= pm2_5_avg <= 12.0 %}
+ {% set pm2_5_rating = 0 %}
+ {% elif 12.0 < pm2_5_avg <= 35.4 %}
+ {% set pm2_5_rating = 1 %}
+ {% elif 35.4 < pm2_5_avg <= 55.4 %}
+ {% set pm2_5_rating = 2 %}
+ {% elif 55.4 < pm2_5_avg <= 150.4 %}
+ {% set pm2_5_rating = 3 %}
+ {% elif 150.4 < pm2_5_avg <= 250.4 %}
+ {% set pm2_5_rating = 4 %}
+ {% else %}
+ {% set pm2_5_rating = 5 %}
+ {% endif %}
+
+ {% set pm10_0_avg = states("sensor.average_outdoor_pm10_0_24h") | int %}
+ {% if 0 <= pm10_0_avg <= 54.0 %}
+ {% set pm10_0_rating = 0 %}
+ {% elif 54.0 < pm10_0_avg <= 154.0 %}
+ {% set pm10_0_rating = 1 %}
+ {% elif 154.0 < pm10_0_avg <= 254.0 %}
+ {% set pm10_0_rating = 2 %}
+ {% elif 254.0 < pm10_0_avg <= 354.0 %}
+ {% set pm10_0_rating = 3 %}
+ {% elif 354.0 < pm10_0_avg <= 424.0 %}
+ {% set pm10_0_rating = 4 %}
+ {% else %}
+ {% set pm10_0_rating = 5 %}
+ {% endif %}
+
+ {% set rating = [pm2_5_rating, pm10_0_rating] | max %}
+ {% if rating == 0 %}
+ Good
+ {% elif rating == 1 %}
+ Moderate
+ {% elif rating == 2 %}
+ Unhealthy for sensitive groups
+ {% elif rating == 3 %}
+ Unhealthy
+ {% elif rating == 4 %}
+ Very unhealthy
+ {% else %}
+ Hazardous
+ {% endif %}
+ unique_id: local_outdoor_air_quality
+```
+
+{% endraw %}
diff --git a/source/_integrations/python_script.markdown b/source/_integrations/python_script.markdown
index 5ba43f72de0..cf764e30cbf 100644
--- a/source/_integrations/python_script.markdown
+++ b/source/_integrations/python_script.markdown
@@ -68,7 +68,7 @@ data:
Running this script show absolutely no output on the screen, but it logs with level `info`. You must have the [Logger](/integrations/logger/) enabled at least for level `info`.
- Your `confiuration.yaml` should include something like this.
+ Your `configuration.yaml` should include something like this.
```yaml
logger:
diff --git a/source/_integrations/reolink.markdown b/source/_integrations/reolink.markdown
index 921691ca3fd..73a3f0f6cc0 100644
--- a/source/_integrations/reolink.markdown
+++ b/source/_integrations/reolink.markdown
@@ -7,7 +7,7 @@ ha_iot_class: Local Polling
ha_release: 2023.1
ha_domain: reolink
ha_codeowners:
- - '@starkillerOG'
+ - "@starkillerOG"
ha_config_flow: true
ha_platforms:
- Camera
@@ -18,15 +18,17 @@ The integration allows you to control [Reolink](https://reolink.com/) NVRs or ca
{% include integrations/config_flow.md %}
+A Reolink user account with admin privileges is needed for the proper operation of this integration.
+
{% include integrations/option_flow.md %}
{% configuration_basic %}
Protocol:
- description: Switch between RTSP, RTMP or FLV streaming protocol.
+description: Switch between RTSP, RTMP or FLV streaming protocol.
{% endconfiguration_basic %}
## Camera streams
-This integration creates a few camera entities, one for each stream type with different resolutions: Main, Sub, Ext, and Images.
+This integration creates a few camera entities, one for each stream type with different resolutions: Main, Sub, Ext, and Snapshots.
The Sub stream camera entity is enabled by default; the other streams are disabled by default.
The Images stream provides a sequence of image snapshots giving very low latency at the cost of a very low frame rate; this can be used when the RTMP/RTSP/FLV video stream has too much lag.
@@ -48,15 +50,32 @@ Not all camera models generate ONVIF push events for all event types, some binar
The following models have been tested and confirmed to work:
-- RLN8-410 NVR
+- C1 Pro
+- E1 Zoom
+- E1 Outdoor
+- RLC-410W
+- RLC-411
+- RLC-420
+- RLC-511
+- RLC-511W
+- RLC-520
+- RLC-522
+- RLC-810A
- RLC-811A
-- RLC-420-5MP
-- Reolink Video Doorbell PoE
-- Reolink Video Doorbell WiFi
+- RLC-820A
+- RLC-823A
+- RLN8-410 NVR
+- Reolink Duo Floodlight PoE
+- Reolink Video Doorbell (PoE and Wi-Fi)
Battery-powered cameras are not yet supported.
+The following models are lacking the HTTP webserver API and can therfore not work with this integration:
+
+- E1 Pro
+
## Reolink firmware limitations
- The Reolink NVR only sends event-notifications if motion happens on the camera connected to the first (index "0") channel, therefore the binary sensors of all channels will only be updated when the first channel sees motion.
- Reolink doorbell presses only generate ONVIF event notifications when the doorbell is directly connected to your network. The doorbell visitor binary sensor will not work when connecting the Reolink doorbell to an NVR.
+- Older firmware versions do not expose the necessary information the integration needs to function. Ensure the camera is updated to the [latest firmware](https://reolink.com/download-center/) prior to setting up the integration.
diff --git a/source/_integrations/rexel.markdown b/source/_integrations/rexel.markdown
index 4bce340857b..a003b45f259 100644
--- a/source/_integrations/rexel.markdown
+++ b/source/_integrations/rexel.markdown
@@ -26,6 +26,7 @@ ha_codeowners:
- '@imicknl'
- '@vlebourl'
- '@tetienne'
+ - '@nyroDev'
ha_config_flow: true
ha_platforms:
- alarm_control_panel
diff --git a/source/_integrations/sensor.markdown b/source/_integrations/sensor.markdown
index 38f2cade37c..8ead805349d 100644
--- a/source/_integrations/sensor.markdown
+++ b/source/_integrations/sensor.markdown
@@ -7,11 +7,11 @@ ha_release: 0.7
ha_quality_scale: internal
ha_domain: sensor
ha_codeowners:
- - '@home-assistant/core'
+ - "@home-assistant/core"
ha_integration_type: entity
---
-Sensors are a basic platform component in Home Assistant. They monitor the states and conditions of a variety of entities. An entity can be many things. This can include a physical device like a motion sensor that reports the battery level, a web service that retrieves the weather temperature, a built-in function that calculates the sun's elevation relative to your GPS position, or even a custom sensor you may have created to report the free space on your laptop. These are all *things* reporting different types of information.
+Sensors are a basic platform component in Home Assistant. They monitor the states and conditions of a variety of entities. An entity can be many things. This can include a physical device like a motion sensor that reports the battery level, a web service that retrieves the weather temperature, a built-in function that calculates the sun's elevation relative to your GPS position, or even a custom sensor you may have created to report the free space on your laptop. These are all _things_ reporting different types of information.
Some of these sensors are built-in to Home Assistant, some are created automatically when you add an integration (see this [list](/integrations/#sensor)), and some can be created manually. The [Statistics](/integrations/statistics) and [Template](/integrations/template) sensors are two examples of the last case.
@@ -21,26 +21,26 @@ The type of data a sensor returns impacts how it is displayed in the frontend. T
- **None**: Generic sensor. This is the default and doesn't need to be set.
- **apparent_power**: Apparent power in VA.
-- **aqi**: Air Quality Index
-- **atmospheric_pressure**: Atmospheric pressure in cbar, bar, hPa, inHg, kPa, mbar, Pa, psi
-- **battery**: Percentage of battery that is left
-- **carbon_dioxide**: Carbon Dioxide in CO2 (Smoke)
-- **carbon_monoxide**: Carbon Monoxide in CO (Gas CNG/LPG)
+- **aqi**: Air Quality Index (unitless).
+- **atmospheric_pressure**: Atmospheric pressure in cbar, bar, hPa, inHg, kPa, mbar, Pa or psi
+- **battery**: Percentage of battery that is left in %
+- **carbon_dioxide**: Carbon Dioxide in CO2 (Smoke) in ppm
+- **carbon_monoxide**: Carbon Monoxide in CO (Gas CNG/LPG) in ppm
- **current**: Current in A, mA
-- **data_rate**: Data rate in bit/s, kbit/s, Mbit/s, Gbit/s, B/s, kB/s, MB/s, GB/s, KiB/s, MiB/s, or GiB/s
-- **data_size**: Data size in bit, kbit, Mbit, Gbit, B, kB, MB, GB, TB, PB, EB, ZB, YB, KiB, MiB, GiB, TiB, PiB, EiB, ZiB, or YiB
+- **data_rate**: Data rate in bit/s, kbit/s, Mbit/s, Gbit/s, B/s, kB/s, MB/s, GB/s, KiB/s, MiB/s or GiB/s
+- **data_size**: Data size in bit, kbit, Mbit, Gbit, B, kB, MB, GB, TB, PB, EB, ZB, YB, KiB, MiB, GiB, TiB, PiB, EiB, ZiB or YiB
- **date**: Date string (ISO 8601)
-- **distance**: Generic distance in km, m, cm, mm, mi, yd, or in
-- **duration**: Duration in days, hours, minutes or seconds
+- **distance**: Generic distance in km, m, cm, mm, mi, yd or in
+- **duration**: Duration in d, h, min or s
- **energy**: Energy in Wh, kWh or MWh
- **enum**: Has a limited set of (non-numeric) states
- **frequency**: Frequency in Hz, kHz, MHz or GHz
-- **gas**: Gasvolume in m³, ft³, or CCF
-- **humidity**: Percentage of humidity in the air
+- **gas**: Gasvolume in m³, ft³ or CCF
+- **humidity**: Percentage of humidity in the air in %
- **illuminance**: The current light level in lx
- **irradiance**: Irradiance in W/m² or BTU/(h⋅ft²)
-- **moisture**: Percentage of water in a substance
-- **monetary**: The monetary value
+- **moisture**: Percentage of water in a substance in %
+- **monetary**: The monetary value ([ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#Active_codes))
- **nitrogen_dioxide**: Concentration of Nitrogen Dioxide in µg/m³
- **nitrogen_monoxide**: Concentration of Nitrogen Monoxide in µg/m³
- **nitrous_oxide**: Concentration of Nitrous Oxide in µg/m³
@@ -48,15 +48,15 @@ The type of data a sensor returns impacts how it is displayed in the frontend. T
- **pm1**: Concentration of particulate matter less than 1 micrometer in µg/m³
- **pm10**: Concentration of particulate matter less than 10 micrometers in µg/m³
- **pm25**: Concentration of particulate matter less than 2.5 micrometers in µg/m³
-- **power_factor**: Power factor in %
+- **power_factor**: Power factor (unitless), unit may be `None` or %
- **power**: Power in W or kW
- **precipitation**: Accumulated precipitation in cm, in or mm
-- **precipitation_intensity**: Precipitation intensity in in/d, in/h, mm/d, or mm/h
-- **pressure**: Pressure in Pa, kPa, hPa, bar, cbar, mbar, mmHg, inHg, or psi
+- **precipitation_intensity**: Precipitation intensity in in/d, in/h, mm/d or mm/h
+- **pressure**: Pressure in Pa, kPa, hPa, bar, cbar, mbar, mmHg, inHg or psi
- **reactive_power**: Reactive power in var
- **signal_strength**: Signal strength in dB or dBm
- **sound_pressure**: Sound pressure in dB or dBA
-- **speed**: Generic speed in ft/s, in/d, in/h, km/h, kn, m/s, mph, or mm/d
+- **speed**: Generic speed in ft/s, in/d, in/h, km/h, kn, m/s, mph or mm/d
- **sulphur_dioxide**: Concentration of sulphur dioxide in µg/m³
- **temperature**: Temperature in °C or °F
- **timestamp**: Datetime object or timestamp string (ISO 8601)
diff --git a/source/_integrations/shelly.markdown b/source/_integrations/shelly.markdown
index 60ba3740d50..9133d54f53c 100644
--- a/source/_integrations/shelly.markdown
+++ b/source/_integrations/shelly.markdown
@@ -49,7 +49,7 @@ There are two generations of devices. Both generations are supported by this int
Generation 1 devices use the `CoIoT` protocol to communicate with the integration. For Shelly firmware 1.10.0 or newer, `CoIoT` must be enabled in the device settings. Navigate to the local IP address of your Shelly device, **Internet & Security** >> **ADVANCED - DEVELOPER SETTINGS** and check the box **Enable CoIoT**.
-We recommend using `unicast` for communication. To enable this, enter the local IP address of the Home Assistant server and port `5683` into the **CoIoT peer** field and push **SAVE** button. This is mandatory for Shelly Motion with firmware 1.1.0 or newer. After changing the **CoIoT peer**, the Shelly device needs to be manually restarted.
+We recommend using `unicast` for communication. To enable this, enter the local IP address of the Home Assistant server and port `5683` into the **CoIoT peer** field and push **SAVE** button. **This is mandatory for battery operated devices**. After changing the **CoIoT peer**, the Shelly device needs to be manually restarted.
## Shelly device configuration (generation 2)
@@ -61,6 +61,12 @@ Generation 2 devices use the `RPC` protocol to communicate with the integration.
Integration is communicating directly with the device; cloud connection is not needed.
+## Bluetooth Support
+
+Shelly generation 2 devices running firmware 0.12 or later can act as a Bluetooth proxy for advertisements. Active or passive listening can be enabled in the options flow.
+
+{% include integrations/option_flow.md %}
+
## Entity naming (generation 1)
The integration uses `Device Name` to name its entities if the device has only one relay or no relays at all.
@@ -284,8 +290,3 @@ Please check from the device Web UI that the configured server is reachable.
- Before set up, battery-powered devices must be woken up by pressing the button on the device.
- OTA update service does not support battery-powered devices
-## Bluetooth Support
-
-Shelly generation 2 devices running firmware 0.12 or later can act as a Bluetooth proxy for advertisements. Active or passive listening can be enabled in the options flow.
-
-{% include integrations/option_flow.md %}
diff --git a/source/_integrations/simu.markdown b/source/_integrations/simu.markdown
index 8a8f2c8dace..8a4c41e7077 100644
--- a/source/_integrations/simu.markdown
+++ b/source/_integrations/simu.markdown
@@ -26,6 +26,7 @@ ha_codeowners:
- '@imicknl'
- '@vlebourl'
- '@tetienne'
+ - '@nyroDev'
ha_config_flow: true
ha_platforms:
- alarm_control_panel
diff --git a/source/_integrations/somfy.markdown b/source/_integrations/somfy.markdown
index abbbde5126a..72f41d0fd9a 100644
--- a/source/_integrations/somfy.markdown
+++ b/source/_integrations/somfy.markdown
@@ -26,6 +26,7 @@ ha_codeowners:
- '@imicknl'
- '@vlebourl'
- '@tetienne'
+ - '@nyroDev'
ha_config_flow: true
ha_platforms:
- alarm_control_panel
diff --git a/source/_integrations/ssdp.markdown b/source/_integrations/ssdp.markdown
index 56569db5e12..6c019bf0896 100644
--- a/source/_integrations/ssdp.markdown
+++ b/source/_integrations/ssdp.markdown
@@ -12,7 +12,7 @@ ha_integration_type: system
The `ssdp` "Simple Service Discovery Protocol" (part of UPnP) integration will scan the network for supported devices and services. Discovered integrations will show up in the discovered section on the integrations page in the configuration panel.
-Integrations can opt-in to be found by adding [an SSDP section](https://developers.home-assistant.io/docs/en/next/creating_integration_manifest.html#ssdp) to their `manifest.json`.
+Integrations can opt-in to be found by adding [an SSDP section](https://developers.home-assistant.io/docs/creating_integration_manifest/#ssdp) to their `manifest.json`.
## Configuration
diff --git a/source/_integrations/switchbot.markdown b/source/_integrations/switchbot.markdown
index adeeef3c594..8087e3519c1 100644
--- a/source/_integrations/switchbot.markdown
+++ b/source/_integrations/switchbot.markdown
@@ -22,7 +22,9 @@ ha_bluetooth: true
ha_platforms:
- binary_sensor
- cover
+ - humidifier
- light
+ - lock
- sensor
- switch
- lock
@@ -34,7 +36,7 @@ The SwitchBot integration allows you to control SwitchBot [devices](https://www.
## Prerequisites
-In order to use this integration, it is required to have working Bluetooth set up on the device running Home Assistant. A [SwitchBot Hub](https://www.switch-bot.com/search?type=product&q=hub) is not required for this integration.
+In order to use this integration, it is required to have working Bluetooth set up on the device running Home Assistant. A [SwitchBot Hub](https://switch-bot.com/pages/switchbot-hub-mini) is not required for this integration.
If you have multiple devices of the same type, you need to get the BTLE MAC address of your device to tell your devices apart. You can find the address for your device using the following steps:
diff --git a/source/_integrations/systemmonitor.markdown b/source/_integrations/systemmonitor.markdown
index 0954cc6f0f2..22fa1b3ef55 100644
--- a/source/_integrations/systemmonitor.markdown
+++ b/source/_integrations/systemmonitor.markdown
@@ -111,12 +111,16 @@ sensor:
## Linux specific
To retrieve all available network interfaces on a Linux System, execute the
-`ifconfig` command.
+`ifconfig` or `ip` command. The command differs based on your operation system and version.
```bash
ifconfig -a | sed 's/[ \t].*//;/^$/d'
```
+```bash
+ip link show
+```
+
## Windows specific
When running this platform on Microsoft Windows, Typically,
diff --git a/source/_integrations/timer.markdown b/source/_integrations/timer.markdown
index 3bcf43802fb..82b3313e1ee 100644
--- a/source/_integrations/timer.markdown
+++ b/source/_integrations/timer.markdown
@@ -60,7 +60,7 @@ timer:
default: false
{% endconfiguration %}
-Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your timer and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`.
+Pick an icon from [Material Design Icons](https://pictogrammers.com/library/mdi/) to use for your timer and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`.
## Possible States
diff --git a/source/_integrations/tuya.markdown b/source/_integrations/tuya.markdown
index cc7fbbf1816..66914a9c585 100644
--- a/source/_integrations/tuya.markdown
+++ b/source/_integrations/tuya.markdown
@@ -114,6 +114,17 @@ Click the created project to enter the `Project Overview` page and get the `Auth
{% configuration_basic %}
+If no devices show up in Home Assistant:
+ description: >
+ - First, make sure the devices show up in Tuya's cloud portal under the devices tab.
+
+ - In the Tuya IoT configuration cloud portal, you must NOT link your non-developer account under the "Users" tab. Doing so will work, and you can even still add the devices under the devices tab, but the API will send 0 devices down to Home Assistant. You must only link the account under the Devices->"Link Tuya App Account". If it shows up on the users tab, be sure to delete it.
+
+ - Your region may not be correctly set.
+
+ - Make sure your cloud plan does not need to be renewed (see error #28841002 on this page).
+
+
"1004: sign invalid":
description: Incorrect Access ID or Access Secret. Please refer to the **Configuration** part above.
diff --git a/source/_integrations/ubiwizz.markdown b/source/_integrations/ubiwizz.markdown
index b209f6c3d20..281945781f9 100644
--- a/source/_integrations/ubiwizz.markdown
+++ b/source/_integrations/ubiwizz.markdown
@@ -26,6 +26,7 @@ ha_codeowners:
- '@imicknl'
- '@vlebourl'
- '@tetienne'
+ - '@nyroDev'
ha_config_flow: true
ha_platforms:
- alarm_control_panel
diff --git a/source/_integrations/vacuum.mqtt.markdown b/source/_integrations/vacuum.mqtt.markdown
index dfcfce64567..c869e87a0c3 100644
--- a/source/_integrations/vacuum.mqtt.markdown
+++ b/source/_integrations/vacuum.mqtt.markdown
@@ -70,7 +70,7 @@ availability_topic:
required: false
type: string
battery_level_template:
- description: Defines a [template](/topics/templating/) to define the battery level of the vacuum. This is required if `battery_level_topic` is set.
+ description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to define the battery level of the vacuum. This is required if `battery_level_topic` is set.
required: false
type: string
battery_level_topic:
@@ -78,7 +78,7 @@ battery_level_topic:
required: false
type: string
charging_template:
- description: Defines a [template](/topics/templating/) to define the charging state of the vacuum. This is required if `charging_topic` is set.
+ description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to define the charging state of the vacuum. This is required if `charging_topic` is set.
required: false
type: string
charging_topic:
diff --git a/source/_integrations/vicare.markdown b/source/_integrations/vicare.markdown
index 40b6c8c27d4..833c761848d 100644
--- a/source/_integrations/vicare.markdown
+++ b/source/_integrations/vicare.markdown
@@ -34,7 +34,7 @@ There is currently support for the following device types within Home Assistant:
Set `username`and `password` to your Viessmann Developer Portal login credentials.
The required Client ID can be obtained as follows:
-1. Register and login in the [Viessmann Developer Portal](https://developer.viessmann.com).
+1. Register and login in the [Viessmann Developer Portal](https://developer.viessmann.com). Use the same account as the one you registered your device with in ViCare.
2. In the menu navigate to API Keys.
3. Create a new OAuth client using the following data:
```txt
@@ -42,6 +42,7 @@ The required Client ID can be obtained as follows:
Google reCAPTCHA: Disabled
Redirect URIs: vicare://oauth-callback/everest
```
+4. Copy the Client ID from the Viessmann portal and enter this in the API Key field in Home Assistant.
The `heating_type` can either be `auto` to automatically find the most suitable type for your device or one of `gas`, `oil`, `pellets`, `heatpump`, `fuelcell`, `hybrid`.
diff --git a/source/_integrations/weather.markdown b/source/_integrations/weather.markdown
index 827101a59fc..c428b931127 100644
--- a/source/_integrations/weather.markdown
+++ b/source/_integrations/weather.markdown
@@ -17,7 +17,7 @@ Home Assistant currently supports free web services some of which require regist
## Condition mapping
-The `weather` platform only knows the below listed conditions. The reason for this is that for these conditions is an icon from [Material Design Icons](https://materialdesignicons.com/) available and mapped in the frontend.
+The `weather` platform only knows the below listed conditions. The reason for this is that for these conditions is an icon from [Material Design Icons](https://pictogrammers.com/library/mdi/) available and mapped in the frontend.
- 'clear-night'
- 'cloudy'
diff --git a/source/_integrations/webostv.markdown b/source/_integrations/webostv.markdown
index 1d4e372a936..c1ddc484fd5 100644
--- a/source/_integrations/webostv.markdown
+++ b/source/_integrations/webostv.markdown
@@ -177,4 +177,4 @@ automation:
## Notes
-If Home Assistant and your TV are not on the same network, you need to create a firewall rule, which allows a connection on port 3000 with the TCP protocol from Home Assistant to your TV.
+If Home Assistant and your TV are not on the same network, you need to create a firewall rule, which allows a connection on ports 3000 & 3001 with the TCP protocol from Home Assistant to your TV.
diff --git a/source/_integrations/wiz.markdown b/source/_integrations/wiz.markdown
index 425661432fd..fcd79394edb 100644
--- a/source/_integrations/wiz.markdown
+++ b/source/_integrations/wiz.markdown
@@ -33,13 +33,13 @@ These devices have been sold under at least the following brands:
- [4Lite](https://4liteuk.com/)
- AEG
- [Altair](https://altairlighting.com/default.dmx)
-- [Ansell](https://anselluk.com/)
+- [Ansell](https://ansell-lighting.com/)
- [Atom Lighting](https://atomlighting.com.au/)
- [ATX LED](https://atxledinc.com/)
- [Brilliant](https://www.brilliantlightsource.com/)
- [Designers Fountain](https://designersftn.com/default.dmx)
- [Evoluziona](https://tecnolite.mx/)
-- [Fischer & Honsel](https://www.fischer-honsel.de/de/)
+- [Fischer & Honsel](https://fischer-honsel.com/)
- [Gauss](https://gauss.ru/smartlight/products/)
- iDual
- [KSR](https://www.ksrlighting.com/)
diff --git a/source/_integrations/xiaomi_miio.markdown b/source/_integrations/xiaomi_miio.markdown
index e8b76e6a0fa..117272d51b0 100644
--- a/source/_integrations/xiaomi_miio.markdown
+++ b/source/_integrations/xiaomi_miio.markdown
@@ -1387,6 +1387,7 @@ Currently supported services are:
Fan speeds: `Silent`, `Standard`, `Medium`, `Turbo` and `Gentle` (exclusively for mopping).
- `remote_control_*` (of your robot)
- `xiaomi_clean_zone`
+- `xiaomi_clean_segment`
### Platform Services
@@ -1397,6 +1398,7 @@ In addition to all of the services provided by the `vacuum` integration (`start`
- `xiaomi_miio.vacuum_remote_control_move`
- `xiaomi_miio.vacuum_remote_control_move_step`
- `xiaomi_miio.vacuum_clean_zone`
+- `xiaomi_miio.vacuum_clean_segment`
### Service `xiaomi_miio.vacuum_remote_control_start`
diff --git a/source/_integrations/yalexs_ble.markdown b/source/_integrations/yalexs_ble.markdown
index 3234199e14a..def3c0c9bad 100644
--- a/source/_integrations/yalexs_ble.markdown
+++ b/source/_integrations/yalexs_ble.markdown
@@ -36,6 +36,7 @@ Devices must have a Yale Access module installed to function with this integrati
- YRD256 (Yale Assure Lock Keypad)
- YRD420 (Yale Assure Lock 2)
- YRD450 (Yale Assure Lock 2 Key Free)
+- YUR/SSDL/1/SIL (Yale Unity Screen Door Lock - Australia)
- ASL-05 (August WiFi Smart Lock - Gen 4)
- ASL-03 (August Smart Lock Pro - Gen 3)
- ASL-02 (August Smart Lock Pro - Gen 2)
@@ -66,7 +67,9 @@ The offline key and slot number are required to operate the lock. These credenti
### Yale Access or August Cloud
-The [August](/integrations/august) integration will automatically provision the offline key if the configured account has the key loaded. You may need to create or use a non-primary existing account with owner-level access to the lock, as not all accounts will have the key loaded.
+The [August](/integrations/august) integration can automatically provision the offline key if the configured account has the key loaded. You may need to create or use a non-primary existing account with owner-level access to the lock, as not all accounts will have the key loaded.
+
+If the offline key can automatically be provisioned, you will not be asked to enter it and the integration should be automatically added, configured and running.
Most Yale branded locks can use the August cloud to obtain the keys. Accessing the August cloud to receive the key may not work unless the lock was purchased in a market that sells under both brands.
diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown
index 89b2f003461..e3ac18ed057 100644
--- a/source/_integrations/zha.markdown
+++ b/source/_integrations/zha.markdown
@@ -77,25 +77,33 @@ Some other Zigbee coordinator hardware may not support a firmware that is capabl
### Known working Zigbee radio modules
-- dresden elektronik deCONZ based Zigbee radios (via the [zigpy-deconz](https://github.com/zigpy/zigpy-deconz) library for zigpy)
- - [ConBee II (a.k.a. ConBee 2) USB adapter from dresden elektronik](https://phoscon.de/conbee2)
- - [ConBee USB adapter from dresden elektronik](https://phoscon.de/conbee)
- - [RaspBee II (a.k.a. RaspBee 2) Raspberry Pi Shield from dresden elektronik](https://phoscon.de/raspbee2)
- - [RaspBee Raspberry Pi Shield from dresden elektronik](https://phoscon.de/raspbee)
+### Recommended Zigbee radio adapters and modules
+
- Silicon Labs EmberZNet based radios using the EZSP protocol (via the [bellows](https://github.com/zigpy/bellows) library for zigpy)
- [Home Assistant SkyConnect](/skyconnect/)
- [ITead SONOFF Zigbee 3.0 USB Dongle Plus Model "ZBDongle-E" (EFR32MG21 variant)](https://itead.cc/product/zigbee-3-0-usb-dongle/)
- - [ITead Sonoff ZBBridge](https://itead.cc/product/sonoff-zbbridge/) (Note! [WiFi-based bridges are not recommended for ZHA with EZSP radios](https://github.com/home-assistant/home-assistant.io/issues/17170). Also, this first have to be flashed with [Tasmota firmware and Silabs EmberZNet NCP EZSP UART Host firmware to use as Serial-to-IP adapter](https://www.digiblur.com/2020/07/how-to-use-sonoff-zigbee-bridge-with.html))
- - [Nortek GoControl QuickStick Combo Model HUSBZB-1 (Z-Wave & Zigbee Ember 3581 USB Adapter)](https://www.nortekcontrol.com/products/2gig/husbzb-1-gocontrol-quickstick-combo/) (Note! Not a must but recommend [upgrade the EmberZNet NCP application firmware](https://github.com/walthowd/husbzb-firmware))
- [Elelabs Zigbee USB Adapter](https://elelabs.com/products/elelabs-usb-adapter.html)/[POPP ZB-Stick](https://shop.zwave.eu/detail/index/sArticle/2496) (Note! Not a must but recommend [upgrade the EmberZNet NCP application firmware](https://github.com/Elelabs/elelabs-zigbee-ezsp-utility))
- [Elelabs Zigbee Raspberry Pi Shield](https://elelabs.com/products/elelabs-zigbee-shield.html) (Note! Not a must but recommend [upgrade the EmberZNet NCP application firmware](https://github.com/Elelabs/elelabs-zigbee-ezsp-utility))
- - [Bitron Video/Smabit BV AV2010/10 USB-Stick](https://bv.smabit.eu/index.php/smart-home-produkte/zb-funkstick/) with Silicon Labs Ember 3587
- - Telegesis ETRX357USB/ETRX357USB-LR/ETRX357USB-LRS+8M (Note! These first have to be [flashed with other EmberZNet firmware](https://github.com/walthowd/husbzb-firmware))
- Texas Instruments based radios (via the [zigpy-znp](https://github.com/zigpy/zigpy-znp) library for zigpy)
- [CC2652P/CC2652R/CC2652RB USB stick, module, or dev board hardware flashed with Z-Stack coordinator firmware](https://www.zigbee2mqtt.io/information/supported_adapters)
- [CC1352P/CC1352R USB stick, module, or dev board hardware flashed with Z-Stack coordinator firmware](https://www.zigbee2mqtt.io/information/supported_adapters)
+- dresden elektronik deCONZ based Zigbee radios (via the [zigpy-deconz](https://github.com/zigpy/zigpy-deconz) library for zigpy)
+ - [ConBee II (a.k.a. ConBee 2) USB adapter from dresden elektronik](https://phoscon.de/conbee2)
+ - [RaspBee II (a.k.a. RaspBee 2) Raspberry Pi Shield from dresden elektronik](https://phoscon.de/raspbee2)
+
+### Other supported but not recommended Zigbee radio adapters or modules
+
+- Silicon Labs EmberZNet based radios using legacy hardware using the EZSP protocol (via the [bellows](https://github.com/zigpy/bellows) library for zigpy)
+ - [ITead Sonoff ZBBridge](https://itead.cc/product/sonoff-zbbridge/) (Note! [WiFi-based bridges are not recommended for ZHA with EZSP radios](https://github.com/home-assistant/home-assistant.io/issues/17170). Also, this first have to be flashed with [Tasmota firmware and Silabs EmberZNet NCP EZSP UART Host firmware to use as Serial-to-IP adapter](https://www.digiblur.com/2020/07/how-to-use-sonoff-zigbee-bridge-with.html))
+ - [Nortek GoControl QuickStick Combo Model HUSBZB-1 (Z-Wave & Zigbee Ember 3581 USB Adapter)](https://www.nortekcontrol.com/products/2gig/husbzb-1-gocontrol-quickstick-combo/) (Note! Not a must but recommend [upgrade the EmberZNet NCP application firmware](https://github.com/walthowd/husbzb-firmware))
+ - [Bitron Video/Smabit BV AV2010/10 USB-Stick](https://bv.smabit.eu/index.php/smart-home-produkte/zb-funkstick/) with Silicon Labs Ember 3587
+ - Telegesis ETRX357USB/ETRX357USB-LR/ETRX357USB-LRS+8M (Note! These first have to be [flashed with other EmberZNet firmware](https://github.com/walthowd/husbzb-firmware))
+- Texas Instruments based radios using legacy hardware (via the [zigpy-znp](https://github.com/zigpy/zigpy-znp) library for zigpy)
- [CC2538 USB stick, module, or dev board hardware flashed with Z-Stack coordinator firmware](https://www.zigbee2mqtt.io/information/supported_adapters) (no longer recommended as only got deprecated old end-of-life firmware)
- [CC2530/CC2531 USB stick, module, or dev board hardware flashed with Z-Stack coordinator firmware](https://www.zigbee2mqtt.io/information/supported_adapters) (no longer recommended as uses deprecated hardware and very old end-of-life firmware, plus will not work properly at all if the whole Zigbee network has more than 15-20 devices)
+- dresden elektronik deCONZ based Zigbee radios using legacy hardware (via the [zigpy-deconz](https://github.com/zigpy/zigpy-deconz) library for zigpy)
+ - [ConBee USB adapter from dresden elektronik](https://phoscon.de/conbee)
+ - [RaspBee Raspberry Pi Shield from dresden elektronik](https://phoscon.de/raspbee)
- Digi XBee Zigbee based radios (via the [zigpy-xbee](https://github.com/zigpy/zigpy-xbee) library for zigpy)
- [Digi XBee Series 3 (xbee3-24)](https://www.digi.com/products/embedded-systems/digi-xbee/rf-modules/2-4-ghz-rf-modules/xbee3-zigbee-3) and [Digi XBee Series S2C](https://www.digi.com/products/embedded-systems/digi-xbee/rf-modules/2-4-ghz-rf-modules/xbee-zigbee) modules
- Note! While not a must, [it is recommend to upgrade XBee Series 3 and S2C to newest firmware using XCTU](https://www.digi.com/resources/documentation/Digidocs/90002002/Default.htm#Tasks/t_load_zb_firmware.htm)
@@ -106,7 +114,6 @@ Some other Zigbee coordinator hardware may not support a firmware that is capabl
- [PiZiGate (ZiGate Raspberry Pi module)](https://zigate.fr/produit/pizigatev2/)
- [ZiGate-Ethernet (Ethernet gateway board for PiZiGate)](https://zigate.fr/produit/zigate-ethernet/)
- [ZiGate + WiFi Pack](https://zigate.fr/produit/zigatev2-pack-wifi/)
-
#### Warning about Wi-Fi-based Zigbee-to-Serial bridges/gateways
@@ -155,7 +162,7 @@ radio type. In the pop-up:
Most devices need at the very least the serial device path, like `/dev/ttyUSB0`, but it is recommended to use
device path from `/dev/serial/by-id` folder,
e.g., `/dev/serial/by-id/usb-Silicon_Labs_HubZ_Smart_Home_Controller_C0F003D3-if01-port0`
-A list of available device paths can be found in {% my hardware title="Settings > System > HArdware" %} > **dot menu** > **All Hardware**.
+A list of available device paths can be found in {% my hardware title="Settings > System > Hardware" %} > **dot menu** > **All Hardware**.
Press `Submit`. The success dialog will appear or an error will be displayed in the popup. An error is likely if Home Assistant can't access the USB device or your device is not up to date. Refer to [Troubleshooting](#troubleshooting) below for more information.
diff --git a/source/_integrations/zone.markdown b/source/_integrations/zone.markdown
index 3c3969976c9..0f95a09cad4 100644
--- a/source/_integrations/zone.markdown
+++ b/source/_integrations/zone.markdown
@@ -86,7 +86,7 @@ Devices that are in the zone **'Home'** will not appear on the map in the Home A
## Icons
-It is recommended that you pick an icon to use for your zone. Pick any icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) and prefix the name with `mdi:`. For example `mdi:school`, `mdi:briefcase`, `mdi:home`, `mdi:cart`, or `mdi:castle`.
+It is recommended that you pick an icon to use for your zone. Pick any icon from [Material Design Icons](https://pictogrammers.com/library/mdi/) and prefix the name with `mdi:`. For example `mdi:school`, `mdi:briefcase`, `mdi:home`, `mdi:cart`, or `mdi:castle`.
## State
diff --git a/source/_posts/2015-11-16-zwave-switches-lights-and-honeywell-thermostats-now-supported.markdown b/source/_posts/2015-11-16-zwave-switches-lights-and-honeywell-thermostats-now-supported.markdown
index f91198dffc7..a7cb68e5745 100644
--- a/source/_posts/2015-11-16-zwave-switches-lights-and-honeywell-thermostats-now-supported.markdown
+++ b/source/_posts/2015-11-16-zwave-switches-lights-and-honeywell-thermostats-now-supported.markdown
@@ -10,7 +10,7 @@ categories:
- Core
---
-We have all been hard at work to get this latest release ready. One of the big highlights in this release is the introduction of an extended iconset to be used in the frontend (credits to [@happyleavesaoc] for idea and prototype). To get started with customizing, pick any icon from [MaterialDesignIcons.com], prefix the name with `mdi:` and stick it into your `customize` section in `configuration.yaml`:
+We have all been hard at work to get this latest release ready. One of the big highlights in this release is the introduction of an extended iconset to be used in the frontend (credits to [@happyleavesaoc] for idea and prototype). To get started with customizing, pick any icon from [Material Design Icons], prefix the name with `mdi:` and stick it into your `customize` section in `configuration.yaml`:
```yaml
homeassistant:
@@ -21,7 +21,7 @@ homeassistant:
#### Breaking changes
- - Any existing zone icon will have to be replaced with one from [MaterialDesignIcons.com].
+ - Any existing zone icon will have to be replaced with one from [Material Design Icons].
- LimitlessLED light services require colors to be specified in RGB instead of XY.
#### Changes
@@ -43,7 +43,7 @@ homeassistant:
* Switch RGB as the color unit used in light component ([@balloob])
* Re-install platform and component dependencies after a Home Assistant version upgrade ([@balloob])
-[MaterialDesignIcons.com]: https://MaterialDesignIcons.com
+[Material Design Icons]: https://pictogrammers.com/library/mdi/
[@sander76]: https://github.com/sander76
[@happyleavesaoc]: https://github.com/happyleavesaoc
[@ryanturner]: https://github.com/ryanturner
diff --git a/source/_posts/2017-04-08-eddystone-beacons--lockitron-locks--total-connect.markdown b/source/_posts/2017-04-08-eddystone-beacons--lockitron-locks--total-connect.markdown
index 37f0a49edbd..5d4cacfbbd2 100644
--- a/source/_posts/2017-04-08-eddystone-beacons--lockitron-locks--total-connect.markdown
+++ b/source/_posts/2017-04-08-eddystone-beacons--lockitron-locks--total-connect.markdown
@@ -21,7 +21,7 @@ Also want to take a moment to thank Austin Andrews aka [Templarian] for his [Mat
[hass-fb]: https://www.facebook.com/homeassistantio
[diyAutomate]: https://www.youtube.com/c/diyautomate
-[mli]: https://materialdesignicons.com/
+[mli]: https://pictogrammers.com/library/mdi/
[Templarian]: https://github.com/templarian
## New integrations
diff --git a/source/_posts/2019-02-06-release-87.markdown b/source/_posts/2019-02-06-release-87.markdown
index 6a4c9e24225..a2de7b78eee 100644
--- a/source/_posts/2019-02-06-release-87.markdown
+++ b/source/_posts/2019-02-06-release-87.markdown
@@ -23,7 +23,7 @@ This release also includes a UI to manage the entity registry. The entity regist
We didn't forget about the frontend in this release. In the last release we introduced Lovelace, so for this release we focused on bug squashing, performance improvements and usability. The YAML editor is now rendered using a full editor including line numbers thanks to [@bramkragten]. There is also a new system health component that will help users diagnose problems from the "info" developer tool. [See changelog for the frontend.](https://github.com/home-assistant/home-assistant-polymer/releases/tag/20190130.1)
-In this release we have also upgraded the Material Design Icons to 3.3.92, which renames some icons. Make sure to check [their changelog](https://dev.materialdesignicons.com/upgrade).
+In this release we have also upgraded the Material Design Icons to 3.3.92, which renames some icons. Make sure to check [their changelog](https://pictogrammers.com/docs/library/mdi/releases/changelog/).
If you prefer a podcast over release notes, check out [the Hass Podcast](https://hasspodcast.io/ha043/) in which Phil and Rohan discuss each new Home Assistant release and keep a tap on what's happening in the home automation space.
diff --git a/source/_posts/2020-07-01-release-113.markdown b/source/_posts/2020-07-01-release-113.markdown
index a6d3f1c9e9f..39f4da2d98f 100644
--- a/source/_posts/2020-07-01-release-113.markdown
+++ b/source/_posts/2020-07-01-release-113.markdown
@@ -351,8 +351,8 @@ Please note: It is possible that custom integrations (also known as
custom components) use deprecated icons. These can throw warnings that need
to be addressed in the custom integration.
-[mdi]: https://materialdesignicons.com
-[mdi-upgrade]: https://dev.materialdesignicons.com/upgrade#4.9.95-to-5.0.45
+[mdi]: https://pictogrammers.com/library/mdi/
+[mdi-upgrade]: https://pictogrammers.com/docs/library/mdi/releases/upgrade/#4995-to-5045
[simple-icons]: https://simpleicons.org/
[hass-simpleicons]: https://github.com/vigonotion/hass-simpleicons
diff --git a/source/_posts/2020-09-17-release-115.markdown b/source/_posts/2020-09-17-release-115.markdown
index 9c684e0c186..e3a011ea887 100644
--- a/source/_posts/2020-09-17-release-115.markdown
+++ b/source/_posts/2020-09-17-release-115.markdown
@@ -814,7 +814,7 @@ Drag and and drop the entities in the order you want.
- The [Met.no](/integrations/met) now supports hourly forecasts, very nice [@bruxy70]!
-- The MDI icons are updated to version [5.5.55](https://dev.materialdesignicons.com/changelog#version-5.5.55),
+- The MDI icons are updated to version [5.5.55](https://pictogrammers.com/docs/library/mdi/releases/changelog/#version-5555),
this adds another 100 icons you can use!
- The Google Assistant integration got some updates:
@@ -1309,7 +1309,7 @@ corner of the Lovelace screen.
MDI Icons
-The MDI icons are updated to version [5.5.55](https://dev.materialdesignicons.com/changelog#version-5.5.55),
+The MDI icons are updated to version [5.5.55](https://pictogrammers.com/docs/library/mdi/releases/changelog/#version-5555),
this adds another 100 icons you can use!
In 5.5.55 there was 1 breaking change, if you used the icon `mdi:scooter` this
@@ -1318,7 +1318,7 @@ configuration.
All icons that were deprecated in [0.113.0](/blog/2020/07/22/release-113/#mdi-icons-updated)
have now been removed. Icons that were renamed or deleted in
-version [5.0.45](https://dev.materialdesignicons.com/upgrade#4.9.95-to-5.0.45)
+version [5.0.45](https://pictogrammers.com/docs/library/mdi/releases/upgrade/#4995-to-5045)
will no longer work.
diff --git a/source/_posts/2021-10-06-release-202110.markdown b/source/_posts/2021-10-06-release-202110.markdown
index deb00b39e14..9c8603aedbf 100644
--- a/source/_posts/2021-10-06-release-202110.markdown
+++ b/source/_posts/2021-10-06-release-202110.markdown
@@ -162,7 +162,7 @@ they will keep working for the upcoming two releases. Home Assistant will
write warnings in the logs in case you are using one of the affected icons.
The breaking changes section has more information about this.
-[mdi]: https://materialdesignicons.com/
+[mdi]: https://pictogrammers.com/library/mdi/
## Encrypted communications support for ESPHome
diff --git a/source/_posts/2021-11-03-release-202111.markdown b/source/_posts/2021-11-03-release-202111.markdown
index 92786e90658..50d2c70594f 100644
--- a/source/_posts/2021-11-03-release-202111.markdown
+++ b/source/_posts/2021-11-03-release-202111.markdown
@@ -185,7 +185,7 @@ Adding nice and matching icons to your entities, makes all the difference for
how your Home Assistant interface looks and feels.
Finding those icons was somewhat clumsy. You'd go to the
-[Material Design Icons](https://materialdesignicons.com/) website to find one,
+[Material Design Icons](https://pictogrammers.com/library/mdi/) website to find one,
remember its code and add the `mdi:` to your entity. Not a great
experience, especially with the number of icons available your browser doesn't
always like that website.
diff --git a/source/_posts/2022-04-06-release-20224.markdown b/source/_posts/2022-04-06-release-20224.markdown
index 9de97a75d6c..7aacb4300e5 100644
--- a/source/_posts/2022-04-06-release-20224.markdown
+++ b/source/_posts/2022-04-06-release-20224.markdown
@@ -495,7 +495,7 @@ noteworthy changes this release:
[Hue]: /integrations/hue
[Linn / OpenHome]: /integrations/linn
[Logitech Squeezebox]: /integrations/squeezebox
-[Material Design Icons]: https://materialdesignicons.com/
+[Material Design Icons]: https://pictogrammers.com/library/mdi/
[Music Player Daemon (MPD)]: /integrations/mpd
[Panasonic Viera]: /integrations/panasonic_viera
[RFXCOM RFXtrx]: /integrations/rfxtrx
diff --git a/source/_posts/2022-08-03-release-20228.markdown b/source/_posts/2022-08-03-release-20228.markdown
index 959bb878439..07c2f87b754 100644
--- a/source/_posts/2022-08-03-release-20228.markdown
+++ b/source/_posts/2022-08-03-release-20228.markdown
@@ -784,7 +784,7 @@ to handle the extra decimal places.
{% details "Material Design Icons" %}
In the latest Material Design Icons update,
-[several icons have been renamed or removed](https://dev.materialdesignicons.com/changelog#version-7.0.96).
+[several icons have been renamed or removed](https://pictogrammers.com/docs/library/mdi/releases/changelog/#version-7096).
Removed and renamed icons will continue to work for the next two releases.
Please make sure you update any use of the following MDI icons:
diff --git a/source/_posts/2023-01-04-release-20231.markdown b/source/_posts/2023-01-04-release-20231.markdown
new file mode 100644
index 00000000000..2fdf83ebd1c
--- /dev/null
+++ b/source/_posts/2023-01-04-release-20231.markdown
@@ -0,0 +1,827 @@
+---
+layout: post
+title: "2023.1: Happy New Year of the voice!"
+description: "The first release of the year of the voice! Adding entity aliases for your voice assistants, calendar event editing, progress on Matter, and entity translations improvements!"
+date: 2023-01-04 00:00:00
+date_formatted: "January 4, 2023"
+author: Franck Nijhof
+author_twitter: frenck
+comments: true
+categories:
+- Release-Notes
+- Core
+og_image: /images/blog/2023-01/social.png
+---
+
+
+
+Happy New Year! 🍾
+
+We wish you, and all the loved ones around you, all the best for 2023! 🥂
+
+2023: What an exciting year this will be; [The year of the voice](/blog/2022/12/20/year-of-voice/)!
+And not just that, many exciting things are expected this year. More spoilers
+can be found in the [State of the Open Home 2022](https://www.youtube.com/watch?v=D936T1Ze8-4)
+recording on YouTube.
+
+Starting this amazing year with: Home Assistant Core 2023.1! 🎊
+
+A fairly small release, as we all enjoyed our Holidays. Yet, the first traces
+of the voice project are already visible: support for entity aliases!
+
+Still, this release contains over 800 changes, most of which are
+quality improvements, bug and stability fixes, and other minor improvements.
+The perfect release to start the year with, an easy upgrade worth doing.
+
+Enjoy the release!
+
+../Frenck
+
+PS: Did you know [Home Assistant is now on Mastodon](https://fosstodon.org/@homeassistant) too?
+
+
+
+- [The year of the voice!](#the-year-of-the-voice)
+- [Entity aliases for voice assistants](#entity-aliases-for-voice-assistants)
+- [Progress on Matter](#progress-on-matter)
+- [Extending calendar support](#extending-calendar-support)
+- [Translation improvements for entities](#translation-improvements-for-entities)
+- [Other noteworthy changes](#other-noteworthy-changes)
+- [New Integrations](#new-integrations)
+- [Release 2023.1.1 - January 5](#release-202311---january-5)
+- [Release 2023.1.2 - January 8](#release-202312---january-8)
+- [Release 2023.1.3 - January 10](#release-202313---january-10)
+- [Release 2023.1.4 - January 12](#release-202314---january-12)
+- [Release 2023.1.5 - January 17](#release-202315---january-17)
+- [Release 2023.1.6 - January 19](#release-202316---january-19)
+- [Release 2023.1.7 - January 22](#release-202317---january-22)
+- [Need help? Join the community!](#need-help-join-the-community)
+- [Breaking Changes](#breaking-changes)
+- [Farewell to the following](#farewell-to-the-following)
+- [All changes](#all-changes)
+
+Don't forget to [join our release party live stream on YouTube](https://www.youtube.com/watch?v=T8gpiGZKX6w) 4 January 2023, at 12:00 PST / 21:00 CET!
+
+
+
+## The year of the voice!
+
+You should have heard about it by now; 2023 is [Home Assistant's year of Voice](/blog/2022/12/20/year-of-voice/)!
+It is our goal for 2023 to let users control Home Assistant in their own
+language. As covered by [The Verge](https://www.theverge.com/2022/12/27/23527790/home-assistant-voice-control-rhasspy-nabu-casa-smart-google-siri-alexa),
+[ArsTechnica](https://arstechnica.com/gadgets/2022/12/with-voice-assistants-in-trouble-home-assistant-starts-a-local-alternative/),
+and [many others](https://9to5google.com/2022/12/23/home-assistant-voice/).
+
+The work on voice has already started by collecting intents in all the different
+languages we want to support. Intents describe the user's intention with what
+they've said (or written), so Home Assistant can understand what to do,
+like the action to take and which devices are involved.
+
+All the different possible intent sentences are now being collected in the
+[Intents for Home Assistant](https://github.com/home-assistant/intents) GitHub
+repository, and [we are looking for contributions](https://github.com/home-assistant/intents/blob/main/CONTRIBUTING.md)!
+So, feel free to jump in and help out!
+
+An overview of the current status of all intents and languages can be found on
+[this page](https://home-assistant.github.io/intents/). The page gives insight
+into the parts we need help with.
+
+Lastly, we are also looking for language leaders! Each language is maintained
+by one or more language leaders. Language leaders are responsible for reviewing
+their language's contributions and making sure they are grammatically correct.
+
+Anyone can apply to become one. If you want to apply to be a language leader,
+join us in [#devs_voice on Discord](/join-chat) or [open a discussion topic](https://github.com/home-assistant/intents/discussions).
+
+## Entity aliases for voice assistants
+
+The first little thing related to the voice project found in Home Assistant:
+Aliases for entity names are now configurable via the UI.
+
+Currently, configured aliases are used by Google Assistant and, of course, can
+later be used by our own voice assistant.
+
+These aliases are helpful in case you call the same device by multiple names
+or when using a voice assistant in multiple languages at the same time.
+
+
+
+The new aliases feature can be found on each entity's more information dialog
+in the settings tab in the advanced section. If you use
+[Home Assistant Cloud](https://www.nabucasa.com/), you can also manage your
+entity aliases (and the devices to expose to Google Assistant) in your
+[Home Assistant Cloud settings](https://my.home-assistant.io/redirect/cloud/).
+
+Multi-language can be an important factor when using Google Assistant, as those
+can be configured to support two languages at the same time. For example,
+English and Dutch simultaneously. Aliases allow you to provide names
+for translations as an alias. For instance, I have added
+"Woonkamer stofzuiger" (Dutch) as an alias to my living room vacuum.
+
+
+
+It was previously possible to configure Google Assistant-specific aliases via
+YAML as well, and this remains working. You can use either YAML or easily manage
+them via the UI.
+
+## Progress on Matter
+
+Last December release, we [introduced Matter support](/blog/2022/12/07/release-202212/#it-does-matter),
+and progress has been made since then. The code base has seen many fixes and
+improvements, and much effort has been put into adding more automated
+tests and quality assurance.
+
+There are also notable improvements; commissioning Matter devices have been
+improved (and fixed). So, adding [your first Matter device](https://nabucasa.github.io/matter-example-apps/)
+to Home Assistant should be a much better experience now.
+
+Lastly, the [Home Assistant Companion app for Android](https://play.google.com/store/apps/details?id=io.homeassistant.companion.android)
+with support for pairing Matter devices has been released! Thanks to the fantastic
+work by [@jpelgrom](https://github.com/jpelgrom) on the Android app, the
+commissioning experience is now even better! Here is a quick video showing
+how that works:
+
+
+
+This does require your Android device to be updated with Matter support which
+Google is rolling out within the Google Home app in recent Android versions.
+
+Support for pairing Matter devices using our iOS Companion app is being worked
+on.
+
+## Extending calendar support
+
+The last release introduced [the local calendar](/blog/2022/12/07/release-202212/#local-calendar),
+which included the capability to manage calendar events from Home Assistant.
+These features have now been added to the [Google Calendar](/integrations/google/)
+integration as well!
+
+Meaning you can now create a new event in your Google Calendar, straight
+from within Home Assistant. Neat!
+
+Furthermore, the local calendar has been extended to provide editing support for existing
+events 🤘
+
+
+
+Lastly, support for monthly variations in the recurrence rules has been
+added. This includes repetitions like: on the 20th day or the first Wednesday of
+the month. The latter, of course, is helpful to put the Home Assistant
+release day on your calendar 😉
+
+## Translation improvements for entities
+
+The support for translations for entities has been improved, especially those
+of entity attributes! A relatively small change that is improving the UI
+experience quite a bit.
+
+Some entities provide additional properties, for example, climate entities
+provide presets or fan modes. Integrations can now offer translations for
+those attribute values.
+
+Additionally, textual sensor entities can now provide a list of possible states
+they can be in, for which, of course, translations can be provided for now too.
+
+
+
+In the above screenshot, on the left, you can see how the presets of my
+thermostat now show up nicely in a human-readable format (instead of, for example,
+"anti_frost" in previous releases).
+
+On the right, the [Moon](/integrations/moon) sensor used in an automation
+trigger, Home Assistant can now suggest states you can use in those cases.
+Those suggestions will also be translated into the language you are using.
+
+## Other noteworthy changes
+
+There is much more juice in this release; here are some of the other
+noteworthy changes this release:
+
+- [@epenet] added a bunch of new device classes for sensors! We now have support
+ for data size, data rate, irradiance, sound pressure, and atmospheric pressure.
+- The [Shelly] integration now supports the Shelly Plus WallDimmer US,
+ thanks [@thecode]!
+- Configuration errors of automations and scripts with device automations have
+ been significantly improved, providing you with much more detail to help
+ you fix the problem. Thanks, [@emontnemery]!
+- [@AngellusMortis] added a text entity to the [UniFi Protect], so you can now
+ set the message displayed on your doorbell. Awesome!
+- [Google Translate] has been extended with dialect support, thanks [@toddejohnson]!
+- [Yale Access Bluetooth] now has support for battery status, thanks [@bdraco]!
+- Three nice new additions to [SwitchBot], [@konikoni428] added support for power
+ monitor of wallplugs, [@bdraco] added initial humidifier support, and
+ [@dsypniewski] added support for SwitchBot locks! Awesome!
+- [@FuzzyMistborn], added support for [ecobee] Smart Enhanced thermostats,
+ thank you!
+- [KNX] expose now has a cooldown option, which can be used to limit bus load.
+ Thanks, [@farmio]!
+
+[@AngellusMortis]: https://github.com/AngellusMortis
+[@bdraco]: https://github.com/bdraco
+[@dsypniewski]: https://github.com/dsypniewski
+[@emontnemery]: https://github.com/emontnemery
+[@epenet]: https://github.com/epenet
+[@farmio]: https://github.com/farmio
+[@FuzzyMistborn]: https://github.com/FuzzyMistborn
+[@konikoni428]: https://github.com/konikoni428
+[@thecode]: https://github.com/thecode
+[@toddejohnson]: https://github.com/toddejohnson
+[ecobee]: /integrations/ecobee
+[Google Translate]: /integrations/google_translate
+[KNX]: /integrations/knx
+[Shelly]: /integrations/shelly
+[SwitchBot]: /integrations/switchbot
+[UniFi Protect]: /integrations/unifiprotect
+[Yale Access Bluetooth]: /integrations/yalexs_ble
+
+## New Integrations
+
+We welcome the following new integrations in this release:
+
+- [AirVisual Pro], added by [@bachya]
+- [Google Assistant SDK], added by [@tronikos]
+- [PurpleAir], added by [@bachya]
+- [Reolink], added by [@starkillerOG]
+
+[@bachya]: https://github.com/bachya
+[@starkillerOG]: https://github.com/starkillerOG
+[@tronikos]: https://github.com/tronikos
+[AirVisual Pro]: /integrations/airvisual_pro
+[Google Assistant SDK]: /integrations/google_assistant_sdk
+[PurpleAir]: /integrations/purpleair
+[Reolink]: /integrations/reolink
+
+## Release 2023.1.1 - January 5
+
+- Limit calls in UniFi to write state ([@Kane610] - [#85248]) ([unifi docs])
+- Only subscribe to relevant IDs for state updates ([@Kane610] - [#85252]) ([unifi docs])
+- Bump pyeconet to 0.1.18 to fix energy usage ([@w1ll1am23] - [#85094]) ([econet docs])
+- Fix lacrosse_view fetching of latest data ([@nijel] - [#85117]) ([lacrosse_view docs])
+- Bump bthome-ble to 2.4.1 ([@Ernst79] - [#85153]) ([bthome docs])
+- Bump hatasmota to 0.6.2 ([@emontnemery] - [#85182]) ([tasmota docs])
+- Remove invalid AQI unit from Environment Canada ([@frenck] - [#85183]) ([environment_canada docs])
+- Adjust valid energy units ([@epenet] - [#85190]) ([energy docs])
+- Remove invalid device class for RSSI sensors ([@epenet] - [#85191]) ([zha docs])
+- Fix device class for DSMR gas sensors providing energy readings ([@frenck] - [#85202]) ([dsmr docs])
+- Improve error reporting when switchbot auth fails ([@bdraco] - [#85244]) ([switchbot docs])
+- bump reolink-aio to 0.1.2 ([@starkillerOG] - [#85247]) ([reolink docs])
+- Bump bimmer_connected to 0.12.0 ([@rikroe] - [#85255]) ([bmw_connected_drive docs])
+- Reject the WiFI AP when considering to update a shelly config entry from zeroconf ([@bdraco] - [#85265]) ([shelly docs])
+- Fix Fully Kiosk service call config entry handling ([@cgarwood] - [#85275]) ([fully_kiosk docs])
+
+[#85094]: https://github.com/home-assistant/core/pull/85094
+[#85117]: https://github.com/home-assistant/core/pull/85117
+[#85120]: https://github.com/home-assistant/core/pull/85120
+[#85153]: https://github.com/home-assistant/core/pull/85153
+[#85182]: https://github.com/home-assistant/core/pull/85182
+[#85183]: https://github.com/home-assistant/core/pull/85183
+[#85190]: https://github.com/home-assistant/core/pull/85190
+[#85191]: https://github.com/home-assistant/core/pull/85191
+[#85202]: https://github.com/home-assistant/core/pull/85202
+[#85244]: https://github.com/home-assistant/core/pull/85244
+[#85247]: https://github.com/home-assistant/core/pull/85247
+[#85248]: https://github.com/home-assistant/core/pull/85248
+[#85252]: https://github.com/home-assistant/core/pull/85252
+[#85255]: https://github.com/home-assistant/core/pull/85255
+[#85265]: https://github.com/home-assistant/core/pull/85265
+[#85275]: https://github.com/home-assistant/core/pull/85275
+[@Ernst79]: https://github.com/Ernst79
+[@Kane610]: https://github.com/Kane610
+[@bdraco]: https://github.com/bdraco
+[@cgarwood]: https://github.com/cgarwood
+[@emontnemery]: https://github.com/emontnemery
+[@epenet]: https://github.com/epenet
+[@frenck]: https://github.com/frenck
+[@nijel]: https://github.com/nijel
+[@rikroe]: https://github.com/rikroe
+[@starkillerOG]: https://github.com/starkillerOG
+[@w1ll1am23]: https://github.com/w1ll1am23
+[bmw_connected_drive docs]: /integrations/bmw_connected_drive/
+[bthome docs]: /integrations/bthome/
+[dsmr docs]: /integrations/dsmr/
+[econet docs]: /integrations/econet/
+[energy docs]: /integrations/energy/
+[environment_canada docs]: /integrations/environment_canada/
+[fully_kiosk docs]: /integrations/fully_kiosk/
+[lacrosse_view docs]: /integrations/lacrosse_view/
+[reolink docs]: /integrations/reolink/
+[shelly docs]: /integrations/shelly/
+[switchbot docs]: /integrations/switchbot/
+[tasmota docs]: /integrations/tasmota/
+[unifi docs]: /integrations/unifi/
+[zha docs]: /integrations/zha/
+
+## Release 2023.1.2 - January 8
+
+- Allow SensorDeviceClass.POWER_FACTOR unit None ([@epenet] - [#85287]) ([sensor docs]) ([number docs])
+- Retry ZHA config entry setup when `ENETUNREACH` is caught ([@puddly] - [#84615]) ([zha docs])
+- Fix dsmr_reader peak hour consumption unit of measurement ([@Glodenox] - [#85301]) ([dsmr_reader docs])
+- Bump reolink-aio to 0.1.3 ([@starkillerOG] - [#85309]) ([reolink docs])
+- Bump life360 package to 5.5.0 ([@pnbruckner] - [#85322]) ([life360 docs])
+- Switch play pause method in philips js ([@elupus] - [#85343]) ([philips_js docs])
+- Bump ZHA dependencies ([@puddly] - [#85355]) ([zha docs])
+- Add note to SwitchBot locks that usernames are case sensitive ([@bdraco] - [#85359]) ([switchbot docs])
+- Bump pySwitchbot to 0.36.3 ([@bdraco] - [#85360]) ([switchbot docs])
+- Increase Hydrawise default scan interval ([@mobilutz] - [#85398]) ([hydrawise docs])
+- Bump ical to 4.2.9 ([@allenporter] - [#85401]) ([local_calendar docs])
+- Bump gcal_sync to 4.1.1 ([@allenporter] - [#85453]) ([google docs])
+
+[#84615]: https://github.com/home-assistant/core/pull/84615
+[#85120]: https://github.com/home-assistant/core/pull/85120
+[#85277]: https://github.com/home-assistant/core/pull/85277
+[#85287]: https://github.com/home-assistant/core/pull/85287
+[#85301]: https://github.com/home-assistant/core/pull/85301
+[#85309]: https://github.com/home-assistant/core/pull/85309
+[#85322]: https://github.com/home-assistant/core/pull/85322
+[#85343]: https://github.com/home-assistant/core/pull/85343
+[#85355]: https://github.com/home-assistant/core/pull/85355
+[#85359]: https://github.com/home-assistant/core/pull/85359
+[#85360]: https://github.com/home-assistant/core/pull/85360
+[#85398]: https://github.com/home-assistant/core/pull/85398
+[#85401]: https://github.com/home-assistant/core/pull/85401
+[#85453]: https://github.com/home-assistant/core/pull/85453
+[@Glodenox]: https://github.com/Glodenox
+[@allenporter]: https://github.com/allenporter
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@elupus]: https://github.com/elupus
+[@epenet]: https://github.com/epenet
+[@frenck]: https://github.com/frenck
+[@mobilutz]: https://github.com/mobilutz
+[@pnbruckner]: https://github.com/pnbruckner
+[@puddly]: https://github.com/puddly
+[@starkillerOG]: https://github.com/starkillerOG
+[dsmr_reader docs]: /integrations/dsmr_reader/
+[google docs]: /integrations/google/
+[hydrawise docs]: /integrations/hydrawise/
+[life360 docs]: /integrations/life360/
+[local_calendar docs]: /integrations/local_calendar/
+[number docs]: /integrations/number/
+[philips_js docs]: /integrations/philips_js/
+[reolink docs]: /integrations/reolink/
+[sensor docs]: /integrations/sensor/
+[switchbot docs]: /integrations/switchbot/
+[zha docs]: /integrations/zha/
+
+## Release 2023.1.3 - January 10
+
+- Bump pyunifiprotect to 4.6.0 ([@AngellusMortis] - [#85483]) ([unifiprotect docs])
+- Remove invalid Signal Strength device class from NETGEAR ([@frenck] - [#85510]) ([netgear docs])
+- Restore Netgear signal strength icon ([@starkillerOG] - [#85512])
+- Remove invalid state class in Subaru sensor ([@epenet] - [#85520]) ([subaru docs])
+- Bump sense_energy to 0.11.1 ([@kbickar] - [#85533]) ([sense docs]) ([emulated_kasa docs])
+- Bump pyunifiprotect to 4.6.1 ([@AngellusMortis] - [#85547]) ([unifiprotect docs])
+- Do not check ble scanner state for sleepy shelly devices ([@bdraco] - [#85566]) ([shelly docs])
+- Remove no-longer-needed invalid API key monitor for OpenUV ([@bachya] - [#85573]) ([openuv docs])
+- Bump aioshelly to 5.2.1 to fix Task exception was never retrieved ([@thecode] - [#85575]) ([shelly docs])
+- Bump gcal-sync to 4.1.2 ([@allenporter] - [#85631]) ([google docs])
+- Bump hatasmota to 0.6.3 ([@emontnemery] - [#85633]) ([tasmota docs])
+- Update frontend to 20230110.0 ([@piitaya] - [#85640]) ([frontend docs])
+
+[#85120]: https://github.com/home-assistant/core/pull/85120
+[#85277]: https://github.com/home-assistant/core/pull/85277
+[#85481]: https://github.com/home-assistant/core/pull/85481
+[#85483]: https://github.com/home-assistant/core/pull/85483
+[#85510]: https://github.com/home-assistant/core/pull/85510
+[#85512]: https://github.com/home-assistant/core/pull/85512
+[#85520]: https://github.com/home-assistant/core/pull/85520
+[#85533]: https://github.com/home-assistant/core/pull/85533
+[#85547]: https://github.com/home-assistant/core/pull/85547
+[#85566]: https://github.com/home-assistant/core/pull/85566
+[#85573]: https://github.com/home-assistant/core/pull/85573
+[#85575]: https://github.com/home-assistant/core/pull/85575
+[#85631]: https://github.com/home-assistant/core/pull/85631
+[#85633]: https://github.com/home-assistant/core/pull/85633
+[#85640]: https://github.com/home-assistant/core/pull/85640
+[@AngellusMortis]: https://github.com/AngellusMortis
+[@allenporter]: https://github.com/allenporter
+[@bachya]: https://github.com/bachya
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@emontnemery]: https://github.com/emontnemery
+[@epenet]: https://github.com/epenet
+[@frenck]: https://github.com/frenck
+[@kbickar]: https://github.com/kbickar
+[@piitaya]: https://github.com/piitaya
+[@starkillerOG]: https://github.com/starkillerOG
+[@thecode]: https://github.com/thecode
+[emulated_kasa docs]: /integrations/emulated_kasa/
+[frontend docs]: /integrations/frontend/
+[google docs]: /integrations/google/
+[netgear docs]: /integrations/netgear/
+[openuv docs]: /integrations/openuv/
+[sense docs]: /integrations/sense/
+[shelly docs]: /integrations/shelly/
+[subaru docs]: /integrations/subaru/
+[tasmota docs]: /integrations/tasmota/
+[unifiprotect docs]: /integrations/unifiprotect/
+
+## Release 2023.1.4 - January 12
+
+- Upgrade aionanoleaf to 0.2.1 ([@milanmeu] - [#83669]) ([nanoleaf docs])
+- Improve Huawei LTE SSDP inclusion ([@scop] - [#85572]) ([huawei_lte docs])
+- Remove oauth2client dependency in Google Sheets ([@tkdrob] - [#85637]) ([google_sheets docs])
+- Upgrade huawei-lte-api to 1.6.11 ([@scop] - [#85669]) ([huawei_lte docs])
+- Update pyTibber to 0.26.8 ([@Danielhiversen] - [#85702]) ([tibber docs])
+- Bump pylitterbot to 2023.1.0 ([@natekspencer] - [#85484]) ([litterrobot docs])
+- Use built in polling for litterrobot update entity ([@natekspencer] - [#84678]) ([litterrobot docs])
+- Fix Litter-Robot 4 firmware versions reported while updating ([@natekspencer] - [#85710]) ([litterrobot docs])
+- Use jemalloc in Docker builds ([@frenck] - [#85738])
+- Bump aiowebostv to 0.3.0 ([@thecode] - [#85756]) ([webostv docs])
+
+[#83669]: https://github.com/home-assistant/core/pull/83669
+[#84678]: https://github.com/home-assistant/core/pull/84678
+[#85120]: https://github.com/home-assistant/core/pull/85120
+[#85277]: https://github.com/home-assistant/core/pull/85277
+[#85481]: https://github.com/home-assistant/core/pull/85481
+[#85484]: https://github.com/home-assistant/core/pull/85484
+[#85572]: https://github.com/home-assistant/core/pull/85572
+[#85637]: https://github.com/home-assistant/core/pull/85637
+[#85645]: https://github.com/home-assistant/core/pull/85645
+[#85669]: https://github.com/home-assistant/core/pull/85669
+[#85702]: https://github.com/home-assistant/core/pull/85702
+[#85710]: https://github.com/home-assistant/core/pull/85710
+[#85738]: https://github.com/home-assistant/core/pull/85738
+[#85756]: https://github.com/home-assistant/core/pull/85756
+[@Danielhiversen]: https://github.com/Danielhiversen
+[@balloob]: https://github.com/balloob
+[@frenck]: https://github.com/frenck
+[@milanmeu]: https://github.com/milanmeu
+[@natekspencer]: https://github.com/natekspencer
+[@scop]: https://github.com/scop
+[@thecode]: https://github.com/thecode
+[@tkdrob]: https://github.com/tkdrob
+[google_sheets docs]: /integrations/google_sheets/
+[huawei_lte docs]: /integrations/huawei_lte/
+[litterrobot docs]: /integrations/litterrobot/
+[nanoleaf docs]: /integrations/nanoleaf/
+[tibber docs]: /integrations/tibber/
+[webostv docs]: /integrations/webostv/
+
+## Release 2023.1.5 - January 17
+
+- Make API key mandatory for PI-Hole ([@mib1185] - [#85885]) ([pi_hole docs])
+- Reolink check for admin ([@starkillerOG] - [#85570]) ([reolink docs]) (dependency)
+- Remove sky connect config entry if USB stick is not plugged in ([@emontnemery] - [#85765]) ([usb docs]) ([homeassistant_sky_connect docs])
+- Remove WAQI unsupported UOM ([@yuvalabou] - [#85768]) ([waqi docs])
+- Bump pySwitchbot to 0.36.4 ([@bdraco] - [#85777]) ([switchbot docs]) (dependency)
+- Remove oauth2client dependency in Google Assistant SDK ([@tronikos] - [#85785]) ([google_assistant_sdk docs])
+- Fix WebOS TV image fetch SSL verify failure ([@thecode] - [#85841]) ([webostv docs])
+- Bump aiohomekit to 2.4.4 ([@bdraco] - [#85853]) ([homekit_controller docs]) (dependency)
+- Skip over files without mime type in Jellyfin ([@j-stienstra] - [#85874]) ([jellyfin docs])
+- Bump google-nest-sdm to 2.1.2 ([@allenporter] - [#84926]) ([nest docs]) (dependency)
+- Bump google-nest-sdm to 2.2.2 ([@allenporter] - [#85899]) ([nest docs]) (dependency)
+- Add a timeout during OAuth token exchange and additional debug logging ([@allenporter] - [#85911]) ([nest docs])
+- Bump aiowebostv to 0.3.1 to fix support for older devices ([@thecode] - [#85916]) ([webostv docs]) (dependency)
+- Fix webOS TV SSDP discovery missing friendly name ([@thecode] - [#85917]) ([webostv docs])
+- Update webOS TV codeowners ([@thecode] - [#85959]) ([webostv docs])
+- Bump aiowebostv to 0.3.2 ([@thecode] - [#86031]) ([webostv docs]) (dependency)
+- Handle ignored shelly entries when discovering via zeroconf ([@bdraco] - [#86039]) ([shelly docs])
+- Update pyTibber to 0.26.8 ([@Danielhiversen] - [#86044]) ([tibber docs]) (dependency)
+- bump reolink-aio to 0.2.1 ([@starkillerOG] - [#85571]) ([reolink docs]) (dependency)
+
+[#84926]: https://github.com/home-assistant/core/pull/84926
+[#85120]: https://github.com/home-assistant/core/pull/85120
+[#85277]: https://github.com/home-assistant/core/pull/85277
+[#85481]: https://github.com/home-assistant/core/pull/85481
+[#85570]: https://github.com/home-assistant/core/pull/85570
+[#85571]: https://github.com/home-assistant/core/pull/85571
+[#85645]: https://github.com/home-assistant/core/pull/85645
+[#85764]: https://github.com/home-assistant/core/pull/85764
+[#85765]: https://github.com/home-assistant/core/pull/85765
+[#85768]: https://github.com/home-assistant/core/pull/85768
+[#85777]: https://github.com/home-assistant/core/pull/85777
+[#85785]: https://github.com/home-assistant/core/pull/85785
+[#85841]: https://github.com/home-assistant/core/pull/85841
+[#85853]: https://github.com/home-assistant/core/pull/85853
+[#85874]: https://github.com/home-assistant/core/pull/85874
+[#85885]: https://github.com/home-assistant/core/pull/85885
+[#85899]: https://github.com/home-assistant/core/pull/85899
+[#85911]: https://github.com/home-assistant/core/pull/85911
+[#85916]: https://github.com/home-assistant/core/pull/85916
+[#85917]: https://github.com/home-assistant/core/pull/85917
+[#85959]: https://github.com/home-assistant/core/pull/85959
+[#86031]: https://github.com/home-assistant/core/pull/86031
+[#86039]: https://github.com/home-assistant/core/pull/86039
+[#86044]: https://github.com/home-assistant/core/pull/86044
+[@Danielhiversen]: https://github.com/Danielhiversen
+[@allenporter]: https://github.com/allenporter
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@emontnemery]: https://github.com/emontnemery
+[@frenck]: https://github.com/frenck
+[@j-stienstra]: https://github.com/j-stienstra
+[@mib1185]: https://github.com/mib1185
+[@starkillerOG]: https://github.com/starkillerOG
+[@thecode]: https://github.com/thecode
+[@tronikos]: https://github.com/tronikos
+[@yuvalabou]: https://github.com/yuvalabou
+[google_assistant_sdk docs]: /integrations/google_assistant_sdk/
+[google_sheets docs]: /integrations/google_sheets/
+[homeassistant_sky_connect docs]: /integrations/homeassistant_sky_connect/
+[homekit_controller docs]: /integrations/homekit_controller/
+[huawei_lte docs]: /integrations/huawei_lte/
+[jellyfin docs]: /integrations/jellyfin/
+[litterrobot docs]: /integrations/litterrobot/
+[nanoleaf docs]: /integrations/nanoleaf/
+[nest docs]: /integrations/nest/
+[pi_hole docs]: /integrations/pi_hole/
+[reolink docs]: /integrations/reolink/
+[shelly docs]: /integrations/shelly/
+[switchbot docs]: /integrations/switchbot/
+[tibber docs]: /integrations/tibber/
+[usb docs]: /integrations/usb/
+[waqi docs]: /integrations/waqi/
+[webostv docs]: /integrations/webostv/
+
+## Release 2023.1.6 - January 19
+
+- Fix Matter unique_id generation ([@marcelveldt] - [#86046]) ([matter docs])
+- Code styling tweaks to the Matter integration ([@frenck] - [#86096]) ([matter docs])
+- Bump govee-ble to 0.21.1 ([@bdraco] - [#86103]) ([govee_ble docs])
+- Adjust device registry for Matter devices ([@marcelveldt] - [#86108]) ([matter docs])
+- Fix live logbook stalling when there are no historical events with a high commit interval ([@bdraco] - [#86110]) ([logbook docs])
+- Fix Shelly sleeping Gen2 device updates ([@thecode] - [#86198]) ([shelly docs])
+- Update allowlisted OAuth redirect URIs for Wear OS in China ([@jpelgrom] - [#86247]) ([auth docs])
+
+[#85120]: https://github.com/home-assistant/core/pull/85120
+[#85277]: https://github.com/home-assistant/core/pull/85277
+[#85481]: https://github.com/home-assistant/core/pull/85481
+[#85645]: https://github.com/home-assistant/core/pull/85645
+[#85764]: https://github.com/home-assistant/core/pull/85764
+[#86046]: https://github.com/home-assistant/core/pull/86046
+[#86058]: https://github.com/home-assistant/core/pull/86058
+[#86096]: https://github.com/home-assistant/core/pull/86096
+[#86103]: https://github.com/home-assistant/core/pull/86103
+[#86108]: https://github.com/home-assistant/core/pull/86108
+[#86110]: https://github.com/home-assistant/core/pull/86110
+[#86198]: https://github.com/home-assistant/core/pull/86198
+[#86247]: https://github.com/home-assistant/core/pull/86247
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@frenck]: https://github.com/frenck
+[@jpelgrom]: https://github.com/jpelgrom
+[@marcelveldt]: https://github.com/marcelveldt
+[@thecode]: https://github.com/thecode
+[auth docs]: /integrations/auth/
+[google_sheets docs]: /integrations/google_sheets/
+[govee_ble docs]: /integrations/govee_ble/
+[huawei_lte docs]: /integrations/huawei_lte/
+[litterrobot docs]: /integrations/litterrobot/
+[logbook docs]: /integrations/logbook/
+[matter docs]: /integrations/matter/
+[nanoleaf docs]: /integrations/nanoleaf/
+[shelly docs]: /integrations/shelly/
+[tibber docs]: /integrations/tibber/
+[webostv docs]: /integrations/webostv/
+
+## Release 2023.1.7 - January 22
+
+- Support password less PI-Hole installations ([@mib1185] - [#86183]) ([pi_hole docs])
+- Bump odp-amsterdam to v5.0.1 ([@klaasnicolaas] - [#86252]) ([garages_amsterdam docs]) (dependency)
+- Fix Shelly sleeping Gen2 - do not refresh from zeroconf discovery ([@thecode] - [#86296]) ([shelly docs])
+- Bump recommended esphome version for bluetooth proxies to 2022.12.4 ([@bdraco] - [#86308]) ([esphome docs])
+- Update pyTibber to 0.26.11 ([@Danielhiversen] - [#86316]) ([tibber docs]) (dependency)
+- Pass frag_duration as integer ([@uvjustin] - [#86375]) ([stream docs])
+
+[#85120]: https://github.com/home-assistant/core/pull/85120
+[#85277]: https://github.com/home-assistant/core/pull/85277
+[#85481]: https://github.com/home-assistant/core/pull/85481
+[#85645]: https://github.com/home-assistant/core/pull/85645
+[#85764]: https://github.com/home-assistant/core/pull/85764
+[#86058]: https://github.com/home-assistant/core/pull/86058
+[#86183]: https://github.com/home-assistant/core/pull/86183
+[#86251]: https://github.com/home-assistant/core/pull/86251
+[#86252]: https://github.com/home-assistant/core/pull/86252
+[#86296]: https://github.com/home-assistant/core/pull/86296
+[#86308]: https://github.com/home-assistant/core/pull/86308
+[#86316]: https://github.com/home-assistant/core/pull/86316
+[#86375]: https://github.com/home-assistant/core/pull/86375
+[@danielhiversen]: https://github.com/Danielhiversen
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@frenck]: https://github.com/frenck
+[@klaasnicolaas]: https://github.com/klaasnicolaas
+[@mib1185]: https://github.com/mib1185
+[@thecode]: https://github.com/thecode
+[@uvjustin]: https://github.com/uvjustin
+[auth docs]: /integrations/auth/
+[esphome docs]: /integrations/esphome/
+[garages_amsterdam docs]: /integrations/garages_amsterdam/
+[google_sheets docs]: /integrations/google_sheets/
+[govee_ble docs]: /integrations/govee_ble/
+[huawei_lte docs]: /integrations/huawei_lte/
+[litterrobot docs]: /integrations/litterrobot/
+[logbook docs]: /integrations/logbook/
+[matter docs]: /integrations/matter/
+[nanoleaf docs]: /integrations/nanoleaf/
+[pi_hole docs]: /integrations/pi_hole/
+[shelly docs]: /integrations/shelly/
+[stream docs]: /integrations/stream/
+[tibber docs]: /integrations/tibber/
+[webostv docs]: /integrations/webostv/
+
+## Need help? Join the community!
+
+Home Assistant has a great community of users who are all more than willing
+to help each other out. So, join us!
+
+Our very active [Discord chat server](/join-chat) is an excellent place to be
+at, and don't forget to join our amazing [forums](https://community.home-assistant.io/).
+
+Found a bug or issue? Please report it in our [issue tracker](https://github.com/home-assistant/core/issues),
+to get it fixed! Or, check [our help page](/help) for guidance for more
+places you can go.
+
+Are you more into email? [Sign-up for our Building the Open Home Newsletter](/newsletter)
+to get the latest news about features, things happening in our community and
+other news about building an Open Home; straight into your inbox.
+
+## Breaking Changes
+
+{% details "Image Upload / Default Config" %}
+
+The `image` integration domain was renamed to `image_upload`.
+
+This change would only affect you when you have removed the
+[`default_config`](/integrations/default_config) from your configuration.
+In that case, you need to manually adjust your configuration to rename `image`
+to `image_upload`.
+
+The rename was done to free up the `image` domain for future use.
+
+([@frenck] - [#84063]) ([documentation](/integrations/image_upload))
+
+[@frenck]: https://github.com/frenck
+[#84063]: https://github.com/home-assistant/core/pull/84063
+
+{% enddetails %}
+
+{% details "air-Q" %}
+
+The unit for noise has been adjusted from `dBa` to `dBA`.
+
+([@epenet] - [#83581]) ([documentation](/integrations/airq))
+
+[@epenet]: https://github.com/epenet
+[#83581]: https://github.com/home-assistant/core/pull/83581
+
+{% enddetails %}
+
+{% details "AirVisual (Pro)" %}
+
+AirVisual Pro units now have their own Home Assistant integration (as opposed
+to be included with the original AirVisual integration that uses the AirVisual
+cloud API).
+
+Pro devices will automatically be migrated; as part of that migration,
+the Pro's device ID will change.
+
+If you utilize entity IDs belonging to a Pro in automations or scripts, you
+don't need to do anything; if, however, you utilize a Pro's device ID,
+please update those automations or scripts accordingly.
+
+([@bachya] - [#83583]) ([documentation](/integrations/airvisual_pro))
+
+[@bachya]: https://github.com/bachya
+[#83882]: https://github.com/home-assistant/core/pull/83882
+
+{% enddetails %}
+
+{% details "APC UPS Daemon" %}
+
+The previously deprecated YAML configuration of the APC UPS Daemon integration
+has been removed.
+
+APC UPS Daemon is now configured via the UI. Any existing YAML configuration
+has been imported in previous releases and can now be safely removed from your
+YAML configuration files.
+
+([@yuxincs] - [#83801]) ([documentation](/integrations/apcupsd))
+
+[@yuxincs]: https://github.com/yuxincs
+[#83801]: https://github.com/home-assistant/core/pull/83801
+
+{% enddetails %}
+
+{% details "Awair" %}
+
+The unit for sound level has been adjusted from `dBa` to `dBA`.
+
+([@epenet] - [#83582]) ([documentation](/integrations/awair))
+
+[@epenet]: https://github.com/epenet
+[#83582]: https://github.com/home-assistant/core/pull/83582
+
+{% enddetails %}
+
+{% details "deCONZ" %}
+
+An issue with the mapping of triggers of Styrbar has been discovered and fixed.
+As a result, any automations relying on these triggers will need to be
+manually adjusted/re-configured to adjust to this change.
+
+([@Kane610] - [#84257]) ([documentation](/integrations/deconz))
+
+[@Kane610]: https://github.com/Kane610
+[#84257]: https://github.com/home-assistant/core/pull/84257
+
+{% enddetails %}
+
+{% details "Fitbit" %}
+
+Units of measurements for length, mass, time, and volume have been aligned
+with standard Home Assistant units.
+
+([@epenet] - [#83936]) ([documentation](/integrations/fitbit))
+
+[@epenet]: https://github.com/epenet
+[#83936]: https://github.com/home-assistant/core/pull/83936
+
+{% enddetails %}
+
+{% details "Minut Point" %}
+
+The unit for sound has been adjusted from `dBa` to `dBA`.
+
+([@epenet] - [#83580]) ([documentation](/integrations/point))
+
+[@epenet]: https://github.com/epenet
+[#83580]: https://github.com/home-assistant/core/pull/83580
+
+{% enddetails %}
+
+{% details "Speedtest.net" %}
+
+The update frequency option has been removed. The default frequency is now 60
+minutes. If you like to customize the polling: disable polling update from
+system options and use the `update_entity` service in an automation to manually
+update it at your own custom schedule.
+
+([@engrbm87] - [#84295]) ([documentation](/integrations/speedtestdotnet))
+
+[@engrbm87]: https://github.com/engrbm87
+[#84295]: https://github.com/home-assistant/core/pull/84295
+
+{% enddetails %}
+
+{% details "Tankerkoenig" %}
+
+The previously deprecated YAML configuration of the Tankerkoenig
+integration has been removed.
+
+Tankerkoenig is now configured via the UI, any existing YAML
+configuration has been imported in previous releases and can now be safely
+removed from your YAML configuration files.
+
+([@mib1185] - [#84711]) ([documentation](/integrations/tankerkoenig))
+
+[@mib1185]: https://github.com/engrbm87
+[#84711]: https://github.com/home-assistant/core/pull/84711
+
+{% enddetails %}
+
+{% details "Tomorrow.io" %}
+
+The imperial unit for `Global Horizontal Irradiance` has been adjusted from `BTU/(h×ft²)` to `BTU/(h⋅ft²)`
+
+([@epenet] - [#83574]) ([documentation](/integrations/tomorrowio))
+
+[@epenet]: https://github.com/epenet
+[#83574]: https://github.com/home-assistant/core/pull/83574
+
+{% enddetails %}
+
+{% details "Universal Devices ISY994" %}
+
+The unit for weighted decibels has been adjusted from `dBa` to `dBA`.
+
+([@epenet] - [#83583]) ([documentation](/integrations/isy994))
+
+[@epenet]: https://github.com/epenet
+[#83583]: https://github.com/home-assistant/core/pull/83583
+
+{% enddetails %}
+
+If you are a custom integration developer and want to learn about breaking
+changes and new features available for your integration: Be sure to follow our
+[developer blog][devblog]. The following are the most notable for this release:
+
+[devblog]: https://developers.home-assistant.io/blog/
+
+- [Add more unit enumerators](https://developers.home-assistant.io/blog/2022/12/05/more-unit-enumerators)
+- [Multi-pan temporarily disabled](https://developers.home-assistant.io/blog/2022/12/08/multi-pan-rollback)
+- [Summary of unit system related changes](https://developers.home-assistant.io/blog/2022/12/07/unit_system_changes)
+- [Translating the state of entities](https://developers.home-assistant.io/blog/2022/12/01/entity_translations)
+
+## Farewell to the following
+
+The following integrations are also no longer available as of this release:
+
+- **Deutsche Bahn** has been removed. It relied on web scraping, which is no
+ longer allowed.
+
+## All changes
+
+Of course, there is a lot more in this release. You can find a list of
+all changes made here: [Full changelog for Home Assistant Core 2023.1](/changelogs/core-2023.1)
diff --git a/source/_posts/2023-01-20-android-auto.markdown b/source/_posts/2023-01-20-android-auto.markdown
new file mode 100644
index 00000000000..f4b377263bc
--- /dev/null
+++ b/source/_posts/2023-01-20-android-auto.markdown
@@ -0,0 +1,49 @@
+---
+title: "Home Assistant coming for your car!"
+description: "Today we're launching Home Assistant for Android Auto allowing you to control your home and navigate to anything with a location."
+date: 2023-01-20 00:00:00
+date_formatted: "January 20, 2023"
+comments: true
+author: Daniel Shokouhi
+categories: Release-Notes
+og_image: /images/blog/2023-01-20-android-auto/Companion.png
+---
+
+
+
+
+Hey everyone today we would like to announce that development has begun on [Android Auto]. In December, Google has [released] an update to Android Auto and are finally accepting IoT apps into the Play Store. As you guessed the team wanted to get features added immediately. Check out the new upcoming features the team has already started to add!
+
+These features are currently available in [our beta channel] and will be released to stable in the next 2 weeks.
+
+
+
+
+
+Once you launch the app from your head unit you will have easy access to devices like your garage door, lights, locks and even scenes.
+
+
+
+Tapping on a category allows you to see its entities and their state (with instant updates!). There are also simple touch controls to do things like opening the garage door before heading out.
+
+
+
+In addition to selecting a domain you can also navigate to anything in Home Assistant that has a location, like persons, devices or sensors.
+
+
+
+We have also added a new [binary sensor] allowing you to automate when you are in the car and connected to the head unit. There is an additional attribute for the type of connection as well.
+
+
+
+
+A big thank you to [Jbassett] and [jpelgrom] for their contributions to the new Android Auto app. We look forward to the continued improvements to this new experience.
+
+
+[JBassett]: https://github.com/JBassett
+[jpelgrom]: https://github.com/jpelgrom
+[released]: https://developer.android.com/docs/quality-guidelines/car-app-quality?category=iot#dec-22
+[Android Auto]: https://www.android.com/auto
+[GitHub]: https://github.com/home-assistant/android
+[binary sensor]: https://companion.home-assistant.io/docs/core/sensors#android-auto
+[our beta channel]: https://play.google.com/apps/testing/io.homeassistant.companion.android
diff --git a/source/_redirects b/source/_redirects
index 8d0d47970b8..2ba5898b889 100644
--- a/source/_redirects
+++ b/source/_redirects
@@ -275,7 +275,6 @@
/getting-started/basic /docs/configuration/basic
/getting-started/browsers /docs/frontend/browsers
/getting-started/customizing-devices /docs/configuration/customizing-devices
-/getting-started/devices /docs/configuration/devices
/getting-started/installation /docs/installation
/getting-started/installation-docker /docs/installation/docker
/getting-started/installation-virtualenv /docs/installation/virtualenv
@@ -411,6 +410,7 @@
/docs/tools/keyring/ /docs/configuration/secrets
/docs/tools/credstash/ /docs/configuration/secrets
/docs/scripts/editor/ /docs/scripts
+/getting-started/devices /integrations
# Blog
/blog/2019/05/29/release-94 /blog/2019/06/05/release-94
diff --git a/source/android/index.markdown b/source/android/index.markdown
index 5908b3aba74..24e1af45613 100644
--- a/source/android/index.markdown
+++ b/source/android/index.markdown
@@ -6,5 +6,7 @@ description: "Landing page for Home Assistant Android app."
+
+
diff --git a/source/changelogs/core-2023.1.markdown b/source/changelogs/core-2023.1.markdown
new file mode 100644
index 00000000000..3ffa4545835
--- /dev/null
+++ b/source/changelogs/core-2023.1.markdown
@@ -0,0 +1,1643 @@
+---
+title: Full Changelog for Home Assistant Core 2023.1
+description: Detailed changelog for the Home Assistant Core 2023.1 release
+---
+
+These are all the changes included in the Home Assistant Core 2023.1 release.
+
+For a summary in a more readable format:
+[Release notes blog for this release](/blog/2023/01/04/release-20231/).
+
+## Full Changelog
+
+- Add nibe heat pump climate entities ([@elupus] - [#78952])
+- Bump version to 2023.1.0dev0 ([@frenck] - [#83025])
+- Add `translation_key` property to entites ([@emontnemery] - [#82701])
+- Bump python-fullykiosk to 0.0.12 ([@r01k] - [#83029])
+- Add dialect support to google_translate ([@toddejohnson] - [#81768])
+- Update debugpy to 1.6.4 ([@frenck] - [#83042])
+- Remove home id from Tibber diagnostics ([@Danielhiversen] - [#83066])
+- Add create and delete for Google Calendar events ([@allenporter] - [#83034])
+- Add enum device_class and state options property to sensor entities ([@frenck] - [#82489])
+- Fix glob patterns for partial CI runs ([@cdce8p] - [#83086])
+- Add type annotations to some hassio API ([@emontnemery] - [#83103])
+- Migrate Tuya translations ([@frenck] - [#83105])
+- Enable strict typing of diagnostics ([@emontnemery] - [#83053])
+- Review AsusWRT sensors tests ([@ollo69] - [#71307])
+- Fix small coding style in recent overkiz code ([@nyroDev] - [#82966])
+- Add support for item removal to shopping list ([@spacegaier] - [#82992])
+- Enable strict typing of analytics ([@emontnemery] - [#83119])
+- Use enum sensor device class in HomeKit Controller ([@frenck] - [#83109])
+- Update aiobafi6 to 0.7.3 ([@bdraco] - [#83073])
+- Simplify diagnostics.DownloadDiagnosticsView ([@emontnemery] - [#83116])
+- Enable strict typing of raspberry_pi ([@emontnemery] - [#83123])
+- Enable strict typing of hardkernel ([@emontnemery] - [#83122])
+- Enable strict typing of homeassistant hardware integrations ([@emontnemery] - [#83121])
+- Address review comments for shopping list websockets ([@spacegaier] - [#83143])
+- Use UnitOfTemperature in climate entities [m-s] ([@epenet] - [#83131])
+- Remove matter services available in websocket api ([@MartinHjelmare] - [#83151])
+- Update pycomfoconnect to 0.5.1 ([@michaelarnauts] - [#83124])
+- Use enum sensor device class in PrusaLink ([@frenck] - [#83107])
+- Use enum sensor device class in Moon ([@frenck] - [#83108])
+- Bump elkm1 lib to 2.2.1 ([@gwww] - [#83026])
+- Fix OpenUV coverage ([@bachya] - [#83203])
+- Bump yalexs-ble to 1.10.3 ([@bdraco] - [#83216])
+- Bump nibe to 1.5.0 ([@elupus] - [#83185])
+- Use unit enums in demo ([@epenet] - [#83130])
+- Use UnitOfTemperature in climate entities [a-f] ([@epenet] - [#83125])
+- Add the QoS in the MQTT debug log ([@jbouwh] - [#83195])
+- Remove deprecated GCM API from html5 ([@milanmeu] - [#83229])
+- Address late KNX flow tests review ([@farmio] - [#83208])
+- Tweak black config ([@scop] - [#83230])
+- Populate suggested_area using the LIFX group name for each device ([@Djelibeybi] - [#83259])
+- Bump aiolookin to 1.0.0 ([@ANMalko] - [#83198])
+- Enable strict typing of hardware ([@emontnemery] - [#83120])
+- Code style improvements [alexa] ([@cdce8p] - [#83258])
+- Bump dessant/lock-threads from 3 to 4 (@dependabot - [#83273])
+- Use UnitOfTemperature in climate entities [t-z] ([@epenet] - [#83129])
+- Use enum sensor device class in UptimeRobot ([@frenck] - [#83111])
+- Use UnitOfTemperature in climate entities [g-l] ([@epenet] - [#83127])
+- Add @kamiyo to nws codeowners ([@kamiyo] - [#83171])
+- Failback to v4 resolver for AAAA records in DNSIP integration ([@gjohansson-ST] - [#82740])
+- Use UnitOfTemperature in water_heater entities ([@epenet] - [#83132])
+- Migrate Plugwise translations ([@frenck] - [#83286])
+- Bump package for Garage Amsterdam ([@klaasnicolaas] - [#83167])
+- Use enum sensor device class in Tomorrow.io ([@frenck] - [#83293])
+- Migrate HomeKit Controller translations ([@frenck] - [#83304])
+- Migrate WLED translations ([@frenck] - [#83296])
+- Use new device class in homematic ([@epenet] - [#83303])
+- Migrate LaMetric translations ([@frenck] - [#83298])
+- Migrate Xiaomi Miio translations ([@frenck] - [#83300])
+- Use enum sensor device class in Season ([@frenck] - [#83301])
+- Migrate MusicCast translations ([@frenck] - [#83305])
+- Migrate TOLO Sauna translations ([@frenck] - [#83306])
+- Migrate Logitech Harmony Hub translations ([@frenck] - [#83308])
+- Migrate Demo translations ([@frenck] - [#83294])
+- Update pylint to 2.15.8 ([@cdce8p] - [#83311])
+- Use enum sensor device class in Nettigo Air Monitor ([@frenck] - [#83314])
+- Refactor support for integrations to drop custom unit conversion ([@emontnemery] - [#83228])
+- Migrate Tractive translations ([@frenck] - [#83321])
+- Use UnitOfVolume in unit conversion ([@epenet] - [#83292])
+- Use new device class in meteoclimatic ([@epenet] - [#83327])
+- Use new device class in openweathermap ([@epenet] - [#83331])
+- Use new device class in aemet ([@epenet] - [#83315])
+- Use new device class in environment canada ([@epenet] - [#83297])
+- Use attributes in homematicip_cloud ([@epenet] - [#83295])
+- Update litterrobot integration to support long-term statistics ([@AliceGrey] - [#83269])
+- Use enum sensor device class in AirVisual ([@frenck] - [#83316])
+- Migrate Overkiz select translations ([@frenck] - [#83324])
+- Use new device class in meteo_france ([@epenet] - [#83325])
+- Introduce UnitOfTime enum ([@epenet] - [#83288])
+- Introduce UnitOfFrequency enum ([@epenet] - [#83289])
+- Clean up Zodiac ([@frenck] - [#83334])
+- Migrate UniFi Protect translations ([@frenck] - [#83338])
+- Use new device class in ambient_station ([@epenet] - [#83322])
+- Introduce unit enums for electric current and potential ([@epenet] - [#83287])
+- Introduce unit enums for information and data rate ([@epenet] - [#83291])
+- Validate state class and unit of measurement for non-numeric sensors ([@frenck] - [#83344])
+- Remove unused device class from Kostal Plenticore select ([@frenck] - [#83329])
+- Adjust error message and add callback in nibe heatpump climate ([@elupus] - [#83027])
+- Migrate Wolf SmartSet Service translations ([@frenck] - [#83323])
+- Use enum sensor device class in Overkiz ([@frenck] - [#83342])
+- Migrate Sensibo translations ([@frenck] - [#83310])
+- Use new device class in buienradar ([@epenet] - [#83363])
+- Use new enums in rflink ([@epenet] - [#83371])
+- Add QoS parameter to MQTT websocket_subscribe ([@jbouwh] - [#83241])
+- Use tuple in test parametrization ([@epenet] - [#83379])
+- Use new device class in rfxtrx ([@epenet] - [#83368])
+- Use new device class in ecowitt ([@epenet] - [#83364])
+- Use new device class in metoffice ([@epenet] - [#83366])
+- Use new device class in trafikverket weatherstation ([@epenet] - [#83370])
+- Use new device class in lacrosse view ([@epenet] - [#83365])
+- Allow cm in precipitation units ([@epenet] - [#83360])
+- Use new device class in darksky ([@epenet] - [#83362])
+- Use new device class in zamg ([@epenet] - [#83361])
+- Add vallox fan speed control ([@yozik04] - [#82548])
+- Use enum sensor device class in Litter-Robot ([@frenck] - [#83290])
+- Remove unused device class from Renault select ([@frenck] - [#83330])
+- Remove invalid device class from Hue connectivity sensor ([@frenck] - [#83388])
+- Use new device class in accuweather ([@epenet] - [#83318])
+- Fix icon in meteoclimatic wind bearing ([@frenck] - [#83390])
+- Use new device class in nws ([@kamiyo] - [#83172])
+- Use CoverDeviceClass in ESPHome ([@frenck] - [#83395])
+- Use CoverDeviceClass in Dynalite ([@frenck] - [#83394])
+- Blebox add thermoBox to climate ([@riokuu] - [#81090])
+- Remove str from update device class ([@frenck] - [#83399])
+- Remove str from switch device class ([@frenck] - [#83400])
+- Remove str from humidifier device class ([@frenck] - [#83397])
+- Remove str from binary sensor device class ([@frenck] - [#83393])
+- Remove str from media player device class ([@frenck] - [#83398])
+- Enforce NumberDeviceClass in number entities ([@frenck] - [#83402])
+- Remove str from cover device class ([@frenck] - [#83396])
+- Modernize Image Processing typing ([@frenck] - [#83405])
+- Use new unit enums in alexa ([@epenet] - [#83409])
+- Add Shelly support for Plus WallDimmer US ([@thecode] - [#83385])
+- Use new device class in arwn ([@epenet] - [#83406])
+- Improve zwave_js test coverage ([@raman325] - [#83372])
+- Add update of model and version for nibe ([@elupus] - [#83347])
+- Upgrade grpcio(-status) to 1.51.1 ([@frenck] - [#83420])
+- Use new unit enums in helpers ([@epenet] - [#83387])
+- Upgrade google-cloud-pubsub to 2.13.11 ([@frenck] - [#83419])
+- Shelly code quality - use properties for status ([@thecode] - [#83421])
+- Refactor Fully Kiosk and add logging details ([@r01k] - [#83028])
+- Add @nyroDev to overkiz codeowner ([@nyroDev] - [#83456])
+- Add leak detectors support for Ambient Station ([@jpettitt] - [#83357])
+- Set matter team as matter codeowners ([@MartinHjelmare] - [#83506])
+- Bump pylitterbot to 2022.12.0 ([@natekspencer] - [#83490])
+- Add new data size device class ([@epenet] - [#83376])
+- Add language to conversation and intent response ([@synesthesiam] - [#83486])
+- Add abc.ABC to classes with abstract methods ([@emontnemery] - [#83546])
+- Add new data rate device class ([@epenet] - [#83377])
+- Introduce unit enums for apparent power ([@epenet] - [#83451])
+- Introduce unit enums for irradiance ([@epenet] - [#83414])
+- Add new irradiance device class ([@epenet] - [#83452])
+- Use new device class in tellduslive ([@epenet] - [#83369])
+- Remove str from sensor device class ([@frenck] - [#83391])
+- Update opentherm_gw sensor definitions ([@epenet] - [#83533])
+- Add sensor tests for devolo_home_control ([@Shutgun] - [#74292])
+- Add new sound pressure device class ([@epenet] - [#83453])
+- Introduce unit enums for sound pressure ([@epenet] - [#83450])
+- Use new unit enums in isy994 ([@epenet] - [#83583])
+- Use ApparentPower unit and device class in integrations ([@epenet] - [#83577])
+- Use SoundPressure unit and device class in awair ([@epenet] - [#83582])
+- Use SoundPressure unit and device class in airq ([@epenet] - [#83581])
+- Use SoundPressure unit and device class in point ([@epenet] - [#83580])
+- Use new device class in netatmo ([@epenet] - [#83367])
+- Fix sensor tests in devolo Home Control ([@Shutgun] - [#83586])
+- Use UnitOfSoundPressure in demo ([@epenet] - [#83584])
+- Add entity translations to Renault ([@epenet] - [#83392])
+- Use Irradiance unit and device class in integrations ([@epenet] - [#83576])
+- Use Irradiance device class in tomorrowio ([@epenet] - [#83574])
+- Add power field to switchbot plug ([@konikoni428] - [#83495])
+- Bump dbus-fast to 1.79.0 ([@bdraco] - [#83598])
+- Update intent response ([@synesthesiam] - [#83560])
+- Bump dbus-fast to 1.80.0 ([@bdraco] - [#83601])
+- Use SoundPressure unit and device class in integrations ([@epenet] - [#83585])
+- Add new atmospheric pressure device class ([@epenet] - [#83455])
+- Add support for translating state attributes ([@emontnemery] - [#77028])
+- Make it optional to provide a title when finishing a FlowHandler ([@emontnemery] - [#83534])
+- Use UnitOfElectricCurrent in integrations ([@epenet] - [#83622])
+- Use Frequency and Current device classes in nut ([@epenet] - [#83623])
+- Use DataRate unit and device class in pyload ([@epenet] - [#83611])
+- Use DataRate unit and device class in freebox ([@epenet] - [#83612])
+- Use new unit enums in zha ([@epenet] - [#83633])
+- Update device classes in ebusd ([@epenet] - [#83530])
+- Use native `_attr_` properties for MqttEntity ([@jbouwh] - [#83639])
+- Bump actions/setup-python from 4.3.0 to 4.3.1 (@dependabot - [#83607])
+- Add types package for paho-mqtt ([@cdce8p] - [#83599])
+- Use WATER device class in suez water ([@epenet] - [#83650])
+- Use UnitOfPower.BTU_PER_HOUR in zha ([@epenet] - [#83657])
+- Google Assistant SDK integration ([@tronikos] - [#82328])
+- Use WATER device class in rainmachine ([@epenet] - [#83651])
+- Use device classes in mysensors ([@epenet] - [#83653])
+- Use WATER device class in streamlabswater ([@epenet] - [#83654])
+- Improve MQTT type hints for dict get assignments ([@jbouwh] - [#83634])
+- Use UnitOfVolume in energy integration ([@epenet] - [#83641])
+- Add bluetooth diagnostics to shelly ([@bdraco] - [#83438])
+- Use unit enums in overkiz ([@epenet] - [#83660])
+- Hide Aranet update interval by default ([@aschmitz] - [#83694])
+- Bump dbus-fast to 1.82.0 ([@bdraco] - [#83682])
+- Handle special transit errors for here_travel_time ([@eifinger] - [#83649])
+- Google Sheets: small cleanup ([@tronikos] - [#83685])
+- Add hue wall switch to deconz integration ([@Sommerzeit] - [#83700])
+- Use unit enums in vicare ([@epenet] - [#83648])
+- Adjust device class in xiaomi_miio ([@epenet] - [#83647])
+- Use DataRate unit and device class in integrations ([@epenet] - [#83610])
+- Drop title from repairs flows ([@emontnemery] - [#83627])
+- Reduce log level for linger task/timer ([@elupus] - [#83703])
+- Use GAS device class in smartthings ([@epenet] - [#83658])
+- Fix invalid unit in econet ([@epenet] - [#83656])
+- Use UnitOfVolume in integrations ([@epenet] - [#83646])
+- Try to reconnect right away when disconnected from Shelly Gen2 devices ([@bdraco] - [#83701])
+- Make google calendar fail louder on invalid google_calendars.yaml ([@allenporter] - [#83668])
+- Add homeassistant.helpers.location to loggers for travel_time integrations ([@eifinger] - [#83705])
+- Add support for battery to Yale Access Bluetooth ([@bdraco] - [#83691])
+- Add MVP humidifier support to switchbot ([@bdraco] - [#83696])
+- Connect esphome ble scanner as soon as possible ([@bdraco] - [#83728])
+- Correct deprecated volt units on yalexs_ble sensor ([@bdraco] - [#83738])
+- Bump HAP-python to 4.6.0 ([@bdraco] - [#83729])
+- ESPHome: Use MAC as unique ID ([@balloob] - [#83741])
+- Adjust esphome bluetooth client logging for unique id change ([@bdraco] - [#83742])
+- Bump pynina to 0.2.0 ([@DeerMaximum] - [#83726])
+- Align implementation of the UniFi update platform with the UniFi switch platform ([@Kane610] - [#81821])
+- Rename "Power production this week" vicare sensor ([@oischinger] - [#83771])
+- Match config entries for dlna_dmr based on device MAC, in addition to UDN ([@chishm] - [#74619])
+- Restore remote discovered devices between remote scanner restarts ([@bdraco] - [#83699])
+- Revert "Move esphome gatt services cache to be per device" #81265 ([@bdraco] - [#83793])
+- Add text platform for UniFi Protect ([@AngellusMortis] - [#83674])
+- Improve remote bluetooth scanner diagnostics and add missing test cover ([@bdraco] - [#83796])
+- Do not try to reconnect shelly on disconnected if Home Assistant is stopping ([@bdraco] - [#83805])
+- Remove device class on V_FLOW in mysensors ([@epenet] - [#83806])
+- Use device classes in volkszaehler ([@epenet] - [#83823])
+- Use POWER device class in solarlog ([@epenet] - [#83822])
+- Use device classes in solaredge_local ([@epenet] - [#83821])
+- Drop title from auth flows ([@emontnemery] - [#83628])
+- Fix incorrect usage of 'setup' vs 'set up' ([@bdr99] - [#83774])
+- Use UnitOfPower in integrations [h-r] ([@epenet] - [#83815])
+- Use device classes in sense ([@epenet] - [#83817])
+- Use unit enums in saj ([@epenet] - [#83818])
+- Use device classes in apcupsd ([@epenet] - [#83807])
+- Use POWER device class in aqualogic ([@epenet] - [#83808])
+- Use POWER device class in dte energy bridge ([@epenet] - [#83809])
+- Use POWER device class in eliqonline ([@epenet] - [#83810])
+- Use UnitOfPower in integrations [a-g] ([@epenet] - [#83812])
+- Use POWER device class in enphase_envoy ([@epenet] - [#83811])
+- Add new docs to Diagnostics information ([@AngellusMortis] - [#83767])
+- Bump PyVicare to 2.21.0 ([@oischinger] - [#83770])
+- Update aioqsw to v0.3.1 ([@Noltari] - [#83784])
+- Use UnitOfPower in integrations [s-z] ([@epenet] - [#83826])
+- Enable automatic conversion for pressures ([@epenet] - [#83525])
+- Refactor ted5000 to use entity descriptions ([@epenet] - [#83820])
+- Bump pyswitchbee to 1.7.3 ([@jafar-atili] - [#83748])
+- Refactor waterfurnace to use entity descriptions ([@epenet] - [#83824])
+- Add integration for AirVisual Pro ([@bachya] - [#79770])
+- Remove get_device call in led-ble ([@bdraco] - [#83880])
+- Remove get_device call in switchbot ([@bdraco] - [#83881])
+- bump aiolifx_themes to 0.3.0 ([@Djelibeybi] - [#83877])
+- Add PurpleAir integration ([@bachya] - [#82110])
+- Bump actions/checkout from 3.1.0 to 3.2.0 (@dependabot - [#83894])
+- Remove deprecated apcupsd YAML config ([@yuxincs] - [#83801])
+- Use DATA_SIZE device class in integrations ([@epenet] - [#83895])
+- Use DATA_SIZE device class in netgear lte ([@epenet] - [#83908])
+- Use DATA_SIZE device class in lidarr ([@epenet] - [#83907])
+- Add explanatory comment to metoffice ([@emontnemery] - [#83914])
+- Use UnitOfFrequency in integrations ([@epenet] - [#83915])
+- Fix incorrect device class in goodwe ([@epenet] - [#83917])
+- Use FREQUENCY device class in integrations ([@epenet] - [#83916])
+- Refactor huisbaasje to use entity descriptions ([@epenet] - [#83825])
+- Improve ignore_variance typing ([@cdce8p] - [#83927])
+- Add diagnostics support to PurpleAir ([@bachya] - [#82446])
+- Add stones to mass units ([@epenet] - [#83933])
+- Refactor Huawei LTE to use Entity Description ([@epenet] - [#83904])
+- Refactor fitbit descriptions to use device classes ([@epenet] - [#83936])
+- Move bluetooth watchdog into the scanner base class ([@bdraco] - [#83888])
+- Update intent response ([@synesthesiam] - [#83858])
+- Adjust additional esphome bluetooth debug messages for unique id change ([@bdraco] - [#83955])
+- Try to reconnect disconnected shelly devices as soon as they discovered by zeroconf ([@bdraco] - [#83872])
+- Bump aioshelly to 5.2.0 ([@bdraco] - [#83961])
+- Update intent response ([@synesthesiam] - [#83962])
+- Fix nobo_hub HVAC mode ([@oyvindwe] - [#83947])
+- Ensure AirVisual Pro uses long-running Samba connection ([@bachya] - [#83869])
+- Add integration_type property to AsusWrt manifest ([@ollo69] - [#83960])
+- Use UnitOfTemperature enumerator in AsusWrt ([@ollo69] - [#83958])
+- Move transmission to an updated library ([@engrbm87] - [#83932])
+- Use UnitOfMass in integrations ([@epenet] - [#83930])
+- Add re-auth flow to PurpleAir ([@bachya] - [#83445])
+- Unifi use entity description with sensors ([@Kane610] - [#81930])
+- Add strings to alert integration ([@spacegaier] - [#83926])
+- Bump yalexs_ble to 0.12.0 ([@bdraco] - [#84004])
+- Add integration-type property to androidTV manifest ([@ollo69] - [#84018])
+- Huawei LTE SSDP improvements ([@scop] - [#81643])
+- Bump `pyairvisual` to 2022.12.1 ([@bachya] - [#84013])
+- Improve data entry flow typing ([@emontnemery] - [#83901])
+- Improve data entry flow typing ([@emontnemery] - [#84030])
+- Use UnitOfLength in integrations ([@epenet] - [#84034])
+- Use UnitOfElectricPotential in integrations ([@epenet] - [#84044])
+- Fix incorrect device class in nibe heatpump ([@epenet] - [#84047])
+- Use Unit enums in MELCloud sensors ([@ollo69] - [#84036])
+- Add device classes to bloomsky ([@epenet] - [#84054])
+- Update ESPHome bluetooth repair issue for unique id change and 2022.12.0 ([@bdraco] - [#84026])
+- Fix grammatical error in HomeKit strings ([@DataBitz] - [#84043])
+- Add device classes in tesla wall connector ([@epenet] - [#84048])
+- Move unused function in withings ([@epenet] - [#84089])
+- Refactor withings constant ([@epenet] - [#84095])
+- Rename image integration to image_upload ([@frenck] - [#84063])
+- Split platform attributes in withings ([@epenet] - [#84099])
+- Improve HomeWizard request issue reporting ([@DCSBL] - [#82366])
+- Add device class to withings ([@epenet] - [#84103])
+- Fix prettier [homewizard] ([@cdce8p] - [#84122])
+- Rename Bluetooth active_update_coordinator to active_update_processor ([@bdraco] - [#84115])
+- Add device classes in starline ([@epenet] - [#84049])
+- Add device classes to pool integrations ([@epenet] - [#84050])
+- Bump `brother` and `pysnmplib` ([@bieniu] - [#84107])
+- Fix current_operation when there is no operation_mode in Overkiz DHWP ([@nyroDev] - [#84077])
+- Make manual and manual_mqtt fully asynchronous ([@bonzini] - [#83436])
+- Update pyupgrade to 3.3.1 ([@cdce8p] - [#84148])
+- Update isort to 5.11.3 ([@cdce8p] - [#84147])
+- Google Assistant SDK: Support non en-US language code ([@tronikos] - [#84028])
+- Clean up matter adapter ([@MartinHjelmare] - [#84144])
+- Add dhcp discovery for newer august/yale bridges ([@bdraco] - [#84125])
+- Bump yalexs-ble to 1.12.2 ([@bdraco] - [#84118])
+- Enable strict typing for here_travel_time ([@eifinger] - [#83814])
+- Move speedtestdotnet coordinator to separate file ([@engrbm87] - [#83979])
+- Add state_class to Tradfri battery and air quality sensors ([@J3173] - [#84185])
+- Elmax/alarm_control_panel ([@albertogeniola] - [#75365])
+- Sensor pro fix for negative temperatures ([@Ernst79] - [#84181])
+- Add re-auth flow to AirVisual Pro ([@bachya] - [#84012])
+- Save entry earlier in PurpleAir re-auth flow ([@bachya] - [#84203])
+- Add ability to add/remove PurpleAir sensors in an existing config entry ([@bachya] - [#83440])
+- Add device HmIP-DRDI3 ([@hahn-th] - [#83337])
+- Use DATA_SIZE device class in folder integration ([@epenet] - [#83897])
+- Bump PySwitchbot to 0.29.1 ([@bdraco] - [#84119])
+- Bump aiolifx-themes to 0.4.0 ([@Djelibeybi] - [#84216])
+- Use new unit enumerators in tibber ([@epenet] - [#84222])
+- Use UnitOfEnergy in integrations (o-z) ([@epenet] - [#84221])
+- Use UnitOfEnergy in integrations (a-n) ([@epenet] - [#84220])
+- Bump `nettigo air monitor` library to version 1.6.0 ([@bieniu] - [#84129])
+- Fix manual.alarm_control_panel RestoreEntity bugs ([@bonzini] - [#82990])
+- Use ENERGY device class in landisgyr heat meter ([@epenet] - [#84223])
+- Use ENERGY device class in oru ([@epenet] - [#84225])
+- Bump zeroconf to 0.44.0 ([@bdraco] - [#84166])
+- Use new unit enums in fronius ([@epenet] - [#84224])
+- Use UnitOfVolume in bmw_connected_drive ([@epenet] - [#84228])
+- Use a global const for CONF_UUID ([@michaelarnauts] - [#84093])
+- Bump gassist-text to 0.0.5 ([@tronikos] - [#84161])
+- Upgrade attrs to 22.1.0 ([@boralyl] - [#84205])
+- Clean mysensors test type errors ([@MartinHjelmare] - [#84178])
+- Use new unit enumerators in tuya ([@epenet] - [#84229])
+- Use UnitOfVolume in dsmr_reader ([@epenet] - [#84226])
+- Add POWER device class to goodwe number ([@epenet] - [#84232])
+- Adjust units in lcn ([@epenet] - [#84051])
+- Remove name key from transimssion services ([@engrbm87] - [#83974])
+- Update sentry-sdk to 1.12.1 ([@frenck] - [#84234])
+- Add integration-type property to Nut manifest ([@ollo69] - [#84020])
+- Add support for CCF volume unit ([@epenet] - [#84029])
+- Update coverage to 7.0.0 ([@frenck] - [#84237])
+- Update black to 22.12.0 ([@frenck] - [#84242])
+- Update spotipy to 2.22.0 ([@frenck] - [#84244])
+- Use UnitOfElectricCurrent in integrations ([@epenet] - [#84231])
+- Update watchdog to 2.2.0 ([@frenck] - [#84245])
+- Use a single source of data for switchbot ([@bdraco] - [#84215])
+- Migrate AirVisual Pro devices to the `airvisual_pro` domain ([@bachya] - [#83882])
+- Bump lupupy to 0.2.4 ([@majuss] - [#84252])
+- Remove `airvisual_pro` code from `airvisual` ([@bachya] - [#84254])
+- Use UnitOfPressure in integrations ([@epenet] - [#84230])
+- Remove Deutsche Bahn integration ([@frenck] - [#84236])
+- Fix Styrbar device trigger mapping in deCONZ ([@Kane610] - [#84257])
+- Shuffle some device registry WS code ([@emontnemery] - [#84243])
+- Clean up Notion config flow (and tests) ([@bachya] - [#84007])
+- Implement an active update coordinator for polling ble devices that get data from both advertisements and active connections ([@bdraco] - [#84207])
+- Add foundation for passive scanning support to switchbot ([@bdraco] - [#84260])
+- fix provider name: linky is for electricity. ([@laurent-martin] - [#84273])
+- Add more types to the todoist integration ([@boralyl] - [#84210])
+- Add tests.common.ANY ([@emontnemery] - [#84240])
+- Fix error when describing deCONZ events of removed devices ([@J3173] - [#84194])
+- Fixes some grammar mistakes ([@michaelarnauts] - [#84283])
+- Use dict.setdefault in registry migration code ([@emontnemery] - [#84277])
+- Add minor version to area registry store ([@emontnemery] - [#84280])
+- Correct zamg config flow comments ([@killer0071234] - [#81369])
+- Add aliases to entity registry items ([@emontnemery] - [#84239])
+- Use UnitOfTime in integrations (t-z) ([@epenet] - [#84291])
+- Fix matter websocket reconnect ([@MartinHjelmare] - [#84192])
+- Use UnitOfTime in integrations (h-s) ([@epenet] - [#84289])
+- Use UnitOfTime in integrations (a-g) ([@epenet] - [#84288])
+- Improve the dsmr_reader sensor names ([@Glodenox] - [#84269])
+- Revert the state class removal in dsmr_reader after bugfix ([@Glodenox] - [#84267])
+- Update `gios` library to version 2.3.0 ([@bieniu] - [#84292])
+- Remove scan_interval and manual options from speedtestdotnet ([@engrbm87] - [#84295])
+- Extract Forecast.Solar DataUpdateCoordinator into module ([@frenck] - [#83859])
+- Allow MQTT device trackers to be able to the reset the location name for auto zone inference ([@ShadowJonathan] - [#83952])
+- Bump bthome-ble to 2.4.0 ([@Ernst79] - [#84189])
+- Use UnitOfTemperature in integrations (a-d) ([@epenet] - [#84304])
+- Use UnitOfTemperature in integrations (e-h) ([@epenet] - [#84305])
+- Use UnitOfTemperature in integrations (i-m) ([@epenet] - [#84307])
+- Use UnitOfTemperature in integrations (n-o) ([@epenet] - [#84306])
+- Use UnitOfTemperature in integrations (p-s) ([@epenet] - [#84308])
+- Use UnitOfTemperature in integrations (t-z) ([@epenet] - [#84309])
+- Add aliases to device registry items ([@emontnemery] - [#84246])
+- Bump devolo-plc-api to 0.9.0 ([@Shutgun] - [#84324])
+- Handle not existing arrival/departure keys for here_travel_time ([@eifinger] - [#83754])
+- Code quality improvements for Mastodon ([@frenck] - [#84320])
+- Bump actions/stale from 6.0.1 to 7.0.0 (@dependabot - [#84333])
+- Add aliases to area registry items ([@emontnemery] - [#84294])
+- Add quarter-hour peak consumption sensors ([@Glodenox] - [#84271])
+- Introduce unit enums for volume flow rate ([@epenet] - [#84310])
+- Fix reload race in shelly when device is recently offline ([@bdraco] - [#84328])
+- Bump pyrainbird to 0.7.1 ([@allenporter] - [#84325])
+- Use unit enums in plaato ([@epenet] - [#84341])
+- Use unit enums in tasmota ([@epenet] - [#84342])
+- Use unit enums in airvisual_pro ([@epenet] - [#84346])
+- Use unit enums in honeywell ([@epenet] - [#84344])
+- Add support for translating custom attribute state ([@emontnemery] - [#83386])
+- Use unit enums in energy and sensor ([@epenet] - [#84343])
+- Use UnitOfVolumeFlowRate in integrations ([@epenet] - [#84348])
+- Bump PySwitchbot to 0.30.0 ([@bdraco] - [#84347])
+- Use unit enums in nexia ([@epenet] - [#84349])
+- Use unit enums in mold indicator ([@epenet] - [#84350])
+- Use unit enums in elkm1 ([@epenet] - [#84351])
+- Use unit enums in ruuvitag_ble ([@epenet] - [#84352])
+- Use unit enums in sensirion_ble ([@epenet] - [#84353])
+- Adjust units in lcn ([@epenet] - [#84356])
+- Update pyotp to 2.8.0 ([@frenck] - [#84339])
+- Add missing preset for overkiz Atlantic APC heating zone ([@nyroDev] - [#84008])
+- Update Blink 2FA flow description ([@timrogers] - [#84362])
+- Adjust units in lcn ([@epenet] - [#84365])
+- Prevent use of deprecated units ([@epenet] - [#83384])
+- Add ZHA Zeroconf discovery for SLZB-06 ([@Tarik2142] - [#84111])
+- Add filter for duplicate NINA warnings ([@DeerMaximum] - [#84069])
+- Zamg api timestamp issue fix ([@killer0071234] - [#84143])
+- Bump here_transit/here_routing and Implement backoff mechanism for here_travel_time ([@eifinger] - [#83976])
+- Add external handling in Overkiz AtlanticElectricalHeaterWithAdjustableTemperatureSetPoint ([@nyroDev] - [#84010])
+- Add sensor unit of measurement validation for device classes ([@frenck] - [#84366])
+- Add matter node added subscription ([@MartinHjelmare] - [#84377])
+- Fix google calendar recurrence rule create and view ([@allenporter] - [#84330])
+- Don't allow google calendar create/delete for yaml/search calendars ([@allenporter] - [#83604])
+- Update types packages ([@cdce8p] - [#84381])
+- Less tasks when receiving SSDP messages ([@StevenLooman] - [#84186])
+- Fix incorrect power factor device class usage in Fronius ([@frenck] - [#84374])
+- Fix incorrect voc device class usage in Deconz sensors ([@frenck] - [#84371])
+- Fix incorrect illuminance device class usage in Broadlink ([@frenck] - [#84373])
+- Fix incorrect co device class usage in GIOS ([@frenck] - [#84379])
+- Fix uom/device class mismatches in tests ([@frenck] - [#84372])
+- Use selector in AndroidTV option flow form ([@ollo69] - [#83761])
+- Update isort to 5.11.4 ([@cdce8p] - [#84406])
+- Improve error message when an automation fails to validate ([@emontnemery] - [#83977])
+- Add enum device class and translations to DSMR Active tariff sensor ([@J3173] - [#84253])
+- Fix issues with Color temperature conversions in Hue ([@marcelveldt] - [#83982])
+- Update actions/cache to 3.2.0 + new restore action ([@cdce8p] - [#84408])
+- Add support for entity aliases to Google Assistant ([@frenck] - [#84405])
+- Bump zeroconf to 0.47.0 ([@bdraco] - [#84420])
+- Add myself as a codeowner for rainbird ([@allenporter] - [#84421])
+- Replace async_schedule_update_ha_state for manual and manual_mqtt ([@jbouwh] - [#84395])
+- Fix incorrect signal strength device class usage in Rituals Genie ([@frenck] - [#84376])
+- Restore speed when turning a Tasmota fan back on ([@emontnemery] - [#84337])
+- String formatting and max line length - Part 1 ([@frenck] - [#84390])
+- Additional tests to improve coverage of manual and manual_mqtt ([@jbouwh] - [#84424])
+- Fix flaky automation test ([@emontnemery] - [#84428])
+- Fix incorrect voltage device class usage in RuuviTag BLE ([@frenck] - [#84380])
+- String formatting and max line length - Part 2 ([@frenck] - [#84393])
+- Improve script config tests ([@emontnemery] - [#84433])
+- Bump plexapi to 4.13.2 ([@jjlawren] - [#84416])
+- Bump yalexs-ble to 1.12.3 ([@bdraco] - [#84414])
+- Split out part of update sensor to a common UniFi entity class ([@Kane610] - [#84262])
+- String formatting and max line length - Part 3 ([@frenck] - [#84394])
+- Remove front matter parsing in homeassistant_alerts ([@ludeeus] - [#83980])
+- Fix DHWP overkiz_to_operation_mode creation list ([@nyroDev] - [#83885])
+- Add Ecobee Smart Enhanced ([@FuzzyMistborn] - [#83666])
+- Improve error message when a script fails to validate ([@emontnemery] - [#84438])
+- Fix title of Matter integration ([@marcelveldt] - [#84385])
+- Add firmware update entity for Litter-Robot 4 ([@natekspencer] - [#83590])
+- Fix Matter param order for subscribing ([@balloob] - [#84460])
+- Use first refresh method from data update coordinator in PI-Hole integration ([@mib1185] - [#84453])
+- Strip whitespace from application credentials ([@allenporter] - [#84461])
+- Upgrade ciso8601 to 2.3.0 ([@frenck] - [#84465])
+- ESPHome: do not set expected_name on APIClient ([@jesserockz] - [#84471])
+- Move Rainbird to async client library ([@allenporter] - [#84417])
+- Install all test requirements in bootstrap ([@jesserockz] - [#84469])
+- Test conversation WS API ([@balloob] - [#84466])
+- Replace attrs with dataclasses in Core exceptions ([@frenck] - [#84473])
+- Make all ARMED states available for manual_mqtt ([@bonzini] - [#84264])
+- Bump actions/setup-python from 4.3.1 to 4.4.0 (@dependabot - [#84488])
+- Round illuminance value in ZHA integration ([@bieniu] - [#84500])
+- String formatting and max line length - Part 4 ([@frenck] - [#84445])
+- Replace attrs with dataclasses in hassfest ([@frenck] - [#84475])
+- String formatting and max line length - Part 5 ([@frenck] - [#84501])
+- Switch to a different local Bluetooth adapter when one runs out of connection slots ([@bdraco] - [#84331])
+- Add blebox discovery/zeroconf ([@riokuu] - [#83837])
+- Bump yalexs_ble to 1.12.5 ([@bdraco] - [#84517])
+- Try the next best adapter after a BLE connection fails ([@bdraco] - [#84512])
+- Fix flaky Nina CI test ([@balloob] - [#84522])
+- Cleanup rainbird controller setup as feedback from previous PR ([@allenporter] - [#84504])
+- Bump pySwitchbot to 0.30.1 to fix a deadlock when services are missing ([@bdraco] - [#84521])
+- Bump zeroconf to 0.47.1 ([@bdraco] - [#84523])
+- Update nibe to 1.6.0 ([@elupus] - [#84449])
+- String formatting and max line length - Part 6 ([@frenck] - [#84525])
+- Bump zamg from 0.2.1 to 0.2.2 ([@killer0071234] - [#84526])
+- Bump actions/cache from 3.2.0 to 3.2.1 (@dependabot - [#84565])
+- Add mysensors binary sensor tests ([@MartinHjelmare] - [#84580])
+- Deprecate `set_doorbell_message` UniFi Protect service ([@AngellusMortis] - [#83675])
+- Deprecate the UniFi Protect Detected Object sensor ([@AngellusMortis] - [#83480])
+- Add mysensors switch tests ([@MartinHjelmare] - [#84585])
+- Bump pySwitchbot to 0.31.0 ([@bdraco] - [#84586])
+- Add mysensors device tracker tests ([@MartinHjelmare] - [#84589])
+- Add strict typing to simplepush ([@engrbm87] - [#84598])
+- Add strict typing to speedtestdotnet ([@engrbm87] - [#84597])
+- Fix F602 key repeated ([@yuvalabou] - [#84531])
+- String formatting and max line length - Part 7 ([@frenck] - [#84532])
+- Add recommended actions to NINA ([@DeerMaximum] - [#83775])
+- Add support for covers in Prometheus metrics ([@spyder007] - [#83763])
+- Remove lumen from Illuminance units ([@epenet] - [#84386])
+- Use Object selector for AndroidTV detection rules option ([@ollo69] - [#84412])
+- Update xknx to 2.2.0 ([@farmio] - [#84609])
+- Add mysensors light tests ([@MartinHjelmare] - [#84606])
+- Add Plugwise climate preset translations ([@frenck] - [#84617])
+- Clean mysensors test fixture loading ([@MartinHjelmare] - [#84618])
+- Add mysensors climate tests ([@MartinHjelmare] - [#84619])
+- Add mysensors cover tests ([@MartinHjelmare] - [#84626])
+- Clean mysensors update callbacks ([@MartinHjelmare] - [#84629])
+- Add `cooldown` and `respond_to_read` options for KNX expose ([@farmio] - [#84613])
+- Improve `lookin` generic typing ([@cdce8p] - [#84636])
+- Improve `gogogate2` generic typing ([@cdce8p] - [#84632])
+- KNX ConfigFlow: Validate contents of knxkeys file ([@farmio] - [#84411])
+- Return unavailable if Govee BLE sensor is in error ([@PierreAronnax] - [#84547])
+- Add climate platform to Mazda integration ([@bdr99] - [#75037])
+- Add reolink IP NVR/Camera integration ([@starkillerOG] - [#84081])
+- Improve `rainbird` generic typing ([@cdce8p] - [#84642])
+- Improve `ovo_energy` generic typing ([@cdce8p] - [#84641])
+- Improve `rdw` generic typing ([@cdce8p] - [#84643])
+- Improve `google` calendar generic typing ([@cdce8p] - [#84633])
+- Improve `kostal_plenticore` generic typing ([@cdce8p] - [#84634])
+- Improve `laundrify` generic typing ([@cdce8p] - [#84635])
+- Improve `lyric` generic typing ([@cdce8p] - [#84637])
+- Add Local calendar edit support ([@allenporter] - [#84141])
+- Use debouncer in mysensors ([@MartinHjelmare] - [#84638])
+- Improve `totalconnect` generic typing ([@cdce8p] - [#84650])
+- Improve `synology_dsm` generic typing ([@cdce8p] - [#84649])
+- Improve `surepetcare` generic typing ([@cdce8p] - [#84647])
+- Improve `steam_online` generic typing ([@cdce8p] - [#84646])
+- Update wled to 0.15.0 ([@frenck] - [#84639])
+- Improve DataUpdateCoordinator typing in integrations (1) ([@cdce8p] - [#84655])
+- Improve DataUpdateCoordinator typing in integrations (2) ([@cdce8p] - [#84656])
+- Improve DataUpdateCoordinator typing in integrations (3) ([@cdce8p] - [#84657])
+- Improve DataUpdateCoordinator typing in integrations (4) ([@cdce8p] - [#84658])
+- ISY994: Bump pyisy to 3.0.9 ([@shbatm] - [#84654])
+- Add IPv6 support to snmp sensor ([@stgraber] - [#84607])
+- Fix thundering heard in setup_again when there are many integrations ([@bdraco] - [#84670])
+- Avoid creating a task in the bluetooth watchdog when everything is OK ([@bdraco] - [#84669])
+- Switch to orjson for tests ([@elupus] - [#84674])
+- Add support for SwitchBot Lock ([@dsypniewski] - [#84673])
+- Fix SwitchBot Lock test ([@dsypniewski] - [#84682])
+- Bump actions/cache from 3.2.1 to 3.2.2 (@dependabot - [#84683])
+- Improve `omnilogic` generic typing ([@cdce8p] - [#84686])
+- Improve `meteo_france` generic typing ([@cdce8p] - [#84685])
+- KNX ConfigFlow: add selection of secure tunnel endpoint ([@farmio] - [#84651])
+- Fix zha RMS voltage ([@MattWestb] - [#84689])
+- Add nibe heat pump alarm reset button ([@elupus] - [#79427])
+- Switch to pytest-freezer ([@elupus] - [#84680])
+- Update frontend to 20221228.0 ([@bramkragten] - [#84696])
+- airzone: update aioairzone to v0.5.2 ([@Noltari] - [#84690])
+- Fix handling of CoAP 404 in homekit_controller ([@Jc2k] - [#84700])
+- Improve `risco` generic typing ([@cdce8p] - [#84644])
+- Bump python matter server to 1.0.8 ([@marcelveldt] - [#84692])
+- Update apprise to 1.2.1 ([@hmmbob] - [#84705])
+- Remove deprecated tankerkoenig YAML config ([@mib1185] - [#84711])
+- Gracefully handle caldav event with missing summary ([@allenporter] - [#84719])
+- water_heater: Add unsupported states ([@oischinger] - [#84720])
+- Remove incorrect unit for AirVisual AQI sensor ([@bachya] - [#84723])
+- Fix incorrect values for AirVisual Pro sensors ([@bachya] - [#84725])
+- Fix and upgrade minio integration ([@tkislan] - [#84545])
+- Bump pynetgear to 0.10.9 ([@starkillerOG] - [#84733])
+- Fix UUID normalisation for vendor extensions in homekit_controller thread transport ([@Jc2k] - [#84746])
+- Check google calendar API scope to determine if write access is enabled ([@allenporter] - [#84749])
+- Catch vicare errors when deactivating preset fails ([@oischinger] - [#84778])
+- Only subscribe to specific UniFi object ID ([@Kane610] - [#84787])
+- Remove `ozone` device class from OpenUV sensor ([@bachya] - [#84791])
+- Don't attempt setup on migrated AirVisual Pro in the `airvisual` domain ([@bachya] - [#84796])
+- Deprecate YAML config in PI-Hole ([@mib1185] - [#84797])
+- Fix AirVisual Pro sensors with incorrect units for their device classes ([@bachya] - [#84800])
+- Correct missing alarm reset button on nibe ([@elupus] - [#84809])
+- Fix thermobeacon WS08 models that identify with manufacturer_id 27 ([@bdraco] - [#84812])
+- ISY994: Bump PyISY to 3.0.10 ([@shbatm] - [#84821])
+- Actually try port when finding next available port for ssdp server ([@StevenLooman] - [#84206])
+- Fix growatt identification issue ([@muppet3000] - [#84628])
+- Enable unit conversion for DATA_RATE ([@epenet] - [#84698])
+- Enable unit conversion for DATA_SIZE ([@epenet] - [#84699])
+- Use pycarwings2 2.14 ([@filcole] - [#84792])
+- Add mV as a unit for voltage and enable conversions ([@jbouwh] - [#84805])
+- Add mA to SensorDeviceClass.CURRENT units ([@SukramJ] - [#84492])
+- Add option to retrieve SwitchBot Lock encryption key through config flow ([@dsypniewski] - [#84830])
+- Redesign and refactor Bravia TV config_flow ([@Drafteed] - [#84832])
+- Update frontend to 20221230.0 ([@bramkragten] - [#84842])
+- Add availability property to DSMR sensors ([@frenck] - [#84848])
+- Ensure AirVisual Pro migration includes device and entity customizations ([@bachya] - [#84798])
+- Bump pybravia to 0.2.5 ([@Drafteed] - [#84835])
+- Do not validate device classes when entity state is unknown ([@frenck] - [#84860])
+- Only reflect unavailable state in DSMR when disconnected ([@frenck] - [#84862])
+- Bump aiounifi to v43 ([@Kane610] - [#84864])
+- Bump pyroon library to 0.1.2. ([@pavoni] - [#84865])
+- Bump pyeconet to 0.1.17 ([@w1ll1am23] - [#84868])
+- Bump motionblinds to 0.6.14 ([@starkillerOG] - [#84873])
+- Process late feedback for Reolink ([@starkillerOG] - [#84884])
+- Small fixes for SwitchBot Locks ([@bdraco] - [#84888])
+- Don't include distance in PurpleAir sensor selector ([@bachya] - [#84893])
+- Fix issues with PurpleAir sensor device class and unit ([@bachya] - [#84896])
+- Use serial number for AirVisal Pro config entry unique ID ([@bachya] - [#84902])
+- Google Assistant SDK: Log command and response ([@tronikos] - [#84904])
+- Fix free/busy google calendars ([@allenporter] - [#84907])
+- Bump pydeconz to v106 ([@Kane610] - [#84914])
+- Fix haveibeenpwned user-agent string ([@ChopperRob] - [#84919])
+- Fix Climate device HVAC mode trigger UI ([@allenporter] - [#84930])
+- Fix failing HomeKit Controller diagnostics tests ([@bdraco] - [#84936])
+- Bump pySwitchbot to 0.36.1 ([@bdraco] - [#84937])
+- Fix caldav calendars with custom timezones ([@allenporter] - [#84955])
+- Handle not available add-on in hassio add-on manager ([@MartinHjelmare] - [#84943])
+- Consider 95% as closed for Motion blinds venetian blinds ([@starkillerOG] - [#84872])
+- Handle not available add-on in hassio add-on manager ([@MartinHjelmare] - [#84943])
+- Revert "Add aliases to device registry items" ([@emontnemery] - [#84976])
+- Bump motionblinds to 0.6.15 ([@starkillerOG] - [#84994])
+- Bump ZHA quirks ([@dmulcahey] - [#85004])
+- Bump home-assistant-bluetooth to 1.9.1 ([@bdraco] - [#85005])
+- Update Tibber lib to 0.26.7. Improve error handling of realtime data ([@Danielhiversen] - [#85008])
+- Update frontend to 20230102.0 ([@bramkragten] - [#85010])
+- Switch to reolink-aio ([@starkillerOG] - [#85014])
+- Bump pyatmo to v7.5.0 ([@cgtobi] - [#85016])
+- Bump httpx to 0.23.2 ([@bdraco] - [#85023])
+- Bump slixmpp to 1.8.3 ([@balloob] - [#85031])
+- Fix bluetooth not being loaded with esphome proxies when removed from default_config ([@bdraco] - [#85032])
+- Fix failing HomeKit Controller diagnostics tests ([@bdraco] - [#84936])
+- 2022.12.9 ([@balloob] - [#85030])
+- Fix integer only LCN variable values ([@alengwenus] - [#85035])
+- Update adguard to 0.6.1 ([@frenck] - [#85052])
+- Remove workaround for reloading PurpleAir upon device removal ([@bachya] - [#85086])
+- Do not reset current selection on reconfig or MQTT select ([@jbouwh] - [#85099])
+- Allow MQTT device_class or state_class to be set as `None` ([@jbouwh] - [#85106])
+- Update frontend to 20230104.0 ([@bramkragten] - [#85107])
+- Remove illuminance device class for sensors in devolo Home Control ([@Shutgun] - [#85108])
+- Handle zone exception when setting up Cloudflare ([@ludeeus] - [#85110])
+
+[#71307]: https://github.com/home-assistant/core/pull/71307
+[#74292]: https://github.com/home-assistant/core/pull/74292
+[#74619]: https://github.com/home-assistant/core/pull/74619
+[#75037]: https://github.com/home-assistant/core/pull/75037
+[#75365]: https://github.com/home-assistant/core/pull/75365
+[#77028]: https://github.com/home-assistant/core/pull/77028
+[#78952]: https://github.com/home-assistant/core/pull/78952
+[#79427]: https://github.com/home-assistant/core/pull/79427
+[#79770]: https://github.com/home-assistant/core/pull/79770
+[#81090]: https://github.com/home-assistant/core/pull/81090
+[#81369]: https://github.com/home-assistant/core/pull/81369
+[#81643]: https://github.com/home-assistant/core/pull/81643
+[#81768]: https://github.com/home-assistant/core/pull/81768
+[#81821]: https://github.com/home-assistant/core/pull/81821
+[#81930]: https://github.com/home-assistant/core/pull/81930
+[#82110]: https://github.com/home-assistant/core/pull/82110
+[#82328]: https://github.com/home-assistant/core/pull/82328
+[#82366]: https://github.com/home-assistant/core/pull/82366
+[#82446]: https://github.com/home-assistant/core/pull/82446
+[#82489]: https://github.com/home-assistant/core/pull/82489
+[#82548]: https://github.com/home-assistant/core/pull/82548
+[#82701]: https://github.com/home-assistant/core/pull/82701
+[#82740]: https://github.com/home-assistant/core/pull/82740
+[#82966]: https://github.com/home-assistant/core/pull/82966
+[#82990]: https://github.com/home-assistant/core/pull/82990
+[#82992]: https://github.com/home-assistant/core/pull/82992
+[#83025]: https://github.com/home-assistant/core/pull/83025
+[#83026]: https://github.com/home-assistant/core/pull/83026
+[#83027]: https://github.com/home-assistant/core/pull/83027
+[#83028]: https://github.com/home-assistant/core/pull/83028
+[#83029]: https://github.com/home-assistant/core/pull/83029
+[#83034]: https://github.com/home-assistant/core/pull/83034
+[#83042]: https://github.com/home-assistant/core/pull/83042
+[#83053]: https://github.com/home-assistant/core/pull/83053
+[#83066]: https://github.com/home-assistant/core/pull/83066
+[#83073]: https://github.com/home-assistant/core/pull/83073
+[#83086]: https://github.com/home-assistant/core/pull/83086
+[#83103]: https://github.com/home-assistant/core/pull/83103
+[#83105]: https://github.com/home-assistant/core/pull/83105
+[#83107]: https://github.com/home-assistant/core/pull/83107
+[#83108]: https://github.com/home-assistant/core/pull/83108
+[#83109]: https://github.com/home-assistant/core/pull/83109
+[#83111]: https://github.com/home-assistant/core/pull/83111
+[#83116]: https://github.com/home-assistant/core/pull/83116
+[#83119]: https://github.com/home-assistant/core/pull/83119
+[#83120]: https://github.com/home-assistant/core/pull/83120
+[#83121]: https://github.com/home-assistant/core/pull/83121
+[#83122]: https://github.com/home-assistant/core/pull/83122
+[#83123]: https://github.com/home-assistant/core/pull/83123
+[#83124]: https://github.com/home-assistant/core/pull/83124
+[#83125]: https://github.com/home-assistant/core/pull/83125
+[#83127]: https://github.com/home-assistant/core/pull/83127
+[#83129]: https://github.com/home-assistant/core/pull/83129
+[#83130]: https://github.com/home-assistant/core/pull/83130
+[#83131]: https://github.com/home-assistant/core/pull/83131
+[#83132]: https://github.com/home-assistant/core/pull/83132
+[#83143]: https://github.com/home-assistant/core/pull/83143
+[#83151]: https://github.com/home-assistant/core/pull/83151
+[#83167]: https://github.com/home-assistant/core/pull/83167
+[#83171]: https://github.com/home-assistant/core/pull/83171
+[#83172]: https://github.com/home-assistant/core/pull/83172
+[#83185]: https://github.com/home-assistant/core/pull/83185
+[#83195]: https://github.com/home-assistant/core/pull/83195
+[#83198]: https://github.com/home-assistant/core/pull/83198
+[#83203]: https://github.com/home-assistant/core/pull/83203
+[#83208]: https://github.com/home-assistant/core/pull/83208
+[#83216]: https://github.com/home-assistant/core/pull/83216
+[#83228]: https://github.com/home-assistant/core/pull/83228
+[#83229]: https://github.com/home-assistant/core/pull/83229
+[#83230]: https://github.com/home-assistant/core/pull/83230
+[#83241]: https://github.com/home-assistant/core/pull/83241
+[#83258]: https://github.com/home-assistant/core/pull/83258
+[#83259]: https://github.com/home-assistant/core/pull/83259
+[#83269]: https://github.com/home-assistant/core/pull/83269
+[#83273]: https://github.com/home-assistant/core/pull/83273
+[#83286]: https://github.com/home-assistant/core/pull/83286
+[#83287]: https://github.com/home-assistant/core/pull/83287
+[#83288]: https://github.com/home-assistant/core/pull/83288
+[#83289]: https://github.com/home-assistant/core/pull/83289
+[#83290]: https://github.com/home-assistant/core/pull/83290
+[#83291]: https://github.com/home-assistant/core/pull/83291
+[#83292]: https://github.com/home-assistant/core/pull/83292
+[#83293]: https://github.com/home-assistant/core/pull/83293
+[#83294]: https://github.com/home-assistant/core/pull/83294
+[#83295]: https://github.com/home-assistant/core/pull/83295
+[#83296]: https://github.com/home-assistant/core/pull/83296
+[#83297]: https://github.com/home-assistant/core/pull/83297
+[#83298]: https://github.com/home-assistant/core/pull/83298
+[#83300]: https://github.com/home-assistant/core/pull/83300
+[#83301]: https://github.com/home-assistant/core/pull/83301
+[#83303]: https://github.com/home-assistant/core/pull/83303
+[#83304]: https://github.com/home-assistant/core/pull/83304
+[#83305]: https://github.com/home-assistant/core/pull/83305
+[#83306]: https://github.com/home-assistant/core/pull/83306
+[#83308]: https://github.com/home-assistant/core/pull/83308
+[#83310]: https://github.com/home-assistant/core/pull/83310
+[#83311]: https://github.com/home-assistant/core/pull/83311
+[#83314]: https://github.com/home-assistant/core/pull/83314
+[#83315]: https://github.com/home-assistant/core/pull/83315
+[#83316]: https://github.com/home-assistant/core/pull/83316
+[#83318]: https://github.com/home-assistant/core/pull/83318
+[#83321]: https://github.com/home-assistant/core/pull/83321
+[#83322]: https://github.com/home-assistant/core/pull/83322
+[#83323]: https://github.com/home-assistant/core/pull/83323
+[#83324]: https://github.com/home-assistant/core/pull/83324
+[#83325]: https://github.com/home-assistant/core/pull/83325
+[#83327]: https://github.com/home-assistant/core/pull/83327
+[#83329]: https://github.com/home-assistant/core/pull/83329
+[#83330]: https://github.com/home-assistant/core/pull/83330
+[#83331]: https://github.com/home-assistant/core/pull/83331
+[#83334]: https://github.com/home-assistant/core/pull/83334
+[#83337]: https://github.com/home-assistant/core/pull/83337
+[#83338]: https://github.com/home-assistant/core/pull/83338
+[#83342]: https://github.com/home-assistant/core/pull/83342
+[#83344]: https://github.com/home-assistant/core/pull/83344
+[#83347]: https://github.com/home-assistant/core/pull/83347
+[#83357]: https://github.com/home-assistant/core/pull/83357
+[#83360]: https://github.com/home-assistant/core/pull/83360
+[#83361]: https://github.com/home-assistant/core/pull/83361
+[#83362]: https://github.com/home-assistant/core/pull/83362
+[#83363]: https://github.com/home-assistant/core/pull/83363
+[#83364]: https://github.com/home-assistant/core/pull/83364
+[#83365]: https://github.com/home-assistant/core/pull/83365
+[#83366]: https://github.com/home-assistant/core/pull/83366
+[#83367]: https://github.com/home-assistant/core/pull/83367
+[#83368]: https://github.com/home-assistant/core/pull/83368
+[#83369]: https://github.com/home-assistant/core/pull/83369
+[#83370]: https://github.com/home-assistant/core/pull/83370
+[#83371]: https://github.com/home-assistant/core/pull/83371
+[#83372]: https://github.com/home-assistant/core/pull/83372
+[#83376]: https://github.com/home-assistant/core/pull/83376
+[#83377]: https://github.com/home-assistant/core/pull/83377
+[#83379]: https://github.com/home-assistant/core/pull/83379
+[#83384]: https://github.com/home-assistant/core/pull/83384
+[#83385]: https://github.com/home-assistant/core/pull/83385
+[#83386]: https://github.com/home-assistant/core/pull/83386
+[#83387]: https://github.com/home-assistant/core/pull/83387
+[#83388]: https://github.com/home-assistant/core/pull/83388
+[#83390]: https://github.com/home-assistant/core/pull/83390
+[#83391]: https://github.com/home-assistant/core/pull/83391
+[#83392]: https://github.com/home-assistant/core/pull/83392
+[#83393]: https://github.com/home-assistant/core/pull/83393
+[#83394]: https://github.com/home-assistant/core/pull/83394
+[#83395]: https://github.com/home-assistant/core/pull/83395
+[#83396]: https://github.com/home-assistant/core/pull/83396
+[#83397]: https://github.com/home-assistant/core/pull/83397
+[#83398]: https://github.com/home-assistant/core/pull/83398
+[#83399]: https://github.com/home-assistant/core/pull/83399
+[#83400]: https://github.com/home-assistant/core/pull/83400
+[#83402]: https://github.com/home-assistant/core/pull/83402
+[#83405]: https://github.com/home-assistant/core/pull/83405
+[#83406]: https://github.com/home-assistant/core/pull/83406
+[#83409]: https://github.com/home-assistant/core/pull/83409
+[#83414]: https://github.com/home-assistant/core/pull/83414
+[#83419]: https://github.com/home-assistant/core/pull/83419
+[#83420]: https://github.com/home-assistant/core/pull/83420
+[#83421]: https://github.com/home-assistant/core/pull/83421
+[#83436]: https://github.com/home-assistant/core/pull/83436
+[#83438]: https://github.com/home-assistant/core/pull/83438
+[#83440]: https://github.com/home-assistant/core/pull/83440
+[#83445]: https://github.com/home-assistant/core/pull/83445
+[#83450]: https://github.com/home-assistant/core/pull/83450
+[#83451]: https://github.com/home-assistant/core/pull/83451
+[#83452]: https://github.com/home-assistant/core/pull/83452
+[#83453]: https://github.com/home-assistant/core/pull/83453
+[#83455]: https://github.com/home-assistant/core/pull/83455
+[#83456]: https://github.com/home-assistant/core/pull/83456
+[#83480]: https://github.com/home-assistant/core/pull/83480
+[#83486]: https://github.com/home-assistant/core/pull/83486
+[#83490]: https://github.com/home-assistant/core/pull/83490
+[#83495]: https://github.com/home-assistant/core/pull/83495
+[#83506]: https://github.com/home-assistant/core/pull/83506
+[#83525]: https://github.com/home-assistant/core/pull/83525
+[#83530]: https://github.com/home-assistant/core/pull/83530
+[#83533]: https://github.com/home-assistant/core/pull/83533
+[#83534]: https://github.com/home-assistant/core/pull/83534
+[#83546]: https://github.com/home-assistant/core/pull/83546
+[#83560]: https://github.com/home-assistant/core/pull/83560
+[#83574]: https://github.com/home-assistant/core/pull/83574
+[#83576]: https://github.com/home-assistant/core/pull/83576
+[#83577]: https://github.com/home-assistant/core/pull/83577
+[#83580]: https://github.com/home-assistant/core/pull/83580
+[#83581]: https://github.com/home-assistant/core/pull/83581
+[#83582]: https://github.com/home-assistant/core/pull/83582
+[#83583]: https://github.com/home-assistant/core/pull/83583
+[#83584]: https://github.com/home-assistant/core/pull/83584
+[#83585]: https://github.com/home-assistant/core/pull/83585
+[#83586]: https://github.com/home-assistant/core/pull/83586
+[#83590]: https://github.com/home-assistant/core/pull/83590
+[#83598]: https://github.com/home-assistant/core/pull/83598
+[#83599]: https://github.com/home-assistant/core/pull/83599
+[#83601]: https://github.com/home-assistant/core/pull/83601
+[#83604]: https://github.com/home-assistant/core/pull/83604
+[#83607]: https://github.com/home-assistant/core/pull/83607
+[#83610]: https://github.com/home-assistant/core/pull/83610
+[#83611]: https://github.com/home-assistant/core/pull/83611
+[#83612]: https://github.com/home-assistant/core/pull/83612
+[#83622]: https://github.com/home-assistant/core/pull/83622
+[#83623]: https://github.com/home-assistant/core/pull/83623
+[#83627]: https://github.com/home-assistant/core/pull/83627
+[#83628]: https://github.com/home-assistant/core/pull/83628
+[#83633]: https://github.com/home-assistant/core/pull/83633
+[#83634]: https://github.com/home-assistant/core/pull/83634
+[#83639]: https://github.com/home-assistant/core/pull/83639
+[#83641]: https://github.com/home-assistant/core/pull/83641
+[#83646]: https://github.com/home-assistant/core/pull/83646
+[#83647]: https://github.com/home-assistant/core/pull/83647
+[#83648]: https://github.com/home-assistant/core/pull/83648
+[#83649]: https://github.com/home-assistant/core/pull/83649
+[#83650]: https://github.com/home-assistant/core/pull/83650
+[#83651]: https://github.com/home-assistant/core/pull/83651
+[#83653]: https://github.com/home-assistant/core/pull/83653
+[#83654]: https://github.com/home-assistant/core/pull/83654
+[#83656]: https://github.com/home-assistant/core/pull/83656
+[#83657]: https://github.com/home-assistant/core/pull/83657
+[#83658]: https://github.com/home-assistant/core/pull/83658
+[#83660]: https://github.com/home-assistant/core/pull/83660
+[#83666]: https://github.com/home-assistant/core/pull/83666
+[#83668]: https://github.com/home-assistant/core/pull/83668
+[#83674]: https://github.com/home-assistant/core/pull/83674
+[#83675]: https://github.com/home-assistant/core/pull/83675
+[#83682]: https://github.com/home-assistant/core/pull/83682
+[#83685]: https://github.com/home-assistant/core/pull/83685
+[#83691]: https://github.com/home-assistant/core/pull/83691
+[#83694]: https://github.com/home-assistant/core/pull/83694
+[#83696]: https://github.com/home-assistant/core/pull/83696
+[#83699]: https://github.com/home-assistant/core/pull/83699
+[#83700]: https://github.com/home-assistant/core/pull/83700
+[#83701]: https://github.com/home-assistant/core/pull/83701
+[#83703]: https://github.com/home-assistant/core/pull/83703
+[#83705]: https://github.com/home-assistant/core/pull/83705
+[#83726]: https://github.com/home-assistant/core/pull/83726
+[#83728]: https://github.com/home-assistant/core/pull/83728
+[#83729]: https://github.com/home-assistant/core/pull/83729
+[#83738]: https://github.com/home-assistant/core/pull/83738
+[#83741]: https://github.com/home-assistant/core/pull/83741
+[#83742]: https://github.com/home-assistant/core/pull/83742
+[#83748]: https://github.com/home-assistant/core/pull/83748
+[#83754]: https://github.com/home-assistant/core/pull/83754
+[#83761]: https://github.com/home-assistant/core/pull/83761
+[#83763]: https://github.com/home-assistant/core/pull/83763
+[#83767]: https://github.com/home-assistant/core/pull/83767
+[#83770]: https://github.com/home-assistant/core/pull/83770
+[#83771]: https://github.com/home-assistant/core/pull/83771
+[#83774]: https://github.com/home-assistant/core/pull/83774
+[#83775]: https://github.com/home-assistant/core/pull/83775
+[#83784]: https://github.com/home-assistant/core/pull/83784
+[#83793]: https://github.com/home-assistant/core/pull/83793
+[#83796]: https://github.com/home-assistant/core/pull/83796
+[#83801]: https://github.com/home-assistant/core/pull/83801
+[#83805]: https://github.com/home-assistant/core/pull/83805
+[#83806]: https://github.com/home-assistant/core/pull/83806
+[#83807]: https://github.com/home-assistant/core/pull/83807
+[#83808]: https://github.com/home-assistant/core/pull/83808
+[#83809]: https://github.com/home-assistant/core/pull/83809
+[#83810]: https://github.com/home-assistant/core/pull/83810
+[#83811]: https://github.com/home-assistant/core/pull/83811
+[#83812]: https://github.com/home-assistant/core/pull/83812
+[#83814]: https://github.com/home-assistant/core/pull/83814
+[#83815]: https://github.com/home-assistant/core/pull/83815
+[#83817]: https://github.com/home-assistant/core/pull/83817
+[#83818]: https://github.com/home-assistant/core/pull/83818
+[#83820]: https://github.com/home-assistant/core/pull/83820
+[#83821]: https://github.com/home-assistant/core/pull/83821
+[#83822]: https://github.com/home-assistant/core/pull/83822
+[#83823]: https://github.com/home-assistant/core/pull/83823
+[#83824]: https://github.com/home-assistant/core/pull/83824
+[#83825]: https://github.com/home-assistant/core/pull/83825
+[#83826]: https://github.com/home-assistant/core/pull/83826
+[#83837]: https://github.com/home-assistant/core/pull/83837
+[#83858]: https://github.com/home-assistant/core/pull/83858
+[#83859]: https://github.com/home-assistant/core/pull/83859
+[#83869]: https://github.com/home-assistant/core/pull/83869
+[#83872]: https://github.com/home-assistant/core/pull/83872
+[#83877]: https://github.com/home-assistant/core/pull/83877
+[#83880]: https://github.com/home-assistant/core/pull/83880
+[#83881]: https://github.com/home-assistant/core/pull/83881
+[#83882]: https://github.com/home-assistant/core/pull/83882
+[#83885]: https://github.com/home-assistant/core/pull/83885
+[#83888]: https://github.com/home-assistant/core/pull/83888
+[#83894]: https://github.com/home-assistant/core/pull/83894
+[#83895]: https://github.com/home-assistant/core/pull/83895
+[#83897]: https://github.com/home-assistant/core/pull/83897
+[#83901]: https://github.com/home-assistant/core/pull/83901
+[#83904]: https://github.com/home-assistant/core/pull/83904
+[#83907]: https://github.com/home-assistant/core/pull/83907
+[#83908]: https://github.com/home-assistant/core/pull/83908
+[#83914]: https://github.com/home-assistant/core/pull/83914
+[#83915]: https://github.com/home-assistant/core/pull/83915
+[#83916]: https://github.com/home-assistant/core/pull/83916
+[#83917]: https://github.com/home-assistant/core/pull/83917
+[#83926]: https://github.com/home-assistant/core/pull/83926
+[#83927]: https://github.com/home-assistant/core/pull/83927
+[#83930]: https://github.com/home-assistant/core/pull/83930
+[#83932]: https://github.com/home-assistant/core/pull/83932
+[#83933]: https://github.com/home-assistant/core/pull/83933
+[#83936]: https://github.com/home-assistant/core/pull/83936
+[#83947]: https://github.com/home-assistant/core/pull/83947
+[#83952]: https://github.com/home-assistant/core/pull/83952
+[#83955]: https://github.com/home-assistant/core/pull/83955
+[#83958]: https://github.com/home-assistant/core/pull/83958
+[#83960]: https://github.com/home-assistant/core/pull/83960
+[#83961]: https://github.com/home-assistant/core/pull/83961
+[#83962]: https://github.com/home-assistant/core/pull/83962
+[#83974]: https://github.com/home-assistant/core/pull/83974
+[#83976]: https://github.com/home-assistant/core/pull/83976
+[#83977]: https://github.com/home-assistant/core/pull/83977
+[#83979]: https://github.com/home-assistant/core/pull/83979
+[#83980]: https://github.com/home-assistant/core/pull/83980
+[#83982]: https://github.com/home-assistant/core/pull/83982
+[#84004]: https://github.com/home-assistant/core/pull/84004
+[#84007]: https://github.com/home-assistant/core/pull/84007
+[#84008]: https://github.com/home-assistant/core/pull/84008
+[#84010]: https://github.com/home-assistant/core/pull/84010
+[#84012]: https://github.com/home-assistant/core/pull/84012
+[#84013]: https://github.com/home-assistant/core/pull/84013
+[#84018]: https://github.com/home-assistant/core/pull/84018
+[#84020]: https://github.com/home-assistant/core/pull/84020
+[#84026]: https://github.com/home-assistant/core/pull/84026
+[#84028]: https://github.com/home-assistant/core/pull/84028
+[#84029]: https://github.com/home-assistant/core/pull/84029
+[#84030]: https://github.com/home-assistant/core/pull/84030
+[#84034]: https://github.com/home-assistant/core/pull/84034
+[#84036]: https://github.com/home-assistant/core/pull/84036
+[#84043]: https://github.com/home-assistant/core/pull/84043
+[#84044]: https://github.com/home-assistant/core/pull/84044
+[#84047]: https://github.com/home-assistant/core/pull/84047
+[#84048]: https://github.com/home-assistant/core/pull/84048
+[#84049]: https://github.com/home-assistant/core/pull/84049
+[#84050]: https://github.com/home-assistant/core/pull/84050
+[#84051]: https://github.com/home-assistant/core/pull/84051
+[#84054]: https://github.com/home-assistant/core/pull/84054
+[#84063]: https://github.com/home-assistant/core/pull/84063
+[#84069]: https://github.com/home-assistant/core/pull/84069
+[#84077]: https://github.com/home-assistant/core/pull/84077
+[#84081]: https://github.com/home-assistant/core/pull/84081
+[#84089]: https://github.com/home-assistant/core/pull/84089
+[#84093]: https://github.com/home-assistant/core/pull/84093
+[#84095]: https://github.com/home-assistant/core/pull/84095
+[#84099]: https://github.com/home-assistant/core/pull/84099
+[#84103]: https://github.com/home-assistant/core/pull/84103
+[#84107]: https://github.com/home-assistant/core/pull/84107
+[#84111]: https://github.com/home-assistant/core/pull/84111
+[#84115]: https://github.com/home-assistant/core/pull/84115
+[#84118]: https://github.com/home-assistant/core/pull/84118
+[#84119]: https://github.com/home-assistant/core/pull/84119
+[#84122]: https://github.com/home-assistant/core/pull/84122
+[#84125]: https://github.com/home-assistant/core/pull/84125
+[#84129]: https://github.com/home-assistant/core/pull/84129
+[#84141]: https://github.com/home-assistant/core/pull/84141
+[#84143]: https://github.com/home-assistant/core/pull/84143
+[#84144]: https://github.com/home-assistant/core/pull/84144
+[#84147]: https://github.com/home-assistant/core/pull/84147
+[#84148]: https://github.com/home-assistant/core/pull/84148
+[#84161]: https://github.com/home-assistant/core/pull/84161
+[#84166]: https://github.com/home-assistant/core/pull/84166
+[#84178]: https://github.com/home-assistant/core/pull/84178
+[#84181]: https://github.com/home-assistant/core/pull/84181
+[#84185]: https://github.com/home-assistant/core/pull/84185
+[#84186]: https://github.com/home-assistant/core/pull/84186
+[#84189]: https://github.com/home-assistant/core/pull/84189
+[#84192]: https://github.com/home-assistant/core/pull/84192
+[#84194]: https://github.com/home-assistant/core/pull/84194
+[#84203]: https://github.com/home-assistant/core/pull/84203
+[#84205]: https://github.com/home-assistant/core/pull/84205
+[#84206]: https://github.com/home-assistant/core/pull/84206
+[#84207]: https://github.com/home-assistant/core/pull/84207
+[#84210]: https://github.com/home-assistant/core/pull/84210
+[#84215]: https://github.com/home-assistant/core/pull/84215
+[#84216]: https://github.com/home-assistant/core/pull/84216
+[#84220]: https://github.com/home-assistant/core/pull/84220
+[#84221]: https://github.com/home-assistant/core/pull/84221
+[#84222]: https://github.com/home-assistant/core/pull/84222
+[#84223]: https://github.com/home-assistant/core/pull/84223
+[#84224]: https://github.com/home-assistant/core/pull/84224
+[#84225]: https://github.com/home-assistant/core/pull/84225
+[#84226]: https://github.com/home-assistant/core/pull/84226
+[#84228]: https://github.com/home-assistant/core/pull/84228
+[#84229]: https://github.com/home-assistant/core/pull/84229
+[#84230]: https://github.com/home-assistant/core/pull/84230
+[#84231]: https://github.com/home-assistant/core/pull/84231
+[#84232]: https://github.com/home-assistant/core/pull/84232
+[#84234]: https://github.com/home-assistant/core/pull/84234
+[#84236]: https://github.com/home-assistant/core/pull/84236
+[#84237]: https://github.com/home-assistant/core/pull/84237
+[#84239]: https://github.com/home-assistant/core/pull/84239
+[#84240]: https://github.com/home-assistant/core/pull/84240
+[#84242]: https://github.com/home-assistant/core/pull/84242
+[#84243]: https://github.com/home-assistant/core/pull/84243
+[#84244]: https://github.com/home-assistant/core/pull/84244
+[#84245]: https://github.com/home-assistant/core/pull/84245
+[#84246]: https://github.com/home-assistant/core/pull/84246
+[#84252]: https://github.com/home-assistant/core/pull/84252
+[#84253]: https://github.com/home-assistant/core/pull/84253
+[#84254]: https://github.com/home-assistant/core/pull/84254
+[#84257]: https://github.com/home-assistant/core/pull/84257
+[#84260]: https://github.com/home-assistant/core/pull/84260
+[#84262]: https://github.com/home-assistant/core/pull/84262
+[#84264]: https://github.com/home-assistant/core/pull/84264
+[#84267]: https://github.com/home-assistant/core/pull/84267
+[#84269]: https://github.com/home-assistant/core/pull/84269
+[#84271]: https://github.com/home-assistant/core/pull/84271
+[#84273]: https://github.com/home-assistant/core/pull/84273
+[#84277]: https://github.com/home-assistant/core/pull/84277
+[#84280]: https://github.com/home-assistant/core/pull/84280
+[#84283]: https://github.com/home-assistant/core/pull/84283
+[#84288]: https://github.com/home-assistant/core/pull/84288
+[#84289]: https://github.com/home-assistant/core/pull/84289
+[#84291]: https://github.com/home-assistant/core/pull/84291
+[#84292]: https://github.com/home-assistant/core/pull/84292
+[#84294]: https://github.com/home-assistant/core/pull/84294
+[#84295]: https://github.com/home-assistant/core/pull/84295
+[#84304]: https://github.com/home-assistant/core/pull/84304
+[#84305]: https://github.com/home-assistant/core/pull/84305
+[#84306]: https://github.com/home-assistant/core/pull/84306
+[#84307]: https://github.com/home-assistant/core/pull/84307
+[#84308]: https://github.com/home-assistant/core/pull/84308
+[#84309]: https://github.com/home-assistant/core/pull/84309
+[#84310]: https://github.com/home-assistant/core/pull/84310
+[#84320]: https://github.com/home-assistant/core/pull/84320
+[#84324]: https://github.com/home-assistant/core/pull/84324
+[#84325]: https://github.com/home-assistant/core/pull/84325
+[#84328]: https://github.com/home-assistant/core/pull/84328
+[#84330]: https://github.com/home-assistant/core/pull/84330
+[#84331]: https://github.com/home-assistant/core/pull/84331
+[#84333]: https://github.com/home-assistant/core/pull/84333
+[#84337]: https://github.com/home-assistant/core/pull/84337
+[#84339]: https://github.com/home-assistant/core/pull/84339
+[#84341]: https://github.com/home-assistant/core/pull/84341
+[#84342]: https://github.com/home-assistant/core/pull/84342
+[#84343]: https://github.com/home-assistant/core/pull/84343
+[#84344]: https://github.com/home-assistant/core/pull/84344
+[#84346]: https://github.com/home-assistant/core/pull/84346
+[#84347]: https://github.com/home-assistant/core/pull/84347
+[#84348]: https://github.com/home-assistant/core/pull/84348
+[#84349]: https://github.com/home-assistant/core/pull/84349
+[#84350]: https://github.com/home-assistant/core/pull/84350
+[#84351]: https://github.com/home-assistant/core/pull/84351
+[#84352]: https://github.com/home-assistant/core/pull/84352
+[#84353]: https://github.com/home-assistant/core/pull/84353
+[#84356]: https://github.com/home-assistant/core/pull/84356
+[#84362]: https://github.com/home-assistant/core/pull/84362
+[#84365]: https://github.com/home-assistant/core/pull/84365
+[#84366]: https://github.com/home-assistant/core/pull/84366
+[#84371]: https://github.com/home-assistant/core/pull/84371
+[#84372]: https://github.com/home-assistant/core/pull/84372
+[#84373]: https://github.com/home-assistant/core/pull/84373
+[#84374]: https://github.com/home-assistant/core/pull/84374
+[#84376]: https://github.com/home-assistant/core/pull/84376
+[#84377]: https://github.com/home-assistant/core/pull/84377
+[#84379]: https://github.com/home-assistant/core/pull/84379
+[#84380]: https://github.com/home-assistant/core/pull/84380
+[#84381]: https://github.com/home-assistant/core/pull/84381
+[#84385]: https://github.com/home-assistant/core/pull/84385
+[#84386]: https://github.com/home-assistant/core/pull/84386
+[#84390]: https://github.com/home-assistant/core/pull/84390
+[#84393]: https://github.com/home-assistant/core/pull/84393
+[#84394]: https://github.com/home-assistant/core/pull/84394
+[#84395]: https://github.com/home-assistant/core/pull/84395
+[#84405]: https://github.com/home-assistant/core/pull/84405
+[#84406]: https://github.com/home-assistant/core/pull/84406
+[#84408]: https://github.com/home-assistant/core/pull/84408
+[#84411]: https://github.com/home-assistant/core/pull/84411
+[#84412]: https://github.com/home-assistant/core/pull/84412
+[#84414]: https://github.com/home-assistant/core/pull/84414
+[#84416]: https://github.com/home-assistant/core/pull/84416
+[#84417]: https://github.com/home-assistant/core/pull/84417
+[#84420]: https://github.com/home-assistant/core/pull/84420
+[#84421]: https://github.com/home-assistant/core/pull/84421
+[#84424]: https://github.com/home-assistant/core/pull/84424
+[#84428]: https://github.com/home-assistant/core/pull/84428
+[#84433]: https://github.com/home-assistant/core/pull/84433
+[#84438]: https://github.com/home-assistant/core/pull/84438
+[#84445]: https://github.com/home-assistant/core/pull/84445
+[#84449]: https://github.com/home-assistant/core/pull/84449
+[#84453]: https://github.com/home-assistant/core/pull/84453
+[#84460]: https://github.com/home-assistant/core/pull/84460
+[#84461]: https://github.com/home-assistant/core/pull/84461
+[#84465]: https://github.com/home-assistant/core/pull/84465
+[#84466]: https://github.com/home-assistant/core/pull/84466
+[#84469]: https://github.com/home-assistant/core/pull/84469
+[#84471]: https://github.com/home-assistant/core/pull/84471
+[#84473]: https://github.com/home-assistant/core/pull/84473
+[#84475]: https://github.com/home-assistant/core/pull/84475
+[#84488]: https://github.com/home-assistant/core/pull/84488
+[#84492]: https://github.com/home-assistant/core/pull/84492
+[#84500]: https://github.com/home-assistant/core/pull/84500
+[#84501]: https://github.com/home-assistant/core/pull/84501
+[#84504]: https://github.com/home-assistant/core/pull/84504
+[#84512]: https://github.com/home-assistant/core/pull/84512
+[#84517]: https://github.com/home-assistant/core/pull/84517
+[#84521]: https://github.com/home-assistant/core/pull/84521
+[#84522]: https://github.com/home-assistant/core/pull/84522
+[#84523]: https://github.com/home-assistant/core/pull/84523
+[#84525]: https://github.com/home-assistant/core/pull/84525
+[#84526]: https://github.com/home-assistant/core/pull/84526
+[#84531]: https://github.com/home-assistant/core/pull/84531
+[#84532]: https://github.com/home-assistant/core/pull/84532
+[#84545]: https://github.com/home-assistant/core/pull/84545
+[#84547]: https://github.com/home-assistant/core/pull/84547
+[#84565]: https://github.com/home-assistant/core/pull/84565
+[#84580]: https://github.com/home-assistant/core/pull/84580
+[#84585]: https://github.com/home-assistant/core/pull/84585
+[#84586]: https://github.com/home-assistant/core/pull/84586
+[#84589]: https://github.com/home-assistant/core/pull/84589
+[#84597]: https://github.com/home-assistant/core/pull/84597
+[#84598]: https://github.com/home-assistant/core/pull/84598
+[#84606]: https://github.com/home-assistant/core/pull/84606
+[#84607]: https://github.com/home-assistant/core/pull/84607
+[#84609]: https://github.com/home-assistant/core/pull/84609
+[#84613]: https://github.com/home-assistant/core/pull/84613
+[#84617]: https://github.com/home-assistant/core/pull/84617
+[#84618]: https://github.com/home-assistant/core/pull/84618
+[#84619]: https://github.com/home-assistant/core/pull/84619
+[#84626]: https://github.com/home-assistant/core/pull/84626
+[#84628]: https://github.com/home-assistant/core/pull/84628
+[#84629]: https://github.com/home-assistant/core/pull/84629
+[#84632]: https://github.com/home-assistant/core/pull/84632
+[#84633]: https://github.com/home-assistant/core/pull/84633
+[#84634]: https://github.com/home-assistant/core/pull/84634
+[#84635]: https://github.com/home-assistant/core/pull/84635
+[#84636]: https://github.com/home-assistant/core/pull/84636
+[#84637]: https://github.com/home-assistant/core/pull/84637
+[#84638]: https://github.com/home-assistant/core/pull/84638
+[#84639]: https://github.com/home-assistant/core/pull/84639
+[#84641]: https://github.com/home-assistant/core/pull/84641
+[#84642]: https://github.com/home-assistant/core/pull/84642
+[#84643]: https://github.com/home-assistant/core/pull/84643
+[#84644]: https://github.com/home-assistant/core/pull/84644
+[#84646]: https://github.com/home-assistant/core/pull/84646
+[#84647]: https://github.com/home-assistant/core/pull/84647
+[#84649]: https://github.com/home-assistant/core/pull/84649
+[#84650]: https://github.com/home-assistant/core/pull/84650
+[#84651]: https://github.com/home-assistant/core/pull/84651
+[#84654]: https://github.com/home-assistant/core/pull/84654
+[#84655]: https://github.com/home-assistant/core/pull/84655
+[#84656]: https://github.com/home-assistant/core/pull/84656
+[#84657]: https://github.com/home-assistant/core/pull/84657
+[#84658]: https://github.com/home-assistant/core/pull/84658
+[#84669]: https://github.com/home-assistant/core/pull/84669
+[#84670]: https://github.com/home-assistant/core/pull/84670
+[#84673]: https://github.com/home-assistant/core/pull/84673
+[#84674]: https://github.com/home-assistant/core/pull/84674
+[#84680]: https://github.com/home-assistant/core/pull/84680
+[#84682]: https://github.com/home-assistant/core/pull/84682
+[#84683]: https://github.com/home-assistant/core/pull/84683
+[#84685]: https://github.com/home-assistant/core/pull/84685
+[#84686]: https://github.com/home-assistant/core/pull/84686
+[#84689]: https://github.com/home-assistant/core/pull/84689
+[#84690]: https://github.com/home-assistant/core/pull/84690
+[#84692]: https://github.com/home-assistant/core/pull/84692
+[#84696]: https://github.com/home-assistant/core/pull/84696
+[#84698]: https://github.com/home-assistant/core/pull/84698
+[#84699]: https://github.com/home-assistant/core/pull/84699
+[#84700]: https://github.com/home-assistant/core/pull/84700
+[#84705]: https://github.com/home-assistant/core/pull/84705
+[#84711]: https://github.com/home-assistant/core/pull/84711
+[#84719]: https://github.com/home-assistant/core/pull/84719
+[#84720]: https://github.com/home-assistant/core/pull/84720
+[#84723]: https://github.com/home-assistant/core/pull/84723
+[#84725]: https://github.com/home-assistant/core/pull/84725
+[#84733]: https://github.com/home-assistant/core/pull/84733
+[#84746]: https://github.com/home-assistant/core/pull/84746
+[#84749]: https://github.com/home-assistant/core/pull/84749
+[#84778]: https://github.com/home-assistant/core/pull/84778
+[#84787]: https://github.com/home-assistant/core/pull/84787
+[#84791]: https://github.com/home-assistant/core/pull/84791
+[#84792]: https://github.com/home-assistant/core/pull/84792
+[#84796]: https://github.com/home-assistant/core/pull/84796
+[#84797]: https://github.com/home-assistant/core/pull/84797
+[#84798]: https://github.com/home-assistant/core/pull/84798
+[#84800]: https://github.com/home-assistant/core/pull/84800
+[#84805]: https://github.com/home-assistant/core/pull/84805
+[#84809]: https://github.com/home-assistant/core/pull/84809
+[#84812]: https://github.com/home-assistant/core/pull/84812
+[#84821]: https://github.com/home-assistant/core/pull/84821
+[#84830]: https://github.com/home-assistant/core/pull/84830
+[#84832]: https://github.com/home-assistant/core/pull/84832
+[#84835]: https://github.com/home-assistant/core/pull/84835
+[#84842]: https://github.com/home-assistant/core/pull/84842
+[#84848]: https://github.com/home-assistant/core/pull/84848
+[#84860]: https://github.com/home-assistant/core/pull/84860
+[#84862]: https://github.com/home-assistant/core/pull/84862
+[#84864]: https://github.com/home-assistant/core/pull/84864
+[#84865]: https://github.com/home-assistant/core/pull/84865
+[#84868]: https://github.com/home-assistant/core/pull/84868
+[#84872]: https://github.com/home-assistant/core/pull/84872
+[#84873]: https://github.com/home-assistant/core/pull/84873
+[#84884]: https://github.com/home-assistant/core/pull/84884
+[#84888]: https://github.com/home-assistant/core/pull/84888
+[#84893]: https://github.com/home-assistant/core/pull/84893
+[#84896]: https://github.com/home-assistant/core/pull/84896
+[#84902]: https://github.com/home-assistant/core/pull/84902
+[#84904]: https://github.com/home-assistant/core/pull/84904
+[#84907]: https://github.com/home-assistant/core/pull/84907
+[#84914]: https://github.com/home-assistant/core/pull/84914
+[#84919]: https://github.com/home-assistant/core/pull/84919
+[#84930]: https://github.com/home-assistant/core/pull/84930
+[#84936]: https://github.com/home-assistant/core/pull/84936
+[#84937]: https://github.com/home-assistant/core/pull/84937
+[#84943]: https://github.com/home-assistant/core/pull/84943
+[#84955]: https://github.com/home-assistant/core/pull/84955
+[#84976]: https://github.com/home-assistant/core/pull/84976
+[#84994]: https://github.com/home-assistant/core/pull/84994
+[#85004]: https://github.com/home-assistant/core/pull/85004
+[#85005]: https://github.com/home-assistant/core/pull/85005
+[#85008]: https://github.com/home-assistant/core/pull/85008
+[#85010]: https://github.com/home-assistant/core/pull/85010
+[#85014]: https://github.com/home-assistant/core/pull/85014
+[#85016]: https://github.com/home-assistant/core/pull/85016
+[#85023]: https://github.com/home-assistant/core/pull/85023
+[#85030]: https://github.com/home-assistant/core/pull/85030
+[#85031]: https://github.com/home-assistant/core/pull/85031
+[#85032]: https://github.com/home-assistant/core/pull/85032
+[#85035]: https://github.com/home-assistant/core/pull/85035
+[#85052]: https://github.com/home-assistant/core/pull/85052
+[#85086]: https://github.com/home-assistant/core/pull/85086
+[#85099]: https://github.com/home-assistant/core/pull/85099
+[#85106]: https://github.com/home-assistant/core/pull/85106
+[#85107]: https://github.com/home-assistant/core/pull/85107
+[#85108]: https://github.com/home-assistant/core/pull/85108
+[#85110]: https://github.com/home-assistant/core/pull/85110
+[@ANMalko]: https://github.com/ANMalko
+[@AliceGrey]: https://github.com/AliceGrey
+[@AngellusMortis]: https://github.com/AngellusMortis
+[@ChopperRob]: https://github.com/ChopperRob
+[@DCSBL]: https://github.com/DCSBL
+[@Danielhiversen]: https://github.com/Danielhiversen
+[@DataBitz]: https://github.com/DataBitz
+[@DeerMaximum]: https://github.com/DeerMaximum
+[@Djelibeybi]: https://github.com/Djelibeybi
+[@Drafteed]: https://github.com/Drafteed
+[@Ernst79]: https://github.com/Ernst79
+[@FuzzyMistborn]: https://github.com/FuzzyMistborn
+[@Glodenox]: https://github.com/Glodenox
+[@J3173]: https://github.com/J3173
+[@Jc2k]: https://github.com/Jc2k
+[@Kane610]: https://github.com/Kane610
+[@MartinHjelmare]: https://github.com/MartinHjelmare
+[@MattWestb]: https://github.com/MattWestb
+[@Noltari]: https://github.com/Noltari
+[@PierreAronnax]: https://github.com/PierreAronnax
+[@ShadowJonathan]: https://github.com/ShadowJonathan
+[@Shutgun]: https://github.com/Shutgun
+[@Sommerzeit]: https://github.com/Sommerzeit
+[@StevenLooman]: https://github.com/StevenLooman
+[@SukramJ]: https://github.com/SukramJ
+[@Tarik2142]: https://github.com/Tarik2142
+[@albertogeniola]: https://github.com/albertogeniola
+[@alengwenus]: https://github.com/alengwenus
+[@allenporter]: https://github.com/allenporter
+[@aschmitz]: https://github.com/aschmitz
+[@bachya]: https://github.com/bachya
+[@balloob]: https://github.com/balloob
+[@bdr99]: https://github.com/bdr99
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@bonzini]: https://github.com/bonzini
+[@boralyl]: https://github.com/boralyl
+[@bramkragten]: https://github.com/bramkragten
+[@cdce8p]: https://github.com/cdce8p
+[@cgtobi]: https://github.com/cgtobi
+[@chishm]: https://github.com/chishm
+[@dmulcahey]: https://github.com/dmulcahey
+[@dsypniewski]: https://github.com/dsypniewski
+[@eifinger]: https://github.com/eifinger
+[@elupus]: https://github.com/elupus
+[@emontnemery]: https://github.com/emontnemery
+[@engrbm87]: https://github.com/engrbm87
+[@epenet]: https://github.com/epenet
+[@farmio]: https://github.com/farmio
+[@filcole]: https://github.com/filcole
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@gwww]: https://github.com/gwww
+[@hahn-th]: https://github.com/hahn-th
+[@hmmbob]: https://github.com/hmmbob
+[@jafar-atili]: https://github.com/jafar-atili
+[@jbouwh]: https://github.com/jbouwh
+[@jesserockz]: https://github.com/jesserockz
+[@jjlawren]: https://github.com/jjlawren
+[@jpettitt]: https://github.com/jpettitt
+[@kamiyo]: https://github.com/kamiyo
+[@killer0071234]: https://github.com/killer0071234
+[@klaasnicolaas]: https://github.com/klaasnicolaas
+[@konikoni428]: https://github.com/konikoni428
+[@laurent-martin]: https://github.com/laurent-martin
+[@ludeeus]: https://github.com/ludeeus
+[@majuss]: https://github.com/majuss
+[@marcelveldt]: https://github.com/marcelveldt
+[@mib1185]: https://github.com/mib1185
+[@michaelarnauts]: https://github.com/michaelarnauts
+[@milanmeu]: https://github.com/milanmeu
+[@muppet3000]: https://github.com/muppet3000
+[@natekspencer]: https://github.com/natekspencer
+[@nyroDev]: https://github.com/nyroDev
+[@oischinger]: https://github.com/oischinger
+[@ollo69]: https://github.com/ollo69
+[@oyvindwe]: https://github.com/oyvindwe
+[@pavoni]: https://github.com/pavoni
+[@r01k]: https://github.com/r01k
+[@raman325]: https://github.com/raman325
+[@riokuu]: https://github.com/riokuu
+[@scop]: https://github.com/scop
+[@shbatm]: https://github.com/shbatm
+[@spacegaier]: https://github.com/spacegaier
+[@spyder007]: https://github.com/spyder007
+[@starkillerOG]: https://github.com/starkillerOG
+[@stgraber]: https://github.com/stgraber
+[@synesthesiam]: https://github.com/synesthesiam
+[@thecode]: https://github.com/thecode
+[@timrogers]: https://github.com/timrogers
+[@tkislan]: https://github.com/tkislan
+[@toddejohnson]: https://github.com/toddejohnson
+[@tronikos]: https://github.com/tronikos
+[@w1ll1am23]: https://github.com/w1ll1am23
+[@yozik04]: https://github.com/yozik04
+[@yuvalabou]: https://github.com/yuvalabou
+[@yuxincs]: https://github.com/yuxincs
+[accuweather docs]: /integrations/accuweather/
+[adguard docs]: /integrations/adguard/
+[aemet docs]: /integrations/aemet/
+[airq docs]: /integrations/airq/
+[airvisual docs]: /integrations/airvisual/
+[airvisual_pro docs]: /integrations/airvisual_pro/
+[airzone docs]: /integrations/airzone/
+[alert docs]: /integrations/alert/
+[alexa docs]: /integrations/alexa/
+[almond docs]: /integrations/almond/
+[ambient_station docs]: /integrations/ambient_station/
+[analytics docs]: /integrations/analytics/
+[androidtv docs]: /integrations/androidtv/
+[apcupsd docs]: /integrations/apcupsd/
+[application_credentials docs]: /integrations/application_credentials/
+[apprise docs]: /integrations/apprise/
+[aqualogic docs]: /integrations/aqualogic/
+[aranet docs]: /integrations/aranet/
+[arwn docs]: /integrations/arwn/
+[asuswrt docs]: /integrations/asuswrt/
+[atag docs]: /integrations/atag/
+[august docs]: /integrations/august/
+[auth docs]: /integrations/auth/
+[automation docs]: /integrations/automation/
+[awair docs]: /integrations/awair/
+[baf docs]: /integrations/baf/
+[binary_sensor docs]: /integrations/binary_sensor/
+[blebox docs]: /integrations/blebox/
+[blink docs]: /integrations/blink/
+[bloomsky docs]: /integrations/bloomsky/
+[bluetooth docs]: /integrations/bluetooth/
+[bmw_connected_drive docs]: /integrations/bmw_connected_drive/
+[braviatv docs]: /integrations/braviatv/
+[broadlink docs]: /integrations/broadlink/
+[brother docs]: /integrations/brother/
+[bthome docs]: /integrations/bthome/
+[buienradar docs]: /integrations/buienradar/
+[caldav docs]: /integrations/caldav/
+[calendar docs]: /integrations/calendar/
+[canary docs]: /integrations/canary/
+[climate docs]: /integrations/climate/
+[cloud docs]: /integrations/cloud/
+[cloudflare docs]: /integrations/cloudflare/
+[comfoconnect docs]: /integrations/comfoconnect/
+[config docs]: /integrations/config/
+[conversation docs]: /integrations/conversation/
+[core docs]: /integrations/core/
+[cover docs]: /integrations/cover/
+[cpuspeed docs]: /integrations/cpuspeed/
+[darksky docs]: /integrations/darksky/
+[debugpy docs]: /integrations/debugpy/
+[deconz docs]: /integrations/deconz/
+[demo docs]: /integrations/demo/
+[deutsche_bahn docs]: /integrations/deutsche_bahn/
+[devolo_home_control docs]: /integrations/devolo_home_control/
+[devolo_home_network docs]: /integrations/devolo_home_network/
+[diagnostics docs]: /integrations/diagnostics/
+[dlna_dmr docs]: /integrations/dlna_dmr/
+[dnsip docs]: /integrations/dnsip/
+[dsmr docs]: /integrations/dsmr/
+[dsmr_reader docs]: /integrations/dsmr_reader/
+[dte_energy_bridge docs]: /integrations/dte_energy_bridge/
+[dynalite docs]: /integrations/dynalite/
+[ebusd docs]: /integrations/ebusd/
+[ecobee docs]: /integrations/ecobee/
+[econet docs]: /integrations/econet/
+[ecowitt docs]: /integrations/ecowitt/
+[eliqonline docs]: /integrations/eliqonline/
+[elkm1 docs]: /integrations/elkm1/
+[elmax docs]: /integrations/elmax/
+[energy docs]: /integrations/energy/
+[enphase_envoy docs]: /integrations/enphase_envoy/
+[environment_canada docs]: /integrations/environment_canada/
+[esphome docs]: /integrations/esphome/
+[evohome docs]: /integrations/evohome/
+[file_upload docs]: /integrations/file_upload/
+[filter docs]: /integrations/filter/
+[fitbit docs]: /integrations/fitbit/
+[flipr docs]: /integrations/flipr/
+[folder docs]: /integrations/folder/
+[folder_watcher docs]: /integrations/folder_watcher/
+[forecast_solar docs]: /integrations/forecast_solar/
+[freebox docs]: /integrations/freebox/
+[fronius docs]: /integrations/fronius/
+[frontend docs]: /integrations/frontend/
+[fully_kiosk docs]: /integrations/fully_kiosk/
+[garages_amsterdam docs]: /integrations/garages_amsterdam/
+[gios docs]: /integrations/gios/
+[goalzero docs]: /integrations/goalzero/
+[gogogate2 docs]: /integrations/gogogate2/
+[goodwe docs]: /integrations/goodwe/
+[google docs]: /integrations/google/
+[google_assistant docs]: /integrations/google_assistant/
+[google_assistant_sdk docs]: /integrations/google_assistant_sdk/
+[google_pubsub docs]: /integrations/google_pubsub/
+[google_sheets docs]: /integrations/google_sheets/
+[google_translate docs]: /integrations/google_translate/
+[google_travel_time docs]: /integrations/google_travel_time/
+[govee_ble docs]: /integrations/govee_ble/
+[gree docs]: /integrations/gree/
+[growatt_server docs]: /integrations/growatt_server/
+[hardware docs]: /integrations/hardware/
+[harmony docs]: /integrations/harmony/
+[hassio docs]: /integrations/hassio/
+[haveibeenpwned docs]: /integrations/haveibeenpwned/
+[here_travel_time docs]: /integrations/here_travel_time/
+[hive docs]: /integrations/hive/
+[homeassistant_alerts docs]: /integrations/homeassistant_alerts/
+[homeassistant_hardware docs]: /integrations/homeassistant_hardware/
+[homeassistant_sky_connect docs]: /integrations/homeassistant_sky_connect/
+[homeassistant_yellow docs]: /integrations/homeassistant_yellow/
+[homekit docs]: /integrations/homekit/
+[homekit_controller docs]: /integrations/homekit_controller/
+[homematic docs]: /integrations/homematic/
+[homematicip_cloud docs]: /integrations/homematicip_cloud/
+[homewizard docs]: /integrations/homewizard/
+[honeywell docs]: /integrations/honeywell/
+[html5 docs]: /integrations/html5/
+[huawei_lte docs]: /integrations/huawei_lte/
+[hue docs]: /integrations/hue/
+[huisbaasje docs]: /integrations/huisbaasje/
+[humidifier docs]: /integrations/humidifier/
+[image docs]: /integrations/image/
+[image_processing docs]: /integrations/image_processing/
+[image_upload docs]: /integrations/image_upload/
+[incomfort docs]: /integrations/incomfort/
+[integration docs]: /integrations/integration/
+[intent docs]: /integrations/intent/
+[iotawatt docs]: /integrations/iotawatt/
+[isy994 docs]: /integrations/isy994/
+[knx docs]: /integrations/knx/
+[kostal_plenticore docs]: /integrations/kostal_plenticore/
+[lacrosse_view docs]: /integrations/lacrosse_view/
+[lametric docs]: /integrations/lametric/
+[landisgyr_heat_meter docs]: /integrations/landisgyr_heat_meter/
+[laundrify docs]: /integrations/laundrify/
+[lcn docs]: /integrations/lcn/
+[led_ble docs]: /integrations/led_ble/
+[lifx docs]: /integrations/lifx/
+[litterrobot docs]: /integrations/litterrobot/
+[local_calendar docs]: /integrations/local_calendar/
+[lookin docs]: /integrations/lookin/
+[lupusec docs]: /integrations/lupusec/
+[lyric docs]: /integrations/lyric/
+[manual docs]: /integrations/manual/
+[manual_mqtt docs]: /integrations/manual_mqtt/
+[mastodon docs]: /integrations/mastodon/
+[matter docs]: /integrations/matter/
+[mazda docs]: /integrations/mazda/
+[media_player docs]: /integrations/media_player/
+[melcloud docs]: /integrations/melcloud/
+[meteo_france docs]: /integrations/meteo_france/
+[meteoclimatic docs]: /integrations/meteoclimatic/
+[metoffice docs]: /integrations/metoffice/
+[mill docs]: /integrations/mill/
+[minio docs]: /integrations/minio/
+[mold_indicator docs]: /integrations/mold_indicator/
+[moon docs]: /integrations/moon/
+[motion_blinds docs]: /integrations/motion_blinds/
+[mqtt docs]: /integrations/mqtt/
+[mysensors docs]: /integrations/mysensors/
+[nam docs]: /integrations/nam/
+[netatmo docs]: /integrations/netatmo/
+[netgear docs]: /integrations/netgear/
+[netgear_lte docs]: /integrations/netgear_lte/
+[nexia docs]: /integrations/nexia/
+[nibe_heatpump docs]: /integrations/nibe_heatpump/
+[nina docs]: /integrations/nina/
+[nissan_leaf docs]: /integrations/nissan_leaf/
+[nobo_hub docs]: /integrations/nobo_hub/
+[notion docs]: /integrations/notion/
+[number docs]: /integrations/number/
+[nut docs]: /integrations/nut/
+[nws docs]: /integrations/nws/
+[omnilogic docs]: /integrations/omnilogic/
+[ondilo_ico docs]: /integrations/ondilo_ico/
+[onvif docs]: /integrations/onvif/
+[opentherm_gw docs]: /integrations/opentherm_gw/
+[openuv docs]: /integrations/openuv/
+[openweathermap docs]: /integrations/openweathermap/
+[oru docs]: /integrations/oru/
+[otp docs]: /integrations/otp/
+[overkiz docs]: /integrations/overkiz/
+[ovo_energy docs]: /integrations/ovo_energy/
+[person docs]: /integrations/person/
+[pi_hole docs]: /integrations/pi_hole/
+[plaato docs]: /integrations/plaato/
+[plex docs]: /integrations/plex/
+[plugwise docs]: /integrations/plugwise/
+[point docs]: /integrations/point/
+[poolsense docs]: /integrations/poolsense/
+[prometheus docs]: /integrations/prometheus/
+[prusalink docs]: /integrations/prusalink/
+[purpleair docs]: /integrations/purpleair/
+[pyload docs]: /integrations/pyload/
+[qnap_qsw docs]: /integrations/qnap_qsw/
+[rainbird docs]: /integrations/rainbird/
+[rainmachine docs]: /integrations/rainmachine/
+[rdw docs]: /integrations/rdw/
+[recorder docs]: /integrations/recorder/
+[renault docs]: /integrations/renault/
+[reolink docs]: /integrations/reolink/
+[repairs docs]: /integrations/repairs/
+[rest docs]: /integrations/rest/
+[rflink docs]: /integrations/rflink/
+[rfxtrx docs]: /integrations/rfxtrx/
+[risco docs]: /integrations/risco/
+[rituals_perfume_genie docs]: /integrations/rituals_perfume_genie/
+[roku docs]: /integrations/roku/
+[roon docs]: /integrations/roon/
+[ruuvitag_ble docs]: /integrations/ruuvitag_ble/
+[saj docs]: /integrations/saj/
+[script docs]: /integrations/script/
+[season docs]: /integrations/season/
+[sense docs]: /integrations/sense/
+[sensibo docs]: /integrations/sensibo/
+[sensirion_ble docs]: /integrations/sensirion_ble/
+[sensor docs]: /integrations/sensor/
+[sensorpro docs]: /integrations/sensorpro/
+[sentry docs]: /integrations/sentry/
+[shelly docs]: /integrations/shelly/
+[shopping_list docs]: /integrations/shopping_list/
+[smartthings docs]: /integrations/smartthings/
+[snmp docs]: /integrations/snmp/
+[solaredge_local docs]: /integrations/solaredge_local/
+[solarlog docs]: /integrations/solarlog/
+[solax docs]: /integrations/solax/
+[speedtestdotnet docs]: /integrations/speedtestdotnet/
+[spotify docs]: /integrations/spotify/
+[ssdp docs]: /integrations/ssdp/
+[starline docs]: /integrations/starline/
+[steam_online docs]: /integrations/steam_online/
+[streamlabswater docs]: /integrations/streamlabswater/
+[suez_water docs]: /integrations/suez_water/
+[surepetcare docs]: /integrations/surepetcare/
+[switch docs]: /integrations/switch/
+[switchbee docs]: /integrations/switchbee/
+[switchbot docs]: /integrations/switchbot/
+[synology_dsm docs]: /integrations/synology_dsm/
+[system_bridge docs]: /integrations/system_bridge/
+[tado docs]: /integrations/tado/
+[tankerkoenig docs]: /integrations/tankerkoenig/
+[tasmota docs]: /integrations/tasmota/
+[ted5000 docs]: /integrations/ted5000/
+[tellduslive docs]: /integrations/tellduslive/
+[template docs]: /integrations/template/
+[tesla_wall_connector docs]: /integrations/tesla_wall_connector/
+[thermobeacon docs]: /integrations/thermobeacon/
+[tibber docs]: /integrations/tibber/
+[todoist docs]: /integrations/todoist/
+[tolo docs]: /integrations/tolo/
+[tomorrowio docs]: /integrations/tomorrowio/
+[totalconnect docs]: /integrations/totalconnect/
+[tplink docs]: /integrations/tplink/
+[tractive docs]: /integrations/tractive/
+[tradfri docs]: /integrations/tradfri/
+[trafikverket_weatherstation docs]: /integrations/trafikverket_weatherstation/
+[transmission docs]: /integrations/transmission/
+[tuya docs]: /integrations/tuya/
+[unifi docs]: /integrations/unifi/
+[unifiprotect docs]: /integrations/unifiprotect/
+[universal docs]: /integrations/universal/
+[update docs]: /integrations/update/
+[uptimerobot docs]: /integrations/uptimerobot/
+[vallox docs]: /integrations/vallox/
+[version docs]: /integrations/version/
+[vicare docs]: /integrations/vicare/
+[volkszaehler docs]: /integrations/volkszaehler/
+[wallbox docs]: /integrations/wallbox/
+[waterfurnace docs]: /integrations/waterfurnace/
+[watttime docs]: /integrations/watttime/
+[waze_travel_time docs]: /integrations/waze_travel_time/
+[withings docs]: /integrations/withings/
+[wled docs]: /integrations/wled/
+[wolflink docs]: /integrations/wolflink/
+[xiaomi_ble docs]: /integrations/xiaomi_ble/
+[xiaomi_miio docs]: /integrations/xiaomi_miio/
+[xmpp docs]: /integrations/xmpp/
+[yalexs_ble docs]: /integrations/yalexs_ble/
+[yamaha_musiccast docs]: /integrations/yamaha_musiccast/
+[zamg docs]: /integrations/zamg/
+[zeroconf docs]: /integrations/zeroconf/
+[zha docs]: /integrations/zha/
+[zodiac docs]: /integrations/zodiac/
+[zone docs]: /integrations/zone/
+[zwave_js docs]: /integrations/zwave_js/
+[zwave_me docs]: /integrations/zwave_me/
diff --git a/source/dashboards/badges.markdown b/source/dashboards/badges.markdown
index 04ed51f9025..801ff4f1389 100644
--- a/source/dashboards/badges.markdown
+++ b/source/dashboards/badges.markdown
@@ -30,7 +30,7 @@ name:
default: Name of entity
icon:
required: false
- description: Overwrites icon or entity picture. You can use any icon from [MaterialDesignIcons.com](https://materialdesignicons.com). Prefix the icon name with `mdi:`, ie `mdi:home`.
+ description: Overwrites icon or entity picture. You can use any icon from [Material Design Icons](https://pictogrammers.com/library/mdi/). Prefix the icon name with `mdi:`, ie `mdi:home`.
type: string
default: Entity domain icon
image:
@@ -87,7 +87,7 @@ name:
type: string
icon:
required: false
- description: Overwrites icon or entity picture. You can use any icon from [MaterialDesignIcons.com](https://materialdesignicons.com). Prefix the icon name with `mdi:`, ie `mdi:home`.
+ description: Overwrites icon or entity picture. You can use any icon from [Material Design Icons](https://pictogrammers.com/library/mdi/). Prefix the icon name with `mdi:`, ie `mdi:home`.
type: string
image:
required: false
diff --git a/source/dashboards/cards.markdown b/source/dashboards/cards.markdown
index 4606b410eff..4f50fa2ba0f 100644
--- a/source/dashboards/cards.markdown
+++ b/source/dashboards/cards.markdown
@@ -5,4 +5,4 @@ description: "Cards."
Your dashboard is made up of Cards.
-There are several built-in card types, each with their own configuration options. Select a card from the menu to view additional details and the options for that card.
+There are several built-in card types, each with their own configuration options. Select a card from the menu to view additional details and the options for that card.
\ No newline at end of file
diff --git a/source/dashboards/dashboards.markdown b/source/dashboards/dashboards.markdown
index 020df0e30fa..56cdacd8f9e 100644
--- a/source/dashboards/dashboards.markdown
+++ b/source/dashboards/dashboards.markdown
@@ -110,7 +110,7 @@ dashboards:
type: string
icon:
required: false
- description: The icon to show in the sidebar. You can use any icon from [MaterialDesignIcons.com](https://materialdesignicons.com). Prefix the icon name with `mdi:`, ie `mdi:home`.
+ description: The icon to show in the sidebar. You can use any icon from [Material Design Icons](https://pictogrammers.com/library/mdi/). Prefix the icon name with `mdi:`, ie `mdi:home`.
type: string
show_in_sidebar:
required: false
diff --git a/source/dashboards/header-footer.markdown b/source/dashboards/header-footer.markdown
index 4458d7c1564..5e25b424175 100644
--- a/source/dashboards/header-footer.markdown
+++ b/source/dashboards/header-footer.markdown
@@ -73,7 +73,7 @@ entities:
type: string
icon:
required: false
- description: Override the entity icon. You can use any icon from [MaterialDesignIcons.com](https://materialdesignicons.com). Prefix the icon name with `mdi:`, ie `mdi:home`.
+ description: Override the entity icon. You can use any icon from [Material Design Icons](https://pictogrammers.com/library/mdi/). Prefix the icon name with `mdi:`, ie `mdi:home`.
type: string
image:
required: false
diff --git a/source/dashboards/index.markdown b/source/dashboards/index.markdown
index 9e0879588a4..6a9165268bb 100644
--- a/source/dashboards/index.markdown
+++ b/source/dashboards/index.markdown
@@ -29,4 +29,4 @@ To try it yourself, check out [the demo](https://demo.home-assistant.io).
- [Community Custom Cards](https://github.com/custom-cards)
- [Home Assistant Cards](https://home-assistant-cards.bessarabov.com/)
-- [Material Design Icons](https://materialdesignicons.com/tag/community)
+- [Material Design Icons](https://pictogrammers.com/library/mdi/)
diff --git a/source/dashboards/views.markdown b/source/dashboards/views.markdown
index 21285be28b5..95d44dd5784 100644
--- a/source/dashboards/views.markdown
+++ b/source/dashboards/views.markdown
@@ -181,7 +181,7 @@ views:
default: view index
icon:
required: false
- description: Icon-name from Material Design Icons. You can use any icon from [MaterialDesignIcons.com](https://materialdesignicons.com). Prefix the icon name with `mdi:`, ie `mdi:home`. Only for "View", not for "Subview".
+ description: Icon-name from Material Design Icons. You can use any icon from [Material Design Icons](https://pictogrammers.com/library/mdi/). Prefix the icon name with `mdi:`, ie `mdi:home`. Only for "View", not for "Subview".
type: string
background:
required: false
diff --git a/source/developers/cla_sign.html b/source/developers/cla_sign.html
index 4a43f097155..fc300f3b973 100644
--- a/source/developers/cla_sign.html
+++ b/source/developers/cla_sign.html
@@ -338,7 +338,7 @@ description: "The Home Assistant contributor license agreement (CLA) signature p
s_a[232] = "Ahal Welayaty|Balkan Welayaty|Dashhowuz Welayaty|Lebap Welayaty|Mary Welayaty";
s_a[233] = "Tuvalu";
s_a[234] = "Adjumani|Apac|Arua|Bugiri|Bundibugyo|Bushenyi|Busia|Gulu|Hoima|Iganga|Jinja|Kabale|Kabarole|Kalangala|Kampala|Kamuli|Kapchorwa|Kasese|Katakwi|Kibale|Kiboga|Kisoro|Kitgum|Kotido|Kumi|Lira|Luwero|Masaka|Masindi|Mbale|Mbarara|Moroto|Moyo|Mpigi|Mubende|Mukono|Nakasongola|Nebbi|Ntungamo|Pallisa|Rakai|Rukungiri|Sembabule|Soroti|Tororo";
- s_a[235] = "Avtonomna Respublika Krym (Simferopol')|Cherkas'ka (Cherkasy)|Chernihivs'ka (Chernihiv)|Chernivets'ka (Chernivtsi)|Dnipropetrovs'ka (Dnipropetrovs'k)|Donets'ka (Donets'k)|Ivano-Frankivs'ka (Ivano-Frankivs'k)|Kharkivs'ka (Kharkiv)|Khersons'ka (Kherson)|Khmel'nyts'ka (Khmel'nyts'kyy)|Kirovohrads'ka (Kirovohrad)|Kyyiv|Kyyivs'ka (Kiev)|L'vivs'ka (L'viv)|Luhans'ka (Luhans'k)|Mykolayivs'ka (Mykolayiv)|Odes'ka (Odesa)|Poltavs'ka (Poltava)|Rivnens'ka (Rivne)|Sevastopol'|Sums'ka (Sumy)|Ternopil's'ka (Ternopil')|Vinnyts'ka (Vinnytsya)|Volyns'ka (Luts'k)|Zakarpats'ka (Uzhhorod)|Zaporiz'ka (Zaporizhzhya)|Zhytomyrs'ka (Zhytomyr)"
+ s_a[235] = "Avtonomna Respublika Krym (Simferopol')|Cherkas'ka (Cherkasy)|Chernihivs'ka (Chernihiv)|Chernivets'ka (Chernivtsi)|Dnipropetrovs'ka (Dnipropetrovs'k)|Donets'ka (Donets'k)|Ivano-Frankivs'ka (Ivano-Frankivs'k)|Kharkivs'ka (Kharkiv)|Khersons'ka (Kherson)|Khmel'nyts'ka (Khmel'nyts'kyy)|Kirovohrads'ka (Kirovohrad)|Kyiv|Kyivs'ka (Kiev)|L'vivs'ka (L'viv)|Luhans'ka (Luhans'k)|Mykolayivs'ka (Mykolayiv)|Odes'ka (Odesa)|Poltavs'ka (Poltava)|Rivnens'ka (Rivne)|Sevastopol'|Sums'ka (Sumy)|Ternopil's'ka (Ternopil')|Vinnyts'ka (Vinnytsya)|Volyns'ka (Luts'k)|Zakarpats'ka (Uzhhorod)|Zaporiz'ka (Zaporizhzhya)|Zhytomyrs'ka (Zhytomyr)"
s_a[236] = "'Ajman|Abu Zaby (Abu Dhabi)|Al Fujayrah|Ash Shariqah (Sharjah)|Dubayy (Dubai)|Ra's al Khaymah|Umm al Qaywayn";
s_a[237] = "Barking and Dagenham|Barnet|Barnsley|Bath and North East Somerset|Bedfordshire|Bexley|Birmingham|Blackburn with Darwen|Blackpool|Bolton|Bournemouth|Bracknell Forest|Bradford|Brent|Brighton and Hove|Bromley|Buckinghamshire|Bury|Calderdale|Cambridgeshire|Camden|Cheshire|City of Bristol|City of Kingston upon Hull|City of London|Cornwall|Coventry|Croydon|Cumbria|Darlington|Derby|Derbyshire|Devon|Doncaster|Dorset|Dudley|Durham|Ealing|East Riding of Yorkshire|East Sussex|Enfield|Essex|Gateshead|Gloucestershire|Greenwich|Hackney|Halton|Hammersmith and Fulham|Hampshire|Haringey|Harrow|Hartlepool|Havering|Herefordshire|Hertfordshire|Hillingdon|Hounslow|Isle of Wight|Islington|Kensington and Chelsea|Kent|Kingston upon Thames|Kirklees|Knowsley|Lambeth|Lancashire|Leeds|Leicester|Leicestershire|Lewisham|Lincolnshire|Liverpool|Luton|Manchester|Medway|Merton|Middlesbrough|Milton Keynes|Newcastle upon Tyne|Newham|Norfolk|North East Lincolnshire|North Lincolnshire|North Somerset|North Tyneside|North Yorkshire|Northamptonshire|Northumberland|Nottingham|Nottinghamshire|Oldham|Oxfordshire|Peterborough|Plymouth|Poole|Portsmouth|Reading|Redbridge|Redcar and Cleveland|Richmond upon Thames|Rochdale|Rotherham|Rutland|Salford|Sandwell|Sefton|Sheffield|Shropshire|Slough|Solihull|Somerset|South Gloucestershire|South Tyneside|Southampton|Southend-on-Sea|Southwark|St. Helens|Staffordshire|Stockport|Stockton-on-Tees|Stoke-on-Trent|Suffolk|Sunderland|Surrey|Sutton|Swindon|Tameside|Telford and Wrekin|Thurrock|Torbay|Tower Hamlets|Trafford|Wakefield|Walsall|Waltham Forest|Wandsworth|Warrington|Warwickshire|West Berkshire|West Sussex|Westminster|Wigan|Wiltshire|Windsor and Maidenhead|Wirral|Wokingham|Wolverhampton|Worcestershire|York";
s_a[238] = "Artigas|Canelones|Cerro Largo|Colonia|Durazno|Flores|Florida|Lavalleja|Maldonado|Montevideo|Paysandu|Rio Negro|Rivera|Rocha|Salto|San Jose|Soriano|Tacuarembo|Treinta y Tres";
diff --git a/source/images/blog/2023-01-20-android-auto/Companion.png b/source/images/blog/2023-01-20-android-auto/Companion.png
new file mode 100644
index 00000000000..6b7e6688258
Binary files /dev/null and b/source/images/blog/2023-01-20-android-auto/Companion.png differ
diff --git a/source/images/blog/2023-01-20-android-auto/android_auto_domains.png b/source/images/blog/2023-01-20-android-auto/android_auto_domains.png
new file mode 100755
index 00000000000..e982a38cf95
Binary files /dev/null and b/source/images/blog/2023-01-20-android-auto/android_auto_domains.png differ
diff --git a/source/images/blog/2023-01-20-android-auto/android_auto_entity_control.png b/source/images/blog/2023-01-20-android-auto/android_auto_entity_control.png
new file mode 100755
index 00000000000..d6fc753788f
Binary files /dev/null and b/source/images/blog/2023-01-20-android-auto/android_auto_entity_control.png differ
diff --git a/source/images/blog/2023-01-20-android-auto/android_auto_garage.jpg b/source/images/blog/2023-01-20-android-auto/android_auto_garage.jpg
new file mode 100755
index 00000000000..9add0513b0f
Binary files /dev/null and b/source/images/blog/2023-01-20-android-auto/android_auto_garage.jpg differ
diff --git a/source/images/blog/2023-01-20-android-auto/android_auto_navigation.png b/source/images/blog/2023-01-20-android-auto/android_auto_navigation.png
new file mode 100755
index 00000000000..4dca9478fd8
Binary files /dev/null and b/source/images/blog/2023-01-20-android-auto/android_auto_navigation.png differ
diff --git a/source/images/blog/2023-01-20-android-auto/android_auto_sensor.png b/source/images/blog/2023-01-20-android-auto/android_auto_sensor.png
new file mode 100755
index 00000000000..2cb1da1c068
Binary files /dev/null and b/source/images/blog/2023-01-20-android-auto/android_auto_sensor.png differ
diff --git a/source/images/blog/2023-01-22-android-auto/Companion.png b/source/images/blog/2023-01-22-android-auto/Companion.png
new file mode 100644
index 00000000000..6b7e6688258
Binary files /dev/null and b/source/images/blog/2023-01-22-android-auto/Companion.png differ
diff --git a/source/images/blog/2023-01-22-android-auto/android_auto_domains.png b/source/images/blog/2023-01-22-android-auto/android_auto_domains.png
new file mode 100755
index 00000000000..e982a38cf95
Binary files /dev/null and b/source/images/blog/2023-01-22-android-auto/android_auto_domains.png differ
diff --git a/source/images/blog/2023-01-22-android-auto/android_auto_entity_control.png b/source/images/blog/2023-01-22-android-auto/android_auto_entity_control.png
new file mode 100755
index 00000000000..d6fc753788f
Binary files /dev/null and b/source/images/blog/2023-01-22-android-auto/android_auto_entity_control.png differ
diff --git a/source/images/blog/2023-01-22-android-auto/android_auto_navigation.png b/source/images/blog/2023-01-22-android-auto/android_auto_navigation.png
new file mode 100755
index 00000000000..4dca9478fd8
Binary files /dev/null and b/source/images/blog/2023-01-22-android-auto/android_auto_navigation.png differ
diff --git a/source/images/blog/2023-01-22-android-auto/android_auto_sensor.png b/source/images/blog/2023-01-22-android-auto/android_auto_sensor.png
new file mode 100755
index 00000000000..2cb1da1c068
Binary files /dev/null and b/source/images/blog/2023-01-22-android-auto/android_auto_sensor.png differ
diff --git a/source/images/blog/2023-01/aliases-cloud-multi-language.png b/source/images/blog/2023-01/aliases-cloud-multi-language.png
new file mode 100644
index 00000000000..92e482705ca
Binary files /dev/null and b/source/images/blog/2023-01/aliases-cloud-multi-language.png differ
diff --git a/source/images/blog/2023-01/aliases.png b/source/images/blog/2023-01/aliases.png
new file mode 100644
index 00000000000..a87b63ebd8a
Binary files /dev/null and b/source/images/blog/2023-01/aliases.png differ
diff --git a/source/images/blog/2023-01/calendar.png b/source/images/blog/2023-01/calendar.png
new file mode 100644
index 00000000000..b220d2cd3cf
Binary files /dev/null and b/source/images/blog/2023-01/calendar.png differ
diff --git a/source/images/blog/2023-01/entity-translations.png b/source/images/blog/2023-01/entity-translations.png
new file mode 100644
index 00000000000..a6bc9896d77
Binary files /dev/null and b/source/images/blog/2023-01/entity-translations.png differ
diff --git a/source/images/blog/2023-01/social.png b/source/images/blog/2023-01/social.png
new file mode 100644
index 00000000000..3fd9a05a398
Binary files /dev/null and b/source/images/blog/2023-01/social.png differ
diff --git a/source/images/frontend/mdi.png b/source/images/frontend/mdi.png
new file mode 100644
index 00000000000..a837a223584
Binary files /dev/null and b/source/images/frontend/mdi.png differ
diff --git a/source/images/frontend/ui2022.png b/source/images/frontend/ui2022.png
new file mode 100644
index 00000000000..3fb01797c6a
Binary files /dev/null and b/source/images/frontend/ui2022.png differ
diff --git a/source/images/screenshots/icon-picker.png b/source/images/screenshots/icon-picker.png
new file mode 100644
index 00000000000..4540207875f
Binary files /dev/null and b/source/images/screenshots/icon-picker.png differ
diff --git a/source/images/screenshots/mdi-picker.png b/source/images/screenshots/mdi-picker.png
new file mode 100644
index 00000000000..c27d6fdd6e1
Binary files /dev/null and b/source/images/screenshots/mdi-picker.png differ
diff --git a/source/more-info/unhealthy/setup.markdown b/source/more-info/unhealthy/setup.markdown
index 9106255a79b..13f4cac44f7 100644
--- a/source/more-info/unhealthy/setup.markdown
+++ b/source/more-info/unhealthy/setup.markdown
@@ -19,7 +19,7 @@ This can also be done with the CLI, by running the following command:
ha supervisor restart
```
-If this does not help or you do not have any way to access the CLI, you can try to reboot the host. This can be done by going to {% my hardware title="Settings -> System -> Hardware" %}, opening the menu in the top right corner, and selecting "Reboot Host".
+If this does not help or you do not have any way to access the CLI, you can try to reboot the host. This can be done by going to {% my hardware title="Settings -> System -> Hardware" %}, opening the menu in the top right corner, and selecting "Reboot system".
To help us make the setup more robust, please enable the sharing of diagnostics and crash logs on the {% my analytics title="Settings > System > Analytics" %} panel.
diff --git a/source/more-info/unsupported/cgroup_version.markdown b/source/more-info/unsupported/cgroup_version.markdown
index 464d02f2268..ad49b3c3faf 100644
--- a/source/more-info/unsupported/cgroup_version.markdown
+++ b/source/more-info/unsupported/cgroup_version.markdown
@@ -18,7 +18,7 @@ before we publish a version that will require you to upgrade CGroups.
In a supervised installation if you have switched to CGroup v2 you will need to
revert what you did. Or you can re-run the [supervised installer](https://github.com/home-assistant/supervised-installer)
-to fix it.
+to fix it. Please be sure to reboot the system after the installation is done.
You should never see this issue on Home Assistant OS as all versions of the OS
ship with a supported CGroup version.
diff --git a/source/skyconnect/index.html b/source/skyconnect/index.html
index d73544aac48..db974379cf2 100644
--- a/source/skyconnect/index.html
+++ b/source/skyconnect/index.html
@@ -28,7 +28,7 @@ frontpage_image: /images/skyconnect/skyconnect-cover.png
-
Available soon
+
Available now
The Home Assistant SkyConnect is the easiest way to add Zigbee support
to your Home Assistant instance and make it Matter-ready.
@@ -50,7 +50,7 @@ frontpage_image: /images/skyconnect/skyconnect-cover.png