From 4d70bf8f218d77200c1342f53e1c469e5a365022 Mon Sep 17 00:00:00 2001 From: mendhak Date: Thu, 7 Jan 2021 08:36:56 +0000 Subject: [PATCH 001/106] Update gpslogger F-Droid URL (#16116) --- source/_integrations/gpslogger.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/gpslogger.markdown b/source/_integrations/gpslogger.markdown index cbc50891522..50d3ba7cd4f 100644 --- a/source/_integrations/gpslogger.markdown +++ b/source/_integrations/gpslogger.markdown @@ -17,7 +17,7 @@ To configure GPSLogger, you must set it up via the integrations panel in the con ## Setup on your smartphone -Install GPSLogger for Android from [GitHub](https://github.com/mendhak/gpslogger/releases) or [F-Droid](https://apt.izzysoft.de/fdroid/index/apk/com.mendhak.gpslogger) on your device. +Install GPSLogger for Android from [GitHub](https://github.com/mendhak/gpslogger/releases) or [F-Droid](https://f-droid.org/en/packages/com.mendhak.gpslogger/) on your device. After the launch, go to **General Options**. Enable **Start on bootup** and **Start on app launch**. From aba50ac2c41dc4d9623459a823effadb621ca5ab Mon Sep 17 00:00:00 2001 From: Hmmbob <33529490+hmmbob@users.noreply.github.com> Date: Fri, 8 Jan 2021 12:38:40 +0100 Subject: [PATCH 002/106] Change white/blacklist in recorder, history, Pushbullet and Watson IOT docs (#16125) --- source/_integrations/history.markdown | 4 ++-- source/_integrations/pushbullet.markdown | 2 +- source/_integrations/recorder.markdown | 6 +++--- source/_integrations/watson_iot.markdown | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/source/_integrations/history.markdown b/source/_integrations/history.markdown index 657a413b0ff..f3b10ce5e9a 100644 --- a/source/_integrations/history.markdown +++ b/source/_integrations/history.markdown @@ -77,7 +77,7 @@ Without any `include` or `exclude` configuration the history displays graphs for `scenes` are never shown) on a given date. If you are only interested in some of the entities you have several options: -Define domains and entities to `exclude` (aka. blacklist). This is convenient +Define domains and entities to `exclude` (aka. blocklist). This is convenient when you are basically happy with the information displayed, but just want to remove some entities or domains. Usually these are entities/domains which do not change or rarely change (like `updater` or `automation`). @@ -97,7 +97,7 @@ history: ``` Define domains and entities to display by using the `include` configuration -(aka. whitelist). If you have a lot of entities in your system and your +(aka. allowlist). If you have a lot of entities in your system and your `exclude` list is getting too large, it might be better just to define the entities or domains to `include`. diff --git a/source/_integrations/pushbullet.markdown b/source/_integrations/pushbullet.markdown index 1d376eb6028..d8858f77d93 100644 --- a/source/_integrations/pushbullet.markdown +++ b/source/_integrations/pushbullet.markdown @@ -189,6 +189,6 @@ action:
-Don't forget to [whitelist external directories](/docs/configuration/basic/), so Home Assistant has access to them. +Don't forget to [allowlist external directories](/docs/configuration/basic/), so Home Assistant has access to them.
diff --git a/source/_integrations/recorder.markdown b/source/_integrations/recorder.markdown index 220cb4a466a..b3f9be53691 100644 --- a/source/_integrations/recorder.markdown +++ b/source/_integrations/recorder.markdown @@ -110,7 +110,7 @@ recorder: ## Configure Filter -By default, no entity will be excluded. To limit which entities are being exposed to `Recorder`, you can use the `include` and `exclude` parameters. +By default, no entity will be excluded. To limit which entities are being exposed to `recorder`, you can use the `include` and `exclude` parameters. ```yaml # Example filter to include specified domains and exclude specified entities @@ -148,7 +148,7 @@ If you only want to hide events from your history, take a look at the [`history` ### Common filtering examples -Defining domains and entities to `exclude` (i.e. blacklist) is convenient when you are basically happy with the information recorded, but just want to remove some entities or domains. +Defining domains and entities to `exclude` (i.e. blocklist) is convenient when you are basically happy with the information recorded, but just want to remove some entities or domains. ```yaml # Example configuration.yaml entry with exclude @@ -169,7 +169,7 @@ recorder: - call_service # Don't record service calls ``` -Defining domains and entities to record by using the `include` configuration (i.e. whitelist) is convenient if you have a lot of entities in your system and your `exclude` lists possibly get very large, so it might be better just to define the entities or domains to record. +Defining domains and entities to record by using the `include` configuration (i.e. allowlist) is convenient if you have a lot of entities in your system and your `exclude` lists possibly get very large, so it might be better just to define the entities or domains to record. ```yaml # Example configuration.yaml entry with include diff --git a/source/_integrations/watson_iot.markdown b/source/_integrations/watson_iot.markdown index 93b1fd68eae..760091fdda4 100644 --- a/source/_integrations/watson_iot.markdown +++ b/source/_integrations/watson_iot.markdown @@ -66,7 +66,7 @@ exclude: required: false type: list include: - description: Configure which integrations should be included in recordings to Watson IoT Platform. If set, all other entities will not be recorded to Watson IoT Platform. Values set by the **blacklist** option will prevail. + description: Configure which integrations should be included in recordings to Watson IoT Platform. If set, all other entities will not be recorded to Watson IoT Platform. Values set by the **exclude** option will prevail. required: false type: map keys: From e4c17bc96565ea5e4d617754222941c00da768ef Mon Sep 17 00:00:00 2001 From: Philip Allgaier Date: Fri, 8 Jan 2021 13:26:08 +0100 Subject: [PATCH 003/106] Entities card: Tweaks, buttons screenshot + attribute example (#16126) --- source/_lovelace/entities.markdown | 65 +++++++++++++----- .../lovelace/lovelace_entity_row_buttons.jpg | Bin 0 -> 15980 bytes 2 files changed, 48 insertions(+), 17 deletions(-) create mode 100644 source/images/lovelace/lovelace_entity_row_buttons.jpg diff --git a/source/_lovelace/entities.markdown b/source/_lovelace/entities.markdown index 9f273dde59c..2c7d8fdd550 100644 --- a/source/_lovelace/entities.markdown +++ b/source/_lovelace/entities.markdown @@ -4,9 +4,9 @@ sidebar_label: Entities description: "The Entities card is the most common type of card. It groups items together into lists." --- -The Entities card is the most common type of card. It groups items together into lists. +The Entities card is the most common type of card. It groups items together into lists. It can be used to display an entity's state or attribute, but also contain buttons, web links, etc. -To add the Entities card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Entities** from the card picker. +To add the Entities card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Entities** from the card picker. {% configuration %} type: @@ -15,7 +15,7 @@ type: type: string entities: required: true - description: "A list of entity IDs or `entity` objects, see below." + description: "A list of entity IDs or `entity` objects or special row objects (see below)." type: list title: required: false @@ -56,7 +56,7 @@ If you define entities as objects instead of strings (by adding `entity:` before {% configuration %} entity: required: true - description: Home Assistant entity ID. + description: Entity ID. type: string type: required: false @@ -115,12 +115,14 @@ double_tap_action: ## Special Row Elements +Rather than only displaying an entity's state as a text output, the Entities card supports multiple special rows for buttons, attributes, web links, dividers and sections, etc. + ### Button {% configuration %} type: required: true - description: button + description: "`button`" type: string name: required: true @@ -156,7 +158,7 @@ Special row to start Home Assistant Cast. {% configuration %} type: required: true - description: cast + description: "`cast`" type: string dashboard: required: false @@ -190,7 +192,7 @@ Special row that displays based on entity states. {% configuration %} type: required: true - description: conditional + description: "`conditional`" type: string conditions: required: true @@ -199,7 +201,7 @@ conditions: keys: entity: required: true - description: HA entity ID. + description: Entity ID. type: string state: required: false @@ -224,7 +226,7 @@ Note: Conditions with more than one entity are treated as an 'and' condition. Th {% configuration %} type: required: true - description: divider + description: "`divider`" type: string style: required: false @@ -238,7 +240,7 @@ style: {% configuration %} type: required: true - description: section + description: "`section`" type: string label: required: false @@ -251,7 +253,7 @@ label: {% configuration %} type: required: true - description: weblink + description: "`weblink`" type: string url: required: true @@ -271,10 +273,12 @@ icon: ### Buttons +Multiple buttons displayed in a single row next to each other. See examples further below. + {% configuration %} type: required: true - description: buttons + description: "`buttons`" type: string entities: required: true @@ -283,7 +287,7 @@ entities: keys: entity: required: true - description: The entity to render. + description: Entity ID type: string icon: required: false @@ -304,11 +308,11 @@ entities: {% configuration %} type: required: true - description: attribute + description: "`attribute`" type: string entity: required: true - description: Home Assistant entity ID. + description: Entity ID type: string attribute: required: true @@ -328,7 +332,7 @@ name: type: string {% endconfiguration %} -## Example +## Examples Entity rows: @@ -348,7 +352,30 @@ entities: - group.all_locks ``` -Special rows: +Buttons row: + +Above the divider are regular entity rows, below one of type `buttons`. Note that regular entity rows automatically show the entity name, whereas for buttons you have to explicitely specify a label / name. + +

+Screenshot of buttons row +Screenshot of buttons row. +

+ +```yaml +type: entities +entities: + - entity: light.office_ceiling + - entity: light.dining_ceiling + - type: divider + - type: buttons + entities: + - entity: light.office_ceiling + name: Office Ceiling + - entity: light.dining_ceiling + name: Dining Ceiling +``` + +Other special rows: ```yaml type: entities @@ -363,6 +390,10 @@ entities: service_data: entity_id: light.bed_light - type: divider + - type: attribute + entity: sun.sun + attribute: elevation + name: Elevation - type: weblink name: Home Assistant url: https://www.home-assistant.io/ diff --git a/source/images/lovelace/lovelace_entity_row_buttons.jpg b/source/images/lovelace/lovelace_entity_row_buttons.jpg new file mode 100644 index 0000000000000000000000000000000000000000..638c9e702995dae4b4895b4a83a012ff7e306426 GIT binary patch literal 15980 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 Date: Fri, 8 Jan 2021 13:27:54 +0100 Subject: [PATCH 004/106] Update sensor.rflink.markdown (#16124) Add timestamp to the list of possible sensor_values to be used with update_time entities. --- source/_integrations/sensor.rflink.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_integrations/sensor.rflink.markdown b/source/_integrations/sensor.rflink.markdown index b4b9c5f40b3..1e959d3bfdc 100644 --- a/source/_integrations/sensor.rflink.markdown +++ b/source/_integrations/sensor.rflink.markdown @@ -93,6 +93,7 @@ Sensor type values: - revision - noise_level - temperature +- timestamp - uv_intensity - version - voltage From 3cfb48b964f878c8aae86306221e390912de2084 Mon Sep 17 00:00:00 2001 From: KNXBroker Date: Fri, 8 Jan 2021 13:35:36 +0100 Subject: [PATCH 005/106] Delete 'reset_after' reference for KNX switches (#16123) In the HA documentation 'reset_after' is mentioned in the 'invert' description of switches. This should be removed as 'reset_after' is not applicable for HA. --- source/_integrations/knx.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/knx.markdown b/source/_integrations/knx.markdown index ddb1100f107..d14e51de084 100644 --- a/source/_integrations/knx.markdown +++ b/source/_integrations/knx.markdown @@ -1098,7 +1098,7 @@ state_address: required: false type: string invert: - description: Invert the telegrams payload before processing or sending. This is applied before `reset_after` is evaluated so the reset will send "1" to the bus. + description: Invert the telegrams payload before processing or sending. required: false type: boolean default: False From 42e30c7360301c9fdac885ff29af6633875c01e5 Mon Sep 17 00:00:00 2001 From: Fietspomp86 Date: Fri, 8 Jan 2021 13:53:32 +0100 Subject: [PATCH 006/106] Update aquostv.markdown with Sharp LC-70LE747 (#16121) Added Sharp LC-70LE747E to the list --- source/_integrations/aquostv.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_integrations/aquostv.markdown b/source/_integrations/aquostv.markdown index 401e4f3eb8a..b90c4d732c0 100644 --- a/source/_integrations/aquostv.markdown +++ b/source/_integrations/aquostv.markdown @@ -74,5 +74,6 @@ Currently known supported models: - LC-60SQ15U - LC-50US40 (no volume control, not fully tested) - LC-70LE650U +- LC-70LE747E (no volume control) If your model is not on the list then give it a test, if everything works correctly then add it to the list on [GitHub](https://github.com/home-assistant/home-assistant.io/blob/current/source/_integrations/aquostv.markdown). From 79a13f6d45e76b694f41a3f5e6104fb4fb900567 Mon Sep 17 00:00:00 2001 From: Matthias Merz Date: Fri, 8 Jan 2021 15:20:22 +0100 Subject: [PATCH 007/106] use correct attribute for valve position (#16118) "valve" reflects the VALVE_STATE, e.g. "ADAPTION_DONE" etc. --- source/_integrations/homematic.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_integrations/homematic.markdown b/source/_integrations/homematic.markdown index b5768e51c32..57d428ac8f2 100644 --- a/source/_integrations/homematic.markdown +++ b/source/_integrations/homematic.markdown @@ -203,14 +203,14 @@ This does *not* affect the entities in Home Assistant. They all use their own co ### Reading attributes of entities -Most devices have, besides their state, additional attributes like their battery state or valve position. These can be accessed using templates in automations, or even as their own entities using the [template sensor](/integrations/template) component. Here's an example of a template sensor that exposes the valve state of a thermostat. +Most devices have, besides their state, additional attributes like their battery state or valve position. These can be accessed using templates in automations, or even as their own entities using the [template sensor](/integrations/template) component. Here's an example of a template sensor that exposes the valve position of a thermostat. ```yaml sensor: - platform: template sensors: bedroom_valve: - value_template: "{% raw %}{{ state_attr('climate.leq123456', 'valve') }}{% endraw %}" + value_template: "{% raw %}{{ state_attr('climate.leq123456', 'level') }}{% endraw %}" entity_id: climate.leq123456 friendly_name: 'Bedroom valve' ``` From 09e0281b27e18498247fd64f90c66d51d8973c75 Mon Sep 17 00:00:00 2001 From: N1c093 <59510296+N1c093@users.noreply.github.com> Date: Fri, 8 Jan 2021 15:25:11 +0100 Subject: [PATCH 008/106] Remove Server-sent events in http.markdown (#16117) --- source/_integrations/http.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/http.markdown b/source/_integrations/http.markdown index 567af1ef922..84b109577a2 100644 --- a/source/_integrations/http.markdown +++ b/source/_integrations/http.markdown @@ -107,7 +107,7 @@ The [Set up encryption using Let's Encrypt](/blog/2015/12/13/setup-encryption-us ## APIs -On top of the `http` integration is a [REST API](https://developers.home-assistant.io/docs/api/rest), [Python API](https://developers.home-assistant.io/docs/api_lib_index) and [WebSocket API](https://developers.home-assistant.io/docs/api/websocket) available. There is also support for [Server-sent events](/developers/server_sent_events/). +On top of the `http` integration is a [REST API](https://developers.home-assistant.io/docs/api/rest), [Python API](https://developers.home-assistant.io/docs/api_lib_index) and [WebSocket API](https://developers.home-assistant.io/docs/api/websocket) available. The `http` platforms are not real platforms within the meaning of the terminology used around Home Assistant. Home Assistant's [REST API](/developers/rest_api/) sends and receives messages over HTTP. From 40a39183e2176bf671c2de499e29f5be63604608 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 9 Jan 2021 14:33:51 +0000 Subject: [PATCH 009/106] Release 2021.1.1 --- _config.yml | 4 +-- .../_posts/2021-01-06-release-20211.markdown | 26 ++++++++++++++++++- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/_config.yml b/_config.yml index 72a86c50e1b..9280efc42a7 100644 --- a/_config.yml +++ b/_config.yml @@ -101,8 +101,8 @@ social: # Home Assistant release details current_major_version: 2021 current_minor_version: 1 -current_patch_version: 0 -date_released: 2021-01-06 +current_patch_version: 1 +date_released: 2021-01-09 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_posts/2021-01-06-release-20211.markdown b/source/_posts/2021-01-06-release-20211.markdown index c2c83872d15..733f045cee0 100644 --- a/source/_posts/2021-01-06-release-20211.markdown +++ b/source/_posts/2021-01-06-release-20211.markdown @@ -40,12 +40,13 @@ Enjoy the release! ../Frenck -- [In memoriam of villhellm](#in-memoriam-of-villhellm) +- [In memoriam of Villhellm](#in-memoriam-of-villhellm) - [Home Assistant Conference Videos](#home-assistant-conference-videos) - [Other noteworthy changes](#other-noteworthy-changes) - [New Integrations](#new-integrations) - [New Platforms](#new-platforms) - [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui) +- [Release 2021.1.1 - January 9](#release-202111---january-9) - [If you need help...](#if-you-need-help) - [Breaking Changes](#breaking-changes) - [Farewell to the following](#farewell-to-the-following) @@ -150,6 +151,29 @@ The following integrations are now available via the Home Assistant UI: - [BMW Connected Drive][bmw_connected_drive docs], done by [@rikroe] +## Release 2021.1.1 - January 9 + +- Fix KNX cover state return open when unknown ([@farmio] - [#44926]) ([knx docs]) +- Fix wait_template incorrectly matching falsey values ([@bdraco] - [#44938]) +- Disambiguate Supervisor HTTPUnauthorized on user/password validation ([@zeehio] - [#44940]) ([hassio docs]) +- Fix parameters when toggling light ([@emontnemery] - [#44950]) ([light docs]) +- Bump pymyq to 2.0.13 ([@ehendrix23] - [#44961]) ([myq docs]) + +[#44926]: https://github.com/home-assistant/core/pull/44926 +[#44938]: https://github.com/home-assistant/core/pull/44938 +[#44940]: https://github.com/home-assistant/core/pull/44940 +[#44950]: https://github.com/home-assistant/core/pull/44950 +[#44961]: https://github.com/home-assistant/core/pull/44961 +[@bdraco]: https://github.com/bdraco +[@ehendrix23]: https://github.com/ehendrix23 +[@emontnemery]: https://github.com/emontnemery +[@farmio]: https://github.com/farmio +[@zeehio]: https://github.com/zeehio +[hassio docs]: /integrations/hassio/ +[knx docs]: /integrations/knx/ +[light docs]: /integrations/light/ +[myq docs]: /integrations/myq/ + ## If you need help... ...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). From 4631ff06d12785110381b6ea82f6b1d351c00925 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Sun, 10 Jan 2021 17:16:50 +0100 Subject: [PATCH 010/106] Update Home Assistant OS to 5.10 (#16137) --- source/hassio/installation.markdown | 30 ++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown index 02e47531a41..124276eb206 100644 --- a/source/hassio/installation.markdown +++ b/source/hassio/installation.markdown @@ -105,21 +105,21 @@ If you would like to test next release before anyone else, you can install the b [balenaEtcher]: https://www.balena.io/etcher [hassos-network]: https://github.com/home-assistant/operating-system/blob/dev/Documentation/network.md -[pi3-32]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_rpi3-5.9.img.xz -[pi3-64]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_rpi3-64-5.9.img.xz -[pi4-32]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_rpi4-5.9.img.xz -[pi4-64]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_rpi4-64-5.9.img.xz -[tinker]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_tinker-5.9.img.xz -[odroid-c2]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_odroid-c2-5.9.img.xz -[odroid-c4]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_odroid-c4-5.9.img.xz -[odroid-n2]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_odroid-n2-5.9.img.xz -[odroid-xu4]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_odroid-xu4-5.9.img.xz -[intel-nuc]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_intel-nuc-5.9.img.xz -[vmdk]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_ova-5.9.vmdk.xz -[vhdx]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_ova-5.9.vhdx.xz -[vdi]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_ova-5.9.vdi.xz -[qcow2]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_ova-5.9.qcow2.xz -[Virtual Appliance]: https://github.com/home-assistant/operating-system/releases/download/5.9/hassos_ova-5.9.ova +[pi3-32]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_rpi3-5.10.img.xz +[pi3-64]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_rpi3-64-5.10.img.xz +[pi4-32]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_rpi4-5.10.img.xz +[pi4-64]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_rpi4-64-5.10.img.xz +[tinker]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_tinker-5.10.img.xz +[odroid-c2]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_odroid-c2-5.10.img.xz +[odroid-c4]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_odroid-c4-5.10.img.xz +[odroid-n2]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_odroid-n2-5.10.img.xz +[odroid-xu4]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_odroid-xu4-5.10.img.xz +[intel-nuc]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_intel-nuc-5.10.img.xz +[vmdk]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_ova-5.10.vmdk.xz +[vhdx]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_ova-5.10.vhdx.xz +[vdi]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_ova-5.10.vdi.xz +[qcow2]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_ova-5.10.qcow2.xz +[Virtual Appliance]: https://github.com/home-assistant/operating-system/releases/download/5.10/hassos_ova-5.10.ova [local]: http://homeassistant.local:8123 [samba]: /addons/samba/ [ssh]: /addons/ssh/ From 9a423f33b2876e2d22110f609ec916307017a72e Mon Sep 17 00:00:00 2001 From: HFeenstra Date: Sun, 10 Jan 2021 21:07:42 +0100 Subject: [PATCH 011/106] Update spotify.markdown (#16140) --- source/_integrations/spotify.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/spotify.markdown b/source/_integrations/spotify.markdown index 8d01a9bb0f4..1ed7da9f5de 100644 --- a/source/_integrations/spotify.markdown +++ b/source/_integrations/spotify.markdown @@ -26,7 +26,7 @@ The Spotify media player integration allows you to control [Spotify](https://www ### Create a Spotify application -- Login to [Spotify Developer](https://developer.spotify.com). +- Login to [Spotify Developer](https://developer.spotify.com) via Dashboard. - Visit the [My Applications](https://developer.spotify.com/my-applications/#!/applications) page. - Select **Create An App**. Enter any name and description. - Once your application is created, view it and copy your **Client ID** and **Client Secret**, which are used in the Home Assistant [configuration file below](#configuration). From fd30f1de66dc1579a01c82687285b0d45999a279 Mon Sep 17 00:00:00 2001 From: kongo09 Date: Sun, 10 Jan 2021 21:40:13 +0100 Subject: [PATCH 012/106] Change example to use expand as a function (#16144) expand does not work as a filter but only as a function. Adjust the example accordingly. --- source/_docs/configuration/templating.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index 669968480b2..a9f94e3c5da 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -164,7 +164,7 @@ The same thing can also be expressed as a filter: {% raw %} ```text -{{ ['device_tracker.paulus', 'group.child_trackers'] | expand +{{ expand(['device_tracker.paulus', 'group.child_trackers']) | selectattr("attributes.battery", 'defined') | join(', ', attribute="attributes.battery") }} ``` From 7df05d6b56078a60e070efef5cc25354c8c8d9f3 Mon Sep 17 00:00:00 2001 From: Philip Allgaier Date: Sun, 10 Jan 2021 21:43:55 +0100 Subject: [PATCH 013/106] Made the user exemptions for action confirmation a bit clearer (#16143) The part "can view the view tab" was quite confusing here. --- source/lovelace/actions.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/lovelace/actions.markdown b/source/lovelace/actions.markdown index c1987a35b9f..78f6c90aea8 100644 --- a/source/lovelace/actions.markdown +++ b/source/lovelace/actions.markdown @@ -189,7 +189,7 @@ exemptions: {% configuration exemptions %} user: required: true - description: User id that can see the view tab. For each user´s id listed, the confirmation dialog will NOT be shown. + description: User ID for which the confirmation dialog will **not** be shown. type: string {% endconfiguration %} From 0c4c4670ee6b02ffe2a29726b28df3f02620692b Mon Sep 17 00:00:00 2001 From: Shawn Oster Date: Sun, 10 Jan 2021 12:46:59 -0800 Subject: [PATCH 014/106] Fix two spelling mistakes and minor grammar optimizations (#16138) - Fixed two spelling mistakes - Changed casing to match Xbox UI - Removed extraneous words --- source/_integrations/xbox.markdown | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/source/_integrations/xbox.markdown b/source/_integrations/xbox.markdown index 98261c627d2..f2568e11cbd 100644 --- a/source/_integrations/xbox.markdown +++ b/source/_integrations/xbox.markdown @@ -16,7 +16,7 @@ ha_config_flow: true The Xbox integration allows you to control Xbox One (or newer) consoles from Home Assistant. -Home Assistant authenticates with Xbox Live through OAuth2 using the Home Assistant Cloud account linking service. Set up the integration through **Configuration -> Integrations -> Xbox**. Ensure you login using the Microsoft account that is linked to your Xbox consoles. Note that for the media player and remote entities to be added your Xbox will need to have remote features enabled via **Settings -> Devices & conections -> Remote Features** (you may need to uprade your controller firmware). +Home Assistant authenticates with Xbox Live through OAuth2 using the Home Assistant Cloud account linking service. Set up the integration through **Configuration -> Integrations -> Xbox**. Ensure you login using the Microsoft account that is linked to your Xbox consoles. Note that for the media player and remote entities to be added your Xbox will need to have remote features enabled via **Settings -> Devices & connections -> Remote features** (you may need to upgrade your controller firmware).
@@ -42,13 +42,13 @@ The Xbox media player platform will create Media Player entities for each consol Launches an application on the Xbox console using the application's product ID. Also supports "Home" and "TV" to navigate to the dashboard or Live TV respectively. -You can find Product IDs by using the **Developer Tools -> Events** tab and listening to the `call_service` event. In a new browser tab, navigate to the media browser for your console and click on an App/Game to see the product ID in the event. +You can find Product IDs using the **Developer Tools -> Events** tab and listening to the `call_service` event. In a new browser tab, navigate to the media browser for your console and click on an App/Game to see the product ID in the event. | Service data attribute | Description | | ---------------------- | --------------------------------------| | `entity_id` | `entity_id` of the Xbox media player | -| `media_content_id` | "Home"/"TV"/{product_id} | -| `media_content_type` | Any Value | +| `media_content_id` | "Home"/"TV"/{product_id} | +| `media_content_type` | Any Value | **Examples:** @@ -243,9 +243,9 @@ elements: ## Binary Sensor -The Xbox binary sensor platform automatically keeps track of your "**Favorite** friends". In your friends list, select **Change friendship -> Favorite** in order to have that person automatically pulled into Home Assistant. +The Xbox binary sensor platform automatically keeps track of your "**Favorite** friends". In your friends list, select **Change friendship -> Favorite** to have that person automatically pulled into Home Assistant. -There are 4 binary sensors that are added, 3 of which are disabled by default. They can be enabled in the "Xbox Live" service on the devices page. +4 binary sensors are added, 3 of which are disabled by default. They can be enabled in the "Xbox Live" service on the devices page. | Entity ID | Default | Description | | ----------------------------------------- | -------- | ------------------------------------------------------------| @@ -258,7 +258,7 @@ There are 4 binary sensors that are added, 3 of which are disabled by default. T Just like the binary sensors, the Xbox sensor platform automatically keeps track of your "**Favorite** friends". -There are 4 sensors that are added, **all** of which are disabled by default. They can be enabled in the "Xbox Live" service on the devices page. +4 sensors are added, **all** of which are disabled by default. They can be enabled in the "Xbox Live" service on the devices page. | Entity ID | Default | Description | | ---------------------------------| -------- | -------------------------------------------------------------------------| From 3f645a7789fe4a574fb980fc69aa5ad8980b2a3d Mon Sep 17 00:00:00 2001 From: Mike Keesey Date: Sun, 10 Jan 2021 13:51:36 -0700 Subject: [PATCH 015/106] Update unifi with advanced configuration details and presence detection defaults (#16142) - Describe how to get to the advanced options. - Describe the default time for presence detection to mark a device as away. --- source/_integrations/unifi.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_integrations/unifi.markdown b/source/_integrations/unifi.markdown index 1099a178190..eba69127039 100644 --- a/source/_integrations/unifi.markdown +++ b/source/_integrations/unifi.markdown @@ -31,7 +31,7 @@ The user needs administrator privileges in order to control switches. ### Extra configuration of the integration -All configuration options are offered from the front end. Enter what UniFi integration you want to change options on and press the cog wheel. +All configuration options are offered from the front end. Enter what UniFi integration you want to change options on and press the cog wheel. Some advanced options are available when "Advanced Mode" is enabled on your user profile page. ### Configuring Users @@ -49,7 +49,7 @@ It is recommended that you run the UniFi controller in a dedicated virtual machi ## Presence detection -This platform allows you to detect presence by looking at devices connected to a [Ubiquiti](https://ui.com/) [UniFi](https://unifi-network.ui.com/) controller. +This platform allows you to detect presence by looking at devices connected to a [Ubiquiti](https://ui.com/) [UniFi](https://unifi-network.ui.com/) controller. By default devices are marked as away 300 seconds after they were last seen. ### Troubleshooting and Time Synchronization From bd3a6881c9ee2a37e761df0d03622ff7c55742f6 Mon Sep 17 00:00:00 2001 From: Jeff Irion Date: Sun, 10 Jan 2021 12:55:47 -0800 Subject: [PATCH 016/106] Recommend using Python ADB approach for Android TV setup (#16141) Co-authored-by: Franck Nijhof --- source/_integrations/androidtv.markdown | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/_integrations/androidtv.markdown b/source/_integrations/androidtv.markdown index 988ccf7945c..1b95cb1891b 100644 --- a/source/_integrations/androidtv.markdown +++ b/source/_integrations/androidtv.markdown @@ -12,6 +12,12 @@ ha_domain: androidtv The `androidtv` platform allows you to control an Android TV device or [Amazon Fire TV](https://www.amazon.com/b/?node=8521791011) device. +
+ +When setting up this integration, it is recommended that you do NOT use an ADB server and instead use the built-in Python ADB implementation. This simplifies the setup and makes it easier to troubleshoot issues. If there are stability issues with this approach, then you may wish to try using an ADB server. See the [ADB Setup](#adb-setup) section for more information. + +
+ ## Device preparation To set up your device, you will need to find its IP address and enable ADB debugging. For Android TV devices, please consult the documentation for your device. @@ -35,12 +41,6 @@ media_player: - platform: androidtv name: Android TV 1 host: 192.168.0.111 - - # Use an ADB server for sending ADB commands - - platform: androidtv - name: Android TV 2 - host: 192.168.0.222 - adb_server_ip: 127.0.0.1 ``` {% configuration %} From 7fcb894585b890ff48932fdb0cb4ef5d559f9bb2 Mon Sep 17 00:00:00 2001 From: Jesse Campbell Date: Sun, 10 Jan 2021 17:00:26 -0500 Subject: [PATCH 017/106] Add requirement for setting DEBUG when testing Alexa Smart Home (#16146) --- source/_integrations/alexa.smart_home.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/_integrations/alexa.smart_home.markdown b/source/_integrations/alexa.smart_home.markdown index 37aa25bb34f..e3d6dac09d3 100644 --- a/source/_integrations/alexa.smart_home.markdown +++ b/source/_integrations/alexa.smart_home.markdown @@ -119,7 +119,7 @@ Next you need create a Lambda function. - Scroll down a little bit, you will find `Environment variables`, you need add 1 environment variable and, if required, 3 optional variables. This is done by selecting `Manage environment variables` then adding the following: - *(required)* Key = BASE_URL, Value = your Home Assistant instance's Internet accessible URL with port if needed. *Do not include the trailing `/`*. - *(optional)* Key = NOT_VERIFY_SSL, Value = *True*. You can set this to *True* to ignore SSL issues, for example if you don't have a valid SSL certificate or you are using a self-signed certificate. - - *(optional)* Key = DEBUG, Value = *True*. Set this variable to log the debug message. + - *(optional)* Key = DEBUG, Value = *True*. Set this variable to log the debug message and to allow the LONG_LIVED_ACCESS_TOKEN - *(optional, not recommend)* Key = LONG_LIVED_ACCESS_TOKEN, Value = your Home Assistant Long-Lived Access Token. To avoid the use of a long-lived access token you will connect your Alexa Smart Home skill with your Home Assistant user account in the later steps, meaning you don't need to add it here. However, the access token you got from login flow is only valid for 30 minutes. It will be hard for you to test lambda function with the access token in test data. So for your convenience, you can remove the access token from the test data, [generate a long-lived access token][generate-long-lived-access-token] put here, then the function will fall back to read token from environment variables. (tips: You did not enable the security storage for your environment variables, so your token saved here is not that safe. You should only use it for debugging and testing purpose. You should remove and delete the long-lived access token after you finish the debugging.)

@@ -167,9 +167,9 @@ After your Home Assistant has restarted, go back to `AWS Lambda Console`, you ar This test event is a `Discovery` directive, your Home Assistant instance will respond with a list of devices Alexa can interact with. This test data is lack of `token` in `payload.scope`, your Lambda function will read the `LONG_LIVED_ACCESS_TOKEN` from environment variable. -Click the `Test` button. If you don't have `LONG_LIVED_ACCESS_TOKEN`, you will get a `INVALID_AUTHORIZATION_CREDENTIAL` response as the execution result. +Click the `Test` button. If you don't have `LONG_LIVED_ACCESS_TOKEN`, or you haven't enabled `DEBUG` you will get a `INVALID_AUTHORIZATION_CREDENTIAL` response as the execution result. -Now, you can login to your Home Assistant and [generate a long-lived access token][generate-long-lived-access-token]. After you put your long-lived access token to the `Environment variable`, do not forget click `Save` button before you `Test` again. +Now, you can login to your Home Assistant and [generate a long-lived access token][generate-long-lived-access-token]. After you put your long-lived access token to the `Environment variable` and set the `DEBUG` environment variable to `True`, do not forget to click the `Save` button before you `Test` again. This time, you will get a list of your devices in the response. 🎉 From 406d8d31e7e31f728886415143fd99a22d011deb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Mon, 11 Jan 2021 11:49:35 +0100 Subject: [PATCH 018/106] Add landingpage for removed integrations (#16120) Co-authored-by: Hmmbob <33529490+hmmbob@users.noreply.github.com> Co-authored-by: Franck Nijhof --- source/_redirects | 76 +++++++++++++++++++ source/more-info/removed-integration.markdown | 20 +++++ 2 files changed, 96 insertions(+) create mode 100644 source/more-info/removed-integration.markdown diff --git a/source/_redirects b/source/_redirects index da56a0e89f6..ad198cd130c 100644 --- a/source/_redirects +++ b/source/_redirects @@ -2184,3 +2184,79 @@ # Blog /blog/2019/05/29/release-94 /blog/2019/06/05/release-94 /state-of-the-union /blog/2019/11/22/state-of-the-union + + +# Removed integrations +/components/alarm_control_panel.alarmdotcom /more-info/removed-integration 301 +/components/alarm_control_panel.ialarm /more-info/removed-integration 301 +/components/device_tracker.ubee /more-info/removed-integration 301 +/components/device_tracker.xfinity /more-info/removed-integration 301 +/components/edp_redy /more-info/removed-integration 301 +/components/fedex /more-info/removed-integration 301 +/components/fortigate /more-info/removed-integration 301 +/components/history_graph /more-info/removed-integration 301 +/components/hydroquebec /more-info/removed-integration 301 +/components/linksys_ap /more-info/removed-integration 301 +/components/liveboxplaytv /more-info/removed-integration 301 +/components/lock.lockitron /more-info/removed-integration 301 +/components/lockitron /more-info/removed-integration 301 +/components/media_player.liveboxplaytv /more-info/removed-integration 301 +/components/media_player.liveboxplaytv /more-info/removed-integration 301 +/components/nma /more-info/removed-integration 301 +/components/notify.nma /more-info/removed-integration 301 +/components/notify.pushetta /more-info/removed-integration 301 +/components/notify.yessssms /more-info/removed-integration 301 +/components/postnl /more-info/removed-integration 301 +/components/pushetta /more-info/removed-integration 301 +/components/ruter /more-info/removed-integration 301 +/components/sensor.bom /more-info/removed-integration 301 +/components/sensor.duke_energy /more-info/removed-integration 301 +/components/sensor.gearbest /more-info/removed-integration 301 +/components/sensor.hydroquebec /more-info/removed-integration 301 +/components/sensor.linky /more-info/removed-integration 301 +/components/sensor.mopar /more-info/removed-integration 301 +/components/sensor.postnl /more-info/removed-integration 301 +/components/sensor.prezzibenzina /more-info/removed-integration 301 +/components/sensor.teksavvy /more-info/removed-integration 301 +/components/sensor.yweather /more-info/removed-integration 301 +/components/simple_alarm /more-info/removed-integration 301 +/components/srp_energy /more-info/removed-integration 301 +/components/switch.edp_redy /more-info/removed-integration 301 +/components/sytadin /more-info/removed-integration 301 +/components/teksavvy /more-info/removed-integration 301 +/components/uber /more-info/removed-integration 301 +/components/ups /more-info/removed-integration 301 +/components/usps /more-info/removed-integration 301 +/components/weather.bom /more-info/removed-integration 301 +/components/weather.yweather /more-info/removed-integration 301 +/components/weblink /more-info/removed-integration 301 +/components/yessssms /more-info/removed-integration 301 +/components/yweather /more-info/removed-integration 301 +/integrations/alarmdotcom /more-info/removed-integration 301 +/integrations/bom /more-info/removed-integration 301 +/integrations/ciscospark /more-info/removed-integration 301 +/integrations/duke_energy /more-info/removed-integration 301 +/integrations/edp_redy /more-info/removed-integration 301 +/integrations/fortigate /more-info/removed-integration 301 +/integrations/gearbest /more-info/removed-integration 301 +/integrations/history_graph /more-info/removed-integration 301 +/integrations/hydroquebec /more-info/removed-integration 301 +/integrations/ialarm /more-info/removed-integration 301 +/integrations/linky /more-info/removed-integration 301 +/integrations/liveboxplaytv /more-info/removed-integration 301 +/integrations/liveboxplaytv /more-info/removed-integration 301 +/integrations/lockitron /more-info/removed-integration 301 +/integrations/mopar /more-info/removed-integration 301 +/integrations/nma /more-info/removed-integration 301 +/integrations/postnl /more-info/removed-integration 301 +/integrations/prezzibenzina /more-info/removed-integration 301 +/integrations/pushetta /more-info/removed-integration 301 +/integrations/salt /more-info/removed-integration 301 +/integrations/simple_alarm /more-info/removed-integration 301 +/integrations/teksavvy /more-info/removed-integration 301 +/integrations/ubee /more-info/removed-integration 301 +/integrations/uber /more-info/removed-integration 301 +/integrations/weblink /more-info/removed-integration 301 +/integrations/xfinity /more-info/removed-integration 301 +/integrations/yessssms /more-info/removed-integration 301 +/integrations/yweather /more-info/removed-integration 301 \ No newline at end of file diff --git a/source/more-info/removed-integration.markdown b/source/more-info/removed-integration.markdown new file mode 100644 index 00000000000..f05c114384e --- /dev/null +++ b/source/more-info/removed-integration.markdown @@ -0,0 +1,20 @@ +--- +title: Removed integration +description: The integration you requested has been removed +sidebar: false +--- + +The integration you requested has been removed. + +Possible reasons for the removal: + +- It's unmaintained. +- It's no longer working. +- It does not comply with the rules described in our [ADR's][architecture-repo]. +- It does not follow our [design guidelines][dev-docs] for integrations. + +For alternative integrations have a look at the list of our [integrations here][integrations]. + +[architecture-repo]: https://github.com/home-assistant/architecture +[dev-docs]: https://developers.home-assistant.io/docs/development_index +[integrations]: /integrations From 1ab0b32250488b877f8847726314f21444adc7cb Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 11 Jan 2021 12:06:35 +0100 Subject: [PATCH 019/106] Clarify introduction of panel_custom. (#16155) --- source/_integrations/panel_custom.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/panel_custom.markdown b/source/_integrations/panel_custom.markdown index 928d2a2d40f..cf023b58b0b 100644 --- a/source/_integrations/panel_custom.markdown +++ b/source/_integrations/panel_custom.markdown @@ -11,7 +11,7 @@ ha_domain: panel_custom ha_iot_class: --- -The `panel_custom` support allows you to add additional panels to your Home Assistant frontend. The panels are listed in the sidebar if wished and can be highly customized. See the developer documentation on [instructions how to build your own panels](https://developers.home-assistant.io/docs/frontend/custom-ui/creating-custom-panels/). +The `panel_custom` integration allows you to write your own panels in JavaScript and add them to Home Assistant. See the developer documentation on [instructions how to build your own panels](https://developers.home-assistant.io/docs/frontend/custom-ui/creating-custom-panels/). To enable customized panels in your installation, add the following to your `configuration.yaml` file: From 0b2d54724f0fdd5aca69b0c60c5f9270c6560e4b Mon Sep 17 00:00:00 2001 From: Sean Hoyt Date: Mon, 11 Jan 2021 05:40:59 -0600 Subject: [PATCH 020/106] Daikin: Add region changing note (#16153) Co-authored-by: Franck Nijhof --- source/_integrations/daikin.markdown | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/source/_integrations/daikin.markdown b/source/_integrations/daikin.markdown index 24b70971d61..a05f51444fc 100644 --- a/source/_integrations/daikin.markdown +++ b/source/_integrations/daikin.markdown @@ -112,3 +112,16 @@ Zones with the name `-` will be ignored, just as the AirBase application is work

Additionally the Daikin Streamer (air purifier) function can be toggled on supported devices using a switch. + +## Region Changing + +The European and United States controllers (Most likely the Australian controllers too) have an HTTP API endpoint that allows you to change the controllers region so that other regional apps can be used. (Sometimes these controllers get exported to regions that can not download the app for the controllers region.) + +`http://Daikin-IP-Address/common/set_regioncode?reg=XX` Replace XX with your region code of choice. + +Currently known region codes: +- AU +- EU +- JP +- US +- TH From 39915bc3a8e4a820f866f84b3973e87f45efbc91 Mon Sep 17 00:00:00 2001 From: Sean Hoyt Date: Mon, 11 Jan 2021 05:41:39 -0600 Subject: [PATCH 021/106] Daikin: Add supported US controller info (#16151) --- source/_integrations/daikin.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_integrations/daikin.markdown b/source/_integrations/daikin.markdown index a05f51444fc..60daa03e7b5 100644 --- a/source/_integrations/daikin.markdown +++ b/source/_integrations/daikin.markdown @@ -27,6 +27,7 @@ There is currently support for the following device types within Home Assistant: - The European versions of the Wifi Controller Unit (BRP069A41, 42, 43, 45), which is powered by the [Daikin Online Controller](https://play.google.com/store/apps/details?id=eu.daikin.remoapp) application. The new version of WiFi Controller Unit BRP069Bxx is also confirmed to work, tested and working devices are the BRP069B41 and BRP069B45. - The Australian version of the Daikin Wifi Controller Unit BRP072A42, which is operated by the [Daikin Mobile Controller](https://itunes.apple.com/au/app/daikin-mobile-controller/id917168708?mt=8) ([Android version](https://play.google.com/store/apps/details?id=eu.daikin.remoapp)) application. Confirmed working on a Daikin Cora Series Reverse Cycle Split System Air Conditioner 2.5kW Cooling FTXM25QVMA with operation mode, temp, fan swing (3d, horizontal, vertical). - BRP072Cxx based units (including Zena devices)*. +- The United States version of the Wifi Controller Unit (BRP069A43), which is powered by the [Daikin Comfort Control](https://play.google.com/store/apps/details?id=us.daikin.wwapp) application. Confirmed working on a Daikin Wall Unit FTXS15LVJU and a Floor Unit FVXS15NVJU with operation mode, temp, fan swing (3d, horizontal, vertical). - The Australian version of the Daikin Wifi Controller for **AirBase** units (BRP15B61), which is operated by the [Daikin Airbase](https://play.google.com/store/apps/details?id=au.com.daikin.airbase) application. - **SKYFi** based units, which is operated by the SKYFi application*. From a79d8073e87d7608c91afc730839c87abf65b221 Mon Sep 17 00:00:00 2001 From: Aalian Khan <39784853+AalianKhan@users.noreply.github.com> Date: Tue, 12 Jan 2021 02:38:07 -0500 Subject: [PATCH 022/106] Hikvision component also works with other NVRs (#16165) I was playing around and saw that Annke and Hikvision have similar software. I tried the component and it worked with my system. --- source/_integrations/hikvision.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_integrations/hikvision.markdown b/source/_integrations/hikvision.markdown index c24c53c3027..a2fce04d834 100644 --- a/source/_integrations/hikvision.markdown +++ b/source/_integrations/hikvision.markdown @@ -61,6 +61,10 @@ and has been confirmed to work with the following models: - IPC-D140H(-M) - DS-7616NI-K2 (NVR) +This platform also was confirmed to work with the following Hikvison-based NVRS + +- N46PCK (Annke H800 4K NVR) + ## Configuration To enable this sensor, From 963a32b4dcfb7b42d0bc7c84fc52e57463582ae6 Mon Sep 17 00:00:00 2001 From: Lars Date: Tue, 12 Jan 2021 09:03:44 +0100 Subject: [PATCH 023/106] update fritz integration docs (#16166) --- source/_integrations/fritz.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_integrations/fritz.markdown b/source/_integrations/fritz.markdown index ca963b61421..99d44eba989 100644 --- a/source/_integrations/fritz.markdown +++ b/source/_integrations/fritz.markdown @@ -22,7 +22,7 @@ device_tracker: {% configuration %} host: - description: The IP address of your router, e.g., `192.168.1.1`. It is optional since every FRITZ!Box is also reachable by using the IP address 169.254.1.1. + description: The IP address of your router, e.g., `192.168.178.1`. It is optional since every FRITZ!Box is also reachable by using the IP address 169.254.1.1. required: false type: string default: 169.254.1.1 @@ -38,7 +38,7 @@ password: {% endconfiguration %}
-It seems that it is not necessary to use the password in current generation FRITZ!Box routers because the necessary data can be retrieved anonymously. +TR-064 needs to be enabled in the FRITZ!Box network settings for Home Assistant to login and read device info.
See the [device tracker integration page](/integrations/device_tracker/) for instructions how to configure the people to be tracked. From d9e69f3e9b187a0c08a5411403d7eaca84fbc2f5 Mon Sep 17 00:00:00 2001 From: xlcnd Date: Tue, 12 Jan 2021 08:17:21 +0000 Subject: [PATCH 024/106] Add Portuguese (pt) to the list (#16157) --- source/_integrations/meteoalarm.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/meteoalarm.markdown b/source/_integrations/meteoalarm.markdown index 90b8db94f6a..756e213213d 100644 --- a/source/_integrations/meteoalarm.markdown +++ b/source/_integrations/meteoalarm.markdown @@ -40,7 +40,7 @@ province: required: true type: string language: - description: "The 2 letters of your language, please be aware that this is only possible in the current country. So 'ne' is only possible in Netherlands. Possible options are: bu, bs, ce, da, de, ee, en, es, ga, ca, su, fr, gr, he, hr, ma, is, it, li, la, sr, mk, ma, ne, no, po, ro, cp, sv, sl, eu." + description: "The 2 letters of your language, please be aware that this is only possible in the current country. So 'ne' is only possible in Netherlands. Possible options are: bu, bs, ce, da, de, ee, en, es, ga, ca, su, fr, gr, he, hr, ma, is, it, li, la, sr, mk, ma, ne, no, po, pt, ro, cp, sv, sl, eu." required: false type: string default: 'en' From 5487b422cb87f7692b975c3bc1d4ae52e7167d7c Mon Sep 17 00:00:00 2001 From: schmjop <60253217+schmjop@users.noreply.github.com> Date: Tue, 12 Jan 2021 10:26:27 +0100 Subject: [PATCH 025/106] Remove panasonic_viera from legacy discovery (#16167) Integration panasonic_viera was removed from legacy discovery in 0.109.6 --- source/_integrations/discovery.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/source/_integrations/discovery.markdown b/source/_integrations/discovery.markdown index 015c6cb122c..41f37df0bc0 100644 --- a/source/_integrations/discovery.markdown +++ b/source/_integrations/discovery.markdown @@ -79,7 +79,6 @@ Valid values for ignore are: * `netgear_router`: NETGEAR routers * `octoprint`: Octoprint * `openhome`: Linn / Openhome - * `panasonic_viera`: Panasonic Viera * `philips_hue`: Philips Hue * `sabnzbd`: SABnzbd downloader * `samsung_printer`: Samsung SyncThru Printer From ffc5ec2b1ba25a34fc54ffb87fc7c33d543d6de0 Mon Sep 17 00:00:00 2001 From: Allen Porter Date: Tue, 12 Jan 2021 01:43:19 -0800 Subject: [PATCH 026/106] Clarify nest device trigger documentation (#16043) Co-authored-by: Franck Nijhof --- source/_integrations/nest.markdown | 25 +++++++++++++----- .../integrations/nest/device_triggers.png | Bin 0 -> 83881 bytes 2 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 source/images/integrations/nest/device_triggers.png diff --git a/source/_integrations/nest.markdown b/source/_integrations/nest.markdown index 61c9b481d8a..4e7ccf75fa3 100644 --- a/source/_integrations/nest.markdown +++ b/source/_integrations/nest.markdown @@ -40,6 +40,7 @@ Home Assistant is integrated with the following devices through the SDM API: - Example devices: All Google Nest Thermostat models - Display, Camera, and Doorbell Devices - The camera live stream is available as a `camera` entity + - Device Triggers for use in automations such as Person detected, Motion detected and Doorbell pressed - Example devices: All Google Nest Cam models, Google Nest Hello Video Doorbell, Google Nest Hub Max You are in control of the information and capabilities exposed to Home Assistant. You can authorize a single device, multiple devices, or different levels of functionality such as motion events, live streams, for any particular device. The integration is flexible enough to adapt based on what you allow. @@ -290,14 +291,26 @@ Given a thermostat named `Upstairs` then sensors are created with names such as ## Automation and Device Triggers -All Google Nest Cam models and the Google Nest Hello Video Doorbell support [Device Triggers](/docs/automation/trigger/#device-triggers) that enable automation in Home Assistant: +The Nest integration makes [device triggers](/docs/automation/trigger/#device-triggers) available to enable automation +in Home Assistant. You should review the [Automating Home Assistant](/getting-started/automation/) getting started guide on automations or the [Automation](/docs/automation/) documentation for full details. -- `camera_motion`: Motion detected, when a [CameraMotion](https://developers.google.com/nest/device-access/traits/device/camera-motion#events) event is received. -- `camera_person`: Person detected, when a [CameraPerson](https://developers.google.com/nest/device-access/traits/device/camera-person#events) event is received. -- `camera_sound`: Sound detected, when a [CameraSound](https://developers.google.com/nest/device-access/traits/device/camera-sound#events) event is received. -- `doorbell_chime`: Doorbell pressed, when a [DoorbellChime](https://developers.google.com/nest/device-access/traits/device/doorbell-chime#events) event is received. +![Screenshot Device Triggers](/images/integrations/nest/device_triggers.png) -See [Automating Home Assistant](/getting-started/automation/) for the getting started guide on automations or the [Automation](/docs/automation/) documentation for full details. +All Google Nest Cam models and the Google Nest Hello Video Doorbell support device triggers: + +- **Motion detected** +- **Person detected** +- **Sound detected** +- **Doorbell pressed** *for Google Nest Hello Video Doorbell only* + +The lower level Pub/Sub subscriber receives events in real time and internally fires `nest_event` events within Home Assistant: + +| Device Trigger | Pub/Sub Event | `nest_event` | +| -------------- | ----- | ------------- | +| Motion detected | [CameraMotion](https://developers.google.com/nest/device-access/traits/device/camera-motion#events) | `motion_detected` | +| Person detected | [CameraPerson](https://developers.google.com/nest/device-access/traits/device/camera-person#events) | `person_detected` | +| Sound detected | [CameraSound](https://developers.google.com/nest/device-access/traits/device/camera-sound#events) | `sound_detected` | +| Doorbell pressed | [DoorbellChime](https://developers.google.com/nest/device-access/traits/device/doorbell-chime#events) | `doorbell_chime` | # Legacy Works With Nest API diff --git a/source/images/integrations/nest/device_triggers.png b/source/images/integrations/nest/device_triggers.png new file mode 100644 index 0000000000000000000000000000000000000000..8cb5868c4ef71299409b392c9029dc25030670aa GIT binary patch literal 83881 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 p<&DLvz)!H) Date: Thu, 14 Jan 2021 10:12:06 +0100 Subject: [PATCH 027/106] Mention ISO 8601 (#16176) Removes ambiguity with an Unix/EPOCH timestamp --- source/_integrations/sensor.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/sensor.markdown b/source/_integrations/sensor.markdown index df539f89c5e..9e04f7c3db2 100644 --- a/source/_integrations/sensor.markdown +++ b/source/_integrations/sensor.markdown @@ -25,7 +25,7 @@ The way these sensors are displayed in the frontend can be modified in the [cust - **temperature**: Temperature in °C or °F. - **power**: Power in W or kW. - **pressure**: Pressure in hPa or mbar. -- **timestamp**: Datetime object or timestamp string. +- **timestamp**: Datetime object or timestamp string (ISO 8601). - **current**: Current in A. - **energy**: Energy in Wh or kWh. - **power_factor**: Power Factor in %. From 6e9cb0430fbd4f8551fd97741e21bd21a1b36e92 Mon Sep 17 00:00:00 2001 From: Tom Brien Date: Thu, 14 Jan 2021 11:55:16 +0000 Subject: [PATCH 028/106] Remove command line sensor hddtemp example (#16180) --- .../sensor.command_line.markdown | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/source/_integrations/sensor.command_line.markdown b/source/_integrations/sensor.command_line.markdown index 9340514a380..6629495ca39 100644 --- a/source/_integrations/sensor.command_line.markdown +++ b/source/_integrations/sensor.command_line.markdown @@ -60,26 +60,6 @@ json_attributes: In this section you find some real-life examples of how to use this sensor. -### Hard drive temperature - -There are several ways to get the temperature of your hard drive. A simple solution is to use [hddtemp](https://savannah.nongnu.org/projects/hddtemp/). - -```bash -hddtemp -n /dev/sda -``` - -To use this information, the entry for a command-line sensor in the `configuration.yaml` file will look like this. - -```yaml -# Example configuration.yaml entry -sensor: - - platform: command_line - name: HD Temperature - command: "hddtemp -n /dev/sda" - # If errors occur, make sure configuration file is encoded as UTF-8 - unit_of_measurement: "°C" -``` - ### CPU temperature Thanks to the [`proc`](https://en.wikipedia.org/wiki/Procfs) file system, various details about a system can be retrieved. Here the CPU temperature is of interest. Add something similar to your `configuration.yaml` file: From ca262e1e59035eefd10fae5609ff2b83e0a7be83 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 14 Jan 2021 19:22:15 +0000 Subject: [PATCH 029/106] 2021.1.2 --- _config.yml | 4 +-- .../_posts/2021-01-06-release-20211.markdown | 29 +++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/_config.yml b/_config.yml index 9280efc42a7..fc79f51919b 100644 --- a/_config.yml +++ b/_config.yml @@ -101,8 +101,8 @@ social: # Home Assistant release details current_major_version: 2021 current_minor_version: 1 -current_patch_version: 1 -date_released: 2021-01-09 +current_patch_version: 2 +date_released: 2021-01-14 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_posts/2021-01-06-release-20211.markdown b/source/_posts/2021-01-06-release-20211.markdown index 733f045cee0..fc07cc530b7 100644 --- a/source/_posts/2021-01-06-release-20211.markdown +++ b/source/_posts/2021-01-06-release-20211.markdown @@ -47,6 +47,7 @@ Enjoy the release! - [New Platforms](#new-platforms) - [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui) - [Release 2021.1.1 - January 9](#release-202111---january-9) +- [Release 2021.1.2 - January 14](#release-202112---january-14) - [If you need help...](#if-you-need-help) - [Breaking Changes](#breaking-changes) - [Farewell to the following](#farewell-to-the-following) @@ -174,6 +175,34 @@ The following integrations are now available via the Home Assistant UI: [light docs]: /integrations/light/ [myq docs]: /integrations/myq/ +## Release 2021.1.2 - January 14 + +- Update the Utility Meter sensor status on HA start ([@dgomes] - [#44765]) ([utility_meter docs]) +- Bump bimmer_connected to 0.7.14 ([@rikroe] - [#45086]) ([bmw_connected_drive docs]) +- Fix neato battery sensor not ready ([@Santobert] - [#44946]) ([neato docs]) +- Fallback to tag for any AfterShip tracking that have no checkpoints ([@ludeeus] - [#45053]) ([aftership docs]) +- Bump MyQ to 2.0.14 ([@ehendrix23] - [#45067]) ([myq docs]) +- Fix OpenWeatherMap forecast timestamp ([@spacegaier] - [#45124]) ([openweathermap docs]) + +[#44765]: https://github.com/home-assistant/core/pull/44765 +[#44946]: https://github.com/home-assistant/core/pull/44946 +[#45053]: https://github.com/home-assistant/core/pull/45053 +[#45067]: https://github.com/home-assistant/core/pull/45067 +[#45086]: https://github.com/home-assistant/core/pull/45086 +[#45124]: https://github.com/home-assistant/core/pull/45124 +[@Santobert]: https://github.com/Santobert +[@dgomes]: https://github.com/dgomes +[@ehendrix23]: https://github.com/ehendrix23 +[@ludeeus]: https://github.com/ludeeus +[@rikroe]: https://github.com/rikroe +[@spacegaier]: https://github.com/spacegaier +[aftership docs]: /integrations/aftership/ +[bmw_connected_drive docs]: /integrations/bmw_connected_drive/ +[myq docs]: /integrations/myq/ +[neato docs]: /integrations/neato/ +[openweathermap docs]: /integrations/openweathermap/ +[utility_meter docs]: /integrations/utility_meter/ + ## If you need help... ...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). From f6969b7895c5b091c492620db19626b807538d79 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 14 Jan 2021 22:21:04 +0000 Subject: [PATCH 030/106] Add blogpost --- .../2021-01-14-security-bulletin.markdown | 30 ++++++++++++++++++ .../blog/2021-01-security-bulletin/social.png | Bin 0 -> 109089 bytes 2 files changed, 30 insertions(+) create mode 100644 source/_posts/2021-01-14-security-bulletin.markdown create mode 100644 source/images/blog/2021-01-security-bulletin/social.png diff --git a/source/_posts/2021-01-14-security-bulletin.markdown b/source/_posts/2021-01-14-security-bulletin.markdown new file mode 100644 index 00000000000..5a62c2bfea1 --- /dev/null +++ b/source/_posts/2021-01-14-security-bulletin.markdown @@ -0,0 +1,30 @@ +--- +layout: post +title: "Security Bulletin" +description: "Kicking off 2021 slowly, with a nice and light release containing mainly fixes and tweaks." +date: 2021-01-14 00:00:00 +date_formatted: "January 14, 2021" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Public-Service-Announcement +og_image: /images/blog/2021-01-security-bulletin/social.png +--- + +![Attention please read](/images/blog/2021-01-security-bulletin/social.png) + +It has come to our attention that certain custom integrations have security issues and could potentially leak sensitive information. Home Assistant is not responsible for custom integrations and you use custom integrations at your own risk. + +The latest version of Home Assistant has extra protection to help secure your instance. + +**Update your Home Assistant instance as soon as possible.** + +To update Home Assistant, click on the Supervisor menu item to see if an update to 2021.1.2 (or newer) is available. If you do not see such an update yet, in the Supervisor, click on the System tab and click the “Reload” button at the bottom of the Supervisor card. After reloading the update should become available. + +If you don’t have the Supervisor menu item, follow the [update instructions](/docs/installation/updating/). + +**If you cannot update Home Assistant at this time, we strongly advise you to disable all custom integrations.** You can disable your custom integrations by renaming the `custom_components` folder inside your Home Assistant configuration folder to something else. Please be sure to restart Home Assistant after you’ve renamed it. + +If you need additional help with upgrading, we are happy to help you out on our [Discord chat](/join-chat/) server. + +Paulus diff --git a/source/images/blog/2021-01-security-bulletin/social.png b/source/images/blog/2021-01-security-bulletin/social.png new file mode 100644 index 0000000000000000000000000000000000000000..199a11ee9f2a74e8f9de0939ea4aa661979c91eb GIT binary patch literal 109089 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≥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 literal 0 HcmV?d00001 From 4de58caf89f1a4089a88d994d7f9e78b0b666f23 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 14 Jan 2021 22:24:07 +0000 Subject: [PATCH 031/106] Update description --- source/_posts/2021-01-14-security-bulletin.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2021-01-14-security-bulletin.markdown b/source/_posts/2021-01-14-security-bulletin.markdown index 5a62c2bfea1..a87ff524d47 100644 --- a/source/_posts/2021-01-14-security-bulletin.markdown +++ b/source/_posts/2021-01-14-security-bulletin.markdown @@ -1,7 +1,7 @@ --- layout: post title: "Security Bulletin" -description: "Kicking off 2021 slowly, with a nice and light release containing mainly fixes and tweaks." +description: "Update your Home Assistant instance as soon as possible." date: 2021-01-14 00:00:00 date_formatted: "January 14, 2021" author: Paulus Schoutsen From d41dc8461870d67d781c132e3cf75ae8912d512b Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Fri, 15 Jan 2021 00:04:23 +0100 Subject: [PATCH 032/106] Update release notes for 2021.1.2 --- source/_posts/2021-01-06-release-20211.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_posts/2021-01-06-release-20211.markdown b/source/_posts/2021-01-06-release-20211.markdown index fc07cc530b7..796ab812cf4 100644 --- a/source/_posts/2021-01-06-release-20211.markdown +++ b/source/_posts/2021-01-06-release-20211.markdown @@ -183,6 +183,7 @@ The following integrations are now available via the Home Assistant UI: - Fallback to tag for any AfterShip tracking that have no checkpoints ([@ludeeus] - [#45053]) ([aftership docs]) - Bump MyQ to 2.0.14 ([@ehendrix23] - [#45067]) ([myq docs]) - Fix OpenWeatherMap forecast timestamp ([@spacegaier] - [#45124]) ([openweathermap docs]) +- Add filtering ([@frenck] - [commit](https://github.com/home-assistant/core/commit/0bd2c13e261c7b3d96ba451c50f81dd3e659c5c9)) [#44765]: https://github.com/home-assistant/core/pull/44765 [#44946]: https://github.com/home-assistant/core/pull/44946 From db3f0ce4b54edf5d723c5807d4393c0b04b80ba9 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 15 Jan 2021 09:21:31 +0000 Subject: [PATCH 033/106] Embed playlist conference --- source/conference/index.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/conference/index.markdown b/source/conference/index.markdown index ec7aa59bae9..23e5b3e5dd2 100644 --- a/source/conference/index.markdown +++ b/source/conference/index.markdown @@ -20,10 +20,10 @@ After the talks, attendees will be able to join various sessions about different ## Watch it back -The conference is over! The live stream of the main stage is available below. All other videos will come online when we have time. +The conference is over! All talks have been [published online on YouTube](https://www.youtube.com/playlist?list=PLKsVm4cWHDQDGRXnybFUOLlcDWPsroGGB) and are also embedded below:

- +
## Keynotes & Talks schedule From 79773889e4ed8fbc0525b5b6ed98c3b913698169 Mon Sep 17 00:00:00 2001 From: jrel17 <59836304+jrel17@users.noreply.github.com> Date: Fri, 15 Jan 2021 13:13:28 +0100 Subject: [PATCH 034/106] Slightly refine wording in variables description (#16188) Refining the description of variables, e.g., link to scripts doc --- source/_docs/scripts.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/_docs/scripts.markdown b/source/_docs/scripts.markdown index b32a7c39881..96f7dc9346e 100644 --- a/source/_docs/scripts.markdown +++ b/source/_docs/scripts.markdown @@ -62,7 +62,7 @@ Scripts may also use a shortcut syntax for activating scenes instead of calling ## Variables -The variable command allows you to set/override variables that will be accessible by templates in actions after it. +The variables command allows you to set/override variables that will be accessible by templates in actions after it (see also [script variables] for how to define locally available variables). {% raw %} @@ -571,3 +571,4 @@ automation: [service calls page]: /getting-started/scripts-service-calls/ [conditions page]: /getting-started/scripts-conditions/ [shorthand-template]: /docs/scripts/conditions/#template-condition-shorthand-notation +[script variables]: /integrations/script/#-configuration-variables From b4fc080fc9aa39261160ecaa8c8888013d07aa50 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Jan 2021 13:21:18 +0100 Subject: [PATCH 035/106] Bump listen from 3.4.0 to 3.4.1 (#16187) Bumps [listen](https://github.com/guard/listen) from 3.4.0 to 3.4.1. - [Release notes](https://github.com/guard/listen/releases) - [Commits](https://github.com/guard/listen/compare/v3.4.0...v3.4.1) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 2e0f8a370db..2607f0731e1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -66,7 +66,7 @@ GEM kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) liquid (4.0.3) - listen (3.4.0) + listen (3.4.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.4.0) From 5d7258cfd8ca07c876d0255c74c429a17c0cc369 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Fri, 15 Jan 2021 14:41:01 +0100 Subject: [PATCH 036/106] 2021.1.3 --- _config.yml | 4 ++-- source/_posts/2021-01-06-release-20211.markdown | 12 ++++++++++++ source/_posts/2021-01-14-security-bulletin.markdown | 6 ++++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/_config.yml b/_config.yml index fc79f51919b..151e9e1cabf 100644 --- a/_config.yml +++ b/_config.yml @@ -101,8 +101,8 @@ social: # Home Assistant release details current_major_version: 2021 current_minor_version: 1 -current_patch_version: 2 -date_released: 2021-01-14 +current_patch_version: 3 +date_released: 2021-01-15 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_posts/2021-01-06-release-20211.markdown b/source/_posts/2021-01-06-release-20211.markdown index 796ab812cf4..342aca9f12a 100644 --- a/source/_posts/2021-01-06-release-20211.markdown +++ b/source/_posts/2021-01-06-release-20211.markdown @@ -48,6 +48,7 @@ Enjoy the release! - [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui) - [Release 2021.1.1 - January 9](#release-202111---january-9) - [Release 2021.1.2 - January 14](#release-202112---january-14) +- [Release 2021.1.3 - January 15](#release-202113---january-15) - [If you need help...](#if-you-need-help) - [Breaking Changes](#breaking-changes) - [Farewell to the following](#farewell-to-the-following) @@ -204,6 +205,17 @@ The following integrations are now available via the Home Assistant UI: [openweathermap docs]: /integrations/openweathermap/ [utility_meter docs]: /integrations/utility_meter/ +## Release 2021.1.3 - January 15 + +- Extend filter and filter tests ([@frenck] - [#45179]) ([http docs]) +- Bump aioHTTP 3.7.3 - YARL 1.6.3 ([@pvizeli] - [#45180]) + +[#45179]: https://github.com/home-assistant/core/pull/45179 +[#45180]: https://github.com/home-assistant/core/pull/45180 +[@frenck]: https://github.com/frenck +[@pvizeli]: https://github.com/pvizeli +[http docs]: /integrations/http/ + ## If you need help... ...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). diff --git a/source/_posts/2021-01-14-security-bulletin.markdown b/source/_posts/2021-01-14-security-bulletin.markdown index a87ff524d47..238b80e7d5c 100644 --- a/source/_posts/2021-01-14-security-bulletin.markdown +++ b/source/_posts/2021-01-14-security-bulletin.markdown @@ -15,11 +15,11 @@ og_image: /images/blog/2021-01-security-bulletin/social.png It has come to our attention that certain custom integrations have security issues and could potentially leak sensitive information. Home Assistant is not responsible for custom integrations and you use custom integrations at your own risk. -The latest version of Home Assistant has extra protection to help secure your instance. +The latest version of Home Assistant Core has extra protection to help secure your instance. **Update your Home Assistant instance as soon as possible.** -To update Home Assistant, click on the Supervisor menu item to see if an update to 2021.1.2 (or newer) is available. If you do not see such an update yet, in the Supervisor, click on the System tab and click the “Reload” button at the bottom of the Supervisor card. After reloading the update should become available. +To update Home Assistant, click on the Supervisor menu item to see if an update to 2021.1.3 (or newer) is available. If you do not see such an update yet, in the Supervisor, click on the System tab and click the “Reload” button at the bottom of the Supervisor card. After reloading the update should become available. If you don’t have the Supervisor menu item, follow the [update instructions](/docs/installation/updating/). @@ -28,3 +28,5 @@ If you don’t have the Supervisor menu item, follow the [update instructions](/ If you need additional help with upgrading, we are happy to help you out on our [Discord chat](/join-chat/) server. Paulus + +**Edit: 15 January 2021**: Blog post updated to state 2021.1.3, which added some additional check. From fd5a1be16308c0174e92b1e4624a56649d284c97 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Fri, 15 Jan 2021 14:41:35 +0100 Subject: [PATCH 037/106] Typo: check -> checks --- source/_posts/2021-01-14-security-bulletin.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2021-01-14-security-bulletin.markdown b/source/_posts/2021-01-14-security-bulletin.markdown index 238b80e7d5c..e0838198e33 100644 --- a/source/_posts/2021-01-14-security-bulletin.markdown +++ b/source/_posts/2021-01-14-security-bulletin.markdown @@ -29,4 +29,4 @@ If you need additional help with upgrading, we are happy to help you out on our Paulus -**Edit: 15 January 2021**: Blog post updated to state 2021.1.3, which added some additional check. +**Edit: 15 January 2021**: Blog post updated to state 2021.1.3, which added some additional checks. From ec85500da3179d64aefe475ee0a5c8fa1a2f6947 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Fri, 15 Jan 2021 19:04:20 +0100 Subject: [PATCH 038/106] Clarify state trigger functionality (#16184) Co-authored-by: Franck Nijhof --- source/_docs/automation/trigger.markdown | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index 443349800f6..c6ace8ed612 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -151,7 +151,8 @@ The `for` template(s) will be evaluated when an entity changes as specified. ### State trigger -Fires when the state of any of given entities changes. If only `entity_id` is given trigger will fire for all state changes, even if only state attributes change. +Fires when the state of any of given entities changes. If only `entity_id` is given, the trigger will fire for all state changes, even if only state attributes change. +If only one of `from_state` or `to_state` are given, the trigger will fire on any matching state change, but not if only attributes change.
@@ -163,13 +164,28 @@ The values you see in your overview will often not be the same as the actual sta automation: trigger: platform: state - entity_id: device_tracker.paulus, device_tracker.anne_therese + entity_id: + - device_tracker.paulus + - device_tracker.anne_therese # Optional from: "not_home" # Optional to: "home" ``` +It's possible to give a list of from_states or to_states: + +```yaml +automation: + trigger: + platform: state + entity_id: vacuum.test + from: + - "cleaning" + - "returning" + to: "error" +``` + #### Holding a state You can use `for` to have the state trigger only fire if the state holds for some time. From 4f98d327a0947c4a3b59940467476dba83e37910 Mon Sep 17 00:00:00 2001 From: Grant Emsley Date: Fri, 15 Jan 2021 13:26:06 -0500 Subject: [PATCH 039/106] total_download should say total_upload (#16178) --- source/_integrations/startca.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/startca.markdown b/source/_integrations/startca.markdown index 9b77092a6a8..43e24914175 100644 --- a/source/_integrations/startca.markdown +++ b/source/_integrations/startca.markdown @@ -73,7 +73,7 @@ monitored_conditions: description: Total bandwidth (download and upload sum calculation) used during the unlimited period (gigabytes). total_download: description: Total bandwidth download (Grace + Used) (gigabytes). - total_download: + total_upload: description: Total bandwidth upload (Grace + Used) (gigabytes). used_remaining: description: Remaining bandwidth calculated from used and supplied total bandwidth (gigabytes). From 9343d9d50cafcdb6bd169532a7879e7b30b860c7 Mon Sep 17 00:00:00 2001 From: Philip Allgaier Date: Fri, 15 Jan 2021 19:34:30 +0100 Subject: [PATCH 040/106] Small tweaks to header/footer for cards (#16174) Co-authored-by: Franck Nijhof --- source/lovelace/header-footer.markdown | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/lovelace/header-footer.markdown b/source/lovelace/header-footer.markdown index e0dcd885f3a..5e45a00c7b4 100644 --- a/source/lovelace/header-footer.markdown +++ b/source/lovelace/header-footer.markdown @@ -26,7 +26,7 @@ type: type: string image: required: true - description: The URL of an image. + description: The URL of an image type: string tap_action: required: false @@ -65,15 +65,15 @@ entities: keys: entity: required: true - description: The entity to render. + description: The entity to render type: string icon: required: false - description: Override the entity icon. + description: Override the entity icon type: string image: required: false - description: Override the entity image. + description: Override the entity image type: string name: required: false @@ -100,11 +100,11 @@ footer: {% configuration header-footer %} entity: required: true - description: Entity id of `sensor` domain + description: Entity ID of `sensor` domain type: string detail: required: false - description: Detail of the graph `1` or `2`, `1` equals one point/hour, `2` equals six points/hour + description: "Detail level of the graph: `1` or `2` (`1` = one point/hour, `2` = six points/hour)" type: integer default: 1 hours_to_show: From 38806285e44b0a49594dde992cbe148200a693d1 Mon Sep 17 00:00:00 2001 From: pvmil Date: Fri, 15 Jan 2021 19:42:01 +0100 Subject: [PATCH 041/106] Add doc on home-assistant plugin (#16161) Co-authored-by: Franck Nijhof --- source/_integrations/doods.markdown | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/_integrations/doods.markdown b/source/_integrations/doods.markdown index b376f705a62..029094d6650 100644 --- a/source/_integrations/doods.markdown +++ b/source/_integrations/doods.markdown @@ -12,7 +12,10 @@ The `doods` image processing integration allows you to detect and recognize obje ## Setup -You need to have DOODS running somewhere. It's easiest to run as a [Docker](https://hub.docker.com/r/snowzach/doods) container. +The DOODS software needs to be running before this integration can be used. Options to run the DOODS software: + +- Run as [Home Assistant add-on](https://github.com/snowzach/hassio-addons) +- Run as a [Docker container](https://hub.docker.com/r/snowzach/doods) ## Configuration From 8065ed25fbee2ad65de25c82adbe027406742180 Mon Sep 17 00:00:00 2001 From: Jeff Koenig Date: Fri, 15 Jan 2021 13:47:23 -0500 Subject: [PATCH 042/106] Add an nest event example automation (#16131) --- source/_integrations/nest.markdown | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/source/_integrations/nest.markdown b/source/_integrations/nest.markdown index 4e7ccf75fa3..3857525a5c1 100644 --- a/source/_integrations/nest.markdown +++ b/source/_integrations/nest.markdown @@ -312,6 +312,28 @@ The lower level Pub/Sub subscriber receives events in real time and internally f | Sound detected | [CameraSound](https://developers.google.com/nest/device-access/traits/device/camera-sound#events) | `sound_detected` | | Doorbell pressed | [DoorbellChime](https://developers.google.com/nest/device-access/traits/device/doorbell-chime#events) | `doorbell_chime` | +### Example + +This automation will trigger when a `nest_event` event type with a type of `camera_motion` is received from the specified `device_id`. + +```yaml +alias: motion alert +trigger: + - platform: event + event_type: nest_event + event_data: + device_id: YOUR_DEVICE_ID + type: camera_motion +action: + - service: notify.mobile_app_pixel_2 + data: + title: motion detected + message: front door motion detected + data: + image: /api/camera_proxy/camera.front_door +``` + +The action in this section uses the [Android Companion App](https://companion.home-assistant.io/docs/notifications/notifications-basic/) and the camera proxy to send an notification with a snapshot from the camera. # Legacy Works With Nest API From 99689135ec7d062dc0a7bc22919d1d4bd27db42f Mon Sep 17 00:00:00 2001 From: einschmidt <30439938+einschmidt@users.noreply.github.com> Date: Sat, 16 Jan 2021 12:18:08 +0100 Subject: [PATCH 043/106] Add odroid-n2 (#16196) `odroid-n2` was missing in the list of supported images. Added `odroid-n2`. --- source/_integrations/version.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/version.markdown b/source/_integrations/version.markdown index 8a19fc59dfa..50bcc7be6df 100644 --- a/source/_integrations/version.markdown +++ b/source/_integrations/version.markdown @@ -50,7 +50,7 @@ source: ### Supported images for Home Assistant -`default`, `qemux86`, `qemux86-64`, `qemuarm`, `qemuarm-64`, `intel-nuc`, `raspberrypi`, `raspberrypi2`, `raspberrypi3`, `raspberrypi3-64`, `raspberrypi4`, `raspberrypi4-64`, `tinker`, `odroid-c2`, `odroid-xu` +`default`, `qemux86`, `qemux86-64`, `qemuarm`, `qemuarm-64`, `intel-nuc`, `raspberrypi`, `raspberrypi2`, `raspberrypi3`, `raspberrypi3-64`, `raspberrypi4`, `raspberrypi4-64`, `tinker`, `odroid-c2`, `odroid-n2`, `odroid-xu` ## Alternatives for showing local version From b7f926c7c01a0a835a73b57805f7c23a3ded892d Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 16 Jan 2021 14:41:49 +0100 Subject: [PATCH 044/106] Clarify auth provider text (#16195) --- source/_docs/authentication/providers.markdown | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/source/_docs/authentication/providers.markdown b/source/_docs/authentication/providers.markdown index dc7ff68e8fb..7d3f3df1943 100644 --- a/source/_docs/authentication/providers.markdown +++ b/source/_docs/authentication/providers.markdown @@ -3,25 +3,19 @@ title: "Authentication Providers" description: "Guide on configuring different auth providers." --- -When you log in, an _auth provider_ checks your credentials to make sure you are an authorized user. - -
- -The authentication system has been changed recently. Previously there was a single "_API password_" to log in, but you can now choose from several auth providers.

- -To make the transition from API passwords easier, we've added a _Legacy API Password_ auth provider. This is enabled by default if you have an API password configured so you will still be able to log in. - -However, this feature is deprecated and will be removed in a future release so you should set up one of the newer authentication techniques. - +
+ This is an advanced feature.
+When you log in, an _auth provider_ checks your credentials to make sure you are an authorized user. + ## Configuring auth providers
Home Assistant automatically configures the standard auth providers so you don't need to specify `auth_providers` in your `configuration.yaml` file unless you are configuring more than one. Specifying `auth_providers` will disable all auth providers that are not listed, so you could reduce your security or create difficulties logging in if it is not configured correctly. -This means that if you decide to use `trusted_networks` as your `auth_provider` there won't be a way to authenticate for a device outside of your listed trusted network. To overcome this ensure you add the default `auth_provider``type: homeassistant` back in manually. This will then present you with the default auth login screen when trusted network authentication fails as expected from outside your LAN. +If you decide to use `trusted_networks` as your `auth_provider` there won't be a way to authenticate for a device outside of your listed trusted network. To overcome this ensure you add the default `auth_provider``type: homeassistant` back in manually. This will then present you with the default auth login screen when trusted network authentication fails as expected from outside your LAN.
From 142813b6c1211ed8560b8c85c19b9eb4abd58cc2 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Sat, 16 Jan 2021 21:49:17 +0100 Subject: [PATCH 045/106] Add alert banner (#16199) --- sass/custom/_layout.scss | 6 +++++- sass/oscailte/base/_navigation.scss | 12 +++++++++-- source/_layouts/default.html | 32 +++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 3 deletions(-) diff --git a/sass/custom/_layout.scss b/sass/custom/_layout.scss index 0d3a6f7a682..dedacad4c75 100644 --- a/sass/custom/_layout.scss +++ b/sass/custom/_layout.scss @@ -29,7 +29,7 @@ html { height: calc(100% - 68px);; margin-top: 68px; overflow-y: scroll; - padding-top: 32px; + padding-top: 82px; width: 100%; } @@ -43,6 +43,10 @@ html { } } +.alert-banner { + height: 50px; + } + .site-header { position: fixed; width: 100%; diff --git a/sass/oscailte/base/_navigation.scss b/sass/oscailte/base/_navigation.scss index acbda0859ae..fd48dc63717 100644 --- a/sass/oscailte/base/_navigation.scss +++ b/sass/oscailte/base/_navigation.scss @@ -69,7 +69,7 @@ header .grid { .menu { margin: 0; - top: 68px; + top: 138px; } .menu li a{ @@ -116,9 +116,17 @@ header .grid { padding: 15px 15px 15px 25px; } + .alert-banner { + height: 70px !important; + } + + .page-content { + padding-top: 102px; + } + .toggle { position: absolute; - top: 15px; + top: 85px; right: 10px; } diff --git a/source/_layouts/default.html b/source/_layouts/default.html index 15d7d57be4b..b929b9ffd03 100644 --- a/source/_layouts/default.html +++ b/source/_layouts/default.html @@ -2,6 +2,38 @@
From 3a0ac56282239506e7cca0a7998ef6806561566f Mon Sep 17 00:00:00 2001 From: Adam Outler Date: Sat, 16 Jan 2021 16:21:11 -0500 Subject: [PATCH 046/106] Update enable_i2c.markdown (#16073) Co-authored-by: Franck Nijhof --- source/hassio/enable_i2c.markdown | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/source/hassio/enable_i2c.markdown b/source/hassio/enable_i2c.markdown index a4542745b08..ed83a1571e2 100644 --- a/source/hassio/enable_i2c.markdown +++ b/source/hassio/enable_i2c.markdown @@ -12,7 +12,7 @@ You will need: - SD card reader - SD card with Home Assistant Operating System flashed on it -### Step 1 - Access the Home Assistant OS boot partition +### Step 1 - Access the Home Assistant Operating System boot partition Shutdown/turn-off your Home Assistant installation and unplug the SD card. Plug the SD card into an SD card reader and find a drive/file system named @@ -44,3 +44,24 @@ and make sure the first partition is available. present at boot time. The I2C devices should now be present under /dev. + +## From Home Assistant Operating System Terminal + +Alternatively, by attaching a keyboard and screen to your device, you can access the physical terminal to the Home Assistant Operating System. + +You can enabled i2c via this terminal: + +- Login as `root`. +- Type `login` and press enter to access the shell. +- Type the following to enable i2c, you may need to replace `sda1` with `sdb1` or `mmcblk0p1` depending on your platform: + + ```shell + mkdir /tmp/mnt + mount /dev/sda1 /tmp/mnt + mkdir -p /tmp/mnt/CONFIG/modules + echo -ne i2c-dev>/tmp/mnt/CONFIG/modules/rpi-i2c.conf + echo dtparam=i2c_vc=on >> /tmp/mnt/CONFIG/config.txt + echo dtparam=i2c_arm=on >> /tmp/mnt/CONFIG/config.txt + sync + reboot + ``` From b3ada55584780cdac4c8d1c37e3c7b8474561a68 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 16 Jan 2021 22:34:15 +0100 Subject: [PATCH 047/106] Mention Python 3.7 in bulletin (#16201) --- source/_posts/2021-01-14-security-bulletin.markdown | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/_posts/2021-01-14-security-bulletin.markdown b/source/_posts/2021-01-14-security-bulletin.markdown index e0838198e33..c82d8c9a169 100644 --- a/source/_posts/2021-01-14-security-bulletin.markdown +++ b/source/_posts/2021-01-14-security-bulletin.markdown @@ -19,14 +19,15 @@ The latest version of Home Assistant Core has extra protection to help secure yo **Update your Home Assistant instance as soon as possible.** -To update Home Assistant, click on the Supervisor menu item to see if an update to 2021.1.3 (or newer) is available. If you do not see such an update yet, in the Supervisor, click on the System tab and click the “Reload” button at the bottom of the Supervisor card. After reloading the update should become available. - -If you don’t have the Supervisor menu item, follow the [update instructions](/docs/installation/updating/). +To update Home Assistant, click on the Supervisor menu item to see if an update to 2021.1.3 (or newer) is available. If you don’t have the Supervisor menu item, follow the [update instructions](/docs/installation/updating/). Home Assistant 2021.1.3 is still compatible with Python 3.7 and an upgrade is possible. **If you cannot update Home Assistant at this time, we strongly advise you to disable all custom integrations.** You can disable your custom integrations by renaming the `custom_components` folder inside your Home Assistant configuration folder to something else. Please be sure to restart Home Assistant after you’ve renamed it. If you need additional help with upgrading, we are happy to help you out on our [Discord chat](/join-chat/) server. +We will provide more details about impacted custom integrations in the future. + Paulus **Edit: 15 January 2021**: Blog post updated to state 2021.1.3, which added some additional checks. +**Edit: 16 January 2021**: Blog post updated to remove supervisor reload instructions, as latest version is now generally available. Added note that Python 3.7 is still supported. From e880c1b8ad5e535b45338aec6f5278601d6a8f9c Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 16 Jan 2021 22:08:36 +0100 Subject: [PATCH 048/106] Release 2021.1.4 --- _config.yml | 4 ++-- .../_posts/2021-01-06-release-20211.markdown | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/_config.yml b/_config.yml index 151e9e1cabf..6cece625dac 100644 --- a/_config.yml +++ b/_config.yml @@ -101,8 +101,8 @@ social: # Home Assistant release details current_major_version: 2021 current_minor_version: 1 -current_patch_version: 3 -date_released: 2021-01-15 +current_patch_version: 4 +date_released: 2021-01-16 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_posts/2021-01-06-release-20211.markdown b/source/_posts/2021-01-06-release-20211.markdown index 342aca9f12a..19a90c2e565 100644 --- a/source/_posts/2021-01-06-release-20211.markdown +++ b/source/_posts/2021-01-06-release-20211.markdown @@ -49,6 +49,7 @@ Enjoy the release! - [Release 2021.1.1 - January 9](#release-202111---january-9) - [Release 2021.1.2 - January 14](#release-202112---january-14) - [Release 2021.1.3 - January 15](#release-202113---january-15) +- [Release 2021.1.4 - January 16](#release-202114---january-16) - [If you need help...](#if-you-need-help) - [Breaking Changes](#breaking-changes) - [Farewell to the following](#farewell-to-the-following) @@ -216,6 +217,26 @@ The following integrations are now available via the Home Assistant UI: [@pvizeli]: https://github.com/pvizeli [http docs]: /integrations/http/ +## Release 2021.1.4 - January 16 + +- Fix Home Connect ambient color ([@Sjack-Sch] - [#45038]) ([home_connect docs]) +- Fix HomeKit climate integration for devices with a single set point in Heat_Cool mode. ([@thevoltagesource] - [#45065]) ([homekit_controller docs]) +- Fix all forecast datetime values in OpenWeatherMap ([@spacegaier] - [#45202]) ([openweathermap docs]) +- Bump up ZHA dependency ([@Adminiuga] - [#45230]) ([zha docs]) + +[#45038]: https://github.com/home-assistant/core/pull/45038 +[#45065]: https://github.com/home-assistant/core/pull/45065 +[#45202]: https://github.com/home-assistant/core/pull/45202 +[#45230]: https://github.com/home-assistant/core/pull/45230 +[@Adminiuga]: https://github.com/Adminiuga +[@Sjack-Sch]: https://github.com/Sjack-Sch +[@spacegaier]: https://github.com/spacegaier +[@thevoltagesource]: https://github.com/thevoltagesource +[home_connect docs]: /integrations/home_connect/ +[homekit_controller docs]: /integrations/homekit_controller/ +[openweathermap docs]: /integrations/openweathermap/ +[zha docs]: /integrations/zha/ + ## If you need help... ...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). From 001259d2b47dd6ad72e5edce7b62b5a8792c60da Mon Sep 17 00:00:00 2001 From: Milan Meulemans Date: Sun, 17 Jan 2021 00:08:44 +0100 Subject: [PATCH 049/106] Change NextTracks F-Droid information (#16203) NextTracks is available from F-Droid. Removed "Soon" and changed the URL. --- source/_integrations/owntracks.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/owntracks.markdown b/source/_integrations/owntracks.markdown index d96ab5185a9..1d39406b0e1 100644 --- a/source/_integrations/owntracks.markdown +++ b/source/_integrations/owntracks.markdown @@ -23,7 +23,7 @@ To configure OwnTracks, you must set it up via the integrations panel in the con ### Configuring the app - Android -Install [OwnTracks](https://play.google.com/store/apps/details?id=org.owntracks.android) or [NextTracks](https://codeberg.org/nexttracks/android/releases) (Soon available from [F-Droid](https://gitlab.com/fdroid/fdroiddata/-/merge_requests/6831)) application for Android. +Install [OwnTracks](https://play.google.com/store/apps/details?id=org.owntracks.android) or [NextTracks](https://codeberg.org/nexttracks/android/releases) (Available from [F-Droid](https://f-droid.org/packages/org.nexttracks.android)) application for Android. In the app, open the sidebar and click on preferences, then on the connection. Change the following settings: From b147681e38a1bb33451b623056f30ce7bcf5a7da Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sun, 17 Jan 2021 12:30:05 +0100 Subject: [PATCH 050/106] Add remark about limited featureset on varying MPD implementations (#16211) --- source/_integrations/mpd.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/mpd.markdown b/source/_integrations/mpd.markdown index c39ef025465..56599b910b3 100644 --- a/source/_integrations/mpd.markdown +++ b/source/_integrations/mpd.markdown @@ -61,4 +61,4 @@ relaxdeck: volume_level: 0.60 ``` -This platform works with [Music Player Daemon](https://www.musicpd.org/) and [mopidy](https://www.mopidy.com/) with [Mopidy-MPD](https://mopidy.com/ext/mpd/) as used by [Pi MusicBox](https://www.pimusicbox.com/). +This platform works with [Music Player Daemon](https://www.musicpd.org/) and [mopidy](https://www.mopidy.com/) with [Mopidy-MPD](https://mopidy.com/ext/mpd/) as used by [Pi MusicBox](https://www.pimusicbox.com/). While all of these rely on the common MPD protocol, not all implementations support all features, especially with regard to album artwork, embedded artwork and volume control. The platform will fall back gracefully if support isn't detected. From 6b0aad07fd1afdcb424a7fbe849a3ac09d701328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diefferson=20Koderer=20M=C3=B4ro?= Date: Sun, 17 Jan 2021 08:34:07 -0300 Subject: [PATCH 051/106] =?UTF-8?q?=F0=9F=93=9D=20Remove=20logo=20of=20QVR?= =?UTF-8?q?=20Pro=20(#16208)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/_integrations/qvr_pro.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/source/_integrations/qvr_pro.markdown b/source/_integrations/qvr_pro.markdown index 9b6110a7529..76359e98272 100644 --- a/source/_integrations/qvr_pro.markdown +++ b/source/_integrations/qvr_pro.markdown @@ -1,7 +1,6 @@ --- title: QVR Pro description: Instructions on how to integrate QVR Pro within Home Assistant. -logo: qvr_pro.png ha_category: - Camera ha_iot_class: Local Polling From 10539f96c1a4806108ebb0e57e00d51fd4eed44a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diefferson=20Koderer=20M=C3=B4ro?= Date: Sun, 17 Jan 2021 08:36:11 -0300 Subject: [PATCH 052/106] =?UTF-8?q?=F0=9F=93=9D=20Remove=20logo=20of=20Ras?= =?UTF-8?q?pyRFM=20(#16207)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/_integrations/raspyrfm.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/source/_integrations/raspyrfm.markdown b/source/_integrations/raspyrfm.markdown index bd9e5dfb238..0e18edd904f 100644 --- a/source/_integrations/raspyrfm.markdown +++ b/source/_integrations/raspyrfm.markdown @@ -1,7 +1,6 @@ --- title: RaspyRFM description: Instructions on how to integrate RaspyRFM switches into Home Assistant. -logo: seegelsysteme.png ha_category: - Switch ha_release: 0.85 From fef445bd3d23f504dce8e79ca13e39fb98dbad00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diefferson=20Koderer=20M=C3=B4ro?= Date: Sun, 17 Jan 2021 08:45:25 -0300 Subject: [PATCH 053/106] =?UTF-8?q?=F0=9F=93=9D=20Remove=20logo=20of=20Ser?= =?UTF-8?q?ial=20Particulate=20Matter=20(#16204)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/_integrations/serial_pm.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/source/_integrations/serial_pm.markdown b/source/_integrations/serial_pm.markdown index f5848d33bba..e26f94e34e8 100644 --- a/source/_integrations/serial_pm.markdown +++ b/source/_integrations/serial_pm.markdown @@ -1,7 +1,6 @@ --- title: Serial Particulate Matter description: Instructions on how to integrate particulate matter (dust) sensors with Home Assistant. -logo: serial_pm.png ha_category: - DIY ha_release: 0.26 From 61b0c723d030b46781301455620b9b87ece5ce3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diefferson=20Koderer=20M=C3=B4ro?= Date: Sun, 17 Jan 2021 10:39:27 -0300 Subject: [PATCH 054/106] =?UTF-8?q?=F0=9F=93=9D=20Remove=20logo=20of=20SCS?= =?UTF-8?q?Gate=20(#16205)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/_integrations/scsgate.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/source/_integrations/scsgate.markdown b/source/_integrations/scsgate.markdown index fd763b674cf..3cc2120ee39 100644 --- a/source/_integrations/scsgate.markdown +++ b/source/_integrations/scsgate.markdown @@ -1,7 +1,6 @@ --- title: SCSGate description: Instructions on how to integrate SCSGate into Home Assistant. -logo: bus_scs.png ha_category: - Hub - Cover From 9d6d11473c107d31fffa65d59445125d114351f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diefferson=20Koderer=20M=C3=B4ro?= Date: Sun, 17 Jan 2021 13:12:40 -0300 Subject: [PATCH 055/106] =?UTF-8?q?=F0=9F=93=9D=20Remove=20logo=20of=20PJL?= =?UTF-8?q?ink=20(#16212)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/_integrations/pjlink.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/source/_integrations/pjlink.markdown b/source/_integrations/pjlink.markdown index 415ed9f8d05..079a1ce3f8d 100644 --- a/source/_integrations/pjlink.markdown +++ b/source/_integrations/pjlink.markdown @@ -1,7 +1,6 @@ --- title: PJLink description: Instructions on how to integrate PJLink enabled projectors into Home Assistant. -logo: pjlink.png ha_category: - Media Player ha_release: 0.76 From 53e61b17154fa9123b030663e9168377e91e0ca0 Mon Sep 17 00:00:00 2001 From: Philip Allgaier Date: Mon, 18 Jan 2021 03:10:37 +0100 Subject: [PATCH 056/106] Add note about default action override (#16218) Co-authored-by: Franck Nijhof --- source/lovelace/actions.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/lovelace/actions.markdown b/source/lovelace/actions.markdown index 78f6c90aea8..bd5e9d3aa43 100644 --- a/source/lovelace/actions.markdown +++ b/source/lovelace/actions.markdown @@ -35,7 +35,7 @@ tap_action: required: true description: "Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `url`, `none`)" type: string - default: "`toggle`" + default: "`toggle` (some cards overwrite default to `more-info` if the provided entity cannot be toggled)" navigation_path: required: false description: "Path to navigate to (e.g., `/lovelace/0/`) when `action` defined as `navigate`" From 720d097305b2a4ce87c4a4ab48d60c160b88e70a Mon Sep 17 00:00:00 2001 From: Philip Allgaier Date: Mon, 18 Jan 2021 14:41:35 +0100 Subject: [PATCH 057/106] Adjust `entities` special row example (#16219) --- source/_lovelace/entities.markdown | 43 +++++++++++++----- .../lovelace/lovelace_entity_row_special.jpg | Bin 0 -> 36227 bytes 2 files changed, 32 insertions(+), 11 deletions(-) create mode 100644 source/images/lovelace/lovelace_entity_row_special.jpg diff --git a/source/_lovelace/entities.markdown b/source/_lovelace/entities.markdown index 2c7d8fdd550..28688842429 100644 --- a/source/_lovelace/entities.markdown +++ b/source/_lovelace/entities.markdown @@ -213,7 +213,7 @@ conditions: type: string row: required: true - description: Row to display if all conditions match. + description: Row to display if all conditions match. Can be any of the various supported rows described on this page. type: map {% endconfiguration %} @@ -334,7 +334,7 @@ name: ## Examples -Entity rows: +### Entity rows ```yaml type: entities @@ -352,7 +352,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 explicitely specify a label / name. @@ -375,25 +375,46 @@ entities: name: Dining Ceiling ``` -Other special rows: +### Other special rows + +

+Screenshot of other special rows +Screenshot of other special rows. +

```yaml type: entities title: Entities card sample -show_header_toggle: true entities: - - type: call-service + - type: button icon: mdi:power - name: Bed light + name: Bed light transition action_name: Toggle light - service: light.toggle - service_data: - entity_id: light.bed_light + tap_action: + type: call-service + service: light.toggle + service_data: + entity_id: light.bed_light + transition: 10 - type: divider - type: attribute entity: sun.sun attribute: elevation - name: Elevation + name: Sun elevation + prefix: '~' + suffix: Units + - type: conditional + conditions: + - entity: sun.sun + state: above_horizon + row: + entity: sun.sun + type: attribute + attribute: azimuth + icon: mdi:angle-acute + name: Sun azimuth + - type: section + label: Section example - type: weblink name: Home Assistant url: https://www.home-assistant.io/ diff --git a/source/images/lovelace/lovelace_entity_row_special.jpg b/source/images/lovelace/lovelace_entity_row_special.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fc9c3e643a5ee6591653f78f8452ceefe27e6b62 GIT binary patch literal 36227 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�oWr6KiM)TJEi8;vo^~ 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 Date: Mon, 18 Jan 2021 11:05:21 -0300 Subject: [PATCH 058/106] Fix command and change to script format (#16217) Resolve: #16150 --- source/_integrations/cast.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/cast.markdown b/source/_integrations/cast.markdown index 2fe9861df4f..6ebdcab96cb 100644 --- a/source/_integrations/cast.markdown +++ b/source/_integrations/cast.markdown @@ -124,7 +124,7 @@ media_player: type: list keys: uuid: - description: UUID of a Cast device to add to Home Assistant. Use only if you don't want to add all available devices. The device won't be added until discovered through mDNS. In order to find the UUID for your device use a mDNS browser or advanced users can use the following Python command (adjust friendly names as required) - python3 -c "import pychromecast; print(pychromecast.get_listed_chromecasts(friendly_names=["Living Room TV", "Bedroom TV", "Office Chromecast"]))" + description: UUID of a Cast device to add to Home Assistant. Use only if you don't want to add all available devices. The device won't be added until discovered through mDNS. In order to find the UUID for your device use a mDNS browser or advanced users can use the following Python command (adjust friendly names as required) - `python3 -c "import pychromecast; print(pychromecast.get_listed_chromecasts(friendly_names=['Living Room TV', 'Bedroom TV', 'Office Chromecast']))"` required: false type: string ignore_cec: From a87c102798c50480c0f53d2ff76faf556578b8ff Mon Sep 17 00:00:00 2001 From: bart-roos Date: Mon, 18 Jan 2021 15:24:21 +0100 Subject: [PATCH 059/106] Update egardia.markdown (#16220) Disabling the XMPP server seems to be required for the GATE-03 system before it starts to communicate to the reporting server at all. --- source/_integrations/egardia.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/egardia.markdown b/source/_integrations/egardia.markdown index 4b5e3f82333..2a924b0b312 100644 --- a/source/_integrations/egardia.markdown +++ b/source/_integrations/egardia.markdown @@ -98,7 +98,7 @@ There seem to be multiple versions of software running on GATE-02 devices; we ha ## Advanced configuration 1. Log in to your alarm system's control panel. You will need to access http://[IP of your control panel]. You know this already since you need it in the basic configuration from above. Log in to the control panel with your Egardia/Woonveilig username and password. -2. Once logged in, go to *System Settings*, *Report* and change the Server Address for your primary server to the IP or hostname of your Home Assistant machine. You can leave the port number set to 52010 or change it to anything you like. **Make sure to change the settings of the primary server otherwise the messages will not come through. Note that this will limit (or fully stop) the number of alarm messages you will get through Egardia's / Woonveilig services.** Maybe, that is just what you want. Make sure to save your settings by selecting 'OK'. +2. Once logged in, go to *System Settings*, *Report* and change the Server Address for your primary server to the IP or hostname of your Home Assistant machine. You can leave the port number set to 52010 or change it to anything you like. **Make sure to change the settings of the primary server otherwise the messages will not come through. Note that this will limit (or fully stop) the number of alarm messages you will get through Egardia's / Woonveilig services.** Maybe, that is just what you want. Make sure to save your settings by selecting 'OK'. **If the system support XMPP, disable XMPP by invalidating the configuration in the XMPP menu (for example by changing the user name). This is required for recent firmwares of the GATE-03 system as it does not use the Reporting server at all in the case of a valid XMPP configuration.** 3. The Egardia integration relies on capturing the status codes that your alarm emits when something happens (status change or trigger). These codes will be unique for every situation - i.e., the code emitted by the alarm when a sensor is triggered is unique to that sensor. Also, if you have multiple users or remotes, each remote has unique codes that are emitted by the alarm when status is changed using that remote or by that user. For the Egardia integration to work correctly you will need to capture the codes. To do this, on your Home Assistant machine run `$ sudo python3 egardiaserver.py`. Refer to the [python-egardia repository](https://github.com/jeroenterheerdt/python-egardia) for detailed documentation on parameters. This will receive status codes from your alarm control panel and display them. Record the codes shown as well as the status they relate to (see step 4 below). Make sure to change the status of your alarm to all states (disarm, arm, home) by all means possible (all users, remotes, web login, app) as well as trigger the alarm in all ways possible to get 100% coverage of all the codes the alarm system generates. You will need to run this script once and stop it once you have captured all the possible codes. Also, if you ever add users, remotes or sensors to your alarm system, make sure to re-run the script to capture the extra codes so you can update your configuration (see step 4 below). **For comfort, before triggering the alarm it might be good to disable the siren temporarily (can be done in Panel Settings).** 4. Once you have the codes, update your `configuration.yaml`: ```yaml From 250855f80ab414d23cae549e08c8975f0a0593e3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Jan 2021 09:22:54 +0100 Subject: [PATCH 060/106] Bump concurrent-ruby from 1.1.7 to 1.1.8 (#16254) Bumps [concurrent-ruby](https://github.com/ruby-concurrency/concurrent-ruby) from 1.1.7 to 1.1.8. - [Release notes](https://github.com/ruby-concurrency/concurrent-ruby/releases) - [Changelog](https://github.com/ruby-concurrency/concurrent-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/ruby-concurrency/concurrent-ruby/compare/v1.1.7...v1.1.8) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 2607f0731e1..bf279fe4169 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -19,7 +19,7 @@ GEM sass (>= 3.3.0, < 3.5) compass-import-once (1.0.5) sass (>= 3.2, < 3.5) - concurrent-ruby (1.1.7) + concurrent-ruby (1.1.8) em-websocket (0.5.2) eventmachine (>= 0.12.9) http_parser.rb (~> 0.6.0) From c5cc85810add1fcf10045fb732aa3d3f2100f27e Mon Sep 17 00:00:00 2001 From: David Dix Date: Thu, 21 Jan 2021 08:39:04 +0000 Subject: [PATCH 061/106] Default for the Number Selector is slider, not box (#16255) Very minor change, but in all the blueprints I have created the Number Selector defaults to a `slider` not a `box` --- source/_docs/blueprint/selectors.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_docs/blueprint/selectors.markdown b/source/_docs/blueprint/selectors.markdown index 63dc30ea144..c285ea460e8 100644 --- a/source/_docs/blueprint/selectors.markdown +++ b/source/_docs/blueprint/selectors.markdown @@ -338,7 +338,7 @@ mode: description: This can be either `box` or `slider` mode. type: string required: false - default: box + default: slider {% endconfiguration %} ### Example number selectors From e2ee02796da20af7a2644c6b7819cb374c4c1282 Mon Sep 17 00:00:00 2001 From: Samuel Rau <1322866+samrdev@users.noreply.github.com> Date: Thu, 21 Jan 2021 11:14:01 +0100 Subject: [PATCH 062/106] Remove ads logo in favor of brands (#16246) --- source/_integrations/ads.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/source/_integrations/ads.markdown b/source/_integrations/ads.markdown index 62d486cad44..9c896868d5b 100644 --- a/source/_integrations/ads.markdown +++ b/source/_integrations/ads.markdown @@ -1,7 +1,6 @@ --- title: ADS description: Connect Home Assistant to TwinCAT devices via the ADS interface -logo: beckhoff.png ha_category: - Hub - Binary Sensor From b600138c22c6cdfb293ae52b6cb63e5ec49c6466 Mon Sep 17 00:00:00 2001 From: Dale Higgs Date: Thu, 21 Jan 2021 05:41:14 -0600 Subject: [PATCH 063/106] Format values as code blocks (#16242) --- source/_integrations/fan.template.markdown | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/_integrations/fan.template.markdown b/source/_integrations/fan.template.markdown index 09aa1495c9e..35bac403e6b 100644 --- a/source/_integrations/fan.template.markdown +++ b/source/_integrations/fan.template.markdown @@ -10,8 +10,8 @@ ha_domain: template --- The `template` platform creates fans that combine integrations and provides the -ability to run scripts or invoke services for each of the turn_on, turn_off, set_speed, -set_oscillating, and set_direction commands of a fan. +ability to run scripts or invoke services for each of the `turn_on`, `turn_off`, `set_speed`, +`set_oscillating`, and `set_direction` commands of a fan. To enable Template Fans in your installation, add the following to your `configuration.yaml` file: @@ -68,7 +68,7 @@ fan: required: false type: string value_template: - description: "Defines a template to get the state of the fan. Valid value: 'on'/'off'" + description: "Defines a template to get the state of the fan. Valid values: `on`, `off`" required: true type: template speed_template: @@ -76,11 +76,11 @@ fan: required: false type: template oscillating_template: - description: "Defines a template to get the osc state of the fan. Valid value: true/false" + description: "Defines a template to get the osc state of the fan. Valid values: `true`, `false`" required: false type: template direction_template: - description: "Defines a template to get the direction of the fan. Valid value: 'forward'/'reverse'" + description: "Defines a template to get the direction of the fan. Valid values: `forward`, `reverse`" required: false type: template availability_template: From e7e970e0758eb5aae9a31d6d5f5df8299ec75396 Mon Sep 17 00:00:00 2001 From: Samuel Rau <1322866+samrdev@users.noreply.github.com> Date: Thu, 21 Jan 2021 12:57:19 +0100 Subject: [PATCH 064/106] Removed logo of nuimo_controller in favor of brands. (#16240) --- source/_integrations/nuimo_controller.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/source/_integrations/nuimo_controller.markdown b/source/_integrations/nuimo_controller.markdown index 0d628bd7256..d88b11af7c8 100644 --- a/source/_integrations/nuimo_controller.markdown +++ b/source/_integrations/nuimo_controller.markdown @@ -1,7 +1,6 @@ --- title: Nuimo controller description: Instructions on how to setup and use a Nuimo device in Home Assistant. -logo: nuimo.png ha_category: - Hub ha_release: 0.29 From f37fa40996733aa821e165adb88b90e5b4d6606b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Jan 2021 13:21:32 +0100 Subject: [PATCH 065/106] Bump ruby2_keywords from 0.0.2 to 0.0.4 (#16237) Bumps [ruby2_keywords](https://github.com/ruby/ruby2_keywords) from 0.0.2 to 0.0.4. - [Release notes](https://github.com/ruby/ruby2_keywords/releases) - [Commits](https://github.com/ruby/ruby2_keywords/compare/v0.0.2...v0.0.4) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index bf279fe4169..ee80dc983aa 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -94,7 +94,7 @@ GEM rouge (3.26.0) ruby-enum (0.8.0) i18n - ruby2_keywords (0.0.2) + ruby2_keywords (0.0.4) safe_yaml (1.0.5) sass (3.4.25) sass-globbing (1.1.5) From f52cc941cea69b4b9c1df680ba7a79009df998b4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Jan 2021 13:22:14 +0100 Subject: [PATCH 066/106] Bump textlint-rule-terminology from 2.1.4 to 2.1.5 (#16236) Bumps [textlint-rule-terminology](https://github.com/sapegin/textlint-rule-terminology) from 2.1.4 to 2.1.5. - [Release notes](https://github.com/sapegin/textlint-rule-terminology/releases) - [Commits](https://github.com/sapegin/textlint-rule-terminology/compare/v2.1.4...v2.1.5) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 32 ++++++++++++++++---------------- package.json | 2 +- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index b0546fca5ef..2e7c0882d0d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -98,9 +98,9 @@ } }, "@textlint/ast-node-types": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.2.5.tgz", - "integrity": "sha512-+rEx4jLOeZpUcdvll7jEg/7hNbwYvHWFy4IGW/tk2JdbyB3SJVyIP6arAwzTH/sp/pO9jftfyZnRj4//sLbLvQ==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.3.5.tgz", + "integrity": "sha512-syl8VE34DQDTV7+IADP1jYtGsxTC9MmCKLmpJX90G6nNv9CzgAZIukd7WMiJFZpFgcDAlibEaCKlJRxjfEmmPA==", "dev": true }, "@textlint/ast-tester": { @@ -637,12 +637,12 @@ } }, "@textlint/types": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.3.1.tgz", - "integrity": "sha512-9MJ6PRPYWiFs2lfvp/Qhq72WrkZLL5ncBUXAVoj1Ug17ug8d7psmr/KJstMMocW3EWHSOuIDj7unh413c3jPqQ==", + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.4.6.tgz", + "integrity": "sha512-hoKPvIzNf+vI0goRk90HfsVUbXkAp4BfpvRxh51TGqVG27dlYrQJZkYheuUNUAwyj0Id09qzVwXno/xQPMYPcg==", "dev": true, "requires": { - "@textlint/ast-node-types": "^4.2.5" + "@textlint/ast-node-types": "^4.3.5" } }, "@textlint/utils": { @@ -2459,6 +2459,12 @@ "is-utf8": "^0.2.0" } }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, "structured-source": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/structured-source/-/structured-source-3.0.2.tgz", @@ -2669,9 +2675,9 @@ } }, "textlint-rule-terminology": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/textlint-rule-terminology/-/textlint-rule-terminology-2.1.4.tgz", - "integrity": "sha512-kLw4qL8RwY2lCNqgKveHc5sjCDlS5Tdw2TXWOrHvSvQxqaVOwsv3+51oMIQLGfJzQrhFSMlSlw5MvfaOerBvPQ==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/textlint-rule-terminology/-/textlint-rule-terminology-2.1.5.tgz", + "integrity": "sha512-VW+ea4ByLPddSUqoFkVVJF8zWnO8kqKwvC681wGFAjI4CYz9WhjEQH1ikhoEHXnd5AFXNArcjyoa8hoihrXy0w==", "dev": true, "requires": { "lodash": "^4.17.15", @@ -2679,12 +2685,6 @@ "textlint-rule-helper": "^2.1.1" }, "dependencies": { - "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", - "dev": true - }, "textlint-rule-helper": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/textlint-rule-helper/-/textlint-rule-helper-2.1.1.tgz", diff --git a/package.json b/package.json index 5c1b7c3345b..18be9f7ad0f 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "remark-stringify": "^9.0.1", "textlint": "^11.7.7", "textlint-rule-common-misspellings": "^1.0.1", - "textlint-rule-terminology": "^2.1.4" + "textlint-rule-terminology": "^2.1.5" }, "resolutions": { "minimist": ">=1.2.5" From 97174ecd96139ed1d168aa1a3fad9d39c809dd58 Mon Sep 17 00:00:00 2001 From: Danny Tsang <567982+dannytsang@users.noreply.github.com> Date: Thu, 21 Jan 2021 13:00:09 +0000 Subject: [PATCH 067/106] Updated Google Calendar Integration doc to use condition attributes released in 0.115. (#16235) --- source/_integrations/calendar.google.markdown | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/_integrations/calendar.google.markdown b/source/_integrations/calendar.google.markdown index 96ddd61667d..04d73c6c49a 100644 --- a/source/_integrations/calendar.google.markdown +++ b/source/_integrations/calendar.google.markdown @@ -221,8 +221,10 @@ For example, the actions following this condition will only be executed for even ```yaml condition: - condition: template - value_template: "{{is_state_attr('calendar.calendar_name', 'message', 'vacation') }}" + - condition: state + entity_id: calendar.calendar_name + state: vacation + attribute: message ``` {% endraw %} From fe2f862d6149c5eb6fd65cfad408f33205383ccb Mon Sep 17 00:00:00 2001 From: Michael Bisbjerg Date: Thu, 21 Jan 2021 14:16:21 +0100 Subject: [PATCH 068/106] Add link from MQTT discovery to Scenes.mqtt.markdown (#16234) --- source/_docs/mqtt/discovery.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown index f35fa360661..5f4e1ce56dc 100644 --- a/source/_docs/mqtt/discovery.markdown +++ b/source/_docs/mqtt/discovery.markdown @@ -18,6 +18,7 @@ Supported by MQTT discovery: - [HVACs](/integrations/climate.mqtt/) - [Lights](/integrations/light.mqtt/) - [Locks](/integrations/lock.mqtt/) +- [Scenes](/integrations/scene.mqtt/) - [Sensors](/integrations/sensor.mqtt/) - [Switches](/integrations/switch.mqtt/) - [Tag Scanners](/integrations/tag.mqtt/) From 9be43eff99a88532dc88e139de254a66b2d271c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20H=C3=A4ussler?= Date: Thu, 21 Jan 2021 14:23:41 +0100 Subject: [PATCH 069/106] Add MiHome devices token App for Windows and MACOS (#16233) --- source/_integrations/xiaomi_miio.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_integrations/xiaomi_miio.markdown b/source/_integrations/xiaomi_miio.markdown index 87e2bb9fd16..8c2d20f6095 100644 --- a/source/_integrations/xiaomi_miio.markdown +++ b/source/_integrations/xiaomi_miio.markdown @@ -71,6 +71,10 @@ iOS: Most options are still in Chinese, you need the fourth item from the top. Note: If you have multiple devices needing a token, e.g., Xiaomi Mi Robot Vacuum and a Xiaomi IR Remote, the above method may not work. The Xiaomi Home app will display a token, though it isn't the correct one. The alternative method using "Mi Home v5.4.49" will provide the correct token. +### Windows or macOS + +If using an Windows or macOS device to retrieve the Access Token use the [Get MiHome devices token](https://github.com/Maxmudjon/Get_MiHome_devices_token) App. + ### Alternative methods
From 2ba976dc634298c91d50614cbf693c9d586494b3 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Thu, 21 Jan 2021 16:11:34 +0100 Subject: [PATCH 070/106] Add Discourse forum link to footer (#16224) --- source/_includes/site/footer.html | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_includes/site/footer.html b/source/_includes/site/footer.html index 0aae66130f2..c0b64c5cfd8 100644 --- a/source/_includes/site/footer.html +++ b/source/_includes/site/footer.html @@ -18,6 +18,7 @@
  • Home Assistant Alerts
  • Developers
  • Data Science
  • +
  • Community Forum
  • Contact (no support!)
  • Security Vulnerabilities
  • Privacy
  • From dfd148e2b9829707a72a110f6c88495c15e8de52 Mon Sep 17 00:00:00 2001 From: pniewiadowski Date: Thu, 21 Jan 2021 16:23:18 +0100 Subject: [PATCH 071/106] Update xiaomi_miio.markdown (#16223) Added new alternate method to get Xiaomi token: Xiaomi Cloud Tokens Extractor --- source/_integrations/xiaomi_miio.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_integrations/xiaomi_miio.markdown b/source/_integrations/xiaomi_miio.markdown index 8c2d20f6095..8b9c211951b 100644 --- a/source/_integrations/xiaomi_miio.markdown +++ b/source/_integrations/xiaomi_miio.markdown @@ -183,6 +183,10 @@ The information output is: - `Address` - The IP that the device has on the network. - `Token` - The token of the device or `???` if it could not be automatically determined. +### Xiaomi Cloud Tokens Extractor + +Alternate method to get all yours devices tokens in one run. Please follow this [instruction](https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor). + ## Xiaomi Gateway The `xiaomi_miio` gateway integration allows you to control the gateway and its connected subdevices. From e15b6c8aebacc9d074aa1b66266ef03b281068dc Mon Sep 17 00:00:00 2001 From: Jamie Weston Date: Thu, 21 Jan 2021 15:28:24 +0000 Subject: [PATCH 072/106] Clarified that the examples are for automations (#16222) Based on experience on Discord, some users have been trying to enter the action examples in Dev Tools > Services. --- source/_integrations/signal_messenger.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/signal_messenger.markdown b/source/_integrations/signal_messenger.markdown index e2946faa972..230351dbf24 100644 --- a/source/_integrations/signal_messenger.markdown +++ b/source/_integrations/signal_messenger.markdown @@ -64,7 +64,7 @@ recipients: ## Examples -A few examples on how to use this integration. +A few examples on how to use this integration as actions in automations. ### Text message From c9a9df1fee80d59df5efb7572aa326847e203528 Mon Sep 17 00:00:00 2001 From: tomlut <10679300+tomlut@users.noreply.github.com> Date: Fri, 22 Jan 2021 15:09:45 +0500 Subject: [PATCH 073/106] Fix broken link (#16269) Link to SD card performance class returned a server 404 error. --- source/getting-started/index.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/getting-started/index.markdown b/source/getting-started/index.markdown index 8164e905102..caa54501b15 100644 --- a/source/getting-started/index.markdown +++ b/source/getting-started/index.markdown @@ -36,7 +36,7 @@ Follow this guide if you want to get started with Home Assistant easily or if yo We will need a few things to get started with installing Home Assistant. The Raspberry Pi 4 Model B is a good, affordable starting point for your home automation journey. Links below lead to Amazon US. If you're not in the US, you should be able to find these items in web stores in your country. - [Raspberry Pi 4 Model B (2GB)](https://amzn.to/2XULT2z) + [Power Supply](https://www.raspberrypi.org/help/faqs/#powerReqs) (at least 3A) -- [Micro SD Card](https://amzn.to/2X0Z2di). Ideally get one that is [Application Class 2](https://www.sdcard.org/developers/overview/application/index.html) as they handle small I/O much more consistently than cards not optimized to host applications. A 32 GB or bigger card is recommended. +- [Micro SD Card](https://amzn.to/2X0Z2di). Ideally get one that is [Application Class 2](https://www.sdcard.org/developers/sd-standard-overview/application-performance-class/) as they handle small I/O much more consistently than cards not optimized to host applications. A 32 GB or bigger card is recommended. - SD Card reader. This is already part of most laptops, but you can purchase a [standalone USB adapter](https://amzn.to/2WWxntY) if you don't have one. The brand doesn't matter, just pick the cheapest. - Ethernet cable. Home Assistant can work with Wi-Fi, but an Ethernet connection would be more reliable. From d24e17f050f1b863fb92a46b6db466b4ece7bf4c Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Fri, 22 Jan 2021 15:32:55 +0100 Subject: [PATCH 074/106] Add security disclosure blog post --- .../2021-01-14-security-bulletin.markdown | 3 + .../2021-01-21-security-disclosure.markdown | 79 ++++++++++++++++++ .../2021-01-security-disclosure/social.png | Bin 0 -> 88677 bytes 3 files changed, 82 insertions(+) create mode 100644 source/_posts/2021-01-21-security-disclosure.markdown create mode 100644 source/images/blog/2021-01-security-disclosure/social.png diff --git a/source/_posts/2021-01-14-security-bulletin.markdown b/source/_posts/2021-01-14-security-bulletin.markdown index c82d8c9a169..ffe59f84f67 100644 --- a/source/_posts/2021-01-14-security-bulletin.markdown +++ b/source/_posts/2021-01-14-security-bulletin.markdown @@ -30,4 +30,7 @@ We will provide more details about impacted custom integrations in the future. Paulus **Edit: 15 January 2021**: Blog post updated to state 2021.1.3, which added some additional checks. + **Edit: 16 January 2021**: Blog post updated to remove supervisor reload instructions, as latest version is now generally available. Added note that Python 3.7 is still supported. + +**Edit: 22 January 2021**: More details are now available in the [disclosure post](/blog/2021/01/22/security-disclosure/) \ No newline at end of file diff --git a/source/_posts/2021-01-21-security-disclosure.markdown b/source/_posts/2021-01-21-security-disclosure.markdown new file mode 100644 index 00000000000..536e9753687 --- /dev/null +++ b/source/_posts/2021-01-21-security-disclosure.markdown @@ -0,0 +1,79 @@ +--- +layout: post +title: "Disclosure: security vulnerabilities in custom integrations HACS, Dwains Dashboard, Font Awesome and others" +description: "Update your Home Assistant instance as soon as possible." +date: 2021-01-22 00:00:00 +date_formatted: "January 22, 2021" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Public-Service-Announcement +og_image: /images/blog/2021-01-security-disclosure/social.png +--- + +![Attention please read](/images/blog/2021-01-security-disclosure/social.png) + +This is a disclosure about security vulnerabilities found in 3rd party custom integrations. Custom integrations are not created and/or maintained by Home Assistant. Users install them at their own risk. We want to inform you about these because the found vulnerabilities impact the security of your Home Assistant instance. + +If you do not use custom integrations, your Home Assistant is not vulnerable. If you do use custom integrations, your instance might be vulnerable if you use one of the impacted integrations. + +TL;DR: + +- Multiple custom integrations were found that allowed an attacker to steal any file without logging in. +- Upgrade Home Assistant as soon as possible. Home Assistant Core 2021.1.3 added extra protections that stops attackers from reaching the vulnerable code in custom integrations. +- Upgrade the custom integrations to a fixed version or remove them from your installation. +- If you have used any of the custom integrations with a known vulnerability, we recommend that you update your credentials. + +On the morning of Thursday, January 14 2021, the custom integration Home Assistant Community Store (HACS) project was informed by [security researcher Oriel Goel](https://www.linkedin.com/in/oriel-goel/) about a security vulnerability. It was vulnerable to a directory traversal attack via an unauthenticated webview, allowing an attacker to access any file that is accessible by the Home Assistant process. This access includes any credential that you might have stored to allow Home Assistant to access other services. + +We started to research what other custom integrations could be impacted and found several more. We have responsibly disclosed these issues to the authors of those custom integrations and worked with them on fixing their integrations. + +The following have been found: + +- [Home Assistant Community Store](https://github.com/hacs/integration) (HACS) -- fixed in 1.10.0 +- [Dwains Lovelace Dashboard](https://github.com/dwainscheeren/dwains-lovelace-dashboard) -- fixed in 2.0.1 +- [Font Awesome](https://github.com/thomasloven/hass-fontawesome) -- fixed in 1.3.0 +- [Hass-Custom-Alarm](https://github.com/akasma74/Hass-Custom-Alarm) (akasma74) -- fixed in 1.12.8 +- [Simple Icons](https://github.com/vigonotion/hass-simpleicons) -- fixed in 1.10.0 +- [Custom Updater](https://github.com/custom-components/custom_updater/) (deprecated) -- fixed in latest commit + +We haven't been able to get in touch with the authors of the following integration. You should remove this custom integration as soon as possible: + +- [Custom icons](https://github.com/Armaell/home-assistant-custom-icons-loader) -- not fixed + +The following integration was discovered to be vulnerable to a variant of the above security vulnerability. It allows for a directory traversal attack but requires the attacker to be authenticated. We have been unable to reach the author: + +- [Hass-album](https://github.com/yunsean/hass-album/) -- not fixed + +If you have used any of these custom integrations, we recommend that you update your credentials. + +Besides working with the custom integration authors, the following actions have been taken to help protect users: + +- Home Assistant released Home Assistant Core 2021.1.3 with extra protection to stop directory traversal attacks before reaching the vulnerable code. This prevents the abuse of all found vulnerabilities. +- Home Assistant published a [security bulletin](https://www.home-assistant.io/blog/2021/01/14/security-bulletin/) strongly urging people to upgrade their Home Assistant instance. This bulletin has been shared widely and linked from banners on the Home Assistant website and forums. +- The Home Assistant Supervisor will notify the user when a possible insecure installation is found that uses custom integrations. +- The Home Assistant Companion apps for Android and iOS have been updated to notify the user if their Home Assistant instance is potentially insecure. +- Nabu Casa emailed the security bulletin to all Home Assistant Cloud subscribers and users on trial. +- Nabu Casa activated their feature to [limit remote access](https://www.nabucasa.com/config/remote/#insecure-versions) via Home Assistant Cloud and block instances that run an insecure version of Home Assistant. + +Look. It sucks that this happened. The custom integrations we have listed are all open source, maintained by volunteers in their spare time. They often work alone on this and that's why it's more likely for a bug to go undetected. But more eyes doesn't guarantee bug-free software either. From time to time, such things will happen to every piece of software. + +I want to emphasize that it's not allowed to personally harass/attack/insult the developers of these custom integrations. That would be a violation of our Code of Conduct and we will enforce this. + +As Home Assistant, we could have done more to prepare for this scenario. We are currently exploring adding new opt-in features for users to be notified and allow Home Assistant to take action preemptively to patch vulnerabilities. + +Paulus + +## FAQ + +--- + +### Why didn't you release the names of the custom integrations in the first security bulletin? + +When we discovered the issues, we disclosed them to the authors of the affected custom integrations and gave them time to fix the problem and release a new version. This is a good and common practice when disclosing security vulnerabilities. + +Since some of these custom integrations are quite popular, we also decided to publish a security bulletin to urge Home Assistant users to upgrade their instances. We made sure to include enough information for users to resolve the vulnerability. + +### Has this vulnerability been abused? + +We don't know. diff --git a/source/images/blog/2021-01-security-disclosure/social.png b/source/images/blog/2021-01-security-disclosure/social.png new file mode 100644 index 0000000000000000000000000000000000000000..739f783c4d7fa681a6c5db2f9fb1c928f92e1335 GIT binary patch literal 88677 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 X-yJSSED2XN00000NkvXXu0mjfvvdbP literal 0 HcmV?d00001 From 214a9ee32b4d14eea7b153118b6b4dd7c35e2016 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Fri, 22 Jan 2021 16:18:29 +0100 Subject: [PATCH 075/106] Update more info button in banner --- source/_layouts/default.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_layouts/default.html b/source/_layouts/default.html index b929b9ffd03..f081bd5720f 100644 --- a/source/_layouts/default.html +++ b/source/_layouts/default.html @@ -10,7 +10,7 @@ padding: 0 8px; "> Make sure you run at least Home Assistant Core 2021.1.3 - Date: Sat, 23 Jan 2021 14:09:27 +0100 Subject: [PATCH 079/106] Lovelace alignments for all cards (#16281) --- source/_lovelace/alarm-panel.markdown | 24 +++---- source/_lovelace/button.markdown | 10 +-- source/_lovelace/calendar.markdown | 10 +-- source/_lovelace/conditional.markdown | 4 +- source/_lovelace/entity-filter.markdown | 8 +-- source/_lovelace/entity.markdown | 20 +++--- source/_lovelace/gauge.markdown | 30 ++++---- source/_lovelace/glance.markdown | 18 ++--- source/_lovelace/grid.markdown | 8 +-- source/_lovelace/history-graph.markdown | 4 +- source/_lovelace/horizontal-stack.markdown | 6 +- source/_lovelace/humidifier.markdown | 12 ++-- source/_lovelace/iframe.markdown | 8 +-- source/_lovelace/light.markdown | 12 ++-- source/_lovelace/logbook.markdown | 13 ++-- source/_lovelace/map.markdown | 4 +- source/_lovelace/markdown.markdown | 9 ++- source/_lovelace/media-control.markdown | 8 +-- source/_lovelace/picture-elements.markdown | 70 +++++++++---------- source/_lovelace/picture-entity.markdown | 4 +- source/_lovelace/picture-glance.markdown | 18 ++--- source/_lovelace/picture.markdown | 8 +-- source/_lovelace/plant-status.markdown | 8 +-- source/_lovelace/sensor.markdown | 20 +++--- source/_lovelace/shopping-list.markdown | 9 ++- source/_lovelace/thermostat.markdown | 10 +-- source/_lovelace/vertical-stack.markdown | 8 +-- source/_lovelace/weather-forecast.markdown | 25 +++---- source/lovelace/badges.markdown | 22 +++--- source/lovelace/dashboards-and-views.markdown | 3 +- source/lovelace/header-footer.markdown | 14 ++-- 31 files changed, 210 insertions(+), 217 deletions(-) diff --git a/source/_lovelace/alarm-panel.markdown b/source/_lovelace/alarm-panel.markdown index edb26ff053d..1288e296f4f 100644 --- a/source/_lovelace/alarm-panel.markdown +++ b/source/_lovelace/alarm-panel.markdown @@ -1,17 +1,17 @@ --- title: "Alarm Panel Card" sidebar_label: Alarm Panel -description: "The Alarm Panel card allows you to Arm and Disarm your alarm control panel integrations." +description: "The Alarm Panel card allows you to arm and disarm your alarm control panel integrations." --- -The Alarm Panel card allows you to Arm and Disarm your [alarm control panel](/integrations/#alarm) integrations. +The Alarm Panel card allows you to arm and disarm your [alarm control panel](/integrations/#alarm) integrations.

    Screenshot of the alarm panel card Screenshot of the Alarm Panel card.

    -To add the Alarm Panel card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Alarm Panel** from the card picker. All options for this card can be configured via the user interface. +To add the Alarm Panel card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Alarm Panel** from the card picker. All options for this card can be configured via the user interface. Alternatively, the card can be configured using YAML: @@ -23,22 +23,22 @@ entity: alarm_control_panel.alarm {% configuration %} type: required: true - description: alarm-panel + description: "`alarm-panel`" type: string entity: required: true - description: "Entity ID of `alarm_control_panel` domain" + description: Entity ID of `alarm_control_panel` domain. type: string name: required: false - description: Overwrites Friendly Name + description: Overwrites friendly name. type: string - default: Current State of Alarm Entity + default: Current state of the alarm entity. states: required: false - description: Controls which states to have available + description: Controls which states to have available. type: list - default: arm_home, arm_away + default: "`arm_home, arm_away`" keys: arm_home: description: Arm Home @@ -50,13 +50,13 @@ states: description: Arm Custom Bypass theme: required: false - description: "Set to any theme within `themes.yaml`" + description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/). type: string {% endconfiguration %} ## Examples -Title Example: +Title example: ```yaml - type: alarm-panel @@ -69,7 +69,7 @@ Title Example: Screenshot of the Alarm Panel card.

    -Define the State List: +Define the state list: ```yaml type: alarm-panel diff --git a/source/_lovelace/button.markdown b/source/_lovelace/button.markdown index c9df3733a0a..c7dca136f75 100644 --- a/source/_lovelace/button.markdown +++ b/source/_lovelace/button.markdown @@ -11,7 +11,7 @@ The Button card allows you to add buttons to perform tasks. Screenshot of three Button Cards.

    -To add the Button card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Button** from the card picker. All options for this card can be configured via the user interface. +To add the Button card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Button** from the card picker. All options for this card can be configured via the user interface. ## Card Settings @@ -29,7 +29,7 @@ Show Icon: Icon Height: description: The height of the icon, in pixels. Theme: - description: The card theme, which may be set to any installed theme. For more information about themes, see the [frontend documentation](https://www.home-assistant.io/integrations/frontend/). + description: Name of any loaded theme to be used for this card. For more information about themes, see the [frontend documentation](/integrations/frontend/). Tap Action: description: The action taken on card tap. For more information, see the [action documentation](/lovelace/actions/#tap-action). Hold Action: @@ -43,7 +43,7 @@ This is for if you use YAML mode or prefer to use YAML in the Code Editor in the {% configuration %} type: required: true - description: button + description: "`button`" type: string entity: required: false @@ -58,7 +58,7 @@ icon: required: false description: The icon that is displayed on the card. It defaults to the entity domain icon only if the card interacts with an entity. Otherwise, if not configured, no icon is displayed. type: string - default: Entity Domain Icon + default: Entity domain icon show_name: required: false description: If false, the button name is not shown on the card. @@ -98,7 +98,7 @@ double_tap_action: type: map theme: required: false - description: The card theme, which may be set to any theme from the `themes.yaml` file. For more information about themes, see the [frontend documentation](https://www.home-assistant.io/integrations/frontend/). + description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/). type: string {% endconfiguration %} diff --git a/source/_lovelace/calendar.markdown b/source/_lovelace/calendar.markdown index 2194b4e9c70..6b5d084212d 100644 --- a/source/_lovelace/calendar.markdown +++ b/source/_lovelace/calendar.markdown @@ -11,9 +11,9 @@ The Calendar card displays your [calendar](/integrations/#calendar) entities in Screenshot of the Calendar card.

    -To add the Calendar card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Calendar** from the card picker. All options for this card can be configured via the user interface. +To add the Calendar card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Calendar** from the card picker. All options for this card can be configured via the user interface. -### Card Settings +## Card Settings {% configuration_basic %} Title: @@ -23,7 +23,7 @@ Initial View: Entities: description: The calendar entities that will be displayed in the card. Theme: - description: Theme your card using any installed theme in your HA environment. + description: Name of any loaded theme to be used for this card. For more information about themes, see the [frontend documentation](/integrations/frontend/). {% endconfiguration_basic %} ### YAML @@ -33,7 +33,7 @@ This is for if you use YAML mode or just prefer to use YAML in the Code Editor i {% configuration %} type: required: true - description: calendar + description: "`calendar`" type: string title: required: false @@ -49,7 +49,7 @@ entities: type: list theme: required: false - description: "Set to any theme within `themes.yaml`" + description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/). type: string {% endconfiguration %} diff --git a/source/_lovelace/conditional.markdown b/source/_lovelace/conditional.markdown index eceb1dc9efd..b8fe0369d86 100644 --- a/source/_lovelace/conditional.markdown +++ b/source/_lovelace/conditional.markdown @@ -6,7 +6,7 @@ description: The Conditional card displays another card based on entity states. The Conditional card displays another card based on entity states. -To add the Conditional card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Conditional** from the card picker. All options for this card can be configured via the user interface. +To add the Conditional card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Conditional** from the card picker. All options for this card can be configured via the user interface. {% configuration %} type: @@ -20,7 +20,7 @@ conditions: keys: entity: required: true - description: Home Assistant entity ID. + description: Entity ID. type: string state: required: false diff --git a/source/_lovelace/entity-filter.markdown b/source/_lovelace/entity-filter.markdown index 9c798516749..78a7cb79369 100644 --- a/source/_lovelace/entity-filter.markdown +++ b/source/_lovelace/entity-filter.markdown @@ -16,7 +16,7 @@ Screenshot of the entity filter card. {% configuration %} type: required: true - description: entity-filter + description: "`entity-filter`" type: string entities: required: true @@ -45,11 +45,11 @@ If you define entities as objects instead of strings (by adding `entity:` before {% configuration %} entity: required: true - description: Home Assistant entity ID. + description: Entity ID. type: string type: required: false - description: "Sets a custom card type: `custom:my-custom-card`" + description: "Sets a custom card type: `custom:my-custom-card`." type: string name: required: false @@ -92,7 +92,7 @@ attribute: type: string {% endconfiguration %} -### Examples +## Examples Show only active switches or lights in the house. diff --git a/source/_lovelace/entity.markdown b/source/_lovelace/entity.markdown index 82cae39e3b3..528e24de78a 100644 --- a/source/_lovelace/entity.markdown +++ b/source/_lovelace/entity.markdown @@ -11,38 +11,38 @@ The Entity card gives you a quick overview of your entity's state. Screenshot of the Entity card.

    -To add the Entity card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Entity** from the card picker. +To add the Entity card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Entity** from the card picker. {% configuration %} type: required: true - description: entity + description: "`entity`" type: string entity: required: true - description: Home Assistant entity ID. + description: Entity ID. type: string name: required: false - description: Name of Entity + description: Name of entity. type: string - default: Entity Name + default: Entity name. icon: required: false description: Overwrites icon. type: string attribute: required: false - description: An attribute associated with the `entity` + description: An attribute associated with the `entity`. type: string unit: required: false - description: Unit of Measurement given to data + description: Unit of measurement given to data. type: string - default: "Unit Of Measurement given by entity" + default: Unit of measurement given by entity. theme: required: false - description: Set to any theme within `themes.yaml` + description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/). type: string footer: required: false @@ -67,4 +67,4 @@ Alternatively, the card can be configured using YAML: icon: 'mdi:battery' attribute: battery_level unit: '%' -``` \ No newline at end of file +``` diff --git a/source/_lovelace/gauge.markdown b/source/_lovelace/gauge.markdown index 1e99890eb22..b9d91aef58a 100644 --- a/source/_lovelace/gauge.markdown +++ b/source/_lovelace/gauge.markdown @@ -11,7 +11,7 @@ The Gauge card is a basic card that allows visually seeing sensor data. Screenshot of the Gauge card.

    -To add the Gauge card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Gauge** from the card picker. All options for this card can be configured via the user interface. +To add the Gauge card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Gauge** from the card picker. All options for this card can be configured via the user interface. Alternatively, the card can be configured using YAML: @@ -23,58 +23,58 @@ entity: sensor.cpu_usage {% configuration %} type: required: true - description: gauge + description: "`gauge`" type: string entity: required: true - description: "Entity id to show" + description: Entity ID to show. type: string name: required: false - description: Name of Gauge Entity + description: Name of gauge entity. type: string - default: Entity Name + default: Entity name unit: required: false - description: Unit of Measurement given to data + description: Unit of measurement given to data. type: string - default: "Unit Of Measurement given by entity" + default: Unit of measurement given by entity. theme: required: false - description: Set to any theme within `themes.yaml` + description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/). type: string min: required: false - description: Minimum value for graph + description: Minimum value for graph. type: integer default: 0 max: required: false - description: Maximum value for graph + description: Maximum value for graph. type: integer default: 100 severity: required: false - description: Allows setting of colors for different numbers + description: Allows setting of colors for different numbers. type: map keys: green: required: true - description: Value from which to start green color + description: Value from which to start green color. type: integer yellow: required: true - description: Value from which to start yellow color + description: Value from which to start yellow color. type: integer red: required: true - description: Value from which to start red color + description: Value from which to start red color. type: integer {% endconfiguration %} ## Examples -Title and Unit of Measurement Example: +Title and unit of measurement: ```yaml type: gauge diff --git a/source/_lovelace/glance.markdown b/source/_lovelace/glance.markdown index bc6d15a4c1e..812c9269ca7 100644 --- a/source/_lovelace/glance.markdown +++ b/source/_lovelace/glance.markdown @@ -11,12 +11,12 @@ The Glance card is useful to group multiple sensors in a compact overview. Keep Screenshot of the Glance card.

    -To add the Glance card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Glance** from the card picker. +To add the Glance card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Glance** from the card picker. {% configuration %} type: required: true - description: glance + description: "`glance`" type: string entities: required: true @@ -24,7 +24,7 @@ entities: type: list title: required: false - description: Card title + description: Card title. type: string show_name: required: false @@ -38,12 +38,12 @@ show_icon: default: "true" show_state: required: false - description: Show entity state-text. + description: Show entity state text. type: boolean default: "true" theme: required: false - description: "Set to any theme within `themes.yaml`" + description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/). type: string columns: required: false @@ -51,7 +51,7 @@ columns: type: integer state_color: required: false - description: Set to `true` to have icons colored when entity is active + description: Set to `true` to have icons colored when entity is active. type: boolean default: true {% endconfiguration %} @@ -63,7 +63,7 @@ If you define entities as objects instead of strings, you can add more customiza {% configuration %} entity: required: true - description: Home Assistant entity ID. + description: Entity ID. type: string name: required: false @@ -84,7 +84,7 @@ show_last_changed: default: false show_state: required: false - description: Show entity state-text. + description: Show entity state text. type: boolean default: true tap_action: @@ -106,7 +106,7 @@ double_tap_action: {% configuration badges %} user: required: true - description: User id that can see the view tab. + description: User ID that can see the view tab. type: string {% endconfiguration %} diff --git a/source/_lovelace/grid.markdown b/source/_lovelace/grid.markdown index 24d4fcaeca2..3b31e81f53a 100644 --- a/source/_lovelace/grid.markdown +++ b/source/_lovelace/grid.markdown @@ -11,16 +11,16 @@ The Grid card allows you to show multiple cards in a grid. It will first fill th Screenshot of the Grid card.

    -To add the Grid card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Grid Card** from the card picker. +To add the Grid card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Grid Card** from the card picker. {% configuration %} type: required: true - description: grid + description: "`grid`" type: string title: required: false - description: Title of Grid + description: Title of grid. type: string square: required: false @@ -38,7 +38,7 @@ cards: type: list {% endconfiguration %} -### Examples +## Examples Alternatively, the card can be configured using YAML: diff --git a/source/_lovelace/history-graph.markdown b/source/_lovelace/history-graph.markdown index f5669bfd83c..a82238632a2 100644 --- a/source/_lovelace/history-graph.markdown +++ b/source/_lovelace/history-graph.markdown @@ -16,7 +16,7 @@ Screenshot of the History Graph card, when the sensor has no `unit_of_measuremen Screenshot of the History Graph card, when the sensor has a `unit_of_measurement` defined.

    -To add the History Graph card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **History Graph** from the card picker. All options for this card can be configured via the user interface. +To add the History Graph card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **History Graph** from the card picker. All options for this card can be configured via the user interface. {% configuration %} type: @@ -50,7 +50,7 @@ If you define entities as objects instead of strings, you can add more customiza {% configuration %} entity: required: true - description: Home Assistant entity ID. + description: Entity ID. type: string name: required: false diff --git a/source/_lovelace/horizontal-stack.markdown b/source/_lovelace/horizontal-stack.markdown index fdbfaf6607f..eaf96be80f0 100644 --- a/source/_lovelace/horizontal-stack.markdown +++ b/source/_lovelace/horizontal-stack.markdown @@ -6,16 +6,16 @@ description: "The Horizontal Stack card allows you to stack together multiple ca The Horizontal Stack card allows you to stack together multiple cards, so they always sit next to each other in the space of one column. -To add the Horizontal Stack card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Horizontal Stack** from the card picker. All options for this card can be configured via the user interface. +To add the Horizontal Stack card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Horizontal Stack** from the card picker. All options for this card can be configured via the user interface. {% configuration %} type: required: true - description: horizontal-stack + description: "`horizontal-stack`" type: string title: required: false - description: Title of Stack + description: Title of stack. type: string cards: required: true diff --git a/source/_lovelace/humidifier.markdown b/source/_lovelace/humidifier.markdown index 3735d50d1ed..935e42c2dad 100644 --- a/source/_lovelace/humidifier.markdown +++ b/source/_lovelace/humidifier.markdown @@ -11,25 +11,25 @@ The Humidifier card lets you control and monitor humidifiers, dehumidifiers, and Screenshot of the humidifier card.

    -To add the Humidifier card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Humidifier** from the card picker. All options for this card can be configured via the user interface. +To add the Humidifier card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Humidifier** from the card picker. All options for this card can be configured via the user interface. {% configuration %} type: required: true - description: humidifier + description: "`humidifier`" type: string entity: required: true - description: Entity id of `humidifier` domain + description: Entity ID of `humidifier` domain. type: string name: required: false - description: Name of Entity + description: Name of entity. type: string - default: Entity Name + default: Entity name theme: required: false - description: Set to any theme within `themes.yaml` + description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/). type: string {% endconfiguration %} diff --git a/source/_lovelace/iframe.markdown b/source/_lovelace/iframe.markdown index 71490ecd710..9b2316e41c6 100644 --- a/source/_lovelace/iframe.markdown +++ b/source/_lovelace/iframe.markdown @@ -15,12 +15,12 @@ You can't embed sites using HTTP if you are using HTTPS for your Home Assistant. Windy weather radar as Webpage.

    -To add the Webpage card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Webpage** from the card picker. All options for this card can be configured via the user interface. +To add the Webpage card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Webpage** from the card picker. All options for this card can be configured via the user interface. {% configuration %} type: required: true - description: iframe + description: "`iframe`" type: string url: required: true @@ -28,7 +28,7 @@ url: type: string aspect_ratio: required: false - description: Height-width-ratio. + description: Height to width ratio. type: string default: "50%" title: @@ -37,7 +37,7 @@ title: type: string {% endconfiguration %} -### Examples +## Examples The card can also be configured using YAML, some examples below: diff --git a/source/_lovelace/light.markdown b/source/_lovelace/light.markdown index 97f7a73aca3..56e74ee880a 100644 --- a/source/_lovelace/light.markdown +++ b/source/_lovelace/light.markdown @@ -11,7 +11,7 @@ The Light card allows you to change the brightness of the light. Screenshot of the Light card.

    -To add the Light card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Light** from the card picker. All options for this card can be configured via the user interface. +To add the Light card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Light** from the card picker. All options for this card can be configured via the user interface. Alternatively, the card can be configured using YAML: @@ -23,25 +23,25 @@ entity: light.bedroom {% configuration %} type: required: true - description: light + description: "`light`" type: string entity: required: true - description: Home Assistant Light Domain entity ID. + description: Entity ID of `light` domain. type: string name: required: false description: Overwrites friendly name. type: string - default: Name of Entity + default: Name of entity icon: required: false description: Overwrites icon. type: string - default: Entity Domain Icon + default: Entity domain icon theme: required: false - description: Set to any theme within `themes.yaml`. + description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/). type: string hold_action: required: false diff --git a/source/_lovelace/logbook.markdown b/source/_lovelace/logbook.markdown index 78f1b823513..5d9e8f46075 100644 --- a/source/_lovelace/logbook.markdown +++ b/source/_lovelace/logbook.markdown @@ -11,10 +11,9 @@ The Logbook card displays entries from the logbook for specific entities. Screenshot of the Logbook card.

    -To add the Logbook card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Logbook** from the card picker. - -### Card Settings +To add the Logbook card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Logbook** from the card picker. +## Card Settings {% configuration_basic %} Entities: @@ -24,7 +23,7 @@ Title: Hours to show: description: The number of hours in the past that will be tracked in the card. Theme: - description: Theme your card using any installed theme in your HA environment. + description: Name of any loaded theme to be used for this card. For more information about themes, see the [frontend documentation](/integrations/frontend/). {% endconfiguration_basic %} ### YAML @@ -34,11 +33,11 @@ This is for if you use YAML mode or prefer to use YAML in the Code Editor in the {% configuration %} type: required: true - description: logbook + description: "`logbook`" type: string entities: required: true - description: "The entities that will show in the card." + description: The entities that will show in the card. type: list title: required: false @@ -51,7 +50,7 @@ hours_to_show: default: 24 theme: required: false - description: "Set to any theme within `themes.yaml`." + description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/). type: string {% endconfiguration %} diff --git a/source/_lovelace/map.markdown b/source/_lovelace/map.markdown index 75f83599340..63815a9885c 100644 --- a/source/_lovelace/map.markdown +++ b/source/_lovelace/map.markdown @@ -11,12 +11,12 @@ The Map card that allows you to display entities on a map Screenshot of the map card.

    -To add the Map card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Map** from the card picker. All options for this card can be configured via the user interface. +To add the Map card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Map** from the card picker. All options for this card can be configured via the user interface. {% configuration %} type: required: true - description: map + description: "`map`" type: string entities: required: true diff --git a/source/_lovelace/markdown.markdown b/source/_lovelace/markdown.markdown index 980bdde4471..0669d69b802 100644 --- a/source/_lovelace/markdown.markdown +++ b/source/_lovelace/markdown.markdown @@ -13,12 +13,12 @@ The renderer uses [Marked.js](https://marked.js.org), which supports [several sp Screenshot of the Markdown card.

    -To add the Markdown card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Markdown** from the card picker. +To add the Markdown card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Markdown** from the card picker. {% configuration %} type: required: true - description: markdown + description: "`markdown`" type: string content: required: true @@ -41,7 +41,7 @@ entity_id: description: "A list of entity IDs so a template in `content:` only reacts to the state changes of these entities. This can be used if the automatic analysis fails to find all relevant entities." theme: required: false - description: "Set to any theme within `themes.yaml`" + description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/). type: string {% endconfiguration %} @@ -86,7 +86,6 @@ card: {% endraw %} - A special template variable - `user` is set up for the `content` of the card. It contains the currently logged in user. For example: @@ -103,7 +102,7 @@ content: | ## Icons -You can also use [materialdesignicons.com]() icons in the `content` of the card. +You can also use [materialdesignicons.com](https://materialdesignicons.com/) icons in the `content` of the card. For example: diff --git a/source/_lovelace/media-control.markdown b/source/_lovelace/media-control.markdown index 181662cc289..081ded94460 100644 --- a/source/_lovelace/media-control.markdown +++ b/source/_lovelace/media-control.markdown @@ -11,22 +11,22 @@ The Media Control card is used to display [Media Player](/integrations/#media-pl Screenshot of the Media Control card.

    -To add the Media Control card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Media Control** from the card picker. +To add the Media Control card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Media Control** from the card picker. {% configuration %} type: required: true - description: media-control + description: "`media-control`" type: string entity: required: true - description: "A media player `entity_id`." + description: Entity ID of `media_player` domain. type: string name: required: false description: Overwrites friendly name. type: string - default: Name of Entity + default: Name of entity {% endconfiguration %} ## Example diff --git a/source/_lovelace/picture-elements.markdown b/source/_lovelace/picture-elements.markdown index bed5581debd..40cdd2a0607 100644 --- a/source/_lovelace/picture-elements.markdown +++ b/source/_lovelace/picture-elements.markdown @@ -16,7 +16,7 @@ The cards allow you to position icons or text and even services on an image base {% configuration %} type: required: true - description: picture-elements + description: "`picture-elements`" type: string image: required: true @@ -33,11 +33,11 @@ camera_view: type: string elements: required: true - description: List of elements + description: List of elements. type: list title: required: false - description: Card title + description: Card title. type: string state_filter: required: false @@ -45,7 +45,7 @@ state_filter: type: map theme: required: false - description: "Set to any theme within `themes.yaml`" + description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/). type: string dark_mode_image: required: false @@ -79,11 +79,11 @@ This element creates a badge representing the state of an entity. {% configuration %} type: required: true - description: state-badge + description: "`state-badge`" type: string entity: required: true - description: Entity id + description: Entity ID. type: string style: required: true @@ -115,11 +115,11 @@ This element represents an entity state using an icon. {% configuration %} type: required: true - description: state-icon + description: "`state-icon`" type: string entity: required: true - description: The entity id to use. + description: The entity ID to use. type: string icon: required: false @@ -131,42 +131,42 @@ title: type: string state_color: required: false - description: Set to `true` to have icons colored when entity is active + description: Set to `true` to have icons colored when entity is active. type: boolean default: true tap_action: required: false - description: Action to take on tap + description: Action to take on tap. type: map keys: action: required: true - description: "Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `url`, `none`)" + description: "Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `url`, `none`)." type: string default: "`more-info`" navigation_path: required: false - description: "Path to navigate to (e.g., `/lovelace/0/`) when `action` defined as `navigate`" + description: "Path to navigate to (e.g., `/lovelace/0/`) when `action` defined as `navigate`." type: string default: none url_path: required: false - description: "Path to navigate to (e.g., `https://www.home-assistant.io`) when `action` defined as `url`" + description: "Path to navigate to (e.g., `https://www.home-assistant.io`) when `action` defined as `url`." type: string default: none service: required: false - description: "Service to call (e.g., `media_player.media_play_pause`) when `action` defined as `call-service`" + description: "Service to call (e.g., `media_player.media_play_pause`) when `action` defined as `call-service`." type: string default: none service_data: required: false - description: "Service data to include (e.g., `entity_id: media_player.bedroom`) when `action` defined as `call-service`" + description: "Service data to include (e.g., `entity_id: media_player.bedroom`) when `action` defined as `call-service`." type: string default: none confirmation: required: false - description: "Present a confirmation dialog to confirm the action. See `confirmation` object below" + description: "Present a confirmation dialog to confirm the action. See `confirmation` object below." type: [boolean, map] default: "false" tap_action: @@ -195,16 +195,15 @@ This element represents an entity's state via text. {% configuration %} type: required: true - description: state-label + description: "`state-label`" type: string entity: required: true - description: Entity id + description: Entity ID. type: string attribute: required: false - description: If present, the corresponding attribute will be shown, - instead of the entity's state + description: If present, the corresponding attribute will be shown, instead of the entity's state. type: string prefix: required: false @@ -244,15 +243,15 @@ This entity creates a button (with arbitrary text) that can be used to call a se {% configuration %} type: required: true - description: service-button + description: "`service-button`" type: string title: required: true - description: Button label + description: Button label. type: string service: required: true - description: light.turn_on + description: "`light.turn_on`" type: string service_data: required: false @@ -267,16 +266,16 @@ style: ### Icon Element -This element creates a static icon that is not linked to the state of an entity. +This element creates a static icon that is not linked to the state of an entity. {% configuration %} type: required: true - description: icon + description: "`icon`" type: string icon: required: true - description: "Icon to display (e.g., `mdi:home`)" + description: "Icon to display (e.g., `mdi:home`)." type: string title: required: false @@ -284,7 +283,7 @@ title: type: string entity: required: false - description: Entity to use for more-info/toggle + description: Entity to use for more-info/toggle. type: string tap_action: required: false @@ -312,11 +311,11 @@ This creates an image element that overlays the background image. {% configuration %} type: required: true - description: image + description: "`image`" type: string entity: required: false - description: Entity to use for state_image and state_filter and also target for actions. + description: "Entity to use for `state_image` and `state_filter` and also target for actions." type: string title: required: false @@ -353,7 +352,7 @@ state_image: type: map filter: required: false - description: Default CSS filter + description: Default CSS filter. type: string state_filter: required: false @@ -361,7 +360,7 @@ state_filter: type: map aspect_ratio: required: false - description: Height-width-ratio. + description: Height to width ratio. type: string default: "50%" style: @@ -378,7 +377,7 @@ Much like the Conditional card, this element will let you show its sub-elements {% configuration %} type: required: true - description: conditional + description: "`conditional`" type: string conditions: required: true @@ -387,7 +386,7 @@ conditions: keys: entity: required: true - description: Home Assistant entity ID. + description: Entity ID. type: string state: required: false @@ -412,7 +411,7 @@ for more information. {% configuration %} type: required: true - description: 'Card name with `custom:` prefix (e.g., `custom:my-custom-card`)' + description: 'Card name with `custom:` prefix (e.g., `custom:my-custom-card`).' type: string style: required: true @@ -421,13 +420,12 @@ style: default: "position: absolute, transform: translate(-50%, -50%)" {% endconfiguration %} - ## Options For Exemptions {% configuration badges %} user: required: true - description: User id that can see the view tab. + description: User ID that can see the view tab. type: string {% endconfiguration %} diff --git a/source/_lovelace/picture-entity.markdown b/source/_lovelace/picture-entity.markdown index ce1f698b939..88cc0e787cb 100644 --- a/source/_lovelace/picture-entity.markdown +++ b/source/_lovelace/picture-entity.markdown @@ -14,7 +14,7 @@ The Picture Entity card displays an entity in the form of an image. Instead of i {% configuration %} type: required: true - description: picture-entity + description: "`picture-entity`" type: string entity: required: true @@ -61,7 +61,7 @@ show_state: default: true theme: required: false - description: "Set to any theme within `themes.yaml`" + description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/). type: string tap_action: required: false diff --git a/source/_lovelace/picture-glance.markdown b/source/_lovelace/picture-glance.markdown index bd99a9c2505..d97600e522c 100644 --- a/source/_lovelace/picture-glance.markdown +++ b/source/_lovelace/picture-glance.markdown @@ -14,7 +14,7 @@ The Picture Glance card shows an image and corresponding entity states as an ico {% configuration %} type: required: true - description: picture-glance + description: "`picture-glance`" type: string entities: required: true @@ -60,12 +60,12 @@ entity: type: string show_state: required: false - description: Show entity state-text. + description: Show entity state text. type: boolean default: true theme: required: false - description: "Set to any theme within `themes.yaml`" + description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/). type: string tap_action: required: false @@ -88,19 +88,19 @@ If you define entities as objects instead of strings, you can add more customiza {% configuration %} entity: required: true - description: Home Assistant entity ID. + description: Entity ID. type: string attribute: required: false - description: Attribute of the entity to display instead of the state + description: Attribute of the entity to display instead of the state. type: string prefix: required: false - description: Prefix to display before the attribute's value + description: Prefix to display before the attribute's value. type: string suffix: required: false - description: Suffix to display after the attribute's value + description: Suffix to display after the attribute's value. type: string icon: required: false @@ -108,7 +108,7 @@ icon: type: string show_state: required: false - description: Show entity state-text. + description: Show entity state text. type: boolean default: true tap_action: @@ -130,7 +130,7 @@ double_tap_action: {% configuration badges %} user: required: true - description: User id that can see the view tab. + description: User ID that can see the view tab. type: string {% endconfiguration %} diff --git a/source/_lovelace/picture.markdown b/source/_lovelace/picture.markdown index 4b57d11f994..5dffca2b3e3 100644 --- a/source/_lovelace/picture.markdown +++ b/source/_lovelace/picture.markdown @@ -14,15 +14,15 @@ Screenshot of the picture card. {% configuration %} type: required: true - description: picture + description: "`picture`" type: string image: required: true - description: The URL of an image. When you want to store images in your Home Assistant installation use the [hosting files documentation](/integrations/http/#hosting-files). After storing your files, use the /local path, for example /local/filename.jpg . + description: "The URL of an image. When you want to store images in your Home Assistant installation use the [hosting files documentation](/integrations/http/#hosting-files). After storing your files, use the `/local` path, for example, `/local/filename.jpg`." type: string theme: required: false - description: "Set to any theme within `themes.yaml`" + description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/). type: string tap_action: required: false @@ -43,7 +43,7 @@ double_tap_action: {% configuration badges %} user: required: true - description: User id that can see the view tab. + description: User ID that can see the view tab. type: string {% endconfiguration %} diff --git a/source/_lovelace/plant-status.markdown b/source/_lovelace/plant-status.markdown index 6834b1b33ff..24dc0b1cecb 100644 --- a/source/_lovelace/plant-status.markdown +++ b/source/_lovelace/plant-status.markdown @@ -20,16 +20,16 @@ type: type: string entity: required: true - description: "Entity ID from `plant` domain" + description: Entity ID of `plant` domain. type: string name: required: false - description: Overwrites friendly name + description: Overwrites friendly name. type: string - default: Entity Name + default: Entity name theme: required: false - description: "Set to any theme within `themes.yaml`" + description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/). type: string {% endconfiguration %} diff --git a/source/_lovelace/sensor.markdown b/source/_lovelace/sensor.markdown index 01949b77cc8..5708023196e 100644 --- a/source/_lovelace/sensor.markdown +++ b/source/_lovelace/sensor.markdown @@ -11,46 +11,46 @@ The Sensor card gives you a quick overview of your sensors state with an optiona Screenshot of the sensor card.

    -To add the Sensor card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Sensor** from the card picker. All options for this card can be configured via the user interface. +To add the Sensor card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Sensor** from the card picker. All options for this card can be configured via the user interface. {% configuration %} type: required: true - description: sensor + description: "`sensor`" type: string entity: required: true - description: Entity id of `sensor` domain + description: Entity ID of `sensor` domain. type: string icon: required: false - description: The card icon + description: The card icon. type: string name: required: false - description: The card name + description: The card name. type: string graph: required: false - description: Type of graph `none` or `line` + description: Type of graph (`none` or `line`). type: string unit: required: false - description: The unit of measurement + description: The unit of measurement. type: string detail: required: false - description: Detail of the graph `1` or `2`, `1` equals one point/hour, `2` equals six points/hour + description: Detail of the graph `1` or `2` (`1` = one point/hour, `2` = six points/hour). type: integer default: 1 hours_to_show: required: false - description: Hours to show in graph + description: Hours to show in graph. type: integer default: 24 theme: required: false - description: Set to any theme within `themes.yaml` + description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/). type: string {% endconfiguration %} diff --git a/source/_lovelace/shopping-list.markdown b/source/_lovelace/shopping-list.markdown index ba1893b3960..360a4172448 100644 --- a/source/_lovelace/shopping-list.markdown +++ b/source/_lovelace/shopping-list.markdown @@ -13,8 +13,7 @@ Setup of the [Shopping List integration](/integrations/shopping_list/) is requir Screenshot of the Shopping List card.

    - -To add the Shopping List card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Shopping List** from the card picker. All options for this card can be configured via the user interface. +To add the Shopping List card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Shopping List** from the card picker. All options for this card can be configured via the user interface. Alternatively, the card can be configured using YAML: @@ -25,15 +24,15 @@ type: shopping-list {% configuration %} type: required: true - description: shopping-list + description: "`shopping-list`" type: string title: required: false - description: Title of Shopping List + description: Title of shopping list. type: string theme: required: false - description: "Set to any theme within `themes.yaml`" + description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/). type: string {% endconfiguration %} diff --git a/source/_lovelace/thermostat.markdown b/source/_lovelace/thermostat.markdown index ffba79e7b41..4add4187272 100644 --- a/source/_lovelace/thermostat.markdown +++ b/source/_lovelace/thermostat.markdown @@ -11,25 +11,25 @@ The Thermostat card gives control of your [climate](/integrations/#climate) enti Screenshot of the Thermostat card.

    -To add the Thermostat card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Thermostat** from the card picker. All options for this card can be configured via the user interface. +To add the Thermostat card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Thermostat** from the card picker. All options for this card can be configured via the user interface. {% configuration %} type: required: true - description: thermostat + description: "`thermostat`" type: string entity: required: true - description: Entity id of `climate` domain + description: Entity ID of `climate` domain. type: string name: required: false description: Overwrites friendly name. type: string - default: Name of Entity. + default: Name of entity. theme: required: false - description: Set to any theme within `themes.yaml` + description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/). type: string {% endconfiguration %} diff --git a/source/_lovelace/vertical-stack.markdown b/source/_lovelace/vertical-stack.markdown index 23bb093243e..fb3d0b05b43 100644 --- a/source/_lovelace/vertical-stack.markdown +++ b/source/_lovelace/vertical-stack.markdown @@ -6,16 +6,16 @@ description: "The Vertical Stack card allows you to group multiple cards so they The Vertical Stack card allows you to group multiple cards so they always sit in the same column. -To add the Vertical Stack card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Vertical Stack** from the card picker. All options for this card can be configured via the user interface. +To add the Vertical Stack card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Vertical Stack** from the card picker. All options for this card can be configured via the user interface. {% configuration %} type: required: true - description: vertical-stack + description: "`vertical-stack`" type: string title: required: false - description: Title of Stack + description: Title of stack. type: string cards: required: true @@ -23,7 +23,7 @@ cards: type: list {% endconfiguration %} -### Examples +## Examples Alternatively, the card can be configured using YAML: diff --git a/source/_lovelace/weather-forecast.markdown b/source/_lovelace/weather-forecast.markdown index b363b5d32e0..ec562aa14ca 100644 --- a/source/_lovelace/weather-forecast.markdown +++ b/source/_lovelace/weather-forecast.markdown @@ -11,10 +11,9 @@ The Weather Forecast card displays the weather. Very useful to include on interf Screenshot of the Weather card.

    -To add the Weather card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the plus button in the bottom right corner and select **Weather** from the card picker. - -### Card Settings +To add the Weather card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Weather** from the card picker. +## Card Settings {% configuration_basic %} Entity: @@ -26,7 +25,7 @@ Show Forecast: Secondary Info Attribute: description: Here you can specify a secondary attribute to show under the current temperature. Ex. Extrema, Precipitation, Humidity. If not set, it will default to Extrema (High/Low) if available, if not available then Precipitation and if precipitation isn't available then Humidity. Theme: - description: Theme your card using any installed theme in your HA environment. + description: Name of any loaded theme to be used for this card. For more information about themes, see the [frontend documentation](/integrations/frontend/). {% endconfiguration_basic %}
    @@ -37,25 +36,24 @@ Theme:
    - ### YAML -This is for if you use YAML mode or just prefer to use YAML in the Code Editor in the UI +This is for if you use YAML mode or just prefer to use YAML in the Code Editor in the UI. {% configuration %} type: required: true - description: weather-forecast + description: "`weather-forecast`" type: string entity: required: true - description: "The `entity_id` of the `weather` platform to use." + description: Entity ID of `weather` domain. type: string name: required: false description: Overwrites the friendly name. type: string - default: Entity Name + default: Entity name show_forecast: required: false description: Show next hours/days forecast. @@ -68,7 +66,7 @@ secondary_info_attribute: default: Defaults to `extrema` if available, if not available then `precipitation` and if precipitation isn't available then `humidity`. theme: required: false - description: "Set to any theme within `themes.yaml`" + description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/). type: string {% endconfiguration %} @@ -79,12 +77,11 @@ type: weather-forecast entity: weather.openweathermap ``` - ### Advanced -##### Themeable Icons +#### Themeable Icons -The default weather icons are themable via a [theme](/integrations/frontend/#themes). Theme variables include: +The default weather icons are themable via a [theme](/integrations/frontend/#themes). Theme variables include: ```yaml --weather-icon-cloud-front-color @@ -105,7 +102,7 @@ Example theme configuration:   -##### Personal Icons +#### Personal Icons Weather icons can be overwritten with your own personal images via a [theme](/integrations/frontend/#themes). Theme variables include: diff --git a/source/lovelace/badges.markdown b/source/lovelace/badges.markdown index 638b1735849..3934736eee1 100644 --- a/source/lovelace/badges.markdown +++ b/source/lovelace/badges.markdown @@ -5,7 +5,7 @@ description: "Description of the various badges that are available." Badges are widgets that sit at the top of a Lovelace panel, above all the cards. -### State Label Badge +## State Label Badge The State Label badge allows you to display a state badge. This badge supports [actions](/lovelace/actions/). @@ -17,22 +17,22 @@ entity: light.living_room {% configuration state_label %} type: required: true - description: state-label + description: "`state-label`" type: string entity: required: true - description: Home Assistant entity ID. + description: Entity ID. type: string name: required: false description: Overwrites friendly name. type: string - default: Name of Entity + default: Name of entity icon: required: false description: Overwrites icon or entity picture. type: string - default: Entity Domain Icon + default: Entity domain icon image: required: false description: The URL of an image. @@ -49,14 +49,14 @@ show_icon: default: "true" {% endconfiguration %} -### Entity Filter Badge +## Entity Filter Badge This badge allows you to define a list of entities that you want to track only when in a certain state. Very useful for showing lights that you forgot to turn off or show a list of people only when they're at home. {% configuration filter_badge %} type: required: true - description: entity-filter + description: "`entity-filter`" type: string entities: required: true @@ -68,7 +68,7 @@ state_filter: type: list {% endconfiguration %} -#### Options For Entities +### Options For Entities If you define entities as objects instead of strings (by adding `entity:` before entity ID), you can add more customization and configurations: @@ -79,7 +79,7 @@ type: type: string entity: required: true - description: Home Assistant entity ID. + description: Entity ID. type: string name: required: false @@ -99,7 +99,7 @@ state_filter: type: list {% endconfiguration %} -#### Options For state_filter +### Options For state_filter If you define state_filter as objects instead of strings (by adding `value:` before your state value), you can add more customization to your filter: @@ -118,7 +118,7 @@ attribute: type: string {% endconfiguration %} -#### Examples +### Examples Show only active switches or lights in the house diff --git a/source/lovelace/dashboards-and-views.markdown b/source/lovelace/dashboards-and-views.markdown index 77f264b2d9f..1f0050b8d14 100644 --- a/source/lovelace/dashboards-and-views.markdown +++ b/source/lovelace/dashboards-and-views.markdown @@ -59,6 +59,7 @@ lovelace: ``` You can also add YAML dashboards when your main dashboard is UI configured: + ```yaml lovelace: mode: storage @@ -329,7 +330,7 @@ If you define `visible` as objects instead of a boolean to specify conditions fo {% configuration badges %} user: required: true - description: User id that can see the view tab (unique hex value found on the Users configuration page). + description: User ID that can see the view tab (unique hex value found on the Users configuration page). type: string {% endconfiguration %} diff --git a/source/lovelace/header-footer.markdown b/source/lovelace/header-footer.markdown index 5e45a00c7b4..330a047a6d6 100644 --- a/source/lovelace/header-footer.markdown +++ b/source/lovelace/header-footer.markdown @@ -22,11 +22,11 @@ header: {% configuration header-footer %} type: required: true - description: picture + description: "`picture`" type: string image: required: true - description: The URL of an image + description: The URL of an image. type: string tap_action: required: false @@ -65,19 +65,19 @@ entities: keys: entity: required: true - description: The entity to render + description: The entity ID to render. type: string icon: required: false - description: Override the entity icon + description: Override the entity icon. type: string image: required: false - description: Override the entity image + description: Override the entity image. type: string name: required: false - description: Label for the button + description: Label for the button. type: string {% endconfiguration %} @@ -100,7 +100,7 @@ footer: {% configuration header-footer %} entity: required: true - description: Entity ID of `sensor` domain + description: Entity ID of `sensor` domain. type: string detail: required: false From b051a83a4ffc738042902e5b58a75b5ccddab693 Mon Sep 17 00:00:00 2001 From: Philip Allgaier Date: Sat, 23 Jan 2021 14:30:08 +0100 Subject: [PATCH 080/106] Document `buttons` action support for `entities` card (#16214) --- source/_lovelace/entities.markdown | 187 ++++++++++++++++------------- 1 file changed, 102 insertions(+), 85 deletions(-) diff --git a/source/_lovelace/entities.markdown b/source/_lovelace/entities.markdown index 28688842429..a44985aba1a 100644 --- a/source/_lovelace/entities.markdown +++ b/source/_lovelace/entities.markdown @@ -11,7 +11,7 @@ To add the Entities card to your user interface, click the Lovelace menu (three {% configuration %} type: required: true - description: entities + description: "`entities`" type: string entities: required: true @@ -19,11 +19,11 @@ entities: type: list title: required: false - description: The card title. + description: Card title. type: string icon: required: false - description: An icon to display to the left of the title + description: An icon to display to the left of the title. type: string show_header_toggle: required: false @@ -32,11 +32,11 @@ show_header_toggle: default: true theme: required: false - description: Set to any theme within `themes.yaml`. + description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/). type: string state_color: required: false - description: Set to `true` to have icons colored when entity is active + description: Set to `true` to have icons colored when entity is active. type: boolean default: false header: @@ -51,7 +51,7 @@ footer: ## Options For Entities -If you define entities as objects instead of strings (by adding `entity:` before entity ID), you can add more customization and configuration: +If you define entities as objects instead of strings (by adding `entity:` before entity ID), you can add more customization and configuration. {% configuration %} entity: @@ -82,21 +82,13 @@ format: required: false description: "How the state should be formatted. Currently only used for timestamp sensors. Valid values are: `relative`, `total`, `date`, `time` and `datetime`." type: string -header: - required: false - description: Header widget to render. See [header documentation](/lovelace/header-footer/). - type: map -footer: - required: false - description: Footer widget to render. See [footer documentation](/lovelace/header-footer/). - type: map action_name: required: false - description: Button label. (Only applies to `script` and `scene` rows) + description: Button label (only applies to `script` and `scene` rows). type: string state_color: required: false - description: Set to `true` to have icons colored when entity is active + description: Set to `true` to have icons colored when entity is active. type: boolean default: false tap_action: @@ -117,8 +109,39 @@ double_tap_action: Rather than only displaying an entity's state as a text output, the Entities card supports multiple special rows for buttons, attributes, web links, dividers and sections, etc. +### Attribute + +{% configuration %} +type: + required: true + description: "`attribute`" + type: string +entity: + required: true + description: Entity ID. + type: string +attribute: + required: true + description: Attribute to display from the entity. + type: string +prefix: + required: false + description: Text before entity state. + type: string +suffix: + required: false + description: Text after entity state. + type: string +name: + required: false + description: Overwrites friendly entity name. + type: string +{% endconfiguration %} + ### Button +Row with an (optional) icon, label and a single text button at the end of the row that can trigger a defined action. + {% configuration %} type: required: true @@ -126,11 +149,11 @@ type: type: string name: required: true - description: Main Label. + description: Main label. type: string icon: required: false - description: An icon to display to the left of the label. + description: An icon to display to the left of the main label. type: string action_name: required: false @@ -151,6 +174,61 @@ double_tap_action: type: map {% endconfiguration %} +### Buttons + +Multiple buttons displayed in a single row next to each other. See examples further below. + +{% configuration %} +type: + required: true + description: "`buttons`" + type: string +entities: + required: true + description: A list of entities to show. Each entry is either an entity ID or a map. + type: list + keys: + entity: + required: true + description: Entity ID. + type: string + icon: + required: false + description: Override the entity icon. + type: string + image: + required: false + description: Override the entity image. + type: string + name: + required: false + description: Override the friendly entity name. + type: string + default: Entity name + show_name: + required: false + description: If false, the button name is not shown. + type: boolean + default: "true" + show_icon: + required: false + description: If false, the icon is not shown. + type: boolean + default: "true" + tap_action: + required: false + description: Action taken on card tap. See [action documentation](/lovelace/actions/#tap-action). + type: map + hold_action: + required: false + description: Action taken on card tap and hold. See [action documentation](/lovelace/actions/#hold-action). + type: map + double_tap_action: + required: false + description: Action taken on card double tap. See [action documentation](/lovelace/actions/#double-tap-action). + type: map +{% endconfiguration %} + ### Cast Special row to start Home Assistant Cast. @@ -170,12 +248,12 @@ view: type: string name: required: false - description: Name to show in the row + description: Name to show in the row. type: string default: Home Assistant Cast icon: required: false - description: Icon to use + description: Icon to use. type: string default: "`hass:television`" hide_if_unavailable: @@ -244,7 +322,7 @@ type: type: string label: required: false - description: Section label + description: Section label. type: string {% endconfiguration %} @@ -257,81 +335,20 @@ type: type: string url: required: true - description: "Website URL (or internal URL e.g., `/hassio/dashboard` or `/panel_custom_name`)" + description: "Website URL (or internal URL e.g., `/hassio/dashboard` or `/panel_custom_name`)." type: string name: required: false - description: Link label + description: Link label. type: string default: URL path icon: required: false - description: "Icon to display (e.g., `mdi:home`)" + description: "Icon to display (e.g., `mdi:home`)." type: string default: "`mdi:link`" {% endconfiguration %} -### Buttons - -Multiple buttons displayed in a single row next to each other. See examples further below. - -{% configuration %} -type: - required: true - description: "`buttons`" - type: string -entities: - required: true - description: A list of entities to show. Each entry is either an entity ID or a map. - type: list - keys: - entity: - required: true - description: Entity ID - type: string - icon: - required: false - description: Override the entity icon. - type: string - image: - required: false - description: Override the entity image. - type: string - name: - required: false - description: Label for the button - type: string -{% endconfiguration %} - -### Attribute - -{% configuration %} -type: - required: true - description: "`attribute`" - type: string -entity: - required: true - description: Entity ID - type: string -attribute: - required: true - description: Attribute to display from the entity. - type: string -prefix: - required: false - description: Text before entity state. - type: string -suffix: - required: false - description: Text after entity state. - type: string -name: - required: false - description: Overwrites friendly name. - type: string -{% endconfiguration %} - ## Examples ### Entity rows From 84b112024fd252a98e1f41a7a7e4143ae0f57262 Mon Sep 17 00:00:00 2001 From: Philip Allgaier Date: Sat, 23 Jan 2021 14:37:56 +0100 Subject: [PATCH 081/106] Note about isoformat() for frontend templates (#16097) Co-authored-by: Franck Nijhof --- .../_docs/configuration/templating.markdown | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index a9f94e3c5da..80b9298657f 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -195,7 +195,31 @@ The same thing can also be expressed as a filter: - Filter `timestamp_utc` converts a UNIX timestamp to its string representation representation as date/time in UTC timezone. - Filter `timestamp_custom(format_string, local_time=True)` converts an UNIX timestamp to its string representation based on a custom format, the use of a local timezone is default. Supports the standard [Python time formatting options](https://docs.python.org/3/library/time.html#time.strftime). -Note: [UNIX timestamp](https://en.wikipedia.org/wiki/Unix_time) is the number of seconds that have elapsed since 00:00:00 UTC on 1 January 1970. Therefore, if used as a function's argument, it can be substituted with a numeric value (`int` or `float`): +
    + +[UNIX timestamp](https://en.wikipedia.org/wiki/Unix_time) is the number of seconds that have elapsed since 00:00:00 UTC on 1 January 1970. Therefore, if used as a function's argument, it can be substituted with a numeric value (`int` or `float`). + +
    + +
    + +If your template is returning a timestamp that should be displayed in the frontend (e.g., as a sensor entity with `device_class: timestamp`), you have to ensure that it is the ISO 8601 format (meaning it has the "T" separator between the date and time portion). Otherwise, frontend rendering on macOS and iOS devices will show an error. The following value template would result in such an error: + +{% raw %} + +`{{ states.sun.sun.last_changed }}` => `2021-01-24 07:06:59+00:00` (missing "T" separator) + +{% endraw %} + +To fix it, enforce the ISO conversion via `isoformat()`: + +{% raw %} + +`{{ states.sun.sun.last_changed.isoformat() }}` => `2021-01-24T07:06:59+00:00` (contains "T" separator) + +{% endraw %} + +
    {% raw %} ```yaml From c4e721278d44f6f65411784c92ca091f05aafb7c Mon Sep 17 00:00:00 2001 From: Philip Allgaier Date: Sat, 23 Jan 2021 14:57:52 +0100 Subject: [PATCH 082/106] Extended frontend theme info a bit (#16280) Co-authored-by: Franck Nijhof --- source/_integrations/frontend.markdown | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/source/_integrations/frontend.markdown b/source/_integrations/frontend.markdown index f7ce0db349c..6d022c91fd6 100644 --- a/source/_integrations/frontend.markdown +++ b/source/_integrations/frontend.markdown @@ -58,20 +58,30 @@ frontend: themes: happy: primary-color: pink + text-primary-color: purple + mdc-theme-primary: plum sad: primary-color: blue ``` -The example above defined two themes named `happy` and `sad`. For each theme you can set values for CSS variables. For a partial list of variables used by the main frontend see [ha-style.ts](https://github.com/home-assistant/home-assistant-polymer/blob/master/src/resources/ha-style.ts). +The example above defined two themes named `happy` and `sad`. For each theme you can set values for CSS variables. If you want to provide hex color values, wrap those in apostrophes, since otherwise YAML would consider them to be comments (`primary-color: '#123456'`). For a partial list of variables used by the main frontend see [ha-style.ts](https://github.com/home-assistant/home-assistant-polymer/blob/master/src/resources/ha-style.ts). + +As with all configuration, you can either: + +- Directly specify the themes inside your `configuration.yaml` file +- Put them into a separate file (e.g. `themes.yaml`) and include that in your configuration (`themes: !include themes.yaml`) +- Create a dedicated folder (e.g. `my_themes`) and include all files from within this folder (`themes: !include_dir_merge_named my_themes`) + +For more details about splitting up the configuration into multiple files, see [this page](/docs/configuration/splitting_configuration/). Check our [community forums](https://community.home-assistant.io/c/projects/themes) to find themes to use. -### Setting themes +## Setting themes There are 2 themes-related services: - - `frontend.reload_themes`: reloads theme configuration from your `configuration.yaml` file. - - `frontend.set_theme`: sets backend-preferred theme name. + - `frontend.reload_themes`: Reloads theme configuration from your `configuration.yaml` file. + - `frontend.set_theme`: Sets backend-preferred theme name. ### Service `set_theme` From 350ee5d9b08e426fb231e0a0207b0bbdfd0c445c Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 23 Jan 2021 15:04:45 +0100 Subject: [PATCH 083/106] Add /latest-security-alert redirect --- source/_redirects | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/_redirects b/source/_redirects index ad198cd130c..a7a09530792 100644 --- a/source/_redirects +++ b/source/_redirects @@ -5,6 +5,7 @@ /join-chat https://discord.gg/BzQNTqK /suggest-community-highlight https://docs.google.com/forms/d/e/1FAIpQLSd9VWPeVM0xg0swWL6kT3wkQUKt8vWsTL5WtPO95LAy-0cYZw/viewform /get-blueprints https://community.home-assistant.io/c/blueprints-exchange/53 +/latest-security-alert /blog/2021/01/14/security-bulletin/ # Older development pages /developers https://developers.home-assistant.io @@ -2259,4 +2260,4 @@ /integrations/weblink /more-info/removed-integration 301 /integrations/xfinity /more-info/removed-integration 301 /integrations/yessssms /more-info/removed-integration 301 -/integrations/yweather /more-info/removed-integration 301 \ No newline at end of file +/integrations/yweather /more-info/removed-integration 301 From f42306b10426dc5edb8f8a805ec336b9502ff73f Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Sat, 23 Jan 2021 19:40:37 +0100 Subject: [PATCH 084/106] Add security disclosure blog 2 --- _config.yml | 4 +- source/_layouts/default.html | 4 +- .../_posts/2021-01-06-release-20211.markdown | 20 ++++++ .../2021-01-14-security-bulletin.markdown | 4 +- .../2021-01-21-security-disclosure.markdown | 2 + .../2021-01-23-security-disclosure2.markdown | 65 ++++++++++++++++++ .../2021-01-security-disclosure2/social.png | Bin 0 -> 105695 bytes 7 files changed, 94 insertions(+), 5 deletions(-) create mode 100644 source/_posts/2021-01-23-security-disclosure2.markdown create mode 100644 source/images/blog/2021-01-security-disclosure2/social.png diff --git a/_config.yml b/_config.yml index 6cece625dac..f7c7b2f4356 100644 --- a/_config.yml +++ b/_config.yml @@ -101,8 +101,8 @@ social: # Home Assistant release details current_major_version: 2021 current_minor_version: 1 -current_patch_version: 4 -date_released: 2021-01-16 +current_patch_version: 5 +date_released: 2021-01-23 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_layouts/default.html b/source/_layouts/default.html index f081bd5720f..78aae3551b9 100644 --- a/source/_layouts/default.html +++ b/source/_layouts/default.html @@ -9,8 +9,8 @@ align-items: center; padding: 0 8px; "> - Make sure you run at least Home Assistant Core 2021.1.3 -
    This is a disclosure about security vulnerabilities found in 3rd party custom integrations. Custom integrations are not created and/or maintained by Home Assistant. Users install them at their own risk. We want to inform you about these because the found vulnerabilities impact the security of your Home Assistant instance. + +If you do not use custom integrations, your Home Assistant is not vulnerable. If you do use custom integrations, your instance might be vulnerable if you use one of the impacted integrations. + +TL;DR: + +- Multiple custom integrations were found that allowed an attacker to steal any file without logging in. Previously implemented fixes were not sufficient. +- Upgrade Home Assistant as soon as possible. Home Assistant Core **2021.1.5** added mitigation to prevent the issue from happening. +- Upgrade the custom integrations to a fixed version or remove them from your installation. +- If you have used any of the custom integrations with a known vulnerability, we recommend that you update your credentials. + +On the morning of Saturday, January 23 2021, the Home Assistant project was informed by security researcher Nathan Brady about a security vulnerability. It provided more insight on the implementation of the fixes done for the [previous security vulnerability](/blog/2021/01/22/security-disclosure/). We learned that not all custom integrations that implement security patches are sufficient to deflect the problem. + +We verified all fixes made to custom integrations that were found to be vulnerable in the previous security disclosure. The conclusion is that some custom integrations are still vulnerable to a directory traversal attack while not being authenticated with Home Assistant. It allows an attacker to access any file without having to log in. This access includes any credentials that you might have stored to allow Home Assistant to access other services. + +We have responsibly disclosed these issues to the authors of those custom integrations and worked with them on fixing their integrations. + +The following have been found: + +- [Home Assistant Community Store](https://github.com/hacs/integration) (HACS) -- fixed in **1.10.1** +- [Font Awesome](https://github.com/thomasloven/hass-fontawesome) -- fixed in **1.3.1** +- [BWAlarm (ak74 edition)](https://github.com/akasma74/Hass-Custom-Alarm) -- fixed in **1.12.9** +- [Simple Icons](https://github.com/vigonotion/hass-simpleicons) -- fixed in **1.11.0** + +Please make sure to also read the [previous security disclosure](/blog/2021/01/22/security-disclosure/). While this specific security vulnerability might not impact them, you might be impacted by the previously found vulnerability. + +Besides working with the custom integration authors, the following actions have been taken to help protect users: + +- Home Assistant released Home Assistant Core **2021.1.5** with extra protection to stop directory traversal attacks before reaching the vulnerable code. This prevents the abuse of all found vulnerabilities. +- This security disclosure is shared widely and linked from banners on the Home Assistant website and forums. +- The Home Assistant Supervisor will notify the user when a possible insecure installation is found that uses custom integrations. +- The Android & iOS Apps are updated to notify the user if their Home Assistant instance is potentially insecure. +- Nabu Casa updated their feature to limit remote access via Home Assistant Cloud and block instances that run an insecure Home Assistant Core version. +- An alert has been placed at [alerts.home-assistant.io](https://alerts.home-assistant.io). + +Alright, so here we are, a day after our first major security disclosure, disclosing a second one. Surely it is not fun, but we are thankful it got reported responsible to us. This time we were able to move quickly and got everything updated pretty fast. Therefore, we decided to disclose all information immediately. + +I want to emphasize that it's not allowed to personally harass/attack/insult the developers of these custom integrations. That would be a violation of our Code of Conduct and we will enforce this. + +Paulus + +## FAQ + +--- + +### Has this vulnerability been abused? + +We don't know. diff --git a/source/images/blog/2021-01-security-disclosure2/social.png b/source/images/blog/2021-01-security-disclosure2/social.png new file mode 100644 index 0000000000000000000000000000000000000000..8615646397a5adaaf5a61bf7533a0c95d64cd28e GIT binary patch literal 105695 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 Q4Wl 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 INE-(HFI`(MKL7v# literal 0 HcmV?d00001 From 28d5313fc2633af2a76022950766507b828fe5ff Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Sat, 23 Jan 2021 20:19:21 +0100 Subject: [PATCH 085/106] Fix latest security redirect --- source/_redirects | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_redirects b/source/_redirects index a7a09530792..3c8e06b55c1 100644 --- a/source/_redirects +++ b/source/_redirects @@ -5,7 +5,7 @@ /join-chat https://discord.gg/BzQNTqK /suggest-community-highlight https://docs.google.com/forms/d/e/1FAIpQLSd9VWPeVM0xg0swWL6kT3wkQUKt8vWsTL5WtPO95LAy-0cYZw/viewform /get-blueprints https://community.home-assistant.io/c/blueprints-exchange/53 -/latest-security-alert /blog/2021/01/14/security-bulletin/ +/latest-security-alert /blog/2021/01/23/security-disclosure2/ # Older development pages /developers https://developers.home-assistant.io From a3ae8a3b840694c2bb059b4d53eaaec473b00f1f Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Sat, 23 Jan 2021 20:32:38 +0100 Subject: [PATCH 086/106] Fix typo in blog post --- source/_posts/2021-01-23-security-disclosure2.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2021-01-23-security-disclosure2.markdown b/source/_posts/2021-01-23-security-disclosure2.markdown index 419e9e5d13d..95c8a049857 100644 --- a/source/_posts/2021-01-23-security-disclosure2.markdown +++ b/source/_posts/2021-01-23-security-disclosure2.markdown @@ -50,7 +50,7 @@ Besides working with the custom integration authors, the following actions have - Nabu Casa updated their feature to limit remote access via Home Assistant Cloud and block instances that run an insecure Home Assistant Core version. - An alert has been placed at [alerts.home-assistant.io](https://alerts.home-assistant.io). -Alright, so here we are, a day after our first major security disclosure, disclosing a second one. Surely it is not fun, but we are thankful it got reported responsible to us. This time we were able to move quickly and got everything updated pretty fast. Therefore, we decided to disclose all information immediately. +Alright, so here we are, a day after our first major security disclosure, disclosing a second one. Surely it is not fun, but we are thankful it got reported responsibly to us. This time we were able to move quickly and got everything updated pretty fast. Therefore, we decided to disclose all information immediately. I want to emphasize that it's not allowed to personally harass/attack/insult the developers of these custom integrations. That would be a violation of our Code of Conduct and we will enforce this. From 8f2b121f499edc3c2a9fe71df14afd4c618f196c Mon Sep 17 00:00:00 2001 From: Adam Outler Date: Sat, 23 Jan 2021 17:50:59 -0500 Subject: [PATCH 087/106] Additional d removed from documentation. (#16279) --- source/hassio/enable_i2c.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/hassio/enable_i2c.markdown b/source/hassio/enable_i2c.markdown index ed83a1571e2..d04f55a64ea 100644 --- a/source/hassio/enable_i2c.markdown +++ b/source/hassio/enable_i2c.markdown @@ -49,7 +49,7 @@ The I2C devices should now be present under /dev. Alternatively, by attaching a keyboard and screen to your device, you can access the physical terminal to the Home Assistant Operating System. -You can enabled i2c via this terminal: +You can enable i2c via this terminal: - Login as `root`. - Type `login` and press enter to access the shell. From 77bdc16fb8b8425540303ca6040172b9561e3f2b Mon Sep 17 00:00:00 2001 From: Dubh Ad Date: Sun, 24 Jan 2021 00:05:29 +0000 Subject: [PATCH 088/106] Update trigger.markdown (#16271) Geolocation vs zone causes regular confusion. --- source/_docs/automation/trigger.markdown | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index c6ace8ed612..a1b137fd4fb 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -569,6 +569,13 @@ automation: Geolocation trigger fires when an entity is appearing in or disappearing from a zone. Entities that are created by a [Geolocation](/integrations/geo_location/) platform support reporting GPS coordinates. Because entities are generated and removed by these platforms automatically, the entity id normally cannot be predicted. Instead, this trigger requires the definition of a `source`, which is directly linked to one of the Geolocation platforms. +
    + +This isn't for use with `device_tracker` entities. For those look above at the `zone` trigger. + +
    + + ```yaml automation: trigger: From 418052aeca28e338b5e5238f5677635688f5a0d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 24 Jan 2021 01:19:48 +0100 Subject: [PATCH 089/106] Bump commonmarker from 0.21.0 to 0.21.1 (#16267) Bumps [commonmarker](https://github.com/gjtorikian/commonmarker) from 0.21.0 to 0.21.1. - [Release notes](https://github.com/gjtorikian/commonmarker/releases) - [Commits](https://github.com/gjtorikian/commonmarker/compare/v0.21.0...v0.21.1) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index ee80dc983aa..b9fc0dcf4f9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -5,7 +5,7 @@ GEM public_suffix (>= 2.0.2, < 5.0) chunky_png (1.4.0) colorator (1.1.0) - commonmarker (0.21.0) + commonmarker (0.21.1) ruby-enum (~> 0.5) compass (1.0.3) chunky_png (~> 1.2) From 6e4260ec8b307bdcb33257ed04e54830ceede909 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 24 Jan 2021 01:20:17 +0100 Subject: [PATCH 090/106] Bump textlint from 11.7.7 to 11.8.1 (#16266) Bumps [textlint](https://github.com/textlint/textlint) from 11.7.7 to 11.8.1. - [Release notes](https://github.com/textlint/textlint/releases) - [Commits](https://github.com/textlint/textlint/compare/textlint@11.7.7...textlint@11.8.1) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 352 ++++++++++++++++++++-------------------------- package.json | 2 +- 2 files changed, 154 insertions(+), 200 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2e7c0882d0d..2fd56caa709 100644 --- a/package-lock.json +++ b/package-lock.json @@ -104,56 +104,56 @@ "dev": true }, "@textlint/ast-tester": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-2.2.5.tgz", - "integrity": "sha512-kKolF3xDI0G1sjM2HJE1EZAf407026b/wHC0FAdo9/FAipUTtAATKDnvjYeN++W1b5TxtIWRF5SbHppK7eRXGQ==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-2.3.1.tgz", + "integrity": "sha512-L9M2VNTYJ5sVdkPs9jH7s01Gg900Nuk7m9zQmCz9WFa3YyzJFEd7GCSmAvLMgX31jw5bbvvmj7DngymlP+PahQ==", "dev": true, "requires": { - "@textlint/ast-node-types": "^4.3.5" + "@textlint/ast-node-types": "^4.4.1" }, "dependencies": { "@textlint/ast-node-types": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.3.5.tgz", - "integrity": "sha512-syl8VE34DQDTV7+IADP1jYtGsxTC9MmCKLmpJX90G6nNv9CzgAZIukd7WMiJFZpFgcDAlibEaCKlJRxjfEmmPA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz", + "integrity": "sha512-2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA==", "dev": true } } }, "@textlint/ast-traverse": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-2.2.6.tgz", - "integrity": "sha512-cpBF4UsbQ95oFU8gaGrkYar1H75ORvfRWN78dXneyinJFG1KBajXN9lLYhXhg+Z1Rn/9Ifw+SCjLZKnFmnwM0g==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-2.3.1.tgz", + "integrity": "sha512-uOFKqm3M9by55Zl2ryZ7jOSiLdLhDmVgX0IG/MJfGKY1a/MSyt5qwy9cvZNcob6hNCPeRMW8boAH2uRJOwRcoQ==", "dev": true, "requires": { - "@textlint/ast-node-types": "^4.3.5" + "@textlint/ast-node-types": "^4.4.1" }, "dependencies": { "@textlint/ast-node-types": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.3.5.tgz", - "integrity": "sha512-syl8VE34DQDTV7+IADP1jYtGsxTC9MmCKLmpJX90G6nNv9CzgAZIukd7WMiJFZpFgcDAlibEaCKlJRxjfEmmPA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz", + "integrity": "sha512-2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA==", "dev": true } } }, "@textlint/feature-flag": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-3.2.5.tgz", - "integrity": "sha512-OePponYtxPGjNf6GBqioRaOr1m8LJZQLCj49LgoGZnolm9hmKq3QP1jEKGbzxsHCADL7YHoKZ6zxKGkicmsxPA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-3.3.1.tgz", + "integrity": "sha512-0a1UopFf30UrmEDKFNATXlotMqwbLGjJa1GTuljL/AKn2Adz7rPawclW4pHf/b//K7Da5GOtuzbIfVAZSFQRxA==", "dev": true, "requires": { "map-like": "^2.0.0" } }, "@textlint/fixer-formatter": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-3.2.6.tgz", - "integrity": "sha512-xVVEHcpUeBBFI7Ug4y/tGTRLf6XX9lsg/iLvk6cjWJhxnFsVOkSFJRrZFetIJnAKnhQmCAv/i+ybgnTHhas7pw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-3.3.1.tgz", + "integrity": "sha512-ZPK66J61lv8UMdqJeG4YUPfKPlCom/jiv8kZkz5ELnLA587HLOlEIYLaNjKop0viW5z3Fz9cZd5glIHrPymiqQ==", "dev": true, "requires": { - "@textlint/module-interop": "^1.1.5", - "@textlint/types": "^1.4.6", + "@textlint/module-interop": "^1.2.1", + "@textlint/types": "^1.5.1", "chalk": "^1.1.3", "debug": "^4.3.1", "diff": "^4.0.2", @@ -165,18 +165,18 @@ }, "dependencies": { "@textlint/ast-node-types": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.3.5.tgz", - "integrity": "sha512-syl8VE34DQDTV7+IADP1jYtGsxTC9MmCKLmpJX90G6nNv9CzgAZIukd7WMiJFZpFgcDAlibEaCKlJRxjfEmmPA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz", + "integrity": "sha512-2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA==", "dev": true }, "@textlint/types": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.4.6.tgz", - "integrity": "sha512-hoKPvIzNf+vI0goRk90HfsVUbXkAp4BfpvRxh51TGqVG27dlYrQJZkYheuUNUAwyj0Id09qzVwXno/xQPMYPcg==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.1.tgz", + "integrity": "sha512-YgPmxEeFUXuCjWOFx4p0afxFCHJbTf9Muw/6SJDLd/txQ6YrStst3Kvw+6QGefdJe44/UdiUYtI8sYa5T1ejaQ==", "dev": true, "requires": { - "@textlint/ast-node-types": "^4.3.5" + "@textlint/ast-node-types": "^4.4.1" } }, "ansi-regex": { @@ -264,17 +264,18 @@ } }, "@textlint/kernel": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-3.3.7.tgz", - "integrity": "sha512-zLk78gCwiQIl0ElkzT8DVMOLJ5PCDWZnuRaYk7YkwmGpjJSoJcGSCqiRGhmmc4d7CCZ+AcoM0DQUSyrFzJjyMA==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-3.4.1.tgz", + "integrity": "sha512-8ZpiLy5KgmIMjda7RNgbNzoHpDnF51OC0rmMBTUl5xFMrpOcmnKZ6qcnmP7hlyR1MQJxQVzG0PvWnLHFUZL53w==", "dev": true, "requires": { - "@textlint/ast-node-types": "^4.3.5", - "@textlint/ast-tester": "^2.2.5", - "@textlint/ast-traverse": "^2.2.6", - "@textlint/feature-flag": "^3.2.5", - "@textlint/types": "^1.4.6", - "@textlint/utils": "^1.1.5", + "@textlint/ast-node-types": "^4.4.1", + "@textlint/ast-tester": "^2.3.1", + "@textlint/ast-traverse": "^2.3.1", + "@textlint/feature-flag": "^3.3.1", + "@textlint/source-code-fixer": "^3.4.1", + "@textlint/types": "^1.5.1", + "@textlint/utils": "^1.2.1", "debug": "^4.3.1", "deep-equal": "^1.1.1", "map-like": "^2.0.0", @@ -282,18 +283,18 @@ }, "dependencies": { "@textlint/ast-node-types": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.3.5.tgz", - "integrity": "sha512-syl8VE34DQDTV7+IADP1jYtGsxTC9MmCKLmpJX90G6nNv9CzgAZIukd7WMiJFZpFgcDAlibEaCKlJRxjfEmmPA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz", + "integrity": "sha512-2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA==", "dev": true }, "@textlint/types": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.4.6.tgz", - "integrity": "sha512-hoKPvIzNf+vI0goRk90HfsVUbXkAp4BfpvRxh51TGqVG27dlYrQJZkYheuUNUAwyj0Id09qzVwXno/xQPMYPcg==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.1.tgz", + "integrity": "sha512-YgPmxEeFUXuCjWOFx4p0afxFCHJbTf9Muw/6SJDLd/txQ6YrStst3Kvw+6QGefdJe44/UdiUYtI8sYa5T1ejaQ==", "dev": true, "requires": { - "@textlint/ast-node-types": "^4.3.5" + "@textlint/ast-node-types": "^4.4.1" } }, "debug": { @@ -308,15 +309,15 @@ } }, "@textlint/linter-formatter": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-3.2.6.tgz", - "integrity": "sha512-39R2PAKRDqq8p6jQj3u9ERUzrrhK33BnHK622oegaXzPeaBLjN2brBXsxnBpNJFPUW2L9BDmJcBd92E/ajLTGg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-3.3.1.tgz", + "integrity": "sha512-tBtOSfpZWr3AwIJ1vbBSD+fwB4JSEtCQIE+AgfFqO8eDMOssjxKgVtIPX9dwh3/+6vlc6KozBJjIfXoxLuaWlg==", "dev": true, "requires": { "@azu/format-text": "^1.0.1", "@azu/style-format": "^1.0.0", - "@textlint/module-interop": "^1.1.5", - "@textlint/types": "^1.4.6", + "@textlint/module-interop": "^1.2.1", + "@textlint/types": "^1.5.1", "chalk": "^1.1.3", "concat-stream": "^1.6.2", "debug": "^4.3.1", @@ -333,18 +334,18 @@ }, "dependencies": { "@textlint/ast-node-types": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.3.5.tgz", - "integrity": "sha512-syl8VE34DQDTV7+IADP1jYtGsxTC9MmCKLmpJX90G6nNv9CzgAZIukd7WMiJFZpFgcDAlibEaCKlJRxjfEmmPA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz", + "integrity": "sha512-2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA==", "dev": true }, "@textlint/types": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.4.6.tgz", - "integrity": "sha512-hoKPvIzNf+vI0goRk90HfsVUbXkAp4BfpvRxh51TGqVG27dlYrQJZkYheuUNUAwyj0Id09qzVwXno/xQPMYPcg==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.1.tgz", + "integrity": "sha512-YgPmxEeFUXuCjWOFx4p0afxFCHJbTf9Muw/6SJDLd/txQ6YrStst3Kvw+6QGefdJe44/UdiUYtI8sYa5T1ejaQ==", "dev": true, "requires": { - "@textlint/ast-node-types": "^4.3.5" + "@textlint/ast-node-types": "^4.4.1" } }, "ansi-regex": { @@ -478,12 +479,12 @@ } }, "@textlint/markdown-to-ast": { - "version": "6.2.6", - "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-6.2.6.tgz", - "integrity": "sha512-TjZTMGYla9Nznegy0r23EEzNMfWva0oksj+48aqMlbQ+UvBA5vdEC0VzCO3l0Z137RgEJ+glInbvEilo2zcjZg==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-6.3.1.tgz", + "integrity": "sha512-piqeTN6dzMr7ljlo7GbRBILMcZ8zW2H9raN48qH+HYhfrGZfEOmL5HAMMeF8h0sDz9CzTvZixEwGWLMdlwsb+A==", "dev": true, "requires": { - "@textlint/ast-node-types": "^4.3.5", + "@textlint/ast-node-types": "^4.4.1", "debug": "^4.3.1", "remark-frontmatter": "^1.3.3", "remark-parse": "^5.0.0", @@ -493,9 +494,9 @@ }, "dependencies": { "@textlint/ast-node-types": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.3.5.tgz", - "integrity": "sha512-syl8VE34DQDTV7+IADP1jYtGsxTC9MmCKLmpJX90G6nNv9CzgAZIukd7WMiJFZpFgcDAlibEaCKlJRxjfEmmPA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz", + "integrity": "sha512-2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA==", "dev": true }, "debug": { @@ -596,44 +597,80 @@ } }, "@textlint/module-interop": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-1.1.5.tgz", - "integrity": "sha512-YXz4qV6thEuwNfamHFhRsebZM7FWe1x3fD7XAqPxE8J+HLQea3Y0i52hU/rTQvt85omYq+37g3YtqjX60mYjog==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-1.2.1.tgz", + "integrity": "sha512-ZvxTTvEm7nmkRctWKREfvNvnVtRxRbdUms8cqkiYbP2K0fRIMacrWpL8z8cdkkdNZbaYciaUnyE3be7UD4J8EA==", "dev": true }, - "@textlint/text-to-ast": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-3.2.5.tgz", - "integrity": "sha512-1B43L9tVr2b6Qm37KsdI8dbutL8b5AN95PFGzPpxaJbShz8TjVUFQ5bxPrnKGc7wV5MFpazf+/UVjZx6JtUbMA==", + "@textlint/source-code-fixer": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-3.4.1.tgz", + "integrity": "sha512-FqL+xdjIU2hswS4Cmhf/bL7SWTpXkKoK/wb8Lmo9sNmEE481fc5Ey/s8JgxAaOHRpwOcmErGd16c3gXcG6Y2ow==", "dev": true, "requires": { - "@textlint/ast-node-types": "^4.3.5" + "@textlint/types": "^1.5.1", + "debug": "^4.3.1" }, "dependencies": { "@textlint/ast-node-types": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.3.5.tgz", - "integrity": "sha512-syl8VE34DQDTV7+IADP1jYtGsxTC9MmCKLmpJX90G6nNv9CzgAZIukd7WMiJFZpFgcDAlibEaCKlJRxjfEmmPA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz", + "integrity": "sha512-2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA==", + "dev": true + }, + "@textlint/types": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.1.tgz", + "integrity": "sha512-YgPmxEeFUXuCjWOFx4p0afxFCHJbTf9Muw/6SJDLd/txQ6YrStst3Kvw+6QGefdJe44/UdiUYtI8sYa5T1ejaQ==", + "dev": true, + "requires": { + "@textlint/ast-node-types": "^4.4.1" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + } + } + }, + "@textlint/text-to-ast": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-3.3.1.tgz", + "integrity": "sha512-aN1IY3u98Wig2PTF/eEJdb7XfCH5VEwZagGdG1vajx6sdc7Sc3265UVv9uEB/ypJDteYnURRICfTd6NCGwkVGA==", + "dev": true, + "requires": { + "@textlint/ast-node-types": "^4.4.1" + }, + "dependencies": { + "@textlint/ast-node-types": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz", + "integrity": "sha512-2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA==", "dev": true } } }, "@textlint/textlint-plugin-markdown": { - "version": "5.2.7", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-5.2.7.tgz", - "integrity": "sha512-GKx79nbsLwvDdyv98wnX2BSF83MKTM5j09OFJp2+wi2qrWO3U0+7YMILfdHDqyPfUk+osuy65BAFeq5jlXPomQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-5.3.1.tgz", + "integrity": "sha512-IhQVGW9YqylkuZ4AjOfLFtOWHPXtLMhWTVfvIFzMQ2TIpquIaybws8KiFN2yZzLBNNduF+PFvm+H2NRhR0w/lQ==", "dev": true, "requires": { - "@textlint/markdown-to-ast": "^6.2.6" + "@textlint/markdown-to-ast": "^6.3.1" } }, "@textlint/textlint-plugin-text": { - "version": "4.2.7", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-4.2.7.tgz", - "integrity": "sha512-uMoASP8kIJrMqMJCXePvKSh0tOEuiQS9vFjH+kq2kS8/+Po6Wwgma9IdJsLWuSI8H4ufcvbozREuY+DceQAp/w==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-4.3.1.tgz", + "integrity": "sha512-IqtO6TWOfVaw8sXMdVVwsvEYuqYk13ApKXBVjjJoLux0g+6G1rCEhFSZtopkrpC1Srr/OZCfb4nk8/zx+5M6Ng==", "dev": true, "requires": { - "@textlint/text-to-ast": "^3.2.5" + "@textlint/text-to-ast": "^3.3.1" } }, "@textlint/types": { @@ -646,9 +683,9 @@ } }, "@textlint/utils": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-1.1.5.tgz", - "integrity": "sha512-wv1m6yyaQpt1QrGKIUYwMoL5LLhDhXk05+pXg3i0+8PC8X95jNin10fSkxRMyXOsEqB6481GR3XgQ8Ia7DO1tg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-X/rLpqskTLWDPO5cvQO5CcA7zNnDimeBokwehiDwTg6aP9LYqFeOw5mKZ5lb4purY9zN9tLRxJGLle4Py1QobQ==", "dev": true }, "@types/mdast": { @@ -774,13 +811,13 @@ "dev": true }, "call-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", - "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, "requires": { "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.0" + "get-intrinsic": "^1.0.2" } }, "camelcase": { @@ -961,36 +998,6 @@ "is-arrayish": "^0.2.1" } }, - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1272,12 +1279,6 @@ "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", "dev": true }, - "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", - "dev": true - }, "is-core-module": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", @@ -1359,15 +1360,6 @@ "has-symbols": "^1.0.1" } }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", @@ -1829,12 +1821,6 @@ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, - "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", - "dev": true - }, "object-is": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", @@ -1851,18 +1837,6 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -2123,13 +2097,13 @@ } }, "regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "remark": { @@ -2404,26 +2378,6 @@ "strip-ansi": "^6.0.0" } }, - "string.prototype.trimend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", - "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", - "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -2579,22 +2533,22 @@ "dev": true }, "textlint": { - "version": "11.7.7", - "resolved": "https://registry.npmjs.org/textlint/-/textlint-11.7.7.tgz", - "integrity": "sha512-YSF2xLyvX5odEb142kqU2x0oUmL6yj4+mDolKb+ul5y7/HKEUgjq2G4GwkEtIOij1B52mbvS+MApI4Fx5VhhMA==", + "version": "11.8.1", + "resolved": "https://registry.npmjs.org/textlint/-/textlint-11.8.1.tgz", + "integrity": "sha512-FlXzJrR008O/H/ynCTVQnsaW2kX2I1zb/rIxkn0HIAoNxU/A4au+P4QJkeDg7FRE6h8qdlZjrXHx79MfSTWzDw==", "dev": true, "requires": { - "@textlint/ast-node-types": "^4.3.5", - "@textlint/ast-traverse": "^2.2.6", - "@textlint/feature-flag": "^3.2.5", - "@textlint/fixer-formatter": "^3.2.6", - "@textlint/kernel": "^3.3.7", - "@textlint/linter-formatter": "^3.2.6", - "@textlint/module-interop": "^1.1.5", - "@textlint/textlint-plugin-markdown": "^5.2.7", - "@textlint/textlint-plugin-text": "^4.2.7", - "@textlint/types": "^1.4.6", - "@textlint/utils": "^1.1.5", + "@textlint/ast-node-types": "^4.4.1", + "@textlint/ast-traverse": "^2.3.1", + "@textlint/feature-flag": "^3.3.1", + "@textlint/fixer-formatter": "^3.3.1", + "@textlint/kernel": "^3.4.1", + "@textlint/linter-formatter": "^3.3.1", + "@textlint/module-interop": "^1.2.1", + "@textlint/textlint-plugin-markdown": "^5.3.1", + "@textlint/textlint-plugin-text": "^4.3.1", + "@textlint/types": "^1.5.1", + "@textlint/utils": "^1.2.1", "debug": "^4.3.1", "deep-equal": "^1.1.1", "file-entry-cache": "^5.0.1", @@ -2616,18 +2570,18 @@ }, "dependencies": { "@textlint/ast-node-types": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.3.5.tgz", - "integrity": "sha512-syl8VE34DQDTV7+IADP1jYtGsxTC9MmCKLmpJX90G6nNv9CzgAZIukd7WMiJFZpFgcDAlibEaCKlJRxjfEmmPA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.1.tgz", + "integrity": "sha512-2QBwlqi2SU83vTHibfdTxGiLdIqR0btNyMGfVl0bwA6FI85HnSYoGFLrdCnq2V0nxpbhuvwzcm2Ja81w0VkMGA==", "dev": true }, "@textlint/types": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.4.6.tgz", - "integrity": "sha512-hoKPvIzNf+vI0goRk90HfsVUbXkAp4BfpvRxh51TGqVG27dlYrQJZkYheuUNUAwyj0Id09qzVwXno/xQPMYPcg==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.1.tgz", + "integrity": "sha512-YgPmxEeFUXuCjWOFx4p0afxFCHJbTf9Muw/6SJDLd/txQ6YrStst3Kvw+6QGefdJe44/UdiUYtI8sYa5T1ejaQ==", "dev": true, "requires": { - "@textlint/ast-node-types": "^4.3.5" + "@textlint/ast-node-types": "^4.4.1" } }, "debug": { diff --git a/package.json b/package.json index 18be9f7ad0f..8a10c879213 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "remark-lint-fenced-code-flag": "^2.0.1", "remark-lint-no-shell-dollars": "^2.0.2", "remark-stringify": "^9.0.1", - "textlint": "^11.7.7", + "textlint": "^11.8.1", "textlint-rule-common-misspellings": "^1.0.1", "textlint-rule-terminology": "^2.1.5" }, From 2b8f6b31cb73bc320cb7ca9fc965ff47c6f0d175 Mon Sep 17 00:00:00 2001 From: Samuel Rau <1322866+samrdev@users.noreply.github.com> Date: Sun, 24 Jan 2021 01:24:22 +0100 Subject: [PATCH 091/106] Removed sochain logo in favor of brands (#16264) --- source/_integrations/sochain.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/source/_integrations/sochain.markdown b/source/_integrations/sochain.markdown index efcc1dca87d..00812002046 100644 --- a/source/_integrations/sochain.markdown +++ b/source/_integrations/sochain.markdown @@ -1,7 +1,6 @@ --- title: SoChain description: Instructions on how to integrate chain.so data within Home Assistant. -logo: sochain.png ha_category: - Finance ha_release: 0.61 From 20faaf7f1ea6ec280bb3b61a65ecbd5265b94a4b Mon Sep 17 00:00:00 2001 From: grdnkln Date: Sat, 23 Jan 2021 19:30:56 -0500 Subject: [PATCH 092/106] Update controllers.markdown (#16262) For the Aeotec ZW090 stick, the A, B and C models refer to the radio frequency for US/EU/UK markets and applies to both the old incompatible version, and the new 2020 version that is compatible with the Pi4. Aeotec is calling the new 2020 model is called the "Gen5+". There are sellers on Amazon selling the old Gen5 listing "ZW090-A" as the model number so I feel that "Gen5+" is a more relevant term for a potential buyer to look for for when shopping for this ZWave controller. --- source/_docs/z-wave/controllers.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_docs/z-wave/controllers.markdown b/source/_docs/z-wave/controllers.markdown index f5113061b80..bf9290e4263 100644 --- a/source/_docs/z-wave/controllers.markdown +++ b/source/_docs/z-wave/controllers.markdown @@ -9,7 +9,7 @@ You need to have a compatible Z-Wave stick or module installed. This needs to be
    -There are [known compatability issues](https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=245031#p1502030) with older hardware versions of the Aeotec stick not working on the Raspberry Pi 4. Aeotec has released a 2020 hardware revision ZW090-A with Pi 4 compatibility. Both hardware revisions are still being sold, make informed purchasing decisions if using paired with a Pi 4. +There are [known compatability issues](https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=245031#p1502030) with older hardware versions of the Aeotec stick not working on the Raspberry Pi 4. Aeotec has released a 2020 hardware revision ZW090-A/B/C Gen5+ with Pi 4 compatibility. Both hardware revisions are still being sold, make informed purchasing decisions if using paired with a Pi 4.
    From 2d5dd276937f4576436f8f53f9bd3fd2dd6ae224 Mon Sep 17 00:00:00 2001 From: Patrick Connelly Date: Sat, 23 Jan 2021 19:32:17 -0500 Subject: [PATCH 093/106] Update solaredge.markdown (#16258) Fixing typo in note --- source/_integrations/solaredge.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/solaredge.markdown b/source/_integrations/solaredge.markdown index ae5c74ed33b..16e75951327 100644 --- a/source/_integrations/solaredge.markdown +++ b/source/_integrations/solaredge.markdown @@ -13,7 +13,7 @@ The `solaredge` platform uses the [SolarEdge Monitoring API](https://www.solared
    -The SolarEdge Monitoring API has a daily rate limit of 300 requests. In order to stay under this limit, and alow for some additional requests, the `solaredge` platform will update the site overview every 15 minutes. +The SolarEdge Monitoring API has a daily rate limit of 300 requests. In order to stay under this limit, and allow for some additional requests, the `solaredge` platform will update the site overview every 15 minutes.
    From 7b5a4a0227381324b09b3d41f5ac342a454c7e8b Mon Sep 17 00:00:00 2001 From: Robert Date: Sun, 24 Jan 2021 01:56:01 +0100 Subject: [PATCH 094/106] Update picture-entity.markdown (#16285) --- source/_lovelace/picture-entity.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_lovelace/picture-entity.markdown b/source/_lovelace/picture-entity.markdown index 88cc0e787cb..372f85f09f7 100644 --- a/source/_lovelace/picture-entity.markdown +++ b/source/_lovelace/picture-entity.markdown @@ -31,7 +31,7 @@ camera_view: type: string image: required: false - description: URL of an image. + description: URL of an image. To use a locally hosted image, see [Hosting](/integrations/http#hosting-files). type: string state_image: required: false From b5dd2a9d67d85ef6a757ec507c64fb27e016d51c Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 24 Jan 2021 16:00:47 +0100 Subject: [PATCH 095/106] Add link to Brady --- source/_posts/2021-01-23-security-disclosure2.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2021-01-23-security-disclosure2.markdown b/source/_posts/2021-01-23-security-disclosure2.markdown index 95c8a049857..f37489705e1 100644 --- a/source/_posts/2021-01-23-security-disclosure2.markdown +++ b/source/_posts/2021-01-23-security-disclosure2.markdown @@ -26,7 +26,7 @@ TL;DR: - Upgrade the custom integrations to a fixed version or remove them from your installation. - If you have used any of the custom integrations with a known vulnerability, we recommend that you update your credentials. -On the morning of Saturday, January 23 2021, the Home Assistant project was informed by security researcher Nathan Brady about a security vulnerability. It provided more insight on the implementation of the fixes done for the [previous security vulnerability](/blog/2021/01/22/security-disclosure/). We learned that not all custom integrations that implement security patches are sufficient to deflect the problem. +On the morning of Saturday, January 23 2021, the Home Assistant project was informed by [security researcher Nathan Brady](https://twitter.com/NateBrady23) about a security vulnerability. It provided more insight on the implementation of the fixes done for the [previous security vulnerability](/blog/2021/01/22/security-disclosure/). We learned that not all custom integrations that implement security patches are sufficient to deflect the problem. We verified all fixes made to custom integrations that were found to be vulnerable in the previous security disclosure. The conclusion is that some custom integrations are still vulnerable to a directory traversal attack while not being authenticated with Home Assistant. It allows an attacker to access any file without having to log in. This access includes any credentials that you might have stored to allow Home Assistant to access other services. From 98b4cbb777554662d3687abc82b8f2d90ff46832 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Jan 2021 10:49:10 +0100 Subject: [PATCH 096/106] Bump tzinfo-data from 1.2020.6 to 1.2021.1 (#16304) Bumps [tzinfo-data](https://github.com/tzinfo/tzinfo-data) from 1.2020.6 to 1.2021.1. - [Release notes](https://github.com/tzinfo/tzinfo-data/releases) - [Commits](https://github.com/tzinfo/tzinfo-data/compare/v1.2020.6...v1.2021.1) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index b9fc0dcf4f9..27a90904f48 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -114,7 +114,7 @@ GEM tilt (2.0.10) tzinfo (2.0.4) concurrent-ruby (~> 1.0) - tzinfo-data (1.2020.6) + tzinfo-data (1.2021.1) tzinfo (>= 1.0.0) unicode-display_width (1.7.0) From 76ef41e29301bc9d0e3db3ecc3bf3a25ca1ed15d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Jan 2021 10:50:49 +0100 Subject: [PATCH 097/106] Bump actions/stale from v3.0.14 to v3.0.15 (#16305) Bumps [actions/stale](https://github.com/actions/stale) from v3.0.14 to v3.0.15. - [Release notes](https://github.com/actions/stale/releases) - [Commits](https://github.com/actions/stale/compare/v3.0.14...86561461b92875de77a8b2d2e75f004c826e8f45) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 16306aa2f26..6d33c93e6e3 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -8,7 +8,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v3.0.14 + - uses: actions/stale@v3.0.15 with: repo-token: ${{ secrets.GITHUB_TOKEN }} days-before-stale: 60 From c39398288a6104237dcdb64fad3711b153390285 Mon Sep 17 00:00:00 2001 From: KNXBroker Date: Mon, 25 Jan 2021 12:11:29 +0100 Subject: [PATCH 098/106] Update of filename description (#16302) Co-authored-by: Franck Nijhof --- source/_integrations/file.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/file.markdown b/source/_integrations/file.markdown index 142602ede4f..4ed2f45425f 100644 --- a/source/_integrations/file.markdown +++ b/source/_integrations/file.markdown @@ -38,7 +38,7 @@ name: default: notify type: string filename: - description: Name of the file to use. The file will be created if it doesn't exist and saved in your [configuration](/docs/configuration/) folder. + description: Name of the file to use. The file will be created if it doesn't exist. Add the path of your [configuration](/docs/configuration/) folder (e.g., `/config`) to save the file there. required: true type: string timestamp: From 5f1efdeeb6961a665dbb26785b3d1ebdbfbd8eb6 Mon Sep 17 00:00:00 2001 From: MagieMalone Date: Mon, 25 Jan 2021 12:34:36 +0100 Subject: [PATCH 099/106] easier return entity state object of a trigger (#16294) replacing `states[trigger.to_state.domain][trigger.to_state.object_id]` with `states[trigger.to_state.entity_id]` for better readability and keeping the same function. --- source/_docs/automation/templating.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_docs/automation/templating.markdown b/source/_docs/automation/templating.markdown index fbbec6af4e7..71e30eed82d 100644 --- a/source/_docs/automation/templating.markdown +++ b/source/_docs/automation/templating.markdown @@ -67,7 +67,7 @@ Knowing how to access the [state object](/docs/configuration/state_object/) of a * `trigger.from_state` will return the **previous** [state object](/docs/configuration/state_object/) of the entity. * `trigger.to_state` will return the **new** [state object](/docs/configuration/state_object/) that triggered trigger. -* `states[trigger.to_state.domain][trigger.to_state.object_id]` will return the **current** [state object](/docs/configuration/state_object/) of the entity. +* `states[trigger.to_state.entity_id]` will return the **current** [state object](/docs/configuration/state_object/) of the entity.
    From e6af2f631a7ffc0f292a7c437b91f29cdc203dbb Mon Sep 17 00:00:00 2001 From: Chris Weiss Date: Mon, 25 Jan 2021 05:35:14 -0600 Subject: [PATCH 100/106] Add note about mDNS with KVM bridged networking (#16298) Co-authored-by: Franck Nijhof --- source/hassio/installation.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown index 124276eb206..16c0b86f494 100644 --- a/source/hassio/installation.markdown +++ b/source/hassio/installation.markdown @@ -28,7 +28,7 @@ The following will take you through the steps required to install Home Assistant - **For the virtual appliance images:** Load the appliance image into your virtual machine software. (Note: You are free to assign as much resources as you wish to the VM, please assign enough based on your add-on needs) - For VirtualBox create a new virtual machine, select "Other Linux (64Bit), assign it at least 2 GB of memory and "Use an existing virtual hard disk file", select the VDI file from above, afterwards edit the "Settings" of the VM and go "System" then Motherboard and Enable EFI, then "Network" "Adapter 1" Bridged and your adapter. - For Hyper-V create a new virtual machine, select "Generation 2", assign it at least 2 GB of memory and select "Connection -> "Your Virtual Switch that is bridged", then "Use an existing virtual hard disk" and select the VHDX file from above, after creation go to "Settings" -> "Security" and deselect "Enable Secure Boot". - - For KVM create a new virtual machine in `virt-manager`, select "Import existing disk image", provide the path to the QCOW2 image above, choose "Generic Default" for the operating system, assign at least 2 GB memory and 1 vCPU, check the box for "Customize configuration before install" and select your bridge under "Network Selection", then under customization select "Overview" -> "Firmware" -> "UEFI x86_64: ...". + - For KVM create a new virtual machine in `virt-manager`, select "Import existing disk image", provide the path to the QCOW2 image above, choose "Generic Default" for the operating system, assign at least 2 GB memory and 1 vCPU, check the box for "Customize configuration before install" and select your bridge under "Network Selection", then under customization select "Overview" -> "Firmware" -> "UEFI x86_64: ...". If you want mDNS and another multicast to work, you'll need to manually edit the XML to add trustGuestRxFilters='yes' to the interfaces tag. See virsh or virt-manager documentation for how to do that. - For Vmware Workstation create a new virtual machine, select "Custom", make it compatible with the default of Workstation and ESX, Choose "I will install the operating system later", select "Linux" -> "Other Linux 5.x or later kernel 64-bit", give it at least 2 GB RAM and 1vCPU, select "Use Bridged Networking" then "Use an existing virtual disk" and select the VMDK file above, after creation of VM go to "Settings" and "Options" then "Advanced" and select "Firmware type" to "UEFI". - For VMware ESXi/vSphere installation use the "E1001" or "E1001E" virtual network adapater. There are confirmed mDNS/Multicast discovery issues when using VMware's "VMXnet3" virtual network adapter. From c3b4704f57dba120e021f9c5d0ef7ce7d5fdeca7 Mon Sep 17 00:00:00 2001 From: ElBalsero Date: Mon, 25 Jan 2021 12:57:50 +0100 Subject: [PATCH 101/106] Update denonavr.markdown (#16306) I have tested it in my Denon AVR-X3000 and it works --- source/_integrations/denonavr.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_integrations/denonavr.markdown b/source/_integrations/denonavr.markdown index ce2eb13e4de..72fb95cb385 100644 --- a/source/_integrations/denonavr.markdown +++ b/source/_integrations/denonavr.markdown @@ -30,6 +30,7 @@ Known supported devices: - Denon AVR-X2400H - Denon AVR-X2500H - Denon AVR-X2700H +- Denon AVR-X3000 - Denon AVR-X3200W - Denon AVR-X3300W - Denon AVR-X3400H From 2ec766ffb478918d0d4722cd687ff1f0d42ddd9a Mon Sep 17 00:00:00 2001 From: Pawel Date: Mon, 25 Jan 2021 14:17:27 +0100 Subject: [PATCH 102/106] Add extra dict possible for send to Chromecast (#16268) Co-authored-by: Franck Nijhof --- source/_integrations/media_player.markdown | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/source/_integrations/media_player.markdown b/source/_integrations/media_player.markdown index 20a05a9d6af..025a5109360 100644 --- a/source/_integrations/media_player.markdown +++ b/source/_integrations/media_player.markdown @@ -48,6 +48,81 @@ Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`, | `entity_id` | yes | Target a specific media player. To target all media players, use `all`. | | `media_content_id` | no | A media identifier. The format of this is integration dependent. For example, you can provide URLs to Sonos and Cast but only a playlist ID to iTunes. | | `media_content_type` | no | A media type. Must be one of `music`, `tvshow`, `video`, `episode`, `channel` or `playlist`. For example, to play music you would set `media_content_type` to `music`. | +| `extra` | yes | Extra dictionary data to send, e.g., title, thumbnail. Possible values can be found below. + +##### Extra dictionary data + +{% configuration %} +title: + type: string + description: Title of the media. + required: false +thumb: + type: string + description: Thumbnail image URL. + required: false +current_time: + type: float + description: Seconds since the beginning of the content. If the content is live content, and the position is not specified, the stream will start at the live position. + required: false +autoplay: + type: boolean + description: Whether the media will automatically play. + default: true + required: false +stream_type: + type: string + description: "Describes the type of media artifact as one of the following: `NONE`, `BUFFERED`, `LIVE`." + required: false +subtitles: + type: string + description: URL of subtitle file to be shown on chromecast. + required: false +subtitles_lang: + type: string + description: Language for subtitles. + required: false +subtitles_mime: + type: string + description: Mimetype of subtitles. + required: false +subtitle_id: + type: integer + description: ID of subtitle to be loaded. + required: false +enqueue: + type: boolean + description: If True, enqueue the media instead of play it. + default: false + required: false +media_info: + type: map + description: Additional MediaInformation attributes not explicitly listed. + required: false +metadata: + type: map + description: "Media metadata object, one of the following: `GenericMediaMetadata`, `MovieMediaMetadata`, `TvShowMediaMetadata`, `MusicTrackMediaMetadata`, `PhotoMediaMetadata`." + required: false +{% endconfiguration %} + +Documentation: + +- [Google Dev Documentaion MediaData](https://developers.google.com/cast/docs/reference/messages#MediaData) +- [Google Dev Documentaion MediaInformation](https://developers.google.com/cast/docs/reference/web_receiver/cast.framework.messages.MediaInformation) + + +Example of calling media_player service with title and image set: + +```yaml +entity_id: media_player.chromecast +service: media_player.play_media +data: + media_content_type: music + media_content_id: 'https://fake-home-assistant.io.stream/aac' + extra: + thumb: 'https://brands.home-assistant.io/_/homeassistant/logo.png' + title: HomeAssitantRadio +``` #### Service `media_player.select_source` From 24d84ac6f893d4c48d022f1906e84a1e97f22bdf Mon Sep 17 00:00:00 2001 From: kozerskil Date: Mon, 25 Jan 2021 14:20:16 +0100 Subject: [PATCH 103/106] Update trigger.markdown (#16257) Co-authored-by: Franck Nijhof --- source/_docs/automation/trigger.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index a1b137fd4fb..11ba79a7c87 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -99,7 +99,7 @@ automation:
    Listing above and below together means the numeric_state has to be between the two values. -In the example above, the trigger would fire if a numeric_state goes to 17.1-24.9 (from strict above 17 and strict below 25). +In the example above, the trigger would fire a single time if a numeric_state goes into to 17.1-24.9 range (from 17 and below or 25 and above). It will only fire again, once it has left the defined range and enters it again.
    The `for:` can also be specified as `HH:MM:SS` like this: From 75787aa286f55d64055f5bf733f1e791ca76a65a Mon Sep 17 00:00:00 2001 From: Guy Khmelnitsky <3136012+GuyKh@users.noreply.github.com> Date: Mon, 25 Jan 2021 15:57:01 +0200 Subject: [PATCH 104/106] Add FreeDNS API V2 documentation (#15514) --- source/_integrations/freedns.markdown | 29 ++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/source/_integrations/freedns.markdown b/source/_integrations/freedns.markdown index 5af50b0bfe9..c91aea992aa 100644 --- a/source/_integrations/freedns.markdown +++ b/source/_integrations/freedns.markdown @@ -10,18 +10,18 @@ ha_domain: freedns With the `freedns` integration you can keep your [FreeDNS](https://freedns.afraid.org) record up to date. -## Setup +## Setup (Default API V1) You need to determine your update URL or your access token. 1. Head over to the [FreeDNS](https://freedns.afraid.org) website and login to your account. 2. Select the menu "Dynamic DNS" -3. You should now see your update candiates in a table at the bottom of the page. +3. You should now see your update candidates in a table at the bottom of the page. 4. Copy the link target of the "Direct URL". 5. The access token is the part at the end of the link: `https://freedns.afraid.org/dynamic/update.php?YOUR_UPDATE_TOKEN` 6. Either put the token as `access_token` _or_ the whole URL into the `url` attribute. -## Configuration +## Configuration (API V1) To use the integration in your installation, add the following to your `configuration.yaml` file: @@ -31,6 +31,29 @@ freedns: access_token: YOUR_TOKEN ``` +## Setup (API V2) + +You need to determine your update URL or your access token. + +1. Head over to the [FreeDNS](https://freedns.afraid.org) website and login to your account. +2. Select the menu "Dynamic DNS" +3. You should now see your update candidates in a table at the bottom of the page. +4. Head over to page [Version 2](https://freedns.afraid.org/dynamic/v2/), and enable the candidate. +5. The access token is the part at the end of the link: `http://sync.afraid.org/u/RANDOMIZED_TOKEN/` +6. Put the whole URL into the `url` attribute. +7. (Instead of using the randomized token URL in the Version 2 there are other options to use for URL) + +## Configuration (API V2) + +To use the integration in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +freedns: + url: http://sync.afraid.org/u/RANDOMIZED_TOKEN/ +``` + + {% configuration %} access_token: description: Your access token. This is exclusive to `url`. From 633a4d841ce8f8d117dca42eb28a4dd4228f6b84 Mon Sep 17 00:00:00 2001 From: R Huish <5207490+genestealer@users.noreply.github.com> Date: Mon, 25 Jan 2021 14:11:21 +0000 Subject: [PATCH 105/106] google_maps - Added work-around using Account A as the data source (#15869) Co-authored-by: Franck Nijhof --- source/_integrations/google_maps.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/_integrations/google_maps.markdown b/source/_integrations/google_maps.markdown index 64682505355..8ad778813ad 100644 --- a/source/_integrations/google_maps.markdown +++ b/source/_integrations/google_maps.markdown @@ -19,6 +19,11 @@ You need two Google accounts. Account A is the account that has to be set up to 3. Save the cookie file to your Home Assistant configuration directory with the following name: `.google_maps_location_sharing.cookies.` followed by the slugified username of the NEW Google account (account B). - For example: If your email address was `location.tracker@gmail.com`, the filename would be: `.google_maps_location_sharing.cookies.location_tracker_gmail_com`. +### Note for existing location sharing users + +If you already have other people sharing their location to your existing Account A and do not wish to ask them to also share their location with a new Account B. Create the new Google account (account B) and share the location of Account B back to Account A. Follow the steps listed, substituting the instructions stating “Account B” for “Account A” (i.e., a cookie file is from Account A, slugified username of Account A), then ensure both Account A and Account B are logged in on your mobile device. + + ## Configuration To integrate Google Maps Location Sharing in Home Assistant, add the following section to your `configuration.yaml` file: From 25201ed0256597bf03f1012582eab6155778dd42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diefferson=20Koderer=20M=C3=B4ro?= Date: Mon, 25 Jan 2021 11:19:42 -0300 Subject: [PATCH 106/106] =?UTF-8?q?=F0=9F=93=9D=20Remove=20logo=20of=20RFL?= =?UTF-8?q?iNK=20(#16206)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/_integrations/rflink.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/source/_integrations/rflink.markdown b/source/_integrations/rflink.markdown index 806a96c5173..8390c93ca60 100644 --- a/source/_integrations/rflink.markdown +++ b/source/_integrations/rflink.markdown @@ -1,7 +1,6 @@ --- title: RFLink description: Instructions on how to integrate RFLink gateway into Home Assistant. -logo: rflink.png ha_category: - Hub ha_iot_class: Assumed State