From d0e3bf5384d4a04191c494cc120a3a5ac1643674 Mon Sep 17 00:00:00 2001 From: Danny Tsang <567982+dannytsang@users.noreply.github.com> Date: Thu, 31 Mar 2022 13:57:23 +0100 Subject: [PATCH 1/7] Added note to distinguish Statistics integration v.s. Long-term statistics (#22201) Co-authored-by: Franck Nijhof --- source/_integrations/statistics.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/_integrations/statistics.markdown b/source/_integrations/statistics.markdown index dd76cab4cb8..6f42b9898b3 100644 --- a/source/_integrations/statistics.markdown +++ b/source/_integrations/statistics.markdown @@ -23,6 +23,12 @@ Both `sensor` and `binary_sensor` are supported as source sensor. A number of ch Assuming the [`recorder`](/integrations/recorder/) integration is running, historical sensor data is read from the database on startup and is available immediately after a restart of the platform. If the [`recorder`](/integrations/recorder/) integration is *not* running, it can take some time for the sensor to start reporting data because some characteristics calculations require more than one source sensor value. +
+ +The `statistics` integration is different to a [Long-term Statistics](https://developers.home-assistant.io/docs/core/entity/sensor/#long-term-statistics). More details on the differences can be found in the [2021.8.0 release notes](/blog/2021/08/04/release-20218/#long-term-statistics). + +
+ ## Characteristics The following statistical characteristics are available. Pay close attention to the right configuration of `sampling_size` and `max_age`, as most characteristics are directly related to the count of samples or the age of processed samples. From e316005e56614103e2a1352e0bff8ddb1d85fc1a Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 31 Mar 2022 15:34:13 -0700 Subject: [PATCH 2/7] Update operating_system.md --- source/_includes/installation/operating_system.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_includes/installation/operating_system.md b/source/_includes/installation/operating_system.md index 3c65d63c8a1..0621924536e 100644 --- a/source/_includes/installation/operating_system.md +++ b/source/_includes/installation/operating_system.md @@ -12,7 +12,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. 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](https://amzn.to/2S0Gcl1) (Raspberry Pi 3 is ok too, if you have one laying around) +- [Raspberry Pi 4](https://amzn.to/2S0Gcl1) (Raspberry Pi 3 is ok too, if you have one laying around). Raspberry Pi are currently hard to come by, use [RPilocator](https://rpilocator.com/?cat=PI4) to find webshops with stock. - [Power Supply for Raspberry Pi 4](https://amzn.to/2ReZ2Vq) or [Power Supply for Raspberry Pi 3](https://amzn.to/2R8yG7h) - [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. - 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. From fdcbad766303470731513b8d80111882100ad20a Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Fri, 1 Apr 2022 11:42:18 +0200 Subject: [PATCH 3/7] Clarify how to find media_id for BBC sounds clips (#22216) --- source/_integrations/cast.markdown | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/source/_integrations/cast.markdown b/source/_integrations/cast.markdown index 5ffd7f4d9cd..df75eb8b2ac 100644 --- a/source/_integrations/cast.markdown +++ b/source/_integrations/cast.markdown @@ -250,6 +250,15 @@ To cast media directly from a configured Plex server, set the fields [as documen This app doesn't retrieve its own metadata, so if you want the cast interface or media player card to show titles and/or images you will have to provide the data yourself. See the examples below. +Note: Media ID is NOT the 8 digit alphanumeric in the URL, it can be found by right-clicking the playing audio clip. E.g., [this episode](https://www.bbc.co.uk/sounds/play/p009ycqy) shows: + +| | | +| --- | --- | +| 128bps | dash (mf_cloudfront_nonbidi_dash_https) | +| p009ycqz | | + +With p009ycqz being the `media_id` + #### Media parameters Mandatory: From a64ac92163fbbb9116ac31c15bb4fa4962410309 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Fri, 1 Apr 2022 12:16:41 +0200 Subject: [PATCH 4/7] Sort 3rd-party players in Google Cast docs (#22215) --- source/_integrations/cast.markdown | 330 ++++++++++++++--------------- 1 file changed, 165 insertions(+), 165 deletions(-) diff --git a/source/_integrations/cast.markdown b/source/_integrations/cast.markdown index df75eb8b2ac..1610a4624dd 100644 --- a/source/_integrations/cast.markdown +++ b/source/_integrations/cast.markdown @@ -131,171 +131,6 @@ data: It's possible to play with other apps than the default media receiver. To do so, `media_content_type` should be set to `cast`, and `media_content_id` should be a JSON dict with parameters for the app, including the app name. -### BubbleUPNP - -The BubbleUPNP app has similar functionality to the built in Default Media Receiver app, and can be used as a backup if the default app fails to play the media. - -#### Media parameters - -Mandatory: - -- `app_name`: `bubbleupnp` -- `media_id`: The URL to play - -Optional: - -- `media_type`: Media type, e.g. `video/mp4`, `audio/mp3`, `image/jpeg`, defaults to `video/mp4`. - -#### Example - -```yaml -'cast_bubbleupnp_to_my_chromecast': - alias: "Cast a video to My Chromecast using BubbleUPNP" - sequence: - - target: - entity_id: media_player.my_chromecast - data: - media_content_type: cast - media_content_id: ' - { - "app_name": "bubbleupnp", - "media_id": "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4", - "media_type": "video/mp4" - }' - service: media_player.play_media -``` - -### YouTube - -#### Media parameters - -Mandatory: - -- `app_name`: `youtube` -- `media_id`: YouTube video ID - -Optional: - -- `enqueue`: Enqueue only -- `playlist_id`: Play video with `media_id` from this playlist. Note that only providing `playlist_id` but no `media_id` does not work. - -#### Example - -```yaml -'cast_youtube_to_my_chromecast': - alias: "Cast YouTube to My Chromecast" - sequence: - - target: - entity_id: media_player.my_chromecast - data: - media_content_type: cast - media_content_id: ' - { - "app_name": "youtube", - "media_id": "dQw4w9WgXcQ" - }' - service: media_player.play_media -``` - -### [Supla](https://www.supla.fi/) - -#### Media parameters - -Mandatory: - -- `app_name`: `supla` -- `media_id`: Supla item ID - -Optional: - -- `is_live`: Item is a livestream - -#### Example - -Example values to cast the item at - -```yaml -'cast_supla_to_my_chromecast': - alias: "Cast supla to My Chromecast" - sequence: - - target: - entity_id: media_player.my_chromecast - data: - media_content_type: cast - media_content_id: ' - { - "app_name": "supla", - "media_id": "3601824" - }' - service: media_player.play_media -``` - -### Plex - -To cast media directly from a configured Plex server, set the fields [as documented in the Plex integration](/integrations/plex/#service-play_media) and prepend the `media_content_id` with `plex://`: - -```yaml -'cast_plex_to_chromecast': - alias: "Cast Plex to Chromecast" - sequence: - - service: media_player.play_media - target: - entity_id: media_player.chromecast - data: - media_content_type: movie - media_content_id: 'plex://{"library_name": "Movies", "title": "Groundhog Day"}' -``` - -### [BBC Sounds](https://www.bbc.co.uk/sounds) - -This app doesn't retrieve its own metadata, so if you want the cast interface or media player card to show titles and/or images you will have to provide the data yourself. See the examples below. - -Note: Media ID is NOT the 8 digit alphanumeric in the URL, it can be found by right-clicking the playing audio clip. E.g., [this episode](https://www.bbc.co.uk/sounds/play/p009ycqy) shows: - -| | | -| --- | --- | -| 128bps | dash (mf_cloudfront_nonbidi_dash_https) | -| p009ycqz | | - -With p009ycqz being the `media_id` - -#### Media parameters - -Mandatory: - -- `app_name`: `bbcsounds` -- `media_id`: Item ID - -Optional: - -- `is_live`: Item is a live stream - -#### Example - -Example values to cast [BBC Radio 1](https://www.bbc.co.uk/sounds/play/live:bbc_radio_one) - -```yaml - alias: "Cast BBC Sounds to My Chromecast" - sequence: - - service: media_player.play_media - target: - entity_id: media_player.my_chromecast - data: - media_content_type: cast - media_content_id: ' - { - "app_name": "bbcsounds", - "media_id": "bbc_radio_one", - "is_live": true - }' - extra: - metadata: - metadataType: 0 - title: "Radio 1" - images: - - url: "https://sounds.files.bbci.co.uk/2.3.0/networks/bbc_radio_one/background_1280x720.png" -``` - ### [BBC iPlayer](https://www.bbc.co.uk/iplayer) This app doesn't retrieve its own metadata, so if you want the cast interface or media player card to show titles and/or images you will have to provide the data yourself. See the examples below. @@ -346,6 +181,171 @@ Example values to cast [this episode](https://www.bbc.co.uk/iplayer/episode/b09w - url: "https://ichef.bbci.co.uk/images/ic/1280x720/p07j4m3r.jpg" ``` +### [BBC Sounds](https://www.bbc.co.uk/sounds) + +This app doesn't retrieve its own metadata, so if you want the cast interface or media player card to show titles and/or images you will have to provide the data yourself. See the examples below. + +#### Media parameters + +Mandatory: + +- `app_name`: `bbcsounds` +- `media_id`: Item ID + +Optional: + +- `is_live`: Item is a live stream + +#### Example + +Example values to cast [BBC Radio 1](https://www.bbc.co.uk/sounds/play/live:bbc_radio_one) + +```yaml + alias: "Cast BBC Sounds to My Chromecast" + sequence: + - service: media_player.play_media + target: + entity_id: media_player.my_chromecast + data: + media_content_type: cast + media_content_id: ' + { + "app_name": "bbcsounds", + "media_id": "bbc_radio_one", + "is_live": true + }' + extra: + metadata: + metadataType: 0 + title: "Radio 1" + images: + - url: "https://sounds.files.bbci.co.uk/2.3.0/networks/bbc_radio_one/background_1280x720.png" +``` + +### BubbleUPNP + +The BubbleUPNP app has similar functionality to the built in Default Media Receiver app, and can be used as a backup if the default app fails to play the media. + +#### Media parameters + +Mandatory: + +- `app_name`: `bubbleupnp` +- `media_id`: The URL to play + +Optional: + +- `media_type`: Media type, e.g. `video/mp4`, `audio/mp3`, `image/jpeg`, defaults to `video/mp4`. + +#### Example + +```yaml +'cast_bubbleupnp_to_my_chromecast': + alias: "Cast a video to My Chromecast using BubbleUPNP" + sequence: + - target: + entity_id: media_player.my_chromecast + data: + media_content_type: cast + media_content_id: ' + { + "app_name": "bubbleupnp", + "media_id": "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4", + "media_type": "video/mp4" + }' + service: media_player.play_media +``` + +### Plex + +To cast media directly from a configured Plex server, set the fields [as documented in the Plex integration](/integrations/plex/#service-play_media) and prepend the `media_content_id` with `plex://`: + +```yaml +'cast_plex_to_chromecast': + alias: "Cast Plex to Chromecast" + sequence: + - service: media_player.play_media + target: + entity_id: media_player.chromecast + data: + media_content_type: movie + media_content_id: 'plex://{"library_name": "Movies", "title": "Groundhog Day"}' +``` + +### [Supla](https://www.supla.fi/) + +Note: Media ID is NOT the 8 digit alphanumeric in the URL, it can be found by right-clicking the playing audio clip. E.g., [this episode](https://www.bbc.co.uk/sounds/play/p009ycqy) shows: + +| | | +| --- | --- | +| 128bps | dash (mf_cloudfront_nonbidi_dash_https) | +| p009ycqz | | + +With p009ycqz being the `media_id` + +#### Media parameters + +Mandatory: + +- `app_name`: `supla` +- `media_id`: Supla item ID + +Optional: + +- `is_live`: Item is a livestream + +#### Example + +Example values to cast the item at + +```yaml +'cast_supla_to_my_chromecast': + alias: "Cast supla to My Chromecast" + sequence: + - target: + entity_id: media_player.my_chromecast + data: + media_content_type: cast + media_content_id: ' + { + "app_name": "supla", + "media_id": "3601824" + }' + service: media_player.play_media +``` + +### YouTube + +#### Media parameters + +Mandatory: + +- `app_name`: `youtube` +- `media_id`: YouTube video ID + +Optional: + +- `enqueue`: Enqueue only +- `playlist_id`: Play video with `media_id` from this playlist. Note that only providing `playlist_id` but no `media_id` does not work. + +#### Example + +```yaml +'cast_youtube_to_my_chromecast': + alias: "Cast YouTube to My Chromecast" + sequence: + - target: + entity_id: media_player.my_chromecast + data: + media_content_type: cast + media_content_id: ' + { + "app_name": "youtube", + "media_id": "dQw4w9WgXcQ" + }' + service: media_player.play_media +``` + ## Troubleshooting automatic discovery mDNS relies on UDP multicast, which may fail for various reasons. If none of the tips in this section helps, the recommended solution is to ensure all cast devices have static IPs assigned to them and configure a list of known hosts. From 4d146a942a805e215498e043e1cc915f02505c34 Mon Sep 17 00:00:00 2001 From: Waldemar Tomme Date: Fri, 1 Apr 2022 14:21:30 +0200 Subject: [PATCH 5/7] Update iot class for fints integration (#22220) --- source/_integrations/fints.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/fints.markdown b/source/_integrations/fints.markdown index 7dd5ac15242..bca443a80fb 100644 --- a/source/_integrations/fints.markdown +++ b/source/_integrations/fints.markdown @@ -4,7 +4,7 @@ description: Instructions on how to use the FinTS sensor. ha_category: - Finance ha_release: '0.70' -ha_iot_class: Local Push +ha_iot_class: Cloud Polling ha_domain: fints ha_platforms: - sensor From 6a0de321b31e118a77aa92c0898149bee3626fcd Mon Sep 17 00:00:00 2001 From: Raman Gupta <7243222+raman325@users.noreply.github.com> Date: Fri, 1 Apr 2022 14:29:13 -0400 Subject: [PATCH 6/7] Remove partner configuration option (#22223) --- source/_integrations/eight_sleep.markdown | 5 ----- 1 file changed, 5 deletions(-) diff --git a/source/_integrations/eight_sleep.markdown b/source/_integrations/eight_sleep.markdown index 3b6ac35ebc0..8b9d1bf92f0 100644 --- a/source/_integrations/eight_sleep.markdown +++ b/source/_integrations/eight_sleep.markdown @@ -47,11 +47,6 @@ password: description: The password associated with your Eight Sleep account. required: true type: string -partner: - description: Defines if you'd like to fetch data for both sides of the bed. - required: false - type: boolean - default: false {% endconfiguration %} ### Supported features From c15560d458cfee6e49f5d7804f592364050d83eb Mon Sep 17 00:00:00 2001 From: Will Adler Date: Sat, 2 Apr 2022 03:05:23 -0400 Subject: [PATCH 7/7] update template availability documentation (#22227) --- source/_integrations/cover.template.markdown | 2 +- source/_integrations/fan.template.markdown | 2 +- source/_integrations/light.template.markdown | 2 +- source/_integrations/lock.template.markdown | 2 +- source/_integrations/switch.template.markdown | 2 +- source/_integrations/vacuum.template.markdown | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/source/_integrations/cover.template.markdown b/source/_integrations/cover.template.markdown index b25271974f4..98686e191e4 100644 --- a/source/_integrations/cover.template.markdown +++ b/source/_integrations/cover.template.markdown @@ -70,7 +70,7 @@ cover: required: false type: template availability_template: - description: Defines a template to get the `available` state of the entity. If the template either fails to render or returns either of `True`, `"1"`, `"true"`, `"yes"`, `"on"`, `"enable"` or a non-zero number, the entity is `available`. If the template returns any other value, the device will be `unavailable`. If not configured, the entity will always be `available`. Note that the string comparison not case sensitive; `"TrUe"` and `"yEs"` are allowed. + description: Defines a template to get the `available` state of the entity. If the template either fails to render or returns `True`, `"1"`, `"true"`, `"yes"`, `"on"`, `"enable"`, or a non-zero number, the entity will be `available`. If the template returns any other value, the entity will be `unavailable`. If not configured, the entity will always be `available`. Note that the string comparison not case sensitive; `"TrUe"` and `"yEs"` are allowed. required: false type: template default: true diff --git a/source/_integrations/fan.template.markdown b/source/_integrations/fan.template.markdown index 67bc7b8b00c..7198153caab 100644 --- a/source/_integrations/fan.template.markdown +++ b/source/_integrations/fan.template.markdown @@ -94,7 +94,7 @@ fan: required: false type: template availability_template: - description: Defines a template to get the `available` state of the entity. If the template either fails to render or returns either of `True`, `"1"`, `"true"`, `"yes"`, `"on"`, `"enable"` or a non-zero number, the entity is `available`. If the template returns any other value, the device will be `unavailable`. If not configured, the entity will always be `available`. Note that the string comparison not case sensitive; `"TrUe"` and `"yEs"` are allowed. + description: Defines a template to get the `available` state of the entity. If the template either fails to render or returns `True`, `"1"`, `"true"`, `"yes"`, `"on"`, `"enable"`, or a non-zero number, the entity will be `available`. If the template returns any other value, the entity will be `unavailable`. If not configured, the entity will always be `available`. Note that the string comparison not case sensitive; `"TrUe"` and `"yEs"` are allowed. required: false type: template default: true diff --git a/source/_integrations/light.template.markdown b/source/_integrations/light.template.markdown index a01d042be1f..3cb2c6930c1 100644 --- a/source/_integrations/light.template.markdown +++ b/source/_integrations/light.template.markdown @@ -145,7 +145,7 @@ light: required: false type: template availability_template: - description: Defines a template to get the `available` state of the entity. If the template either fails to render or returns either of `True`, `"1"`, `"true"`, `"yes"`, `"on"`, `"enable"` or a non-zero number, the entity is `available`. If the template returns any other value, the device will be `unavailable`. If not configured, the entity will always be `available`. Note that the string comparison not case sensitive; `"TrUe"` and `"yEs"` are allowed. + description: Defines a template to get the `available` state of the entity. If the template either fails to render or returns `True`, `"1"`, `"true"`, `"yes"`, `"on"`, `"enable"`, or a non-zero number, the entity will be `available`. If the template returns any other value, the entity will be `unavailable`. If not configured, the entity will always be `available`. Note that the string comparison not case sensitive; `"TrUe"` and `"yEs"` are allowed. required: false type: template default: true diff --git a/source/_integrations/lock.template.markdown b/source/_integrations/lock.template.markdown index 310e6ea17d0..8d022bea62e 100644 --- a/source/_integrations/lock.template.markdown +++ b/source/_integrations/lock.template.markdown @@ -56,7 +56,7 @@ lock: required: true type: template availability_template: - description: Defines a template to get the `available` state of the entity. If the template either fails to render or returns either of `True`, `"1"`, `"true"`, `"yes"`, `"on"`, `"enable"` or a non-zero number, the entity is `available`. If the template returns any other value, the device will be `unavailable`. If not configured, the entity will always be `available`. Note that the string comparison not case sensitive; `"TrUe"` and `"yEs"` are allowed. + description: Defines a template to get the `available` state of the entity. If the template either fails to render or returns `True`, `"1"`, `"true"`, `"yes"`, `"on"`, `"enable"`, or a non-zero number, the entity will be `available`. If the template returns any other value, the entity will be `unavailable`. If not configured, the entity will always be `available`. Note that the string comparison not case sensitive; `"TrUe"` and `"yEs"` are allowed. required: false type: template default: true diff --git a/source/_integrations/switch.template.markdown b/source/_integrations/switch.template.markdown index 3dadc0679e9..81c0b668133 100644 --- a/source/_integrations/switch.template.markdown +++ b/source/_integrations/switch.template.markdown @@ -60,7 +60,7 @@ switch: type: template default: optimistic availability_template: - description: Defines a template to get the `available` state of the entity. If the template either fails to render or returns either of `True`, `"1"`, `"true"`, `"yes"`, `"on"`, `"enable"` or a non-zero number, the entity is `available`. If the template returns any other value, the device will be `unavailable`. If not configured, the entity will always be `available`. Note that the string comparison not case sensitive; `"TrUe"` and `"yEs"` are allowed. + description: Defines a template to get the `available` state of the entity. If the template either fails to render or returns `True`, `"1"`, `"true"`, `"yes"`, `"on"`, `"enable"`, or a non-zero number, the entity will be `available`. If the template returns any other value, the entity will be `unavailable`. If not configured, the entity will always be `available`. Note that the string comparison not case sensitive; `"TrUe"` and `"yEs"` are allowed. required: false type: template default: true diff --git a/source/_integrations/vacuum.template.markdown b/source/_integrations/vacuum.template.markdown index 5fc9ac91e79..30519747ec8 100644 --- a/source/_integrations/vacuum.template.markdown +++ b/source/_integrations/vacuum.template.markdown @@ -65,7 +65,7 @@ vacuum: required: true type: template availability_template: - description: Defines a template to get the `available` state of the entity. If the template either fails to render or returns either of `True`, `"1"`, `"true"`, `"yes"`, `"on"`, `"enable"` or a non-zero number, the entity is `available`. If the template returns any other value, the device will be `unavailable`. If not configured, the entity will always be `available`. Note that the string comparison not case sensitive; `"TrUe"` and `"yEs"` are allowed. + description: Defines a template to get the `available` state of the entity. If the template either fails to render or returns `True`, `"1"`, `"true"`, `"yes"`, `"on"`, `"enable"`, or a non-zero number, the entity will be `available`. If the template returns any other value, the entity will be `unavailable`. If not configured, the entity will always be `available`. Note that the string comparison not case sensitive; `"TrUe"` and `"yEs"` are allowed. required: false type: template default: true