Merge branch 'rc' into current

This commit is contained in:
Paulus Schoutsen 2018-10-26 21:36:07 +02:00
commit f66db87c16
106 changed files with 3954 additions and 494 deletions

View File

@ -1,6 +1,6 @@
[![Discord](https://img.shields.io/discord/330944238910963714.svg)](https://discord.gg/CxqDrfU)
[![Travis branch](https://img.shields.io/travis/home-assistant/home-assistant.github.io/next.svg)](https://travis-ci.org/home-assistant/home-assistant.github.io)
[![Krihelimeter](http://www.krihelinator.xyz/badge/home-assistant/home-assistant.github.io)](http://www.krihelinator.xyz)
[![Krihelimeter](https://img.shields.io/badge/Krihelimeter-unknown-brightgreen.svg)](http://www.krihelinator.xyz)
[![License: CC BY-NC-SA 4.0](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/)
# Home Assistant website

View File

@ -141,14 +141,14 @@ social:
# Home Assistant release details
current_major_version: 0
current_minor_version: 80
current_patch_version: 3
date_released: 2018-10-18
current_minor_version: 81
current_patch_version: 0
date_released: 2018-10-29
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.
# Major release:
patch_version_notes: "#release-0803---october-18"
patch_version_notes: "#"
# Minor release (Example #release-0431---april-25):
# Date we moved to Discourse for comments

View File

@ -12,35 +12,9 @@ ha_release: 0.24
ha_category: Alarm
---
The `simplisafe` platform enables the ability to control a [SimpliSafe](http://simplisafe.com/) control panel.
The `simplisafe` alarm control panel platform gives users the ability to
control a SimpliSafe home alarm system.
## {% linkable_title Configuration %}
To enable this, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
alarm_control_panel:
platform: simplisafe
username: YOUR_USERNAME
password: YOUR_PASSWORD
```
{% configuration %}
username:
description: Username for the SimpliSafe account.
required: true
type: string
password:
description: Password for SimpliSafe account.
required: true
type: string
name:
description: The name of the alarm. Default is the SimpliSafe alarm id.
required: false
type: string
code:
description: Specifies a code to enable or disable the alarm in the frontend.
required: false
type: string
{% endconfiguration %}
You must have the [`simplisafe` component](/components/simplisafe/) configured
to use this platform. After configuring that component, any alarm control
panels defined will automatically appear.

View File

@ -17,7 +17,13 @@ The `android_ip_webcam` component turns an Android phone into a network camera w
It's setup as an MJPEG camera and all settings as switches inside of Home Assistant. You can also expose the sensors. If you have multiple phones, you can use all options inside a list.
To set it up, download [the IP Webcam app][app], and add the following information to your `configuration.yaml` file:
## {% linkable_title Setup %}
Download [the IP Webcam app](https://play.google.com/store/apps/details?id=com.pas.webcam) and launch the app. You will be able to the IP address of the device.
## {% linkable_title Configuration %}
To set it up the component, add the following information to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@ -27,7 +33,7 @@ android_ip_webcam:
{% configuration %}
host:
description: The IP Address of the phone on the network.
description: The IP address of the phone on the network.
required: true
type: string
port:
@ -59,50 +65,50 @@ sensors:
type: list
keys:
audio_connections:
description: Audio Connections
description: The audio connections
battery_level:
description: Battery Level
description: The battery level
battery_temp:
description: Battery Temperature
description: The battery temperature
battery_voltage:
description: Battery Voltage
description: The battery voltage
light:
description: Light Level
description: The light level
motion:
description: Motion
description: Motion detection
pressure:
description: Pressure
description: The current pressure
proximity:
description: Proximity
description: The proximity
sound:
description: Sound
description: The sound detection
video_connections:
description: Video Connections
description: The video connections
switches:
description: Conditions to display settings in the frontend. See the list of supported switches.
required: false
type: list
keys:
exposure_lock:
description: Exposure Lock
description: Control the exposure lock
ffc:
description: Front-facing Camera
description: Control the front-facing camera.
focus:
description: Focus
description: Control the focus.
gps_active:
description: GPS Active
description: Control the GPS.
night_vision:
description: Night Vision
description: Control the night vision.
overlay:
description: Overlay
description: Control the overlay.
torch:
description: Torch
description: Control the torch.
whitebalance_lock:
description: White Balance Lock
description: Control the white balance lock.
video_recording:
description: Video Recording
description: Control the video recording.
motion_sensor:
description: Activate motion sensor if auto_discovery is disabled.
description: Activate motion sensor if `auto_discovery` is disabled.
required: false
type: boolean
{% endconfiguration %}
@ -147,4 +153,3 @@ android_ip_webcam:
- torch
```
[app]: https://play.google.com/store/apps/details?id=com.pas.webcam

View File

@ -8,7 +8,7 @@ comments: false
sharing: true
footer: true
logo: august.png
ha_category: Doorbell
ha_category: Binary Sensor
ha_release: "0.64"
ha_iot_class: "Cloud Polling"
---
@ -20,3 +20,7 @@ If you have August Doorbell, once you have enabled the [August component](/compo
* Doorbell ding sensor
* Doorbell motion sensor
* Doorbell online sensor
If you have August Smart Lock with DoorSense, once you have enabled the [August component](/components/august/), you should see the following sensors:
* Door sensor

View File

@ -109,12 +109,43 @@ value_template:
required: false
type: string
force_update:
description: >
Sends update events even if the value has not changed.
Useful if you want to have meaningful value graphs in history.
reqired: false
description: Sends update events even if the value hasn't changed. Useful if you want to have meaningful value graphs in history.
required: false
type: boolean
default: false
default: False
off_delay:
description: For sensors that only sends On state updates, this variable sets a delay in seconds after which the sensor state will be updated back to Off.
required: false
type: integer
device:
description: 'Information about the device this binary sensor 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, tuple
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 Examples %}

View File

@ -16,7 +16,7 @@ ha_iot_class: "Local Polling"
The `octoprint` binary sensor platform let you monitor if your 3D printer is printing or if there was a printing error.
<p class='note'>
You must have the [OctoPrint component](/components/octoprint/) configured to use this sensor.
You must have the [OctoPrint component](/components/octoprint/) configured to use this binary sensor. After configuring that component, binary sensors automatically appear.
</p>
## {% linkable_title Configuration %}

View File

@ -0,0 +1,24 @@
---
layout: page
title: "OpenTherm Gateway Binary Sensor"
description: "Expose internal data from the OpenTherm Gateway."
date: 2018-10-19 18:23
sidebar: true
comments: false
sharing: true
footer: true
logo: opentherm.png
ha_category: Binary Sensor
ha_release: 0.81
ha_iot_class: "Local Push"
---
The `opentherm_gw` binary sensor platform is used to expose internal data from the [OpenTherm Gateway](http://otgw.tclcode.com/) in Home Assistant.
# {% linkable_title Configuration %}
Configuration of this platform is achieved through the [OpenTherm Gateway Hub](/components/opentherm_gw/) configuration.
<p class='note'>
The OpenTherm protocol is based on polling. The thermostat sends requests to the boiler at specific intervals. As a result, it may take some time for changes to propagate between Home Assistant and the thermostat.
</p>

View File

@ -0,0 +1,95 @@
---
layout: page
title: "RFLink Binary Sensor"
description: "Instructions on how to integrate RFLink binary sensors into Home Assistant."
date: 2018-10-04
sidebar: true
comments: false
sharing: true
footer: true
logo: rflink.png
ha_category: Binary Sensor
ha_iot_class: "Local Push"
ha_release: "0.81"
---
The `rflink` component supports devices that use [RFLink gateway firmware](http://www.nemcon.nl/blog2/), for example, the [Nodo RFLink Gateway](https://www.nodo-shop.nl/nl/21-rflink-gateway). RFLink gateway is an Arduino firmware that allows two-way communication with a multitude of RF wireless devices using cheap hardware (Arduino + transceiver).
First, you have to set up your [RFLink hub](/components/rflink/).
The RFLink component does not know the difference between a `binary_sensor`, a `switch` and a `light`. Therefore all switchable devices are automatically added as `light` by default.
RFLink binary_sensor/switch/light ID's are composed of: protocol, id, switch/channel. For example: `newkaku_0000c6c2_1`.
Once the ID of a binary sensor is known, it can be used to configure it as a binary sensor type in Home Assistant, for example, to hide it or configure a nice name.
Configuring a device as a binary sensor:
```yaml
# Example configuration.yaml entry
binary_sensor:
- platform: rflink
devices:
pt2262_00174754_0: {}
```
{% configuration %}
devices:
description: A list of binary sensors.
required: false
type: map
keys:
rflink_ids:
description: RFLink ID of the device
required: true
type: map
keys:
name:
description: Name of the device, defaults to RFLink ID.
required: false
type: string
aliases:
description: Alternative RFLink ID's this device is known by.
required: false
type: list
device_class:
description: The [type or class of the sensor](/components/binary_sensor/) to set the icon in the frontend.
required: false
type: string
off_delay:
description: For sensors that only sends 'On' state updates, this variable sets a delay after which the sensor state will be updated back to 'Off'.
required: false
type: int
force_update:
description: Sends update events even if the value has not changed. Useful for sensors that only sends `On`.
required: false
type: boolean
default: false
{% endconfiguration %}
### {% linkable_title Sensor state %}
Initially, the state of a binary sensor is unknown. When a sensor update is received, the state is known and will be shown in the frontend.
### {% linkable_title Device support %}
See [device support](/components/rflink/#device-support)
### {% linkable_title Additional configuration examples %}
Multiple sensors with custom name and device class and set off_delay
```yaml
# Example configuration.yaml entry
binary_sensor:
- platform: rflink
devices:
pt2262_00174754_0:
name: PIR Entrance
device_class: motion
off_delay: 5
pt2262_00174758_0:
name: PIR Living Room
device_class: motion
off_delay: 5
```

View File

@ -62,7 +62,7 @@ sensors:
description: The conditions to create sensors from.
required: false
type: list
default: all (`battery`, `temperature`, `status`, `wifi_strength`)
default: all (`battery`, `temperature`, `wifi_strength`)
{% endconfiguration %}
Once Home Assistant starts, the `blink` component will create the following platforms:
@ -74,11 +74,7 @@ Once Home Assistant starts, the `blink` component will create the following plat
Since the cameras are battery operated, setting the `scan_interval` must be done with care so as to not drain the battery too quickly, or hammer Blink's servers with too many API requests. The cameras can be manually updated via the `trigger_camera` service which will ignore the throttling caused by `scan_interval`. As a note, all of the camera-specific sensors are only polled when a new image is requested from the camera. This means that relying on any of these sensors to provide timely and accurate data is not recommended.
Please note that each camera reports two different states: one as `sensor.blink_<camera_name>_status` and the other as `binary_sensor.blink_<camera_name>_motion_enabled`. The `motion_enabled` property reports if the `camera` is ready to detect motion *regardless if the system is actually armed**. The `status` property is more descriptive, and can be one of the following states:
- `disabled`: System is disabled.
- `disarmed`: Camera and/or system are disarmed and not ready to detect motion.
- `armed`: System and camera are armed and detecting motion.
Please note that each camera reports two different states: one as `sensor.blink_<camera_name>_status` and the other as `binary_sensor.blink_<camera_name>_motion_enabled`. The `motion_enabled` property reports if the `camera` is ready to detect motion *regardless if the system is actually armed**.
Below is an example showing every possible entry:
@ -96,7 +92,6 @@ blink:
monitored_conditions:
- battery
- temperature
- status
- wifi_strength
```

View File

@ -0,0 +1,27 @@
---
layout: page
title: "Dyson Climate Control"
description: "Instructions on how to integrate your Dyson Climate device within Home Assistant."
date: 2018-05-23 22:30
sidebar: true
comments: false
sharing: true
footer: true
logo: dyson.png
ha_category: Climate
ha_iot_class: "Cloud Polling"
ha_release: 0.81
---
The `dyson` climate platform allows you to control your Dyson Pure Hot+Cool Fan thermal control. For controlling the fan functionality, see the [Dyson fan](/components/fan.dyson/) platform.
You have first to set up the [Dyson component](/components/dyson/).
### {% linkable_title Component services %}
This component supports the following services (see [Climate](/components/climate/)):
* [`turn_on`](/components/climate/#service-climateturn_on)
* [`turn_off`](/components/climate/#service-climateturn_off)
* [`set_temperature`](/components/climate/#service-climateset_temperature)
* [`set_fan_mode`](/components/climate/#service-climateset_fan_mode)
* [`set_operation_mode`](/components/climate/#service-climateset_operation_mode)

View File

@ -0,0 +1,22 @@
---
layout: page
title: "Elk-M1 Thermostat"
description: "Instructions how to integrate Elk-M1 thermostats."
date: 2018-10-20 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: elkproducts.png
ha_release: 0.81
ha_category: Climate
ha_iot_class: "Local Push"
---
The `elkm1` platform allows you to control your [Elk-M1](https://www.elkproducts.com/m1_controls.html).
An Elk-M1 thermostat is represented as a `climate` entity.
<p class='note'>
Full configuration details can be found on the main [Elk-M1 component](/components/elkm1/) page.
</p>

View File

@ -0,0 +1,39 @@
---
layout: page
title: "Mill heater"
description: "Instructions on how to integrate Mill heater into Home Assistant."
date: 2018-10-10 15:00 +0200
sidebar: true
comments: false
sharing: true
footer: true
logo: mill.png
ha_category: Climate
ha_release: 0.81
ha_iot_class: "Cloud Polling"
---
Integrates Mill heater into Home Assistant.
The component requires that the heater is set as an [independent device](https://millheat.zendesk.com/hc/en-us/articles/115001123491-What-is-an-Independent-device-) in the Mill app.
To enable this platform, add the following lines to your `configuration.yaml` file:
```yaml
climate:
- platform: mill
username: email@gmail.com
password: pswd
```
{% configuration %}
username:
description: Your registered Mill email.
required: true
type: string
password:
description: Your Mill password.
required: true
type: string
{% endconfiguration %}

View File

@ -201,6 +201,11 @@ max_temp:
description: Maximum set point available
type: number
required: false
temp_step:
description: Step size for temperature set point
type: number
required: false
default: 1
{% endconfiguration %}
#### {% linkable_title Optimistic mode %}

View File

@ -1,6 +1,6 @@
---
layout: page
title: "OpenTherm Gateway"
title: "OpenTherm Gateway Climate"
description: "Control your OpenTherm Gateway from Home Assistant."
date: 2018-08-29 16:23
sidebar: true
@ -18,48 +18,8 @@ The `opentherm_gw` climate platform is used to control the [OpenTherm Gateway](h
# {% linkable_title Configuration %}
```yaml
# Example configuration.yaml entry
climate:
- platform: opentherm_gw
device: /dev/ttyUSB0
```
{% configuration %}
device:
description: "Path to OpenTherm Gateway device as supported by [PySerial](https://pythonhosted.org/pyserial/url_handlers.html)."
required: true
type: string
name:
description: The name for the device within Home Assistant.
required: false
type: string
default: OpenTherm Gateway
precision:
description: "The desired precision for this device. Can be used to match your actual thermostat's precision. Supported values are `0.1`, `0.5` and `1.0`."
required: false
type: float
default: "`0.5` for Celsius and `1.0` for Fahrenheit."
floor_temperature:
description: Some thermostats round all temperatures down to the lower value according to their precision. Default behaviour for Home Assistant is to round temperatures to the nearest value. Set this to `true` to override Home Assistant and round to the lower value according to the configured `precision`.
required: false
type: boolean
{% endconfiguration %}
Configuration of this platform is achieved through the [OpenTherm Gateway Hub](/components/opentherm_gw/) configuration.
<p class='note'>
The OpenTherm protocol is based on polling. The thermostat sends requests to the boiler at specific intervals. As a result, it may take some time for changes to propagate between Home Assistant and the thermostat.
</p>
# {% linkable_title Example %}
A full configuration example with the OpenTherm Gateway connected to a remote host running `ser2net` looks like the one below.
```yaml
# Full example configuration.yaml entry
climate:
- platform: opentherm_gw
device: socket://otgw.example.org:2345
name: Thermostat
precision: 0.5
floor_temperature: true
```

View File

@ -14,7 +14,7 @@ ha_iot_class: "Cloud Polling"
---
The Wink climate platform allows you to get data from your [Wink](http://www.wink.com/) thermostats, Air Conditioners, and Water Heaters.
The Wink climate platform allows you to get data from your [Wink](http://www.wink.com/) thermostats and air conditioners.
The requirement is that you have setup [Wink](/components/wink/).
@ -28,7 +28,6 @@ The requirement is that you have setup [Wink](/components/wink/).
- Honeywell (No Wink hub required)
- Generic Z-Wave
- Quirky Aros window AC unit
- Rheem Econet water heaters (No Wink hub required)
<p class='note'>
The above devices are confirmed to work, but others may work as well.

View File

@ -15,7 +15,7 @@ ha_iot_class: "Local Push"
See the [deCONZ main component](/components/deconz/) for configuration instructions.
Covers are devices like ventilation dampers.
Covers are devices like ventilation dampers or smart window covers.
Note that devices in the cover platform identify as lights, so there is a manually curated list that defines which "lights" are covers.
@ -24,3 +24,4 @@ The `entity_id` name will be `cover.device_name`, where `device_name` is defined
#### {% linkable_title Verified supported covers %}
- Keen vents
- Xiaomi Aqara Curtain controller

View File

@ -159,6 +159,35 @@ unique_id:
description: An ID that uniquely identifies this cover. If two covers have the same unique ID, Home Assistant will raise an exception.
required: false
type: string
device:
description: 'Information about the device this cover 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 Examples %}

View File

@ -1,59 +0,0 @@
---
layout: page
title: "Ryobi GDO Cover"
description: "Instructions on how to integrate Ryobi Garage Door Opener (RyobiGDO) within Home Assistant."
date: 2018-04-22 09:00
sidebar: true
comments: false
sharing: true
footer: true
logo: ryobi.png
ha_category: Cover
ha_release: 0.71
ha_iot_class: "Cloud Polling"
---
The `ryobi_gdo` cover platform lets you control [Ryobi](https://www.ryobitools.com/gdo/) garage door opener through Home Assistant.
## {% linkable_title Setup %}
In order to be able to use your Ryobi garage door opener, you will have to get the DEVICE_ID_OF_YOUR_COVER (one for each garage door).
The DEVICE_ID_OF_YOUR_COVER can be retrieved using `curl`, simply use your username and password using the following example. Your `DEVICE_ID_OF_YOUR_COVER` will be `varName`:
```bash
$ curl -H "Content-Type: application/json" -X GET \
-d '{"username":"RYOBIGDO_USERNAME","password":"RYOBIGDO_PASSWORD"}' \
https://tti.tiwiconnect.com/api/devices
```
## {% linkable_title Configuration %}
To enable Ryobi covers in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
cover:
- platform: ryobi_gdo
username: RYOBIGDO_USERNAME
password: RYOBIGDO_PASSWORD
device_id:
- DEVICE_ID_OF_YOUR_COVER#1
- DEVICE_ID_OF_YOUR_COVER#2
```
{% configuration %}
username:
description: Your RyobiGDO account username.
required: true
type: string
password:
description: Your RyobiGDO account password.
required: true
type: string
device_id:
description: List of your doors.
required: true
type: list
{% endconfiguration %}

View File

@ -88,7 +88,7 @@ Typical values for switches, the event codes are 4 numbers where the first and l
Where for example on a Philips Hue Dimmer, 2001 would be holding the dim up button.
For the IKEA Tradfri remote, 1 is the middle button, 2 is up, 3 is down, 4 is left, and 5 is right.
For the IKEA Tradfri remote the first digit equals, 1 for the middle button, 2 for up, 3 for down, 4 for left, and 5 for right (e.g., "event: 1002" for middle button short release).
## {% linkable_title Examples %}

View File

@ -38,6 +38,16 @@ password:
description: The password for your given admin account.
required: true
type: string
ssl:
description: Whether to connect via HTTPS.
required: false
type: boolean
default: false
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
{% endconfiguration %}
By default Home Assistant pulls information about connected devices from DD-WRT every 5 seconds.

View File

@ -0,0 +1,43 @@
---
layout: page
title: "Quantum Gateway"
description: "Instructions on how to integrate Quantum Gateways into Home Assistant."
date: 2018-09-30 01:40
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Presence Detection
logo: fios.svg
ha_release: 0.81
---
The `quantum_gateway` device tracker platform offers presence detection by looking at connected devices to a Verizon Fios gateway.
It was tested with a Verizon Fios-G1100 Quantum Gateway.
## {% linkable_title Configuration %}
To use a Verizon Fios Quantum Gateway in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
device_tracker:
- platform: quantum_gateway
host: 192.168.1.1
password: YOUR_PASSWORD
```
{% configuration %}
host:
description: The IP address of your router, e.g., `192.168.1.1`.
required: false
type: string
default: myfiosgateway.com
password:
description: The password for the `admin` user. The default password may be printed on the gateway itself.
required: true
type: string
{% endconfiguration %}
See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked.

View File

@ -21,7 +21,7 @@ You first have to setup the [Dyson component](/components/dyson/)
### {% linkable_title Supported fan devices %}
- Pure Cool link (desk and tower)
- Pure Hot+cool link (heating is not yet supported)
- Pure Hot+cool link (see [climate](/components/climate.dyson/) for thermal control)
### {% linkable_title Attributes %}

View File

@ -146,6 +146,35 @@ unique_id:
description: An ID that uniquely identifies this fan. If two fans have the same unique ID, Home Assistant will raise an exception.
required: false
type: string
device:
description: 'Information about the device this fan 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, tuple
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

@ -0,0 +1,88 @@
---
layout: page
title: "NSW Rural Fire Service Incidents"
description: "Instructions on how to integrate the NSW Rural Fire Service Incidents feed into Home Assistant."
date: 2018-09-23 08:00
sidebar: true
comments: false
sharing: true
footer: true
logo: nsw-rural-fire-service.png
ha_category: Geo Location
ha_iot_class: "Cloud Polling"
ha_release: "0.81"
---
The `nsw_rural_fire_service_feed` platform lets you integrate a GeoJSON feed provided by the [NSW Rural Fire Service](https://www.rfs.nsw.gov.au/fire-information/fires-near-me) with information about bush fires, grass fires, hazard reductions and more. It retrieves incidents from a feed and shows information of those incidents filtered by distance to Home Assistant's location.
<p class='img'>
<img src='{{site_root}}/images/screenshots/nsw-rural-fire-service-feed-entities.png' />
</p>
Entities are generated, updated and removed automatically with each update from the feed. Each entity defines latitude and longitude and will be shown on the map automatically. The distance in kilometers is available as the state of each entity.
<p class='img'>
<img src='{{site_root}}/images/screenshots/nsw-rural-fire-service-feed-map.png' />
</p>
The entity's information can be used for example if a bush fire that produces smoke or embers is reported close to your home, and you want to automatically close windows, turn on a sprinkler system or simply send yourself a reminder to clean the gutters from dry leaves.
The data is updated every 5 minutes.
## {% linkable_title Configuration %}
To integrate the NSW Rural Fire Service Incidents feed, add the following lines to your `configuration.yaml`.
```yaml
# Example configuration.yaml entry
geo_location:
- platform: nsw_rural_fire_service_feed
```
{% configuration %}
radius:
description: The distance in kilometers around Home Assistant's coordinates in which incidents are included.
required: false
type: float
default: 20km
categories:
description: List of incident category names found in the feed. Only incidents from the feed that match any of these categories are included. Valid categories are 'Emergency Warning', 'Watch and Act', 'Advice', 'Not Applicable'.
required: false
type: list
default: None. Any incident regardless of its category will be included.
{% endconfiguration %}
## {% linkable_title State Attributes %}
The following state attributes are available for each entity in addition to the standard ones:
| Attribute | Description |
|--------------------|-------------|
| latitude | Latitude of the incident. |
| longitude | Longitude of the incident. |
| external_id | The external ID used in the feed to identify the incident in the feed. |
| category | One of 'Emergency Warning', 'Watch and Act', 'Advice', 'Not Applicable'. |
| location | Location details of where the incident takes place. |
| publication_date | Date and time when this incident was last updated. |
| council_area | Council area in which this incident takes place. |
| status | One of 'Under Control', 'Being Controlled', 'Out of Control'. |
| type | Incident type, for example 'Bush Fire', 'Grass Fire' or 'Hazard Reduction'. |
| fire | `True` if this incident is a fire, `False` otherwise. |
| size | Size in hectare |
| responsible_agency | Agency responsible for this incident. |
## {% linkable_title Advanced Configuration Example %}
Depending on your personal circumstances with regards to bush fire risk you may want to adjust the radius and define the categories of fire warnings you are actually interested in.
```yaml
# Example configuration.yaml entry
geo_location:
- platform: nsw_rural_fire_service_feed
entity_namespace: 'nsw_fire_service_feed'
radius: 10
categories:
- 'Emergency Warning'
- 'Watch and Act'
- 'Advice'
```

View File

@ -76,6 +76,10 @@ entities:
description: Array or comma delimited string, list of entities to group.
required: true
type: list
all:
description: Set this to `true` if the group state should only turn *on* if **all** grouped entities are *on*.
required: false
type: boolean
{% endconfiguration %}
<p class='img'>
@ -136,7 +140,7 @@ group:
## {% linkable_title Group behavior %}
When any member of a group is `on` then the group will also be `on`. Similarly with a device tracker, when any member of the group is `home` then the group is `home`.
By default when any member of a group is `on` then the group will also be `on`. Similarly with a device tracker, when any member of the group is `home` then the group is `home`. If you set the `all` option to `true` though, this behavior is inverted and all members of the group have to be `on` for the group to turn on as well.
## {% linkable_title Customize group order %}
You can also order your groups using [customize](/docs/configuration/customizing-devices/) with `order: ` if they don't show up in the order you want them in.

View File

@ -275,6 +275,7 @@ The following components are currently supported:
| sensor | CarbonDioxideSensor | All sensors that have `co2` as part of their `entity_id` or `co2` as their `device_class` |
| sensor | LightSensor | All sensors that have `lm` or `lx` as their `unit_of_measurement` or `illuminance` as their `device_class` |
| switch | Switch | Represented as a switch by default but can be changed by using `type` within `entity_config`. |
| water_heater | WaterHeater | All water_heater devices. |
## {% linkable_title Troubleshooting %}

View File

@ -116,6 +116,25 @@ devices:
repeat:
description: Number of times to repeat a momentary pulse. Set to `-1` to make an infinite repeat. This is useful as an alarm or warning when used with a piezo buzzer.
required: false
host:
type: string
required: false
description: Optionally specify the Konnected device's IP address or hostname to set up without discovery.
port:
type: integer
required: false
description: Optionally specify the port number for the Konnected API on the device. Note that the port is different on every device. See help.konnected.io to learn how to determine the port number.
discovery:
type: boolean
required: false
default: true
description: Enable or disable discovery for this device. When `true`, the device will respond to discovery requests on your network. When `false`, the device will not respond to discovery requests, so it's important that you set reserved IP for the device and configure the _host_ and _port_ here.
blink:
type: boolean
required: false
default: true
description: Blink the blue LED upon successful transmission of a state change.
{% endconfiguration%}
#### {% linkable_title Configuration Notes %}
@ -188,6 +207,10 @@ Konnected runs on an ESP8266 board with the NodeMCU firmware. It is commonly use
### {% linkable_title Revision History %}
#### 0.80
* Added ability to specify `host` and `port` to set up devices without relying on discovery.
* Added `discovery` and `blink` config options to enable/disable these features.
#### 0.79
* Added `inverse` configuration option for binary sensors.

View File

@ -0,0 +1,132 @@
---
layout: page
title: "LIFX"
description: "Instructions on how to integrate LIFX into Home Assistant."
date: 2018-10-08 08:00
sidebar: true
comments: false
sharing: true
footer: true
logo: lifx.png
ha_category: Light
ha_iot_class: "Local Polling"
ha_release: 0.81
---
The `lifx` component allows you to integrate your [LIFX](https://www.lifx.com) into Home Assistant.
_Please note, the `lifx` component does not support Windows. The `lifx_legacy` light platform (supporting basic functionality) can be used instead._
You can configure the LIFX component by going to the integrations page inside the config panel.
## {% linkable_title Set state %}
The LIFX bulbs allow a change of color and brightness even when they are turned off. This way you can control the light during the day so its settings are correct when events for turning on are received, for example from motion detectors or external buttons.
The normal `light.turn_on` call cannot be used for this because it always turns the power on. Thus, LIFX has its own service call that allows color changes without affecting the current power state.
### {% linkable_title Service `light.lifx_set_state` %}
Change the light to a new state.
| Service data attribute | Description |
| ---------------------- | ----------- |
| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all.
| `transition` | Duration (in seconds) for the light to fade to the new state.
| `zones` | List of integers for the zone numbers to affect (each LIFX Z strip has 8 zones, starting at 0).
| `infrared` | Automatic infrared level (0..255) when light brightness is low (for compatible bulbs).
| `power` | Turn the light on (`True`) or off (`False`). Leave out to keep the power as it is.
| `...` | Use `color_name`, `brightness` etc. from [`light.turn_on`]({{site_root}}/components/light/#service-lightturn_on) to specify the new state.
## {% linkable_title Light effects %}
The LIFX platform supports several light effects. You can start these effects with default options by using the `effect` attribute of the normal [`light.turn_on`]({{site_root}}/components/light/#service-lightturn_on) service, for example like this:
```yaml
automation:
- alias: ...
trigger:
# ...
action:
- service: light.turn_on
data:
entity_id: light.office, light.kitchen
effect: lifx_effect_pulse
```
However, if you want to fully control a light effect, you have to use its dedicated service call, like this:
```yaml
script:
colorloop_start:
alias: 'Start colorloop'
sequence:
- service: light.lifx_effect_colorloop
data:
entity_id: group.livingroom
brightness: 255
period: 10
spread: 30
         change: 35
```
The available light effects and their options are listed below.
### {% linkable_title Service `light.lifx_effect_pulse` %}
Run a flash effect by changing to a color and then back.
| Service data attribute | Description |
| ---------------------- | ----------- |
| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all.
| `color_name` | A color name such as `red` or `green`.
| `rgb_color` | A list containing three integers representing the RGB color you want the light to be.
| `brightness` | Integer between 0 and 255 for how bright the color should be.
| `period` | The duration of a single pulse (in seconds).
| `cycles` | The total number of pulses.
| `mode` | The way to change between colors. Valid modes: `blink` (default), `breathe`, `ping`, `strobe`, `solid`.
| `power_on` | Set this to False to skip the effect on lights that are turned off (defaults to True).
### {% linkable_title Service `light.lifx_effect_colorloop` %}
Run an effect with colors looping around the color wheel. All participating lights will coordinate to keep similar (but not identical) colors.
| Service data attribute | Description |
| ---------------------- | ----------- |
| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all.
| `brightness` | Number between 0 and 255 indicating brightness of the effect. Leave this out to maintain the current brightness of each participating light.
| `period` | Duration (in seconds) between starting a new color change.
| `transition` | Duration (in seconds) where lights are actively changing color.
| `change` | Hue movement per period, in degrees on a color wheel (ranges from 0 to 359).
| `spread` | Maximum color difference between participating lights, in degrees on a color wheel (ranges from 0 to 359).
| `power_on` | Set this to False to skip the effect on lights that are turned off (defaults to True).
### {% linkable_title Service `light.lifx_effect_stop` %}
Run an effect that does nothing, thereby stopping any other effect that might be running.
| Service data attribute | Description |
| ---------------------- | ----------- |
| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all.
## {% linkable_title Advanced configuration %}
There are some manual configuration options available. These should only be needed if you have more than one network interface and automatic configuration does not find your LIFX devices.
```yaml
# Example configuration.yaml entry
lifx:
light:
server: IP_ADDRESS
broadcast: IP_ADDRESS
```
{% configuration %}
server:
description: Your server address. Will listen on all interfaces if omitted.
required: false
type: string
broadcast:
description: The broadcast address for discovering lights.
required: false
type: string
{% endconfiguration %}

View File

@ -0,0 +1,22 @@
---
layout: page
title: "Elk-M1 Light"
description: "Instructions how to integrate Elk-M1 light."
date: 2018-10-07 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: elkproducts.png
ha_release: 0.81
ha_category: Light
ha_iot_class: "Local Push"
---
The `elkm1` platform allows you to control your [Elk-M1](https://www.elkproducts.com/m1_controls.html).
An Elk-M1 light (which can be X10, Insteon, UPB) is represented as a `light`.
<p class='note'>
Full configuration details can be found on the main [Elk-M1 component](/components/elkm1/) page.
</p>

View File

@ -13,110 +13,4 @@ ha_iot_class: "Local Polling"
ha_release: 0.12
---
The `lifx` platform allows you to integrate your [LIFX](http://www.lifx.com) into Home Assistant.
_Please note, the `lifx` platform does not support Windows. The `lifx_legacy` platform (supporting basic functionality) can be used instead._
```yaml
# Example configuration.yaml entry
light:
- platform: lifx
```
{% configuration %}
broadcast:
description: The broadcast address for discovering lights. Only needed if using more than one network interface. Omit if you are unsure.
required: false
type: string
server:
description: Your server address. Will listen on all interfaces if omitted. Omit if you are unsure.
required: false
type: string
{% endconfiguration %}
## {% linkable_title Set state %}
The LIFX bulbs allow a change of color and brightness even when they are turned off. This way you can control the light during the day so its settings are correct when events for turning on are received, for example from motion detectors or external buttons.
The normal `light.turn_on` call cannot be used for this because it always turns the power on. Thus, LIFX has its own service call that allows color changes without affecting the current power state.
### {% linkable_title Service `light.lifx_set_state` %}
Change the light to a new state.
| Service data attribute | Description |
| ---------------------- | ----------- |
| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all.
| `transition` | Duration (in seconds) for the light to fade to the new state.
| `zones` | List of integers for the zone numbers to affect (each LIFX Z strip has 8 zones, starting at 0).
| `infrared` | Automatic infrared level (0..255) when light brightness is low (for compatible bulbs).
| `power` | Turn the light on (`True`) or off (`False`). Leave out to keep the power as it is.
| `...` | Use `color_name`, `brightness` etc. from [`light.turn_on`]({{site_root}}/components/light/#service-lightturn_on) to specify the new state.
## {% linkable_title Light effects %}
The LIFX platform supports several light effects. You can start these effects with default options by using the `effect` attribute of the normal [`light.turn_on`]({{site_root}}/components/light/#service-lightturn_on) service, for example like this:
```yaml
automation:
- alias: ...
trigger:
# ...
action:
- service: light.turn_on
data:
entity_id: light.office, light.kitchen
effect: lifx_effect_pulse
```
However, if you want to fully control a light effect, you have to use its dedicated service call, like this:
```yaml
script:
colorloop_start:
alias: 'Start colorloop'
sequence:
- service: light.lifx_effect_colorloop
data:
entity_id: group.livingroom
brightness: 255
period: 10
spread: 30
         change: 35
```
The available light effects and their options are listed below.
### {% linkable_title Service `light.lifx_effect_pulse` %}
Run a flash effect by changing to a color and then back.
| Service data attribute | Description |
| ---------------------- | ----------- |
| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all.
| `color_name` | A color name such as `red` or `green`.
| `rgb_color` | A list containing three integers representing the RGB color you want the light to be.
| `brightness` | Integer between 0 and 255 for how bright the color should be.
| `period` | The duration of a single pulse (in seconds).
| `cycles` | The total number of pulses.
| `mode` | The way to change between colors. Valid modes: `blink` (default), `breathe`, `ping`, `strobe`, `solid`.
| `power_on` | Set this to False to skip the effect on lights that are turned off (defaults to True).
### {% linkable_title Service `light.lifx_effect_colorloop` %}
Run an effect with colors looping around the color wheel. All participating lights will coordinate to keep similar (but not identical) colors.
| Service data attribute | Description |
| ---------------------- | ----------- |
| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all.
| `brightness` | Number between 0 and 255 indicating brightness of the effect. Leave this out to maintain the current brightness of each participating light.
| `period` | Duration (in seconds) between starting a new color change.
| `transition` | Duration (in seconds) where lights are actively changing color.
| `change` | Hue movement per period, in degrees on a color wheel (ranges from 0 to 359).
| `spread` | Maximum color difference between participating lights, in degrees on a color wheel (ranges from 0 to 359).
| `power_on` | Set this to False to skip the effect on lights that are turned off (defaults to True).
### {% linkable_title Service `light.lifx_effect_stop` %}
Run an effect that does nothing, thereby stopping any other effect that might be running.
| Service data attribute | Description |
| ---------------------- | ----------- |
| `entity_id` | String or list of strings that point at `entity_id`s of lights. Else targets all.
For installation instructions, see [the LIFX component](/components/lifx/).

View File

@ -88,6 +88,21 @@ effect_list:
description: The list of effects the light supports.
required: false
type: string list
hs_command_topic:
description: "The MQTT topic to publish commands to change the light's color state in HS format (Hue Saturation).
Range for Hue: 0° .. 360°, Range of Saturation: 0..100.
Note: Brightness is sent separately in the `brightness_command_topic`."
required: false
type: string
hs_state_topic:
description: "The MQTT topic subscribed to receive color state updates in HS format.
Note: Brightness is received separately in the `brightness_state_topic`."
required: false
type: string
hs_value_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the HS value."
required: false
type: string
on_command_type:
description: "Defines when on the payload_on is sent. Using `last` (the default) will send any style (brightness, color, etc) topics first and then a `payload_on` to the `command_topic`. Using `first` will send the `payload_on` and then any style topics. Using `brightness` will only send brightness commands instead of the `payload_on` to turn the light on."
required: false
@ -200,7 +215,7 @@ payload_not_available:
| RGB Color | ✔ | ✔ | ✔ |
| Transitions | ✘ | ✔ | ✔ |
| XY Color | ✔ | ✔ | ✘ |
| HS Color | | ✔ | ✘ |
| HS Color | | ✔ | ✘ |
| White Value | ✔ | ✔ | ✔ |
## {% linkable_title Examples %}

View File

@ -256,6 +256,23 @@ Home Assistant expects the hue values to be in the range 0 to 360 and the satura
}
```
### {% linkable_title Brightness and RGBW support %}
To enable a light with brightness, RGB support and a separate white channel (RGBW) in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
light:
- platform: mqtt_json
name: mqtt_json_light_1
state_topic: "home/rgbw1"
command_topic: "home/rgbw1/set"
brightness: true
rgb: true
white_value: true
```
### {% linkable_title Implementations %}
- A full example of custom lighting using this platform and an ESP8266 microcontroller can be found [here](https://github.com/corbanmailloux/esp-mqtt-rgb-led). It supports on/off, brightness, transitions, RGB colors, and flashing.

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 LED Ceiling Lamp and Xiaomi Philips Eyecare Lamp 2.
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 LED Ceiling Lamp, Xiaomi Philips Eyecare Lamp 2 and Philips Zhirui Desk Lamp.
## Features
@ -62,6 +62,17 @@ The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philip
- reminder
- eyecare_mode
### Philips Zhirui Desk Lamp
* Power (on, off)
* Brightness
* Scene (1, 2, 3, 4)
* Delayed turn off (Resolution in seconds)
* Attributes
- model
- scene
- delayed_turn_off
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:
@ -91,7 +102,7 @@ name:
type: string
default: Xiaomi Philips Light
model:
description: The model of your miio light. Valid values are `philips.light.bulb`, `philips.light.candle2`, `philips.light.sread1`, `philips.light.ceiling` and `philips.light.zyceiling`. 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 light. Valid values are `philips.light.bulb`, `philips.light.candle`, `philips.light.candle2`, `philips.light.sread1`, `philips.light.ceiling`, `philips.light.zyceiling` and `philips.light.mono1`. 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

@ -58,6 +58,10 @@ devices:
required: false
type: boolean
default: False
model:
description: "Yeelight model. Possible values are `mono1`, `color1`, `strip1`, `bslamp1`, `ceiling1`, `ceiling2`, `ceiling3`, `ceiling4`. The setting is used to enable model specific features f.e. a particular color temperature range."
required: false
type: string
{% endconfiguration %}
#### {% linkable_title Music mode %}
@ -72,22 +76,27 @@ Determine your bulb IP (using router, software, ping...).
Information on how to enable "LAN Mode" can be found [here](https://getyeti.co/posts/how-to-control-yeelight-and-your-smarthome-with-yeti).
</p>
### {% linkable_title Supported models %}
<p class='note warning'>
This component is tested to work with the following models. If you have a different model and it is working please let us know.
</p>
- **YLDP01YL**: LED Bulb (White)
- **YLDP02YL**: LED Bulb (Color)
- **YLDP03YL**: LED Bulb (Color) - E26
- **YLDP05YL**: LED Bulb (White) II
- **YLDP06YL**: LED Bulb (Color) II
- **YLDD01YL**: Lightstrip (Color)
- **YLDD02YL**: Lightstrip (Color)
- **MJCTD01YL**: Xiaomi Mijia Bedside Lamp - WIFI Version!
- **MJTD01YL**: Xiaomi Mijia Smart LED Desk Lamp (autodiscovery isn't possible because the device doesn't support mDNS due to the small amount of RAM)
- **YLXD02YL**: Yeelight Ceiling Light 4 (Jiaoyue 650)
- **YLXD01YL**: Yeelight Smart LED Ceiling Light - Youth Version
| Model ID | Model number | Product name |
|------------|--------------|--------------------------------------------------|
| `mono1` | YLDP01YL | LED Bulb (White) |
| ? | YLDP05YL | LED Bulb (White) - 2nd generation |
| `color1` | YLDP02YL | LED Bulb (Color) |
| `color1` | YLDP03YL | LED Bulb (Color) - E26 |
| `color2` | YLDP06YL | LED Bulb (Color) - 2nd generation |
| `strip1` | YLDD01YL | Lightstrip (Color) |
| `strip1` | YLDD02YL | Lightstrip (Color) |
| `bslamp1` | MJCTD01YL | Xiaomi Mijia Bedside Lamp - WIFI Version! |
| `lamp1` | MJTD01YL | Xiaomi Mijia Smart LED Desk Lamp (autodiscovery isn't possible because the device doesn't support mDNS due to the small amount of RAM) |
| `ceiling1` | ? | Yeelight Ceiling Light |
| `ceiling2` | YLXD01YL | Yeelight Smart LED Ceiling Light - Youth Version |
| `ceiling3` | ? | Yeelight Ceiling Light |
| `ceiling4` | YLXD02YL | Yeelight Ceiling Light 4 (Jiaoyue 650) |
## {% linkable_title Platform Services %}

View File

@ -0,0 +1,142 @@
---
layout: page
title: "Template Lock"
description: "Instructions on how to integrate Template Locks into Home Assistant."
date: 2018-10-09 19:00
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Lock
ha_release: 0.81
ha_iot_class: "Local Push"
logo: home-assistant.png
ha_qa_scale: internal
---
The `template` platform creates locks that combines components.
For example, if you have a garage door with a toggle switch that operates the motor and a sensor that allows you know whether the door is open or closed, you can combine these into a lock that knows whether the garage door is open or closed.
This can simplify the GUI and make it easier to write automations. You can mark the components you have combined as `hidden` so they don't appear themselves.
In optimistic mode, the lock will immediately change state after every command. Otherwise, the lock will wait for state confirmation from the template. Try to enable it, if experiencing incorrect lock operation.
## {% linkable_title Configuration %}
To enable Template Locks in your installation, add the following to your `configuration.yaml` file:
{% raw %}
```yaml
# Example configuration.yaml entry
lock:
- platform: template
name: Garage door
value_template: "{{ is_state('sensor.door', 'on') }}"
lock:
service: switch.turn_on
data:
entity_id: switch.door
unlock:
service: switch.turn_off
data:
entity_id: switch.door
```
{% endraw %}
{% configuration %}
name:
description: Name to use in the frontend.
required: false
type: string
default: Template Lock
value_template:
description: Defines a template to set the state of the lock.
required: true
type: template
lock:
description: Defines an action to run when the lock is locked.
required: true
type: action
unlock:
description: Defines an action to run when the lock is unlocked.
required: true
type: action
optimistic:
description: Flag that defines if lock works in optimistic mode.
required: false
type: boolean
default: false
{% endconfiguration %}
## {% linkable_title Considerations %}
If you are using the state of a platform that takes extra time to load, the Template Lock may get an `unknown` state during startup. This results in error messages in your log file until that platform has completed loading. If you use `is_state()` function in your template, you can avoid this situation. For example, you would replace {% raw %}`{{ states.switch.source.state == 'on' }}`{% endraw %} with this equivalent that returns `true`/`false` and never gives an unknown result: {% raw %}`{{ is_state('switch.source', 'on') }}`{% endraw %}
## {% linkable_title Examples %}
In this section, you find some real-life examples of how to use this lock.
### {% linkable_title Lock from Switch %}
This example shows a lock that copies data from a switch.
{% raw %}
```yaml
lock:
- platform: template
name: Garage Door
value_template: "{{ is_state('switch.source', 'on') }}"
lock:
service: switch.turn_on
data:
entity_id: switch.source
unlock:
service: switch.turn_off
data:
entity_id: switch.source
```
{% endraw %}
### {% linkable_title Optimistic Mode %}
This example shows a lock in optimistic mode. This lock will immediately change state after command and will not wait for state update from the sensor.
{% raw %}
```yaml
lock:
- platform: template
name: Garage Door
value_template: "{{ is_state('sensor.skylight.state', 'on') }}"
optimistic: true
lock:
service: switch.turn_on
data:
entity_id: switch.source
unlock:
service: switch.turn_off
data:
entity_id: switch.source
```
{% endraw %}
### {% linkable_title Sensor and Two Switches %}
This example shows a lock that takes its state from a sensor, and uses two momentary switches to control a device.
{% raw %}
```yaml
lock:
- platform: template
name: Garage Door
value_template: "{{ is_state('sensor.skylight.state', 'on') }}"
lock:
service: switch.turn_on
data:
entity_id: switch.skylight_open
unlock:
service: switch.turn_on
data:
entity_id: switch.skylight_close
```
{% endraw %}

View File

@ -0,0 +1,26 @@
---
layout: page
title: "LG Soundbars"
description: "Instructions on how to integrate LG Soundbars into Home Assistant."
date: 2018-10-17 19:55:18
sidebar: true
comments: false
sharing: true
footer: true
logo: lg.png
ha_category: Media Player
ha_iot_class: "Local Polling"
ha_release: 0.81
---
The `lg_soundbar` platform allows you to control [LG Soundbars](https://www.lg.com/us/sound-bars) from Home Assistant.
Supported devices:
- The SK range
Compatible devices will be automatically added if the [`discovery`](/components/discovery/) component is enabled.
### {% linkable_title Supported operations %}
- These devices support mute, volume control, source selection and mode selection.

View File

@ -14,9 +14,13 @@ ha_release: "0.20"
The `aws_lambda` notification platform enables invoking [AWS Lambda](https://aws.amazon.com/lambda/) functions.
To use this notification platform in your installation, add the following to your `configuration.yaml` file:
## {% linkable_title Setup %}
### Configuration
For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html) to get the needed details. Also, check the [boto3 Documentation](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file) about the profiles and the [AWS Regions and Endpoints Reference](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region) for available regions.
## {% linkable_title Configuration %}
To use this notification platform in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@ -30,9 +34,9 @@ notify:
Configuration variables:
- **aws_access_key_id** (*Required if aws_secret_access_key is provided*): Your AWS Access Key ID. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`.
- **aws_secret_access_key** (*Required if aws_access_key_id is provided*): Your AWS Secret Access Key. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`.
- **profile_name** (*Optional*): A credentials profile name. For more information, please see the [boto3 documentation section about credentials](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file).
- **aws_access_key_id** (*Required if aws_secret_access_key is provided*): Your AWS Access Key ID. If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`.
- **aws_secret_access_key** (*Required if aws_access_key_id is provided*): Your AWS Secret Access Key. If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`.
- **profile_name** (*Optional*): A credentials profile name.
- **region_name** (*Required*): The region identifier to connect to. The default is `us-east-1`.
- **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`.
- **context** (*Optional*): An optional dictionary you can provide to pass custom context through to the Lambda function. The `context` dictionary (if any) is combined with the same data available at the `/api/config` HTTP API route.

View File

@ -14,6 +14,12 @@ ha_release: "0.20"
The `aws_sns` notification platform enables publishing to an [AWS SNS](https://aws.amazon.com/sns/) topic or application.
## {% linkable_title Setup %}
For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html) to get the needed details. Also, check the [boto3 Documentation](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file) about the profiles and the [AWS Regions and Endpoints Reference](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region) for available regions.
## {% linkable_title Configuration %}
To use this notification platform in your installation, add the following to your `configuration.yaml` file:
```yaml
@ -28,9 +34,9 @@ notify:
Configuration variables:
- **aws_access_key_id** (*Required if aws_secret_access_key is provided*): Your AWS Access Key ID. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`.
- **aws_secret_access_key** (*Required if aws_access_key_id is provided*): Your AWS Secret Access Key. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`.
- **profile_name** (*Optional*): A credentials profile name. For more information, please see the [boto3 documentation section about credentials](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file).
- **aws_access_key_id** (*Required if aws_secret_access_key is provided*): Your AWS Access Key ID. If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`.
- **aws_secret_access_key** (*Required if aws_access_key_id is provided*): Your AWS Secret Access Key. If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`.
- **profile_name** (*Optional*): A credentials profile name.
- **region_name** (*Required*): The region identifier to connect to. The default is `us-east-1`.
- **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`.

View File

@ -14,6 +14,12 @@ ha_release: "0.20"
The `aws_sqs` notification platform enables publishing to an [AWS SQS](https://aws.amazon.com/sqs/) message queue.
## {% linkable_title Setup %}
For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html) to get the needed details. Also, check the [boto3 Documentation](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file) about the profiles and the [AWS Regions and Endpoints Reference](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region) for available regions.
## {% linkable_title Configuration %}
To use this notification platform in your installation, add the following to your `configuration.yaml` file:
```yaml
@ -28,9 +34,9 @@ notify:
Configuration variables:
- **aws_access_key_id** (*Required if aws_secret_access_key is provided*): Your AWS Access Key ID. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`.
- **aws_secret_access_key** (*Required if aws_access_key_id is provided*): Your AWS Secret Access Key. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`.
- **profile_name** (*Optional*): A credentials profile name. For more information, please see the [boto3 documentation section about credentials](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file).
- **aws_access_key_id** (*Required if aws_secret_access_key is provided*): Your AWS Access Key ID. If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`.
- **aws_secret_access_key** (*Required if aws_access_key_id is provided*): Your AWS Secret Access Key. If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`.
- **profile_name** (*Optional*): A credentials profile name.
- **region_name** (*Required*): The region identifier to connect to. The default is `us-east-1`.
- **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`.

View File

@ -0,0 +1,111 @@
---
layout: page
title: "Homematic Notifications"
description: "Instructions on how to notify Homematic devices."
date: 2018-10-03 11:44
sidebar: true
comments: false
sharing: true
footer: true
logo: homematic.png
ha_category: Notifications
ha_release: 0.81
---
The `homematic` notification platform enables invoking Homematic devices.
To use this notification platform in your installation, add the following to your `configuration.yaml` file:
## {% linkable_title Configuration %}
```yaml
# Example configuration.yaml entry
notify:
- name: my_hm
platform: homematic
address: NEQXXXXXXX
channel: 2
param: "SUBMIT"
value: "1,1,108000,8"
```
{% configuration %}
address:
description: The address of your Homematic device. The address is the serial number of the device shown in the CCU in the `devices` section in the column `serial number`.
required: true
type: string
channel:
description: The channel of your Homematic device.
required: true
type: integer
param:
description: An additional parameter for the Homematic device.
required: true
type: string
interface:
description: Set the name of the interface from the config.
required: false
type: string
value:
description: This is the value that is set on the device. Its device specific.
required: true
type: string
{% endconfiguration %}
### {% linkable_title Usage %}
`homematic` is a notify platform and can be controlled by calling the notify service [as described here](/components/notify/).
Only the `data` part of the event payload is processed. This part can specify or override the value given as configuration variable:
```json
{
"data": {
"address": "NEQXXXXXXX",
"channel": 2,
"param": "SUBMIT",
"value": "1,1,108000,8"
}
}
```
It is possible to provide a template in order to compute the value:
{% raw %}
```json
{
"data": {
"value": "1,1,108000{% if is_state('binary_sensor.oeqxxxxxxx_state', 'on') %},1{% endif %}{% if is_state('binary_sensor.oeqxxxxxxx_state', 'on') %},2{% endif %}"
}
}
```
{% endraw %}
You can also specify the event payload using a group notification (instead of specifying the value for the notify itself):
{% raw %}
```yaml
notify:
- name: my_hm
platform: homematic
address: NEQXXXXXXX
- name: group_hm
platform: group
services:
- service: my_hm
data:
data:
value: "1,1,108000{% if is_state('binary_sensor.oeqxxxxxxx_state', 'on') %},1{% endif %}{% if is_state('binary_sensor.oeqxxxxxxx_state', 'on') %},2{% endif %}"
alert:
temperature:
name: Temperature too high
done_message: Temperature OK
entity_id: binary_sensor.temperature_too_high
can_acknowledge: True
notifiers:
- group_hm
```
{% endraw %}
Please note that the first `data` element belongs to the service `my_hm`, while the second one belongs to the event payload.

View File

@ -13,7 +13,9 @@ ha_release: pre 0.7
---
The `xmpp` platform allows you to deliver notifications from Home Assistant to a [Jabber (XMPP)](http://xmpp.org) account.
The `xmpp` notification platform allows you to deliver notifications from Home Assistant to a [Jabber (XMPP)](http://xmpp.org) account.
## {% linkable_title Configuration %}
To enable Jabber notifications in your installation, add the following to your `configuration.yaml` file:
@ -27,18 +29,47 @@ notify:
recipient: YOUR_RECIPIENT
```
Configuration variables:
- **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`.
- **sender** (*Required*): The Jabber ID (JID) that will act as origin of the messages. Add your JID including the domain, eg. your_name@jabber.org.
- **password** (*Required*): The password for your given Jabber account.
- **recipient** (*Required*): The Jabber ID (JID) that will receive the messages.
- **tls** (*Optional*): Allow to disable TLS. Defaults to `true`.
- **verify** (*Optional*): Allow disabling SSL certificate validity check (e.g., self-signed certificate). Defaults to `true`.
- **room** (*Optional*): Room's name (e.g., example@conference.jabber.org). If set, send a message to chatroom instead of the sender.
{% configuration %}
name:
description: "Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`."
required: false
type: string
default: Random Sensor
sender:
description: "The Jabber ID (JID) that will act as origin of the messages. Add your JID including the domain, e.g. your_name@jabber.org."
required: true
type: string
resource:
description: "Resource part of JID, e.g., your_name@jabber.org/`HA-cabin`."
required: false
type: string
default: home-assistant
password:
description: The password for your given Jabber account.
required: true
recipient:
description: The Jabber ID (JID) that will receive the messages.
required: true
tls:
description: Force TLS.
required: false
type: boolean
default: true
verify:
description: Allow disabling SSL certificate validity check, e.g., self-signed certificate.
required: false
type: boolean
default: true
room:
description: Room's name (e.g., example@conference.jabber.org). If set, send a message to chatroom instead of the recipient.
required: false
type: string
{% endconfiguration %}
<p class='note'>
sleekxmpp, as of version 1.3.2, does not support >TLS1. If you are running your own XMPP server (e.g., Prosody, ejabberd) make sure to allow using TLS1.
Pre Home Assistant 0.81 `sleekxmpp` was used to connect to XMPP servers. `sleekxmpp` as of version 1.3.2, does not support > TLS v1. If you are running your own XMPP server (e.g., Prosody, ejabberd) make sure to allow using TLS v1.
Home Assistant after 0.81 uses `slixmpp`, which also supports TLS v1.1 and TLS v1.2.
</p>
All Jabber IDs (JID) must include the domain. Make sure that the password matches the account provided as sender.

View File

@ -14,40 +14,114 @@ ha_release: 0.19
ha_iot_class: "Local Polling"
---
[OctoPrint](http://octoprint.org/) is a web interface for your 3D printer. This is the main component to integrate OctoPrint sensors, you will have to setup sensors and binary sensors separately.
[OctoPrint](http://octoprint.org/) is a web interface for your 3D printer. This is the main component to integrate OctoPrint sensors.
To get started with the OctoPrint API, please follow the directions on their [site](http://docs.octoprint.org/en/master/api/general.html). Once OctoPrint is configured you will need to add your API key and host to your `configuration.yaml`.
## {% linkable_title Configuration %}
To get started with the OctoPrint API, please follow the directions on their [site](http://docs.octoprint.org/en/master/api/general.html). Once OctoPrint is configured you will need to add your API key and host to your `configuration.yaml`.
```yaml
octoprint:
host: YOUR_OCTOPRINT_HOST
api_key: YOUR_API_KEY
bed: false
number_of_tools: 1
```
{% configuration %}
host:
description: IP address or hostname of Octoprint host.
octoprint:
type: list
required: true
type: string
api_key:
description: The retrieved api key.
required: true
type: string
bed:
description: If the printer has a heated bed.
required: false
default: false
type: boolean
number_of_tools:
description: Number of temperature adjustable tools, i.e. nozzle.
required: false
default: 0
type: integer
keys:
host:
description: IP address or hostname of Octoprint host.
required: true
type: string
api_key:
description: The retrieved API key.
required: true
type: string
name:
description: The name for this printer, must be unique if multiple printers are defined.
required: false
type: string
default: OctoPrint
port:
description: The port of the Octoprint server.
required: false
type: integer
default: 80
ssl:
description: Enable or disable SSL/TLS.
required: false
type: boolean
default: false
bed:
description: If the printer has a heated bed.
required: false
type: boolean
default: false
number_of_tools:
description: Number of temperature adjustable tools, e.g., nozzle.
required: false
type: integer
default: 1
sensors:
description: Configuration for the sensors.
required: false
type: map
keys:
monitored_conditions:
description: The sensors to activate.
type: list
default: all (`Current State`, `Temperatures`, `Job Percentage`, `Time Elapsed`, `Time Remaining`)
keys:
"Current State":
description: Text of current state.
"Temperatures":
description: Temperatures of all available tools, eg. `print`, `head`, `print bed`, etc. These will be displayed as `tool0`, `tool1`, or `toolN` please refer to your OctoPrint frontend to associate the tool number with an actual device.
"Job Percentage":
description: Percentage of the job.
"Time Elapsed":
description: Time elapsed on current print job, in seconds.
"Time Remaining":
description: Time remaining on current print job, in seconds.
binary_sensors:
description: Configuration for the binary sensors.
required: false
type: map
keys:
monitored_conditions:
description: The sensors to activate.
type: list
default: all (`Printing`, `Printing Error`)
keys:
"Printing":
description: State of the printer.
"Printing Error":
description: Error while printing.
{% endconfiguration %}
<p class='note'>
If you are tracking temperature it is recommended to set `bed` and/or `number_of_tools` in your octoprint configuration. This will allow the octoprint sensors to load if the printer is offline during Home Assistant startup.
</p>
Example with multiple printers:
```yaml
octoprint:
- host: YOUR_OCTOPRINT_HOST
api_key: YOUR_API_KEY
name: PRINTER_NAME_1
number_of_tools: 2
sensors:
monitored_conditions:
- 'Current State'
- 'Job Percentage'
- host: YOUR_OCTOPRINT_HOST
api_key: YOUR_API_KEY
name: PRINTER_NAME_2
number_of_tools: 1
```
If the OctoPrint host is equipped with a web camera it is possible to add this as well.
```yaml

View File

@ -0,0 +1,309 @@
---
layout: page
title: "OpenTherm Gateway Hub"
description: "Control your OpenTherm Gateway from Home Assistant."
date: 2018-10-07 16:23
sidebar: true
comments: false
sharing: true
footer: true
logo: opentherm.png
ha_category: Hub
ha_release: 0.81
ha_iot_class: "Local Push"
---
The `opentherm_gw` component is used to control the [OpenTherm Gateway](http://otgw.tclcode.com/) from Home Assistant.
When enabled, this component will automatically add it's [`climate` entity](/components/climate.opentherm_gw) to Home Assistant.
# {% linkable_title Configuration %}
```yaml
# Example configuration.yaml entry
opentherm_gw:
device: /dev/ttyUSB0
```
{% configuration %}
device:
description: "Path to OpenTherm Gateway device as supported by [PySerial](https://pythonhosted.org/pyserial/url_handlers.html)."
required: true
type: string
climate:
description: "Settings for the `opentherm_gw` climate entity."
required: false
type: map
keys:
name:
description: "The name for the device within Home Assistant."
required: false
type: string
default: "OpenTherm Gateway"
precision:
description: "The desired precision for this device. Can be used to match your actual thermostat's precision. Supported values are `0.1`, `0.5` and `1.0`."
required: false
type: float
default: "`0.5` for Celsius and `1.0` for Fahrenheit."
floor_temperature:
description: "Some thermostats round all temperatures down to the lower value according to their precision. Default behavior for Home Assistant is to round temperatures to the nearest value. Set this to `True` to override Home Assistant and round to the lower value according to the configured `precision`."
required: false
type: boolean
default: false
monitored_variables:
description: "A list of variables to expose as sensors."
required: false
type: list
keys:
burner_hours:
description: Boiler flame on time.
burner_starts:
description: Number of burner starts.
ch_pump_hours:
description: Central heating pump running time.
ch_pump_starts:
description: Number of central heating pump starts.
ch_water_pressure:
description: Central heating water pressure.
ch_water_temp:
description: Central heating water temperature.
ch_water_temp_2:
description: Central heating 2 water temperature.
control_setpoint:
description: Central heating water target temperature.
control_setpoint_2:
description: Central heating 2 water target temperature.
cooling_control:
description: Cooling control signal value.
dhw_burner_hours:
description: Hot water flame on time.
dhw_burner_starts:
description: Number of hot water burner starts.
dhw_flow_rate:
description: Hot water flow rate.
dhw_pump_hours:
description: Hot water pump running time.
dhw_pump_starts:
description: Number of hot water pump starts.
dhw_setpoint:
description: Hot water target temperature.
dhw_temp:
description: Hot water temperature.
dhw_temp_2:
description: Hot water 2 temperature.
exhaust_temp:
description: Boiler exhaust temperature.
master_ch2_enabled:
description: Thermostat requests central heating 2 on.
master_ch_enabled:
description: Thermostat requests central heating on.
master_cooling_enabled:
description: Thermostat requests cooling.
master_dhw_enabled:
description: Thermostat requests hot water to be heated.
master_memberid:
description: Thermostat member ID.
master_ot_version:
description: Thermostat OpenTherm protocol version.
master_otc_enabled:
description: Thermostat is using outside temperature correction.
master_product_type:
description: Thermostat product type.
master_product_version:
description: Thermostat product version.
max_ch_setpoint:
description: Boiler maximum central heating water temperature.
oem_diag:
description: OEM diagnostic information.
otgw_about:
description: OpenTherm Gateway firmware version.
otgw_build:
description: OpenTherm Gateway firmware build date and time.
otgw_clockmhz:
description: OpenTherm Gateway firmware design clock speed.
otgw_dhw_ovrd:
description: OpenTherm Gateway hot water override status.
otgw_gpio_a:
description: OpenTherm Gateway GPIO port A operating mode.
otgw_gpio_a_state:
description: OpenTherm Gateway GPIO A state.
otgw_gpio_b:
description: OpenTherm Gateway GPIO port B operating mode.
otgw_gpio_b_state:
description: OpenTherm Gateway GPIO B state.
otgw_ignore_transitions:
description: OpenTherm Gateway ignores ripples in the signal during high/low transitions.
otgw_led_a:
description: OpenTherm Gateway LED A operating mode.
otgw_led_b:
description: OpenTherm Gateway LED B operating mode.
otgw_led_c:
description: OpenTherm Gateway LED C operating mode.
otgw_led_d:
description: OpenTherm Gateway LED D operating mode.
otgw_led_e:
description: OpenTherm Gateway LED E operating mode.
otgw_led_f:
description: OpenTherm Gateway LED F operating mode.
otgw_mode:
description: OpenTherm Gateway operating mode.
otgw_ovrd_high_byte:
description: OpenTherm Gateway overrides high byte with message ID 100.
otgw_setback_temp:
description: OpenTherm Gateway setback temperature for `away mode`.
otgw_setpoint_ovrd_mode:
description: OpenTherm Gateway central heating setpoint override mode.
otgw_smart_pwr:
description: OpenTherm Gateway smart power operating mode.
otgw_thermostat_detect:
description: OpenTherm Gateway automatic thermostat detection status.
otgw_vref:
description: OpenTherm Gateway voltage reference setting.
outside_temp:
description: Outside temperature as reported in the OpenTherm protocol.
relative_mod_level:
description: Relative modulation level.
remote_rw_dhw:
description: Boiler supports writing hot water setpoint.
remote_rw_max_ch:
description: Boiler supports writing maximum central heating setpoint.
remote_transfer_dhw:
description: Boiler supports reading hot water setpoint.
remote_transfer_max_ch:
description: Boiler supports reading maximum central heating setpoint.
return_water_temp:
description: Boiler return water temperature.
room_setpoint:
description: Room target temperature.
room_setpoint_2:
description: Room 2 target temperature.
room_setpoint_ovrd:
description: Room target temperature override value.
room_temp:
description: Current room temperature.
rovrd_auto_prio:
description: Programmed room setpoint change takes priority over remote override setting.
rovrd_man_prio:
description: Manual room setpoint change takes priority over remote override setting.
slave_air_pressure_fault:
description: Boiler reports air pressure fault.
slave_ch2_active:
description: Boiler reports central heating 2 active.
slave_ch2_present:
description: Boiler has a central heating 2 circuit.
slave_ch_active:
description: Boiler reports central heating active.
slave_ch_max_setp:
description: Maximum boiler supported central heating water target temperature.
slave_ch_min_setp:
description: Minimum boiler supported central heating water target temperature.
slave_control_type:
description: Boiler control type ('off' is modulating, 'on' is on/off).
slave_cooling_active:
description: Boiler reports cooling active.
slave_cooling_supported:
description: Boiler supports cooling.
slave_dhw_active:
description: Boiler reports hot water active.
slave_dhw_config:
description: Boiler hot water mode ('off' is instantaneous or unspecified, 'on' is storage tank).
slave_dhw_max_setp:
description: Maximum boiler supported hot water target temperature.
slave_dhw_min_setp:
description: Minimum boiler supported hot water target temperature.
slave_dhw_present:
description: Boiler reports hot water present.
slave_diagnostic_indication:
description: Boiler diagnostic indication.
slave_fault_indication:
description: Boiler fault indication.
slave_flame_on:
description: Boiler reports flame on.
slave_gas_fault:
description: Boiler reports gas fault.
slave_low_water_pressure:
description: Boiler reports low water pressure.
slave_master_low_off_pump:
description: Boiler supports low-off and pump control commands (this sensor is inverted, 'on' is not supported, 'off' is supported)
slave_max_capacity:
description: Maximum boiler capacity.
slave_max_relative_modulation:
description: Maximum boiler supported relative modulation.
slave_memberid:
description: Boiler member ID.
slave_min_mod_level:
description: Minimum boiler supported modulation level.
slave_oem_fault:
description: Boiler OEM fault indication.
slave_ot_version:
description: Boiler OpenTherm protocol version.
slave_product_type:
description: Boiler product type.
slave_product_version:
description: Boiler product version.
slave_remote_reset:
description: Boiler reports 'lockout-reset' supported.
slave_service_required:
description: Boiler reports service required.
slave_water_overtemp:
description: Boiler reports water overtemperature.
solar_coll_temp:
description: Solar collector temperature.
solar_storage_temp:
description: Solar storage unit temperature.
{% endconfiguration %}
## {% linkable_title Supported Variables %}
The list above contains all supported variables. Note that not all boilers and thermostats properly support all variables, so the fact that a variable is listed here and published by your system does not necessarily mean that you will get useful data out of it. To see which variables are published in your situation, enable debug logging for the `opentherm_gw` component and look for the status updates.
## {% linkable_title GPIO modes %}
Possible modes and their meaning for the GPIO pins are listed here:
{% comment %}
Bulletpoints and numbers to match the LED mode layout below.
{% endcomment %}
* 1\. No function, default for both ports on a freshly flashed chip.
* 2\. Ground - A permanently low output (0V). Could be used for a power LED.
* 3\. Vcc - A permanently high output (5V). Can be used as a short-proof power supply for some external circuitry used by the other GPIO port.
* 4\. LED E - An additional LED if you want to present more than 4 LED functions.
* 5\. LED F - An additional LED if you want to present more than 5 LED functions.
* 6\. Home - Set thermostat to setback temperature when pulled low.
* 7\. Away - Set thermostat to setback temperature when pulled high.
* 8\. DS1820 (GPIO port B only) - Data line for a DS18S20 or DS18B20 temperature sensor used to measure the outside temperature. A 4k7 resistor should be connected between GPIO port B and Vcc.
## {% linkable_title LED modes %}
Possible LED modes and their meaning are listed here:
* R. Receiving an Opentherm message from the thermostat or boiler.
* X. Transmitting an Opentherm message to the thermostat or boiler.
* T. Transmitting or receiving a message on the thermostat interface.
* B. Transmitting or receiving a message on the boiler interface.
* O. Remote setpoint override is active.
* F. Flame is on.
* H. Central heating is on.
* W. Hot water is on.
* C. Comfort mode (Domestic Hot Water Enable) is on.
* X. Transmission error has been detected.
* M. Boiler requires maintenance.
* P. Raised power mode active on thermostat interface.
<p class='note'>
The OpenTherm protocol is based on polling. The thermostat sends requests to the boiler at specific intervals. As a result, it may take some time for changes to propagate between Home Assistant and the thermostat.
</p>
# {% linkable_title Example %}
A full configuration example with the OpenTherm Gateway connected to a remote host running `ser2net` looks like the one below.
```yaml
# Full example configuration.yaml entry
opentherm_gw:
device: socket://otgw.example.org:2345
climate:
name: Thermostat
precision: 0.5
floor_temperature: True
monitored_variables:
- room_setpoint
- room_temp
- otgw_about
```

View File

@ -0,0 +1,103 @@
---
layout: page
title: "route53"
description: "Automatically update your AWS Route53 DNS records."
date: 2018-02-10 20:08
sidebar: true
comments: false
sharing: true
footer: true
logo: route53.png
ha_category: Network
ha_release: "0.81"
---
With the `route53` component can you keep your AWS Route53 DNS records up to date.
The component will run every hour, but can also be started manually by using the service `route53.update_records` under services.
Please note that this platform uses the API from [ipify.org](https://www.ipify.org/) to set the public IP address.
## {% linkable_title Setup %}
You will need to configure your AWS Account with a suitable IAM policy and API keys for this to function.
If you are familiar with this process, you can skip the next section and head directly to the configuration section.
On the AWS side, you need to do the following;
1. Create a suitable zone for a domain that you own and manage in Route53, the domain `home.yourdomain.com` is used as an example.
2. Once created, write down the Hosted Zone ID value for the domain. This is needed for the plugin and IAM configuration.
3. Create an IAM Policy that provides update and query access to this domain explicitly and has no other permissions to the AWS account.
Here is an IAM Policy sample, don't forget to update your Zone ID on the Resource line.
```
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"route53:GetHostedZone",
"route53:ChangeResourceRecordSets",
"route53:ListResourceRecordSets"
],
"Resource": "arn:aws:route53:::hostedzone/YOURZONEIDGOESHERE"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "route53:TestDNSAnswer",
"Resource": "*"
}
]
}
```
4. Once this has been done, create a new user called `homeassistant` and add the IAM policy to the user, allowing it to manage this DNS resource.
5. Under the security credentials tab for the `homeassistant` user, create a set of access keys for placement in the component definition YAML.
## {% linkable_title Configuration %}
To use the component in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
route53:
aws_access_key_id: ABC123
aws_secret_access_key: DEF456
zone: ZONEID678
domain: home.yourdomain.com
records:
- vpn
- hassio
- home
```
{% configuration route53 %}
aws_access_key_id:
description: The AWS access key ID for the account that has IAM access to the domain.
required: true
type: string
aws_secret_access_key:
description: The AWS secret access key for the account that has IAM access to the domain.
required: true
type: string
zone:
description: The AWS zone ID for the domain in Route53.
required: true
type: string
domain:
description: The domain name for the domain in Route53.
required: true
type: string
records:
description: A list of records you want to update.
required: true
type: list
{% endconfiguration %}

View File

@ -0,0 +1,22 @@
---
layout: page
title: "Elk-M1 Scene"
description: "Instructions on how to integrate Elk-M1 tasks (macros)."
date: 2018-10-07 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: elkproducts.png
ha_release: 0.81
ha_category: Scene
ha_iot_class: "Local Push"
---
The `elkm1` platform allows you to control your [Elk-M1](https://www.elkproducts.com/m1_controls.html).
Elk-M1 tasks are represented as `scene` entities.
<p class='note'>
Full configuration details can be found on the main [Elk-M1 component](/components/elkm1/) page.
</p>

View File

@ -21,4 +21,4 @@ You have first to setup the [Dyson component](/components/dyson/)
### {% linkable_title Supported fan devices %}
- Pure Cool link (desk and tower)
- Pure Hot+cool link (but heating is not yet supported)
- Pure Hot+cool link (see [climate](/components/climate.dyson/) for thermal control)

View File

@ -0,0 +1,22 @@
---
layout: page
title: "Elk-M1 Sensor"
description: "Instructions on how to integrate Elk-M1 counters, keypads, panel, settings, and zones."
date: 2018-10-11 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: elkproducts.png
ha_release: 0.81
ha_category: Sensor
ha_iot_class: "Local Push"
---
The `elkm1` platform allows you to control your [Elk-M1](https://www.elkproducts.com/m1_controls.html).
Elk-M1 counters, keypads, panel, settings, and zones are represented as `sensor` entities.
<p class='note'>
Full configuration details can be found on the main [Elk-M1 component](/components/elkm1/) page.
</p>

View File

@ -21,7 +21,7 @@ This sensor is particularly useful if events occur unexpectedly in the vicinity
<img src='{{site_root}}/images/screenshots/geo-rss-incidents-group-screenshot.png' />
</p>
The reference point for comparing the distance is defined by `latitude` and `longitude` in the basic configuration.
The reference point for comparing the distance is by default defined by `latitude` and `longitude` in the basic configuration.
Only entries of the feed are considered that define a location as `point` or `polygon` in *georss.org* format or as *WGS84 latitude/longitude*.
@ -54,6 +54,16 @@ name:
required: false
type: string
default: Event Service
latitude:
description: Latitude of the coordinates around which events are considered.
required: false
type: string
default: Latitude defined in your `configuration.yaml`
longitude:
description: Longitude of the coordinates around which events are considered.
required: false
type: string
default: Longitude defined in your `configuration.yaml`
radius:
description: The distance in kilometers around the Home Assistant's coordinates in which events are considered.
required: false

View File

@ -91,6 +91,35 @@ device_class:
required: false
type: device_class
default: None
device:
description: 'Information about the device this sensor 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 Examples %}

View File

@ -17,47 +17,5 @@ ha_iot_class: "Local Polling"
The `octoprint` sensor platform let you monitor various states of your 3D printer and its print jobs.
<p class='note'>
You must have the [OctoPrint component](/components/octoprint/) configured to use this sensor.
</p>
To set it up, add the following information to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: octoprint
name: OctoPrint
monitored_conditions:
- Current State
- Temperatures
- Job Percentage
- Time Elapsed
- Time Remaining
```
{% configuration %}
name:
description: The name of the sensor.
required: false
default: OctoPrint
type: string
monitored_conditions:
description: States to monitor.
required: true
type: list
keys:
current state:
description: Text of current state.
temperatures:
description: Temperatures of all available tools, e.g., `print`, `head`, `print bed`, etc. These will be displayed as `tool0`, `tool1`, or `toolN` please refer to your OctoPrint frontend to associate the tool number with an actual device.
job percentage:
description: Percentage of the job.
time elapsed:
description: Time elapsed on current print job, in seconds.
time remaining:
description: Time remaining on current print job, in seconds.
{% endconfiguration %}
<p class='note'>
If you are tracking temperature it is recommended to set `bed` and/or `number_of_tools` in your octoprint configuration. This will allow the octoprint sensors to load if the printer is offline during Home Assistant startup.
You must have the [OctoPrint component](/components/octoprint/) configured to use this sensor. After configuring that component, sensors automatically appear.
</p>

View File

@ -0,0 +1,24 @@
---
layout: page
title: "OpenTherm Gateway Sensor"
description: "Expose internal data from the OpenTherm Gateway."
date: 2018-10-10 12:23
sidebar: true
comments: false
sharing: true
footer: true
logo: opentherm.png
ha_category: Sensor
ha_release: 0.81
ha_iot_class: "Local Push"
---
The `opentherm_gw` sensor platform is used to expose internal data from the [OpenTherm Gateway](http://otgw.tclcode.com/) in Home Assistant.
# {% linkable_title Configuration %}
Configuration of this platform is achieved through the [OpenTherm Gateway Hub](/components/opentherm_gw/) configuration.
<p class='note'>
The OpenTherm protocol is based on polling. The thermostat sends requests to the boiler at specific intervals. As a result, it may take some time for changes to propagate between Home Assistant and the thermostat.
</p>

View File

@ -43,7 +43,7 @@ resource:
type: string
default: string
method:
description: The method of the request.
description: The method of the request. Either `POST` or `GET`.
required: false
type: string
default: GET

View File

@ -28,39 +28,52 @@ sensor:
```
{% configuration %}
name:
description: Name to use in the frontend.
timeout:
description: Specify the timeout for the API calls.
required: false
default: The default is the station name.
type: string
stationId:
description: ID of the stop or station, e.g., 3000010. Visit [the RMV OpenData web site](https://opendata.rmv.de) to find a list of valid IDs.
default: 10
type: integer
next_departure:
description: One or multiple departure sensors.
required: true
type: string
destinations:
description: "One or multiple final stop names, e.g., 'Frankfurt (Main) Hauptbahnhof' or ['Frankfurt (Main) Hauptbahnhof','Frankfurt (Main) Stadion']. This can be used to only consider a particular direction of travel."
required: false
type: [string]
lines:
description: "One or more line numbers, e.g., `'S8'` or `['S8', 'RB33', '41']`"
required: false
default: The default is the station name.
type: [string, integer]
products:
description: "One or more modes of transport `['U-Bahn', 'Tram', 'Bus', 'S-Bahn', 'RB', 'RE', 'EC', 'IC', 'ICE']`."
required: false
default: Defaults to all.
type: [string]
time_offset:
description: Do not display departures leaving sooner than this number of minutes. Useful if you are a couple of minutes away from the stop.
required: false
default: The defaults is 0.
type: integer
max_journeys:
description: Specify the maximal number of journeys.
required: false
default: The default is 5.
type: integer
type: list
keys:
name:
description: Name to use in the frontend.
required: false
default: The default is the station name.
type: string
station:
description: "ID of the stop or station, e.g. `3000010`. Visit [the RMV OpenData web site](https://opendata.rmv.de) to find a list of valid IDs."
required: true
type: string
destinations:
description: "One or multiple final stop names, e.g., 'Frankfurt (Main) Hauptbahnhof' or ['Frankfurt (Main) Hauptbahnhof','Frankfurt (Main) Stadion']. This can be used to only consider a particular direction of travel."
required: false
type: [string]
direction:
description: "Name of a stop or station, e.g., 'Frankfurt (Main) Hauptbahnhof'. This can be used to only consider a particular direction of travel."
required: false
type: [string]
lines:
description: "One or more line numbers, e.g., `'S8'` or `['S8', 'RB33', '41']`"
required: false
type: [string, int]
products:
description: "One or more modes of transport `['U-Bahn', 'Tram', 'Bus', 'S-Bahn', 'RB', 'RE', 'EC', 'IC', 'ICE']`."
required: false
default: ['U-Bahn', 'Tram', 'Bus', 'S-Bahn', 'RB', 'RE', 'EC', 'IC', 'ICE']
type: [string]
time_offset:
description: Do not display departures leaving sooner than this number of minutes. Useful if you are a couple of minutes away from the stop.
required: false
default: 0
type: integer
max_journeys:
description: Specify the maximal number of journeys.
required: false
default: 5
type: integer
{% endconfiguration %}
## {% linkable_title Examples %}
@ -73,6 +86,8 @@ The example below shows a full configuration with three sensors that showcase th
# Example configuration.yaml entry
sensor:
- platform: rmvtransport
scan_interval: 120
timeout: 10
next_departure:
- station: 3000010
time_offset: 5

View File

@ -0,0 +1,57 @@
---
layout: page
title: "rtorrent Sensor"
description: "Instructions on how to integrate rtorrent sensors within Home Assistant."
date: 2018-10-14 05:40
sidebar: true
comments: false
sharing: true
footer: true
logo: rtorrent.png
ha_category: Downloading
ha_release: 0.81
ha_iot_class: "Local Polling"
---
The `rtorrent` platform allows you to monitor your downloads with [rtorrent](https://rakshasa.github.io/rtorrent/) from within Home Assistant and setup automations based on the information.
To enable this sensor, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
sensor:
- platform: rtorrent
url: 'http://<user>:<password>@<host>:<port>/RPC2'
monitored_variables:
- 'current_status'
- 'download_speed'
- 'upload_speed'
```
This sensor requires the rtorrent XMLRPC API exposed on an HTTP interface.
Note that for security reasons, simply using the SCGI interface (default `localhost:5000`) of rtorrent won't work.
The [official reference](https://github.com/rakshasa/rtorrent/wiki/RPC-Setup-XMLRPC) describes how to set up that HTTP interface.
Alternatively, the [arch-rtorrentvpn](https://github.com/binhex/arch-rtorrentvpn) container can be used with `url` set to `http://admin:rutorrent@127.0.0.1:9080/RPC2`.
{% configuration %}
url:
description: The URL to the HTTP endpoint of the rtorrent XMLRPC API.
required: true
type: string
name:
description: The name to use when displaying this rtorrent instance.
required: false
type: string
monitored_variables:
description: Conditions to be monitored.
required: true
type: list
keys:
current_status:
description: The status of your rtorrent daemon.
download_speed:
description: The current download speed.
upload_speed:
description: The current upload speed.
{% endconfiguration %}

View File

@ -20,7 +20,7 @@ web service to measure network bandwidth performance.
## {% linkable_title Configuration %}
By default, it will run every hour. The user can change the update frequency in
the configuration by defining the minute, hour, and day for a speed test to run.
the configuration by defining the minute and hour for a speed test to run.
For the `server_id` check the list of
[available servers](https://www.speedtest.net/speedtest-servers.php).
@ -55,10 +55,6 @@ sensor:
description: Specify the speed test server to perform the test against.
required: false
type: integer
day:
description: Specify the day(s) of the month to schedule the speed test. Use a list for multiple entries.
required: false
type: [int, list]
hour:
description: Specify the hour(s) of the day to schedule the speed test. Use a list for multiple entries.
required: false

View File

@ -0,0 +1,133 @@
---
layout: page
title: "ThermoWorks Smoke Sensor"
description: "Pulls temperature data for a ThermoWorks Smoke Thermometer connected with Smoke Gateway."
date: 2018-08-22 17:00
sidebar: true
comments: false
sharing: true
footer: true
logo: thermoworks.png
ha_category: Sensor
ha_release: 0.81.0
ha_iot_class: "Cloud Polling"
---
The `thermoworks_smoke` sensor platform pulls data for your [ThermoWorks Smoke Thermometer](https://www.thermoworks.com/Smoke).
This requires a [Smoke WiFi Gateway](https://www.thermoworks.com/Smoke-Gateway) with an internet connection.
You will need to have previously registered your smoke to your account via the mobile app and provide
the email and password you used to in the configuration for this sensor in order to connect and pull your data.
## {% linkable_title Configuration %}
To add the sensors to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: thermoworks_smoke
email: "your email here"
password: !secret thermoworks_pass
```
{% configuration %}
email:
description: The email address with the device registered in the thermoworks smoke mobile app.
required: true
type: string
password:
description: The password registered in the thermoworks smoke mobile app.
required: true
type: string
monitored_conditions:
description: The sensors to add. Default is `probe1` and `probe2`. The full list is `probe1`, `probe2`, `probe1_min`, `probe1_max`, `probe2_min`, `probe2_max`.
required: false
type: list
exclude:
description: Device serial numbers to ignore.
required: false
type: list
{% endconfiguration %}
## {% linkable_title Examples %}
This section includes some examples of how to use this sensor.
### {% linkable_title Only Probe 1 %}
This will show only Probe 1 with min and max data.
{% raw %}
```yaml
# Example configuration.yaml entry
sensor:
- platform: thermoworks_smoke
email: "your email here"
password: !secret thermoworks_pass
monitored_conditions:
- probe1
- probe1_min
- probe1_max
```
{% endraw %}
### {% linkable_title Ignore a Device %}
This will exclude a device from creating sensors. You would replace `"00:00:00:00:00:00"` with your device's serial number.
{% raw %}
```yaml
# Example configuration.yaml entry
sensor:
- platform: thermoworks_smoke
email: "your email here"
password: !secret thermoworks_pass
exclude:
- "00:00:00:00:00:00"
```
{% endraw %}
### {% linkable_title Notify when Probe 1 goes above a certain temperature %}
This will use an automation to trigger a notification when Probe 1 goes above a temperature stored in an input_number variable.
By default, your smoke is named "My Smoke" in the app. If you have changed it you will need to change the sensor name from `my_smoke_probe_1` to `your_name_probe_1`.
{% raw %}
```yaml
# Example configuration.yaml entry
sensor:
- platform: thermoworks_smoke
email: "your email here"
password: !secret thermoworks_pass
input_number:
smoke_probe_1_threshold:
name: Smoke Probe 1 Threshold
min: -40
max: 500
step: 0.5
unit_of_measurement: '°F'
icon: mdi:thermometer
automation:
- alias: Alert when My Smoke Probe 1 is above threshold
trigger:
platform: template
value_template: >-
{% if (states("sensor.my_smoke_probe_1") | float) > (states("input_number.smoke_probe_1_threshold") | float) %}
True
{% else %}
False
{% endif %}
action:
- service: notify.all
data:
message: >
{{- state_attr('sensor.my_smoke_probe_1','friendly_name') }} is above
{{- ' '+states("input_number.smoke_probe_1_threshold") -}}
{{- state_attr('sensor.my_smoke_probe_1','unit_of_measurement') }} at
{{- ' '+states("sensor.my_smoke_probe_1") -}}
{{- state_attr('sensor.my_smoke_probe_1','unit_of_measurement') }}
```
{% endraw %}

View File

@ -0,0 +1,54 @@
---
layout: page
title: "Transport NSW"
description: "Instructions on how to integrate timetable data for Transport NSW (Australia) within Home Assistant."
date: 2018-10-05 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: transport_nsw.png
ha_category: Transport
ha_iot_class: "Cloud Polling"
ha_release: 0.81
---
The `transport_nsw` sensor will give you the time until the next departure from a Transport NSW stop (bus, train or ferry).
Get your free API key from [Transport NSW](https://opendata.transport.nsw.gov.au/).
In order to find the stop id, just go to Google maps and click on the bus/train/ferry stop. It will give you there the stop ID.
You can define a bus line, but if you dont do it, the sensor will pick up the next stop event from any line servicing this stop.
Then add the data to your `configuration.yaml` file as shown in the example:
```yaml
# Example configuration.yaml entry
sensor:
- platform: transport_nsw
stop_id: '200024'
api_key: 'YOUR API KEY'
```
{% configuration %}
api_key:
description: Your API key for Open Data Transport NSW
required: true
type: string
stop_id:
description: The ID of the stop to get the information for
required: true
type: string
route:
description: Only show a single bus route at the stop. This is the same as the bus number, e.g., `83`
required: false
type: string
name:
description: A friendly name for this sensor.
required: false
type: string
{% endconfiguration %}
The public information is coming from [Transport NSW](https://opendata.transport.nsw.gov.au/).

View File

@ -34,7 +34,7 @@ name:
type: string
default: Uptime
unit_of_measurement:
description: "Units for uptime measurement in either `days`, `hours`, or `minutes`."
description: "Units for uptime measurement in either `days`, `hours` or `minutes`."
required: false
type: string
default: days

View File

@ -13,7 +13,7 @@ ha_release: 0.31
ha_iot_class: "Local Polling"
---
The `zoneminder` sensor platform lets you monitor the current state of your [ZoneMinder](https://www.zoneminder.com) install including the number of events and the current state of the cameras.
The `zoneminder` sensor platform lets you monitor the current state of your [ZoneMinder](https://www.zoneminder.com) install including the number of events, the current state of the cameras and ZoneMinder's current run state.
<p class='note'>
You must have the [ZoneMinder component](/components/zoneminder/) configured to use this sensor.

View File

@ -0,0 +1,41 @@
---
layout: page
title: "SimpliSafe"
description: "Instructions on how to integrate SimpliSafe into Home Assistant."
date: 2018-10-05 14:00
sidebar: true
comments: false
sharing: true
footer: true
logo: simplisafe.png
ha_release: 0.81
ha_category: Alarm
---
The `simplisafe` component integrates SimpliSafe home security (V2 and V3)
systems into Home Assistant. Multiple SimpliSafe accounts can be accommodated.
To enable this component, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
simplisafe:
accounts:
- username: user@email.com
password: password123
```
{% configuration %}
username:
description: The email address of a SimpliSafe account.
required: true
type: string
password:
description: The password of a SimpliSafe account.
required: true
type: string
code:
description: A code to enable or disable the alarm in the frontend.
required: false
type: string
{% endconfiguration %}

View File

@ -0,0 +1,54 @@
---
layout: page
title: "SMHI"
description: "Instructions on how to integrate SMHI forecasts within Home Assistant."
date: 2018-09-23 20:00
sidebar: true
comments: false
sharing: true
footer: true
featured: true
logo: smhi.png
ha_category: Hub
ha_release: 0.81
ha_iot_class: "Cloud Polling"
---
The `smhi` component adds support for the [SMHI.se](https://www.smhi.se/) web service as a source for meteorological data for your location.
## {% linkable_title Configuration %}
The SMHI weather service is free under the Creative Commons Attribution 4.0, international license. Weather data will be pulled once every 30 minutes.
To add SMHI weather forecast to your installation, go to the Integrations page inside the config panel and add a location by providing the longitude and latitude of your location.
If the location is configured in Home Assistant, it will be selected as the default location. After that, you can add additional locations.
<p class='note warning'>
You can only add locations through the integrations page, not in configuration files.
</p>
<p class='note warning'>
Only location close to Sweden can be added. See [SMHI.se area](http://opendata.smhi.se/apidocs/metfcst/geographic_area.html) for more details what locations are supported.
</p>
{% configuration %}
latitude:
description: Manually specify latitude.
required: false
type: number
default: Provided by Home Assistant configuration
longitude:
description: Manually specify longitude.
required: false
type: number
default: Provided by Home Assistant configuration
name:
description: Name to use in the frontend.
required: false
type: string
default: Home
{% endconfiguration %}
Details about the API are available in the [SMHI API documentation](http://opendata.smhi.se/apidocs/metfcst/index.html).

View File

@ -0,0 +1,22 @@
---
layout: page
title: "Elk-M1 Switch"
description: "Instructions on how to integrate Elk-M1 outputs (relays)."
date: 2018-10-07 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: elkproducts.png
ha_release: 0.81
ha_category: Switch
ha_iot_class: "Local Push"
---
The `elkm1` platform allows you to control your [Elk-M1](https://www.elkproducts.com/m1_controls.html).
Elk-M1 outputs are represented as `switch` entities.
<p class='note'>
Full configuration details can be found on the main [Elk-M1 component](/components/elkm1/) page.
</p>

View File

@ -103,6 +103,35 @@ value_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload."
required: false
type: string
device:
description: 'Information about the device this switch 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

@ -0,0 +1,48 @@
---
layout: page
title: "Ankuoo Rec Switch"
logo: ankuoo_recswitch.png
description: "Instructions on how to integrate Ankuoo Rec Switch into Home Assistant."
date: 2018-10-05 08:00
sidebar: true
comments: false
sharing: true
footer: true
logo: "ankuoo_recswitch.png"
ha_release: "0.81"
ha_category: Switch
ha_iot_class: "Local Polling"
---
The `recswitch` switch platform allows you to control the Ankuoo Rec Switch devices.
Supported devices (tested):
- Ankuoo RecSwitch MS6126
- Lumitek CSW201 NEO WiFi
### {% linkable_title Configuration %}
To enable this switch, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
switch:
- platform: recswitch
host: 'IP_ADDRESS'
mac: 'MAC_ADDRESS'
```
{% configuration %}
host:
description: IP address or hostname of the device.
required: true
type: string
mac:
description: MAC address of the device.
required: true
type: string
name:
description: Name to use in the frontend.
required: false
type: string
{% endconfiguration %}

View File

@ -0,0 +1,20 @@
---
layout: page
title: "UniFi Switches"
description: "Instructions on how to integrate POE control switches from UniFi into Home Assistant."
date: 2018-10-15 22:00
sidebar: true
comments: false
sharing: true
footer: true
logo: ubiquiti.png
ha_category: Switch
ha_release: "0.81"
ha_iot_class: "Local Polling"
---
See the [UniFi main component](/components/unifi/) for configuration instructions.
Switches are network devices that are powered by POE switches from Ubuiqitis UniFi line of networking gear.
Note that POE control actually configures the network port of the switch which the device is connected to.

View File

@ -15,6 +15,12 @@ ha_release: 0.37
The `amazon_polly` text-to-speech platform that works with [Amazon Polly](https://aws.amazon.com/polly/) to create the spoken output.
Polly is a paid service via Amazon Web Services. There is a [free tier](https://aws.amazon.com/polly/pricing/) for the first 12 months and then a charge per million characters afterwards.
## {% linkable_title Setup %}
For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html) to get the needed details. Also, check the [boto3 Documentation](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file) about the profiles and the [AWS Regions and Endpoints Reference](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region) for available regions.
Available voices are listed in the [Amazon Documentation](http://docs.aws.amazon.com/polly/latest/dg/voicelist.html).
## {% linkable_title Configuration %}
To get started, add the following lines to your `configuration.yaml` (example for Amazon Polly):
@ -29,21 +35,22 @@ tts:
{% configuration %}
aws_access_key_id:
description: "Your AWS Access Key ID. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`."
description: "Your AWS Access Key ID. If provided, you must also provide an `aws_secret_access_key` and must **not** provide a `profile_name`."
required: true
type: string
aws_secret_access_key:
description: "Your AWS Secret Access Key. For more information, please read the [AWS General Reference regarding Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html). If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`."
description: "Your AWS Secret Access Key. If provided, you must also provide an `aws_access_key_id` and must **not** provide a `profile_name`."
required: true
type: string
profile_name:
description: A credentials profile name. For more information, please see the [boto3 Documentation](http://boto3.readthedocs.io/en/latest/guide/configuration.html#shared-credentials-file) for more information.
description: A credentials profile name.
required: false
type: string
region_name:
description: "The region identifier to connect to. The default is `us-east-1`. See the [AWS Regions and Endpoints Reference](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region) for available regions."
description: The region identifier to connect to.
required: false
type: string or list
default: us-east-1
name:
description: "Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`."
required: false
@ -54,18 +61,19 @@ text_type:
type: string
default: text
voice:
description: "Voice name to be used. See the [Amazon Documentation](http://docs.aws.amazon.com/polly/latest/dg/voicelist.html) for available voices."
description: Voice name to be used.
required: false
type: string
output_format:
description: "Override the default output format, e.g., `mp3`, `ogg_vorbis` or `pcm`."
description: "Override the default output format. Either `mp3`, `ogg_vorbis` or `pcm`."
required: false
type: string
default: mp3
sample_rate:
description: "Override the default sample rate, defaults to 22050 for MP3 and Ogg Vorbis, 16000 for pcm."
description: "Override the default sample rate."
required: false
type: string
default: 22050 for MP3 and Ogg Vorbis, 16000 for pcm
{% endconfiguration %}
## {% linkable_title Usage %}

View File

@ -0,0 +1,37 @@
---
layout: page
title: "UniFi"
description: "Instructions on how to configure UniFi integration with UniFi Controller by Ubiquiti."
date: 2018-10-15 22:00
sidebar: true
comments: false
sharing: true
footer: true
logo: ubiuiti.png
ha_category: Hub
ha_release: "0.81"
ha_iot_class: "Local Polling"
---
[UniFi](https://unifi-sdn.ubnt.com/) by [Ubiquiti Networks, inc.](https://www.ubnt.com/) is a software that binds gateways, switches and wireless access points together with one graphical front end.
Currently this implementation only exposes POE control for networked devices. Device tracker implementation is not using the same code base.
## {% linkable_title Configuration %}
Home Assistant offers UniFi integration through **Configuration** -> **Integrations** -> **UniFi Controller**.
Enter `host address`, `user name` and `password` and then continue to select which `site` you want to connect to Home Assistant. The user must have administrator privileges.
## {% linkable_title Debugging component %}
If you have problems with UniFi or the component you can add debug prints to the log.
```yaml
logger:
default: info
logs:
aiounifi: debug
   homeassistant.components.unifi: debug
   homeassistant.components.switch.unifi: debug
```

View File

@ -18,7 +18,7 @@ The `neato` vacuum platform allows you to control your [Neato Botvac Connected](
The status will contain attributes on the robots last clean session.
<p class='note'>
If you notice the robot stops responding to commands check the status attribute to see if the robot is offline. If you see "Robot Offline" check the Neato app and make sure your robot is connected and working. If it is not then follow the steps in the app to reset your robot and give it the same name as before then restart Home Assistant.
If you notice the robot stops responding to commands check the state to see if the robot is "unavailable". If you see "unavailable" first try to restart the vacuum and wait about 5 minutes to see if it is no longer "unavailable". If you are still having issues check the Neato app and make sure your robot is connected and working. If it is not then follow the steps in the app to reset your robot and give it the same name as before then restart Home Assistant.
</p>
## {% linkable_title Configuration %}

View File

@ -135,7 +135,7 @@ The following table shows the units of measurement for each attribute:
<p class='note'>
As per [python-miio issue 185](https://github.com/rytilahti/python-miio/issues/185) the Android Mi Home app no longer stores the token within the database (it's retrieved from Xiaomi servers from version 5.0.31+). Currently the only known fix is to uninstall, then install a downgraded version of the apk. Apkmirror is a trusted source for older versions of the app. [Mi-Home version 5.0.30](https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-0-30-release/) is confirmed as working for the following Android methods. Using older version than 5.0.30 is not recommended as it might lack support for some newer devices like the Roborock S50.
The iPhone app still stores the token in the sqlite db as of v4.7.18 (July 17, 2018).
This token (32 hexadecimal characters) is required for the Xiaomi Mi Robot Vacuum, Mi Robot 2 (Roborock) Vacuum, Xiaomi Philips Lights and Xiaomi IR Remote. The Xiaomi Gateway uses another security method and requires a `key` (16 alphanumeric chars), which can be obtained
@ -260,3 +260,10 @@ To fetch the token follow these instructions depending on your mobile phone plat
12. Copy the returned 32-digit hexadecimal string to your clipboard.
13. Open `Terminal` and execute this command: `echo '0: <YOUR HEXADECIMAL STRING>' | xxd -r -p | openssl enc -d -aes-128-ecb -nopad -nosalt -K 00000000000000000000000000000000`
14. Use the resulting string as your token.
#### {% linkable_title Bluestacks %}
1. Configure the robot with the Mi-Home app.
2. Install [BlueStacks](https://www.bluestacks.com).
3. Set up the Mi-Home app in BlueStacks and login to synchronize devices.
4. Use [BlueStacks Tweaker](https://forum.xda-developers.com/general/general/bluestacks-tweaker-2-tool-modifing-t3622681) to access the filesystem and retrieve the token.

View File

@ -8,20 +8,22 @@ comments: false
sharing: true
footer: true
logo: econet.png
ha_category: Climate
ha_category: Water heater
ha_release: 0.61.0
ha_iot_class: "Cloud Polling"
redirect_from: /components/climate.econet/
---
The `econet` water heater platform is consuming the information provided by a [EcoNet enabled Rheem water heater](http://www.rheem.com/EcoNet/Home). This component allows you to set the temperature, the operation mode, and enable vaction mode.
The `econet` water heater platform is consuming the information provided by a [EcoNet enabled Rheem water heater](http://www.rheem.com/EcoNet/Home). This platform allows you to set the temperature, the operation mode, and enable vaction mode.
To enable the `econet` water heater platform add the following to your config.
## {% linkable_title Configuration %}
To enable the `econet` water heater platform, add the following information to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
climate:
water_heater:
- platform: econet
username: YOUR_ECONET_EMAIL
password: YOUR_ECONET_PASSWORD
@ -38,10 +40,9 @@ password:
type: string
{% endconfiguration %}
### {% linkable_title Service `econet.add_vacation` %}
### {% linkable_title Service `econet_add_vacation` %}
You can use the service econet/add_vacation to create a new vacation for your EcoNet water heaters.
You can use the service `econet.add_vacation` to create a new vacation for your EcoNet water heaters.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
@ -50,15 +51,17 @@ You can use the service econet/add_vacation to create a new vacation for your Ec
| `end_date` | yes | this is a Unix timestamp for when the vaction should end.
<p class='note'>
The Unix timestamps can be obtained from the input_datetime component. This will allow you to graphically set the start and end date.
The Unix timestamps can be obtained from the `input_datetime` component. This will allow you to graphically set the start and end date.
</p>
### {% linkable_title Service `econet_delete_vacation` %}
### {% linkable_title Service `econet.delete_vacation` %}
You can use the service econet/delete_vacation to remove all vactions from an EcoNet water heater.
You can use the service `econet.delete_vacation` to remove all vactions from an EcoNet water heater.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | The entity id of the water heater to remove the vaction from.
<p class='note'>
Econet water heaters use to live under the `climate` platform prior to release 0.81.
</p>

View File

@ -0,0 +1,120 @@
---
layout: page
title: "Water Heater"
description: "Instructions on how to setup water heater devices within Home Assistant."
date: 2018-10-10 19:00
sidebar: true
comments: false
sharing: true
footer: true
---
The `water_heater` component is built for the controlling and monitoring of hot water heaters.
To enable this component, pick one of the platforms, and add it to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
water_heater:
platform: demo
```
## {% linkable_title Services %}
### {% linkable_title Water heater control services %}
Available services: `water_heater.set_temperature`, `water_heater.turn_away_mode_on`, `water_heater.turn_away_mode_off`, `water_heater.set_operation_mode`
<p class='note'>
Not all water heater services may be available for your platform. Be sure to check the available services Home Assistant has enabled by checking <img src='/images/screenshots/developer-tool-services-icon.png' alt='service developer tool icon' class="no-shadow" height="38" /> **Services**.
</p>
### {% linkable_title Service `water_heater.set_temperature` %}
Set target temperature of water heater device
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of water heater devices to control. Else targets all.
| `temperature` | no | New target temperature for water heater
| `operation_mode` | yes | Operation mode to set temperature to. This defaults to current_operation mode if not set, or set incorrectly.
#### {% linkable_title Automation example %}
```yaml
automation:
trigger:
platform: time
at: "07:15:00"
action:
- service: water_heater.set_temperature
data:
entity_id: water_heater.demo
temperature: 24
operation_mode: eco
```
### {% linkable_title Service `water_heater.set_operation_mode` %}
Set operation mode for water heater device
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of water heater devices to control. Else targets all.
| `operation_mode` | no | New value of operation mode
#### {% linkable_title Automation example %}
```yaml
automation:
trigger:
platform: time
at: "07:15:00"
action:
- service: water_heater.set_operation_mode
data:
entity_id: water_heater.demo
operation_mode: eco
```
### {% linkable_title Service `water_heater.turn_away_mode_on` %}
Turn away mode on for water heater device
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of water heater devices to control. Else targets all.
#### {% linkable_title Automation example %}
```yaml
automation:
trigger:
platform: time
at: "07:15:00"
action:
- service: water_heater.turn_away_mode_on
data:
entity_id: water_heater.demo
```
### {% linkable_title Service `water_heater.turn_away_mode_off` %}
Trun away mode off for water heater device
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of water heater devices to control. Else targets all.
#### {% linkable_title Automation example %}
```yaml
automation:
trigger:
platform: time
at: "07:15:00"
action:
- service: water_heater.turn_away_mode_off
data:
entity_id: water_heater.demo
```

View File

@ -0,0 +1,28 @@
---
layout: page
title: "Wink Water Heater"
description: "Instructions on how to setup the Wink water heaters within Home Assistant."
date: 2016-11-01 22:36
sidebar: true
comments: false
sharing: true
footer: true
logo: wink.png
ha_category: water heater
ha_release: 0.32
ha_iot_class: "Cloud Polling"
---
The Wink water heater platform allows you to get data from your [Wink](http://www.wink.com/) Water Heaters.
The requirement is that you have setup [Wink](/components/wink/).
### {% linkable_title Supported water heaters %}
- Rheem Econet water heaters (No Wink hub required)
<p class='note'>
Wink water heaters use to live under the `climate` platform prior to release 0.81.
</p>

View File

@ -0,0 +1,21 @@
---
layout: page
title: "SMHI Weather"
description: "Instructions on how to integrate SMHI forecasts within Homeassistant."
date: 2018-09-23 20:00
sidebar: true
comments: false
sharing: true
footer: true
featured: true
logo: smhi.png
ha_category: Weather
ha_release: 0.81
ha_iot_class: "Cloud Polling"
---
The `smhi` platform uses the [SMHI.se](https://www.smhi.se/) web service as a source for meteorological data for your location.
## {% linkable_title Configuration %}
Please see the [component](/components/smhi/) documentation for details and configuration.

View File

@ -72,3 +72,19 @@ zoneminder:
username: YOUR_USERNAME
password: YOUR_PASSWORD
```
### {% linkable_title Service %}
Once loaded, the `zoneminder` platform will expose a service (`set_run_state`) that can be used to change the current run state of ZoneMinder.
| Service data attribute | Optional | Description |
|:-----------------------|:---------|:----------------------------------|
| `name` | no | Name of the new run state to set. |
For example, if your ZoneMinder instance was configured with a run state called "Home", you could write an [automation](/getting-started/automation/) that changes ZoneMinder to the "Home" run state by including the following [action](/getting-started/automation-action/):
```yaml
action:
service: zoneminder.set_run_state
data:
name: Home
```

View File

@ -10,7 +10,7 @@ footer: true
redirect_from: /getting-started/installation-vagrant/
---
A `Vagrantfile` is available into `virtualization/vagrant` folder for quickly spinning up a Linux virtual machine running Home Assistant. This can be beneficial for those who want to experiment with Home Assistant and/or developers willing to easily test local changes and run test suite against them. In the same `virtualization/vagrant` folder there's also a `provision.sh` shell script which provides an easy way to interact with the Home Assistant instance running within the Vagrant VM.
A `Vagrantfile` is available into `virtualization/vagrant` folder for quickly spinning up a Linux virtual machine running Home Assistant. This can be beneficial for those who want to experiment with Home Assistant and/or developers willing to easily test local changes and run test suite against them. In the same `virtualization/vagrant` folder there's also a `provision.sh` shell script which provides an easy way to interact with the Home Assistant instance running within the Vagrant VM. For Windows, use the batch script `provision.bat`.
<p class='note'>
Vagrant is intended for testing/development only. It is NOT recommended for permanent installations.
@ -20,6 +20,8 @@ Vagrant is intended for testing/development only. It is NOT recommended for perm
You must have [Vagrant](https://www.vagrantup.com/downloads.html) and [Virtualbox](https://www.virtualbox.org/wiki/Downloads) installed on your workstation. Vagrant and Virtualbox support all the main platforms, including Windows, MacOS and Linux.
Limited support is available for Hyper-V on Windows, see below.
## {% linkable_title Get Home Assistant source code %}
Download the Home Assistant source code by either downloading the .zip file from [GitHub releases page](https://github.com/home-assistant/home-assistant/releases) or by using [Git](https://git-scm.com/)
@ -98,3 +100,15 @@ To completely remove the VM **and** setup a fresh new environment:
```bash
$ ./provision.sh recreate
```
## {% linkable_title Windows %}
On Windows, Vagrant is launched through an elevated `PowerShell`. Use the batch script `provision.bat` instead of the shell script `provision.sh`.
## {% linkable_title Hyper-V %}
It is possible to use Hyper-V instead of Virtualbox on Windows, with some limitations.
Samba is used for the virtual machine to access files, for which the Windows credentials are needed when the machine is created.
As Hyper-V does not allow for port forwarding, NAT is used by default for the network. Through creating an external network switch in Hyper-V it is possible to access the machine on the network.
The IP address is visible on creation, and through the Hyper-V manager.

View File

@ -59,6 +59,118 @@ An empty payload will cause a previously discovered device to be deleted.
The `<node_id>` level can be used by clients to only subscribe to their own (command) topics by using one wildcard topic like `<discovery_prefix>/+/<node_id>/+/set`.
A base topic `~` may be defined in the payload to conserve memory when the same topic base is used multiple times.
In the value of configuration variables ending with `_topic`, `~` will be replaced with the base topic, if the `~` occurs at the beginning or end of the value.
Configuration variable names in the discovery payload may be abbreviated to conserve memory when sending a discovery message from memory constrained devices.
Supported abbreviations:
```
'aux_cmd_t': 'aux_command_topic',
'aux_stat_tpl': 'aux_state_template',
'aux_stat_t': 'aux_state_topic',
'avty_t': 'availability_topic',
'away_mode_cmd_t': 'away_mode_command_topic',
'away_mode_stat_tpl': 'away_mode_state_template',
'away_mode_stat_t': 'away_mode_state_topic',
'bri_cmd_t': 'brightness_command_topic',
'bri_scl': 'brightness_scale',
'bri_stat_t': 'brightness_state_topic',
'bri_val_tpl': 'brightness_value_template',
'clr_temp_cmd_t': 'color_temp_command_topic',
'clr_temp_stat_t': 'color_temp_state_topic',
'clr_temp_val_tpl': 'color_temp_value_template',
'cmd_t': 'command_topic',
'curr_temp_t': 'current_temperature_topic',
'dev_cla': 'device_class',
'fx_cmd_t': 'effect_command_topic',
'fx_list': 'effect_list',
'fx_stat_t': 'effect_state_topic',
'fx_val_tpl': 'effect_value_template',
'exp_aft': 'expire_after',
'fan_mode_cmd_t': 'fan_mode_command_topic',
'fan_mode_stat_tpl': 'fan_mode_state_template',
'fan_mode_stat_t': 'fan_mode_state_topic',
'frc_upd': 'force_update',
'hold_cmd_t': 'hold_command_topic',
'hold_stat_tpl': 'hold_state_template',
'hold_stat_t': 'hold_state_topic',
'ic': 'icon',
'init': 'initial',
'json_attr': 'json_attributes',
'max_temp': 'max_temp',
'min_temp': 'min_temp',
'mode_cmd_t': 'mode_command_topic',
'mode_stat_tpl': 'mode_state_template',
'mode_stat_t': 'mode_state_topic',
'name': 'name',
'on_cmd_type': 'on_command_type',
'opt': 'optimistic',
'osc_cmd_t': 'oscillation_command_topic',
'osc_stat_t': 'oscillation_state_topic',
'osc_val_tpl': 'oscillation_value_template',
'pl_arm_away': 'payload_arm_away',
'pl_arm_home': 'payload_arm_home',
'pl_avail': 'payload_available',
'pl_cls': 'payload_close',
'pl_disarm': 'payload_disarm',
'pl_hi_spd': 'payload_high_speed',
'pl_lock': 'payload_lock',
'pl_lo_spd': 'payload_low_speed',
'pl_med_spd': 'payload_medium_speed',
'pl_not_avail': 'payload_not_available',
'pl_off': 'payload_off',
'pl_on': 'payload_on',
'pl_open': 'payload_open',
'pl_osc_off': 'payload_oscillation_off',
'pl_osc_on': 'payload_oscillation_on',
'pl_stop': 'payload_stop',
'pl_unlk': 'payload_unlock',
'pow_cmd_t': 'power_command_topic',
'ret': 'retain',
'rgb_cmd_tpl': 'rgb_command_template',
'rgb_cmd_t': 'rgb_command_topic',
'rgb_stat_t': 'rgb_state_topic',
'rgb_val_tpl': 'rgb_value_template',
'send_if_off': 'send_if_off',
'set_pos_tpl': 'set_position_template',
'set_pos_t': 'set_position_topic',
'spd_cmd_t': 'speed_command_topic',
'spd_stat_t': 'speed_state_topic',
'spd_val_tpl': 'speed_value_template',
'spds': 'speeds',
'stat_clsd': 'state_closed',
'stat_off': 'state_off',
'stat_on': 'state_on',
'stat_open': 'state_open',
'stat_t': 'state_topic',
'stat_val_tpl': 'state_value_template',
'swing_mode_cmd_t': 'swing_mode_command_topic',
'swing_mode_stat_tpl': 'swing_mode_state_template',
'swing_mode_stat_t': 'swing_mode_state_topic',
'temp_cmd_t': 'temperature_command_topic',
'temp_stat_tpl': 'temperature_state_template',
'temp_stat_t': 'temperature_state_topic',
'tilt_clsd_val': 'tilt_closed_value',
'tilt_cmd_t': 'tilt_command_topic',
'tilt_inv_stat': 'tilt_invert_state',
'tilt_max': 'tilt_max',
'tilt_min': 'tilt_min',
'tilt_opnd_val': 'tilt_opened_value',
'tilt_status_opt': 'tilt_status_optimistic',
'tilt_status_t': 'tilt_status_topic',
't': 'topic',
'uniq_id': 'unique_id',
'unit_of_meas': 'unit_of_measurement',
'val_tpl': 'value_template',
'whit_val_cmd_t': 'white_value_command_topic',
'whit_val_stat_t': 'white_value_state_topic',
'whit_val_tpl': 'white_value_template',
'xy_cmd_t': 'xy_command_topic',
'xy_stat_t': 'xy_state_topic',
'xy_val_tpl': 'xy_value_template',
```
### {% linkable_title Support by third-party tools %}
The following firmware for ESP8266, ESP32 and Sonoff unit has built-in support for MQTT discovery:
@ -117,4 +229,9 @@ Setting up a sensor with multiple measurement values requires multiple consecuti
- Configuration payload no2: `{"device_class": "sensor", "name": "Humidity", "state_topic": "homeassistant/sensor/sensorBedroom/state", "unit_of_measurement": "%", "value_template": "{% raw %}{{ value_json.humidity}}{% endraw %}" }`
- Common state payload: `{ "temperature": 23.20, "humidity": 43.70 }`
Setting up a switch using topic prefix and abbreviated configuration variable names to reduce payload length.
- Configuration topic: `homeassistant/switch/irrigation/config`
- Command topic: `homeassistant/switch/irrigation/set`
- State topic: `homeassistant/switch/irrigation/state`
- Payload: `{"~": "homeassistant/switch/irrigation", "name": "garden", "cmd_t": "~/set", , "stat_t": "~/state"}`

View File

@ -110,6 +110,11 @@ device_config / device_config_domain / device_config_glob:
default: False
{% endconfiguration %}
<p class='note'>
As of Home Assistant 0.81, the Z-Wave `usb_path` and `network_key` options are configured through the Integrations page in Home Assistant. Specifying a `zwave:` section in configuration.yaml is no longer required unless you need to customize other settings, such as `device_config`, `polling_interval`, etc.
</p>
### {% linkable_title Finding the controller path on Linux %}
<p class='note'>

View File

@ -1,13 +1,13 @@
<div class="copyright grid">
<div class='company grid__item one-third lap-one-half palm-one-whole'>
<div class="title">
<img width="40" src="/demo/favicon-192x192.png"> Home Assistant
<img width="40" src="/demo/favicon-192x192.png" alt="Home Assistant"> Home Assistant
</div>
<div class="icons">
<a rel="me" href='https://twitter.com/home_assistant'><i class="icon-twitter"></i></a>
<a rel="me" href='https://facebook.com/homeassistantio'><i class="icon-facebook"></i></a>
<a rel="me" href='https://plus.google.com/110560654828510104551'><i class="icon-google-plus"></i></a>
<a rel="me" href='https://github.com/home-assistant/home-assistant'><i class="icon-github"></i></a>
<a rel="me" href='https://twitter.com/home_assistant' title="Twitter"><i class="icon-twitter"></i></a>
<a rel="me" href='https://facebook.com/homeassistantio' title="Facebook"><i class="icon-facebook"></i></a>
<a rel="me" href='https://plus.google.com/110560654828510104551' title="Google Plus"><i class="icon-google-plus"></i></a>
<a rel="me" href='https://github.com/home-assistant/home-assistant' title="GitHub"><i class="icon-github"></i></a>
</div>
</div>

View File

@ -3,46 +3,46 @@
<p>Home Assistant will track the state of all the devices in your home, so you don't have to.</p>
<div class='supported-brands clearfix'>
<a href='/components/climate.nest/'>
<img src='/images/supported_brands/nest.png' />
<img src='/images/supported_brands/nest.png' alt="Nest" />
</a>
<a href='/components/ifttt/'>
<img src='/images/supported_brands/ifttt.png' />
<img src='/images/supported_brands/ifttt.png' alt="IFTTT" />
</a>
<a href='/components/light.hue/'>
<img src='/images/supported_brands/philips_hue.png' />
<img src='/images/supported_brands/philips_hue.png' alt="Philips Hue" />
</a>
<a href='/components/media_player.cast/'>
<img src='/images/supported_brands/google_cast.png' />
<img src='/images/supported_brands/google_cast.png' alt="Google Cast" />
</a>
<a href='/components/mqtt/'>
<img src='/images/supported_brands/mqtt.png' />
<img src='/images/supported_brands/mqtt.png' alt="MQTT" />
</a>
<a href='/components/switch.wemo/'>
<img src='/images/supported_brands/belkin_wemo.png' />
<img src='/images/supported_brands/belkin_wemo.png' alt="Belkin WeMo" />
</a>
<a href='/components/notify.pushbullet/'>
<img src='/images/supported_brands/pushbullet.png' />
<img src='/images/supported_brands/pushbullet.png' alt="Pushbullet" />
</a>
<a href='/components/media_player.kodi/'>
<img src='/images/supported_brands/kodi.png' />
<img src='/images/supported_brands/kodi.png' alt="Kodi" />
</a>
<a href='/components/media_player.plex/'>
<img src='/images/supported_brands/plex.png' />
<img src='/images/supported_brands/plex.png' alt="Plex" />
</a>
<a href='/components/tradfri/'>
<img src='/images/supported_brands/ikea.svg' width='165' />
<img src='/images/supported_brands/ikea.svg' width='165' alt="IKEA" />
</a>
<a href='/components/vera/'>
<img src='/images/supported_brands/vera.png' />
<img src='/images/supported_brands/vera.png' alt="Vera" />
</a>
<a href='/components/device_tracker.luci/'>
<img src='/images/supported_brands/openwrt.png' />
<img src='/images/supported_brands/openwrt.png' alt="OpenWRT" />
</a>
<a href='/components/arduino/'>
<img src='/images/supported_brands/arduino.png' />
<img src='/images/supported_brands/arduino.png' alt="Arduino" />
</a>
<!-- <a href='/components/wink/'>
<img src='/images/supported_brands/wink.png' />
<img src='/images/supported_brands/wink.png' alt="Wink" />
</a> -->
</div>

View File

@ -1,6 +1,6 @@
<div class="grid__item three-tenths lap-two-sixths palm-one-whole ha-title">
<a href="{{ root_url }}/" class="site-title">
<img width='40' src='{{ root_url }}/demo/favicon-192x192.png'>
<img width='40' src='{{ root_url }}/demo/favicon-192x192.png' alt="Home Assistant">
<span>{{ site.title }}</span>
</a>
</div>

View File

@ -0,0 +1,81 @@
---
layout: page
title: "Alarm Panel Card"
sidebar_label: Alarm Panel
description: "The Alarm Panel allows you to Arm and Disarm your Alarm Control Panel Components"
date: 2018-10-15 10:28 +00:00
sidebar: true
comments: false
sharing: true
footer: true
---
The Alarm Panel allows you to Arm and Disarm your Alarm Control Panel Components.
<p class='img'>
<img src='/images/lovelace/lovelace_alarm_panel_card.gif' alt='Screenshot of the alarm panel card'>
Screenshot of the Alarm Panel card.
</p>
```yaml
- type: alarm-panel
entity: alarm_control_panel.alarm
```
{% configuration %}
type:
required: true
description: alarm-panel
type: string
entity:
required: true
description: "Entity ID of `alarm_control_panel` domain"
type: string
title:
required: false
description: Title of Alarm Panel
type: string
default: Current State of Alarm Entity
states:
required: false
description: Controls which states to have available
type: list
default: arm_home, arm_away
keys:
arm_home:
description: Arm Home
arm_away:
description: Arm Away
arm_night:
description: Arm Night
arm_custom_bypass:
description: Arm Custom Bypass
{% endconfiguration %}
## {% linkable_title Examples %}
Title Example:
```yaml
- type: alarm-panel
title: House Alarm
entity: alarm_control_panel.alarm
```
<p class='img'>
<img src='/images/lovelace/lovelace_alarm_panel_title_card.gif' alt='Screenshot of the alarm panel card'>
Screenshot of the Alarm Panel card.
</p>
Define the State List:
```yaml
- type: alarm-panel
title: House Alarm
entity: alarm_control_panel.alarm
states:
- arm_home
- arm_away
- arm_night
- armed_custom_bypass
```

View File

@ -90,6 +90,33 @@ service_data:
type: object
{% endconfiguration %}
### {% linkable_title Divider %}
{% configuration %}
type:
required: true
description: divider
type: string
style:
required: false
description: Style the element using CSS.
type: object
default: "height: 1px, background-color: var(--secondary-text-color)"
{% endconfiguration %}
### {% linkable_title Section %}
{% configuration %}
type:
required: true
description: section
type: string
Label:
required: false
description: Section label
type: string
{% endconfiguration %}
### {% linkable_title Weblink %}
{% configuration %}
@ -111,20 +138,6 @@ url:
type: string
{% endconfiguration %}
### {% linkable_title Divider %}
{% configuration %}
type:
required: true
description: divider
type: string
style:
required: false
description: Style the element using CSS.
type: object
default: "height: 1px, background-color: var(--secondary-text-color)"
{% endconfiguration %}
## {% linkable_title Example %}
Entity rows:

View File

@ -0,0 +1,82 @@
---
layout: page
title: "Entity Button Card"
sidebar_label: Entity Button
description: "The Entity Button card allows you to add buttons to perform tasks"
date: 2018-10-11 10:28 +00:00
sidebar: true
comments: false
sharing: true
footer: true
---
The Entity Button card allows you to add buttons to perform tasks.
<p class='img'>
<img src='/images/lovelace/lovelace_entity_button_card.png' alt='Screenshot of the entity button card'>
Screenshot of the Entity Button card.
</p>
```yaml
- type: entity-button
entity: light.living_room
- type: entity-button
entity: light.office
- type: entity-button
entity: light.bedroom
```
{% configuration %}
type:
required: true
description: entity-button
type: string
entity:
required: true
description: Home Assistant entity ID.
type: string
name:
required: false
description: Overwrites friendly name.
type: string
default: Name of Entity
icon:
required: false
description: Overwrites icon or entity picture.
type: string
default: Entity Domain Icon
tap_action:
required: false
description: "Set to `toggle` or `call-service` for direct actions."
type: string
default: more-info
service:
required: false
description: "For `call-service`, e.g., `media_player.media_play_pause`"
type: string
service_data:
required: false
description: The service data to use.
type: object
default: "entity_id: entity_id"
theme:
required: false
description: "Set to any theme within `themes.yaml`"
type: string
{% endconfiguration %}
## {% linkable_title Examples %}
Title and Script Service Example:
```yaml
- type: entity-button
title: Turn Off Lights
entity: script.turn_off_lights
service: script.turn_on
```
<p class='img'>
<img src='/images/lovelace/lovelace_entity_button_complex_card.png' alt='Screenshot of the entity button card'>
Screenshot of the Entity Button card with Title and Script Service.
</p>

View File

@ -40,14 +40,9 @@ show_state:
description: Show entity state-text.
type: boolean
default: "true"
column_width:
theme:
required: false
description: "Column width as CSS length like `100px` or `calc(100% / 7)`. This controls how many entities appear in a row - at the default 20% you have 5 entities in a row. Use `calc(100% / 7)` for 7 entities in a row, and so on."
type: string
default: 20%
theming:
required: false
description: "Set to `primary` to style the card with the background and text color of the header bar."
description: "Set to any theme within `themes.yaml`"
type: string
{% endconfiguration %}

View File

@ -0,0 +1,100 @@
---
layout: page
title: "Gauge Card"
sidebar_label: Gauge
description: "The Gauge card allows you to display sensor information visually"
date: 2018-10-11 10:28 +00:00
sidebar: true
comments: false
sharing: true
footer: true
---
Gauge card is a basic card that allows visually seeing sensor data.
<p class='img'>
<img src='/images/lovelace/lovelace_gauge_card.gif' alt='Screenshot of the gauge card'>
Screenshot of the gauge card.
</p>
```yaml
- type: gauge
entity: sensor.cpu_usuage
```
{% configuration %}
type:
required: true
description: gauge
type: string
entity:
required: true
description: "Entity id to show"
type: string
title:
required: false
description: Title of Gauge Data
type: string
unit_of_measurement:
required: false
description: Unit of Measurement given to data
type: string
default: "Unit Of Measurement given by entity"
min:
required: false
description: Minimum value for graph
type: integer
default: 0
max:
required: false
description: Maximum value for graph
type: integer
default: 100
severity:
required: false
description: Allows setting of colors for different numbers
type: map
keys:
green:
required: true
description: Value from which to start green color
type: integer
yellow:
required: true
description: Value from which to start yellow color
type: integer
red:
required: true
description: Value from which to start red color
type: integer
{% endconfiguration %}
## {% linkable_title Examples %}
Title and Unit of Measurement Example:
```yaml
- type: gauge
title: CPU Usuage
unit_of_measurement: '%'
entity: sensor.cpu_usuage
```
<p class='img'>
<img src='/images/lovelace/lovelace_gauge_card.gif' alt='Screenshot of the gauge card with custom title and unit of measurement'>
Screenshot of the gauge card with custom title and unit of measurement.
</p>
Define the severity map:
```yaml
- type: gauge
title: With Severity
title: CPU Usuage
unit_of_measurement: '%'
entity: sensor.cpu_usuage
severity:
green: 0
yellow: 45
red: 85
```

View File

@ -2,7 +2,7 @@
layout: page
title: "Picture Elements Card"
sidebar_label: Picture Elements
description: "Picture elements card is one of the most versatile type of cards"
description: "Picture elements card is one of the most versatile types of cards"
date: 2018-07-01 10:28 +00:00
sidebar: true
comments: false
@ -10,9 +10,9 @@ sharing: true
footer: true
---
Picture elements card is one of the most versatile type of cards.
Picture elements card is one of the most versatile types of cards.
The cards allows you to position icons or text and even services! On an image based on coordinates. Imagine floor plan, imagine [picture-glance](/lovelace/picture-glance/) with no restrictions!
The cards allow you to position icons or text and even services! On an image based on coordinates. Imagine floor plan, imagine [picture-glance](/lovelace/picture-glance/) with no restrictions!
<p class='img'>
<img src='/images/lovelace/lovelace_picture_elements.gif' alt='A functional floorplan powered by picture elements'>
@ -74,6 +74,11 @@ tap_action:
description: more-info, toggle, navigate, call-service
type: string
default: more-info
hold_action:
required: false
description: Action to perform when clicked-and-held (e.g., `more-info`, `toggle`, `navigate`, `call-service`).
type: string
default: none
navigation_path:
required: false
description: Url path to navigate to (e.g., `/lovelace/1`)
@ -86,6 +91,11 @@ service_data:
required: false
description: The service data to use.
type: object
hold_time:
required: false
description: Time in ms for click-and-hold to register.
type: integer
default: 500
style:
required: true
description: Position and style the element using CSS.
@ -117,6 +127,11 @@ tap_action:
description: more-info, toggle, navigate, call-service
type: string
default: more-info
hold_action:
required: false
description: Action to perform when clicked-and-held (e.g., `more-info`, `toggle`, `navigate`, `call-service`).
type: string
default: none
navigation_path:
required: false
description: Url path to navigate to (e.g., `/lovelace/1`)
@ -129,6 +144,11 @@ service_data:
required: false
description: The service data to use.
type: object
hold_time:
required: false
description: Time in ms for click-and-hold to register.
type: integer
default: 500
style:
required: true
description: Position and style the element using CSS.
@ -186,6 +206,11 @@ tap_action:
description: more-info, toggle, navigate, call-service
type: string
default: more-info
hold_action:
required: false
description: Action to perform when clicked-and-held (e.g., `more-info`, `toggle`, `navigate`, `call-service`).
type: string
default: none
navigation_path:
required: false
description: Url path to navigate to (e.g., `/lovelace/1`)
@ -198,6 +223,11 @@ service_data:
required: false
description: The service data to use.
type: object
hold_time:
required: false
description: Time in ms for click-and-hold to register.
type: integer
default: 500
style:
required: true
description: Position and style the element using CSS.
@ -221,6 +251,11 @@ tap_action:
description: none, more-info, toggle, navigate, call-service
type: string
default: more-info
hold_action:
required: false
description: Action to perform when clicked-and-held (e.g., `more-info`, `toggle`, `navigate`, `call-service`).
type: string
default: none
navigation_path:
required: false
description: Url path to navigate to (e.g., `/lovelace/1`)
@ -233,6 +268,11 @@ service_data:
required: false
description: The service data to use.
type: object
hold_time:
required: false
description: Time in ms for click-and-hold to register.
type: integer
default: 500
image:
required: false
description: The image to display.
@ -311,6 +351,20 @@ state_filter:
"off": brightness(50%) hue-rotate(45deg)
```
## {% linkable_title How to use click-and-hold %}
If the option `hold_action` is specified, that action will be performed when the entity is clicked and held for a certain time (default 0.5 seconds).
Please note that the `tap_action` and `hold_action` share variables for `navigation_path`, `service` and `service_data`. It is therefore not possible to, e.g., call two different services when clicked and when held.
```yaml
tap_action: toggle
hold_action: call-service
service: light.turn_on
service_data:
entity_id: light.bed_light
brightness_pct: 100
```
## {% linkable_title Example %}
```yaml

View File

@ -0,0 +1,36 @@
---
layout: page
title: "Thermostat Card"
sidebar_label: Thermostat
description: "The thermostat card allows you to control a climate entity."
date: 2018-10-25 10:28 +00:00
sidebar: true
comments: false
sharing: true
footer: true
---
The thermostat card gives control of your climate entity.
<p class='img'>
<img src='/images/lovelace/lovelace_thermostat_card.gif' alt='Screenshot of the thermostat card'>
Screenshot of the thermostat card.
</p>
{% configuration %}
type:
required: true
description: thermostat
type: string
entity:
required: true
description: Entity id of `climate` domain
type: string
{% endconfiguration %}
## {% linkable_title Example %}
```yaml
- type: sensor
entity: climate.nest
```

View File

@ -0,0 +1,798 @@
---
layout: post
title: "0.81: new Lovelace cards, LG soundbars, Dyson fans, Elk-M1"
description: "Epic new release full of goodies build by over a hundred contributors."
date: 2018-10-26 00:01:00
date_formatted: "October 26, 2018"
author: Tinkerer
author_twitter: Dubh_Ad
comments: true
categories: Release-Notes
og_image: /images/blog/2018-10-release-81/social.png
---
This release is a major milestone 100 contributors have contributed over the last two weeks. A great bit thank you to everybody who contributed, both those returning and those who've been involved for their first time.
To go with the configuration entry support, MQTT also now also integrates with the device registry. Not to be left out, LIFX, SimpliSafe, and Z-Wave have all gained both device registry support, and configuration entry support.
Lovelace has another three new cards, the alarm panel, the button card, and the thermostat card:
<p class='img'>
<img src='/images/lovelace/lovelace_thermostat_card.gif' alt='Screenshot of the thermostat card'>
Screenshot of the thermostat card.
</p>
The glance card, and the button card can also be themed now, and the way the columns in the glance card has changed. There's also long press support, custom UI support, and more (yes, Lovelace is feeling the love this release).
Other things to be aware of:
- We have a new service `home_assistant.update_entity` to request the update of an entity, rather than waiting for the next scheduled update. This means you can set a really long `scan_interval` in the [platform_options] and then update on demand, ideal for those services where you have low API limit.
- Template sensors will no longer auto update if we can't find relevant entities in the template. You'll want to review your template sensors and consider adding relevant `entity_id` entries or use the new `homeassistant.update_entity` service.
- Water heaters get their own platform separate from `climate`, because you're not a fish living inside the hot water tank
## {% linkable_title New Platforms %}
- Add support for ElkM1 alarm/automation panel ([@gwww] - [#16952]) ([elkm1 docs]) ([alarm_control_panel.elkm1 docs]) (new-platform)
- Water heater support ([@w1ll1am23] - [#17058]) ([water_heater docs]) (new-platform)
- Thermoworks Smoke Sensor ([@nhorvath] - [#16139]) ([sensor.thermoworks_smoke docs]) (new-platform)
- Swedish weather institute weather component ([@helto4real] - [#16717]) ([smhi docs]) ([weather docs]) ([weather.smhi docs]) (new-platform)
- Added lumitek/ankuoo recswitch component ([@marcolertora] - [#15764]) ([switch.recswitch docs]) (new-platform)
- Rewrite opentherm_gw to a component ([@mvn23] - [#17133]) ([opentherm_gw docs]) ([climate.opentherm_gw docs]) (breaking change) (new-platform)
- Add Verizon Fios Quantum Gateway device_tracker platform ([@cisasteelersfan] - [#17023]) ([device_tracker docs]) (new-platform)
- Add Elk-M1 switch and scene platforms ([@gwww] - [#17256]) ([elkm1 docs]) ([switch.elkm1 docs]) (new-platform)
- Transport NSW ([@Dav0815] - [#17242]) ([sensor.transport_nsw docs]) (new-platform)
- Template Lock ([@Anonym-tsk] - [#17288]) ([lock.template docs]) (new-platform)
- notify.homematic ([@siom79] - [#16973]) ([notify docs]) (new-platform)
- Add AWS Route53 Dynamic DNS support ([@keirans] - [#17072]) ([route53 docs]) (new-platform)
- NSW Rural Fire Service platform ([@exxamalte] - [#16802]) ([geo_location docs]) (new-platform)
- Mill climate device ([@Danielhiversen] - [#17313]) ([climate.mill docs]) (new-platform)
- Add support for LG soundbars ([@mjg59] - [#17570]) ([media_player.lg_soundbar docs]) (new-platform)
- Add binary_sensor support to RFlink ([@emontnemery] - [#17146]) ([rflink docs]) ([binary_sensor.rflink docs]) ([sensor.rflink docs]) (new-platform)
- Add sensor support to opentherm_gw ([@mvn23] - [#17314]) ([opentherm_gw docs]) ([sensor.opentherm_gw docs]) (new-platform)
- Add Elk-M1 sensor platform ([@gwww] - [#17342]) ([elkm1 docs]) ([sensor.elkm1 docs]) (new-platform)
- Add opentherm_gw binary sensor support ([@mvn23] - [#17625]) ([opentherm_gw docs]) ([binary_sensor.opentherm_gw docs]) (new-platform)
- Add support for Dyson Hot+Cool Fan as a climate device ([@soraxas] - [#14598]) ([dyson docs]) ([climate.dyson docs]) (new-platform)
- Add new rtorrent sensor ([@terorie] - [#17421]) ([sensor.rtorrent docs]) (new-platform)
- Elk-M1 climate ([@gwww] - [#17679]) ([elkm1 docs]) ([climate.elkm1 docs]) (beta fix) (new-platform)
## {% linkable_title New Features %}
- Add LogBook support to HomeKit ([@ehendrix23] - [#17180]) ([homekit docs]) ([logbook docs]) (new-feature)
- Add water_heater support to HomeKit ([@cdce8p] - [#17614]) ([homekit docs]) (new-feature)
## {% linkable_title If you need help... %}
...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks.
## {% linkable_title Reporting Issues %}
Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template.
<!--more-->
## {% linkable_title Breaking Changes %}
- LIFX can now be configured from the integrations page in the config panel and advanced configuration is available through the `lifx:` component configuration. Configuring LIFX via light platform config no longer works. ([@amelchio] - [#17201]) ([lifx docs]) ([light.lifx docs]) (breaking change)
- Daikin Climate now follows the official operating modes, making it compatible with Google Assistant, Alexa and HomeKit. ([@MatteGary] - [#16913]) ([climate.daikin docs]) (breaking change)
- Rewrite opentherm_gw to a component. This changes the config. ([@mvn23] - [#17133]) ([opentherm_gw docs]) ([climate.opentherm_gw docs]) (breaking change) (new-platform)
- Template sensors for which we could not determine what states to track to re-render will now only be updated when manually refreshed using the new `homeassistant.update_entity` service. ([@balloob] - [#17276]) ([sensor.template docs]) (breaking change)
- Changed config to make it possible to define multiple Octoprint printers ([@reefab] - [#16519]) ([octoprint docs]) ([binary_sensor.octoprint docs]) ([sensor.octoprint docs]) (breaking change)
- SimpliSafe has a new configuration format ([docs][simplisafe docs]). And instead of defaulting each system's name to "SimpliSafe", the address of the system is used. ([@bachya] - [#17148]) ([simplisafe docs]) ([alarm_control_panel.simplisafe docs]) (breaking change)
- Econet is now part of the new water heater component, changing entities from `climate.*` to `water_heater.*` ([@w1ll1am23] - [#17322]) ([water_heater docs]) (breaking change)
- Remove day as a conf option as it's no longer supported ([@kennedyshead] - [#17452]) ([sensor.speedtest docs]) (breaking change)
- Wink water heaters were moved to the new water heater implementation. All Wink water heaters will automatically be moved from climate.wate_heater to water_heater.water_heater Please update your configuration to use water_heater now. ([@w1ll1am23] - [#17504]) ([climate docs]) ([water_heater docs]) ([wink docs]) ([climate.wink docs]) (breaking change) (new-platform)
- Toon "comfort" setting is now available as 'auto' instead of 'performance' ([@balloob] - [#17504]) (breaking change)
- Removing ryobi gdo as API is no longer available. ([@guillaume1410] - [#17637]) (breaking change)
- The way columns are handled in the glance card has changed ([#1832]) (breaking change)
## {% linkable_title Beta Fixes %}
- Geo location trigger added ([@exxamalte] - [#16967]) ([automation.zone docs]) (beta fix)
- Add lovelace websocket get and set card ([@bramkragten] - [#17600]) ([lovelace docs]) (beta fix)
- Fixed issue #16903 re exception with multiple simultanious writes ([@nickovs] - [#17636]) (beta fix)
- Update flux library version ([@oblogic7] - [#17677]) ([light.flux_led docs]) (beta fix)
- Update limitlessled to 1.1.3 ([@amelchio] - [#17703]) ([light.limitlessled docs]) (beta fix)
- Bug fix for clicksend ([@JaxomCS] - [#17713]) ([notify docs]) (beta fix)
- Elk-M1 climate ([@gwww] - [#17679]) ([elkm1 docs]) ([climate.elkm1 docs]) (beta fix) (new-platform)
- Add cover to supported platforms ([@cgarwood] - [#17725]) ([zwave docs]) (beta fix)
- Lovelace ws: add card ([@bramkragten] - [#17730]) ([lovelace docs]) (beta fix)
- Remove day (fixes #17741) ([@fabaff] - [#17743]) ([sensor.fastdotcom docs]) (beta fix)
- Fixed an incorrect reference in the entity registry ([@bachya] - [#17775]) (beta fix)
- Update HAP-python to 2.3.0 ([@cdce8p] - [#17778]) ([homekit docs]) (beta fix)
- SMHI weather component not showing correct values in current forecast ([@helto4real] - [#17783]) ([smhi docs]) ([weather.smhi docs]) (beta fix)
- Fix unloading an entry can leave states around ([@balloob] - [#17786]) (beta fix)
## {% linkable_title All changes %}
- Adding myself as melissa owner ([@kennedyshead] - [#17157])
- Update core, add myself and introduce grouping ([@fabaff] - [#17175])
- Add myself to more sensors ([@fabaff] - [#17185])
- Upgrade boto3 to 1.9.16 ([@GuyKh] - [#17140]) ([notify docs]) ([tts docs])
- Fix Todoist custom project update ([@PhilRW] - [#17115]) ([calendar.todoist docs])
- vsure version 1.5.0 ([@persandstrom] - [#17209]) ([verisure docs])
- Disallow list/dict for string configuration ([@amelchio] - [#17202])
- Enable new registry rename for Insteon ([@wonderslug] - [#17171]) ([insteon docs])
- Fix aliases support for RFLink sensors ([@emontnemery] - [#17190]) ([sensor.rflink docs])
- Add forecast for Met.no ([@Danielhiversen] - [#17109]) ([weather.met docs])
- Add support for ElkM1 alarm/automation panel ([@gwww] - [#16952]) ([elkm1 docs]) ([alarm_control_panel.elkm1 docs]) (new-platform)
- Add config entry for LIFX ([@amelchio] - [#17201]) ([lifx docs]) ([light.lifx docs]) (breaking change)
- danielhiversen as codeowner for met.no ([@Danielhiversen] - [#17232])
- Add some new model names of Xiaomi Aqara devices ([@syssi] - [#17234]) ([xiaomi_aqara docs]) ([binary_sensor.xiaomi_aqara docs])
- Pushed to version 0.7.6 of denonavr library to add more sound modes ([@scarface-4711] - [#17227]) ([media_player.denonavr docs])
- Fix data_key and power_consumed attribute of the Aqara Wall Switch (Closes: #16457) ([@syssi] - [#17235]) ([switch.xiaomi_aqara docs])
- Water heater support ([@w1ll1am23] - [#17058]) ([water_heater docs]) (new-platform)
- Daikin Climate - Better integration with Climate base component ([@MatteGary] - [#16913]) ([climate.daikin docs]) (breaking change)
- Add Support for Xiaomi Vibration Sensor ([@dlashua] - [#16422]) ([binary_sensor.xiaomi_aqara docs]) ([sensor.xiaomi_aqara docs])
- Implement base for MQTT device registry integration ([@OttoWinter] - [#16943]) ([mqtt docs]) ([sensor.mqtt docs])
- Add device registry to MQTT binary sensor ([@OttoWinter] - [#17243]) ([binary_sensor.mqtt docs])
- Add device registry to MQTT switches ([@OttoWinter] - [#17244]) ([switch.mqtt docs])
- Convert MQTT fan to config entry ([@OttoWinter] - [#17247]) ([mqtt docs]) ([fan.mqtt docs])
- Add support for HS color to mqtt light ([@emontnemery] - [#16958]) ([light.mqtt docs])
- emptying device state attributes if the update from the feed fails ([@exxamalte] - [#17249]) ([sensor.geo_rss_events docs])
- Add device registry to MQTT cover ([@OttoWinter] - [#17245]) ([cover.mqtt docs])
- Add group foundation ([@balloob] - [#16935]) ([config docs]) ([websocket_api docs])
- Add Elk light platform ([@gwww] - [#17222]) ([elkm1 docs])
- Use only_cache parameter in binary_sensor.zha.Remote ([@damarco] - [#16711]) ([binary_sensor.zha docs])
- Add configurable temperature step for MQTT climate component ([@JariInc] - [#16201]) ([climate docs]) ([climate.mqtt docs])
- Thermoworks Smoke Sensor ([@nhorvath] - [#16139]) ([sensor.thermoworks_smoke docs]) (new-platform)
- Bump python-miio requirement ([@rytilahti] - [#17260]) ([device_tracker docs]) ([fan.xiaomi_miio docs]) ([light.xiaomi_miio docs]) ([remote.xiaomi_miio docs]) ([sensor.xiaomi_miio docs]) ([switch.xiaomi_miio docs]) ([vacuum.xiaomi_miio docs])
- Swedish weather institute weather component ([@helto4real] - [#16717]) ([smhi docs]) ([weather docs]) ([weather.smhi docs]) (new-platform)
- Add basic support of the Philips Zhirui desk lamp (philips.light.mono1) ([@syssi] - [#17258]) ([light.xiaomi_miio docs])
- Added lumitek/ankuoo recswitch component ([@marcolertora] - [#15764]) ([switch.recswitch docs]) (new-platform)
- Add device registry to MQTT fan ([@OttoWinter] - [#17250]) ([fan.mqtt docs])
- Make async_track_time_change smarter ([@OttoWinter] - [#17199])
- Add optional "all" parameter for groups ([@danielperna84] - [#17179]) ([group docs])
- Fix mpd timeout error ([@definitio] - [#17254]) ([media_player.mpd docs])
- Add support for zha custom cluster mappings ([@damarco] - [#16714]) ([zha docs]) ([sensor.zha docs])
- Z-Wave Config Entry Support ([@cgarwood] - [#17119]) ([zwave docs])
- Manual updates ([@balloob] - [#17278])
- Bumped fints component to version 1.0.1 ([@mnigbur] - [#17280]) ([sensor.fints docs])
- Fixed Temperature for HMIP-WeatherStation Plus/Basic ([@dickesW] - [#17216]) ([homematic docs])
- Rewrite opentherm_gw to a component ([@mvn23] - [#17133]) ([opentherm_gw docs]) ([climate.opentherm_gw docs]) (breaking change) (new-platform)
- Upgrade shodan to 1.10.4 ([@fabaff] - [#17292]) ([sensor.shodan docs])
- Upgrade locationsharinglib to 3.0.6 ([@fabaff] - [#17294]) ([device_tracker docs])
- Add valve level to HmIP thermostat attributes ([@hanzoh] - [#17297]) ([homematic docs])
- Make rmvtransport async ([@cgtobi] - [#17225]) ([sensor.rmvtransport docs])
- Add Verizon Fios Quantum Gateway device_tracker platform ([@cisasteelersfan] - [#17023]) ([device_tracker docs]) (new-platform)
- Added resolve_state to template distance function ([@mnigbur] - [#17290])
- Xiaomi Vacuum: keep error state active after erroring ([@rytilahti] - [#16562]) ([vacuum.xiaomi_miio docs])
- Narrow scope of various pylint inline disables ([@scop] - [#15364])
- Fix and clean haveibeenpwned ([@MartinHjelmare] - [#17306]) ([sensor.haveibeenpwned docs])
- Template sensors to not track all state changes ([@balloob] - [#17276]) ([sensor.template docs]) (breaking change)
- WIP: Don't set initial values for MQTT HVAC in non-optimistic mode ([@definitio] - [#17268]) ([climate.mqtt docs])
- Yamaha AVR update and change Sound Mode only on main_zone ([@Joshi425] - [#17241]) ([media_player.yamaha docs])
- ABC config entries ([@balloob] - [#17309])
- Add direction configuration ([@cgtobi] - [#17308]) ([sensor.rmvtransport docs])
- fix_broadlink_sp2_show_energy ([@zhumuht] - [#17271]) ([switch.broadlink docs])
- Add Elk-M1 switch and scene platforms ([@gwww] - [#17256]) ([elkm1 docs]) ([switch.elkm1 docs]) (new-platform)
- Upgrade construct to 2.9.45 ([@fabaff] - [#16362])
- Update file header ([@fabaff] - [#17317]) ([sensor.gitlab_ci docs])
- Implement ZoneMinder run states ([@rohankapoorcom] - [#17198]) ([zoneminder docs]) ([sensor.zoneminder docs])
- Transport NSW ([@Dav0815] - [#17242]) ([sensor.transport_nsw docs]) (new-platform)
- Made it possible to define multiple Octoprint printers ([@reefab] - [#16519]) ([octoprint docs]) ([binary_sensor.octoprint docs]) ([sensor.octoprint docs]) (breaking change)
- Update python_openzwave==0.4.10 ([@georgemarshall] - [#17323]) ([zwave docs])
- Enable BMW component to be unit system aware ([@uchagani] - [#17197]) ([bmw_connected_drive docs]) ([binary_sensor.bmw_connected_drive docs]) ([sensor.bmw_connected_drive docs])
- still update sensor on startup ([@balloob] - [#17319]) ([sensor.template docs])
- Template Lock ([@Anonym-tsk] - [#17288]) ([lock.template docs]) (new-platform)
- Implement turn_off and turn_on actions for eq3btsmart ([@KarimGeiger] - [#17168]) ([climate.eq3btsmart docs])
- Add user events ([@balloob] - [#17328])
- Add support for off_delay to MQTT binary_sensor ([@emontnemery] - [#16993]) ([binary_sensor.mqtt docs])
- Add permissions foundation ([@balloob] - [#16890])
- Bump version of abodepy to 0.14.0 ([@MisterWil] - [#17336]) ([abode docs])
- Fix motion sensor in Aqara LAN protocol V2 ([@azuwis] - [#17240]) ([binary_sensor.xiaomi_aqara docs])
- Set botvac availability ([@dshokouhi] - [#17350]) ([vacuum.neato docs])
- Color control for Abode RGB lights ([@shred86] - [#17347]) ([light.abode docs])
- Support abbreviations in discovery topic ([@emontnemery] - [#16635]) ([mqtt docs])
- Add exception handling to dnsip sensor ([@danielperna84] - [#17332]) ([sensor.dnsip docs])
- notify.homematic ([@siom79] - [#16973]) ([notify docs]) (new-platform)
- Provide an individual color temperature range per Yeelight model ([@syssi] - [#17305]) ([light.yeelight docs])
- Fix setting opple light color temperature ([@jedmeng] - [#17359]) ([light.opple docs])
- The ping command will not detect device in standby as off ([@kennedyshead] - [#17358]) ([media_player.samsungtv docs])
- Adding source attribute to geo location platforms ([@exxamalte] - [#17339]) ([geo_location docs])
- Add config entry for SimpliSafe ([@bachya] - [#17148]) ([simplisafe docs]) ([alarm_control_panel.simplisafe docs]) (breaking change)
- Added option to use a location other than home ([@Solije] - [#17340]) ([sensor.geo_rss_events docs])
- Add unique_id for Lightify ([@dshokouhi] - [#17377]) ([light.osramlightify docs])
- Add unique_id for Neato ([@dshokouhi] - [#17369]) ([camera.neato docs]) ([switch.neato docs]) ([vacuum.neato docs])
- Add unique_id for Bloomsky ([@dshokouhi] - [#17383]) ([binary_sensor.bloomsky docs]) ([sensor.bloomsky docs])
- Bump insteonplm version to 0.15.0 ([@teharris1] - [#17384]) ([insteon docs])
- XMPP async ([@flowolf] - [#17283]) ([notify docs])
- Add unique id to syncthru sensors ([@scop] - [#17399]) ([sensor.syncthru docs])
- Add AWS Route53 Dynamic DNS support ([@keirans] - [#17072]) ([route53 docs]) (new-platform)
- Added ssl and verify_ssl parameters in ddwrt device tracker component ([@psyhomb] - [#17406]) ([device_tracker docs])
- homematic: Support additional property for sabotage detection ([@klada] - [#17407]) ([homematic docs])
- Fix netio component ([@J4nsen] - [#17411]) ([switch.netio docs])
- Adding support for HmIP-SLO (outdoor brightness sensor) ([@noxhirsch] - [#17413]) ([homematic docs]) ([sensor.homematic docs])
- Update Vagrant Windows support ([@fredrikbaberg] - [#17205])
- Moved econet from climate to water heater ([@w1ll1am23] - [#17322]) ([water_heater docs]) (breaking change)
- Bump Totalconnect ([@333ryan18] - [#17418]) ([alarm_control_panel.totalconnect docs])
- Upgrade pyvera to 0.2.45 ([@brantlk] - [#17419]) ([vera docs])
- NSW Rural Fire Service platform ([@exxamalte] - [#16802]) ([geo_location docs]) (new-platform)
- Upgrade python-telegram-bot to 11.1.0 ([@fabaff] - [#17441]) ([telegram_bot docs])
- Minor updates ([@fabaff] - [#17437]) ([geo_location docs])
- Minor updates ([@fabaff] - [#17436]) ([habitica docs])
- Update docstrings ([@fabaff] - [#17435]) ([sensor.api_streams docs])
- Upgrade numpy to 1.15.2 ([@fabaff] - [#17431]) ([binary_sensor.trend docs]) ([image_processing.opencv docs])
- Upgrade youtube_dl to 2018.10.05 ([@fabaff] - [#17429]) ([media_extractor docs])
- New climate device ([@Danielhiversen] - [#17313]) ([climate.mill docs]) (new-platform)
- Remove day as a conf option ([@kennedyshead] - [#17452]) ([sensor.speedtest docs]) (breaking change)
- Bumped simplisafe-python to 3.1.11 ([@bachya] - [#17454]) ([simplisafe docs])
- Update pysher version ([@craigjmidwinter] - [#17455]) ([goalfeed docs])
- Show torah reading during weekdays ([@tsvi] - [#17447]) ([sensor.jewish_calendar docs])
- Fix NoEntitySpecifiedError during knx startup ([@Julius2342] - [#17366]) ([binary_sensor.knx docs]) ([climate.knx docs]) ([cover.knx docs]) ([light.knx docs]) ([sensor.knx docs]) ([switch.knx docs])
- refactored to make its code structure similar to nsw_rural_fire_service_feed platform ([@exxamalte] - [#17461]) ([geo_location docs])
- Migrate CONF_WEBHOOK_ID to homeassistant.const ([@rohankapoorcom] - [#17460]) ([ifttt docs]) ([automation.webhook docs])
- Add RSRQ, RSRP, and SINR to huawei_lte default sensors ([@scop] - [#17425]) ([sensor.huawei_lte docs])
- Make dicttoxml logging less verbose ([@scop] - [#17446]) ([huawei_lte docs])
- Fire an event when timer gets out of sync ([@amelchio] - [#17398])
- Add context to scripts run by template entities ([@balloob] - [#17329]) ([cover.template docs]) ([fan.template docs]) ([light.template docs]) ([lock.template docs]) ([switch.template docs])
- State is set to UNKNOWN rather than ON in order to make UI have an play/pause button ([@kennedyshead] - [#17357]) ([media_player.samsungtv docs])
- Re-assign conditions ([@SilvrrGIT] - [#17364]) ([weather.yweather docs])
- Switched to async_fire ([@Julius2342] - [#17472]) ([knx docs])
- Fix rangefilter ([@nielstron] - [#17473]) ([sensor.filter docs])
- Cleanup HM Notify platform ([@pvizeli] - [#17355]) ([notify docs])
- Refactor RFLink component ([@emontnemery] - [#17402]) ([rflink docs]) ([cover.rflink docs]) ([light.rflink docs]) ([sensor.rflink docs]) ([switch.rflink docs])
- Include the name of the Volumio media player in errors ([@d0ugal] - [#17481]) ([media_player.volumio docs])
- Fix HomeMatic availability detection ([@danielperna84] - [#17341]) ([homematic docs])
- Add device info for LIFX ([@amelchio] - [#17330]) ([light.lifx docs])
- Update pyhomematic to 0.1.51 ([@danielperna84] - [#17491]) ([homematic docs])
- Clean up OpenUV config flow ([@bachya] - [#17349]) ([openuv docs])
- Fix the sabnzbd component api error ([@arlyon] - [#17014]) ([sabnzbd docs])
- Bumps simplisafe-python to 3.1.12 ([@bachya] - [#17509]) ([simplisafe docs])
- Add unique_id for Ring ([@dshokouhi] - [#17497]) ([binary_sensor.ring docs]) ([camera.ring docs]) ([sensor.ring docs])
- UniFi POE control ([@Kane610] - [#17011]) ([unifi docs]) ([switch.unifi docs])
- Moved Wink water heater from climate to water heater. ([@w1ll1am23] - [#17504]) ([climate docs]) ([water_heater docs]) ([wink docs]) ([climate.wink docs]) (breaking change) (new-platform)
- Add LogBook support to HomeKit ([@ehendrix23] - [#17180]) ([homekit docs]) ([logbook docs]) (new-feature)
- Bump hdate version to 0.6.5 ([@tsvi] - [#17510]) ([sensor.jewish_calendar docs])
- Z-Wave Device Registry Support ([@cgarwood] - [#17291]) ([zwave docs]) ([light.zwave docs]) ([sensor.zwave docs]) ([switch.zwave docs])
- Fix unhandled exception which creates many useless logs ([@benleb] - [#17508]) ([media_player.horizon docs])
- Update mill library ([@Danielhiversen] - [#17520]) ([climate.mill docs])
- Update switchmate library ([@Danielhiversen] - [#17519])
- Add unique_id to Vera entities ([@brantlk] - [#17450]) ([vera docs])
- Manual IP & port configuration for Konnected devices ([@heythisisnate] - [#17120]) ([konnected docs])
- Huawei LTE sensor improvements ([@scop] - [#17533]) ([sensor.huawei_lte docs])
- Tweak sensors comments in default config ([@scop] - [#17526])
- Scan all network interfaces for LIFX bulbs ([@amelchio] - [#17530]) ([lifx docs]) ([light.lifx docs])
- Remove unnecessary call ([@cgtobi] - [#17514]) ([media_player.volumio docs])
- Adding id to lovelace cards in ui-lovelace.yaml ([@bramkragten] - [#17498]) ([lovelace docs])
- Fix mold_indicator errors at startup ([@ehendrix23] - [#17346]) ([sensor.mold_indicator docs])
- Updated package to fix #16960 ([@eavanvalkenburg] - [#17555]) ([notify docs]) ([media_player.webostv docs])
- Validate ports as a port ([@tjorim] - [#17549]) ([upnp docs])
- danielhiversen as mill codeowner ([@Danielhiversen] - [#17571])
- Upgrade twilio package to version 6.19.1 (#17395) ([@bgianfo] - [#17424]) ([twilio docs])
- Add support for LG soundbars ([@mjg59] - [#17570]) ([media_player.lg_soundbar docs]) (new-platform)
- Fixing race condition in geo location platforms ([@exxamalte] - [#17581]) ([geo_location docs])
- Fix: Xiaomi Plug state is set twice ([@Anonym-tsk] - [#17482]) ([switch.xiaomi_aqara docs])
- Bump blinkpy version to 0.10.1 ([@fronzbot] - [#17595]) ([blink docs])
- Upgrade pytest to 3.9.1 ([@scop] - [#17598])
- Add binary_sensor support to RFlink ([@emontnemery] - [#17146]) ([rflink docs]) ([binary_sensor.rflink docs]) ([sensor.rflink docs]) (new-platform)
- Fix flux switch update interval ([@amelchio] - [#17458]) ([switch.flux docs])
- Add sensor support to opentherm_gw ([@mvn23] - [#17314]) ([opentherm_gw docs]) ([sensor.opentherm_gw docs]) (new-platform)
- Add missing await for coroutine ([@jjlawren] - [#17609]) ([camera.ffmpeg docs])
- Tuya light icon fix ([@thomasloven] - [#17605]) ([light.tuya docs])
- Add doorsense sensor for August 3rd Gen Smart Lock Pro ([@ehendrix23] - [#17299]) ([august docs]) ([binary_sensor.august docs]) ([lock.august docs])
- Bump thermoworks version to fix conflict from upstream pyrebase sseclient ([@nhorvath] - [#17620]) ([sensor.thermoworks_smoke docs])
- Upgrade async_upnp_client to 0.12.7 ([@StevenLooman] - [#17601]) ([upnp docs]) ([media_player.dlna_dmr docs])
- Upgrade gstreamer-player to 1.1.2 ([@partofthething] - [#17568])
- Add water_heater support to HomeKit ([@cdce8p] - [#17614]) ([homekit docs]) (new-feature)
- Add Elk-M1 sensor platform ([@gwww] - [#17342]) ([elkm1 docs]) ([sensor.elkm1 docs]) (new-platform)
- Homekit component cleanup ([@cdce8p] - [#17627]) ([homekit docs])
- Use cached robot serial for Neato update ([@dshokouhi] - [#17633]) ([vacuum.neato docs])
- deCONZ - Add support for Xiaomi window covers ([@Kane610] - [#17337]) ([deconz docs]) ([cover.deconz docs])
- Fix linky sensor login error ([@Debaru] - [#17110]) ([sensor.linky docs])
- Fix mqtt light brightness slider ([@thinkl33t] - [#17075]) ([light.mqtt docs])
- Add opentherm_gw binary sensor support ([@mvn23] - [#17625]) ([opentherm_gw docs]) ([binary_sensor.opentherm_gw docs]) (new-platform)
- Upgrade dsmr_parser to 0.12 ([@raymondelooff] - [#17634]) ([sensor.dsmr docs])
- Removing ryobi gdo ([@guillaume1410] - [#17637]) (breaking change)
- Remove ryobi from .coveragerc ([@Danielhiversen] - [#17647])
- Reconnect if sub info comes in that is valid again ([@balloob] - [#17651]) ([cloud docs])
- Very minor cleanup of RFLink components ([@emontnemery] - [#17649]) ([light.rflink docs]) ([sensor.rflink docs]) ([switch.rflink docs])
- available to switchmate ([@Danielhiversen] - [#17640]) ([switch.switchmate docs])
- Upgrade async_timeout to 3.0.1 ([@fabaff] - [#17655])
- Upgrade holidays to 0.9.8 ([@fabaff] - [#17656]) ([binary_sensor.workday docs])
- Add support for Dyson Hot+Cool Fan as a climate device ([@soraxas] - [#14598]) ([dyson docs]) ([climate.dyson docs]) (new-platform)
- Update pynetgear to 0.5.0 ([@MatMaul] - [#17652]) ([device_tracker docs])
- Bump pyarlo==0.2.2 ([@lukiffer] - [#17673]) ([arlo docs])
- Add new rtorrent sensor ([@terorie] - [#17421]) ([sensor.rtorrent docs]) (new-platform)
- Geo location trigger added ([@exxamalte] - [#16967]) ([automation.zone docs]) (beta fix)
- Add lovelace websocket get and set card ([@bramkragten] - [#17600]) ([lovelace docs]) (beta fix)
- Fixed issue #16903 re exception with multiple simultanious writes ([@nickovs] - [#17636]) (beta fix)
- Update flux library version ([@oblogic7] - [#17677]) ([light.flux_led docs]) (beta fix)
- Update limitlessled to 1.1.3 ([@amelchio] - [#17703]) ([light.limitlessled docs]) (beta fix)
- Bug fix for clicksend ([@JaxomCS] - [#17713]) ([notify docs]) (beta fix)
- Elk-M1 climate ([@gwww] - [#17679]) ([elkm1 docs]) ([climate.elkm1 docs]) (beta fix) (new-platform)
- Add cover to supported platforms ([@cgarwood] - [#17725]) ([zwave docs]) (beta fix)
- Lovelace ws: add card ([@bramkragten] - [#17730]) ([lovelace docs]) (beta fix)
- Remove day (fixes #17741) ([@fabaff] - [#17743]) ([sensor.fastdotcom docs]) (beta fix)
- Fixed an incorrect reference in the entity registry ([@bachya] - [#17775]) (beta fix)
- Update HAP-python to 2.3.0 ([@cdce8p] - [#17778]) ([homekit docs]) (beta fix)
- SMHI weather component not showing correct values in current forecast ([@helto4real] - [#17783]) ([smhi docs]) ([weather.smhi docs]) (beta fix)
- Fix unloading an entry can leave states around ([@balloob] - [#17786]) (beta fix)
- The way columns are handled in the glance card has changed ([#1832]) (breaking change)
- Alarm control panel card ([#1758])
- Lovelace button card ([#1766])
- Long press is supported in Lovelace ([#1848])
- Lovelace has custom UI support ([#1824])
[#1758]: https://github.com/home-assistant/home-assistant-polymer/pull/1758
[#1766]: https://github.com/home-assistant/home-assistant-polymer/pull/1766
[#1832]: https://github.com/home-assistant/home-assistant-polymer/pull/1832
[#1824]: https://github.com/home-assistant/home-assistant-polymer/pull/1824
[#1848]: https://github.com/home-assistant/home-assistant-polymer/pull/1848
[#14598]: https://github.com/home-assistant/home-assistant/pull/14598
[#15364]: https://github.com/home-assistant/home-assistant/pull/15364
[#15764]: https://github.com/home-assistant/home-assistant/pull/15764
[#16139]: https://github.com/home-assistant/home-assistant/pull/16139
[#16201]: https://github.com/home-assistant/home-assistant/pull/16201
[#16362]: https://github.com/home-assistant/home-assistant/pull/16362
[#16422]: https://github.com/home-assistant/home-assistant/pull/16422
[#16519]: https://github.com/home-assistant/home-assistant/pull/16519
[#16562]: https://github.com/home-assistant/home-assistant/pull/16562
[#16635]: https://github.com/home-assistant/home-assistant/pull/16635
[#16711]: https://github.com/home-assistant/home-assistant/pull/16711
[#16714]: https://github.com/home-assistant/home-assistant/pull/16714
[#16717]: https://github.com/home-assistant/home-assistant/pull/16717
[#16802]: https://github.com/home-assistant/home-assistant/pull/16802
[#16890]: https://github.com/home-assistant/home-assistant/pull/16890
[#16913]: https://github.com/home-assistant/home-assistant/pull/16913
[#16935]: https://github.com/home-assistant/home-assistant/pull/16935
[#16943]: https://github.com/home-assistant/home-assistant/pull/16943
[#16952]: https://github.com/home-assistant/home-assistant/pull/16952
[#16958]: https://github.com/home-assistant/home-assistant/pull/16958
[#16967]: https://github.com/home-assistant/home-assistant/pull/16967
[#16973]: https://github.com/home-assistant/home-assistant/pull/16973
[#16993]: https://github.com/home-assistant/home-assistant/pull/16993
[#17011]: https://github.com/home-assistant/home-assistant/pull/17011
[#17014]: https://github.com/home-assistant/home-assistant/pull/17014
[#17023]: https://github.com/home-assistant/home-assistant/pull/17023
[#17058]: https://github.com/home-assistant/home-assistant/pull/17058
[#17072]: https://github.com/home-assistant/home-assistant/pull/17072
[#17075]: https://github.com/home-assistant/home-assistant/pull/17075
[#17109]: https://github.com/home-assistant/home-assistant/pull/17109
[#17110]: https://github.com/home-assistant/home-assistant/pull/17110
[#17115]: https://github.com/home-assistant/home-assistant/pull/17115
[#17119]: https://github.com/home-assistant/home-assistant/pull/17119
[#17120]: https://github.com/home-assistant/home-assistant/pull/17120
[#17133]: https://github.com/home-assistant/home-assistant/pull/17133
[#17140]: https://github.com/home-assistant/home-assistant/pull/17140
[#17146]: https://github.com/home-assistant/home-assistant/pull/17146
[#17148]: https://github.com/home-assistant/home-assistant/pull/17148
[#17157]: https://github.com/home-assistant/home-assistant/pull/17157
[#17168]: https://github.com/home-assistant/home-assistant/pull/17168
[#17171]: https://github.com/home-assistant/home-assistant/pull/17171
[#17175]: https://github.com/home-assistant/home-assistant/pull/17175
[#17179]: https://github.com/home-assistant/home-assistant/pull/17179
[#17180]: https://github.com/home-assistant/home-assistant/pull/17180
[#17185]: https://github.com/home-assistant/home-assistant/pull/17185
[#17190]: https://github.com/home-assistant/home-assistant/pull/17190
[#17197]: https://github.com/home-assistant/home-assistant/pull/17197
[#17198]: https://github.com/home-assistant/home-assistant/pull/17198
[#17199]: https://github.com/home-assistant/home-assistant/pull/17199
[#17201]: https://github.com/home-assistant/home-assistant/pull/17201
[#17202]: https://github.com/home-assistant/home-assistant/pull/17202
[#17205]: https://github.com/home-assistant/home-assistant/pull/17205
[#17209]: https://github.com/home-assistant/home-assistant/pull/17209
[#17216]: https://github.com/home-assistant/home-assistant/pull/17216
[#17222]: https://github.com/home-assistant/home-assistant/pull/17222
[#17225]: https://github.com/home-assistant/home-assistant/pull/17225
[#17227]: https://github.com/home-assistant/home-assistant/pull/17227
[#17232]: https://github.com/home-assistant/home-assistant/pull/17232
[#17234]: https://github.com/home-assistant/home-assistant/pull/17234
[#17235]: https://github.com/home-assistant/home-assistant/pull/17235
[#17240]: https://github.com/home-assistant/home-assistant/pull/17240
[#17241]: https://github.com/home-assistant/home-assistant/pull/17241
[#17242]: https://github.com/home-assistant/home-assistant/pull/17242
[#17243]: https://github.com/home-assistant/home-assistant/pull/17243
[#17244]: https://github.com/home-assistant/home-assistant/pull/17244
[#17245]: https://github.com/home-assistant/home-assistant/pull/17245
[#17247]: https://github.com/home-assistant/home-assistant/pull/17247
[#17249]: https://github.com/home-assistant/home-assistant/pull/17249
[#17250]: https://github.com/home-assistant/home-assistant/pull/17250
[#17254]: https://github.com/home-assistant/home-assistant/pull/17254
[#17256]: https://github.com/home-assistant/home-assistant/pull/17256
[#17258]: https://github.com/home-assistant/home-assistant/pull/17258
[#17260]: https://github.com/home-assistant/home-assistant/pull/17260
[#17268]: https://github.com/home-assistant/home-assistant/pull/17268
[#17271]: https://github.com/home-assistant/home-assistant/pull/17271
[#17276]: https://github.com/home-assistant/home-assistant/pull/17276
[#17278]: https://github.com/home-assistant/home-assistant/pull/17278
[#17280]: https://github.com/home-assistant/home-assistant/pull/17280
[#17283]: https://github.com/home-assistant/home-assistant/pull/17283
[#17288]: https://github.com/home-assistant/home-assistant/pull/17288
[#17290]: https://github.com/home-assistant/home-assistant/pull/17290
[#17291]: https://github.com/home-assistant/home-assistant/pull/17291
[#17292]: https://github.com/home-assistant/home-assistant/pull/17292
[#17294]: https://github.com/home-assistant/home-assistant/pull/17294
[#17297]: https://github.com/home-assistant/home-assistant/pull/17297
[#17299]: https://github.com/home-assistant/home-assistant/pull/17299
[#17305]: https://github.com/home-assistant/home-assistant/pull/17305
[#17306]: https://github.com/home-assistant/home-assistant/pull/17306
[#17308]: https://github.com/home-assistant/home-assistant/pull/17308
[#17309]: https://github.com/home-assistant/home-assistant/pull/17309
[#17313]: https://github.com/home-assistant/home-assistant/pull/17313
[#17314]: https://github.com/home-assistant/home-assistant/pull/17314
[#17317]: https://github.com/home-assistant/home-assistant/pull/17317
[#17319]: https://github.com/home-assistant/home-assistant/pull/17319
[#17322]: https://github.com/home-assistant/home-assistant/pull/17322
[#17323]: https://github.com/home-assistant/home-assistant/pull/17323
[#17328]: https://github.com/home-assistant/home-assistant/pull/17328
[#17329]: https://github.com/home-assistant/home-assistant/pull/17329
[#17330]: https://github.com/home-assistant/home-assistant/pull/17330
[#17332]: https://github.com/home-assistant/home-assistant/pull/17332
[#17336]: https://github.com/home-assistant/home-assistant/pull/17336
[#17337]: https://github.com/home-assistant/home-assistant/pull/17337
[#17339]: https://github.com/home-assistant/home-assistant/pull/17339
[#17340]: https://github.com/home-assistant/home-assistant/pull/17340
[#17341]: https://github.com/home-assistant/home-assistant/pull/17341
[#17342]: https://github.com/home-assistant/home-assistant/pull/17342
[#17346]: https://github.com/home-assistant/home-assistant/pull/17346
[#17347]: https://github.com/home-assistant/home-assistant/pull/17347
[#17349]: https://github.com/home-assistant/home-assistant/pull/17349
[#17350]: https://github.com/home-assistant/home-assistant/pull/17350
[#17355]: https://github.com/home-assistant/home-assistant/pull/17355
[#17357]: https://github.com/home-assistant/home-assistant/pull/17357
[#17358]: https://github.com/home-assistant/home-assistant/pull/17358
[#17359]: https://github.com/home-assistant/home-assistant/pull/17359
[#17364]: https://github.com/home-assistant/home-assistant/pull/17364
[#17366]: https://github.com/home-assistant/home-assistant/pull/17366
[#17369]: https://github.com/home-assistant/home-assistant/pull/17369
[#17377]: https://github.com/home-assistant/home-assistant/pull/17377
[#17383]: https://github.com/home-assistant/home-assistant/pull/17383
[#17384]: https://github.com/home-assistant/home-assistant/pull/17384
[#17398]: https://github.com/home-assistant/home-assistant/pull/17398
[#17399]: https://github.com/home-assistant/home-assistant/pull/17399
[#17402]: https://github.com/home-assistant/home-assistant/pull/17402
[#17406]: https://github.com/home-assistant/home-assistant/pull/17406
[#17407]: https://github.com/home-assistant/home-assistant/pull/17407
[#17411]: https://github.com/home-assistant/home-assistant/pull/17411
[#17413]: https://github.com/home-assistant/home-assistant/pull/17413
[#17418]: https://github.com/home-assistant/home-assistant/pull/17418
[#17419]: https://github.com/home-assistant/home-assistant/pull/17419
[#17421]: https://github.com/home-assistant/home-assistant/pull/17421
[#17424]: https://github.com/home-assistant/home-assistant/pull/17424
[#17425]: https://github.com/home-assistant/home-assistant/pull/17425
[#17429]: https://github.com/home-assistant/home-assistant/pull/17429
[#17431]: https://github.com/home-assistant/home-assistant/pull/17431
[#17435]: https://github.com/home-assistant/home-assistant/pull/17435
[#17436]: https://github.com/home-assistant/home-assistant/pull/17436
[#17437]: https://github.com/home-assistant/home-assistant/pull/17437
[#17441]: https://github.com/home-assistant/home-assistant/pull/17441
[#17446]: https://github.com/home-assistant/home-assistant/pull/17446
[#17447]: https://github.com/home-assistant/home-assistant/pull/17447
[#17450]: https://github.com/home-assistant/home-assistant/pull/17450
[#17452]: https://github.com/home-assistant/home-assistant/pull/17452
[#17454]: https://github.com/home-assistant/home-assistant/pull/17454
[#17455]: https://github.com/home-assistant/home-assistant/pull/17455
[#17458]: https://github.com/home-assistant/home-assistant/pull/17458
[#17460]: https://github.com/home-assistant/home-assistant/pull/17460
[#17461]: https://github.com/home-assistant/home-assistant/pull/17461
[#17472]: https://github.com/home-assistant/home-assistant/pull/17472
[#17473]: https://github.com/home-assistant/home-assistant/pull/17473
[#17481]: https://github.com/home-assistant/home-assistant/pull/17481
[#17482]: https://github.com/home-assistant/home-assistant/pull/17482
[#17491]: https://github.com/home-assistant/home-assistant/pull/17491
[#17497]: https://github.com/home-assistant/home-assistant/pull/17497
[#17498]: https://github.com/home-assistant/home-assistant/pull/17498
[#17504]: https://github.com/home-assistant/home-assistant/pull/17504
[#17508]: https://github.com/home-assistant/home-assistant/pull/17508
[#17509]: https://github.com/home-assistant/home-assistant/pull/17509
[#17510]: https://github.com/home-assistant/home-assistant/pull/17510
[#17514]: https://github.com/home-assistant/home-assistant/pull/17514
[#17519]: https://github.com/home-assistant/home-assistant/pull/17519
[#17520]: https://github.com/home-assistant/home-assistant/pull/17520
[#17526]: https://github.com/home-assistant/home-assistant/pull/17526
[#17530]: https://github.com/home-assistant/home-assistant/pull/17530
[#17533]: https://github.com/home-assistant/home-assistant/pull/17533
[#17549]: https://github.com/home-assistant/home-assistant/pull/17549
[#17555]: https://github.com/home-assistant/home-assistant/pull/17555
[#17568]: https://github.com/home-assistant/home-assistant/pull/17568
[#17570]: https://github.com/home-assistant/home-assistant/pull/17570
[#17571]: https://github.com/home-assistant/home-assistant/pull/17571
[#17581]: https://github.com/home-assistant/home-assistant/pull/17581
[#17595]: https://github.com/home-assistant/home-assistant/pull/17595
[#17598]: https://github.com/home-assistant/home-assistant/pull/17598
[#17600]: https://github.com/home-assistant/home-assistant/pull/17600
[#17601]: https://github.com/home-assistant/home-assistant/pull/17601
[#17605]: https://github.com/home-assistant/home-assistant/pull/17605
[#17609]: https://github.com/home-assistant/home-assistant/pull/17609
[#17614]: https://github.com/home-assistant/home-assistant/pull/17614
[#17620]: https://github.com/home-assistant/home-assistant/pull/17620
[#17625]: https://github.com/home-assistant/home-assistant/pull/17625
[#17627]: https://github.com/home-assistant/home-assistant/pull/17627
[#17633]: https://github.com/home-assistant/home-assistant/pull/17633
[#17634]: https://github.com/home-assistant/home-assistant/pull/17634
[#17636]: https://github.com/home-assistant/home-assistant/pull/17636
[#17637]: https://github.com/home-assistant/home-assistant/pull/17637
[#17640]: https://github.com/home-assistant/home-assistant/pull/17640
[#17647]: https://github.com/home-assistant/home-assistant/pull/17647
[#17649]: https://github.com/home-assistant/home-assistant/pull/17649
[#17651]: https://github.com/home-assistant/home-assistant/pull/17651
[#17652]: https://github.com/home-assistant/home-assistant/pull/17652
[#17655]: https://github.com/home-assistant/home-assistant/pull/17655
[#17656]: https://github.com/home-assistant/home-assistant/pull/17656
[#17673]: https://github.com/home-assistant/home-assistant/pull/17673
[#17677]: https://github.com/home-assistant/home-assistant/pull/17677
[#17679]: https://github.com/home-assistant/home-assistant/pull/17679
[#17703]: https://github.com/home-assistant/home-assistant/pull/17703
[#17713]: https://github.com/home-assistant/home-assistant/pull/17713
[#17725]: https://github.com/home-assistant/home-assistant/pull/17725
[#17730]: https://github.com/home-assistant/home-assistant/pull/17730
[#17743]: https://github.com/home-assistant/home-assistant/pull/17743
[#17775]: https://github.com/home-assistant/home-assistant/pull/17775
[#17778]: https://github.com/home-assistant/home-assistant/pull/17778
[#17783]: https://github.com/home-assistant/home-assistant/pull/17783
[#17786]: https://github.com/home-assistant/home-assistant/pull/17786
[@333ryan18]: https://github.com/333ryan18
[@Anonym-tsk]: https://github.com/Anonym-tsk
[@Danielhiversen]: https://github.com/Danielhiversen
[@Dav0815]: https://github.com/Dav0815
[@Debaru]: https://github.com/Debaru
[@GuyKh]: https://github.com/GuyKh
[@J4nsen]: https://github.com/J4nsen
[@JariInc]: https://github.com/JariInc
[@JaxomCS]: https://github.com/JaxomCS
[@Joshi425]: https://github.com/Joshi425
[@Julius2342]: https://github.com/Julius2342
[@Kane610]: https://github.com/Kane610
[@KarimGeiger]: https://github.com/KarimGeiger
[@MartinHjelmare]: https://github.com/MartinHjelmare
[@MatMaul]: https://github.com/MatMaul
[@MatteGary]: https://github.com/MatteGary
[@MisterWil]: https://github.com/MisterWil
[@OttoWinter]: https://github.com/OttoWinter
[@PhilRW]: https://github.com/PhilRW
[@SilvrrGIT]: https://github.com/SilvrrGIT
[@Solije]: https://github.com/Solije
[@StevenLooman]: https://github.com/StevenLooman
[@amelchio]: https://github.com/amelchio
[@arlyon]: https://github.com/arlyon
[@azuwis]: https://github.com/azuwis
[@bachya]: https://github.com/bachya
[@balloob]: https://github.com/balloob
[@benleb]: https://github.com/benleb
[@bgianfo]: https://github.com/bgianfo
[@bramkragten]: https://github.com/bramkragten
[@brantlk]: https://github.com/brantlk
[@cdce8p]: https://github.com/cdce8p
[@cgarwood]: https://github.com/cgarwood
[@cgtobi]: https://github.com/cgtobi
[@cisasteelersfan]: https://github.com/cisasteelersfan
[@craigjmidwinter]: https://github.com/craigjmidwinter
[@d0ugal]: https://github.com/d0ugal
[@damarco]: https://github.com/damarco
[@danielperna84]: https://github.com/danielperna84
[@definitio]: https://github.com/definitio
[@dickesW]: https://github.com/dickesW
[@dlashua]: https://github.com/dlashua
[@dshokouhi]: https://github.com/dshokouhi
[@eavanvalkenburg]: https://github.com/eavanvalkenburg
[@ehendrix23]: https://github.com/ehendrix23
[@emontnemery]: https://github.com/emontnemery
[@exxamalte]: https://github.com/exxamalte
[@fabaff]: https://github.com/fabaff
[@flowolf]: https://github.com/flowolf
[@fredrikbaberg]: https://github.com/fredrikbaberg
[@fronzbot]: https://github.com/fronzbot
[@georgemarshall]: https://github.com/georgemarshall
[@guillaume1410]: https://github.com/guillaume1410
[@gwww]: https://github.com/gwww
[@hanzoh]: https://github.com/hanzoh
[@helto4real]: https://github.com/helto4real
[@heythisisnate]: https://github.com/heythisisnate
[@jedmeng]: https://github.com/jedmeng
[@jjlawren]: https://github.com/jjlawren
[@keirans]: https://github.com/keirans
[@kennedyshead]: https://github.com/kennedyshead
[@klada]: https://github.com/klada
[@lukiffer]: https://github.com/lukiffer
[@marcolertora]: https://github.com/marcolertora
[@mjg59]: https://github.com/mjg59
[@mnigbur]: https://github.com/mnigbur
[@mvn23]: https://github.com/mvn23
[@nhorvath]: https://github.com/nhorvath
[@nickovs]: https://github.com/nickovs
[@nielstron]: https://github.com/nielstron
[@noxhirsch]: https://github.com/noxhirsch
[@oblogic7]: https://github.com/oblogic7
[@partofthething]: https://github.com/partofthething
[@persandstrom]: https://github.com/persandstrom
[@psyhomb]: https://github.com/psyhomb
[@pvizeli]: https://github.com/pvizeli
[@raymondelooff]: https://github.com/raymondelooff
[@reefab]: https://github.com/reefab
[@rohankapoorcom]: https://github.com/rohankapoorcom
[@rytilahti]: https://github.com/rytilahti
[@scarface-4711]: https://github.com/scarface-4711
[@scop]: https://github.com/scop
[@shred86]: https://github.com/shred86
[@siom79]: https://github.com/siom79
[@soraxas]: https://github.com/soraxas
[@syssi]: https://github.com/syssi
[@teharris1]: https://github.com/teharris1
[@terorie]: https://github.com/terorie
[@thinkl33t]: https://github.com/thinkl33t
[@thomasloven]: https://github.com/thomasloven
[@tjorim]: https://github.com/tjorim
[@tsvi]: https://github.com/tsvi
[@uchagani]: https://github.com/uchagani
[@w1ll1am23]: https://github.com/w1ll1am23
[@wonderslug]: https://github.com/wonderslug
[@zhumuht]: https://github.com/zhumuht
[abode docs]: /components/abode/
[alarm_control_panel.elkm1 docs]: /components/alarm_control_panel.elkm1/
[alarm_control_panel.simplisafe docs]: /components/alarm_control_panel.simplisafe/
[alarm_control_panel.totalconnect docs]: /components/alarm_control_panel.totalconnect/
[arlo docs]: /components/arlo/
[august docs]: /components/august/
[automation.webhook docs]: /docs/automation/trigger/#webhook-trigger
[automation.zone docs]: /docs/automation/trigger/#zone-trigger
[binary_sensor.august docs]: /components/binary_sensor.august/
[binary_sensor.bloomsky docs]: /components/binary_sensor.bloomsky/
[binary_sensor.bmw_connected_drive docs]: /components/binary_sensor.bmw_connected_drive/
[binary_sensor.knx docs]: /components/binary_sensor.knx/
[binary_sensor.mqtt docs]: /components/binary_sensor.mqtt/
[binary_sensor.octoprint docs]: /components/binary_sensor.octoprint/
[binary_sensor.opentherm_gw docs]: /components/binary_sensor.opentherm_gw/
[binary_sensor.rflink docs]: /components/binary_sensor.rflink/
[binary_sensor.ring docs]: /components/binary_sensor.ring/
[binary_sensor.trend docs]: /components/binary_sensor.trend/
[binary_sensor.workday docs]: /components/binary_sensor.workday/
[binary_sensor.xiaomi_aqara docs]: /components/binary_sensor.xiaomi_aqara/
[binary_sensor.zha docs]: /components/binary_sensor.zha/
[blink docs]: /components/blink/
[bmw_connected_drive docs]: /components/bmw_connected_drive/
[calendar.todoist docs]: /components/calendar.todoist/
[camera.ffmpeg docs]: /components/camera.ffmpeg/
[camera.neato docs]: /components/camera.neato/
[camera.ring docs]: /components/camera.ring/
[climate docs]: /components/climate/
[climate.daikin docs]: /components/climate.daikin/
[climate.dyson docs]: /components/climate.dyson/
[climate.elkm1 docs]: /components/climate.elkm1/
[climate.eq3btsmart docs]: /components/climate.eq3btsmart/
[climate.knx docs]: /components/climate.knx/
[climate.mill docs]: /components/climate.mill/
[climate.mqtt docs]: /components/climate.mqtt/
[climate.opentherm_gw docs]: /components/climate.opentherm_gw/
[climate.wink docs]: /components/climate.wink/
[cloud docs]: /components/cloud/
[config docs]: /components/config/
[cover.deconz docs]: /components/cover.deconz/
[cover.knx docs]: /components/cover.knx/
[cover.mqtt docs]: /components/cover.mqtt/
[cover.rflink docs]: /components/cover.rflink/
[cover.ryobi_gdo docs]: /components/cover.ryobi_gdo/
[cover.template docs]: /components/cover.template/
[deconz docs]: /components/deconz/
[device_tracker docs]: /components/device_tracker/
[dyson docs]: /components/dyson/
[elkm1 docs]: /components/elkm1/
[fan.mqtt docs]: /components/fan.mqtt/
[fan.template docs]: /components/fan.template/
[fan.xiaomi_miio docs]: /components/fan.xiaomi_miio/
[geo_location docs]: /components/geo_location/
[goalfeed docs]: /components/goalfeed/
[group docs]: /components/group/
[habitica docs]: /components/habitica/
[homekit docs]: /components/homekit/
[homematic docs]: /components/homematic/
[huawei_lte docs]: /components/huawei_lte/
[ifttt docs]: /components/ifttt/
[image_processing.opencv docs]: /components/image_processing.opencv/
[insteon docs]: /components/insteon/
[knx docs]: /components/knx/
[konnected docs]: /components/konnected/
[lifx docs]: /components/lifx/
[light.abode docs]: /components/light.abode/
[light.flux_led docs]: /components/light.flux_led/
[light.knx docs]: /components/light.knx/
[light.lifx docs]: /components/light.lifx/
[light.limitlessled docs]: /components/light.limitlessled/
[light.mqtt docs]: /components/light.mqtt/
[light.opple docs]: /components/light.opple/
[light.osramlightify docs]: /components/light.osramlightify/
[light.rflink docs]: /components/light.rflink/
[light.template docs]: /components/light.template/
[light.tuya docs]: /components/light.tuya/
[light.xiaomi_miio docs]: /components/light.xiaomi_miio/
[light.yeelight docs]: /components/light.yeelight/
[light.zwave docs]: /components/light.zwave/
[lock.august docs]: /components/lock.august/
[lock.template docs]: /components/lock.template/
[logbook docs]: /components/logbook/
[lovelace docs]: /components/lovelace/
[media_extractor docs]: /components/media_extractor/
[media_player.denonavr docs]: /components/media_player.denonavr/
[media_player.dlna_dmr docs]: /components/media_player.dlna_dmr/
[media_player.horizon docs]: /components/media_player.horizon/
[media_player.lg_soundbar docs]: /components/media_player.lg_soundbar/
[media_player.mpd docs]: /components/media_player.mpd/
[media_player.samsungtv docs]: /components/media_player.samsungtv/
[media_player.volumio docs]: /components/media_player.volumio/
[media_player.webostv docs]: /components/media_player.webostv/
[media_player.yamaha docs]: /components/media_player.yamaha/
[mqtt docs]: /components/mqtt/
[notify docs]: /components/notify/
[octoprint docs]: /components/octoprint/
[opentherm_gw docs]: /components/opentherm_gw/
[openuv docs]: /components/openuv/
[recswitch docs]: /components/recswitch/
[remote.xiaomi_miio docs]: /components/remote.xiaomi_miio/
[rflink docs]: /components/rflink/
[route53 docs]: /components/route53/
[sabnzbd docs]: /components/sabnzbd/
[sensor.api_streams docs]: /components/sensor.api_streams/
[sensor.bloomsky docs]: /components/sensor.bloomsky/
[sensor.bmw_connected_drive docs]: /components/sensor.bmw_connected_drive/
[sensor.dnsip docs]: /components/sensor.dnsip/
[sensor.dsmr docs]: /components/sensor.dsmr/
[sensor.elkm1 docs]: /components/sensor.elkm1/
[sensor.fastdotcom docs]: /components/sensor.fastdotcom/
[sensor.filter docs]: /components/sensor.filter/
[sensor.fints docs]: /components/sensor.fints/
[sensor.geo_rss_events docs]: /components/sensor.geo_rss_events/
[sensor.gitlab_ci docs]: /components/sensor.gitlab_ci/
[sensor.haveibeenpwned docs]: /components/sensor.haveibeenpwned/
[sensor.homematic docs]: /components/sensor.homematic/
[sensor.huawei_lte docs]: /components/sensor.huawei_lte/
[sensor.jewish_calendar docs]: /components/sensor.jewish_calendar/
[sensor.knx docs]: /components/sensor.knx/
[sensor.linky docs]: /components/sensor.linky/
[sensor.mold_indicator docs]: /components/sensor.mold_indicator/
[sensor.mqtt docs]: /components/sensor.mqtt/
[sensor.octoprint docs]: /components/sensor.octoprint/
[sensor.opentherm_gw docs]: /components/sensor.opentherm_gw/
[sensor.rflink docs]: /components/sensor.rflink/
[sensor.ring docs]: /components/sensor.ring/
[sensor.rmvtransport docs]: /components/sensor.rmvtransport/
[sensor.rtorrent docs]: /components/sensor.rtorrent/
[sensor.shodan docs]: /components/sensor.shodan/
[sensor.speedtest docs]: /components/sensor.speedtest/
[sensor.syncthru docs]: /components/sensor.syncthru/
[sensor.template docs]: /components/sensor.template/
[sensor.thermoworks_smoke docs]: /components/sensor.thermoworks_smoke/
[sensor.transport_nsw docs]: /components/sensor.transport_nsw/
[sensor.xiaomi_aqara docs]: /components/sensor.xiaomi_aqara/
[sensor.xiaomi_miio docs]: /components/sensor.xiaomi_miio/
[sensor.zha docs]: /components/sensor.zha/
[sensor.zoneminder docs]: /components/sensor.zoneminder/
[sensor.zwave docs]: /components/sensor.zwave/
[simplisafe docs]: /components/simplisafe/
[smhi docs]: /components/smhi/
[switch.broadlink docs]: /components/switch.broadlink/
[switch.elkm1 docs]: /components/switch.elkm1/
[switch.flux docs]: /components/switch.flux/
[switch.knx docs]: /components/switch.knx/
[switch.mqtt docs]: /components/switch.mqtt/
[switch.neato docs]: /components/switch.neato/
[switch.netio docs]: /components/switch.netio/
[switch.recswitch docs]: /components/switch.recswitch/
[switch.rflink docs]: /components/switch.rflink/
[switch.switchmate docs]: /components/switch.switchmate/
[switch.template docs]: /components/switch.template/
[switch.unifi docs]: /components/switch.unifi/
[switch.xiaomi_aqara docs]: /components/switch.xiaomi_aqara/
[switch.xiaomi_miio docs]: /components/switch.xiaomi_miio/
[switch.zwave docs]: /components/switch.zwave/
[telegram_bot docs]: /components/telegram_bot/
[tts docs]: /components/tts/
[twilio docs]: /components/twilio/
[unifi docs]: /components/unifi/
[upnp docs]: /components/upnp/
[vacuum.neato docs]: /components/vacuum.neato/
[vacuum.xiaomi_miio docs]: /components/vacuum.xiaomi_miio/
[vera docs]: /components/vera/
[verisure docs]: /components/verisure/
[water_heater docs]: /components/water_heater/
[weather docs]: /components/weather/
[weather.demo docs]: /components/weather.demo/
[weather.met docs]: /components/weather.met/
[weather.smhi docs]: /components/weather.smhi/
[weather.yweather docs]: /components/weather.yweather/
[websocket_api docs]: /components/websocket_api/
[wink docs]: /components/wink/
[xiaomi_aqara docs]: /components/xiaomi_aqara/
[zha docs]: /components/zha/
[zoneminder docs]: /components/zoneminder/
[zwave docs]: /components/zwave/
[platform_options]: https://www.home-assistant.io/docs/configuration/platform_options/#scan-interval

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 890 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 834 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

@ -0,0 +1,130 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="147.20946"
height="89.449371"
viewBox="0 0 38.949169 23.666812"
version="1.1"
id="svg3138"
inkscape:version="0.92.0 r15299"
sodipodi:docname="fios by verizon.svg">
<defs
id="defs3132">
<clipPath
id="clipPath2892"
clipPathUnits="userSpaceOnUse">
<path
inkscape:connector-curvature="0"
id="path2890"
d="M 27.765,27.766 H 137.331 V 94.102 H 27.765 Z" />
</clipPath>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="6.0261398"
inkscape:cx="73.043863"
inkscape:cy="44.225124"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
units="px"
inkscape:window-width="1280"
inkscape:window-height="744"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1" />
<metadata
id="metadata3135">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-32.078573,-177.68918)">
<g
id="g3258"
transform="translate(0.13229147,-0.13228788)">
<path
d="m 35.780269,198.5056 c 0,-0.74224 -0.301978,-1.29611 -0.918633,-1.29611 -0.717198,0 -1.044223,0.57927 -1.044223,1.29611 0,0.73625 0.346075,1.28976 1.037873,1.28976 0.623005,0 0.924983,-0.54716 0.924983,-1.28976 m -1.918758,1.19556 h -0.01905 v 0.47802 h -0.578909 v -4.68101 h 0.585259 v 1.19556 c 0,0.25788 -0.0127,0.49707 -0.01905,0.64171 h 0.01905 c 0.220133,-0.35878 0.597605,-0.61666 1.088319,-0.61666 0.855839,0 1.440745,0.6671 1.440745,1.78082 0,1.08832 -0.547159,1.78012 -1.459442,1.78012 -0.452967,0 -0.837142,-0.20108 -1.056922,-0.57856"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
id="path2896"
inkscape:connector-curvature="0" />
<path
d="m 36.875009,201.28648 v -0.50306 h 0.02505 c 0.06315,0.0377 0.207786,0.0628 0.352425,0.0628 0.232834,0 0.383822,-0.0882 0.503414,-0.40887 0,-0.0127 0.131939,-0.39017 0.119592,-0.42792 l -1.289756,-3.20886 h 0.635353 l 0.698147,1.87501 c 0.138642,0.38382 0.282928,0.91229 0.282928,0.91229 h 0.01305 c 0,0 0.156986,-0.53482 0.289278,-0.91229 l 0.6731,-1.87501 h 0.610305 l -1.434747,3.68688 c -0.276578,0.71085 -0.547158,0.86854 -0.981075,0.86854 -0.188736,0 -0.40252,-0.0317 -0.497064,-0.0695"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
id="path2900"
inkscape:connector-curvature="0" />
<path
d="M 41.404747,196.80059 H 42.0274 l 0.591608,1.82457 c 0.144639,0.45296 0.307975,1.07597 0.307975,1.07597 h 0.01305 c 0,0 0.144639,-0.62301 0.295628,-1.07597 l 0.603955,-1.82457 h 0.603603 l -1.214261,3.37855 h -0.6477 z"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
id="path2904"
inkscape:connector-curvature="0" />
<path
d="m 45.261525,198.21004 h 1.956858 c -0.03175,-0.64805 -0.365125,-1.03822 -0.95003,-1.03822 -0.610306,0 -0.931334,0.44061 -1.006828,1.03822 m -0.610306,0.28328 c 0,-0.98178 0.648053,-1.77447 1.617134,-1.77447 0.503414,0 0.893233,0.19473 1.157816,0.52246 0.276578,0.33338 0.414867,0.81774 0.414867,1.3903 h -2.592211 c 0.04445,0.6604 0.402872,1.16381 1.057275,1.16381 0.465667,0 0.786342,-0.22048 0.893233,-0.57891 h 0.572559 c -0.150989,0.62901 -0.69215,1.05728 -1.472142,1.05728 -1.038225,0 -1.648531,-0.79304 -1.648531,-1.78047"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
id="path2908"
inkscape:connector-curvature="0" />
<path
d="m 49.061647,197.41086 h 0.0187 c 0.207786,-0.38982 0.553861,-0.65405 1.000478,-0.65405 0.09419,0 0.150989,0.0127 0.214136,0.0377 v 0.55351 h -0.01905 c -0.08184,-0.0254 -0.138642,-0.0318 -0.239183,-0.0318 -0.522111,0 -0.969081,0.39017 -0.969081,1.02587 v 1.83692 h -0.584905 v -3.37856 h 0.578908 z"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
id="path2912"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path2914"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
d="m 50.886143,196.80063 h 0.585258 v 3.37855 h -0.585258 z m -0.0127,-1.30246 h 0.610306 v 0.67945 h -0.610306 z" />
<path
d="m 52.16969,199.72632 1.509889,-1.96956 c 0.138642,-0.17603 0.402872,-0.45931 0.402872,-0.45931 v -0.0187 c 0,0 -0.402872,0.0187 -0.635705,0.0187 h -1.163814 v -0.49707 h 2.535413 v 0.36513 l -1.535288,2.0073 c -0.144639,0.18239 -0.427567,0.49072 -0.427567,0.49072 v 0.0187 c 0,0 0.427567,-0.0187 0.6731,-0.0187 h 1.36525 v 0.51576 h -2.72415 z"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
id="path2918"
inkscape:connector-curvature="0" />
<path
d="m 57.926529,198.49311 c 0,-0.7299 -0.358775,-1.30881 -1.050925,-1.30881 -0.69215,0 -1.050572,0.57891 -1.050572,1.30881 0,0.7299 0.358422,1.30246 1.050572,1.30246 0.69215,0 1.050925,-0.57256 1.050925,-1.30246 m -2.699455,0 c 0,-0.98143 0.635705,-1.77412 1.65488,-1.77412 1.019528,0 1.642181,0.79269 1.642181,1.77412 0,0.98778 -0.622653,1.78047 -1.642181,1.78047 -1.019175,0 -1.65488,-0.79269 -1.65488,-1.78047"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
id="path2922"
inkscape:connector-curvature="0" />
<path
d="m 59.744746,197.27878 h 0.0187 c 0.245534,-0.33972 0.578909,-0.55986 1.069622,-0.55986 0.704498,0 1.138767,0.39617 1.138767,1.10102 v 2.35938 H 61.39328 v -2.29023 c 0,-0.43427 -0.283634,-0.67945 -0.742598,-0.67945 -0.522111,0 -0.899583,0.37147 -0.899583,0.91228 v 2.0574 h -0.585258 v -3.37855 h 0.578908 z"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
id="path2926"
inkscape:connector-curvature="0" />
<path
d="m 33.260731,192.85519 h 3.022953 v -7.75123 H 38.2797 v -2.17029 h -1.996016 v -0.29034 c 0,-0.87206 0.736247,-0.98848 1.996016,-0.92992 v -2.30611 c -1.666522,-0.17462 -3.391252,0 -4.224513,0.85231 -0.503767,0.50412 -0.794456,1.25942 -0.794456,2.13184 v 0.54222 h -1.182158 v 2.17029 h 1.182158 z m 5.871986,0 h 3.042355 v -9.92152 h -3.042355 z m 9.068505,0.31009 c 3.158772,0 5.270853,-2.2867 5.270853,-5.25145 0,-2.98415 -2.112081,-5.25145 -5.270853,-5.25145 -3.158419,0 -5.270852,2.2673 -5.270852,5.25145 0,2.96475 2.112433,5.25145 5.270852,5.25145 m -0.0194,-2.2285 c -1.434042,0 -2.189692,-1.2012 -2.189692,-3.02295 0,-1.84079 0.75565,-3.02295 2.189692,-3.02295 1.434041,0 2.228497,1.18216 2.228497,3.02295 0,1.82175 -0.794456,3.02295 -2.228497,3.02295 m -9.049103,-8.85542 h 3.042355 v -2.69381 h -3.042355 z m 19.474744,11.08392 c 2.577394,0 4.476397,-1.14335 4.476397,-3.29424 0,-2.51918 -2.015419,-2.96509 -3.778955,-3.27519 -1.259417,-0.21307 -2.40277,-0.30973 -2.40277,-1.02658 0,-0.62018 0.600781,-0.93027 1.395236,-0.93027 0.910873,0 1.5113,0.29068 1.627717,1.20156 h 2.84868 c -0.155222,-1.97662 -1.666522,-3.19723 -4.456641,-3.19723 -2.325864,0 -4.243917,1.08515 -4.243917,3.17747 0,2.30611 1.782939,2.79083 3.54577,3.10092 1.33738,0.23248 2.538589,0.31009 2.538589,1.20121 0,0.63958 -0.600781,1.00753 -1.588559,1.00753 -1.046691,0 -1.725083,-0.48436 -1.841147,-1.4919 h -2.945694 c 0.116416,2.18969 1.918758,3.52672 4.825294,3.52672"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
id="path2930"
inkscape:connector-curvature="0" />
<path
d="m 69.246215,177.95376 -3.742267,8.02569 -1.414286,-3.04553 h -1.529291 l 2.322336,4.97981 h 1.23578 l 4.644672,-9.95997 z"
style="fill:#ed1c24;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
id="path2934"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

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