Merge branch 'rc' into current

This commit is contained in:
Paulus Schoutsen 2018-11-10 09:54:51 +01:00
commit d9e6362fe4
46 changed files with 1628 additions and 133 deletions

View File

@ -141,14 +141,14 @@ social:
# Home Assistant release details
current_major_version: 0
current_minor_version: 81
current_patch_version: 6
date_released: 2018-11-04
current_minor_version: 82
current_patch_version: 0
date_released: 2018-11-09
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.
# Major release:
patch_version_notes: "#release-0816---november-4"
patch_version_notes: "#"
# Minor release (Example #release-0431---april-25):
# Date we moved to Discourse for comments

View File

@ -71,10 +71,12 @@ Configuration example that uses the USB microphone and the built-in headset audi
{% configuration %}
mic:
description: This is the hardware address of your microphone. Look at the add-on output.
required: true
type: float
speaker:
description: This is the hardware address of your speakers. Look at the add-on output.
type: float
required: true
type: string
{% endconfiguration %}
### {% linkable_title Home Assistant configuration %}

View File

@ -51,15 +51,9 @@ alert:
{% configuration %}
name:
description: The friendly name of the alert. This can include a [template][template].
description: The friendly name of the alert.
required: true
type: string
done_message:
description: >
A message sent after an alert transitions from `on` to `off`. Is only sent
if an alert notification was sent for transitioning from `off` to `on`. This can include a [template][template].
required: false
type: string
entity_id:
description: The ID of the entity to watch.
required: true
@ -87,6 +81,19 @@ skip_first:
required: false
type: boolean
default: false
message:
description: >
A message to be sent after an alert transitions from `of` to `on`
with [template][template] support.
required: false
type: template
done_message:
description: >
A message sent after an alert transitions from `on` to `off` with
[template][template] support. Is only sent if an alert notification
was sent for transitioning from `off` to `on`.
required: false
type: template
notifiers:
description: "List of `notification` components to use for alerts."
required: true
@ -192,4 +199,29 @@ following notification.
For example, if the garage door opens at 2:00, a notification will be
sent at 2:15, 2:45, 3:45, 4:45, etc., continuing every 60 minutes.
### {% linkable_title Message Templates %}
It may be desirable to have the alert notifications include information
about the state of the entity.
The following will show for a plant how to include the problem `attribute`
of the entity.
```yaml
# Example configuration.yaml entry
office_plant:
name: Plant in office needs help
entity_id: plant.plant_office
state: 'problem'
repeat: 30
can_acknowledge: True
skip_first: True
message: "Plant {{ states.plant.plant_office }} needs help ({{ state_attr('plant.plant_office', 'problem') }})"
done_message: Plant in office is fine
notifiers:
- ryans_phone
- kristens_phone
```
The resulting message could be `Plant Officeplant needs help (moisture low)`.
[template]: /docs/configuration/templating/

View File

@ -49,11 +49,11 @@ name:
payload_on:
description: "Variable `on` value. The component will recognize this as logical '1'."
required: false
type: string
type: [string, float, integer]
payload_off:
description: "Variable `off` value. The component will recognize this as logical '0'."
required: false
type: string
type: [string, float, integer]
disarm_after_trigger:
description: Configure sensor as trigger type.
required: false

View File

@ -13,7 +13,7 @@ ha_release: "0.54"
ha_iot_class: "Local Polling"
---
The `doorbird` implementation allows you to view the live video and previous images from your [DoorBird](http://www.doorbird.com/) device in Home Assistant.
The `doorbird` implementation allows you to view the live video, the last doorbell ring image, and the last motion sensor image from your [DoorBird](http://www.doorbird.com/) device in Home Assistant.
<p class='note'>
You must have the [DoorBird component](/components/doorbird/) configured to use this camera.

View File

@ -15,16 +15,15 @@ ha_iot_class: "Cloud Polling"
Integrates Mill heater into Home Assistant.
The component requires that the heater is set as an [independent device](https://millheat.zendesk.com/hc/en-us/articles/115001123491-What-is-an-Independent-device-) in the Mill app.
## {% linkable_title Configuration %}
To enable this platform, add the following lines to your `configuration.yaml` file:
```yaml
climate:
- platform: mill
username: email@gmail.com
password: pswd
username: YOUR_EMAIL_ADDRESS
password: YOUR_PASSWORD
```
{% configuration %}
@ -37,3 +36,17 @@ password:
required: true
type: string
{% endconfiguration %}
## {% linkable_title Component services %}
This platform supports a service to set the temperature for the room connected to heater in the Mill app:
`climate.mill_set_room_temperature`
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `room_name` | no | String with room name.
| `away_temp` | yes | Integer with temperature
| `comfort_temp` | yes | Integer with temperature
| `sleep_temp` | yes | Integer with temperature

View File

@ -0,0 +1,19 @@
---
layout: page
title: "Velbus Climate"
description: "Instructions how to integrate Velbus thermostat into Home Assistant."
date: 2018-08-22 06:00
sidebar: true
comments: false
sharing: true
footer: true
logo: velbus.png
ha_category: Climate
ha_iot_class: "Local Push"
ha_release: 0.82
published: false
---
The `velbus` climate devices allow you to control [Velbus](http://www.velbus.eu) connected thermostats.
For hub configuration, see [the Velbus component](/components/velbus/).

View File

@ -59,12 +59,14 @@ Set attribute of device in deCONZ using [Rest API](http://dresden-elektronik.git
| `entity` | No | String representing a specific Home Assistant entity of a device in deCONZ. |
| `data` | No | Data is a JSON object with what data you want to alter. |
Field and entity are exclusive, i.e you can only use one in a request.
Either `entity` or `field` must be provided. If both are present, `field` will be interpreted as a subpath under the device path corresponding to the specified `entity`:
{ "field": "/lights/1", "data": {"name": "light2"} }
{ "entity": "light.light1", "data": {"name": "light2"} }
{ "entity": "light.light1", "field: "/state", "data": {"on": true} }
{ "field": "/config", "data": {"permitjoin": 60} }
#### {% linkable_title Service `deconz.refresh_devices` %}

View File

@ -0,0 +1,37 @@
---
layout: page
title: "BT Smart Hub"
description: "Instructions on how to integrate BT Smart Hub router into Home Assistant."
date: 2018-10-05 10:00
sidebar: true
comments: false
sharing: true
footer: true
logo: bt.png
ha_category: Presence Detection
ha_release: "0.82"
ha_iot_class: "Local Polling"
---
This platform offers presence detection by looking at connected devices to a [BT Smart Hub](https://en.wikipedia.org/wiki/BT_Smart_Hub) based router.
This router is sometimes referred to as the BT Home Hub 6.
## {% linkable_title Configuration %}
To use a BT Smart Hub router in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
device_tracker:
- platform: bt_smarthub
```
{% configuration %}
host:
description: The IP address of your router
default: 192.168.1.254
required: false
type: string
{% endconfiguration %}
See the [device tracker component page](/components/device_tracker/) for instructions on how to configure the people to be tracked.

View File

@ -20,7 +20,7 @@ Before 0.56 this component was named `apiai`.
The `dialogflow` component is designed to be used with the [webhook](https://dialogflow.com/docs/fulfillment#webhook) integration of [Dialogflow](https://dialogflow.com/). When a conversation ends with a user, Dialogflow sends an action and parameters to the webhook.
Dialogflow requires a public endpoint (HTTPS recommended), so your Home Assistant should be exposed to the Internet. Dialogflow will return fallback answers if your server does not answer or takes too long (more than 5 seconds).
To be able to receive messages from DialogFlow, 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)). Dialogflow will return fallback answers if your server does not answer or takes too long (more than 5 seconds).
Dialogflow could be [integrated](https://dialogflow.com/docs/integrations/) with many popular messaging, virtual assistant and IoT platforms.
@ -40,6 +40,8 @@ Using Dialogflow will be easy to create conversations like:
To use this integration, you should define a conversation (intent) in Dialogflow, configure Home Assistant with the speech to return and, optionally, the action to execute.
To get the webhook url, go to the integrations page in the configuration screen and find Dialogflow. Click on configure. Follow the instructions on the screen.
### {% linkable_title Configuring your Dialogflow account %}
- [Login](https://console.dialogflow.com/) with your Google account
@ -47,7 +49,7 @@ To use this integration, you should define a conversation (intent) in Dialogflow
- Select name, language (if you are planning to use Google Actions check their [supported languages](https://support.google.com/assistant/answer/7108196?hl=en)) and time zone
- Click "Save"
- Go to "Fulfillment" (in the left menu)
- Enable Webhook and set your Home Assistant URL with the Dialogflow endpoint, e.g., `https://myhome.duckdns.org/api/dialogflow?api_password=HA_PASSWORD`
- Enable Webhook and set your Dialogflow webhook url as the endpoint, e.g., `https://myhome.duckdns.org/api/webhook/800b4cb4d27d078a8871656a90854a292651b20635685f8ea23ddb7a09e8b417`
- Click "Save"
- Create a new intent
- Below "User says" write one phrase that you, the user, will tell Dialogflow, e.g., `What is the temperature at home?`

View File

@ -10,7 +10,7 @@ footer: true
logo: doorbird.png
ha_category: Doorbell
ha_release: "0.54"
ha_iot_class: "Local Polling"
ha_iot_class: "Local Push"
---
The `doorbird` implementation allows you to integrate your [DoorBird](http://www.doorbird.com/) device in Home Assistant.
@ -22,6 +22,7 @@ To connect your device, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
doorbird:
token: RANDOM_STRING
devices:
- host: DOORBIRD_IP_OR_HOSTNAME
username: YOUR_USERNAME
@ -38,6 +39,10 @@ doorbird:
```
{% configuration %}
token:
description: Token to be used to authenticate Doorbird calls to Home Assistant.
required: true
type: string
devices:
description: List of doorbird devices.
required: true
@ -83,8 +88,19 @@ The configuration above is also used by the following components:
Home Assistant will fire an event any time a `monitored_condition` happens on a doorstation. Event names are created using the format `doorbird_{station}_{event}` (Examples: `doorbird_side_entry_button`, `doorbird_side_entry_motion`). You can verify the assigned event names in the Home Assistant log file.
<p class="note warning">
Enabling any monitored condition will delete all registered notification services on the doorstation every time Home Assistant starts. This will not affect notifications delivered by the DoorBird mobile app.
<p class="note info">
Home Assistant will register the monitored conditions with the device as schedule entries that correspond to favorites on startup. If you remove monitored conditions from your configuration, Home Assistant will attempt to remove these items from the device. However, in some cases, such as if the IP address of the machine running Home Assistant changes or if the device is renamed in your configuration, this will not work correctly and some data will be left in device storage.
<br><br>
This should not cause any problems, but if you would like to remove it, open a new browser window and navigate to `{Home Assistant URL}/api/doorbird/clear/{DoorBird name}`. Replace `{Home Assistant URL}` with the full path to your running instance, such as `http://localhost:8123`. Replace `{DoorBird name}` with the name specified in your configuration for the device you would like to clear, or how it appears in the Home Assistant UI if you have not specified one, such as `DoorBird 1`. Then use the mobile app to reschedule push notifications.
<br><br>
Please note that clearing device registrations will prevent the device from sending pushes to Home Assistant until you restart your instance with the component enabled. It could also affect other third-party applications you may use with your DoorBird device. It will not break the official mobile app in any way, so mobile push notifications will still work.
</p>
#### {% linkable_title Event Data %}
Each event includes live image and live video URLs for the Doorbird device that triggered the event. These URLs can be found on the event data and can be useful in automation actions. For example, you could use `html5_viewer_url` on a notification to be linked directly to the live view of the device that triggered the automation.
<p class="note">
The URLs on the event will be based on the configuration used to connect to your Doorbird device. Ability to connect from outside your network will depend on your configuration.
</p>
### {% linkable_title Automation Example %}

View File

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

View File

@ -6,6 +6,7 @@ date: 2018-03-27 21:30
sidebar: true
comments: false
sharing: true
logo: afraid_freedns.png
footer: true
ha_category: Network
ha_release: 0.67

View File

@ -14,3 +14,52 @@ ha_release: "0.78"
Geo Location aware entities are typically related to events in the real world in the vicinity of Home Assistant's location, like for example weather events, bush fires or earthquakes.
Entities can have associated geo location coordinates (latitude and longitude) so that they are displayed on the map. The distance from the entity's coordinates to Home Assistant's location can be used for filtering.
## {% linkable_title Geo Location trigger %}
The [Geo Location trigger](/docs/automation/trigger/#geo-location-trigger) can be used in automations triggered by Geo Location entities appearing in or disappearing from zones. The following value must be used as `source` of the trigger depending on which platform is managing the entities:
| Platform | Source |
|----------------------------------|-------------------------------|
| GeoJSON Events | `geo_json_events` |
| NSW Rural Fire Service Incidents | `nsw_rural_fire_service_feed` |
Conditions can be used to further filter entities, for example by inspecting their state attributes.
## {% linkable_title Geo Location notification example %}
The following example automation creates a notification on the screen when a fire classified as 'Bush Fire' is reported within a predefined bush fire alert zone:
{% raw %}
```yaml
geo_location:
- platform: nsw_rural_fire_service_feed
categories:
- 'Emergency Warning'
- 'Watch and Act'
- 'Advice'
zone:
- name: Bush Fire Alert Zone
latitude: -36.666667
longitude: 149.833333
radius: 15000
passive: true
automation:
- alias: 'Bush Fire Alert'
trigger:
platform: geo_location
source: nsw_rural_fire_service_feed
zone: zone.bush_fire_alert_zone
event: enter
condition:
condition: template
value_template: "{{ trigger.to_state.attributes.type == 'Bush Fire' }}"
action:
- service: persistent_notification.create
data_template:
message: "{{ trigger.to_state.name }} - {{ trigger.to_state.attributes.status }}"
title: "Bush Fire Alert"
```
{% endraw %}

View File

@ -179,6 +179,7 @@ Currently, the following domains are available to be used with Google Assistant,
- cover (on/off/set position (via set brightness))
- media_player (on/off/set volume (via set brightness))
- climate (temperature setting)
- vacuum (dock/start/stop/pause)
### {% linkable_title Troubleshooting the request_sync service %}

View File

@ -0,0 +1,126 @@
---
layout: page
title: "GreenEye Monitor"
description: "Instructions on how to integrate your GreenEye Monitor within Home Assistant."
date: 2018-09-02 11:15
sidebar: true
comments: false
sharing: true
footer: true
logo: brultech.png
ha_category: Hub
ha_release: 0.82
ha_iot_class: "Local Push"
---
The [GreenEye Monitor (GEM)](http://www.brultech.com/greeneye/) integration for Home Assistant allows you to create sensors for the various data channels of the GEM. Each current transformer (CT) channel, pulse counter, and temperature sensor appears in Home Assistant as a sensor, and can be used in automations.
Configure your GEM(s) to produce binary-format packets (for example, "Bin32 NET" for a 32-channel GEM with some channels configured for net metering) and send them to an unused port on your Home Assistant machine. (These settings are in the "Packet Send" and "Network" pages of the GEM UI.) Then specify that port and information about your monitor(s) and the data channels you wish to monitor in your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
greeneye_monitor:
port: 8000
monitors:
- serial_number: YOUR_SERIAL_NUMBER
channels:
- number: 1
name: total_power
- number: 2
name: solar_panels_power
net_metering: true
pulse_counters:
- number: 1
name: sprinklers_water_usage
counted_quantity: "gal"
counted_quantity_per_pulse: 1
time_unit: "min"
temperature_sensors:
- number: 1
name: back_porch_temperature
```
By default, GEM will send updates every 5 seconds. That's a lot of data, and the databases used by the [`recorder`](/components/recorder) component for history don't do well with that much data, so it is recommended to configure the [`influxdb`](/components/influxdb) component and exclude the GEM sensors from `recorder`.
{% configuration %}
port:
description: The port on which Home Assistant should listen for packets from your GEM. Must match the port set in the "Network" tab of the GEM setup UI.
required: true
type: string
monitors:
description: The list of monitors that should appear in Home Assistant. Data from other monitors will be ignored.
required: false
type: list
keys:
serial_number:
description: The last five digits (omitting leading zeroes) of your GEM serial number.
required: true
type: integer
channels:
description: The list of channels that should appear in Home Assistant for this monitor. Data from other channels will be ignored.
required: false
type: list
keys:
number:
description: The channel number as it appears in the GEM UI.
required: true
type: integer
name:
description: The name that should be used for this channel's sensor in Home Assistant.
required: true
type: string
net_metering:
description: Set to `true` if the channel is configured for net metering in the GEM, otherwise `false`.
required: false
type: bool
default: false
temperature_sensors:
description: Configuration for temperature sensors
required: false
keys:
temperature_unit:
description: The unit of measure to use for the temperature (F or C)
type: string
required: true
sensors:
description: The list of temperature sensors that should appear in Home Assistant for this monitor. Data from other sensors will be ignored.
required: true
type: list
keys:
number:
description: The sensor number as it appears in the GEM UI.
required: true
type: integer
name:
description: The name that should be used for this sensor in Home Assistant.
required: true
type: string
pulse_counters:
description: The list of pulse counters that should appear in Home Assistant for this monitor. Data from other pulse counters will be ignored.
required: false
type: list
keys:
number:
description: The pulse counter's number as it appears in the GEM UI.
required: true
type: integer
name:
description: The name that should be used for this pulse counter in Home Assistant.
required: true
type: string
counted_quantity:
description: The unit being counted by this pulse counter (e.g., gal, L)
required: true
type: string
counted_quantity_per_pulse:
description: The number of the counted quantity represented by each pulse.
required: false
type: float
default: 1.0
time_unit:
description: The time unit to use when computing rates (s, min, or h)
required: false
type: string
default: s
{% endconfiguration %}

View File

@ -0,0 +1,163 @@
---
layout: page
title: "TensorFlow"
description: "Detect and recognize objects with TensorFlow."
date: 2018-10-24 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: tensorflow.png
ha_category: Image Processing
ha_iot_class: "Local Polling"
ha_release: 0.82
---
The `tensorflow` image processing platform allows you to detect and recognize objects in a camera image using [TensorFlow](https://www.tensorflow.org/). The state of the entity is the number of objects detected, and recognized objects are listed in the `summary` attribute along with quantity. The `matches` attribute provides the confidence `score` for recognition and the bounding `box` of the object for each detection category.
<p class='note warning'>
The following packages must be installed on Hassbian after following the setup for the component to work:
`$ sudo apt-get install libatlas-base-dev libopenjp2-7 libtiff5`
</p>
## {% linkable_title Setup %}
You need to install the `tensorflow` Python packages with: `$ pip3 install tensorflow`. The wheel is not available for all platforms. See [the official install guide](https://www.tensorflow.org/install/) for other options. Hass.io has this package pre-installed.
This component requires files to be downloaded, compiled on your computer, and added to the Home Assistant configuration directory. These steps can be performed using the sample script at [this gist](https://gist.github.com/hunterjm/6f9332f92b60c3d5e448ad936d7353c3). Alternatively, if you wish to perform the process manually, the process is as follows:
- Clone [tensorflow/models](https://github.com/tensorflow/models/tree/master/research/object_detection)
- Compile protobuf models located in `research/object_detection/protos` with `protoc`
- Create the following directory structure inside your config directory:
```bash
|- {config_dir}
| - tensorflow/
|- object_detection/
|- __init__.py
```
- Copy required object_detection dependancies to the `object_detection` folder inside of the `tensorflow` folder:
- `research/object_detection/data`
- `research/object_detection/utils`
- `research/object_detection/protos`
## {% linkable_title Model Selection %}
Lastly, it is time to pick a model. It is recommended to start with one of the COCO models available in the [Model Detection Zoo](https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md).
The trade-off between the different models is accuracy vs speed. Users with a decent CPU should start with the `faster_rcnn_inception_v2_coco` model. If you are running on an ARM device like a Raspberry Pi, start with the `ssd_mobilenet_v2_coco` model.
Whichever model you choose, download it and place the `frozen_inference_graph.pb` file in the `tensorflow` folder in your configuration directory.
## {% linkable_title Configuration %}
To enable this platform in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
image_processing:
- platform: tensorflow
source:
- entity_id: camera.local_file
model:
graph: /home/homeassistant/.homeassistant/tensorflow/frozen_inference_graph.pb
```
{% configuration %}
source:
description: The list of image sources.
required: true
type: map
keys:
entity_id:
description: A camera entity id to get picture from.
required: true
type: string
name:
description: This parameter allows you to override the name of your `image_processing` entity.
required: false
type: string
file_out:
description: A [template](/docs/configuration/templating/#processing-incoming-data) for the component to save processed images including bounding boxes. `camera_entity` is available as the `entity_id` string of the triggered source camera.
required: false
type: list
model:
description: Information about the TensorFlow model.
required: true
type: map
keys:
graph:
description: Full path to `frozen_inference_graph.pb`.
required: true
type: string
labels:
description: Full path to a `*label_map.pbtext`.
required: false
type: string
default: tensorflow/object_detection/data/mscoco_label_map.pbtxt
model_dir:
description: Full path to tensorflow models directory.
required: false
type: string
default: /tensorflow inside config
area:
description: Custom detection area. Only objects fully in this box will be reported. Top of image is 0, bottom is 1. Same left to right.
required: false
type: map
keys:
top:
description: Top line defined as % from top of image.
required: false
type: float
default: 0
left:
description: Left line defined as % from left of image.
required: false
type: float
default: 0
bottom:
description: Bottom line defined as % from top of image.
required: false
type: float
default: 1
right:
description: Right line defined as % from left of image.
required: false
type: float
default: 1
categories:
description: List of categories to include in object detection. Can be seen in the file provided to `labels`.
type: list
required: false
{% endconfiguration %}
`categories` can also be defined as dictionary providing an `area` for each category as seen in the advanced configuration below:
```yaml
# Example advanced configuration.yaml entry
image_processing:
- platform: tensorflow
source:
- entity_id: camera.driveway
- entity_id: camera.backyard
file_out:
- "/tmp/{% raw %}{{ camera_entity.split('.')[1] }}{% endraw %}_latest.jpg"
- "/tmp/{% raw %}{{ camera_entity.split('.')[1] }}_{{ now().strftime('%Y%m%d_%H%M%S') }}{% endraw %}.jpg"
model:
graph: /home/homeassistant/.homeassistant/tensorflow/frozen_inference_graph.pb
categories:
- category: person
area:
# Exclude top 10% of image
top: 0.1
# Exclude right 15% of image
right: 0.85
- car
- truck
```
## {% linkable_title Optimising resources %}
[Image processing components](https://www.home-assistant.io/components/image_processing/) process the image from a camera at a fixed period given by the `scan_interval`. This leads to excessive processing if the image on the camera hasn't changed, as the default `scan_interval` is 10 seconds. You can override this by adding to your config `scan_interval: 10000` (setting the interval to 10,000 seconds), and then call the `image_processing.scan` service when you actually want to perform processing.

View File

@ -102,10 +102,13 @@ automation:
entity_id: media_player.speaker
media_content_id: keyboard_connected.wav
media_content_type: music
- alias: Keyboard Disconnected
- alias: Bluetooth Keyboard Disconnected
trigger:
platform: event
event_type: keyboard_remote_disconnected
event_data:
device_name: "00:58:56:4C:C0:91"
action:
- service: media_player.play_media
data:

View File

@ -12,7 +12,27 @@ ha_category: Notifications
ha_release: 0.38
---
The component supports push messages and generates events based on inbound data. To generate inbound events, add a Route set to Store and Notify with a URL of the following form: `https://<home-assistant-domain>/api/mailgun?api_password=<password>`
To be able to receive events from Mailgun, 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 Mailgun. Click on configure. Follow the instructions on the screen to configure Mailgun.
You will get a URL of the following format: `https://<home-assistant-domain>/api/webhook/9940e99a26fae4dcf6fe0a478124b6b58b578ea4c55c9a584beb1c9f5057bb91`. To generate inbound events, add a Route set to Store and Notify with that url.
Events coming in from Mailgun will be available as events in Home Assistant and are fired as `mailgun_message_received`. The [data specified by Mailgun](https://www.mailgun.com/blog/a-guide-to-using-mailguns-webhooks) will be available as the event data. You can use this event to trigger automations.
You can then consume that information with the following automation:
```yaml
automation:
trigger:
platform: event
event_type: mailgun_message_received
event_data:
action: call_service
action:
service: light.turn_on
entity_id: light.office
```
To send messages, use the [Mailgun notify platform][notify].

View File

@ -80,6 +80,20 @@ List of source names:
- xm
- sirius
### {% linkable_title Service `onkyo_select_hdmi_output` %}
Changes HDMI output of your receiver
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | no | String or list of a single `entity_id` that will change output.
| `hdmi_output` | no | The desired output code.
Accepted values are:
'no', 'analog', 'yes', 'out', 'out-sub', 'sub', 'hdbaset', 'both', 'up'
which one to use seems to vary depending on model so you will have to try them out.
( For model TX-NR676E it seems to be 'out' for main, 'out-sub' for sub, and 'sub' for both )
### {% linkable_title Example `play_media` script %}
The `play_media` function can be used in script to play radio station by preset number.
@ -102,3 +116,19 @@ script:
media_content_id: "1"
```
### {% linkable_title Example `onkyo_select_hdmi_output` script %}
```yaml
# Example onkyo_select_hdmi_output script
#
script:
hdmi_sub:
alias: "Hdmi out projector"
sequence:
- service: media_player.onkyo_select_hdmi_output
service_data:
entity_id: media_player.onkyo
hdmi_output: out-sub
```

View File

@ -38,3 +38,13 @@ resource:
{% endconfiguration %}
To use notifications, please see the [getting started with automation page](/getting-started/automation/).
A full example of a service call:
```json
{"message": "This is a test message",
"data":{
"file_url":"https://example.com/wp-content/uploads/sites/14/2011/01/cat.jpg"
}
}
```

View File

@ -255,6 +255,97 @@ monitored_variables:
## {% linkable_title Supported Variables %}
The list above contains all supported variables. Note that not all boilers and thermostats properly support all variables, so the fact that a variable is listed here and published by your system does not necessarily mean that you will get useful data out of it. To see which variables are published in your situation, enable debug logging for the `opentherm_gw` component and look for the status updates.
# {% linkable_title Services %}
### {% linkable_title Service `opentherm_gw.reset_gateway` %}
Reset the OpenTherm Gateway.
This service takes no parameters.
### {% linkable_title Service `opentherm_gw.set_clock` %}
Provide the time and day of week to the OpenTherm Gateway. The value provided here will be forwarded to the thermostat on the next date/time request from the thermostat. The OpenTherm Gateway does not have the ability to accurately keep track of time, so it will only retain the information provided here for a maximum of about 61 seconds.
| Service data attribute | Optional | Default | Description |
| ---------------------- | -------- | ------- | ----------- |
| `date` | yes | Today's date | Date from which the day of week will be extracted. Format: `YYYY-MM-DD`.
| `time` | yes | Current time | Time in 24h format.
### {% linkable_title Service `opentherm_gw.set_control_setpoint` %}
<p class='note warning'>
Improper use of this service may continuously keep your central heating system active, resulting in an overheated house and a significant increase in gas and/or electricity consumption.
</p>
Set the central heating control setpoint override on the OpenTherm Gateway.
In a normal situation, the thermostat will calculate and control the central heating setpoint on the boiler. Setting this to any value other than 0 will enable the override and allow the OpenTherm Gateway to control this setting. While the override is active, the OpenTherm Gateway will also request your boiler to activate the central heating circuit. For your boiler's actual maximum and minimum supported setpoint value, please see the [`slave_ch_max_setp`](#slave_ch_max_setp) and [`slave_ch_min_setp`](#slave_ch_min_setp) variables. Due to the potential consequences of leaving this setting enabled for prolonged periods, the override will be disabled when Home Assistant is shut down or restarted.
**You will only need this if you are writing your own software thermostat.**
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `temperature` | no | The central heating setpoint. Values between `0.0` and `90.0` are accepted, but your boiler may not support the full range. Set to `0` to disable the override.
<p class='note'>
Please read [this information](http://otgw.tclcode.com/standalone.html) from the designer of the OpenTherm Gateway before considering to write your own software thermostat.
</p>
### {% linkable_title Service `opentherm_gw.set_gpio_mode` %}
Configure the GPIO behavior on the OpenTherm Gateway.
For an explanation of the possible modes, see [GPIO modes](#gpio-modes)
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `id` | no | The GPIO ID, `A` or `B`.
| `mode` | no | The GPIO mode to be set.
### {% linkable_title Service `opentherm_gw.set_led_mode` %}
Configure the function of the LEDs on the OpenTherm Gateway.
For a list of possible modes with explanation, see [LED modes](#led-modes)
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `id` | no | The LED ID, accepted values are `A` through `F`.
| `mode` | no | The LED mode to be set.
### {% linkable_title Service `opentherm_gw.set_max_modulation` %}
<p class='note warning'>
Improper use of this service may impair the performance of your central heating system.
</p>
Set the maximum modulation level override on the OpenTherm Gateway.
In a normal situation, the thermostat will control the maximum modulation level on the boiler. Setting this to any value other than `-1` will enable the override and allow the OpenTherm Gateway to control this setting. Due to the potential consequences of leaving this setting enabled, the override will be disabled when Home Assistant is shut down or restarted.
**You will only need this if you are writing your own software thermostat.**
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `level` | no | The maximum modulation level. Accepted values are `-1` through `100`. Set to `-1` to disable the override.
<p class='note'>
Please read [this information](http://otgw.tclcode.com/standalone.html) from the designer of the OpenTherm Gateway before considering to write your own software thermostat.
</p>
### {% linkable_title Service `opentherm_gw.set_outside_temperature` %}
Provide the outside temperature to the thermostat.
If your thermostat is unable to display an outside temperature and does not support OTC (Outside Temperature Correction), this has no effect. Note that not all thermostats are able to display the full supported range.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `temperature` | no | The outside temperature to provide to the thermostat. Accepted values are `-40.0` through `64.0`. Any value above `64.0` will clear a previously configured value (suggestion: `99`).
### {% linkable_title Service `opentherm_gw.set_setback_temperature` %}
Configure the setback temperature on the OpenTherm Gateway.
The value you provide here will be used with the GPIO `home` (5) and `away` (6) modes.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `temperature` | no | The setback temperature. Accepted values are `0.0` through `30.0`.
## {% linkable_title GPIO modes %}
Possible modes and their meaning for the GPIO pins are listed here:

View File

@ -93,6 +93,7 @@ Configuration variables:
- **apparent_temperature**: A numerical value representing the apparent (or "feels like") temperature.
- **dew_point**: The dew point.
- **wind_speed**: The wind speed.
- **wind_gust**: The wind gust.
- **wind_bearing**: Where the wind is coming from in degrees, with true north at 0° and progressing clockwise.
- **cloud_cover**: The percentage of sky occluded by clouds.
- **humidity**: The relative humidity.

View File

@ -0,0 +1,18 @@
---
layout: page
title: "GreenEye Monitor Sensors"
description: "Instructions on how to integrate the various sensors on your Greeneye Monitor into Home Assistant."
date: 2018-09-02 14:13
sidebar: true
comments: false
sharing: true
footer: true
logo: brultech.png
ha_category: Sensor
ha_iot_class: "Local Push"
ha_release: 0.82
---
The [GreenEye Monitor (GEM)](http://www.brultech.com/greeneye/) integration for Home Assistant allows you to create sensors for the various data channels of the GEM.
Add sensors via the configuration for the hub [GreenEye Monitor component](/components/greeneye_monitor/).

View File

@ -0,0 +1,86 @@
---
layout: page
title: "Météo-France Sensor"
description: "Show 1hr rain forecast from Météo-France."
date: 2018-10-18 08:00
sidebar: true
comments: false
sharing: true
footer: true
logo: meteo-france.png
ha_category: Sensor
featured: true
ha_release: 0.82
ha_iot_class: "Cloud Polling"
---
The `meteo_france` platform uses the [Météo-France](http://www.meteofrance.com/) web service as a source for meteorological data for your location. The location is based on the `postal_code` configured in your `configuration.yaml` file.
## {% linkable_title Configuration %}
To add Météo-France to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: meteo_france
postal_code: 76000
monitored_conditions:
- temperature
- weather
- wind_speed
- uv
- next_rain
- freeze_chance
- rain_chance
- snow_chance
- thunder_chance
```
{% configuration %}
postal_code:
description: Postal code of the city.
required: true
type: string
monitored_conditions:
description: The conditions types to monitor.
required: true
type: list
keys:
temperature:
description: The current temperature.
weather:
description: A human-readable text summary of the current conditions.
wind_speed:
description: The wind speed.
uv:
description: The current UV index.
next_rain:
description: Time to the next rain if happening for the next hour. (see note below)
freeze_chance:
description: Probability of temperature below 0°C for the day.
rain_chance:
description: Probability of rain for the day.
snow_chance:
description: Probability of snow for the day.
thunder_chance:
description: Probability of thunderstorm for the day.
{% endconfiguration %}
### {% linkable_title About `next_rain` condition sensor %}
<p class='note warning'>
The 1 hour rain forecast is supported for more than 75% of metropolitan France.<br/>
You can check if your city is covered on the [Météo-France website](http://www.meteofrance.com/previsions-meteo-france/previsions-pluie)
</p>
The `next_rain` sensor value is the time to next rain, from 0 to 55min.
If no rain is forecasted for the next hour, value will be "No rain".
Attributes also give the forecast for the next hour in 5min intervals.
Possible value for each intervals attributes are :
- 1 No rain
- 2 Light rain
- 3 Moderate rain
- 4 Heavy rain

View File

@ -43,6 +43,11 @@ ssl:
required: false
default: false
type: boolean
verify_ssl:
description: Whether Home Assistant should verify the SSL certificate from the inverter. Self-signed certificates may require `false` for this sensor to operate properly.
required: false
default: true
type: boolean
password:
description: The password of the SMA WebConnect module.
required: true

View File

@ -14,11 +14,11 @@ ha_release: 0.52
ha_qa_scale: internal
---
The `version` sensor platform is displaying the current version of Home Assistant in the frontend.
The `version` sensor platform that can display the current Home Assistant versions.
## {% linkable_title Configuration %}
To enable this sensor, add the following lines to your `configuration.yaml` file for a GET request:
To enable this sensor, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
@ -31,10 +31,29 @@ name:
description: Name to use in the frontend.
required: false
type: string
default: Current Version
default: Home Assistant Version
beta:
description: Flag to indicate that it will check for beta versions, only supported for the sources `pypi`, `hassio` and `docker`.
required: false
type: boolean
default: false
image:
description: The image you want to check against, this is only supported for `hassio`, see full list under.
required: false
type: string
default: default
source:
description: The source you want to check against, possible values are `local`, `pypi`, `hassio` and `docker`.
required: false
type: string
default: local
{% endconfiguration %}
## {% linkable_title Alternatives %}
### {% linkable_title Supported images for Hassio %}
`default`, `qemux86`, `qemux86-64`, `qemuarm`, `qemuarm-64`, `intel-nuc`, `raspberrypi`, `raspberrypi2`, `raspberrypi3`, `raspberrypi3-64`, `tinker`, `odroid-c2`, `odroid-xu`
## {% linkable_title Alternatives for showing local version %}
This sensor is an alternative to the existing solutions to achieve the same
result through various platforms.
@ -56,7 +75,7 @@ sensor:
command: "/home/homeassistant/bin/hass --version"
```
It's also possible to ready a file called `.HA_VERSION` which is located in your
It's also possible to read a file called `.HA_VERSION` which is located in your
Home Assistant [configuration](/docs/configuration/) folder.
```yaml
@ -68,7 +87,7 @@ sensor:
You might think that a [`rest` sensor](/components/sensor.rest/) could work,
too,
but it will not as Home Assistant is not ready when the sensor get initialized.
but it will not as Home Assistant is not ready when the sensor gets initialized.
{% raw %}
```yaml

View File

@ -1,58 +0,0 @@
---
layout: page
title: "Yahoo Finance"
description: "Instructions on how to setup Yahoo Finance within Home Assistant."
date: 2016-09-18 21:00
sidebar: true
comments: false
sharing: true
footer: true
logo: yahoo_finance.png
ha_category: Finance
ha_iot_class: "Cloud Polling"
featured: false
ha_release: 0.29
---
<p class='note warning'>
This sensor doesn't work anymore as [Yahoo!](https://yahoo.uservoice.com/forums/382977-finance/suggestions/32103877-yahoo-stock-quote-api-please-bring-back) decommissioned the service in early November 2017. A replacement is the [`alpha_vantage` sensor](/components/sensor.alpha_vantage/).
</p>
The `yahoo_finance` platform uses [Yahoo Finance](https://finance.yahoo.com/) to monitor the stock market.
## {% linkable_title Configuration %}
To enable the `yahoo_finance` platform, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: yahoo_finance
```
{% configuration %}
name:
description: The name of the sensor.
required: false
type: string
default: Yahoo Stock
symbols:
description: List of stock market symbols for given companies.
required: false
type: string, list
default: YHOO
{% endconfiguration %}
## {% linkable_title Examples %}
In this section you find some real-life examples of how to use this sensor.
### {% linkable_title Red Hat and Google %}
```yaml
sensor:
- platform: yahoo_finance
symbols:
- RHT
- GOOGL
```

View File

@ -30,7 +30,7 @@ Configuration variables:
- Alias for the command
- Command itself.
The commands can be dynamic, using templates to insert values for arguments. When using templates, shell_command runs in a more secure environment which doesn't allow any shell helpers like automatically expanding the home dir `~` or using pipe symbols to run multiple commands.
The commands can be dynamic, using templates to insert values for arguments. When using templates, shell_command runs in a more secure environment which doesn't allow any shell helpers like automatically expanding the home dir `~` or using pipe symbols to run multiple commands. Similarly, only content after the first space can be generated by a template. This means the command name itself cannot be generated by a template, but it must be literally provided.
Any service data passed into the service call to activate the shell command will be available as a variable within the template.

View File

@ -13,7 +13,7 @@ ha_release: "0.54"
ha_iot_class: "Local Push"
---
The `doorbird` switch platform allows you to power relays in your [DoorBird](http://www.doorbird.com/) video doorbell device.
The `doorbird` switch platform allows you to power connected relays and trigger the IR array in your [DoorBird](http://www.doorbird.com/) video doorbell device.
<p class='note'>
You must have the [DoorBird component](/components/doorbird/) configured to use this switch.
@ -25,19 +25,4 @@ To enable this switch, add the following lines to your `configuration.yaml` file
# Example configuration.yaml entry
switch:
- platform: doorbird
switches:
- light_on
- open_door
```
{% configuration %}
switches:
description: A list of switches to include. Possible entries are `light_on` for control of the IR array and `open_door` for control of an electronic door strike or alarm.
required: false
type: list
keys:
light_on:
description: Enable the IR light for 3 minutes.
open_door:
description: Activate DoorBird door relay
{% endconfiguration %}

View File

@ -41,3 +41,26 @@ auth_token:
### {% linkable_title Usage %}
After configuring the base Twilio component, add and configure either or both of the [twilio SMS](/components/notify.twilio_sms/) and [twilio Phone](/components/notify.twilio_call) components to utilize the notification functionality.
To be able to receive events from Twilio, 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 Twilio. Click on configure. Follow the instructions on the screen to configure Twilio.
You will get a URL of the following format: `https://<home-assistant-domain>/api/webhook/9940e99a26fae4dcf6fe0a478124b6b58b578ea4c55c9a584beb1c9f5057bb91`. To generate inbound events, you have to configure your webhooks with [Twilio](https://www.twilio.com/docs/glossary/what-is-a-webhook)
Events coming in from Twilio will be available as events in Home Assistant and are fired as `twilio_data_received`. The data specified by Twilio will be available as the event data. You can use this event to trigger automations.
You can then consume that information with the following automation:
```yaml
automation:
trigger:
platform: event
event_type: twilio_data_received
event_data:
action: call_service
action:
service: light.turn_on
entity_id: light.office
```

View File

@ -44,6 +44,8 @@ vacuum:
cleaning_template: "{{ value_json.cleaning }}"
docked_topic: "vacuum/state"
docked_template: "{{ value_json.docked }}"
error_topic: "vacuum/state"
error_template: "{{ value_json.error }}"
fan_speed_topic: "vacuum/state"
fan_speed_template: "{{ value_json.fan_speed }}"
set_fan_speed_topic: "vacuum/set_fan_speed"
@ -147,6 +149,14 @@ docked_template:
description: "Defines a [template](/topics/templating/) to define the docked state of the vacuum."
required: false
type: string
error_topic:
description: The MQTT topic subscribed to receive error messages from the vacuum.
required: false
type: string
error_template:
description: "Defines a [template](/topics/templating/) to define potential error messages emitted by the vacuum."
required: false
type: string
fan_speed_topic:
description: The MQTT topic subscribed to receive fan speed values from the vacuum.
required: false
@ -227,7 +237,8 @@ MQTT payload:
"docked": true,
"cleaning": false,
"charging": true,
"fan_speed": "off"
"fan_speed": "off",
"error": "Error message"
}
```

View File

@ -2,7 +2,7 @@
layout: page
title: "Belkin WeMo"
description: "Instructions on how to integrate Belkin WeMo devices into Home Assistant."
date: 2016-02-20 00:41
date: 2018-11-01 01:53
sidebar: true
comments: false
sharing: true
@ -17,41 +17,50 @@ The `wemo` component is the main component to integrate various [Belkin WeMo](ht
## {% linkable_title Configuration %}
Supported devices will be automatically discovered if the discovery component is enabled. Loading the `wemo` component will scan the local network for WeMo devices, even if you are not using the discovery component
```yaml
# Example configuration.yaml entry
wemo:
```
{% configuration %}
static:
description: One or more static IP adresses for WeMo to use
required: false
type: list
default: 1
discovery:
description: Setting this value to false will prevent the automatic discovery of WeMo devices by the wemo platform and the discovery platform (static devices will still be discovered)
required: false
type: boolean
default: true
{% endconfiguration %}
Alternately, WeMo devices that are not discoverable can be statically configured. If you have WeMo devices on subnets other than where Home Assistant is running, or devices in a remote location reachable over a VPN, you will need to configure them manually. This is also useful if you wish to disable discovery for some WeMo's, even if they are local. Example static configuration:
Supported devices will be automatically discovered if the optional `discovery` configuration item is omitted or set to true or if the `discovery` component is enabled. If the `discovery` configuration item is set to false, then automatic discovery of WeMo devices is disabled both for the `wemo` component and for the `discovery` component. Loading the `wemo` component with the `discovery` configuration item omitted or set to true will scan the local network for WeMo devices, even if you are not using the `discovery` component.
```yaml
# Example configuration.yaml entry with automatic discovery enabled (by omitting the discovery configuration item)
wemo:
# Example configuration.yaml entry with automatic discovery enabled (by explicitly setting the discovery configuration item)
wemo:
discovery: true
```
Alternately, WeMo devices that are not discoverable can be statically configured. If you have WeMo devices on subnets other than where Home Assistant is running, or devices in a remote location reachable over a VPN, you will need to configure them manually. Statically configured devices may be used with or without automatic discovery enabled. Example static configuration:
```yaml
# Example configuration.yaml entry with automatic discovery disabled, and 2 statically configured devices
wemo:
discovery: false
static:
- 192.168.1.23
- 192.168.52.172
```
Any WeMo devices that are not statically configured but reachable via discovery will still be added automatically.
Note that if you use static device entries, you may want to set up your router (or whatever runs your DHCP server) to force your WeMo devices to use a static IP address. Check the DHCP section of your router configuration for this ability.
Note that if you use this, you may want to set up your router (or whatever runs your DHCP server) to force your WeMo devices to use a static IP address. Check the DHCP section of your router configuration for this ability.
If the device doesn't seem to work and all you see is the state "unavailable" on your dashboard, check that your firewall doesn't block incoming request on port 8989 since this is the address to which the WeMo devices send their update.
If the device doesn't seem to work and all you see is the state "unavailable" on your dashboard, check that your firewall doesn't block incoming requests on port 8989, since this is the port to which the WeMo devices send their updates.
## {% linkable_title Emulated devices %}
Various software that emulates WeMo devices often uses alternative ports. Static configuration should include the port value:
Various software that emulate WeMo devices often use alternative ports. Static configuration should include the port value:
```yaml
# Example configuration.yaml entry with static device entries that include non-standard port numbers
wemo:
static:
- 192.168.1.23:52001

View File

@ -218,6 +218,21 @@ automation:
event: enter # or "leave"
```
### {% linkable_title Geo Location trigger %}
Geo Location triggers can trigger when an entity is appearing in or disappearing from a zone. Entities that are created by a [Geo Location](/components/geo_location/) platform support reporting GPS coordinates.
Because entities are generated and removed by these platforms automatically, the entity id normally cannot be predicted. Instead, this trigger requires the definition of a `source` which is directly linked to one of the Geo Location platforms.
```yaml
automation:
trigger:
platform: geo_location
source: nsw_rural_fire_service_feed
zone: zone.bushfire_alert_zone
# Event is either enter or leave
event: enter # or "leave"
```
### {% linkable_title Multiple triggers %}
When your want your automation rule to have multiple triggers, just prefix the first line of each trigger with a dash (-) and indent the next lines accordingly. Whenever one of the triggers fires, your rule is executed.

View File

@ -10,7 +10,7 @@ footer: true
redirect_from: /ecosystem/notebooks/installation/
---
To run Jupyter Notebooks locally, an installation of [Jupyter](http://jupyter.org/) is needed. Consider to run Jupyter in a [virtualenv](/getting-started/installation-virtualenv/).
To run Jupyter Notebooks locally, an installation of [Jupyter](http://jupyter.org/) is needed. Consider running Jupyter in a [virtualenv](/getting-started/installation-virtualenv/) in order to properly manage dependencies.
```bash
$ pip3 install jupyter matplotlib

View File

@ -124,18 +124,20 @@ type:
required: true
description: weblink
type: string
name:
required: true
description: Link label.
type: string
icon:
required: true
description: "Icon to display (e.g., `mdi:home`)"
type: string
url:
required: true
description: "Website URL (or internal URL e.g. `/hassio/dashboard` or `/panel_custom_name`)"
type: string
name:
required: false
description: Link label
type: string
default: url path
icon:
required: false
description: "Icon to display (e.g., `mdi:home`)"
type: string
default: "`mdi:link`"
{% endconfiguration %}
## {% linkable_title Example %}

View File

@ -0,0 +1,59 @@
---
layout: page
title: "Light Card"
sidebar_label: Light
description: "The Light card allows you to change the brightness of the light."
date: 2018-10-29 10:28 +00:00
sidebar: true
comments: false
sharing: true
footer: true
---
The Light card allows you to change the brightness of the light.
<p class='img'>
<img src='/images/lovelace/lovelace_light_card.png' alt='Screenshot of the Light card'>
Screenshot of the Light card.
</p>
```yaml
- type: light
entity: light.bedroom
- type: light
entity: light.office
```
{% configuration %}
type:
required: true
description: light
type: string
entity:
required: true
description: Home Assistant Light Domain entity ID.
type: string
name:
required: false
description: Overwrites friendly name.
type: string
default: Name of Entity
{% endconfiguration %}
## {% linkable_title Examples %}
Overwriting names example:
```yaml
- type: light
entity: light.bedroom
name: Kids Bedroom
- type: light
entity: light.office
name: My Office
```
<p class='img'>
<img src='/images/lovelace/lovelace_light_complex_card.png' alt='Screenshot of the Light card'>
Screenshot of the Light card names.
</p>

View File

@ -0,0 +1,657 @@
---
layout: post
title: "0.82: TensorFlow, Lovelace UI edit, Z-Wave Barrier Class"
description: "We are glad to inform you that yet another epic release has landed."
date: 2018-11-09 00:01:00
date_formatted: "November 9, 2018"
author: Paulus Schoutsen
author_twitter: balloob
comments: true
categories: Release-Notes
og_image: /images/blog/2018-11-release-82/lovelace-edit.png
---
It's time for another great release. As this includes the tail-end of HacktoberFest, it's packed again with stuff. Hope you like stuff.
I want to do a shout out to all the people who help with the documentation. Since the beginning of HacktoberFest, we've seen [953 PRs](https://github.com/home-assistant/home-assistant.io/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+closed%3A%3E2018-10-01) get merged, 953! Especially thanks to [@klaasnicolaas] who has converted 240 pages to the new configuration format. DAAAAANG.
We also got some cool new features. The first one being that you can now use TensorFlow, a machine learning framework, to detect objects on your cameras thanks to the hard work by [@hunterjm]. Check out [the docs][image_processing.tensorflow docs] for more info.
Next up is that [@rohankapoorcom] has been working hard on converting more integrations to the Webhook format. This allows for easy setting up via the UI and generates difficult to guess urls. This release includes Mailgun, Twilio and DialogFlow.
The frontend team has been [BUSY](https://github.com/home-assistant/home-assistant-polymer/pull/1974). We're prepping Lovelace for general release and slowly all pieces are coming together. This release introduces an experimental, alpha, ultra-raw, (enough warnings already?) UI editor for Lovelace cards. It requires that your card has an ID but then, it just works. Including a live preview of the config you're editing.
<p class='img'>
<img src='/images/blog/2018-11-release-82/lovelace-edit.png' alt='Screenshot of editing a Lovelace card'>
Screenshot of editing a Lovelace card.
</p>
Also frontend related, in version 0.81 we removed all config splitting functions for ui-lovelace.yaml, we are happy to report that we managed to add back support for `!secret` and `!include`. The rest of the config splitting commands you are used to in `configuration.yaml` will not be available for Lovelace. Mind that you can not edit content in `!include` from the UI, and `!secret` cannot be used in the UI or preview at the moment.
And we have one more thing… we have soft-forked Open Z-Wave and have added support for the barrier command class! This means that now you will be able to control your garage doors from Z-Wave without compiling Open Z-Wave yourself. We'll continue to monitor what other features we can add to our fork while remaining close to the OZW project.
## {% linkable_title New Platforms %}
- Add device tracking for the BT Smart Hub router ([@jxwolstenholme] - [#17158]) ([device_tracker docs]) (new-platform)
- Météo-france sensor : current weather and 1 hour rain forecast ([@victorcerutti] - [#17773]) ([sensor.meteo_france docs]) (new-platform)
- Support for WeMo Humidifier ([@sqldiablo] - [#17996]) ([wemo docs]) ([fan.wemo docs]) (new-platform)
- Add a component for GreenEye Monitor ([@jkeljo] - [#16378]) ([greeneye_monitor docs]) (new-platform)
- TensorFlow image_processing component ([@hunterjm] - [#17795]) ([image_processing.tensorflow docs]) (new-platform)
## {% linkable_title If you need help... %}
...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks.
## {% linkable_title Reporting Issues %}
Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template.
<!--more-->
## {% linkable_title Breaking Changes %}
- Migrate Mailgun to use the webhook component ([@rohankapoorcom] - [#17464]) ([ifttt docs]) ([mailgun docs]) ([notify docs]) ([automation.webhook docs]) (breaking change)
- Migrate twilio webhooks to the webhook component ([@rohankapoorcom] - [#17715]) ([twilio docs]) (breaking change)
- Fix Vera climate component to use correct states ([@sqldiablo] - [#17892]) ([climate.vera docs]) (breaking change)
- Migrate dialogflow over to the new webhook component ([@rohankapoorcom] - [#17804]) ([dialogflow docs]) ([http docs]) (breaking change)
- Update to DoorBirdPy v2 (again) ([@Klikini] - [#14933]) ([doorbird docs]) ([switch.doorbird docs]) (breaking change)
- Add binary sensors for sense energy monitor ([@kbickar] - [#17645]) ([sensor.sense docs]) (breaking change)
- Update Pollen.com to use numpy for trend analysis ([@bachya] - [#18107]) ([sensor.pollen docs]) (breaking change)
- Remove config (breaking change) ([@jjlawren] - [#18153]) ([ffmpeg docs]) (breaking change) (beta fix)
## {% linkable_title Beta Fixes %}
- SMA: Optional import in schema & backoff fix ([@kellerza] - [#18099]) (beta fix)
- Remove config (breaking change) ([@jjlawren] - [#18153]) ([ffmpeg docs]) (breaking change) (beta fix)
- Handle TensorFlow like OpenCV ([@pvizeli] - [#18185]) ([image_processing.tensorflow docs]) (beta fix)
- Add support for TensorFlow in official docker ([@pvizeli] - [#18191]) (beta fix)
- Cloud conf ([@balloob] - [#18216]) ([cloud docs]) (beta fix)
- Check if os has chown ([@bramkragten] - [#18229]) (beta fix)
- Update pynetgear to 0.5.1 ([@Arkkimaagi] - [#18238]) ([device_tracker docs]) (beta fix)
- Migrate python-openzwave to homeassistant-pyozw ([@pvizeli] - [#18268]) (beta fix)
- SMA Guard against older pysma ([@kellerza] - [#18278]) ([sensor.sma docs]) (beta fix)
- Bump pyotgw to 0.3b1 ([@mvn23] - [#18286]) ([opentherm_gw docs]) (beta fix)
- Fix log error message ([@pvizeli] - [#18305]) ([hassio docs]) (beta fix)
- Bump pyhaversion to 2.0.2 ([@ludeeus] - [#18318]) ([sensor.version docs]) (beta fix)
- Fix xiaomi binary_sensor warning ([@Danielhiversen] - [#18280]) ([binary_sensor.xiaomi_aqara docs]) (beta fix)
- Remove Velbus climate platform ([@balloob] - [#18319]) ([velbus docs]) (beta fix)
- fix last device ignored ([@abmantis] - [#18329]) ([device_tracker docs]) (beta fix)
## {% linkable_title All changes %}
- Mill, support more heater types ([@Danielhiversen] - [#17676]) ([climate.mill docs])
- Add missing hangouts data/image to notify service ([@quazzie] - [#17576]) ([notify docs])
- Fix Mexican Spanish identifier ([@manuel-jrs] - [#17674]) ([tts docs])
- Add readthedoc.yml file to specify the version of python to run during documentation building. ([@tmonck] - [#17642])
- All supported domains should be exposed by default ([@doudz] - [#17579]) ([google_assistant docs])
- Updated simplisafe-python to 3.1.13 ([@bachya] - [#17696]) ([simplisafe docs])
- Upgrade Sphinx to 1.8.1 ([@fabaff] - [#17701])
- Away mode temperature fix for generic thermostat ([@estevez-dev] - [#17641]) ([climate.generic_thermostat docs])
- Async version for asuswrt ([@kennedyshead] - [#17692]) ([device_tracker docs])
- Migrate Mailgun to use the webhook component ([@rohankapoorcom] - [#17464]) ([ifttt docs]) ([mailgun docs]) ([notify docs]) ([automation.webhook docs]) (breaking change)
- Only strip from the bluetooth name if it isn't None ([@d0ugal] - [#17719]) ([device_tracker docs])
- Just use debug instead of error if the binary_sensor does not get data ([@kennedyshead] - [#17720]) ([openuv docs])
- clean up clicksend ([@Danielhiversen] - [#17723]) ([notify docs])
- Set available property ([@ehendrix23] - [#17706]) ([august docs]) ([binary_sensor.august docs]) ([lock.august docs])
- Removes re-init ([@kennedyshead] - [#17724]) ([device_tracker docs])
- Don't call off_delay_listener if not needed ([@foxel] - [#17712]) ([binary_sensor.mqtt docs])
- Rename readthedocs file ([@fabaff] - [#17718])
- Add device tracking for the BT Smart Hub router ([@jxwolstenholme] - [#17158]) ([device_tracker docs]) (new-platform)
- Upgrade pytest to 3.9.2 ([@scop] - [#17736])
- Upgrade mypy to 0.641 ([@scop] - [#17734])
- IGD review fixes ([@StevenLooman] - [#17400]) ([upnp docs])
- Pytest tests ([@balloob] - [#17750])
- Remove webhook_id from yaml config for mailgun ([@rohankapoorcom] - [#17732]) ([mailgun docs])
- Update zha __init__.py to reflect new Zigbee name stylization by the Zigbee Alliance ([@Hedda] - [#17751]) ([zha docs])
- Clean up clicksend_tts ([@Danielhiversen] - [#17749]) ([notify docs])
- Convert auth websocket commands to use async_response decorator ([@balloob] - [#17755]) ([auth docs])
- Update name (fixes #17752) ([@fabaff] - [#17756]) ([zigbee docs]) ([binary_sensor.zha docs]) ([binary_sensor.zigbee docs]) ([switch.xiaomi_aqara docs]) ([switch.zigbee docs])
- Async tests for MQTT lock ([@kennedyshead] - [#17763])
- Async MQTT sensor room ([@kennedyshead] - [#17765])
- Add Mexican Spanish language ([@manuel-jrs] - [#17735]) ([tts docs])
- Add wind gust (fixes #17766) ([@fabaff] - [#17774]) ([sensor.darksky docs])
- Remove username from log entry ([@fabaff] - [#17777]) ([vacuum.roomba docs])
- Migrate twilio webhooks to the webhook component ([@rohankapoorcom] - [#17715]) ([twilio docs]) (breaking change)
- Testing async in MQTT_json lights ([@kennedyshead] - [#17768])
- This makes mqtt_template tests async ([@kennedyshead] - [#17784])
- Restore manual alarm-control-panel state using async_get_last_state ([@liaanvdm] - [#17521]) ([alarm_control_panel.manual docs])
- typo ([@janvanhelvoort] - [#17787]) ([zwave docs])
- Fix device reg considered changed ([@balloob] - [#17764])
- Allow creating signed urls ([@balloob] - [#17759]) ([auth docs]) ([http docs])
- Add contact sensors to alexa smart home ([@abmantis] - [#17704]) ([alexa docs])
- Upgrade flake8 to 3.6.0 ([@scop] - [#17770])
- Install face_recognition on Docker build ([@lights0123] - [#17502])
- Delete sensor.yahoo_finance ([@rohankapoorcom] - [#17805])
- deCONZ: configure service can now use 'field' as a subpath together with 'entity' ([@lbschenkel] - [#17722]) ([deconz docs])
- Bumped NDMS2 client to 0.0.5 to fix unicode characters support ([@foxel] - [#17803]) ([device_tracker docs])
- Upgrade numpy to 1.15.3 ([@fabaff] - [#17796]) ([binary_sensor.trend docs]) ([image_processing.opencv docs])
- MQTT Vacuum now passes error messages. ([@jeroenterheerdt] - [#17685]) ([vacuum.mqtt docs])
- Convert automation tests to async ([@balloob] - [#17794])
- Lovelace ws: add move command ([@bramkragten] - [#17806]) ([lovelace docs])
- Convert MQTT Light tests to async ([@balloob] - [#17754])
- Bumping aioasuswrt version ([@kennedyshead] - [#17814]) ([device_tracker docs])
- Minor changes ([@fabaff] - [#17812]) ([switch.dlink docs])
- Add snow to Openweathermap precipitation forecast ([@sgttrs] - [#17551]) ([weather.openweathermap docs])
- Add delete command ([@bramkragten] - [#17816]) ([lovelace docs])
- Raise PlatformNotReady for RMVtransport if API not available ([@cgtobi] - [#17635]) ([sensor.rmvtransport docs])
- Added vacuum dock and pause/unpause traits ([@mariuszluciow] - [#17657]) ([google_assistant docs])
- Minor changes to the config validation ([@fabaff] - [#17808]) ([sensor.sma docs])
- Alexa motion sensor ([@abmantis] - [#17798]) ([alexa docs])
- Mill device state attributes ([@Danielhiversen] - [#17834]) ([climate.mill docs])
- Fix Alexa unsupported operation_mode off ([@rwagoner] - [#17844]) ([alexa docs])
- adding myself as yessssms codeowner ([@flowolf] - [#17862])
- Switch to using Client from twilio.rest rather than the deleted TwilioRestClient ([@rohankapoorcom] - [#17883]) ([twilio docs])
- Fix Vera climate component to use correct states ([@sqldiablo] - [#17892]) ([climate.vera docs]) (breaking change)
- Add myself to CODEOWNERS for Yeelight Sunflower light platform ([@lindsaymarkward] - [#17896])
- Fix logi_circle sensor update method naming ([@evanjd] - [#17909]) ([sensor.logi_circle docs])
- Fix RFLink issue #17875 ([@emontnemery] - [#17889]) ([rflink docs])
- Corrected fan device type in google assistant to fan ([@mariuszluciow] - [#17792]) ([google_assistant docs])
- Migrate dialogflow over to the new webhook component ([@rohankapoorcom] - [#17804]) ([dialogflow docs]) ([http docs]) (breaking change)
- Fixes Telegram webhooks ([@luca-angemi] - [#17554]) ([telegram_bot docs])
- Start type annotating/testing helpers ([@scop] - [#17858])
- updated version of xknx ([@Julius2342] - [#17912]) ([knx docs])
- Updated Brunt code owner ([@eavanvalkenburg] - [#17854])
- Monitor all sensor types by default to rtorrent ([@terorie] - [#17894]) ([sensor.rtorrent docs])
- Merge conflicting changes ([@kennedyshead] - [#17761])
- Axis - prepare for config entry ([@Kane610] - [#17566]) ([axis docs]) ([binary_sensor.axis docs])
- Upgrade pytest to 3.9.3 ([@scop] - [#17921])
- Extract entity ids from all templates ([@amelchio] - [#17902]) ([binary_sensor.template docs])
- Make light.yeelight stop doing IO when accessing properties ([@rohankapoorcom] - [#17917]) ([light.yeelight docs])
- Fixes for upnp-component/#17753 and missing hass-data when only setup from config entry ([@StevenLooman] - [#17868]) ([upnp docs]) ([media_player.dlna_dmr docs])
- Fix for verify_ssl in the pi_hole sensor. ([@ludeeus] - [#17910]) ([sensor.pi_hole docs])
- Permissions improv ([@balloob] - [#17811])
- Fix incorrect chevy discovery ([@balloob] - [#17942]) ([mychevy docs])
- Fix venv check ([@balloob] - [#17939]) ([updater docs])
- Disable upnp from being discovered ([@balloob] - [#17937])
- Added codeowner for bt_smarthub ([@jxwolstenholme] - [#17947])
- Fixed copy-paste errors ([@mariuszluciow] - [#17948])
- Fix spelling error in log output ([@bitglue] - [#17963])
- Fix operation mode for Alexa thermostat ([@balloob] - [#17972]) ([alexa docs])
- Change source, add attributes, and improve state of DirecTV ([@ehendrix23] - [#17536]) ([media_player.directv docs])
- Update Alexa tests to async syntax ([@bitglue] - [#17965])
- Météo-france sensor : current weather and 1 hour rain forecast ([@victorcerutti] - [#17773]) ([sensor.meteo_france docs]) (new-platform)
- Updated ring_doorbell dependency to 0.2.2 ([@evanjd] - [#17945]) ([ring docs])
- Update Avi-On to work with latest API ([@antsar] - [#17780]) ([light.avion docs])
- Mill service ([@Danielhiversen] - [#17971]) ([climate.mill docs])
- Refactor Alexa API, fix thermostats ([@bitglue] - [#17969]) ([alexa docs])
- Upgrade aiofreepybox ([@stilllman] - [#17989]) ([device_tracker docs])
- Reverse out change #14234 BOM Weather throttle fix ([@nickw444] - [#17468]) ([sensor.bom docs])
- RFC: Static templates match no entities, not all ([@amelchio] - [#17991])
- Switch mailgun webhooks to the new Mailgun webhook api ([@rohankapoorcom] - [#17919]) ([mailgun docs])
- Change hebrew date at sunset ([@tsvi] - [#17449]) ([sensor.jewish_calendar docs])
- Import homeassistant domain instead of hardcoding it ([@scop] - [#17985]) ([websocket_api docs])
- Allow jinja namespace command to work. ([@NeilCrosby] - [#18011])
- Support for WeMo Humidifier ([@sqldiablo] - [#17996]) ([wemo docs]) ([fan.wemo docs]) (new-platform)
- Fix Bloomsky api call ([@dshokouhi] - [#18016]) ([bloomsky docs])
- Async version of melissa ([@kennedyshead] - [#17721])
- Upgrade to asuswrt 1.1.1 to better handle mac addresses with letters in them ([@halkeye] - [#18030]) ([device_tracker docs])
- Add SMA sensor SSL verification option ([@PhilRW] - [#18033]) ([sensor.sma docs])
- Use const.SUN_EVENT_* more ([@scop] - [#18039]) ([device_sun_light_trigger docs]) ([sun docs]) ([sensor.jewish_calendar docs]) ([switch.flux docs])
- Bumping aioasuswrt to 1.1.2 ([@kennedyshead] - [#18042]) ([device_tracker docs])
- Add services.yaml entry for new WeMo Humidifier platform service ([@sqldiablo] - [#18032])
- Add opentherm_gw services ([@mvn23] - [#17762]) ([opentherm_gw docs])
- Extract ruamel.yaml to util with secrets, lovelace ws decorators ([@bramkragten] - [#17958]) ([lovelace docs])
- Report correct thermostat mode to Alexa ([@bitglue] - [#18053]) ([alexa docs])
- Update SMA sensor to pysma 0.2.2 ([@kellerza] - [#17988]) ([sensor.sma docs])
- Mill, support opeation mode ([@Danielhiversen] - [#18059]) ([climate.mill docs])
- deCONZ - retry if setup fails ([@Kane610] - [#17772]) ([deconz docs]) ([binary_sensor.deconz docs]) ([cover.deconz docs]) ([light.deconz docs]) ([scene.deconz docs]) ([sensor.deconz docs]) ([switch.deconz docs])
- Add functionality to the version sensor ([@ludeeus] - [#18067]) ([sensor.version docs])
- remove schedule_update_ha_state from mill ([@Danielhiversen] - [#18080]) ([climate.mill docs])
- Fix camera mjpeg stream handling ([@awarecan] - [#18076]) ([camera docs]) ([camera.amcrest docs]) ([camera.arlo docs]) ([camera.canary docs]) ([camera.mjpeg docs]) ([camera.onvif docs]) ([camera.ring docs]) ([camera.synology docs]) ([camera.xiaomi docs]) ([camera.yi docs])
- Change test to parametrized test using pytest ([@tsvi] - [#18047])
- Add view commands to Lovelace ([@bramkragten] - [#18063]) ([lovelace docs])
- Add message template support for alert component ([@thoscut] - [#17516]) ([alert docs])
- Added identifier and name to connect/disconnect events ([@jaredquinn] - [#18078]) ([keyboard_remote docs])
- Fix in Daikin.py for set swing_mode and speed ([@MatteGary] - [#18013]) ([climate.daikin docs])
- Allow different types to match in pilight ([@akloeckner] - [#17922]) ([binary_sensor.pilight docs])
- Add a component for GreenEye Monitor ([@jkeljo] - [#16378]) ([greeneye_monitor docs]) (new-platform)
- HomematicIP_Cloud fix test ([@mxworm] - [#17376]) ([homematicip_cloud docs])
- Upgrade locationsharinglib to 3.0.7 ([@fabaff] - [#18083]) ([device_tracker docs])
- Upgrade sqlalchemy to 1.2.13 ([@fabaff] - [#18084]) ([sensor.sql docs])
- Upgrade youtube_dl to 2018.10.29 ([@fabaff] - [#18085]) ([media_extractor docs])
- Pass though file_url from extended data attrs ([@cmsimike] - [#17801]) ([notify docs])
- Upgrade psutil to 5.4.8 ([@fabaff] - [#18086]) ([sensor.systemmonitor docs])
- sensor/wunderground add device_class ([@simonvanderveldt] - [#18072]) ([sensor.wunderground docs])
- Upgrade restrictedpython to 4.0b6 ([@fabaff] - [#18087]) ([python_script docs])
- Upgrade georss_client to 0.4 ([@exxamalte] - [#18088]) ([geo_location docs])
- Catch KeyError if data is not available (fixes #18082) ([@fabaff] - [#18089]) ([sensor.openweathermap docs])
- Bump python-miio version ([@syssi] - [#18095]) ([device_tracker docs]) ([fan.xiaomi_miio docs]) ([light.xiaomi_miio docs]) ([remote.xiaomi_miio docs]) ([sensor.xiaomi_miio docs]) ([switch.xiaomi_miio docs]) ([vacuum.xiaomi_miio docs])
- Update Pollen.com sensor platform to include asthma info ([@bachya] - [#18024]) ([sensor.pollen docs])
- Use a fixture for dialogflow calls in unit tests ([@rohankapoorcom] - [#17999])
- Don't try to re-add existing Z-Wave entities ([@cgarwood] - [#17995]) ([zwave docs])
- Always save current position if payload is numeric value ([@pszafer] - [#16148]) ([cover.mqtt docs])
- Darksky: Fetch summary for daily forecasts ([@leppa] - [#18031]) ([sensor.darksky docs])
- Update to DoorBirdPy v2 (again) ([@Klikini] - [#14933]) ([doorbird docs]) ([switch.doorbird docs]) (breaking change)
- Ignore min_cycle_duration when manually controlling the thermostat. ([@aronsky] - [#16128]) ([climate.generic_thermostat docs])
- Add surround programs to zone 2+ ([@Petro31] - [#17445]) ([media_player.yamaha docs])
- Removed assumptions about provided upnp data ([@WoLpH] - [#17604]) ([upnp docs])
- Add binary sensors for sense energy monitor ([@kbickar] - [#17645]) ([sensor.sense docs]) (breaking change)
- Use ssdp udn uuid as Samsung TV unique id ([@scop] - [#18022]) ([media_player.samsungtv docs])
- Allow MS face detection to handle updating entities when no face is detected ([@NeilCrosby] - [#17593]) ([image_processing.microsoft_face_detect docs]) ([image_processing.microsoft_face_identify docs])
- Added service select_video_output and video_out attribute ([@leothlon] - [#18081]) ([media_player.onkyo docs])
- Darksky: Round all temperatures to 1 decimal place ([@leppa] - [#18119]) ([sensor.darksky docs])
- Convert nsw rural fire tests to async ([@armills] - [#18112])
- Adding climate.velbus support ([@Cereal2nd] - [#18100]) ([velbus docs])
- Changed from pifacecommon 4.1.2 to 4.2.2 to make the piface digital i/o boards work on rpi like 3 ([@vacumet] - [#18101]) ([rpi_pfio docs])
- Update Pollen.com to use numpy for trend analysis ([@bachya] - [#18107]) ([sensor.pollen docs]) (breaking change)
- Exposes initial attribute on the entity. ([@ludeeus] - [#18123]) ([input_number docs])
- Async generic thermostat tests ([@armills] - [#18111])
- Update fan/demo tests to async ([@armills] - [#18109])
- Don't create a switch for POE device if said device is Cloud key ([@Kane610] - [#18117]) ([switch.unifi docs])
- TensorFlow image_processing component ([@hunterjm] - [#17795]) ([image_processing.tensorflow docs]) (new-platform)
- Fix DTE Energy Bridge V2 scaling issue. (#18124) ([@mtl010957] - [#18129]) ([sensor.dte_energy_bridge docs])
- Add optional ttl config to route53 component ([@pascal-de-ladurantaye] - [#18135]) ([route53 docs])
- Allow disabling WeMo Discovery ([@sqldiablo] - [#18079]) ([wemo docs])
- Fix typos and update docstrings ([@fabaff] - [#18137]) ([lovelace docs])
- Fix hassio command timeout ([@alex9446] - [#17567]) ([hassio docs])
- SMA: Optional import in schema & backoff fix ([@kellerza] - [#18099]) (beta fix)
- Remove config (breaking change) ([@jjlawren] - [#18153]) ([ffmpeg docs]) (breaking change) (beta fix)
- Handle TensorFlow like OpenCV ([@pvizeli] - [#18185]) ([image_processing.tensorflow docs]) (beta fix)
- Add support for TensorFlow in official docker ([@pvizeli] - [#18191]) (beta fix)
- Cloud conf ([@balloob] - [#18216]) ([cloud docs]) (beta fix)
- Check if os has chown ([@bramkragten] - [#18229]) (beta fix)
- Update pynetgear to 0.5.1 ([@Arkkimaagi] - [#18238]) ([device_tracker docs]) (beta fix)
- Migrate python-openzwave to homeassistant-pyozw ([@pvizeli] - [#18268]) (beta fix)
- SMA Guard against older pysma ([@kellerza] - [#18278]) ([sensor.sma docs]) (beta fix)
- Bump pyotgw to 0.3b1 ([@mvn23] - [#18286]) ([opentherm_gw docs]) (beta fix)
- Fix log error message ([@pvizeli] - [#18305]) ([hassio docs]) (beta fix)
- Bump pyhaversion to 2.0.2 ([@ludeeus] - [#18318]) ([sensor.version docs]) (beta fix)
- Fix xiaomi binary_sensor warning ([@Danielhiversen] - [#18280]) ([binary_sensor.xiaomi_aqara docs]) (beta fix)
- Remove Velbus climate platform ([@balloob] - [#18319]) ([velbus docs]) (beta fix)
- fix last device ignored ([@abmantis] - [#18329]) ([device_tracker docs]) (beta fix)
[#14933]: https://github.com/home-assistant/home-assistant/pull/14933
[#16128]: https://github.com/home-assistant/home-assistant/pull/16128
[#16148]: https://github.com/home-assistant/home-assistant/pull/16148
[#16378]: https://github.com/home-assistant/home-assistant/pull/16378
[#17158]: https://github.com/home-assistant/home-assistant/pull/17158
[#17376]: https://github.com/home-assistant/home-assistant/pull/17376
[#17400]: https://github.com/home-assistant/home-assistant/pull/17400
[#17445]: https://github.com/home-assistant/home-assistant/pull/17445
[#17449]: https://github.com/home-assistant/home-assistant/pull/17449
[#17464]: https://github.com/home-assistant/home-assistant/pull/17464
[#17468]: https://github.com/home-assistant/home-assistant/pull/17468
[#17502]: https://github.com/home-assistant/home-assistant/pull/17502
[#17516]: https://github.com/home-assistant/home-assistant/pull/17516
[#17521]: https://github.com/home-assistant/home-assistant/pull/17521
[#17536]: https://github.com/home-assistant/home-assistant/pull/17536
[#17551]: https://github.com/home-assistant/home-assistant/pull/17551
[#17554]: https://github.com/home-assistant/home-assistant/pull/17554
[#17566]: https://github.com/home-assistant/home-assistant/pull/17566
[#17567]: https://github.com/home-assistant/home-assistant/pull/17567
[#17576]: https://github.com/home-assistant/home-assistant/pull/17576
[#17579]: https://github.com/home-assistant/home-assistant/pull/17579
[#17593]: https://github.com/home-assistant/home-assistant/pull/17593
[#17604]: https://github.com/home-assistant/home-assistant/pull/17604
[#17635]: https://github.com/home-assistant/home-assistant/pull/17635
[#17641]: https://github.com/home-assistant/home-assistant/pull/17641
[#17642]: https://github.com/home-assistant/home-assistant/pull/17642
[#17645]: https://github.com/home-assistant/home-assistant/pull/17645
[#17657]: https://github.com/home-assistant/home-assistant/pull/17657
[#17674]: https://github.com/home-assistant/home-assistant/pull/17674
[#17676]: https://github.com/home-assistant/home-assistant/pull/17676
[#17685]: https://github.com/home-assistant/home-assistant/pull/17685
[#17692]: https://github.com/home-assistant/home-assistant/pull/17692
[#17696]: https://github.com/home-assistant/home-assistant/pull/17696
[#17701]: https://github.com/home-assistant/home-assistant/pull/17701
[#17704]: https://github.com/home-assistant/home-assistant/pull/17704
[#17706]: https://github.com/home-assistant/home-assistant/pull/17706
[#17712]: https://github.com/home-assistant/home-assistant/pull/17712
[#17715]: https://github.com/home-assistant/home-assistant/pull/17715
[#17718]: https://github.com/home-assistant/home-assistant/pull/17718
[#17719]: https://github.com/home-assistant/home-assistant/pull/17719
[#17720]: https://github.com/home-assistant/home-assistant/pull/17720
[#17721]: https://github.com/home-assistant/home-assistant/pull/17721
[#17722]: https://github.com/home-assistant/home-assistant/pull/17722
[#17723]: https://github.com/home-assistant/home-assistant/pull/17723
[#17724]: https://github.com/home-assistant/home-assistant/pull/17724
[#17732]: https://github.com/home-assistant/home-assistant/pull/17732
[#17734]: https://github.com/home-assistant/home-assistant/pull/17734
[#17735]: https://github.com/home-assistant/home-assistant/pull/17735
[#17736]: https://github.com/home-assistant/home-assistant/pull/17736
[#17749]: https://github.com/home-assistant/home-assistant/pull/17749
[#17750]: https://github.com/home-assistant/home-assistant/pull/17750
[#17751]: https://github.com/home-assistant/home-assistant/pull/17751
[#17754]: https://github.com/home-assistant/home-assistant/pull/17754
[#17755]: https://github.com/home-assistant/home-assistant/pull/17755
[#17756]: https://github.com/home-assistant/home-assistant/pull/17756
[#17759]: https://github.com/home-assistant/home-assistant/pull/17759
[#17761]: https://github.com/home-assistant/home-assistant/pull/17761
[#17762]: https://github.com/home-assistant/home-assistant/pull/17762
[#17763]: https://github.com/home-assistant/home-assistant/pull/17763
[#17764]: https://github.com/home-assistant/home-assistant/pull/17764
[#17765]: https://github.com/home-assistant/home-assistant/pull/17765
[#17768]: https://github.com/home-assistant/home-assistant/pull/17768
[#17770]: https://github.com/home-assistant/home-assistant/pull/17770
[#17772]: https://github.com/home-assistant/home-assistant/pull/17772
[#17773]: https://github.com/home-assistant/home-assistant/pull/17773
[#17774]: https://github.com/home-assistant/home-assistant/pull/17774
[#17777]: https://github.com/home-assistant/home-assistant/pull/17777
[#17780]: https://github.com/home-assistant/home-assistant/pull/17780
[#17784]: https://github.com/home-assistant/home-assistant/pull/17784
[#17787]: https://github.com/home-assistant/home-assistant/pull/17787
[#17792]: https://github.com/home-assistant/home-assistant/pull/17792
[#17794]: https://github.com/home-assistant/home-assistant/pull/17794
[#17795]: https://github.com/home-assistant/home-assistant/pull/17795
[#17796]: https://github.com/home-assistant/home-assistant/pull/17796
[#17798]: https://github.com/home-assistant/home-assistant/pull/17798
[#17801]: https://github.com/home-assistant/home-assistant/pull/17801
[#17803]: https://github.com/home-assistant/home-assistant/pull/17803
[#17804]: https://github.com/home-assistant/home-assistant/pull/17804
[#17805]: https://github.com/home-assistant/home-assistant/pull/17805
[#17806]: https://github.com/home-assistant/home-assistant/pull/17806
[#17808]: https://github.com/home-assistant/home-assistant/pull/17808
[#17811]: https://github.com/home-assistant/home-assistant/pull/17811
[#17812]: https://github.com/home-assistant/home-assistant/pull/17812
[#17814]: https://github.com/home-assistant/home-assistant/pull/17814
[#17816]: https://github.com/home-assistant/home-assistant/pull/17816
[#17834]: https://github.com/home-assistant/home-assistant/pull/17834
[#17844]: https://github.com/home-assistant/home-assistant/pull/17844
[#17854]: https://github.com/home-assistant/home-assistant/pull/17854
[#17858]: https://github.com/home-assistant/home-assistant/pull/17858
[#17862]: https://github.com/home-assistant/home-assistant/pull/17862
[#17868]: https://github.com/home-assistant/home-assistant/pull/17868
[#17883]: https://github.com/home-assistant/home-assistant/pull/17883
[#17889]: https://github.com/home-assistant/home-assistant/pull/17889
[#17892]: https://github.com/home-assistant/home-assistant/pull/17892
[#17894]: https://github.com/home-assistant/home-assistant/pull/17894
[#17896]: https://github.com/home-assistant/home-assistant/pull/17896
[#17902]: https://github.com/home-assistant/home-assistant/pull/17902
[#17909]: https://github.com/home-assistant/home-assistant/pull/17909
[#17910]: https://github.com/home-assistant/home-assistant/pull/17910
[#17912]: https://github.com/home-assistant/home-assistant/pull/17912
[#17917]: https://github.com/home-assistant/home-assistant/pull/17917
[#17919]: https://github.com/home-assistant/home-assistant/pull/17919
[#17921]: https://github.com/home-assistant/home-assistant/pull/17921
[#17922]: https://github.com/home-assistant/home-assistant/pull/17922
[#17937]: https://github.com/home-assistant/home-assistant/pull/17937
[#17939]: https://github.com/home-assistant/home-assistant/pull/17939
[#17942]: https://github.com/home-assistant/home-assistant/pull/17942
[#17945]: https://github.com/home-assistant/home-assistant/pull/17945
[#17947]: https://github.com/home-assistant/home-assistant/pull/17947
[#17948]: https://github.com/home-assistant/home-assistant/pull/17948
[#17958]: https://github.com/home-assistant/home-assistant/pull/17958
[#17963]: https://github.com/home-assistant/home-assistant/pull/17963
[#17965]: https://github.com/home-assistant/home-assistant/pull/17965
[#17969]: https://github.com/home-assistant/home-assistant/pull/17969
[#17971]: https://github.com/home-assistant/home-assistant/pull/17971
[#17972]: https://github.com/home-assistant/home-assistant/pull/17972
[#17985]: https://github.com/home-assistant/home-assistant/pull/17985
[#17988]: https://github.com/home-assistant/home-assistant/pull/17988
[#17989]: https://github.com/home-assistant/home-assistant/pull/17989
[#17991]: https://github.com/home-assistant/home-assistant/pull/17991
[#17995]: https://github.com/home-assistant/home-assistant/pull/17995
[#17996]: https://github.com/home-assistant/home-assistant/pull/17996
[#17999]: https://github.com/home-assistant/home-assistant/pull/17999
[#18011]: https://github.com/home-assistant/home-assistant/pull/18011
[#18013]: https://github.com/home-assistant/home-assistant/pull/18013
[#18016]: https://github.com/home-assistant/home-assistant/pull/18016
[#18022]: https://github.com/home-assistant/home-assistant/pull/18022
[#18024]: https://github.com/home-assistant/home-assistant/pull/18024
[#18030]: https://github.com/home-assistant/home-assistant/pull/18030
[#18031]: https://github.com/home-assistant/home-assistant/pull/18031
[#18032]: https://github.com/home-assistant/home-assistant/pull/18032
[#18033]: https://github.com/home-assistant/home-assistant/pull/18033
[#18039]: https://github.com/home-assistant/home-assistant/pull/18039
[#18042]: https://github.com/home-assistant/home-assistant/pull/18042
[#18047]: https://github.com/home-assistant/home-assistant/pull/18047
[#18053]: https://github.com/home-assistant/home-assistant/pull/18053
[#18059]: https://github.com/home-assistant/home-assistant/pull/18059
[#18063]: https://github.com/home-assistant/home-assistant/pull/18063
[#18067]: https://github.com/home-assistant/home-assistant/pull/18067
[#18072]: https://github.com/home-assistant/home-assistant/pull/18072
[#18076]: https://github.com/home-assistant/home-assistant/pull/18076
[#18078]: https://github.com/home-assistant/home-assistant/pull/18078
[#18079]: https://github.com/home-assistant/home-assistant/pull/18079
[#18080]: https://github.com/home-assistant/home-assistant/pull/18080
[#18081]: https://github.com/home-assistant/home-assistant/pull/18081
[#18083]: https://github.com/home-assistant/home-assistant/pull/18083
[#18084]: https://github.com/home-assistant/home-assistant/pull/18084
[#18085]: https://github.com/home-assistant/home-assistant/pull/18085
[#18086]: https://github.com/home-assistant/home-assistant/pull/18086
[#18087]: https://github.com/home-assistant/home-assistant/pull/18087
[#18088]: https://github.com/home-assistant/home-assistant/pull/18088
[#18089]: https://github.com/home-assistant/home-assistant/pull/18089
[#18095]: https://github.com/home-assistant/home-assistant/pull/18095
[#18099]: https://github.com/home-assistant/home-assistant/pull/18099
[#18100]: https://github.com/home-assistant/home-assistant/pull/18100
[#18101]: https://github.com/home-assistant/home-assistant/pull/18101
[#18107]: https://github.com/home-assistant/home-assistant/pull/18107
[#18109]: https://github.com/home-assistant/home-assistant/pull/18109
[#18111]: https://github.com/home-assistant/home-assistant/pull/18111
[#18112]: https://github.com/home-assistant/home-assistant/pull/18112
[#18117]: https://github.com/home-assistant/home-assistant/pull/18117
[#18119]: https://github.com/home-assistant/home-assistant/pull/18119
[#18123]: https://github.com/home-assistant/home-assistant/pull/18123
[#18129]: https://github.com/home-assistant/home-assistant/pull/18129
[#18135]: https://github.com/home-assistant/home-assistant/pull/18135
[#18137]: https://github.com/home-assistant/home-assistant/pull/18137
[#18153]: https://github.com/home-assistant/home-assistant/pull/18153
[#18185]: https://github.com/home-assistant/home-assistant/pull/18185
[#18191]: https://github.com/home-assistant/home-assistant/pull/18191
[#18216]: https://github.com/home-assistant/home-assistant/pull/18216
[#18229]: https://github.com/home-assistant/home-assistant/pull/18229
[#18238]: https://github.com/home-assistant/home-assistant/pull/18238
[#18268]: https://github.com/home-assistant/home-assistant/pull/18268
[#18278]: https://github.com/home-assistant/home-assistant/pull/18278
[#18280]: https://github.com/home-assistant/home-assistant/pull/18280
[#18286]: https://github.com/home-assistant/home-assistant/pull/18286
[#18305]: https://github.com/home-assistant/home-assistant/pull/18305
[#18318]: https://github.com/home-assistant/home-assistant/pull/18318
[#18319]: https://github.com/home-assistant/home-assistant/pull/18319
[#18329]: https://github.com/home-assistant/home-assistant/pull/18329
[@klaasnicolaas]: https://github.com/klaasnicolaas
[@Arkkimaagi]: https://github.com/Arkkimaagi
[@Cereal2nd]: https://github.com/Cereal2nd
[@Danielhiversen]: https://github.com/Danielhiversen
[@Hedda]: https://github.com/Hedda
[@Julius2342]: https://github.com/Julius2342
[@Kane610]: https://github.com/Kane610
[@Klikini]: https://github.com/Klikini
[@MatteGary]: https://github.com/MatteGary
[@NeilCrosby]: https://github.com/NeilCrosby
[@Petro31]: https://github.com/Petro31
[@PhilRW]: https://github.com/PhilRW
[@StevenLooman]: https://github.com/StevenLooman
[@WoLpH]: https://github.com/WoLpH
[@abmantis]: https://github.com/abmantis
[@akloeckner]: https://github.com/akloeckner
[@alex9446]: https://github.com/alex9446
[@amelchio]: https://github.com/amelchio
[@antsar]: https://github.com/antsar
[@armills]: https://github.com/armills
[@aronsky]: https://github.com/aronsky
[@awarecan]: https://github.com/awarecan
[@bachya]: https://github.com/bachya
[@balloob]: https://github.com/balloob
[@bitglue]: https://github.com/bitglue
[@bramkragten]: https://github.com/bramkragten
[@cgarwood]: https://github.com/cgarwood
[@cgtobi]: https://github.com/cgtobi
[@cmsimike]: https://github.com/cmsimike
[@d0ugal]: https://github.com/d0ugal
[@doudz]: https://github.com/doudz
[@dshokouhi]: https://github.com/dshokouhi
[@eavanvalkenburg]: https://github.com/eavanvalkenburg
[@ehendrix23]: https://github.com/ehendrix23
[@emontnemery]: https://github.com/emontnemery
[@estevez-dev]: https://github.com/estevez-dev
[@evanjd]: https://github.com/evanjd
[@exxamalte]: https://github.com/exxamalte
[@fabaff]: https://github.com/fabaff
[@flowolf]: https://github.com/flowolf
[@foxel]: https://github.com/foxel
[@halkeye]: https://github.com/halkeye
[@hunterjm]: https://github.com/hunterjm
[@janvanhelvoort]: https://github.com/janvanhelvoort
[@jaredquinn]: https://github.com/jaredquinn
[@jeroenterheerdt]: https://github.com/jeroenterheerdt
[@jjlawren]: https://github.com/jjlawren
[@jkeljo]: https://github.com/jkeljo
[@jxwolstenholme]: https://github.com/jxwolstenholme
[@kbickar]: https://github.com/kbickar
[@kellerza]: https://github.com/kellerza
[@kennedyshead]: https://github.com/kennedyshead
[@lbschenkel]: https://github.com/lbschenkel
[@leothlon]: https://github.com/leothlon
[@leppa]: https://github.com/leppa
[@liaanvdm]: https://github.com/liaanvdm
[@lights0123]: https://github.com/lights0123
[@lindsaymarkward]: https://github.com/lindsaymarkward
[@luca-angemi]: https://github.com/luca-angemi
[@ludeeus]: https://github.com/ludeeus
[@manuel-jrs]: https://github.com/manuel-jrs
[@mariuszluciow]: https://github.com/mariuszluciow
[@mtl010957]: https://github.com/mtl010957
[@mvn23]: https://github.com/mvn23
[@mxworm]: https://github.com/mxworm
[@nickw444]: https://github.com/nickw444
[@pascal-de-ladurantaye]: https://github.com/pascal-de-ladurantaye
[@pszafer]: https://github.com/pszafer
[@pvizeli]: https://github.com/pvizeli
[@quazzie]: https://github.com/quazzie
[@rohankapoorcom]: https://github.com/rohankapoorcom
[@rwagoner]: https://github.com/rwagoner
[@scop]: https://github.com/scop
[@sgttrs]: https://github.com/sgttrs
[@simonvanderveldt]: https://github.com/simonvanderveldt
[@sqldiablo]: https://github.com/sqldiablo
[@stilllman]: https://github.com/stilllman
[@syssi]: https://github.com/syssi
[@terorie]: https://github.com/terorie
[@thoscut]: https://github.com/thoscut
[@tmonck]: https://github.com/tmonck
[@tsvi]: https://github.com/tsvi
[@vacumet]: https://github.com/vacumet
[@victorcerutti]: https://github.com/victorcerutti
[alarm_control_panel.manual docs]: /components/alarm_control_panel.manual/
[alert docs]: /components/alert/
[alexa docs]: /components/alexa/
[august docs]: /components/august/
[auth docs]: /components/auth/
[automation.webhook docs]: /docs/automation/trigger/#webhook-trigger
[axis docs]: /components/axis/
[binary_sensor.august docs]: /components/binary_sensor.august/
[binary_sensor.axis docs]: /components/binary_sensor.axis/
[binary_sensor.deconz docs]: /components/binary_sensor.deconz/
[binary_sensor.mqtt docs]: /components/binary_sensor.mqtt/
[binary_sensor.pilight docs]: /components/binary_sensor.pilight/
[binary_sensor.template docs]: /components/binary_sensor.template/
[binary_sensor.trend docs]: /components/binary_sensor.trend/
[binary_sensor.xiaomi_aqara docs]: /components/binary_sensor.xiaomi_aqara/
[binary_sensor.zha docs]: /components/binary_sensor.zha/
[binary_sensor.zigbee docs]: /components/binary_sensor.zigbee/
[bloomsky docs]: /components/bloomsky/
[camera docs]: /components/camera/
[camera.amcrest docs]: /components/camera.amcrest/
[camera.arlo docs]: /components/camera.arlo/
[camera.canary docs]: /components/camera.canary/
[camera.mjpeg docs]: /components/camera.mjpeg/
[camera.onvif docs]: /components/camera.onvif/
[camera.ring docs]: /components/camera.ring/
[camera.synology docs]: /components/camera.synology/
[camera.xiaomi docs]: /components/camera.xiaomi/
[camera.yi docs]: /components/camera.yi/
[climate.daikin docs]: /components/climate.daikin/
[climate.generic_thermostat docs]: /components/climate.generic_thermostat/
[climate.mill docs]: /components/climate.mill/
[climate.velbus docs]: /components/climate.velbus/
[climate.vera docs]: /components/climate.vera/
[cloud docs]: /components/cloud/
[cover.deconz docs]: /components/cover.deconz/
[cover.mqtt docs]: /components/cover.mqtt/
[deconz docs]: /components/deconz/
[device_sun_light_trigger docs]: /components/device_sun_light_trigger/
[device_tracker docs]: /components/device_tracker/
[dialogflow docs]: /components/dialogflow/
[doorbird docs]: /components/doorbird/
[fan.wemo docs]: /components/fan.wemo/
[fan.xiaomi_miio docs]: /components/fan.xiaomi_miio/
[ffmpeg docs]: /components/ffmpeg/
[geo_location docs]: /components/geo_location/
[google_assistant docs]: /components/google_assistant/
[greeneye_monitor docs]: /components/greeneye_monitor/
[hassio docs]: /components/hassio/
[homematicip_cloud docs]: /components/homematicip_cloud/
[http docs]: /components/http/
[ifttt docs]: /components/ifttt/
[image_processing.microsoft_face_detect docs]: /components/image_processing.microsoft_face_detect/
[image_processing.microsoft_face_identify docs]: /components/image_processing.microsoft_face_identify/
[image_processing.opencv docs]: /components/image_processing.opencv/
[image_processing.tensorflow docs]: /components/image_processing.tensorflow/
[input_number docs]: /components/input_number/
[keyboard_remote docs]: /components/keyboard_remote/
[knx docs]: /components/knx/
[light.avion docs]: /components/light.avion/
[light.deconz docs]: /components/light.deconz/
[light.xiaomi_miio docs]: /components/light.xiaomi_miio/
[light.yeelight docs]: /components/light.yeelight/
[lock.august docs]: /components/lock.august/
[lovelace docs]: /components/lovelace/
[mailgun docs]: /components/mailgun/
[media_extractor docs]: /components/media_extractor/
[media_player.directv docs]: /components/media_player.directv/
[media_player.dlna_dmr docs]: /components/media_player.dlna_dmr/
[media_player.onkyo docs]: /components/media_player.onkyo/
[media_player.samsungtv docs]: /components/media_player.samsungtv/
[media_player.yamaha docs]: /components/media_player.yamaha/
[mychevy docs]: /components/mychevy/
[notify docs]: /components/notify/
[opentherm_gw docs]: /components/opentherm_gw/
[openuv docs]: /components/openuv/
[python_script docs]: /components/python_script/
[remote.xiaomi_miio docs]: /components/remote.xiaomi_miio/
[rflink docs]: /components/rflink/
[ring docs]: /components/ring/
[route53 docs]: /components/route53/
[rpi_pfio docs]: /components/rpi_pfio/
[scene.deconz docs]: /components/scene.deconz/
[sensor.bom docs]: /components/sensor.bom/
[sensor.darksky docs]: /components/sensor.darksky/
[sensor.deconz docs]: /components/sensor.deconz/
[sensor.dte_energy_bridge docs]: /components/sensor.dte_energy_bridge/
[sensor.greeneye_monitor_current docs]: /components/sensor.greeneye_monitor_current/
[sensor.greeneye_monitor_pulse docs]: /components/sensor.greeneye_monitor_pulse/
[sensor.greeneye_monitor_temperature docs]: /components/sensor.greeneye_monitor_temperature/
[sensor.igd docs]: /components/sensor.igd/
[sensor.jewish_calendar docs]: /components/sensor.jewish_calendar/
[sensor.logi_circle docs]: /components/sensor.logi_circle/
[sensor.meteo_france docs]: /components/sensor.meteo_france/
[sensor.openweathermap docs]: /components/sensor.openweathermap/
[sensor.pi_hole docs]: /components/sensor.pi_hole/
[sensor.pollen docs]: /components/sensor.pollen/
[sensor.rmvtransport docs]: /components/sensor.rmvtransport/
[sensor.rtorrent docs]: /components/sensor.rtorrent/
[sensor.sense docs]: /components/sensor.sense/
[sensor.sma docs]: /components/sensor.sma/
[sensor.sql docs]: /components/sensor.sql/
[sensor.systemmonitor docs]: /components/sensor.systemmonitor/
[sensor.version docs]: /components/sensor.version/
[sensor.wunderground docs]: /components/sensor.wunderground/
[sensor.xiaomi_miio docs]: /components/sensor.xiaomi_miio/
[sensor.yahoo_finance docs]: /components/sensor.yahoo_finance/
[simplisafe docs]: /components/simplisafe/
[sun docs]: /components/sun/
[switch.deconz docs]: /components/switch.deconz/
[switch.dlink docs]: /components/switch.dlink/
[switch.doorbird docs]: /components/switch.doorbird/
[switch.flux docs]: /components/switch.flux/
[switch.unifi docs]: /components/switch.unifi/
[switch.xiaomi_aqara docs]: /components/switch.xiaomi_aqara/
[switch.xiaomi_miio docs]: /components/switch.xiaomi_miio/
[switch.zigbee docs]: /components/switch.zigbee/
[telegram_bot docs]: /components/telegram_bot/
[tts docs]: /components/tts/
[twilio docs]: /components/twilio/
[updater docs]: /components/updater/
[upnp docs]: /components/upnp/
[vacuum.mqtt docs]: /components/vacuum.mqtt/
[vacuum.roomba docs]: /components/vacuum.roomba/
[vacuum.xiaomi_miio docs]: /components/vacuum.xiaomi_miio/
[velbus docs]: /components/velbus/
[weather.openweathermap docs]: /components/weather.openweathermap/
[websocket_api docs]: /components/websocket_api/
[wemo docs]: /components/wemo/
[zha docs]: /components/zha/
[zigbee docs]: /components/zigbee/
[zwave docs]: /components/zwave/

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB