From f0509a8422112c839ab44bb6a14097331e7be333 Mon Sep 17 00:00:00 2001 From: mdegat01 Date: Thu, 16 Jul 2020 04:03:59 -0400 Subject: [PATCH 01/40] Add doc for new `ignore_attributes` option (#13981) Added documentation for new config options added with https://github.com/home-assistant/core/pull/37747 --- source/_integrations/influxdb.markdown | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/source/_integrations/influxdb.markdown b/source/_integrations/influxdb.markdown index 30b012d1be5..d927a7db136 100644 --- a/source/_integrations/influxdb.markdown +++ b/source/_integrations/influxdb.markdown @@ -148,6 +148,10 @@ tags_attributes: description: The list of attribute names which should be reported as tags and not fields to InfluxDB. For example, if set to `friendly_name`, it will be possible to group by entities' friendly names as well, in addition to their ids. required: false default: 0 +ignore_attributes: + type: [string, list] + description: The list of attribute names to ignore when reporting to InfluxDB. This can be used to filter out attributes that either don't change or don't matter to you in order to reduce the amount of data stored in InfluxDB. + required: false component_config: type: string required: false @@ -157,6 +161,10 @@ component_config: type: string description: Measurement name to use instead of a unit or default measurement. This will store all data points in a single measurement. required: false + ignore_attributes: + type: [string, list] + description: The list of attribute names to ignore when reporting to InfluxDB. Will be merged with the default `ignore_attributes` list when processing a state change event for a particular entity. + required: false component_config_domain: type: string required: false @@ -166,6 +174,10 @@ component_config_domain: type: string description: Measurement name to use instead of a unit or default measurement. This will store all data points in a single measurement. required: false + ignore_attributes: + type: [string, list] + description: The list of attribute names to ignore when reporting to InfluxDB. Will be merged with the default `ignore_attributes` list when processing a state change event for a particular entity. + required: false component_config_glob: type: string required: false @@ -175,6 +187,10 @@ component_config_glob: type: string description: Measurement name to use instead of unit or default measurement. This will store all data points in a single measurement. required: false + ignore_attributes: + type: [string, list] + description: The list of attribute names to ignore when reporting to InfluxDB. Will be merged with the default `ignore_attributes` list when processing a state change event for a particular entity. + required: false {% endconfiguration %} ## Configure Filter From 0733e04e75640827db05a0a580b7220e9c0fbd18 Mon Sep 17 00:00:00 2001 From: Thorjan Knudsvik Date: Sun, 19 Jul 2020 01:19:18 +0200 Subject: [PATCH 02/40] Adds median to min_max component (#13723) --- source/_integrations/min_max.markdown | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/_integrations/min_max.markdown b/source/_integrations/min_max.markdown index 09a610c1e28..8ef22fc64ae 100644 --- a/source/_integrations/min_max.markdown +++ b/source/_integrations/min_max.markdown @@ -11,9 +11,9 @@ ha_codeowners: ha_domain: min_max --- -The `min_max` sensor platform consumes the state from other sensors to determine the minimum, maximum, latest (last) and the mean of the collected states. The sensor will always show you the lowest/highest/latest value which was received from all monitored sensors. If you have spikes in your values, it's recommended to filter/equalize your values with a [statistics sensor](/integrations/statistics) first. +The `min_max` sensor platform consumes the state from other sensors to determine the minimum, maximum, latest (last), mean and median of the collected states. The sensor will always show you the lowest/highest/latest value which was received from all monitored sensors. If you have spikes in your values, it's recommended to filter/equalize your values with a [statistics sensor](/integrations/statistics) first. -This sensor is an alternative to the [template sensor](/integrations/template)'s `value_template:` to get the average of multiple sensors. +This sensor is an alternative to the [template sensor](/integrations/template)'s `value_template:` to get the average or the median of multiple sensors. {% raw %} ```yaml @@ -46,7 +46,7 @@ entity_ids: required: true type: [list, string] type: - description: "The type of sensor: `min`, `max`, `last` or `mean`." + description: "The type of sensor: `min`, `max`, `last`, `mean` or `median`." required: false default: max type: string @@ -55,7 +55,7 @@ name: required: false type: string round_digits: - description: Round mean value to specified number of digits. + description: Round mean or median value to specified number of digits. required: false type: integer default: 2 From 0f0b00e9af82c4d65808a4dc8062a6db2e722679 Mon Sep 17 00:00:00 2001 From: lawtancool <26829131+lawtancool@users.noreply.github.com> Date: Mon, 20 Jul 2020 07:20:25 -0700 Subject: [PATCH 03/40] Add documentation for Control4 integration (#13941) Co-authored-by: Franck Nijhof --- source/_integrations/control4.markdown | 34 ++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 source/_integrations/control4.markdown diff --git a/source/_integrations/control4.markdown b/source/_integrations/control4.markdown new file mode 100644 index 00000000000..6a5b0dee6f2 --- /dev/null +++ b/source/_integrations/control4.markdown @@ -0,0 +1,34 @@ +--- +title: "Control4" +description: "Instructions on adding a Control4 system to Home Assistant." +ha_release: "0.114" +ha_category: Light +ha_iot_class: "Local Polling" +ha_quality_scale: silver +ha_config_flow: true +ha_codeowners: + - '@lawtancool' +ha_domain: control4 +--- + +The Control4 integration allows you to control and monitor lights from your local Control4 system. Your Control4 controller must be running OS 3.0+. + +## Configuration + +Before setting up, you should assign a static IP address/DHCP reservation on your router to your Control4 controller. Home Assistant must be able to communicate with the controller over the local network; 4Sight remote access is not supported. + +Setup the Control4 integration by going to **Configuration** -> **Integrations** -> **Control4**. + +Enter the IP address of your controller and your Control4 username and password, then continue. Home Assistant will automatically add all lights it discovers in your Control4 system. + +## Options + +The Control4 integration offers additional options in **Configuration** -> **Integrations** -> **Control4** -> **Options**: + +{% configuration %} +Seconds between updates: + description: How often Home Assistant will poll the Control4 controller for state updates. Very frequent polling could cause the controller to lag, especially with many devices. + required: false + type: integer + default: 5 +{% endconfiguration %} From da89f9c9d4c6245de5e05cb468c8563e8436bef2 Mon Sep 17 00:00:00 2001 From: Xiaonan Shen Date: Mon, 20 Jul 2020 22:28:34 +0800 Subject: [PATCH 04/40] Change pi_hole services (#13495) --- source/_integrations/pi_hole.markdown | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/source/_integrations/pi_hole.markdown b/source/_integrations/pi_hole.markdown index 8bd055ec130..6471d7080fb 100644 --- a/source/_integrations/pi_hole.markdown +++ b/source/_integrations/pi_hole.markdown @@ -3,6 +3,8 @@ title: Pi-hole description: Instructions on how to integrate Pi-hole with Home Assistant. ha_category: - System Monitor + - Sensor + - Switch ha_iot_class: Local Polling ha_config_flow: true ha_release: 0.28 @@ -34,8 +36,6 @@ host: name: description: > The name for this Pi-hole. This name will be a part of the sensors created, e.g., `name: My Awesome Pi-hole` would result in sensor names beginning with `sensor.my_awesome_pi_hole_`. - - **Note:** If you configure multiple Pi-holes, each one *must* have a unique name. required: false type: string default: Pi-hole @@ -99,7 +99,9 @@ pi_hole: ## Services -The platform provides the following services to interact with your Pi-hole. +The platform provides the following services to interact with your Pi-hole. Use switch entities when calling the services. + +_Note: Switch entity requires `api_key` to be configured._ ### Service `pi_hole.disable` @@ -107,19 +109,5 @@ Disables configured Pi-hole(s) for the specified amount of time. | Service data attribute | Required | Type | Description | | ---------------------- | -------- | -------- | ----------- | +| `entity_id` | `False` | string | Target switch entity. Use `all` to target all Pi-hole services | | `duration` | `True` | timedelta | Time for which Pi-hole should be disabled | -| `name` | `False` | string | If preset, disables the named Pi-hole, otherwise, disables all configured Pi-holes | - -_Note: This service requires `api_key` to be specified in the configuration._ - -### Service `pi_hole.enable` - -Enables configured Pi-holes(s). - -| Service data attribute | Required | Type | Description | -| ---------------------- | -------- | -------- | ----------- | -| `name` | `False` | string | If preset, enables the named Pi-hole, otherwise, enables all configured Pi-holes | - -_Note: This service requires `api_key` to be specified in the configuration._ - -This integration was not made by Pi-hole LLC or the Pi-hole community. They did not provide support, feedback, testing, or any other help during its creation. This is a third party platform which may break if Pi-hole changes their API in a later release. It is not official, not developed, not supported, and not endorsed Pi-hole LLC or the Pi-hole community. The trademark `Pi-hole` and the logo is used here to describe the platform. `Pi-hole` is a registered trademark of Pi-hole LLC. From 9b4334ffae1bbb82fb14ecf557ec8168ad035fe8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kr=C3=B3l?= Date: Mon, 20 Jul 2020 16:28:52 +0200 Subject: [PATCH 05/40] Add WolfLink SmartSet documentation (#12917) * Add WolfLink SmartSet documentation * :pencil2: Tweaks * :arrow_up: HA version 0.114 Co-authored-by: Franck Nijhof Co-authored-by: Franck Nijhof --- source/_integrations/wolflink.markdown | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 source/_integrations/wolflink.markdown diff --git a/source/_integrations/wolflink.markdown b/source/_integrations/wolflink.markdown new file mode 100644 index 00000000000..2ccc62d429d --- /dev/null +++ b/source/_integrations/wolflink.markdown @@ -0,0 +1,28 @@ +--- +title: Wolflink +description: Instructions on how to integrate Wolf Smart-Set cloud within Home Assistant. +ha_category: + - Heating +ha_release: 0.114 +ha_iot_class: Cloud Polling +ha_config_flow: true +ha_codeowners: + - '@adamkrol93' +ha_domain: wolflink +--- + +The `wolflink` integration uses the [Wolf Smart-Set](https://www.wolf-smartset.com/) web service as a source to fetch your heating system status. + +Currently, integration can collect information such as temperature, pressure and heating state. + +Remember that to integrate your heating device with Home Assistant, you need to have a WOLF LinkHome device connected to your heating device. + +The integration fetches all data based on parameters, that are exposed by your heating device. + +### Tested devices + +This integration is with Wolf Link Home Pro connected to a FGB-28 device. + +## Configuration + +To add WolfLink to your installation, go to **Configuration** >> **Integrations** in the UI, click the button with `+` sign and from the list of integrations select **WOLF SmartSet**. From fd15bca404dac071b18fdb7d249a75802979a565 Mon Sep 17 00:00:00 2001 From: Perry Naseck Date: Mon, 20 Jul 2020 10:31:11 -0400 Subject: [PATCH 06/40] Add Firmata integration docs (#13508) Co-authored-by: Klaas Schoute --- source/_integrations/firmata.markdown | 149 ++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 source/_integrations/firmata.markdown diff --git a/source/_integrations/firmata.markdown b/source/_integrations/firmata.markdown new file mode 100644 index 00000000000..b6084093074 --- /dev/null +++ b/source/_integrations/firmata.markdown @@ -0,0 +1,149 @@ +--- +title: Firmata +description: "Connect Arduino-compatible boards within Home Assistant" +ha_category: + - DIY + - Binary Sensor + - Switch +ha_release: 0.114 +ha_iot_class: Local Push +ha_codeowners: + - '@DaAwesomeP' +ha_domain: firmata +--- + +[Firmata](https://github.com/firmata/protocol) can be used to add digital inputs and outputs to Home Assistant. Currently, this component supports high/low digital inputs and outputs. This allows for buttons, switches, motion detectors, relay control, etc. The component can currently connect to a Firmata board via serial or serial over USB. + +The Firmata protocol is a standard protocol for microcontrollers. Most of these boards are support digital and analog inputs and outputs. [Arduino](https://www.arduino.cc/) and Arduino-compatible microcontroller development boards are the most popular boards to use with Firmata. + +There is currently support for the following device types within Home Assistant: + +- [Binary Sensor](#binary_sensor) +- [Switch](#switches) + +## Configuration + +You will need to upload a [Firmata firmware](https://github.com/firmata/) to your board. Please upload any `StandardFirmata` sketch to your board; please refer to the [Arduino documentation](https://www.arduino.cc/en/Main/Howto) for further information for uploading sketches. Firmata is available in the Arduino Library Manager in the Arduino IDE. You may also use a [Firmata Express](https://github.com/MrYsLab/FirmataExpress). + +To integrate Arduino boards with Home Assistant, add the following section to your `configuration.yaml` file: + +
+Firmata does not store the last state across power cycles. This means that with every powerup the pins are set to off/low and after every initialization, they will be set to the default that you have configured in YAML. +
+ +
+ +Firmata may cycle pins HIGH/LOW during initialization. If your pins should not be accidentally cycled, you may need to modify your Firmtata sketch or if you are using a relay board use an output pin as VCC. See this issue for details: [Make initial pin value configurable](https://github.com/firmata/arduino/issues/166). + +
+ +You may configure multiple Firmata boards. Each board has the following options: + +{% configuration %} +serial_port: + description: The port where your board is connected to your Home Assistant host. It is recommended to use the `by-id` reference (instead of numerical like `/dev/ttyACM0` or `/dev/ttyUSB0`) since these will never change after a reboot. If you are using HassOS, you can find a list of connected serial devices in the Hardware dialog on the System tab of the Supervisor. + required: true + type: string +serial_baud_rate: + description: The baud rate of the Arduino sketch. If you are using Firmata Express, then you do not need to set this option. **If you are using the default StandardFirmata, then you should set this to `57600`.** + required: false + type: integer +arduino_instance_id: + description: If you are using Firmata Express, then this should match the instance number that you set in the sketch. + required: false + type: integer +arduino_wait: + description: Time in seconds to wait for the Arduino is initially respond. May need to be used for boards that respond slowly at first connection. + required: false + type: integer +sleep_tune: + description: Time in seconds to wait for reply from the Arduino after sending a command. Rarely needs to be adjusted. + required: false + type: float +sampling_interval: + description: Sampling interval in millseconds sent to Firmata. Most Firmata sketches will ignore any interval less than 10 milliseconds. + required: false + type: integer +switches: + description: Digital high/low outputs to configure + required: false + type: list + keys: + name: + description: The name of the entity to create in Home Assistant + required: true + type: string + pin: + description: The digital pin number on the board. + required: true + type: integer + pin_mode: + description: The digital pin output mode. For switches, this must be set to `OUTPUT`. No other output modes are currently implemented. + required: true + type: integer + initial: + description: The initial output of the pin after initialization. Note that this is inverted if `negate` is enabled. + required: false + default: False + type: boolean + negate: + description: Flips the output of the digital pin + required: false + default: False + type: boolean +binary_sensor: + description: Digital high/low input to configure + required: false + type: list + keys: + name: + description: The name of the entity to create in Home Assistant + required: true + type: string + pin: + description: The digital pin number on the board. + required: true + type: integer + pin_mode: + description: The digital pin input mode. Supported modes are `INPUT` and `PULLUP`. Check your board specifications to see which pins have optional internal pullups available. + required: true + type: integer + negate: + description: Flips the input of the digital pin + required: false + default: False + type: boolean +{% endconfiguration %} + +
+If you double-configure a pin, the integration will fail to configure the second one that it attempts to set up and will log an error. +
+ +```yaml +# Example firmata configuration.yaml entry +firmata: + - serial_port: /dev/serial/by-id/usb-Teensyduino_USB_Serial_358320-if00 + serial_baud_rate: 57600 + switches: + - name: my_light + pin_mode: OUTPUT + pin: 4 + negate: true + - name: my_other_output + pin_mode: OUTPUT + pin: 5 + initial: true + - name: my_light + pin_mode: OUTPUT + pin: 6 + initial: true + negate: true + binary_sensors: + - name: my_motion + pin_mode: INPUT + pin: 2 + - name: my_door + pin_mode: PULLUP + pin: 3 + negate: true +``` From 6f846f718bad7c6fae74ca9859965d470b4f8074 Mon Sep 17 00:00:00 2001 From: Donnie Date: Wed, 22 Jul 2020 03:33:07 -0700 Subject: [PATCH 07/40] Update light.markdown with default transition (#13738) Co-authored-by: Franck Nijhof --- source/_integrations/light.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_integrations/light.markdown b/source/_integrations/light.markdown index 895b943ed9e..71ede78fe02 100644 --- a/source/_integrations/light.markdown +++ b/source/_integrations/light.markdown @@ -12,7 +12,7 @@ This integration allows you to track and control various light bulbs. Read the i ### Default turn-on values -To set the default color and brightness values when the light is turned on, create a custom `light_profiles.csv` (as described below in the `profile` attribute of `light.turn_on`). +To set the default color, brightness and transition values when the light is turned on, create a custom `light_profiles.csv` (as described below in the `profile` attribute of `light.turn_on`). The `.default` suffix should be added to the entity identifier of each light to define a default value, e.g., for `light.ceiling_2` the `id` field is `light.ceiling_2.default`. To define a default for all lights, the identifier `group.all_lights.default` can be used. Individual settings always supercede the `all_lights` default setting. @@ -26,7 +26,7 @@ Most lights do not support all attributes. You can check the integration documen | ---------------------- | -------- | ----------- | | `entity_id` | no | String or list of strings that point at `entity_id`s of lights. To target all the lights use all as `entity_id`. | `transition` | yes | Number that represents the time (in seconds) the light should take to transition to the new state. -| `profile` | yes | String with the name of one of the [built-in profiles](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/light/light_profiles.csv) (relax, energize, concentrate, reading) or one of the custom profiles defined in `light_profiles.csv` in the current working directory. Light profiles define an xy color and a brightness. If a profile is given and a brightness then the profile brightness will be overwritten. +| `profile` | yes | String with the name of one of the [built-in profiles](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/light/light_profiles.csv) (relax, energize, concentrate, reading) or one of the custom profiles defined in `light_profiles.csv` in the current working directory. Light profiles define an xy color, brightness and a transition value (if no transition is desired, set to 0 or leave out the column entirely). If a profile is given, and a brightness is set, then the profile brightness will be overwritten. | `hs_color` | yes | A list containing two floats representing the hue and saturation of the color you want the light to be. Hue is scaled 0-360, and saturation is scaled 0-100. | `xy_color` | yes | A list containing two floats representing the xy color you want the light to be. Two comma-separated floats that represent the color in XY. You can find a great chart here: [Hue Color Chart](https://developers.meethue.com/documentation/core-concepts#color_gets_more_complicated). | `rgb_color` | yes | A list containing three integers between 0 and 255 representing the RGB color you want the light to be. Three comma-separated integers that represent the color in RGB, within square brackets. Note that the specified RGB value will not change the light brightness, only the color. From 70f5dd5f9238cb2c85edc2eee3fd351935231544 Mon Sep 17 00:00:00 2001 From: Phil Bruckner Date: Wed, 22 Jul 2020 08:55:31 -0500 Subject: [PATCH 08/40] Explain what happens to calling script when called script has errors (#14059) --- source/_integrations/script.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/_integrations/script.markdown b/source/_integrations/script.markdown index 9f7dbe592e4..e74ae03f9ef 100644 --- a/source/_integrations/script.markdown +++ b/source/_integrations/script.markdown @@ -203,14 +203,17 @@ script: ### Waiting for Script to Complete When calling a script "directly" (e.g., `script.NAME`) the calling script will wait for the called script to finish. +If any errors occur that cause the called script to abort, the calling script will be aborted as well. When calling a script (or multiple scripts) via the `script.turn_on` service the calling script does _not_ wait. It starts the scripts, in the order listed, and continues as soon as the last script is started. +Any errors that occur in the called scripts that cause them to abort will _not_ affect the calling script.

Following is an example of the calling script not waiting. It performs some other operations while the called script runs "in the background." Then it later waits for the called script to complete via a `wait_template`. +This technique can also be used for the calling script to wait for the called script, but _not_ be aborted if the called script aborts due to errors. {% raw %} ```yaml From 80e87314bbf13bf13daa47caa4c87bba7607d9fd Mon Sep 17 00:00:00 2001 From: mvn23 Date: Fri, 24 Jul 2020 10:42:09 +0200 Subject: [PATCH 09/40] Add opentherm_gw.set_central_heating_ovrd documentation (#13082) --- source/_integrations/opentherm_gw.markdown | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/source/_integrations/opentherm_gw.markdown b/source/_integrations/opentherm_gw.markdown index b83247a8b6f..c0cf858114c 100644 --- a/source/_integrations/opentherm_gw.markdown +++ b/source/_integrations/opentherm_gw.markdown @@ -77,6 +77,24 @@ Reset the OpenTherm Gateway. | ---------------------- | -------- | ----------- | | `gateway_id` | no | The `gateway_id` as specified during configuration. +### Service `set_central_heating_ovrd` + +Set the central heating override option on the gateway. +When overriding the control setpoint (via a [set_control_setpoint](#service-opentherm_gwset_control_setpoint) service call with a temperature value other than 0), the gateway automatically enables the central heating override to start heating. This service can then be used to control the central heating override status. +To return control of the central heating to the thermostat, call the [set_control_setpoint](#service-opentherm_gwset_control_setpoint) service with temperature value 0. +**You will only need this if you are writing your own software thermostat.** + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `gateway_id` | no | The `gateway_id` as specified during configuration. +| `ch_override` | no | The desired value for the central heating override. Use `0` to disable or `1` to enable. + +
+ +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. + +
+ ### 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. From 93b514b7d8a09d4bbce2aeab08d250426d45497d Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sat, 25 Jul 2020 07:12:55 -1000 Subject: [PATCH 10/40] HomeKit now supports multiple camera streams (#14032) * HomeKit now supports multiple camera streams * Update homekit.markdown --- source/_integrations/homekit.markdown | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/source/_integrations/homekit.markdown b/source/_integrations/homekit.markdown index d249a7043bb..a0a27302215 100644 --- a/source/_integrations/homekit.markdown +++ b/source/_integrations/homekit.markdown @@ -171,6 +171,11 @@ homekit: required: false type: string default: '`switch`' + stream_count: + description: Only for `camera` entities. The number of simultaneous stream the camera can support. + required: false + type: integer + default: 3 stream_address: description: Only for `camera` entities. The source IP address to use when streaming to RTP clients. If your Home Assistant host has multiple interfaces, selecting a specific IP may be necessary. required: false @@ -644,9 +649,9 @@ Ensure that the [`ffmpeg`](/integrations/ffmpeg) integration is configured corre If your camera supports native H.264 streams, Home Assistant can avoid converting the video stream, which is an expensive operation. To enable native H.264 streaming when configured via YAML, change the `video_codec` to `copy`. To allow native H.264 streaming when via the UI, go to **Configuration** >> **Integrations** in the UI, click **Options** for your HomeKit Bridge, and check the box for your camera on the `Cameras that support native H.264 streams` screen. -#### One video stream limit per camera +#### Multiple camera streams -Currently, cameras are limited to one video stream. Multiple streams are not possible at this time. One workaround is to create a second `HomeKit Bridge` to generate a copy of the camera accessory. +Multiple streams can be configured with the `stream_count` configuration option. If you alter the number of streams, you must [reset the accessory](#resetting-accessories). #### Camera audio is not streaming From 3306c40e249674829ae050d027f4a1b59afe3249 Mon Sep 17 00:00:00 2001 From: Maciej Bieniek Date: Sun, 26 Jul 2020 14:26:45 +0200 Subject: [PATCH 11/40] Add documentation for AccuWeather integration (#13857) --- source/_integrations/accuweather.markdown | 28 +++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 source/_integrations/accuweather.markdown diff --git a/source/_integrations/accuweather.markdown b/source/_integrations/accuweather.markdown new file mode 100644 index 00000000000..91a9e3ba63a --- /dev/null +++ b/source/_integrations/accuweather.markdown @@ -0,0 +1,28 @@ +--- +title: AccuWeather +description: Instructions on how to integrate Accuweather within Home Assistant. +ha_category: + - Weather +ha_release: 0.114 +ha_iot_class: Cloud Polling +ha_config_flow: true +ha_codeowners: + - '@bieniu' +ha_domain: accuweather +--- + +The `accuweather` integration uses the [AccuWeather](https://accuweather.com/) web service as a source for weather data for your location. + +## Setup + +To generate an AccuWeather API key, go to [AccuWeather APIs](https://developer.accuweather.com/) page, register and create application with product **Limited Trial**. + +## Configuration + +To add AccuWeather to your installation, go to **Configuration** >> **Integrations** in the UI, click the button with `+` sign and from the list of integrations select **AccuWeather**. By default, the values will be taken from the Home Assistant configuration. Weather forecast is not enabled by default. You can enable it in the integration options. + +
+ +Due to limitations of the terms of use of AccuWeather free API key, it is possible to configure only one integration instance. + +
From b70379b43bd300158154dccdf7e6075eab81bd1e Mon Sep 17 00:00:00 2001 From: Aidan Timson Date: Sun, 26 Jul 2020 13:38:09 +0100 Subject: [PATCH 12/40] Add Azure DevOps Integration (#12755) Co-authored-by: Franck Nijhof --- source/_integrations/azure_devops.markdown | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 source/_integrations/azure_devops.markdown diff --git a/source/_integrations/azure_devops.markdown b/source/_integrations/azure_devops.markdown new file mode 100644 index 00000000000..322effec558 --- /dev/null +++ b/source/_integrations/azure_devops.markdown @@ -0,0 +1,29 @@ +--- +title: Azure DevOps +description: Instructions on how to integrate Azure DevOps with Home Assistant. +ha_category: + - Sensor +ha_release: 0.114 +ha_iot_class: Cloud Polling +ha_config_flow: true +ha_codeowners: + - '@timmo001' +ha_domain: azure_devops +--- + +The `azure_devops` integration allows you to control and monitor your +Azure DevOps instance in Home Assistant. + +## Configuration + +Menu: **Configuration** -> **Integrations**. + +Click on the `+` sign to add an integration and click on **Azure DevOps**. +After completing the configuration flow, the Azure DevOps +integration will be available. + +## Sensors + +This integration provides a sensor for Azure DevOps: + +- Latest build - This includes attributes with additional info about the build. From 183e06c1ac324fa2ea1d5752aec7d66031b3b553 Mon Sep 17 00:00:00 2001 From: Emil Stjerneman Date: Sun, 26 Jul 2020 16:01:10 +0200 Subject: [PATCH 13/40] Add average_speed and doors_tailgate_open to voc resource list (#14083) --- source/_integrations/volvooncall.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_integrations/volvooncall.markdown b/source/_integrations/volvooncall.markdown index e6f31e399f6..a4531801d96 100644 --- a/source/_integrations/volvooncall.markdown +++ b/source/_integrations/volvooncall.markdown @@ -88,6 +88,7 @@ The list of currently available resources: - `odometer` - `trip_meter1` - `trip_meter2` +- `average_speed` - `fuel_amount` - `fuel_amount_level` - `average_fuel_consumption` @@ -104,6 +105,7 @@ The list of currently available resources: - `last_trip` - `is_engine_running` - `doors.hood_open` +- `doors_tailgate_open` - `doors.front_left_door_open` - `doors.front_right_door_open` - `doors.rear_left_door_open` From decfc9662202b3e4e9b5781541daec81b028cfc0 Mon Sep 17 00:00:00 2001 From: shred86 <32663154+shred86@users.noreply.github.com> Date: Sun, 26 Jul 2020 12:26:55 -0700 Subject: [PATCH 14/40] Add Abode camera on and off support and remove old notes (#13324) --- source/_integrations/abode.markdown | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/source/_integrations/abode.markdown b/source/_integrations/abode.markdown index fc80f19c497..73fd777d8c5 100644 --- a/source/_integrations/abode.markdown +++ b/source/_integrations/abode.markdown @@ -27,7 +27,7 @@ There is currently support for the following device types within Home Assistant: - **Alarm Control Panel**: Reports on the current alarm status and can be used to arm and disarm the system. - **Binary Sensor**: Reports on `Quick Actions`, `Door Contacts`, `Connectivity` sensors (remotes, keypads, and status indicators), `Moisture` sensors, and `Motion` or `Occupancy` sensors. -- **Camera**: Reports on `Camera` devices and will download and show the latest captured still image. +- **Camera**: Reports on `Camera` devices and will download and show the latest captured still image. Can be turned off and on using the [`camera.turn_off`](/integrations/camera/#service-turn_off) and [`camera.turn_on`](/integrations/camera/#service-turn_on) services. - **Cover**: Reports on `Secure Barriers` and can be used to open and close the cover. - **Lock**: Reports on `Door Locks` and can be used to lock and unlock the door. - **Light**: Reports on `Dimmer` lights and can be used to dim or turn the light on and off. @@ -78,7 +78,6 @@ They are grouped into the below events: - **abode_test**: Fired when a sensor is in test mode. - **abode_capture**: Fired when an image is captured. - **abode_device**: Fired for device changes/additions/deletions. -- **abode_automation_edit**: Fired for changes to automations. All events have the fields: From e8bfcbd3829bed5b61852a81eace5a98dcf0cf6b Mon Sep 17 00:00:00 2001 From: Alan Tse Date: Sun, 26 Jul 2020 12:27:21 -0700 Subject: [PATCH 15/40] Add update available binary sensor to Tesla (#14042) --- source/_integrations/tesla.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/tesla.markdown b/source/_integrations/tesla.markdown index 0249d605162..c599360eb20 100644 --- a/source/_integrations/tesla.markdown +++ b/source/_integrations/tesla.markdown @@ -22,7 +22,7 @@ The `Tesla` integration offers integration with the [Tesla](https://auth.tesla.c This integration provides the following platforms: -- Binary sensors - such as parking and charger connection. +- Binary sensors - such as update available, parking, and charger connection. - Sensors - such as Battery level, Inside/Outside temperature, odometer, estimated range, and charging rate. - Device tracker - to track location of your car - Lock - Door lock, rear trunk lock, front trunk (frunk) lock and charger door lock. Enables you to control Tesla's door, trunks and charger door lock From 78103961f8845ed73e6493f13fe35785b3292cf7 Mon Sep 17 00:00:00 2001 From: On Freund Date: Mon, 27 Jul 2020 10:38:53 +0300 Subject: [PATCH 16/40] Update Volumio documentation with config flow (#14093) Co-authored-by: Franck Nijhof --- source/_integrations/volumio.markdown | 40 +++++++++------------------ 1 file changed, 13 insertions(+), 27 deletions(-) diff --git a/source/_integrations/volumio.markdown b/source/_integrations/volumio.markdown index 4f3ce4188c5..ebc5926b61f 100644 --- a/source/_integrations/volumio.markdown +++ b/source/_integrations/volumio.markdown @@ -1,40 +1,26 @@ --- title: Volumio -description: How to set up the Volumio media player platform +description: How to set up the Volumio media player integration ha_category: - Media Player ha_release: 0.41 +ha_iot_class: Local Polling +ha_config_flow: true +ha_codeowners: + - '@OnFreund' ha_domain: volumio --- The `Volumio` platform allows you to control a [Volumio](https://volumio.org/) media player from Home Assistant. -The preferred way to set up the Volumio platform is by enabling the [discovery component](/integrations/discovery/). +## Configuration -In case the discovery does not work, or you need specific configuration variables, you can add the following to your `configuration.yaml` file: +Menu: **Configuration** -> **Integrations**. -```yaml -# Example configuration.yaml entry -media_player: - - platform: volumio - host: homeaudio.local - port: 3000 -``` +In most cases, your Volumio device should be discovered and you'll simply need to click "Configure" to add it to Home Assistant. -{% configuration %} -name: - description: The name of the device. - required: false - default: Volumio - type: string -host: - description: The IP address or hostname of the device. - required: true - default: localhost - type: string -port: - description: The Port number of Volumio service. - required: true - default: 3000 - type: integer -{% endconfiguration %} +If it's not discovered, you can click on the `+` sign to add an integration and then click on **Volumio**, and finally input the host and port. + +
+Volumio versions 2.799 and below do not have a unique id when manually configured, so you will not be able to rename your entity or add your device to a area. If discovery does not work for you, it is advised to upgrade Volumio before configuring. +
From b38987ffa97a7e60cb31c9fae6f9b16a2bc96578 Mon Sep 17 00:00:00 2001 From: Austin Drummond Date: Fri, 31 Jul 2020 16:01:08 -0400 Subject: [PATCH 17/40] Add homekit doorbell (#14121) --- source/_integrations/homekit.markdown | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/source/_integrations/homekit.markdown b/source/_integrations/homekit.markdown index a0a27302215..503fa42c5f0 100644 --- a/source/_integrations/homekit.markdown +++ b/source/_integrations/homekit.markdown @@ -143,6 +143,10 @@ homekit: description: The `entity_id` of a `sensor` entity to use as the battery of the accessory. HomeKit will cache an accessory's feature set on the first run so a device must be [reset](#resetting-accessories) for any change to take effect. required: false type: string + linked_doorbell_sensor: + description: The `entity_id` of a `binary_sensor` entity to use as the doorbell sensor of the camera accessory to enable doorbell notifications. HomeKit will cache an accessory's feature set on the first run so a device must be [reset](#resetting-accessories) for any change to take effect. + required: false + type: string linked_motion_sensor: description: The `entity_id` of a `binary_sensor` entity to use as the motion sensor of the camera accessory to enable motion notifications. HomeKit will cache an accessory's feature set on the first run so a device must be [reset](#resetting-accessories) for any change to take effect. required: false @@ -661,6 +665,10 @@ Make sure `support_audio` is `True` in the camera's entity configuration. A motion sensor can be linked via the `linked_motion_sensor` configuration setting to enable motion notifications. +#### Doorbell button notifications + +A doorbell sensor can be linked via the `linked_doorbell_sensor` configuration setting to enable motion notifications. + #### HomeKit stalls or devices respond slowly with many cameras HomeKit updates each camera snapshot sequentially when there are multiple cameras on a bridge. The HomeKit update methodology can lead to the app stalling or taking a while to update. To avoid this problem, limit each `HomeKit Bridge` to 6 cameras and create a new `HomeKit Bridge` for additional cameras. From cbbd5082e5ec9d2e4f70a3362b3e101f65f3caf2 Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Mon, 3 Aug 2020 03:32:02 -0600 Subject: [PATCH 18/40] Update documentation for HLK-SW16 config flow (#14140) Co-authored-by: Franck Nijhof --- source/_integrations/hlk_sw16.markdown | 77 ++------------------------ 1 file changed, 5 insertions(+), 72 deletions(-) diff --git a/source/_integrations/hlk_sw16.markdown b/source/_integrations/hlk_sw16.markdown index 991132ee980..20fd1acd2f0 100644 --- a/source/_integrations/hlk_sw16.markdown +++ b/source/_integrations/hlk_sw16.markdown @@ -1,87 +1,20 @@ --- title: Hi-Link HLK-SW16 description: Instructions on how to integrate HLK-SW16 relay into Home Assistant. -logo: hlktech.jpg ha_category: - DIY - Switch ha_release: 0.84 ha_iot_class: Local Push +ha_codeowners: + - '@jameshilliard' ha_domain: hlk_sw16 --- The [HLK-SW16](http://www.hlktech.net/product_detail.php?ProId=48) by [Hi-Link](http://www.hlktech.net/) is a simple networkable 16 port relay device. -To enable it, add the following lines to your `configuration.yaml`: +## Configuration -```yaml -# Example configuration.yaml entry -hlk_sw16: - relay1: - host: 10.225.225.53 - switches: - 0: - name: relay1-0 - 1: - name: relay1-1 - 2: - name: relay1-2 - 3: - name: relay1-3 - 4: - name: relay1-4 - 5: - name: relay1-5 - 6: - name: relay1-6 - 7: - name: relay1-7 - 8: - name: relay1-8 - 9: - name: relay1-9 - a: - name: relay1-a - b: - name: relay1-b - c: - name: relay1-c - d: - name: relay1-d - e: - name: relay1-e - f: - name: relay1-f -``` +To add a Hi-Link HLK-SW16 to your installation, go to **Configuration** >> **Integrations** in the UI, click the button with `+` sign and from the list of integrations select **Hi-Link HLK-SW16**. -{% configuration %} -deviceid: - description: The array that contains the HLK-SW16 devices. - required: true - type: map - keys: - host: - description: The IP address or hostname of the HLK-SW16. - required: true - type: string - port: - description: The control port for the relays. - required: false - type: integer - default: 8080 - switches: - description: The array that contains the relays. - required: true - type: map - keys: - relayid: - description: The array that contains the HLK-SW16 relays, each must be a number between 0 and 9 or letter between a and f which each corresponds to a labeled relay switch on the HLK-SW16. - required: false - type: map - keys: - name: - description: The name used to display the switch in the frontend. - required: false - type: string - default: relayid -{% endconfiguration %} +Enter the host and port for the HLK-SW16 TCP socket control interface and hit submit, if the connection is successful this will automatically populate the 16 relay switches as switch entities. From accbc276debed84ed0de1a5abeaeaa33954a3e6c Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Mon, 3 Aug 2020 14:53:53 +0200 Subject: [PATCH 19/40] Add support for multiple time triggers in automations (#14035) --- source/_docs/automation/trigger.markdown | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index 1b01d155153..bf08621dd35 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -313,6 +313,17 @@ automation: at: "15:32:00" ``` +Or at multiple specific times: + +```yaml +automation: + trigger: + platform: time + at: + - "15:32:00" + - "20:30:00" +``` + ### Time pattern trigger With the time pattern trigger, you can match if the hour, minute or second of the current time matches a specific value. You can prefix the value with a `/` to match whenever the value is divisible by that number. You can specify `*` to match any value (when using the web interface this is required, the fields cannot be left empty). From 10acbf0c24ed32ad42101c0be852a563a7096429 Mon Sep 17 00:00:00 2001 From: Phil Bruckner Date: Mon, 3 Aug 2020 09:16:08 -0500 Subject: [PATCH 20/40] Allow automation to be turned off without stopping actions (#14134) Co-authored-by: Franck Nijhof --- source/_docs/automation.markdown | 54 +------------ source/_integrations/automation.markdown | 97 ++++++++++++++++++++---- 2 files changed, 86 insertions(+), 65 deletions(-) diff --git a/source/_docs/automation.markdown b/source/_docs/automation.markdown index ac924f90798..b1589a70e91 100644 --- a/source/_docs/automation.markdown +++ b/source/_docs/automation.markdown @@ -5,6 +5,8 @@ description: "Steps to help you get automation setup in Home Assistant." Home Assistant offers a wide range of automation configurations. In this section, we'll try to guide you through all the different possibilities and options. Besides this documentation, there are also a couple of people who have made their automations [publicly available](/cookbook/#example-configurationyaml). +Please see [Automation Integration](/integrations/automation/) for configuration options and services. + ### Automation basics Before you can go ahead and create your own automations, it's important to learn the basics. To explore these, let's have a look at the following example home automation rule: @@ -40,55 +42,3 @@ Automation rules interact directly with the internal state of Home Assistant, so State changes can be used as the source of triggers and the current state can be used in conditions. Actions are all about calling services. To explore the available services open the Services developer tool. Services allow to change anything. For example turn on a light, run a script or enable a scene. Each service has a domain and a name. For example the service `light.turn_on` is capable of turning on any light in your system. Services can be passed parameters to for example tell which device to turn on or what color to use. - -### Automation initial state - -When you create a new automation, it will be enabled unless you explicitly add `initial_state: false` to it or turn it off manually via UI/another automation/developer tools. In case automations need to be always enabled or disabled when Home Assistant starts, then you can set the `initial_state` in your automations. Otherwise, the previous state will be restored. - -Please note that if for some reason Home Assistant cannot restore the previous state, it will result in the automation being enabled. - -```yaml -automation: -- alias: Automation Name - initial_state: false - trigger: - ... -``` - -### Automation Modes - -The automation's `mode` configuration option controls what happens when the automation is triggered while the actions are still running from a previous trigger. - -Mode | Description --|- -`single` | (Default) Do not start a new run. Issue a warning. -`restart` | Start a new run after first stopping previous run. -`queued` | Start a new run after all previous runs complete. Runs are guaranteed to execute in the order they were queued. -`parallel` | Start a new, independent run in parallel with previous runs. - -

- -

- -For both `queued` and `parallel` modes, configuration option `max` controls the maximum -number of runs that can be executing and/or queued up at a time. The default is 10. - -#### Example Setting Automation Mode - -```yaml -automation: - - trigger: - - ... - mode: queued - max: 25 - action: - - ... -``` - -### Deleting Automations - -When automations remain visible in the Home Assistant Dashboard, even after having deleted in the YAML file, you have to delete them in the UI. - -To delete them completely, go to UI **Configuration** -> **Entities** and find the automation in the search field or by scrolling down. - -Check the square box aside of the automation you wish to delete and from the top-right of your screen, select 'REMOVE SELECTED'. diff --git a/source/_integrations/automation.markdown b/source/_integrations/automation.markdown index 8cfee19b4f8..38f2d61fccc 100644 --- a/source/_integrations/automation.markdown +++ b/source/_integrations/automation.markdown @@ -10,25 +10,13 @@ ha_codeowners: ha_domain: automation --- -Please see the [automation section](/docs/automation/) for in-depth +Please see [Automating Home Assistant](/docs/automation/) for in-depth documentation on how to use the automation integration.

-You can also use `initial_state: 'false'` so that the automation -is not automatically turned on after a Home Assistant reboot. - -```yaml -automation: - - alias: Door alarm - initial_state: true - trigger: - - platform: state - ... -``` - ## Configuration This integration is by default enabled, unless you've disabled or removed the [`default_config:`](https://www.home-assistant.io/integrations/default_config/) line from your configuration. If that is the case, the following example shows you how to enable this integration manually: @@ -37,3 +25,86 @@ This integration is by default enabled, unless you've disabled or removed the [` # Example configuration.yaml entry automation: ``` + +### Automation initial state + +When you create a new automation, it will be enabled unless you explicitly add `initial_state: false` to it or turn it off manually via UI/another automation/developer tools. In case automations need to be always enabled or disabled when Home Assistant starts, then you can set the `initial_state` in your automations. Otherwise, the previous state will be restored. + +Please note that if for some reason Home Assistant cannot restore the previous state, it will result in the automation being enabled. + +```yaml +automation: +- alias: Automation Name + initial_state: false + trigger: + ... +``` + +### Automation Modes + +The automation's `mode` configuration option controls what happens when the automation is triggered while the actions are still running from a previous trigger. + +Mode | Description +-|- +`single` | (Default) Do not start a new run. Issue a warning. +`restart` | Start a new run after first stopping previous run. +`queued` | Start a new run after all previous runs complete. Runs are guaranteed to execute in the order they were queued. +`parallel` | Start a new, independent run in parallel with previous runs. + +

+ +

+ +For both `queued` and `parallel` modes, configuration option `max` controls the maximum +number of runs that can be executing and/or queued up at a time. The default is 10. + +#### Example Setting Automation Mode + +```yaml +automation: + - trigger: + - ... + mode: queued + max: 25 + action: + - ... +``` + +### Deleting Automations + +When automations remain visible in the Home Assistant Dashboard, even after having deleted in the YAML file, you have to delete them in the UI. + +To delete them completely, go to UI **Configuration** -> **Entities** and find the automation in the search field or by scrolling down. + +Check the square box aside of the automation you wish to delete and from the top-right of your screen, select 'REMOVE SELECTED'. + +## Services + +### `automation.turn_on` + +This service enables the automation's triggers. + +Service data attribute | Optional | Description +-|-|- +`entity_id` | no | Entity ID of automation to turn on. Can be a list. `none` or `all` are also accepted. + +### `automation.turn_off` + +This service disables the automation's triggers, and optionally stops any currently active actions. + +Service data attribute | Optional | Description +-|-|- +`entity_id` | no | Entity ID of automation to turn on. Can be a list. `none` or `all` are also accepted. +`stop_actions` | yes | Stop any currently active actions (defaults to true.) + +### `automation.toggle` + +This service enables the automation's triggers if they were disabled, or disables the automation's triggers, and stops any currently active actions, if the triggers were enabled. + +Service data attribute | Optional | Description +-|-|- +`entity_id` | no | Entity ID of automation to turn on. Can be a list. `none` or `all` are also accepted. + +### `automation.reload` + +This service reloads all automations, stopping any currently active actions in all of them. From a23e43eeafbbcb4f79a98d638364d77c4829c276 Mon Sep 17 00:00:00 2001 From: melyux <10296053+melyux@users.noreply.github.com> Date: Mon, 3 Aug 2020 09:23:32 -0500 Subject: [PATCH 21/40] Add 'alarm_event_occurred' attribute definition to AlarmDecoder documentation (#14060) Add the "alarm_event_occurred" attribute's definition to the AlarmDecoder alarm panel entity. The PR for the change itself is immediately following. --- source/_integrations/alarmdecoder.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_integrations/alarmdecoder.markdown b/source/_integrations/alarmdecoder.markdown index dd834ba1c81..fbd8ad25762 100644 --- a/source/_integrations/alarmdecoder.markdown +++ b/source/_integrations/alarmdecoder.markdown @@ -129,6 +129,7 @@ zones: There are several attributes available on the alarm panel to give you more information about your alarm. - `ac_power`: Set to `true` if your system has AC power supplying it. +- `alarm_event_occurred`: Set to `true` if your system was recently triggered. When `alarm_event_occurred` is `true`, it must be cleared by entering your code + 1 (or calling the `alarm_control_panel.alarm_disarm` service) before attempting to arm your alarm. - `backlight_on`: Set to `true` if your keypad's backlight is on. - `battery_low`: Set to `true` if your system's back-up battery is low. - `check_zone`: Set to `true` if your system detects a problem with a zone. From 65e8865ed6fa73e70fe383ee9e9565052830084c Mon Sep 17 00:00:00 2001 From: Oncleben31 Date: Mon, 3 Aug 2020 16:45:32 +0200 Subject: [PATCH 22/40] Update meteo_france documentation (#13975) --- source/_integrations/meteo_france.markdown | 96 ++++++++-------------- 1 file changed, 36 insertions(+), 60 deletions(-) diff --git a/source/_integrations/meteo_france.markdown b/source/_integrations/meteo_france.markdown index 7cd3dec3012..bfcbbcbc7be 100644 --- a/source/_integrations/meteo_france.markdown +++ b/source/_integrations/meteo_france.markdown @@ -7,79 +7,76 @@ ha_category: - Sensor - Weather ha_codeowners: - - '@victorcerutti' - '@oncleben31' - '@Quentame' ha_config_flow: true ha_domain: meteo_france --- -The `meteo_france` integration 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 `city` configured in your `configuration.yaml` file. +The `meteo_france` integration uses the meteorological data from [Météo-France](http://www.meteofrance.com/) to provide weather forecast for any location in the world. One or more locations can be set via the front end or via the configuration file. -There is currently support for the following platforms within Home Assistant: +The integration support the following platforms within Home Assistant: -- [Sensor](#sensor) -- Weather +- [Weather](#weather-platform) +- [Sensor](#sensor-platforms) -It displays the current weather along with a 4 days forecast and create sensors, including weather alerts from [Vigilance Météo-France](https://vigilance.meteofrance.com/) +It displays the current weather along with a 5 days forecast and create sensors, including weather alerts and 1 hour rain forecast when available. ## Setup the integration There are two ways to integrate Météo-France in Home Assistant. -### Via the frontend +### Via the frontend (recommended) -Menu: *Configuration* -> *Integrations* +Menu: **Configuration** -> **Integrations** click the button with `+` sign and from the list of integrations select **Météo-France** -Search for "Météo-France", add your city, click submit, you are done! +Enter your city or French postal code in the form. If more than one city correspond to your search in the Météo-France's database you will have the possibility to select one in a dropdown list. Click submit, you are done! ### Via the configuration file +With this way of configuration you can't select a specific cities if more than one location is found in the Météo-France database corresponding to your inputs. The integration will take the first one returned by the API. + To add Météo-France to your installation, add the following to your `configuration.yaml` file: ```yaml -# Example configuration.yaml entry +# Example configuration.yaml entry for 2 cities meteo_france: - city: '76000' + - city: 'Auch' ``` {% configuration %} city: - description: French postal code or name of the city ([see below](#about-city-configuration)). + description: French postal code or name of the city. required: true type: string {% endconfiguration %} -### About `city` configuration +## Weather platform -This integration use the Météo-France search API to get the first city from the results returned. +To be used with the weather Lovelace card to access current condition, today and next four days forecast. -It works well with french postal code, city name, etc. In case your expected result doesn't come first, you can set a more specified query like `, `. +The weather platform can be configured in the frontend to decide if the forecast is given daily (default) or hourly. To change the setting go in **Configuration** -> **Integrations**, click on the city name in **Météo-France** box and click on **Options**. You can update the `Forecast mode` by choosing between `daily` or `hourly`. -It also works with international city, with mixed results. You may have to find the correct city query. -For example `Montreal, Canada` will return a city in Ardèche, France, whereas `Montreal, america` works +## Sensor platforms -[https://www.meteofrance.com/mf3-rpc-portlet/rest/lieu/facet/previsions/search/montreal,amerique](https://www.meteofrance.com/mf3-rpc-portlet/rest/lieu/facet/previsions/search/montreal,amerique) +All the following sensors will be created : -```yaml -# Example configuration.yaml entry for Montreal, Canada -meteo_france: - - city: 'montreal,amerique' -``` +|Entity|Description|Enabled by default| +|------|-----------|------------------| +|`cloud`|The current cloud cover in %|Yes| +|`freeze_chance` |Probability of temperature below 0°C in the following hours|Yes| +|`next_rain`|Datetime of the next rain if expected within the next hour ([see note below](#about-next_rain-condition-sensor))|Yes| +|`precipitation`|Precipitation cumulation for next 24 hours in mm|Yes| +|`pressure`|The current pressure in hPa|No| +|`rain_chance` |Probability of rain in the following hours|Yes| +|`snow_chance` |Probability of snow for the following hours|Yes| +|`temperature`|The current temperature in °C|No| +|`uv`|The current UV index|Yes| +|`weather_alert` |Weather alert status ([see note below](#about-weather_alert-sensor))|Yes| +|`wind_speed` |The current wind speed in km/h|No| -## Sensor - -All these sensors will be created : -- `temperature`: The current temperature. -- `weather`: A human-readable text summary of the current conditions. -- `wind_speed`: The wind speed. -- `uv`: The current UV index. -- `next_rain`: Time to the next rain if happening for the next hour ([see note below](#about-next_rain-condition-sensor)). -- `freeze_chance`: Probability of temperature below 0°C for the day. -- `rain_chance`: Probability of rain for the day. -- `snow_chance`: Probability of snow for the day. -- `thunder_chance`: Probability of thunderstorm for the day. -- `weather_alert`: Weather alert status ([see note below](#about-weather_alert-sensor)). +Warning: The probability entities data are not always provided by the API. They are added only if available. ### About `next_rain` condition sensor @@ -90,35 +87,14 @@ All these sensors will be created : -The `next_rain` sensor value is the time to next rain, from 0 to 55 minutes. -If no rain is forecasted for the next hour, value will be "No rain". - -Attributes also give the forecast for the next hour in 5 minutes intervals. -Possible value for each intervals attributes are: - -- 1 No rain -- 2 Light rain -- 3 Moderate rain -- 4 Heavy rain +The attributes allow to have a forecast of the rain type by 5 to 10 minutes intervals. ### About `weather_alert` sensor
- The weather alert is available for the metropolitan France. + The weather alert is available for the metropolitan France and Andorre.
-The `weather_alert` sensor value give the current weather alert status for the department linked to the city. Data is retrieve from [Météo-France vigilance website](https://vigilance.meteofrance.com/). +The `weather_alert` sensor state give the current weather alert status for the department linked to the city. Only one entity by department is created. -The sensor attributes give access to each type of alerts and date of the bulletin emitted by Météo-France. - -### Complete example - -This is an example for 3 cities forecast: - -```yaml -# Complete example configuration.yaml entry -meteo_france: - - city: '69004' - - city: 'Rouen' - - city: 'Oslo, norvege' -``` +The sensor attributes give access to each type of alerts raised by Météo-France. From ac5172cd366652f72ba8a2fbf988d92053f03b0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Arnauts?= Date: Mon, 3 Aug 2020 16:46:58 +0200 Subject: [PATCH 23/40] Add documentation for unique_id on template platforms (#14052) Co-authored-by: Franck Nijhof --- .../alarm_control_panel.template.markdown | 4 ++++ source/_integrations/binary_sensor.template.markdown | 4 ++++ source/_integrations/cover.template.markdown | 4 ++++ source/_integrations/fan.template.markdown | 4 ++++ source/_integrations/light.template.markdown | 4 ++++ source/_integrations/lock.template.markdown | 4 ++++ source/_integrations/switch.template.markdown | 4 ++++ source/_integrations/template.markdown | 10 +++++++++- source/_integrations/vacuum.template.markdown | 4 ++++ 9 files changed, 41 insertions(+), 1 deletion(-) diff --git a/source/_integrations/alarm_control_panel.template.markdown b/source/_integrations/alarm_control_panel.template.markdown index ebaa5efcad6..4789b200013 100644 --- a/source/_integrations/alarm_control_panel.template.markdown +++ b/source/_integrations/alarm_control_panel.template.markdown @@ -72,6 +72,10 @@ panels: required: false type: string default: Template Alarm Control Panel + unique_id: + description: An ID that uniquely identifies this alarm control panel. Set this to an unique value to allow customisation trough the UI. + required: false + type: string value_template: description: "Defines a template to set the state of the alarm panel. Only the states `armed_away`, `armed_home`, `armed_night`, `disarmed`, `pending`, `triggered` and `unavailable` are used." required: false diff --git a/source/_integrations/binary_sensor.template.markdown b/source/_integrations/binary_sensor.template.markdown index e99744508ac..979ba785bd1 100644 --- a/source/_integrations/binary_sensor.template.markdown +++ b/source/_integrations/binary_sensor.template.markdown @@ -51,6 +51,10 @@ sensors: description: A list of entity IDs so the sensor only reacts to state changes of these entities. This can be used if the automatic analysis fails to find all relevant entities. required: false type: [string, list] + unique_id: + description: An ID that uniquely identifies this binary sensor. Set this to an unique value to allow customisation trough the UI. + required: false + type: string device_class: description: Sets the [class of the device](/integrations/binary_sensor/), changing the device state and icon that is displayed on the frontend. required: false diff --git a/source/_integrations/cover.template.markdown b/source/_integrations/cover.template.markdown index 852fee2690e..fb6a7ed1693 100644 --- a/source/_integrations/cover.template.markdown +++ b/source/_integrations/cover.template.markdown @@ -53,6 +53,10 @@ cover: description: A list of entity IDs so the cover only reacts to state changes of these entities. This can be used if the automatic analysis fails to find all relevant entities. required: false type: [string, list] + unique_id: + description: An ID that uniquely identifies this cover. Set this to an unique value to allow customisation trough the UI. + required: false + type: string value_template: description: Defines a template to get the state of the cover. Valid values are `open`/`true` or `closed`/`false`. [`value_template`](#value_template) and [`position_template`](#position_template) cannot be specified concurrently. required: exclusive diff --git a/source/_integrations/fan.template.markdown b/source/_integrations/fan.template.markdown index f470d92ddf1..98547519c04 100644 --- a/source/_integrations/fan.template.markdown +++ b/source/_integrations/fan.template.markdown @@ -63,6 +63,10 @@ fan: description: Name to use in the frontend. required: false type: string + unique_id: + description: An ID that uniquely identifies this fan. Set this to an unique value to allow customisation trough the UI. + required: false + type: string value_template: description: "Defines a template to get the state of the fan. Valid value: 'on'/'off'" required: true diff --git a/source/_integrations/light.template.markdown b/source/_integrations/light.template.markdown index 1f0568a5c3c..d26fc767b14 100644 --- a/source/_integrations/light.template.markdown +++ b/source/_integrations/light.template.markdown @@ -74,6 +74,10 @@ light: description: A list of entity IDs so the light only reacts to state changes of these entities. This can be used if the automatic analysis fails to find all relevant entities. required: false type: [string, list] + unique_id: + description: An ID that uniquely identifies this light. Set this to an unique value to allow customisation trough the UI. + required: false + type: string value_template: description: Defines a template to get the state of the light. required: false diff --git a/source/_integrations/lock.template.markdown b/source/_integrations/lock.template.markdown index ecab0fe932e..f263dd65af7 100644 --- a/source/_integrations/lock.template.markdown +++ b/source/_integrations/lock.template.markdown @@ -47,6 +47,10 @@ lock: required: false type: string default: Template Lock + unique_id: + description: An ID that uniquely identifies this lock. Set this to an unique value to allow customisation trough the UI. + required: false + type: string value_template: description: Defines a template to set the state of the lock. required: true diff --git a/source/_integrations/switch.template.markdown b/source/_integrations/switch.template.markdown index ad351a8dbd4..4721779aecb 100644 --- a/source/_integrations/switch.template.markdown +++ b/source/_integrations/switch.template.markdown @@ -54,6 +54,10 @@ switch: description: A list of entity IDs so the switch only reacts to state changes of these entities. This can be used if the automatic analysis fails to find all relevant entities. required: false type: [string, list] + unique_id: + description: An ID that uniquely identifies this switch. Set this to an unique value to allow customisation trough the UI. + required: false + type: string value_template: description: Defines a template to set the state of the switch. If not defined, the switch will optimistically assume all commands are successful. required: false diff --git a/source/_integrations/template.markdown b/source/_integrations/template.markdown index 01fd2e40560..9fd036cb54a 100644 --- a/source/_integrations/template.markdown +++ b/source/_integrations/template.markdown @@ -54,6 +54,10 @@ sensor: description: A list of entity IDs so the sensor only reacts to state changes of these entities. This can be used if the automatic analysis fails to find all relevant entities. required: false type: [string, list] + unique_id: + description: An ID that uniquely identifies this sensor. Set this to an unique value to allow customisation trough the UI. + required: false + type: string unit_of_measurement: description: "Defines the units of measurement of the sensor, if any. This will also influence the graphical presentation in the history visualization as a continuous value. Sensors with missing `unit_of_measurement` are showing as discrete values." required: false @@ -104,6 +108,10 @@ If you are using the state of a platform that takes extra time to load, the Temp The template engine will attempt to work out what entities should trigger an update of the sensor. This can fail, for example, if your template loops over the contents of a group. In this case, you can use `entity_id` to provide a list of entity IDs that will cause the sensor to update or you can run the service `homeassistant.update_entity` to update the sensor at will. +### Unique ID + +The optional `unique_id` can be set so the entity will be registered in the [entity registry](https://developers.home-assistant.io/docs/entity_registry_index). This allows changing the `name`, `icon` and `entity_id` from the web interface instead of having to use the [customize](/docs/configuration/customizing-devices/) key in your `configuration.yaml` file. + ## Examples In this section, you find some real-life examples of how to use this sensor. @@ -349,7 +357,7 @@ sensor: Useful entities to choose might be `sensor.date` which update once per day or `sensor.time`, which updates once per minute. Please note that the resulting template will be evaluated by Home Assistant state engine on every state change of these sensors, which in case of `sensor.time` happens every minute and might have a negative impact on performance. - + An alternative to this is to create an interval-based automation that calls the service `homeassistant.update_entity` for the entities requiring updates. This modified example updates every 5 minutes: {% raw %} diff --git a/source/_integrations/vacuum.template.markdown b/source/_integrations/vacuum.template.markdown index 2ff3b7c1b18..7c90d679558 100644 --- a/source/_integrations/vacuum.template.markdown +++ b/source/_integrations/vacuum.template.markdown @@ -39,6 +39,10 @@ vacuum: description: Name to use in the frontend. required: false type: string + unique_id: + description: An ID that uniquely identifies this vacuum. Set this to an unique value to allow customisation trough the UI. + required: false + type: string value_template: description: "Defines a template to get the state of the vacuum. Valid value: `docked`/`cleaning`/`idle`/`paused`/`returning`/`error`" required: false From 913356cfc5ba64b87a2843fa9c884908e07cfaf3 Mon Sep 17 00:00:00 2001 From: Aaron Bach Date: Mon, 3 Aug 2020 11:34:13 -0600 Subject: [PATCH 24/40] Remove deprecated Slack attachments documentation (#14072) --- source/_integrations/slack.markdown | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/source/_integrations/slack.markdown b/source/_integrations/slack.markdown index ffffa49f5c2..813d5508fb6 100644 --- a/source/_integrations/slack.markdown +++ b/source/_integrations/slack.markdown @@ -76,11 +76,10 @@ The following attributes can be placed inside the `data` key of the service call | Attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `file` | yes | A file to include with the message; see below. -| `attachments` | yes | Array of [Slack attachments](https://api.slack.com/messaging/composing/layouts#attachments) (legacy). *NOTE*: if using `attachments`, they are shown **in addition** to `message`. | `blocks` | yes | Array of [Slack blocks](https://api.slack.com/messaging/composing/layouts). *NOTE*: if using `blocks`, they are shown **in place of** the `message` (note that the `message` is required nonetheless). | `blocks_template` | yes | The same as `blocks`, but able to support [templates](https://www.home-assistant.io/docs/configuration/templating). -Note that using `file` will ignore all usage of `attachments`, `blocks`, and `blocks_template` (as Slack does not support those frameworks in messages that accompany uploaded files). +Note that using `file` will ignore all usage of `blocks` and `blocks_template` (as Slack does not support those frameworks in messages that accompany uploaded files). To include a local file with the Slack message, use these attributes underneath the `file` key: @@ -160,14 +159,3 @@ data: *Average Rating* 1.0 ``` - -To use the legacy attachments framework: - -```yaml -message: Message that will be added as a comment to the file. -title: Title of the file. -data: - attachments: - - title: WHAT A HORRIBLE NIGHT TO HAVE A CURSE. - image_url: https://i.imgur.com/JEExnsI.gif -``` From fa451b59819cdfad06d9bfa7dcf0bb941422ae0f Mon Sep 17 00:00:00 2001 From: Aaron Bach Date: Mon, 3 Aug 2020 11:36:08 -0600 Subject: [PATCH 25/40] Remove YAML docs for IQVIA (#14073) --- source/_integrations/iqvia.markdown | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/source/_integrations/iqvia.markdown b/source/_integrations/iqvia.markdown index 805ebd272a1..92cb9442d26 100644 --- a/source/_integrations/iqvia.markdown +++ b/source/_integrations/iqvia.markdown @@ -20,27 +20,10 @@ Data measured includes: * Current outlook * more! -## Configuring the Platform +## Configuring the Integration -To integrate `iqvia` into Home Assistant, add the following section to your -`configuration.yaml` file: - -```yaml -iqvia: - zip_code: "00544" -``` - -{% configuration %} -zip_code: - description: The U.S. ZIP code to gather data for (as a quoted string). - required: true - type: string -{% endconfiguration %} - -
-It is important to ensure the ZIP code is quoted if it starts with a 0. Unquoted -ZIP codes that start with 0 will cause errors. -
+This integration can be configured via the Home Assistant UI by navigating to +**Configuration** -> **Integrations**. ## Understanding the Indices From 6893b807419e368f2a99fa6ed16daec7b71bb3d0 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 4 Aug 2020 16:27:02 +0200 Subject: [PATCH 26/40] Support string lists in http server_host and note new default (dual stack, IPv4 and IPv6) (#14125) Also note that the HTTP component now listens on IPv4 as well as IPv6. --- source/_integrations/http.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_integrations/http.markdown b/source/_integrations/http.markdown index 58f6c46f56a..c4933c258cd 100644 --- a/source/_integrations/http.markdown +++ b/source/_integrations/http.markdown @@ -33,9 +33,9 @@ http: {% configuration %} server_host: - description: "Only listen to incoming requests on specific IP/host. By default it will accept all IPv4 connections. Use `server_host: ::0` if you want to listen to (and only) IPv6." + description: "Only listen to incoming requests on specific IP/host. By default the `http` integration will accept all IPv4 and IPv6 connections. Use `server_host: 0.0.0.0` if you want to only listen to IPv4 addresses." required: false - type: string + type: [list, string] default: 0.0.0.0 server_port: description: Let you set a port to use. From 2cd82f6a2733b2fad53957cf50825cd9c1d79ccb Mon Sep 17 00:00:00 2001 From: Peter Nijssen Date: Tue, 4 Aug 2020 22:46:00 +0200 Subject: [PATCH 27/40] update spider documentation (#13720) --- source/_integrations/spider.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/_integrations/spider.markdown b/source/_integrations/spider.markdown index 0facc7c617d..6d858b0cb58 100644 --- a/source/_integrations/spider.markdown +++ b/source/_integrations/spider.markdown @@ -21,7 +21,9 @@ There is currently support for the following device types within Home Assistant: ## Configuration -To add your Spider devices into your Home Assistant installation, add the following to your `configuration.yaml` file: +To set up this integration, click Configuration in the sidebar and then click Integrations. Add a new integration using the "+" button in the lower right corner and look for 'Itho Daalderop Spider'. Click configure and you will be presented with a dialog requesting the username and password of your Spider account information. After you click submit, it will automatically retrieve your thermostats and power plugs from mijn.ithodaalderop.nl. + +If you'd like to continue using YAML until it is fully removed, you can use the following example: ```yaml spider: From bee6b53417a70d2e27fbdbd81ee5dd46d317fd5d Mon Sep 17 00:00:00 2001 From: tizzen33 <53906250+tizzen33@users.noreply.github.com> Date: Wed, 5 Aug 2020 01:50:21 +0200 Subject: [PATCH 28/40] Add Water Meter Sensor Entities (#14006) Co-authored-by: Franck Nijhof --- source/_integrations/toon.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/_integrations/toon.markdown b/source/_integrations/toon.markdown index b3ef1471c3f..7a9744ea44d 100644 --- a/source/_integrations/toon.markdown +++ b/source/_integrations/toon.markdown @@ -107,14 +107,17 @@ The Toon integration provides the following sensors: - Average Daily Energy Usage* - Average Daily Gas Usage* +- Average Daily Water Usage* - Average Gas Usage - Average Power Usage* +- Average Water Usage* - Average Solar Power Production to Grid* (only with solar module) - Boiler Modulation Level* (only with OpenTherm) - Current Gas Usage - Current Power Usage - Current Power Usage Covered By Solar (only with solar module) - Current Solar Power Production (only with solar module) +- Current Water Usage* - Electricity Meter Feed IN Tariff 1* - Electricity Meter Feed IN Tariff 2* - Electricity Meter Feed OUT Tariff 1* @@ -130,6 +133,9 @@ The Toon integration provides the following sensors: - Solar Energy Produced Today (only with solar module) - Solar Power Production to Grid (only with solar module) - Temperature +- Water Meter* +- Water Usage Today* +- Water Cost Today* Sensors marked with `*` are disabled by default, but can be enabled from the UI, by clicking on the device and enabling the specific entity. From 14ac31cffc72df3291c04a91903f6465e3f8bb2c Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Tue, 4 Aug 2020 17:00:21 -1000 Subject: [PATCH 29/40] Add missing timeout to command_line platforms: cover, notify, switch (#14141) --- source/_integrations/cover.command_line.markdown | 5 +++++ source/_integrations/notify.command_line.markdown | 5 +++++ source/_integrations/switch.command_line.markdown | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/source/_integrations/cover.command_line.markdown b/source/_integrations/cover.command_line.markdown index 45103848d00..a6345c281f2 100644 --- a/source/_integrations/cover.command_line.markdown +++ b/source/_integrations/cover.command_line.markdown @@ -62,6 +62,11 @@ covers: description: The name used to display the cover in the frontend. required: false type: string + command_timeout: + description: Defines number of seconds for command timeout. + required: false + type: integer + default: 15 {% endconfiguration %} ## Examples diff --git a/source/_integrations/notify.command_line.markdown b/source/_integrations/notify.command_line.markdown index bfdea7bc706..b1d6b5e32ab 100644 --- a/source/_integrations/notify.command_line.markdown +++ b/source/_integrations/notify.command_line.markdown @@ -29,6 +29,11 @@ command: description: The action to take. required: true type: string +command_timeout: + description: Defines number of seconds for command timeout. + required: false + type: integer + default: 15 {% endconfiguration %} To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_integrations/switch.command_line.markdown b/source/_integrations/switch.command_line.markdown index 17efdc1533f..cdc92ccfe5d 100644 --- a/source/_integrations/switch.command_line.markdown +++ b/source/_integrations/switch.command_line.markdown @@ -56,6 +56,11 @@ switches: description: The name used to display the switch in the frontend. required: false type: string + command_timeout: + description: Defines number of seconds for command timeout. + required: false + type: integer + default: 15 {% endconfiguration %} A note on `friendly_name`: From 2d50829940737adba508ce11416d1a80357c7dd9 Mon Sep 17 00:00:00 2001 From: Oncleben31 Date: Wed, 5 Aug 2020 11:24:46 +0200 Subject: [PATCH 30/40] Add instructions to enable entities (#14164) --- source/_integrations/meteo_france.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_integrations/meteo_france.markdown b/source/_integrations/meteo_france.markdown index bfcbbcbc7be..5ca26370fc9 100644 --- a/source/_integrations/meteo_france.markdown +++ b/source/_integrations/meteo_france.markdown @@ -78,6 +78,8 @@ All the following sensors will be created : Warning: The probability entities data are not always provided by the API. They are added only if available. +To enable an entity disabled by default, go in **Configuration** -> **Integrations**, click on the city name in **Météo-France** and then the **X entities** link. You will have the list of the enabled entities. Here click the filter button and select **Show disable entities**. The disabled entities will be visible in the list, select the one you want to enable and click the **Enable Selected** button. + ### About `next_rain` condition sensor
From e321d5612e943750afca2b2b23268de87690923c Mon Sep 17 00:00:00 2001 From: cgtobi Date: Wed, 5 Aug 2020 11:43:44 +0200 Subject: [PATCH 31/40] Update Netatmo documentation to reflect the changes (#13970) --- source/_integrations/netatmo.markdown | 132 +++++++++++++++++--------- 1 file changed, 87 insertions(+), 45 deletions(-) diff --git a/source/_integrations/netatmo.markdown b/source/_integrations/netatmo.markdown index 66d741a03ec..c0a97338ac4 100644 --- a/source/_integrations/netatmo.markdown +++ b/source/_integrations/netatmo.markdown @@ -8,10 +8,11 @@ ha_category: - Sensor - Climate - Camera -ha_release: '0.20' + - Light +ha_release: "0.20" ha_iot_class: Cloud Polling ha_codeowners: - - '@cgtobi' + - "@cgtobi" ha_config_flow: true ha_domain: netatmo --- @@ -22,8 +23,9 @@ There is currently support for the following device types within Home Assistant: - [Camera](#camera) - [Climate](#climate) +- [Light](#light) - [Sensor](#sensor) -- [Webhooks](#webhooks) +- [Webhook Events](#webhook-events) ## Configuration @@ -49,12 +51,16 @@ client_secret: **After the client_id and client_secret is added to your `configuration.yaml` you must enable Netatmo through the integrations page.** +Menu: **Configuration** -> **Integrations**. + ### Extra configuration of the integration Configuration of Netatmo public weather stations is offered from the front end. Enter the Netatmo integration and press the cogwheel. In the dialogue, it is possible to create, edit and remove public weather sensors. For each area a unique name has to be set along with an area to be covered and whether to display average or maximum values. +To edit an existing area simply enter its name and follow the dialog. + ### Get API and Secret Key To get your API credentials, you have to declare a new application in the [Netatmo Developer Page](https://dev.netatmo.com/). Sign in using your username and password from your regular Netatmo account. @@ -83,12 +89,42 @@ The `netatmo` camera platform is consuming the information provided by a [Netatm The `netatmo` thermostat platform is consuming the information provided by a [Netatmo Smart Thermostat](https://www.netatmo.com/product/energy/thermostat) or [Netatmo Smart Radiator Valve](https://www.netatmo.com/en-gb/energy/additional-valve). This integration allows you to view the current temperature and control the setpoint. +## Light + +The `netatmo` light platform is consuming information provided by a [Netatmo Smart Outdoor](https://www.netatmo.com/en-gb/security/cam-outdoor) camera and requires an active webhook. This integration allows you to turn on/off the flood lights. + ## Sensor The `netatmo` sensor platform is consuming the information provided by a [Netatmo Smart Home Weather Station](https://www.netatmo.com/en-us/weather/weatherstation) a -[Netatmo Smart Indoor Air Quality Monitor](https://www.netatmo.com/en-us/aircare/homecoach) device or Netatmo Public Weather Stations. +[Netatmo Smart Indoor Air Quality Monitor](https://www.netatmo.com/en-us/aircare/homecoach) device or [Netatmo Public Weather Stations](https://weathermap.netatmo.com/). -## Webhooks +## Services + +### Set Schedule + +`set_schedule` + +Set the heating schedule. This requires an entity id and a schedule name. + +### Set Person Home + +`set_persons_home` + +Set a list of persons as at home. Person's name must match a name known by the Netatmo Smart Indoor Camera. + +### Set Person Away + +`set_person_away` + +Set a person away. If no person is set the home will be marked as empty. Person's name must match a name known by the Netatmo Smart Indoor Camera. + +### (Un-)Register Webhooks + +`register_webhook` and `unregister_webhook` + +Service to manually register and unregister the webhook. + +## Webhook Events The [Netatmo Smart Indoor](https://www.netatmo.com/en-gb/security/cam-indoor) or [Outdoor](https://www.netatmo.com/en-gb/security/cam-outdoor) cameras, [Smart Door and Window Sensors](https://www.netatmo.com/en-gb/security/cam-indoor/tag), as well as the [Netatmo Smart Smoke Alarm](https://www.netatmo.com/en-gb/security/smoke-alarm), send instant events to Home Assistant by using webhooks. It is required to have your camera enabled in Home Assistant. @@ -125,19 +161,19 @@ Example: ```yaml # Example automation for Netatmo Welcome - alias: Motion at home - description: 'Motion detected at home' + description: "Motion detected at home" trigger: - - event_type: netatmo_event - platform: event - event_data: - type: movement + - event_type: netatmo_event + platform: event + event_data: + type: movement action: - - data_template: - message: > - {{ trigger.event.data["data"]["message"] }} - at {{ trigger.event.data["data"]["home_name"] }} - title: Netatmo event - service: persistent_notification.create + - data_template: + message: > + {{ trigger.event.data["data"]["message"] }} + at {{ trigger.event.data["data"]["home_name"] }} + title: Netatmo event + service: persistent_notification.create ``` {% endraw %} @@ -149,19 +185,19 @@ Example: ```yaml # Example automation for Netatmo Presence - alias: Motion at home - description: 'Motion detected at home' + description: "Motion detected at home" trigger: - - event_type: netatmo_event - platform: event - event_data: - type: human # other possible types: animal, vehicle + - event_type: netatmo_event + platform: event + event_data: + type: human # other possible types: animal, vehicle action: - - data_template: - message: > - {{ trigger.event.data["data"]["message"] }} - at {{ trigger.event.data["data"]["home_name"] }} - title: Netatmo event - service: persistent_notification.create + - data_template: + message: > + {{ trigger.event.data["data"]["message"] }} + at {{ trigger.event.data["data"]["home_name"] }} + title: Netatmo event + service: persistent_notification.create ``` {% endraw %} @@ -173,26 +209,32 @@ Example: ```yaml # Example automation - alias: door or window open or movement - description: 'Notifies which door or window is open or was moved' + description: "Notifies which door or window is open or was moved" trigger: - - event_type: netatmo_event - platform: event - event_data: - type: tag_open - - event_type: netatmo_event - platform: event - event_data: - type: tag_big_move - - event_type: netatmo_event - platform: event - event_data: - type: tag_small_move + - event_type: netatmo_event + platform: event + event_data: + type: tag_open + - event_type: netatmo_event + platform: event + event_data: + type: tag_big_move + - event_type: netatmo_event + platform: event + event_data: + type: tag_small_move action: - - data_template: - message: > - {{ trigger.event.data["data"]["message"] }} - title: Netatmo event - service: persistent_notification.create + - data_template: + message: > + {{ trigger.event.data["data"]["message"] }} + title: Netatmo event + service: persistent_notification.create ``` {% endraw %} + +## Troubleshooting + +### Light + +If the lights show as unavailable the issue usually is that webhook is banned by Netatmo. To solve that [unregister](#un-register-webhooks) the webhook, go to the [Netatmo Developer Page](https://dev.netatmo.com/) to unban your webhook and then [register](#un-register-webhooks) the webhook. From a06c4ed0d673deeeb97d47dee70c1eacb74e0e47 Mon Sep 17 00:00:00 2001 From: Kevin Fronczak Date: Wed, 5 Aug 2020 06:22:16 -0400 Subject: [PATCH 32/40] Remove yaml, add notes about Blink Mini camera (#14057) --- source/_integrations/blink.markdown | 42 +++-------------------------- 1 file changed, 3 insertions(+), 39 deletions(-) diff --git a/source/_integrations/blink.markdown b/source/_integrations/blink.markdown index cfa5fffbd15..648c22d25bb 100644 --- a/source/_integrations/blink.markdown +++ b/source/_integrations/blink.markdown @@ -31,32 +31,7 @@ The preferred method for setting this up is by using the configuration flow. Go Your integration will then set up. Given that setup is asynchronous, you may see your sensors before they have finished extracting data from the Blink servers. After a few minutes (at most) this information should populate. -Existing YAML will be converted to this flow but will be removed in a future version. This is due to Blink's migration to 2FA which is rolling out this year, and which YAML cannot support. - -If you'd like to continue using YAML until it is fully removed, you can use the following example: - -```yaml -# Example configuration.yaml entry -blink: - username: YOUR_USERNAME - password: YOUR_PASSWORD -``` -{% configuration %} -username: - description: The username for accessing your Blink account. - required: true - type: string -password: - description: The password for accessing your Blink account. - required: true - type: string -scan_interval: - description: How frequently to query for new data. Defaults to 300 seconds (5 minutes). - required: false - type: integer -{% endconfiguration %} - -Once Home Assistant starts and you authenticate access, the `blink` integration will create the following platforms: +Once Home Assistant starts and you authenticate access, the `blink` integration will create the following platforms (note: Blink Mini cameras do not currently support any of the sensors, nor the battery status binary sensor): - An `alarm_control_panel` to arm/disarm the whole blink system (note, `alarm_arm_home` is not implemented and will not actually do anything, despite it being an option in the GUI). - A `camera` for each camera linked to your Blink sync module. @@ -65,17 +40,7 @@ Once Home Assistant starts and you authenticate access, the `blink` integration Since the cameras are battery operated, setting the `scan_interval` must be done with care so as to not drain the battery too quickly, or hammer Blink's servers with too many API requests. The cameras can be manually updated via the `trigger_camera` service which will ignore the throttling caused by `scan_interval`. As a note, all of the camera-specific sensors are only polled when a new image is requested from the camera. This means that relying on any of these sensors to provide timely and accurate data is not recommended. -Please note that each camera reports two different states: one as `sensor.blink__status` and the other as `binary_sensor.blink__motion_enabled`. The `motion_enabled` property reports if the `camera` is ready to detect motion *regardless if the system is actually armed**. - -Below is an example showing every possible entry: - -```yaml -# Example configuration.yaml entry -blink: - username: YOUR_USERNAME - password: YOUR_PASSWORD - scan_interval: 300 -``` +Please note that each camera reports two different states: one as `sensor.blink__status` and the other as `binary_sensor.blink__motion_enabled`. The `motion_enabled` property reports if the `camera` is ready to detect motion **regardless if the system is actually armed**. ## Services @@ -120,8 +85,7 @@ Send a new pin to blink. Since Blink's 2FA implementation is new and changing, ### Other Services -In addition to the services mentioned above, there are generic `camera` and `alarm_control_panel` services available for use as well. The `camera.enable_motion_detection` and `camera.disable_motion_detection` services allow for individual cameras to be enabled and disabled, respectively, within the Blink system. The `alarm_control_panel.alarm_arm_away` and `alarm_control_panel.alarm_disarm` services allow for the whole system to be armed and disarmed, respectively. - +In addition to the services mentioned above, there are generic `camera` and `alarm_control_panel` services available for use as well. The `camera.enable_motion_detection` and `camera.disable_motion_detection` services allow for individual cameras to be enabled and disabled, respectively, within the Blink system. The `alarm_control_panel.alarm_arm_away` and `alarm_control_panel.alarm_disarm` services allow for the whole system to be armed and disarmed, respectively. Blink Mini cameras linked to an existing sync module cannot be armed/disarmed via Home Assistant. ## Examples From e59eac907b387bb6b6e53ee9107ad9a9482449f9 Mon Sep 17 00:00:00 2001 From: Aidan Timson Date: Wed, 5 Aug 2020 13:38:40 +0100 Subject: [PATCH 33/40] Add OVO Energy Integration Docs (#13583) Co-authored-by: Franck Nijhof --- source/_integrations/ovo_energy.markdown | 33 ++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 source/_integrations/ovo_energy.markdown diff --git a/source/_integrations/ovo_energy.markdown b/source/_integrations/ovo_energy.markdown new file mode 100644 index 00000000000..fa9aeeb84a1 --- /dev/null +++ b/source/_integrations/ovo_energy.markdown @@ -0,0 +1,33 @@ +--- +title: OVO Energy +description: Instructions on how to integrate OVO Energy with Home Assistant. +ha_category: + - Energy + - Sensor +ha_release: 0.114 +ha_iot_class: Cloud Polling +ha_config_flow: true +ha_codeowners: + - "@timmo001" +ha_domain: ovo_energy +--- + +The `ovo_energy` integration allows you to monitor your energy consumption data +in Home Assistant. + +## Configuration + +Menu: **Configuration** -> **Integrations**. + +Click on the `+` sign to add an integration and click on **OVO Energy**. +After completing the configuration flow, the OVO Energy integration will be +available. + +## Sensors + +This integration provides a few sensors for OVO Energy: + +- Last Electricity Reading - Last meter reading consumption in kWh. +- Last Gas Reading - Last meter reading consumption in kWh. +- Last Electricity Cost - Last meter reading electricity cost. +- Last Gas Cost - Last meter reading gas cost. From 9c43eb160a15d2f0b932bc903ca4803fa53dce64 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Wed, 5 Aug 2020 15:18:51 +0200 Subject: [PATCH 34/40] Documentation for new `frontend.set_theme` options (#14165) --- source/_integrations/frontend.markdown | 41 +++++++------------------- 1 file changed, 11 insertions(+), 30 deletions(-) diff --git a/source/_integrations/frontend.markdown b/source/_integrations/frontend.markdown index fde6c379055..1c1ebe46ef4 100644 --- a/source/_integrations/frontend.markdown +++ b/source/_integrations/frontend.markdown @@ -74,46 +74,27 @@ The example above defined two themes named `happy` and `sad`. For each theme you Check our [community forums](https://community.home-assistant.io/c/projects/themes) to find themes to use. -### Theme automation +### Setting themes There are 2 themes-related services: - `frontend.reload_themes`: reloads theme configuration from your `configuration.yaml` file. - - `frontend.set_theme(name)`: sets backend-preferred theme name. + - `frontend.set_theme`: sets backend-preferred theme name. + + ### Service `set_theme` -Example in automation: +| Service data attribute | Description | +| ---------------------- | --------------------------------------------------------------------------------------------------- | +| `name` | Name of the theme to set, `default` for the default theme or `none` to restore to the default. | +| `mode` | If the theme should be applied in light or dark mode `light` or `dark` (Optional, default `light`) | -Set a theme at the startup of Home Assistant: - -```yaml -automation: - - alias: 'Set theme at startup' - trigger: - - platform: homeassistant - event: start - action: - service: frontend.set_theme - data: - name: happy -``` - -To enable "night mode": - -```yaml -automation: - - alias: 'Set dark theme for the night' - trigger: - - platform: time - at: '21:00:00' - action: - - service: frontend.set_theme - data: - name: darkred -``` +If no dark mode backend theme is set, the light mode theme will also be used in dark mode. +The backend theme settings will be saved and restored on a restart of Home Assistant. ### Manual Theme Selection When themes are enabled in the `configuration.yaml` file, a new option will show up in the user profile page (accessed by clicking your user account initials at the bottom of the sidebar). You can then choose any installed theme from the dropdown list and it will be applied immediately. +This will overrule the theme settings set by the above service calls, and will only be applied to the current device.

From dea9ece2058d7849dc636d855e17e9f884a58c51 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 5 Aug 2020 20:52:17 +0200 Subject: [PATCH 35/40] Beta release notes for 0.114 (#14159) Co-authored-by: Martin Hjelmare Co-authored-by: Eliseo Martelli Co-authored-by: cogneato --- _config.yml | 6 +- source/_posts/2020-08-12-release-114.markdown | 1109 +++++++++++++++++ .../images/blog/2020-08-0.114/dark-mode.png | Bin 0 -> 70516 bytes .../images/blog/2020-08-0.114/repeat-ui.png | Bin 0 -> 25744 bytes 4 files changed, 1112 insertions(+), 3 deletions(-) create mode 100644 source/_posts/2020-08-12-release-114.markdown create mode 100644 source/images/blog/2020-08-0.114/dark-mode.png create mode 100644 source/images/blog/2020-08-0.114/repeat-ui.png diff --git a/_config.yml b/_config.yml index dbd4d2013af..fdf276cd2c0 100644 --- a/_config.yml +++ b/_config.yml @@ -100,9 +100,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 113 -current_patch_version: 3 -date_released: 2020-08-01 +current_minor_version: 114 +current_patch_version: 0 +date_released: 2020-08-12 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_posts/2020-08-12-release-114.markdown b/source/_posts/2020-08-12-release-114.markdown new file mode 100644 index 00000000000..518c9652041 --- /dev/null +++ b/source/_posts/2020-08-12-release-114.markdown @@ -0,0 +1,1109 @@ +--- +layout: post +title: "0.114: Beta release notes" +description: "Beta release notes" +date: 2020-08-05 00:00:00 +date_formatted: "August 12, 2020" +author: Franck Nijhof +author_twitter: frenck +comments: true +categories: Release-Notes +og_image: /images/blog/2020-08-0.114/social.png +--- + + + +Beta release notes for 0.114.0 + +Please be sure to report issues on our GitHub issue tracker: + +- Issues with core & integrations: +- Issues with the frontend/UI: + +Issues introduced in this beta, are generally picked up with priority. + +## Introduction + +Ooh boy, time flew this release cycle; it is time for 0.114 already! + +Personally, I'm hardly even done implementing all automation features added +in the previous release. 😅 + +Ever since our Lovelace UI started as a beta, back in 2018, one of the most +requested features - arguably - is a dark mode. No wonder, as a dark mode is +added to software everywhere nowadays. + +This release adds dark mode! [@bramkragten] didn't stop there and added +color pickers for the main theme colors as well. I looked forward having it, +an easy way of having a bit of theming, without the need for themes. + +This is by far the most noticeable feature of this release, mainly because it +is immediately apparent after the upgrade. + +Meanwhile, the beta Open Z-Wave integration picks up speed in terms of +contributions, reports, fixes and improvements. I've been using it already, +and I love it. My Z-Wave network has never been better and more stable. +If you haven't tried it yet, I would highly recommend doing so. There is a nice +[community guide](https://community.home-assistant.io/t/how-to-test-the-ozw-beta-without-fully-switching-over/211282) +on how to test it without switching over. + +Besides the listing below, 0.114 may feel a bit "empty", however, it isn't. +It is packed with little things and fixes. The "All changes" section is +definitely worth a look this release. + +Enjoy the release. + +../Frenck + +## Dark mode and theme color pickers + +We now have official support for dark mode. 🎉 + +We detect if your device is in dark mode; if that is the case, our default theme +will go dark. You can override the automatic switching between dark and light +theme in your profile. + +Furthermore, you can now also select the primary and accent color for the +default theme. We calculate all other colors to make sure everything matches +and is readable. + +

+Screenshot of the new dark mode theme settings +Screenshot of the new dark mode and theme settings. +

+ +So if you upgrade to Home Assistant 0.114, you are using the default theme +and your device is set to a dark mode; Please be aware that after upgrading, +you will get a dark theme by default in that case. + +Also, when picking colors, make sure you choose a primary color that is +readable on both a light and dark background. For now, this is just a local +setting and has to be applied to every device. + +For custom themes, there is a new option on the `set_theme` service call, +`mode: 'dark'`; this allows to set a theme that will be used when your device +is in dark mode. + +Lastly, when using the `set_theme` service, the settings are now persistent +across restarts. So if you have an automation that calls `set_theme` on startup, +you don't need it anymore. 😉 + +## Automation & Scripts updates + +In [Home Assistant 0.113](/blog/2020/07/22/release-113/) we added tons of new +features to automations and scripts. This release contains some fixes for issues +discovered and reported, but also adds some smaller new features to extend it +even more. + +First of all, the repeat and choose actions are now available when creating +automations or scripts via the UI. + +

+Screenshot of the new automation features available in the UI +Screenshot of the new automation features available in the UI. +

+ +Sub-second precision has been extended and is now available in all +time-related notations. For example, you can now use `2.5` seconds/hours/minutes +or even use it in full time notations: `23:59:59.999`. + +The `automation.turn_off` service now accepts a `stop_actions` data parameter. +By default, when turning off an automation, any currently running automation +will be stopped. This new option allows you to turn off an automation +and optionally leave any currently active actions running. + +Lastly, a small shortcut has been added to the `time` trigger, which now accepts +multiple time values. + +```yaml +automation: + - alias: Example with multiple time values in a single time trigger + trigger: + - platform: time + at: + - "05:00:00" + - "06:00:00" + - "10:00:00" + action: + choose: + ... +``` + +### Open Z-Wave (beta) + +The Open Z-Wave (beta) integration is coming along nicely and others are +started helping out as well! A shout out to [@firstof9], [@RobBie1221] and +[@tradiuz] for jumping in and helping out this release. + +Some additional information is added to the UI for Open Z-Wave, you can now +see device information right from the device page and shows information like +the Z-Wave Node ID and other information about your Z-Wave device. + + + +Furthermore, RGB color support has been added to lights, and bugs have been +fixed using color temperatures and dimming. 💡 + +Lastly, unnecessary polling of devices has been reduced. + +## Yet another round of performance improvements + +Did we tell you that [@bdraco] is unstoppable in his saga to improve the +performance and stability of Home Assistant? His train just keeps going! + +0.114 is no exception and a lot of smaller performance and stability +improvements are made again. + +A bit technical, maybe, but here is a small overview of the changes: + +- The internal device & entity registries are now indexed, and thus faster. +- Setting up groups at startup is more efficient. +- Reloading YAML configurations or checking your configuration is now quicker. +- A context accompanies every event in Home Assistant (every trigger, + automation, … has a "triggered by what and who"). These contexts are now + created faster, which makes everything faster. +- Tracking time pattern triggers are now scheduled on our event loop, which + is far more efficient. +- Processing of system logs is taken out of the main program loop, so it doesn't + interfere with things Home Assistant does for you. + +Finally, if, for any reason, corruption is detected in the Home Assistant +recorder database (SQLite), the old database is moved and a new, fresh database +is created. This prevents issues during startup. + +Honestly, the above isn't even complete. 😅 Thanks [@bdraco]! + +## Other noteworthy changes + +- You can now move Lovelace cards to a different dashboard and add cards to + other than the main dashboard from the device pages. +- Add support for safe area insets; For example, iPhones with notches now cover + the entire screen while having enough padding for home swipe action + and the notch at the top of your display. +- [HomeKit][homekit docs] has now support for doorbells (thanks [@adrum]) and + [@bdraco] added support for multiple camera streams. +- If you use [light][light docs] profiles, those now support a default + transition value, thanks to [@donkawechico]. +- [@agners] added IPv4 & IPv6 (dual-stack) support to the Home Assistant + [web server][http docs], allowing it to run simultaneously on both. + +## New Integrations + +Six new integrations added this release: + +- [AccuWeather][accuweather docs], added by [@bieniu] +- [Azure DevOps][azure_devops docs], added by [@timmo001] +- [Control4][control4 docs], added by [@lawtancool] +- [Firmata][firmata docs], added by [@DaAwesomeP] +- [OVO Energy][ovo_energy docs], added by [@timmo001] +- [Wolflink][wolflink docs], added by [@adamkrol93] + +## New Platforms + +The following integration got support for a new platform: + +- [Pi-hole][pi_hole docs] now provides a switch to turn on/off the service, added by [@shenxn] + +## Integrations now available to set up from the UI + +The following integrations are now available via the Home Assistant UI: + +- [Volumio][volumio docs], done by [@OnFreund] +- [HLK-SW16][hlk_sw16 docs], done by [@jameshilliard] +- [Itho Daalderop Spider][spider docs], done by [@peternijssen] + +## 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). + +Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/core/issues). Make sure to fill in all fields of the issue template. + + + +## Breaking Changes + +Below is a listing of the breaking change for this release, per subject or +integration. Click on one of those to read more about the breaking change +for that specific item. + +
+ Recorder +

+ +The default sqlite database (home-assistant_v2.db) is now validated on startup +and if corruption is detected, the database is renamed to +`home-assistant_v2.db.corrupt.{ISOTIME}` and startup proceeds with a fresh +database. + +([@bdraco] - [#37949]) ([recorder docs]) + +

+
+ +
+ Google Assistant +

+ +A sync will be required for source selection to work after this update. The +keyword to select source will also have changed from "Set mode on TV to.." +to "Set input on TV to.." + +([@elupus] - [#35753]) ([google_assistant docs]) + +

+
+ +
+ Blink +

+ +Due to the new 2FA endpoint, the YAML configuration is no longer supported. + +In addition, due to some API changes, if you are upgrading from a previous +version, you will need to navigate to the integration page at startup and +re-configure Blink. + +Your username and password will be imported, but you need to submit a 2FA token +(emailed to you by Blink) in order to continue setting up the integration. + +([@fronzbot] - [#38027]) ([blink docs]) + +

+
+ +
+ Pi-hole +

+ +A switch has been added to the Pi-hole integration. Because of the switch being +added, the `pi_hole.enable` service is removed. + +The `pi_hole.disable` service remains in order to support disabling the service +for a given amount of time, but now it relies on the switch entity id instead +of the name set by the user, so the `name` field is removed. + +With this change, a switch entity `switch.pi_hole` will be added if you +set up the integration with an API key and default name (Pi-hole). + +Now, you can use `switch.turn_on` and `switch.turn_off` to enable and disable +the Pi-hole service permanently. To disable the service for a given time, +use `pi_hole.disable` with `entity_id: switch.pi_hole` and `duration: 00:00:15`. +To target all Pi-hole services, use `entity_id: all`. + +([@shenxn] - [#35605]) ([pi_hole docs]) + +

+
+ +
+ Volumio +

+ +The Volumio integration is now configured through the UI. If you previously had +it in configuration.yaml, please remove it and configure through the +Integrations panel. + +([@OnFreund] - [#38252]) ([discovery docs]) ([volumio docs]) + +

+
+ +
+ Honeywell Total Connect Comfort (evohome) +

+ +The `hvac_action()` property has been removed from Evohome zones as this data +was inaccurate - the algorithm used to provide this data was not +reliable, and there is no reasonable hope for a satisfactory alternative. + +You will have no indication if a zone is actively calling for heat +(`CURRENT_HVAC_*`), nor if the heat source is currently active. However, +you will continue to have the `hvac_mode()` property, which will indicate if the +heating is enabled, or not (`HVAC_MODE_*`). + +This will be most obvious by the absence of this information in the UI. + +There is no intervention required for this breaking change. + +([@zxdavb] - [#38244]) ([evohome docs]) + +

+
+ +
+ Flume +

+ +The unique id is being updated for existing sensors. You will need to clean up +the stale entity from the entity registry via the GUI. + +([@ChrisMandich] - [#38138]) ([flume docs]) + +

+
+ +
+ Météo-France +

+ +The `meteo_france` integration moved from a web scraping architecture to a +API-based architecture. With this major refactor the following change could +break: + +- The `thunder chance` entity is no longer available (no longer in the API results). +- The `next rain` entity state is now a datetime instead of a delay. +- `next rain` attributes have been simplified. +- `weather_alert:` only one entity created by department. Was by city in the + previous version and could create duplicates. +- `weather alert` attributes have been simplified. +- `weather` platform is showing the current day forecast in the first position of + daily forecast (instead of tomorrow forecast). + +([@oncleben31] - [#37737]) ([meteo_france docs]) + +

+
+
+ Bond +

+ +When you have multiple Bond hubs, each with its own set of devices, those +devices have IDs that the Bond integration uses to generate unique entity IDs +in Home Assistant. Unfortunately, those IDs are only unique within the hub. +So it is possible that unique IDs generated for entities from different hubs +will not be unique and collide. + +This has been fixed by prefixing device ID with a hub ID and the resulting ID +is now truly unique. After restarting you will see each bond entity twice. +One which is live with the new unique ID. The second which is disabled with old +unique ID. + +How to make it work: + +1. Remove the disabled entity (note its friendly ID, e.g., `cover.shades`) +2. Optionally rename the generated friendly ID on the live entity, so that your + automations continue to work. For example, your live entity will have ID + `cover.shades_2`. Rename it to `cover.shades`. + +([@prystupa] - [#38496]) ([bond docs]) + +

+
+ +
+ Hi-Link HLK-SW16 +

+ +The hlk-sw16 entity ids will change upon update and the old entities will need +to be removed manually. + +([@jameshilliard] - [#37190]) ([hlk_sw16 docs]) + +

+
+ +
+ Slack +

+ +The Slack attachments framework was deprecated in 0.108.0 and is now officially +removed. The blocks framework should be used instead. + +([@bachya] - [#38139]) ([slack docs]) + +

+
+ +
+ IQVIA +

+ +Per ADR-0010, IQVIA can no longer be configured via YAML and must be configured +from the UI. Existing IQVIA users have already had their integrations imported +and only need to remove IQVIA-related items from `configuration.yaml`. + +([@bachya] - [#38141]) ([iqvia docs]) + +

+
+ +
+ Shell Command +

+ +Processes spawned from the `shell_command` integration (the command executes) +now timeout after 60 seconds instead of running forever. + +([@bdraco] - [#38491]) ([shell_command docs]) + +

+
+ +
+ Command Line +

+ +The `command_line` cover, notify and switch platforms, now timeout after 15 +seconds (by default) instead of blocking forever. + +([@bdraco] - [#38497]) ([command_line docs]) + +

+
+ +
+ Time pattern listeners +

+ +If time abruptly moves forward or backward, time pattern listeners will only +be adjusted after they were previously scheduled to fire. + +This avoids the need for every time pattern listener to check for this every +second. + +([@bdraco] - [#38021]) + +

+
+ +
+ Logbook +

+ +Support for legacy logbook events created before 0.112 is removed. + +([@bdraco] - [#37822]) ([logbook docs]) + +

+
+ +## All changes + +
+ Click to see all changes! + +- Remove support for legacy logbook events created before 0.112 ([@bdraco] - [#37822]) ([logbook docs]) (breaking-change) +- Refactor bond tests ([@prystupa] - [#37868]) ([bond docs]) +- Feature/izone temperature precision ([@sgryphon] - [#37669]) ([izone docs]) +- Add `ignore_attributes` option to influxdb ([@mdegat01] - [#37747]) ([influxdb docs]) +- Improve bond startup performance ([@prystupa] - [#37900]) ([bond docs]) +- Add Firmata Integration (attempt 2) ([@DaAwesomeP] - [#35591]) ([firmata docs]) (new-integration) +- Add RGB light support to ozw ([@firstof9] - [#37636]) ([ozw docs]) +- Apply feedback on bond integration ([@prystupa] - [#37921]) ([bond docs]) +- Increase test line coverage of homeassistant/helpers/event.py to 100% ([@bdraco] - [#37927]) +- Cleanup logbook tests to prevent failure on race condition ([@bdraco] - [#37928]) ([logbook docs]) +- Improve setup script portability ([@mweinelt] - [#37935]) +- Switch back to create task for Neato ([@dshokouhi] - [#37913]) ([neato docs]) +- prometheus: Reduce loglevel of failed float conversion to debug ([@mweinelt] - [#37936]) ([prometheus docs]) +- Add humidifier intents ([@Shulyaka] - [#37335]) ([humidifier docs]) +- Add humidifier device conditions ([@Shulyaka] - [#36962]) ([humidifier docs]) +- Fix Yandex transport Integration, add signature to requests ([@devbis] - [#37365]) ([yandex_transport docs]) +- Mock out I/O in the default_config test ([@bdraco] - [#37897]) ([default_config docs]) +- Add humidifier device triggers ([@Shulyaka] - [#36887]) ([humidifier docs]) +- Index entity_registry_updated listeners ([@bdraco] - [#37940]) +- Automatically recover when the sqlite3 database is malformed or corrupted ([@bdraco] - [#37949]) ([recorder docs]) (breaking-change) +- Add switch to pi_hole integration ([@shenxn] - [#35605]) ([pi_hole docs]) (breaking-change) (new-platform) +- Bump zeroconf to 0.28.0 ([@bdraco] - [#37951]) ([zeroconf docs]) +- Make sensor and binary_sensor inherit from base class ([@elupus] - [#37946]) ([rfxtrx docs]) +- Add support for InputSelector trait ([@elupus] - [#35753]) ([google_assistant docs]) (breaking-change) +- Adds median to min_max component ([@knudsvik] - [#36686]) ([min_max docs]) +- Add Control4 integration ([@lawtancool] - [#37632]) ([control4 docs]) (new-integration) +- Update comment about parallel updates to match the documentation ([@dmulcahey] - [#37964]) +- Close androidtv ADB socket connection when Home Assistant stops ([@JeffLIrion] - [#37973]) ([androidtv docs]) +- Bumpy pyobihai to make last reboot update as needed ([@dshokouhi] - [#37914]) ([obihai docs]) +- Index the entity registry ([@bdraco] - [#37994]) +- Index the device registry ([@bdraco] - [#37990]) +- Don't advertise switch devices as dimmable lights ([@jyavenard] - [#37978]) ([emulated_hue docs]) +- Disable polling for ozw entities ([@RobBie1221] - [#38005]) ([ozw docs]) +- Force updates for ozw sensors ([@RobBie1221] - [#38003]) ([ozw docs]) +- Add Wolflink integration ([@adamkrol93] - [#34104]) ([wolflink docs]) (new-integration) +- Bump codecov/codecov-action from v1.0.10 to v1.0.11 (dependabot - [#38006]) +- Cleanup async_accept_signal in ZHA ([@dmulcahey] - [#38009]) ([zha docs]) +- Fix ozw color temp ([@tradiuz] - [#38012]) ([ozw docs]) +- Add scrape sensor name to logs ([@rsnodgrass] - [#38020]) ([scrape docs]) +- Use event loop scheduling for tracking time patterns ([@bdraco] - [#38021]) (breaking-change) +- Move data on import in rfxtrx integration into ConfigEntry ([@RobBie1221] - [#38022]) ([rfxtrx docs]) +- Bump actions/setup-python from v2 to v2.1.1 (dependabot - [#38034]) +- Fix wolflink datetime import ([@scop] - [#38028]) ([wolflink docs]) +- Update tests that track time to account for microsecond precision ([@bdraco] - [#38044]) ([automation docs]) +- Implement unload entry for rfxtrx integration ([@RobBie1221] - [#38037]) ([rfxtrx docs]) +- Make sure command entities restore from state ([@elupus] - [#38038]) ([rfxtrx docs]) +- Avoid using implementation internal to trigger events ([@elupus] - [#38041]) ([rfxtrx docs]) +- Ensure we do not start discovered flows until after the started event has fired ([@bdraco] - [#38047]) ([discovery docs]) ([ssdp docs]) ([zeroconf docs]) +- Support default transition in light profiles ([@donkawechico] - [#36747]) ([light docs]) +- Speed up group setup ([@bdraco] - [#38048]) ([group docs]) +- Allow float values in time periods ([@pnbruckner] - [#38023]) +- Update home assistant base image ([@pvizeli] - [#38063]) +- Various type hint improvements ([@scop] - [#37952]) +- Update automation logger to include object_id like scripts ([@pnbruckner] - [#37948]) ([automation docs]) +- Change sky_hub to async and fix exception spamming ([@RogerSelwyn] - [#37129]) ([sky_hub docs]) +- Bump version to 0.114.0dev0 ([@frenck] - [#38071]) +- Upgrade aiohttp to 3.6.2 ([@frenck] - [#38082]) +- Fix ozw light color values check ([@MartinHjelmare] - [#38067]) ([ozw docs]) +- Refactor bond integration to be completely async ([@prystupa] - [#38066]) ([bond docs]) +- Centralize bond update state logic ([@prystupa] - [#38093]) ([bond docs]) +- Avoid generating a Context() object every second ([@bdraco] - [#38085]) +- Use postgresql style uuid generation (uuid_generate_v1mc) for Context uuids ([@bdraco] - [#38089]) +- Clean up fido tests ([@balloob] - [#38098]) ([fido docs]) +- Bump codecov/codecov-action from v1.0.11 to v1.0.12 (dependabot - [#38102]) +- Add 'alarm_event_occurred' property from AlarmDecoder ([@melyux] - [#38055]) ([alarmdecoder docs]) +- Add homematic IPKeyBlindMulti device ([@sMauldaeschle] - [#38059]) ([homematic docs]) +- Add set_central_heating_ovrd service to opentherm_gw ([@mvn23] - [#34425]) ([opentherm_gw docs]) +- Fix state automation trigger (#38014) ([@azogue] - [#38032]) ([automation docs]) +- Fix updates of Rssi for control devices in rfxtrx ([@RobBie1221] - [#38131]) ([rfxtrx docs]) +- Upgrade bond-api to 0.1.7 ([@prystupa] - [#38121]) ([bond docs]) +- Write device_id to ConfigEntry of rfxtrx integration ([@RobBie1221] - [#38064]) ([rfxtrx docs]) +- Add test ([@emontnemery] - [#37890]) ([mqtt docs]) +- Asyncify rfxtrx startup and event handling ([@elupus] - [#38155]) ([rfxtrx docs]) +- Support unavailable state in template fan ([@thomasdelaet] - [#38114]) ([template docs]) +- convert_until isn't returning anything ([@Misiu] - [#38157]) ([evohome docs]) +- Bump python-slugify to 4.0.1 ([@fronzbot] - [#38140]) +- Upgrade coverage to 5.2.1 ([@frenck] - [#38158]) +- Support rfxtrx smoke detectors, motion sensors as binary_sensors ([@elupus] - [#38000]) ([rfxtrx docs]) +- Gracefully handle bond API errors and timeouts through available state ([@prystupa] - [#38137]) ([bond docs]) +- Prevent unnecessary updates of zone component ([@Danielhiversen] - [#38167]) ([zone docs]) +- Prevent unnecessary updates of sun component ([@Danielhiversen] - [#38169]) ([sun docs]) +- Add AccuWeather integration ([@bieniu] - [#37166]) ([accuweather docs]) (new-integration) +- Added 2020 version Aqara double wall switch ([@markuskorbel] - [#38164]) ([deconz docs]) +- Ensure all track time change tests mock a specific start time ([@bdraco] - [#38178]) +- Enable Homekit remote support for devices without play/pause ([@nickw444] - [#37180]) ([homekit docs]) +- Prevent unnecessary updates of met component ([@Danielhiversen] - [#38168]) ([met docs]) +- Support multiple camera streams in HomeKit ([@bdraco] - [#37968]) ([homekit docs]) +- Rfxtrx fixup config entry creation ([@elupus] - [#38185]) ([rfxtrx docs]) +- Removing gogogate2 emulated cover transitional states. ([@vangorra] - [#38199]) ([gogogate2 docs]) +- Volvo on call updates ([@bratanon] - [#38142]) ([volvooncall docs]) +- Make rfxtrx RfyDevices have sun automation switches ([@elupus] - [#38210]) ([rfxtrx docs]) (beta fix) +- Add Azure DevOps Integration ([@timmo001] - [#33765]) ([azure_devops docs]) (new-integration) +- Mark event tests to run as callbacks ([@bdraco] - [#38212]) +- Attempt to fix islamic prayer times tests ([@bdraco] - [#38220]) ([islamic_prayer_times docs]) +- Update logbook to use async_add_executor_job ([@bdraco] - [#38217]) ([logbook docs]) +- Fix libav install in Travis CI ([@scop] - [#38221]) +- Refactor bond unit tests to reduce boilerplate ([@prystupa] - [#38177]) ([bond docs]) +- Add update available binary sensor to Tesla ([@alandtse] - [#37991]) ([tesla docs]) +- fix issue #34559 ([@zxdavb] - [#38241]) ([evohome docs]) +- Implement resilient startup for bond integration with ConfigEntryNotReady support ([@prystupa] - [#38253]) ([bond docs]) +- Add changes from comments after merging AccuWeather ([@bieniu] - [#38227]) ([accuweather docs]) +- Update holidays to 0.10.3 ([@MikeTsenatek] - [#38246]) ([workday docs]) +- Add config flow to Volumio ([@OnFreund] - [#38252]) ([discovery docs]) ([volumio docs]) (breaking-change) +- Change devolo Home Control entity naming ([@2Fake] - [#38275]) ([devolo_home_control docs]) +- Corrected typo ([@jcallaghan] - [#38278]) ([tado docs]) +- Remove evohome hvac_action as it is inaccurate ([@zxdavb] - [#38244]) ([evohome docs]) (breaking-change) +- Prevent harmony from resetting state with multiple turn ons ([@bdraco] - [#38183]) ([harmony docs]) +- Delint recent change to evohome ([@zxdavb] - [#38294]) ([evohome docs]) +- Setup rfxtrx event listener directly ([@elupus] - [#38298]) ([rfxtrx docs]) +- Clean up commands generation for rfxtrx ([@elupus] - [#38236]) ([rfxtrx docs]) +- Restore rfxtrx state to off when delay off is in effect ([@elupus] - [#38239]) ([rfxtrx docs]) +- Bond - Make assumed state conditional ([@marciogranzotto] - [#38209]) ([bond docs]) +- Apply changes from bond code review ([@prystupa] - [#38303]) ([bond docs]) +- Add debug logging for bond ([@prystupa] - [#38304]) ([bond docs]) +- Fix ozw dimming duration ([@firstof9] - [#38254]) ([ozw docs]) +- Update PyFlume version, support for multiple state attributes ([@ChrisMandich] - [#38138]) ([flume docs]) (breaking-change) +- Fix lg_soundbar callback ([@mjg59] - [#38259]) ([lg_soundbar docs]) +- Bump actions/upload-artifact from 2.1.0 to v2.1.1 (dependabot - [#38315]) +- Add myself to xiaomi miio codeowners ([@starkillerOG] - [#38350]) ([xiaomi_miio docs]) +- Upgrade youtube_dl to version 2020.07.28 ([@BKPepe] - [#38328]) ([media_extractor docs]) +- Temporary lock pip to 20.1.1 to avoid build issue ([@frenck] - [#38358]) (beta fix) +- Add wheels job for building core wheels ([@frenck] - [#38359]) +- Add jobs names to Wheels builds ([@frenck] - [#38363]) +- Update run-in-env.sh ([@ehendrix23] - [#36577]) +- Bump aioambient to 1.2.0 ([@bachya] - [#38364]) ([ambient_station docs]) +- Bump simplisafe-python to 9.2.2 ([@bachya] - [#38365]) ([simplisafe docs]) +- Bump ElkM1 library version. ([@gwww] - [#38368]) ([elkm1 docs]) +- Add basic websocket api for OZW ([@cgarwood] - [#38265]) ([ozw docs]) +- Add support for multiple time triggers in automations ([@frenck] - [#37975]) ([automation docs]) +- Add support for dimmable bond lights ([@marciogranzotto] - [#38203]) ([bond docs]) +- Bump wirelesstagpy to 0.4.1 ([@sergeymaysak] - [#38387]) ([wirelesstag docs]) +- Fix bond fans without defined max_speed ([@prystupa] - [#38382]) ([bond docs]) +- Clean up Volumio code ([@OnFreund] - [#38400]) ([volumio docs]) +- Update coordinator improvements ([@scop] - [#38366]) +- Improve tests for Airly integration ([@bieniu] - [#38357]) ([airly docs]) +- Generate bond config entry ID from the hub metadata ([@prystupa] - [#38354]) ([bond docs]) +- Add battery sensor to xiaomi_aqara ([@shenxn] - [#38004]) ([xiaomi_aqara docs]) +- Fix variable error during stream close ([@bdraco] - [#38417]) ([stream docs]) +- Simplify generate_entity_id ([@bdraco] - [#38418]) +- Abort bond hub config flow if hub is already registered ([@prystupa] - [#38416]) ([bond docs]) +- Support 'stop' action for covers in device automation ([@prystupa] - [#38219]) ([cover docs]) +- Add identifiers to device registry api output ([@cgarwood] - [#38427]) ([config docs]) +- Remove unused SmartThings capability subscriptions ([@andrewsayre] - [#38128]) ([smartthings docs]) +- Add support for HomeKit doorbell ([@adrum] - [#38419]) ([homekit docs]) +- Restore the ability to tell when a harmony activity is starting ([@bdraco] - [#38335]) ([harmony docs]) +- Update aioazuredevops to v1.3.5 ([@timmo001] - [#38441]) ([azure_devops docs]) +- Update bond-api to 0.1.8 ([@prystupa] - [#38442]) ([bond docs]) +- Add support to climate devices in Google Assistant Fan Trait ([@marciogranzotto] - [#38337]) ([google_assistant docs]) +- Add unique ids for "buienradar" platforms weather and camera ([@RobBie1221] - [#37761]) ([buienradar docs]) +- Improve logging when a unique id conflict is detected ([@bdraco] - [#38434]) +- Add zeroconf discovery for bond integration ([@prystupa] - [#38448]) ([bond docs]) +- Increase test coverage for rfxtrx integration ([@RobBie1221] - [#38435]) +- Add node neighbors to ozw websocket api ([@firstof9] - [#38447]) ([ozw docs]) +- Refactor Météo-France to use API instead of web scraping ([@oncleben31] - [#37737]) ([meteo_france docs]) (breaking-change) +- Add optional unique_id attribute to the template platforms ([@michaelarnauts] - [#38011]) ([template docs]) +- Allow automation to be turned off without stopping actions ([@pnbruckner] - [#38436]) ([automation docs]) ([script docs]) +- Optimize directv config flow tests. ([@ctalkington] - [#38460]) ([directv docs]) ([directv docs]) +- Update pyskyqhu to 0.1.1 ([@RogerSelwyn] - [#38461]) ([sky_hub docs]) +- Add sensor platform for AccuWeather integration ([@bieniu] - [#38312]) ([accuweather docs]) (new-platform) +- Add bed sensor availability for withings ([@vangorra] - [#37906]) ([withings docs]) +- Add platform tests to yeelight ([@shenxn] - [#37745]) ([yeelight docs]) +- Add homematic IPWKeyBlindMulti device ([@weissm] - [#38345]) ([homematic docs]) +- Avoid shutdown delays when emulated_hue is enabled ([@bdraco] - [#38472]) ([emulated_hue docs]) +- Update numato-gpio to 0.8.0 ([@clssn] - [#38415]) ([numato docs]) +- Optimize ipp tests ([@ctalkington] - [#38485]) ([ipp docs]) +- Ensure bond unique ids are unique across hubs ([@prystupa] - [#38496]) ([bond docs]) (breaking-change) +- Provide a unique entity ID for lgsoundbar ([@mjg59] - [#38494]) ([lg_soundbar docs]) +- Add config flow to HLK-SW16 ([@jameshilliard] - [#37190]) ([hlk_sw16 docs]) (breaking-change) +- Bump actions/upload-artifact from v2.1.1 to v2.1.2 (dependabot - [#38505]) +- Fix lookup by Plex media key when playing on Sonos ([@jjlawren] - [#38119]) ([plex docs]) +- Clean up Plex clip handling ([@jjlawren] - [#38500]) ([plex docs]) +- Fix harmony activity starting initial state ([@bdraco] - [#38439]) ([harmony docs]) +- Bump hass-nabucasa to avoid the performance penalty loading ecdsa ([@bdraco] - [#38056]) +- Fix flapping chained task logging test ([@bdraco] - [#38492]) +- Fix Lutron Caseta devices loading when missing serials ([@ShaneQi] - [#38255]) ([lutron_caseta docs]) +- Update frontend to 20200803.0 ([@bramkragten] - [#38514]) ([frontend docs]) +- Log the version reported by Bond hub upon startup to facilitate troub… ([@prystupa] - [#38508]) ([bond docs]) +- Fix missing .name at entity_id in service example ([@Cooper-Dale] - [#38515]) ([camera docs]) +- Remove deprecated Slack attachments framework ([@bachya] - [#38139]) ([slack docs]) (breaking-change) +- Remove YAML configuration support for IQVIA ([@bachya] - [#38141]) ([iqvia docs]) (breaking-change) +- Fix run-in-env.sh sh options ([@scop] - [#38520]) +- Reduce time to reload yaml and check configuration ([@bdraco] - [#38469]) +- Cache emulated hue states attributes between get and put calls to avoid unexpected alexa errors ([@jyavenard] - [#38451]) ([emulated_hue docs]) +- Bump pyaehw4a1 to 0.3.9 ([@bannhead] - [#38347]) ([hisense_aehw4a1 docs]) +- Update pyhomematic to 0.1.68 ([@danielperna84] - [#38530]) ([homematic docs]) +- Fix Fibaro component failure to load with HC3 ([@pbalogh77] - [#38528]) ([fibaro docs]) +- Support dual stack IP support (IPv4 and IPv6) ([@agners] - [#38046]) ([http docs]) +- Update notify.py ([@dclobato] - [#38526]) ([clickatell docs]) +- Make ozw CCT use device attributes instead of hard coded values ([@tradiuz] - [#38054]) ([ozw docs]) +- Add Netatmo data handler ([@cgtobi] - [#35571]) ([netatmo docs]) +- Move system log processing out of the event loop ([@bdraco] - [#38445]) ([system_log docs]) +- Fix Control4 token refresh ([@lawtancool] - [#38302]) ([control4 docs]) +- Add spider config flow ([@peternijssen] - [#36001]) ([spider docs]) +- Upgrade toonapi to v0.2.0 ([@frenck] - [#38543]) ([toon docs]) +- Update pymetno lib, and start using met api v2 ([@Danielhiversen] - [#38547]) ([met docs]) ([norway_air docs]) +- Add new Water Meter Sensor for Toon ([@tizzen33] - [#37879]) ([toon docs]) +- Fix Mikrotik encoding by setting utf8 ([@Janhouse] - [#38091]) ([mikrotik docs]) +- Allow device class to control icons for tesla ([@ctalkington] - [#37526]) ([tesla docs]) +- Fix upnp error on unload_entry if device does not exist ([@StevenLooman] - [#38230]) ([upnp docs]) +- Add a 60s timeout to shell_command to prevent processes from building up ([@bdraco] - [#38491]) ([shell_command docs]) (breaking-change) +- Add missing timeout to command_line platforms: cover, notify, switch ([@bdraco] - [#38497]) ([command_line docs]) (breaking-change) +- Keep webostv source list when TV is off ([@zhuqf] - [#38250]) ([webostv docs]) +- Use IP Address (host) provided by mDNS on Elgato Key Light ([@PedroLamas] - [#38539]) ([elgato docs]) +- Bump actions/upload-artifact from v2.1.2 to v2.1.3 (dependabot - [#38552]) +- Update pyrainbird to 0.4.2 ([@peternijssen] - [#38542]) ([rainbird docs]) +- Add Xiaomi Aqara wireless and light switches (2020 model) ([@chewbh] - [#37985]) ([xiaomi_aqara docs]) +- Blink auth flow improvement and mini camera support ([@fronzbot] - [#38027]) ([blink docs]) (breaking-change) +- Add device_info to GIOS integration ([@bieniu] - [#38503]) ([gios docs]) +- Add device_info property for AccuWeather integration ([@bieniu] - [#38480]) ([accuweather docs]) +- Add device_info property and simplify generation of unique_id for Airly integration ([@bieniu] - [#38479]) ([airly docs]) +- Bump python-wiffi to 1.0.1 ([@mampfes] - [#38556]) ([wiffi docs]) +- OVO Energy Integration ([@timmo001] - [#36104]) ([ovo_energy docs]) (new-integration) +- Intelligent timeout handler for setup/bootstrap ([@pvizeli] - [#38329]) +- Bump frontend to 20200805.0 ([@ludeeus] - [#38557]) ([frontend docs]) + +
+ +[#33765]: https://github.com/home-assistant/core/pull/33765 +[#34104]: https://github.com/home-assistant/core/pull/34104 +[#34425]: https://github.com/home-assistant/core/pull/34425 +[#35571]: https://github.com/home-assistant/core/pull/35571 +[#35591]: https://github.com/home-assistant/core/pull/35591 +[#35605]: https://github.com/home-assistant/core/pull/35605 +[#35753]: https://github.com/home-assistant/core/pull/35753 +[#36001]: https://github.com/home-assistant/core/pull/36001 +[#36104]: https://github.com/home-assistant/core/pull/36104 +[#36577]: https://github.com/home-assistant/core/pull/36577 +[#36686]: https://github.com/home-assistant/core/pull/36686 +[#36747]: https://github.com/home-assistant/core/pull/36747 +[#36887]: https://github.com/home-assistant/core/pull/36887 +[#36962]: https://github.com/home-assistant/core/pull/36962 +[#37129]: https://github.com/home-assistant/core/pull/37129 +[#37166]: https://github.com/home-assistant/core/pull/37166 +[#37180]: https://github.com/home-assistant/core/pull/37180 +[#37190]: https://github.com/home-assistant/core/pull/37190 +[#37335]: https://github.com/home-assistant/core/pull/37335 +[#37365]: https://github.com/home-assistant/core/pull/37365 +[#37526]: https://github.com/home-assistant/core/pull/37526 +[#37632]: https://github.com/home-assistant/core/pull/37632 +[#37636]: https://github.com/home-assistant/core/pull/37636 +[#37669]: https://github.com/home-assistant/core/pull/37669 +[#37737]: https://github.com/home-assistant/core/pull/37737 +[#37745]: https://github.com/home-assistant/core/pull/37745 +[#37747]: https://github.com/home-assistant/core/pull/37747 +[#37761]: https://github.com/home-assistant/core/pull/37761 +[#37822]: https://github.com/home-assistant/core/pull/37822 +[#37868]: https://github.com/home-assistant/core/pull/37868 +[#37879]: https://github.com/home-assistant/core/pull/37879 +[#37890]: https://github.com/home-assistant/core/pull/37890 +[#37897]: https://github.com/home-assistant/core/pull/37897 +[#37900]: https://github.com/home-assistant/core/pull/37900 +[#37906]: https://github.com/home-assistant/core/pull/37906 +[#37913]: https://github.com/home-assistant/core/pull/37913 +[#37914]: https://github.com/home-assistant/core/pull/37914 +[#37921]: https://github.com/home-assistant/core/pull/37921 +[#37927]: https://github.com/home-assistant/core/pull/37927 +[#37928]: https://github.com/home-assistant/core/pull/37928 +[#37935]: https://github.com/home-assistant/core/pull/37935 +[#37936]: https://github.com/home-assistant/core/pull/37936 +[#37940]: https://github.com/home-assistant/core/pull/37940 +[#37946]: https://github.com/home-assistant/core/pull/37946 +[#37948]: https://github.com/home-assistant/core/pull/37948 +[#37949]: https://github.com/home-assistant/core/pull/37949 +[#37951]: https://github.com/home-assistant/core/pull/37951 +[#37952]: https://github.com/home-assistant/core/pull/37952 +[#37964]: https://github.com/home-assistant/core/pull/37964 +[#37968]: https://github.com/home-assistant/core/pull/37968 +[#37973]: https://github.com/home-assistant/core/pull/37973 +[#37975]: https://github.com/home-assistant/core/pull/37975 +[#37978]: https://github.com/home-assistant/core/pull/37978 +[#37985]: https://github.com/home-assistant/core/pull/37985 +[#37990]: https://github.com/home-assistant/core/pull/37990 +[#37991]: https://github.com/home-assistant/core/pull/37991 +[#37994]: https://github.com/home-assistant/core/pull/37994 +[#38000]: https://github.com/home-assistant/core/pull/38000 +[#38003]: https://github.com/home-assistant/core/pull/38003 +[#38004]: https://github.com/home-assistant/core/pull/38004 +[#38005]: https://github.com/home-assistant/core/pull/38005 +[#38006]: https://github.com/home-assistant/core/pull/38006 +[#38009]: https://github.com/home-assistant/core/pull/38009 +[#38011]: https://github.com/home-assistant/core/pull/38011 +[#38012]: https://github.com/home-assistant/core/pull/38012 +[#38020]: https://github.com/home-assistant/core/pull/38020 +[#38021]: https://github.com/home-assistant/core/pull/38021 +[#38022]: https://github.com/home-assistant/core/pull/38022 +[#38023]: https://github.com/home-assistant/core/pull/38023 +[#38027]: https://github.com/home-assistant/core/pull/38027 +[#38028]: https://github.com/home-assistant/core/pull/38028 +[#38032]: https://github.com/home-assistant/core/pull/38032 +[#38034]: https://github.com/home-assistant/core/pull/38034 +[#38037]: https://github.com/home-assistant/core/pull/38037 +[#38038]: https://github.com/home-assistant/core/pull/38038 +[#38041]: https://github.com/home-assistant/core/pull/38041 +[#38044]: https://github.com/home-assistant/core/pull/38044 +[#38046]: https://github.com/home-assistant/core/pull/38046 +[#38047]: https://github.com/home-assistant/core/pull/38047 +[#38048]: https://github.com/home-assistant/core/pull/38048 +[#38054]: https://github.com/home-assistant/core/pull/38054 +[#38055]: https://github.com/home-assistant/core/pull/38055 +[#38056]: https://github.com/home-assistant/core/pull/38056 +[#38059]: https://github.com/home-assistant/core/pull/38059 +[#38063]: https://github.com/home-assistant/core/pull/38063 +[#38064]: https://github.com/home-assistant/core/pull/38064 +[#38066]: https://github.com/home-assistant/core/pull/38066 +[#38067]: https://github.com/home-assistant/core/pull/38067 +[#38071]: https://github.com/home-assistant/core/pull/38071 +[#38082]: https://github.com/home-assistant/core/pull/38082 +[#38085]: https://github.com/home-assistant/core/pull/38085 +[#38089]: https://github.com/home-assistant/core/pull/38089 +[#38091]: https://github.com/home-assistant/core/pull/38091 +[#38093]: https://github.com/home-assistant/core/pull/38093 +[#38098]: https://github.com/home-assistant/core/pull/38098 +[#38102]: https://github.com/home-assistant/core/pull/38102 +[#38114]: https://github.com/home-assistant/core/pull/38114 +[#38119]: https://github.com/home-assistant/core/pull/38119 +[#38121]: https://github.com/home-assistant/core/pull/38121 +[#38128]: https://github.com/home-assistant/core/pull/38128 +[#38131]: https://github.com/home-assistant/core/pull/38131 +[#38137]: https://github.com/home-assistant/core/pull/38137 +[#38138]: https://github.com/home-assistant/core/pull/38138 +[#38139]: https://github.com/home-assistant/core/pull/38139 +[#38140]: https://github.com/home-assistant/core/pull/38140 +[#38141]: https://github.com/home-assistant/core/pull/38141 +[#38142]: https://github.com/home-assistant/core/pull/38142 +[#38155]: https://github.com/home-assistant/core/pull/38155 +[#38157]: https://github.com/home-assistant/core/pull/38157 +[#38158]: https://github.com/home-assistant/core/pull/38158 +[#38164]: https://github.com/home-assistant/core/pull/38164 +[#38167]: https://github.com/home-assistant/core/pull/38167 +[#38168]: https://github.com/home-assistant/core/pull/38168 +[#38169]: https://github.com/home-assistant/core/pull/38169 +[#38177]: https://github.com/home-assistant/core/pull/38177 +[#38178]: https://github.com/home-assistant/core/pull/38178 +[#38183]: https://github.com/home-assistant/core/pull/38183 +[#38185]: https://github.com/home-assistant/core/pull/38185 +[#38199]: https://github.com/home-assistant/core/pull/38199 +[#38203]: https://github.com/home-assistant/core/pull/38203 +[#38209]: https://github.com/home-assistant/core/pull/38209 +[#38210]: https://github.com/home-assistant/core/pull/38210 +[#38212]: https://github.com/home-assistant/core/pull/38212 +[#38217]: https://github.com/home-assistant/core/pull/38217 +[#38219]: https://github.com/home-assistant/core/pull/38219 +[#38220]: https://github.com/home-assistant/core/pull/38220 +[#38221]: https://github.com/home-assistant/core/pull/38221 +[#38227]: https://github.com/home-assistant/core/pull/38227 +[#38230]: https://github.com/home-assistant/core/pull/38230 +[#38236]: https://github.com/home-assistant/core/pull/38236 +[#38239]: https://github.com/home-assistant/core/pull/38239 +[#38241]: https://github.com/home-assistant/core/pull/38241 +[#38244]: https://github.com/home-assistant/core/pull/38244 +[#38246]: https://github.com/home-assistant/core/pull/38246 +[#38250]: https://github.com/home-assistant/core/pull/38250 +[#38252]: https://github.com/home-assistant/core/pull/38252 +[#38253]: https://github.com/home-assistant/core/pull/38253 +[#38254]: https://github.com/home-assistant/core/pull/38254 +[#38255]: https://github.com/home-assistant/core/pull/38255 +[#38259]: https://github.com/home-assistant/core/pull/38259 +[#38265]: https://github.com/home-assistant/core/pull/38265 +[#38275]: https://github.com/home-assistant/core/pull/38275 +[#38278]: https://github.com/home-assistant/core/pull/38278 +[#38294]: https://github.com/home-assistant/core/pull/38294 +[#38298]: https://github.com/home-assistant/core/pull/38298 +[#38302]: https://github.com/home-assistant/core/pull/38302 +[#38303]: https://github.com/home-assistant/core/pull/38303 +[#38304]: https://github.com/home-assistant/core/pull/38304 +[#38312]: https://github.com/home-assistant/core/pull/38312 +[#38315]: https://github.com/home-assistant/core/pull/38315 +[#38328]: https://github.com/home-assistant/core/pull/38328 +[#38329]: https://github.com/home-assistant/core/pull/38329 +[#38335]: https://github.com/home-assistant/core/pull/38335 +[#38337]: https://github.com/home-assistant/core/pull/38337 +[#38345]: https://github.com/home-assistant/core/pull/38345 +[#38347]: https://github.com/home-assistant/core/pull/38347 +[#38350]: https://github.com/home-assistant/core/pull/38350 +[#38354]: https://github.com/home-assistant/core/pull/38354 +[#38357]: https://github.com/home-assistant/core/pull/38357 +[#38358]: https://github.com/home-assistant/core/pull/38358 +[#38359]: https://github.com/home-assistant/core/pull/38359 +[#38363]: https://github.com/home-assistant/core/pull/38363 +[#38364]: https://github.com/home-assistant/core/pull/38364 +[#38365]: https://github.com/home-assistant/core/pull/38365 +[#38366]: https://github.com/home-assistant/core/pull/38366 +[#38368]: https://github.com/home-assistant/core/pull/38368 +[#38382]: https://github.com/home-assistant/core/pull/38382 +[#38387]: https://github.com/home-assistant/core/pull/38387 +[#38400]: https://github.com/home-assistant/core/pull/38400 +[#38415]: https://github.com/home-assistant/core/pull/38415 +[#38416]: https://github.com/home-assistant/core/pull/38416 +[#38417]: https://github.com/home-assistant/core/pull/38417 +[#38418]: https://github.com/home-assistant/core/pull/38418 +[#38419]: https://github.com/home-assistant/core/pull/38419 +[#38427]: https://github.com/home-assistant/core/pull/38427 +[#38434]: https://github.com/home-assistant/core/pull/38434 +[#38435]: https://github.com/home-assistant/core/pull/38435 +[#38436]: https://github.com/home-assistant/core/pull/38436 +[#38439]: https://github.com/home-assistant/core/pull/38439 +[#38441]: https://github.com/home-assistant/core/pull/38441 +[#38442]: https://github.com/home-assistant/core/pull/38442 +[#38445]: https://github.com/home-assistant/core/pull/38445 +[#38447]: https://github.com/home-assistant/core/pull/38447 +[#38448]: https://github.com/home-assistant/core/pull/38448 +[#38451]: https://github.com/home-assistant/core/pull/38451 +[#38460]: https://github.com/home-assistant/core/pull/38460 +[#38461]: https://github.com/home-assistant/core/pull/38461 +[#38469]: https://github.com/home-assistant/core/pull/38469 +[#38472]: https://github.com/home-assistant/core/pull/38472 +[#38479]: https://github.com/home-assistant/core/pull/38479 +[#38480]: https://github.com/home-assistant/core/pull/38480 +[#38485]: https://github.com/home-assistant/core/pull/38485 +[#38491]: https://github.com/home-assistant/core/pull/38491 +[#38492]: https://github.com/home-assistant/core/pull/38492 +[#38494]: https://github.com/home-assistant/core/pull/38494 +[#38496]: https://github.com/home-assistant/core/pull/38496 +[#38497]: https://github.com/home-assistant/core/pull/38497 +[#38500]: https://github.com/home-assistant/core/pull/38500 +[#38503]: https://github.com/home-assistant/core/pull/38503 +[#38505]: https://github.com/home-assistant/core/pull/38505 +[#38508]: https://github.com/home-assistant/core/pull/38508 +[#38514]: https://github.com/home-assistant/core/pull/38514 +[#38515]: https://github.com/home-assistant/core/pull/38515 +[#38520]: https://github.com/home-assistant/core/pull/38520 +[#38526]: https://github.com/home-assistant/core/pull/38526 +[#38528]: https://github.com/home-assistant/core/pull/38528 +[#38530]: https://github.com/home-assistant/core/pull/38530 +[#38539]: https://github.com/home-assistant/core/pull/38539 +[#38542]: https://github.com/home-assistant/core/pull/38542 +[#38543]: https://github.com/home-assistant/core/pull/38543 +[#38547]: https://github.com/home-assistant/core/pull/38547 +[#38552]: https://github.com/home-assistant/core/pull/38552 +[#38556]: https://github.com/home-assistant/core/pull/38556 +[#38557]: https://github.com/home-assistant/core/pull/38557 +[@2Fake]: https://github.com/2Fake +[@BKPepe]: https://github.com/BKPepe +[@ChrisMandich]: https://github.com/ChrisMandich +[@Cooper-Dale]: https://github.com/Cooper-Dale +[@DaAwesomeP]: https://github.com/DaAwesomeP +[@Danielhiversen]: https://github.com/Danielhiversen +[@Janhouse]: https://github.com/Janhouse +[@JeffLIrion]: https://github.com/JeffLIrion +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@MikeTsenatek]: https://github.com/MikeTsenatek +[@Misiu]: https://github.com/Misiu +[@OnFreund]: https://github.com/OnFreund +[@PedroLamas]: https://github.com/PedroLamas +[@RobBie1221]: https://github.com/RobBie1221 +[@RogerSelwyn]: https://github.com/RogerSelwyn +[@ShaneQi]: https://github.com/ShaneQi +[@Shulyaka]: https://github.com/Shulyaka +[@StevenLooman]: https://github.com/StevenLooman +[@adamkrol93]: https://github.com/adamkrol93 +[@adrum]: https://github.com/adrum +[@agners]: https://github.com/agners +[@alandtse]: https://github.com/alandtse +[@andrewsayre]: https://github.com/andrewsayre +[@azogue]: https://github.com/azogue +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@bannhead]: https://github.com/bannhead +[@bdraco]: https://github.com/bdraco +[@bieniu]: https://github.com/bieniu +[@bramkragten]: https://github.com/bramkragten +[@bratanon]: https://github.com/bratanon +[@cgarwood]: https://github.com/cgarwood +[@cgtobi]: https://github.com/cgtobi +[@chewbh]: https://github.com/chewbh +[@clssn]: https://github.com/clssn +[@ctalkington]: https://github.com/ctalkington +[@danielperna84]: https://github.com/danielperna84 +[@dclobato]: https://github.com/dclobato +[@devbis]: https://github.com/devbis +[@dmulcahey]: https://github.com/dmulcahey +[@donkawechico]: https://github.com/donkawechico +[@dshokouhi]: https://github.com/dshokouhi +[@ehendrix23]: https://github.com/ehendrix23 +[@elupus]: https://github.com/elupus +[@emontnemery]: https://github.com/emontnemery +[@firstof9]: https://github.com/firstof9 +[@frenck]: https://github.com/frenck +[@fronzbot]: https://github.com/fronzbot +[@gwww]: https://github.com/gwww +[@jameshilliard]: https://github.com/jameshilliard +[@jcallaghan]: https://github.com/jcallaghan +[@jjlawren]: https://github.com/jjlawren +[@jyavenard]: https://github.com/jyavenard +[@knudsvik]: https://github.com/knudsvik +[@lawtancool]: https://github.com/lawtancool +[@ludeeus]: https://github.com/ludeeus +[@mampfes]: https://github.com/mampfes +[@marciogranzotto]: https://github.com/marciogranzotto +[@markuskorbel]: https://github.com/markuskorbel +[@mdegat01]: https://github.com/mdegat01 +[@melyux]: https://github.com/melyux +[@michaelarnauts]: https://github.com/michaelarnauts +[@mjg59]: https://github.com/mjg59 +[@mvn23]: https://github.com/mvn23 +[@mweinelt]: https://github.com/mweinelt +[@nickw444]: https://github.com/nickw444 +[@oncleben31]: https://github.com/oncleben31 +[@pbalogh77]: https://github.com/pbalogh77 +[@peternijssen]: https://github.com/peternijssen +[@pnbruckner]: https://github.com/pnbruckner +[@prystupa]: https://github.com/prystupa +[@pvizeli]: https://github.com/pvizeli +[@rsnodgrass]: https://github.com/rsnodgrass +[@sMauldaeschle]: https://github.com/sMauldaeschle +[@scop]: https://github.com/scop +[@sergeymaysak]: https://github.com/sergeymaysak +[@sgryphon]: https://github.com/sgryphon +[@shenxn]: https://github.com/shenxn +[@starkillerOG]: https://github.com/starkillerOG +[@thomasdelaet]: https://github.com/thomasdelaet +[@timmo001]: https://github.com/timmo001 +[@tizzen33]: https://github.com/tizzen33 +[@tradiuz]: https://github.com/tradiuz +[@vangorra]: https://github.com/vangorra +[@weissm]: https://github.com/weissm +[@zhuqf]: https://github.com/zhuqf +[@zxdavb]: https://github.com/zxdavb +[accuweather docs]: /integrations/accuweather/ +[airly docs]: /integrations/airly/ +[alarmdecoder docs]: /integrations/alarmdecoder/ +[ambient_station docs]: /integrations/ambient_station/ +[androidtv docs]: /integrations/androidtv/ +[automation docs]: /integrations/automation/ +[azure_devops docs]: /integrations/azure_devops/ +[blink docs]: /integrations/blink/ +[bond docs]: /integrations/bond/ +[buienradar docs]: /integrations/buienradar/ +[camera docs]: /integrations/camera/ +[clickatell docs]: /integrations/clickatell/ +[command_line docs]: /integrations/command_line/ +[config docs]: /integrations/config/ +[control4 docs]: /integrations/control4/ +[cover docs]: /integrations/cover/ +[deconz docs]: /integrations/deconz/ +[default_config docs]: /integrations/default_config/ +[devolo_home_control docs]: /integrations/devolo_home_control/ +[directv docs]: /integrations/directv/ +[discovery docs]: /integrations/discovery/ +[elgato docs]: /integrations/elgato/ +[elkm1 docs]: /integrations/elkm1/ +[emulated_hue docs]: /integrations/emulated_hue/ +[evohome docs]: /integrations/evohome/ +[fibaro docs]: /integrations/fibaro/ +[fido docs]: /integrations/fido/ +[firmata docs]: /integrations/firmata/ +[flume docs]: /integrations/flume/ +[frontend docs]: /integrations/frontend/ +[gios docs]: /integrations/gios/ +[gogogate2 docs]: /integrations/gogogate2/ +[google_assistant docs]: /integrations/google_assistant/ +[group docs]: /integrations/group/ +[harmony docs]: /integrations/harmony/ +[hisense_aehw4a1 docs]: /integrations/hisense_aehw4a1/ +[hlk_sw16 docs]: /integrations/hlk_sw16/ +[homekit docs]: /integrations/homekit/ +[homematic docs]: /integrations/homematic/ +[http docs]: /integrations/http/ +[humidifier docs]: /integrations/humidifier/ +[influxdb docs]: /integrations/influxdb/ +[ipp docs]: /integrations/ipp/ +[iqvia docs]: /integrations/iqvia/ +[islamic_prayer_times docs]: /integrations/islamic_prayer_times/ +[izone docs]: /integrations/izone/ +[lg_soundbar docs]: /integrations/lg_soundbar/ +[light docs]: /integrations/light/ +[logbook docs]: /integrations/logbook/ +[lutron_caseta docs]: /integrations/lutron_caseta/ +[media_extractor docs]: /integrations/media_extractor/ +[met docs]: /integrations/met/ +[meteo_france docs]: /integrations/meteo_france/ +[mikrotik docs]: /integrations/mikrotik/ +[min_max docs]: /integrations/min_max/ +[mqtt docs]: /integrations/mqtt/ +[neato docs]: /integrations/neato/ +[netatmo docs]: /integrations/netatmo/ +[norway_air docs]: /integrations/norway_air/ +[numato docs]: /integrations/numato/ +[obihai docs]: /integrations/obihai/ +[opentherm_gw docs]: /integrations/opentherm_gw/ +[ovo_energy docs]: /integrations/ovo_energy/ +[ozw docs]: /integrations/ozw/ +[pi_hole docs]: /integrations/pi_hole/ +[plex docs]: /integrations/plex/ +[prometheus docs]: /integrations/prometheus/ +[rainbird docs]: /integrations/rainbird/ +[recorder docs]: /integrations/recorder/ +[rfxtrx docs]: /integrations/rfxtrx/ +[scrape docs]: /integrations/scrape/ +[script docs]: /integrations/script/ +[shell_command docs]: /integrations/shell_command/ +[simplisafe docs]: /integrations/simplisafe/ +[sky_hub docs]: /integrations/sky_hub/ +[slack docs]: /integrations/slack/ +[smartthings docs]: /integrations/smartthings/ +[spider docs]: /integrations/spider/ +[ssdp docs]: /integrations/ssdp/ +[stream docs]: /integrations/stream/ +[sun docs]: /integrations/sun/ +[system_log docs]: /integrations/system_log/ +[tado docs]: /integrations/tado/ +[template docs]: /integrations/template/ +[tesla docs]: /integrations/tesla/ +[toon docs]: /integrations/toon/ +[upnp docs]: /integrations/upnp/ +[volumio docs]: /integrations/volumio/ +[volvooncall docs]: /integrations/volvooncall/ +[webostv docs]: /integrations/webostv/ +[wiffi docs]: /integrations/wiffi/ +[wirelesstag docs]: /integrations/wirelesstag/ +[withings docs]: /integrations/withings/ +[wolflink docs]: /integrations/wolflink/ +[workday docs]: /integrations/workday/ +[xiaomi_aqara docs]: /integrations/xiaomi_aqara/ +[xiaomi_miio docs]: /integrations/xiaomi_miio/ +[yandex_transport docs]: /integrations/yandex_transport/ +[yeelight docs]: /integrations/yeelight/ +[zeroconf docs]: /integrations/zeroconf/ +[zha docs]: /integrations/zha/ +[zone docs]: /integrations/zone/ diff --git a/source/images/blog/2020-08-0.114/dark-mode.png b/source/images/blog/2020-08-0.114/dark-mode.png new file mode 100644 index 0000000000000000000000000000000000000000..9c7ad5a1775ff313b470b06e852f7b376a4ee308 GIT binary patch literal 70516 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

HW*VtZ|5qE^!khO#Q~|X+ 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 literal 0 HcmV?d00001 From 56eb2a03522c3f7d500370ec86f49e3e22b64a76 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 5 Aug 2020 21:10:47 +0200 Subject: [PATCH 36/40] Updated generated changelog for 0.114.0b0 --- source/_posts/2020-08-12-release-114.markdown | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/source/_posts/2020-08-12-release-114.markdown b/source/_posts/2020-08-12-release-114.markdown index 518c9652041..e6f383b3580 100644 --- a/source/_posts/2020-08-12-release-114.markdown +++ b/source/_posts/2020-08-12-release-114.markdown @@ -208,6 +208,7 @@ Six new integrations added this release: The following integration got support for a new platform: - [Pi-hole][pi_hole docs] now provides a switch to turn on/off the service, added by [@shenxn] +- [devolo Home Control][devolo_home_control docs] added support for light devices,added by [@2Fake] ## Integrations now available to set up from the UI @@ -368,6 +369,7 @@ break:

+
Bond

@@ -701,6 +703,10 @@ Support for legacy logbook events created before 0.112 is removed. - OVO Energy Integration ([@timmo001] - [#36104]) ([ovo_energy docs]) (new-integration) - Intelligent timeout handler for setup/bootstrap ([@pvizeli] - [#38329]) - Bump frontend to 20200805.0 ([@ludeeus] - [#38557]) ([frontend docs]) +- Add zeroconf/homekit/ssdp discovery support for custom components ([@bdraco] - [#38466]) ([ssdp docs]) ([zeroconf docs]) +- Allow to set default dark theme and persist frontend default themes ([@bramkragten] - [#38548]) ([frontend docs]) +- Add a timeout for async_add_entities ([@bdraco] - [#38474]) +- Add devolo light devices ([@2Fake] - [#37366]) ([devolo_home_control docs]) (new-platform)

@@ -724,6 +730,7 @@ Support for legacy logbook events created before 0.112 is removed. [#37190]: https://github.com/home-assistant/core/pull/37190 [#37335]: https://github.com/home-assistant/core/pull/37335 [#37365]: https://github.com/home-assistant/core/pull/37365 +[#37366]: https://github.com/home-assistant/core/pull/37366 [#37526]: https://github.com/home-assistant/core/pull/37526 [#37632]: https://github.com/home-assistant/core/pull/37632 [#37636]: https://github.com/home-assistant/core/pull/37636 @@ -891,8 +898,10 @@ Support for legacy logbook events created before 0.112 is removed. [#38451]: https://github.com/home-assistant/core/pull/38451 [#38460]: https://github.com/home-assistant/core/pull/38460 [#38461]: https://github.com/home-assistant/core/pull/38461 +[#38466]: https://github.com/home-assistant/core/pull/38466 [#38469]: https://github.com/home-assistant/core/pull/38469 [#38472]: https://github.com/home-assistant/core/pull/38472 +[#38474]: https://github.com/home-assistant/core/pull/38474 [#38479]: https://github.com/home-assistant/core/pull/38479 [#38480]: https://github.com/home-assistant/core/pull/38480 [#38485]: https://github.com/home-assistant/core/pull/38485 @@ -915,6 +924,7 @@ Support for legacy logbook events created before 0.112 is removed. [#38542]: https://github.com/home-assistant/core/pull/38542 [#38543]: https://github.com/home-assistant/core/pull/38543 [#38547]: https://github.com/home-assistant/core/pull/38547 +[#38548]: https://github.com/home-assistant/core/pull/38548 [#38552]: https://github.com/home-assistant/core/pull/38552 [#38556]: https://github.com/home-assistant/core/pull/38556 [#38557]: https://github.com/home-assistant/core/pull/38557 From 73a35d76224a8beac22423ecac66c42dd5253a55 Mon Sep 17 00:00:00 2001 From: Jason Hunter Date: Tue, 11 Aug 2020 06:35:50 -0400 Subject: [PATCH 37/40] Update TensorFlow docs (#14114) Co-authored-by: Franck Nijhof --- source/_integrations/tensorflow.markdown | 72 ++++++++++++++++-------- 1 file changed, 49 insertions(+), 23 deletions(-) diff --git a/source/_integrations/tensorflow.markdown b/source/_integrations/tensorflow.markdown index 7c51761d28c..e887ec83bda 100644 --- a/source/_integrations/tensorflow.markdown +++ b/source/_integrations/tensorflow.markdown @@ -10,43 +10,64 @@ ha_domain: tensorflow 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. -
+## Home Assistant Core - The following packages must be installed on Raspbian before following the setup for the integration to work: - `sudo apt-get install libatlas-base-dev libopenjp2-7 libtiff5` +If you are using the Home Assistant Core installation type, some additional requirements and steps apply. +For all other installation types, this section can be skipped. -
+The following packages must be installed on Debian before following the setup for the integration to work: +`sudo apt-get install libatlas-base-dev libopenjp2-7 libtiff5` -## Setup +It is possible that Home Assistant is unable to install the Python TensorFlow bindings. If that is the case, +you'll need to install those manually using: `pip install tensorflow==2.2.0`, as the Python wheel is +not available for all platforms. -You need to install the `tensorflow` Python packages with: `$ pip3 install tensorflow==1.13.2`. The wheel is not available for all platforms. See [the official install guide](https://www.tensorflow.org/install/) for other options. The required packages are included in Home Assistant Supervised installations but only supported on amd64 architecture. +See [the official install guide](https://www.tensorflow.org/install/) for other options. -This integration 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: +Furthermore, the official Python TensorFlow wheels by Google, require your CPU to support the `avx` extension. +If your CPU lacks those capabilities, Home Assistant will crash when using TensorFlow, without any message. -- 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 configuration directory: +## Preparation + +This integration requires files to be downloaded, compiled on your computer, and added to the Home Assistant configuration directory. These steps can be performed by cloning [this repository](https://github.com/hunterjm/hass-tensorflow) into your configuration directory. Alternatively, if you wish to perform the process manually, the process is as follows: + +Create the following folder structure in your configuration directory. ```bash |- {config_dir} - | - tensorflow/ - |- object_detection/ - |- __init__.py + |- tensorflow/ + |- models/ ``` -- Copy required object_detection dependencies to the `object_detection` folder inside of the `tensorflow` folder: +Follow these steps (Linux) to compile the object detection library. - - `research/object_detection/data` - - `research/object_detection/utils` - - `research/object_detection/protos` +```bash +# Clone tensorflow/models +git clone https://github.com/tensorflow/models.git +# Compile Protobuf (apt-get install protobuf-compiler) +cd models/research +protoc object_detection/protos/*.proto --python_out=. +# Copy object_detection to {config_dir} +cp -r object_detection {config_dir}/tensorflow +``` + +Your final folder structure should look as follows + +```bash + |- {config_dir} + |- tensorflow/ + |- models/ + |- object_detection/ + |- ... +``` ## 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). +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/tf2_detection_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. +The trade-off between the different models is accuracy vs speed. Users with a decent CPU should start with one of the `EfficientDet` models. If you are running on an ARM device like a Raspberry Pi, start with the `SSD MobileNet v2 320x320` model. -Whichever model you choose, download it and place the `frozen_inference_graph.pb` file in the `tensorflow` folder in your configuration directory. +Whichever model you choose, download it and extract in to the `tensorflow/models` folder in your configuration directory. ## Configuration @@ -59,7 +80,7 @@ image_processing: source: - entity_id: camera.local_file model: - graph: /home/homeassistant/.homeassistant/tensorflow/frozen_inference_graph.pb + graph: /config/tensorflow/models/efficientdet_d0_coco17_tpu-32/ ``` {% configuration %} @@ -86,7 +107,7 @@ model: type: map keys: graph: - description: Full path to `frozen_inference_graph.pb`. + description: Full path to the base model directory. required: true type: string labels: @@ -94,6 +115,11 @@ model: required: false type: string default: tensorflow/object_detection/data/mscoco_label_map.pbtxt + label_offset: + description: Offset for mapping label ID to a name (only use for custom models) + required: false + type: integer + default: 1 model_dir: description: Full path to TensorFlow models directory. required: false @@ -143,7 +169,7 @@ image_processing: - "/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 + graph: /config/tensorflow/models/efficientdet_d0_coco17_tpu-32/ categories: - category: person area: From 886f14792de584361c85b0b1eb8f1d70e2c53646 Mon Sep 17 00:00:00 2001 From: Quentame Date: Tue, 11 Aug 2020 11:39:54 +0200 Subject: [PATCH 38/40] Remove Linky integration (#14168) --- CODEOWNERS | 1 - source/_integrations/linky.markdown | 52 ------------------- source/_posts/2018-10-01-release-79.markdown | 4 +- source/_posts/2018-10-29-release-81.markdown | 2 +- source/_posts/2019-03-13-release-89.markdown | 2 +- source/_posts/2019-04-24-release-92.markdown | 2 +- source/_posts/2019-06-26-release-95.markdown | 4 +- source/_posts/2019-09-18-release-99.markdown | 6 +-- source/_posts/2019-10-10-release-100.markdown | 4 +- source/_posts/2019-10-30-release-101.markdown | 4 +- source/_posts/2020-01-15-release-104.markdown | 2 +- source/_posts/2020-02-05-release-105.markdown | 2 +- source/_posts/2020-02-26-release-106.markdown | 4 +- source/_redirects | 2 - 14 files changed, 18 insertions(+), 73 deletions(-) delete mode 100644 source/_integrations/linky.markdown diff --git a/CODEOWNERS b/CODEOWNERS index 14f8f2c74de..f01cefd3952 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -214,7 +214,6 @@ source/_integrations/lametric.markdown @robbiet480 source/_integrations/launch_library.markdown @ludeeus source/_integrations/lcn.markdown @alengwenus source/_integrations/life360.markdown @pnbruckner -source/_integrations/linky.markdown @Quentame source/_integrations/linux_battery.markdown @fabaff source/_integrations/local_ip.markdown @issacg source/_integrations/logger.markdown @home-assistant/core diff --git a/source/_integrations/linky.markdown b/source/_integrations/linky.markdown deleted file mode 100644 index 7361f19dc45..00000000000 --- a/source/_integrations/linky.markdown +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Enedis Linky -description: Instructions on how to integrate Linky consumption data within Home Assistant. -ha_release: 0.79 -ha_category: - - Energy - - Sensor -ha_iot_class: Cloud Polling -ha_config_flow: true -ha_codeowners: - - '@Quentame' -ha_domain: linky ---- - -The `linky` sensor platform is retrieving the consumption of your home from the [Linky electric meter](https://www.enedis.fr/linky-compteur-communicant). - -## Setup the integration - -You need to create an Enedis account [here](https://espace-client-connexion.enedis.fr/auth/UI/Login?realm=particuliers) if you don't have one already. - -### Via the frontend - -Menu: *Configuration* -> *Integrations* - -Search for "Linky", add your credentials, click submit, you are done ! - -### Via the configuration file - -Add the Linky sensor to your `configuration.yaml` file like below: - -```yaml -# Example configuration.yaml entry -linky: - - username: YOUR_LINKY_USERNAME - password: YOUR_LINKY_PASSWORD -``` - -{% configuration %} -username: - description: The Enedis account username. - required: true - type: string -password: - description: The Enedis account password. - required: true - type: string -timeout: - description: Timeout to wait for the Enedis API connection. - required: false - type: integer - default: 10 -{% endconfiguration %} diff --git a/source/_posts/2018-10-01-release-79.markdown b/source/_posts/2018-10-01-release-79.markdown index d4272a92b6d..1dc4cc15354 100644 --- a/source/_posts/2018-10-01-release-79.markdown +++ b/source/_posts/2018-10-01-release-79.markdown @@ -54,7 +54,7 @@ Oh, and yes, there is also some cool new integrations. Support has been added fo - Add Logi Circle component, camera and sensor platform ([@evanjd] - [#16540]) ([logi_circle docs]) ([camera.logi_circle docs]) ([sensor.logi_circle docs]) (new-platform) - deCONZ cover support ([@Kane610] - [#16759]) ([cover docs]) ([deconz docs]) ([cover.deconz docs]) (new-platform) - GeoJSON platform ([@exxamalte] - [#16610]) ([geo_location docs]) (new-platform) -- Add linky sensor ([@tiste] - [#16468]) ([sensor.linky docs]) (new-platform) +- Add linky sensor ([@tiste] - [#16468]) (new-platform) ## Release 0.79.1 - September 30 @@ -244,7 +244,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Handle netgear_lte connection errors ([@amelchio] - [#16806]) ([netgear_lte docs]) ([notify docs]) ([sensor.netgear_lte docs]) - Improve opentherm_gw state detection ([@mvn23] - [#16809]) ([climate.opentherm_gw docs]) - Rework chromecast fix ([@awarecan] - [#16804]) ([media_player.cast docs]) -- Add linky sensor ([@tiste] - [#16468]) ([sensor.linky docs]) (new-platform) +- Add linky sensor ([@tiste] - [#16468]) (new-platform) - Use pyspcwebgw for SPC component ([@mbrrg] - [#16214]) ([spc docs]) ([alarm_control_panel.spc docs]) ([binary_sensor.spc docs]) - Remove discovered MQTT Switch device when discovery topic is cleared ([@emontnemery] - [#16605]) ([mqtt docs]) ([switch.mqtt docs]) - Allow split component definitions in packages ([@thomasloven] - [#16177]) diff --git a/source/_posts/2018-10-29-release-81.markdown b/source/_posts/2018-10-29-release-81.markdown index 24ae84d0e60..104f3d64329 100644 --- a/source/_posts/2018-10-29-release-81.markdown +++ b/source/_posts/2018-10-29-release-81.markdown @@ -347,7 +347,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Homekit component cleanup ([@cdce8p] - [#17627]) ([homekit docs]) - Use cached robot serial for Neato update ([@dshokouhi] - [#17633]) ([vacuum.neato docs]) - deCONZ - Add support for Xiaomi window covers ([@Kane610] - [#17337]) ([deconz docs]) ([cover.deconz docs]) -- Fix linky sensor login error ([@Debaru] - [#17110]) ([sensor.linky docs]) +- Fix linky sensor login error ([@Debaru] - [#17110]) - Fix mqtt light brightness slider ([@thinkl33t] - [#17075]) ([light.mqtt docs]) - Add opentherm_gw binary sensor support ([@mvn23] - [#17625]) ([opentherm_gw docs]) ([binary_sensor.opentherm_gw docs]) (new-platform) - Upgrade dsmr_parser to 0.12 ([@raymondelooff] - [#17634]) ([sensor.dsmr docs]) diff --git a/source/_posts/2019-03-13-release-89.markdown b/source/_posts/2019-03-13-release-89.markdown index d407e4730cc..9a7b3957357 100644 --- a/source/_posts/2019-03-13-release-89.markdown +++ b/source/_posts/2019-03-13-release-89.markdown @@ -274,7 +274,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Add ADB server functionality to Fire TV ([@JeffLIrion] - [#21221]) ([media_player.firetv docs]) (breaking change) - Upgrade pytest to 4.3.0 ([@scop] - [#21412]) - Upgrade mypy to 0.670 ([@scop] - [#20934]) -- Update pylinky ([@tiste] - [#21416]) ([sensor.linky docs]) +- Update pylinky ([@tiste] - [#21416]) - Mark water_heater as significant domain ([@elupus] - [#21390]) ([history docs]) - Add power and energy attributes to SmartThings switch ([@andrewsayre] - [#21375]) ([smartthings docs]) (new-feature) - Add SmartThings Cover platform and add cover device classes ([@andrewsayre] - [#21192]) ([cover docs]) ([smartthings docs]) (breaking change) (new-platform) diff --git a/source/_posts/2019-04-24-release-92.markdown b/source/_posts/2019-04-24-release-92.markdown index 421882711cf..081f2bad912 100644 --- a/source/_posts/2019-04-24-release-92.markdown +++ b/source/_posts/2019-04-24-release-92.markdown @@ -241,7 +241,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Axis component reflect device availability ([@Kane610] - [#22401]) ([axis docs]) - throw `PlatformNotReady` if unable to connect ([@aav7fl] - [#22515]) ([androidtv docs]) - Ring camera improvements ([@Yarikx] - [#22526]) ([ring docs]) -- upgrade pylinky to 0.3.3 ([@royto] - [#22544]) ([linky docs]) +- upgrade pylinky to 0.3.3 ([@royto] - [#22544]) - Move core services.yaml file to Home Assistant integration ([@balloob] - [#22489]) - Change HEOS component library and add basic config flow ([@andrewsayre] - [#22517]) ([heos docs]) - Add command_template and value_template for MQTT alarm ([@JumpMaster] - [#21438]) ([mqtt docs]) diff --git a/source/_posts/2019-06-26-release-95.markdown b/source/_posts/2019-06-26-release-95.markdown index a446cb50129..f182c667be2 100644 --- a/source/_posts/2019-06-26-release-95.markdown +++ b/source/_posts/2019-06-26-release-95.markdown @@ -175,7 +175,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Restore automation last_triggered with initial_state override ([@frenck] - [#24400]) ([automation docs]) (breaking change) - Fix recorder defaults ([@balloob] - [#24399]) ([recorder docs]) (breaking change) - Uber API is going away on June 13, 2019, remove component ([@robbiet480] - [#24468]) (breaking change) -- Add Linky sensors : yesterday + months + years ([@Quentame] - [#23726]) ([linky docs]) (breaking change) +- Add Linky sensors : yesterday + months + years ([@Quentame] - [#23726]) (breaking change) - Position is reversed for horizontal awnings ([@kbickar] - [#23257]) ([tahoma docs]) (breaking change) - Remove conversation from default config ([@balloob] - [#24515]) ([default_config docs]) (breaking change) - Added name to sensors ([@cliffordwhansen] - [#24525]) ([synologydsm docs]) (breaking change) @@ -304,7 +304,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Bump pyubee to 0.7 to support more models ([@mzdrale] - [#24477]) ([ubee docs]) - Somfy open api ([@tetienne] - [#19548]) ([somfy docs]) (new-platform) - Add APRS device tracker component ([@PhilRW] - [#22469]) ([aprs docs]) (new-platform) -- Add Linky sensors : yesterday + months + years ([@Quentame] - [#23726]) ([linky docs]) (breaking change) +- Add Linky sensors : yesterday + months + years ([@Quentame] - [#23726]) (breaking change) - Add attributs and fix lightlevel inconsistency for LightLevel sensor ([@Cyr-ius] - [#24439]) ([hue docs]) - Support ZLO device types to support newer Zigbee devices in ZHA ([@jurriaan] - [#24429]) ([zha docs]) - Camera platform for buienradar imagery ([@ties] - [#23358]) ([buienradar docs]) (new-platform) diff --git a/source/_posts/2019-09-18-release-99.markdown b/source/_posts/2019-09-18-release-99.markdown index 8059c1e06b1..d9a163c7249 100644 --- a/source/_posts/2019-09-18-release-99.markdown +++ b/source/_posts/2019-09-18-release-99.markdown @@ -254,7 +254,7 @@ Experiencing issues introduced by this release? Please report them in our [issue ([@SukramJ] - [#26449]) ([homematicip_cloud docs]) -- **Linky** - This platform has been moved to an integration. - ([@Quentame] - [#26076]) ([linky docs]) +- **Linky** - This platform has been moved to an integration. - ([@Quentame] - [#26076]) New example configuration entry: @@ -371,7 +371,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - IGN Sismologia icon for geolocation entities ([@exxamalte] - [#26408]) ([ign_sismologia docs]) - Migrate legacy typehints in core to PEP-526 ([@frenck] - [#26403]) ([device_tracker docs]) - Add X10 devices as ISY994 switches ([@taylorsilva] - [#26342]) ([isy994 docs]) -- Add config flow to linky ([@Quentame] - [#26076]) ([linky docs]) (breaking change) +- Add config flow to linky ([@Quentame] - [#26076]) (breaking change) - Correct file permissions in slide integration ([@frenck] - [#26390]) ([slide docs]) - Use literal string interpolation in honeywell ([@zxdavb] - [#26386]) ([honeywell docs]) - Initial commit ([@zxdavb] - [#26385]) ([geniushub docs]) @@ -397,7 +397,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Unify device_state_attributes handling for Homematic IP Cloud ([@SukramJ] - [#26449]) ([homematicip_cloud docs]) (breaking change) - Add yeelight nightlight support via separate light entity ([@zewelor] - [#26224]) ([yeelight docs]) - Add set scene service calls to yeelight ([@zewelor] - [#26255]) ([yeelight docs]) -- Add device_info to Linky integration ([@Quentame] - [#26477]) ([linky docs]) +- Add device_info to Linky integration ([@Quentame] - [#26477]) - Update radiotherm climate attributes ([@dieselrabbit] - [#26465]) ([radiotherm docs]) (breaking change) - Add Viessmann ViCare Climate platform ([@oischinger] - [#26151]) ([vicare docs]) (new-integration) - Add new integration for Jandy iAqualink pool control ([@flz] - [#26034]) ([iaqualink docs]) (new-integration) diff --git a/source/_posts/2019-10-10-release-100.markdown b/source/_posts/2019-10-10-release-100.markdown index e82150b64c2..7c386062eae 100644 --- a/source/_posts/2019-10-10-release-100.markdown +++ b/source/_posts/2019-10-10-release-100.markdown @@ -218,7 +218,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - `contact / mailing_list` has changed to `contact / ml`, to migrate change the `mailing_list` key to `ml` - `location / address` is no longer required but is optional as the latitude and longitude properties of the location are added automatically from the HA config). There is no need to change anything. - ([@Bouni] - [#26453]) ([spaceapi docs]) -- **Linky** - Linky sensors have been grouped to one Linky device. Users will need to remove and re-add the Linky integration to clear the device registry. - ([@piitaya] - [#26738]) ([linky docs]) +- **Linky** - Linky sensors have been grouped to one Linky device. Users will need to remove and re-add the Linky integration to clear the device registry. - ([@piitaya] - [#26738]) - **Elv** - ELV/PCA is now its own integration. Existing configuration should be removed and replaced. Optionally the port for the serial interface can be specified (default is: /dev/ttyUSB0). - ([@majuss] - [#26552]) ([elv docs]) @@ -416,7 +416,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Bump up ZHA dependencies ([@Adminiuga] - [#26746]) - fix onvif/camera setting up error ([@sanyatuning] - [#26825]) ([onvif docs]) - Bump homematicip_cloud to 0.10.11 ([@SukramJ] - [#26852]) ([homematicip_cloud docs]) -- Group Linky sensors to Linky meter device ([@piitaya] - [#26738]) ([linky docs]) (breaking change) +- Group Linky sensors to Linky meter device ([@piitaya] - [#26738]) (breaking change) - Add unit to 'charging_level_hv' bwm_connected_drive sensor ([@timmccor] - [#26861]) ([bmw_connected_drive docs]) - Add reproduce state template ([@balloob] - [#26866]) - Put draw_box in image_processing ([@robmarkcole] - [#26712]) ([doods docs]) ([image_processing docs]) ([tensorflow docs]) diff --git a/source/_posts/2019-10-30-release-101.markdown b/source/_posts/2019-10-30-release-101.markdown index d99fce44332..02665c333a1 100644 --- a/source/_posts/2019-10-30-release-101.markdown +++ b/source/_posts/2019-10-30-release-101.markdown @@ -603,7 +603,7 @@ The **holiday name** sensor has been renamed to **holiday**. ([@tsvi] - [#27654] - Move imports in telegram_bot component ([@Quentame] - [#27785]) ([telegram_bot docs]) - Add device action support to the lock integration ([@emontnemery] - [#27499]) ([lock docs]) - Add grid sensors to SolarEdge_local ([@scheric] - [#27247]) ([solaredge_local docs]) -- Unload linky config entry ([@Quentame] - [#27831]) ([linky docs]) +- Unload linky config entry ([@Quentame] - [#27831]) - Fix attribution ([@bieniu] - [#27815]) ([airly docs]) - Added handling for connection errors in state update, added available property ([@ratsept] - [#27794]) ([soma docs]) - Add device_info to HomematicIP climate and acp ([@SukramJ] - [#27771]) ([homematicip_cloud docs]) @@ -684,7 +684,7 @@ The **holiday name** sensor has been renamed to **holiday**. ([@tsvi] - [#27654] - Fix whois error, check expiration_date for list and pick first ([@cyberjacob] - [#27930]) ([whois docs]) - Move imports in sql component ([@Michsior14] - [#27713]) ([sql docs]) - move imports in smarthab component ([@Michsior14] - [#27942]) ([smarthab docs]) -- Fixing config_entries.async_forward_entry_unload calls (step 1) ([@Quentame] - [#27857]) ([cert_expiry docs]) ([linky docs]) ([locative docs]) ([luftdaten docs]) ([withings docs]) +- Fixing config_entries.async_forward_entry_unload calls (step 1) ([@Quentame] - [#27857]) ([cert_expiry docs]) ([locative docs]) ([luftdaten docs]) ([withings docs]) - move imports in sma component ([@Michsior14] - [#27945]) ([sma docs]) - Remove tplink device tracker ([@rytilahti] - [#27936]) ([tplink docs]) - Add option to disable HTTPS verification in Luci component ([@mzdrale] - [#27946]) ([luci docs]) diff --git a/source/_posts/2020-01-15-release-104.markdown b/source/_posts/2020-01-15-release-104.markdown index d91968f4dda..016148c9ccd 100644 --- a/source/_posts/2020-01-15-release-104.markdown +++ b/source/_posts/2020-01-15-release-104.markdown @@ -638,7 +638,7 @@ Make sure to fill in all fields of the issue template, that is helping us a lot! - use isort to sort imports according to PEP8 for group ([@basnijholt] - [#29713]) - Sort imports according to PEP8 for neato ([@basnijholt] - [#29724]) ([neato docs]) - Sort imports according to PEP8 for input_text ([@basnijholt] - [#29719]) ([input_text docs]) -- Sort imports according to PEP8 for linky ([@basnijholt] - [#29722]) ([linky docs]) +- Sort imports according to PEP8 for linky ([@basnijholt] - [#29722]) - Sort imports according to PEP8 for minio ([@basnijholt] - [#29723]) ([minio docs]) - Sort imports according to PEP8 for netgear_lte ([@basnijholt] - [#29725]) ([netgear_lte docs]) - Sort imports according to PEP8 for iqvia ([@basnijholt] - [#29720]) ([iqvia docs]) diff --git a/source/_posts/2020-02-05-release-105.markdown b/source/_posts/2020-02-05-release-105.markdown index c4e1c1515a6..bbdcc333b51 100644 --- a/source/_posts/2020-02-05-release-105.markdown +++ b/source/_posts/2020-02-05-release-105.markdown @@ -903,7 +903,7 @@ Hats over your heart for these shuttered integrations. Pour one out for: - Added missing file ([@cyberjunky] - [#31189]) - update remove service ([@dmulcahey] - [#31164]) ([zha docs]) - Fix ps4 errors if pin begins with a 0 ([@ktnrg45] - [#31198]) ([ps4 docs]) -- Use config_entry.unique_id in Linky ([@Quentame] - [#31051]) ([linky docs]) +- Use config_entry.unique_id in Linky ([@Quentame] - [#31051]) - Add Garmin Connect integration ([@cyberjunky] - [#30792]) ([garmin_connect docs]) (new-integration) - Constrain SimpliSafe's check for emergency token usage ([@bachya] - [#31214]) ([simplisafe docs]) - Update Hue discovery ([@balloob] - [#31215]) ([hue docs]) diff --git a/source/_posts/2020-02-26-release-106.markdown b/source/_posts/2020-02-26-release-106.markdown index 53555d5014e..1dea56edb57 100644 --- a/source/_posts/2020-02-26-release-106.markdown +++ b/source/_posts/2020-02-26-release-106.markdown @@ -452,7 +452,7 @@ Added a Coronavirus integration to help monitor the ongoing epidemic. [More info ## All changes - Change scan_interval defaults for Tesla ([@alandtse] - [#31194]) ([tesla docs]) (breaking change) -- Removes I/O from linky tests ([@balloob] - [#31299]) ([linky docs]) +- Removes I/O from linky tests ([@balloob] - [#31299]) - Reorganize insteon code ([@teharris1] - [#31183]) ([insteon docs]) (breaking change) - Upgrade pre-commit to 2.0.1 ([@frenck] - [#31308]) - Add opening and closing states to MQTT covers ([@rickvdl] - [#31259]) ([mqtt docs]) @@ -584,7 +584,7 @@ Added a Coronavirus integration to help monitor the ongoing epidemic. [More info - Fix spelling of VIVOTEK ([@frenck] - [#31773]) ([vivotek docs]) - Fix spelling of apcupsd in manifest ([@frenck] - [#31770]) ([apcupsd docs]) - Fix spelling of AVM FRITZ!Box in manifest ([@frenck] - [#31765]) ([fritz docs]) -- Implement PlatformNotReady to Linky + fix TypeError ([@Quentame] - [#31768]) ([linky docs]) +- Implement PlatformNotReady to Linky + fix TypeError ([@Quentame] - [#31768]) - UniFi - Change handling of updated options ([@Kane610] - [#31762]) ([unifi docs]) (breaking change) - Rename codecov so it will be picked up ([@balloob] - [#31775]) - Fix spelling of ASUSWRT in manifest ([@frenck] - [#31764]) ([asuswrt docs]) diff --git a/source/_redirects b/source/_redirects index 5d08a0027c5..7f1aac2215e 100644 --- a/source/_redirects +++ b/source/_redirects @@ -762,7 +762,6 @@ /components/sensor.lacrosse /integrations/lacrosse /components/sensor.lastfm /integrations/lastfm /components/sensor.launch_library /integrations/launch_library -/components/sensor.linky /integrations/linky /components/sensor.linux_battery /integrations/linux_battery /components/sensor.logi_circle /integrations/logi_circle#sensor /components/sensor.london_air /integrations/london_air @@ -1513,7 +1512,6 @@ /components/limitlessled /integrations/limitlessled /components/linksys_ap /integrations/linksys_ap /components/linksys_smart /integrations/linksys_smart -/components/linky /integrations/linky /components/linode /integrations/linode /components/linux_battery /integrations/linux_battery /components/lirc /integrations/lirc From 55e50f5365df007d10f0c60b6bc80c3e9e753bdb Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Tue, 11 Aug 2020 15:49:31 +0200 Subject: [PATCH 39/40] Add diagnostics to release post (#14229) Co-authored-by: Franck Nijhof --- source/_posts/2020-08-12-release-114.markdown | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/source/_posts/2020-08-12-release-114.markdown b/source/_posts/2020-08-12-release-114.markdown index e6f383b3580..91c2b47e4c0 100644 --- a/source/_posts/2020-08-12-release-114.markdown +++ b/source/_posts/2020-08-12-release-114.markdown @@ -178,6 +178,16 @@ is created. This prevents issues during startup. Honestly, the above isn't even complete. 😅 Thanks [@bdraco]! +## Share Diagnostics & Crash reports + +With Supervisor 231, shipped with Home Assistant 0.114, we added a new option on System panel, to share diagnostics and crash reports with us anonymously. This will allow us to find and fix problems. + +The shared information is only accessible to the Home Assistant Core team and will not be shared with others. The data does not include any private or sensitive information and you can disable it in settings at any time you want. + +This option is by default, of course, disabled. So, if you want to help to project out, consider enabling this option in the Supervisor panel. + +This service is sponsored by [Sentry.io](https://sentry.io/welcome/) - Thanks a lot! + ## Other noteworthy changes - You can now move Lovelace cards to a different dashboard and add cards to From 768702b4bc10aef9232cac0b06f03c176402e2ff Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 12 Aug 2020 11:38:11 +0200 Subject: [PATCH 40/40] Updated release notes 0.114.0 for final release --- source/_posts/2020-08-12-release-114.markdown | 182 +++++++++++++++--- source/images/blog/2020-08-0.114/ozw-info.png | Bin 0 -> 36735 bytes source/images/blog/2020-08-0.114/social.png | Bin 0 -> 130375 bytes 3 files changed, 159 insertions(+), 23 deletions(-) create mode 100644 source/images/blog/2020-08-0.114/ozw-info.png create mode 100644 source/images/blog/2020-08-0.114/social.png diff --git a/source/_posts/2020-08-12-release-114.markdown b/source/_posts/2020-08-12-release-114.markdown index 91c2b47e4c0..4d5774f931a 100644 --- a/source/_posts/2020-08-12-release-114.markdown +++ b/source/_posts/2020-08-12-release-114.markdown @@ -1,8 +1,8 @@ --- layout: post -title: "0.114: Beta release notes" -description: "Beta release notes" -date: 2020-08-05 00:00:00 +title: "0.114: Dark mode, Open Z-Wave progress and more automation & scripts" +description: "Introducing Dark mode and color picking for themes, Open Z-Wave is taking a leap forward and general performance, automations & script improvements" +date: 2020-08-12 00:00:00 date_formatted: "August 12, 2020" author: Franck Nijhof author_twitter: frenck @@ -11,18 +11,7 @@ categories: Release-Notes og_image: /images/blog/2020-08-0.114/social.png --- - - -Beta release notes for 0.114.0 - -Please be sure to report issues on our GitHub issue tracker: - -- Issues with core & integrations: -- Issues with the frontend/UI: - -Issues introduced in this beta, are generally picked up with priority. - -## Introduction + Ooh boy, time flew this release cycle; it is time for 0.114 already! @@ -139,12 +128,10 @@ Some additional information is added to the UI for Open Z-Wave, you can now see device information right from the device page and shows information like the Z-Wave Node ID and other information about your Z-Wave device. - Furthermore, RGB color support has been added to lights, and bugs have been fixed using color temperatures and dimming. 💡 @@ -180,13 +167,20 @@ Honestly, the above isn't even complete. 😅 Thanks [@bdraco]! ## Share Diagnostics & Crash reports -With Supervisor 231, shipped with Home Assistant 0.114, we added a new option on System panel, to share diagnostics and crash reports with us anonymously. This will allow us to find and fix problems. +With Supervisor 231, shipped with Home Assistant 0.114, we added a new option on +the System panel, to share diagnostics and crash reports with us anonymously. +This will allow us to find and fix problems. -The shared information is only accessible to the Home Assistant Core team and will not be shared with others. The data does not include any private or sensitive information and you can disable it in settings at any time you want. +The shared information is only accessible to the Home Assistant Core team and +will not be shared with others. The data does not include any private or +sensitive information and you can disable it in settings at any time you want. -This option is by default, of course, disabled. So, if you want to help to project out, consider enabling this option in the Supervisor panel. +This option is by default, of course, disabled. So, if you want to help to +project out, consider enabling this option in the Supervisor panel. -This service is sponsored by [Sentry.io](https://sentry.io/welcome/) - Thanks a lot! +This service is sponsored by [Sentry.io][sentry] - Thanks a lot! + +[sentry]: https://sentry.io/welcome/ ## Other noteworthy changes @@ -287,6 +281,21 @@ Your username and password will be imported, but you need to submit a 2FA token

+
+ TensorFlow +

+ +TensorFlow has been upgraded to TensorFlow 2. + +TensorFlow 1 object detection models are not compatible with TensorFlow 2, +therefore you'll will need to walk through the setup documentation again and +choose a new model from the Model Zoo. + +([@hunterjm] - [#38384]) ([tensorflow docs]) + +

+
+
Pi-hole

@@ -494,6 +503,37 @@ Support for legacy logbook events created before 0.112 is removed.

+
+ Automation `turn_off` service +

+ +This change is actually not a breaking change, but it is making up for the fact +that a previous change was that was not marked as such. + +It turns out there are valid use cases where an automation needs to be turned +off, so that it will not trigger, but where previous runs may still be active +that should be allowed to complete. For example, an automation that performs a +reasonably lengthy procedure that should not be aborted midstream, otherwise +it would leave the system in an undesirable state. Or a queued automation that +needs to handle all previous events, some of which may not be complete when +the automation is turned off. + +To accommodate for these use cases, this release introduces adds an optional +parameter to the `automation.turn_off` service, namely `stop_actions`, which +defaults to true. It controls whether or not active runs should be stopped when +the automation is turned off. + +([@pnbruckner] - [#38436]) + +

+
+ +## Farewell to the following + +- The **Linky** integration has been removed. + Enedis has discontinued its Linky API (to get electric consumption). + ([@Quentame] - [#38565]) + ## All changes
@@ -654,7 +694,7 @@ Support for legacy logbook events created before 0.112 is removed. - Add node neighbors to ozw websocket api ([@firstof9] - [#38447]) ([ozw docs]) - Refactor Météo-France to use API instead of web scraping ([@oncleben31] - [#37737]) ([meteo_france docs]) (breaking-change) - Add optional unique_id attribute to the template platforms ([@michaelarnauts] - [#38011]) ([template docs]) -- Allow automation to be turned off without stopping actions ([@pnbruckner] - [#38436]) ([automation docs]) ([script docs]) +- Allow automation to be turned off without stopping actions ([@pnbruckner] - [#38436]) ([automation docs]) ([script docs]) (breaking-change) - Optimize directv config flow tests. ([@ctalkington] - [#38460]) ([directv docs]) ([directv docs]) - Update pyskyqhu to 0.1.1 ([@RogerSelwyn] - [#38461]) ([sky_hub docs]) - Add sensor platform for AccuWeather integration ([@bieniu] - [#38312]) ([accuweather docs]) (new-platform) @@ -717,6 +757,44 @@ Support for legacy logbook events created before 0.112 is removed. - Allow to set default dark theme and persist frontend default themes ([@bramkragten] - [#38548]) ([frontend docs]) - Add a timeout for async_add_entities ([@bdraco] - [#38474]) - Add devolo light devices ([@2Fake] - [#37366]) ([devolo_home_control docs]) (new-platform) +- Improve Xioami Aqara zeroconf discovery handling ([@starkillerOG] - [#37469]) ([xiaomi_aqara docs]) (beta fix) +- Remove Linky integration ([@Quentame] - [#38565]) (breaking-change) (beta fix) +- Suppress MQTT discovery updates without changes ([@emontnemery] - [#38568]) ([mqtt docs]) (beta fix) +- Fix missing rfxtrx strings ([@MartinHjelmare] - [#38570]) ([rfxtrx docs]) (beta fix) +- Revert "Add a timeout for async_add_entities (#38474)" ([@pvizeli] - [#38584]) (beta fix) +- Do not print warning when command line switch queries off ([@balloob] - [#38591]) ([command_line docs]) (beta fix) +- Upgrade to TensorFlow 2 ([@hunterjm] - [#38384]) ([tensorflow docs]) (breaking-change) (beta fix) +- Improve the OVO Energy integration ([@timmo001] - [#38598]) ([ovo_energy docs]) (beta fix) +- V2 timeout for async_add_entities ([@pvizeli] - [#38601]) (beta fix) +- Ensure homekit pairing barcode is usable on dark themes ([@bdraco] - [#38609]) ([homekit docs]) (beta fix) +- Handle unavailable input_select in Google Assistant ([@balloob] - [#38611]) ([google_assistant docs]) (beta fix) +- Bump OpenCV 4.3.0 and Numpy 1.19.1 ([@pvizeli] - [#38616]) ([iqvia docs]) ([opencv docs]) ([tensorflow docs]) ([trend docs]) (beta fix) +- Expose video doorbell button state to HomeKit ([@adrum] - [#38617]) ([homekit docs]) (beta fix) +- Ensure doorbird does not block startup ([@bdraco] - [#38619]) ([doorbird docs]) (beta fix) +- Make sure groups are initialized before template sensors ([@Tho85] - [#37766]) ([template docs]) (beta fix) +- Fix xiaomi_aqara discovery ([@starkillerOG] - [#38622]) ([xiaomi_aqara docs]) (beta fix) +- Update frontend to 20200807.1 ([@ludeeus] - [#38626]) ([frontend docs]) (beta fix) +- Remove tf-models-official from wheels builder ([@frenck] - [#38637]) (beta fix) +- Fix url in seventeentrack delivered notification ([@Swampen] - [#38646]) ([seventeentrack docs]) (beta fix) +- Bump regenmaschine to 2.1.0 ([@bachya] - [#38649]) ([rainmachine docs]) (beta fix) +- Fix AccuWeather async timeout ([@ctalkington] - [#38654]) ([accuweather docs]) (beta fix) +- Fix rest_command UnboundLocalError in exception handling ([@AlejandroRivera] - [#38656]) ([rest_command docs]) (beta fix) +- Ensure shared zeroconf is passed to homekit controller devices ([@bdraco] - [#38678]) ([homekit_controller docs]) (beta fix) +- Update aiohomekit to handle homekit devices that do not send format ([@bdraco] - [#38679]) ([homekit_controller docs]) (beta fix) +- Fix missing data for Guardian "AP enabled" binary sensor ([@bachya] - [#38681]) ([guardian docs]) (beta fix) +- Bump pyvolumio to 0.1.1 ([@OnFreund] - [#38685]) ([volumio docs]) (beta fix) +- Bump updater timeout ([@balloob] - [#38690]) ([updater docs]) (beta fix) +- Update base image 8.2.1 ([@pvizeli] - [#38716]) (beta fix) +- Add scan_tag webhook to mobile app ([@balloob] - [#38721]) ([mobile_app docs]) (beta fix) +- Add scikit-build to installed env ([@pvizeli] - [#38726]) (beta fix) +- Bump pysmartthings 0.7.3 ([@andrewsayre] - [#38732]) ([smartthings docs]) (beta fix) +- Make default duration 1/10th of a second for ZHA light calls ([@dmulcahey] - [#38739]) ([zha docs]) (beta fix) +- Install a threading.excepthook on python 3.8 and later ([@bdraco] - [#38741]) (beta fix) +- Bump dyson upstream library version ([@etheralm] - [#38756]) ([dyson docs]) (beta fix) +- Bump frontend to 20200811.0 ([@ludeeus] - [#38760]) ([frontend docs]) (beta fix) +- Bump ZHA quirks lib to 0.0.43 ([@dmulcahey] - [#38762]) ([zha docs]) (beta fix) +- Fix lastest version in updater for Supervisor enabled installs ([@frenck] - [#38773]) ([hassio docs]) ([updater docs]) (beta fix) +- Bump up ZHA dependencies ([@Adminiuga] - [#38775]) ([zha docs]) (beta fix)
@@ -741,6 +819,7 @@ Support for legacy logbook events created before 0.112 is removed. [#37335]: https://github.com/home-assistant/core/pull/37335 [#37365]: https://github.com/home-assistant/core/pull/37365 [#37366]: https://github.com/home-assistant/core/pull/37366 +[#37469]: https://github.com/home-assistant/core/pull/37469 [#37526]: https://github.com/home-assistant/core/pull/37526 [#37632]: https://github.com/home-assistant/core/pull/37632 [#37636]: https://github.com/home-assistant/core/pull/37636 @@ -749,6 +828,7 @@ Support for legacy logbook events created before 0.112 is removed. [#37745]: https://github.com/home-assistant/core/pull/37745 [#37747]: https://github.com/home-assistant/core/pull/37747 [#37761]: https://github.com/home-assistant/core/pull/37761 +[#37766]: https://github.com/home-assistant/core/pull/37766 [#37822]: https://github.com/home-assistant/core/pull/37822 [#37868]: https://github.com/home-assistant/core/pull/37868 [#37879]: https://github.com/home-assistant/core/pull/37879 @@ -888,6 +968,7 @@ Support for legacy logbook events created before 0.112 is removed. [#38366]: https://github.com/home-assistant/core/pull/38366 [#38368]: https://github.com/home-assistant/core/pull/38368 [#38382]: https://github.com/home-assistant/core/pull/38382 +[#38384]: https://github.com/home-assistant/core/pull/38384 [#38387]: https://github.com/home-assistant/core/pull/38387 [#38400]: https://github.com/home-assistant/core/pull/38400 [#38415]: https://github.com/home-assistant/core/pull/38415 @@ -938,7 +1019,44 @@ Support for legacy logbook events created before 0.112 is removed. [#38552]: https://github.com/home-assistant/core/pull/38552 [#38556]: https://github.com/home-assistant/core/pull/38556 [#38557]: https://github.com/home-assistant/core/pull/38557 +[#38565]: https://github.com/home-assistant/core/pull/38565 +[#38568]: https://github.com/home-assistant/core/pull/38568 +[#38570]: https://github.com/home-assistant/core/pull/38570 +[#38584]: https://github.com/home-assistant/core/pull/38584 +[#38591]: https://github.com/home-assistant/core/pull/38591 +[#38598]: https://github.com/home-assistant/core/pull/38598 +[#38601]: https://github.com/home-assistant/core/pull/38601 +[#38609]: https://github.com/home-assistant/core/pull/38609 +[#38611]: https://github.com/home-assistant/core/pull/38611 +[#38616]: https://github.com/home-assistant/core/pull/38616 +[#38617]: https://github.com/home-assistant/core/pull/38617 +[#38619]: https://github.com/home-assistant/core/pull/38619 +[#38622]: https://github.com/home-assistant/core/pull/38622 +[#38626]: https://github.com/home-assistant/core/pull/38626 +[#38637]: https://github.com/home-assistant/core/pull/38637 +[#38646]: https://github.com/home-assistant/core/pull/38646 +[#38649]: https://github.com/home-assistant/core/pull/38649 +[#38654]: https://github.com/home-assistant/core/pull/38654 +[#38656]: https://github.com/home-assistant/core/pull/38656 +[#38678]: https://github.com/home-assistant/core/pull/38678 +[#38679]: https://github.com/home-assistant/core/pull/38679 +[#38681]: https://github.com/home-assistant/core/pull/38681 +[#38685]: https://github.com/home-assistant/core/pull/38685 +[#38690]: https://github.com/home-assistant/core/pull/38690 +[#38716]: https://github.com/home-assistant/core/pull/38716 +[#38721]: https://github.com/home-assistant/core/pull/38721 +[#38726]: https://github.com/home-assistant/core/pull/38726 +[#38732]: https://github.com/home-assistant/core/pull/38732 +[#38739]: https://github.com/home-assistant/core/pull/38739 +[#38741]: https://github.com/home-assistant/core/pull/38741 +[#38756]: https://github.com/home-assistant/core/pull/38756 +[#38760]: https://github.com/home-assistant/core/pull/38760 +[#38762]: https://github.com/home-assistant/core/pull/38762 +[#38773]: https://github.com/home-assistant/core/pull/38773 +[#38775]: https://github.com/home-assistant/core/pull/38775 [@2Fake]: https://github.com/2Fake +[@Adminiuga]: https://github.com/Adminiuga +[@AlejandroRivera]: https://github.com/AlejandroRivera [@BKPepe]: https://github.com/BKPepe [@ChrisMandich]: https://github.com/ChrisMandich [@Cooper-Dale]: https://github.com/Cooper-Dale @@ -951,11 +1069,14 @@ Support for legacy logbook events created before 0.112 is removed. [@Misiu]: https://github.com/Misiu [@OnFreund]: https://github.com/OnFreund [@PedroLamas]: https://github.com/PedroLamas +[@Quentame]: https://github.com/Quentame [@RobBie1221]: https://github.com/RobBie1221 [@RogerSelwyn]: https://github.com/RogerSelwyn [@ShaneQi]: https://github.com/ShaneQi [@Shulyaka]: https://github.com/Shulyaka [@StevenLooman]: https://github.com/StevenLooman +[@Swampen]: https://github.com/Swampen +[@Tho85]: https://github.com/Tho85 [@adamkrol93]: https://github.com/adamkrol93 [@adrum]: https://github.com/adrum [@agners]: https://github.com/agners @@ -983,10 +1104,12 @@ Support for legacy logbook events created before 0.112 is removed. [@ehendrix23]: https://github.com/ehendrix23 [@elupus]: https://github.com/elupus [@emontnemery]: https://github.com/emontnemery +[@etheralm]: https://github.com/etheralm [@firstof9]: https://github.com/firstof9 [@frenck]: https://github.com/frenck [@fronzbot]: https://github.com/fronzbot [@gwww]: https://github.com/gwww +[@hunterjm]: https://github.com/hunterjm [@jameshilliard]: https://github.com/jameshilliard [@jcallaghan]: https://github.com/jcallaghan [@jjlawren]: https://github.com/jjlawren @@ -1046,6 +1169,8 @@ Support for legacy logbook events created before 0.112 is removed. [devolo_home_control docs]: /integrations/devolo_home_control/ [directv docs]: /integrations/directv/ [discovery docs]: /integrations/discovery/ +[doorbird docs]: /integrations/doorbird/ +[dyson docs]: /integrations/dyson/ [elgato docs]: /integrations/elgato/ [elkm1 docs]: /integrations/elkm1/ [emulated_hue docs]: /integrations/emulated_hue/ @@ -1059,10 +1184,13 @@ Support for legacy logbook events created before 0.112 is removed. [gogogate2 docs]: /integrations/gogogate2/ [google_assistant docs]: /integrations/google_assistant/ [group docs]: /integrations/group/ +[guardian docs]: /integrations/guardian/ [harmony docs]: /integrations/harmony/ +[hassio docs]: /integrations/hassio/ [hisense_aehw4a1 docs]: /integrations/hisense_aehw4a1/ [hlk_sw16 docs]: /integrations/hlk_sw16/ [homekit docs]: /integrations/homekit/ +[homekit_controller docs]: /integrations/homekit_controller/ [homematic docs]: /integrations/homematic/ [http docs]: /integrations/http/ [humidifier docs]: /integrations/humidifier/ @@ -1080,12 +1208,14 @@ Support for legacy logbook events created before 0.112 is removed. [meteo_france docs]: /integrations/meteo_france/ [mikrotik docs]: /integrations/mikrotik/ [min_max docs]: /integrations/min_max/ +[mobile_app docs]: /integrations/mobile_app/ [mqtt docs]: /integrations/mqtt/ [neato docs]: /integrations/neato/ [netatmo docs]: /integrations/netatmo/ [norway_air docs]: /integrations/norway_air/ [numato docs]: /integrations/numato/ [obihai docs]: /integrations/obihai/ +[opencv docs]: /integrations/opencv/ [opentherm_gw docs]: /integrations/opentherm_gw/ [ovo_energy docs]: /integrations/ovo_energy/ [ozw docs]: /integrations/ozw/ @@ -1093,10 +1223,13 @@ Support for legacy logbook events created before 0.112 is removed. [plex docs]: /integrations/plex/ [prometheus docs]: /integrations/prometheus/ [rainbird docs]: /integrations/rainbird/ +[rainmachine docs]: /integrations/rainmachine/ [recorder docs]: /integrations/recorder/ +[rest_command docs]: /integrations/rest_command/ [rfxtrx docs]: /integrations/rfxtrx/ [scrape docs]: /integrations/scrape/ [script docs]: /integrations/script/ +[seventeentrack docs]: /integrations/seventeentrack/ [shell_command docs]: /integrations/shell_command/ [simplisafe docs]: /integrations/simplisafe/ [sky_hub docs]: /integrations/sky_hub/ @@ -1109,8 +1242,11 @@ Support for legacy logbook events created before 0.112 is removed. [system_log docs]: /integrations/system_log/ [tado docs]: /integrations/tado/ [template docs]: /integrations/template/ +[tensorflow docs]: /integrations/tensorflow/ [tesla docs]: /integrations/tesla/ [toon docs]: /integrations/toon/ +[trend docs]: /integrations/trend/ +[updater docs]: /integrations/updater/ [upnp docs]: /integrations/upnp/ [volumio docs]: /integrations/volumio/ [volvooncall docs]: /integrations/volvooncall/ diff --git a/source/images/blog/2020-08-0.114/ozw-info.png b/source/images/blog/2020-08-0.114/ozw-info.png new file mode 100644 index 0000000000000000000000000000000000000000..bfb7b32cbb95b14b766497f705176fe4e351c60a GIT binary patch literal 36735 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 z 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 CS233W literal 0 HcmV?d00001 diff --git a/source/images/blog/2020-08-0.114/social.png b/source/images/blog/2020-08-0.114/social.png new file mode 100644 index 0000000000000000000000000000000000000000..46a8852d4e1870d47b6c7bb72997dc6df7ffde9c GIT binary patch literal 130375 zcmbTeWmuF^*FQ=#^a#>5LnA5O3WV`w1BW^c`!VIZBjOYA^iiBq#S)`3;(ji_5I%`B{rA|5Dp~;{|dI zL<9ue7qCtkoCFj1p}r9Orx7j`{#}CP@BdWt7NUXhCpi}Y{0aDXnE&5r2>=3uF9-zz z0Rn`t4*I|T3HUn|1^oXQw(1lA$C>W$`0>B9ekj(^{vCAiceVf*d`tgdi2d)HH|SrA zDF46-ML7q<+4AL@i*STL$&&qLv|cia=zj?RWBmV(xBn≥f8(tXNA+38!R_`rjS- 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

sim$)Tr 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 Q+Zy7Vq=H1Xm|@`m0luDQp#T5? literal 0 HcmV?d00001