Merge branch 'current' into next

This commit is contained in:
Franck Nijhof 2021-11-02 19:01:53 +01:00
commit c067d4f482
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
42 changed files with 332 additions and 282 deletions

View File

@ -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

2
.nvmrc
View File

@ -1 +1 @@
14
16

View File

@ -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.

View File

@ -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

View File

@ -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`:

View File

@ -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.
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.

View File

@ -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

View File

@ -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.<name>_motion_active entity. Note that `auto_discovery` may also create this sensor.
required: false
@ -128,7 +128,7 @@ motion_sensor:
<div class='note'>
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.
</div>
@ -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

View File

@ -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.

View File

@ -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
@ -112,8 +122,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**.

View File

@ -75,7 +75,6 @@ In this section you find some real-life examples of how to use this sensor.
### Full configuration
{% raw %}
```yaml

View File

@ -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:

View File

@ -475,7 +475,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 %}

View File

@ -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

View File

@ -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/).

View File

@ -20,7 +20,7 @@ ha_platforms:
---
<p class='note warning'>
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.
</p>
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:
<div class='note'>
* 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.
</div>
@ -85,8 +85,9 @@ Preset mode **away** translates to Daikin's "Holiday Mode":<br/>
_"Holiday mode" is used when you want to turn off your units when you leave you home for a longer time._<br>
<br>
_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._
</div>
@ -130,7 +131,7 @@ Zones with the name `-` will be ignored, just as the AirBase application is work
</div>
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

View File

@ -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

View File

@ -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.
<div class='note warning'>
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.
@ -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.

View File

@ -21,6 +21,7 @@ sensor:
from: NAME_OF_START_STATION
to: NAME_OF_FINAL_STATION
```
{% configuration %}
from:
description: The name of the start station.

View File

@ -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.

View File

@ -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.

View File

@ -92,19 +92,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`

View File

@ -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.
</div>
#### 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'

View File

@ -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.

View File

@ -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 %}

View File

@ -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.
<div class="note">
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.
</div>
@ -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 <stream_source>` 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.

View File

@ -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 %}

View File

@ -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 %}

View File

@ -32,7 +32,7 @@ There is currently support for the following device types within Home Assistant:
- [Sensor](#sensor)
<div class='note'>
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*.
</div>
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)
<div class='note'>
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.
</div>
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://<your_home_assistant_url>:<port>/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)
<div class='note'>
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.
</div>
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*.
@ -184,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`.
@ -279,7 +293,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" %}

View File

@ -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

View File

@ -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.

View File

@ -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'
```

View File

@ -174,7 +174,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:
@ -206,11 +206,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:

View File

@ -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 %}

View File

@ -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 %}

View File

@ -83,7 +83,8 @@ This is a separate account from the one you made for the app. You cannot log in
### 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 %}
@ -110,7 +111,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: >
@ -118,10 +119,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: >

View File

@ -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:

View File

@ -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 %}

View File

@ -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 %}
```

View File

@ -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)

View File

@ -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).

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 69 KiB