Merge pull request #5259 from home-assistant/rc

0.68.0
This commit is contained in:
Paulus Schoutsen 2018-04-27 21:46:18 -04:00 committed by GitHub
commit 290e9509f9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
48 changed files with 1347 additions and 47 deletions

View File

@ -139,9 +139,9 @@ social:
# Home Assistant release details
current_major_version: 0
current_minor_version: 67
current_patch_version: 1
date_released: 2018-04-17
current_minor_version: 68
current_patch_version: 0
date_released: 2018-04-27
# 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

@ -16,7 +16,7 @@ ha_iot_class: "Cloud Polling"
The 'hive' binary sensor component integrates your Hive sensors into Home Assistant.
The Hive sensor component supports the following Hive products:
The Hive binary sensor component supports the following Hive products:
- **Hive Window or Door Sensor**
- **Hive Motion Sensor**

View File

@ -39,3 +39,8 @@ The way these sensors are displayed in the frontend can be modified in the [cust
- **window**: `On` means open, `Off` means closed
For analog sensors please check the [component overview](/components/#sensor).
<p class='img'>
<img src='/images/screenshots/binary_sensor_classes_icons.png' />
Example of various device classes icons in `On` and `Off` state.
</p>

View File

@ -0,0 +1,18 @@
---
layout: page
title: "QwikSwitch Binary Sensor"
description: "Instructions on how to integrate Qwikswitch dimmers and relays as sensors into Home Assistant."
date: 2016-05-04 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: qwikswitch.png
ha_category: Sensor
ha_iot_class: "Local Push"
ha_release: "0.68"
---
The `qwikswitch` binary_sensor platform allows you to use your [QwikSwitch](http://www.qwikswitch.co.za/) sensors within Home Assistant.
The platform is configured through the [QwikSwitch component](/components/qwikswitch/).

View File

@ -12,7 +12,7 @@ ha_category: Hub
ha_release: 0.64
---
This component lets you retrieve data on your BMW vehicle from the BMW Connected Drive portal. You need to have a working BMW Connected Drive account and a Connected Drive enabled vehicle for this to work.
This component lets you retrieve data on your BMW vehicle from the BMW Connected Drive portal. You need to have a working BMW Connected Drive account, and a Connected Drive enabled vehicle for this to work.
For compatibility with your BMW vehicle check the [bimmer_connected page](https://github.com/m1n3rva/bimmer_connected) on github.
@ -52,6 +52,38 @@ bmw_connected_drive:
type: string
{% endconfiguration %}
## {% linkable_title Services %}
The `bmw_connected_drive` component offers several services. In case you need to provide the vehicle identification number (VIN) as a parameter, you can see the VIN in the attributes of the device tracker for the vehicle. The VIN is a 17 digit alphanumeric string, e.g., `WBANXXXXXX1234567`.
Using these services will impact the state of your vehicle. So use these services with care!
### {% linkable_title Locking and unlocking %}
The vehicle can be locked and unlocked via the lock component that is created automatically for each vehicle. Before invoking these services, make sure it's safe to lock/unlock the vehicle in the current situation.
### {% linkable_title Air condition %}
The air condition of the vehicle can be activated with the service `bmw_connected_drive.activate_air_conditioning`.
What exactly is started here depends on the type of vehicle. It might range from just ventilation over auxiliary heating to real air conditioning. If your vehicle is equipped with auxiliary heating, only trigger this service if the vehicle is parked in a location where it is safe to use it (e.g., not in an underground parking or closed garage).
The vehicle is identified via the parameter `vin`.
### {% linkable_title Sound the horn %}
The service `bmw_connected_drive.sound_horn` sounds the horn of the vehicle. Use this feature responsibly, as it might annoy your neighbors. The vehicle is identified via the parameter `vin`.
### {% linkable_title Flash the lights %}
The service `bmw_connected_drive.light_flash' flashes the lights of the vehicle. The vehicle is identified via the parameter `vin`.
### {% linkable_title Update the state %}
The service `bmw_connected_drive.update_state`fetches the last state of the vehicles of all your accounts from the BMW server. This does *not* trigger an update from the vehicle; it gets the data from the BMW servers. So this service does *not* interact with your vehicles.
This service does not require any attributes.
## {% linkable_title Disclaimer %}
This software is not affiliated with or endorsed by BMW Group.

View File

@ -95,7 +95,8 @@ Variables:
- **track**: (*Required*): Should we create a sensor `True` or ignore it `False`?
- **search**: (*Optional*): If set will only trigger for matched events.
- **offset**: (*Optional*): A set of characters that precede a number in the event title for designating a pre-trigger state change on the sensor. (Default: `!!`)
 - **ignore_availablilty**: (*Optional*): Should we respect `free`/`busy` flags? (Defaults to `true`)
 
From this we will end up with the binary sensors `calendar.test_unimportant` and `calendar.test_important` which will toggle themselves on/off based on events on the same calendar that match the search value set for each. You'll also have a sensor `calendar.test_everything` that will not filter events out and always show the next event available.
But what if you only wanted it to toggle based on all events? Just leave out the *search* parameter.

View File

@ -111,7 +111,7 @@ Home Assistant does its best to determine what task in each project is "most" im
Todoist also comes with access to a service, `calendar.todoist_new_task`. This service can be used to create a new Todoist task. You can specify labels and a project, or you can leave them blank, and the task will go to your "Inbox" project.
Here's an example JSON payload:
Here are two example JSON payloads resulting in the same task:
```json
{
@ -123,6 +123,17 @@ Here's an example JSON payload:
}
```
```json
{
"content": "Pick up the mail",
"project": "Errands",
"labels":"Homework,School",
"priority":3,
"due_date_string":"tomorrow at 14:00",
"due_date_lang":"en"
}
```
- **content** (*Required*): The name of the task you want to create.
- **project** (*Optional*): The project to put the task in.
@ -131,6 +142,11 @@ Here's an example JSON payload:
- **priority** (*Optional*): The priority of the task, from 1-4. Again, 1 means least important, and 4 means most important.
- **due_date** (*Optional*): When the task should be due, in either YYYY-MM-DD format or YYYY-MM-DD HH:MM format.
- **due_date_string** (*Optional*): When the task should be due, in [natural language](https://support.todoist.com/hc/en-us/articles/205325931-Dates-and-Times). Mutually exclusive with `due_date`
- **due_date_lang** (*Optional*): When `due_date_string` is set, it is posisble to set the language.
Valid languages are: `en`, `da`, `pl`, `zh`, `ko`, `de`, `pt`, `ja`, `it`, `fr`, `sv`, `ru`, `es`, `nl`
- **due_date** (*Optional*): When the task should be due, in either YYYY-MM-DD format or YYYY-MM-DD HH:MM format. Mutually exclusive with `due_date_string`.
Note that there's (currently) no way to mark tasks as done through Home Assistant; task names do not necessarily have to be unique, so you could find yourself in a situation where you close the wrong task.

View File

@ -0,0 +1,28 @@
---
layout: page
title: "Fritzbox Thermostat"
description: "Instructions on how to integrate the AVM Fritzbox thermostat."
date: 2017-11-12 17:10
sidebar: true
comments: false
sharing: true
footer: true
logo: avm.png
ha_category: Climate
ha_release: 0.68
ha_iot_class: "Local Polling"
---
<p class='note'>
To get AVM fritzbox thermostat follow the instructions for the general [Fritzbox](/components/fritzbox/).
</p>
### {% linkable_title Attributes %}
The are several attributes that can be useful for automations and templates.
| Attribute | Description |
| --------- | ----------- |
| `device_locked` | The state of the key lock at the device.
| `locked` | The state of the lock for configuring the device via the app or the Fritzbox web interface.
| `low_battery` | The low battery state indication.

View File

@ -0,0 +1,70 @@
---
layout: page
title: "Modbus"
description: "Instructions how to integrate a Modbus thermostat within Home Assistant."
date: 2018-01-29 9:35
sidebar: true
comments: false
sharing: true
footer: true
logo: modbus.png
ha_category: Thermostat
ha_release: 0.68
ha_iot_class: "Local Polling"
---
The `modbus` thermostat allows you to use a sensor value (current temperature)
and target value (target temperature) from [Modbus](http://www.modbus.org/)
registers.
To use your Modbus thermostat in your installation, add the following to your `configuration.yaml` file:
```yaml
climate:
- platform: modbus
name: Watlow F4T
slave: 1
target_temp_register: 2782
current_temp_register: 27586
```
{% configuration %}
name:
description: Name of the device
required: true
type: string
slave:
description: The number of the slave (Optional for tcp and upd Modbus, use 1).
required: true
type: int
target_temp_register:
description: Register number for target temperature (Setpoint).
required: true
type: int
current_temp_register:
description: Register number for current temperature (Process value).
required: true
type: int
data_type:
description: Response representation (int, uint, float, custom). If float selected, value will converted to IEEE 754 floating point format.
Default float.
required: false
type: string
count:
description: Number of registers to read.
required: false
type: int
precision:
description: Number of valid decimals, default 0.
required: false
type: int
{% endconfiguration %}
### {% linkable_title Services %}
| Service | Description |
| ------- | ----------- |
| set_temperature | Set Temperature. Requires `value` to be passed in, which is the desired target temperature. `value` should be in the same type as `data_type` |

View File

@ -13,24 +13,20 @@ ha_release: 0.13
ha_iot_class: "Cloud Polling"
---
Wink cover/garage door functionality depends on the product you're using. With GoControl/Linear Home Assistant can open, close, and view state. Chamberlain is currently limited to view only. Meaning Home Assistant will only show the current state of the door and control has been disabled (by Chamberlain). If you have a Chamberlain garage door, and would like to control it via Home Assistant, please contact Chamberlain and request that they re-enabled third-party control.
Wink Cover garage door functionality varies on the product. Home Assistant can open, close, and view state of GoControl/Linear openers. For Chamberlain MyQ-enabled openers, Home Assistant is limited to show current state (open or closed) only using this Wink cover. This restriction was imposed by Chamberlain for third party control. Wink suggests that MyQ customers should contact Chamberlain directly to inquire about expanding permissions.
The following quote is from Wink.
> As part of our agreement with Chamberlain, third-party access to control Chamberlain garage doors has been restricted. Please contact Chamberlain directly to inquire about permissions.
The [MyQ Cover](/components/cover.myq/) does provide full functionality for opening and closing Chamberlain MyQ-enabled garage doors. If installed along with the Wink Component, a duplicate garage door entity may exist. In that case, the semi-functional Wink garage door entity can be hidden via customize.yaml.
The requirement is that you have setup [Wink](/components/wink/).
### {% linkable_title Supported cover devices %}
- Bali window treatments
- Lutron shades
- Pella motorized blinds and shades
- GoControl garage door opener
- Chamberlain (Limited functionality) (No Wink hub required)
- Chamberlain MyQ (Limited functionality) (No Wink hub required)
<p class='note'>
The above devices are confirmed to work, but others may work as well.
</p>

View File

@ -8,7 +8,7 @@ comments: false
sharing: true
footer: true
logo: xiaomi.png
ha_category: Sensor
ha_category: Presence Detection
ha_version: 0.67
ha_iot_class: "Local Polling"
---

View File

@ -23,6 +23,7 @@ Home Assistant can discover and automatically configure [zeroconf](https://en.wi
* [DirecTV receivers](/components/media_player.directv/)
* [Frontier Silicon internet radios](/components/media_player.frontier_silicon/)
* [Google Cast](/components/media_player.cast/)
* [HomeKit](/components/homekit_controller/)
* [IKEA Trådfri (Tradfri)](/components/tradfri/)
* [Linn / Openhome](/components/media_player.openhome/)
* [Logitech Harmony Hub](/components/remote.harmony/)
@ -50,6 +51,8 @@ discovery:
ignore:
- sonos
- samsung_tv
enable:
- homekit
```
Configuration variables:
@ -85,6 +88,12 @@ Valid values for ignore are:
* `yamaha`: Yamaha media player
* `yeelight`: Yeelight Sunflower bulb
- **enable** (*Optional*): A list of platforms not enabled by default that `discovery` should discover.
Valid values for enable are:
* `homekit`: HomeKit accessories
<p class='note'>
Home Assistant must be on the same network as the devices for uPnP discovery to work.
If running Home Assistant in a [Docker container](/docs/installation/docker/) use switch `--net=host` to put it on the host's network.

View File

@ -0,0 +1,54 @@
---
layout: page
title: "Eufy"
description: "Instructions on how to integrate Eufy devices into Home Assistant."
date: 2018-04-09 19:00
sidebar: true
comments: false
sharing: true
footer: true
logo: eufy.png
ha_category: Hub
ha_release: 0.68
---
The `eufy` component is the main component to integrate various [eufy](http://https://www.eufylife.com/) devices with Home Assistant.
Supported devices will be discovered after the `eufy` component is configured:
```yaml
# Example configuration.yaml entry
eufy:
username: testuser@domain
password: p4ssw0rd
```
where username and password are the ones configured in the EufyHome app. Alternately, Eufy devices that are not discoverable can be statically configured.
```yaml
eufy:
devices:
- address: 192.168.1.10
access_token: 1234567890abcdef
type: T1012
name: Smart Light
- address: 192.168.1.11
access_token: abcdef1234567890
type: T1201
name: Smart Switch
```
access_token can be obtained by running:
```
curl -H "Content-Type: application/json" -d '{"client_id":"eufyhome-app", "client_Secret":"GQCpr9dSp3uQpsOMgJ4xQ", "email":"USERNAME", "password":"PASSWORD"}' https://home-api.eufylife.com/v1/user/email/login | jq
```
replacing USERNAME and PASSWORD with the Eufy username and password. This will give an access_token. Then run:
```
curl -H token:TOKEN -H category:Home https://home-api.eufylife.com/v1/device/list/devices-and-groups | jq
```
replacing TOKEN with the access_token from the previous command. This will provide the local_code for each device.

View File

@ -0,0 +1,54 @@
---
layout: page
title: "Fritzbox"
description: "Instructions on how to integrate the AVM Fritzbox Smart Home components."
date: 2018-02-18 17:10
sidebar: true
comments: false
sharing: true
footer: true
logo: avm.png
ha_category: Hub
ha_release: 0.68
ha_iot_class: "Local Polling"
---
The [AVM](www.avm.de) Fritzbox component for Home Assistant allows you to integrate the switch and climate devices.
#### {% linkable_title Tested Devices %}
- [FRITZ!Box 6490 Cable](https://avm.de/produkte/fritzbox/fritzbox-6490-cable/)
- [FRITZ!DECT 200](https://avm.de/produkte/fritzdect/fritzdect-200/)
- [Eurotronic Comet DECT](https://www.eurotronic.org/produkte/comet-dect.html)
## {% linkable_title Setup %}
```yaml
# Example configuration.yaml entry
fritzbox:
devices:
- host: fritz.box
username: YOUR_USERNAME
password: YOUR_PASSWORD
```
{% configuration %}
devices:
description: A list of Fritzbox devices.
required: true
type: map
keys:
host:
description: The hostname or IP address of the Fritzbox.
required: true
type: optional
username:
description: The username for Smart Home access.
required: true
type: string
password:
description: The password of the user.
required: true
type: string
{% endconfiguration %}

View File

@ -15,7 +15,7 @@ logo: apple-homekit.png
The `HomeKit` component allows you to forward entities from Home Assistant to Apple `HomeKit`, so they can be controlled from Apple's `Home` app and `Siri`. Please make sure that you have read the [considerations](#considerations) listed below to save you some trouble later.
<p class="note warning">
It might be necessary to install an additional package:
It might be necessary to install an additional package:
`$ sudo apt-get install libavahi-compat-libdnssd-dev`
</p>
@ -154,7 +154,7 @@ automation:
## {% linkable_title Configure Filter %}
By default no entity will be excluded. To limit which entities are being exposed to `HomeKit`, you can use the `filter` parameter. Keep in mind only [supported components](#supported-components) can be added.
By default no entity will be excluded. To limit which entities are being exposed to `HomeKit`, you can use the `filter` parameter. Keep in mind only [supported components](#supported-components) can be added.
{% raw %}
```yaml
@ -184,7 +184,7 @@ Filters are applied as follows:
- if both include and exclude domains specified, the exclude domains are ignored
* Neither include or exclude domain specified
- if entity is included, pass (as #2 above)
- if entity include and exclude, the entity exclude is ignored
- if entity include and exclude, the entity exclude is ignored
## {% linkable_title Supported Components %}
@ -194,11 +194,19 @@ The following components are currently supported:
| Component | Type Name | Description |
| --------- | --------- | ----------- |
| alarm_control_panel | SecuritySystem | All security systems. |
| binary_sensor | Sensor | Support for `co2`, `door`, `garage_door`, `gas`, `moisture`, `motion`, `occupancy`, `opening`, `smoke` and `window` device classes. Defaults to the `occupancy` device class for everything else. |
| climate | Thermostat | All climate devices. |
| cover | GarageDoorOpener | All covers that support `open` and `close` and have `garage` as their `device_class`. |
| cover | WindowCovering | All covers that support `set_cover_position`. |
| light | Light | Support for `on / off`, `brightness`, `color_temp` and `rgb_color`. |
| sensor | TemperatureSensor | All sensors that have `Celsius` and `Fahrenheit` as their `unit_of_measurement`. |
| sensor | HumiditySensor | All sensors that have `%` as their `unit_of_measurement` |
| cover | WindowCovering | All covers that support `open_cover` and `close_cover` through value mapping. (`open` -> `>=50`; `close` -> `<50`) |
| cover | WindowCovering | All covers that support `open_cover`, `stop_cover` and `close_cover` through value mapping. (`open` -> `>70`; `close` -> `<30`; `stop` -> every value in between) |
| light | Light | Support for `on / off`, `brightness` and `rgb_color`. |
| lock | DoorLock | Support for `lock / unlock`. |
| sensor | TemperatureSensor | All sensors that have `Celsius` and `Fahrenheit` as their `unit_of_measurement` or `temperature` as their `device_class`. |
| sensor | HumiditySensor | All sensors that have `%` as their `unit_of_measurement` or `humidity` as their `device_class`. |
| sensor | AirQualitySensor | All sensors that have `pm25` as part of their `entity_id` or `pm25` as their `device_class` |
| sensor | CarbonDioxideSensor | All sensors that have `co2` as part of their `entity_id` or `co2` as their `device_class` |
| sensor | LightSensor | All sensors that have `lm`/`lux` as their `unit_of_measurement` or `light` as their `device_class` |
| switch / remote / input_boolean / script | Switch | All represented as switches. |

View File

@ -0,0 +1,31 @@
---
layout: page
title: "HomeKit controller support"
description: "Instructions how to integrate your HomeKit devices within Home Assistant."
date: 2018-03-19 21:04
sidebar: true
comments: false
sharing: true
footer: true
logo: apple-homekit.png
ha_category: Hub
ha_release: 0.68
ha_iot_class: "Local Polling"
---
[HomeKit](https://developer.apple.com/homekit/) controller integration for Home Assistant allows you to connect HomeKit accessories to Home Assistant. This component should not be confused with the [HomeKit](homekit) component, which allows you to control Home Assistant devices via HomeKit.
There is currently support for the following device types within Home Assistant:
- [Light](../light.homekit_controller)
- [Switch](../switch.homekit_controller)
The component will be automatically configured if the [`discovery:`](components/discovery/) component is enabled and an enable entry added for HomeKit:
```yaml
discovery:
enable:
- homekit
```
For each detected HomeKit accessory, a configuration prompt will appear in the web front end. Use this to provide the HomeKit PIN.

View File

@ -0,0 +1,19 @@
---
layout: page
title: "Eufy Lights"
description: "Instructions on how to integrate Eufy LED lights into Home Assistant."
date: 2018-04-09 19:00
sidebar: true
comments: false
sharing: true
footer: true
logo: eufy.png
ha_category: Light
ha_iot_class: "Local Polling"
ha_release: 0.68
---
The `eufy` platform allows you to control your [Eufy](http://www.eufylife.com) lights from within Home Assistant.
They will be automatically discovered if the [Eufy](/components/eufy/) component is enabled.

View File

@ -0,0 +1,16 @@
---
layout: page
title: "HomeKit Light"
description: "Instructions how to setup HomeKit lights within Home Assistant."
date: 2017-03-19 21:08
sidebar: true
comments: false
sharing: true
footer: true
logo: apple-homekit.png
ha_category: Light
ha_iot_class: "Local Polling"
ha_release: 0.68
---
To get your HomeKit lights working with Home Assistant, follow the instructions for the general [HomeKit controller component](/components/homekit_controller/).

View File

@ -25,13 +25,37 @@ Supported Devices:
- MAX! Window Sensor (tested)
- MAX! Wall Thermostat (tested)
### {% linkable_title One Gateway %}
A `maxcube` section must be present in the `configuration.yaml` file and contain the following options as required:
```yaml
# Example configuration.yaml entry
maxcube:
host: 192.168.0.20
gateways:
- host: 192.168.0.20
```
Configuration variables:
- **host** (*Required*): The IP address of the eQ-3 MAX! Cube to use.
- **port** (*Optional*): The UDP port number. Defaults to `62910`.
### {% linkable_title Multiple Gateways %}
```yaml
# Example configuration.yaml entry
maxcube:
gateways:
- host: 192.168.0.20
port: 62910
- host: 192.168.0.21
port: 62910
```
{% configuration %}
host:
description: The IP address of the eQ-3 MAX! Cube to use.
required: true
type: string
port:
description: The UDP port number.
required: false
type: int
default: 62910
{% endconfiguration %}

View File

@ -0,0 +1,70 @@
---
layout: page
title: "Blackbird 8x8 HDMI Matrix Switch"
description: "Instructions on how to integrate Monoprice Blackbird 4k 8x8 HDBaseT Matrix Switch into Home Assistant."
date: 2018-03-29 16:35
sidebar: true
comments: false
sharing: true
footer: true
logo: monoprice.svg
ha_category: Media Player
ha_release: 0.68
ha_iot_class: "Local Polling"
---
The `blackbird` platform allows you to control [Monoprice Blackbird Matrix Switch](https://www.monoprice.com/product?p_id=21819) using a serial connection.
To add a Blackbird device to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
media_player:
- platform: blackbird
type: serial
port: /dev/ttyUSB0
zones:
1:
name: Living Room
sources:
3:
name: BluRay
```
{% configuration %}
type:
description: The type of device connection - serial or socket
required: true
type: string
port:
description: The serial port to which Blackbird matrix switch is connected. Either port or host must be defined.
required: optional
type: string
host:
description: The IP address of the Blackbird matrix switch. Either port or host must be defined.
required: optional
type: string
zones:
description: This is the list of zones available. Valid zones are 1,2,3,4,5,6,7,8. Each zone must have a name assigned to it.
required: true
type: int
keys:
name:
description: The name of the zone.
sources:
description: The list of sources available. Valid source numbers are 1,2,3,4,5,6,7,8. Each source number corresponds to the input number on the Blackbird matrix switch. Similar to zones, each source must have a name assigned to it.
required: true
type: int
keys:
name:
description: The name of the source.
{% endconfiguration%}
### {% linkable_title Service `BLACKBIRD_SETALLZONES` %}
Set all zones to the same input source. This service allows you to immediately synchronize all the TVs in your home. Regardless of `entity_id` provided, all zones will be updated.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String that points at an `entity_id` of a zone.
| `source` | no | String of source name to activate.

View File

@ -17,7 +17,9 @@ ha_iot_class: "Local Push"
The `kodi` platform allows you to control a [Kodi](http://kodi.tv/) multimedia system from Home Assistant.
To add Kodi to your installation, add the following to your `configuration.yaml` file:
The preferred way to set up the Kodi platform is by enabling the [discovery component](https://www.home-assistant.io/components/discovery/) which requires enabled [web interface](https://kodi.wiki/view/Web_interface) on your Kodi installation.
In case the discovery does not work, or you need specific configuration variables, you can add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry

View File

@ -28,11 +28,24 @@ media_player:
pc: 'HTPC'
```
Configuration variables:
- **host** (*Optional*): IP address of the device. Example:`192.168.1.2`. If not specified, the platform will load any discovered receivers.
- **name** (*Required if host is specified*): Name of the device.
- **sources** (*Optional*): A list of mappings from source to source name. Valid sources can be found below. A default list will be used if no source mapping is specified.
{% configuration %}
host:
description: IP address of the device. Example:`192.168.1.2`. If not specified, the platform will load any discovered receivers.
required: false
type: string
name:
description: Name of the device. (*Required if host is specified*)
required: false
type: string
sources:
description: A list of mappings from source to source name. Valid sources can be found below. A default list will be used if no source mapping is specified.
required: false
type: list
zone2:
description: Enables control for the receiver's second zone.
required: false
type: bool
{% endconfiguration %}
List of source names:

View File

@ -55,7 +55,7 @@ A full configuration example will look like the sample below:
media_player:
- platform: webostv
host: 192.168.0.10
name: Living Room TV
name: Living Room TV
timeout: 5
filename: webostv.conf
turn_on_action:
@ -76,7 +76,7 @@ Avoid using `[ ]` in the `name:` of your device.
Home Assistant is able to turn on a LG webOS Smart TV if you specify an action, like HDMI-CEC or WakeOnLan.
Common for webOS 3.0 and higher would be to use WakeOnLan feature.
Common for webOS 3.0 and higher would be to use WakeOnLan feature.
To use this feature your TV should be connected to your network via Ethernet rather than Wireless and you should enable *LG Connect Apps* feature in *Network* settings of the TV [instructions](http://www.lg.com/uk/support/product-help/CT00008334-1437131798537-others) (or *Mobile App* in *General* settings for older models).
```yaml
@ -93,12 +93,36 @@ media_player:
mac: B4:E6:2A:1E:11:0F
```
Any other [actions](/docs/automation/action/) to power on the device can be configured.
Any other [actions](/docs/automation/action/) to power on the device can be configured.
### {% linkable_title Sources %}
To obtain complete list of available sources currently configured on the TV, once the webOS TV is configured and linked, while its powered on head to the **Developer Tools** > **States**, find your `media_player.<name>` and use the sources listed in `source_list:` remembering to split them per line into your `sources:` configuration.
### {% linkable_title Change channel through play_media service %}
The `play_media` service can be used in a script to switch to the specified tv channel.
It selects the best matching cannel according to the `media_content_id` parameter:
1. Channel number *(i.e. '1' or '6')*
2. Exact channel name *(i.e. 'France 2' or 'CNN')*
3. Substring in channel name *(i.e. 'BFM' in 'BFM TV')*
```yaml
# Example action entry in script to switch to channel number 1
service: media_player.play_media
data:
entity_id: media_player.lg_webos_smart_tv
media_content_id: 1
media_content_type: "channel"
# Example action entry in script to switch to channel including 'TF1' in its name
service: media_player.play_media
data:
entity_id: media_player.lg_webos_smart_tv
media_content_id: "TF1"
media_content_type: "channel"
```
### {% linkable_title Next/Previous buttons %}
The behaviour of the next and previsous buttons is different depending on the active source:

View File

@ -28,6 +28,14 @@ notify:
username: CLICKSEND_USERNAME
api_key: CLICKSEND_API_KEY
recipient: PHONE_NO
# Multiple recipients
notify:
- platform: clicksend
name: ClickSend
username: CLICKSEND_USERNAME
api_key: CLICKSEND_API_KEY
recipient: [PHONE_NO1, PHONE_NO2]
```
{% configuration %}
@ -44,9 +52,9 @@ api_key:
required: true
type: string
recipient:
description: "Your phone number. This is where you want to send your notification SMS messages, e.g., `09171234567`."
description: "A single or multiple phone numbers. This is where you want to send your SMS notification messages, e.g., `09171234567` or `[09171234567, 09177654321]`."
required: true
type: string
type: string or list
sender:
description: The name or number of the sender.
required: false

View File

@ -50,7 +50,7 @@ automation:
- '+919784516314'
```
You can also send messages to users that do not have stored their phone number with Facebook, but this requires a bit more work. The Messenger platform uses page specific user IDs instead of a global user ID. You will need to enable a webhook for the "messages" event in Facebook's developer console. Once a user writes a message to a page, that webhook will then receive the user's page specific ID as part of the webhook's payload. Below is a simple PHP script that reacts to the message "get my id" and sends a reply containing the user's ID:
You can also send messages to users that do not have stored their phone number on Facebook, but this requires a bit more work. The Messenger platform uses page-specific user IDs instead of a global user ID. You will need to enable a webhook for the "messages" event in Facebook's developer console. Once a user writes a message to a page, that webhook will then receive the user's page specific ID as part of the webhook's payload. Below is a simple PHP script that reacts to the message "get my id" and sends a reply containing the user's ID:
```php
<?php
@ -96,10 +96,10 @@ if (preg_match('/get my id/', strtolower($message))) {
```
### {% linkable_title Rich messages %}
You could also send rich messing (cards, buttons, images, videos, etc). [Info](https://developers.facebook.com/docs/messenger-platform/send-api-reference) to which types or messages and how to build them.
You could also send rich messing (cards, buttons, images, videos, etc). [Info](https://developers.facebook.com/docs/messenger-platform/send-api-reference) to which types of messages and how to build them.
```yaml
# Example script with a notification entry with rich message
# Example script with a notification entry with a rich message
script:
test_fb_notification:
@ -117,3 +117,21 @@ script:
title: Blue
payload: DEVELOPER_DEFINED_PAYLOAD_FOR_PICKING_BLUE
```
You can now also use Facebook public beta broadcast API to push messages to ALL users who interacted with your chatbot on your page, without having to collect their number. This will scale to thousands of users. Facebook requires that this only be used for non-commercial purposes and they validate every message you send. Also note, your Facebook bot needs to be authorized for "page_subscritions" if you want to make it to all but can be used right away to a selected group of testers of your choice.
To enable broadcast just use the keyword "BROADCAST" as your target. Only put ONE target BROADCAST as below:
```yaml
- alias: Facebook Broadcast
trigger:
platform: sun
event: sunset
action:
service: notify.facebook
data:
message: Some text you want to send
target:
- BROADCAST
```

View File

@ -60,16 +60,19 @@ On some QS Mobile servers button events are only generated for switches added to
### {% linkable_title Qwikswitch Sensors %}
The sensor configuration is a list of sensors. Each sensor is configured with the following parameters:
The sensor configuration is a list of sensors. Depending on the type, it will be a sensor or binary_sensor. Each sensor is configured with the following parameters:
- **name** (*Required*): The sensor name from which the entity_id will be derived.
- **id** (*Required*): A QS_Id
- **type** (*Required*): The Qwikswitch sensor type. These could include:
- imod (up to 6 channels)
- door (single channel)
- qwikcord (Channel1 = CTavg, Channel 2 = CTsum)
- imod (binary_sensor, up to 6 channels)
- door (binary_sensor, single channel)
- qwikcord (Channel 1 = CTavg, Channel 2 = CTsum)
- **channel** (*Optional, default=1*): The channel of interest. Refer to type above.
The following parameters are only applicabe to binary_sensors (i.e. door/imod).
- **invert** (*Optional, default=False): Invert the open/close state.
- **class** (*Optional, default=door): The [class](https://www.home-assistant.io/components/binary_sensor) or binary_sensor.
Example sensor configuration:

View File

@ -43,3 +43,28 @@ Entity ids will be sensor.device_name, where device_name is defined in deCONZ. S
- Xiaomi Smart Home Wireless Switch
- Temperature Sensor
- Xiaomi Temperature/Humidity Sensor
#### {% linkable_title deCONZ Daylight Sensor %}
The deCONZ Daylight sensor is a special sensor built into the deCONZ software since version 2.05.12. It is represented in Home Assistant as a sensor called sensor.daylight. The sensor's state value is a string corresponding to the phase of daylight (descriptions below taken from https://github.com/mourner/suncalc, on which the deCONZ implementation is based):
| Sensor State | Description |
|--------------|-------------|
| sunrise_start | sunrise (top edge of the sun appears on the horizon) |
| sunrise_end | sunrise ends (bottom edge of the sun touches the horizon) |
| golden_hour_1 | morning golden hour (soft light, the best time for photography) |
| solar_noon | solar noon (sun is in the highest position) |
| golden_hour_2 | evening golden hour |
| sunset_start | sunset starts (bottom edge of the sun touches the horizon) |
| sunset_end | sunset (sun disappears below the horizon, evening civil twilight starts) |
| dusk | dusk (evening nautical twilight starts) |
| nautical_dusk | nautical dusk (evening astronomical twilight starts) |
| night_start | night starts (dark enough for astronomical observations) |
| nadir | nadir (darkest moment of the night, the sun is in the lowest position) |
| night_end | night ends (morning astronomical twilight starts) |
| nautical_dawn | nautical dawn (morning nautical twilight starts) |
| dawn | dawn (morning nautical twilight ends, morning civil twilight starts) |
The sensor also has an attribute called "daylight" that has the value `true` when the sensor's state is `golden_hour_1`, `solar_noon`, or `golden_hour_2`, and `false` otherwise.
These states can be used in automations as a trigger (e.g., trigger when a certain phase of daylight starts or ends) or condition (e.g., trigger only if in a certain phase of daylight).

View File

@ -14,8 +14,11 @@ ha_iot_class: "Cloud Polling"
---
The 'hive' sensor component can expose as a sensor the current online status of your Hive Hub.
The 'hive' sensor component exposes hive data as a sensor.
The Hive sensor component exposes the following sensors:
- **Hive Hub Online Status**
- **Hive Outside Temperature**
<p class='note'>
Full configuration details can be found on the main [Hive component](/components/hive/) page.

View File

@ -80,6 +80,10 @@ json_attributes:
description: A list of keys to extract values from a JSON dictionary payload and then set as sensor attributes.
reqired: false
type: list, string
unique_id:
description: "An id that uniquely identifies this sensor. If 2 sensors have the same unique id, Home Assistant will raise an exception.**"
required: false
type: string
{% endconfiguration %}
## {% linkable_title Examples %}

View File

@ -13,6 +13,6 @@ ha_iot_class: "Local Push"
ha_release: "0.67"
---
The `qwikswitch` sensor platform allows you to control your [QwikSwitch](http://www.qwikswitch.co.za/) relays and dimmers as sensors from within Home Assistant.
The `qwikswitch` sensor platform allows you to use your [QwikSwitch](http://www.qwikswitch.co.za/) sensors in Home Assistant.
The platform is configured through the [QwikSwitch component](/components/qwikswitch/).

View File

@ -0,0 +1,52 @@
---
layout: page
title: "Sensirion SHT31 Sensor"
description: "Instructions on how to integrate SHT31 sensors within Home Assistant."
date: 2018-03-06 19:15
sidebar: true
comments: false
sharing: true
footer: true
ha_category: DIY
ha_release: 0.68
logo: sensirion.png
ha_iot_class: "Local Polling"
---
The `sht31` sensor platform allows you to get the current temperature and humidity from a Sensirion SHT31 device.
To use your SHT31 sensor in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
platform: sht31
name: Bedroom
i2c_address: 0x44
monitored_conditions:
- temperature
- humidity
```
{% configuration %}
name:
description: The name of the sensor. Temperature and Humidity will be added to the name for the sensor name.
required: false
default: SHT31
type: string
i2c_address:
description: I2C address of the sensor.
required: false
default: "`0x44`"
type: int
monitored_conditions:
description: Conditions to monitor.
required: false
default: All conditions
type: list
keys:
temperature:
description: The current temperature of the SHT31.
humidity:
description: The current humidity of the SHT31.
{% endconfiguration %}

View File

@ -0,0 +1,47 @@
---
layout: page
title: "Sigfox Sensor"
description: "Display messages from Sigfox devices in Home Assistant."
date: 2018-04-07 12:10
sidebar: true
comments: false
sharing: true
footer: true
logo: sigfox.png
ha_category: Sensor
ha_iot_class: "Local Polling"
ha_release: 0.68
---
[SigFox](https://www.sigfox.com/en) component adding a sensor for each Sigfox device registered with your account. The default name of sensors is `sigfox_{DEVICE_ID}` where `DEVICE_ID` is the devices Sigfox ID. The state of an added Sigfox sensor is the payload of the last message published by that device. Additionally, there are attributes for the latitude and longitude coordinates of the device, as well as the signal-to-noise ratio ( [snr](https://en.wikipedia.org/wiki/Signal-to-noise_ratio)).
```yaml
# Example configuration.yaml entry
sensor:
- platform: sigfox
api_login: your_api_login
api_password: your_api_password
```
{% configuration %}
api_login:
description: Your Sigfox API login.
required: true
type: string
api_password:
description: Your Sigfox API password.
required: true
type: string
name:
description: The name to prepend to the device ID.
required: false
default: "sigfox"
type: string
{% endconfiguration %}
Note that `your_api_login` and `your_api_password` are your **API access credentials** which can be accessed by following:
1. Log into [Sigfox backend](https://backend.sigfox.com)
1. Select `GROUP`
1. Select `API ACCESS`
1. Click on `new` and create new access entry

View File

@ -0,0 +1,39 @@
---
layout: page
title: USCIS Sensor
description: "Instructions on how to set up USCIS within Home Assistant."
date: 2018-03-21 08:00
sidebar: false
comments: false
sharing: true
footer: true
logo: uscis.png
ha_category: Sensor
ha_release: 0.68
ha_iot_class: "Cloud Polling"
---
The `uscis` sensor component allows you get updates on your USCIS case using your case/receipt number. The sensor gets the case information from [USCIS Website]( https://egov.uscis.gov/casestatus/landing.do)
## Example for `configuration.yaml` :
```yaml
sensor:
- platform: uscis
case_id: YOUR_CASE_NUMBER
name: OPTIONAL_NAME
```
{% configuration %}
friendly_name:
description: Name of the sensor in Home Assistant.
required: false
default: USCIS
type: string
case_id:
description: Case/receipt number used to get the case details from USCIS web client.
required: true
type: string
{% endconfiguration %}
All the data will be fetch from [USCIS](https://egov.uscis.gov/casestatus/mycasestatus.do).

View File

@ -0,0 +1,19 @@
---
layout: page
title: "Eufy Switch"
description: "Instructions on how to integrate Eufy switches into Home Assistant."
date: 2018-04-09 19:00
sidebar: true
comments: false
sharing: true
footer: true
logo: eufy.png
ha_category: Switch
ha_iot_class: "Local Polling"
ha_release: 0.68
---
The `eufy` platform allows you to control your [Eufy](http://www.eufylife.com) switches from within Home Assistant.
They will be automatically discovered if the [Eufy](/components/eufy/) component is enabled.

View File

@ -0,0 +1,31 @@
---
layout: page
title: "Fritzbox Switch"
description: "Instructions on how to integrate the AVM Fritzbox switch."
date: 2017-11-12 17:10
sidebar: true
comments: false
sharing: true
footer: true
logo: avm.png
ha_category: Switch
ha_release: 0.68
ha_iot_class: "Local Polling"
---
<p class='note'>
To get AVM Fritzbox switch follow the instructions for the general [Fritzbox](/components/fritzbox/).
</p>
### {% linkable_title Attributes %}
The are several attributes that can be useful for automations and templates.
| Attribute | Description |
| --------- | ----------- |
| `device_locked` | The state of the key lock at the device.
| `locked` | The state of the lock for configuring the device via the app or the Fritzbox web interface.
| `temperature_unit` | The unit of the temperature sensor (only available if the device support temperature sensor).
| `temperature` | The current temperature sensor reading (only available if the device supports temperature sensor).
| `total_consumption` | The total power consumption since the beginning of operation (only available if the device supports power meter function).
| `total_consumption_unit` | The unit of the total_consumption (only available if the device supports power meter function).

View File

@ -0,0 +1,16 @@
---
layout: page
title: "HomeKit Switch"
description: "Instructions on how to setup HomeKit switches within Home Assistant."
date: 2017-03-19 21:08
sidebar: true
comments: false
sharing: true
footer: true
logo: apple-homekit.png
ha_category: Light
ha_iot_class: "Local Polling"
ha_release: 0.68
---
To get your HomeKit switches working with Home Assistant, follow the instructions for the general [HomeKit controller component](/components/homekit_controller/).

View File

@ -88,3 +88,33 @@ data_template:
## {% linkable_title Cache %}
The component has two caches. Both caches can be controlled with the `cache` option in the platform configuration or the service call `say`. A long time cache will be located on the file system. The in-memory cache for fast responses to media players will be auto-cleaned after a short period.
## {% linkable_title REST Api %}
#### {% linkable_title POST /api/tts_get_url %}
Returns an URL to the generated TTS file. Platform and message are required.
```json
{
"plaform": "amazon_polly",
"message": "I am speaking now"
}
```
The return code is 200 if the file is generated. The message body will contain a JSON object with the URL.
```json
{
"url": "http://127.0.0.1:8123/api/tts_proxy/265944c108cbb00b2a621be5930513e03a0bb2cd_en_-_demo.mp3"
}
```
Sample `curl` command:
```bash
$ curl -X POST -H "x-ha-access: YOUR_PASSWORD" \
-H "Content-Type: application/json" \
-d '{"message": "I am speaking now", "platform": "amazon_polly"}' \
http://localhost:8123/api/tts_get_url
```

View File

@ -26,8 +26,10 @@ There is currently support for the following device types within Home Assistant:
Known working ZigBee radios:
- Nortek/GoControl Z-Wave & Zigbee USB Adaptor - Model HUSBZB-1
- Nortek/GoControl Z-Wave & Zigbee USB Adapter - Model HUSBZB-1
- XBee Series 2C
- [Elelabs ZigBee USB Adapter](https://elelabs.com/products/elelabs_usb_adapter.html)
- [Elelabs ZigBee Raspberry Pi Shield](https://elelabs.com/products/elelabs_zigbee_shield.html)
To configure the component, a `zha` section must be present in the `configuration.yaml`,
and the path to the serial device for the radio and path to the database which will persist your network data is required.

View File

@ -80,6 +80,13 @@ Home Assistant adds extensions to allow templates to access all of the current s
- `float` will format the output as float.
- `strptime(string, format)` will parse a string to a datetime based on a [format][strp-format].
- `log(value, base)` will take the logarithm of the input. When the base is omitted, it defaults to `e` - the natural logarithm. Can also be used as a filter.
- `sin(value)` will return the sine of the input. Can be used as a filter.
- `cos(value)` will return the cosine of the input. Can be used as a filter.
- `tan(value)` will return the tangent of the input. Can be used as a filter.
- `sqrt(value)` will return the square root of the input. Can be used as a filter.
- `e` mathematical constant, approximately 2.71828.
- `pi` mathematical constant, approximately 3.14159.
- `tau` mathematical constant, approximately 6.28318.
- Filter `round(x)` will convert the input to a number and round it to `x` decimals.
- Filter `timestamp_local` will convert an UNIX timestamp to local time/data.
- Filter `timestamp_utc` will convert an UNIX timestamp to UTC time/data.
@ -274,6 +281,10 @@ The following overview contains a couple of options to get the needed values:
{% raw %}{{ float(value_json) * (2**10) }}{% endraw %}
{% raw %}{{ value_json | log }}{% endraw %}
{% raw %}{{ log(1000, 10) }}{% endraw %}
{% raw %}{{ sin(pi / 2) }}{% endraw %}
{% raw %}{{ cos(tau) }}{% endraw %}
{% raw %}{{ tan(pi) }}{% endraw %}
{% raw %}{{ sqrt(e) }}{% endraw %}
# Timestamps
{% raw %}{{ value_json.tst | timestamp_local }}{% endraw %}

View File

@ -39,6 +39,7 @@ optional arguments:
specified days
--log-file LOG_FILE Log file to write to. If not set, CONFIG/home-
assistant.log is used
--log-no-color Disable color logs
--runner On restart exit with code 100
--script ... Run one of the embedded scripts
--daemon Run Home Assistant as daemon

View File

@ -0,0 +1,501 @@
---
layout: post
title: "0.68: HomeKit control, Eufy, FritzBox, SigFox sensors"
description: "Enjoy your weekend with this brand new release of Home Assistant."
date: 2018-04-27 00:01:00
date_formatted: "April 27, 2018"
author: Paulus Schoutsen
author_twitter: balloob
comments: true
categories: Release-Notes
og_image: /images/blog/2018-04-0.68/components.png
---
<a href='/components/#version/0.68'><img src='/images/blog/2018-04-0.68/components.png' style='border: 0;box-shadow: none;'></a>
Weekend is around the corner and that means that it's time for the next release of Home Assistant. 0.68 brings a ton of great goodies and bug fixes.
One of the coolest features this release is by [@mjg59]: you are now able to **control** HomeKit devices. Previously, it was possible to control Home Assistant from iOS devices using the HomeKit protocol. With this release, Home Assistant is able to become the controller and use HomeKit to control lights and switches directly. Since HomeKit is vendor agnostic, it means that any HomeKit light or switch will now be compatible with Home Assistant. Very cool.
Another cool new platform, also by [@mjg59], is support for Eufy devices. Eufy is the Home Automation brand of Anker and they have been producing reasonably priced devices which can now be controlled by Home Assistant too. Thanks for all your contributions [@mjg59] ❤️.
## {% linkable_title New Platforms %}
- Add support for Eufy bulbs and switches ([@mjg59] - [#13773]) ([eufy docs]) ([light.eufy docs]) ([switch.eufy docs]) (new-platform)
- Add support for controlling homekit lights and switches ([@mjg59] - [#13346]) ([homekit_controller docs]) ([light.homekit_controller docs]) (new-platform)
- Adding USCIS component ([@meauxt] - [#13764]) ([sensor.uscis docs]) (new-platform)
- Add support for new platform: climate.modbus ([@Kirchoff] - [#12224]) ([climate.modbus docs]) (new-platform)
- Add AVM fritzbox smarthome component ([@hthiery] - [#10688]) ([fritzbox docs]) ([climate.fritzbox docs]) ([switch.fritzbox docs]) (new-platform)
- Adds SigFox sensor ([@robmarkcole] - [#13731]) ([sensor.sigfox docs]) (new-platform)
- Add blackbird media player component ([@koolsb] - [#13549]) ([media_player.blackbird docs]) (new-platform)
- Add support for Sensirion SHT31 temperature/humidity sensor ([@viorels] - [#12952]) ([sensor.sht31 docs]) (new-platform)
- Qwikswitch binary sensors ([@kellerza] - [#14008]) ([qwikswitch docs]) ([binary_sensor.qwikswitch docs]) ([sensor.qwikswitch docs]) (beta fix) (new-platform)
## {% linkable_title New Features %}
- Support binary_sensor and device_tracker in HomeKit ([@Yonsm] - [#13735]) ([homekit docs]) (new-feature)
- Add Homekit locks support ([@philk] - [#13625]) ([homekit docs]) (new-feature)
- Support CO2/PM2.5/Light sensors in HomeKit ([@Yonsm] - [#13804]) ([homekit docs]) (new-feature)
- Support Garage Doors in HomeKit ([@marthoc] - [#13796]) ([homekit docs]) (new-feature)
- Support basic covers with open/close/stop services HomeKit ([@nickw444] - [#13819]) ([homekit docs]) (new-feature)
## {% linkable_title 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). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks.
## {% linkable_title Reporting Issues %}
Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template.
<!--more-->
## {% linkable_title Breaking Changes %}
- Icons! Material Design Icons has implemented some naming guidelines and this caused 9 icons to change names, 3 of which are home automation icons: `roomba` -> `robot-vacuum`, `nest-protect` -> `smoke-detector`, `nest-thermostat` -> `thermostat` ([see all changes](http://templarian.com/2018/04/18/material-design-icons-v2-3-54/)).
- Support for multiple MAX!Cube LAN gateways caused a slight change to the configuration schema. Make sure to check the docs for the new one. ([@syssi] - [#13517]) ([maxcube docs]) ([binary_sensor.maxcube docs]) ([climate.maxcube docs]) (breaking change)
- Ebox sensor platform has been disabled because the dependency was not compatible with pip 10. ([@balloob] - [#14003]) ([sensor.ebox docs]) (breaking change)
## {% linkable_title Beta Fixes %}
- Qwikswitch binary sensors ([@kellerza] - [#14008]) ([qwikswitch docs]) ([binary_sensor.qwikswitch docs]) ([sensor.qwikswitch docs]) (beta fix) (new-platform)
- Order the output of the automation editor ([@balloob] - [#14019]) ([config docs]) (beta fix)
- HomeKit Alarm Control Panel Code Exception Fix ([@schmittx] - [#14025]) ([homekit docs]) (beta fix)
- Revert cast platform polling mode ([@OttoWinter] - [#14027]) ([media_player.cast docs]) (beta fix)
- Handle HomeKit configuration failure more cleanly ([@mjg59] - [#14041]) ([homekit_controller docs]) (beta fix)
- Update device classes for contact sensor HomeKit ([@marthoc] - [#14051]) ([homekit docs]) (beta fix)
- Upgrade broadlink lib ([@Danielhiversen] - [#14074]) ([sensor.broadlink docs]) ([switch.broadlink docs]) (beta fix)
- Fix timezone issue when calculating min/max values in tibber #14009 ([@Danielhiversen] - [#14080]) ([sensor.tibber docs]) (beta fix)
- Updated list of AWS regions for Amazon Polly ([@GotoCode] - [#14097]) ([tts docs]) (beta fix)
- Change Eufy brightness handling ([@mjg59] - [#14111]) (beta fix)
## {% linkable_title All changes %}
- Update Homekit to 1.1.9 ([@cdce8p] - [#13716]) ([homekit docs])
- Update docstrings ([@fabaff] - [#13720]) ([ihc docs]) ([cover.opengarage docs]) ([cover.tahoma docs]) ([sensor.trafikverket_weatherstation docs])
- Add option to ignore availability in google calendar events ([@cgtobi] - [#13714]) ([calendar.google docs])
- Allow use of date_string in service call ([@Juggels] - [#13256]) ([calendar.todoist docs])
- Add timeout / debounce (for brightness and others) ([@cdce8p] - [#13534]) ([homekit docs])
- added support for smappee water sensors ([@hmn] - [#12831]) ([smappee docs]) ([sensor.smappee docs])
- Initialise filter_sensor with historical values ([@dgomes] - [#13075]) ([sensor.filter docs])
- Fix Gogogate2 'available' attribute ([@dlbroadfoot] - [#13728]) (beta fix)
- Bluesound bugfix status 595 and await ([@thrawnarn] - [#13727]) ([media_player.bluesound docs])
- Upgrade aiohttp to 3.1.2 ([@fabaff] - [#13732])
- Upgrade sqlalchemy to 1.2.6 ([@fabaff] - [#13733]) ([sensor.sql docs])
- Brightness conversion for Abode dimmers ([@shred86] - [#13711]) ([light.abode docs])
- Update CODEOWNERS (sensor.filter, sensor.upnp) ([@dgomes] - [#13736])
- Reset permission ([@fabaff] - [#13743]) ([light.abode docs])
- Throw an error when invalid device_mode is given ([@dangyuluo] - [#13739])
- Fix so it is possible to ignore discovered config entry handlers ([@Kane610] - [#13741]) (beta fix)
- Upgrade netdisco to 1.3.1 ([@fabaff] - [#13744])
- Add MQTT Sensor unique_id ([@OttoWinter] - [#13318]) ([sensor.mqtt docs])
- Prepare entity component for config entries ([@balloob] - [#13730])
- Check valid file on get_size ([@robmarkcole] - [#13756]) ([sensor.folder docs])
- Qwikswitch sensors ([@kellerza] - [#13622]) ([sensor.qwikswitch docs])
- Device type mapping introduced to avoid breaking change ([@syssi] - [#13765]) ([light.yeelight docs])
- Only flag media position as updated when it really has ([@molobrakos] - [#13737]) ([media_player.squeezebox docs])
- Support binary_sensor and device_tracker in HomeKit ([@Yonsm] - [#13735]) ([homekit docs]) (new-feature)
- Use config entry to setup platforms ([@balloob] - [#13752]) ([hue docs]) ([light docs]) ([light.hue docs])
- Add Homekit locks support ([@philk] - [#13625]) ([homekit docs]) (new-feature)
- Snips sounds ([@tschmidty69] - [#13746]) ([snips docs])
- Add missing DISCHRG state ([@swilson] - [#13787]) ([sensor.nut docs])
- Improved upgradeability HomeKit security_systems ([@cdce8p] - [#13783]) ([homekit docs])
- Qwikswitch Entity Register ([@kellerza] - [#13791]) ([qwikswitch docs]) ([sensor.qwikswitch docs])
- Updated beacontools to 1.2.3 ([@citruz] - [#13792]) ([sensor.eddystone_temperature docs])
- script/lazytox: Ensure Flake8 passes for tests/ ([@kellerza] - [#13794])
- Fix bad metrics format for short metrics. ([@michaelkuty] - [#13778]) ([prometheus docs])
- Update bellows to 0.5.2 ([@rcloran] - [#13800]) ([zha docs])
- device_tracker.ubus: Handle devices not running DHCP ([@tobygray] - [#13579]) ([device_tracker docs])
- Update yweather.py ([@wiuwiu] - [#13802]) ([weather.yweather docs])
- Tibber lib update ([@Danielhiversen] - [#13811]) ([sensor.tibber docs])
- Update pyhomematic to 0.1.41 ([@danielperna84] - [#13814]) ([homematic docs])
- Add support for Eufy bulbs and switches ([@mjg59] - [#13773]) ([eufy docs]) ([light.eufy docs]) ([switch.eufy docs]) (new-platform)
- Homekit refactor ([@cdce8p] - [#13707]) ([homekit docs])
- HomeKit type_cover fix ([@cdce8p] - [#13832]) ([homekit docs])
- Allow platform unloading ([@balloob] - [#13784]) ([hue docs]) ([light docs])
- Support CO2/PM2.5/Light sensors in HomeKit ([@Yonsm] - [#13804]) ([homekit docs]) (new-feature)
- Clicksend: Added support for multiple recipients ([@xTCx] - [#13812]) ([notify docs])
- Support Garage Doors in HomeKit ([@marthoc] - [#13796]) ([homekit docs]) (new-feature)
- Abode better events ([@MisterWil] - [#13809]) ([abode docs])
- UPnP async ([@dgomes] - [#13666]) ([upnp docs]) ([sensor.upnp docs])
- Update example (fixes #13834) ([@fabaff] - [#13839])
- Add support for deCONZ daylight sensor ([@marthoc] - [#13479]) ([deconz docs]) ([sensor.deconz docs])
- initialize queue before filtering ([@dgomes] - [#13842]) ([sensor.filter docs])
- Extract config flow to own module ([@balloob] - [#13840]) ([config docs]) ([deconz docs]) ([hue docs])
- Add support for controlling homekit lights and switches ([@mjg59] - [#13346]) ([homekit_controller docs]) ([light.homekit_controller docs]) (new-platform)
- bump python-ecobee-api version to 0.0.18 ([@geekofweek] - [#13854]) ([ecobee docs])
- Adding USCIS component ([@meauxt] - [#13764]) ([sensor.uscis docs]) (new-platform)
- Avoid unnecessary cast state updates ([@dersger] - [#13770]) ([media_player.cast docs])
- Prevent vesync doing I/O in event loop ([@balloob] - [#13862]) ([switch.vesync docs]) (beta fix)
- Update yweather.py ([@TheCellMC] - [#13851]) ([weather.yweather docs])
- add support for Kodi discovery ([@escoand] - [#13790]) ([media_player.kodi docs])
- Further untangle data entry flow ([@balloob] - [#13855])
- Missing property decorator added ([@syssi] - [#13889]) ([fan.xiaomi_miio docs]) (beta fix)
- Fix race condition for component loaded before listening ([@balloob] - [#13887]) ([config docs]) (beta fix)
- Added snips service descriptions ([@tschmidty69] - [#13883])
- Add unique_id for BMW ConnectedDrive ([@gerard33] - [#13888]) ([binary_sensor.bmw_connected_drive docs]) ([lock.bmw_connected_drive docs]) ([sensor.bmw_connected_drive docs])
- Revert "Update yweather.py" ([@pvizeli] - [#13900]) ([weather.yweather docs])
- Eufy colour bulb updates ([@mjg59] - [#13895]) ([eufy docs]) ([light.eufy docs])
- Fix #13846 Double underscore in bluetooth address ([@aav7fl] - [#13884]) ([device_tracker docs]) (beta fix)
- Import operation modes from air humidifier ([@syssi] - [#13908]) ([fan.xiaomi_miio docs]) (beta fix)
- Fritzbox netmonitor name ([@escoand] - [#13903]) ([sensor.fritzbox_netmonitor docs])
- Restore typeerror check for units sans energy tracking ([@andersonshatch] - [#13824]) ([switch.edimax docs])
- Add more math functions to templates ([@Shou] - [#13915])
- Upgrade pyqwikswitch to 0.71 ([@kellerza] - [#13920]) ([qwikswitch docs])
- Add extra attributes for device scanner, Nmap and Unifi (IP, SSID, etc.) ([@stephanerosi] - [#13673]) ([device_tracker docs])
- Fixed Capsman data not being used ([@Marco98] - [#13917]) ([device_tracker docs])
- Broadlink Sensor - switch to connection-less mode ([@Paxy] - [#13761]) ([sensor.broadlink docs])
- Add support for new platform: climate.modbus ([@Kirchoff] - [#12224]) ([climate.modbus docs]) (new-platform)
- Hive R3 update ([@KJonline] - [#13357]) ([hive docs]) ([binary_sensor.hive docs]) ([climate.hive docs]) ([light.hive docs]) ([sensor.hive docs]) ([switch.hive docs])
- Updated foobot_async package version ([@reefab] - [#13942]) ([sensor.foobot docs])
- Update pyhydroquebec to 2.2.2 ([@titilambert] - [#13946]) ([sensor.hydroquebec docs]) (beta fix)
- Upgrade alpha_vantage to 2.0.0 ([@fabaff] - [#13943]) ([sensor.alpha_vantage docs])
- Cleanup on exit ([@dgomes] - [#13918]) ([media_player.mediaroom docs])
- Upgrade somecomfort to 0.5.2 ([@balloob] - [#13940]) ([climate.honeywell docs]) (beta fix)
- Add data entry flow helper ([@balloob] - [#13935]) ([config docs])
- Xiaomi MiIO Device Tracker: Unused variable removed ([@syssi] - [#13948]) ([device_tracker docs])
- Implement play media to set a channel based on (by priority): ([@stephanerosi] - [#13934]) ([media_player.webostv docs])
- Update of python-mpd2 ([@karlkar] - [#13921]) ([media_player.mpd docs])
- Add AVM fritzbox smarthome component ([@hthiery] - [#10688]) ([fritzbox docs]) ([climate.fritzbox docs]) ([switch.fritzbox docs]) (new-platform)
- Adds SigFox sensor ([@robmarkcole] - [#13731]) ([sensor.sigfox docs]) (new-platform)
- Upgrade aiohttp to 3.1.3 ([@fabaff] - [#13938])
- Upgrade youtube_dl to 2018.04.16 ([@fabaff] - [#13937]) ([media_extractor docs])
- Added FB messenger broadcast api to notify.facebook component ([@B1tMaster] - [#12459]) ([notify.facebook docs])
- Added web view for TTS to get url ([@tschmidty69] - [#13882]) ([tts docs])
- Add services for bmw_connected_drive ([@ChristianKuehnel] - [#13497]) ([bmw_connected_drive docs]) ([device_tracker docs])
- Fix call to parent broadlink switch ([@Danielhiversen] - [#13906]) ([switch.broadlink docs]) (beta fix)
- Bump deCONZ requirement to v36 ([@Kane610] - [#13960]) ([deconz docs])
- Fix Gogogate2 'available' attribute ([@dlbroadfoot] - [#13728]) (beta fix)
- Fix so it is possible to ignore discovered config entry handlers ([@Kane610] - [#13741]) (beta fix)
- Prevent vesync doing I/O in event loop ([@balloob] - [#13862]) ([switch.vesync docs]) (beta fix)
- Fix #13846 Double underscore in bluetooth address ([@aav7fl] - [#13884]) ([device_tracker docs]) (beta fix)
- Fix race condition for component loaded before listening ([@balloob] - [#13887]) ([config docs]) (beta fix)
- Missing property decorator added ([@syssi] - [#13889]) ([fan.xiaomi_miio docs]) (beta fix)
- Fix call to parent broadlink switch ([@Danielhiversen] - [#13906]) ([switch.broadlink docs]) (beta fix)
- Import operation modes from air humidifier ([@syssi] - [#13908]) ([fan.xiaomi_miio docs]) (beta fix)
- Upgrade pyqwikswitch to 0.71 ([@kellerza] - [#13920]) ([qwikswitch docs])
- Upgrade somecomfort to 0.5.2 ([@balloob] - [#13940]) ([climate.honeywell docs]) (beta fix)
- Update pyhydroquebec to 2.2.2 ([@titilambert] - [#13946]) ([sensor.hydroquebec docs]) (beta fix)
- Revert "Upgrade pyqwikswitch to 0.71 ([@balloob] - [#13920]) ([qwikswitch docs])
- Bump skybellpy version to 0.1.2 ([@MisterWil] - [#13974]) ([skybell docs])
- Fix typo an coding style ([@stephanerosi] - [#13970]) ([device_tracker docs])
- Params of the send command can be a list now ([@syssi] - [#13905]) ([vacuum docs])
- Support basic covers with open/close/stop services HomeKit ([@nickw444] - [#13819]) ([homekit docs]) (new-feature)
- Colorlog windows fix ([@veleek] - [#13929]) ([notify docs])
- deCONZ migrate setup fully to config entry ([@Kane610] - [#13679]) ([deconz docs])
- Alexa thermostat fails to properly parse 'value' field for climate ([@no2chem] - [#13958]) ([alexa docs])
- renaming icons ([@NovapaX] - [#13982]) ([hdmi_cec docs]) ([vacuum docs]) ([vacuum.dyson docs]) ([vacuum.neato docs]) ([vacuum.roomba docs]) ([vacuum.xiaomi_miio docs])
- Fix for Lokalise backend misinterpretation of keys ([@armills] - [#13986])
- Bump locationsharinglib to 1.2.1 ([@thelittlefireman] - [#13980]) ([device_tracker docs])
- Support for multiple MAX!Cube LAN gateways added ([@syssi] - [#13517]) ([maxcube docs]) ([binary_sensor.maxcube docs]) ([climate.maxcube docs]) (breaking change)
- Add additional receiver for Onkyo zone 2 ([@koolsb] - [#13551]) ([media_player.onkyo docs])
- Add blackbird media player component ([@koolsb] - [#13549]) ([media_player.blackbird docs]) (new-platform)
- Add support for Sensirion SHT31 temperature/humidity sensor ([@viorels] - [#12952]) ([sensor.sht31 docs]) (new-platform)
- Useless code removed ([@syssi] - [#13996]) ([maxcube docs])
- Add Homematic HmIP-SWO-PR weather sensor support ([@pascalhahn] - [#13904]) ([homematic docs])
- Disable ebox requirement ([@balloob] - [#14003]) ([sensor.ebox docs]) (breaking change)
- Upgraded miflora library to version 0.4.0 ([@ChristianKuehnel] - [#14005]) ([sensor.miflora docs])
- Log an error instead of raising an exception ([@syssi] - [#14006]) ([sensor.sht31 docs])
- Tibber available ([@Danielhiversen] - [#13865]) ([sensor.tibber docs])
- Upgrade pylutron-caseta to 0.5.0 to reestablish connections ([@rohankapoorcom] - [#14013]) ([lutron_caseta docs])
- Add sensor device classes ([@balloob] - [#14010]) ([sensor docs]) ([sensor.ecobee docs]) ([sensor.linux_battery docs]) ([sensor.nest docs])
- Qwikswitch binary sensors ([@kellerza] - [#14008]) ([qwikswitch docs]) ([binary_sensor.qwikswitch docs]) ([sensor.qwikswitch docs]) (beta fix) (new-platform)
- Order the output of the automation editor ([@balloob] - [#14019]) ([config docs]) (beta fix)
- HomeKit Alarm Control Panel Code Exception Fix ([@schmittx] - [#14025]) ([homekit docs]) (beta fix)
- Revert cast platform polling mode ([@OttoWinter] - [#14027]) ([media_player.cast docs]) (beta fix)
- Handle HomeKit configuration failure more cleanly ([@mjg59] - [#14041]) ([homekit_controller docs]) (beta fix)
- Update device classes for contact sensor HomeKit ([@marthoc] - [#14051]) ([homekit docs]) (beta fix)
- Upgrade broadlink lib ([@Danielhiversen] - [#14074]) ([sensor.broadlink docs]) ([switch.broadlink docs]) (beta fix)
- Fix timezone issue when calculating min/max values in tibber #14009 ([@Danielhiversen] - [#14080]) ([sensor.tibber docs]) (beta fix)
- Updated list of AWS regions for Amazon Polly ([@GotoCode] - [#14097]) ([tts docs]) (beta fix)
[#10688]: https://github.com/home-assistant/home-assistant/pull/10688
[#12224]: https://github.com/home-assistant/home-assistant/pull/12224
[#12459]: https://github.com/home-assistant/home-assistant/pull/12459
[#12831]: https://github.com/home-assistant/home-assistant/pull/12831
[#12952]: https://github.com/home-assistant/home-assistant/pull/12952
[#13075]: https://github.com/home-assistant/home-assistant/pull/13075
[#13256]: https://github.com/home-assistant/home-assistant/pull/13256
[#13318]: https://github.com/home-assistant/home-assistant/pull/13318
[#13346]: https://github.com/home-assistant/home-assistant/pull/13346
[#13357]: https://github.com/home-assistant/home-assistant/pull/13357
[#13479]: https://github.com/home-assistant/home-assistant/pull/13479
[#13497]: https://github.com/home-assistant/home-assistant/pull/13497
[#13517]: https://github.com/home-assistant/home-assistant/pull/13517
[#13534]: https://github.com/home-assistant/home-assistant/pull/13534
[#13549]: https://github.com/home-assistant/home-assistant/pull/13549
[#13551]: https://github.com/home-assistant/home-assistant/pull/13551
[#13579]: https://github.com/home-assistant/home-assistant/pull/13579
[#13622]: https://github.com/home-assistant/home-assistant/pull/13622
[#13625]: https://github.com/home-assistant/home-assistant/pull/13625
[#13666]: https://github.com/home-assistant/home-assistant/pull/13666
[#13673]: https://github.com/home-assistant/home-assistant/pull/13673
[#13679]: https://github.com/home-assistant/home-assistant/pull/13679
[#13707]: https://github.com/home-assistant/home-assistant/pull/13707
[#13711]: https://github.com/home-assistant/home-assistant/pull/13711
[#13714]: https://github.com/home-assistant/home-assistant/pull/13714
[#13716]: https://github.com/home-assistant/home-assistant/pull/13716
[#13720]: https://github.com/home-assistant/home-assistant/pull/13720
[#13727]: https://github.com/home-assistant/home-assistant/pull/13727
[#13728]: https://github.com/home-assistant/home-assistant/pull/13728
[#13730]: https://github.com/home-assistant/home-assistant/pull/13730
[#13731]: https://github.com/home-assistant/home-assistant/pull/13731
[#13732]: https://github.com/home-assistant/home-assistant/pull/13732
[#13733]: https://github.com/home-assistant/home-assistant/pull/13733
[#13735]: https://github.com/home-assistant/home-assistant/pull/13735
[#13736]: https://github.com/home-assistant/home-assistant/pull/13736
[#13737]: https://github.com/home-assistant/home-assistant/pull/13737
[#13739]: https://github.com/home-assistant/home-assistant/pull/13739
[#13741]: https://github.com/home-assistant/home-assistant/pull/13741
[#13743]: https://github.com/home-assistant/home-assistant/pull/13743
[#13744]: https://github.com/home-assistant/home-assistant/pull/13744
[#13746]: https://github.com/home-assistant/home-assistant/pull/13746
[#13752]: https://github.com/home-assistant/home-assistant/pull/13752
[#13756]: https://github.com/home-assistant/home-assistant/pull/13756
[#13761]: https://github.com/home-assistant/home-assistant/pull/13761
[#13764]: https://github.com/home-assistant/home-assistant/pull/13764
[#13765]: https://github.com/home-assistant/home-assistant/pull/13765
[#13770]: https://github.com/home-assistant/home-assistant/pull/13770
[#13773]: https://github.com/home-assistant/home-assistant/pull/13773
[#13778]: https://github.com/home-assistant/home-assistant/pull/13778
[#13783]: https://github.com/home-assistant/home-assistant/pull/13783
[#13784]: https://github.com/home-assistant/home-assistant/pull/13784
[#13787]: https://github.com/home-assistant/home-assistant/pull/13787
[#13790]: https://github.com/home-assistant/home-assistant/pull/13790
[#13791]: https://github.com/home-assistant/home-assistant/pull/13791
[#13792]: https://github.com/home-assistant/home-assistant/pull/13792
[#13794]: https://github.com/home-assistant/home-assistant/pull/13794
[#13796]: https://github.com/home-assistant/home-assistant/pull/13796
[#13800]: https://github.com/home-assistant/home-assistant/pull/13800
[#13802]: https://github.com/home-assistant/home-assistant/pull/13802
[#13804]: https://github.com/home-assistant/home-assistant/pull/13804
[#13809]: https://github.com/home-assistant/home-assistant/pull/13809
[#13811]: https://github.com/home-assistant/home-assistant/pull/13811
[#13812]: https://github.com/home-assistant/home-assistant/pull/13812
[#13814]: https://github.com/home-assistant/home-assistant/pull/13814
[#13819]: https://github.com/home-assistant/home-assistant/pull/13819
[#13824]: https://github.com/home-assistant/home-assistant/pull/13824
[#13832]: https://github.com/home-assistant/home-assistant/pull/13832
[#13839]: https://github.com/home-assistant/home-assistant/pull/13839
[#13840]: https://github.com/home-assistant/home-assistant/pull/13840
[#13842]: https://github.com/home-assistant/home-assistant/pull/13842
[#13851]: https://github.com/home-assistant/home-assistant/pull/13851
[#13854]: https://github.com/home-assistant/home-assistant/pull/13854
[#13855]: https://github.com/home-assistant/home-assistant/pull/13855
[#13862]: https://github.com/home-assistant/home-assistant/pull/13862
[#13865]: https://github.com/home-assistant/home-assistant/pull/13865
[#13882]: https://github.com/home-assistant/home-assistant/pull/13882
[#13883]: https://github.com/home-assistant/home-assistant/pull/13883
[#13884]: https://github.com/home-assistant/home-assistant/pull/13884
[#13887]: https://github.com/home-assistant/home-assistant/pull/13887
[#13888]: https://github.com/home-assistant/home-assistant/pull/13888
[#13889]: https://github.com/home-assistant/home-assistant/pull/13889
[#13895]: https://github.com/home-assistant/home-assistant/pull/13895
[#13900]: https://github.com/home-assistant/home-assistant/pull/13900
[#13903]: https://github.com/home-assistant/home-assistant/pull/13903
[#13904]: https://github.com/home-assistant/home-assistant/pull/13904
[#13905]: https://github.com/home-assistant/home-assistant/pull/13905
[#13906]: https://github.com/home-assistant/home-assistant/pull/13906
[#13908]: https://github.com/home-assistant/home-assistant/pull/13908
[#13915]: https://github.com/home-assistant/home-assistant/pull/13915
[#13917]: https://github.com/home-assistant/home-assistant/pull/13917
[#13918]: https://github.com/home-assistant/home-assistant/pull/13918
[#13920]: https://github.com/home-assistant/home-assistant/pull/13920
[#13921]: https://github.com/home-assistant/home-assistant/pull/13921
[#13929]: https://github.com/home-assistant/home-assistant/pull/13929
[#13934]: https://github.com/home-assistant/home-assistant/pull/13934
[#13935]: https://github.com/home-assistant/home-assistant/pull/13935
[#13937]: https://github.com/home-assistant/home-assistant/pull/13937
[#13938]: https://github.com/home-assistant/home-assistant/pull/13938
[#13940]: https://github.com/home-assistant/home-assistant/pull/13940
[#13942]: https://github.com/home-assistant/home-assistant/pull/13942
[#13943]: https://github.com/home-assistant/home-assistant/pull/13943
[#13946]: https://github.com/home-assistant/home-assistant/pull/13946
[#13948]: https://github.com/home-assistant/home-assistant/pull/13948
[#13958]: https://github.com/home-assistant/home-assistant/pull/13958
[#13960]: https://github.com/home-assistant/home-assistant/pull/13960
[#13970]: https://github.com/home-assistant/home-assistant/pull/13970
[#13974]: https://github.com/home-assistant/home-assistant/pull/13974
[#13980]: https://github.com/home-assistant/home-assistant/pull/13980
[#13982]: https://github.com/home-assistant/home-assistant/pull/13982
[#13986]: https://github.com/home-assistant/home-assistant/pull/13986
[#13996]: https://github.com/home-assistant/home-assistant/pull/13996
[#14003]: https://github.com/home-assistant/home-assistant/pull/14003
[#14005]: https://github.com/home-assistant/home-assistant/pull/14005
[#14006]: https://github.com/home-assistant/home-assistant/pull/14006
[#14008]: https://github.com/home-assistant/home-assistant/pull/14008
[#14010]: https://github.com/home-assistant/home-assistant/pull/14010
[#14013]: https://github.com/home-assistant/home-assistant/pull/14013
[#14019]: https://github.com/home-assistant/home-assistant/pull/14019
[#14025]: https://github.com/home-assistant/home-assistant/pull/14025
[#14027]: https://github.com/home-assistant/home-assistant/pull/14027
[#14041]: https://github.com/home-assistant/home-assistant/pull/14041
[#14051]: https://github.com/home-assistant/home-assistant/pull/14051
[#14074]: https://github.com/home-assistant/home-assistant/pull/14074
[#14080]: https://github.com/home-assistant/home-assistant/pull/14080
[#14097]: https://github.com/home-assistant/home-assistant/pull/14097
[@B1tMaster]: https://github.com/B1tMaster
[@ChristianKuehnel]: https://github.com/ChristianKuehnel
[@Danielhiversen]: https://github.com/Danielhiversen
[@GotoCode]: https://github.com/GotoCode
[@Juggels]: https://github.com/Juggels
[@KJonline]: https://github.com/KJonline
[@Kane610]: https://github.com/Kane610
[@Kirchoff]: https://github.com/Kirchoff
[@Marco98]: https://github.com/Marco98
[@MisterWil]: https://github.com/MisterWil
[@NovapaX]: https://github.com/NovapaX
[@OttoWinter]: https://github.com/OttoWinter
[@Paxy]: https://github.com/Paxy
[@Shou]: https://github.com/Shou
[@TheCellMC]: https://github.com/TheCellMC
[@Yonsm]: https://github.com/Yonsm
[@aav7fl]: https://github.com/aav7fl
[@andersonshatch]: https://github.com/andersonshatch
[@armills]: https://github.com/armills
[@balloob]: https://github.com/balloob
[@cdce8p]: https://github.com/cdce8p
[@cgtobi]: https://github.com/cgtobi
[@citruz]: https://github.com/citruz
[@dangyuluo]: https://github.com/dangyuluo
[@danielperna84]: https://github.com/danielperna84
[@dersger]: https://github.com/dersger
[@dgomes]: https://github.com/dgomes
[@dlbroadfoot]: https://github.com/dlbroadfoot
[@escoand]: https://github.com/escoand
[@fabaff]: https://github.com/fabaff
[@geekofweek]: https://github.com/geekofweek
[@gerard33]: https://github.com/gerard33
[@hmn]: https://github.com/hmn
[@hthiery]: https://github.com/hthiery
[@karlkar]: https://github.com/karlkar
[@kellerza]: https://github.com/kellerza
[@koolsb]: https://github.com/koolsb
[@marthoc]: https://github.com/marthoc
[@meauxt]: https://github.com/meauxt
[@michaelkuty]: https://github.com/michaelkuty
[@mjg59]: https://github.com/mjg59
[@molobrakos]: https://github.com/molobrakos
[@nickw444]: https://github.com/nickw444
[@no2chem]: https://github.com/no2chem
[@pascalhahn]: https://github.com/pascalhahn
[@philk]: https://github.com/philk
[@pvizeli]: https://github.com/pvizeli
[@rcloran]: https://github.com/rcloran
[@reefab]: https://github.com/reefab
[@robmarkcole]: https://github.com/robmarkcole
[@rohankapoorcom]: https://github.com/rohankapoorcom
[@schmittx]: https://github.com/schmittx
[@shred86]: https://github.com/shred86
[@stephanerosi]: https://github.com/stephanerosi
[@swilson]: https://github.com/swilson
[@syssi]: https://github.com/syssi
[@thelittlefireman]: https://github.com/thelittlefireman
[@thrawnarn]: https://github.com/thrawnarn
[@titilambert]: https://github.com/titilambert
[@tobygray]: https://github.com/tobygray
[@tschmidty69]: https://github.com/tschmidty69
[@veleek]: https://github.com/veleek
[@viorels]: https://github.com/viorels
[@wiuwiu]: https://github.com/wiuwiu
[@xTCx]: https://github.com/xTCx
[abode docs]: /components/abode/
[alexa docs]: /components/alexa/
[binary_sensor.bmw_connected_drive docs]: /components/binary_sensor.bmw_connected_drive/
[binary_sensor.hive docs]: /components/binary_sensor.hive/
[binary_sensor.maxcube docs]: /components/binary_sensor.maxcube/
[binary_sensor.qwikswitch docs]: /components/binary_sensor.qwikswitch/
[bmw_connected_drive docs]: /components/bmw_connected_drive/
[calendar.google docs]: /components/calendar.google/
[calendar.todoist docs]: /components/calendar.todoist/
[climate.fritzbox docs]: /components/climate.fritzbox/
[climate.hive docs]: /components/climate.hive/
[climate.honeywell docs]: /components/climate.honeywell/
[climate.maxcube docs]: /components/climate.maxcube/
[climate.modbus docs]: /components/climate.modbus/
[config docs]: /components/config/
[cover.opengarage docs]: /components/cover.opengarage/
[cover.tahoma docs]: /components/cover.tahoma/
[deconz docs]: /components/deconz/
[device_tracker docs]: /components/device_tracker/
[ecobee docs]: /components/ecobee/
[eufy docs]: /components/eufy/
[fan.xiaomi_miio docs]: /components/fan.xiaomi_miio/
[fritzbox docs]: /components/fritzbox/
[google docs]: /components/google/
[hdmi_cec docs]: /components/hdmi_cec/
[hive docs]: /components/hive/
[homekit docs]: /components/homekit/
[homekit_controller docs]: /components/homekit_controller/
[homematic docs]: /components/homematic/
[hue docs]: /components/hue/
[ihc docs]: /components/ihc/
[light docs]: /components/light/
[light.abode docs]: /components/light.abode/
[light.aurora docs]: /components/light.aurora/
[light.eufy docs]: /components/light.eufy/
[light.hive docs]: /components/light.hive/
[light.homekit_controller docs]: /components/light.homekit_controller/
[light.hue docs]: /components/light.hue/
[light.yeelight docs]: /components/light.yeelight/
[lock.bmw_connected_drive docs]: /components/lock.bmw_connected_drive/
[lutron_caseta docs]: /components/lutron_caseta/
[maxcube docs]: /components/maxcube/
[media_extractor docs]: /components/media_extractor/
[media_player.blackbird docs]: /components/media_player.blackbird/
[media_player.bluesound docs]: /components/media_player.bluesound/
[media_player.cast docs]: /components/media_player.cast/
[media_player.kodi docs]: /components/media_player.kodi/
[media_player.mediaroom docs]: /components/media_player.mediaroom/
[media_player.mpd docs]: /components/media_player.mpd/
[media_player.onkyo docs]: /components/media_player.onkyo/
[media_player.squeezebox docs]: /components/media_player.squeezebox/
[media_player.webostv docs]: /components/media_player.webostv/
[notify docs]: /components/notify/
[notify.facebook docs]: /components/notify.facebook/
[prometheus docs]: /components/prometheus/
[qwikswitch docs]: /components/qwikswitch/
[sensor docs]: /components/sensor/
[sensor.alpha_vantage docs]: /components/sensor.alpha_vantage/
[sensor.bmw_connected_drive docs]: /components/sensor.bmw_connected_drive/
[sensor.broadlink docs]: /components/sensor.broadlink/
[sensor.deconz docs]: /components/sensor.deconz/
[sensor.ebox docs]: /components/sensor.ebox/
[sensor.ecobee docs]: /components/sensor.ecobee/
[sensor.eddystone_temperature docs]: /components/sensor.eddystone_temperature/
[sensor.filter docs]: /components/sensor.filter/
[sensor.folder docs]: /components/sensor.folder/
[sensor.foobot docs]: /components/sensor.foobot/
[sensor.fritzbox_netmonitor docs]: /components/sensor.fritzbox_netmonitor/
[sensor.hive docs]: /components/sensor.hive/
[sensor.hydroquebec docs]: /components/sensor.hydroquebec/
[sensor.linux_battery docs]: /components/sensor.linux_battery/
[sensor.miflora docs]: /components/sensor.miflora/
[sensor.mqtt docs]: /components/sensor.mqtt/
[sensor.nest docs]: /components/sensor.nest/
[sensor.nut docs]: /components/sensor.nut/
[sensor.qwikswitch docs]: /components/sensor.qwikswitch/
[sensor.sht31 docs]: /components/sensor.sht31/
[sensor.sigfox docs]: /components/sensor.sigfox/
[sensor.smappee docs]: /components/sensor.smappee/
[sensor.sql docs]: /components/sensor.sql/
[sensor.tibber docs]: /components/sensor.tibber/
[sensor.trafikverket_weatherstation docs]: /components/sensor.trafikverket_weatherstation/
[sensor.upnp docs]: /components/sensor.upnp/
[sensor.uscis docs]: /components/sensor.uscis/
[skybell docs]: /components/skybell/
[smappee docs]: /components/smappee/
[snips docs]: /components/snips/
[switch.broadlink docs]: /components/switch.broadlink/
[switch.edimax docs]: /components/switch.edimax/
[switch.eufy docs]: /components/switch.eufy/
[switch.fritzbox docs]: /components/switch.fritzbox/
[switch.hive docs]: /components/switch.hive/
[switch.vesync docs]: /components/switch.vesync/
[tts docs]: /components/tts/
[upnp docs]: /components/upnp/
[vacuum docs]: /components/vacuum/
[vacuum.dyson docs]: /components/vacuum.dyson/
[vacuum.neato docs]: /components/vacuum.neato/
[vacuum.roomba docs]: /components/vacuum.roomba/
[vacuum.xiaomi_miio docs]: /components/vacuum.xiaomi_miio/
[weather.yweather docs]: /components/weather.yweather/
[zha docs]: /components/zha/

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB