Merge branch 'rc' into current

This commit is contained in:
Paulus Schoutsen 2018-10-12 16:57:35 +02:00
commit 54f350b22b
68 changed files with 2160 additions and 226 deletions

View File

@ -141,14 +141,14 @@ social:
# Home Assistant release details
current_major_version: 0
current_minor_version: 79
current_patch_version: 3
date_released: 2018-10-02
current_minor_version: 80
current_patch_version: 0
date_released: 2018-10-12
# 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-0793---october-2"
patch_version_notes: "#"
# Minor release (Example #release-0431---april-25):
# Date we moved to Discourse for comments

View File

@ -0,0 +1,17 @@
---
layout: page
title: "Blink Alarm Control Panel"
description: "Instructions for how to setup Blink alarm control panel within Home Assistant."
date: 2018-10-01 22:13
sidebar: true
comments: false
sharing: true
footer: true
logo: blink.png
ha_category: Alarm Control Panel
ha_release: "0.80"
---
<p class='note'>
To get your Blink alarm control panel working with Home Assistant, follow the instructions for the general [Blink component](/components/blink/).
</p>

View File

@ -0,0 +1,22 @@
---
layout: page
title: "Elk-M1 Alarm Control Panel"
description: "Instructions how to integrate Elk M1 alarm control panel."
date: 2018-10-07 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: elkproducts.png
ha_release: 0.81
ha_category: Alarm
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 area (also known as partition) is represented as an `alarm_control_panel`.
<p class='note'>
Full configuration details can be found on the main [Elk-M1 component](/components/elkm1/) page.
</p>

View File

@ -0,0 +1,38 @@
---
layout: page
title: "AquaLogic"
description: "Instructions on how to integrate an AquaLogic controller within Home Assistant."
date: 2018-09-17 9:16
sidebar: true
comments: false
sharing: true
footer: true
logo: hayward.png
ha_category: Hub
ha_release: "0.80"
ha_iot_class: "Local Push"
---
The AquaLogic component provides connectivity to a Hayward/Goldline AquaLogic/ProLogic pool controller. Note that an RS-485 to Ethernet adapter connected to the pool controller is required.
## {% linkable_title Configuration %}
To add the AquaLogic component to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
aqualogic:
host: 192.168.1.1
port: 23
```
{% configuration %}
host:
description: The domain name or IP address of the RS-485 to Ethernet adapter connected to the pool controller, eg. 192.168.1.1.
required: true
type: string
port:
description: The port provided by the RS-485 to Ethernet adapter.
required: true
type: int
{% endconfiguration %}

View File

@ -0,0 +1,16 @@
---
layout: page
title: "Fritzbox Binary Sensor"
description: "Instructions on how to integrate an AVM Fritzbox alarm sensor."
date: 2018-10-01 23:00
sidebar: true
comments: false
sharing: true
footer: true
logo: avm.png
ha_category: Binary Sensor
ha_release: "0.80"
ha_iot_class: "Local Polling"
---
To get AVM fritzbox binary sensor follow the instructions for the [Fritzbox component](/components/fritzbox/).

View File

@ -17,16 +17,4 @@ The `rachio` binary sensor platform allows you to view the status of your [Rachi
Once configured, a binary sensor will be added that shows whether or not each controller in the account provided is online and reachable by Rachio's servers.
<p class='note'>
You must have the [Rachio component](/components/rachio/) configured to use this switch.
</p>
## {% linkable_title Configuration %}
To add this platform to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
binary_sensor:
- platform: rachio
```
They will be automatically added if the [Rachio component](/components/rachio/) component is loaded.

View File

@ -35,6 +35,7 @@ The requirement is that you have setup the [`xiaomi aqara` component](/component
| Aqara Wireless Switch (Single) | 86sw1 | WXKG03LM | off (always) | `click` | `click_type` | `single` |
| Aqara Wireless Switch (Double) | 86sw2 | WXKG02LM | off (always) | `click` | `click_type` | `single`, `both` |
| Cube | cube | MFKZQ01LM | off (always) | `cube_action` | `action_type`, `action_value` (rotate) | `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swing`, `alert`, `free_fall`, `rotate` (degrees at action_value) |
| Vibration Sensor | vibration | DJT11LM | off (always) | `xiaomi_aqara.movement` | `movement_type` | `vibrate`, `tilt`, `free_fall` |
### {% linkable_title Automation examples %}
@ -308,3 +309,32 @@ The Aqara Wireless Switch is available as single-key and double-key version. Eac
service: light.turn_off
entity_id: light.gateway_light_34xxxxxxxx13
```
#### {% linkable_title Vibration Sensor %}
This automation toggles the living room lamp on vibration/tilt.
```yaml
- alias: Turn on Living Room Lamp on vibration
trigger:
platform: event
event_type: xiaomi_aqara.movement
event_data:
entity_id: binary_sensor.vibration_xxxx000000
movement_type: vibrate
action:
service: light.toggle
data:
entity_id: light.living_room_lamp
- alias: Turn on Living Room Lamp on tilt
trigger:
platform: event
event_type: xiaomi_aqara.movement
event_data:
entity_id: binary_sensor.vibration_xxxx000000
movement_type: tilt
action:
service: light.toggle
data:
entity_id: light.living_room_lamp
```

View File

@ -19,7 +19,9 @@ from [Blink](http://blinkforhome.com) camera and security systems.
You will need your Blink login information (username, which is
usually your email address, and password) to use this module.
To set it up, add the following information to your `configuration.yaml` file:
## {% linkable_title Configuration %}
To enable devices linked in your [Blink](https://blinkforhome.com) account, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@ -30,71 +32,97 @@ blink:
{% configuration %}
username:
description: Your username to login to Blink.
required: true
type: string
description: The username for accessing your Blink account.
required: true
type: string
password:
description: Your password to login to Blink.
required: true
type: string
description: The password for accessing your Blink account.
required: true
type: string
scan_interval:
description: How frequently to query for new data. Defaults to 60 seconds.
required: false
type: integer
binary_sensors:
description: Binary sensor configuration options.
required: false
type: map
keys:
monitored_conditions:
description: The conditions to create sensors from.
required: false
type: list
default: all (`motion_enabled`, `motion_detected`)
sensors:
description: Sensor configuration options.
required: false
type: map
keys:
monitored_conditions:
description: The conditions to create sensors from.
required: false
type: list
default: all (`battery`, `temperature`, `status`, `wifi_strength`)
{% endconfiguration %}
Once loaded, your front end will have the following components:
- A camera image for each camera in your system.
- A binary_sensor per camera that indicates whether motion detection is enabled.
- A binary_sensor for the system that indicates if the system is armed or disarmed.
- A sensor per camera that reports temperature.
- A sensor per camera that reports battery level.
- A sensor per camera that reports unread notification (i.e., detected motion events).
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.
Since the cameras are battery operated, the images are only updated in Home
Assistant when the user manually forces a new photo. This image can be updated
with the `snap_picture` service to force Home Assistant to request an update
from Blink's servers. 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.
**Note:** 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:
Services:
- `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.
This services are available for the `blink` component:
Below is an example showing every possible entry:
- arm_system
- arm_camera
- snap_picture
For `arm_system`, the value sent can be either `true` or `false`
and will arm and disarm the whole Blink system. Arm system example:
```json
{
"device_armed": "True"
}
```yaml
# Example configuration.yaml entry
blink:
username: YOUR_USERNAME
password: YOUR_PASSWORD
scan_interval: 60
binary_sensors:
monitored_conditions:
- motion_enabled
- motion_detected
sensors:
monitored_conditions:
- battery
- temperature
- status
- wifi_strength
```
Arm camera follows a similar structure, but each individual camera can have
motion detection enabled or disabled. Because of this,
you also need to supply a name. For example, if you have a camera named
"Living Room" and you want to turn off motion detection on that camera,
you would call the `arm_camera` service with the following payload:
```json
{
"friendly_name": "Living Room",
"device_armed": "False"
}
## {% linkable_title Services %}
### {% linkable_title `blink.blink_update` %}
Force a refresh of the Blink system.
### {% linkable_title `blink.trigger_camera` %}
Trigger a camera to take a new still image.
| Service Data Attribute | Optional | Description |
|------------------------|----------|----------------------------------------|
| `name` | no | Name of camera to take new image with. |
### {% linkable_title `blink.save_video` %}
Save the last recorded video of a camera to a local file. Note that in most cases, home-assistant will need to know that the directory is writable via the `whitelist_external_dirs` in your `configuration.yaml` file (see example below).
| Service Data Attribute | Optional | Description |
|------------------------|----------|------------------------------------------|
| `name` | no | Name of camera containing video to save. |
| `filename` | no | Location of save file. |
```yaml
homeassistant:
...
whitelist_external_dirs:
- '/tmp'
- '/path/to/whitelist'
```
The `snap_picture` service takes the camera name as the
payload and with take a new picture with your camera.
```json
{
"friendly_name": "Living Room"
}
```
<p class='img'>
<img src='{{site_root}}/images/screenshots/blink_example_frontend.png' />
</p>

View File

@ -54,10 +54,6 @@ authentication:
default: basic
{% endconfiguration %}
<p class='note'>
There is a <a href="https://github.com/shazow/urllib3/issues/800" target="_blank">known issue in urllib3</a> that you will get error messages in your logs like <code>[StartBoundaryNotFoundDefect(), MultipartInvariantViolationDefect()], unparsed data: ''</code> but the component still works fine. You can ignore the messages.
</p>
## {% linkable_title Examples %}
Example of using a DCS-930L Wireless N Network Camera from D-Link:

View File

@ -66,8 +66,8 @@ If your ONVIF camera supports PTZ, you will be able to pan, tilt or zoom your ca
| Service data attribute | Description |
| -----------------------| ----------- |
| `entity_id` | String or list of strings that point at `entity_id`s of cameras. Else targets all.
| `tilt` | Tilt direction. Allowed values: `UP`, `DOWN`
| `pan` | Pan direction. Allowed values: `RIGHT`, `LEFT`
| `zoom` | Zoom. Allowed values: `ZOOM_IN`, `ZOOM_OUT`
| `tilt` | Tilt direction. Allowed values: `UP`, `DOWN`, `NONE`
| `pan` | Pan direction. Allowed values: `RIGHT`, `LEFT`, `NONE`
| `zoom` | Zoom. Allowed values: `ZOOM_IN`, `ZOOM_OUT`, `NONE`
If you are running into trouble with this sensor, please refer to the [Troubleshooting section](/components/ffmpeg/#troubleshooting).

View File

@ -0,0 +1,28 @@
---
layout: page
title: "Honeywell evohome CH/DHW Controller"
description: "Instructions on how to integrate a Honeywell evohome controller with Home Assistant."
date: 2018-09-25 12:00
sidebar: true
comments: false
sharing: true
footer: true
logo: honeywell.png
ha_category: Climate
ha_release: 0.80
ha_iot_class: "Cloud Polling"
---
The `evohome` climate platform integrates your _EU-based_ [Honeywell Connect Comfort](https://international.mytotalconnectcomfort.com/Account/Login) CH/DHW controller into Home Assistant, enabling control of its operating mode.
It is related to the honeywell climate component](/components/climate.honeywell/), which allows limited integration with evohome Heating zones. These two components should be usuable side-by-side, but YMMV.
The evohome evotouch controller supports seven distict modes: Auto, AutoWithEco, Away, DayOff, HeatingOff, and Custom; AutoWithReset is a 7th, hidden, mode.
Currently, only the standard HA operating modes are supported: 'Eco' (AutoWithEco), and 'Off' (HeatingOff), and 'Auto' (all other evohome modes). 'Away' (Away) mode is supported separately.
The actual operating modes are tracked/reported via `device_state_attributes`.
<p class='note'>
Full configuration details can be found on the main [evohome component](/components/evohome/) page.
</p>

View File

@ -26,3 +26,7 @@ The are several attributes that can be useful for automations and templates.
| `device_locked` | The state of the key lock at the device.
| `locked` | The state of the lock for configuring the device via the app or the Fritzbox web interface.
| `low_battery` | The low battery state indication.
| `battery_level` | The battery level (only available since Fritz!OS 7).
| `holiday_mode` | The state of the holiday mode (only available since Fritz!OS 7).
| `summer_mode` | The state of the summer mode (only available since Fritz!OS 7).
| `window_open` | The state of the window open detection (only available since Fritz!OS 7).

View File

@ -25,16 +25,46 @@ counter:
step: 1
```
Configuration variables:
- **[alias]** (*Required*): Alias for the counter. Multiple entries are allowed.
- **name** (*Optional*): Friendly name of the counter.
- **initial** (*Optional*): Initial value when Home Assistant starts. Defaults to 0.
- **step** (*Optional*): Incremental/step value for the counter. Defaults to 1 (increments by 1).
- **icon** (*Optional*): Icon for entry.
{% configuration %}
# 'alias' should be replaced by the user for their actual value.
"[alias]":
description: Alias for the counter. Multiple entries are allowed.
required: true
type: map
keys:
name:
description: Friendly name of the counter.
required: false
type: string
initial:
description: Initial value when Home Assistant starts or the counter is reset.
required: false
type: integer
default: 0
restore:
description: Try to restore the last known value when Home Assistant starts.
required: false
type: boolean
default: True
step:
description: Incremental/step value for the counter.
required: false
type: integer
default: 1
icon:
description: Icon to display for the counter.
required: false
type: icon
{% endconfiguration %}
Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance` or `mdi:motorbike`.
### {% linkable_title Restore State %}
This component will automatically restore the state it had prior to Home Assistant stopping as long as you have the `recorder` component enabled and your entity has `restore` set to `True` which is the default. To disable this feature, set `restore` to `False`. Additional information can be found in the [Restore state](/components/recorder/#restore-state) section of the [`recorder`](/components/recorder/) component documentation.
If `restore` is set to `False`, the `initial` value will only be used when no previous state is found or when the counter is reset.
## {% linkable_title Services %}
Available services: `increment`, `decrement`, and `reset`.

View File

@ -155,6 +155,10 @@ tilt_invert_state:
required: false
type: boolean
default: false
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
{% endconfiguration %}
## {% linkable_title Examples %}

View File

@ -45,3 +45,5 @@ device_tracker:
required: false
type: boolean
{% endconfiguration %}
Multiple Tile accounts can be used by repeating the `tile` platform. Tracked devices in `known_devices.yaml` will be named `tile_<tile_identifier>`. You can find `<tile_identifier>` in the Tile app by clicking on a tile.

View File

@ -22,6 +22,12 @@ Before this scanner can be used you have to install the ubus RPC package on Open
opkg install rpcd-mod-file
```
For OpenWRT version 18.06.x the package uhttpd-mod-ubus should also be installed:
```bash
opkg install uhttpd-mod-ubus
```
And create a read-only user to be used by setting up the ACL file `/usr/share/rpcd/acl.d/user.json`.
```json

View File

@ -0,0 +1,253 @@
---
layout: page
title: "Elk-M1 Controller"
description: "Instructions to setup the Elk-M1 controller."
date: 2018-10-07 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: elkproducts.png
ha_release: 0.81
ha_category: Hub
ha_iot_class: "Local Push"
---
The Elk-M1 is a home security and automation controller that is capable of alarm control panel functions and automation.
The Elk-M1 controller is manufactured by [Elk Products](https://www.elkproducts.com).
## {% linkable_title Configuration %}
To integrate Elk-M1 controller with Home Assistant, add the following
section to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
elkm1:
host: elk://IP_ADDRESS
```
{% configuration %}
host:
description: Connection string to Elk of the form `<method>://<address>[:port]`. `<method>` is `elk` for non-secure connection, `elks` for secure connection, and `serial` for serial port connection. `<address>` is IP address or domain or for `serial` the serial port that the Elk is connected to. Optional `<port>` is the port to connect to on the Elk, defaulting to 2101 for `elk` and 2601 for `elks`.
required: true
type: string
username:
description: Username to login to Elk. Only required if using `elks` connection method.
required: false
type: string
password:
description: Password to login to Elk. Only required if using `elks` connection method.
required: false
type: string
temperature_unit:
description: The temperature unit that the Elk panel uses. Valid values are `C` and `F`.
required: false
type: string
default: F
area:
description: Elk areas to include in Home Assistant.
required: false
default: All included.
type: map
keys:
enabled:
description: Enable this configuration section.
type: boolean
required: false
default: true
include:
description: List to include in the form of either `<value>` or `<value>-<value>` where `<value>` is a postive integer or a X10 housecode. See configuration below for examples of ranges.
type: list
required: false
default: All included.
exclude:
description: List to exclude in the form of either `<value>` or `<value>-<value>` where `<value>` is a number or a X10 housecode. See configuration below for examples of ranges.
type: list
required: false
default: None excluded.
counter:
description: Elk counters to include in Home Assistant.
required: false
default: All included.
type: map
keys:
enabled:
description: Enable this configuration section.
type: boolean
required: false
default: true
include:
description: List to include in the form of either `<value>` or `<value>-<value>` where `<value>` is a postive integer or a X10 housecode. See configuration below for examples of ranges.
type: list
required: false
default: All included.
exclude:
description: List to exclude in the form of either `<value>` or `<value>-<value>` where `<value>` is a number or a X10 housecode. See configuration below for examples of ranges.
type: list
required: false
default: None excluded.
keypad:
description: Elk keypads to include in Home Assistant.
required: false
default: All included.
type: map
keys:
enabled:
description: Enable this configuration section.
type: boolean
required: false
default: true
include:
description: List to include in the form of either `<value>` or `<value>-<value>` where `<value>` is a postive integer or a X10 housecode. See configuration below for examples of ranges.
type: list
required: false
default: All included.
exclude:
description: List to exclude in the form of either `<value>` or `<value>-<value>` where `<value>` is a number or a X10 housecode. See configuration below for examples of ranges.
type: list
required: false
default: None excluded.
output:
description: Elk outputs to include in Home Assistant.
required: false
default: All included.
type: map
keys:
enabled:
description: Enable this configuration section.
type: boolean
required: false
default: true
include:
description: List to include in the form of either `<value>` or `<value>-<value>` where `<value>` is a postive integer or a X10 housecode. See configuration below for examples of ranges.
type: list
required: false
default: All included.
exclude:
description: List to exclude in the form of either `<value>` or `<value>-<value>` where `<value>` is a number or a X10 housecode. See configuration below for examples of ranges.
type: list
required: false
default: None excluded.
setting:
description: Elk settings to include in Home Assistant.
required: false
default: All included.
type: map
keys:
enabled:
description: Enable this configuration section.
type: boolean
required: false
default: true
include:
description: List to include in the form of either `<value>` or `<value>-<value>` where `<value>` is a postive integer or a X10 housecode. See configuration below for examples of ranges.
type: list
required: false
default: All included.
exclude:
description: List to exclude in the form of either `<value>` or `<value>-<value>` where `<value>` is a number or a X10 housecode. See configuration below for examples of ranges.
type: list
required: false
default: None excluded.
task:
description: Elk tasks to include in Home Assistant.
required: false
default: All included.
type: map
keys:
enabled:
description: Enable this configuration section.
type: boolean
required: false
default: true
include:
description: List to include in the form of either `<value>` or `<value>-<value>` where `<value>` is a postive integer or a X10 housecode. See configuration below for examples of ranges.
type: list
required: false
default: All included.
exclude:
description: List to exclude in the form of either `<value>` or `<value>-<value>` where `<value>` is a number or a X10 housecode. See configuration below for examples of ranges.
type: list
required: false
default: None excluded.
thermostat:
description: Elk thermostats to include in Home Assistant.
required: false
default: All included.
type: map
keys:
enabled:
description: Enable this configuration section.
type: boolean
required: false
default: true
include:
description: List to include in the form of either `<value>` or `<value>-<value>` where `<value>` is a postive integer or a X10 housecode. See configuration below for examples of ranges.
type: list
required: false
default: All included.
exclude:
description: List to exclude in the form of either `<value>` or `<value>-<value>` where `<value>` is a number or a X10 housecode. See configuration below for examples of ranges.
type: list
required: false
default: None excluded.
plc:
description: Elk PLC lights to include in Home Assistant.
required: false
default: All included.
type: map
keys:
enabled:
description: Enable this configuration section.
type: boolean
required: false
default: true
include:
description: List to include in the form of either `<value>` or `<value>-<value>` where `<value>` is a postive integer or a X10 housecode. See configuration below for examples of ranges.
type: list
required: false
default: All included.
exclude:
description: List to exclude in the form of either `<value>` or `<value>-<value>` where `<value>` is a number or a X10 housecode. See configuration below for examples of ranges.
type: list
required: false
default: None excluded.
zone:
description: Elk zones to include in Home Assistant.
required: false
default: All included.
type: map
keys:
enabled:
description: Enable this configuration section.
type: boolean
required: false
default: true
include:
description: List to include in the form of either `<value>` or `<value>-<value>` where `<value>` is a postive integer or a X10 housecode. See configuration below for examples of ranges.
type: list
required: false
default: All included.
exclude:
description: List to exclude in the form of either `<value>` or `<value>-<value>` where `<value>` is a number or a X10 housecode. See configuration below for examples of ranges.
type: list
required: false
default: None excluded.
{% endconfiguration %}
Example configuration of the above:
```yaml
elkm1:
host: elks://IP_ADDRESS
username: USERNAME
password: PASSWORD
area:
exclude: [5-8]
zone:
exclude: [11-16, 19-192, 199-208]
plc:
include: [a1-d16, 192]
exclude: [b12-d5]
```

View File

@ -0,0 +1,55 @@
---
layout: page
title: "Honeywell evohome"
description: "Instructions on how to integrate Honeywell evohome devices with Home Assistant."
date: 2018-09-25 12:00
sidebar: true
comments: false
sharing: true
footer: true
logo: honeywell.png
ha_category: Hub
ha_release: 0.80
ha_iot_class: "Cloud Polling"
---
The `evohome` platform is the main component to set up and integrate all supported evohome devices.
It uses the [evohomeclient](https://pypi.org/project/evohomeclient/) client library and so will let you control (only) _EU-based_ [Honeywell Connect Comfort](https://international.mytotalconnectcomfort.com/Account/Login) systems.
Currently, only Controllers are supported; support for Heating zones and DHW controllers will be added at a later time.
It is related to the [honeywell](/components/climate.honeywell/) climate component, which allows limited integration with evohome Heating zones. These two components should be usuable side-by-side, but YMMV.
## {% linkable_title Configuration %}
To use this component in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
evohome:
- username: YOUR_USERNAME
password: YOUR_PASSWORD
location_idx: 0
```
This is a IoT cloud-polling device, and the `scan_interval` is currently fixed at 3 minutes. Testing has indicated that this is a safe interval that - by itself - shouldn't cause you to be rate-limited by Honeywell.
### {% linkable_title Configuration variables %}
{% configuration %}
username:
description: The username (email address) that has access to [Honeywell Connect Comfort](https://international.mytotalconnectcomfort.com/Account/Login) web site.
required: true
type: string
password:
description: The password corresponding to the above username.
required: true
type: string
location_idx:
description: Used to select which location to use, if your login has access to more than one location. Multiple locations are not supported.
required: false
type: int
default: 0
{% endconfiguration %}

View File

@ -142,6 +142,10 @@ payload_not_available:
required: false
type: string
default: offline
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
{% endconfiguration %}
<p class='note warning'>

View File

@ -25,49 +25,79 @@ The Google Assistant component requires a bit more setup than most due to the wa
To use Google Assistant, your Home Assistant configuration has to be externally accessible with a hostname and SSL certificate. If you haven't already configured that, you should do so before continuing.
</p>
## {% linkable_title Migrate to release 0.80 and above %}
Since release 0.80, the `Authorization Code` type of `OAuth` account linking is supported. To migrate your configuration, you need:
1. Change your `Account linking` setting in [Actions on Google console](https://console.actions.google.com/), look for the `Advanced Options` in the bottom left of the sidebar.
- Change `Linking type` to `OAuth` and `Authorization Code`.
- In the `Client information` section:
- Change `Client ID` to `https://oauth-redirect.googleusercontent.com/`, the trailing slash is important.
- Input any string you like into `Client Secret`, Home Assistant doesn't need this field.
- Change `Authorization URL` to `https://[YOUR HOME ASSISTANT URL:PORT]/auth/authorize` (replace with your actual URL).
- Change `Token URL` to `https://[YOUR HOME ASSISTANT URL:PORT]/auth/token` (replace with your actual URL).
- In the `Configure your client` section:
- Do **NOT** check `Google to transmit clientID and secret via HTTP basic auth header`.
- Click 'Save' at the top right corner, then click 'Test' to generate a new draft version of the Test App.
2. Change your `configuration.yaml` file:
- Remove `client_id`, `access_token`, `agent_user_id` config from `google_assistant:` since they are no longer needed.
3. Restart Home Assistant, open the `Google Assistant` app on your mobile phone then go to `Settings > Home Control`, re-link `[test] your app name`.
4. A browser will be open and asking you to login to your Home Assistant instance, it will redirect back to `Google Assistant` app right afterward.
<p class='note'>
If you've added Home Assistant to the home screen, you have to first remove it from home screen, otherwise, this HTML5 app will show up instead of a browser. Using it would prevent Home Assistant to redirect back to the `Google Assistant` app.
</p>
## {% linkable_title Setup %}
You need to create an API Key with the [Google Console](https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview) which allows you to update devices without unlinking and relinking an account (see [below](/#troubleshooting-the-request_sync-service)). If you don't provide it the `google_assistant.request_sync` service is not exposed. It is recommended to set up this configuration key as it also allows the usage of the following command, "Ok Google, sync my devices". Once you have setup this component you will need to call this service (or command) each time you add a new device that you wish to control via the Google Assistant integration.
You need to create an API Key with the [Google Cloud API Console](https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview) which allows you to update devices without unlinking and relinking an account (see [below](#troubleshooting-the-request_sync-service)). If you don't provide one, the `google_assistant.request_sync` service is not exposed. It is recommended to set up this configuration key as it also allows the usage of the following command, "Ok Google, sync my devices". Once you have set up this component, you will need to call this service (or command) each time you add a new device that you wish to control via the Google Assistant integration.
1. Create a new project in the [Actions on Google console](https://console.actions.google.com/).
a. Add/Import project, give it a name
b. Click on `Home Control` card, select the `Smart home` recommendation.
c. Create an Action, under the build section. Add in your Home Assistant URL: `https://[YOUR HOME ASSISTANT URL:PORT]/api/google_assistant`, replace the `[YOUR HOME ASSISTANT URL:PORT]` with the domain / ip address and the port under which your Home Assistant is reachable.
d. Click `Done`. Then click on `Overview`, which will lead you back to the app details screen.
2. `Account linking` is required for your app to interact with Home Assistant. Set this up under the `Quick Setup` section
a. Leave it at the default `No, I only want to allow account creation on my website` and select Next
b. For the `Linking type` select `OAuth` and `Implicit`
c. Client ID: The `client_id` from your Home Assistant configuration (see below)
d. Authorization URL (replace with your actual URL): `https://[YOUR HOME ASSISTANT URL:PORT]/api/google_assistant/auth`.
e. Configure your client. Add scopes for `email` and `name`.
f. Testing instructions: Enter anything. It doesn't matter since you won't submit this app.
3. Back on the overview page. Click `Simulator` under `TEST`. You don't have to actually test .
1. Create a new project in the [Actions on Google console](https://console.actions.google.com/).
1. Add/Import a project and give it a name.
2. Click on the `Home Control` card, select the `Smart home` recommendation.
3. Create an Action, under the build section. Add your Home Assistant URL: `https://[YOUR HOME ASSISTANT URL:PORT]/api/google_assistant`, replace the `[YOUR HOME ASSISTANT URL:PORT]` with the domain / IP address and the port under which your Home Assistant is reachable.
4. Click `Done`. Then click on `Overview`, which will lead you back to the app details screen.
2. `Account linking` is required for your app to interact with Home Assistant. Set this up under the `Quick Setup` section.
1. Leave it at the default `No, I only want to allow account creation on my website` and select Next.
2. For the `Linking type` select `OAuth` and `Authorization Code`.
3. Client ID: `https://oauth-redirect.googleusercontent.com/`, the trailing slash is important.
4. Client Secret: Anything you like, Home Assistant doesn't need this field.
5. Authorization URL (replace with your actual URL): `https://[YOUR HOME ASSISTANT URL:PORT]/auth/authorize`.
6. Token URL (replace with your actual URL): `https://[YOUR HOME ASSISTANT URL:PORT]/auth/token`.
7. Configure your client. Add scopes for `email` and `name`.
8. Do **NOT** check `Google to transmit clientID and secret via HTTP basic auth header`.
9. Testing instructions: Enter anything. It doesn't matter since you won't submit this app.
<img src='/images/components/google_assistant/accountlinking.png' alt='Screenshot: Account linking'>
3. Back on the overview page. Click `Simulator` under `TEST`. It will create a new draft version Test App. You don't have to actually test, but you need to generate this draft version Test App.
4. If you haven't already added the component configuration to `configuration.yaml` file and restarted Home Assistant, you'll be unable to continue until you have.
5. Open the Google Assistant app and go into `Settings > Home Control`. Or on your Android phone or tablet, touch and hold the Home button or say "Ok Google.". At the top right, tap compass icon and then more icon and then `Settings > Home Control`.
If you have added the [Home Assistant "web app"](/docs/frontend/mobile/) to your phone's homescreen before, you need remove it before next step
6. Click the `+` sign, and near the bottom, you should have `[test] your app name`. Selecting that should lead you the screen where you can set rooms for your devices or nicknames for your devices.
7. If you want to allow other household users to control the devices:
a. Go to the settings for the project you created in point 1 in the developer console.
b. Under the gear icon, click `Permissions`
c. Click `Add`, type the new user's e-mail address and choose `Project -> Editor` role
d. Have the new user go to [developer console](https://console.actions.google.com/) and repeat steps starting from point 3
8. If you want to use the `google_assistant.request_sync` service, to update devices without unlinking and relinking, in Home Assistant, then enable Homegraph API for your project:
a. Go to the [cloud console](https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview)
b. Select your project and click Enable Homegraph API
c. Go to Credentials, which you can find on the left navigation bar under the key icon, and select API Key from Create Credentials
d. Note down the generated API Key and use this in the configuration
5. Open the Google Assistant app and go into `Settings > Home Control`.
6. Click the `+` sign, and near the bottom, you should have `[test] your app name`. Selecting that should lead you to a browser to login your Home Assistant instance, then redirect back to a screen where you can set rooms for your devices or nicknames for your devices.
<p class='note'>
If you've added Home Assistant to the home screen, you have to first remove it from home screen, otherwise, this HTML5 app will show up instead of a browser. Using it would prevent Home Assistant to redirect back to the `Google Assistant` app.
</p>
7. If you want to allow other household users to control the devices:
1. Go to the settings for the project you created in the [Actions on Google console](https://console.actions.google.com/).
2. Click `Test -> Simulator`, then click `Share` icon in the right top corner. Follow the on-screen instruction:
1. Add team members: Got to `Settings -> Permission`, click `Add`, type the new user's e-mail address and choose `Project -> Viewer` role.
2. Copy and share the link with the new user.
3. New user clicks the link with their own Google account, it will enable our draft test app under their account.
3. Have the new user go to their `Google Assistant` app to add `[test] your app name` to their account.
8. If you want to use the `google_assistant.request_sync` service, to update devices without unlinking and relinking, in Home Assistant, then enable Homegraph API for your project:
1. Go to the [Google API Console](https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview).
2. Select your project and click Enable Homegraph API.
3. Go to Credentials, which you can find on the left navigation bar under the key icon, and select API Key from Create Credentials.
4. Note down the generated API Key and use this in the configuration.
## {% linkable_title Configuration %}
To enable this, add the following lines to your `configuration.yaml` file:
Now add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
google_assistant:
project_id: someproject-2d0b8
client_id: [long URL safe random string]
access_token: [a different long URL safe random string]
agent_user_id: [a string to identify user]
api_key: [a Homegraph API Key generated for the Google Actions project]
exposed_domains:
- switch
@ -86,21 +116,9 @@ google_assistant:
{% configuration %}
project_id:
description: Project ID from the Google Developer console (looks like `words-2ab12`)
description: Project ID from the Actions on Google console (looks like `words-2ab12`)
required: true
type: string
client_id:
description: A long random URL safe string (no spaces or special characters) that will be used for Implicit OAuth (example `aBcDeFgHiJkLmNoP`)
required: true
type: string
access_token:
description: Another different long random URL safe string (example `aBcDeFgHiJkLmNoP`)
required: true
type: string
agent_user_id:
description: A string to identify the user, e.g., email address. If not provided, the component will generate one.
required: false
type: string
api_key:
description: Your API key.
required: false
@ -157,27 +175,17 @@ Currently, the following domains are available to be used with Google Assistant,
- media_player (on/off/set volume (via set brightness))
- climate (temperature setting)
It's very important that you use very long strings for `client_id` and `access_token`. Those are essentially the credentials to your Home Assistant instance. You can generate them with the following command:
```bash
$ cat /dev/urandom | fold -w 120 | head -n 1 | base64 -w 0 | tr -dc '0-9A-Za-z' | cut -c -80
```
If you're not using Linux, you can use sites such as [this one](https://www.browserling.com/tools/random-string) to generate a random string (containing mixed case letters and numbers) of up to 80 characters.
## {% linkable_title Troubleshooting %}
### {% linkable_title Troubleshooting the request_sync service %}
The request_sync service requires that the initial sync from Google includes the agent_user_id. If not, the service will log an error that reads something like "Request contains an invalid argument". If this happens, then [unlink the account](https://support.google.com/googlehome/answer/7506443?hl=en-GB) from Home Control and relink.
The request_sync service requires that the initial sync from Google includes the agent_user_id. If not, the service will log an error that reads something like "Request contains an invalid argument". If this happens, then [unlink the account](https://support.google.com/googlehome/answer/7506443) from Home Control and relink.
The request_sync service may fail with a 404 if the project_id of the Homegraph API differs from the project_id of the Actions SDK found in the preferences of your project on [developer console](https://console.actions.google.com). Resolve this by:
The request_sync service may fail with a 404 if the project_id of the Homegraph API differs from the project_id of the Actions SDK found in the preferences of your project on [Actions on Google console](https://console.actions.google.com). Resolve this by:
1. Removing your project from the [developer console](https://console.actions.google.com).
2. Add a new project to the [cloud console](https://console.cloud.google.com). Here you get a new `project_id`.
1. Removing your project from the [Actions on Google console](https://console.actions.google.com).
2. Add a new project to the [Google Cloud API Console](https://console.cloud.google.com). Here you get a new `project_id`.
3. Enable Homegraph API to the new project.
4. Generate a new API key.
5. Again, create a new project in the [developer console](https://console.actions.google.com/). Described above. But at the step 'Build under the Actions SDK box' choose your newly created project. By this, they share the same `project_id`.
5. Again, create a new project in the [Actions on Google console](https://console.actions.google.com/). Described above. But at the step 'Build under the Actions SDK box' choose your newly created project. By this, they share the same `project_id`.
### {% linkable_title Troubleshooting with NGINX %}

View File

@ -36,12 +36,17 @@ The authentication token will be generated and stored internally.
# Example configuration.yaml entry
hangouts:
intents:
HangoutsHelp:
sentences:
- Help
LivingRoomTemperature:
sentences:
- What is the temperature in the living room
conversations:
- id: CONVERSATION_ID1
- id: CONVERSATION_ID2
default_conversations:
- id: CONVERSATION_ID1
error_suppressed_conversations:
- id: CONVERSATION_ID2
@ -72,6 +77,16 @@ intents:
description: "Specifies the id of the conversation. *The conversation id can be obtained from the `hangouts.conversations` entity.*"
required: true
type: string
default_conversations:
description: "A list of conversations that are used for intents if no `conversations` entry for an intent is given."
required: false
type: [map]
default: empty
keys:
id:
description: "Specifies the id of the conversation. *The conversation id can be obtained from the `hangouts.conversations` entity.*"
required: true
type: string
error_suppressed_conversations:
description: "A list of conversations that won't get a message if the intent is not known."
required: false
@ -86,6 +101,8 @@ error_suppressed_conversations:
The conversations has to be precreated, the conversation id can be obtained from the `hangouts.conversations` entity. Make sure to use quotes around the conversation id or alias to escape special characters (`!`, and `#`) in YAML.
The intent `HangoutsHelp` is part of the component and return a list of all sentences the component unterstand in this conversation.
## {% linkable_title Adding sentences %}
```yaml
@ -167,5 +184,5 @@ Sends a message to the given conversations.
|------------------------|----------|--------------------------------------------------|
| target | List of targets with id or name. [Required] | [{"id": "UgxrXzVrARmjx_C6AZx4AaABAagBo-6UCw"}, {"name": "Test Conversation"}] |
| message | List of message segments, only the "text" field is required in every segment. [Required] | [{"text":"test", "is_bold": false, "is_italic": false, "is_strikethrough": false, "is_underline": false, "parse_str": false, "link_target": "http://google.com"}, ...] |
| data | Extra options | {"image_file": "path"} / {"image_url": "url"} |

View File

@ -123,7 +123,7 @@ homekit:
required: true
type: string
type:
description: Only for `switch` entities. Type of accessory to be created within HomeKit. Valid types are `switch` and `outlet`. HomeKit will cache the type on the first run so a device must be removed and then re-added for any change to take effect.
description: Only for `switch` entities. Type of accessory to be created within HomeKit. Valid types are `faucet`, `outlet`, `shower`, `sprinkler`, `switch` and `valve`. HomeKit will cache the type on the first run so a device must be removed and then re-added for any change to take effect.
required: false
type: string
default: '`switch`'

View File

@ -13,7 +13,37 @@ featured: true
ha_iot_class: "Cloud Push"
---
[IFTTT](https://ifttt.com) is a web service that allows users to create chains of simple conditional statements, so called "Applets". With the IFTTT component you can trigger applets through the **"Webhooks"** service (which was previously the **"Maker"** channel). See the [announcement blog post](/blog/2015/09/13/home-assistant-meets-ifttt/) for examples how to use it.
[IFTTT](https://ifttt.com) is a web service that allows users to create chains of simple conditional statements, so-called "Applets". With the IFTTT component, you can trigger applets through the **"Webhooks"** service (which was previously the **"Maker"** channel).
## {% linkable_title Sending events from IFTTT to Home Assistant %}
To be able to receive events from IFTTT, your Home Assistant instance needs to be accessible from the web ([Hass.io instructions](/addons/duckdns/)) and you need to have the `base_url` configured for the HTTP component ([docs](https://www.home-assistant.io/components/http/#base_url)).
To set it up, go to the integrations page in the configuration screen and find IFTTT. Click on configure. Follow the instructions on the screen to configure IFTTT.
Events coming in from IFTTT will be available as events in Home Assistant and are fired as `ifttt_webhook_received`. The data specified in IFTTT will be available as the event data. You can use this event to trigger automations.
For example, set the body of the IFTTT webhook to:
```json
{ "action": "call_service", "service": "light.turn_on", "entity_id": "light.living_room" }
```
You can then consume that information with the following automation:
```yaml
automation:
trigger:
event: ifttt_webhook_received
event_data:
action: call_service
action:
service_template: '{% raw %}{{ trigger.event.data.service }}{% endraw %}'
data_template:
entity_id: '{% raw %}{{ trigger.event.data.entity_id }}{% endraw %}'
```
## {% linkable_title Sending events to IFTTT %}
```yaml
# Example configuration.yaml entry
@ -107,16 +137,6 @@ ifttt_notify:
```
{% endraw %}
### {% linkable_title Sending events from IFTTT to Home Assistant %}
To be able to receive events from IFTTT, your Home Assistant instance needs to be accessible from the web. This can be achieved by forwarding port 8123 from your router to the device running Home Assistant. If your ISP is giving you a new IP address from time to time, consider using [DuckDNS](https://duckdns.org).
In the URL field, you can then put an [API URL](/developers/rest_api/). You probably want to use a POST action, so select `POST` as method. After your request line, you need to add your Home Assistant password, which you defined in the [http section of your config](/getting-started/basic/#password-protecting-the-web-interface), in the form of `?api_password=YOUR_PASSWORD`. For the message body, refer to the API page linked above.
<p class='img'>
<img src='/images/components/ifttt/IFTTT_to_HA.png' />
</p>
### {% linkable_title Additional Channel Examples %}
Additional examples of using IFTTT channels can be found below.

View File

@ -0,0 +1,42 @@
---
layout: page
title: "Opple Light"
description: "Instructions on how to integrate Opple lights into Home Assistant."
date: 2018-09-21 10:40
sidebar: true
comments: false
sharing: true
footer: true
logo: opple.png
ha_category: Light
ha_release: "0.80"
ha_iot_class: "Local Polling"
---
The `opple` light platform allows you to control the state of your Opple smart light.
The platform supports all Opple lights with Wi-Fi support or lights that can be controlled by the App.
To use your Opple light in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
light:
- platform: opple
name: LIGHT_NAME
host: IP_ADDRESS
```
{% configuration %}
name:
description: The name to use when displaying this light.
required: false
type: string
default: opple light
host:
description: "The IP address of your Opple light, eg. `192.168.0.21`."
required: true
type: string
{% endconfiguration %}

View File

@ -99,6 +99,18 @@ action:
- **file_url** (*Required*): File to send with Pushbullet.
### {% linkable_title Single target %}
```yaml
action:
service: notify.NOTIFIER_NAME
data:
title: "Send to one device"
message: "This only goes to one specific device"
target: device/DEVICE_NAME
```
- **target**: Pushbullet device to recive the notification.
<p class='note'>
Don't forget to [whitelist external directories](/docs/configuration/basic/), so Home Assistant has access to them.
</p>

View File

@ -0,0 +1,35 @@
---
layout: page
title: "Tibber"
description: "Instructions on how to integrate Tibber within Home Assistant."
date: 2015-10-04 16:34
sidebar: true
comments: false
sharing: true
footer: true
logo: tibber.png
ha_category: Notifications
ha_release: 0.80
ha_qa_scale: silver
ha_iot_class: "Cloud Polling"
---
The requirement is that you have setup [Tibber component](/components/tibber/).
### {% linkable_title Usage %}
Tibber can send a notification by calling the notify service [as described here](/components/notify/). It will send a notification to all devices registered in the Tibber account.
To use notifications, please see the [getting started with automation page](/getting-started/automation/).
### {% linkable_title Send message %}
```yaml
action:
service: notify.tibber
data:
title: Your title
message: This is a message for you!
```

View File

@ -43,5 +43,7 @@ Configuration variables:
- **recipient** (*Required*): This is the phone number you want to send the SMS notification to.
<p class='note warning'>
Verify that your credentials work on [Yesss.at's website](https://yesss.at). Using the wrong credentials three times in a row will get you blocked for one hour.
Verify that your credentials work on [Yesss.at's website](https://yesss.at). Using the wrong credentials three times in a row will get you suspended for one hour.
Home Assistant will not try to login after the account has been suspended.
Re-check the credentials and restart Home Assistant.
</p>

View File

@ -32,7 +32,17 @@ rachio:
api_key: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
```
Follow the instructions on [Rachio Binary Sensor](/components/binary_sensor.rachio/) or [Rachio Switch](/components/switch.rachio/) to add Rachio platforms.
Configuration variables:
- **api_key** (*Required*): The API key for the Rachio account.
- **manual_run_mins** (*Optional*): For how long, in minutes, to turn on a station when the switch is enabled. Defaults to 10 minutes.
<p class='note'>
**Water-saving suggestion:**<br>
Set `manual_run_mins` to a high maximum failsafe value when using scripts to control zones. If something goes wrong with your script, Home Assistant, or you hit the Rachio API rate limit of 1700 calls per day, the controller will still turn off the zone after this amount of time.
</p>
Once configured, [Rachio Binary Sensor](/components/binary_sensor.rachio/) and [Rachio Switch](/components/switch.rachio/) platforms will be automatically loaded.
### {% linkable_title iFrame %}

View File

@ -0,0 +1,55 @@
---
layout: page
title: "AquaLogic Sensor"
description: "Instructions on how to integrate your AquaLogic devices within Home Assistant."
date: 2018-09-17 9:16
sidebar: true
comments: false
sharing: true
footer: true
logo: hayward.png
ha_category: Sensor
ha_release: "0.80"
ha_iot_class: "Local Push"
---
To get your AquaLogic sensors working within Home Assistant, please follow the instructions for the general [AquaLogic component](/components/aqualogic).
## {% linkable_title Configuration %}
Once you have enabled the [AquaLogic component](/components/aqualogic), add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: aqualogic
monitored_conditions:
- pool_temp
```
{% configuration %}
monitored_conditions:
description: List of items you want to monitor.
required: false
default: all
type: list
keys:
air_temp:
description: The air temperature.
pool_temp:
description: The pool temperature.
spa_temp:
description: The spa temperature.
pool_chlorinator:
description: The pool chlorinator setting.
spa_chlorinator:
description: The spa chlorinator setting.
salt_level:
description: The current salt level.
pump_speed:
description: The current pump speed (Hayward VS pumps only).
pump_power:
description: The current pump power usage (Hayward VS pumps only).
status:
description: The current system status.
{% endconfiguration %}

View File

@ -13,7 +13,7 @@ ha_release: 0.76
ha_iot_class: "Local Polling"
---
A sensor platform for the [Enphase Envoy](https://enphase.com/en-us/products-and-services/envoy) solar energy monitor.
A sensor platform for the [Enphase Envoy](https://enphase.com/en-us/products-and-services/envoy) solar energy gateway. Works with older models that only have production metrics (ie. Envoy-C) and newer models that offer both production and consumption metrics (ie. Envoy-S).
### {% linkable_title Configuration %}
@ -26,24 +26,24 @@ sensor:
```
```yaml
# Example configuration.yaml entry
# Example configuration.yaml entry, limiting the metrics to production only
sensor:
- platform: enphase_envoy
ip_address: LOCAL_IP_FOR_ENVOY
monitored_conditions:
- production
- consumption
- daily_production
- seven_days_production
- lifetime_production
- lifetime_consumption
```
{% configuration %}
ip_address:
description: The local IP Address of your Envoy. Leave blank to search for it, but this may not always be reliable.
description: The local IP address of your Envoy. Leave blank to use the default host name 'envoy', but this may not always be reliable. You should be able to just browse to this IP address.
required: false
type: string
monitored_conditions:
description: The list of conditions to monitor.
description: The list of conditions to monitor. If you have an Envoy that doesn't support consumption metrics (ie. Envoy-C), it's best only configure the production metrics.
required: false
type: list
keys:

View File

@ -0,0 +1,54 @@
---
layout: page
title: "GitLab-CI Sensor"
description: "How to integrate GitLab-CI Job status within Home Assistant."
date: 2018-09-10 19:00
sidebar: true
comments: false
sharing: true
footer: true
logo: gitlab.png
ha_category: Sensor
ha_release: 0.80
ha_iot_class: "Cloud Polling"
---
The GitLab_CI sensor integrates results reported by CI/CD Pipeline Jobs in [GitLab](https://gitlab.com/).
## {% linkable_title Setup %}
You will need a GitLab repository ID. On the "Details" page for your GitLab repo, just below the project name is "Project ID:"
Alternatively, you can use "{GitLab_Username}/{GitLab_RepositoryName}", ex: "MyCoolUsername/MyCoolRepository"
A GitLab token with at least the API permission scope is needed, which can be created on the [GitLab Personal Access Tokens](https://gitlab.com/profile/personal_access_tokens) page of your GitLab User Settings.
## {% linkable_title Configuration %}
To enable this platform, please add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: gitlab_ci
gitlab_id: '1234567'
token: 'aaaaaaaaaaAAAAAAAAAA'
```
{% configuration %}
gitlab_id:
description: GitLab repository ID or "username/repository"
required: true
type: string
token:
description: GitLab API Token
required: true
type: string
name:
description: Sensor name as it appears in Home Assistant. Defaults to 'GitLab CI Status'.
required: false
type: string
url:
description: GitLab repository URL. Defaults to 'https://gitlab.com'. Used for self-hosted repositories.
required: false
type: string
{% endconfiguration %}

View File

@ -19,7 +19,7 @@ The `google_travel_time` sensor provides travel time from the [Google Distance M
You need to register for an API key by following the instructions [here](https://github.com/googlemaps/google-maps-services-python#api-keys). You only need to turn on the Distance Matrix API.
[Google now require billing](https://mapsplatform.googleblog.com/2018/05/introducing-google-maps-platform.html) to be enabled (and a valid credit card loaded) to access Google Maps APIs. The Distance Matrix API is billed at US$10 per 1000 requests, however a US$200 per month credit is applied (20,000 requests). By default, the sensor will update the travel time every 5 minutes, making approximately 288 calls per day. Note that at this rate, more than 2 sensors will likely exceed the free credit amount. If you need to run more than 2 sensors, consider changing the [scan interval](/docs/configuration/platform_options/#scan-interval) to something longer than 5 minutes to stay within the free credit limit.
[Google now requires billing](https://mapsplatform.googleblog.com/2018/05/introducing-google-maps-platform.html) to be enabled (and a valid credit card loaded) to access Google Maps APIs. The Distance Matrix API is billed at US$10 per 1000 requests, however, a US$200 per month credit is applied (20,000 requests). By default, the sensor will update the travel time every 5 minutes, making approximately 288 calls per day. Note that at this rate, more than 2 sensors will likely exceed the free credit amount. If you need to run more than 2 sensors, consider changing the [scan interval](/docs/configuration/platform_options/#scan-interval) to something longer than 5 minutes to stay within the free credit limit or update the sensors on-demand using an automation (see example below).
A quota can be set against the API to avoid exceeding the free credit amount. Set the 'Elements per day' to a limit of 645 or less. Details on how to configure a quota can be found [here](https://developers.google.com/maps/documentation/distance-matrix/usage-and-billing#set-caps)
@ -43,9 +43,9 @@ Configuration variables:
- **destination** (*Required*): One or more locations to use as the finishing point for calculating travel distance and time. The options for the destinations parameter are the same as for the origins parameter, described above.
- **name** (*Optional*): A name to display on the sensor. The default is "Google Travel Time - [Travel Mode]" where [Travel Mode] is the mode set in options for the sensor (see option "mode" below).
- **options** (*Optional*): A dictionary containing parameters to add to all requests to the Distance Matrix API. A full listing of available options can be found [here](https://developers.google.com/maps/documentation/distance-matrix/intro#RequestParameters).
- **mode** (*Optional*): The travel mode used to calculate the directions / time. Can be `driving` (*Default*), `bicycling`, `transit` or `walking`.
- **mode** (*Optional*): The travel mode used to calculate the directions/time. Can be `driving` (*Default*), `bicycling`, `transit` or `walking`.
- **departure_time** (*Optional*): Can be `now`, a Unix timestamp, or a 24 hour time string like `08:00:00`. If you provide a time string, it will be combined with the current date to get travel time for that moment.
- **arrival_time** (*Optional*): See notes above for `departure_time`. `arrival_time` can not be `now`, only a Unix timestamp or time string. You can not provide both `departure_time` and `arrival_time`. If you do provide both, `arrival_time` will be removed from the request.
- **arrival_time** (*Optional*): See notes above for `departure_time`. `arrival_time` cannot be `now`, only a Unix timestamp or time string. You can not provide both `departure_time` and `arrival_time`. If you do provide both, `arrival_time` will be removed from the request.
- **units** (*Optional*): Set the unit for the sensor in metric or imperial, otherwise the default unit the same as the unit set in `unit_system:`.
## {% linkable_title Dynamic Configuration %}
@ -68,7 +68,7 @@ sensor:
api_key: XXXX_XXXXX_XXXXX
origin: zone.home
destination: Eddies House # Friendly name of a zone
# Tracking entity in imperial unit
- platform: google_travel_time
api_key: XXXX_XXXXX_XXXXX
@ -87,5 +87,33 @@ sensor:
- Can also be referenced by just the zone's friendly name found in the attributes.
- **sensor**
- If state is a zone or zone friendly name then will use the zone location
- All other states will be passed directly into the google API
- All other states will be passed directly into the Google API
- This includes all valid locations listed in the *Configuration Variables*
## {% linkable_title Updating sensors on-demand using Automation %}
You can also use the `sensor.google_travel_sensor_update` service to update the sensor on-demand. For example, if you want to update `sensor.morning_commute` every 2 minutes on weekday mornings, you can use the following automation:
```yaml
- id: update_morning_commute_sensor
alias: "Commute - Update morning commute sensor"
initial_state: 'on'
trigger:
- platform: time
minutes: '/2'
seconds: 00
condition:
- condition: time
after: '08:00:00'
before: '11:00:00'
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
action:
- service: sensor.google_travel_sensor_update
entity_id: sensor.morning_commute
```

View File

@ -22,6 +22,7 @@ The way these sensors are displayed in the frontend can be modified in the [cust
- **humidity**: Percentage of humidity in the air.
- **illuminance**: The current light level in lx or lm.
- **temperature**: Temperature in °C or °F.
- **pressure**: Pressure in hPa or mbar.
<p class='img'>
<img src='/images/screenshots/sensor_device_classes_icons.png' />

View File

@ -13,7 +13,14 @@ ha_iot_class: "Cloud Polling"
ha_release: 0.77
---
The `netatmo_public` sensor allows you to expose data from [Netatmo](https://weathermap.netatmo.com/) to Home Assistant, even if you don't have a Netatmo device yourself. Currently, only live rain data is supported.
The `netatmo_public` sensor allows you to expose data from [Netatmo](https://weathermap.netatmo.com/) to Home Assistant, even if you don't have a Netatmo device yourself. Currently the following conditions are supported:
* temperature
* pressure
* humidity
* rain
* windstrength
* guststrength
To enable the Netatmo sensor, you have to set up [netatmo](/components/netatmo/).
@ -30,6 +37,13 @@ sensor:
lon_ne: -73.735
lat_sw: 40.552
lon_sw: -74.105
monitored_conditions:
- temperature
- pressure
- humidity
- rain
- windstrength
- guststrength
```
{% configuration %}
@ -54,14 +68,18 @@ areas:
description: Longitude of south-western corner of area.
required: true
type: string
monitored_conditions:
description: List of environment conditions to monitor.
required: true
type: list
name:
description: Name of the sensor.
required: false
type: string
default: Netatmo Public Data
type:
mode:
description: "How to calculate the value of the sensor if there are multiple stations reporting data. Accepts `max` or `avg`."
required: false
type: string
default: max
default: avg
{% endconfiguration %}

View File

@ -72,6 +72,8 @@ sensor:
description: The rain volume.
snow:
description: The snow volume.
weather_code:
description: The current weather condition code.
{% endconfiguration %}
Details about the API are available in the [OpenWeatherMap documentation](http://openweathermap.org/api).

View File

@ -36,6 +36,7 @@ Configuration variables:
- **authentication** (*Optional*): Type of the HTTP authentication. Either `basic` or `digest`.
- **username** (*Optional*): The username for accessing the website.
- **password** (*Optional*): The password for accessing the website.
- **headers** (*Optional*): Headers to use for the web request
## {% linkable_title Examples %}
@ -130,3 +131,23 @@ sensor:
unit_of_measurement: "öre/kWh"
```
{% endraw %}
### {% linkable_title BOM Weather %}
The Australian Bureau of Meterology website returns an error if the User Agent header is not sent.
{% raw %}
```yaml
# Example configuration.yaml entry
sensor:
- platform: scrape
resource: http://www.bom.gov.au/vic/forecasts/melbourne.shtml
name: Melbourne Forecast Summary
select: ".main .forecast p"
value_template: '{{ value | truncate(255) }}'
# Request every hour
scan_interval: 3600
headers:
User-Agent: Mozilla/5.0
```
{% endraw %}

View File

@ -17,21 +17,8 @@ ha_iot_class: "Cloud Polling"
The `tibber` sensor provides the current electricity price if you are a [Tibber](https://tibber.com/) customer.
If you have a Tibber Pulse it will also show the electricity consumption in real time.
To add Tibber to your installation, add the following to your `configuration.yaml` file:
The requirement is that you have setup [Tibber component](/components/tibber/).
```yaml
# Example configuration.yaml entry
sensor:
- platform: tibber
access_token: d1007ead2dc84a2b82f0de19451c5fb22112f7ae11d19bf2bedb224a003ff74a
```
{% configuration %}
access_token:
description: Go to [developer.tibber.com/](https://developer.tibber.com/) to get your API token.
required: true
type: string
{% endconfiguration %}
## {% linkable_title Examples %}

View File

@ -0,0 +1,58 @@
---
layout: page
title: "AquaLogic Switch"
description: "Instructions on how to integrate your AquaLogic devices within Home Assistant."
date: 2018-09-17 9:16
sidebar: true
comments: false
sharing: true
footer: true
logo: hayward.png
ha_category: Switch
ha_release: "0.80"
ha_iot_class: "Local Push"
---
To get your AquaLogic switches working within Home Assistant, please follow the instructions for the general [AquaLogic component](/components/aqualogic).
## {% linkable_title Configuration %}
Once you have enabled the [AquaLogic component](/components/aqualogic), add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
switch:
- platform: aqualogic
monitored_conditions:
- lights
- filter
```
{% configuration %}
monitored_conditions:
description: List of items you want to monitor/control.
required: false
default: all
type: list
keys:
filter:
description: Controls the filter pump.
filter_low_speed:
description: Controls low speed mode on the filter pump (multi-speed pumps only).
lights:
description: Controls the Lights relay.
aux_1:
description: Controls the Aux 1 relay.
aux_2:
description: Controls the Aux 2 relay.
aux_3:
description: Controls the Aux 3 relay.
aux_4:
description: Controls the Aux 4 relay.
aux_5:
description: Controls the Aux 5 relay.
aux_6:
description: Controls the Aux 6 relay.
aux_7:
description: Controls the Aux 7 relay.
{% endconfiguration %}

View File

@ -15,30 +15,9 @@ ha_release: 0.46
The `rachio` switch platform allows you to toggle zones connected to your [Rachio irrigation system](http://rachio.com/) on and off.
Once configured, a switch will be added for every zone that is enabled on every controller in the account provided, as well as a switch to toggle each controller's standby mode.
Once configured, a switch will be added for every zone that is enabled on every controller in the account provided, as well as a switch to toggle each controller's standby mode.
<p class='note'>
You must have the [Rachio component](/components/rachio/) configured to use this switch.
</p>
## {% linkable_title Configuration %}
To add this platform to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
switch:
- platform: rachio
```
Configuration variables:
- **manual_run_mins** (*Optional*): For how long, in minutes, to turn on a station when the switch is enabled. Defaults to 10 minutes.
<p class='note'>
**Water-saving suggestion:**<br>
Set `manual_run_mins` to a high maximum failsafe value when using scripts to control zones. If something goes wrong with your script, Home Assistant, or you hit the Rachio API rate limit of 1700 calls per day, the controller will still turn off the zone after this amount of time.
</p>
They will be automatically added if the [Rachio component](/components/rachio/) is loaded.
## {% linkable_title Examples %}

View File

@ -0,0 +1,16 @@
---
layout: page
title: "IKEA Trådfri Switch"
description: "Access and control your ZigBee-based IKEA Trådfri (Tradfri) Switches."
date: 2018-09-30 19.22
sidebar: true
comments: false
sharing: true
footer: true
logo: ikea.svg
ha_category: Switch
ha_iot_class: "Local Polling"
ha_release: 0.80
---
For installation instructions, see [the Trådfri component](/components/tradfri/).

View File

@ -0,0 +1,35 @@
---
layout: page
title: "Tibber"
description: "Instructions on how to integrate Tibber within Home Assistant."
date: 2015-10-04 16:34
sidebar: true
comments: false
sharing: true
footer: true
logo: tibber.png
ha_category: Energy
ha_release: 0.80
ha_qa_scale: silver
ha_iot_class: "Cloud Polling"
---
The `tibber` component provides a sensor with the current electricity price if you are a [Tibber](https://tibber.com/) customer.
If you have a Tibber Pulse it will also show the electricity consumption in real time.
It also provides a notification service.
To add Tibber to your installation, add the following to your `configuration.yaml` file:
```yaml
tibber:
access_token: d1007ead2dc84a2b82f0de19451c5fb22112f7ae11d19bf2bedb224a003ff74a
```
{% configuration %}
access_token:
description: Go to [developer.tibber.com/](https://developer.tibber.com/) to get your API token.
required: true
type: string
{% endconfiguration %}

View File

@ -38,10 +38,10 @@ host:
required: true
type: string
allow_tradfri_groups:
description: "Set this to `false` to stop Home Assistant from importing the groups defined on the Trådfri bridge."
description: "Set this to `true` to allow Home Assistant to import the groups defined on the Trådfri bridge."
required: false
type: boolean
default: true
default: false
{% endconfiguration %}

View File

@ -12,7 +12,7 @@ ha_category: Network
ha_release: 0.18
---
The `upnp` component enables you to collect network statistics from your router such as bytes in/out and packets in/out. This information is provided by the Internet Gateway Device (IGD) Protocol if enabled on your router.
The `upnp` component enables you to collect network statistics from your router such as bytes in/out and packets in/out. This information is provided by the [UPnP](https://en.wikipedia.org/wiki/Universal_Plug_and_Play)/[Internet Gateway Device (IGD) Protocol](https://en.wikipedia.org/wiki/Internet_Gateway_Device_Protocol) if enabled on your router.
The IGD automatically creates port forwarding mappings on your router for Home Assistant, exposing your installation to the internet. The mapping will never automatically expire. Upon stopping Home Assistant, the mapping will be removed from your router.
@ -25,16 +25,17 @@ To integrate this into Home Assistant, add the following section to your `config
```yaml
# Example configuration.yaml entry with custom external portal
upnp:
port_mapping: true
ports:
hass: 8000
8080: 8080
```
If you which to have the statistics without having port mapping done through IGD, add the option **port_mapping**.
With the default settings only the sensors are added for statistics. If you wish to have port mapping done through IGD, add the option **port_mapping** and **ports**.
{% configuration binary_sensor.template %}
ports:
description: Map of ports to map from internal to external. Pass 'hass' as internal port to use the port Home Assistant runs on.
description: Map of ports to map from internal to external. Pass 'hass' as internal port to use the port Home Assistant runs on. Note that you have to enable port_mapping if you wish to map ports.
required: false
type: map
default: open same port on external router as that HASS runs locally and forwards it.
@ -43,11 +44,6 @@ If you which to have the statistics without having port mapping done through IGD
required: false
type: boolean
default: false
units:
description: Define the units used for the UPNP sensor. Possible values are Bytes, KBytes, MBytes, GBytes.
required: false
type: string
default: Mbytes
local_ip:
description: The local IP address of the computer running Home Assistant.
required: false

View File

@ -0,0 +1,5 @@
---
date: 2018-10-05 00:01:00
---
<script>location.href = '/docs/automation/trigger/#webhook-trigger';</script>

View File

@ -40,6 +40,7 @@ The `xiaomi_aqara` component allows you to integrate [Xiaomi](http://www.mi.com/
- Gateway (Light, Illumination Sensor, Ringtone play)
- Intelligent Curtain
- Water Leak Sensor
- Vibration Sensor
- Battery
#### {% linkable_title Unsupported Devices %}

View File

@ -126,6 +126,15 @@ The following tables show the available trigger data per platform.
| `trigger.platform` | Hardcoded: `time`
| `trigger.now` | DateTime object that triggered the time trigger.
### {% linkable_title webhook %}
| Template variable | Data |
| ---- | ---- |
| `trigger.platform` | Hardcoded: `webhook`
| `trigger.webhook_id` | The webhook ID that was triggered.
| `trigger.json` | The JSON data of the request (if it had a JSON content type).
| `trigger.data` | The form data of the request (if it had a form data content type).
### {% linkable_title zone %}
| Template variable | Data |

View File

@ -125,7 +125,7 @@ automation:
offset: '-00:45:00'
```
Sometimes you may want more granular control over an automation based on the elevation of the sun. This can be used to layer automations to occur as the sun lowers on the horizon or even after it is below the horizon. This is also useful when the "sunset" event is not dark enough outside and you would like the automation to run later at a precise solar angle instead of the time offset such as turning on exterior lighting.
Sometimes you may want more granular control over an automation based on the elevation of the sun. This can be used to layer automations to occur as the sun lowers on the horizon or even after it is below the horizon. This is also useful when the "sunset" event is not dark enough outside and you would like the automation to run later at a precise solar angle instead of the time offset such as turning on exterior lighting.
{% raw %}
```yaml
@ -190,9 +190,20 @@ automation 3:
seconds: 00
```
<p class='note warning'>
Remember that if you are using matching to include both `minutes` and `seconds`. Without `seconds`, your automation will trigger 60 times during the matching minute.
Remember that if you are using matching to include both `minutes` and `seconds`. Without `seconds`, your automation will trigger 60 times during the matching minute.
</p>
### {% linkable_title Webhook trigger %}
Webhook triggers are triggered by web requests made to the webhook endpoint: `/api/webhook/<webhook_id>`. This endpoint does not require authentication besides knowing the webhook id. You can either send encoded form or JSON data, available in the template as either `trigger.json` or `trigger.data`.
```yaml
automation:
trigger:
platform: webhook
webhook_id:
```
### {% linkable_title Zone trigger %}
Zone triggers can trigger when an entity is entering or leaving the zone. For zone automation to work, you need to have setup a device tracker platform that supports reporting GPS coordinates. This includes [GPS Logger](/components/device_tracker.gpslogger/), the [OwnTracks platform](/components/device_tracker.owntracks/) and the [iCloud platform](/components/device_tracker.icloud/).

View File

@ -92,6 +92,8 @@ Home Assistant adds extensions to allow templates to access all of the current s
- Filter `regex_search(string, find, ignorecase=FALSE)` will match the find expression anywhere in the string using regex.
- Filter `regex_replace(string, find='', replace='', ignorecase=False)` will replace the find expression with the replace string using regex.
- Filter `regex_findall_index(string, find='', index=0, ignorecase=False)` will find all regex matches of find in string and return the match at index (findall returns an array of matches).
- Filter `bitwise_and(value_one, value_two)` perform a bitwise and(&) operation with two values.
- Filter `bitwise_or(value_one, value_two)` perform a bitwise or(\|) operation with two values.
[strp-format]: https://docs.python.org/3.6/library/datetime.html#strftime-and-strptime-behavior

View File

@ -385,3 +385,127 @@ Button three release|Circle|3|1
Button four tap|Circle with Line|4|0
Button four hold|Circle with Line|4|2
Button four release|Circle with Line|4|1
### {% linkable_title RFWDC Cooper 5-button Scene Control Keypad %}
For the RFWDC Cooper 5-button Scene Control Keypad, you may need to update the `COMMAND_CLASS_CENTRAL_SCENE` for each node in your `zwcfg` file with the following:
```xml
<CommandClass id="91" name="COMMAND_CLASS_CENTRAL_SCENE" version="1" request_flags="5" innif="true" scenecount="0">
<Instance index="1" />
<Value type="int" genre="system" instance="1" index="0" label="Scene Count" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
<Value type="int" genre="system" instance="1" index="1" label="Button One" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
<Value type="int" genre="system" instance="1" index="2" label="Button Two" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
<Value type="int" genre="system" instance="1" index="3" label="Button Three" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
<Value type="int" genre="system" instance="1" index="4" label="Button Four" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
<Value type="int" genre="system" instance="1" index="5" label="Button Five" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
</CommandClass>
```
Below is a table of the action/scenes for the Buttons:
**Action**|**scene\_id**
:-----:|:-----:
Button one tap|1
Button two tap|2
Button three tap|3
Button four tap|4
Button five tap|5
When a button turns off, the controller sends `basic_set` in a generic `node_event` and does not specify which button was pressed. The status of the buttons is encoded into the `indicator` value, so in order to determine the status of each button, you need to refresh the indicator value. You can also control the LEDs for each button by setting the indicator value. For responsiveness, automations should be triggered with `zwave.scene_activated` events rather than the switch status.
Here is an example configuration needed for the scene controller:
{% raw %}
```yaml
automation:
- alias: Sync the indicator value on button events
trigger:
- platform: event
event_type: zwave.scene_activated
event_data:
entity_id: zwave.scene_contrl
- platform: event
event_type: zwave.node_event
event_data:
entity_id: zwave.scene_contrl
action:
- service: zwave.refresh_node_value
data_template:
node_id: 3
value_id: "{{ state_attr('sensor.scene_contrl_indicator','value_id') }}"
switch:
- platform: template
switches:
button_1_led:
value_template: "{{ states('sensor.scene_contrl_indicator')|int|bitwise_and(1) > 0 }}"
turn_on:
service: zwave.set_node_value
data_template:
node_id: 3
value_id: "{{ state_attr('sensor.scene_contrl_indicator','value_id') }}"
value: "{{ states('sensor.scene_contrl_indicator')|int + 1 }}"
turn_off:
service: zwave.set_node_value
data_template:
node_id: 3
value_id: "{{ state_attr('sensor.scene_contrl_indicator','value_id') }}"
value: "{{ states('sensor.scene_contrl_indicator')|int - 1 }}"
button_2_led:
value_template: "{{ states('sensor.scene_contrl_indicator')|int|bitwise_and(2) > 0 }}"
turn_on:
service: zwave.set_node_value
data_template:
node_id: 3
value_id: "{{ state_attr('sensor.scene_contrl_indicator','value_id') }}"
value: "{{ states('sensor.scene_contrl_indicator')|int + 2 }}"
turn_off:
service: zwave.set_node_value
data_template:
node_id: 3
value_id: "{{ state_attr('sensor.scene_contrl_indicator','value_id') }}"
value: "{{ states('sensor.scene_contrl_indicator')|int - 2 }}"
button_3_led:
value_template: "{{ states('sensor.scene_contrl_indicator')|int|bitwise_and(4) > 0 }}"
turn_on:
service: zwave.set_node_value
data_template:
node_id: 3
value_id: "{{ state_attr('sensor.scene_contrl_indicator','value_id') }}"
value: "{{ states('sensor.scene_contrl_indicator')|int + 4 }}"
turn_off:
service: zwave.set_node_value
data_template:
node_id: 3
value_id: "{{ state_attr('sensor.scene_contrl_indicator','value_id') }}"
value: "{{ states('sensor.scene_contrl_indicator')|int - 4 }}"
button_4_led:
value_template: "{{ states('sensor.scene_contrl_indicator')|int|bitwise_and(8) > 0 }}"
turn_on:
service: zwave.set_node_value
data_template:
node_id: 3
value_id: "{{ state_attr('sensor.scene_contrl_indicator','value_id') }}"
value: "{{ states(scene_contrl_indicator)|int + 8 }}"
turn_off:
service: zwave.set_node_value
data_template:
node_id: 3
value_id: "{{ state_attr('sensor.scene_contrl_indicator','value_id') }}"
value: "{{ states('sensor.scene_contrl_indicator')|int - 8 }}"
button_5_led:
value_template: "{{ states('sensor.scene_contrl_indicator')|int|bitwise_and(16) > 0 }}"
turn_on:
service: zwave.set_node_value
data_template:
node_id: 3
value_id: "{{ state_attr('sensor.scene_contrl_indicator','value_id') }}"
value: "{{ states('sensor.scene_contrl_indicator')|int + 16 }}"
turn_off:
service: zwave.set_node_value
data_template:
node_id: 3
value_id: "{{ state_attr('sensor.scene_contrl_indicator','value_id') }}"
value: "{{ states('sensor.scene_contrl_indicator')|int - 16 }}"
```
{% endraw %}

View File

@ -20,6 +20,17 @@ Home Assistant will trigger an event when the Z-Wave network is complete, meanin
event_type: zwave.network_complete
```
## {% linkable_title zwave.network_complete_some_dead %}
Home Assistant will trigger an event when the Z-Wave network is complete, but some nodes are marked dead, meaning all of the nodes on the network have been queried. This can take quite some time, depending on wakeup intervals on the battery-powered devices on the network.
```yaml
- alias: Z-Wave network is complete some dead
trigger:
platform: event
event_type: zwave.network_complete_some_dead
```
## {% linkable_title zwave.network_ready %}
Home Assistant will trigger an event when the Z-Wave network is ready for use. Between `zwave.network_start` and `zwave.network_ready` Home Assistant will feel sluggish when trying to send commands to Z-Wave nodes. This is because the controller is requesting information from all of the nodes on the network. When this is triggered, all awake nodes have been queried and sleeping nodes will be queried when they awake.

View File

@ -23,6 +23,7 @@ The `zwave` component exposes multiple services to help maintain the network. Al
| print_node | Print all states of Z-Wave node. |
| refresh_entity | Refresh the Z-Wave entity by refreshing dependent values. |
| refresh_node | Refresh the Z-Wave node. |
| refresh_node_value | Refresh the specified value of a Z-Wave node. |
| remove_node | Put the Z-Wave controller in exclusion mode. Allows you to remove a device from the Z-Wave network. |
| rename_node | Sets a node's name. Requires a `node_id` and `name` field. |
| rename_value | Sets a value's name. Requires a `node_id`, `value_id`, and `name` field. |
@ -30,6 +31,7 @@ The `zwave` component exposes multiple services to help maintain the network. Al
| replace_failed_node | Replace a failed device with another. If the node is not in the controller's Failed Node List, or the node responds, this command will fail. |
| reset_node_meters | Reset a node's meter values. Only works if the node supports this. |
| set_config_parameter | Lets the user set a config parameter to a node. NOTE: Use the parameter option's `label` string as the `value` for list parameters (e.g., `"value": "Off"`). For all other parameters use the relevant integer `value` (e.g., `"value": 1`). |
| set_node_value | Set the specified value of a Z-Wave node. |
| soft_reset | Tells the controller to do a "soft reset." This is not supposed to lose any data, but different controllers can behave differently to a "soft reset" command. |
| start_network | Starts the Z-Wave network. |
| stop_network | Stops the Z-Wave network. |

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

@ -45,6 +45,10 @@ column_width:
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."
type: string
{% endconfiguration %}
## {% linkable_title Options For Entities %}

View File

@ -0,0 +1,79 @@
---
layout: page
title: "Sensor Card"
sidebar_label: Sensor
description: "The sensor card gives you information about the sensor state"
date: 2018-10-07 10:28 +00:00
sidebar: true
comments: false
sharing: true
footer: true
---
The sensor card gives you a quick overview of your sensors state with an optional graph to visualize change over time.
<p class='img'>
<img src='/images/lovelace/lovelace_sensor.png' alt='Screenshot of the sensor card'>
Screenshot of the sensor card.
</p>
{% configuration %}
type:
required: true
description: sensor
type: string
entity:
required: true
description: Entity id of `sensor` domain
type: string
icon:
required: false
description: The card icon
type: string
name:
required: false
description: The card name
type: string
graph:
required: false
description: Type of graph `none` or `line`
type: string
unit:
required: false
description: The unit of measurement
type: string
height:
required: false
description: Height of the graph
type: integer
default: 100
line_width:
required: false
description: Width of the line stroke
type: integer
default: 5
line_color:
required: false
description: Color of the line stroke
type: string
accuracy:
required: false
description: Amount of data points on the graph
type: integer
default: 10
hours_to_show:
required: false
description: Hours to show in graph
type: integer
default: 24
{% endconfiguration %}
## {% linkable_title Example %}
```yaml
- type: sensor
entity: sensor.illumination
name: Illumination
height: 75
line_color: "#3498db"
```

View File

@ -0,0 +1,668 @@
---
layout: post
title: "0.80: Lovelace updates, webhooks, TRÅDFRI switches"
description: "Hacktoberfest is in full swing and we got a whole boat of new features."
date: 2018-10-12 00:01:00
date_formatted: "October 12, 2018"
author: Paulus Schoutsen
author_twitter: balloob
comments: true
categories: Release-Notes
og_image: /images/blog/2018-10-release-80/lovelace-glance-sensor.png
---
October 12, 2018. 12 days into Hacktoberfest and it's been busier than ever on the repositories. On the main repo, 43 open, 104 closed. How the documentation team is still alive, I don't know: 26 open, 234 closed. If you've opened a contribution that is pending a response, that's probably because we're busy elsewhere or are taking some well deserved rest.
Alright, new release, we got some cool stuff! Let's start with our [Lovelace UI](/lovelace). We have integrated into Lovelace UI some of the custom cards that our amazing community have built, making them easily accessible to all users. The cards are [Gauge][ll-gauge] and [Sensor][ll-sensor]:
[ll-gauge]: /lovelace/gauge/
[ll-sensor]: /lovelace/sensor/
<img src='/images/blog/2018-10-release-80/lovelace-glance-sensor.png' alt='Screenshot of new Gauge and Sensor cards' style='border: 0;box-shadow: none;'>
Next up is a new way to get data into Home Assistant: webhooks. With the introduction of auth and with the introduction of long-lived access tokens, we realized that it's still annoying to have to give full HA access to an app just to get a piece of information in Home Assistant. So with webhooks we can generate unique URLs that are inprobable to guess, and data delivered to the webhook will only go to the designated automation or component. This feature is available for component developers to integrate, or for users via the new automation [webhook trigger](/docs/automation/trigger/#webhook-trigger).
<p class='img'>
<img src='/images/blog/2018-10-release-80/config-ifttt.png' alt='Screenshot of configuring IFTTT'>
Configuring IFTTT via th integrations panel.
</p>
On the devices side, we got basic support for the new IKEA TRÅDFRI switches, Honeywell evohome controllers (EU-based) and if you want to control your pool, you can now do that with the new AquaLogic integration.
## {% linkable_title New Platforms %}
- GitLab-CI sensor integration addition. ([@DanielWinks] - [#16561]) ([sensor.gitlab_ci docs]) (new-platform)
- Add support for Opple light ([@jedmeng] - [#16765]) ([light.opple docs]) (new-platform)
- Add (EU-based) Honeywell evohome CH/DHW controller ([@zxdavb] - [#16427]) ([evohome docs]) ([climate.evohome docs]) ([climate.honeywell docs]) (new-platform)
- Add webhook + IFTTT example ([@balloob] - [#16817]) ([ifttt docs]) ([webhook docs]) (new-platform)
- Add basic support for Tradfri switches ([@ggravlingen] - [#17007]) ([tradfri docs]) ([switch.tradfri docs]) (new-platform)
- Add AquaLogic component ([@swilson] - [#16763]) ([aqualogic docs]) ([sensor.aqualogic docs]) ([switch.aqualogic docs]) (new-platform)
- Overhaul of Blink platform ([@fronzbot] - [#16942]) ([blink docs]) ([alarm_control_panel.blink docs]) ([binary_sensor.blink docs]) ([camera.blink docs]) ([sensor.blink docs]) (breaking change) (new-platform)
- Tibber component and notify ([@Danielhiversen] - [#17062]) ([notify docs]) ([tibber docs]) ([sensor.tibber docs]) (breaking change) (new-platform)
- Add new component fritzbox binary_sensor ([@hthiery] - [#17057]) ([fritzbox docs]) ([binary_sensor.fritzbox docs]) (new-platform)
- Add a webhook automation trigger ([@balloob] - [#17246]) ([automation.webhook docs]) (beta fix) (new-platform)
## {% linkable_title New Features %}
- Add faucet, shower, sprinkler, valve to HomeKit ([@cdce8p] - [#17145]) ([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 %}
- Add additional Netatmo public data sensors ([@GP8x] - [#16671]) ([netatmo docs]) ([sensor.netatmo_public docs]) (breaking change)
- Developers only: we have removed all service helpers (like turn_on method in light coponent), as they werent used. ([@cdce8p] - [#16832], [#16879], [#16863], [#16892], [#16920], [#17038], [#17055], [#16917])
- Google Assistant: configuration has been simplified and relies on HA native OAuth2 flow ([@awarecan] - [#16848]) ([google_assistant docs]) (breaking change)
- Rachio component has been modernized. The Rachio component no longer requires you to specify switch and binary_sensor platforms. These platforms will be initialized automatically by the Rachio component. ([@OverloadUT] - [#16911]) ([rachio docs]) ([binary_sensor.rachio docs]) ([switch.rachio docs]) (breaking change)<br><br>For the end user, this means:
- Remove switch and binary_sensor entries with platform: rachio
- If you configured manual_run_mins on the switch platform, move that parameter to the rachio: component configuration.
- Overhaul of Blink platform ([@fronzbot] - [#16942]) ([blink docs]) ([alarm_control_panel.blink docs]) ([binary_sensor.blink docs]) ([camera.blink docs]) ([sensor.blink docs]) (breaking change) (new-platform)
- No more notification sensor, since the Blink API no longer supports it
- motion can now be detected either with the blink sensor
`binary_sensor.blink_nameofcamera_motion_detected` or through a camera's attributes with the `motion_detected` key.
- `blink.snap_picture` service has been renamed to `blink.trigger_camera`
- Camera names now prefaced with `blink`, ie. `camera.blink_nameofcamera`
- Tibber has moved from sensor configuration to component configuration ([@Danielhiversen] - [#17062]) ([notify docs]) ([tibber docs]) ([sensor.tibber docs]) (breaking change) (new-platform)
- A manually configured Hue component will no longer run a discovery. Set up via config entry if you want to rely on discovery. ([@balloob] - [#17070]) ([hue docs]) (breaking change)
## {% linkable_title Beta Fixes %}
- Fix incorrect yaml in hangouts ([@balloob] - [#17169]) (beta fix)
- Fix data used for logbook ([@balloob] - [#17172]) ([logbook docs]) (beta fix)
- Fix device_tracker service call & cleanup ([@cdce8p] - [#17173]) ([alert docs]) ([device_sun_light_trigger docs]) ([device_tracker docs]) ([notify docs]) ([switch.flux docs]) (beta fix)
- Bugfix switch flux - light service call ([@cdce8p] - [#17187]) ([switch.flux docs]) (beta fix)
- Upgrade aiolifx_effects to 0.2.1 ([@amelchio] - [#17188]) ([light.lifx docs]) (beta fix)
- Verisure standard config for scan interval ([@persandstrom] - [#17192]) ([verisure docs]) (beta fix)
- Init sub-components using global var. ([@mbrrg] - [#17220]) ([spc docs]) ([alarm_control_panel.spc docs]) ([binary_sensor.spc docs]) (beta fix)
- Prevent accidental device reg override ([@balloob] - [#17136]) (beta fix)
- MyQ cover return unknown state if not available ([@schmittx] - [#17207]) ([cover.myq docs]) (beta fix)
- Fix potential MQTT discovery race condition ([@OttoWinter] - [#17208]) ([mqtt docs]) (beta fix)
- Fix SPC ([@balloob] - [#17236]) ([spc docs]) ([alarm_control_panel.spc docs]) ([binary_sensor.spc docs]) (beta fix)
- Guard for bad device info ([@balloob] - [#17238]) (beta fix)
- updated georss-client library to 0.3 ([@exxamalte] - [#17239]) ([sensor.geo_rss_events docs]) (beta fix)
- Add a webhook automation trigger ([@balloob] - [#17246]) ([automation.webhook docs]) (beta fix) (new-platform)
- block external IP ([@balloob] - [#17248]) ([emulated_hue docs]) (beta fix)
- Fix ambient light state of the Philips Eyecare Lamp (Closes: #16269) ([@syssi] - [#17259]) ([light.xiaomi_miio docs]) (beta fix)
- Add defaults, fixing #17229 ([@StevenLooman] - [#17261]) ([upnp docs]) (beta fix)
- Remove warning on script delay ([@amelchio] - [#17264]) (beta fix)
- Hassio auth ([@pvizeli] - [#17274]) ([hassio docs]) (beta fix) (new-platform)
- Fix hassio discovery ([@pvizeli] - [#17275]) ([hassio docs]) (beta fix)
- fixed 'on_startup() takes 0 positional arguments but 1 was given' ([@PaulAnnekov] - [#17295]) ([sensor.miflora docs]) (beta fix)
- Logbook: filter by entity and period ([@Anonym-tsk] - [#17095]) ([logbook docs]) (beta fix)
- Fix samsung bug ([@arsaboo] - [#17285]) ([media_player.samsungtv docs]) (beta fix)
- Allow tradfri groups for new imported entries ([@MartinHjelmare] - [#17310]) ([tradfri docs]) (beta fix)
- Fix auth for hass.io ([@pvizeli] - [#17318]) ([hassio docs]) (beta fix)
- Hass.io auth/sso part2 ([@pvizeli] - [#17324]) ([hassio docs]) (beta fix) (new-platform)
## {% linkable_title All changes %}
- Add mode (daily/hourly) to darksky ([@randellhodges] - [#16719]) ([weather docs]) ([weather.darksky docs]) ([weather.openweathermap docs])
- Extract lovelace to it's own component ([@balloob] - [#16816]) ([frontend docs]) ([lovelace docs])
- Remove discovered MQTT alarm_control_panel device when discovery topic is cleared ([@emontnemery] - [#16825]) ([alarm_control_panel.mqtt docs])
- Remove discovered MQTT light device when discovery topic is cleared ([@emontnemery] - [#16824]) ([light.mqtt docs])
- Add unique_id to homematic_cloud ([@sander76] - [#16828]) ([homematicip_cloud docs])
- Don't create entity registry in tests ([@balloob] - [#16838])
- Add additional Netatmo public data sensors ([@GP8x] - [#16671]) ([netatmo docs]) ([sensor.netatmo_public docs]) (breaking change)
- GitLab-CI sensor integration addition. ([@DanielWinks] - [#16561]) ([sensor.gitlab_ci docs]) (new-platform)
- Config entry update data ([@balloob] - [#16843])
- Fix MQTT leaving files behind ([@balloob] - [#16840])
- change unknown to None in Netatmo public ([@Danielhiversen] - [#16845]) ([sensor.netatmo_public docs])
- Remove discovered MQTT binary_sensor device when discovery topic is cleared ([@emontnemery] - [#16826]) ([binary_sensor.mqtt docs])
- On removal, only unload config entry if loaded ([@balloob] - [#16844])
- Add image support to hangouts notifications ([@quazzie] - [#16560]) ([hangouts docs])
- Remove discovered MQTT climate device when discovery topic is cleared ([@emontnemery] - [#16856]) ([climate.mqtt docs])
- Fix files left behind ([@balloob] - [#16855])
- Move MQTT discovery removal tests to platform test files ([@emontnemery] - [#16861])
- Remove discovered MQTT sensor device when discovery topic is cleared ([@emontnemery] - [#16860]) ([sensor.mqtt docs])
- Remove discovered MQTT lock device when discovery topic is cleared ([@emontnemery] - [#16859]) ([lock.mqtt docs])
- Remove discovered MQTT fan device when discovery topic is cleared ([@emontnemery] - [#16858]) ([fan.mqtt docs])
- Remove discovered MQTT cover device when discovery topic is cleared ([@emontnemery] - [#16857]) ([cover.mqtt docs])
- Add executor job ([@balloob] - [#16853]) ([lovelace docs])
- Fail if dirty ([@balloob] - [#16839])
- Add support for Opple light ([@jedmeng] - [#16765]) ([light.opple docs]) (new-platform)
- Update cover tests ([@cdce8p] - [#16832]) ([cover docs]) (breaking change)
- Add missing __init__ test files ([@cdce8p] - [#16871])
- Tibber realtime consumption, Tibber pulse ([@Danielhiversen] - [#16870]) ([sensor.tibber docs])
- Upgrade to bimmer_connected 0.5.3 ([@gerard33] - [#16877]) ([bmw_connected_drive docs]) ([binary_sensor.bmw_connected_drive docs])
- aiohttp.ClientSession gets proxy information from HTTP_PROXY/HTTPS_PROXY ([@siom79] - [#16874])
- Remove service helper (3) ([@cdce8p] - [#16879]) ([duckdns docs]) ([google_assistant docs]) ([group docs]) ([homematic docs]) ([image_processing docs]) ([input_boolean docs]) ([input_number docs]) ([input_select docs]) ([input_text docs]) (breaking change)
- Fix fan_init test ([@cdce8p] - [#16865])
- Use HA native OAuth2 flow for google assistant components ([@awarecan] - [#16848]) ([google_assistant docs]) (breaking change)
- Remove service helper (2) ([@cdce8p] - [#16863]) ([alarm_control_panel docs]) ([automation docs]) ([camera docs]) ([climate docs]) ([counter docs]) ([fan docs]) (breaking change)
- Revert incorrect check ([@balloob] - [#16883]) ([media_player.soundtouch docs])
- Added support for private storage. ([@nickovs] - [#16878])
- Fix example for long-lived access token WS API ([@awarecan] - [#16882]) ([auth docs])
- Add bitwise operations as template helpers ([@blakeblackshear] - [#16833])
- Telegram_bot polling support proxy_url and proxy_params (Fix #15746) ([@Anonym-tsk] - [#16740]) ([telegram_bot docs])
- Update language strings ([@cgtobi] - [#16884]) ([auth docs])
- Don't pass use_env=True ([@balloob] - [#16896])
- Revert file mode write_json ([@balloob] - [#16897])
- Remove service helper (4) ([@cdce8p] - [#16892]) ([lock docs]) ([media_player docs]) ([notify docs]) ([remote docs]) ([scene docs]) ([timer docs]) ([vacuum docs]) (breaking change)
- Remove unused legacy test helper methods ([@cdce8p] - [#16893])
- Remove unused import ([@amelchio] - [#16909])
- Upgrade aiolifx_effects to 0.2.0 ([@amelchio] - [#16900]) ([light.lifx docs])
- Upgrade pysonos to 0.0.3 ([@amelchio] - [#16901]) ([sonos docs]) ([media_player.sonos docs])
- Ignore Xiaomi hub callbacks during setup ([@amelchio] - [#16910]) ([xiaomi_aqara docs])
- Update new values coming in for dev registry ([@balloob] - [#16852])
- MQTT Light - Do not throw if property is missing from templated MQTT message ([@emontnemery] - [#16720]) ([light.mqtt docs])
- Add new services for set/refresh Z-Wave device values ([@blakeblackshear] - [#16638]) ([zwave docs])
- Add (EU-based) Honeywell evohome CH/DHW controller ([@zxdavb] - [#16427]) ([evohome docs]) ([climate.evohome docs]) ([climate.honeywell docs]) (new-platform)
- Make MQTT platforms config entries ([@OttoWinter] - [#16904]) ([mqtt docs]) ([sensor.mqtt docs])
- Fix auth redirect ([@balloob] - [#16914]) ([frontend docs])
- Fix MQTT Config Entry Discovery ([@OttoWinter] - [#16919]) ([mqtt docs])
- Remove service helper (5) ([@cdce8p] - [#16917]) ([config docs]) ([device_sun_light_trigger docs]) ([light docs]) ([script docs]) ([switch docs]) ([switch.flux docs]) (breaking change)
- Remove service helper (6) ([@cdce8p] - [#16920]) ([automation docs]) ([config docs]) ([device_tracker docs]) ([group docs]) (breaking change)
- Rachio component modernization ([@OverloadUT] - [#16911]) ([rachio docs]) ([binary_sensor.rachio docs]) ([switch.rachio docs]) (breaking change)
- Remove discovered mqtt_json light entity when discovery is cleared ([@OttoWinter] - [#16906]) ([light.mqtt_json docs])
- Fix race between script delay and turn_off ([@amelchio] - [#16923])
- Move more MQTT platforms to config entries ([@OttoWinter] - [#16918]) ([mqtt docs]) ([alarm_control_panel.mqtt docs]) ([binary_sensor.mqtt docs]) ([camera.mqtt docs]) ([climate.mqtt docs]) ([cover.mqtt docs]) ([light.mqtt docs]) ([switch.mqtt docs])
- Add zwave.network_complete_some_dead event ([@janvanhelvoort] - [#16894]) ([zwave docs])
- Convert fan component to config entry ([@OttoWinter] - [#16951]) ([fan docs])
- Add unique_id to MQTT cover ([@OttoWinter] - [#16950]) ([cover.mqtt docs])
- Add unique_id to MQTT fan ([@OttoWinter] - [#16949]) ([fan.mqtt docs])
- Add pressure sensor device class ([@OttoWinter] - [#16965]) ([sensor docs]) ([sensor.xiaomi_aqara docs])
- Upgrade pytest to 3.8.1 ([@scop] - [#16980])
- Add webhook + IFTTT example ([@balloob] - [#16817]) ([ifttt docs]) ([webhook docs]) (new-platform)
- Google Maps supports battery level and charging. ([@htotoo] - [#16969]) ([device_tracker docs])
- Add basic support for Tradfri switches ([@ggravlingen] - [#17007]) ([tradfri docs]) ([switch.tradfri docs]) (new-platform)
- Homematic cloud device update fix ([@sander76] - [#17001]) ([homematicip_cloud docs])
- Async syntax 1, alarm_control_panel & automation & binary_sensor ([@cdce8p] - [#17015])
- Async syntax 2, camera & climate & config ([@cdce8p] - [#17016])
- Update Z-Wave service descriptions to point to proper log file ([@cgarwood] - [#17024])
- Async syntax 8/8 ([@cdce8p] - [#17022])
- Async syntax 7, switch & tts & vacuum ([@cdce8p] - [#17021])
- Async syntax 6, sensor ([@cdce8p] - [#17020])
- Async syntax 5, light & lock & remote & scene & telegram & helpers ([@cdce8p] - [#17019])
- Async syntax 4/8 ([@cdce8p] - [#17018])
- Async syntax 3/8 ([@cdce8p] - [#17017])
- Fix MQTT discovery ([@OttoWinter] - [#17004]) ([mqtt docs])
- Upgrade huawei-lte-api to 1.0.16 ([@scop] - [#16972]) ([huawei_lte docs])
- Upgrade locationsharinglib to 3.0.3 ([@fabaff] - [#17010]) ([device_tracker docs])
- Break up websocket component ([@balloob] - [#17003]) ([camera docs]) ([config docs]) ([media_player docs]) ([websocket_api docs])
- :hammer: update errors ([@timmo001] - [#17029]) ([switch.rest docs])
- Add new device attributes to fritzbox climate ([@hthiery] - [#17027]) ([fritzbox docs]) ([climate.fritzbox docs])
- Bump Enphase_Envoy dependency for older models ([@DavidDeSloovere] - [#17032]) ([sensor.enphase_envoy docs])
- Add Hass.io discovery to MQTT ([@balloob] - [#16962]) ([mqtt docs])
- Update coverage to exclude not tested file ([@cdce8p] - [#17039])
- Send headers with REST switch GET request ([@andersonshatch] - [#17036]) ([switch.rest docs])
- Async syntax ([@cdce8p] - [#17033]) ([alert docs]) ([binary_sensor.ffmpeg_motion docs]) ([binary_sensor.ffmpeg_noise docs]) ([sensor.mqtt_room docs])
- Break up websocket 2 ([@balloob] - [#17028])
- Logbook context ([@balloob] - [#16937]) ([logbook docs])
- Remove error logging when Sonos shuffle_set is not available ([@amelchio] - [#16921]) ([media_player.sonos docs])
- Fix long update 'load_power' and 'in_use' for Xiaomi Zegbee Plug ([@Anonym-tsk] - [#16915]) ([switch.xiaomi_aqara docs])
- Mind the unit system (fixes #16819) ([@fabaff] - [#16823]) ([weather.openweathermap docs])
- Suppress urllib3 header parsing error ([@cgarwood] - [#17042]) ([camera.mjpeg docs])
- Support code 7 ([@SNoof85] - [#17047]) ([vacuum.xiaomi_miio docs])
- Update pyhomematic to 0.1.50 ([@danielperna84] - [#17048]) ([homematic docs])
- Remove alert service helper ([@cdce8p] - [#17038]) ([alert docs]) (breaking change)
- Add AquaLogic component ([@swilson] - [#16763]) ([aqualogic docs]) ([sensor.aqualogic docs]) ([switch.aqualogic docs]) (new-platform)
- Update pynetgear to 0.4.2 (fix #14752) ([@MatMaul] - [#17064]) ([device_tracker docs])
- Added working support for private storage ([@nickovs] - [#16903])
- GeoRSS events sensor refactored ([@exxamalte] - [#16939]) ([sensor.geo_rss_events docs])
- Remove service helper (8) ([@cdce8p] - [#17055]) ([config docs]) ([ffmpeg docs]) ([keyboard docs]) ([logger docs]) ([microsoft_face docs]) (breaking change)
- MJPEG Camera Log Filter Fixes ([@cgarwood] - [#17050]) ([camera.mjpeg docs])
- OpenUV: Fixed issue with missing protection window data ([@bachya] - [#17051]) ([openuv docs]) ([binary_sensor.openuv docs])
- async_create_task ([@cdce8p] - [#17059])
- De-syncing binary_sensor.ping ([@thomasloven] - [#17056]) ([binary_sensor.ping docs])
- Add logging to light updates ([@balloob] - [#17069]) ([light.hue docs])
- Catch possible errors from tradfri ([@balloob] - [#17068]) ([tradfri docs])
- Allow no movement in vamera.onvif_ptz service ([@thomasloven] - [#17065]) ([camera.onvif docs])
- Upgrade youtube_dl to 2018.09.26 ([@fabaff] - [#17079]) ([media_extractor docs])
- Overhaul of Blink platform ([@fronzbot] - [#16942]) ([blink docs]) ([alarm_control_panel.blink docs]) ([binary_sensor.blink docs]) ([camera.blink docs]) ([sensor.blink docs]) (breaking change) (new-platform)
- Bump pyenvisalink ([@Cinntax] - [#17086]) ([envisalink docs])
- Async response all the things ([@balloob] - [#17073]) ([config docs]) ([websocket_api docs])
- Add optional headers configuration for scrape ([@dippysan] - [#17085]) ([sensor.scrape docs])
- Add support for Hass.io discovery feature for Add-ons ([@pvizeli] - [#17035]) ([hassio docs])
- Keep the repeat mode when setting Sonos shuffle mode ([@amelchio] - [#17083]) ([media_player.sonos docs])
- Smaller steps for Sonos volume up/down ([@amelchio] - [#17080]) ([media_player.sonos docs])
- Add weather condition code to OpenWeatherMap sensor ([@dbilay] - [#17093]) ([sensor.openweathermap docs])
- Adding myself as blink codeowner ([@fronzbot] - [#17096])
- Change Tile icon to view-grid ([@no2chem] - [#17098]) ([device_tracker docs])
- Fix jewish calendar sensor with language set to english ([@tsvi] - [#17104]) ([sensor.jewish_calendar docs])
- Fix counter restore. ([@mvn23] - [#17101]) ([counter docs])
- Support multiple accounts in Tile, use device identifiers ([@no2chem] - [#17108]) ([device_tracker.tile docs])
- Bumps simplisafe-python to 3.1.2 ([@bachya] - [#16931]) ([alarm_control_panel.simplisafe docs])
- Upgrade pytest to 3.8.2 ([@scop] - [#17125])
- Fix sonos async use ([@MartinHjelmare] - [#17099]) ([media_player.sonos docs])
- Homekit controller reconnect ([@armills] - [#17060]) ([homekit_controller docs])
- Tibber component and notify ([@Danielhiversen] - [#17062]) ([notify docs]) ([tibber docs]) ([sensor.tibber docs]) (breaking change) (new-platform)
- Add time created to persistent notifications. ([@jeradM] - [#17121]) ([persistent_notification docs])
- Make it easier for auth to consume newer formats ([@balloob] - [#17127])
- Add new component fritzbox binary_sensor ([@hthiery] - [#17057]) ([fritzbox docs]) ([binary_sensor.fritzbox docs]) (new-platform)
- Update xiaomi lib ([@Danielhiversen] - [#17129]) ([xiaomi_aqara docs])
- Add update service to Google Travel Sensor ([@arsaboo] - [#17092]) ([sensor.google_travel_time docs])
- Fix upnp component l10n error ([@awarecan] - [#17132]) ([upnp docs])
- Take timezone into consideration when calulating Zmanim. Partial fix for #16946 ([@tsvi] - [#17131]) ([sensor.jewish_calendar docs])
- Allow config entry setup to raise not ready ([@balloob] - [#17135])
- Webhook component - pass headers to webhook handler ([@kirichkov] - [#17091]) ([webhook docs])
- Add timeout and fix oscillations on Samsung TV component ([@anapaulagomes] - [#17102]) ([media_player.samsungtv docs])
- Remove discovery ([@balloob] - [#17070]) ([hue docs]) (breaking change)
- Bugfix invalid entity_config parameter HomeKit ([@cdce8p] - [#17143]) ([homekit docs])
- verisure configurable polling ([@persandstrom] - [#17144]) ([verisure docs])
- YesssSMS handling more errors, upgrade to version 0.2.3 ([@flowolf] - [#17052]) ([notify docs])
- Added OpenUV CODEOWNERS info ([@bachya] - [#17149]) ([openuv docs])
- Fix a typo ([@gerard33] - [#17147]) ([switch.volvooncall docs])
- Cleanly stop tradfri on shutdown ([@lwis] - [#17114]) ([auth docs]) ([tradfri docs])
- Fix zoneminder zms_url construction ([@rohankapoorcom] - [#17150]) ([zoneminder docs])
- Added warning to HomeKit component ([@Julius2342] - [#16807]) ([homekit docs])
- Add faucet, shower, sprinkler, valve to HomeKit ([@cdce8p] - [#17145]) ([homekit docs]) (new-feature)
- Fix miflora connection errors during platform setup ([@PaulAnnekov] - [#16798]) ([sensor.miflora docs])
- Discover Danfoss/devolo RS Room Sensor thermostat ([@prophit987] - [#17153]) ([zwave docs])
- @danielhiversen as codeowner for Tibber ([@prophit987] - [#17154])
- Fix incorrect yaml in hangouts ([@balloob] - [#17169]) (beta fix)
- Fix data used for logbook ([@balloob] - [#17172]) ([logbook docs]) (beta fix)
- Fix device_tracker service call & cleanup ([@cdce8p] - [#17173]) ([alert docs]) ([device_sun_light_trigger docs]) ([device_tracker docs]) ([notify docs]) ([switch.flux docs]) (beta fix)
- Bugfix switch flux - light service call ([@cdce8p] - [#17187]) ([switch.flux docs]) (beta fix)
- Upgrade aiolifx_effects to 0.2.1 ([@amelchio] - [#17188]) ([light.lifx docs]) (beta fix)
- Verisure standard config for scan interval ([@persandstrom] - [#17192]) ([verisure docs]) (beta fix)
- Init sub-components using global var. ([@mbrrg] - [#17220]) ([spc docs]) ([alarm_control_panel.spc docs]) ([binary_sensor.spc docs]) (beta fix)
- Prevent accidental device reg override ([@balloob] - [#17136]) (beta fix)
- MyQ cover return unknown state if not available ([@schmittx] - [#17207]) ([cover.myq docs]) (beta fix)
- Fix potential MQTT discovery race condition ([@OttoWinter] - [#17208]) ([mqtt docs]) (beta fix)
- Fix SPC ([@balloob] - [#17236]) ([spc docs]) ([alarm_control_panel.spc docs]) ([binary_sensor.spc docs]) (beta fix)
- Guard for bad device info ([@balloob] - [#17238]) (beta fix)
- updated georss-client library to 0.3 ([@exxamalte] - [#17239]) ([sensor.geo_rss_events docs]) (beta fix)
- Add a webhook automation trigger ([@balloob] - [#17246]) ([automation.webhook docs]) (beta fix) (new-platform)
- block external IP ([@balloob] - [#17248]) ([emulated_hue docs]) (beta fix)
- Fix ambient light state of the Philips Eyecare Lamp (Closes: #16269) ([@syssi] - [#17259]) ([light.xiaomi_miio docs]) (beta fix)
- Add defaults, fixing #17229 ([@StevenLooman] - [#17261]) ([upnp docs]) (beta fix)
- Remove warning on script delay ([@amelchio] - [#17264]) (beta fix)
- Hassio auth ([@pvizeli] - [#17274]) ([hassio docs]) (beta fix) (new-platform)
- Fix hassio discovery ([@pvizeli] - [#17275]) ([hassio docs]) (beta fix)
- fixed 'on_startup() takes 0 positional arguments but 1 was given' ([@PaulAnnekov] - [#17295]) ([sensor.miflora docs]) (beta fix)
- Logbook: filter by entity and period ([@Anonym-tsk] - [#17095]) ([logbook docs]) (beta fix)
- Fix samsung bug ([@arsaboo] - [#17285]) ([media_player.samsungtv docs]) (beta fix)
- Allow tradfri groups for new imported entries ([@MartinHjelmare] - [#17310]) ([tradfri docs]) (beta fix)
- Fix auth for hass.io ([@pvizeli] - [#17318]) ([hassio docs]) (beta fix)
- Hass.io auth/sso part2 ([@pvizeli] - [#17324]) ([hassio docs]) (beta fix) (new-platform)
[#16427]: https://github.com/home-assistant/home-assistant/pull/16427
[#16560]: https://github.com/home-assistant/home-assistant/pull/16560
[#16561]: https://github.com/home-assistant/home-assistant/pull/16561
[#16638]: https://github.com/home-assistant/home-assistant/pull/16638
[#16671]: https://github.com/home-assistant/home-assistant/pull/16671
[#16719]: https://github.com/home-assistant/home-assistant/pull/16719
[#16720]: https://github.com/home-assistant/home-assistant/pull/16720
[#16740]: https://github.com/home-assistant/home-assistant/pull/16740
[#16763]: https://github.com/home-assistant/home-assistant/pull/16763
[#16765]: https://github.com/home-assistant/home-assistant/pull/16765
[#16798]: https://github.com/home-assistant/home-assistant/pull/16798
[#16807]: https://github.com/home-assistant/home-assistant/pull/16807
[#16816]: https://github.com/home-assistant/home-assistant/pull/16816
[#16817]: https://github.com/home-assistant/home-assistant/pull/16817
[#16823]: https://github.com/home-assistant/home-assistant/pull/16823
[#16824]: https://github.com/home-assistant/home-assistant/pull/16824
[#16825]: https://github.com/home-assistant/home-assistant/pull/16825
[#16826]: https://github.com/home-assistant/home-assistant/pull/16826
[#16828]: https://github.com/home-assistant/home-assistant/pull/16828
[#16832]: https://github.com/home-assistant/home-assistant/pull/16832
[#16833]: https://github.com/home-assistant/home-assistant/pull/16833
[#16838]: https://github.com/home-assistant/home-assistant/pull/16838
[#16839]: https://github.com/home-assistant/home-assistant/pull/16839
[#16840]: https://github.com/home-assistant/home-assistant/pull/16840
[#16843]: https://github.com/home-assistant/home-assistant/pull/16843
[#16844]: https://github.com/home-assistant/home-assistant/pull/16844
[#16845]: https://github.com/home-assistant/home-assistant/pull/16845
[#16848]: https://github.com/home-assistant/home-assistant/pull/16848
[#16852]: https://github.com/home-assistant/home-assistant/pull/16852
[#16853]: https://github.com/home-assistant/home-assistant/pull/16853
[#16855]: https://github.com/home-assistant/home-assistant/pull/16855
[#16856]: https://github.com/home-assistant/home-assistant/pull/16856
[#16857]: https://github.com/home-assistant/home-assistant/pull/16857
[#16858]: https://github.com/home-assistant/home-assistant/pull/16858
[#16859]: https://github.com/home-assistant/home-assistant/pull/16859
[#16860]: https://github.com/home-assistant/home-assistant/pull/16860
[#16861]: https://github.com/home-assistant/home-assistant/pull/16861
[#16863]: https://github.com/home-assistant/home-assistant/pull/16863
[#16865]: https://github.com/home-assistant/home-assistant/pull/16865
[#16870]: https://github.com/home-assistant/home-assistant/pull/16870
[#16871]: https://github.com/home-assistant/home-assistant/pull/16871
[#16874]: https://github.com/home-assistant/home-assistant/pull/16874
[#16877]: https://github.com/home-assistant/home-assistant/pull/16877
[#16878]: https://github.com/home-assistant/home-assistant/pull/16878
[#16879]: https://github.com/home-assistant/home-assistant/pull/16879
[#16882]: https://github.com/home-assistant/home-assistant/pull/16882
[#16883]: https://github.com/home-assistant/home-assistant/pull/16883
[#16884]: https://github.com/home-assistant/home-assistant/pull/16884
[#16892]: https://github.com/home-assistant/home-assistant/pull/16892
[#16893]: https://github.com/home-assistant/home-assistant/pull/16893
[#16894]: https://github.com/home-assistant/home-assistant/pull/16894
[#16896]: https://github.com/home-assistant/home-assistant/pull/16896
[#16897]: https://github.com/home-assistant/home-assistant/pull/16897
[#16900]: https://github.com/home-assistant/home-assistant/pull/16900
[#16901]: https://github.com/home-assistant/home-assistant/pull/16901
[#16903]: https://github.com/home-assistant/home-assistant/pull/16903
[#16904]: https://github.com/home-assistant/home-assistant/pull/16904
[#16906]: https://github.com/home-assistant/home-assistant/pull/16906
[#16909]: https://github.com/home-assistant/home-assistant/pull/16909
[#16910]: https://github.com/home-assistant/home-assistant/pull/16910
[#16911]: https://github.com/home-assistant/home-assistant/pull/16911
[#16914]: https://github.com/home-assistant/home-assistant/pull/16914
[#16915]: https://github.com/home-assistant/home-assistant/pull/16915
[#16917]: https://github.com/home-assistant/home-assistant/pull/16917
[#16918]: https://github.com/home-assistant/home-assistant/pull/16918
[#16919]: https://github.com/home-assistant/home-assistant/pull/16919
[#16920]: https://github.com/home-assistant/home-assistant/pull/16920
[#16921]: https://github.com/home-assistant/home-assistant/pull/16921
[#16923]: https://github.com/home-assistant/home-assistant/pull/16923
[#16931]: https://github.com/home-assistant/home-assistant/pull/16931
[#16937]: https://github.com/home-assistant/home-assistant/pull/16937
[#16939]: https://github.com/home-assistant/home-assistant/pull/16939
[#16942]: https://github.com/home-assistant/home-assistant/pull/16942
[#16949]: https://github.com/home-assistant/home-assistant/pull/16949
[#16950]: https://github.com/home-assistant/home-assistant/pull/16950
[#16951]: https://github.com/home-assistant/home-assistant/pull/16951
[#16962]: https://github.com/home-assistant/home-assistant/pull/16962
[#16965]: https://github.com/home-assistant/home-assistant/pull/16965
[#16969]: https://github.com/home-assistant/home-assistant/pull/16969
[#16972]: https://github.com/home-assistant/home-assistant/pull/16972
[#16980]: https://github.com/home-assistant/home-assistant/pull/16980
[#17001]: https://github.com/home-assistant/home-assistant/pull/17001
[#17003]: https://github.com/home-assistant/home-assistant/pull/17003
[#17004]: https://github.com/home-assistant/home-assistant/pull/17004
[#17007]: https://github.com/home-assistant/home-assistant/pull/17007
[#17010]: https://github.com/home-assistant/home-assistant/pull/17010
[#17015]: https://github.com/home-assistant/home-assistant/pull/17015
[#17016]: https://github.com/home-assistant/home-assistant/pull/17016
[#17017]: https://github.com/home-assistant/home-assistant/pull/17017
[#17018]: https://github.com/home-assistant/home-assistant/pull/17018
[#17019]: https://github.com/home-assistant/home-assistant/pull/17019
[#17020]: https://github.com/home-assistant/home-assistant/pull/17020
[#17021]: https://github.com/home-assistant/home-assistant/pull/17021
[#17022]: https://github.com/home-assistant/home-assistant/pull/17022
[#17024]: https://github.com/home-assistant/home-assistant/pull/17024
[#17027]: https://github.com/home-assistant/home-assistant/pull/17027
[#17028]: https://github.com/home-assistant/home-assistant/pull/17028
[#17029]: https://github.com/home-assistant/home-assistant/pull/17029
[#17032]: https://github.com/home-assistant/home-assistant/pull/17032
[#17033]: https://github.com/home-assistant/home-assistant/pull/17033
[#17035]: https://github.com/home-assistant/home-assistant/pull/17035
[#17036]: https://github.com/home-assistant/home-assistant/pull/17036
[#17038]: https://github.com/home-assistant/home-assistant/pull/17038
[#17039]: https://github.com/home-assistant/home-assistant/pull/17039
[#17042]: https://github.com/home-assistant/home-assistant/pull/17042
[#17047]: https://github.com/home-assistant/home-assistant/pull/17047
[#17048]: https://github.com/home-assistant/home-assistant/pull/17048
[#17050]: https://github.com/home-assistant/home-assistant/pull/17050
[#17051]: https://github.com/home-assistant/home-assistant/pull/17051
[#17052]: https://github.com/home-assistant/home-assistant/pull/17052
[#17055]: https://github.com/home-assistant/home-assistant/pull/17055
[#17056]: https://github.com/home-assistant/home-assistant/pull/17056
[#17057]: https://github.com/home-assistant/home-assistant/pull/17057
[#17059]: https://github.com/home-assistant/home-assistant/pull/17059
[#17060]: https://github.com/home-assistant/home-assistant/pull/17060
[#17062]: https://github.com/home-assistant/home-assistant/pull/17062
[#17064]: https://github.com/home-assistant/home-assistant/pull/17064
[#17065]: https://github.com/home-assistant/home-assistant/pull/17065
[#17068]: https://github.com/home-assistant/home-assistant/pull/17068
[#17069]: https://github.com/home-assistant/home-assistant/pull/17069
[#17070]: https://github.com/home-assistant/home-assistant/pull/17070
[#17073]: https://github.com/home-assistant/home-assistant/pull/17073
[#17079]: https://github.com/home-assistant/home-assistant/pull/17079
[#17080]: https://github.com/home-assistant/home-assistant/pull/17080
[#17083]: https://github.com/home-assistant/home-assistant/pull/17083
[#17085]: https://github.com/home-assistant/home-assistant/pull/17085
[#17086]: https://github.com/home-assistant/home-assistant/pull/17086
[#17091]: https://github.com/home-assistant/home-assistant/pull/17091
[#17092]: https://github.com/home-assistant/home-assistant/pull/17092
[#17093]: https://github.com/home-assistant/home-assistant/pull/17093
[#17095]: https://github.com/home-assistant/home-assistant/pull/17095
[#17096]: https://github.com/home-assistant/home-assistant/pull/17096
[#17098]: https://github.com/home-assistant/home-assistant/pull/17098
[#17099]: https://github.com/home-assistant/home-assistant/pull/17099
[#17101]: https://github.com/home-assistant/home-assistant/pull/17101
[#17102]: https://github.com/home-assistant/home-assistant/pull/17102
[#17104]: https://github.com/home-assistant/home-assistant/pull/17104
[#17108]: https://github.com/home-assistant/home-assistant/pull/17108
[#17114]: https://github.com/home-assistant/home-assistant/pull/17114
[#17121]: https://github.com/home-assistant/home-assistant/pull/17121
[#17125]: https://github.com/home-assistant/home-assistant/pull/17125
[#17127]: https://github.com/home-assistant/home-assistant/pull/17127
[#17129]: https://github.com/home-assistant/home-assistant/pull/17129
[#17131]: https://github.com/home-assistant/home-assistant/pull/17131
[#17132]: https://github.com/home-assistant/home-assistant/pull/17132
[#17135]: https://github.com/home-assistant/home-assistant/pull/17135
[#17136]: https://github.com/home-assistant/home-assistant/pull/17136
[#17143]: https://github.com/home-assistant/home-assistant/pull/17143
[#17144]: https://github.com/home-assistant/home-assistant/pull/17144
[#17145]: https://github.com/home-assistant/home-assistant/pull/17145
[#17147]: https://github.com/home-assistant/home-assistant/pull/17147
[#17149]: https://github.com/home-assistant/home-assistant/pull/17149
[#17150]: https://github.com/home-assistant/home-assistant/pull/17150
[#17153]: https://github.com/home-assistant/home-assistant/pull/17153
[#17154]: https://github.com/home-assistant/home-assistant/pull/17154
[#17169]: https://github.com/home-assistant/home-assistant/pull/17169
[#17172]: https://github.com/home-assistant/home-assistant/pull/17172
[#17173]: https://github.com/home-assistant/home-assistant/pull/17173
[#17187]: https://github.com/home-assistant/home-assistant/pull/17187
[#17188]: https://github.com/home-assistant/home-assistant/pull/17188
[#17192]: https://github.com/home-assistant/home-assistant/pull/17192
[#17207]: https://github.com/home-assistant/home-assistant/pull/17207
[#17208]: https://github.com/home-assistant/home-assistant/pull/17208
[#17220]: https://github.com/home-assistant/home-assistant/pull/17220
[#17236]: https://github.com/home-assistant/home-assistant/pull/17236
[#17238]: https://github.com/home-assistant/home-assistant/pull/17238
[#17239]: https://github.com/home-assistant/home-assistant/pull/17239
[#17246]: https://github.com/home-assistant/home-assistant/pull/17246
[#17248]: https://github.com/home-assistant/home-assistant/pull/17248
[#17259]: https://github.com/home-assistant/home-assistant/pull/17259
[#17261]: https://github.com/home-assistant/home-assistant/pull/17261
[#17264]: https://github.com/home-assistant/home-assistant/pull/17264
[#17274]: https://github.com/home-assistant/home-assistant/pull/17274
[#17275]: https://github.com/home-assistant/home-assistant/pull/17275
[#17285]: https://github.com/home-assistant/home-assistant/pull/17285
[#17295]: https://github.com/home-assistant/home-assistant/pull/17295
[#17310]: https://github.com/home-assistant/home-assistant/pull/17310
[#17318]: https://github.com/home-assistant/home-assistant/pull/17318
[#17324]: https://github.com/home-assistant/home-assistant/pull/17324
[@Anonym-tsk]: https://github.com/Anonym-tsk
[@Cinntax]: https://github.com/Cinntax
[@DanielWinks]: https://github.com/DanielWinks
[@Danielhiversen]: https://github.com/Danielhiversen
[@DavidDeSloovere]: https://github.com/DavidDeSloovere
[@GP8x]: https://github.com/GP8x
[@Julius2342]: https://github.com/Julius2342
[@MartinHjelmare]: https://github.com/MartinHjelmare
[@MatMaul]: https://github.com/MatMaul
[@OttoWinter]: https://github.com/OttoWinter
[@OverloadUT]: https://github.com/OverloadUT
[@PaulAnnekov]: https://github.com/PaulAnnekov
[@SNoof85]: https://github.com/SNoof85
[@StevenLooman]: https://github.com/StevenLooman
[@amelchio]: https://github.com/amelchio
[@anapaulagomes]: https://github.com/anapaulagomes
[@andersonshatch]: https://github.com/andersonshatch
[@armills]: https://github.com/armills
[@arsaboo]: https://github.com/arsaboo
[@awarecan]: https://github.com/awarecan
[@bachya]: https://github.com/bachya
[@balloob]: https://github.com/balloob
[@blakeblackshear]: https://github.com/blakeblackshear
[@cdce8p]: https://github.com/cdce8p
[@cgarwood]: https://github.com/cgarwood
[@cgtobi]: https://github.com/cgtobi
[@danielperna84]: https://github.com/danielperna84
[@dbilay]: https://github.com/dbilay
[@dippysan]: https://github.com/dippysan
[@emontnemery]: https://github.com/emontnemery
[@exxamalte]: https://github.com/exxamalte
[@fabaff]: https://github.com/fabaff
[@flowolf]: https://github.com/flowolf
[@fronzbot]: https://github.com/fronzbot
[@gerard33]: https://github.com/gerard33
[@ggravlingen]: https://github.com/ggravlingen
[@hthiery]: https://github.com/hthiery
[@htotoo]: https://github.com/htotoo
[@janvanhelvoort]: https://github.com/janvanhelvoort
[@jedmeng]: https://github.com/jedmeng
[@jeradM]: https://github.com/jeradM
[@kirichkov]: https://github.com/kirichkov
[@lwis]: https://github.com/lwis
[@mbrrg]: https://github.com/mbrrg
[@mvn23]: https://github.com/mvn23
[@nickovs]: https://github.com/nickovs
[@no2chem]: https://github.com/no2chem
[@persandstrom]: https://github.com/persandstrom
[@prophit987]: https://github.com/prophit987
[@pvizeli]: https://github.com/pvizeli
[@quazzie]: https://github.com/quazzie
[@randellhodges]: https://github.com/randellhodges
[@rohankapoorcom]: https://github.com/rohankapoorcom
[@sander76]: https://github.com/sander76
[@schmittx]: https://github.com/schmittx
[@scop]: https://github.com/scop
[@siom79]: https://github.com/siom79
[@swilson]: https://github.com/swilson
[@syssi]: https://github.com/syssi
[@thomasloven]: https://github.com/thomasloven
[@timmo001]: https://github.com/timmo001
[@tsvi]: https://github.com/tsvi
[@zxdavb]: https://github.com/zxdavb
[alarm_control_panel docs]: /components/alarm_control_panel/
[alarm_control_panel.blink docs]: /components/alarm_control_panel.blink/
[alarm_control_panel.mqtt docs]: /components/alarm_control_panel.mqtt/
[alarm_control_panel.simplisafe docs]: /components/alarm_control_panel.simplisafe/
[alarm_control_panel.spc docs]: /components/alarm_control_panel.spc/
[alert docs]: /components/alert/
[aqualogic docs]: /components/aqualogic/
[auth docs]: /components/auth/
[automation docs]: /components/automation/
[automation.webhook docs]: /docs/automation/trigger/#webhook-trigger
[binary_sensor.blink docs]: /components/binary_sensor.blink/
[binary_sensor.bmw_connected_drive docs]: /components/binary_sensor.bmw_connected_drive/
[binary_sensor.ffmpeg_motion docs]: /components/binary_sensor.ffmpeg_motion/
[binary_sensor.ffmpeg_noise docs]: /components/binary_sensor.ffmpeg_noise/
[binary_sensor.fritzbox docs]: /components/binary_sensor.fritzbox/
[binary_sensor.mqtt docs]: /components/binary_sensor.mqtt/
[binary_sensor.openuv docs]: /components/binary_sensor.openuv/
[binary_sensor.ping docs]: /components/binary_sensor.ping/
[binary_sensor.rachio docs]: /components/binary_sensor.rachio/
[binary_sensor.spc docs]: /components/binary_sensor.spc/
[blink docs]: /components/blink/
[bmw_connected_drive docs]: /components/bmw_connected_drive/
[camera docs]: /components/camera/
[camera.blink docs]: /components/camera.blink/
[camera.mjpeg docs]: /components/camera.mjpeg/
[camera.mqtt docs]: /components/camera.mqtt/
[camera.onvif docs]: /components/camera.onvif/
[climate docs]: /components/climate/
[climate.evohome docs]: /components/climate.evohome/
[climate.fritzbox docs]: /components/climate.fritzbox/
[climate.honeywell docs]: /components/climate.honeywell/
[climate.mqtt docs]: /components/climate.mqtt/
[config docs]: /components/config/
[counter docs]: /components/counter/
[cover docs]: /components/cover/
[cover.mqtt docs]: /components/cover.mqtt/
[cover.myq docs]: /components/cover.myq/
[device_sun_light_trigger docs]: /components/device_sun_light_trigger/
[device_tracker docs]: /components/device_tracker/
[device_tracker.tile docs]: /components/device_tracker.tile/
[duckdns docs]: /components/duckdns/
[emulated_hue docs]: /components/emulated_hue/
[envisalink docs]: /components/envisalink/
[evohome docs]: /components/evohome/
[fan docs]: /components/fan/
[fan.mqtt docs]: /components/fan.mqtt/
[ffmpeg docs]: /components/ffmpeg/
[fritzbox docs]: /components/fritzbox/
[frontend docs]: /components/frontend/
[google_assistant docs]: /components/google_assistant/
[group docs]: /components/group/
[hangouts docs]: /components/hangouts/
[hassio docs]: /components/hassio/
[homekit docs]: /components/homekit/
[homekit_controller docs]: /components/homekit_controller/
[homematic docs]: /components/homematic/
[homematicip_cloud docs]: /components/homematicip_cloud/
[huawei_lte docs]: /components/huawei_lte/
[hue docs]: /components/hue/
[ifttt docs]: /components/ifttt/
[image_processing docs]: /components/image_processing/
[input_boolean docs]: /components/input_boolean/
[input_number docs]: /components/input_number/
[input_select docs]: /components/input_select/
[input_text docs]: /components/input_text/
[keyboard docs]: /components/keyboard/
[light docs]: /components/light/
[light.hue docs]: /components/light.hue/
[light.lifx docs]: /components/light.lifx/
[light.mqtt docs]: /components/light.mqtt/
[light.mqtt_json docs]: /components/light.mqtt_json/
[light.opple docs]: /components/light.opple/
[light.xiaomi_miio docs]: /components/light.xiaomi_miio/
[lock docs]: /components/lock/
[lock.mqtt docs]: /components/lock.mqtt/
[logbook docs]: /components/logbook/
[logger docs]: /components/logger/
[lovelace docs]: /components/lovelace/
[media_extractor docs]: /components/media_extractor/
[media_player docs]: /components/media_player/
[media_player.samsungtv docs]: /components/media_player.samsungtv/
[media_player.sonos docs]: /components/media_player.sonos/
[media_player.soundtouch docs]: /components/media_player.soundtouch/
[microsoft_face docs]: /components/microsoft_face/
[mqtt docs]: /components/mqtt/
[netatmo docs]: /components/netatmo/
[notify docs]: /components/notify/
[onboarding docs]: /components/onboarding/
[openuv docs]: /components/openuv/
[persistent_notification docs]: /components/persistent_notification/
[rachio docs]: /components/rachio/
[remote docs]: /components/remote/
[scene docs]: /components/scene/
[script docs]: /components/script/
[sensor docs]: /components/sensor/
[sensor.aqualogic docs]: /components/sensor.aqualogic/
[sensor.blink docs]: /components/sensor.blink/
[sensor.enphase_envoy docs]: /components/sensor.enphase_envoy/
[sensor.geo_rss_events docs]: /components/sensor.geo_rss_events/
[sensor.gitlab_ci docs]: /components/sensor.gitlab_ci/
[sensor.google_travel_time docs]: /components/sensor.google_travel_time/
[sensor.jewish_calendar docs]: /components/sensor.jewish_calendar/
[sensor.miflora docs]: /components/sensor.miflora/
[sensor.mqtt docs]: /components/sensor.mqtt/
[sensor.mqtt_room docs]: /components/sensor.mqtt_room/
[sensor.netatmo_public docs]: /components/sensor.netatmo_public/
[sensor.openweathermap docs]: /components/sensor.openweathermap/
[sensor.scrape docs]: /components/sensor.scrape/
[sensor.tibber docs]: /components/sensor.tibber/
[sensor.xiaomi_aqara docs]: /components/sensor.xiaomi_aqara/
[sonos docs]: /components/sonos/
[spc docs]: /components/spc/
[switch docs]: /components/switch/
[switch.aqualogic docs]: /components/switch.aqualogic/
[switch.flux docs]: /components/switch.flux/
[switch.mqtt docs]: /components/switch.mqtt/
[switch.rachio docs]: /components/switch.rachio/
[switch.rest docs]: /components/switch.rest/
[switch.tradfri docs]: /components/switch.tradfri/
[switch.volvooncall docs]: /components/switch.volvooncall/
[switch.xiaomi_aqara docs]: /components/switch.xiaomi_aqara/
[telegram_bot docs]: /components/telegram_bot/
[tibber docs]: /components/tibber/
[timer docs]: /components/timer/
[tradfri docs]: /components/tradfri/
[upnp docs]: /components/upnp/
[vacuum docs]: /components/vacuum/
[vacuum.xiaomi_miio docs]: /components/vacuum.xiaomi_miio/
[verisure docs]: /components/verisure/
[weather docs]: /components/weather/
[weather.darksky docs]: /components/weather.darksky/
[weather.openweathermap docs]: /components/weather.openweathermap/
[webhook docs]: /components/webhook/
[websocket_api docs]: /components/websocket_api/
[xiaomi_aqara docs]: /components/xiaomi_aqara/
[zoneminder docs]: /components/zoneminder/
[zwave docs]: /components/zwave/

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -7,6 +7,7 @@ sidebar: true
comments: false
sharing: true
footer: true
redirect_from: /components/lovelace/
---
<p class='note'>
@ -116,7 +117,7 @@ views:
Now restart Home Assistant, navigate to `<YOUR HASS URL>/lovelace`. When you make changes to `ui-lovelace.yaml`, you don't have to restart Home Assistant or refresh the page. Just hit the refresh button at the top of the UI.
## {% linkable_title Setting Lovelace as the Default UI %}
Once you are ready to start using Lovelace UI as your main user interface, click on info, the "i" icon under 'Developer Tools" in the Home Assistant side-bar. Next, locate >>Set Lovelace as default page on this device<< under the Home Assistant version information and click it.
Once you are ready to start using Lovelace UI as your main user interface, click on info, the "i" icon under 'Developer Tools" in the Home Assistant side-bar. Next, locate >>Set Lovelace as default page on this device<< under the Home Assistant version information and click it.
Note that this is a per-device setting and will need to be changed on each device you access the UI from.