From 21609245a97ece3895ad471e828ce30bcd0a7c9f Mon Sep 17 00:00:00 2001 From: "pixel::doc" Date: Thu, 28 Oct 2021 08:49:11 +0200 Subject: [PATCH 01/29] Update telegram_bot.markdown (#20022) --- source/_integrations/telegram_bot.markdown | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/source/_integrations/telegram_bot.markdown b/source/_integrations/telegram_bot.markdown index b41614532b9..144d76721c0 100644 --- a/source/_integrations/telegram_bot.markdown +++ b/source/_integrations/telegram_bot.markdown @@ -517,3 +517,13 @@ Receiving `chat_id` and `message_id` identifiers of sent messages by the `telegr ``` {% endraw %} + +## Example: send_message with formatted Text + +```yaml +action: +- service: notify.telegrambot + data: + title: Example Message + message: 'Message with *BOLD*, _ITALIC_ and `MONOSPACE` Text' +``` From 0566ada7486783587d5a69bbc93d08a54ea339c9 Mon Sep 17 00:00:00 2001 From: SNoof85 Date: Thu, 28 Oct 2021 08:58:18 +0200 Subject: [PATCH 02/29] vesync update template sensors examples (#20018) --- source/_integrations/vesync.markdown | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/source/_integrations/vesync.markdown b/source/_integrations/vesync.markdown index 5a2cee259bb..5d564692c40 100644 --- a/source/_integrations/vesync.markdown +++ b/source/_integrations/vesync.markdown @@ -110,21 +110,17 @@ Adapted from the [TP-Link integration](https://www.home-assistant.io/integration {% raw %} ```yaml -sensor: - - platform: template - sensors: - vesync_switch_watts: - friendly_name_template: "{{ states.switch.vesync_switch.name}} Current Consumption" - value_template: '{{ states.switch.vesync_switch.attributes["current_power_w"] | float }}' - unit_of_measurement: "W" - vesync_switch_total_kwh: - friendly_name_template: "{{ states.switch.vesync_switch.name}} Total Consumption" - value_template: '{{ states.switch.vesync_switch.attributes["today_energy_kwh"] | float }}' - unit_of_measurement: "kWh" - vesync_switch_volts: - friendly_name_template: "{{ states.switch.vesync_switch.name}} Voltage" - value_template: '{{ states.switch.vesync_switch.attributes["voltage"] | float }}' - unit_of_measurement: "V" +template: + - sensor: + - name: "Vesync current comsumption" + state: "{{ state_attr('switch.vesync_switch', 'current_power_w') | float(default=0) }}" + unit_of_measurement: "W" + - name: "Vesync total consumption" + state: "{{ state_attr('switch.vesync_switch', 'today_energy_kwh') | float(default=0) }}" + unit_of_measurement: "kWh" + - name: "Vesync voltage" + state: "{{ state_attr('switch.vesync_switch', 'voltage') | float(default=0) }}" + unit_of_measurement: "V" ``` {% endraw %} From 0cfc528a5bd480632421f1a21feb3a72f3321c2a Mon Sep 17 00:00:00 2001 From: SNoof85 Date: Thu, 28 Oct 2021 08:59:19 +0200 Subject: [PATCH 03/29] waze_travel_time update template sensor example (#20019) --- .../_integrations/waze_travel_time.markdown | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/source/_integrations/waze_travel_time.markdown b/source/_integrations/waze_travel_time.markdown index 88e1e177185..544ed289b85 100644 --- a/source/_integrations/waze_travel_time.markdown +++ b/source/_integrations/waze_travel_time.markdown @@ -43,20 +43,19 @@ input_select: - Work - Parents -sensor: - - platform: template - sensors: - dest_address: - value_template: >- - {%- if is_state("input_select.destination", "Home") -%} - 725 5th Ave, New York, NY 10022, USA - {%- elif is_state("input_select.destination", "Work") -%} - 767 5th Ave, New York, NY 10153, USA - {%- elif is_state("input_select.destination", "Parents") -%} - 178 Broadway, Brooklyn, NY 11211, USA - {%- else -%} - Unknown - {%- endif %} +template: + - sensor: + - name: "Destination address" + state: >- + {%- if is_state("input_select.destination", "Home") -%} + 725 5th Ave, New York, NY 10022, USA + {%- elif is_state("input_select.destination", "Work") -%} + 767 5th Ave, New York, NY 10153, USA + {%- elif is_state("input_select.destination", "Parents") -%} + 178 Broadway, Brooklyn, NY 11211, USA + {%- else -%} + Unknown + {%- endif %} ``` From 5856c967e8e124ad15457d0f3ecf144ec3b8b240 Mon Sep 17 00:00:00 2001 From: SNoof85 Date: Thu, 28 Oct 2021 09:00:41 +0200 Subject: [PATCH 04/29] time_date update template sensor example (#20021) --- source/_integrations/time_date.markdown | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/source/_integrations/time_date.markdown b/source/_integrations/time_date.markdown index b8bd782b560..5c35100340a 100644 --- a/source/_integrations/time_date.markdown +++ b/source/_integrations/time_date.markdown @@ -62,12 +62,11 @@ sensor: display_options: - 'date_time_iso' # Build on the standard sensor to produce one that can be customized - - platform: template - sensors: - time_formatted: - friendly_name: "Date and time" - value_template: "{{ as_timestamp(states('sensor.date_time_iso')) | timestamp_custom('%A %B %-d, %I:%M %p') }}" - icon_template: mdi:calendar-clock +template: + - sensor: + - name: "Date and time" + state: "{{ as_timestamp(states('sensor.date_time_iso')) | timestamp_custom('%A %B %-d, %I:%M %p') }}" + icon: "mdi:calendar-clock" ``` {% endraw %} From cbdd8b9ee0ff1a10d3beb89383117119cfb349f5 Mon Sep 17 00:00:00 2001 From: Brett Adams Date: Thu, 28 Oct 2021 17:05:29 +1000 Subject: [PATCH 05/29] Repo for croniter has moved (#20025) --- source/_integrations/utility_meter.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/utility_meter.markdown b/source/_integrations/utility_meter.markdown index 817aaba49b1..289f3a37985 100644 --- a/source/_integrations/utility_meter.markdown +++ b/source/_integrations/utility_meter.markdown @@ -55,7 +55,7 @@ offset: type: time type: integer cron: - description: This option is *mutually exclusive* of `cycle` and `offset`. It provides an advanced method of defining when should the counter be reset. It follows common [crontab syntax](https://crontab.guru) but extended to support more advanced scheduling. See the [croniter](https://github.com/taichino/croniter) library. + description: This option is *mutually exclusive* of `cycle` and `offset`. It provides an advanced method of defining when should the counter be reset. It follows common [crontab syntax](https://crontab.guru) but extended to support more advanced scheduling. See the [croniter](https://github.com/kiorky/croniter) library. required: true type: string net_consumption: From 054acb06fd32d1af709388dbe1fec204ebc4b03c Mon Sep 17 00:00:00 2001 From: SNoof85 Date: Thu, 28 Oct 2021 09:30:18 +0200 Subject: [PATCH 06/29] transport_nsw update template sensor example (#20020) Co-authored-by: Franck Nijhof --- source/_integrations/transport_nsw.markdown | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/source/_integrations/transport_nsw.markdown b/source/_integrations/transport_nsw.markdown index 952c2676e07..5e32db71976 100644 --- a/source/_integrations/transport_nsw.markdown +++ b/source/_integrations/transport_nsw.markdown @@ -89,11 +89,10 @@ The sensor returns n/a if no stop event is found within the next 24h. A `templat ```yaml # Sample template sensor -- platform: template - sensors: - busmonitor: - friendly_name: "Bus Mon 199" - value_template: >- +template: + - sensor: + - name: "Bus monitor 199" + state: >- {% if is_state_attr('sensor.bus', 'due', 'n/a') %} No schedule found {% else %} From 793ba6728700dff3388131197b1a97eba6dc4e27 Mon Sep 17 00:00:00 2001 From: Oliver Ou Date: Thu, 28 Oct 2021 17:24:04 +0800 Subject: [PATCH 07/29] update Tuya doc (#20026) --- source/_integrations/tuya.markdown | 9 +++++---- source/images/integrations/tuya/image_002.png | Bin 71429 -> 70883 bytes 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/source/_integrations/tuya.markdown b/source/_integrations/tuya.markdown index 9a3432e1811..25321c71b8d 100644 --- a/source/_integrations/tuya.markdown +++ b/source/_integrations/tuya.markdown @@ -70,7 +70,8 @@ This is a separate account to the one you made for the app. You cannot log in wi ### Get authorization key Click the created project to enter the `Project Overview` page and get the `Authorization Key`. You will need these for setting up the integration. in the next step. - ![](/images/integrations/tuya/image_006.png) + +![](/images/integrations/tuya/image_006.png) {% include integrations/config_flow.md %} @@ -97,7 +98,7 @@ Click the created project to enter the `Project Overview` page and get the `Auth {% configuration_basic %} "1004: sign invalid": - description: Incorrect Access ID or Access Secret. Please refer to [Tuya credential table](https://github.com/tuya/tuya-home-assistant/wiki/Install-Tuya-v2?_source=d10de34623e3daca5b02e3c31528a0c4#3-enter-your-tuya-credential). + description: Incorrect Access ID or Access Secret. Please refer to the **Configuration** part above. "1106: permission deny": description: > @@ -105,10 +106,10 @@ Click the created project to enter the `Project Overview` page and get the `Auth - Incorrect username or password: Enter the correct account and password of the Tuya Smart or Smart Life app in the **Account** and **Password** fields. Note that the app account depends on which app (Tuya Smart or Smart Life) you used to link devices on the [Tuya IoT Platform](https://iot.tuya.com/cloud/). - - Incorrect availability zone: See [Availability Zone](https://github.com/tuya/tuya-home-assistant/wiki/Tuya-IoT-Platform-Configuration-Guide-Using-Smart-Home-PaaS#region--available-zone-correspondence) and select the correct availability zone. + - Incorrect country. You must select the region of your account of the Tuya Smart app or Smart Life app. "1100: param is empty": - description: Empty parameter of username or app. Fill the parameters refer to [Tuya credential table](https://github.com/tuya/tuya-home-assistant/wiki/Install-Tuya-v2?_source=d10de34623e3daca5b02e3c31528a0c4#3-enter-your-tuya-credential). + description: Empty parameter of username or app. Please fill the parameters refer to the **Configuration** part above. "2406: skill id invalid": description: > diff --git a/source/images/integrations/tuya/image_002.png b/source/images/integrations/tuya/image_002.png index 447490b75d9ec4575ae3d564eed66ffeafc264d7..d3140e7b50cbb41e3ef4d20f36b402c1e9d49e78 100644 GIT binary patch literal 70883 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 )`Z2(<%9cBK^IT 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 From 330298aba3d5a3e84c8bf5bf8fcd3369bd87c3f8 Mon Sep 17 00:00:00 2001 From: Stefan <37924749+stefanroelofs@users.noreply.github.com> Date: Thu, 28 Oct 2021 18:00:45 +0200 Subject: [PATCH 08/29] Fix markdownlint / spelling issues #4 (#20033) --- source/_integrations/counter.markdown | 2 -- source/_integrations/cover.command_line.markdown | 1 - source/_integrations/cover.markdown | 4 ++-- source/_integrations/cover.mqtt.markdown | 2 +- source/_integrations/cover.rflink.markdown | 12 ++++++------ source/_integrations/cover.xiaomi_aqara.markdown | 1 - source/_integrations/daikin.markdown | 14 ++++++++------ source/_integrations/demo.markdown | 1 - source/_integrations/denonavr.markdown | 1 - source/_integrations/deutsche_bahn.markdown | 1 + .../device_sun_light_trigger.markdown | 6 +++--- .../_integrations/device_tracker.xiaomi.markdown | 1 - source/_integrations/device_trigger.mqtt.markdown | 13 ++++++++++--- source/_integrations/dexcom.markdown | 8 ++++---- source/_integrations/discord.markdown | 15 ++++++++------- 15 files changed, 43 insertions(+), 39 deletions(-) diff --git a/source/_integrations/counter.markdown b/source/_integrations/counter.markdown index a1cb08a588e..7fdaabea723 100644 --- a/source/_integrations/counter.markdown +++ b/source/_integrations/counter.markdown @@ -112,8 +112,6 @@ With this service the properties of the counter can be changed while running. | `initial` | yes | Set new value for initial. | | `value` | yes | Set the counters state to the given value. | - - ### Use the service Select the **Services** tab from within **Developer Tools**. Choose **counter** from the list of **Domains**, select the **Service**, enter something like the sample below into the **Service Data** field, and hit **CALL SERVICE**. diff --git a/source/_integrations/cover.command_line.markdown b/source/_integrations/cover.command_line.markdown index ed6a6749731..c6e2f5c9229 100644 --- a/source/_integrations/cover.command_line.markdown +++ b/source/_integrations/cover.command_line.markdown @@ -75,7 +75,6 @@ In this section you find some real-life examples of how to use this sensor. ### Full configuration - {% raw %} ```yaml diff --git a/source/_integrations/cover.markdown b/source/_integrations/cover.markdown index a099c0979e2..3816ca93de1 100644 --- a/source/_integrations/cover.markdown +++ b/source/_integrations/cover.markdown @@ -47,7 +47,7 @@ Set cover position of one or multiple covers. | `entity_id` | yes | String or list of strings that point at `entity_id`'s of covers. Use `entity_id: all` to target all. | `position` | no | Integer between 0 and 100. -#### Automation example +#### Automation example ```yaml automation: @@ -71,7 +71,7 @@ Set cover tilt position of one or multiple covers. | `entity_id` | yes | String or list of strings that point at `entity_id`'s of covers. Use `entity_id: all` to target all. | `tilt_position` | no | Integer between 0 and 100. -#### Automation example +#### Automation example ```yaml automation: diff --git a/source/_integrations/cover.mqtt.markdown b/source/_integrations/cover.mqtt.markdown index 10e6fe21a1a..02cc25721a8 100644 --- a/source/_integrations/cover.mqtt.markdown +++ b/source/_integrations/cover.mqtt.markdown @@ -466,7 +466,7 @@ For auto discovery message the payload needs to be set to `null`, example for co ### Full configuration using `entity_id`- variable in the template -The example below shows an example of how to correct the state of the blind depending if it moved up, or down. +The example below shows an example of how to correct the state of the blind depending if it moved up, or down. {% raw %} diff --git a/source/_integrations/cover.rflink.markdown b/source/_integrations/cover.rflink.markdown index 34db7bfdebe..5ffe26cf8a5 100644 --- a/source/_integrations/cover.rflink.markdown +++ b/source/_integrations/cover.rflink.markdown @@ -15,7 +15,7 @@ First, you have to set up your [RFLink hub](/integrations/rflink/). After configuring the RFLink hub, covers will be automatically discovered and added. Except the Somfy RTS devices. -### Setting up a Somfy RTS device +## Setting up a Somfy RTS device You have to add the Somfy RTS manually with the supplied RFlinkLoader (Windows only). @@ -53,7 +53,7 @@ RTS Record: 15 Address: FFFFFF RC: FFFF After configuring the RFLink Somfy RTS you have to add the cover to the `configuration.yaml` file like any other RFlink device. -RFLink cover ID's are composed of: protocol, id, and gateway. For example: `RTS_0100F2_0`. +RFLink cover ID's are composed of: protocol, id, and gateway. For example: `RTS_0100F2_0`. Once the ID of a cover is known, it can be used to configure the cover in Home Assistant, for example, to add it to a different group or set a nice name. @@ -131,7 +131,7 @@ devices: type: string {% endconfiguration %} -### Setting up a KAKU ASUN-650 device +## Setting up a KAKU ASUN-650 device In RFLink, the ON and DOWN command are used to close the cover and the OFF and UP command are used to open the cover. The KAKU (COCO) ASUN-650 works the other way around, it uses the ON command to open the cover and the OFF command to close the cover. @@ -166,13 +166,13 @@ cover: name: non_kaku_not_inverted_by_default ``` -The configuration above shows that the `type` property may be omitted. When the ID starts with `newkaku`, the component will make sure that the on and off commands are inverted. When the ID does not start with `newkaku`, the on and off commands are not inverted. +The configuration above shows that the `type` property may be omitted. When the ID starts with `newkaku`, the component will make sure that the on and off commands are inverted. When the ID does not start with `newkaku`, the on and off commands are not inverted. -### Device support +## Device support See [device support](/integrations/rflink/#device-support). -### Additional configuration examples +## Additional configuration examples Multiple covers with custom names and aliases diff --git a/source/_integrations/cover.xiaomi_aqara.markdown b/source/_integrations/cover.xiaomi_aqara.markdown index d0d4b65528f..296f856f0d4 100644 --- a/source/_integrations/cover.xiaomi_aqara.markdown +++ b/source/_integrations/cover.xiaomi_aqara.markdown @@ -12,4 +12,3 @@ ha_domain: xiaomi_aqara The `xiaomi aqara` cover platform allows you to get data from your [Xiaomi](https://www.mi.com/en/) covers. The requirement is that you have setup [Xiaomi aqara](/integrations/xiaomi_aqara/). - diff --git a/source/_integrations/daikin.markdown b/source/_integrations/daikin.markdown index 2fbee47aab6..993dffa1889 100644 --- a/source/_integrations/daikin.markdown +++ b/source/_integrations/daikin.markdown @@ -20,7 +20,7 @@ ha_platforms: ---

- Daikin has removed their local API in newer products. They offer a cloud API accessible only under NDA, which is incompatible with open source. This affects units fitted with the BRP069C4x wifi adapter. Units listed under Supported Hardware below continue to have access to local control. Additionally the older but commonly available BRP072A42 adapter can be fitted to most if not all newer units for access to local control. + Daikin has removed their local API in newer products. They offer a cloud API accessible only under NDA, which is incompatible with open source. This affects units fitted with the BRP069C4x wifi adapter. Units listed under Supported Hardware below continue to have access to local control. Additionally the older but commonly available BRP072A42 adapter can be fitted to most if not all newer units for access to local control.

The `daikin` integration integrates Daikin air conditioning systems into Home Assistant. @@ -42,7 +42,7 @@ There is currently support for the following device types within Home Assistant:
-* The integration for BRP072Cxx and SKYFi based units need API-key / password respectively. The API-key/password can be found on a sticker under the front cover. The other models are auto detected and the API-key and password field must be left empty. +- The integration for BRP072Cxx and SKYFi based units need API-key / password respectively. The API-key/password can be found on a sticker under the front cover. The other models are auto detected and the API-key and password field must be left empty.
@@ -85,8 +85,9 @@ Preset mode **away** translates to Daikin's "Holiday Mode":
_"Holiday mode" is used when you want to turn off your units when you leave you home for a longer time._

_When "Holiday mode" is enabled, the following action take place:_ - - _All connected units are turned OFF._ - - _All schedule timers are disabled._ + +- _All connected units are turned OFF._ +- _All schedule timers are disabled._ @@ -130,7 +131,7 @@ Zones with the name `-` will be ignored, just as the AirBase application is work -Additionally the Daikin Streamer (air purifier) function can be toggled onsupported devices using a switch. Note that it isn't currently possible to reliably detect whether a specific device has streamer support, so the switch may appear in the UI even if the functionality isn't actually supported. +Additionally the Daikin Streamer (air purifier) function can be toggled on supported devices using a switch. Note that it isn't currently possible to reliably detect whether a specific device has streamer support, so the switch may appear in the UI even if the functionality isn't actually supported. ## Region Changing @@ -138,7 +139,8 @@ The European and United States controllers (Most likely the Australian controlle `http://Daikin-IP-Address/common/set_regioncode?reg=XX` Replace XX with your region code of choice. -Currently known region codes: +Currently known region codes: + - AU - EU - JP diff --git a/source/_integrations/demo.markdown b/source/_integrations/demo.markdown index dbad6e5433f..e6b050f5b58 100644 --- a/source/_integrations/demo.markdown +++ b/source/_integrations/demo.markdown @@ -63,7 +63,6 @@ Available demo platforms: - [Text-to-speech](/integrations/tts/) (`tts`) - [Weather](/integrations/weather/) (`weather`) - To integrate a demo platform in Home Assistant, add the following section to your `configuration.yaml` file: ```yaml diff --git a/source/_integrations/denonavr.markdown b/source/_integrations/denonavr.markdown index 59beef92ead..76d079c57e3 100644 --- a/source/_integrations/denonavr.markdown +++ b/source/_integrations/denonavr.markdown @@ -107,7 +107,6 @@ A few notes: - To remotely power on Marantz receivers with Home Assistant, the Auto-Standby feature must be enabled in the receiver's settings. - Sound mode: The command to set a specific sound mode is different from the value of the current sound mode reported by the receiver (sound_mode_raw). There is a key-value structure (sound_mode_dict) that matches the raw sound mode to one of the possible commands to set a sound mode (for instance {'MUSIC':['PLII MUSIC']}. If you get a "Not able to match sound mode" warning, please open an issue on the [denonavr library](https://github.com/scarface-4711/denonavr), stating which raw sound mode could not be matched so it can be added to the matching dictionary. You can find the current raw sound mode under **Developer Tools** -> **States**. - #### Service `denonavr.get_command` Denon AVR receivers support a simple text-based network interface for sending commands to the receiver over the network. You can access this interface via the `denonavr.get_command` service. In addition, IR remote codes can also be sent to this interface. diff --git a/source/_integrations/deutsche_bahn.markdown b/source/_integrations/deutsche_bahn.markdown index c52b8bdf2a4..501bb605719 100644 --- a/source/_integrations/deutsche_bahn.markdown +++ b/source/_integrations/deutsche_bahn.markdown @@ -21,6 +21,7 @@ sensor: from: NAME_OF_START_STATION to: NAME_OF_FINAL_STATION ``` + {% configuration %} from: description: The name of the start station. diff --git a/source/_integrations/device_sun_light_trigger.markdown b/source/_integrations/device_sun_light_trigger.markdown index f9cec7f9b27..153ba9f39a5 100644 --- a/source/_integrations/device_sun_light_trigger.markdown +++ b/source/_integrations/device_sun_light_trigger.markdown @@ -13,9 +13,9 @@ ha_domain: device_sun_light_trigger Home Assistant has a built-in integration called `device_sun_light_trigger` to help you automate your lights. The integration will: - * Fade in the lights when the sun is setting and there are people home - * Turn on the lights when people get home after the sun has set - * Turn off the lights when all people leave the house +* Fade in the lights when the sun is setting and there are people home +* Turn on the lights when people get home after the sun has set +* Turn off the lights when all people leave the house This integration requires the integrations [sun](/integrations/sun/), [device_tracker](/integrations/device_tracker/), [person](/integrations/person/) and [light](/integrations/light/) to be enabled. diff --git a/source/_integrations/device_tracker.xiaomi.markdown b/source/_integrations/device_tracker.xiaomi.markdown index e6e5e8eb2be..f61f8dd6470 100644 --- a/source/_integrations/device_tracker.xiaomi.markdown +++ b/source/_integrations/device_tracker.xiaomi.markdown @@ -45,4 +45,3 @@ To ensure that your router is compatible, navigate to `http://YOUR_ROUTER_IP/api You should see a listing of the device currently connected to your router. However, some users report that even when the previous URL does not work, they have been able to integrate their Mi Router 3 in Home Assistant. E.g., some users with the Mi Router 3 and firmware version 2.10.46 Stable have integrated their routers successfully and an alternative URL to test integration with is `http://YOUR_ROUTER_IP/cgi-bin/luci/api/misystem/devicelist`. Navigating to this page should show the `{"code":401,"msg":"Invalid token"}` message. - diff --git a/source/_integrations/device_trigger.mqtt.markdown b/source/_integrations/device_trigger.mqtt.markdown index 20b638be245..c7846538818 100644 --- a/source/_integrations/device_trigger.mqtt.markdown +++ b/source/_integrations/device_trigger.mqtt.markdown @@ -88,19 +88,26 @@ This shows a complete example of defining a remote control type device with two Note that it is not necessary to provide the full device information in each message, but the identifying information, `identifier` in the example, must be the same. -#### Left arrow click configuration: +#### Left arrow click configuration + - Discovery topic: `homeassistant/device_automation/0x90fd9ffffedf1266/action_arrow_left_click/config` -- Discovery payload: +- Discovery payload: + ```json {"automation_type":"trigger","type":"action","subtype":"arrow_left_click","payload":"arrow_left_click","topic":"zigbee2mqtt/0x90fd9ffffedf1266/action","device":{"identifiers":["zigbee2mqtt_0x90fd9ffffedf1266"],"name":"0x90fd9ffffedf1266","sw_version":"Zigbee2mqtt 1.14.0","model":"TRADFRI remote control (E1524/E1810)","manufacturer":"IKEA"}} ``` + - Trigger topic: `zigbee2mqtt/0x90fd9ffffedf1266/action` - Trigger payload: `arrow_left_click` -#### Right arrow click configuration: + +#### Right arrow click configuration + - Discovery topic: `homeassistant/device_automation/0x90fd9ffffedf1266/action_arrow_right_click/config` - Discovery payload: + ```json {"automation_type":"trigger","type":"action","subtype":"arrow_right_click","payload":"arrow_right_click","topic":"zigbee2mqtt/0x90fd9ffffedf1266/action","device":{"identifiers":["zigbee2mqtt_0x90fd9ffffedf1266"]}} ``` + - Trigger topic: `zigbee2mqtt/0x90fd9ffffedf1266/action` - Trigger payload: `arrow_right_click` diff --git a/source/_integrations/dexcom.markdown b/source/_integrations/dexcom.markdown index 00e8a3e4500..f9b52bb8dc8 100644 --- a/source/_integrations/dexcom.markdown +++ b/source/_integrations/dexcom.markdown @@ -25,22 +25,22 @@ You will need to set up the [Dexcom Share](https://provider.dexcom.com/education Some people have had problems with connecting when their Dexcom passwords are entirely numeric. If you have connection issues in that case, try changing your password to something with a mix of numbers and letters. -#### Server +### Server There are two Dexcom Share servers, `US` for United States customers, and `OUS` for all customers outside of the United States. -#### Unit of measurement +### Unit of measurement The integrations allows both `mg/dL` and `mmol/l` units of measurement for blood glucose values. To change your preferred unit of measurement, got to **Configuration** >> **Integrations** in the UI, and click `OPTIONS`. -### Sensor +## Sensor If you have a sensor session running, and once you have enabled the Dexcom integration, you should see the following sensors: - Blood glucose value sensor - Blood glucose trend sensor -### Example Automation +## Example Automation ```yaml - id: '1234567890123' diff --git a/source/_integrations/discord.markdown b/source/_integrations/discord.markdown index b3a32708f19..10bbcbb3ffa 100644 --- a/source/_integrations/discord.markdown +++ b/source/_integrations/discord.markdown @@ -18,6 +18,8 @@ Retrieve the **Client ID** from the information section and the (hidden) **Token When setting up the application you can use this [icon](/images/favicon-192x192-full.png). +## Configuration + To use Discord notifications, add the following to your `configuration.yaml` file: ```yaml @@ -39,7 +41,7 @@ token: type: string {% endconfiguration %} -### Setting up the bot +## Setting up the bot Bots can send messages to servers and users or attach local available images. To add the bot to a server you are an admin on, get the details of the bot from the [Discord My Apps page](https://discordapp.com/developers/applications/me). @@ -67,7 +69,7 @@ Right click channel name and copy the channel ID (**Copy ID**). This channel or user ID has to be used as the target when calling the notification service. Multiple channel or user IDs can be specified, across multiple servers or direct messages. -### Discord Service Data +## Discord Service Data The following attributes can be placed inside the `data` key of the service call for extended functionality: @@ -76,7 +78,6 @@ The following attributes can be placed inside the `data` key of the service call | `images` | yes | The file(s) to attach to message. | `embed` | yes | Array of [Discord embeds](https://discordpy.readthedocs.io/en/latest/api.html#embed). *NOTE*: if using `embed`, `message` is still required. - To include messages with embedding, use these attributes underneath the `embed` key: | Attribute | Optional | Description | @@ -90,8 +91,7 @@ To include messages with embedding, use these attributes underneath the `embed` | `thumbnail` | yes | Sets the thumbnail for the embed content. | `fields` | yes | Adds a field to the embed object. `name` and `value` are *required*, `inline` is *true* by default. - -#### Example service call +### Example service call ```yaml - service: notify.discord @@ -104,7 +104,8 @@ To include messages with embedding, use these attributes underneath the `embed` - "/tmp/garage.jpg" ``` -#### Example embed service call +### Example embed service call + ```yaml - service: notify.discord data: @@ -138,7 +139,7 @@ To include messages with embedding, use these attributes underneath the `embed` inline: false ``` -### Notes +## Notes You can tag any user inside a channel by using their user ID in the message like so: `<@userid>` replacing `userid` with the ID you copied. To get the user ID right click on the user name to copy the ID like you did for the channel ID up above. From 35884cda86f438a33f790d17c418a70a874497cb Mon Sep 17 00:00:00 2001 From: Chen-IL <18098431+Chen-IL@users.noreply.github.com> Date: Thu, 28 Oct 2021 22:27:54 +0300 Subject: [PATCH 09/29] Use modern template binary-sensor in example (#20029) --- source/_integrations/alert.markdown | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/source/_integrations/alert.markdown b/source/_integrations/alert.markdown index fb017346fa1..9868b741d20 100644 --- a/source/_integrations/alert.markdown +++ b/source/_integrations/alert.markdown @@ -158,17 +158,16 @@ conjunction with a `Template Binary Sensor`. The following example does that. {% raw %} ```yaml -binary_sensor: - - platform: template - sensors: - motion_battery_low: - value_template: "{{ state_attr('sensor.motion', 'battery') < 15 }}" - friendly_name: "Motion battery is low" +template: + - binary_sensor: + - name: "Motion Battery is Low" + state: "{{ state_attr('sensor.motion', 'battery') | float(default=0) < 15 }}" + device_class: battery alert: motion_battery: name: Motion Battery is Low - entity_id: binary_sensor.motion_battery_low + entity_id: binary_sensor.motion_battery_is_low repeat: 30 notifiers: - ryans_phone From f1150017b0fbf776e0ce058216718e933081a395 Mon Sep 17 00:00:00 2001 From: Brig Lamoreaux Date: Thu, 28 Oct 2021 12:49:36 -0700 Subject: [PATCH 10/29] Format powerwall sensors. Match to code. (#20035) --- source/_integrations/powerwall.markdown | 33 +++++++++++++++++-------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/source/_integrations/powerwall.markdown b/source/_integrations/powerwall.markdown index dcf459e6558..4cf86b6b511 100644 --- a/source/_integrations/powerwall.markdown +++ b/source/_integrations/powerwall.markdown @@ -31,19 +31,32 @@ There is currently support for the following device types within Home Assistant: The following binary sensors are added for each Powerwall: -- Powerwall Status -- Powerwall Connected to Tesla +- Grid Service Active - Grid Status +- Powerwall Charging +- Powerwall Connected to Tesla +- Powerwall Status ### Sensor The following sensors are added for each Powerwall: -- Powerwall Charge -- Powerwall Site Now -- Powerwall Load Now -- Powerwall Battery Now -- Powerwall Frequency Now (if applicable) -- Powerwall Busway Now (if applicable) -- Powerwall Solar Now (if applicable) -- Powerwall Generator Now (if applicable) +- Powerwall Battery Now - Usage in kW +- Powerwall Charge - Percent charge remaining in % +- Powerwall Generator Now - Usage in kW (if applicable) +- Powerwall Load Now - Load usage in kW +- Powerwall Solar Now - Solar usage in kW (if applicable) +- Powerwall Site Now - Site usage in kW + +The following sensors show the direction of energy: + +- Powerwall Solar Export - Solar energy exported in kWh +- Powerwall Solar Import - Solar energy imported in kWh +- Powerwall Site Export - Site energy exported in kWh +- Powerwall Site Import - Site energy imported in kWh +- Powerwall Battery Export - Battery energy exported in kWh +- Powerwall Battery Import - Battery energy imported in kWh +- Powerwall Load Export - Load energy exported in kWh +- Powerwall Load Import - Load energy imported in kWh +- Powerwall Generator Export - Generator energy exported in kWh +- Powerwall Generator Import - Generator energy imported in kWh From 26e902d9830fb8425b1ba4d82d197afe17a40d40 Mon Sep 17 00:00:00 2001 From: javicalle <31999997+javicalle@users.noreply.github.com> Date: Thu, 28 Oct 2021 22:52:54 +0200 Subject: [PATCH 11/29] Add Bitron Video/Smabit BV AV2010/10 link (#20038) --- source/_integrations/zha.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown index 842e0e2abef..dcb322cddb3 100644 --- a/source/_integrations/zha.markdown +++ b/source/_integrations/zha.markdown @@ -76,7 +76,7 @@ Some other Zigbee coordinator hardware may not support a firmware that is capabl - [Nortek GoControl QuickStick Combo Model HUSBZB-1 (Z-Wave & Zigbee Ember 3581 USB Adapter)](https://www.nortekcontrol.com/products/2gig/husbzb-1-gocontrol-quickstick-combo/) (Note! Not a must but recommend [upgrade the EmberZNet NCP application firmware](https://github.com/walthowd/husbzb-firmware)) - [Elelabs Zigbee USB Adapter](https://elelabs.com/products/elelabs_usb_adapter.html)/[POPP ZB-Stick](https://shop.zwave.eu/detail/index/sArticle/2496) (Note! Not a must but recommend [upgrade the EmberZNet NCP application firmware](https://github.com/Elelabs/elelabs-zigbee-ezsp-utility)) - [Elelabs Zigbee Raspberry Pi Shield](https://elelabs.com/products/elelabs_zigbee_shield.html) (Note! Not a must but recommend [upgrade the EmberZNet NCP application firmware](https://github.com/Elelabs/elelabs-zigbee-ezsp-utility)) - - Bitron Video/Smabit BV AV2010/10 USB-Stick with Silicon Labs Ember 3587 + - [Bitron Video/Smabit BV AV2010/10 USB-Stick](https://bv.smabit.eu/index.php/smart-home-produkte/zb-funkstick/) with Silicon Labs Ember 3587 - Telegesis ETRX357USB/ETRX357USB-LR/ETRX357USB-LRS+8M (Note! These first have to be [flashed with other EmberZNet firmware](https://github.com/walthowd/husbzb-firmware)) - Texas Instruments based radios (via the [zigpy-znp](https://github.com/zigpy/zigpy-znp) library for zigpy) - [CC2652P/CC2652R/CC2652RB USB stick, module, or dev board hardware flashed with Z-Stack coordinator firmware](https://www.zigbee2mqtt.io/information/supported_adapters) From db255f99e4ba51cb3aa07672a64849f5c9a818f5 Mon Sep 17 00:00:00 2001 From: Sean Mooney Date: Fri, 29 Oct 2021 06:01:45 -0400 Subject: [PATCH 12/29] Remove outdated Z-Wave paragraph from Config docs (#20043) --- source/_integrations/config.markdown | 4 ---- 1 file changed, 4 deletions(-) diff --git a/source/_integrations/config.markdown b/source/_integrations/config.markdown index d47558ffe0a..5514369748e 100644 --- a/source/_integrations/config.markdown +++ b/source/_integrations/config.markdown @@ -61,10 +61,6 @@ This section enables you to create and modify automations from within Home Assis Similar to the automation editor, this section enables you to create and modify scripts from within Home Assistant, without needing to write out the YAML code. -### Z-Wave - -This section enables you to control your Z-Wave network and devices from within Home Assistant. You can add and remove devices, as well as change device specific configuration variables. - ### Customizations This section enables you to customize entities within Home Assistant. Use this to set friendly names, change icons, and modify other attributes. From e79e3fa76102a35737bb2c34da87e342149e7c30 Mon Sep 17 00:00:00 2001 From: Sean Mooney Date: Fri, 29 Oct 2021 06:02:47 -0400 Subject: [PATCH 13/29] Instructions on how to add Counters via UI (#20044) --- source/_integrations/counter.markdown | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/source/_integrations/counter.markdown b/source/_integrations/counter.markdown index 7fdaabea723..199aa665fbc 100644 --- a/source/_integrations/counter.markdown +++ b/source/_integrations/counter.markdown @@ -14,7 +14,17 @@ The `counter` integration allows one to count occurrences fired by automations. ## Configuration -To add a counter to your installation, add the following to your `configuration.yaml` file: +The preferred way to configure counter helpers is via the user interface. To add one, go to +**{% my helpers title="Configuration -> Helpers" %}** and click the add button; +next choose the "**Counter**" option. + +To be able to add **Helpers** via the user interface you should have +`default_config:` in your `configuration.yaml`, it should already be there by +default unless you removed it. If you removed `default_config:` from your +configuration, you must add `counter:` to your `configuration.yaml` first, +then you can use the UI. + +Counters can also be configured via `configuration.yaml`: ```yaml # Example configuration.yaml entry From 42cf89b0e9b0ea533bbce6a5c1b995ef736f259b Mon Sep 17 00:00:00 2001 From: Sean Mooney Date: Fri, 29 Oct 2021 06:03:28 -0400 Subject: [PATCH 14/29] Fix text pointing to wrong "Edit" location of docs (#20042) --- source/_integrations/denonavr.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/denonavr.markdown b/source/_integrations/denonavr.markdown index 76d079c57e3..2870ac6d642 100644 --- a/source/_integrations/denonavr.markdown +++ b/source/_integrations/denonavr.markdown @@ -75,7 +75,7 @@ Known supported devices: - Other Denon AVR receivers (untested) - Marantz receivers (experimental) -If your model is not on the list then give it a test, if everything works correctly then add it to the list by clicking on the **Edit this page on GitHub** link above. +If your model is not on the list then give it a test, if everything works correctly then add it to the list by clicking on the **Edit** link at the bottom of this page.
If you have something else using the IP controller for your Denon AVR 3808CI, such as your URC controller, it will not work! There is either a bug or security issue with some models where only one device could be controlling the IP functionality. From 682ac4f24eae7f92d7a059ecfaab9e5baf703501 Mon Sep 17 00:00:00 2001 From: Allen Porter Date: Sat, 30 Oct 2021 07:35:36 -0700 Subject: [PATCH 15/29] Change order of nest instructions in fewer steps (#20073) --- source/_integrations/nest.markdown | 110 ++++++++++++++++------------- 1 file changed, 61 insertions(+), 49 deletions(-) diff --git a/source/_integrations/nest.markdown b/source/_integrations/nest.markdown index d0cd603ad80..d70f5e8a50e 100644 --- a/source/_integrations/nest.markdown +++ b/source/_integrations/nest.markdown @@ -32,7 +32,7 @@ There is currently support for the following device types within Home Assistant: - [Sensor](#sensor)
-This integration supports two Nest APIs: The SDM API (new) accepts new users and requires a US$5 fee. The Legacy Works With Nest API (old) does not accept new users, but the documentation is still available at the bottom of the page for existing users. +The Nest Smart Device Management (SDM) API *requires a US$5 fee*.
Google applies strict [Redirect URI validation rules](https://developers.google.com/identity/protocols/oauth2/web-server#uri-validation) to keep your login credentials secure. In practice, this means that you must access Home Assistant *over SSL* and a *public top-level domain* when setting up this integration. See the documentation on [Securing](/docs/configuration/securing/) or [Troubleshooting](#troubleshooting), and note that you don't actually need to enable remote access. @@ -62,33 +62,11 @@ The full detailed instructions for account setup are available in the [Device Ac For the first phase, you will turn on the API and create the necessary credentials to have Home Assistant talk to the Nest API. -{% details "Create a Device Access Project [Device Access Console]" %} +{% details "Create and configure Cloud Project [Cloud Console]" %} -1. First go to the [Device Access Registration](https://developers.google.com/nest/device-access/registration) page. Click on the button **[Go to the Device Access Console](https://console.nest.google.com/device-access/)**. - ![Screenshot of Device Access Registration](/images/integrations/nest/device_access.png) +By the end of this section you will have a Cloud Project with the necessary APIs enabled. -1. Check the box to "Accept the Terms of Service" and click **Continue to Payment** where you need to pay a fee (currently US$5). - ![Screenshot of accepting terms](/images/integrations/nest/accept_terms.png) - -
- It is currently not possible to share/be invited to a home with a G-Suite account. Make sure that you pay the fee with an account that has access to your devices. -
- -1. Now the "Device Access Console" should be visible. Click on **Create project**. - ![Screenshot of creating a project](/images/integrations/nest/create_project.png) - -1. Give your Device Access project a name and click **Next**. - ![Screenshot of naming a project](/images/integrations/nest/project_name.png) - -1. Next you will be asked for an *OAuth client ID*. It is a good idea to go create that now following instructions in the next section in a new browser tab. - -{% enddetails %} - -{% details "Configure OAuth client_id and client_secret [Cloud Console]" %} - -By the end of this section you will have the `client_id` and `client_secret`. - -1. Open a new tab to the [Google API Console](https://console.developers.google.com/apis/credentials). +1. Go to the [Google Cloud Console](https://console.developers.google.com/apis/credentials). 1. If this is your first time here, you likely need to create a new Google API project. Click **Create Project** then **New Project**. Note: This is a different type of project from the Device Access project you are also creating. @@ -96,7 +74,26 @@ Project**. Note: This is a different type of project from the Device Access proj 1. Give your API Project a name then click **Create**. Note: You can ignore the *Project ID* here as Home Assistant does not need it. -1. Click *OAuth consent screen* and make sure you have that configured, otherwise you can do that now... +1. Go to [APIs & Services > Library](https://console.cloud.google.com/apis/library) where you can enable APIs. + +1. From the API Library search for [Smart Device management](https://console.cloud.google.com/apis/library/smartdevicemanagement.googleapis.com) and click **Enable**. + + ![Screenshot of Search for SDM API](/images/integrations/nest/enable_sdm_api.png) + +1. From the API Library search for [Cloud Pub/Sub API](https://console.developers.google.com/apis/library/pubsub.googleapis.com) in the Cloud Console and click **Enable**. + +You now have a cloud project ready for the next section to configure authentication with OAuth. + +{% enddetails %} + +{% details "Configure OAuth Consent screen [Cloud Console]" %} + +By the end of this section you will have configured the OAuth Consent Screen, needed for giving Home Assistant access to +your cloud project. + +1. Go to the [Google API Console](https://console.developers.google.com/apis/credentials). + +1. Click [OAuth consent screen](https://console.cloud.google.com/apis/credentials/consent) and configure it. ![Screenshot of OAuth consent screen creation](/images/integrations/nest/oauth_consent_create.png) 1. Select **External** (the only choice if you are not a G-Suite user) then click **Create**. While you are here, you may click the *Let us know what you think* to give Google's OAuth team any feedback about your experience configuring credentials for self-hosted software. They make regular improvements to this flow and appear to value feedback. @@ -108,10 +105,20 @@ Project**. Note: This is a different type of project from the Device Access proj 1. On the *Test Users* step, you need to add your Google Account (e.g., your @gmail.com address) to the list. Click *Save* on your test account then **Save and Continue** to finish the consent flow. ![Screenshot of OAuth consent screen test users](/images/integrations/nest/oauth_consent_test_users.png) -1. Navigate back to the *OAuth consent screen* and click **Publish App** to set the *Publishing status* is *In Production* and not *Testing*. The warning says your *app will be available to any user with a Google Account* which refers to the fields you entered on the *App Information* screen if someone finds the URL. This does not expose your Google Account or Nest data. +1. Navigate back to the *OAuth consent screen* and click **Publish App** to set the *Publishing status* is **In Production**. + +1. Make sure the status is not *Testing*, or you may get logged out every 7 days. + +1. The warning says your *app will be available to any user with a Google Account* which refers to the fields you entered on the *App Information* screen if someone finds the URL. This does not expose your Google Account or Nest data. ![Screenshot of OAuth consent screen production status](/images/integrations/nest/oauth_consent_production_status.png) -1. Navigate to the **Credentials** page and click **Create Credentials**. +{% enddetails %} + +{% details "Configure OAuth client_id and client_secret [Cloud Console]" %} + +By the end of this section you will have the `client_id` and `client_secret` which are needed for later steps. + +1. Navigate to the [Credentials](https://console.cloud.google.com/apis/credentials) page and click **Create Credentials**. ![Screenshot of APIs and Services Cloud Console](/images/integrations/nest/create_credentials.png) 1. From the drop-down list select *OAuth client ID*. @@ -124,35 +131,43 @@ Project**. Note: This is a different type of project from the Device Access proj 1. Add **Authorized redirect URIs** for your Home Assistant URL, including the OAuth callback path e.g., `https://:/auth/external/callback`. See [Troubleshooting](#troubleshooting) below for more details on the subtle requirements for what kinds of URLs work here. ![Screenshot of creating OAuth credentials](/images/integrations/nest/oauth_redirect_uri.png) -1. You should now be presented with an *OAuth client created* message. Take note of *Your Client ID* and *Your Client Secret* as these are needed for Home Assistant set up. +1. You should now be presented with an *OAuth client created* message. Take note of *Your Client ID* and *Your Client +Secret* as these are needed in later steps. ![Screenshot of OAuth Client ID and Client Secret](/images/integrations/nest/oauth_created.png) {% enddetails %} -{% details "Link Device Access project_id [Device Access Console]" %} +{% details "Create a Device Access Project [Device Access Console]" %} -By the end of this section you will have a `project_id` as well as the *Topic Name* needed to configure Cloud Pub/Sub. +Now that you have authentication configured, you will create a Nest Device Access Project which *requires a US$5 fee*. +Once completed, you will have a device access `project_id` needed for later steps and the *Topic Name* needed to +configure Pub/Sub. -1. Now head back to the *[Device Access Console](https://console.nest.google.com/device-access/project-list)* tab and *Add your OAuth client ID* then click **Next**. +1. Go to the [Device Access Registration](https://developers.google.com/nest/device-access/registration) page. Click on the button **[Go to the Device Access Console](https://console.nest.google.com/device-access/)**. + ![Screenshot of Device Access Registration](/images/integrations/nest/device_access.png) + +1. Check the box to "Accept the Terms of Service" and click **Continue to Payment** where you need to pay a fee (currently US$5). + ![Screenshot of accepting terms](/images/integrations/nest/accept_terms.png) + +
+ It is currently not possible to share/be invited to a home with a G-Suite account. Make sure that you pay the fee with an account that has access to your devices. +
+ +1. Now the [Device Access Console](https://console.nest.google.com/device-access/project-list) should be visible. Click on **Create project**. + ![Screenshot of creating a project](/images/integrations/nest/create_project.png) + +1. Give your Device Access project a name and click **Next**. + ![Screenshot of naming a project](/images/integrations/nest/project_name.png) + +1. Next you will be asked for an *OAuth client ID* which you created in the previous step and click **Nest**. ![Screenshot of Device Access Console OAuth client ID](/images/integrations/nest/device_access_oauth_client_id.png) 1. Enable Events by clicking on **Enable** and **Create project**. ![Screenshot of enabling events](/images/integrations/nest/enable_events.png) 1. Take note of the *Project ID* as you will it later. At this point you have the `project_id`, `client_id` and `client_secret` configuration options needed for Home Assistant. -1. Also Take note of the *Pub/Sub Topic* which is later entered manually as the *Topic Name* when configuring Pub/Sub in a follow up step. -{% enddetails %} - -{% details "Enable Device Access APIs [Cloud Console]" %} - -1. Go back to the [Google Cloud Console: API & Services](https://console.developers.google.com/apis/dashboard) - -1. Click on **Enable APIs and Services** - ![Screenshot of Cloud Console APIs and Services](/images/integrations/nest/enable_api.png) - -1. Search for **Smart Device management** and enable the API. - ![Screenshot of Search for SDM API](/images/integrations/nest/enable_sdm_api.png) +1. Take note of the *Pub/Sub Topic* which is later entered manually as the *Topic Name* when configuring Pub/Sub in a follow up step. {% enddetails %} @@ -167,9 +182,6 @@ By the end of this section you will have the `subscriber_id` needed for configur What is Pub/Sub? You can think of your Nest device as the publisher and your Home Assistant as the subscriber. As your Nest device publishes events like a temperature change or motion event, it notifies your Home Assistant subscriber about those events so it can record the new value or trigger an automation. - -1. Visit [Enable the Cloud Pub/Sub API](https://console.developers.google.com/apis/library/pubsub.googleapis.com) in the Cloud Console and click **Enable**. - 1. Go to the [Google Cloud Platform: Pub/Sub: Subscriptions](https://console.cloud.google.com/cloudpubsub/subscription/list) page and click **Create Subscription**. 1. You will need to pick a *Subscription ID*. @@ -279,7 +291,7 @@ everything, however, you can leave out any feature you do not wish to use with H - Check **Configuration** then **Logs** to see if there are any error messages or misconfigurations then see the error messages below. -- *Reauthentication required often*: If you are frequently getting logged out, this means your authentication token was revoked by Google likely due to a misconfiguration. +- *Reauthentication required often*: If you are getting logged out every 7 days, this means an OAuth Consent Screen misconfiugration or your authentication token was revoked by Google for some other reason. {% details "Details about reauthentication issues" %} From 62a9d55ff2965cc837ceaa0d9d68f730e9505226 Mon Sep 17 00:00:00 2001 From: SNoof85 Date: Sat, 30 Oct 2021 16:40:34 +0200 Subject: [PATCH 16/29] Update ecovacs template sensor & binary_sensor examples (#20050) --- source/_integrations/ecovacs.markdown | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/source/_integrations/ecovacs.markdown b/source/_integrations/ecovacs.markdown index 0b784dc1b4c..a9c39515c26 100644 --- a/source/_integrations/ecovacs.markdown +++ b/source/_integrations/ecovacs.markdown @@ -87,13 +87,11 @@ Here's an example of how to extract the filter's lifespan to its own sensor usin ```yaml # Example configuration.yaml entry -sensor: - - platform: template - sensors: - vacuum_filter: - friendly_name: "Vacuum Filter Remaining Lifespan" - unit_of_measurement: "%" - value_template: "{{ state_attr('vacuum.my_vacuum_id', 'component_filter') }}" +template: + - sensor: + - name: "Vacuum Filter Remaining Lifespan" + unit_of_measurement: "%" + state: "{{ state_attr('vacuum.my_vacuum_id', 'component_filter') }}" ``` {% endraw %} @@ -104,13 +102,11 @@ Or, if you want a simple binary sensor that becomes `On` when the filter needs t ```yaml # Example configuration.yaml entry -binary_sensor: - - platform: template - sensors: - vacuum_filter_replace: - friendly_name: "Vacuum Filter" - device_class: problem - value_template: "{{ state_attr('vacuum.my_vacuum_id', 'component_filter') <= 5 }}" +template: + - binary_sensor: + - name: "Vacuum Filter" + device_class: problem + state: "{{ state_attr('vacuum.my_vacuum_id', 'component_filter') <= 5 }}" ``` {% endraw %} From 91460bf92c7df7c99d0ff102a9c4b1c61ae3f393 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Sat, 30 Oct 2021 16:44:36 +0200 Subject: [PATCH 17/29] Update to Node.js 16, the latest LTS (#20064) --- .github/workflows/test.yml | 4 ++-- .nvmrc | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6bd99cdbb9a..8a4460ea66e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,7 +12,7 @@ jobs: - name: Setting up Node.js uses: actions/setup-node@v2.4.1 with: - node-version: 14.x + node-version: 16.x cache: "npm" - name: Install dependencies run: npm install @@ -29,7 +29,7 @@ jobs: - name: Setting up Node.js uses: actions/setup-node@v2.4.1 with: - node-version: 14.x + node-version: 16.x cache: "npm" - name: Install dependencies run: npm install diff --git a/.nvmrc b/.nvmrc index 8351c19397f..b6a7d89c68e 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -14 +16 From 6a4497cfb2f880fe53616456881ee37704ad2001 Mon Sep 17 00:00:00 2001 From: SNoof85 Date: Sat, 30 Oct 2021 16:52:41 +0200 Subject: [PATCH 18/29] Update imap_email_content template sensor examples (#20054) --- .../_integrations/imap_email_content.markdown | 32 ++++++++----------- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/source/_integrations/imap_email_content.markdown b/source/_integrations/imap_email_content.markdown index bc94ff00fa7..9c4a89c79c6 100644 --- a/source/_integrations/imap_email_content.markdown +++ b/source/_integrations/imap_email_content.markdown @@ -121,27 +121,23 @@ Below is the template sensor which extracts the information from the body of the {% raw %} ```yaml -sensor: - - platform: template - sensors: - previous_day_energy_use: - friendly_name: Previous Day Energy Use - unit_of_measurement: kWh - value_template: > +template: + - sensor: + - name: "Previous Day Energy Use" + unit_of_measurement: "kWh" + state: > {{ state_attr('sensor.energy_email','body') - |regex_findall_index("\*Yesterday's Energy Use:\* ([0-9]+) kWh") }} - previous_day_cost: - friendly_name: Previous Day Cost - unit_of_measurement: $ - value_template: > + | regex_findall_index("\*Yesterday's Energy Use:\* ([0-9]+) kWh") }} + - name: "Previous Day Cost" + unit_of_measurement: "$" + state: > {{ state_attr('sensor.energy_email', 'body') - |regex_findall_index("\*Yesterday's estimated energy cost:\* \$([0-9.]+)") }} - billing_cycle_total: - friendly_name: Billing Cycle Total - unit_of_measurement: $ - value_template: > + | regex_findall_index("\*Yesterday's estimated energy cost:\* \$([0-9.]+)") }} + - name: "Billing Cycle Total" + unit_of_measurement: "$" + state: > {{ state_attr('sensor.energy_email', 'body') - |regex_findall_index("\ days:\* \$([0-9.]+)") }} + | regex_findall_index("\ days:\* \$([0-9.]+)") }} ``` {% endraw %} From 5f6341018ae2b6d4bf94140c58eb1c45780fc0a4 Mon Sep 17 00:00:00 2001 From: SNoof85 Date: Sat, 30 Oct 2021 16:54:47 +0200 Subject: [PATCH 19/29] Update homematic templates examples (#20053) --- source/_integrations/homematic.markdown | 37 ++++++++++--------------- 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/source/_integrations/homematic.markdown b/source/_integrations/homematic.markdown index f344ca7c7ca..2425fff940d 100644 --- a/source/_integrations/homematic.markdown +++ b/source/_integrations/homematic.markdown @@ -219,13 +219,10 @@ Most devices have, besides their state, additional attributes like their battery {% raw %} ```yaml -sensor: -- platform: template - sensors: - bedroom_valve: - value_template: "{{ state_attr('climate.leq123456', 'level') }}" - entity_id: climate.leq123456 - friendly_name: "Bedroom valve" +template: + - sensor: + - name: "Bedroom valve" + state: "{{ state_attr('climate.leq123456', 'level') }}" ``` {% endraw %} @@ -484,16 +481,11 @@ When the connection to your Homematic CCU or Homegear is lost, Home Assistant wi {% raw %} ```yaml -binary_sensor: - - platform: template - sensors: - homematic_up: - friendly_name: "Homematic is sending updates" - entity_id: - - sensor.office_voltage - - sensor.time - value_template: >- - {{ as_timestamp(now()) - as_timestamp(state_attr('sensor.office_voltage', 'last_changed')) < 600 }} +template: + - binary_sensor: + - name: "Homematic is sending updates" + state: >- + {{ now() - as_timestamp(state_attr('sensor.office_voltage', 'last_changed'), 601) < 600 }} automation: - alias: "Homematic Reconnect" @@ -529,12 +521,11 @@ automation: {% raw %} ```yaml - - platform: template - sensors: - v_last_reboot: - value_template: "{{ state_attr('homematic.ccu2', 'V_Last_Reboot') or '01.01.1970 00:00:00' }}" - icon_template: "mdi:clock" - entity_id: homematic.ccu2 + template: + - sensor: + - name: "v last reboot" + state: "{{ state_attr('homematic.ccu2', 'V_Last_Reboot') or '01.01.1970 00:00:00' }}" + icon: "mdi:clock" ``` {% endraw %} From 6f5276a6a371852781c7f1660ff03c9fd4325d42 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Sat, 30 Oct 2021 16:55:29 +0200 Subject: [PATCH 20/29] Correct template select docs (#20055) --- source/_integrations/template.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/_integrations/template.markdown b/source/_integrations/template.markdown index da50f9926e1..d8fa995b334 100644 --- a/source/_integrations/template.markdown +++ b/source/_integrations/template.markdown @@ -178,7 +178,7 @@ number: description: Template for the number's current value. required: true type: template - description: Defines an action to run when the number value changes. The variable `value` will contain the number entered. + description: Defines actions to run when the number value changes. The variable `value` will contain the number entered. required: true type: action step: @@ -210,11 +210,11 @@ select: required: true type: template select_option: - description: Defines an action to run to select an option from the `options` list. + description: Defines actions to run to select an option from the `options` list. The variable `option` will contain the option selected. required: true type: action options: - description: Template for the select's available options. The variable `option` will contain the option selected. + description: Template for the select's available options. required: true type: template optimistic: From 7bbeb647363676aec46304eeab8e83dec9b141bd Mon Sep 17 00:00:00 2001 From: Peter Nijssen Date: Sat, 30 Oct 2021 16:56:45 +0200 Subject: [PATCH 21/29] Fix configuration block on the Scenes page (#20056) --- source/_docs/scene.markdown | 2 -- 1 file changed, 2 deletions(-) diff --git a/source/_docs/scene.markdown b/source/_docs/scene.markdown index 5ecd08c9f1c..058778c517b 100644 --- a/source/_docs/scene.markdown +++ b/source/_docs/scene.markdown @@ -32,7 +32,6 @@ scene: In the scene you define in your YAML files, please ensure you use all required parameters as listed below. -```yaml {% configuration %} name: description: Friendly name of the scene. @@ -47,7 +46,6 @@ entities: required: true type: list {% endconfiguration %} -``` As you can see, there are two ways to define the states of each `entity_id`: From 62b5d79baed44498827e4ebe1e3ecc8ca371eb8e Mon Sep 17 00:00:00 2001 From: Lindsay Ward Date: Sun, 31 Oct 2021 22:06:07 +1000 Subject: [PATCH 22/29] Improve wording for android_ip_webcam (#20095) --- .../_integrations/android_ip_webcam.markdown | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/source/_integrations/android_ip_webcam.markdown b/source/_integrations/android_ip_webcam.markdown index 6eba0716544..ce0027df04f 100644 --- a/source/_integrations/android_ip_webcam.markdown +++ b/source/_integrations/android_ip_webcam.markdown @@ -16,9 +16,9 @@ ha_platforms: - switch --- -The `android_ip_webcam` integration turns any Android phone or tablet into a network camera with multiple viewing options. +The `android_ip_webcam` integration connects with Android IP Webcam to turn any Android phone or tablet into a network camera with multiple viewing options. -It's setup as an MJPEG camera and all settings as switches inside of Home Assistant. You can also expose the sensors. If you have multiple phones, you can use all options inside a list. +The integration is setup as an MJPEG camera with all settings as switches inside Home Assistant. You can also integrate the sensors exposed by the app. If you have multiple phones, you can use all options inside a list. There is currently support for the following device types within Home Assistant: @@ -29,7 +29,7 @@ There is currently support for the following device types within Home Assistant: ## Setup -Download [the Android IP Webcam app](https://play.google.com/store/apps/details?id=com.pas.webcam) and launch the app. When you press 'Start Server', it will start streaming video from your phone and the IP address of the device will be shown on screen. +Download [Android IP Webcam app](https://play.google.com/store/apps/details?id=com.pas.webcam) and launch the app. When you press 'Start Server', it will start streaming video from your phone and the IP address of the device will be shown on screen. ## Configuration @@ -65,12 +65,12 @@ password: required: inclusive type: string scan_interval: - description: Defines the update interval of the phone. + description: The update interval to use (in seconds). required: false default: 10 type: integer sensors: - description: List of sensor entities to be created by this component. + description: List of sensor entities to be created by this component (if supported by the phone and app). required: false type: list keys: @@ -102,23 +102,23 @@ switches: exposure_lock: description: Control the exposure lock ffc: - description: Control the front-facing camera. + description: Control the front-facing camera focus: - description: Control the focus. + description: Control the focus gps_active: - description: Control the GPS. + description: Control the GPS motion_detect: - description: Control the motion detector. + description: Control the motion detector night_vision: - description: Control the night vision. + description: Control the night vision overlay: - description: Control the overlay. + description: Control the overlay torch: - description: Control the torch. + description: Control the torch whitebalance_lock: - description: Control the white balance lock. + description: Control the white balance lock video_recording: - description: Control the video recording. + description: Control the video recording motion_sensor: description: Create a binary_sensor._motion_active entity. Note that `auto_discovery` may also create this sensor. required: false @@ -128,7 +128,7 @@ motion_sensor:
-You need to enable logging in the Android app (`Data logging` > `Enable data logging`), if you wish to see the sensor states in Home Assistant. The sensor states stays as `unknown`, until it's enabled. +You need to enable logging in the Android app (`Data logging` > `Enable data logging`) if you wish to see the sensor states in Home Assistant. The sensor states stay as `unknown`, until this is enabled.
@@ -171,7 +171,7 @@ android_ip_webcam: ## Alternate Configuration Method -The configuration described above will cause the `android_ip_webcam` binary sensor platform to automatically create and configure the devices automatically. Alternatively you can omit the `android_ip_webcam` component from your `configuration.yaml` file and add individual devices instead. +The configuration described above will cause the `android_ip_webcam` binary sensor platform to automatically create and configure the devices. Alternatively you can omit the `android_ip_webcam` component from your `configuration.yaml` file and add individual devices instead. ### Binary Sensor @@ -180,6 +180,7 @@ You can setup the binary motion sensor with the following in your `configuration {% raw %} ```yaml +# Example configuration.yaml entry binary_sensor: - platform: rest name: Kitchen Motion From 26619d13862bd6312624726275e4aaf449489106 Mon Sep 17 00:00:00 2001 From: Thanasis Date: Sun, 31 Oct 2021 15:23:28 +0100 Subject: [PATCH 23/29] Clarify check_config script is only for Core installations (#20100) --- source/_docs/configuration/secrets.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_docs/configuration/secrets.markdown b/source/_docs/configuration/secrets.markdown index 9fac0e3d9ce..9ce55aa6eaf 100644 --- a/source/_docs/configuration/secrets.markdown +++ b/source/_docs/configuration/secrets.markdown @@ -40,7 +40,7 @@ When you start splitting your configuration into multiple files, you might end u - A `secrets.yaml` located in the same folder as the YAML file referencing the secret, - next, parent folders will be searched for a `secrets.yaml` file with the secret, stopping at the folder with the main `configuration.yaml`. -To see where secrets are being loaded from, you can either add an option to your `secrets.yaml` file or use the `check_config` script. +To see where secrets are being loaded from, you can either add an option to your `secrets.yaml` file or use the `check_config` script. The latter is only available for Home Assistant Core installations given it's available through [`hass`](/docs/tools/hass/). *Option 1*: Print where secrets are retrieved from to the Home Assistant log by adding the following to `secrets.yaml`: @@ -50,7 +50,7 @@ logger: debug This will not print the actual secret's value to the log. -*Option 2*: To view where secrets are retrieved from and the contents of all `secrets.yaml` files used, you can use the [`check_config` script](/docs/tools/check_config/) from the command line: +*Option 2*: For Home Assistant Core installations, you can also view where secrets are retrieved from and the contents of all `secrets.yaml` files using the [`check_config` script](/docs/tools/check_config/) from the command line: ```bash hass --script check_config --secrets From 1a95af52ad93ea3615e7b95d5ec59eaed3858e64 Mon Sep 17 00:00:00 2001 From: Chris Nesbitt-Smith Date: Sun, 31 Oct 2021 18:07:00 +0000 Subject: [PATCH 24/29] Update nest.markdown to define the expiry period (#20067) * Update nest.markdown to define the expiry period the expiry period for a subscription by default is 31 days, which means the integration breaks after 31 days :( updating the docs to make it clear this should be set to not expire * Update nest.markdown * Update nest.markdown * Update source/_integrations/nest.markdown Co-authored-by: Allen Porter Co-authored-by: Allen Porter --- source/_integrations/nest.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_integrations/nest.markdown b/source/_integrations/nest.markdown index d70f5e8a50e..bb99e78e8be 100644 --- a/source/_integrations/nest.markdown +++ b/source/_integrations/nest.markdown @@ -196,6 +196,8 @@ and typically looks like `projects/sdm-prod/topics/EXAMPLE`. 1. Lower the message retention duration to be something short (e.g., 10 minutes or under an hour) to avoid a large backlog of updates when Home Assistant is turned off. +1. Select **Never expire** as the *Expiry Period* to prevent the subscription you're creating being removed if for example your Home Assistant or the integration is offline for a while. + 1. Leave the rest of the defaults and click **Create**. 1. Once created, copy the *Subscription name* which you will want to hold on to as your `subscriber_id` for configuring Home Assistant. This typically looks like `projects/MY-CLOUD-ID/subscriptions/EXAMPLE`. From 5184b418bf97336bccd5074849160917e867da9e Mon Sep 17 00:00:00 2001 From: Lindsay Ward Date: Mon, 1 Nov 2021 17:29:45 +1000 Subject: [PATCH 25/29] Improve wording for HomeKit (#20096) Co-authored-by: Franck Nijhof --- source/_integrations/homekit.markdown | 70 +++++++++++++-------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/source/_integrations/homekit.markdown b/source/_integrations/homekit.markdown index 6e8497908bb..94229cdc5f7 100644 --- a/source/_integrations/homekit.markdown +++ b/source/_integrations/homekit.markdown @@ -14,17 +14,17 @@ ha_zeroconf: true --- The HomeKit integration allows you to make your Home Assistant entities available in Apple HomeKit, -so they can be controlled from Apple's Home app and Siri. +so they can be controlled from Apple's Home app and Siri; even if those devices do not natively support HomeKit. Please make sure that you have read the [considerations](#considerations) listed below to save you -some trouble later. However if you do encounter issues, check out the +some trouble later. However, if you do encounter issues, check out the [troubleshooting](#troubleshooting) section.
- If you want to control HomeKit only devices with Home Assistant, - check out the [HomeKit controller](/integrations/homekit_controller/) integration. - That one provides the possibility to pull HomeKit enabled devices into Home Assistant. + If you want to control HomeKit-only devices with Home Assistant, + check out the [HomeKit controller](/integrations/homekit_controller/) integration, + which provides the possibility to pull HomeKit-enabled devices into Home Assistant.
@@ -34,8 +34,8 @@ some trouble later. However if you do encounter issues, check out the If you want make specific changes to the way entities are published to HomeKit, override the IP address the HomeKit integration uses to communicate with your network or change the -IP address the HomeKit uses to advertise itself to the network, you'll need to configure the -HomeKit integration using a manual YAML entry to your `configuration.yaml` file. +IP address the HomeKit uses to advertise itself to the network, then you will need to configure the +HomeKit integration using an entry in your `configuration.yaml` file. This is an example entry of how that would look: @@ -90,7 +90,7 @@ homekit: type: integer default: 21063 name: - description: Need to be individual for each instance of Home Assistant using the integration on the same local network. Between `3` and `25` characters. Alphanumeric and spaces allowed. + description: Needs to be unique for each instance of Home Assistant using the integration on the same local network. Between `3` and `25` characters. Alphanumeric and spaces allowed. required: false type: string default: '`Home Assistant Bridge`' @@ -137,7 +137,7 @@ homekit: required: false type: list entity_config: - description: Configuration for specific entities. All subordinate keys are the corresponding entity ids to the domains, e.g., `alarm_control_panel.alarm`. + description: Configuration for specific entities. All subordinate keys are the corresponding entity ids of the domains, e.g., `alarm_control_panel.alarm`. required: false type: map keys: @@ -191,7 +191,7 @@ homekit: type: string default: '`switch`' stream_count: - description: Only for `camera` entities. The number of simultaneous stream the camera can support. + description: Only for `camera` entities. The number of simultaneous streams the camera can support. required: false type: integer default: 3 @@ -221,7 +221,7 @@ homekit: type: integer default: 1080 max_fps: - description: Only for `camera` entities. Maximum fps supported by camera. Used when generating advertised video resolutions. + description: Only for `camera` entities. Maximum FPS (frames per second) supported by camera. Used when generating advertised video resolutions. required: false type: integer default: 30 @@ -272,15 +272,15 @@ To enable the HomeKit integration in Home Assistant, add the following to your c homekit: ``` -After Home Assistant has started, the entities specified by the filter are exposed to HomeKit if they are [supported](#supported-components). To add them: +After Home Assistant has started, the entities (depending on the filter) are exposed to HomeKit if they are [supported](#supported-components). To add them: 1. Open the Home Assistant frontend. A new card will display the pairing QR code and the `pin code` as seen in the example below. Note: If pin code is not displayed, check "Notifications" (the bell icon) in the lower-left of the Home Assistant UI. -2. Open the `Home` app. +2. Open the Apple `Home` app. 3. Click `Add Accessory`, then scan the QR code or select `Don't Have a Code or Can't Scan?` and choose the `Home Assistant Bridge`. 4. Confirm that you are adding an `Uncertified Accessory` by clicking on `Add Anyway`. 5. Enter the `PIN` code (skip this step if you scanned the QR code). 6. Follow the setup by clicking on `Next` and lastly `Done` in the top right-hand corner. -7. The `Home Assistant` Bridge and the Accessories should now be listed in the `Home` app. +7. The `Home Assistant Bridge` and the Accessories should now be listed in the `Home` app. After the setup is completed, you should be able to control your Home Assistant integrations through Apple's Home and Siri. @@ -290,7 +290,7 @@ After the setup is completed, you should be able to control your Home Assistant ## Move Home Assistant install -If you like to retain your HomeKit pairing through a move to a new Home Assistant device or installation, besides copying the configurations files you need to copy the `.storage/homekit.*` file inside your configurations directory. Keep in mind though that the file is usually hidden by default, depending on your operating system. +If you would like to retain your HomeKit pairing when moving to a new Home Assistant device or installation, besides copying the configuration files you also need to copy the `.storage/homekit.*` file inside your configuration directory. Keep in mind that the folder is usually hidden by default, depending on your operating system. Before you copy it, make sure to stop the old and new Home Assistant instances first entirely, otherwise it won't work. @@ -312,9 +312,9 @@ It is recommended to only edit a HomeKit instance in the UI that was created in ### Accessory mode -When exposing a Camera, Activity based remote (a `remote` that supports activities), Lock, or Television media player (a `media_player` with device class `tv`) to HomeKit, `mode` must be set to `accessory`, and the include filter should be setup to only include a single entity. +When exposing a Camera, Activity based remote (a `remote` that supports activities), Lock, or Television media player (a `media_player` with device class `tv`) to HomeKit, `mode` must be set to `accessory`, and the relevant `include` filter should be setup to only include a single entity. -To quickly add all accessory modes entities in the UI: +To quickly add all accessory mode entities in the UI: 1. Create a new bridge via the UI (i.e., **{% my config_flow_start title="Configuration >> Integrations" domain=page.ha_domain %}**). 2. Select `media_player`, `remote`, `lock`, and `camera` domains. @@ -371,7 +371,7 @@ Filters are applied as follows: The `advertise_ip` option can be used to run this integration even inside an ephemeral Docker container with network isolation enabled, e.g., not using the host network. -You may also need to set `default_interface` to `true` in the `zeroconf` integration. +You may need to set the default network interfaces Home Assistant uses, in its [network configuration](/integrations/network). To use `advertise_ip`, add the option to your `homekit` configuration: @@ -427,17 +427,17 @@ The following integrations are currently supported: Devices that support triggers can be added to the bridge by accessing options for the bridge in **{% my integrations title="Configuration >> Integrations" %}**. -Bridged device triggers are represented as a single press button on stateless programmable switches. This allows a HomeKit automation to run when a device trigger fires. Because the iOS Home app currently only shows the number of the button and not the name, users may find it easier to identify the name of the button in the `Eve for HomeKit` app. +Bridged device triggers are represented as a single press button on stateless programmable switches. This allows a HomeKit automation to run when a device trigger fires. Because the Apple Home app currently only shows the number of the button and not the name, users may find it easier to identify the name of the button in the `Eve for HomeKit` app. ## iOS Remote Widget Entities exposed as `TelevisionMediaPlayer` are controllable within the Apple Remote widget in Control Center. Play, pause, volume up and volume down should work out of the box depending on the `supported_features` -of the entity. However, if your television can be controlled in other ways outside of the `media_player` entity, (i.e. +of the entity. However, if your television can be controlled in other ways outside of the `media_player` entity, (e.g., service calls to an IR blaster), it is possible to build an automation to take advantage of these events. When a key is pressed within the Control Center Remote widget, the event `homekit_tv_remote_key_pressed` will be fired. -The key name will be available in the event data in the `key_name` field: +The key name will be available in the event data in the `key_name` field. Example: ```yaml automation: @@ -466,11 +466,11 @@ The following home hubs showed strong results when testing with 400 accessories: - HomePod - HomePod Mini -- Apple TV 4k Gen 2 (best results when using ethernet instead of WiFi) +- Apple TV 4k Gen 2 (best results when using Ethernet instead of Wi-Fi) The following home hubs showed strong results when testing with 300 accessories: -- Apple TV 4k Gen 1 (best results when using ethernet instead of WiFi) +- Apple TV 4k Gen 1 (best results when using ethernet instead of Wi-Fi) The following home hubs have been reported to have trouble with a large number of accessories: @@ -492,7 +492,7 @@ The following home hubs have been reported to have trouble with a large number o ### Errors during pairing -If you encounter any issues during pairing, make sure to add the following to your `configuration.yaml` +If you encounter any issues during pairing, make sure to add the following to your `configuration.yaml` to try and identify the issue(s). ```yaml logger: @@ -502,11 +502,11 @@ logger: pyhap: debug ``` -Follow the above instructions for `Resetting` +Follow the above instructions for resetting. ### Minimal Configuration -If pairing still fails after trying the steps in ([Errors during pairing](#errors-during-pairing)), it may be caused by a specific entity. Try resetting with a minimal configuration: +If pairing still fails after trying the steps in ([Errors during pairing](#errors-during-pairing)), it may be caused by a specific entity. Try resetting with a minimal configuration like: ```yaml homekit: @@ -517,7 +517,7 @@ homekit: #### PIN doesn't appear as persistent status -You might have paired the `Home Assistant Bridge` already. If not, follow the above instructions for `Resetting` +You might have paired the `Home Assistant Bridge` already. If not, follow the above instructions for resetting. #### `Home Assistant Bridge` doesn't appear in the Home App (for pairing) @@ -541,7 +541,7 @@ Configure the network mode as `networkbridge`. Otherwise the Home Assistant Brid #### Pairing hangs - zeroconf error -Pairing eventually fails, you might see and an error message `NonUniqueNameException`, you likely need to enable `default_interface: true` in the `zeroconf` integration configuration and set a unique name such as `name: MyHASS42`. +Pairing eventually fails, you might see the error message, `NonUniqueNameException`, you likely need to enable `default_interface: true` in the `zeroconf` integration configuration and set a unique name such as `name: MyHASS42`. If you had previously paired (even unsuccessfully), you may need to delete your `.homekit.state` file in order to able to successfully pair again. See [Errors during pairing](#errors-during-pairing). @@ -552,7 +552,7 @@ Pairing works fine when the filter is set to only include `demo.demo`, but fails #### Pairing hangs - no error 1. Make sure that you don't try to add more than 150 accessories, see [device limit](#device-limit). In rare cases, one of your entities doesn't work with the HomeKit component. Use the [filter](#configure-filter) to find out which one. Feel free to open a new issue in the `home-assistant` repository, so we can resolve it. -2. Check logs, and search for `Starting accessory Home Assistant Bridge on address`. Make sure Home Assistant Bridge hook up to a correct interface. If it did not, explicitly set `homekit.ip_address` configuration variable. +2. Check logs, and search for `Starting accessory Home Assistant Bridge on address`. Make sure Home Assistant Bridge connected to a correct interface. If it did not, explicitly set `homekit.ip_address` configuration variable. ### Issues during normal use @@ -562,17 +562,17 @@ Check if the domain of your entity is [supported](#supported-components). If it #### HomeKit doesn't work on second Home Assistant instance -To use the HomeKit integration with two different Home Assistant instances on the same local network, you need to set a custom name for at least one of them. [config/name](#name) +To use the HomeKit integration with multiple different Home Assistant instances on the same local network, you need to set a custom name for at least one of them. [config/name](#name) #### Specific entity doesn't work -Although we try our best, some entities don't work with the HomeKit integration yet. The result will be that either pairing fails completely or all Home Assistant accessories will stop working. Use the filter to identify which entity is causing the issue. It's best to try pairing and step by step including more entities. If it works unpair and repeat until you find the one that is causing the issues. To help others and the developers, please open a new issue here: [home-assistant/issues/new](https://github.com/home-assistant/home-assistant/issues/new?labels=component:%20homekit) +Although we try our best, some entities don't work with the HomeKit integration yet. The result will be that either pairing fails completely or all Home Assistant accessories will stop working. Use the filter to identify which entity is causing the issue. It's best to try pairing and step by step including more entities. If it works, unpair and repeat until you find the one that is causing the issues. To help others and the developers, please open a new issue here: [home-assistant/issues/new](https://github.com/home-assistant/home-assistant/issues/new?labels=component:%20homekit) If you have any iOS 12.x devices signed into your iCloud account, media player entities with `device_class: tv` may trigger this condition. Filtering the entity or signing the iOS 12.x device out of iCloud should resolve the issue after restarting other devices. #### Accessories are all listed as not responding -There are reports where the IGMP settings in a router were causing issues with HomeKit. This resulted in a situation where all of the Home Assistant HomeKit accessories stopped responding a few minutes after Home Assistant (re)started. Double check your router's IGMP settings if you experiencing this issue. The default IGMP settings typically work best. +There were reports where the IGMP settings in a router were causing issues with HomeKit. This resulted in a situation where all of the Home Assistant HomeKit accessories stopped responding a few minutes after Home Assistant (re)started. Double check your router's IGMP settings if you experience this issue. The default IGMP settings typically work best. See [specific entity doesn't work](#specific-entity-doesnt-work) @@ -598,9 +598,9 @@ The volume and play/pause controls will show up on the Remote app or Control Cen Ensure that the [`ffmpeg`](/integrations/ffmpeg) integration is configured correctly. Verify that your stream is directly playable with `ffplay ` or [VLC Media Player](https://www.videolan.org/). If you have changed your camera's entity configuration, you may need to [reset the accessory](#resetting-accessories). -#### Cameras streaming is unstable or slow +#### Camera streaming is unstable or slow -If your camera supports native H.264 streams, Home Assistant can avoid converting the video stream, which is an expensive operation. To enable native H.264 streaming when configured via YAML, change the `video_codec` to `copy`. To allow native H.264 streaming when via the UI, go to **Configuration** >> **Integrations** in the UI, click **Options** for your HomeKit Bridge, and check the box for your camera on the `Cameras that support native H.264 streams` screen. +If your camera supports native H.264 streams, Home Assistant can avoid converting the video stream, which is an expensive operation. To enable native H.264 streaming when configured via YAML, change the `video_codec` to `copy`. To allow native H.264 streaming when setting up HomeKit via the UI, go to **Configuration** >> **Integrations** in the UI, click **Options** for your HomeKit Bridge, and check the box for your camera on the `Cameras that support native H.264 streams` screen. #### Multiple camera streams @@ -624,7 +624,7 @@ HomeKit camera snapshots tie up the HomeKit connection during snapshots. To avoi #### Resetting accessories -You may use the service `homekit.reset_accessory` with one or more entity_ids to reset accessories whose configuration may have changed. This can be useful when changing a media_player's device class to `tv`, linking a battery, or whenever Home Assistant adds support for new HomeKit features to existing entities. +You may use the service `homekit.reset_accessory` with one or more entity IDs to reset accessories whose configuration may have changed. This can be useful when changing a media player's device class to `tv`, linking a battery, or whenever Home Assistant adds support for new HomeKit features to existing entities. On earlier versions of Home Assistant, you can reset accessories by removing the entity from HomeKit (via [filter](#configure-filter)) and then re-adding the accessory. From 36a5747de6488260edb7c0ade5e350361b65ceee Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 1 Nov 2021 17:51:28 +0000 Subject: [PATCH 26/29] 2021.10.7 --- _config.yml | 4 +-- .../_posts/2021-10-06-release-202110.markdown | 32 +++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/_config.yml b/_config.yml index 96ce0da089b..35843df6e7a 100644 --- a/_config.yml +++ b/_config.yml @@ -108,8 +108,8 @@ social: # Home Assistant release details current_major_version: 2021 current_minor_version: 10 -current_patch_version: 6 -date_released: 2021-10-18 +current_patch_version: 7 +date_released: 2021-11-01 # 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-10-06-release-202110.markdown b/source/_posts/2021-10-06-release-202110.markdown index cf13318cec6..72c83c76aed 100644 --- a/source/_posts/2021-10-06-release-202110.markdown +++ b/source/_posts/2021-10-06-release-202110.markdown @@ -63,6 +63,7 @@ Enjoy the release! - [Release 2021.10.4 - October 11](#release-2021104---october-11) - [Release 2021.10.5 - October 15](#release-2021105---october-15) - [Release 2021.10.6 - October 18](#release-2021106---october-18) +- [Release 2021.10.7 - November 1](#release-2021107---november-1) - [If you need help...](#if-you-need-help) - [Breaking Changes](#breaking-changes) - [Farewell to the following](#farewell-to-the-following) @@ -487,6 +488,37 @@ The following integrations are now available via the Home Assistant UI: [tile docs]: /integrations/tile/ [yeelight docs]: /integrations/yeelight/ +## Release 2021.10.7 - November 1 + +- Fix Tuya documentation URL ([@ludeeus] - #57889) +- Fix netgear NoneType and discovery ([@starkillerOG] - #57904) +- Abort keenetic SSDP discovery if the unique id is already setup or ignored ([@foxel] - #58009) +- Fix Yamaha MusicCast media_stop ([@micha91] - #58024) +- Sleep between device requests to detect socket closes ([@chishm] - #58087) +- Fix template sensor when name template doesn't render ([@emontnemery] - #58088) +- Bump pymazda to 0.2.2 ([@bdr99] - #58113) +- Abort Fritz config flow for configured hostnames ([@chemelli74] - #58140) +- Fix find_next_time_expression_time ([@OttoWinter] - #58894) + +[#57889]: https://github.com/home-assistant/core/pull/57889 +[#57904]: https://github.com/home-assistant/core/pull/57904 +[#58009]: https://github.com/home-assistant/core/pull/58009 +[#58024]: https://github.com/home-assistant/core/pull/58024 +[#58087]: https://github.com/home-assistant/core/pull/58087 +[#58088]: https://github.com/home-assistant/core/pull/58088 +[#58113]: https://github.com/home-assistant/core/pull/58113 +[#58140]: https://github.com/home-assistant/core/pull/58140 +[#58894]: https://github.com/home-assistant/core/pull/58894 +[@ludeeus]: https://github.com/ludeeus +[@starkillerOG]: https://github.com/starkillerOG +[@foxel]: https://github.com/foxel +[@micha91]: https://github.com/micha91 +[@chishm]: https://github.com/chishm +[@emontnemery]: https://github.com/emontnemery +[@bdr99]: https://github.com/bdr99 +[@chemelli74]: https://github.com/chemelli74 +[@OttoWinter]: https://github.com/OttoWinter + ## 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 d0701980a46b7bf5df1b89edf146e3909baf2b08 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 1 Nov 2021 17:51:48 +0000 Subject: [PATCH 27/29] Link PRs for 10.7 --- .../_posts/2021-10-06-release-202110.markdown | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/source/_posts/2021-10-06-release-202110.markdown b/source/_posts/2021-10-06-release-202110.markdown index 72c83c76aed..f1b8e7a3a7d 100644 --- a/source/_posts/2021-10-06-release-202110.markdown +++ b/source/_posts/2021-10-06-release-202110.markdown @@ -490,15 +490,15 @@ The following integrations are now available via the Home Assistant UI: ## Release 2021.10.7 - November 1 -- Fix Tuya documentation URL ([@ludeeus] - #57889) -- Fix netgear NoneType and discovery ([@starkillerOG] - #57904) -- Abort keenetic SSDP discovery if the unique id is already setup or ignored ([@foxel] - #58009) -- Fix Yamaha MusicCast media_stop ([@micha91] - #58024) -- Sleep between device requests to detect socket closes ([@chishm] - #58087) -- Fix template sensor when name template doesn't render ([@emontnemery] - #58088) -- Bump pymazda to 0.2.2 ([@bdr99] - #58113) -- Abort Fritz config flow for configured hostnames ([@chemelli74] - #58140) -- Fix find_next_time_expression_time ([@OttoWinter] - #58894) +- Fix Tuya documentation URL ([@ludeeus] - [#57889]) +- Fix netgear NoneType and discovery ([@starkillerOG] - [#57904]) +- Abort keenetic SSDP discovery if the unique id is already setup or ignored ([@foxel] - [#58009]) +- Fix Yamaha MusicCast media_stop ([@micha91] - [#58024]) +- Sleep between device requests to detect socket closes ([@chishm] - [#58087]) +- Fix template sensor when name template doesn't render ([@emontnemery] - [#58088]) +- Bump pymazda to 0.2.2 ([@bdr99] - [#58113]) +- Abort Fritz config flow for configured hostnames ([@chemelli74] - [#58140]) +- Fix find_next_time_expression_time ([@OttoWinter] - [#58894]) [#57889]: https://github.com/home-assistant/core/pull/57889 [#57904]: https://github.com/home-assistant/core/pull/57904 From 32502aa2d9be236ccd2201ddbce9a0b4a1e08898 Mon Sep 17 00:00:00 2001 From: Ashton Lafferty Date: Tue, 2 Nov 2021 10:19:01 -0600 Subject: [PATCH 28/29] Update usb_boot.markdown (#20120) --- source/_faq/usb_boot.markdown | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/_faq/usb_boot.markdown b/source/_faq/usb_boot.markdown index 9b7dc3f364f..0966b502292 100644 --- a/source/_faq/usb_boot.markdown +++ b/source/_faq/usb_boot.markdown @@ -3,6 +3,7 @@ title: "Is USB Boot for the Raspberry Pi 4 supported?" ha_category: Home Assistant --- -Due to the complexity of USB and the USB mass storage device class booting from a USB device is brittle. Since booting from a USB drive this process has to be done multiple times (firmware/boot loader and the operating system), there is a high chance that this process doesn't complete in one of these stages. In general, the Linux USB stack is solid. Due to this, it is recommended to boot Home Assistant OS from an SD card and use a USB attached flash drive as data partition only. The `datactl` command, available on the OS shell, allows moving of the data partition. +Due to the complexity of USB and the USB mass storage device class, booting from a USB device is brittle. When booting from a USB drive this process has to be done multiple times (firmware/boot loader and the operating system), and there is a high chance that this process doesn't complete during one of these stages. In general, the Linux USB stack is solid, so it is recommended to boot Home Assistant OS from an SD card and use a USB attached flash drive as data partition only. The data move can be accomplished through the `datactl` command on the host or through the UI. For more information, see [Using external Data Disk](/common-tasks/os/#using-external-data-disk) -That said, booting Home Assistant OS completely from a USB drive (SSD or any other USB mass storage device) works with *some* USB devices. USB Devices that are known to work with Raspberry Pi OS (check the Raspberry Pi Forum) are more likely to work with Home Assistant OS. However, because Home Assistant OS has also U-Boot in the boot chain, there are devices which are known to work with Raspberry Pi OS but do *not* work with Home Assistant OS. \ No newline at end of file + +That said, booting Home Assistant OS completely from a USB drive (SSD or any other USB mass storage device) works with *some* USB devices. USB Devices that are known to work with Raspberry Pi OS (check the Raspberry Pi Forum) are more likely to work with Home Assistant OS. However, because Home Assistant OS has also U-Boot in the boot chain, there are devices which are known to work with Raspberry Pi OS but do *not* work with Home Assistant OS. From 5f7024557f97eeb64e597fa6746361d3b9d1e449 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Tue, 2 Nov 2021 17:52:14 +0100 Subject: [PATCH 29/29] Drop requirement for Renault API keys (#20122) --- source/_integrations/renault.markdown | 5 ----- 1 file changed, 5 deletions(-) diff --git a/source/_integrations/renault.markdown b/source/_integrations/renault.markdown index 483a048ae0f..07ba538e410 100644 --- a/source/_integrations/renault.markdown +++ b/source/_integrations/renault.markdown @@ -29,11 +29,6 @@ This integration provides the following platforms: - Selectors - to change the charge mode. - Sensors - such as battery level, outside temperature, odometer, estimated range, and charging rate. -## Prerequisites - -You need two API keys: one for Gigya and one for Kamereon and they shouldn't be confused with your API credentials. Instructions can be found at [https://github.com/jamesremuscat/pyze#obtaining-api-keys]. - - {% include integrations/config_flow.md %} All vehicles linked to the account should then get added as devices, with sensors added as linked entity.