Merge branch 'rc' into current

This commit is contained in:
Paulus Schoutsen 2019-01-09 16:55:14 -08:00
commit aa16f4e5dc
106 changed files with 3189 additions and 352 deletions

View File

@ -141,9 +141,9 @@ social:
# Home Assistant release details
current_major_version: 0
current_minor_version: 84
current_patch_version: 6
date_released: 2018-12-21
current_minor_version: 85
current_patch_version: 0
date_released: 2019-01-09
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.

View File

@ -0,0 +1,27 @@
---
layout: page
title: "Air Pollutants"
description: "Instructions on how to air pollutants sensors with Home Assistant"
date: 2018-11-25 08:00
sidebar: true
comments: false
sharing: true
footer: true
---
The `air_pollutants` gather information about the air quality and pollution details.
The platforms cover the following levels (if they are available):
- The particulate matter 0.1 (<= 0.1 μm) level.
- The particulate matter 2.5 (<= 2.5 μm) level.
- The particulate matter 10 (<= 10 μm) level.
- The Air Quality Index (AQI).
- The O3 (ozone) level.
- The CO (carbon monoxide) level.
- The CO2 (carbon dioxide) level.
- The SO2 (sulphur dioxide) level.
- The N2O (nitrogen oxide) level.
- The NO (nitrogen monoxide) level.
- The NO2 (nitrogen dioxide) level.

View File

@ -0,0 +1,44 @@
---
layout: page
title: "OpenSenseMap"
description: "Instructions on how to setup openSenseMap sensors in Home Assistant."
date: 2018-12-15 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: opensensemap.png
ha_category: Health
ha_release: 0.85
ha_iot_class: "Cloud Polling"
---
The `opensensemap` air pollutants platform will query the open data API of [openSenseMap.org](https://opensensemap.org/) to monitor air quality sensor station.
## {% linkable_title Setup %}
To get the ID of a station you need to select it on the [openSense map](https://opensensemap.org/) and find it in the addressbar of your browser. It's the last part of the URL, e.g., `5b450e565dc1ec001bf7cd1d` [https://opensensemap.org/explore/5b450e565dc1ec001bf7cd1d](https://opensensemap.org/explore/5b450e565dc1ec001bf7cd1d).
## {% linkable_title Manual Configuration %}
To enable this platform, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
air_pollutants:
- platform: opensensemap
station_id: STATION_ID
```
{% configuration %}
station_id:
description: The ID of the station to monitor.
required: true
type: string
name:
description: Name of the sensor to use in the frontend.
required: false
default: Station name
type: string
{% endconfiguration %}

View File

@ -46,6 +46,10 @@ name:
description: Name of device in Home Assistant.
required: false
type: string
code:
description: Specifies a code to enable or disable the alarm in the frontend.
required: false
type: integer
{% endconfiguration %}
This platform has also been confirmed to work with the alarm system brands Meian and Emooluxr.

View File

@ -43,6 +43,10 @@ name:
required: false
type: string
default: MQTT Alarm
unique_id:
description: An ID that uniquely identifies this alarm panel. If two alarm panels have the same unique ID, Home Assistant will raise an exception.
required: false
type: string
state_topic:
description: The MQTT topic subscribed to receive state updates.
required: true
@ -89,4 +93,33 @@ payload_not_available:
required: false
type: string
default: offline
device:
description: 'Information about the device this alarm panel is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.'
required: false
type: map
keys:
identifiers:
description: 'A list of IDs that uniquely identify the device. For example a serial number.'
required: false
type: list, string
connections:
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
required: false
type: list
manufacturer:
description: 'The manufacturer of the device.'
required: false
type: string
model:
description: 'The model of the device.'
required: false
type: string
name:
description: 'The name of the device.'
required: false
type: string
sw_version:
description: 'The firmware version of the device.'
required: false
type: string
{% endconfiguration %}

View File

@ -0,0 +1,19 @@
---
layout: page
title: "Ness Alarm Control Panel"
description: "Instructions on how to setup the Ness alarm control panel within Home Assistant."
date: 2018-11-25 18:00
sidebar: true
comments: false
sharing: true
footer: true
logo: ness.png
ha_category: Alarm
ha_release: 0.85
ha_iot_class: "Local Push"
---
The `ness_alarm` alarm control panel platform allows you to control your [Ness](http://nesscorporation.com/) D8x and D16x alarms.
The alarm control panel is automatically added by configuring the [Ness alarm](/components/ness_alarm/) component.

View File

@ -99,6 +99,10 @@ zones:
description: The RF serial-number associated with RF zones. Providing this field allows Home Assistant to associate raw sensor data to a given zone, allowing direct monitoring of the state, battery, and supervision status.
required: false
type: string
loop:
description: The loop number associated with RF zones (1, 2, 3, or 4). Providing this field allows Home Assistant to read open/closed status from the raw sensor data in addition to from the panel display, meaning it can correctly show a bypassed RF zone as open or closed when the alarm is armed. (This is an alternative to relayaddr/relaychan below for RF zones.)
required: false
type: integer
relayaddr:
description: "Address of the relay expander board to associate with the zone. (ex: 12, 13, 14, or 15). Typically used in cases where a panel will not send bypassed zones such as motion during an armed home state, the Vista 20P is an example of this. Alarmdecoder can emulate a zone expander board and the panel can be programmed to push zone events to this virtual expander. This allows the bypassed zone binary sensors to be utilized. One example is using bypassed motion sensors at night for motion-based automated lights while the system is armed with the motion sensor bypassed."
required: inclusive

View File

@ -358,6 +358,9 @@ the integration work easier. Example configuration:
```yaml
alexa:
smart_home:
endpoint: https://api.amazonalexa.com/v3/events
client_id: !secret alexa_client_id
client_secret: !secret alexa_client_secret
filter:
include_entities:
- light.kitchen
@ -373,13 +376,17 @@ alexa:
switch.stairs:
display_categories: LIGHT
```
This exposes an HTTP POST endpoint at `http://your_hass_ip/api/alexa/smart_home`
which accepts and returns messages conforming to the
[Smart Home v3 payload](https://developer.amazon.com/docs/smarthome/smart-home-skill-api-message-reference.html).
You must then create an Amazon developer account with an Alexa skill and Lambda
function to integrate this endpoint. See
[Haaska](https://github.com/mike-grant/haaska) for an example.
The `endpoint`, `client_id` and `client_secret` are optional, and are only required if you want to enable Alexa's proactive mode. Please note the following if you want to enable proactive mode:
- There are different endpoint urls, depending on the region of your skill. Please check the available endpoints at https://developer.amazon.com/docs/smarthome/send-events-to-the-alexa-event-gateway.html#endpoints
- The `client_id` and `client_secret` are not the ones used by the skill that have been set up using "Login with Amazon" (in the Alexa Developer Console: Build > Account Linking), but rather from the "Alexa Skill Messaging" (in the Alexa Developer Console: Build > Permissions > Alexa Skill Messaging). To get them, you need to enable the "Send Alexa Events" permission.
- If the "Send Alexa Events" permission was not enabled previously, you need to unlink and relink the skill using the Alexa App, or else Home Assistant will show the following error: "Token invalid and no refresh token available."
[amazon-dev-console]: https://developer.amazon.com
[flash-briefing-api]: https://developer.amazon.com/alexa-skills-kit/flash-briefing

View File

@ -68,6 +68,10 @@ payload_not_available:
required: false
type: string
default: offline
json_attributes_topic:
description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes.
reqired: false
type: string
qos:
description: The maximum QoS level to be used when receiving messages.
required: false
@ -82,7 +86,7 @@ device_class:
required: false
type: string
value_template:
description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload.
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload. Available variables: `entity_id`."
required: false
type: string
force_update:
@ -159,13 +163,24 @@ binary_sensor:
```
{% endraw %}
### {% linkable_title Toggle the binary sensor each time a message is received on state_topic %}
{% raw %}
```yaml
# Example configuration.yaml entry
binary_sensor:
- platform: mqtt
state_topic: "lab_button/cmnd/POWER"
value_template: "{%if is_state(entity_id,\"on\")-%}OFF{%-else-%}ON{%-endif%}"
```
{% endraw %}
### {% linkable_title Get the state of a device with ESPEasy %}
Assuming that you have flashed your ESP8266 unit with [ESPEasy](https://github.com/letscontrolit/ESPEasy). Under "Config" is a name ("Unit Name:") set for your device (here it's "bathroom"). A configuration for a "Controller" for MQTT with the protocol "OpenHAB MQTT" is present and the entries ("Controller Subscribe:" and "Controller Publish:") are adjusted to match your needs. In this example, the topics are prefixed with "home". Also, add a "Switch Input" in the "Devices" tap with the name "switch" and "button" as value.
As soon as the unit is online, you will get the state of the attached button.
```bash
```
home/bathroom/status Connected
...
home/bathroom/switch/button 1
@ -182,4 +197,7 @@ binary_sensor:
payload_on: "1"
payload_off: "0"
```
<<<<<<< HEAD
=======
>>>>>>> current

View File

@ -0,0 +1,18 @@
---
layout: page
title: "Ness Alarm Binary Sensor"
description: "Instructions on how to setup the Ness alarm zones within Home Assistant."
date: 2018-11-25 18:00
sidebar: true
comments: false
sharing: true
footer: true
logo: ness.png
ha_category: Binary Sensor
ha_release: 0.85
ha_iot_class: "Local Push"
---
The `ness_alarm` binary sensor allows you to monitor your [Ness](http://nesscorporation.com/) D8x and D16x alarm zones.
Zone binary sensors are automatically added by configuring the [Ness alarm](/components/ness_alarm/) component.

View File

@ -13,8 +13,6 @@ ha_iot_class: "Local Push"
ha_release: 0.14
---
The `wemo` platform allows you to integrate your Belkin WeMo Binary Sensor from within Home Assistant.
The `wemo` platform allows you to monitor your Belkin WeMo Binary Sensor from within Home Assistant.
They will be automatically discovered if the discovery component is enabled.
For more configuration information see the [WeMo component](/components/wemo/) documentation.
WeMo devices are automatically discovered if the `discovery` component is enabled. For more configuration information, see the [WeMo component](/components/wemo/) documentation.

View File

@ -32,6 +32,8 @@ The requirement is that you have setup the [`xiaomi aqara` component](/component
| Button (2nd gen) | sensor_switch.aq2, remote.b1acn01 | WXKG11LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `double` |
| Aqara Wireless Switch (Single) | 86sw1 | WXKG03LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single` |
| Aqara Wireless Switch (Double) | 86sw2 | WXKG02LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `both` |
| Aqara Wireless Switch (Single) (2nd gen) | remote.b186acn01 | WXKG03LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `double`, `long` |
| Aqara Wireless Switch (Double) (2nd gen) | remote.b286acn01 | WXKG02LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `double`, `long`, `both`, `double_both`, `long_both` |
| Cube | cube | MFKZQ01LM | off (always) | `xiaomi_aqara.cube_action` | `action_type`, `action_value` (rotate) | `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swing`, `alert`, `free_fall`, `rotate` (degrees at action_value) |
| Vibration Sensor | vibration | DJT11LM | off (always) | `xiaomi_aqara.movement` | `movement_type` | `vibrate`, `tilt`, `free_fall` |

View File

@ -54,6 +54,11 @@ authentication:
required: false
type: string
default: basic
verify_ssl:
description: Validate the ssl certificate for this camera.
required: false
type: boolean
default: true
{% endconfiguration %}
## {% linkable_title Examples %}

View File

@ -24,3 +24,45 @@ Once you have enabled the [Skybell component](/components/skybell), add the foll
camera:
- platform: skybell
```
{% configuration %}
monitored_conditions:
description: The camera images to display. Default is `avatar`. The full list is `avatar`, `activity`.
required: false
type: list
avatar_name:
description: Name to append to the device name for the avatar image. Default is empty string.
required: false
type: string
activity_name:
description: Name to append to the device name for the last activity image. Default is empty string.
required: false
type: string
{% endconfiguration %}
## {% linkable_title Camera Types %}
There are two available camera types "Avatar", which is the default, displays the Skybell avatar image.
It is periodically updated with a fresh image. The other type is "Activity", which displays a snapshot from
the latest event (motion, bell, or on demand) captured by the camera. You may show either camera, or both, by
specifying its name under monitored_condtions. It's recommended, but not required, to set either avatar_name or activity_name
if you are showing both cameras so you can tell them apart. The name will be appended to the skybell device name.
```yaml
# Example configuration.yaml with both images
camera:
- platform: skybell
monitored_conditions:
- avatar
- activity
activity_name: "Last Activity"
```
```yaml
# Example configuration.yaml with just last activity image
camera:
- platform: skybell
monitored_conditions:
- activity
```

View File

@ -23,25 +23,4 @@ The `daikin` climate platform integrates Daikin air conditioning systems into Ho
Current temperature is displayed.
## {% linkable_title Configuration %}
To enable the platform, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
climate:
- platform: daikin
host: 10.0.0.1
```
{% configuration %}
host:
description: IP or hostname of the device.
required: true
type: string
name:
description: If the device has a name previously set by the user than that name will be used.
required: false
type: string
{% endconfiguration %}
For configuration instructions, see [the Daikin component](/components/daikin/).

View File

@ -47,24 +47,19 @@ climate:
operation_mode_comfort_address: '5/1/7'
```
If you want to overwrite the supported operation modes use:
`operation_mode_frost_protection_address` / `operation_mode_night_address` / `operation_mode_comfort_address` are not necessary if `operation_mode_address` is specified.
```yaml
# Example configuration.yaml entry
climate:
- platform: knx
name: HASS-Kitchen.Temperature
temperature_address: '5/1/1'
setpoint_shift_address: '5/1/2'
setpoint_shift_state_address: '5/1/3'
target_temperature_address: '5/1/4'
operation_mode_frost_protection_address: '5/1/5'
operation_mode_comfort_address: '5/1/7'
override_supported_operation_modes:
- "Night"
- "Standby"
- "Comfort"
```
If your device doesn't support setpoint_shift calculations (i.e. if you don't provide a `setpoint_shift_address` value) please set the `min_temp` and `max_temp`
attributes of the climate device to avoid issues with increasing the temperature in the frontend.
The following values are valid for the `operation_modes` attribute:
- Comfort (maps internally to STATE_HEAT within Home Assistant)
- Standby (maps internally to STATE_ECO within Home Assistant)
- Night (maps internally to STATE_IDLE within Home Assistant)
- Frost Protection (maps internally to STATE_MANUAL within Home Assistant)
- Fan only (maps internally to STATE_FAN_ONLY within Home Assistant)
- Dehumidification (maps internally to STATE_DRY within Home Assistant)
{% configuration %}
name:
@ -119,6 +114,14 @@ controller_status_state_address:
description: Explicit KNX address for reading HVAC controller status.
required: false
type: string
controller_mode_address:
description: KNX address for handling controller modes.
required: false
type: string
controller_mode_state_address:
description: Explicit KNX address for reading HVAC Control Mode.
required: false
type: string
operation_mode_frost_protection_address:
description: KNX address for switching on/off frost/heat protection mode.
required: false
@ -131,41 +134,24 @@ operation_mode_comfort_address:
description: KNX address for switching on/off comfort mode.
required: false
type: string
override_supported_operation_modes:
description: Defines the supported operation modes.
operation_modes:
description: Overrides the supported operation modes.
required: false
type: array
on_off_address:
description: KNX address for switching the device on/off.
description: KNX address for switching the climate device on/off.
required: false
type: string
on_off_state_address:
description: Explicit KNX address for reading the current on/off status.
description: KNX address for gathering the current state (on/off) of the climate device.
required: false
type: string
min_temp:
description: Override the minimum temperature.
required: false
type: float
max_temp:
description: Override the maximum temperature.
required: false
type: float
{% endconfiguration %}
`operation_mode_frost_protection_address` / `operation_mode_night_address` / `operation_mode_comfort_address` are not necessary if `operation_mode_address` is specified.
`override_supported_operation_modes` is an array that can contain any of the following values:
- Auto
- Comfort
- Standby
- Night
- Frost Protection
- Heat
- Morning Warmup
- Cool
- Night Purge
- Precool
- Off
- Test
- Emergency Heat
- Fan only
- Ice
- Dry
- NoDem
Also check [this](https://github.com/XKNX/xknx/blob/master/xknx/knx/dpt_hvac_mode.py#L13-L30) page for more information.

View File

@ -35,6 +35,10 @@ name:
required: false
type: string
default: MQTT HVAC
unique_id:
description: An ID that uniquely identifies this HVAC device. If two HVAC devices have the same unique ID, Home Assistant will raise an exception.
required: false
type: string
qos:
description: The maximum QoS level to be used when receiving and publishing messages.
required: false
@ -207,6 +211,35 @@ temp_step:
type: number
required: false
default: 1
device:
description: 'Information about the device this HVAC device is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.'
required: false
type: map
keys:
identifiers:
description: 'A list of IDs that uniquely identify the device. For example a serial number.'
required: false
type: list, string
connections:
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
required: false
type: list
manufacturer:
description: 'The manufacturer of the device.'
required: false
type: string
model:
description: 'The model of the device.'
required: false
type: string
name:
description: 'The name of the device.'
required: false
type: string
sw_version:
description: 'The firmware version of the device.'
required: false
type: string
{% endconfiguration %}
#### {% linkable_title Optimistic mode %}

View File

@ -13,14 +13,13 @@ ha_release: 0.59
ha_iot_class: "Local Polling"
---
The `daikin` component integrates Daikin air conditioning systems into Home Assistant.
## {% linkable_title Supported hardware %}
**Only** the european versions of Daikin ACs (models BRP069A41, 42, 43, 45).
**Only** the European versions of Daikin AC (models BRP069A41, 42, 43, 45).
The model BRP069A42 does not support setting of fan speed or fan swing mode.
Some models do not support setting of fan speed or fan swing mode.
Please note that some AC devices may report outside temperature only when they are turned on.
@ -33,9 +32,6 @@ To automatically add all your Daikin devices (ACs and associated sensors) into y
daikin:
hosts:
- 192.168.4.161
monitored_conditions:
- inside_temperature
- outside_temperature
```
{% configuration %}
@ -44,15 +40,4 @@ hosts:
required: false
default: All discovered hosts
type: list
monitored_conditions:
description: List of items you want to monitor for each device.
required: false
default: All conditions
type: list
keys:
inside_temperature:
description: The current temperature measured inside the house.
outside_temperature:
description: The current temperature measured outside the house.
{% endconfiguration %}

View File

@ -17,6 +17,7 @@ The `demo` platform allows you to use components which are providing a demo of t
Available demo platforms:
- [Air Pollutants]((/components/air_pollutants/) (`air_pollutants`)
- [Alarm control panel](/components/alarm_control_panel/) (`alarm_control_panel`)
- [Binary sensor](/components/binary_sensor/) (`binary_sensor`)
- [Camera](/components/camera/) (`camera`)

View File

@ -25,10 +25,15 @@ device_tracker:
{% configuration %}
request_rssi:
description: Performs a request for the "Received signal strength indication" (RSSI) of each tracked device
description: Performs a request for the "Received signal strength indication" (RSSI) of each tracked device.
required: false
type: boolean
default: False
default: false
device_id:
description: The ID of the bluetooth adapter to be used by the tracker, e.g., use `0` for `hci0`, `1` for `hci1`, and so on.
required: false
type: integer
default: "`-1` (The first available bluetooth adapter)"
{% endconfiguration %}
In some cases it can be that your device is not discovered. In that case let your phone scan for Bluetooth devices while you restart Home Assistant. Just hit `Scan` on your phone all the time until Home Assistant is fully restarted and the device should appear in `known_devices.yaml`.

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Freebox"
description: "Instructions on how to integrate Freebox routers into Home Assistant."
title: "Freebox Device Tracker"
description: "Instructions on how to track devices connected to a Freebox router in Home Assistant."
date: 2018-05-16 23:00
sidebar: true
comments: false
@ -14,42 +14,10 @@ ha_iot_class: "Local Polling"
---
The `freebox` platform offers presence detection by keeping track of the
This platform offers presence detection by keeping track of the
devices connected to a [Freebox](http://www.free.fr/) router.
### {% linkable_title Configuration %}
If you have enabled the [discovery component](/components/discovery/),
your Freebox should be detected automatically. Otherwise, you can set it
up manually in your `configuration.yaml` file:
```yaml
device_tracker:
- platform: freebox
host: foobar.fbox.fr
port: 1234
```
{% configuration %}
host:
description: The url of the Freebox.
required: true
type: string
port:
description: The https port the Freebox is listening on.
required: true
type: string
{% endconfiguration %}
You can find out your Freebox host and port by opening
[this address](http://mafreebox.freebox.fr/api_version) in your browser. The
returned json should contain an api_domain (`host`) and a https_port (`port`).
### {% linkable_title Initial setup %}
The first time Home Assistant will connect to your Freebox, you will need to
authorize it by pressing the right button on the facade of the Freebox when
prompted to do so.
This requires you to have set up the [Freebox component](/components/freebox/)
### {% linkable_title Notes %}

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Mikrotik"
description: "Instructions on how to integrate Mikrotik/Routerboard based routers into Home Assistant."
title: "MikroTik"
description: "Instructions on how to integrate MikroTik/RouterOS based devices into Home Assistant."
date: 2017-04-28 16:03
sidebar: true
comments: false
@ -12,10 +12,11 @@ ha_category: Presence Detection
ha_release: 0.44
---
The `mikrotik` platform offers presence detection by looking at connected devices to a [MikroTik RouterOS](http://mikrotik.com) based router.
The `mikrotik` platform offers presence detection by looking at connected devices to a [Mikrotik Routerboard](http://routerboard.com) based router.
## {% linkable_title Configuring `mikrotik` device tracker %}
You need to enable the RouterOS API to use this platform.
You have to enable accessing the RouterOS API on your router to use this platform.
Terminal:
@ -26,41 +27,42 @@ set api disabled=no port=8728
Web Frontend:
Go to **IP** -> **Services** -> **API** and enable it.
Go to **IP** -> **Services** -> **api** and enable it.
Make sure that port 8728 or the port you choose is accessible from your network.
To use a Mikrotik router in your installation, add the following to your `configuration.yaml` file:
To use a MikroTik router in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
device_tracker:
- platform: mikrotik
host: IP_ADDRESS
username: ADMIN_USERNAME
password: ADMIN_PASSWORD
username: ROUTEROS_USERNAME
password: ROUTEROS_PASSWORD
```
{% configuration %}
host:
description: The IP address of your router.
description: The IP address of your MikroTik device.
required: true
type: string
username:
description: The username of an user with administrative privileges.
description: The username of a user on the MikroTik device.
required: true
type: string
password:
description: The password for your given admin account.
description: The password of the given user account on the MikroTik device.
required: true
type: string
port:
description: Mikrotik API port.
description: RouterOS API port.
required: false
default: 8728 (or 8729 if ssl is true)
default: 8728 (or 8729 if SSL is enabled)
type: integer
ssl:
description: Use api_ssl service instead of api.
description: Use SSL to connect to the API.
required: false
default: false
type: boolean
@ -70,7 +72,9 @@ method:
type: string
{% endconfiguration %}
To use api_ssl service further configuration is required at RouterOS side. You have to upload or generate a certificate for api\-ssl service. Here is an example for a self signed certificate:
## {% linkable_title Use a certificate %}
To use SSL to connect to the API (via `api-ssl` instead of `api` service) further configuration is required at RouterOS side. You have to upload or generate a certificate and configure `api-ssl` service to use it. Here is an example of a self-signed certificate:
```bash
/certificate add common-name="Self signed demo certificate for API" days-valid=3650 name="Self signed demo certificate for API" key-usage=digital-signature,key-encipherment,tls-server,key-cert-sign,crl-sign
@ -78,9 +82,36 @@ To use api_ssl service further configuration is required at RouterOS side. You h
/ip service set api-ssl certificate="Self signed demo certificate for API"
/ip service enable api-ssl
```
If everything is working you can disable the pure api service:
Then add `ssl: true` to `mikrotik` device tracker entry in your `configuration.yaml` file.
If everything is working fine you can disable the pure `api` service in RouterOS:
```bash
/ip service disable api
```
See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked.
## {% linkable_title The user privileges in RouterOS %}
To use this device tracker you need restricted privileges only. To enhance the security of your MikroTik device create a "read only" user who is able to connect to API only:
```bash
/user group add name=homeassistant policy=read,api,!local,!telnet,!ssh,!ftp,!reboot,!write,!policy,!test,!winbox,!password,!web,!sniff,!sensitive on,!dude,!tikapp
/user add group=homeassistant name=homeassistant
/user set password="YOUR_PASSWORD" homeassistant
```
## {% linkable_title Using the additional configuration to the `mikrotik` device tracker entry in your `configuration.yaml` file: %}
```yaml
device_tracker:
- platform: mikrotik
host: 192.168.88.1
username: homeassistant
password: YOUR_PASSWORD
ssl: true
port: 8729
method: capsman
```
See the [device tracker component page](/components/device_tracker/) for instructions on how to configure the people to be tracked.

View File

@ -41,6 +41,7 @@ envisalink:
evl_version: 3
keepalive_interval: 60
zonedump_interval: 30
timeout: 10
panic_type: Police
zones:
11:
@ -72,8 +73,8 @@ password:
required: true
type: string
code:
description: Your alarm panel's code, for authenticating user input during arm/disarm.
required: true
description: Your alarm panel's code, for authenticating user input during arm/disarm. If you do not provide this value, the component will prompt the user to enter the code at runtime.
required: false
type: string
port:
description: Which network port to connect with.
@ -95,6 +96,11 @@ zonedump_interval:
required: false
default: 30
type: integer
timeout:
description: A network connectivity timeout when communicating with the envisalink. If connection is not obtained by this time (in seconds) the component will stop trying to connect.
required: false
default: 10
type: integer
panic_type:
description: "Both DSC and Honeywell boards support a panic alarm. This is used when the alarm_trigger service is called in Home Assistant. This determines which type of panic alarm to raise. Valid values are: Police, Fire, Ambulance."
required: false
@ -134,3 +140,4 @@ The following services are supported by Envisalink and can be used to script or
- **alarm_arm_away**: Arms the alarm in standard away mode.
- **alarm_trigger**: Trigger an alarm on the Envisalink connected alarm system. For example, a newer zwave/zigbee sensor can now be integrated into a legacy alarm system using a Home Assistant automation.
- **envisalink_alarm_keypress**: Sends a string of up to 6 characters to the alarm. *DSC alarms only*
- **invoke_custom_function**: Invokes a custom PGM function. *DSC alarms only*

View File

@ -0,0 +1,33 @@
---
layout: page
title: "ESPHome"
description: "Support for ESPHome devices using the native ESPHome API."
date: 2018-12-16 14:20
sidebar: true
comments: false
sharing: true
footer: true
logo: esphome.png
ha_category: DIY
ha_release: 0.85
ha_iot_class: "Local Push"
redirect_from:
- /components/binary_sensor.esphome/
- /components/cover.esphome/
- /components/fan.esphome/
- /components/light.esphome/
- /components/switch.esphome/
---
This component allows you to connect your [ESPHome](https://esphomelib.com/esphomeyaml/index.html) devices directly into Home Assistant with the [native ESPHome API](https://esphomelib.com/esphomeyaml/components/api.html).
## {% linkable_title Setup the component via the integrations screen %}
Menu: *Configuration* -> *Integrations*
Press on **ESPHome** and configure the integration:
* Enter the address and port of your ESP. For example if the node is called `livingroom`, the address would be `livingroom.local` and the port number `6053` (default).
* Then Home Assistant will try to connect to the device. If you have a password set Home Assistant will additionally ask you for the password.
After that, all the entities you have configured on your ESPHome node will automatically show up in Home Assistant.

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Belkin WeMo (Holmes) Smart Humidifier"
description: "Instructions how to integrate Belkin WeMo humidifiers into Home Assistant."
description: "Instructions on how to integrate Belkin WeMo humidifiers into Home Assistant."
date: 2018-10-29 19:58
sidebar: true
comments: false
@ -9,38 +9,37 @@ sharing: true
footer: true
logo: belkin_wemo.png
ha_category: Fan
ha_iot_class: "Local Polling"
ha_iot_class: "Local Push"
ha_release: 0.82
---
The `wemo` platform allows you to control your [Belkin WeMo](http://www.belkin.com/us/p/P-F7C027/) humidifiers from within Home Assistant. This includes support for the [Holmes Smart Humidifier](https://www.holmesproducts.com/wemo-humidifier.html).
They will be automatically discovered if the discovery component is enabled.
For more configuration information, see the [WeMo component](/components/wemo/) documentation.
WeMo devices are automatically discovered if the `discovery` component is enabled. For more configuration information, see the [WeMo component](/components/wemo/) documentation.
### {% linkable_title Attributes %}
There are several attributes which can be used for automations and templates.
There are several attributes which can be used for automations and templates:
| Attribute | Description |
| --------- | ----------- |
| `current_humidity` | An integer that indicates the current relative humidity percentage of the room, as determined by the device's onboard humidity sensor.
| `target_humidity` | An integer that indicates the desired relative humidity percentage (this is constrained to the humidity settings of the device, which are 45, 50, 55, 60, and 100).
| `fan_mode` | String that indicates the current fan speed setting, as reported by the WeMo humidifier.
| `water level` | String that indicates whether the water level is Good, Low, or Empty.
| `filter_life` | The used life of the filter (as a percentage).
| `filter_expired` | A boolean that indicates whether the filter has expired and needs to be replaced.
| `filter_life` | The used life of the filter (as a percentage).
| `target_humidity` | An integer that indicates the desired relative humidity percentage (this is constrained to the humidity settings of the device, which are 45, 50, 55, 60, and 100).
| `water level` | String that indicates whether the water level is Good, Low, or Empty.
### {% linkable_title Services %}
There are several services which can be used for automations and control of the humidifier.
There are several services which can be used for automations and control of the humidifier:
| Service | Description |
| --------- | ----------- |
| `set_speed` | Calling this service sets the fan speed (entity_id and speed are required parameters, and speed must be one of the following: off, low, medium, or high). When selecting low for the speed, this will map to the WeMo humidifier speed of minimum. When selecting high for the speed, this will map to the WeMo humidifier speed of maximum. The WeMo humidifier speeds of low and high are unused due to constraints on which fan speeds Home Assistant supports.
| `wemo_set_humidity` | Calling this service will set the desired relative humidity setting on the device (entity_id is an optional list of entities to set humidity on (omitting this list will set humidity on all WeMo Humidifiers), and target_humidity is a required float value between 0 and 100 (this value will be rounded down and mapped to one of the valid desired humidity settings of 45, 50, 55, 60, or 100 that are supported by the WeMo humidifier)).
| `turn_on` | Calling this service will turn the humidifier on and set the speed to the last used speed (defaults to medium, entity_id is required).
| `turn_off` | Calling this service will turn the humidifier off (entity_id is required).
| `toggle` | Calling this service will toggle the humidifier between on and off states.
| `turn_off` | Calling this service will turn the humidifier off (entity_id is required).
| `turn_on` | Calling this service will turn the humidifier on and set the speed to the last used speed (defaults to medium, entity_id is required).
| `wemo_set_humidity` | Calling this service will set the desired relative humidity setting on the device (entity_id is a required list of 1 or more entities to set humidity on, and target_humidity is a required float value between 0 and 100 (this value will be rounded down and mapped to one of the valid desired humidity settings of 45, 50, 55, 60, or 100 that are supported by the WeMo humidifier)).
| `wemo_reset_filter_life` | Calling this service will reset the humdifier's filter life back to 100% (entity_id is a required list of 1 or more entities to reset the filter life on). Call this service when you change the filter on your humidifier.

View File

@ -17,7 +17,7 @@ redirect_from:
The [Fibaro](http://fibaro.com) hub is a controller mainly connecting to Z-Wave devices.
Switches, lights (including Dimmers), locks, sensors, binary sensors and covers are supported and will be automatically added when Home Assistant connects to your Fibaro controller.
Binary sensors, switches, lights (including Dimmers), locks, sensors and covers are supported and will be automatically added when Home Assistant connects to your Fibaro controller.
## {% linkable_title Configuration %}
@ -56,4 +56,4 @@ plugins:
### {% linkable_title Using Z-Wave devices in automation %}
If you want to use a Z-Wave device from the Fibaro controller in Home Assistant automation, you'll need the entity id. In the Home Assistant UI you'll find all entities listed under the <img src='/images/screenshots/developer-tool-states-icon.png' alt='service developer tool icon' class="no-shadow" height="38" /> icon of the Developer Tools section. Look for entities that contain 'Fibaro Device Id' in their attributes, and you'll find the entity id on the left.
If you want to use a Z-Wave device from the Fibaro controller in Home Assistant automation, you'll need the entity id. In the Home Assistant UI you'll find all entities listed under the <img src='/images/screenshots/developer-tool-states-icon.png' alt='service developer tool icon' class="no-shadow" height="38" /> icon of the Developer Tools section. Look for entities that contain 'fibaro_id' in their attributes, and you'll find the entity id on the left.

View File

@ -0,0 +1,65 @@
---
layout: page
title: "Freebox"
description: "Instructions on how to integrate Freebox routers into Home Assistant."
date: 2018-11-15 20:00
sidebar: true
comments: false
sharing: true
footer: true
logo: freebox.svg
ha_category: Network
ha_release: "0.85"
ha_iot_class: "Local Polling"
---
The `freebox` component allows you to observe and control [Freebox router](http://www.free.fr/).
The integration provides:
* a sensor with traffic metrics
* a device tracker for connected devices
### {% linkable_title Configuration %}
If you have enabled the [discovery component](/components/discovery/),
your Freebox should be detected automatically. Otherwise, you can set it
up manually in your `configuration.yaml` file:
```yaml
freebox:
host: foobar.fbxos.fr
port: 1234
```
{% configuration %}
host:
description: The url of the Freebox.
required: true
type: string
port:
description: The https port the Freebox is listening on.
required: true
type: string
{% endconfiguration %}
You can find out your Freebox host and port by opening
[this address](http://mafreebox.freebox.fr/api_version) in your browser. The
returned json should contain an api_domain (`host`) and a https_port (`port`).
### {% linkable_title Initial setup %}
<p class='note warning'>
You must have set a password for your Freebox router web administration page and enabled the option "Permettre les nouvelles demandes d'associations".
</p>
The first time Home Assistant will connect to your Freebox, you will need to
authorize it by pressing the right arrow on the facade of the Freebox when
prompted to do so.
### {% linkable_title Supported routers %}
Only the routers with Freebox OS are supported:
* Freebox V6 also known as Freebox Revolution
* Freebox mini 4k

View File

@ -0,0 +1,88 @@
---
layout: page
title: "Homeworks Hub"
description: "How to use Lutron Homeworks Series 4 & 8 with Home Assistant."
date: 2018-10-05 23:00
sidebar: true
comments: false
sharing: true
footer: true
logo: lutron.png
ha_category: Hub
featured: False
ha_release: 0.85
ha_iot_class: "Local Push"
redirect_from:
- /components/binary_sensor.homeworks/
---
[Lutron](http://www.lutron.com/) is an American lighting control company. The Lutron Homeworks Series 4 & 8 systems are relatively old (~2003), and use RS-232 connections to communicate with home automation systems. The `homeworks` component in Home Assistant is responsible for communicating with the main controller for these systems. Communication is through an ethernet to serial converter (NPort, for example).
Only a subset of the Homeworks system is supported - lights and keypads.
Lutron has created many systems over the years, each with their own unique interfacing protocol. There are three Homeworks systems - QS, Series 4 & 8, and original. This platform is only for Series 4 & 8. There is another component [lutron](/components/lutron/) which handles Lutron RadioRA 2 systems.
Homeworks keypad buttons are momentary switches. The button is pressed and released, meaning that there is no "state". Buttons generate `homeworks_button_press` and `homeworks_button_release` events. These events contain the "id", "name", and "button" of the button that was pressed. "id" is derived from "name", and "button" is the number of the button on the keypad (starting at 1).
## {% linkable_title Configuration %}
The protocol for automatically extracting device information from the controller isn't documented, so the `homeworks` component must be configured manually. To use Lutron Homeworks devices in your installation, add the following to your `configuration.yaml` file:
``` yaml
# Example configuration.yaml entry
homeworks:
host: IP_ADDRESS
port: 4001
dimmers:
- addr: "[02:08:01:01]"
name: "Foyer Sconces"
- addr: "[02:08:01:02]"
name: "Foyer Downlights"
rate: 2
keypads:
- addr: "[02:08:02:01]"
name: "Foyer Keypad"
```
{% configuration %}
host:
description: The IP address of the ethernet to serial adapter. It is assumed that the adaptor has been preconfigured.
required: true
type: string
port:
description: The port of the ethernet to serial adapter.
required: true
type: port
dimmers:
description: List of dimmers.
required: false
type: list
keys:
addr:
description: The unique address of the dimmer on the controller. The quotes, brackets, and number formatting must be of the form `"[##:##:##:##]"`.
required: true
type: string
name:
description: The name of the sensor will be the title of the button +`"_"` + the name of the keypad/
required: true
type: string
rate:
description: The amount of time (in seconds) for the light to transition to a new brightness level.
required: false
type: float
default: 1
keypads:
description: List of keypads.
required: false
type: list
keys:
addr:
description: The unique address of the keypad on the controller. The quotes, brackets, and number formatting must be of the form `"[##:##:##:##]"`.
required: true
type: string
name:
description: The name of the keypad.
required: true
type: string
{% endconfiguration %}

View File

@ -0,0 +1,47 @@
---
layout: page
title: "IDTECK Prox Card Reader"
description: "How to use IDTECK proximity card readers."
date: 2018-11-14 13:00
sidebar: true
comments: false
sharing: true
footer: true
logo: idteck.jpg
ha_category: Other
featured: false
ha_release: 0.85
ha_iot_class: "Local Push"
---
[IDTECK](http://www.idteck.com) makes ID systems used to control access and identify users. This component works with [Proximity Readers](http://www.idteck.com/en/products/proximity-reader-__-card-%26-tag-__125khz) (RFID card readers). The device is connected to Home Assistant through a serial to ethernet converter (NPort).
An `idteck_prox_keycard` event is fired whenever a card or key sequence has been entered. The event contains 'card' - the card/key sequence, and the 'name' of the card reader. Checking 'card' against known card numbers can be used as the basis of an entry control system, or as part of a check-in/check-out system.
## {% linkable_title Configuration %}
``` yaml
# Example configuration.yaml entry
idteck_prox:
- host: host1.domain.com
port: 4001
name: "Lower Door"
- host: host2.domain.com
port: 4001
name: "Upper Door"
```
{% configuration %}
host:
description: The hostname or IP address of the ethernet to serial adapter that is connected to the proximity reader. It is assumed that the adapter has been preconfigured.
required: true
type: string
port:
description: The port of the ethernet to serial adapter
required: true
type: port
name:
description: The name of the prox card reader
required: true
type: string
{% endconfiguration %}

View File

@ -0,0 +1,157 @@
---
layout: page
title: "LCN"
description: "Instructions on how to integrate LCN components with Home Assistant."
date: 2018-11-01 08:00
sidebar: true
comments: false
sharing: true
footer: true
logo: lcn.png
ha_category: Hub
ha_release: 0.85
ha_iot_class: "Local Push"
---
The `lcn` integration for Home Assistant allows you to connect to [LCN](http://www.lcn.eu) hardware devices.
The component requires one unused license of the coupling software LCN-PCHK (version >2.8) and a LCN hardware coupler. Alternatively a LCN-PKE coupler can be used which offers two PCHK licenses.
With this setup sending and receiving commands to and from LCN modules is possible.
There is currently support for the following device types within Home Assistant:
- [Light](/components/light.lcn)
## {% linkable_title Configuration %}
To use your LCN system in your installation, add the following lines to your `configuration.yaml` file.
You have to specify at least one ip/port with login credentials for a PCHK host.
Consider to store your credentials in a [secrets.yaml](/docs/configuration/secrets).
```yaml
lcn:
connections:
- name: myhome
host: 192.168.2.41
port: 4114
username: lcn
password: lcn
lights:
- name: Bedroom light
address: myhome.s0.m7
output: output1
dimmable: true
transition: 5
```
{% configuration %}
connections:
description: List of your connections
required: true
type: map
keys:
host:
description: IP address of the LCN-PCHK host.
required: true
type: string
port:
description: Port of the LCN-PCHK host.
required: true
type: integer
username:
description: Login username for the LCN-PCHK host.
required: true
type: string
password:
description: Login password for the LCN-PCHK host.
required: true
type: string
name:
description: Optional connection identifier. If omited, the connections will be named consecutively as _pchk_, _pchk1_, _pchk2_, ...
required: false
default: pchk
type: string
sk_num_tries:
description: Segment coupler scans. Increase this number if you have at least one segment coupler in your system.
required: false
default: 0
type: integer
dim_mode:
description: "Dimming mode for connected modules. The operation mode is programmed into the LCN modules by the LCN-PRO software and depends on their firmware. If you experience unexpected dimming behavior, the connection is probably in the wrong operation mode. Possible values: _steps50_, _steps200_"
required: false
default: steps50
type: string
lights:
description: List of your lights.
required: true
type: map
keys:
name:
description: Name of the light.
required: true
type: string
address:
description: "[Address](/components/lcn#lcn-addresses) of the module/group."
required: true
type: string
output:
description: "Light source ([OUTPUT_PORT](/components/lcn#ports))."
required: true
type: string
dimmable:
description: Enable the dimming feature for this light
required: false
type: bool
default: false
transition:
description: Transition (ramp) time in seconds.
required: false
type: int
default: 0
{% endconfiguration %}
## {% linkable_title LCN Addresses %}
LCN hardware devices connected to the LCN bus are called _modules_. LCN modules are addressed by their numeric id in the range (5..254).
Modules can be arranged in _segments_. Segments can be addressed by their numeric id (5..128) or 0 (= no segment exist) or 3 (= target all segments).
LCN Modules within the _same_ segment can be grouped by their group id (5..254) or 3 (= target all groups.)
The LCN component allow the connection to more than one hardware coupler. In this case it has to be specified which hardware coupler should be used for addressing the specified module.
Whenever the address of a module or a group has to be specified, it can be addressed using one of the following syntaxes:
Example for modules:
```
connid.s000.m007
connid.s0.m7
s0.m7
0.7
```
Example for groups:
```
connid.s000.g007
connid.s0.g7
s0.g7
0.g7
```
Leading zeroes in the segment id or module/group id can be omitted. If the `connection_id` is omitted, the first connection defined in the [configuration](#configuration) will be used.
## {% linkable_title LCN Constants %}
The platforms and service calls use several predefined constants as parameters.
#### {% linkable_title Ports %}
| Constant | Values |
| -------- | ------ |
| OUTPUT_PORT | `output1`, `output2`, `output3`, `output4` |

View File

@ -0,0 +1,21 @@
---
layout: page
title: "Homeworks Light"
description: "How to use Lutron Homeworks Series 4 & 8 lights."
date: 2018-10-05 23:00
sidebar: true
comments: false
sharing: true
footer: true
logo: lutron.png
ha_category: Light
featured: false
ha_release: 0.85
ha_iot_class: "Local Push"
---
`homeworks` lights let you monitor and control Lutron Homeworks Series 4 & 8 dimmers.
<p class='note'>
You must have the [homeworks component](/components/homeworks/) configured to use this light.
</p>

View File

@ -0,0 +1,23 @@
---
layout: page
title: "LCN Light"
description: "Instructions on how to setup LCN lights within Home Assistant."
date: 2018-11-01 08:00
sidebar: true
comments: false
sharing: true
footer: true
logo: lcn.png
ha_category: Light
ha_release: 0.85
ha_iot_class: "Local Push"
---
The `lcn` light platform allows the control of the following [LCN](http://www.lcn.eu) ports:
- (Dimmable) output ports
## {% linkable_title Configuration %}
The `lcn` component must be configured correctly, see [LCN component](/components/lcn).
This platform is configured within the `lcn` component.

View File

@ -221,6 +221,35 @@ payload_not_available:
required: false
type: string
default: offline
device:
description: 'Information about the device this light is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.'
required: false
type: map
keys:
identifiers:
description: 'A list of IDs that uniquely identify the device. For example a serial number.'
required: false
type: list, string
connections:
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
required: false
type: list
manufacturer:
description: 'The manufacturer of the device.'
required: false
type: string
model:
description: 'The model of the device.'
required: false
type: string
name:
description: 'The name of the device.'
required: false
type: string
sw_version:
description: 'The firmware version of the device.'
required: false
type: string
{% endconfiguration %}
<p class='note warning'>
@ -446,6 +475,35 @@ payload_not_available:
required: false
type: string
default: offline
device:
description: 'Information about the device this light is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.'
required: false
type: map
keys:
identifiers:
description: 'A list of IDs that uniquely identify the device. For example a serial number.'
required: false
type: list, string
connections:
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
required: false
type: list
manufacturer:
description: 'The manufacturer of the device.'
required: false
type: string
model:
description: 'The model of the device.'
required: false
type: string
name:
description: 'The name of the device.'
required: false
type: string
sw_version:
description: 'The firmware version of the device.'
required: false
type: string
{% endconfiguration %}
<p class='note warning'>
@ -604,6 +662,10 @@ name:
required: false
type: string
default: MQTT Template Light
unique_id:
description: An ID that uniquely identifies this light. If two lights have the same unique ID, Home Assistant will raise an exception.
required: false
type: string
effect_list:
description: List of possible effects.
required: false
@ -680,6 +742,35 @@ payload_not_available:
required: false
type: string
default: offline
device:
description: 'Information about the device this light is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.'
required: false
type: map
keys:
identifiers:
description: 'A list of IDs that uniquely identify the device. For example a serial number.'
required: false
type: list, string
connections:
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
required: false
type: list
manufacturer:
description: 'The manufacturer of the device.'
required: false
type: string
model:
description: 'The model of the device.'
required: false
type: string
name:
description: 'The name of the device.'
required: false
type: string
sw_version:
description: 'The firmware version of the device.'
required: false
type: string
{% endconfiguration %}
<p class='note warning'>

View File

@ -9,14 +9,11 @@ sharing: true
footer: true
logo: belkin_wemo.png
ha_category: Light
ha_iot_class: "Local Polling"
ha_iot_class: "Local Push"
ha_release: 0.14
---
The `wemo` platform allows you to control your Belkin WeMo [LED lights](http://www.belkin.com/us/p/P-F5Z0489/) and [Smart Dimmer Switch](http://www.belkin.com/us/F7C059-Belkin/p/P-F7C059/) from within Home Assistant.
They will be automatically discovered if the discovery component is enabled.
For more configuration information see the [WeMo component](/components/wemo/) documentation.
WeMo devices are automatically discovered if the `discovery` component is enabled. For more configuration information, see the [WeMo component](/components/wemo/) documentation.

View File

@ -15,7 +15,7 @@ ha_release: 0.25
The `x10` light platform allows you to control your X10 based lights with Home Assistant.
Requires [Heyu x10](http://www.heyu.org) and a CM11A interface; the CM17A "FireCracker" interface is not supported.
Requires [Heyu x10](http://www.heyu.org) and a CM11A or a CM17A "FireCracker" interface.
To enable those lights, add the following lines to your `configuration.yaml` file:

View File

@ -13,7 +13,7 @@ ha_iot_class: "Local Polling"
ha_release: 0.53
---
The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philips LED Ball Lamp, Xiaomi Philips Zhirui LED Bulb E14 Candle Lamp, Xiaomi Philips Zhirui Downlight, Xiaomi Philips LED Ceiling Lamp, Xiaomi Philips Eyecare Lamp 2 and Philips Zhirui Desk Lamp.
The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philips LED Ball Lamp, Xiaomi Philips Zhirui LED Bulb E14 Candle Lamp, Xiaomi Philips Zhirui Downlight, Xiaomi Philips LED Ceiling Lamp, Xiaomi Philips Eyecare Lamp 2, Xiaomi Philips Moonlight Bedside Lamp and Philips Zhirui Desk Lamp.
## Features
@ -81,6 +81,26 @@ Supported models: `philips.light.mono1`
- scene
- delayed_turn_off
### Philips Moonlight Bedside Lamp
Supported models: `philips.light.moonlight`
* Power (on, off)
* Brightness
* Color (not implemented)
* Color temperature (153...588 mireds)
* Scene (1, 2, 3, 4)
* Attributes
- model
- scene
- sleep_assistant
- sleep_off_time
- total_assistant_sleep_time
- brand_sleep
- brand
Please follow the instructions on [Retrieving the Access Token](/components/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token to use in the `configuration.yaml` file.
To add a Xiaomi Philips Light to your installation, add the following to your configuration.yaml file:
@ -110,7 +130,7 @@ name:
type: string
default: Xiaomi Philips Light
model:
description: The model of your light. Valid values are `philips.light.sread1`, `philips.light.ceiling`, `philips.light.zyceiling`, `philips.light.bulb`, `philips.light.candle`, `philips.light.candle2`, `philips.light.mono1` and `philips.light.downlight`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available.
description: The model of your light. Valid values are `philips.light.sread1`, `philips.light.ceiling`, `philips.light.zyceiling`, `philips.light.moonlight`, `philips.light.bulb`, `philips.light.candle`, `philips.light.candle2`, `philips.light.mono1` and `philips.light.downlight`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available.
required: false
type: string
{% endconfiguration %}

View File

@ -89,6 +89,39 @@ payload_not_available:
required: false
type: string
default: offline
unique_id:
description: An ID that uniquely identifies this lock. If two locks have the same unique ID, Home Assistant will raise an exception.
required: false
type: string
device:
description: 'Information about the device this lock is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.'
required: false
type: map
keys:
identifiers:
description: 'A list of IDs that uniquely identify the device. For example a serial number.'
required: false
type: list, string
connections:
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
required: false
type: list
manufacturer:
description: 'The manufacturer of the device.'
required: false
type: string
model:
description: 'The model of the device.'
required: false
type: string
name:
description: 'The name of the device.'
required: false
type: string
sw_version:
description: 'The firmware version of the device.'
required: false
type: string
{% endconfiguration %}
<p class='note warning'>

View File

@ -85,6 +85,7 @@ If the command is a word command, the `data` field contains a list of the comman
This example also uses the [matrix `notify` platform](/components/notify.matrix/).
{% raw %}
```yaml
# The Matrix component
matrix:
@ -96,6 +97,7 @@ matrix:
- "#someothertest:matrix.org"
commands:
- word: testword
name: testword
rooms:
- "#someothertest:matrix.org"
- expression: "My name is (?P<name>.*)"
@ -126,9 +128,11 @@ automation:
action:
service: notify.matrix_notify
data_template:
message: "Hello {{trigger.event.data.name}}"
message: "Hello {{trigger.event.data.args['name']}}"
```
{% endraw %}
This configuration will:
- Listen for "!testword" in the room "#someothertest:matrix.org" (and *only*) there. If such a message is encountered, it will answer with "It looks like you wrote !testword" into the "#hasstest:matrix.org" channel.
- Listen in both rooms for any message matching "My name is <any string>" and answer with "Hello <the string>" into "#hasstest:matrix.org".

View File

@ -26,12 +26,12 @@ To add a DLNA DMR device to your installation, add the following to your `config
# Example configuration.yaml entry
media_player:
- platform: dlna_dmr
url: http://192.168.0.10:9197/dmr
url: http://192.168.0.10:9197/description.xml
```
{% configuration %}
url:
description: The URL to the device description, e.g., `http://192.168.0.10:9197/dmr`.
description: The URL to the device description .xml file, e.g., `http://192.168.0.10:9197/description.xml`.
required: true
type: string
listen_ip:

View File

@ -0,0 +1,52 @@
---
layout: page
title: "Harman Kardon AVR Network Receivers"
description: "Instructions on how to integrate Harman Kardon AVR Network Receivers into Home Assistant."
date: 2018-11-20 09:00
sidebar: true
comments: false
sharing: true
footer: true
logo: harman_kardon.png
ha_category: Media Player
ha_iot_class: "Local Polling"
ha_release: 0.85.0
---
The `harman_kardon_avr` platform allows you to control Harman Kardon Network Receivers from Home Assistant.
Supported devices:
- Harman Kardon AVR-151S
- Other Harman Kardon AVR receivers (untested)
To add a Harman Kardon Network Receiver to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
media_player:
- platform: harman_kardon_avr
host: IP_ADDRESS
```
{% configuration %}
host:
description: IP address of the device, e.g., 192.168.1.32.
required: true
type: string
name:
description: Name of the device. If not set, Harman Kardon AVR is used.
required: false
default: Harman Kardon AVR
type: string
port:
description: The port to talk to the receiver. If not set, 10025 is used.
required: false
default: 10025
type: integer
{% endconfiguration %}
A few notes:
- The newest firmware automatically shuts down the AVR after a certain amount of time. The AVR is then not available on the network anymore, so the 'on' command will not work.
- The AVR has no endpoints to determine the volume, muted, playing etc., so if the remote control is used, HA will not know the new states of the device.

View File

@ -13,7 +13,7 @@ ha_release: 0.62
ha_iot_class: "Cloud Polling"
---
The `mychevy` component communicates with the [my.chevrolet](https://my.chevrolet.com) website to log in as your user and screen scrape the data provided. GM does not make it easy to sign up for any official development program, so this provides a workaround to get access to your data.
The `mychevy` component communicates with the [my.chevrolet](https://my.chevrolet.com) website using the javascript API that the website uses (as of Dec 2018). The mychevy website has been known to be both unstable (interfaces changing somewhat willy nilly) and have substantial outages. So be forwarned in using this component.
This component provides the following platforms:
@ -40,6 +40,11 @@ password:
description: The password for your given my.chevrolet account.
required: true
type: string
country:
description: Which country's servers to contact. Supports 'us' or 'ca'.
required: false
default: us
type: string
{% endconfiguration %}
@ -51,5 +56,4 @@ The OnStar network link is very slow, and takes 1 - 3 minutes to get information
The OnStar network (or more specifically the gateway used by the my.chevrolet website) appears to suffer more than most networks when the car is a) in a garage, and b) it's cold outside (like < 15 degrees F). One of the provided sensors is a status sensor which indicates if we got connectivity with the car on the last polling cycle or not.
The "API" for this is written by web scraping. As such, it only currently is known to work if you have a Chevy Bolt EV or a Chevy Volt, and only 1 Chevy car connected to OnStar. Patches for extended support should go to the https://github.com/sdague/mychevy project first, then Home Assistant can be extended.
The "API" for this is written through using some existing API calls from the Javascript web user interfae. As such, it only currently is known to work if you have a Chevy Bolt EV or a Chevy Volt, and only 1 Chevy car connected to OnStar. Patches for extended support should go to the [https://github.com/sdague/mychevy](https://github.com/sdague/mychevy) project first, then Home Assistant can be extended.

View File

@ -0,0 +1,43 @@
---
layout: page
title: "Mythic Beasts DNS"
description: "Keep your mythic beasts DNS updated"
date: 2018-11-09 14:57
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Network
ha_release: 0.85
ha_iot_class: "Cloud Push"
logo: mythic_beasts.png
---
With the `mythicbeastsdns` component you can automatically update your dynamic DNS entry at [Mythic Beasts](https://www.mythic-beasts.com/).
## {% linkable_title Configuration %}
To use the component in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
mythicbeastsdns:
host: YOUR_HOST
domain: YOUR_DOMAIN
password: YOUR_API_KEY
```
{% configuration %}
host:
description: The first part, or subdomain that you want to be dynamic.
required: true
type: string
domain:
description: Your domain, e.g., `example.com`.
required: true
type: string
password:
description: The password for your domain. You can set this by clicking "DNS API" on the domain page.
required: true
type: string
{% endconfiguration %}

View File

@ -0,0 +1,75 @@
---
layout: page
title: "Ness Alarm"
description: "Instructions on how to integrate a Ness D8x/D16x alarm system with Home Assistant."
date: 2018-11-25 18:00
sidebar: true
comments: false
sharing: true
footer: true
logo: ness.png
ha_category: Alarm
ha_release: 0.85
ha_iot_class: "Local Push"
---
The `ness_alarm` component will allow Home Assistant users who own a Ness D8x/D16x alarm system to leverage their alarm system and its sensors to provide Home Assistant with information about their homes. Connectivity between Home Assistant and the alarm is accomplished through a IP232 module that must be connected to the alarm.
There is currently support for the following device types within Home Assistant:
- [Binary Sensor](/components/binary_sensor.ness_alarm/): Reports on zone statuses
- [Alarm Control Panel](/components/alarm_control_panel.ness_alarm/): Reports on alarm status, and can be used to arm/disarm the system
The module communicates via the [Ness D8x/D16x ASCII protocol](http://www.nesscorporation.com/Software/Ness_D8-D16_ASCII_protocol.pdf).
## {% linkable_title Configuration %}
A `ness_alarm` section must be present in the `configuration.yaml` file and contain the following options as required:
```yaml
# Example configuration.yaml entry
ness_alarm:
host: alarm.local
port: 2401
zones:
- name: Garage
id: 1
- name: Storeroom
id: 2
- name: Kitchen
id: 3
- name: Front Entrance
id: 4
- name: Front Door
id: 5
type: door
```
{% configuration %}
host:
description: The hostname of the IP232 module on your home network.
required: true
type: string
port:
description: The port on which the IP232 module listens for clients.
required: true
type: integer
zones:
description: List of zones to add
required: false
type: [integer, list]
keys:
zone_id:
description: ID of the zone on the alarm system (i.e Zone 1 -> Zone 16).
required: true
type: integer
name:
description: Name of the zone.
required: true
type: string
type:
description: The zone type. Can be any [binary_sensor device class](/components/binary_sensor/#device-class).
required: false
default: motion
type: string
{% endconfiguration %}

View File

@ -150,7 +150,7 @@ Example of adding a tag to your notification. This won't create new notification
- platform: state
entity_id: sensor.sensor
action:
service: notify.html5
service: notify.notify
data_template:
message: "Last known sensor state is {{ states('sensor.sensor') }}."
data:

View File

@ -1,87 +0,0 @@
---
layout: page
title: "Instapush"
description: "Instructions on how to add Instapush notifications to Home Assistant."
date: 2015-05-01 18:00
sidebar: true
comments: false
sharing: true
footer: true
logo: instapush.png
ha_category: Notifications
ha_release: pre 0.7
---
The `instapush` platform uses [Instapush](https://instapush.im) to delivery notifications from Home Assistant to your Android or iOS device.
The Instapush [Getting Started page](https://instapush.im/home/start/) will guide through the process of creating the required items.
To add Instapush to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
notify:
- name: NOTIFIER_NAME
platform: instapush
api_key: YOUR_API_KEY
app_secret: YOUR_APP_SECRET
event: PUSH_TO_EVENT
tracker: TRACKER_NAME
```
{% configuration %}
name:
description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`.
required: false
default: notify
type: string
api_key:
description: Your API key for Instapush.
required: string
type: string
app_secret:
description: The secret for your created application.
required: string
type: string
event:
description: The event to push to.
required: string
type: string
tracker:
description: The name of tracker inside Instapush.
required: string
type: string
{% endconfiguration %}
To retrieve the needed values for existing settings, log into your account at [https://instapush.im](https://instapush.im) and go to your **Dashboard**. Then click the **APPS** tab, choose an app, and check the **Basic Info** section. The *Application ID* is the `api_key` and `app_secret` is the *Application Secret*.
Assuming that your setup looks look in the image below...
<p class='img'>
<img src='{{site_root}}/images/screenshots/instapush.png' />
</p>
...then your entry for the `configuration.yaml` file needs to be like this sample.
```yaml
notify:
platform: instapush
[...]
event: msg
tracker: state
```
It's easy to test your Instapush setup outside of Home Assistant. Assuming you have an event *notification* and a tracker *home-assistant*, just fire a request and check the Instapush dashboard for a new entry.
```bash
curl -X POST \
-H "x-instapush-appid: YOUR_APP_KEY" \
-H "x-instapush-appsecret: YOUR_APP_SECRET" \
-H "Content-Type: application/json" \
-d '{"event":"notification","trackers":{"home-assistant":"Switch 1"}}' \
https://api.instapush.im/v1/post
```
For further details, please check the [API](https://instapush.im/developer/rest).
To use notifications, please see the [getting started with automation page](/getting-started/automation/).

View File

@ -31,6 +31,11 @@ name:
description: "Setting the parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`."
required: true
type: string
verify_ssl:
description: If SSL/TLS verification for HTTPS resources needs to be turned off (for self-signed certs, etc.).
required: false
type: boolean
default: true
resource:
description: The incoming webhook URL.
required: true

View File

@ -23,12 +23,12 @@ To use this notification platform in your installation, add the following to you
notify:
- name: NOTIFIER_NAME
platform: twilio_sms
from_number: E164_PHONE_NUMBER
from_number: E164_PHONE_NUMBER or SENDER_ID
```
{% configuration %}
from_number:
description: An [E.164](https://en.wikipedia.org/wiki/E.164) formatted phone number, like +14151234567. See [Twilio's guide to formatting phone numbers](https://www.twilio.com/help/faq/phone-numbers/how-do-i-format-phone-numbers-to-work-internationally) for more information.
description: An [E.164](https://en.wikipedia.org/wiki/E.164) formatted phone number, like +14151234567. See [Twilio's guide to formatting phone numbers](https://www.twilio.com/help/faq/phone-numbers/how-do-i-format-phone-numbers-to-work-internationally) for more information. Alternatively, a sender ID can be used instead of a phone number. The sender ID must be formatted according to Twilio's guidelines. See [Twilio's guide to sender ID](https://support.twilio.com/hc/en-us/articles/223181348-Getting-started-with-Alphanumeric-Sender-ID) for more information.
required: true
type: string
name:

View File

@ -0,0 +1,55 @@
---
layout: page
title: "Plum Lightpad"
description: "Instructions on setting up Plum Lightpads within Home Assistant."
date: 2018-10-15 17:58
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Switch
ha_iot_class: "Local Push"
featured: true
logo: plum.png
ha_release: 0.85
redirect_from:
- /components/binary_sensor.plum_lightpad/
- /components/light.plum_lightpad/
- /components/sensor.plum_lightpad/
---
Configurable/Dimmable WiFi Lightswitch
- Cloud registered, Local API communication (both RESTful and TCP pushed events)
- Motion Sensor
- Energy Meter
- RGB Glow Ring
- Wifi & Bluetooth connectivity
- Phone Apps for iOS & Android
"The most advanced smart dimmer. Ever." - [https://plumlife.com/](https://plumlife.com/)
> The Lightpads elegant design compliments any decor and provides amazing control of your lights. The Lightpad allows you to control a single light, group of lights, or all of your lights in a natural and intuitive way.
> Control your lights, not just with your smartphone and your voice (with Alexa and Google Assistant), but with your fingertips too. While most home automation devices today force you to use your smartphone, Plum Lightpads feature Multi-Touch allowing you to use simple gestures to control any light in the house from any Lightpad.
## {% linkable_title Configuration %}
To enable Plum Lightpad support, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
plum_lightpad:
username: YOUR_CLOUD_USERNAME
password: YOUR_CLOUD_PASSWORD
```
{% configuration %}
username:
required: true
description: Your Plum Cloud username.
type: string
password:
required: true
description: Your Plum Cloud password.
type: string
{% endconfiguration %}

View File

@ -75,6 +75,8 @@ Upon startup one file will be written to your Home Assistant configuration direc
- List of all programmed device names and ID numbers
- List of all available commands per programmed device
This file will be overwritten whenever the Harmony HUB has a new configuration, there is no need to restart HASS.
### {% linkable_title Service `remote.turn_off` %}
Turn off all devices that were switched on from the start of the current activity.
@ -97,8 +99,14 @@ Start an activity. Will start the default `activity` from configuration.yaml if
In the file 'harmony_REMOTENAME.conf' you can find the available activities, for example:
```text
Activities
22054907 - Watch TV
{
"Activities": {
"-1": "PowerOff",
"20995306": "Watch TV",
"20995307": "Play Games",
"20995308": "Listen Music"
}
}
```
Using the activity name 'Watch TV', you can call a service via automation to switch this activity on:
@ -118,11 +126,38 @@ Send a single command or a set of commands to one device, device ID and availabl
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | Only act on a specific remote, else target all.
| `device` | no | Device ID to send the command to.
| `device` | no | Device ID or Device Name to send the command to.
| `command` | no | A single command or a list of commands to send.
| `num_repeats` | yes | The number of times to repeat the command(s).
| `delay_secs` | yes | The number of seconds between sending each command.
In the file 'harmony_REMOTENAME.conf' you can find the available devices and commands, for example:
```text
{
"Devices": {
"TV": {
"commands": [
"PowerOff",
"PowerOn"
],
"id": "327297814"
},
"Receiver": {
"commands": [
"PowerOff",
"PowerOn",
"VolumeUp",
"VolumeDown",
"Mute"
],
"id": "428297615"
}
}
}
```
A typical service call for sending several button presses looks like this:
```yaml
@ -130,16 +165,26 @@ service: remote.send_command
data:
entity_id: remote.tv_room
command:
- home
- 1
- 2
device: 4576546
- PowerOn
- Mute
device: Receiver
delay_secs: 0.6
```
OR
```yaml
service: remote.send_command
data:
entity_id: remote.tv_room
command:
- PowerOn
- Mute
device: 428297615
delay_secs: 0.6
```
### {% linkable_title Service `remote.harmony_sync` %}
Synchronize the Harmony device with the Harmony web service if any changes are made from the web portal or app.
Force synchronization between the Harmony device and the Harmony cloud.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |

View File

@ -17,18 +17,20 @@ The `satel_integra` component will allow Home Assistant users who own a Satel In
There is currently support for the following device types within Home Assistant:
- [Binary Sensor](/components/binary_sensor.satel_integra/): Reports on zone statuses
- [Binary Sensor](/components/binary_sensor.satel_integra/): Reports on zone or output statuses
- [Alarm Control Panel](/components/alarm_control_panel.satel_integra/): Reports on alarm status, and can be used to arm/disarm the system
The module communicates via Satel's open TCP protocol published on their website. It subscribes for new events coming from alarm system and reacts to them immediately.
## {% linkable_title Setup %}
Please note that **ETHM-1 module is currently not supported**: it does not provide functionality used by this extension. At the moment only ETHM-1 Plus module is supported. That might change in the future, but no promisses are given.
The library currently doesn't support encrypted connection to your alarm, so you need **to turn off encryption for integration protocol**. In Polish: "koduj integracje" must be unchecked. You will find this setting in your DloadX program.
A list of all zone IDs can be taken from DloadX program.
A list of all zone and output IDs can be acquired by running DloadX program and connecting to your alarm.
For more information on the available zone types, take a look at the [Binary Sensor](/components/binary_sensor.alarmdecoder/) documentation. Note: If no zones are specified, Home Assistant will not load any binary_sensor components."
For more information on the available zone visualisation types, take a look at the [Binary Sensor](/components/binary_sensor.alarmdecoder/) documentation. Note: If no zones or outputs are specified, Home Assistant will not load any binary_sensor components."
## {% linkable_title Configuration %}
@ -62,7 +64,21 @@ arm_home_mode:
default: 1
type: integer
zones:
description: "This module does not discover currently which zones are actually in use, so it will only monitor the ones defined in the configuration. For each zone, a proper ID must be given as well as its name (does not need to match the one specified in Satel Integra alarm)."
description: "This parameter lists the zones (or inputs) that will be visible by Home Assistant. For each zone, a proper ID must be given as well as its name. The name is arbitrary and does not need to match the one specified in Satel Integra alarm configuration."
required: false
type: [integer, list]
keys:
name:
description: Name of the zone.
required: true
type: string
type:
description: The zone type.
required: false
default: motion
type: string
outputs:
description: "Very similar to zones, but with outputs. Satel Integra uses outputs to inform external systems about different events. For example power failure, or that alarm started counting for exit or some other user-defined condition. They may be used for simple alarm-based automation. For more information please refer to Satel homepage and forums."
required: false
type: [integer, list]
keys:
@ -101,9 +117,22 @@ satel_integra:
113:
name: 'Entry door'
type: 'opening'
outputs:
05:
name: 'Garden lights trigger'
type: 'light'
09:
name: 'Gate opening trigger'
type: 'opening'
30:
name: 'Alarm triggered'
type: 'safety'
32:
name: 'Alarm power problem'
type: 'safety'
```
Having configured the zones, you can use them for automation, such as to react on the movement in your bedroom.
Having configured the zones and the outputs, you can use them for automation, such as to react on the movement in your bedroom.
For example:
```yaml

View File

@ -0,0 +1,21 @@
---
layout: page
title: "Lutron Scene"
description: "Instructions on how to set up the Lutron scenes within Home Assistant."
date: 2018-10-09 09:00
sidebar: true
comments: false
sharing: true
footer: true
logo: lutron.png
ha_category: Scene
ha_iot_class: "Local Polling"
ha_release: 0.85
---
To get your Lutron scenes working with Home Assistant, follow the instructions for the general [Lutron component](/components/lutron/).
This component uses keypad programming to identify scenes. Currently, it only works with SeeTouch keypads.
The Lutron scene platform allows you to control scenes programmed into your SeeTouch keypads.
After setup, scenes will appear in Home Assistant using the area, keypad, and button name.

View File

@ -0,0 +1,52 @@
---
layout: page
title: AfterShip Sensor
description: "Instructions on how to set up AfterShip sensors within Home Assistant."
date: 2018-11-24 01:00
sidebar: true
comments: false
sharing: true
footer: true
logo: aftership.png
ha_category: Postal Service
ha_release: 0.85
ha_iot_class: "Cloud Polling"
---
The `aftership` platform allows one to track deliveries by [AfterShip](https://www.aftership.com), a service that supports 490+ couriers worldwide. It is free to use up to 100 tracked packages per month, after that there is a fee.
The sensor value shows the number of packages that are not in `Delivered` state. As attributes are the number of packages per status.
## {% linkable_title Setup %}
To use this sensor, you need an [AfterShip Account](https://accounts.aftership.com/register) and set up an API Key. To set up an API Key go to [AfterShip API](https://secure.aftership.com/#/settings/api) page, and copy existing key or generate a new one.
<p class='note info'>
AfterShip recently started requiring having a credit card on file even if you are only using the free plan. That does not change the functionality of the platform, just something to be aware of.
</p>
## {% linkable_title Configuration %}
To enable this sensor, add the following lines to your `configuration.yaml`:
```yaml
sensor:
- platform: aftership
api_key: AFTERSHIP_APIKEY
```
{% configuration %}
name:
description: The sensor name to use in the frontend.
required: false
default: "aftership"
type: string
api_key:
description: The API key for AfterShip.
required: true
type: string
{% endconfiguration %}
<p class='note info'>
This component retrieves data from AfterShip public REST API, but the component is not affiliated with AfterShip.
</p>

View File

@ -0,0 +1,108 @@
---
layout: page
title: "Ambient Weather Station Sensor"
description: "How to integrate Ambient Weather station within Home Assistant."
date: 2018-11-15 08:00
sidebar: true
comments: false
logo: ambient_weather.png
ha_category: Weather
ha_release: "0.85"
ha_iot_class: "Cloud Polling"
---
The `Ambient Weather Station` platform uses the [Ambient Weather](https://ambientweather.net)
web API to retrieve weather data from your personal weather station (PWS).
You need to register your compatible PWS using its MAC address and then request both an API key and an Application key. The key requests can be found
under `My Account`. Requesting an application key requires emailing the ambient weather support team.
To add your Ambient Weather PWS to your Home Assistant installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: ambient_station
api_key: YOUR_API_KEY
app_key: YOUR_APP_KEY
monitored_conditions:
- tempf
- humidity
- windspeedmph
```
{% configuration %}
api_key:
description: The API key to access the service.
required: true
type: string
app_key:
description: The Application key to access the service.
required: true
type: string
monitored_conditions:
description: Weather conditions to track.
required: true
type: list
keys:
winddir:
description: Wind direction
windspeedmph:
description: Windspeed
windgustmph:
description: Wind gust
maxdailygust:
description: Max daily wind gust
windgustdir:
description: Wind gust direction
windspdmph_avg2m:
description: Wind speed, 2m moving average
winddir_avg2m:
description: Wind direction, 2m moving average
windspdmph_avg10m:
description: Wind speed, 10m moving average
winddir_avg10m:
description: Wind direction, 10m moving average
humidity:
description: Outdoor humidity
humidityin:
description: Indoor humidity
tempf:
description: Outdoor temperature
tempinf:
description: Indoor temperature
battout:
description: Weather station battery health
hourlyrainin:
description: Hourly rain accumulation
dailyrainin:
description: Daily rain accumulation
24hourrainin:
description: 24h rain accumulation
weeklyrainin:
description: Weekly rain accumulation
monthlyrainin:
description: Monthly rain accumulation
yearlyrainin:
description: Yearly rain accumulation
eventrainin:
description: Event Rain accumulation
totalrainin:
description: Lifetime rain accumulation (since last reset)
baromrelin:
description: Relative atmospheric pressure
baromabsin:
description: Absolute atmospheric pressure
uv:
description: UV index
solarradiation:
description: Solar radiation
co2:
description: CO2 level
lastRain:
description: Datetime of last rain event
dewPoint:
description: Dewpoint temperature
feelsLike:
description: Feels Like temperature
{% endconfiguration %}

View File

@ -111,6 +111,11 @@ aq_humidity_bias:
required: false
default: 25
type: integer
temp_offset:
description: "The temperature for the sensor will always be too high as it pulls heat from the components around it. Consider adding a negative offset to ensure the sensor returns an accurate temperature. Note: This value is in celsius."
required: false
default: 0
type: float
{% endconfiguration %}
## {% linkable_title Full Examples %}
@ -139,6 +144,7 @@ sensor:
aq_burn_in_time: 300
aq_humidity_baseline: 40
aq_humidity_bias: 25
temp_offset: -5.5
```
## {% linkable_title Customizing the sensor data %}

View File

@ -0,0 +1,56 @@
---
layout: page
title: "Brottsplatskartan"
description: "Instructions on how to integrate brottsplatskartan.se into Home Assistant."
date: 2018-12-02 20:00
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Social
logo: brottsplatskartan.png
ha_release: 0.85
ha_iot_class: "Cloud Polling"
---
The `brottsplatskartan` sensor allows one to track reported incidents occurring in a given area. Incidents include anything reported to [Brottsplatskartan](https://brottsplatskartan.se). The sensor only counts incidents from the current day.
## {% linkable_title Configuration %}
To enable this sensor, add the following lines to your `configuration.yaml`.
```yaml
sensor:
- platform: brottsplatskartan
```
{% configuration %}
name:
description: Custom name for the sensor.
required: false
type: string
default: Brottsplatskartan
area:
description: Area for sensor to monitor
required: false
type: string
latitude:
description: Latitude for sensor.
required: false
default: Your home zone latitude defined in your configuration.
longitude:
description: Longitude for sensor.
required: false
default: Your home zone longitude defined in your configuration.
{% endconfiguration %}
## {% linkable_title Notes %}
### {% linkable_title Area %}
Brottsplatskartan captures all incidents in a region, e.g Stockholms län. If area parameter is defined, any latitude and longitude parameters are ignored.
### {% linkable_title Latitude and Longitude %}
The radius is set to 5 km when using latitude and longitude to monitor an area. It's not possible to explicitly set radius to another value.

View File

@ -19,34 +19,4 @@ The `daikin` sensor platform integrates Daikin air conditioning systems into Hom
- Inside temperature
- Outside temperature
## {% linkable_title Configuration %}
To enable the platform manually, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: daikin
host: 10.0.0.1
monitored_conditions:
- inside_temperature
- outside_temperature
```
{% configuration %}
host:
description: IP or hostname of the device.
required: true
type: string
monitored_conditions:
description: List of items you want to monitor for each device.
required: false
default: All conditions
type: list
keys:
inside_temperature:
description: The current temperature measured inside the house.
outside_temperature:
description: The current temperature measured outside the house.
{% endconfiguration %}
For installation instructions, see [the Daikin component](/components/daikin/).

View File

@ -17,12 +17,16 @@ ha_iot_class: "Cloud Polling"
The `darksky` platform uses the [Dark Sky](https://darksky.net/) web service as a source for meteorological data for your location. The location is based on the `longitude` and `latitude` coordinates configured in your `configuration.yaml` file. The coordinates are auto-detected but to take advantage of the hyper-local weather reported by Dark Sky, you can refine them down to your exact home address. GPS coordinates can be found by using [Google Maps](https://www.google.com/maps) and clicking on your home or [Openstreetmap](http://www.openstreetmap.org/).
## {% linkable_title Setup %}
You need an API key which is free but requires [registration](https://darksky.net/dev/register). You can make up to 1000 calls per day for free which means that you could make one approximately every 86 seconds.
<p class='note warning'>
[Dark Sky](https://darksky.net/dev/) will charge you $0.0001 per API call if you enter your credit card details and create more than 1000 calls per day.
</p>
## {% linkable_title Configuration %}
To add Dark Sky to your installation, add the following to your `configuration.yaml` file:
```yaml
@ -126,6 +130,10 @@ monitored_conditions:
description: The UV index.
moon_phase:
description: "The fractional part of the lunation number during the given day: a value of 0 corresponds to a new moon, 0.25 to a first quarter moon, 0.5 to a full moon, and 0.75 to a last quarter moon."
sunrise_time:
description: The time of when the sun will rise during a given day.
sunset_time:
description: The time of when the sun will set during a given day.
nearest_storm_distance:
description: The approximate distance to the nearest storm in miles.
nearest_storm_bearing:

View File

@ -19,6 +19,9 @@ For each stop place given in the configuration, a sensor will be mounted for tha
Real-time data is fetched from [Entur](https://www.entur.org). Entur is a service which collects and delivers information about all public transport available in Norway under an [open source license](https://data.norge.no/nlod/no).
<p class='note'>Note that the underlying API is rate limited and to avoid getting your instance blocked from entur the sensor is only fetching new information once a minute. It's recommended to only define one platform in the configuration at one time to not hit the rate limiting.
</p>
## {% linkable_title Configuration %}
```yaml
@ -50,10 +53,16 @@ show_on_map:
required: false
type: boolean
default: false
line_whitelist:
description: List of lines that should be whitelisted in the resulting sensors, and will only show when the defined lines are expected to leave the platform or station. All lines that you want on any of the sensors should be included in the list.
required: false
type: list
{% endconfiguration %}
## {% linkable_title Example usage %}
Example of multiple stop places, with expanded sensors for each platform under the station, and with the platforms added to the map.
```yaml
# Example configuration.yaml entry
sensor:
@ -70,6 +79,22 @@ sensor:
- 'NSR:Quay:48550' # Fiskepiren bus stop platform 1
```
Example with whitelisting of one line on each stop place.
```yaml
# Example configuration.yaml entry
sensor:
- platform: entur_public_transport
stop_ids:
- 'NSR:Quay:7333'
- 'NSR:Quay:48550'
- 'NSR:StopPlace:596'
line_whitelist:
- 'RUT:Line:1'
- 'KOL:Line:1000_236'
- 'NSB:Line:59'
```
## {% linkable_title Obtaining a stop id %}
[Entur's travel planer](https://en-tur.no) has a map of all stops used in Norway. Use the map to find the stops you're interested in. When you have found one of your stops, click on it.
@ -79,3 +104,21 @@ Now the web browser should contain an URL with the id in it. Such as this:
`https://en-tur.no/nearby-stop-place-detail?id=NSR:StopPlace:32376`
The stop id is the content after `id=` parameter in the url. Copy paste this into the configuration.
## {% linkable_title FAQ - Troubleshooting %}
**Q:** I have multiple stop ids and have added whitelisting of a line. Now some of the stop places are showing `unknown`.
**A:** A whitelisting of lines takes affect on all of the stops. So you have to whitelist all lines you are interested in on all stop places.
---
**Q:** I have added whitelisting of lines, and everything has worked as fine before, but now it has stopped updating all of a sudden.
**A:** Some transport companies, such as Kolumbus in Rogaland, have running numbers on the end of their line ids. These gets periodically updated and will make the whitelisting invalid. The new line ids needs to be added again. Most of the time it iterates by one.
---
**Q:** Where do I find a line id to add to the whitelisting?
**A:** The sensor will show the line id, and is the recommended way to find it, while we wait for 'Nasjonalt Stoppestedregister' to become public. It is also possible to see the line ids by using the developer tool in the browser while looking at the trafic in [Entur's travel planer](https://en-tur.no).

View File

@ -0,0 +1,20 @@
---
layout: page
title: "Freebox Sensor"
description: "Instructions on how to integrate sensors from a Freebox router into Home Assistant."
date: 2018-05-16 23:00
sidebar: true
comments: false
sharing: true
footer: true
logo: freebox.svg
ha_category: Network
ha_release: "0.85"
ha_iot_class: "Local Polling"
---
This platform offers you sensors to monitor a Freebox router. The monitored conditions are
instant upload and download rates in KB/s.
This requires you to have set up the [Freebox component](/components/freebox/)

View File

@ -0,0 +1,39 @@
---
layout: page
title: "GTT"
description: "Instructions on how to integrate timetable data for a GTT stop within Home Assistant."
date: 2018-11-13 12:09
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Transport
logo: gtt.png
ha_iot_class: "Cloud Polling"
ha_release: 0.85
---
The `gtt` sensor will give you the departure time of the next bus at the given stop.
To enable this sensor, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: gtt
stop: '1080'
bus_name: '58B'
```
{% configuration %}
stop:
description: The name of the stop.
required: true
type: string
bus_name:
description: The name of the choosen bus.
required: false
type: string
{% endconfiguration %}
The data is coming from the [gtt.to.it](http://www.gtt.to.it/cms/) website.

View File

@ -0,0 +1,75 @@
---
layout: page
title: "Islamic Prayer Times"
description: "Instructions on how to integrate the Islamic Prayer Times sensor within Home Assistant."
date: 2018-12-09 00:00
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Sensor
ha_iot_class: "Cloud Polling"
ha_release: "0.85"
---
The Islamic Prayer Times (`islamic_prayer_times`) sensor platform displays the various prayer times for Muslims as sensors.
This platform calculates prayer times using the following calculation methods:
- University of Islamic Sciences in Karachi
- Islamic Society of North America
- Muslim World League
- Umm Al-Qura University in Makkah
## {% linkable_title Configuration %}
To enable this sensor in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: islamic_prayer_times
```
{% configuration %}
sensors:
required: false
default: "['fajr', 'dhuhr', 'asr', 'maghrib', 'isha']"
type: list
description: List of available sensors.
keys:
fajr:
description: Show the fajr prayer time for today.
sunrise:
description: Show the sunrise for today which is the end of fajr prayer. This is a calculated field and may not necessarily be the same as the astronomical sunrise.
dhuhr:
description: Show the dhuhr prayer time for today.
asr:
description: Show the asr prayer time for today.
maghrib:
description: Show the maghrib prayer time for today.
isha:
description: Show the isha prayer time for today.
midnight:
description: Show the midnight for today which is the end of isha prayer. This is a calculated field and is not the same as 12AM.
calculation_method:
required: false
default: 'isna'
type: string
description: "The calculation method used for prayer times. Must be one of: `karachi`, `isna`, `mwl`, `makkah`."
{% endconfiguration %}
```yaml
# Example configuration.yaml entry for all available sensors using a non-default calculation method
sensor:
- platform: islamic_prayer_times
calculation_method: makkah
sensors:
- fajr
- sunrise
- dhuhr
- asr
- maghrib
- isha
- midnight
```

View File

@ -78,9 +78,13 @@ payload_not_available:
required: false
type: string
default: offline
json_attributes_topic:
description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes.
required: false
type: string
json_attributes:
description: A list of keys to extract values from a JSON dictionary payload and then set as sensor attributes.
reqired: false
description: (Deprecated, replaced by json_attributes_topic) A list of keys to extract values from a JSON dictionary payload and then set as sensor attributes.
required: false
type: list, string
unique_id:
description: "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception."
@ -126,9 +130,9 @@ device:
In this section you find some real-life examples of how to use this sensor.
### {% linkable_title JSON attributes configuration %}
### {% linkable_title JSON attributes topic configuration %}
The example sensor below shows a configuration example which uses JSON in the state topic to add extra attributes. It also makes use of the `availability` topic. Attributes can then be extracted in [Templates](/docs/configuration/templating/#attributes). For example, to extract the `ClientName` attribute from the sensor below, use a template similar to: {% raw %}`{{ state_attr('sensor.bs_rssi', 'ClientName') }}`{% endraw %}.
The example sensor below shows a configuration example which uses a JSON dict: `{"ClientName": <string>, "IP": <string>, "MAC": <string>, "RSSI": <string>, "HostName": <string>, "ConnectedSSID": <string>}` in a separate topic to add extra attributes. It also makes use of the `availability` topic. Attributes can then be extracted in [Templates](/docs/configuration/templating/#attributes). For example, to extract the `ClientName` attribute from the sensor below, use a template similar to: {% raw %}`{{ state_attr('sensor.bs_rssi', 'ClientName') }}`{% endraw %}.
{% raw %}
```yaml

View File

@ -89,6 +89,8 @@ modules:
description: Wifi status per Base station
battery_vp:
description: Current battery status per module.
battery_percent:
description: Percentage of battery remaining per module.
{% endconfiguration %}
### {% linkable_title Find your modules name %}

View File

@ -0,0 +1,51 @@
---
layout: page
title: "NMBS Sensor"
description: "Instructions on how to integrate timetable data for traveling on the NMBS Belgian Railway within Home Assistant."
date: 2018-11-24 13:47
sidebar: true
comments: false
sharing: true
footer: true
logo: sncb_nmbs.gif
ha_category: Transport
ha_iot_class: "Cloud Polling"
ha_release: 0.85
---
The `nmbs` platform will create sensors for monitoring travel time and information between 2 stations.
## {% linkable_title Configuration %}
To enable this sensor, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
sensor:
- platform: nmbs
station_from: "STATION_1"
station_to: "STATION_2"
station_live: "STATION_1"
```
The stations can only be provided by their standard names and not ids. The list of stations can be checked on the NMBS/SCNB website but for most accurate results check them on the [iRail API page](https://api.irail.be/stations/) which this component uses internally.
{% configuration %}
station_from:
description: The station where the connection departs.
required: true
type: string
station_to:
description: The station where the connection arrives.
required: true
type: string
station_live:
description: Setting this will create another sensor to monitor the liveboard in a station.
required: false
type: string
name:
description: Name to use in the frontend.
required: false
type: string
default: "`NMBS`, `NMBS Live` for the liveboard sensor when set."
{% endconfiguration %}

View File

@ -0,0 +1,64 @@
---
layout: page
title: "PrezziBenzina Sensor"
description: "Instructions on how to integrate PrezziBenzina sensors within Home Assistant."
date: 2018-12-14 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: prezzibenzina.png
ha_category: Energy
ha_release: 0.85
ha_iot_class: "Cloud Polling"
---
The `prezzibenzina` platform allows you to monitor the fuel prices with [PrezziBenzina.it](https://www.prezzibenzina.it/) from within Home Assistant and setup automations based on the information.
## {% linkable_title Setup %}
To use this sensor you need the station ID. To get this information go to [PrezziBenzina.it](https://www.prezzibenzina.it/) with your browser and find your station. Then copy the ID from the URL bar.
```text
https://www.prezzibenzina.it/distributori/STATION_ID/
```
## {% linkable_title Configuration %}
To enable this sensor, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
sensor:
- platform: prezzibenzina
station: STATION_ID
```
{% configuration %}
station:
description: The ID of the station you want to use.
required: true
type: string
fuel_types:
description: "The types of fuels you want to track. Allowed values are `Benzina`, `Benzina speciale`, `Diesel`, `Diesel speciale`, `GPL` or `Metano`."
required: false
type: list
name:
description: The name of the station.
required: false
type: string
{% endconfiguration %}
## {% linkable_title Full example %}
This is a full example of the sensor:
```yaml
sensor:
- platform: prezzibenzina
station: <id>
fuel_types:
- "Benzina"
- "GPL"
name: "Station"
```

View File

@ -0,0 +1,105 @@
---
layout: page
title: "SolarEdge Sensor"
description: "Instructions on how to integrate SolarEdge sensor within Home Assistant."
date: 2018-12-04 14:00
sidebar: true
comments: false
sharing: true
footer: true
logo: solaredge.png
ha_category: Sensor
ha_release: 0.85
ha_iot_class: "Cloud Polling"
---
The `solaredge` platform uses the [SolarEdge Monitoring API](https://www.solaredge.com/sites/default/files/se_monitoring_api.pdf) to allow you to get details from your SolarEdge solar power setup and integrate these in your Home Assistant installation.
<p class='note'>
The SolarEdge Monitoring API has a daily rate limit of 300 requests. In order to stay under this limit, and alow for some additional requests, the `solaredge` platform will update the site overview every 5 minutes.
</p>
## {% linkable_title Configuration %}
To use the SolarEdge sensors in your installation, add the following to your configuration.yaml file:
{% raw %}
```yaml
# Example configuration.yaml entry
sensor:
- platform: solaredge
api_key: API_KEY
site_id: SITE_ID
monitored_conditions:
- current_power
- last_day_data
```
{% endraw %}
{% configuration %}
api_key:
description: Your SolarEdge Site API key.
required: true
type: string
site_id:
description: The id of your SolarEdge Site.
required: true
type: string
name:
description: Let you overwrite the name of the device in the frontend.
required: false
default: SolarEdge
type: string
monitored_conditions:
description: SolarEdge Site information to be monitored. The following conditions can be monitored.
required: false
type: list
default: current_power
keys:
life_time_data:
description: Lifetime energy generated at your SolarEdge Site in Wh
last_year_data:
description: Energy generated this year at your SolarEdge Site in Wh
last_month_data:
description: Energy generated this month at your SolarEdge Site in Wh
last_day_data:
description: Energy generated today at your SolarEdge Site in Wh
current_power:
description: Current generated power in W
{% endconfiguration %}
If no **monitored_conditions** are specified, only **current_power** will be enabled.
### {% linkable_title Full configuration sample %}
A full configuration entry would look like the sample below.
{% raw %}
```yaml
# Example configuration.yaml entry
sensor:
- platform: solaredge
api_key: API_KEY
site_id: SITE_ID
name: SolarEdge
monitored_conditions:
- current_power
- last_day_data
- last_month_data
- last_year_data
- life_time_data
```
{% endraw %}
In case you would like to convert the values for example to kWh instead of the default Wh, you can use the [template platform](/components/sensor.template/).
{% raw %}
```yaml
# Example configuration.yaml entry for template platform
sensors:
platform: template
sensors:
solaredge_last_year_data_template:
value_template: '{{(states.sensor.solaredge_last_year_data.state | float / 1000) | round(2)}}'
```
{% endraw %}

View File

@ -26,7 +26,7 @@ The `tautulli` sensor platform will monitor activity on a given [Tautulli Server
- Transcode count
- WAN bandwidth
More user statistics can be added with the `monitored_variables` configuration option, this will add one attribute per user in addition to the users current `activity`.
More user statistics can be added with the `monitored_conditions` configuration option, this will add one attribute per user in addition to the users current `activity`.
## {% linkable_title Setup %}
@ -58,6 +58,10 @@ port:
required: false
default: 8181
type: integer
path:
description: The Base Url path of your Tautulli server.
required: false
type: string
ssl:
description: Use HTTPS to connect to Tautulli server. *NOTE* A host *cannot* be an IP address when this option is enabled.
required: false
@ -67,11 +71,27 @@ monitored_users:
description: A list of Tautulli users you want to monitor, if not set this will monitor **all** users.
required: false
type: list
monitored_variables:
monitored_conditions:
description: A list of attributes to expose for each Tautulli user you monitor, every key in the `session` [section here][tautulliapi] can be used.
required: false
type: list
{% endconfiguration %}
## {% linkable_title Full example for the configuration %}
```yaml
# Example configuration.yaml entry
sensor:
- platform: tautulli
api_key: TAUTULLI_API_KEY
host: TAUTULLI_HOST
monitored_users:
- USER_1
- USER_2
monitored_conditions:
- ATTRIBUTE_1
- ATTRIBUTE_2
```
[tautulli]: https://tautulli.com
[tautulliapi]: https://github.com/Tautulli/Tautulli/blob/master/API.md#get_activity

View File

@ -44,6 +44,11 @@ ssl:
required: false
default: false
type: boolean
verify_ssl:
description: Allows you do disable checking of the SSL certificate.
required: false
default: false
type: boolean
name:
description: This parameter allows you to specify a friendly name to send to Splunk as the host, instead of using the name of the HEC.
required: false

View File

@ -0,0 +1,16 @@
---
layout: page
title: "Lutron Switch"
description: "Instructions on how to setu p the Lutron switches within Home Assistant."
date: 2018-10-09 09:00
sidebar: true
comments: false
sharing: true
footer: true
logo: lutron.png
ha_category: Switch
ha_iot_class: "Local Polling"
ha_release: 0.85
---
To get your Lutron switches working with Home Assistant, follow the instructions for the general [Lutron component](/components/lutron/).

View File

@ -0,0 +1,69 @@
---
layout: page
title: "Pencom"
description: "How to use Pencom Designs 8 channel relay boards."
date: 2018-10-05 23:00
sidebar: true
comments: false
sharing: true
footer: true
logo: pencom.png
ha_category: Switch
ha_release: 0.85
ha_iot_class: "Local Polling"
---
[Pencom Design](http://www.pencomdesign.com/) is a manufacturer of computer controlled relay, I/O and custom boards for commercial and industrial applications. This interface to [Pencom's Relay Control Boards](https://www.pencomdesign.com/relay-boards/) is designed to work over an ethernet to serial adapter (NPort). Each switch (relay) can be turned on/off, and the state of the relay can be read.
## {% linkable_title Configuration %}
The Pencom relays can be daisychained to allow for up to 8 boards.
``` yaml
# Example configuration.yaml entry
switch:
- platform: pencom
host: host.domain.com
port: 4001
boards: 2
relays:
- name: "Irrigation"
addr: 0
- name: "Upper Entry Door"
addr: 1
- name: "Fountain"
addr: 0
board: 2
```
{% configuration %}
host:
description: The IP address of the ethernet to serial adapter. It is assumed that the adapter has been preconfigured.
required: true
type: string
port:
description: The port of the ethernet to serial adapter.
required: true
type: port (positive integer between 1-65535)
boards:
description: Number of boards daisychained together (default is 1).
required: false
type: int between 1 and 8
relays:
description: List of relays.
required: true
type: list
keys:
name:
description: The name of the switch (component).
required: true
type: string
addr:
description: The relay on the board starting with 0.
required: true
type: int
board:
description: The board number (defaults to 1).
required: false
type: int between 1 and 8
{% endconfiguration %}

View File

@ -0,0 +1,122 @@
---
layout: page
title: "RaspyRFM Switch"
description: "Instructions on how to integrate RaspyRFM switches into Home Assistant."
date: 2018-12-08
sidebar: true
comments: false
sharing: true
footer: true
logo: seegelsysteme.png
ha_category: Switch
ha_release: 0.85
ha_iot_class: "Assumed State"
---
The `raspyrfm` component adds support for cheap RC 433 MHz outlets via one of the supported gateways.
Initially, this component was created to support the Simple Solutions `ConnAir` gateway which has been discontinued. There are custom alternatives that reimplemented the protocol used by the ConnAir though like this [ConnAir emulator](https://github.com/Phunkafizer/RaspyRFM/blob/master/connair.py) which can be used in conjunction with the [RaspyRFM-II](https://www.seegel-systeme.de/produkt/raspyrfm-ii) RC module for a Raspberry Pi.
Other vendors of 433 MHz RC outlets have also created gateways that use a very similar protocol and can also be used with this component like the Intertechno [ITGW-433 LAN Gateway](https://www.intertechno24.de/LAN-Gateway/Gateway-ITGW-433.html)
```yaml
# Example configuration.yaml entry
switch:
platform: raspyrfm
switches:
- controlunit_manufacturer: Intertechno
controlunit_model: CMR 1000
channel_config: # Note that keys used here vary between control units
master: A
slave: 1
```
{% configuration %}
gateway_manufacturer:
description: Manufacturer of the gateway.
required: false
default: Seegel Systeme
type: string
gateway_model:
description: Model of the gateway.
required: false
default: RaspyRFM
type: string
host:
description: Host of the gateway.
required: false
default: 127.0.0.1
type: string
host:
description: Port of the gateway.
required: false
default: depends on the gateway model
type: integer
switches:
description: List of switches that can be controlled with this gateway.
required: true
type: list
keys:
name:
description: Name for the device.
required: false
default: Unnamed Device
type: string
controlunit_manufacturer:
description: Manufacturer of the control unit.
required: true
type: string
controlunit_model:
description: Model of the control unit.
required: true
type: string
channel_config:
description: Channel configuration of the control unit. The exact keys needed depend on the control unit manufacturer and model.
required: true
type: dict
{% endconfiguration %}
### {% linkable_title Device support %}
Have a look at the underlying library [raspyrfm-client](https://github.com/markusressel/raspyrfm-client) to check what gateways and control units (outlets) are supported.
### {% linkable_title Channel configuration %}
Depending on the control unit the channel config can have varying formats. Have a look at the underlying library [raspyrfm-client](https://github.com/markusressel/raspyrfm-client) to find out about a specific model.
### {% linkable_title Switch state %}
Initially, the state of a switch is unknown. When the switch is turned on or off (via frontend) the state is known and will be shown in the frontend.
<p class='note warning'>
Note that due to the way those cheap RC units work it is **not possible to query their current state**. Therefore the only way to preserve a consistent state within Home Assistant is to only use Home Assistant as the controller.
</p>
### {% linkable_title Full example %}
```yaml
switch:
platform: raspyrfm
gateway_manufacturer: Seegel Systeme
gateway_model: RaspyRFM
host: 127.0.0.1 # Optional
port: 49880 # Optional
switches:
- name: My Switch
controlunit_manufacturer: Intertechno
controlunit_model: CMR 1000
channel_config:
master: A
slave: 1
- name: My other Switch
controlunit_manufacturer: Brennenstuhl
controlunit_model: RCS 1000 N Comfort
channel_config:
1: 1
2: 1
3: 1
4: 1
5: 1
CH: A
```

View File

@ -15,6 +15,4 @@ ha_iot_class: "Local Push"
The `wemo` platform allows you to control your [Belkin WeMo](http://www.belkin.com/us/p/P-F7C027/) switches from within Home Assistant. This includes support for Wemo enabled [Mr. Coffee](http://www.mrcoffee.com/wemo-landing-page.html) smart coffee makers.
They will be automatically discovered if the discovery component is enabled.
For more configuration information see the [WeMo component](/components/wemo/) documentation.
WeMo devices are automatically discovered if the `discovery` component is enabled. For more configuration information, see the [WeMo component](/components/wemo/) documentation.

View File

@ -21,12 +21,16 @@ Please follow the instructions on [Retrieving the Access Token](/components/vacu
### Xiaomi Smart WiFi Socket
Supported models: `chuangmi.plug.m1`, `chuangmi.plug.v2`, `chuangmi.plug.hmi205`
* Power (on, off)
* Attributes
- Temperature
### Xiaomi Chuangmi Plug V1
Supported models: `chuangmi.plug.v1`, `chuangmi.plug.v3`
* Power (on, off)
* USB (on, off)
* Attributes
@ -34,6 +38,8 @@ Please follow the instructions on [Retrieving the Access Token](/components/vacu
### Xiaomi Smart Power Strip
Supported models: `qmi.powerstrip.v1`, `zimi.powerstrip.v2`
* Power (on, off)
* Wifi LED (on, off)
* Power Price (0...999)
@ -72,7 +78,7 @@ name:
type: string
default: Xiaomi Miio Switch
model:
description: The model of your miio device. Valid values are `chuangmi.plug.v1`, `qmi.powerstrip.v1`, `zimi.powerstrip.v2`, `chuangmi.plug.m1` and `chuangmi.plug.v2`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available.
description: The model of your miio device. Valid values are `chuangmi.plug.v1`, `qmi.powerstrip.v1`, `zimi.powerstrip.v2`, `chuangmi.plug.m1`, `chuangmi.plug.v2`, `chuangmi.plug.v3` and `chuangmi.plug.hmi205`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available.
required: false
type: string
{% endconfiguration %}

View File

@ -15,7 +15,7 @@ ha_qa_scale: internal
The `timer` component aims to simplify automations based on (dynamic) durations.
When a timer finishes or gets canceled the corresponding events are fired. This allows you to differentiate if a timer has switched from `active` to `idle` because the given duration has elapsed or it has been canceled. To control timers in your automations you can use the services mentioned below. When calling the `start` service on a timer that is already running, it resets the duration it will need to finish and restart the timer without triggering any events. This for example makes it easy to create timed lights that get triggered by motion.
When a timer finishes or gets canceled the corresponding events are fired. This allows you to differentiate if a timer has switched from `active` to `idle` because the given duration has elapsed or it has been canceled. To control timers in your automations you can use the services mentioned below. When calling the `start` service on a timer that is already running, it resets the duration it will need to finish and restart the timer without triggering a canceled or finished event. This, for example, makes it easy to create timed lights that get triggered by motion. Starting a timer triggers a started event unless the timer is paused, in that case, it triggers a restarted event.
<p class='note warning'>
With the current implementation timers don't persist over restarts. After a restart they will be idle again, together with their initial configuration.
@ -60,7 +60,10 @@ Pick an icon that you can find on [materialdesignicons.com](https://materialdesi
| Event | Description |
| --------------- | ----------- |
| timer.cancelled | Fired when a timer has been canceled |
| timer.finished | Fired when a timer has completed |
| timer.finished | Fired when a timer has completed |
| timer.started | Fired when a timer has been started|
| timer.restarted | Fired when a timer has been restarted |
| timer.paused | Fired when a timer has been paused |
## {% linkable_title Services %}

View File

@ -1,7 +1,7 @@
---
layout: page
title: "IKEA Trådfri (Tradfri)"
description: "Access and control your Zigbee-based IKEA Trådfri (Tradfri) devices."
description: "Access and control your IKEA Trådfri Gateway (a.k.a. IKEA Tradfri hub/bridge) and via it its connected Zigbee-based devices."
date: 2017-04-12 22.04
sidebar: true
featured: true
@ -14,12 +14,12 @@ ha_iot_class: "Local Polling"
ha_release: 0.43
---
The `tradfri` component supports for the IKEA Trådfri (Tradfri) gateway. The gateway can control lights connected to it and Home Assistant will automatically discover its presence on your network, if `discovery:` is present in your `configuration.yaml` file.
The `tradfri` component support the IKEA Trådfri Gateway (a.k.a. IKEA Tradfri hub/bridge). The gateway can control compatible Zigbee-based lights (certified ZigBee Light Link products) connected to it and Home Assistant will automatically discover the gateways presence on your local network, if `discovery:` is present in your `configuration.yaml` file.
You will be prompted to configure the gateway through the Home Assistant interface. Enter the security key when prompted and click configure.
You will be prompted to configure the gateway through the Home Assistant interface. The configuration process is very simple, when prompted, enter the security key printed on the physical sticker that is on the bottom of the IKEA Trådfri Gateway, then click configure.
<p class='note'>
If you see an "Unable to connect" message, restart the gateway and try again. Don't forget to assign a permanent IP to your Trådfri gateway.
If you see an "Unable to connect" message, restart the gateway and try again. Don't forget to assign a permanent IP to your IKEA Trådfri Gateway in your router / DHCP-server.
</p>
## {% linkable_title Configuration %}
@ -34,11 +34,11 @@ tradfri:
{% configuration %}
host:
description: "The IP address or hostname of your Trådfri gateway."
description: "The IP address or hostname of your IKEA Trådfri Gateway."
required: true
type: string
allow_tradfri_groups:
description: "Set this to `true` to allow Home Assistant to import the groups defined on the Trådfri bridge."
description: "Set this to `true` to allow Home Assistant to import the groups defined on the IKEA Trådfri Gateway."
required: false
type: boolean
default: false
@ -48,7 +48,7 @@ allow_tradfri_groups:
### {% linkable_title Firmware updates %}
After updating the firmware of your Trådfri gateway it might be necessary to repeat the configuration process. If you encounter problems, delete the `.tradfri_psk.conf` file in your `.homeassistant` directory, restart Home Assistant, when prompted enter the security key and click configure, just like during initial setup. Possible errors: `Fatal DTLS error: code 115`.
After updating the firmware of your IKEA Trådfri Gateway it might be necessary to repeat the configuration process. If you encounter problems, delete the `.tradfri_psk.conf` file in your `.homeassistant` directory, restart Home Assistant, when prompted enter the security key and click configure, just like during initial setup. Possible errors: `Fatal DTLS error: code 115`.
### {% linkable_title Compilation issues %}

View File

@ -18,15 +18,15 @@ The `wemo` component is the main component to integrate various [Belkin WeMo](ht
## {% linkable_title Configuration %}
{% configuration %}
static:
description: One or more static IP adresses for WeMo to use
required: false
type: list
discovery:
description: Setting this value to false will prevent the automatic discovery of WeMo devices by the wemo platform and the discovery platform (static devices will still be discovered)
required: false
type: boolean
default: true
static:
description: One or more static IP adresses for WeMo to use
required: false
type: list
{% endconfiguration %}
Supported devices will be automatically discovered if the optional `discovery` configuration item is omitted or set to true or if the `discovery` component is enabled. If the `discovery` configuration item is set to false, then automatic discovery of WeMo devices is disabled both for the `wemo` component and for the `discovery` component. Loading the `wemo` component with the `discovery` configuration item omitted or set to true will scan the local network for WeMo devices, even if you are not using the `discovery` component.

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Zigbee Home Automation"
description: "Instructions on how to integrate your Zigbee Home Automation within Home Assistant."
description: "Instructions on how to integrate your Zigbee Home Automation (ZHA) devices within Home Assistant."
date: 2017-02-22 19:59
sidebar: true
comments: false
@ -14,7 +14,7 @@ ha_iot_class: "Local Polling"
---
[Zigbee Home Automation](http://www.zigbee.org/zigbee-for-developers/applicationstandards/zigbeehomeautomation/)
integration for Home Assistant allows you to connect many off-the-shelf Zigbee devices to Home Assistant, using a compatible Zigbee radio.
integration for Home Assistant allows you to connect many off-the-shelf Zigbee based devices to Home Assistant, using one of the available Zigbee radio modules compatible with [zigpy](https://github.com/zigpy/zigpy) (an open source Python library implementing a Zigbee stack, which in turn relies on seperate libraries which can each interface a with Zigbee radio module a different manufacturer).
There is currently support for the following device types within Home Assistant:
@ -24,12 +24,14 @@ There is currently support for the following device types within Home Assistant:
- [Switch](../switch.zha)
- [Fan](../fan.zha)
Known working Zigbee radios:
Known working Zigbee radio modules:
- 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)
- EmberZNet based radios using the EZSP protocol (via the [bellows](https://github.com/zigpy/bellows) library for zigpy)
- [Nortek GoControl QuickStick Combo Model HUSBZB-1 (Z-Wave & Zigbee USB Adapter)](https://www.nortekcontrol.com/products/2gig/husbzb-1-gocontrol-quickstick-combo/)
- [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)
- XBee Zigbee based radios (via the [zigpy-xbee](https://github.com/zigpy/zigpy-xbee) library for zigpy)
- Digi XBee Series 2C (S2C) modules
## {% linkable_title Configuration %}
@ -62,6 +64,11 @@ database_path:
description: _Full_ path to the database which will keep persistent network data.
required: true
type: string
enable_quirks:
description: Enable quirks mode for devices where manufacturers didn't follow specs.
required: false
type: boolean
default: true
{% endconfiguration %}
To add new devices to the network, call the `permit` service on the `zha` domain. Do this by clicking the Service icon in Developer tools and typing `zha.permit` in the **Service** dropdown box. Next, follow the device instructions for adding, scanning or factory reset.

View File

@ -10,6 +10,8 @@ footer: true
redirect_from: /topics/platform_options/
---
<p class='note info'>These options are being phased out and are only available for single platform integrations.</p>
Some components or platforms (those that are based on the [entity](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/helpers/entity.py) class) allows various extra options to be set.
### {% linkable_title Entity namespace %}

View File

@ -132,7 +132,7 @@ You may need to adjust the paths in the script depending on your Home Assistant
#!/bin/bash
cd /home/homeassistant/.homeassistant
source /srv/homeassistant/homeassistant_venv/bin/activate
source /srv/homeassistant/bin/activate
hass --script check_config
git add .

View File

@ -255,7 +255,6 @@ Setting up a climate component (heat only) with abbreviated configuration variab
```yaml
{
"name":"Livingroom",
"dev_cla":"climate",
"mode_cmd_t":"homeassistant/climate/livingroom/thermostatModeCmd",
"mode_stat_t":"homeassistant/climate/livingroom/state",
"mode_stat_tpl":"{{value_json.mode}}",

View File

@ -104,7 +104,7 @@ There may be multiple groups, that are used for different purposes. The manual o
#### {% linkable_title Broadcast group %}
Some Z-Wave devices may associate themselves with the broadcast group (group 255). You'll be able to tell if this has happened if opening a door (or triggering a motion sensor) causes lights to come on, and closing the door (or the motion sensor going clear) causes lights to run off. There's no way to clear this from the control panel, but you can use the `zwave.change_association` service:
Some Z-Wave devices may associate themselves with the broadcast node (node 255). You'll be able to tell if this has happened if opening a door (or triggering a motion sensor) causes lights to come on, and closing the door (or the motion sensor going clear) causes lights to run off. You can get rid of this by selecting any target node. If the group has node 255 in it, a *Remove broadcast* button will appear. You can also use the `zwave.change_association` service:
```json
{"association": "remove", "node_id": 3, "group": 1, "target_node_id": 255}

View File

@ -10,7 +10,6 @@
<b>{% active_link /docs/installation/ Installation %}</b>
<ul>
<li>{% active_link /hassio/ Hass.io %}</li>
<li>{% active_link /docs/installation/virtualenv/ Python Virtual Env %}</li>
<li>{% active_link /docs/installation/hassbian/ Hassbian %}</li>
<li>{% active_link /docs/installation/updating/ Updating %}</li>
<li>{% active_link /docs/installation/troubleshooting/ Troubleshooting %}</li>

View File

@ -24,7 +24,11 @@ type:
type: string
entities:
required: true
description: List of entity IDs.
description: List of entity IDs. Either this or the `geo_location_sources` configuration option is required.
type: list
geo_location_sources:
required: true
description: List of geolocation sources. All current entities with that source will be displayed on the map. See [Geo Location](/components/geo_location/) platform for valid sources. Either this or the `entities` configuration option is required.
type: list
title:
required: false
@ -61,3 +65,11 @@ default_zoom:
- device_tracker.demo_paulus
- zone.home
```
```yaml
- type: map
geo_location_sources:
- nsw_rural_fire_service_feed
entities:
- zone.home
```

View File

@ -147,6 +147,15 @@ Display a camera image as background:
camera_image: camera.demo_camera
```
Display a camera image without additional entities:
```yaml
- type: picture-glance
title: Front garden
entities: []
camera_image: camera.front_garden_camera
```
Use different images based on entity state:
```yaml

View File

@ -0,0 +1,894 @@
---
layout: post
title: "0.85: ESPHome, Plum Lightpad, OpenSenseMap"
description: "First release of 2019. 20 new integrations, including ESPHome, the best way to integrate ESP chips into Home Assistant."
date: 2019-01-09 00:01:00
date_formatted: "January 9, 2019"
author: Paulus Schoutsen
author_twitter: balloob
comments: true
categories: Release-Notes
og_image: /images/blog/2019-01-release-85/components.png
---
<a href='/components/#version/0.85'><img src='/images/blog/2019-01-release-85/components.png' style='border: 0;box-shadow: none;'></a>
<p class='note warning'>
Slugify changed, which can impact entity ID creation if the entities had names with either a `-` or characters outside of A-Z and the integration has no unique IDs. We now better handle the characters and substitute it with an alternative instead of removing that character.
</p>
Read this breaking change warning? 👆 Good. Let's get started. This is the first release of 2019 and it covers a whopping 4 weeks, as we skipped the last release of the year to focus on friends and family. This is going to be a great year and we're planning a lot of cool stuff. If you haven't seen it yet, check the [State of the Union](/blog/2018/11/16/state-of-the-union/) to see what we have planned.
We've been so good at taking a break, that we pushed Lovelace as the default UI to 86 to make sure it's super polished. We expect just bug fixes between 85 and 86, so feel free to check it out!
We're also busy churning through the backlog of open PRs for Home Assistant (170 as of now), if you did a contribution over the past 4 weeks, we'll get to it soon.
During the break we've launched the [Home Assistant Data Science Portal](https://data.home-assistant.io/). It explains all the data that Home Assistant stores and how you can get a data science environment going to explore it yourself.
This release also features native support for [ESPHome](https://esphomelib.com/esphomeyaml/index.html), a system for managing ESP8266 and ESP32 microchips with a YAML config inspired by Home Assistant. The native API replaces MQTT for ESPHome firmwares and is designed specifically for Home Assistant and absolute efficiency. 🏎 It also comes with a Hass.io add-on to make configuration even easier.
## {% linkable_title New Platforms %}
- Add NMBS (Belgian railway) sensor platform ([@thibmaek] - [#18610]) ([sensor.nmbs docs]) (new-platform)
- Add air pollutants component ([@fabaff] - [#18707]) ([air_pollutants docs]) ([demo docs]) (new-platform)
- Adding support for Plum Lightpad ([@ColinHarrington] - [#16576]) ([plum_lightpad docs]) ([binary_sensor.plum_lightpad docs]) ([light.plum_lightpad docs]) ([sensor.plum_lightpad docs]) (new-platform)
- Add Ambient Weather PWS Sensor component ([@tmd224] - [#18551]) ([sensor.ambient_station docs]) (new-platform)
- Add Brottsplatskartan sensor ([@chrillux] - [#19018]) ([sensor.brottsplatskartan docs]) (new-platform)
- Add native ESPHome API component ([@OttoWinter] - [#19334]) (new-platform)
- Add GTT Sensor ([@eliseomartelli] - [#18449]) ([sensor.gtt docs]) (new-platform)
- Add openSenseMap air pollutants platform ([@fabaff] - [#19357]) ([air_pollutants docs]) (new-platform)
- Add Prezzibenzina (Italian Fuel Price) Sensor ([@eliseomartelli] - [#19297]) ([sensor.prezzibenzina docs]) (new-platform)
- Add sensor platform for SolarEdge Monitoring API ([@GidoHakvoort] - [#18846]) ([sensor.solaredge docs]) (new-platform)
- Add Mythic Beasts DNSAPI Component ([@thinkl33t] - [#18333]) ([mythicbeastsdns docs]) (new-platform)
- Add new sensor platform to expose Islamic prayer times ([@uchagani] - [#19444]) ([sensor.islamic_prayer_times docs]) (new-platform)
- Add Lutron Homeworks component ([@dubnom] - [#18311]) ([homeworks docs]) ([binary_sensor.homeworks docs]) ([light.homeworks docs]) (new-platform)
- Improve Lutron RadioRA2 support, adding switches and scenes ([@cdheiser] - [#18330]) ([lutron docs]) ([scene.lutron docs]) ([switch.lutron docs]) (new-platform)
- Pencom ([@dubnom] - [#19369]) ([switch.pencom docs]) (new-platform)
- Add AfterShip sensor for packages ([@maxandersen] - [#18034]) ([sensor.aftership docs]) (new-platform)
- Add Freebox component with sensors and device tracker ([@SNoof85] - [#18472]) ([device_tracker docs]) ([freebox docs]) ([sensor.freebox docs]) (breaking change) (new-platform)
- LCN component and light platform ([@alengwenus] - [#18621]) ([lcn docs]) ([light.lcn docs]) (new-platform)
- Add RaspyRFM switch platform ([@markusressel] - [#19130]) ([switch.raspyrfm docs]) (new-platform)
- Add IDTECK proximity card component ([@dubnom] - [#18309]) ([idteck_prox docs]) (new-platform)
- Add ness alarm control panel using nessclient ([@nickw444] - [#18463]) ([ness_alarm docs]) ([alarm_control_panel.ness_alarm docs]) ([binary_sensor.ness_alarm docs]) (new-platform)
## {% 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 %}
- Targetting all entities in a domain by not sending an entity_id to a service is now deprecated. Instead, send `entity_id: all` if you want to target all. The old method will work for a couple of releases more, but will print a warning. Please migrate. ([@balloob] - [#19006]) (breaking change)
- The default interval of the weather component was aligned with the sensor component and is now 30 seconds instead of 15 seconds. ([@fabaff] - [#19186]) ([weather docs]) (breaking change)
- In order to fix the below bug, default entity_ids will change (for example, `sensor.17track_packages_delivered` will change to `sensor.seventeentrack_packages_delivered)`. ([@bachya] - [#19213]) ([sensor.seventeentrack docs]) (breaking change)
- Change `STATE_AUTO` to `STATE_HEAT` and `STATE_AWAY` to `STATE_ECO` to conform to climate DOMAIN standards. Change made to fix Alexa/Google Assistant support for this component. ([@marchingphoenix] - [#19242]) ([climate.eq3btsmart docs]) (breaking change)
- Add config flow for Daikin. Removes configuration option: `monitored_conditions`. Also removes configuration settings for `sensor.daikin`. ([@fredrike] - [#19182]) ([daikin docs]) ([climate.daikin docs]) ([sensor.daikin docs]) (breaking change)
- Add traccar motion, speed and battery_level attributes. Attributes will only exist if there is data to show for that attribute.
([@ludeeus] - [#19090]) ([device_tracker docs]) (breaking change)
- Use unicode slugify. Characters that are not between A and Z are now replaced with their latin equivalent. Dashes are replaced with an underscore. ([@pvizeli] - [#19192]) (breaking change)
- Various enhancements for WeMo component/platforms. `entity_id` is now required for the `wemo_set_humidity` service. ([@sqldiablo] - [#19419]) ([wemo docs]) ([binary_sensor.wemo docs]) ([fan.wemo docs]) ([light.wemo docs]) ([switch.wemo docs]) (breaking change)
- seven_segments will incorporate the entity name into the file name changing from former hardcoded `ocr.png` to `ssocr-(ss_entity_name).png` to make each ssocr input data file unique. ([@jumpkick] - [#18634]) ([image_processing.seven_segments docs]) (breaking change)
- Update pylaunches dependency to 0.2.0. The launch_time sensor attribute will now be a datetime which can be used in templates, as opposed to a written word string. ([@DoloresHA] - [#19570]) ([sensor.launch_library docs]) (breaking change)
- Add Freebox component with sensors and device tracker. Static configuration for freebox in device_tracker section must be deleted. Only the config of Freebox component is needed. ([@SNoof85] - [#18472]) ([device_tracker docs]) ([freebox docs]) ([sensor.freebox docs]) (breaking change) (new-platform)
- Refactored KNX climate component to be able to support operation types. See the documentation for the new operation modes. ([@marvin-w] - [#19546]) ([knx docs]) ([climate.knx docs]) (breaking change)
- Move WeMo device discovery to run after home assistant start so it won't block initial component setup from completing quickly. ([@sqldiablo] - [#19563]) ([wemo docs]) ([binary_sensor.wemo docs]) ([switch.wemo docs]) (breaking change)
## {% linkable_title Beta Fixes %}
- Add ESPHome native API discovery ([@OttoWinter] - [#19399]) ([esphome docs]) (beta fix)
- Rename air pollutants to air quality ([@eliseomartelli] - [#19448]) ([air_quality docs]) (beta fix)
- Use manufacturer id only for configure_reporting only when specified. ([@Adminiuga] - [#19729]) ([zha docs]) (beta fix)
- Simplify data_key for a stable unique_id because the order of the dict will not be preserved (Closes: #13522) ([@syssi] - [#19766]) ([cover.xiaomi_aqara docs]) (beta fix)
- Don't slugify unique id ([@syssi] - [#19770]) ([xiaomi_aqara docs]) (beta fix)
- Fix some ESPHome race conditions ([@OttoWinter] - [#19772]) ([esphome docs]) (beta fix)
- Update HAP-python to 2.4.2 ([@cdce8p] - [#19776]) ([homekit docs]) (beta fix)
- Fix a bug in Lutron RadioRA2 Scene support ([@cdheiser] - [#19819]) ([lutron docs]) (beta fix)
- fixes #19814, Daikin config setting ([@fredrike] - [#19823]) ([daikin docs]) (beta fix)
- Bump aioesphomeapi ([@OttoWinter] - [#19838]) (beta fix)
- Resolves #17196, Resolves #18739 - Hue Beyond light fixture errors ([@alistairg] - [#19874]) ([light.hue docs]) (beta fix)
- Fix error when trying to log used UPnP device, if multiple found ([@StevenLooman] - [#19875]) ([upnp docs]) (beta fix)
- Update OZW to 0.1.2 ([@pvizeli] - [#19878]) ([zwave docs]) (beta fix)
- assign user to websocket connection when using legacy_api_password ([@FlorianLudwig] - [#19797]) ([websocket_api docs]) (beta fix)
## {% linkable_title All changes %}
- Upgrade pylint to 2.2.2 ([@scop] - [#18750])
- Add CM17A support ([@swilson] - [#19041]) ([light.x10 docs])
- Set directv unavailable state when errors returned for longer then a minute ([@ehendrix23] - [#19014]) ([media_player.directv docs])
- Bump lakeside requirement to support more Eufy devices ([@mjg59] - [#19080]) ([eufy docs])
- Automatically detect if ipv4/ipv6 is used for cert_expiry ([@speedmann] - [#18916]) ([sensor.cert_expiry docs])
- Support next generation of the Xiaomi Mi Smart Plug (chuangmi.plug.hmi205) ([@syssi] - [#19071]) ([switch.xiaomi_miio docs])
- Fix the Xiaomi Aqara Cube rotate event of the LAN protocol 2.0 (Closes: #18199) ([@syssi] - [#19104]) ([binary_sensor.xiaomi_aqara docs])
- Upgrade Mill library ([@Danielhiversen] - [#19117]) ([climate.mill docs])
- Add Philips Moonlight Bedside Lamp support ([@syssi] - [#18496]) ([light.xiaomi_miio docs])
- update edp_redy version ([@abmantis] - [#19078]) ([edp_redy docs])
- Update Google Assistant services description and request sync timeout ([@edif30] - [#19113])
- Fixed doorbird config without events (empty list) ([@basschipper] - [#19121]) ([doorbird docs])
- Add code support for iAlarm ([@RyuzakiKK] - [#19124]) ([alarm_control_panel.ialarm docs])
- Upgrade youtube_dl to 2018.12.03 ([@fabaff] - [#19139]) ([media_extractor docs])
- Upgrade mypy to 0.650 ([@scop] - [#19150])
- Update geizhals dependency ([@tinloaf] - [#19152]) ([sensor.geizhals docs])
- Upgrade sphinx-autodoc-typehints to 1.5.2 ([@fabaff] - [#19140])
- Upgrade slacker to 0.12.0 ([@fabaff] - [#19142]) ([notify docs])
- Update radiotherm to 2.0.0 and handle change in tstat error detection ([@craftyguy] - [#19107]) ([climate.radiotherm docs])
- Update pygtfs to upstream's 0.1.5 ([@jarondl] - [#19151]) ([sensor.gtfs docs])
- ZHA - Event foundation ([@dmulcahey] - [#19095]) ([zha docs]) ([binary_sensor.zha docs])
- TelldusLive config flow ([@fredrike] - [#18758]) ([tellduslive docs]) ([binary_sensor.tellduslive docs]) ([cover.tellduslive docs]) ([light.tellduslive docs]) ([sensor.tellduslive docs]) ([switch.tellduslive docs])
- Enable alarmdecoder to see open/close state of bypassed RF zones when armed ([@jkeljo] - [#18477]) ([alarmdecoder docs]) ([binary_sensor.alarmdecoder docs])
- Add SCAN_INTERVAL ([@fabaff] - [#19186]) ([weather docs]) (breaking change)
- Restore states for RFLink devices ([@javicalle] - [#18816]) ([rflink docs]) ([cover.rflink docs]) ([light.rflink docs])
- Move daikin to package ([@fredrike] - [#19187]) ([daikin docs])
- Update switchbot library ([@Danielhiversen] - [#19202]) ([switch.switchbot docs])
- add unique_id to SMHI ([@fredrike] - [#19183]) ([weather.smhi docs])
- Fix geizhals crash if no price found ([@tinloaf] - [#19197])
- Add ZHA device handler library ([@dmulcahey] - [#19099]) ([zha docs])
- Add package data attribute to 17track.net summary sensors ([@bachya] - [#19213]) ([sensor.seventeentrack docs]) (breaking change)
- Convert songpal to use asynchronous websocket for state updates ([@rytilahti] - [#19129]) ([media_player.songpal docs])
- Bumped NDMS2 client to 0.0.6 ([@foxel] - [#19244]) ([device_tracker docs])
- RFC: Deprecate auto target all for services and introduce entity_id: * ([@balloob] - [#19006]) (breaking change)
- Make automations log errors ([@balloob] - [#18965]) ([automation docs])
- Re-use connection-pool ([@molobrakos] - [#19249]) ([volvooncall docs])
- Add device registry to MQTT light ([@emontnemery] - [#19013]) ([light.mqtt docs])
- Support for the Harman Kardon AVR ([@Devqon] - [#18471])
- Fix point sensor discovery ([@fredrike] - [#19245]) ([sensor.point docs])
- Resolve IOLinc sensor name ([@teharris1] - [#19050]) ([insteon docs]) ([binary_sensor.insteon docs])
- Expose ZoneMinder availability to Home Assistant ([@rohankapoorcom] - [#18946]) ([camera.zoneminder docs]) ([sensor.zoneminder docs])
- Upgraded enturclient to 0.1.2 ([@hfurubotten] - [#19267]) ([sensor.entur_public_transport docs])
- Synology chat add verify ssl ([@bremor] - [#19276]) ([notify docs])
- Add NMBS (Belgian railway) sensor platform ([@thibmaek] - [#18610]) ([sensor.nmbs docs]) (new-platform)
- Add permission check to light service ([@balloob] - [#19259]) ([light docs])
- Check admin permission before able to manage config entries ([@balloob] - [#19265]) ([config docs])
- Rename is_owner decorator to is_admin ([@balloob] - [#19266]) ([config docs]) ([websocket_api docs])
- home-assistant/home-assistant#17333: update to use DOMAIN constants and standards. ([@marchingphoenix] - [#19242]) ([climate.eq3btsmart docs]) (breaking change)
- Make variable `entity_id` available to value_template for MQTT binary sensor ([@emontnemery] - [#19195]) ([binary_sensor.mqtt docs])
- Set unavailable when unreachable ([@MaxG88] - [#19012]) ([media_player.gpmdp docs])
- Updated ELIQ Online sensor to async API ([@molobrakos] - [#19248]) ([sensor.eliqonline docs])
- Add air pollutants component ([@fabaff] - [#18707]) ([air_pollutants docs]) ([demo docs]) (new-platform)
- Device config for Fibaro hub integration ([@pbalogh77] - [#19171])
- Set InsteonEntity name to be combo of description and address. ([@wonderslug] - [#17262]) ([insteon docs])
- Adding support for Plum Lightpad ([@ColinHarrington] - [#16576]) ([plum_lightpad docs]) ([binary_sensor.plum_lightpad docs]) ([light.plum_lightpad docs]) ([sensor.plum_lightpad docs]) (new-platform)
- huawei_lte: Fetch only required data ([@scop] - [#17618]) ([device_tracker docs]) ([huawei_lte docs]) ([sensor.huawei_lte docs])
- Add Ambient Weather PWS Sensor component ([@tmd224] - [#18551]) ([sensor.ambient_station docs]) (new-platform)
- Add note to issue template regarding frontend issues ([@cgarwood] - [#19295])
- Bump pyEight to fix Single Sleeper ([@mezz64] - [#19316]) ([eight_sleep docs])
- Upgrade pytest to 4.0.2 ([@scop] - [#19327])
- Upgrade pydocstyle to 3.0.0 ([@scop] - [#19328])
- bump georss_client to 0.5 ([@exxamalte] - [#19337]) ([sensor.geo_rss_events docs])
- Add Brottsplatskartan sensor ([@chrillux] - [#19018]) ([sensor.brottsplatskartan docs]) (new-platform)
- Fix broken sensor.mqtt json_attributes deprecation message ([@emontnemery] - [#19349]) ([sensor.mqtt docs])
- Adds io:OnOffIOComponent as switch to tahoma.py ([@jensihnow] - [#19338]) ([tahoma docs])
- Add config flow for Daikin ([@fredrike] - [#19182]) ([daikin docs]) ([climate.daikin docs]) ([sensor.daikin docs]) (breaking change)
- Add traccar motion, speed and battery_level attributes ([@ludeeus] - [#19090]) ([device_tracker docs]) (breaking change)
- Initialise plant attributes at startup ([@PeteBa] - [#19315]) ([plant docs])
- Remove recorder purge protection ([@amelchio] - [#19358])
- Add native ESPHome API component ([@OttoWinter] - [#19334]) (new-platform)
- Add support for statewide data for Flu Near You ([@bachya] - [#19341]) ([sensor.flunearyou docs])
- Use unicode slugify ([@pvizeli] - [#19192]) (breaking change)
- Upgrade youtube_dl to 2018.12.17 ([@fabaff] - [#19378]) ([media_extractor docs])
- Upgrade TwitterAPI to 2.5.7 ([@fabaff] - [#19382]) ([notify docs])
- Upgrade ruamel.yaml to 0.15.81 ([@fabaff] - [#19384])
- Version bump pydaikin ([@fredrike] - [#19388]) ([daikin docs]) ([climate.daikin docs])
- Upgrade keyrings.alt==3.1.1 ([@fabaff] - [#19386])
- Set pytz to >=2018.07 ([@fabaff] - [#19387])
- Upgrade RPi.GPIO to 0.6.5 ([@fabaff] - [#19392]) ([rpi_gpio docs])
- Add air pollutants PROP_TO_ATTR ([@fabaff] - [#19336]) ([air_pollutants docs])
- fix unique_id for Tellduslive sensors ([@fredrike] - [#19389]) ([sensor.tellduslive docs])
- Add native ESPHome API binary sensor ([@OttoWinter] - [#19371]) ([esphome docs]) ([binary_sensor.esphome docs])
- Add native ESPHome API cover ([@OttoWinter] - [#19373]) ([esphome docs]) ([cover.esphome docs])
- Add native ESPHome API fan ([@OttoWinter] - [#19374]) ([esphome docs]) ([fan.esphome docs])
- Add native ESPHome API light ([@OttoWinter] - [#19375]) ([esphome docs]) ([light.esphome docs])
- Add native ESPHome API switch ([@OttoWinter] - [#19376]) ([esphome docs]) ([switch.esphome docs])
- Add native ESPHome API text sensor ([@OttoWinter] - [#19377]) ([sensor.esphome docs])
- ESPHome Native API Restore Entities on startup ([@OttoWinter] - [#19379]) ([esphome docs])
- Add native ESPHome API device registry feature ([@OttoWinter] - [#19381]) ([esphome docs])
- Add native ESPHome API service call feature ([@OttoWinter] - [#19401]) ([esphome docs])
- Upgade colorlog to 4.0.2 ([@fabaff] - [#19390])
- Provide charging indicator for mychevy ([@sdague] - [#19348]) ([mychevy docs]) ([sensor.mychevy docs])
- Add GTT Sensor ([@eliseomartelli] - [#18449]) ([sensor.gtt docs]) (new-platform)
- Upgrade volvooncall to 0.8.7 ([@molobrakos] - [#19398]) ([volvooncall docs])
- Cast lametric cycles parameter to int ([@jumpkick] - [#19370]) ([notify docs])
- Satel integra monitor outputs ([@c-soft] - [#19149]) ([satel_integra docs]) ([binary_sensor.satel_integra docs])
- Fix cpu_temp issue on Raspberry Pi ([@mretegan] - [#19404]) ([sensor.glances docs])
- Add camera selection config to skybell camera ([@nhorvath] - [#19310]) ([skybell docs]) ([camera.skybell docs])
- Bump pyEmby to 1.6, add channel media type mapping ([@mezz64] - [#19318]) ([media_player.emby docs])
- Add openSenseMap air pollutants platform ([@fabaff] - [#19357]) ([air_pollutants docs]) (new-platform)
- Optionally disable ssl verification for mjpeg ([@rohankapoorcom] - [#19277]) ([zoneminder docs]) ([camera.mjpeg docs]) ([camera.zoneminder docs])
- Use string foratting ([@fabaff] - [#19427]) ([sensor.brottsplatskartan docs])
- Add Prezzibenzina (Italian Fuel Price) Sensor ([@eliseomartelli] - [#19297]) ([sensor.prezzibenzina docs]) (new-platform)
- Upgrade sqlalchemy to 1.2.15 ([@fabaff] - [#19383]) ([sensor.sql docs])
- Upgrade requests to 2.21.0 ([@fabaff] - [#19385])
- Miscellaneous ESPHome cleanups ([@OttoWinter] - [#19425]) ([esphome docs]) ([binary_sensor.esphome docs]) ([switch.esphome docs])
- Fix typo ([@fabaff] - [#19433])
- Various enhancements for WeMo component/platforms ([@sqldiablo] - [#19419]) ([wemo docs]) ([binary_sensor.wemo docs]) ([fan.wemo docs]) ([light.wemo docs]) ([switch.wemo docs]) (breaking change)
- Add device_info to Daikin ([@fredrike] - [#19372]) ([daikin docs]) ([climate.daikin docs]) ([sensor.daikin docs])
- Add sensor platform for SolarEdge Monitoring API ([@GidoHakvoort] - [#18846]) ([sensor.solaredge docs]) (new-platform)
- Various updates ([@fabaff] - [#19449]) ([ihc docs])
- Correct calls to subscription.async_unsubscribe_topics ([@emontnemery] - [#19414])
- ZHA entity ZCL reporting configuration ([@Adminiuga] - [#19177]) ([zha docs]) ([binary_sensor.zha docs]) ([fan.zha docs]) ([light.zha docs]) ([sensor.zha docs]) ([switch.zha docs])
- Add device registry to MQTT lock ([@emontnemery] - [#19333]) ([lock.mqtt docs])
- Add device registry to MQTT alarm control panel ([@emontnemery] - [#19331]) ([alarm_control_panel.mqtt docs])
- Add device registry to MQTT climate ([@emontnemery] - [#19332]) ([climate.mqtt docs])
- Bump Pybotvac To Support D7 On Latest Firmware ([@dshokouhi] - [#19463]) ([neato docs])
- Adds battery_percent which had been introduced with pyatmo 1.4 and resolves unknown var warning. ([@jensihnow] - [#19309]) ([sensor.netatmo docs])
- Add Mythic Beasts DNSAPI Component ([@thinkl33t] - [#18333]) ([mythicbeastsdns docs]) (new-platform)
- Rename ocr.png to ssocr-(entity_name).png to allow multiple instances ([@jumpkick] - [#18634]) ([image_processing.seven_segments docs]) (breaking change)
- Update pynetgear to 0.5.2 ([@MatMaul] - [#19490]) ([device_tracker docs])
- Reorder FLOW entries in config_entries.py ([@Solije] - [#19475])
- Add timeout to RainMachine login ([@bachya] - [#19476]) ([rainmachine docs])
- Add new sensor platform to expose Islamic prayer times ([@uchagani] - [#19444]) ([sensor.islamic_prayer_times docs]) (new-platform)
- Add native ESPHome Home Assistant state feature ([@OttoWinter] - [#19429]) ([esphome docs])
- Fixed the range filter unknown argument precision ([@timkoers] - [#19428]) ([sensor.filter docs])
- Disable creating port mappings from UI, add discovery from component ([@StevenLooman] - [#18565]) ([upnp docs]) ([media_player.dlna_dmr docs])
- Add Lutron Homeworks component ([@dubnom] - [#18311]) ([homeworks docs]) ([binary_sensor.homeworks docs]) ([light.homeworks docs]) (new-platform)
- Allow scrape sensor to retry setting up platform if initial setup fails ([@uchagani] - [#19498]) ([sensor.scrape docs])
- Clean up RFLink tests and add two tests ([@javicalle] - [#19511])
- Add ZHA battery sensor ([@dmulcahey] - [#19363]) ([zha docs]) ([sensor.zha docs])
- Restore state for zha binary_sensors on restart. ([@Adminiuga] - [#19314]) ([binary_sensor.zha docs])
- Add deprecation warning ([@ludeeus] - [#19515]) ([sensor.ruter docs])
- Update yale smart alarm client to v0.1.6 ([@domwillcode] - [#19495]) ([alarm_control_panel.yale_smart_alarm docs])
- Add sunrise and sunset to Darksky weather sensor ([@fabaff] - [#19492]) ([sensor.darksky docs])
- Update ZHA entity state on ZigBee zdo device announce ([@dmulcahey] - [#19208]) ([zha docs])
- Fix fail2ban by removal of internal timer logic ([@grea09] - [#19456]) ([sensor.fail2ban docs])
- Fix Mill connection problem ([@Danielhiversen] - [#19519]) ([climate.mill docs])
- Add long click at new Aqara Wireless Remote Switch ([@ppanagiotis] - [#19518]) ([binary_sensor.xiaomi_aqara docs])
- Add additional Z-Wave Bulbs to ZW098 Workaround ([@loe] - [#19480]) ([light.zwave docs])
- Implement path in the config to fix issues for some users ([@wcomartin] - [#19491]) ([sensor.tautulli docs])
- Add ZHA occupancy sensor ([@dmulcahey] - [#19365]) ([zha docs]) ([binary_sensor.zha docs])
- Make ZHA entities non-polled by default ([@Adminiuga] - [#19536])
- Pywemo version bump ([@sqldiablo] - [#19538])
- Support ZHA light turn_off transition ([@Adminiuga] - [#19531]) ([light.zha docs])
- increase robustness, when something upstream fails ([@dgomes] - [#19493]) ([weather.ipma docs])
- Change ISY binary_sensor subnode to hex ([@Steve9F] - [#19471]) ([binary_sensor.isy994 docs])
- Updated to support per device find iphone sound. ([@kdvlr] - [#19535]) ([device_tracker docs])
- Fix issues in ZHA light ([@dmulcahey] - [#19368]) ([light.zha docs])
- Add hub- and device-info for tellduslive ([@fredrike] - [#19180]) ([tellduslive docs]) ([sensor.tellduslive docs])
- Configure ZHA entity on new ZHA device join ([@Adminiuga] - [#19470]) ([zha docs]) ([binary_sensor.zha docs]) ([fan.zha docs]) ([light.zha docs]) ([sensor.zha docs]) ([switch.zha docs])
- Fix support for base topic for empty values in MQTT discovery msg ([@emontnemery] - [#19501]) ([mqtt docs])
- Improve handling of MQTT light discovery ([@emontnemery] - [#19436]) ([mqtt docs])
- Update homekit controller to homekit==0.12.0 ([@Jc2k] - [#19549]) ([homekit_controller docs]) ([climate.homekit_controller docs]) ([light.homekit_controller docs]) ([switch.homekit_controller docs])
- Remove global from ZHA application controller ([@dmulcahey] - [#19557]) ([zha docs])
- Improve Lutron RadioRA2 support, adding switches and scenes ([@cdheiser] - [#18330]) ([lutron docs]) ([scene.lutron docs]) ([switch.lutron docs]) (new-platform)
- Clean up homematicip cloud ([@sander76] - [#19481]) ([homematicip_cloud docs])
- Add HomematicIP SMI55 device ([@mxworm] - [#19400]) ([binary_sensor.homematicip_cloud docs]) ([sensor.homematicip_cloud docs])
- Added support for triggered state on NX584 alarm. ([@mreiling] - [#19524]) ([alarm_control_panel.nx584 docs])
- Add homematicip cloud full flush measuring switch ([@sander76] - [#19247]) ([switch.homematicip_cloud docs])
- Add device_id configuration option to Bluetooth tracker ([@imotov] - [#18539]) ([device_tracker docs])
- Whitelisting of lines on entur sensor ([@hfurubotten] - [#19539]) ([sensor.entur_public_transport docs])
- Update pylaunches dependency to 0.2.0 ([@DoloresHA] - [#19570]) ([sensor.launch_library docs]) (breaking change)
- Pencom ([@dubnom] - [#19369]) ([switch.pencom docs]) (new-platform)
- Tibber, improve server reconnection ([@Danielhiversen] - [#19574]) ([tibber docs])
- Link to dicttoxml excessive INFO logging issue ([@scop] - [#19575]) ([huawei_lte docs])
- Add a new click_type "long_both" to improve the support of the new Xiaomi Wireless Wall Switch (remote.b286acn01) ([@syssi] - [#19573]) ([binary_sensor.xiaomi_aqara docs])
- Clean up remaining rflink tests ([@javicalle] - [#19551])
- Add a new click_type double_both to improve the support of the new Xiaomi aqara remote.b286acn01 dual switch. ([@tedsluis] - [#19578]) ([binary_sensor.xiaomi_aqara docs])
- Upgrade sphinx-autodoc-typehints to 1.6.0 ([@fabaff] - [#19579])
- Upgrade TwitterAPI to 2.5.8 ([@fabaff] - [#19581]) ([notify docs])
- Upgrade pyowm to 2.10.0 ([@fabaff] - [#19582]) ([sensor.openweathermap docs]) ([weather.openweathermap docs])
- Upgrade keyring to 17.1.0 ([@fabaff] - [#19583])
- Upgrade rpi-rf to 0.9.7 ([@fabaff] - [#19394]) ([switch.rpi_rf docs])
- Upgrade Sphinx to 1.8.3 ([@fabaff] - [#19580])
- Fix mpd shuffle/random status ([@apetrycki] - [#19308]) ([media_player.mpd docs])
- Add verify_ssl option to Splunk component ([@FieldofClay] - [#19112]) ([splunk docs])
- Update pymitv dependency ([@simse] - [#19601]) ([media_player.xiaomi_tv docs])
- Updated set of available voices for Yandex TTS ([@gipnokote] - [#19603]) ([tts docs])
- Version Bump for aioftp ([@ioangogo] - [#19510]) ([camera.yi docs])
- Don't truncate brightness and white_value of MQTT light ([@emontnemery] - [#19502]) ([light.mqtt docs])
- Improve how neato displays alerts and add alerts for persistent maps ([@dshokouhi] - [#19593]) ([neato docs]) ([vacuum.neato docs])
- Add AfterShip sensor for packages ([@maxandersen] - [#18034]) ([sensor.aftership docs]) (new-platform)
- Upgrade aiohttp to 3.5.1 ([@fabaff] - [#19584])
- Add Freebox component with sensors and device tracker ([@SNoof85] - [#18472]) ([device_tracker docs]) ([freebox docs]) ([sensor.freebox docs]) (breaking change) (new-platform)
- Upgrade huawei-lte-api to 1.1.1 ([@scop] - [#19615]) ([huawei_lte docs])
- Systemmonitor - add device_class property ([@ReneNulschDE] - [#19614]) ([sensor.systemmonitor docs])
- LCN component and light platform ([@alengwenus] - [#18621]) ([lcn docs]) ([light.lcn docs]) (new-platform)
- Add additional neato alerts and errors ([@dshokouhi] - [#19608]) ([neato docs])
- Bump pyotgw to 0.4b0 ([@mvn23] - [#19618]) ([opentherm_gw docs])
- Fix cpu_temp issue on Odroid ([@gipnokote] - [#19620]) ([sensor.glances docs])
- Upgraded pyarlo to 0.2.3 ([@tchellomello] - [#19626]) ([arlo docs])
- Upgrade to async_upnp_client==0.13.8 ([@StevenLooman] - [#19634]) ([upnp docs]) ([media_player.dlna_dmr docs])
- Revert "Bump pyotgw to 0.4b0 (#19618)" ([@mvn23] - [#19635]) ([opentherm_gw docs])
- Added events STARTED, RESTARTED AND PAUSED ([@mjrider] - [#19516]) ([timer docs])
- Fix cpu_temp issue on Vero 4K ([@mretegan] - [#19638]) ([sensor.glances docs])
- Use xml.etree through defusedxml ([@scop] - [#19640]) ([ihc docs]) ([namecheapdns docs]) ([sensor.ohmconnect docs])
- Support knx operation types ([@marvin-w] - [#19546]) ([knx docs]) ([climate.knx docs]) (breaking change)
- Improve Wemo setup speed ([@sqldiablo] - [#19563]) ([wemo docs]) ([binary_sensor.wemo docs]) ([switch.wemo docs]) (breaking change)
- Use async_configure for ZHA IAS binary sensor ([@Adminiuga] - [#19629]) ([binary_sensor.zha docs])
- Only bind clusters in ZHA remote entity ([@dmulcahey] - [#19577]) ([zha docs]) ([binary_sensor.zha docs])
- Add RaspyRFM switch platform ([@markusressel] - [#19130]) ([switch.raspyrfm docs]) (new-platform)
- Use aioharmony for remote.harmony platform ([@ehendrix23] - [#19595]) ([remote.harmony docs])
- Bump pyHik library to 0.1.9 to improve device support. ([@mezz64] - [#19656]) ([binary_sensor.hikvision docs])
- Fix ADS light when parameter adsvar_brightness is not set ([@carstenschroeder] - [#19636]) ([light.ads docs])
- pytraccar version bump ([@ludeeus] - [#19659]) ([device_tracker docs])
- Added regexp validation allowing Twilio notifications to use Sender ID instead of phone number ([@psvanstrom] - [#19644]) ([notify docs])
- Fix exception checking for next dublin bus ([@ttroy50] - [#19663]) ([sensor.dublin_bus_transport docs])
- Fix error in got_connected for remote.harmony ([@ehendrix23] - [#19662]) ([remote.harmony docs])
- Fix homekit_controller pairing regression ([@Jc2k] - [#19654]) ([homekit_controller docs])
- Add IDTECK proximity card component ([@dubnom] - [#18309]) ([idteck_prox docs]) (new-platform)
- Fix london_underground issue ([@robmarkcole] - [#19642]) ([sensor.london_underground docs])
- Luftdaten traceback ([@fabaff] - [#19666]) ([sensor.luftdaten docs])
- Suppress traceback if network is not available ([@fabaff] - [#19651])
- Improve rflink coverage ([@javicalle] - [#19596])
- Add support for color_temp_command_template in MQTT light component ([@dchesterton] - [#19675]) ([light.mqtt docs])
- Add ness alarm control panel using nessclient ([@nickw444] - [#18463]) ([ness_alarm docs]) ([alarm_control_panel.ness_alarm docs]) ([binary_sensor.ness_alarm docs]) (new-platform)
- Update pyhomematic 0.1.54 + small fixes ([@danielperna84] - [#19667]) ([homematic docs]) ([sensor.homematic docs])
- Envisalink pgm ([@Cinntax] - [#19499]) ([envisalink docs])
- Bump pyotgw to 0.4b1 ([@mvn23] - [#19715]) ([opentherm_gw docs])
- Bumping aioasuswrt version to 1.1.17 ([@kennedyshead] - [#19714]) ([asuswrt docs])
- Adds ability to calibrate temperature for BME680 ([@ctborg] - [#19684]) ([sensor.bme680 docs])
- Do not choke on no awair data ([@ahayworth] - [#19708]) ([sensor.awair docs])
- Fix WeMo incorrect mapping of device type during discovery ([@sqldiablo] - [#19691]) ([wemo docs])
- Drop bme680 os_lookup for temp_offset ([@ctborg] - [#19733]) ([sensor.bme680 docs])
- Add exception handling to ADS shutdown ([@carstenschroeder] - [#19682]) ([ads docs])
- Filter urllib3.connectionpool warnings in camera.axis and camera.zoneminder ([@rohankapoorcom] - [#19641]) ([camera.axis docs]) ([camera.mjpeg docs]) ([camera.zoneminder docs])
- Proactive Alexa ChangeReport messages ([@abmantis] - [#18114]) ([alexa docs])
- Move envisalink component to package and add services.yaml ([@Cinntax] - [#19731]) ([envisalink docs])
- Add mychevy optional country parameter ([@sdague] - [#19727]) ([mychevy docs])
- Upgrade tibber library ([@Danielhiversen] - [#19768]) ([tibber docs])
- Round illumination and lux value to one ([@bieniu] - [#19747]) ([sensor.xiaomi_aqara docs])
- Add ESPHome native API discovery ([@OttoWinter] - [#19399]) ([esphome docs]) (beta fix)
- Rename air pollutants to air quality ([@eliseomartelli] - [#19448]) ([air_quality docs]) (beta fix)
- Use manufacturer id only for configure_reporting only when specified. ([@Adminiuga] - [#19729]) ([zha docs]) (beta fix)
- Simplify data_key for a stable unique_id because the order of the dict will not be preserved (Closes: #13522) ([@syssi] - [#19766]) ([cover.xiaomi_aqara docs]) (beta fix)
- Don't slugify unique id ([@syssi] - [#19770]) ([xiaomi_aqara docs]) (beta fix)
- Fix some ESPHome race conditions ([@OttoWinter] - [#19772]) ([esphome docs]) (beta fix)
- Update HAP-python to 2.4.2 ([@cdce8p] - [#19776]) ([homekit docs]) (beta fix)
- Fix a bug in Lutron RadioRA2 Scene support ([@cdheiser] - [#19819]) ([lutron docs]) (beta fix)
- fixes #19814, Daikin config setting ([@fredrike] - [#19823]) ([daikin docs]) (beta fix)
- Bump aioesphomeapi ([@OttoWinter] - [#19838]) (beta fix)
- Resolves #17196, Resolves #18739 - Hue Beyond light fixture errors ([@alistairg] - [#19874]) ([light.hue docs]) (beta fix)
- Fix error when trying to log used UPnP device, if multiple found ([@StevenLooman] - [#19875]) ([upnp docs]) (beta fix)
- Update OZW to 0.1.2 ([@pvizeli] - [#19878]) ([zwave docs]) (beta fix)
- assign user to websocket connection when using legacy_api_password ([@FlorianLudwig] - [#19797]) ([websocket_api docs]) (beta fix)
[#16576]: https://github.com/home-assistant/home-assistant/pull/16576
[#17262]: https://github.com/home-assistant/home-assistant/pull/17262
[#17618]: https://github.com/home-assistant/home-assistant/pull/17618
[#18034]: https://github.com/home-assistant/home-assistant/pull/18034
[#18114]: https://github.com/home-assistant/home-assistant/pull/18114
[#18309]: https://github.com/home-assistant/home-assistant/pull/18309
[#18311]: https://github.com/home-assistant/home-assistant/pull/18311
[#18330]: https://github.com/home-assistant/home-assistant/pull/18330
[#18333]: https://github.com/home-assistant/home-assistant/pull/18333
[#18449]: https://github.com/home-assistant/home-assistant/pull/18449
[#18463]: https://github.com/home-assistant/home-assistant/pull/18463
[#18471]: https://github.com/home-assistant/home-assistant/pull/18471
[#18472]: https://github.com/home-assistant/home-assistant/pull/18472
[#18477]: https://github.com/home-assistant/home-assistant/pull/18477
[#18496]: https://github.com/home-assistant/home-assistant/pull/18496
[#18539]: https://github.com/home-assistant/home-assistant/pull/18539
[#18551]: https://github.com/home-assistant/home-assistant/pull/18551
[#18565]: https://github.com/home-assistant/home-assistant/pull/18565
[#18610]: https://github.com/home-assistant/home-assistant/pull/18610
[#18621]: https://github.com/home-assistant/home-assistant/pull/18621
[#18634]: https://github.com/home-assistant/home-assistant/pull/18634
[#18707]: https://github.com/home-assistant/home-assistant/pull/18707
[#18750]: https://github.com/home-assistant/home-assistant/pull/18750
[#18758]: https://github.com/home-assistant/home-assistant/pull/18758
[#18816]: https://github.com/home-assistant/home-assistant/pull/18816
[#18846]: https://github.com/home-assistant/home-assistant/pull/18846
[#18916]: https://github.com/home-assistant/home-assistant/pull/18916
[#18946]: https://github.com/home-assistant/home-assistant/pull/18946
[#18965]: https://github.com/home-assistant/home-assistant/pull/18965
[#19006]: https://github.com/home-assistant/home-assistant/pull/19006
[#19012]: https://github.com/home-assistant/home-assistant/pull/19012
[#19013]: https://github.com/home-assistant/home-assistant/pull/19013
[#19014]: https://github.com/home-assistant/home-assistant/pull/19014
[#19018]: https://github.com/home-assistant/home-assistant/pull/19018
[#19041]: https://github.com/home-assistant/home-assistant/pull/19041
[#19050]: https://github.com/home-assistant/home-assistant/pull/19050
[#19071]: https://github.com/home-assistant/home-assistant/pull/19071
[#19078]: https://github.com/home-assistant/home-assistant/pull/19078
[#19080]: https://github.com/home-assistant/home-assistant/pull/19080
[#19090]: https://github.com/home-assistant/home-assistant/pull/19090
[#19095]: https://github.com/home-assistant/home-assistant/pull/19095
[#19099]: https://github.com/home-assistant/home-assistant/pull/19099
[#19104]: https://github.com/home-assistant/home-assistant/pull/19104
[#19107]: https://github.com/home-assistant/home-assistant/pull/19107
[#19112]: https://github.com/home-assistant/home-assistant/pull/19112
[#19113]: https://github.com/home-assistant/home-assistant/pull/19113
[#19117]: https://github.com/home-assistant/home-assistant/pull/19117
[#19121]: https://github.com/home-assistant/home-assistant/pull/19121
[#19124]: https://github.com/home-assistant/home-assistant/pull/19124
[#19129]: https://github.com/home-assistant/home-assistant/pull/19129
[#19130]: https://github.com/home-assistant/home-assistant/pull/19130
[#19139]: https://github.com/home-assistant/home-assistant/pull/19139
[#19140]: https://github.com/home-assistant/home-assistant/pull/19140
[#19142]: https://github.com/home-assistant/home-assistant/pull/19142
[#19149]: https://github.com/home-assistant/home-assistant/pull/19149
[#19150]: https://github.com/home-assistant/home-assistant/pull/19150
[#19151]: https://github.com/home-assistant/home-assistant/pull/19151
[#19152]: https://github.com/home-assistant/home-assistant/pull/19152
[#19171]: https://github.com/home-assistant/home-assistant/pull/19171
[#19177]: https://github.com/home-assistant/home-assistant/pull/19177
[#19180]: https://github.com/home-assistant/home-assistant/pull/19180
[#19182]: https://github.com/home-assistant/home-assistant/pull/19182
[#19183]: https://github.com/home-assistant/home-assistant/pull/19183
[#19186]: https://github.com/home-assistant/home-assistant/pull/19186
[#19187]: https://github.com/home-assistant/home-assistant/pull/19187
[#19192]: https://github.com/home-assistant/home-assistant/pull/19192
[#19195]: https://github.com/home-assistant/home-assistant/pull/19195
[#19197]: https://github.com/home-assistant/home-assistant/pull/19197
[#19202]: https://github.com/home-assistant/home-assistant/pull/19202
[#19208]: https://github.com/home-assistant/home-assistant/pull/19208
[#19213]: https://github.com/home-assistant/home-assistant/pull/19213
[#19242]: https://github.com/home-assistant/home-assistant/pull/19242
[#19244]: https://github.com/home-assistant/home-assistant/pull/19244
[#19245]: https://github.com/home-assistant/home-assistant/pull/19245
[#19247]: https://github.com/home-assistant/home-assistant/pull/19247
[#19248]: https://github.com/home-assistant/home-assistant/pull/19248
[#19249]: https://github.com/home-assistant/home-assistant/pull/19249
[#19259]: https://github.com/home-assistant/home-assistant/pull/19259
[#19265]: https://github.com/home-assistant/home-assistant/pull/19265
[#19266]: https://github.com/home-assistant/home-assistant/pull/19266
[#19267]: https://github.com/home-assistant/home-assistant/pull/19267
[#19276]: https://github.com/home-assistant/home-assistant/pull/19276
[#19277]: https://github.com/home-assistant/home-assistant/pull/19277
[#19295]: https://github.com/home-assistant/home-assistant/pull/19295
[#19297]: https://github.com/home-assistant/home-assistant/pull/19297
[#19308]: https://github.com/home-assistant/home-assistant/pull/19308
[#19309]: https://github.com/home-assistant/home-assistant/pull/19309
[#19310]: https://github.com/home-assistant/home-assistant/pull/19310
[#19314]: https://github.com/home-assistant/home-assistant/pull/19314
[#19315]: https://github.com/home-assistant/home-assistant/pull/19315
[#19316]: https://github.com/home-assistant/home-assistant/pull/19316
[#19318]: https://github.com/home-assistant/home-assistant/pull/19318
[#19327]: https://github.com/home-assistant/home-assistant/pull/19327
[#19328]: https://github.com/home-assistant/home-assistant/pull/19328
[#19331]: https://github.com/home-assistant/home-assistant/pull/19331
[#19332]: https://github.com/home-assistant/home-assistant/pull/19332
[#19333]: https://github.com/home-assistant/home-assistant/pull/19333
[#19334]: https://github.com/home-assistant/home-assistant/pull/19334
[#19336]: https://github.com/home-assistant/home-assistant/pull/19336
[#19337]: https://github.com/home-assistant/home-assistant/pull/19337
[#19338]: https://github.com/home-assistant/home-assistant/pull/19338
[#19341]: https://github.com/home-assistant/home-assistant/pull/19341
[#19348]: https://github.com/home-assistant/home-assistant/pull/19348
[#19349]: https://github.com/home-assistant/home-assistant/pull/19349
[#19357]: https://github.com/home-assistant/home-assistant/pull/19357
[#19358]: https://github.com/home-assistant/home-assistant/pull/19358
[#19363]: https://github.com/home-assistant/home-assistant/pull/19363
[#19365]: https://github.com/home-assistant/home-assistant/pull/19365
[#19368]: https://github.com/home-assistant/home-assistant/pull/19368
[#19369]: https://github.com/home-assistant/home-assistant/pull/19369
[#19370]: https://github.com/home-assistant/home-assistant/pull/19370
[#19371]: https://github.com/home-assistant/home-assistant/pull/19371
[#19372]: https://github.com/home-assistant/home-assistant/pull/19372
[#19373]: https://github.com/home-assistant/home-assistant/pull/19373
[#19374]: https://github.com/home-assistant/home-assistant/pull/19374
[#19375]: https://github.com/home-assistant/home-assistant/pull/19375
[#19376]: https://github.com/home-assistant/home-assistant/pull/19376
[#19377]: https://github.com/home-assistant/home-assistant/pull/19377
[#19378]: https://github.com/home-assistant/home-assistant/pull/19378
[#19379]: https://github.com/home-assistant/home-assistant/pull/19379
[#19381]: https://github.com/home-assistant/home-assistant/pull/19381
[#19382]: https://github.com/home-assistant/home-assistant/pull/19382
[#19383]: https://github.com/home-assistant/home-assistant/pull/19383
[#19384]: https://github.com/home-assistant/home-assistant/pull/19384
[#19385]: https://github.com/home-assistant/home-assistant/pull/19385
[#19386]: https://github.com/home-assistant/home-assistant/pull/19386
[#19387]: https://github.com/home-assistant/home-assistant/pull/19387
[#19388]: https://github.com/home-assistant/home-assistant/pull/19388
[#19389]: https://github.com/home-assistant/home-assistant/pull/19389
[#19390]: https://github.com/home-assistant/home-assistant/pull/19390
[#19392]: https://github.com/home-assistant/home-assistant/pull/19392
[#19394]: https://github.com/home-assistant/home-assistant/pull/19394
[#19398]: https://github.com/home-assistant/home-assistant/pull/19398
[#19399]: https://github.com/home-assistant/home-assistant/pull/19399
[#19400]: https://github.com/home-assistant/home-assistant/pull/19400
[#19401]: https://github.com/home-assistant/home-assistant/pull/19401
[#19404]: https://github.com/home-assistant/home-assistant/pull/19404
[#19414]: https://github.com/home-assistant/home-assistant/pull/19414
[#19419]: https://github.com/home-assistant/home-assistant/pull/19419
[#19425]: https://github.com/home-assistant/home-assistant/pull/19425
[#19427]: https://github.com/home-assistant/home-assistant/pull/19427
[#19428]: https://github.com/home-assistant/home-assistant/pull/19428
[#19429]: https://github.com/home-assistant/home-assistant/pull/19429
[#19433]: https://github.com/home-assistant/home-assistant/pull/19433
[#19436]: https://github.com/home-assistant/home-assistant/pull/19436
[#19444]: https://github.com/home-assistant/home-assistant/pull/19444
[#19448]: https://github.com/home-assistant/home-assistant/pull/19448
[#19449]: https://github.com/home-assistant/home-assistant/pull/19449
[#19456]: https://github.com/home-assistant/home-assistant/pull/19456
[#19463]: https://github.com/home-assistant/home-assistant/pull/19463
[#19470]: https://github.com/home-assistant/home-assistant/pull/19470
[#19471]: https://github.com/home-assistant/home-assistant/pull/19471
[#19475]: https://github.com/home-assistant/home-assistant/pull/19475
[#19476]: https://github.com/home-assistant/home-assistant/pull/19476
[#19480]: https://github.com/home-assistant/home-assistant/pull/19480
[#19481]: https://github.com/home-assistant/home-assistant/pull/19481
[#19490]: https://github.com/home-assistant/home-assistant/pull/19490
[#19491]: https://github.com/home-assistant/home-assistant/pull/19491
[#19492]: https://github.com/home-assistant/home-assistant/pull/19492
[#19493]: https://github.com/home-assistant/home-assistant/pull/19493
[#19495]: https://github.com/home-assistant/home-assistant/pull/19495
[#19498]: https://github.com/home-assistant/home-assistant/pull/19498
[#19499]: https://github.com/home-assistant/home-assistant/pull/19499
[#19501]: https://github.com/home-assistant/home-assistant/pull/19501
[#19502]: https://github.com/home-assistant/home-assistant/pull/19502
[#19510]: https://github.com/home-assistant/home-assistant/pull/19510
[#19511]: https://github.com/home-assistant/home-assistant/pull/19511
[#19515]: https://github.com/home-assistant/home-assistant/pull/19515
[#19516]: https://github.com/home-assistant/home-assistant/pull/19516
[#19518]: https://github.com/home-assistant/home-assistant/pull/19518
[#19519]: https://github.com/home-assistant/home-assistant/pull/19519
[#19524]: https://github.com/home-assistant/home-assistant/pull/19524
[#19531]: https://github.com/home-assistant/home-assistant/pull/19531
[#19535]: https://github.com/home-assistant/home-assistant/pull/19535
[#19536]: https://github.com/home-assistant/home-assistant/pull/19536
[#19538]: https://github.com/home-assistant/home-assistant/pull/19538
[#19539]: https://github.com/home-assistant/home-assistant/pull/19539
[#19546]: https://github.com/home-assistant/home-assistant/pull/19546
[#19549]: https://github.com/home-assistant/home-assistant/pull/19549
[#19551]: https://github.com/home-assistant/home-assistant/pull/19551
[#19557]: https://github.com/home-assistant/home-assistant/pull/19557
[#19563]: https://github.com/home-assistant/home-assistant/pull/19563
[#19570]: https://github.com/home-assistant/home-assistant/pull/19570
[#19573]: https://github.com/home-assistant/home-assistant/pull/19573
[#19574]: https://github.com/home-assistant/home-assistant/pull/19574
[#19575]: https://github.com/home-assistant/home-assistant/pull/19575
[#19577]: https://github.com/home-assistant/home-assistant/pull/19577
[#19578]: https://github.com/home-assistant/home-assistant/pull/19578
[#19579]: https://github.com/home-assistant/home-assistant/pull/19579
[#19580]: https://github.com/home-assistant/home-assistant/pull/19580
[#19581]: https://github.com/home-assistant/home-assistant/pull/19581
[#19582]: https://github.com/home-assistant/home-assistant/pull/19582
[#19583]: https://github.com/home-assistant/home-assistant/pull/19583
[#19584]: https://github.com/home-assistant/home-assistant/pull/19584
[#19593]: https://github.com/home-assistant/home-assistant/pull/19593
[#19595]: https://github.com/home-assistant/home-assistant/pull/19595
[#19596]: https://github.com/home-assistant/home-assistant/pull/19596
[#19601]: https://github.com/home-assistant/home-assistant/pull/19601
[#19603]: https://github.com/home-assistant/home-assistant/pull/19603
[#19608]: https://github.com/home-assistant/home-assistant/pull/19608
[#19614]: https://github.com/home-assistant/home-assistant/pull/19614
[#19615]: https://github.com/home-assistant/home-assistant/pull/19615
[#19618]: https://github.com/home-assistant/home-assistant/pull/19618
[#19620]: https://github.com/home-assistant/home-assistant/pull/19620
[#19626]: https://github.com/home-assistant/home-assistant/pull/19626
[#19629]: https://github.com/home-assistant/home-assistant/pull/19629
[#19634]: https://github.com/home-assistant/home-assistant/pull/19634
[#19635]: https://github.com/home-assistant/home-assistant/pull/19635
[#19636]: https://github.com/home-assistant/home-assistant/pull/19636
[#19638]: https://github.com/home-assistant/home-assistant/pull/19638
[#19640]: https://github.com/home-assistant/home-assistant/pull/19640
[#19641]: https://github.com/home-assistant/home-assistant/pull/19641
[#19642]: https://github.com/home-assistant/home-assistant/pull/19642
[#19644]: https://github.com/home-assistant/home-assistant/pull/19644
[#19651]: https://github.com/home-assistant/home-assistant/pull/19651
[#19654]: https://github.com/home-assistant/home-assistant/pull/19654
[#19656]: https://github.com/home-assistant/home-assistant/pull/19656
[#19659]: https://github.com/home-assistant/home-assistant/pull/19659
[#19662]: https://github.com/home-assistant/home-assistant/pull/19662
[#19663]: https://github.com/home-assistant/home-assistant/pull/19663
[#19666]: https://github.com/home-assistant/home-assistant/pull/19666
[#19667]: https://github.com/home-assistant/home-assistant/pull/19667
[#19675]: https://github.com/home-assistant/home-assistant/pull/19675
[#19682]: https://github.com/home-assistant/home-assistant/pull/19682
[#19684]: https://github.com/home-assistant/home-assistant/pull/19684
[#19691]: https://github.com/home-assistant/home-assistant/pull/19691
[#19708]: https://github.com/home-assistant/home-assistant/pull/19708
[#19714]: https://github.com/home-assistant/home-assistant/pull/19714
[#19715]: https://github.com/home-assistant/home-assistant/pull/19715
[#19727]: https://github.com/home-assistant/home-assistant/pull/19727
[#19729]: https://github.com/home-assistant/home-assistant/pull/19729
[#19731]: https://github.com/home-assistant/home-assistant/pull/19731
[#19733]: https://github.com/home-assistant/home-assistant/pull/19733
[#19747]: https://github.com/home-assistant/home-assistant/pull/19747
[#19766]: https://github.com/home-assistant/home-assistant/pull/19766
[#19768]: https://github.com/home-assistant/home-assistant/pull/19768
[#19770]: https://github.com/home-assistant/home-assistant/pull/19770
[#19772]: https://github.com/home-assistant/home-assistant/pull/19772
[#19776]: https://github.com/home-assistant/home-assistant/pull/19776
[#19797]: https://github.com/home-assistant/home-assistant/pull/19797
[#19819]: https://github.com/home-assistant/home-assistant/pull/19819
[#19823]: https://github.com/home-assistant/home-assistant/pull/19823
[#19838]: https://github.com/home-assistant/home-assistant/pull/19838
[#19874]: https://github.com/home-assistant/home-assistant/pull/19874
[#19875]: https://github.com/home-assistant/home-assistant/pull/19875
[#19878]: https://github.com/home-assistant/home-assistant/pull/19878
[@Adminiuga]: https://github.com/Adminiuga
[@Cinntax]: https://github.com/Cinntax
[@ColinHarrington]: https://github.com/ColinHarrington
[@Danielhiversen]: https://github.com/Danielhiversen
[@Devqon]: https://github.com/Devqon
[@DoloresHA]: https://github.com/DoloresHA
[@FieldofClay]: https://github.com/FieldofClay
[@FlorianLudwig]: https://github.com/FlorianLudwig
[@GidoHakvoort]: https://github.com/GidoHakvoort
[@Jc2k]: https://github.com/Jc2k
[@MatMaul]: https://github.com/MatMaul
[@MaxG88]: https://github.com/MaxG88
[@OttoWinter]: https://github.com/OttoWinter
[@PeteBa]: https://github.com/PeteBa
[@ReneNulschDE]: https://github.com/ReneNulschDE
[@RyuzakiKK]: https://github.com/RyuzakiKK
[@SNoof85]: https://github.com/SNoof85
[@Solije]: https://github.com/Solije
[@Steve9F]: https://github.com/Steve9F
[@StevenLooman]: https://github.com/StevenLooman
[@abmantis]: https://github.com/abmantis
[@ahayworth]: https://github.com/ahayworth
[@alengwenus]: https://github.com/alengwenus
[@alistairg]: https://github.com/alistairg
[@amelchio]: https://github.com/amelchio
[@apetrycki]: https://github.com/apetrycki
[@bachya]: https://github.com/bachya
[@balloob]: https://github.com/balloob
[@basschipper]: https://github.com/basschipper
[@bieniu]: https://github.com/bieniu
[@bremor]: https://github.com/bremor
[@c-soft]: https://github.com/c-soft
[@carstenschroeder]: https://github.com/carstenschroeder
[@cdce8p]: https://github.com/cdce8p
[@cdheiser]: https://github.com/cdheiser
[@cgarwood]: https://github.com/cgarwood
[@chrillux]: https://github.com/chrillux
[@craftyguy]: https://github.com/craftyguy
[@ctborg]: https://github.com/ctborg
[@danielperna84]: https://github.com/danielperna84
[@dchesterton]: https://github.com/dchesterton
[@dgomes]: https://github.com/dgomes
[@dmulcahey]: https://github.com/dmulcahey
[@domwillcode]: https://github.com/domwillcode
[@dshokouhi]: https://github.com/dshokouhi
[@dubnom]: https://github.com/dubnom
[@edif30]: https://github.com/edif30
[@ehendrix23]: https://github.com/ehendrix23
[@eliseomartelli]: https://github.com/eliseomartelli
[@emontnemery]: https://github.com/emontnemery
[@exxamalte]: https://github.com/exxamalte
[@fabaff]: https://github.com/fabaff
[@foxel]: https://github.com/foxel
[@fredrike]: https://github.com/fredrike
[@gipnokote]: https://github.com/gipnokote
[@grea09]: https://github.com/grea09
[@hfurubotten]: https://github.com/hfurubotten
[@imotov]: https://github.com/imotov
[@ioangogo]: https://github.com/ioangogo
[@jarondl]: https://github.com/jarondl
[@javicalle]: https://github.com/javicalle
[@jensihnow]: https://github.com/jensihnow
[@jkeljo]: https://github.com/jkeljo
[@jumpkick]: https://github.com/jumpkick
[@kdvlr]: https://github.com/kdvlr
[@kennedyshead]: https://github.com/kennedyshead
[@loe]: https://github.com/loe
[@ludeeus]: https://github.com/ludeeus
[@marchingphoenix]: https://github.com/marchingphoenix
[@markusressel]: https://github.com/markusressel
[@marvin-w]: https://github.com/marvin-w
[@maxandersen]: https://github.com/maxandersen
[@mezz64]: https://github.com/mezz64
[@mjg59]: https://github.com/mjg59
[@mjrider]: https://github.com/mjrider
[@molobrakos]: https://github.com/molobrakos
[@mreiling]: https://github.com/mreiling
[@mretegan]: https://github.com/mretegan
[@mvn23]: https://github.com/mvn23
[@mxworm]: https://github.com/mxworm
[@nhorvath]: https://github.com/nhorvath
[@nickw444]: https://github.com/nickw444
[@pbalogh77]: https://github.com/pbalogh77
[@ppanagiotis]: https://github.com/ppanagiotis
[@psvanstrom]: https://github.com/psvanstrom
[@pvizeli]: https://github.com/pvizeli
[@robmarkcole]: https://github.com/robmarkcole
[@rohankapoorcom]: https://github.com/rohankapoorcom
[@rytilahti]: https://github.com/rytilahti
[@sander76]: https://github.com/sander76
[@scop]: https://github.com/scop
[@sdague]: https://github.com/sdague
[@simse]: https://github.com/simse
[@speedmann]: https://github.com/speedmann
[@sqldiablo]: https://github.com/sqldiablo
[@swilson]: https://github.com/swilson
[@syssi]: https://github.com/syssi
[@tchellomello]: https://github.com/tchellomello
[@tedsluis]: https://github.com/tedsluis
[@teharris1]: https://github.com/teharris1
[@thibmaek]: https://github.com/thibmaek
[@thinkl33t]: https://github.com/thinkl33t
[@timkoers]: https://github.com/timkoers
[@tinloaf]: https://github.com/tinloaf
[@tmd224]: https://github.com/tmd224
[@ttroy50]: https://github.com/ttroy50
[@uchagani]: https://github.com/uchagani
[@wcomartin]: https://github.com/wcomartin
[@wonderslug]: https://github.com/wonderslug
[ads docs]: /components/ads/
[air_pollutants docs]: /components/air_pollutants/
[air_quality docs]: /components/air_quality/
[alarm_control_panel.ialarm docs]: /components/alarm_control_panel.ialarm/
[alarm_control_panel.mqtt docs]: /components/alarm_control_panel.mqtt/
[alarm_control_panel.ness_alarm docs]: /components/alarm_control_panel.ness_alarm/
[alarm_control_panel.nx584 docs]: /components/alarm_control_panel.nx584/
[alarm_control_panel.yale_smart_alarm docs]: /components/alarm_control_panel.yale_smart_alarm/
[alarmdecoder docs]: /components/alarmdecoder/
[alexa docs]: /components/alexa/
[arlo docs]: /components/arlo/
[asuswrt docs]: /components/asuswrt/
[automation docs]: /components/automation/
[binary_sensor.alarmdecoder docs]: /components/binary_sensor.alarmdecoder/
[binary_sensor.esphome docs]: /components/binary_sensor.esphome/
[binary_sensor.hikvision docs]: /components/binary_sensor.hikvision/
[binary_sensor.homematicip_cloud docs]: /components/binary_sensor.homematicip_cloud/
[binary_sensor.homeworks docs]: /components/binary_sensor.homeworks/
[binary_sensor.insteon docs]: /components/binary_sensor.insteon/
[binary_sensor.isy994 docs]: /components/binary_sensor.isy994/
[binary_sensor.mqtt docs]: /components/binary_sensor.mqtt/
[binary_sensor.ness_alarm docs]: /components/binary_sensor.ness_alarm/
[binary_sensor.plum_lightpad docs]: /components/binary_sensor.plum_lightpad/
[binary_sensor.satel_integra docs]: /components/binary_sensor.satel_integra/
[binary_sensor.tellduslive docs]: /components/binary_sensor.tellduslive/
[binary_sensor.wemo docs]: /components/binary_sensor.wemo/
[binary_sensor.xiaomi_aqara docs]: /components/binary_sensor.xiaomi_aqara/
[binary_sensor.zha docs]: /components/binary_sensor.zha/
[camera.axis docs]: /components/camera.axis/
[camera.mjpeg docs]: /components/camera.mjpeg/
[camera.skybell docs]: /components/camera.skybell/
[camera.yi docs]: /components/camera.yi/
[camera.zoneminder docs]: /components/camera.zoneminder/
[climate.daikin docs]: /components/climate.daikin/
[climate.eq3btsmart docs]: /components/climate.eq3btsmart/
[climate.homekit_controller docs]: /components/climate.homekit_controller/
[climate.knx docs]: /components/climate.knx/
[climate.mill docs]: /components/climate.mill/
[climate.mqtt docs]: /components/climate.mqtt/
[climate.radiotherm docs]: /components/climate.radiotherm/
[config docs]: /components/config/
[cover.esphome docs]: /components/cover.esphome/
[cover.rflink docs]: /components/cover.rflink/
[cover.tellduslive docs]: /components/cover.tellduslive/
[cover.xiaomi_aqara docs]: /components/cover.xiaomi_aqara/
[daikin docs]: /components/daikin/
[demo docs]: /components/demo/
[device_tracker docs]: /components/device_tracker/
[doorbird docs]: /components/doorbird/
[edp_redy docs]: /components/edp_redy/
[eight_sleep docs]: /components/eight_sleep/
[envisalink docs]: /components/envisalink/
[esphome docs]: /components/esphome/
[eufy docs]: /components/eufy/
[fan.esphome docs]: /components/fan.esphome/
[fan.wemo docs]: /components/fan.wemo/
[fan.zha docs]: /components/fan.zha/
[freebox docs]: /components/freebox/
[homekit docs]: /components/homekit/
[homekit_controller docs]: /components/homekit_controller/
[homematic docs]: /components/homematic/
[homematicip_cloud docs]: /components/homematicip_cloud/
[homeworks docs]: /components/homeworks/
[huawei_lte docs]: /components/huawei_lte/
[idteck_prox docs]: /components/idteck_prox/
[ihc docs]: /components/ihc/
[image_processing.seven_segments docs]: /components/image_processing.seven_segments/
[insteon docs]: /components/insteon/
[knx docs]: /components/knx/
[lcn docs]: /components/lcn/
[light docs]: /components/light/
[light.ads docs]: /components/light.ads/
[light.esphome docs]: /components/light.esphome/
[light.homekit_controller docs]: /components/light.homekit_controller/
[light.homeworks docs]: /components/light.homeworks/
[light.hue docs]: /components/light.hue/
[light.lcn docs]: /components/light.lcn/
[light.mqtt docs]: /components/light.mqtt/
[light.plum_lightpad docs]: /components/light.plum_lightpad/
[light.rflink docs]: /components/light.rflink/
[light.tellduslive docs]: /components/light.tellduslive/
[light.wemo docs]: /components/light.wemo/
[light.x10 docs]: /components/light.x10/
[light.xiaomi_miio docs]: /components/light.xiaomi_miio/
[light.zha docs]: /components/light.zha/
[light.zwave docs]: /components/light.zwave/
[lock.mqtt docs]: /components/lock.mqtt/
[lutron docs]: /components/lutron/
[media_extractor docs]: /components/media_extractor/
[media_player.directv docs]: /components/media_player.directv/
[media_player.dlna_dmr docs]: /components/media_player.dlna_dmr/
[media_player.emby docs]: /components/media_player.emby/
[media_player.gpmdp docs]: /components/media_player.gpmdp/
[media_player.mpd docs]: /components/media_player.mpd/
[media_player.songpal docs]: /components/media_player.songpal/
[media_player.xiaomi_tv docs]: /components/media_player.xiaomi_tv/
[mqtt docs]: /components/mqtt/
[mychevy docs]: /components/mychevy/
[mythicbeastsdns docs]: /components/mythicbeastsdns/
[namecheapdns docs]: /components/namecheapdns/
[neato docs]: /components/neato/
[ness_alarm docs]: /components/ness_alarm/
[notify docs]: /components/notify/
[opentherm_gw docs]: /components/opentherm_gw/
[plant docs]: /components/plant/
[plum_lightpad docs]: /components/plum_lightpad/
[rainmachine docs]: /components/rainmachine/
[remote.harmony docs]: /components/remote.harmony/
[rflink docs]: /components/rflink/
[rpi_gpio docs]: /components/rpi_gpio/
[satel_integra docs]: /components/satel_integra/
[scene.lutron docs]: /components/scene.lutron/
[sensor.aftership docs]: /components/sensor.aftership/
[sensor.ambient_station docs]: /components/sensor.ambient_station/
[sensor.awair docs]: /components/sensor.awair/
[sensor.bme680 docs]: /components/sensor.bme680/
[sensor.brottsplatskartan docs]: /components/sensor.brottsplatskartan/
[sensor.cert_expiry docs]: /components/sensor.cert_expiry/
[sensor.daikin docs]: /components/sensor.daikin/
[sensor.darksky docs]: /components/sensor.darksky/
[sensor.dublin_bus_transport docs]: /components/sensor.dublin_bus_transport/
[sensor.eliqonline docs]: /components/sensor.eliqonline/
[sensor.entur_public_transport docs]: /components/sensor.entur_public_transport/
[sensor.esphome docs]: /components/sensor.esphome/
[sensor.fail2ban docs]: /components/sensor.fail2ban/
[sensor.filter docs]: /components/sensor.filter/
[sensor.flunearyou docs]: /components/sensor.flunearyou/
[sensor.freebox docs]: /components/sensor.freebox/
[sensor.geizhals docs]: /components/sensor.geizhals/
[sensor.geo_rss_events docs]: /components/sensor.geo_rss_events/
[sensor.glances docs]: /components/sensor.glances/
[sensor.gtfs docs]: /components/sensor.gtfs/
[sensor.gtt docs]: /components/sensor.gtt/
[sensor.homematic docs]: /components/sensor.homematic/
[sensor.homematicip_cloud docs]: /components/sensor.homematicip_cloud/
[sensor.huawei_lte docs]: /components/sensor.huawei_lte/
[sensor.islamic_prayer_times docs]: /components/sensor.islamic_prayer_times/
[sensor.launch_library docs]: /components/sensor.launch_library/
[sensor.london_underground docs]: /components/sensor.london_underground/
[sensor.luftdaten docs]: /components/sensor.luftdaten/
[sensor.mqtt docs]: /components/sensor.mqtt/
[sensor.mychevy docs]: /components/sensor.mychevy/
[sensor.netatmo docs]: /components/sensor.netatmo/
[sensor.nmbs docs]: /components/sensor.nmbs/
[sensor.ohmconnect docs]: /components/sensor.ohmconnect/
[sensor.openweathermap docs]: /components/sensor.openweathermap/
[sensor.plum_lightpad docs]: /components/sensor.plum_lightpad/
[sensor.point docs]: /components/sensor.point/
[sensor.prezzibenzina docs]: /components/sensor.prezzibenzina/
[sensor.ruter docs]: /components/sensor.ruter/
[sensor.scrape docs]: /components/sensor.scrape/
[sensor.seventeentrack docs]: /components/sensor.seventeentrack/
[sensor.solaredge docs]: /components/sensor.solaredge/
[sensor.sql docs]: /components/sensor.sql/
[sensor.systemmonitor docs]: /components/sensor.systemmonitor/
[sensor.tautulli docs]: /components/sensor.tautulli/
[sensor.tellduslive docs]: /components/sensor.tellduslive/
[sensor.xiaomi_aqara docs]: /components/sensor.xiaomi_aqara/
[sensor.zha docs]: /components/sensor.zha/
[sensor.zoneminder docs]: /components/sensor.zoneminder/
[skybell docs]: /components/skybell/
[splunk docs]: /components/splunk/
[switch.esphome docs]: /components/switch.esphome/
[switch.homekit_controller docs]: /components/switch.homekit_controller/
[switch.homematicip_cloud docs]: /components/switch.homematicip_cloud/
[switch.lutron docs]: /components/switch.lutron/
[switch.pencom docs]: /components/switch.pencom/
[switch.raspyrfm docs]: /components/switch.raspyrfm/
[switch.rpi_rf docs]: /components/switch.rpi_rf/
[switch.switchbot docs]: /components/switch.switchbot/
[switch.tellduslive docs]: /components/switch.tellduslive/
[switch.wemo docs]: /components/switch.wemo/
[switch.xiaomi_miio docs]: /components/switch.xiaomi_miio/
[switch.zha docs]: /components/switch.zha/
[tahoma docs]: /components/tahoma/
[tellduslive docs]: /components/tellduslive/
[tibber docs]: /components/tibber/
[timer docs]: /components/timer/
[tts docs]: /components/tts/
[upnp docs]: /components/upnp/
[vacuum.neato docs]: /components/vacuum.neato/
[volvooncall docs]: /components/volvooncall/
[weather docs]: /components/weather/
[weather.ipma docs]: /components/weather.ipma/
[weather.openweathermap docs]: /components/weather.openweathermap/
[weather.smhi docs]: /components/weather.smhi/
[websocket_api docs]: /components/websocket_api/
[wemo docs]: /components/wemo/
[xiaomi_aqara docs]: /components/xiaomi_aqara/
[zha docs]: /components/zha/
[zoneminder docs]: /components/zoneminder/
[zwave docs]: /components/zwave/

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Some files were not shown because too many files have changed in this diff Show More