From e31d2a977694159370c41b7fb12cc47c4468809d Mon Sep 17 00:00:00 2001 From: tleegaard Date: Fri, 2 Aug 2019 11:01:21 +0200 Subject: [PATCH 01/77] add co2 sensor to homekit_controller docs (#10037) --- source/_components/homekit_controller.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/homekit_controller.markdown b/source/_components/homekit_controller.markdown index 2df614d999e..a3454c71fb4 100644 --- a/source/_components/homekit_controller.markdown +++ b/source/_components/homekit_controller.markdown @@ -35,7 +35,7 @@ There is currently support for the following device types within Home Assistant: - Lock (HomeKit lock) - Switch (HomeKit switches) - Binary Sensor (HomeKit motion sensors and contact sensors) -- Sensor (HomeKit humidity, temperature, and light level sensors) +- Sensor (HomeKit humidity, temperature, co2 and light level sensors) The integration will be automatically configured if the [`discovery`](/components/discovery/) integration is enabled. From 4095d2e9743dfae8ab71add4450f3a6c8bfeebc1 Mon Sep 17 00:00:00 2001 From: SukramJ Date: Fri, 2 Aug 2019 12:44:08 +0200 Subject: [PATCH 02/77] Update homematicip_cloud.markdown (#10033) --- source/_components/homematicip_cloud.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/homematicip_cloud.markdown b/source/_components/homematicip_cloud.markdown index 8d16d1f54b5..fffeeac7b95 100644 --- a/source/_components/homematicip_cloud.markdown +++ b/source/_components/homematicip_cloud.markdown @@ -87,6 +87,7 @@ authtoken: * homematicip_cloud.binary_sensor * Window and door contact (*HmIP-SWDO, -I*) * Contact Interface flush-mount – 1 channel (*HmIP-FCI1*) + * Contact Interface (*HmIP-SCI*) * Window Rotary Handle Sensor (*HmIP-SRH*) * Smoke sensor and alarm (*HmIP-SWSD*) * Motion Detector with Brightness Sensor - indoor (*HmIP-SMI*) From 53e72ba9e8276be43abc490ac2ce5dadf130b36c Mon Sep 17 00:00:00 2001 From: Tom Date: Fri, 2 Aug 2019 13:43:04 +0200 Subject: [PATCH 03/77] Add Plugwise component (#9992) * Added Plugwise component * Update source/_components/plugwise.markdown Thanks for helping out! Co-Authored-By: Klaas Schoute * Suggestions applied, removed unneccesary use of other template information * Suggestions applied , removed unneccesary use of other template information * Move conf example below and update services * Actually moved the full config example as requested * :pencil2: Tweak * Apply review comments * Modified top section (improve grammer, rewording) * Rewording as suggested * Rewording as suggested, backticks * Combined proposed changes from review --- source/_components/plugwise.markdown | 163 ++++++++++++++++++++ source/images/supported_brands/plugwise.png | Bin 0 -> 38408 bytes 2 files changed, 163 insertions(+) create mode 100644 source/_components/plugwise.markdown create mode 100644 source/images/supported_brands/plugwise.png diff --git a/source/_components/plugwise.markdown b/source/_components/plugwise.markdown new file mode 100644 index 00000000000..efd96c7108e --- /dev/null +++ b/source/_components/plugwise.markdown @@ -0,0 +1,163 @@ +--- +title: "Plugwise" +description: "Plugwise Climate integration." +logo: plugwise.png +ha_category: Climate +ha_iot_class: Local Polling +ha_release: 0.98 +--- + +This enables [Plugwise](https://plugwise.com) [Anna](https://www.plugwise.com/en_US/products/anna) thermostats to be integrated. This integration talks locally to your **Smile** interface, and you will need its password and IP address. + +The password can be found on the bottom of your Smile, it should consist of 6 characters. To find your IP address use the Plugwise App: + + - Open the Plugwise App and choose the 'Settings'-icon (☰) and choose 'HTML-interface'. + - Go to the (lower) 'Settings'-icon (☰) and choose 'Preferences'. + - Choose 'System' then 'Networking' and your IP address will be shown. + +## Configuration + +You have to add the following to your configuration.yaml file: + +```yaml +# Minimal configuration.yaml entry +climate: + - platform: plugwise + password: YOUR_SHORT_IP + host: YOUR_SMILE_LOCAL_IP +``` + +{% configuration %} +password: + description: Your Smile ID (located on the bottom of the Smile, not the Anna). + required: true + type: string +host: + description: The IP address of your Smile. + required: true + type: string +name: + description: The name of your thermostat, i.e., "Anna". + required: false + type: string + default: "Plugwise Thermostat" +username: + description: Should you ever need to change this, you can. + required: false + type: string + default: smile +port: + description: When having a custom setup, you can change the port number. + required: false + type: integer + default: 80 +min_temp: + description: If you want to adjust the lower boundary, the integration will not allow temperatures below the set value. + required: false + type: integer + default: 4 +max_temp: + description: If you want to adjust the upper boundary, the integration will not allow temperatures above the set value. + required: false + type: integer + default: 30 +{% endconfiguration %} + +### Full configuration example + +```yaml +climate: + - platform: anna + name: YOUR_THERMOSTAT_NAME + password: YOUR_SHORT_ID + host: YOUR_SMILE_LOCAL_IP + port: YOUR_SMILE_PORT_NUMBER + min_temp: YOUR_MINIMAL_TARGET_TEMPERATURE + max_temp: YOUR_MAXIMAL_TARGET_TEMPERATURE +``` + +### Service + +#### Set HVAC mode (schedule) + +Service: `climate.set_hvac_mode` + +Available options include `auto` or `off`. The meaning of `auto` is that a schedule is active and the thermostat will change presets accordingly. The meaning of `off` is that there is no schedule active, i.e., the active preset or manually set temperature is to be used to control the climate of your house or rooms. +The last schedule that was active is determined the same way long-tapping the top of Anna works. + +Example: + +```yaml +# Example script change the temperature +script: + anna_reactive_last_schedule: + sequence: + - service: climate.set_hvac_mode + data: + hvac_mode: auto +``` + +Changing the active schedule can be done, though not easily: + +- Deactivate the schedule (press the power button on the UI-card). +- Look up the available schemas in the `states` view (attribute `available_schemas`). +- Change the attribute `active_schema` to the actual name of your schema as available from the above attribute or your Plugwise App. +- Activate the schedule (press the calendar button on the UI-card). + +#### Set temperature + +Service: `climate.set_temperature` + +Example: + +```yaml +# Example script change the temperature +script: + anna_set_predefined_temperature: + sequence: + - service: climate.set_temperature + data: + temperature: 19.5 +``` + +#### Set preset mode + +Service: `climate.set_preset_mode` + +Available options include: `home`, `vacation`, `no_frost`, `asleep` & `away`. + +Example: + +```yaml +# Example script changing the active (or currently set by schedule) preset +script: + anna_activate_preset_asleep: + sequence: + - service: climate.set_preset_mode + data: + preset_mode: asleep +``` + +### Troubleshooting + +Example of a working configuration excerpt (with debugging enabled): + +```txt +[homeassistant.loader] Loaded plugwise from custom_components.plugwise +[homeassistant.loader] You are using a custom integration for plugwise which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant. +[custom_components.plugwise.climate] Plugwise: custom component loading (Anna PlugWise climate) +[homeassistant.components.climate] Setting up climate.plugwise +[custom_components.plugwise.climate] Init called +[custom_components.plugwise.climate] Initializing API +[custom_components.plugwise.climate] platform ready +[custom_components.plugwise.climate] Update called +``` + +Example of something going wrong (IP address not set) excerpt is shown below. Correct your configuration and try again. If the errors persist, please share a larger excerpt of your logfile. + +```txt +1970-01-01 00:00:01 ERROR (MainThread) [homeassistant.components.climate] Error while setting up platform plugwise + File "/home/homeassistant/.homeassistant/custom_components/plugwise/climate.py", line 104, in setup_platform + File "/home/homeassistant/.homeassistant/custom_components/plugwise/climate.py", line 130, in __init__ + self._api = Haanna(self._username, self._password, self._host, self._port) +``` diff --git a/source/images/supported_brands/plugwise.png b/source/images/supported_brands/plugwise.png new file mode 100644 index 0000000000000000000000000000000000000000..f48480b7b135ffd1790a52b6ad99d5c687cd5379 GIT binary patch literal 38408 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 UUvzouC4qoXSIbbdQr#)+f4Z_IJpcdz literal 0 HcmV?d00001 From 2c9408cbb2aecd8286666653f86fd69f75345bea Mon Sep 17 00:00:00 2001 From: Robert Svensson Date: Fri, 2 Aug 2019 14:04:11 +0200 Subject: [PATCH 04/77] UniFi - description for dont_track_clients and dont_track_devices (#10034) * Add description for new parameters dont_track_clients and dont_track_devices * Fix Franks comment --- source/_components/unifi.markdown | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/source/_components/unifi.markdown b/source/_components/unifi.markdown index ec1c1a12d01..f507d756ded 100644 --- a/source/_components/unifi.markdown +++ b/source/_components/unifi.markdown @@ -39,7 +39,7 @@ unifi: site: My site ssid_filter: - 'HomeSSID' - 'IoTSSID' + - 'IoTSSID' ``` {% configuration %} @@ -63,6 +63,16 @@ detection_time: type: integer required: false default: 300 +dont_track_clients: + description: enable to not allow device tracker to track clients. + type: boolean + required: false + default: false +dont_track_devices: + description: enable to not allow device tracker to track devices. + type: boolean + required: false + default: false ssid_filter: description: Filter the SSIDs that tracking will occur on. type: list From 18ca5c4a92337a5c1f5d6b9fb9a2e22002cd2baf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=BCndler?= Date: Fri, 2 Aug 2019 18:37:14 +0200 Subject: [PATCH 05/77] Add detailed overview over added components (#10028) * Add detailed overview over added components also note that now all templates are created automatically * :pencil2: Tweak * Add note about seemingly missing data * Fix configuration * :pencil2: Tweaks --- source/_components/fronius.markdown | 70 ++++++++++++++++------------- 1 file changed, 40 insertions(+), 30 deletions(-) diff --git a/source/_components/fronius.markdown b/source/_components/fronius.markdown index fb23ba7b51c..d317d18af1d 100644 --- a/source/_components/fronius.markdown +++ b/source/_components/fronius.markdown @@ -9,7 +9,7 @@ ha_iot_class: Local Polling ha_release: 0.96 --- -The `fronius` sensor will poll a [Fronius](http://www.fronius.com/) solar inverter, battery system or smart meter and present the values as sensors (or attributes of sensors) in Home Assistant. +The `fronius` sensor polls a [Fronius](http://www.fronius.com/) solar inverter, battery system or smart meter and present the values as sensors in Home Assistant. ## Configuration @@ -33,7 +33,7 @@ monitored_conditions: required: true type: list keys: - type: + sensor_type: description: "The kind of device, can be one of \"inverter\", \"storage\", \"meter\", or \"power_flow\"" required: true type: string @@ -48,6 +48,44 @@ monitored_conditions: default: "\"1\" for inverters and \"0\" for other devices such as storages in compliance with Fronius Specs" {% endconfiguration %} +## Monitored data + +Each sensor type chosen as monitored condition adds a set of sensors to Home Assistant. + +- `power_flow` + + Cumulative data such as the energy produced in the current day or year and overall produced energy. + Also, live values such as: + + - Power fed to the grid (if positive) or taken from the grid (if negative). + - Power load as a generator (if positive) or consumer (if negative). + - Battery charging power (if positive) or discharging power (if negative) and information about backup or standby mode. + - Photovoltaic production. + - Current relative self-consumption of produced energy. + - Current relative autonomy. + +- `inverter` + + Cumulative data such as the energy produced in the current day or year and overall produced energy. + Also, live values about AC/DC power, current, voltage and frequency. + The data is only shown when choosing device scope. + +- `meter` + + Detailed information about power, current and voltage, if supported split among the phases. + The data is only shown when choosing device scope. + +- `storage` + + Detailed information about current, voltage, state, cycle count, capacity and more about installed batteries. + +Note that some data (like photovoltaic production) is only provided by the Fronius device when non-zero. +The corresponding sensors are added to Home Assistant as entities as soon as they are available. +This means for example that when Home Assistant is started at night, +there might be no sensor providing photovoltaic related data. +This does not need to be problematic as the values will be added on sunrise, +when the Fronius devices begins providing the needed data. + ## Examples When including more of the components that one Fronius device offers, @@ -68,31 +106,3 @@ sensor: device: 0 - sensor_type: power_flow ``` - -## Sensors configuration - -To extract more detailed values from the state of each integrated sensor and to circumvent undefined values, -it is recommended to use template sensors as an interface: - -{% raw %} -```yaml -- platform: template - sensors: - electricity_inverter1_power_netto: - unit_of_measurement: 'W' - value_template: >- - {% if states.sensor.fronius_1921684247_inverter_1.attributes.power_ac is defined -%} - {{ states_attr('sensor.fronius_1921684247_inverter_1', 'power_ac') | float | round(2) }} - {%- else -%} - 0 - {%- endif %} - electricity_autonomy: - unit_of_measurement: '%' - value_template: >- - {% if states.sensor.fronius_1921684247_power_flow.attributes.relative_autonomy is defined -%} - {{ states_attr('sensor.fronius_1921684247_power_flow', 'relative_autonomy') | float | round(2) }} - {%- else -%} - 0 - {%- endif %} -``` -{% endraw %} From 10ec911f6c4abdf3a4509a0474539da064aa9cb3 Mon Sep 17 00:00:00 2001 From: Jeff Irion Date: Tue, 6 Aug 2019 03:07:25 -0700 Subject: [PATCH 06/77] Document the 'state_detection_rules' config parameter (#10036) * Document the 'state_detection_rules' config parameter * Add info about how to determine rules * Add comments about indentation This level of indentation for the `wake_lock_size` map is necessary to ensure that the YAML is parsed as intended. * Update the documentation of the 'state_detection_rules' config parameter --- source/_components/androidtv.markdown | 38 ++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/source/_components/androidtv.markdown b/source/_components/androidtv.markdown index 660860063a5..47e26e2e6a1 100644 --- a/source/_components/androidtv.markdown +++ b/source/_components/androidtv.markdown @@ -92,6 +92,11 @@ device_class: required: false default: auto type: string +state_detection_rules: + description: A dictionary whose keys are app IDs and whose values are lists of state detection rules; see the section [Custom State Detection](#custom-state-detection) for more info. + required: false + default: {} + type: map turn_on_command: description: An ADB shell command that will override the default `turn_on` command. required: false @@ -108,7 +113,8 @@ turn_off_command: # Example configuration.yaml entry media_player: # Use an ADB server to setup an Android TV device, provide - # an app name, and override the default turn on/off commands + # an app name, override the default turn on/off commands, + # and provide custom state detection rules - platform: androidtv name: Android TV device_class: androidtv @@ -118,6 +124,21 @@ media_player: com.amazon.tv.launcher: "Fire TV" turn_on_command: "input keyevent 3" turn_off_command: "input keyevent 223" + state_detection_rules: + 'com.amazon.tv.launcher': + - 'standby' + 'com.netflix.ninja': + - 'media_session_state' + 'com.ellation.vrv': + - 'audio_state' + 'com.plexapp.android': + - 'playing': + 'media_session_state': 3 # this indentation is important! + 'wake_lock_size': 3 # this indentation is important! + - 'paused': + 'media_session_state': 3 # this indentation is important! + 'wake_lock_size': 1 # this indentation is important! + - 'standby' # Use the Python ADB implementation with authentication # to setup a Fire TV device and don't get the running apps @@ -235,3 +256,18 @@ Available key commands include: The full list of key commands can be found [here](https://github.com/JeffLIrion/python-androidtv/blob/bf1058a2f746535921b3f5247801469c4567e51a/androidtv/constants.py#L143-L186). You can also use the command `GET_PROPERTIES` to retrieve the properties used by Home Assistant to update the device's state. These will be stored in the media player's `'adb_response'` attribute and logged at the INFO level, this information can be used to help improve state detection in the backend [androidtv](https://github.com/JeffLIrion/python-androidtv) package. + +## Custom State Detection + +The `state_detection_rules` configuration parameter allows you to provide your own rules for state detection. The keys are app IDs, and the values are lists of rules that are evaluated in order. Valid rules are: + +* `'standby'`, `'playing'`, `'paused'`, `'idle'`, `'stopped'`, or `'off'` + * If this is not a map, then this state will always be reported when this app is the current app + * If this is a map, then its entries are conditions that will be checked. If all of the conditions are true, then this state will be reported. Valid conditions pertain to 3 properties (see the example configuration above): + 1. ``'media_session_state'`` + 2. ``'audio_state'`` + 3. ``'wake_lock_size'`` +* `'media_session_state'` = try to use the `media_session_state` property to determine the state +* `'audio_state'` = try to use the `audio_state` property to determine the state + +To determine what these rules should be, you can use the `androidtv.adb_command` service with the command `GET_PROPERTIES`, as described in the [androidtv.adb_command](#androidtvadb_command) section. From 89a8a57899c9609e752ddcf6612d5b34ed929f6c Mon Sep 17 00:00:00 2001 From: Matthias Alphart Date: Tue, 6 Aug 2019 12:33:24 +0200 Subject: [PATCH 07/77] KNX component updates for xknx 0.11 (#9682) * xknx 0.11 * update for xknx 0.11.1 - state_address instead of address - sync_state option * :pencil2: Tweak - Please check if this config variable `device_class` belongs here. For now it breaks netlify with building. * copy and past error -.- * even more typos * :pencil2: Tweak * :pencil2: Tweak * :pencil2: Tweaks * :pencil2: Tweak * :pencil2: Tweak * :pencil2: Tweak * :pencil2: Tweak * :pencil2: Tweaks * :pencil2: Tweak * :pencil2: Tweak * :pencil2: Tweak * :pencil2: Tweak * :pencil2: Tweak * :pencil2: Tweak * :pencil2: Tweak * :pencil2: Tweak * :pencil2: Tweak * :pencil2: Tweak * :pencil2: Tweak --- source/_components/binary_sensor.knx.markdown | 21 +++- source/_components/climate.knx.markdown | 42 ++++--- source/_components/cover.knx.markdown | 9 +- source/_components/knx.markdown | 33 ++--- source/_components/light.knx.markdown | 18 ++- source/_components/notify.knx.markdown | 8 +- source/_components/scene.knx.markdown | 12 +- source/_components/sensor.knx.markdown | 114 +++++++++++------- source/_components/switch.knx.markdown | 10 +- 9 files changed, 176 insertions(+), 91 deletions(-) diff --git a/source/_components/binary_sensor.knx.markdown b/source/_components/binary_sensor.knx.markdown index 34148af2a5a..2af616f8fd4 100644 --- a/source/_components/binary_sensor.knx.markdown +++ b/source/_components/binary_sensor.knx.markdown @@ -5,11 +5,19 @@ logo: knx.png ha_category: - Binary Sensor ha_release: 0.24 -ha_iot_class: Local Polling +ha_iot_class: Local Push --- +
+ +The `knx` integration must be configured correctly to use this integration, see [KNX Integration](/components/knx). + +
+ The `knx` sensor platform allows you to monitor [KNX](http://www.knx.org) binary sensors. +Binary sensors are read-only. To write to the knx-bus configure an exposure [KNX Integration - Expose](/components/knx/#exposing-sensor-values-or-time-to-knx-bus). + ## Configuration The `knx` integration must be configured correctly, see [KNX Integration](/components/knx). @@ -18,11 +26,11 @@ The `knx` integration must be configured correctly, see [KNX Integration](/compo # Example configuration.yaml entry binary_sensor: - platform: knx - address: '6/0/2' + state_address: '6/0/2' ``` {% configuration %} -address: +state_address: description: KNX group address of the binary sensor. required: true type: string @@ -30,6 +38,11 @@ name: description: A name for this device used within Home Assistant. required: false type: string +sync_state: + description: Actively read the value from the bus. If `False` no GroupValueRead telegrams will be sent to the bus. + required: false + type: boolean + default: True device_class: description: Sets the [class of the device](/components/binary_sensor/), changing the device state and icon that is displayed on the frontend. required: false @@ -54,7 +67,7 @@ You can also attach actions to binary sensors (e.g., to switch on a light when a binary_sensor: - platform: knx name: Livingroom.3Switch3 - address: '5/0/26' + state_address: '5/0/26' automation: - counter: 1 hook: 'on' diff --git a/source/_components/climate.knx.markdown b/source/_components/climate.knx.markdown index 9abcffc5443..a0d63bac21b 100644 --- a/source/_components/climate.knx.markdown +++ b/source/_components/climate.knx.markdown @@ -5,12 +5,16 @@ logo: knx.png ha_category: - Climate ha_release: 0.25 -ha_iot_class: Local Polling +ha_iot_class: Local Push --- -The `knx` climate platform is used as in interface with KNX thermostats. +
+ +The `knx` integration must be configured correctly to use this integration, see [KNX Integration](/components/knx). -The `knx` integration must be configured correctly, see [KNX Integration](/components/knx). +
+ +The `knx` climate platform is used as an interface to KNX thermostats and room controllers. To use your KNX thermostats in your installation, add the following lines to your `configuration.yaml` file: @@ -24,6 +28,7 @@ climate: setpoint_shift_state_address: '5/1/3' target_temperature_state_address: '5/1/4' operation_mode_address: '5/1/5' + operation_mode_state_address: '5/1/6' ``` Alternatively, if your device has dedicated binary group addresses for frost/night/comfort mode: @@ -40,10 +45,11 @@ climate: operation_mode_frost_protection_address: '5/1/5' operation_mode_night_address: '5/1/6' operation_mode_comfort_address: '5/1/7' + operation_mode_state_address: '5/1/8' ``` If your device doesn't support setpoint_shift calculations (i.e. if you don't provide a `setpoint_shift_address` value) please set the `min_temp` and `max_temp` -attributes of the climate device to avoid issues with increasing the temperature in the frontend. Please do also make sure to add the `target_temperature_address` +attributes of the climate device to avoid issues with exceeding valid temperature values in the frontend. Please do also make sure to add the `target_temperature_address` to the config in this case.: ```yaml @@ -57,11 +63,13 @@ climate: operation_mode_frost_protection_address: '5/1/5' operation_mode_night_address: '5/1/6' operation_mode_comfort_address: '5/1/7' + operation_mode_state_address: '5/1/8' min_temp: 7.0 max_temp: 32.0 ``` `operation_mode_frost_protection_address` / `operation_mode_night_address` / `operation_mode_comfort_address` are not necessary if `operation_mode_address` is specified. +If the actor doesn't support explicit state communication objects the *_state_address can be configured with the same group address as the writeable *_address. The Read-Flag for the *_state_address communication object has to be set in ETS to support initial reading eg. when starting home-assistant. The following values are valid for the `hvac_mode` attribute: @@ -86,27 +94,27 @@ name: default: KNX Climate type: string temperature_address: - description: KNX group address for reading current room temperature from KNX bus. + description: KNX group address for reading current room temperature from KNX bus. *DPT 9.001* required: true type: string target_temperature_address: - description: KNX group address for setting target temperature. + description: KNX group address for setting target temperature. *DPT 9.001* required: false type: string target_temperature_state_address: - description: KNX group address for reading current target temperature from KNX bus. + description: KNX group address for reading current target temperature from KNX bus. *DPT 9.001* required: true type: string setpoint_shift_address: - description: KNX address for setpoint_shift. + description: KNX address for setpoint_shift. *DPT 6.010* required: false type: string setpoint_shift_state_address: - description: Explicit KNX address for reading setpoint_shift. + description: KNX address for reading setpoint_shift. *DPT 6.010* required: false type: string setpoint_shift_step: - description: Defines for step size in Kelvin for each step of setpoint_shift. + description: Defines the step size in Kelvin for each step of setpoint_shift. required: false default: 0.5 type: float @@ -114,18 +122,18 @@ setpoint_shift_min: description: Minimum value of setpoint shift. required: false default: -6 - type: integer + type: float setpoint_shift_max: description: Maximum value of setpoint shift. required: false default: 6 - type: integer + type: float operation_mode_address: - description: KNX address for operation mode (Frost protection/night/comfort). + description: KNX address for setting operation mode (Frost protection/night/comfort). *DPT 20.102* required: false type: string operation_mode_state_address: - description: Explicit KNX address for reading operation mode. + description: KNX address for reading operation mode. *DPT 20.102* required: false type: string controller_status_address: @@ -133,15 +141,15 @@ controller_status_address: required: false type: string controller_status_state_address: - description: Explicit KNX address for reading HVAC controller status. + description: KNX address for reading HVAC controller status. required: false type: string controller_mode_address: - description: KNX address for handling controller modes. + description: KNX address for setting HVAC controller modes. *DPT 20.105* required: false type: string controller_mode_state_address: - description: Explicit KNX address for reading HVAC Control Mode. + description: KNX address for reading HVAC Control Mode. *DPT 20.105* required: false type: string operation_mode_frost_protection_address: diff --git a/source/_components/cover.knx.markdown b/source/_components/cover.knx.markdown index e8f48ef6ca7..ff25c2eef65 100644 --- a/source/_components/cover.knx.markdown +++ b/source/_components/cover.knx.markdown @@ -5,13 +5,16 @@ logo: knx.png ha_category: - Cover ha_release: 0.48 -ha_iot_class: Local Polling +ha_iot_class: Local Push --- +
-The `knx` cover platform is used as in interface with KNX covers. +The `knx` integration must be configured correctly to use this integration, see [KNX Integration](/components/knx). -The `knx` integration must be configured correctly, see [KNX Integration](/components/knx). +
+ +The `knx` cover platform is used as an interface to KNX covers. To use your KNX covers in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/knx.markdown b/source/_components/knx.markdown index 1414e90544b..68cc868899d 100644 --- a/source/_components/knx.markdown +++ b/source/_components/knx.markdown @@ -5,17 +5,15 @@ logo: knx.png ha_category: - Hub ha_release: 0.24 -ha_iot_class: Local Polling +ha_iot_class: Local Push --- The [KNX](https://www.knx.org) integration for Home Assistant allows you to connect to a KNX/IP devices. -The integration requires a local KNX/IP interface like the [Weinzierl 730](https://www.weinzierl.de/index.php/en/all-knx/knx-devices-en/produktarchiv-en/knx-ip-interface-730-en). Through this, it will send and receive commands to and from other devices to the KNX bus. - -
- - Please note, the `knx` platform does not support Windows and needs at least python version 3.5. +The integration requires a local KNX/IP interface or a KNX/IP router. Through this, it will send and receive commands to and from other devices to the KNX bus. +
+Please note, the `knx` platform does not support Windows.
There is currently support for the following device types within Home Assistant: @@ -69,19 +67,21 @@ knx: host: description: Host of the KNX/IP tunneling device. type: string + required: true port: description: Port of the KNX/IP tunneling device. type: integer + required: false local_ip: description: IP of the local interface. type: string + required: false {% endconfiguration %} Explicit connection to a KNX/IP routing device: ```yaml knx: - config_file: '/path/to/xknx.yaml' routing: local_ip: '192.168.2.109' ``` @@ -90,6 +90,7 @@ knx: local_ip: description: The local IP address of interface (which should be used for multicasting). type: string + required: true {% endconfiguration %} ```yaml @@ -117,7 +118,7 @@ state_updater: ### Services -In order to directly interact with the KNX bus, you can now use the following service: +In order to directly interact with the KNX bus, you can use the following service: ``` Domain: knx @@ -145,6 +146,12 @@ knx: - type: 'temperature' entity_id: 'sensor.owm_temperature' address: '0/0/2' + - type: 'string' + address: '0/6/4' + entity_id: "sensor.owm_weather" + - type: 'binary' + entity_id: 'binary_sensor.kitchen_window' + address: '0/6/5' - type: 'time' address: '0/0/1' - type: 'datetime' @@ -153,16 +160,14 @@ knx: {% configuration %} type: - description: Type of the exposed value. Either time or datetime or any supported type of [KNX Sensor](/components/sensor.knx/) (e.g., "temperature" or "humidity"). + description: Type of the exposed value. Either 'binary', 'time', 'date', 'datetime' or any supported type of [KNX Sensor](/components/sensor.knx/) (e.g., "temperature" or "humidity"). type: string + required: true entity_id: - description: Entity id of the HASS integration to be exposed. Not necessary for types time and datetime. + description: Entity id to be exposed. Not needed for types time, date and datetime. type: string address: description: KNX group address. type: string + required: true {% endconfiguration %} - -### Known issues - -Due to lame multicast support the routing abstraction and the gateway scanner only work with Python >=3.5. diff --git a/source/_components/light.knx.markdown b/source/_components/light.knx.markdown index 04372579312..f97ee085522 100644 --- a/source/_components/light.knx.markdown +++ b/source/_components/light.knx.markdown @@ -5,9 +5,15 @@ logo: knx.png ha_category: - Light ha_release: 0.44 -ha_iot_class: Local Polling +ha_iot_class: Local Push --- +
+ +The `knx` integration must be configured correctly to use this integration, see [KNX Integration](/components/knx). + +
+ The `knx light` integration is used as an interface to control knx actuators for lighting applications such as: - switching actuators @@ -15,8 +21,6 @@ The `knx light` integration is used as an interface to control knx actuators for - LED controllers - DALI gateways -The `knx` integration must be configured correctly to use this component, see [KNX Component](/components/knx). - ## Configuration To use your KNX light in your installation, add the following lines to your `configuration.yaml` file: @@ -57,6 +61,14 @@ color_state_address: description: KNX group address for retrieving the RGB color of the light. *DPT 232.600* required: false type: string +rgbw_address: + description: KNX group address for setting the RGBW color of the light. *DPT 251.600* + required: false + type: string +rgbw_state_address: + description: KNX group address for retrieving the RGBW color of the light. *DPT 251.600* + required: false + type: string color_temperature_address: description: KNX group address for setting the color temperature of the light. *DPT 5.001 or 7.600 based on color_temperature_mode* required: false diff --git a/source/_components/notify.knx.markdown b/source/_components/notify.knx.markdown index 2f3572ba211..e01f5a874a5 100644 --- a/source/_components/notify.knx.markdown +++ b/source/_components/notify.knx.markdown @@ -8,9 +8,13 @@ ha_release: 0.53 ha_iot_class: Local Push --- -The `knx` notify platform allows you to send notifications to [KNX](http://www.knx.org) devices. +
+ +The `knx` integration must be configured correctly to use this integration, see [KNX Integration](/components/knx). -The `knx` integration must be configured correctly, see [KNX Component](/components/knx). +
+ +The `knx` notify platform allows you to send notifications to [KNX](http://www.knx.org) devices. ## Configuration diff --git a/source/_components/scene.knx.markdown b/source/_components/scene.knx.markdown index 0ee4c644c9b..6a05b862f57 100644 --- a/source/_components/scene.knx.markdown +++ b/source/_components/scene.knx.markdown @@ -7,9 +7,13 @@ ha_category: ha_release: 0.63 --- -The `knx` scenes platform allows you to trigger [KNX](http://www.knx.org) scenes. +
+ +The `knx` integration must be configured correctly to use this integration, see [KNX Integration](/components/knx). -The `knx` integration must be configured correctly, see [KNX Component](/components/knx). +
+ +The `knx` scenes platform allows you to trigger [KNX](http://www.knx.org) scenes. ## Configuration @@ -26,11 +30,11 @@ scene: {% configuration %} address: - description: KNX group address of the binary sensor. + description: KNX group address for the scene. required: true type: string scene_number: - description: Zero-indexed KNX scene number to be activated. + description: KNX scene number to be activated. ( 1 ... 64 ) required: true type: integer name: diff --git a/source/_components/sensor.knx.markdown b/source/_components/sensor.knx.markdown index dbd09b75cff..2432e35c78c 100644 --- a/source/_components/sensor.knx.markdown +++ b/source/_components/sensor.knx.markdown @@ -1,6 +1,6 @@ --- title: "KNX Sensor" -description: "Instructions on how to use the KNX Sensor with Home Assistant." +description: "Instructions on how to use a KNX Sensor with Home Assistant." logo: knx.png ha_category: - Sensor @@ -8,9 +8,16 @@ ha_release: 0.29 ha_iot_class: Local Push --- -The `knx` sensor platform allows you to monitor [KNX](http://www.knx.org) sensors. +
+ +The `knx` integration must be configured correctly to use this integration, see [KNX Integration](/components/knx). + +
+ +The `knx` sensor platform allows you to monitor [KNX](http://www.knx.org) sensors. + +Sensors are read-only. To write to the knx-bus configure an exposure [KNX Integration - Expose](/components/knx/#exposing-sensor-values-or-time-to-knx-bus). -The `knx` integration must be configured correctly, see [KNX Component](/components/knx). ## Configuration @@ -21,11 +28,11 @@ To use your KNX sensor in your installation, add the following lines to your `co sensor: - platform: knx name: Heating.Valve1 - address: '2/0/0' + state_address: '2/0/0' ``` {% configuration %} -address: +state_address: description: KNX group address of the sensor. required: true type: string @@ -33,44 +40,68 @@ name: description: A name for this device used within Home Assistant. required: false type: string -type: - description: A type from the following table can be defined. The DPT of the group address should match the expected KNX DPT to be parsed correctly. +sync_state: + description: Actively read the value from the bus. If `False` no GroupValueRead telegrams will be sent to the bus. required: false + type: boolean + default: True +type: + description: A type from the following table must be defined. The DPT of the group address should match the expected KNX DPT to be parsed correctly. + required: true type: string {% endconfiguration %} -| type | unit | expected KNX DPT | -|--------------------|------|------------------| -| percent | % | 5.001 | -| pulse | | 5.010 | -| temperature | °C | 9.001 | -| humidity | % | 9.007 | -| illuminance | lx | 9.004 | -| brightness | lx | 7.013 | -| speed_ms | m/s | 9.005 | -| current | mA | 7.012 | -| voltage | mV | 9.020 | -| power | W | 14.056 | -| electric_current | A | 14.019 | -| electric_potential | V | 14.027 | -| energy | J | 14.031 | -| frequency | Hz | 14.033 | -| heatflowrate | W | 14.036 | -| phaseanglerad | rad | 14.054 | -| phaseangledeg | ° | 14.055 | -| powerfactor | | 14.057 | -| speed | m/s | 14.065 | -| enthalpy | H | 9.* | -| ppm | ppm | 9.008 | -| DPT-7 | | 7.* | -| 2byte_unsigned | | 7.* | -| DPT-9 | | 9.* | -| DPT-12 | | 12.* | -| 4byte_unsigned | | 12.* | -| DPT-13 | | 13.* | -| 4byte_signed | | 13.* | -| DPT-14 | | 14.* | -| 4byte_float | | 14.* | +| KNX DPT | type | size in byte | unit | +|--------:|--------------------|-------------:|----------------| +| 5.001 | percent | 1 | % | +| 5.003 | angle | 1 | ° | +| 5.004 | percentU8 | 1 | % | +| 5.010 | pulse | 1 | | +| 5.010 | DPT-5 | 1 | | +| 5.010 | 1byte_unsigned | 1 | | +| 6.001 | percentV8 | 1 | % | +| 6.010 | counter_pulses | 1 | counter pulses | +| 7.*** | DPT-7 | 2 | | +| 7.001 | 2byte_unsigned | 2 | pulses | +| 7.012 | current | 2 | mA | +| 7.013 | brightness | 2 | lx | +| 7.600 | color_temperature | 2 | K | +| 8.*** | DPT-8 | 2 | | +| 8.001 | 2byte_signed | 2 | pulses | +| 8.002 | delta_time_ms | 2 | ms | +| 8.005 | delta_time_sec | 2 | s | +| 8.006 | delta_time_min | 2 | min | +| 8.007 | delta_time_hrs | 2 | h | +| 8.010 | percentV16 | 2 | % | +| 8.011 | rotation_angle | 2 | ° | +| 9.* | enthalpy | 2 | H | +| 9.*** | DPT-9 | 2 | | +| 9.001 | temperature | 2 | °C | +| 9.004 | illuminance | 2 | lx | +| 9.005 | speed_ms | 2 | m/s | +| 9.007 | humidity | 2 | % | +| 9.008 | ppm | 2 | ppm | +| 9.020 | voltage | 2 | mV | +| 12.*** | DPT-12 | 4 | | +| 12.*** | 4byte_unsigned | 4 | | +| 13.*** | DPT-13 | 4 | | +| 13.*** | 4byte_signed | 4 | | +| 14.*** | DPT-14 | 4 | | +| 14.*** | 4byte_float | 4 | | +| 14.019 | electric_current | 4 | A | +| 14.027 | electric_potential | 4 | V | +| 14.031 | energy | 4 | J | +| 14.033 | frequency | 4 | Hz | +| 14.036 | heatflowrate | 4 | W | +| 14.042 | luminous_flux | 4 | lm | +| 14.054 | phaseanglerad | 4 | rad | +| 14.055 | phaseangledeg | 4 | ° | +| 14.056 | power | 4 | W | +| 14.057 | powerfactor | 4 | | +| 14.058 | pressure | 4 | Pa | +| 14.065 | speed | 4 | m/s | +| 16.000 | string | 14 | | +| 17.001 | scene_number | 1 | | ## Full example @@ -79,10 +110,11 @@ type: sensor: - platform: knx name: Heating.Valve1 - address: '2/0/0' + state_address: '2/0/0' type: 'percent' - platform: knx name: Kitchen.Temperature - address: '6/2/1' + state_address: '6/2/1' + sync_state: False type: 'temperature' ``` diff --git a/source/_components/switch.knx.markdown b/source/_components/switch.knx.markdown index 7765c7c7059..231340dfc2b 100644 --- a/source/_components/switch.knx.markdown +++ b/source/_components/switch.knx.markdown @@ -5,12 +5,16 @@ logo: knx.png ha_category: - Switch ha_release: 0.24 -ha_iot_class: Local Polling +ha_iot_class: Local Push --- -The `knx` switch integration is used as in interface to switching actuators. +
+ +The `knx` integration must be configured correctly to use this integration, see [KNX Integration](/components/knx). -The `knx` integration must be configured correctly, see [KNX Component](/components/knx). +
+ +The `knx` switch platform is used as an interface to switching actuators. ## Configuration From 66d7f4e126e80ef03597f494a6bffff873b3da7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20RAMAGE?= Date: Tue, 6 Aug 2019 12:34:24 +0200 Subject: [PATCH 08/77] Add zigate support to zha (#9990) * Add zigate support * Update zha.markdown --- source/_components/zha.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_components/zha.markdown b/source/_components/zha.markdown index 13e66e8c7a4..9bdd2bc7cb3 100644 --- a/source/_components/zha.markdown +++ b/source/_components/zha.markdown @@ -56,6 +56,8 @@ The custom quirks implementations for zigpy implemented as ZHA Device Handlers f - [ConBee II (a.k.a. ConBee 2) USB adapter from Dresden-Elektronik](https://shop.dresden-elektronik.de/conbee-2.html) - [ConBee USB adapter from Dresden-Elektronik](https://www.dresden-elektronik.de/conbee/) - [RaspBee Raspberry Pi Shield from Dresden-Elektronik](https://www.dresden-elektronik.de/raspbee/) +- ZiGate based radios (via the [zigpy-zigate](https://github.com/doudz/zigpy-zigate) library for zigpy) + - ZiGate USB modules (require firmware 3.1a or later) ## Configuration From 8bf6bf1874c8f43153acbbd305156fb5bfe3f150 Mon Sep 17 00:00:00 2001 From: Ross Dargan Date: Tue, 6 Aug 2019 11:35:54 +0100 Subject: [PATCH 09/77] Update how the ring platform updates it's sensors. (#9993) * add in ring switch docs * add support for light * remove the other platforms to match the smaller pr * Update ring.markdown update following p/r --- source/_components/ring.markdown | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/source/_components/ring.markdown b/source/_components/ring.markdown index 8f4a469f0e0..899ea4b6323 100644 --- a/source/_components/ring.markdown +++ b/source/_components/ring.markdown @@ -20,7 +20,7 @@ The `ring` implementation allows you to integrate your [Ring.com](https://ring.c There is currently support for the following device types within Home Assistant: - [Binary Sensor](#binary-sensor) -- [Camera](#camera) - downloading and playing Ring video will require a Ring Protect plan. +- [Camera](#camera) - [Sensor](#sensor) Currently only doorbells are supported by this sensor. @@ -49,11 +49,16 @@ password: description: The password for accessing your Ring account. required: true type: string +scan_interval: + description: How frequently to query for new video, or current sensor values in seconds + required: false + type: integer + default: 10 {% endconfiguration %} ## Binary Sensor -Once you have enabled the [Ring component](/components/ring), you can start using a binary sensor. Add the following to your `configuration.yaml` file: +Once you have enabled the [Ring integration](/components/ring), you can start using a binary sensor. Add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -81,7 +86,7 @@ Currently it supports doorbell, external chimes and stickup cameras. Please note that downloading and playing Ring video will require a Ring Protect plan.
-Once you have enabled the [Ring component](/components/ring), you can start using the camera platform. Add the following to your `configuration.yaml` file: +Once you have enabled the [Ring integration](/components/ring), you can start using the camera platform. Add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -94,11 +99,6 @@ ffmpeg_arguments: description: Extra options to pass to ffmpeg, e.g., image quality or video filter options. required: false type: string -scan_interval: - description: How frequently to query for new video in seconds. - required: false - type: integer - default: 90 {% endconfiguration %} **Note:** To be able to playback the last capture, it is required to install the `ffmpeg` component. Make sure to follow the steps mentioned at [FFMPEG](/components/ffmpeg/) documentation. @@ -155,7 +155,7 @@ hass.services.call('downloader', 'download_file', data) ## Sensor -Once you have enabled the [Ring component](/components/ring), you can start using the sensor platform. Add the following to your `configuration.yaml` file: +Once you have enabled the [Ring integration](/components/ring), you can start using the sensor platform. Add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry From c0ad45d1541ca96160c99446eddfa07049ada38a Mon Sep 17 00:00:00 2001 From: Robert Svensson Date: Tue, 6 Aug 2019 12:36:47 +0200 Subject: [PATCH 10/77] Configuration option to not track wired clients (#10040) --- source/_components/unifi.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/_components/unifi.markdown b/source/_components/unifi.markdown index f507d756ded..df7ccad1d65 100644 --- a/source/_components/unifi.markdown +++ b/source/_components/unifi.markdown @@ -73,6 +73,11 @@ dont_track_devices: type: boolean required: false default: false +dont_track_wired_clients: + description: enable to not allow device tracker to track wired clients. + type: boolean + required: false + default: false ssid_filter: description: Filter the SSIDs that tracking will occur on. type: list From 031517c05be3c484503b99ad1ccac04b236ede4d Mon Sep 17 00:00:00 2001 From: Ross Dargan Date: Tue, 6 Aug 2019 15:53:25 +0100 Subject: [PATCH 11/77] Add support for ring switch platform (#10062) * Add in support for the switch platform * :pencil2: Tweak --- source/_components/ring.markdown | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source/_components/ring.markdown b/source/_components/ring.markdown index 899ea4b6323..343c2f4aa49 100644 --- a/source/_components/ring.markdown +++ b/source/_components/ring.markdown @@ -7,6 +7,7 @@ ha_category: - Binary Sensor - Camera - Sensor + - Switch ha_release: 0.42 ha_iot_class: Cloud Polling redirect_from: @@ -22,6 +23,7 @@ There is currently support for the following device types within Home Assistant: - [Binary Sensor](#binary-sensor) - [Camera](#camera) - [Sensor](#sensor) +- [Switch](#switch) Currently only doorbells are supported by this sensor. @@ -186,3 +188,15 @@ monitored_conditions: {% endconfiguration %} Currently it supports doorbell, external chimes and stickup cameras. + +## Switch + +Once you have enabled the [Ring integration](/components/ring), you can start using the switch platform. Add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: ring +``` + +This will add a switch for every camera that supports a siren. Note the siren will only turn on for 30 seconds before automatically turning off. From 6969fa724887e9297618ea16b31f59300fad6005 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 7 Aug 2019 23:19:52 +0200 Subject: [PATCH 12/77] Deprecates sytadin integration (ADR-0004) (#10068) --- source/_components/sytadin.markdown | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/source/_components/sytadin.markdown b/source/_components/sytadin.markdown index 8333a70c646..164a64fec34 100644 --- a/source/_components/sytadin.markdown +++ b/source/_components/sytadin.markdown @@ -12,6 +12,14 @@ redirect_from: The `sytadin` sensor platform allows you to monitor traffic details from [Sytadin](http://www.sytadin.fr). +
+ +This integration is deprecated and will be removed in Home Assistant 0.100.0. + +For more information see [Architecture Decision Record: 0004](https://github.com/home-assistant/architecture/blob/master/adr/0004-webscraping.md). + +
+ ## Configuration To add Sytadin to your installation, add the following to your `configuration.yaml` file: From 4d9ba361efa4476b042da506a85dbc6d8ea0f0b9 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 7 Aug 2019 23:20:08 +0200 Subject: [PATCH 13/77] Deprecates fedex integration (ADR-0004) (#10070) --- source/_components/fedex.markdown | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/source/_components/fedex.markdown b/source/_components/fedex.markdown index f76314d70bb..384656d9c82 100644 --- a/source/_components/fedex.markdown +++ b/source/_components/fedex.markdown @@ -10,6 +10,14 @@ redirect_from: - /components/sensor.fedex/ --- +
+ +This integration is deprecated and will be removed in Home Assistant 0.100.0. + +For more information see [Architecture Decision Record: 0004](https://github.com/home-assistant/architecture/blob/master/adr/0004-webscraping.md). + +
+ The `fedex` platform allows one to track deliveries by [FedEx](http://www.fedex.com/). To use this sensor, you need a [FedEx Delivery Manager](https://www.fedex.com/us/delivery/) account. ## Configuration From a3dbdfb09265cd6013f2df87d7e85c35b017aab6 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 7 Aug 2019 23:20:35 +0200 Subject: [PATCH 14/77] Deprecates ups integration (ADR-0004) (#10071) --- source/_components/ups.markdown | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/source/_components/ups.markdown b/source/_components/ups.markdown index 441b01f6c28..9a1c385bcd6 100644 --- a/source/_components/ups.markdown +++ b/source/_components/ups.markdown @@ -10,6 +10,14 @@ redirect_from: - /components/sensor.ups/ --- +
+ +This integration is deprecated and will be removed in Home Assistant 0.100.0. + +For more information see [Architecture Decision Record: 0004](https://github.com/home-assistant/architecture/blob/master/adr/0004-webscraping.md). + +
+ The `ups` platform allows one to track deliveries by the [UPS](https://www.ups.com/). To use this sensor, you need a [My UPS Account](https://www.ups.com/mychoice). ## Configuration From 9dcf78f50684175019ab902c2c164d6fab80125f Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 7 Aug 2019 23:21:06 +0200 Subject: [PATCH 15/77] Deprecates usps integration (ADR-0004) (#10069) --- source/_components/usps.markdown | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/source/_components/usps.markdown b/source/_components/usps.markdown index 92defd842fc..cb23482db1d 100644 --- a/source/_components/usps.markdown +++ b/source/_components/usps.markdown @@ -13,6 +13,14 @@ redirect_from: - /components/sensor.usps/ --- +
+ + This integration is deprecated and will be removed in Home Assistant 0.100.0. + + For more information see [Architecture Decision Record: 0004](https://github.com/home-assistant/architecture/blob/master/adr/0004-webscraping.md). + +
+ The `usps` platform allows one to track deliveries and inbound mail from the [US Postal Service (USPS)](https://www.usps.com/). In addition to having a USPS account, you will need to complete the "Opt-In" process for packages by clicking "Get Started Now" on [this page](https://my.usps.com/mobileWeb/pages/intro/start.action). You must also "Opt-In" to [Informed Delivery](https://informeddelivery.usps.com/box/pages/intro/start.action) to see inbound mail. From bf4cf20ba0f694ff2ad30a34c2777ac606925a25 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 7 Aug 2019 23:21:31 +0200 Subject: [PATCH 16/77] Deprecates srp_energy integration (ADR-0004) (#10072) --- source/_components/srp_energy.markdown | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/source/_components/srp_energy.markdown b/source/_components/srp_energy.markdown index b166efaa6e1..c204277e9aa 100644 --- a/source/_components/srp_energy.markdown +++ b/source/_components/srp_energy.markdown @@ -9,6 +9,14 @@ redirect_from: - /components/sensor.srp_energy/ --- +
+ + This integration is deprecated and will be removed in Home Assistant 0.100.0. + + For more information see [Architecture Decision Record: 0004](https://github.com/home-assistant/architecture/blob/master/adr/0004-webscraping.md). + +
+ The `srp_energy` integration shows information from Srp hourly energy usage report for their customers. The srpenergy module fetches the data found on the website. You need a Username, Password, and AccountId which you can create at [Srp](https://www.srpnet.com). From 21acaa73be86444e94f3b3be4143c1ae985a9200 Mon Sep 17 00:00:00 2001 From: cogneato Date: Wed, 7 Aug 2019 17:38:49 -0600 Subject: [PATCH 17/77] fix google calendar docs link google calendar docs linking to wrong page --- source/_posts/2019-08-07-release-97.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_posts/2019-08-07-release-97.markdown b/source/_posts/2019-08-07-release-97.markdown index 110ab89d05c..9c19cf6b369 100644 --- a/source/_posts/2019-08-07-release-97.markdown +++ b/source/_posts/2019-08-07-release-97.markdown @@ -95,7 +95,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - **Z-Wave** - Improve handling of Z-Wave config entry vs yaml config. If a Z-Wave `network_key` is specified in configuration.yaml it will override a `network_key` specified in the Z-Wave config entry. ([@cgarwood] - [#25112]) ([zwave docs]) - **Unifi** - Unifi Device tracker is now part of config entry. After initial import the unifi device tracker configuration is no longer needed. If configuring SSID filter or detection time you will need to use the new configuration from UniFi. See UniFi component documentation for details. ([@Kane610] - [#24367]) ([unifi docs]) - **Ecobee** - Ecobee presets now represent the different Ecobee comfort settings. Selectable by name instead of unknown ID. ([@balloob] - PR link todo) -- **Calendar** - Rewrite calendar component - The calendar integration has been rewritten to follow our current standards and is mostly non breaking. The reset (clean up) of state attributes upon an event time passing has been removed, though. Attributes are no longer set to an arbitrary default value, and will now keep the attributes representing the last event. With this change, automations that rely on state attributes getting reset will need to be updated. All platforms have been converted. - ([@MartinHjelmare] - [#24950]) ([caldav docs]) ([calendar docs]) ([demo docs]) ([google docs]) ([todoist docs]) +- **Calendar** - Rewrite calendar component - The calendar integration has been rewritten to follow our current standards and is mostly non breaking. The reset (clean up) of state attributes upon an event time passing has been removed, though. Attributes are no longer set to an arbitrary default value, and will now keep the attributes representing the last event. With this change, automations that rely on state attributes getting reset will need to be updated. All platforms have been converted. - ([@MartinHjelmare] - [#24950]) ([caldav docs]) ([calendar docs]) ([demo docs]) ([google cal docs]) ([todoist docs]) - **SyncThru** - The monitored_conditions configuration option has been removed. All available monitored conditions will be used by default. Users that have been using the monitored_conditions option need to remove it from the syncthru section in configuration.yaml. ([@nielstron] - [#25052]) ([syncthru docs]) - **KNX** - Updates the knx component to use xknx 0.11.1 . This introduces several new features and bugfixes. For a complete list see: https://github.com/XKNX/xknx/releases/tag/0.11.0 ([@farmio] - [#24738]) ([knx docs]) - `scene:` `scene_number` is now 1 indexed according to KNX standards. Previously it was 0 based. Please add 1 to your already configured scene numbers (`scene_number: 5` becomes `scene_number: 6`). @@ -695,7 +695,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [fortigate docs]: /components/fortigate/ [fortios docs]: /components/fortios/ [geniushub docs]: /components/geniushub/ -[google docs]: /components/google/ +[google cal docs]: /components/calendar.google/ [google_assistant docs]: /components/google_assistant/ [google_maps docs]: /components/google_maps/ [google_travel_time docs]: /components/google_travel_time/ From 8a0dff1ff281c7739553cc86ebbf4d0df29581bf Mon Sep 17 00:00:00 2001 From: mbo18 Date: Thu, 8 Aug 2019 20:28:12 +0200 Subject: [PATCH 18/77] Update example following #9957 (#10086) Update example following updater changes in Home-Assistant #25418 --- .../notify_if__new_ha_release.markdown | 40 ++++++++++--------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/source/_cookbook/notify_if__new_ha_release.markdown b/source/_cookbook/notify_if__new_ha_release.markdown index bf02f857a8b..771693bdd37 100644 --- a/source/_cookbook/notify_if__new_ha_release.markdown +++ b/source/_cookbook/notify_if__new_ha_release.markdown @@ -15,34 +15,38 @@ notify: recipient: recipient@jabber.org automation: - - alias: Update notifications + - alias: Update notification trigger: - platform: state - entity_id: updater.updater + entity_id: binary_sensor.updater + from: 'off' + to: 'on' action: - service: notify.jabber - data: - message: 'There is a new Home Assistant release available.' + - service: notify.jabber + data: + message: 'There is a new Home Assistant release available.' ``` You can use [templates](/topics/templating/) to include the release number of Home Assistant if you prefer. The following example sends a notification via [Pushbullet](/components/notify.pushbullet/) with the Home Assistant version in the message. ```yaml notify: - platform: pushbullet - api_key: 'YOUR_KEY_HERE' - name: pushbullet + - platform: pushbullet + api_key: 'YOUR_KEY_HERE' + name: pushbullet automation: - - alias: Update notifications - trigger: - - platform: state - entity_id: updater.updater - action: - service: notify.pushbullet - data_template: - title: 'New Home Assistant Release' - target: 'YOUR_TARGET_HERE' #See Pushbullet integration for usage - message: "Home Assistant {% raw %} {{ states('updater.updater') }} {% endraw %} is now available." + - alias: Update notification + trigger: + - platform: state + entity_id: binary_sensor.updater + from: 'off' + to: 'on' + action: + - service: notify.pushbullet + data_template: + title: 'New Home Assistant Release' + target: 'YOUR_TARGET_HERE' #See Pushbullet integration for usage + message: "Home Assistant {% raw %} {{ state_attr('binary_sensor.updater', 'newest_version') }} {% endraw %} is now available." ``` From a904b18d8776c7a4fe3d04d9f770050312d6d2ae Mon Sep 17 00:00:00 2001 From: Ross Dargan Date: Thu, 8 Aug 2019 19:28:59 +0100 Subject: [PATCH 19/77] Add in light support (#10064) --- source/_components/ring.markdown | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/source/_components/ring.markdown b/source/_components/ring.markdown index 343c2f4aa49..03d096030d8 100644 --- a/source/_components/ring.markdown +++ b/source/_components/ring.markdown @@ -8,6 +8,7 @@ ha_category: - Camera - Sensor - Switch + - Light ha_release: 0.42 ha_iot_class: Cloud Polling redirect_from: @@ -200,3 +201,15 @@ switch: ``` This will add a switch for every camera that supports a siren. Note the siren will only turn on for 30 seconds before automatically turning off. + +## Light + +Once you have enabled the [Ring integration](/components/ring), you can start using the light platform. Add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +light: + - platform: ring +``` + +This will add a light for every camera that supports a light (such as a flood light). From 429995413cfc1d0de55a72668d401087cc2e80a4 Mon Sep 17 00:00:00 2001 From: Robert Dunmire III Date: Thu, 8 Aug 2019 14:30:09 -0400 Subject: [PATCH 20/77] Add Mikrotik hub category and update example config (#10044) * Updating for Mikrotik Hub * Add hub category and example config --- source/_components/mikrotik.markdown | 35 +++++++++++++++++++++------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/source/_components/mikrotik.markdown b/source/_components/mikrotik.markdown index 1ab056dc995..fdb23f8e7c9 100644 --- a/source/_components/mikrotik.markdown +++ b/source/_components/mikrotik.markdown @@ -3,6 +3,7 @@ title: "MikroTik" description: "Instructions on how to integrate MikroTik/RouterOS based devices into Home Assistant." logo: mikrotik.png ha_category: + - Hub - Presence Detection ha_release: 0.44 redirect_from: @@ -11,7 +12,11 @@ redirect_from: The `mikrotik` platform offers presence detection by looking at connected devices to a [MikroTik RouterOS](http://mikrotik.com) based router. -## Configuring `mikrotik` device tracker +There is currently support for the following device types within Home Assistant: + +- Presence Detection + +## Configuring `mikrotik` hub You have to enable accessing the RouterOS API on your router to use this platform. @@ -33,9 +38,8 @@ To use a MikroTik router in your installation, add the following to your `config ```yaml # Example configuration.yaml entry -device_tracker: - - platform: mikrotik - host: IP_ADDRESS +mikrotik: + - host: IP_ADDRESS username: ROUTEROS_USERNAME password: ROUTEROS_PASSWORD ``` @@ -70,9 +74,14 @@ ssl: default: false type: boolean method: - description: Override autodetection of device scanning method. Can be `wireless` to use local wireless registration, `capsman` for capsman wireless registration, or `ip` for DHCP leases. + description: Override autodetection of device scanning method. Can be `wireless` to use local wireless registration, `capsman` for capsman wireless registration, or `dhcp` for DHCP leases. required: false type: string +arp_ping: + description: Use ARP ping with DHCP method for device scanning. + required: false + default: false + type: boolean {% endconfiguration %}
@@ -113,17 +122,25 @@ To use this device tracker you need restricted privileges only. To enhance the s /user set password="YOUR_PASSWORD" homeassistant ``` -## Using the additional configuration to the `mikrotik` device tracker entry in your `configuration.yaml` file: +## Using the additional configuration to the `mikrotik` entry in your `configuration.yaml` file: ```yaml -device_tracker: - - platform: mikrotik - host: 192.168.88.1 +mikrotik: + - host: 192.168.88.1 + username: homeassistant + password: YOUR_PASSWORD + ssl: true + arp_ping: true + method: dhcp + track_devices: true + + - host: 192.168.88.2 username: homeassistant password: YOUR_PASSWORD ssl: true port: 8729 method: capsman + track_devices: true ``` See the [device tracker integration page](/components/device_tracker/) for instructions on how to configure the people to be tracked. From 10c3af1838f85e823b1ab160dbb93436124328c8 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Fri, 9 Aug 2019 16:47:31 +0200 Subject: [PATCH 21/77] Deprecates linksys_ap integration (ADR-0004) (#10092) --- source/_components/linksys_ap.markdown | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/source/_components/linksys_ap.markdown b/source/_components/linksys_ap.markdown index e0d1f34f93e..05285897853 100644 --- a/source/_components/linksys_ap.markdown +++ b/source/_components/linksys_ap.markdown @@ -9,6 +9,14 @@ redirect_from: - /components/device_tracker.linksys_ap/ --- +
+ +This integration is deprecated and will be removed in Home Assistant 0.100.0. + +For more information see [Architecture Decision Record: 0004](https://github.com/home-assistant/architecture/blob/master/adr/0004-webscraping.md). + +
+ The `linksys_ap` platform offers presence detection by looking at connected devices to a Linksys based access point. It was tested with a LAPAC1750 AC1750 Dual Band Access Point. From cc180eaf583dc47528de16f8412db08dd160d8b6 Mon Sep 17 00:00:00 2001 From: Tomi Lehto Date: Sat, 10 Aug 2019 09:49:51 +0300 Subject: [PATCH 22/77] Update Modbus sensor docs for HA PR #25672 (#10043) Added note about possible floating point conversion related precision loss when dealing with large values and floating point scale and offset parameters. --- source/_components/sensor.modbus.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/_components/sensor.modbus.markdown b/source/_components/sensor.modbus.markdown index 5b2ee02cc8f..13378090288 100644 --- a/source/_components/sensor.modbus.markdown +++ b/source/_components/sensor.modbus.markdown @@ -111,6 +111,12 @@ registers: It's possible to change the default 30 seconds scan interval for the sensor updates as shown in the [Platform options](/docs/configuration/platform_options/#scan-interval) documentation. +
+ +If you specify scale or offset as floating point values, double precision floating point arithmetic will be used to calculate final value. This can cause loss of precision for values that are larger than 2^53. + +
+ ### Full example Example a temperature sensor with a 10 seconds scan interval: From 4a301ca3916a03cd88905ca4e73b347e32bab4d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Per=20Osb=C3=A4ck?= Date: Sat, 10 Aug 2019 22:15:53 +0200 Subject: [PATCH 23/77] Change for Prometheus metrics naming (#9518) * Add docs for PR #24103 * :pencil2: Tweak * updated to only show required configuration in first example * :pencil2: Tweak * :pencil2: Tweak * Remove top level domain name * Fix configuration section --- source/_components/prometheus.markdown | 63 +++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/source/_components/prometheus.markdown b/source/_components/prometheus.markdown index 748bfbe51c2..95157c7c450 100644 --- a/source/_components/prometheus.markdown +++ b/source/_components/prometheus.markdown @@ -3,12 +3,14 @@ title: "Prometheus" description: "Record events in Prometheus." logo: prometheus.png ha_category: - - "History" + - History ha_release: 0.49 --- The `prometheus` integration exposes metrics in a format which [Prometheus](https://prometheus.io/) can read. +## Configuration + To use the `prometheus` integration in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -42,8 +44,67 @@ filter: description: The list of domains to be included from recordings. If set, all other entities will not be recorded. Values set by the **exclude_*** option will prevail. required: false type: list +default_metric: + type: string + description: Metric name to use when an entity doesn't have a unit. + required: false + default: uses the entity id of the entity +override_metric: + type: string + description: Metric name to use instead of unit or default metric. This will store all data points in a single metric. + required: false +component_config: + type: string + required: false + description: This attribute contains component-specific override values. See [Customizing devices and services](/getting-started/customizing-devices/) for format. + keys: + override_metric: + type: string + description: Metric name to use instead of unit or default metric. This will store all data points in a single metric. + required: false +component_config_domain: + type: string + required: false + description: This attribute contains domain-specific component override values. See [Customizing devices and services](/getting-started/customizing-devices/) for format. + keys: + override_metric: + type: string + description: Metric name to use instead of unit or default metric. This will store all data points in a single metric. + required: false +component_config_glob: + type: string + required: false + description: This attribute contains component-specific override values. See [Customizing devices and services](/getting-started/customizing-devices/) for format. + keys: + override_metric: + type: string + description: Metric name to use instead of unit or default metric. This will store all data points in a single metric. + required: false + {% endconfiguration %} +## Full Example + +Advanced configuration example: + +```yaml +# Advanced configuration.yaml entry +prometheus: + namespace: hass + component_config_glob: + sensor.*_hum: + override_metric: humidity_percent + sensor.*_temp: + override_metric: temperature_c + sensor.temperature*: + override_metric: temperature_c + sensor.*_bat: + override_metric: battery_percent + filter: + include_domains: + - sensor +``` + You can then configure Prometheus to fetch metrics from Home Assistant by adding to its `scrape_configs` configuration. ```yaml From 51c6252a7cfcad8442eca7c2fea8ba8370d66866 Mon Sep 17 00:00:00 2001 From: Malte Franken Date: Sun, 11 Aug 2019 06:19:09 +1000 Subject: [PATCH 24/77] GeoNet NZ Quakes feed integration (#10077) * added documentation for new geonetnz_quakes integration * mentioned the use of the integrations feature in the ui * added new source * removed hint about configuration.yaml * fixed typo --- source/_components/geo_location.markdown | 1 + source/_components/geonetnz_quakes.markdown | 115 ++++++++++++++++++ .../screenshots/geonetnz-quakes-feed-map.png | Bin 0 -> 175243 bytes source/images/supported_brands/geonet-nz.png | Bin 0 -> 4927 bytes 4 files changed, 116 insertions(+) create mode 100644 source/_components/geonetnz_quakes.markdown create mode 100644 source/images/screenshots/geonetnz-quakes-feed-map.png create mode 100644 source/images/supported_brands/geonet-nz.png diff --git a/source/_components/geo_location.markdown b/source/_components/geo_location.markdown index a4ef666e619..cd95864cf06 100644 --- a/source/_components/geo_location.markdown +++ b/source/_components/geo_location.markdown @@ -16,6 +16,7 @@ The [Geolocation trigger](/docs/automation/trigger/#geolocation-trigger) can be | Platform | Source | |---------------------------------------------------|-------------------------------| | GeoJSON Events | `geo_json_events` | +| GeoNet New Zealand Quakes | `geonetnz_quakes` | | IGN Sismología | `ign_sismologia` | | NSW Rural Fire Service Incidents | `nsw_rural_fire_service_feed` | | Queensland Bushfire Alert | `qld_bushfire` | diff --git a/source/_components/geonetnz_quakes.markdown b/source/_components/geonetnz_quakes.markdown new file mode 100644 index 00000000000..56753cc44d9 --- /dev/null +++ b/source/_components/geonetnz_quakes.markdown @@ -0,0 +1,115 @@ +--- +title: "GeoNet NZ Quakes" +description: "Instructions on how to integrate the GeoNet New Zealand Quakes feed into Home Assistant." +logo: geonet-nz.png +ha_category: + - Geolocation +ha_iot_class: Cloud Polling +ha_release: 0.98 +--- + +The `geonetnz_quakes` integration lets you use a GeoJSON feed provided by +New Zealand's [GeoNet](https://www.geonet.org.nz/) with information +about quakes in the New Zealand region that happened within the last 7 days. +It retrieves incidents from a feed and +shows information of those incidents filtered by distance to Home Assistant's +location. + +Entities are generated, updated and removed automatically with each update +from the feed. Each entity defines latitude and longitude and will be shown +on the default map automatically, or on a map card by defining the source +`geonetnz_quakes`. The distance is available as the state of each entity, and +converted to the unit (kilometers or miles) configured in Home Assistant. + +

+ +

+ +The data is updated every 5 minutes. + +
+ +The material used by this integration is provided under the [Creative Commons Attribution 3.0 New Zealand (CC BY 3.0 NZ) license](http://creativecommons.org/licenses/by/3.0/nz/). +It has only been modified for the purpose of presenting the material in Home Assistant. +Please refer to the [creator's disclaimer notice](https://www.geonet.org.nz/disclaimer) and [data policy](https://www.geonet.org.nz/policy) for more information. + +We acknowledge the New Zealand GeoNet project and its sponsors EQC, GNS Science and LINZ, for providing data/images used in this integration. + +
+ + +## Configuration + +To integrate the GeoNet New Zealand Quakes feed use the "Integrations" feature +in the GUI, you find it under Configurations - Integrations, or add the +following line to your `configuration.yaml`. + +```yaml +# Example configuration.yaml entry +geonetnz_quakes: +``` + +{% configuration %} +mmi: + description: Request quakes that may have caused shaking greater than or equal to the [MMI](https://www.geonet.org.nz/earthquake/mmi) value. Allowable values are -1..8 inclusive. Value -1 is used for quakes that are too small to calculate a stable MMI value for. + required: false + type: integer + default: 2 +minimum_magnitude: + description: The minimum magnitude of an earthquake to be included. + required: false + type: float + default: 0.0 +radius: + description: The radius around your location to monitor; defaults to 50 km or mi (depending on the unit system defined in your `configuration.yaml`). + required: false + type: float + default: 50.0 +latitude: + description: Latitude of the coordinates around which quakes are considered. + required: false + type: float + default: Latitude defined in your configuration. +longitude: + description: Longitude of the coordinates around which quakes are considered. + required: false + type: float + default: Longitude defined in your configuration. +{% endconfiguration %} + + +## State Attributes + +The following state attributes are available for each entity in addition to +the standard ones: + +| Attribute | Description | +|-------------|-------------| +| latitude | Latitude of the quake. | +| longitude | Longitude of the quake. | +| source | `geonetnz_quakes` to be used in conjunction with `geo_location` automation trigger. | +| external_id | The external ID used in the feed to identify the quake in the feed. | +| title | Title of this entry. | +| mmi | The calculated MMI shaking at the closest locality in the New Zealand region. +| magnitude | The summary magnitude for the quake. | +| depth | The depth of the quake in km. | +| time | The origin date and time of the quake. | +| locality | Distance and direction to the nearest locality. | +| quality | The quality of this information: best, good, caution, deleted. | + +Please note that the reported MMI may be lower than the minimum requested MMI. +This integration is passing the requested MMI value to the feed source and +displays all entries retrieved without further filtering by MMI. + + +## Full Configuration + +```yaml +# Example configuration.yaml entry +geonetnz_quakes: + radius: 100 + mmi: 4 + minimum_magnitude: 4.5 + latitude: -41.2 + longitude: 174.7 +``` diff --git a/source/images/screenshots/geonetnz-quakes-feed-map.png b/source/images/screenshots/geonetnz-quakes-feed-map.png new file mode 100644 index 0000000000000000000000000000000000000000..8f432e511a17d5e3e33b8f452a723c19c09352ee GIT binary patch literal 175243 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
8-@6Ux3;S>01bmtTFH64(K9 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 literal 0 HcmV?d00001 diff --git a/source/images/supported_brands/geonet-nz.png b/source/images/supported_brands/geonet-nz.png new file mode 100644 index 0000000000000000000000000000000000000000..69768c2902fb4894ad49d413302f3b52f4740c46 GIT binary patch literal 4927 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 z -u*|^B(KmBZ(*jME&t#*VM8Cih4hdWX)c$3E@w28Ksiz zqJnYbudj7DLdNMFyRzN~IPSwpZuwd0MfRcAaNrJ`Rw7(Ex5ncc?=8O_r8Xk#x#nS4 zwdoTzng&LZoq5-_eBz1&2Un1GjDzq@Dv7FF#Xidz1qhwAFX@pxxkqhk)a#yfVf*&zu%JU@82p?J;)~m{HR+@td3!{bT|>$!CwPtN^Z{X)(-2lB+CIc+JF6RT=EfWSxZqn3TZt<@mth}us zvJdt!VsCr37lB7~g2j7H`Oy4_6TSzZl{oZcNz6K-M%d3&G@8xRvH*kW4NQ37ji#16 z>#Jy~c=MiK?6H2D>R*Fj;-cfn9L-w06$JfcX>AC4VlZp#b|M$nxDb8wS!%b%LiBpA zKmFPinx-xym{=>#4?PO#$NVXOC(OLsBsH$VBuoVm=9RuHpR#6)cfZilSvcg6lW>gT zWBqV+9b<)z2Gj~wPZ^08IN9CA+ zW=2H^Q68W<@-Ne-X6UTvq_heQa+S936Z{*eRQIr~El!BD!{!Qx6Amh~SaAb6w*kU= z9!Dx2b(XOP)2TpV7f`M3`u1boh)DI&7w|v(`-ebnMRH>MMNA1E?Hi|tJA=KpJ}6D_ z@mO4Q2Zod!^4cUjJY-um`AsM4Ts$olfYQp7lxe4TL#qiy#VI6XlcSsY&ijsDrKTxIYFe*1 zd5eZ;n?oGfs`#J`5ZA~%lWh&-u2rQ3#{1^mPCdZ;jxNdJmEHyJ@y;%3dXepzo9`5p zq3efiPk_tgx)CKcU&(oHKo&EsPIz8f-#CwvjtQ~yG0m!ze>;j!zQ8Mgx*Mr6{*%En zjL7WyI!QBkmd~_ru8TVv?KO@xX~9!-&=c=?!(5FMJeA%s?r#zE3tGQfuO0+ymV{@N ztfI1gT>>nQ3BPo*03yQJ4LQuMIX(AI@h^CTTN2-wihQ+)q!`^~1-A4bnIjtFsO6f< z?6Xi5# Date: Mon, 12 Aug 2019 14:22:14 +0200 Subject: [PATCH 25/77] Documentation for home-assistant/home-assistant-polymer#3451 (#10051) * Documentation for home-assistant/home-assistant-polymer#3451 * Add entity_ids and example for card_size. * :pencil2: Tweak --- source/_lovelace/markdown.markdown | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/source/_lovelace/markdown.markdown b/source/_lovelace/markdown.markdown index 63a8d298ca1..e9ef40c5b76 100644 --- a/source/_lovelace/markdown.markdown +++ b/source/_lovelace/markdown.markdown @@ -18,13 +18,23 @@ type: type: string content: required: true - description: "Content to render as [markdown](http://commonmark.org/help/)." + description: "Content to render as [markdown](http://commonmark.org/help/). May contain [templates](/configuration/templating/)." type: string title: required: false description: The card title. type: string default: none +card_size: + required: false + type: integer + default: none + description: The algorithm for placing cards aesthetically in lovelace may have problems with the markdown card if it contains templates. You can use this value to help it estimate the height of the card in units of 50 pixels (approximately 3 lines of text in default size). (e.g., `4`) +entity_id: + required: false + type: [string, list] + default: none + description: "A list of entity IDs so a template in `content:` only reacts to the state changes of these entities. This can be used if the automatic analysis fails to find all relevant entities." {% endconfiguration %} ## Example From 43da41b820f7a84bed26b4b1cd1276b4634b6358 Mon Sep 17 00:00:00 2001 From: Jeff Irion Date: Mon, 12 Aug 2019 09:08:20 -0700 Subject: [PATCH 26/77] Update documentation for Kodi services (#10081) * Working on Kodi services documentation * Update Kodi services documentation * Remove description of deprecated 'kodi_set_shuffle' service * Add accidentally deleted '|' * 'kodi_call_method' -> 'kodi.call_method' --- source/_components/kodi.markdown | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/source/_components/kodi.markdown b/source/_components/kodi.markdown index 57142d81195..8190ab09397 100644 --- a/source/_components/kodi.markdown +++ b/source/_components/kodi.markdown @@ -86,7 +86,7 @@ timeout: ### Services -#### Service `kodi_add_to_playlist` +#### Service `kodi.add_to_playlist` Add music to the default playlist (i.e. playlistid=0). @@ -98,14 +98,7 @@ Add music to the default playlist (i.e. playlistid=0). | `media_name` | no| Optional media name for filtering media. Can be 'ALL' when `media_type` is 'ALBUM' and `artist_name` is specified, to add all songs from one artist. | | `artist_name` | no | Optional artist name for filtering media. | -#### Service `media_player/kodi_set_shuffle` - -| Service data attribute | Optional | Description | -|------------------------|----------|-------------| -| `entity_id` | yes | Target a specific media player. It must be of type kodi. | -| `shuffle_on` | no | True/false for shuffle on/off. | - -#### Service `kodi_call_method` +#### Service `kodi.call_method` Call a [Kodi JSONRPC API](http://kodi.wiki/?title=JSON-RPC_API) method with optional parameters. Results of the Kodi API call will be redirected in a Home Assistant event: `kodi_call_method_result`. @@ -117,7 +110,7 @@ Call a [Kodi JSONRPC API](http://kodi.wiki/?title=JSON-RPC_API) method with opti ### Event triggering -When calling the `kodi_call_method` service, if the Kodi JSONRPC API returns data, when received by Home Assistant it will fire a `kodi_call_method_result` event on the event bus with the following `event_data`: +When calling the `kodi.call_method` service, if the Kodi JSONRPC API returns data, when received by Home Assistant it will fire a `kodi_call_method_result` event on the event bus with the following `event_data`: ```yaml entity_id: "" @@ -156,7 +149,7 @@ media_player: - platform: kodi host: 192.168.0.123 turn_off_action: - service: media_player.kodi_call_method + service: kodi.call_method data: entity_id: media_player.kodi method: Application.Quit @@ -169,7 +162,7 @@ media_player: - platform: kodi host: 192.168.0.123 turn_off_action: - service: media_player.kodi_call_method + service: kodi.call_method data: entity_id: media_player.kodi method: System.Hibernate @@ -182,7 +175,7 @@ media_player: - platform: kodi host: 192.168.0.123 turn_off_action: - service: media_player.kodi_call_method + service: kodi.call_method data: entity_id: media_player.kodi method: System.Suspend @@ -195,7 +188,7 @@ media_player: - platform: kodi host: 192.168.0.123 turn_off_action: - service: media_player.kodi_call_method + service: kodi.call_method data: entity_id: media_player.kodi method: System.Reboot @@ -208,7 +201,7 @@ media_player: - platform: kodi host: 192.168.0.123 turn_off_action: - service: media_player.kodi_call_method + service: kodi.call_method data: entity_id: media_player.kodi method: System.Shutdown @@ -223,7 +216,7 @@ media_player: - platform: kodi host: 192.168.0.123 turn_on_action: - service: media_player.kodi_call_method + service: kodi.call_method data: entity_id: media_player.kodi method: Addons.ExecuteAddon @@ -234,7 +227,7 @@ media_player: - service: media_player.media_stop data: entity_id: media_player.kodi - - service: media_player.kodi_call_method + - service: kodi.call_method data: entity_id: media_player.kodi method: Addons.ExecuteAddon @@ -293,7 +286,7 @@ script: alias: Update Kodi Library sequence: - alias: Call Kodi update - service: media_player.kodi_call_method + service: kodi.call_method data: entity_id: media_player.kodi method: VideoLibrary.Scan @@ -384,4 +377,4 @@ data: type: integer {% endconfiguration %} -To use notifications, please see the [getting started with automation page](/getting-started/automation/). \ No newline at end of file +To use notifications, please see the [getting started with automation page](/getting-started/automation/). From e21de0f1047e98e468759edc0ee86054ad3e6a67 Mon Sep 17 00:00:00 2001 From: Tomi Lehto Date: Tue, 13 Aug 2019 02:08:15 +0300 Subject: [PATCH 27/77] Add documentation for arcus trigonometry functions (#9982) --- source/_docs/configuration/templating.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index 88646073fb2..08789841c4a 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -268,6 +268,10 @@ Some of these functions can also be used in a [filter](http://jinja.pocoo.org/do - `sin(value)` will return the sine of the input. Can be used as a filter. - `cos(value)` will return the cosine of the input. Can be used as a filter. - `tan(value)` will return the tangent of the input. Can be used as a filter. +- `asin(value)` will return the arcus sine of the input. Can be used as a filter. +- `acos(value)` will return the arcus cosine of the input. Can be used as a filter. +- `atan(value)` will return the arcus tangent of the input. Can be used as a filter. +- `atan2(y, x)` will return the four quadrant arcus tangent of y / x. Can be used as a filter. - `sqrt(value)` will return the square root of the input. Can be used as a filter. - `e` mathematical constant, approximately 2.71828. - `pi` mathematical constant, approximately 3.14159. From 21d66af0eff61e42e3acc4a8d1790213ce6cd23b Mon Sep 17 00:00:00 2001 From: escoand Date: Tue, 13 Aug 2019 01:35:36 +0200 Subject: [PATCH 28/77] add description for Traccar Client (#10090) --- source/_components/traccar.markdown | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/source/_components/traccar.markdown b/source/_components/traccar.markdown index 1f0cfe181af..3f9706bb1e1 100644 --- a/source/_components/traccar.markdown +++ b/source/_components/traccar.markdown @@ -10,11 +10,15 @@ redirect_from: - /components/device_tracker.traccar/ --- -`Traccar` uses GPS for tracking and has support for over 1500 different types of devices. +`Traccar` uses GPS for tracking and has support for over 1500 different types of devices. One option is to track the [Traccar Client](https://www.traccar.org/client/) app on a smartphone via `webhook`. The other option is to connect to an existing [Traccar Server](https://www.traccar.org/server/) installation which is also available as Hass.io addon. -## Configuration +## Traccar Client -To integrate Traccar GPS tracker in Home Assistant, add the following section to your `configuration.yaml` file: +To configure Traccar Client, you must set it up via the integrations panel in the configuration screen. This will give you the webhook URL to use during mobile device configuration. This URL has to be set in the Traccar app. + +## Traccar Server + +To integrate Traccar Server in Home Assistant, add the following section to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry From 00431e9a4cf7d891ae657fe2b215edafb9fc14fa Mon Sep 17 00:00:00 2001 From: Dustin Essington Date: Mon, 12 Aug 2019 16:37:06 -0700 Subject: [PATCH 29/77] Update HaveIBeenPwned to include API Key (#9977) * Update HaveIBeenPwned to include API Key * Update haveibeenpwned.markdown * :ambulance: Small Markdown fix * :pencil2: Tweak --- source/_components/haveibeenpwned.markdown | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/source/_components/haveibeenpwned.markdown b/source/_components/haveibeenpwned.markdown index 15de845e3d1..067c142799b 100644 --- a/source/_components/haveibeenpwned.markdown +++ b/source/_components/haveibeenpwned.markdown @@ -12,6 +12,12 @@ redirect_from: The `haveibeenpwned` sensor platform creates sensors that check for breached email accounts on [haveibeenpwned](https://haveibeenpwned.com). +
+ + The HaveIBeenPwned API now requires you to pay $3.50 a month in order to query the API. More info can be found [here](https://www.troyhunt.com/authentication-and-the-have-i-been-pwned-api/) + +
+ ## Configuration To enable this sensor, add the following lines to your `configuration.yaml`, it will list every specified email address as a sensor showing @@ -24,6 +30,7 @@ sensor: email: - your_email1@domain.com - your_email2@domain.com + api_key: API_KEY ``` {% configuration %} @@ -31,6 +38,10 @@ email: description: List of email addresses. required: true type: list +api_key: + description: HaveIBeenPwned API Key + required: true + type: string {% endconfiguration %} ## Breach meta data From d4c06b2fc7df1704efb91897879873c3d09c65fe Mon Sep 17 00:00:00 2001 From: Santobert Date: Tue, 13 Aug 2019 01:45:28 +0200 Subject: [PATCH 30/77] Edit updater component to match PR #25418 (#9957) * Edit updater component to match PR #25418 * Make this a binary sensor * :pencil2: Tweak * :pencil2: Tweak --- source/_components/updater.markdown | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/source/_components/updater.markdown b/source/_components/updater.markdown index 3b5f99d0709..ab4f81cc2d5 100644 --- a/source/_components/updater.markdown +++ b/source/_components/updater.markdown @@ -3,14 +3,14 @@ title: "Updater" description: "Detecting when Home Assistant updates are available." logo: home-assistant.png ha_category: - - Other + - binary_sensor ha_qa_scale: internal ha_release: 0.8 --- -The `updater` integration will check daily for new releases. It will show a badge in the frontend if a new version is found. As [Hass.io](/hassio/) has its own schedule for release it doesn't make sense to use this integration on Hass.io. +The `updater` binary sensor will check daily for new releases. The state will be "on" when an update is available. Otherwise, the state will be "off". The newer version, as well as the link to the release notes, are attributes of the updater. As [Hass.io](/hassio/) has its own schedule for release it doesn't make sense to use this binary sensor on Hass.io. -The updater integration will also collect basic information about the running Home Assistant instance and its environment. The information includes the current Home Assistant version, the time zone, Python version and operating system information. No identifiable information (i.e., IP address, GPS coordinates, etc.) will ever be collected. If you are concerned about your privacy, you are welcome to scrutinize the Python [source code](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/updater.py#L91). +The updater will also collect basic information about the running Home Assistant instance and its environment. The information includes the current Home Assistant version, the time zone, Python version and operating system information. No identifiable information (i.e., IP address, GPS coordinates, etc.) will ever be collected. If you are concerned about your privacy, you are welcome to scrutinize the Python [source code](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/updater.py#L91). ## Configuration @@ -59,12 +59,14 @@ For an added bonus, an automation integration can be created to send a message w ```yaml # Example configuration.yaml entry automation: - alias: 'Update Available Notifications' + alias: Update Available Notification trigger: - platform: state - entity_id: updater.updater + - platform: state + entity_id: binary_sensor.updater + from: 'off' + to: 'on' action: - service: notify.notify - data: - message: 'Update for Home Assistant is available.' + - service: notify.notify + data: + message: 'Update for Home Assistant is available.' ``` From 7635135fd928190575cbccedc7cb8a1760974d10 Mon Sep 17 00:00:00 2001 From: Anders Melchiorsen Date: Fri, 16 Aug 2019 00:59:29 +0200 Subject: [PATCH 31/77] Add netgear_lte.disconnect_lte (#10144) --- source/_components/netgear_lte.markdown | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/source/_components/netgear_lte.markdown b/source/_components/netgear_lte.markdown index 5905d2950b8..e264c4dfbb2 100644 --- a/source/_components/netgear_lte.markdown +++ b/source/_components/netgear_lte.markdown @@ -148,6 +148,14 @@ This service asks the modem to establish its LTE connection, useful if the modem | ---------------------- | -------- | ----------- | | `host` | yes | The modem that should connect (optional when just one modem is configured). +### Service `netgear_lte.disconnect_lte` + +This service asks the modem to close its LTE connection. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `host` | yes | The modem that should disconnect (optional when just one modem is configured). + ### Service `netgear_lte.delete_sms` The integration makes a service available to delete messages from the modem inbox. This can be used to clean up after incoming SMS events. From d4100e1703329ab8b9a42c4b1493586c98da4035 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 16 Aug 2019 10:10:31 -0700 Subject: [PATCH 32/77] Update PR template (#10147) --- .github/PULL_REQUEST_TEMPLATE.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 1b5db6f56d7..439b1e26c04 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,11 +1,11 @@ **Description:** -**Pull request in [home-assistant](https://github.com/home-assistant/home-assistant) (if applicable):** home-assistant/home-assistant# +**Pull request in home-assistant (if applicable):** home-assistant/home-assistant# ## Checklist: -- [ ] Branch: `next` is for changes and new documentation that will go public with the next [home-assistant](https://github.com/home-assistant/home-assistant) release. Fixes, changes and adjustments for the current release should be created against `current`. +- [ ] Branch: `next` is for changes and new documentation that will go public with the next Home Assistant release. Fixes, changes and adjustments for the current release should be created against `current`. - [ ] The documentation follows the [standards][standards]. [standards]: https://developers.home-assistant.io/docs/documentation_standards.html From 40376bf80eb48312d33a035c2e509a2c8a35e232 Mon Sep 17 00:00:00 2001 From: Jc2k Date: Fri, 16 Aug 2019 18:31:30 +0100 Subject: [PATCH 33/77] homekit_controller updates + troubleshooting (#10153) * homekit_controller updates * Minor changes --- .../_components/homekit_controller.markdown | 61 +++++++++++++++++-- 1 file changed, 57 insertions(+), 4 deletions(-) diff --git a/source/_components/homekit_controller.markdown b/source/_components/homekit_controller.markdown index a3454c71fb4..8d182278ccf 100644 --- a/source/_components/homekit_controller.markdown +++ b/source/_components/homekit_controller.markdown @@ -1,6 +1,6 @@ --- title: "HomeKit controller support" -description: "Instructions how to integrate your HomeKit devices within Home Assistant." +description: "Instructions for how to integrate your HomeKit devices within Home Assistant." logo: apple-homekit.png ha_category: - Hub @@ -24,7 +24,13 @@ redirect_from: - /components/sensor.homekit_controller/ --- -[HomeKit](https://developer.apple.com/homekit/) controller integration for Home Assistant allows you to connect HomeKit accessories to Home Assistant. This integration should not be confused with the [HomeKit](/components/homekit/) integration, which allows you to control Home Assistant devices via HomeKit. +The [HomeKit](https://developer.apple.com/homekit/) controller integration allows you to use accessories with the "Works with HomeKit" logo with Home Assistant. This integration should not be confused with the [HomeKit](/components/homekit/) integration, which allows you to control Home Assistant devices via HomeKit. + +The integration will automatically detect HomeKit compatible devices that are ready to pair if the [`zeroconf`](/components/zeroconf/) integration is enabled. This is enabled by default on new installations via the [`default_config`](/components/default_config/) component. + +To see which devices have been discovered see the "Integrations" page in your Home Assistant dashboard. When you click on "Configure" you can enter your HomeKit PIN and the device should be added to your Home Assistant instance. If your device is currently paired with an Apple device via HomeKit, you will need to reset it in order to pair it with Home Assistant. Once Home Assistant is configured to work with the device, you can export it back to Siri and Apple Home with the [`HomeKit`](/components/homekit/) integration. + +## Supported devices There is currently support for the following device types within Home Assistant: @@ -37,6 +43,53 @@ There is currently support for the following device types within Home Assistant: - Binary Sensor (HomeKit motion sensors and contact sensors) - Sensor (HomeKit humidity, temperature, co2 and light level sensors) -The integration will be automatically configured if the [`discovery`](/components/discovery/) integration is enabled. +HomeKit IP accessories for these device types may work with some caveats: -For each detected HomeKit accessory, a configuration prompt will appear in the web front end. Use this to provide the HomeKit PIN. Note that HomeKit accessories can only be paired to one device at once. If your device is currently paired with Siri, you will need to reset it in order to pair it with Home Assistant. Once Home Assistant is configured to work with the device, you can export it back to Siri with the [`HomeKit`](/components/homekit/) integration. +- If the device is WiFi based and has no physical controls or screen then you may need an Apple HomeKit device like an iPhone or iPad to get the accessory onto your WiFi network. For example, for a Koogeek LS1 you must add the accessory to HomeKit on your iOS device, then remove it from the iOS device. This leaves the LS1 in an unpaired state but still on your WiFi. Then Home Assistant can find it and pair with it. +- You need to know the HomeKit PIN. There is no way to recover this if you do not have it. You will need to contact the manufacturer to see what options you have. + +Home Assistant does not currently support HomeKit BLE. + +## Troubleshooting + +### I don't have a HomeKit PIN + +When you buy a certified HomeKit enabled device the PIN maybe with the instructions or on a sticker on the side or under the accessory. + +Devices with screens like thermostats may not have PIN codes in the packaging at all. Every time you click on "Configure" in the Home Assistant front end your accessory will generate a new pairing code and show it on the display. + +If your device doesn't have a display and got HomeKit support after it was released you may not have a pairing code. Dealing with this is manufacturer specific. Some manufacturers allow you to see the pairing code in their iOS app. Others force you to use their app to configure HomeKit and don't let you have the pairing pin - right now you won't be able to use HomeKit controller with those devices. + +If you have lost your PIN code then you may not be able to repair your accessory. You should contact the manufacturer to see if there is anything you can do. + +### My accessory isn't updating straight away + +This is normal - HomeKit controller is currently a local polling based integration. It polls your accessory for its latest state once a minute. + +### Home Assistant cannot discover my device + +For IP accessories, Home Assistant can only find devices that are already on the same network as your device. If an accessory is WiFi based and has no user interface for joining it to your Wifi network you will need an Apple HomeKit controller device (an iPhone or iPad). You should pair it with the controller and then remove the pairing in the UI (but do not reset the accessory itself). This will leave the accessory on your WiFi network but in an unpaired state, and then Home Assistant can find it. + +Home Assistant can only find accessories that aren't already paired. Even if you reset your Home Assistant configuration the accessory will still think it is paired and you won't be able to use it with Home Assistant. You should reset the accessory according to the manufacturer instructions. Some devices have a "Reset HomeKit" option, and some may require a full reset. + +### HomeKit controller is finding devices on my network even though I don't have any Apple device + +This is completely normal. Unlike many other commercial IoT offerings the HomeKit protocol is a local and offline protocol that does not rely on the Apple ecosystem to function. You do not need an Apple online account to use a "Works with HomeKit" device. Some WiFi devices may need an iOS briefly to get them onto your WiFi but other than that you do not need any Apple hardware on your network either. + +Many IoT devices are getting a post-launch HomeKit upgrade. This might mean your device starts showing in Home Assistant as a `homekit_controller` device even though when you bought it without HomeKit support. If maybe this is a better choice for you than a native integration. For example, a lot of climate devices have an online-only API and a HomeKit API. The HomeKit one might not expose all of the settings and controls you are used to but won't break if your internet connection goes down or the cloud service goes away. + +### I have a warning in my logs about HomeKit controller skipping updates + +You may say a log entry that looks like this: + +```log +HomeKit controller update skipped as previous poll still in flight +``` + +In these cases it's unlikely that HomeKit controller itself is directly responsible. This is a safety feature to avoid overloading your HomeAssistant instance. It means that Home Assistant tried to poll your accessory but the previous poll was still happening. This means it is taking over 1 minute to poll your accessory. This could be caused by a number of things: + +- You have too many blocking synchronous integrations for your Home Assistant instance. All synchronous integrations share a thread pool and if there are lots of tasks to run on it they will queued, causing delays. In the worst cases this queue can build up faster than it can be emptied. Faster hardware may help, but you may need to disable some integrations. +- Your network connection to an accessory is poor and HomeKit controller is unable to reach the accessory reliably. This will likely require a change to your network setup to improve WiFi coverage or replace damaged cabling etc. +- There is a problem with the actual accessory and this may be causing intermittent network issues. + +In these cases HomeKit controller will skip polling to avoid a build up of back pressure in your instance. From c8f5a564e89b02585db6c7ac105e200c76baaacc Mon Sep 17 00:00:00 2001 From: Keith Pine Date: Fri, 16 Aug 2019 10:32:14 -0700 Subject: [PATCH 34/77] Remove update_config from zwave services (#10139) --- source/_docs/z-wave/services.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/source/_docs/z-wave/services.markdown b/source/_docs/z-wave/services.markdown index 80290954c88..a6014382cb9 100644 --- a/source/_docs/z-wave/services.markdown +++ b/source/_docs/z-wave/services.markdown @@ -31,7 +31,6 @@ The `zwave` integration exposes multiple services to help maintain the network. | stop_network | Stops the Z-Wave network. | | test_network | Tells the controller to send no-op commands to each node and measure the time for a response. In theory, this can also bring back nodes which have been marked "presumed dead." | | test_node | Tells the controller to send no-op command(s) to a specific node. Requires `node_id` field. You can specify amount of test_messages to send by specifying it with `messages` field. In theory, this could bring back nodes marked as "presumed dead" -| update_config | Attempt to update OZW configuration files from git to support newer devices. After you run this, wait a few minutes then stop Home Assistant. You can now back up your `zwcfg_*.xml` file, then delete the relevant entries from your `zwcfg_*.xml` (between and including `` and ``), and finally start Home Assistant. | The `soft_reset` and `heal_network` commands can be used to help keep a Z-Wave network running reliably. This is a configuration option for the `zwave` component. The option defaults to `false` but can be enabled by setting `autoheal` to true. This, however, is bad practice since it introduces overhead that can be avoided since you only need to do a `heal_network` whenever one of the following actions are done: From 9490bf4665026fd2fc92ff54c384c820146d879f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ab=C3=ADlio=20Costa?= Date: Fri, 16 Aug 2019 18:32:45 +0100 Subject: [PATCH 35/77] edp_redy: remove component (#10145) The service has moved to a new portal and the previous API does not work anymore. --- source/_components/edp_redy.markdown | 45 ---------------------------- 1 file changed, 45 deletions(-) delete mode 100644 source/_components/edp_redy.markdown diff --git a/source/_components/edp_redy.markdown b/source/_components/edp_redy.markdown deleted file mode 100644 index a1a8347af11..00000000000 --- a/source/_components/edp_redy.markdown +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: "EDP re:dy" -description: "Instructions on how to integrate the EDP re:dy platform into Home Assistant." -logo: edp_redy.png -ha_category: - - Hub - - Sensor - - Switch -ha_release: 0.79 -ha_iot_class: Cloud Polling -redirect_from: - - /components/sensor.edp_redy/ - - /components/switch.edp_redy/ ---- - -[EDP re:dy](https://www.edp.pt/particulares/servicos/redy/) is a Home Automation platform from Portuguese energy provider EDP, that allows control of appliances and other devices, as well as monitoring power consumption. This integration allows integrating EDP re:dy into Home Assistant. - -## Configuration - -You will need your re:dy login information (username and password) to use this component. - -To set it up, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -edp_redy: - username: YOUR_USERNAME - password: YOUR_PASSWORD -``` - -{% configuration %} -username: - description: The username for accessing your re:dy account. - required: true - type: string -password: - description: The password for accessing your re:dy account. - required: true - type: string -{% endconfiguration %} - -After configuring the component, it will automatically add to Home Assistant: - -* A switch per toggleable device (switch, plug, etc). -* A sensor per each device that reports power consumption (SmartMeter, plug, meter) From 683b24663266c2626950f9c57c535c1ee2ebbd27 Mon Sep 17 00:00:00 2001 From: Twan Coenraad Date: Fri, 16 Aug 2019 19:34:45 +0200 Subject: [PATCH 36/77] Add OTGW domestic hot water enable option as service (#10105) --- source/_components/opentherm_gw.markdown | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/source/_components/opentherm_gw.markdown b/source/_components/opentherm_gw.markdown index f410e61d6d9..39fb93c00ea 100644 --- a/source/_components/opentherm_gw.markdown +++ b/source/_components/opentherm_gw.markdown @@ -108,6 +108,19 @@ Please read [this information](http://otgw.tclcode.com/standalone.html) from the
+### Service `opentherm_gw.set_hot_water_ovrd` + +Set the domestic hot water enable option on the OpenTherm Gateway. +Control the domestic hot water enable option. If the boiler has +been configured to let the room unit control when to keep a +small amount of water preheated, this command can influence +that. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `gateway_id` | no | The `gateway_id` as specified in `configuration.yaml`. +| `dhw_override` | no | The domestic hot water override state. Value should be 0 or 1 to enable the override in off or on state, or "A" to disable the override. + ### Service `opentherm_gw.set_gpio_mode` Configure the GPIO behavior on the OpenTherm Gateway. From 9b6abcc93343198a587eb975f458e25308615baf Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 16 Aug 2019 10:39:23 -0700 Subject: [PATCH 37/77] Document ecobee attributes (#10146) --- source/_components/ecobee.markdown | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/source/_components/ecobee.markdown b/source/_components/ecobee.markdown index 004ac5f2633..2f02b20e83d 100644 --- a/source/_components/ecobee.markdown +++ b/source/_components/ecobee.markdown @@ -140,6 +140,17 @@ The _HVAC mode_ of the device is the currently active operational modes that the Ecobee thermostat provides: heat, auxHeatOnly, cool, auto, and off. +## Attributes + +The Ecobee climate entity has some extra attributes to represent the state of the thermostat. + +| Name | Description | +| ---- | ----------- | +| `fan` | If the fan is currently on or off: `on` / `off`. +| `climate_mode` | This is the climate mode that is active, or would be active if no override is active. +| `equipment_running` | This is a comma seperated list of equipment that is currently running. +| `fan_min_on_time` | The minimum amount of minutes that the fan will be on when it's turned on. + ## Services Besides the standard services provided by the Home Assistant [Climate](https://www.home-assistant.io/components/climate/) integration, the following extra service is provided by the Ecobee Thermostat: `resume_program`. From 811cb61520c00374db1fc7a89f5979e9469868ee Mon Sep 17 00:00:00 2001 From: Andrew Chatham Date: Fri, 16 Aug 2019 10:39:44 -0700 Subject: [PATCH 38/77] Document Lutron Powr Savr occupancy sensor support (#10110) * Document Lutron Powr Savr occupancy sensor support * Minor change --- source/_components/lutron.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/_components/lutron.markdown b/source/_components/lutron.markdown index f905a6c2b8e..c88bd94505d 100644 --- a/source/_components/lutron.markdown +++ b/source/_components/lutron.markdown @@ -75,3 +75,6 @@ The Lutron scene platform allows you to control scenes programmed into your SeeT After setup, scenes will appear in Home Assistant using the area, keypad and button name. +## Occupancy Sensors + +Any configured Powr Savr occuancy sensors will be added as occupancy binary sensors. Lutron reports occupancy for an area, rather than reporting individual sensors. Sensitivity and timeouts are controlled on the sensors themselves, not in software. From 0f3b7c1a31756e2801782ae4c4248b1267ae3b1e Mon Sep 17 00:00:00 2001 From: zhumuht <40521367+zhumuht@users.noreply.github.com> Date: Sat, 17 Aug 2019 01:40:01 +0800 Subject: [PATCH 39/77] add retry option description for broadlink (#10150) * add retry option description for broadlink * Add default --- source/_components/broadlink.markdown | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source/_components/broadlink.markdown b/source/_components/broadlink.markdown index ff8b32e040e..c0bbc2c2b39 100644 --- a/source/_components/broadlink.markdown +++ b/source/_components/broadlink.markdown @@ -149,6 +149,11 @@ timeout: description: Timeout in seconds for the connection to the device. required: false type: integer +retry: + description: Retry times for fetch data if failed. + required: false + type: integer + default: 2 friendly_name: description: The name used to display the switch in the frontend. required: false @@ -216,6 +221,7 @@ switch: host: 192.168.1.2 mac: 'B4:43:0D:CC:0F:58' timeout: 15 + retry: 5 switches: # Will work on most Phillips TVs: tv_phillips: @@ -263,6 +269,7 @@ switch: host: IP_ADDRESS mac: 'MAC_ADDRESS' type: sp2 + retry: 5 friendly_name: 'Humidifier' ``` From bcee33a88a385c317bdf01091b994438fb918a2d Mon Sep 17 00:00:00 2001 From: Douglas Paz Date: Sat, 17 Aug 2019 05:47:01 -0300 Subject: [PATCH 40/77] Add python3-dev in Raspberry Pi installation commands (#10046) --- source/_docs/installation/raspberry-pi.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_docs/installation/raspberry-pi.markdown b/source/_docs/installation/raspberry-pi.markdown index 631dc2fb877..1d662e30ffc 100644 --- a/source/_docs/installation/raspberry-pi.markdown +++ b/source/_docs/installation/raspberry-pi.markdown @@ -41,7 +41,7 @@ $ sudo apt-get upgrade -y Install the dependencies. ```bash -$ sudo apt-get install python3 python3-venv python3-pip libffi-dev libssl-dev autoconf +$ sudo apt-get install python3 python3-dev python3-venv python3-pip libffi-dev libssl-dev ``` Add an account for Home Assistant called `homeassistant`. From b5331d7c792d58e4425351b31934c8508b2c6ed2 Mon Sep 17 00:00:00 2001 From: majuss Date: Sat, 17 Aug 2019 10:50:27 +0200 Subject: [PATCH 41/77] Fixed elv / pca 301 (#9995) * fixed elv/pca * fixed indent --- source/_components/switch.pca.markdown | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/source/_components/switch.pca.markdown b/source/_components/switch.pca.markdown index 53fabf8fa38..33de8832c39 100644 --- a/source/_components/switch.pca.markdown +++ b/source/_components/switch.pca.markdown @@ -15,9 +15,8 @@ To use your PCA 301 switch or socket in your installation, add the following to ```yaml # Example configuration.yaml entry -switch: - - platform: pca - device: SERIAL_PORT +elv: + device: SERIAL_PORT ``` This platform will add all PCA 301 switches which are in range. You can read the total used energy in KWh and the current power in Watt. From 62e60fb116574a315fc8b3cde71fd9c0b6e5296b Mon Sep 17 00:00:00 2001 From: Courtenay Date: Sat, 17 Aug 2019 01:57:17 -0700 Subject: [PATCH 42/77] Slight changes to wording on customization help page (#10057) * Update customizing-devices.markdown * :pencil2: Tweak * Minor changes --- .../_docs/configuration/customizing-devices.markdown | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/source/_docs/configuration/customizing-devices.markdown b/source/_docs/configuration/customizing-devices.markdown index 420cd090a76..d2724cd03bc 100644 --- a/source/_docs/configuration/customizing-devices.markdown +++ b/source/_docs/configuration/customizing-devices.markdown @@ -8,19 +8,25 @@ redirect_from: /getting-started/customizing-devices/ You can use the UI to change the `entity_id` and friendly name of supported entities. To do this: -1. Select the entity, either from or from the frontend, or by clicking next to the entity in the dev-states menu +1. Select the entity, either from the frontend or by clicking next to the entity in the dev-states menu 2. Click on the cog in the right corner of the entity's dialog 3. Enter the new name or the new entity ID (remember not to change the domain of the entity - the part before the `.`) 4. Select *Save* +If your entity is not supported, or you cannot customize what you need via this method, please see below for more options: + ## Customizing entities By default, all of your devices will be visible and have a default icon determined by their domain. You can customize the look and feel of your front page by altering some of these parameters. This can be done by overriding attributes of specific entities. ### Customization using the UI -Under the *Configuration* menu you'll find the *Customization* menu. If this menu item is not visible, enable advanced mode on your [profile page](/docs/authentication/#your-account-profile) first. When you select an entity to customize, you'll see all the existing attributes listed and you can customize those, or select an additional supported attribute ([see below](/docs/configuration/customizing-devices/#possible-values)). +Under the *Configuration* menu you'll find the *Customization* menu. If this menu item is not visible, enable advanced mode on your [profile page](/docs/authentication/#your-account-profile) first. When you select an entity to customize, you'll see all the existing attributes listed and you can customize those or select an additional supported attribute ([see below](/docs/configuration/customizing-devices/#possible-values)). You may also need to add the following to your `configuration.yaml` file, depending when you started using Home Assistant: +```yaml +homeassistant: + customize: !include customize.yaml +``` #### Possible values {% configuration customize %} From 3faca387516413e54dc1accec5f97b7bcccd159a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ab=C3=ADlio=20Costa?= Date: Mon, 19 Aug 2019 01:01:09 +0100 Subject: [PATCH 43/77] Delete edp_redy.png (#10182) This follows https://github.com/home-assistant/home-assistant.io/pull/10145 --- source/images/supported_brands/edp_redy.png | Bin 8327 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 source/images/supported_brands/edp_redy.png diff --git a/source/images/supported_brands/edp_redy.png b/source/images/supported_brands/edp_redy.png deleted file mode 100644 index 0371f81f6a795844a9c118e3232e67e1b6a37dad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8327 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

UphWxqA(iR(c5$L3Nl1 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 Pi&{_H_)P98O3?oRYP9aR From 43c1eab9a91233d751fa0040a7c3e7ba2414a858 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Mon, 19 Aug 2019 13:17:36 +0200 Subject: [PATCH 44/77] Remove the documentation for the ruter integration (#10169) * Remove the documentation for the ruter integration * Remove image --- source/_components/ruter.markdown | 58 ----------------------- source/images/supported_brands/ruter.png | Bin 6958 -> 0 bytes 2 files changed, 58 deletions(-) delete mode 100644 source/_components/ruter.markdown delete mode 100644 source/images/supported_brands/ruter.png diff --git a/source/_components/ruter.markdown b/source/_components/ruter.markdown deleted file mode 100644 index aba13cb5772..00000000000 --- a/source/_components/ruter.markdown +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: "Ruter Public Transport" -description: "Instructions on how to integrate departure times from Ruter within Home Assistant." -logo: ruter.png -ha_category: - - Transport -ha_iot_class: Cloud Polling -ha_release: 0.83 -redirect_from: - - /components/sensor.ruter/ ---- - -

- -The API used for this sensor is shutting down soon, you should consider starting to use the [`entur_public_transport`](/components/sensor.entur_public_transport/) sensor before that happen. -To read the deprecation warning visit [ruter.no/labs](https://ruter.no/labs/), - -
- -The `ruter` sensor will provide you departure information for the larger Oslo area in Norway from the [Ruter][ruter] public transportation service. - -This platform is using the [Ruter reisapi API][ruter-api] to gather the information. - -To find the `stop_id` you need to visit the [Ruter][ruter] site and search for your stop. -In the URL after you have searched, there will be an ID right after the `Stoppested/` in a format like this `(2190400)`, the numbers there is what you need to put in the `stop_id:` configuration option. - -Add the data to your `configuration.yaml` file as shown in the example: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: ruter - stop_id: STOPID -``` - -{% configuration %} -stop_id: - description: The stop id for the stop you want to monitor. - required: true - type: string -destination: - description: A destination name to show only departures that has this as the final stop. - required: false - type: string -offset: - description: An offset for the next departure, 0 will give the first one. - required: false - type: integer - default: 0 -name: - description: Name of the sensor. - required: false - type: string - default: Ruter -{% endconfiguration %} - -[ruter]: https://ruter.no/reiseplanlegger/ -[ruter-api]: http://reisapi.ruter.no/Help diff --git a/source/images/supported_brands/ruter.png b/source/images/supported_brands/ruter.png deleted file mode 100644 index 180231202503fffa369e8659ba6cacd7b445e224..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6958 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 From f6f90f21bda5370b4b11aa36eaa748942cc1ad99 Mon Sep 17 00:00:00 2001 From: Philipp Danner Date: Mon, 19 Aug 2019 15:25:33 +0200 Subject: [PATCH 45/77] Added documentation for the keba-charging-station component (#9616) * Added documentation for the keba-charging-station component * Update source/_components/keba.markdown push version number to 0.95 Co-Authored-By: Klaas Schoute * added refresh_interval documentation and service call examples * bumped ha_release to 0.96, hopefully ;) * :pencil2: Tweak - Remove linkable title (no longer needed) - Put service name in the title/header * updated documentation for new services * small addition * Update source/_components/keba.markdown Co-Authored-By: Martin Hjelmare * Update source/_components/keba.markdown Co-Authored-By: Martin Hjelmare * Update source/_components/keba.markdown Co-Authored-By: Martin Hjelmare * Update source/_components/keba.markdown Co-Authored-By: Martin Hjelmare * :pencil2: Tweak * :pencil2: Fix link * :pencil2: Last tweak --- source/_components/keba.markdown | 123 ++++++++++++++++++++++++ source/images/supported_brands/keba.png | Bin 0 -> 4726 bytes 2 files changed, 123 insertions(+) create mode 100644 source/_components/keba.markdown create mode 100644 source/images/supported_brands/keba.png diff --git a/source/_components/keba.markdown b/source/_components/keba.markdown new file mode 100644 index 00000000000..9ff867d9778 --- /dev/null +++ b/source/_components/keba.markdown @@ -0,0 +1,123 @@ +--- +title: "Keba Charging Station" +description: "Instructions on how to setup your Keba charging station with Home Assistant." +logo: keba.png +ha_category: + - Binary Sensor + - Lock + - Sensor +ha_release: 0.98 +--- + +The `keba` integrates your Keba charging station (wallbox) into your home assistant instance. It was tested with a BMW Wallbox but should also work with a Keba P20/P30 according to the developers [manual](https://www.keba.com/web/downloads/e-mobility/KeContact_P20_P30_UDP_ProgrGuide_en.pdf). The fetching interval to the charging station is set to 5 seconds, same as in the official mobile app. + +This component provides the following platforms: + +- Binary Sensors: Online state, plug state, Charging state and failsafe mode state. +- Lock: Authorization (like with the RFID card). +- Sensors: current set by the user, target energy set by the user, charging power, charged energy of the current session and total energy charged. +- Services: authorize, deauthorize, set energy target, set maximum allowed current and manually update the states. More details can be found [here](/components/keba/#services). + +## Configuration + +To enable this component in your installation, add at least the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +keba: + host: KEBA_HOST +``` + +{% configuration %} +keba: + description: configuration + required: true + type: map + keys: + host: + description: Keba host. + required: true + type: string + rfid: + description: RFID tag used for authorization. + required: false + type: string + default: "00845500" + failsafe: + description: Enable failsafe mode at home assistant startup. + required: false + type: boolean + default: false + failsafe_timeout: + description: Timeout of the failsafe mode in seconds. Allowed values are between 10 seconds and 600 seconds (this parameter is only used if failsafe mode is enabled). Make sure to call the `keba.set_curr` service regularly within this timeout period! + required: false + type: integer + default: 30 + failsafe_fallback: + description: Fallback current of the failsafe mode in A. Allowed values are between 6 Ampere and 63 Ampere. 0 Ampere disables the running charging process completely (this parameter is only used if failsafe mode is enabled). + required: false + type: integer + default: 6 + failsafe_persist: + description: Saving the failsafe configuration to internal EEPROM of the Keba charging station. 1 means save it, 0 means do only keep this configuration until the next restart of the charging station (this parameter is only used if failsafe mode is enabled). + required: false + type: integer + default: 0 + refresh_interval: + description: Refresh interval to fetch new data from the charging station. 5 seconds (same as in the official app) is recommended. + required: false + type: integer + default: 5 +{% endconfiguration %} + +## Services + +The `keba` component offers several services. Using these services will change the state of your charging station. So use these services with care! + +### Authorizing and Deauthorizing `keba.authorize` and `keba.deauthorize` + +The charging station can be authorized and deauthorized via service calls (`keba.authorize` and `keba.deauthorize`) or via the lock component that is created automatically for the charging station. In both cases the RFID tag from the configuration is used. + +### Start and Stop `keba.start` and `keba.stop` + +The service `keba.start` and `keba.stop` controls the charging process if the car is already authorized. Technically it sends `ena 1` or `ena 0` commands to the charging station. + +### Set Target Energy `keba.set_energy` + +The service `keba.set_energy` sets the target energy for the current session to the given energy attribute in kWh. Payload example: + +```json +{ + "energy": 10.0 +} +``` + +### Maximum Current `keba.set_curr` + +The service `keba.set_curr` sets the maximum current to the given current attribute in Ampere. Payload example: + +```json +{ + "current": 16.0 +} +``` + +### Request New Data `keba.request_data` + +The service `keba.request_data` sends data update requests to the charging station. + +### Request New Data `keba.set_failsafe` + +The service `keba.set_failsafe` sets the failsafe mode of the charging station. Payload example: + +```json +{ + "failsafe_timeout": 30, + "failsafe_fallback": 6, + "failsafe_persist": 0 +} +``` + +## Disclaimer + +This software is not affiliated with or endorsed by Keba. diff --git a/source/images/supported_brands/keba.png b/source/images/supported_brands/keba.png new file mode 100644 index 0000000000000000000000000000000000000000..ac182405dc41c05a7bd1c06d2252cdec846e7a9f GIT binary patch literal 4726 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 literal 0 HcmV?d00001 From 41cf9b8a52502b30f86ceef1004551392643cdfe Mon Sep 17 00:00:00 2001 From: Jay Date: Mon, 19 Aug 2019 12:06:47 -0400 Subject: [PATCH 46/77] Dialogflow v2 documentation (#10149) * Dialogflow v2 documentation * :pencil2: Tweak * :pencil2: Tweak url --- source/_components/dialogflow.markdown | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/source/_components/dialogflow.markdown b/source/_components/dialogflow.markdown index 62f7868afb9..eebb94698b7 100644 --- a/source/_components/dialogflow.markdown +++ b/source/_components/dialogflow.markdown @@ -39,8 +39,6 @@ To get the webhook URL, go to the integrations page in the configuration screen - Click on "Create Agent" - Select name, language (if you are planning to use Google Actions check their [supported languages](https://support.google.com/assistant/answer/7108196?hl=en)) and time zone - Click "Save" -- Go to project settings (cog symbol in left menu) -- under "API VERSION" click on "V1 API" - Now go to "Fulfillment" (in the left menu) - Enable Webhook and set your Dialogflow webhook url as the endpoint, e.g., `https://myhome.duckdns.org/api/webhook/800b4cb4d27d078a8871656a90854a292651b20635685f8ea23ddb7a09e8b417` - Click "Save" @@ -53,6 +51,12 @@ To get the webhook URL, go to the integrations page in the configuration screen - On the top right, where is written "Try it now...", write, or say, the phrase you have previously defined and hit enter - Dialogflow has send a request to your Home Assistant server +
+ + The V1 api will be deprecated on October 23, 2019. If you are still using the V1 API, it is recommended to change your settings in Dialogflow to use the V2 API. No changes to your intents yaml configuration need to take place after upgrading to the V2 API. Change to the V2 API by clicking on the cog button [here](https://console.dialogflow.com/) and then select the V2 API. + +
+ Take a look to "Integrations", in the left menu, to configure third parties. ### Configuring Home Assistant From e512602c2a7051c525dbe36375f6f74aa5c8d4a0 Mon Sep 17 00:00:00 2001 From: Chris Thornton <54046872+cj-thornton@users.noreply.github.com> Date: Tue, 20 Aug 2019 10:06:57 +0000 Subject: [PATCH 47/77] Add path option to SABnzbd component docs (#10124) --- source/_components/sabnzbd.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/_components/sabnzbd.markdown b/source/_components/sabnzbd.markdown index 389b11a4b3d..fcb9672c003 100644 --- a/source/_components/sabnzbd.markdown +++ b/source/_components/sabnzbd.markdown @@ -39,6 +39,10 @@ host: required: false default: localhost type: string +path: + description: Path to your SABnzbd instance corresponding to its `url_base` setting, e.g., `/sabnzbd`. + required: false + type: string name: description: The name of your SABnzbd instance (this will be the prefix for all created sensors). required: false @@ -81,6 +85,7 @@ Available sensors are: sabnzbd: api_key: YOUR_SABNZBD_API_KEY host: 192.168.1.32 + path: /sabnzbd name: sab port: 9090 ssl: true From 5a1cb8b2d8e14a1d8c6269b6b04ca70be98e5058 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Tue, 20 Aug 2019 19:56:27 +0200 Subject: [PATCH 48/77] Removes the documentation for the googlehome integration (#10166) * Removes the documentation for the googlehome integration * remove image --- source/_components/googlehome.markdown | 76 ------------------ .../images/supported_brands/google_home.png | Bin 24223 -> 0 bytes 2 files changed, 76 deletions(-) delete mode 100644 source/_components/googlehome.markdown delete mode 100644 source/images/supported_brands/google_home.png diff --git a/source/_components/googlehome.markdown b/source/_components/googlehome.markdown deleted file mode 100644 index 0921c73dbe5..00000000000 --- a/source/_components/googlehome.markdown +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: "Google Home" -description: "Instructions on how to connect to your Google Home device." -logo: google_home.png -ha_release: 0.88 -ha_category: - - Hub - - Presence Detection - - Sensor -ha_iot_class: Local Polling -redirect_from: - - /components/device_tracker.googlehome/ ---- - -The `googlehome` integration allows you to connect to your Google Home device using an [unofficial Google Home API][googlehomeapi]. - -This integration will provide: -- [device_tracker](/components/device_tracker/) platform to track nearby bluetooth devices; -- [sensor](/components/sensor/) platform to track the alarms and the timers. - -## Configuration - -To integrate the `googlehome` integration in Home Assistant, add the following section to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -googlehome: - devices: - - host: IP_ADDRESS -``` - -{% configuration %} -devices: - description: A list of Google Home devices. - required: true - type: list - keys: - host: - description: The IP address of the Google Home device. - required: true - type: string - rssi_threshold: - description: The threshold for the RSSI signal of the device. - required: false - default: -70 - type: integer - device_types: - description: Device types that will be tracked [see device types](#device_types), by default all types are tracked. - required: false - type: list - track_alarms: - description: Setting to tell the integration to track the alarms of the device. - required: false - type: boolean - default: false - track_devices: - description: Setting to tell the integration to track nearby devices. - required: false - type: boolean - default: true -{% endconfiguration %} - -## Device types - -Device type | Description --- | -- -1 | Classic - BR/EDR devices -2 | Low Energy - LE-only -3 | Dual Mode - BR/EDR/LE - -## Notes - -Devices will appear in the format `device_tracker._`. Note that dots are removed from the IP and BT MAC addresses. - -[googlehomeapi]: https://rithvikvibhu.github.io/GHLocalApi/ -[devicetrackerconfig]: /components/device_tracker/#configuring-a-device_tracker-platform diff --git a/source/images/supported_brands/google_home.png b/source/images/supported_brands/google_home.png deleted file mode 100644 index 645627d6a4581a85f739132754836bba03046412..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24223 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 a>;HheEiSE$e)j)$>S}A~tJkTaBK`-As{&2{ From 69c22d8d9baf0e804fa2327cde443cbc89f08664 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20RAMAGE?= Date: Wed, 21 Aug 2019 00:09:30 +0200 Subject: [PATCH 49/77] Add zigate to configuration variable (#10194) --- source/_components/zha.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/zha.markdown b/source/_components/zha.markdown index 9bdd2bc7cb3..6ccb9a356f4 100644 --- a/source/_components/zha.markdown +++ b/source/_components/zha.markdown @@ -73,7 +73,7 @@ zha: {% configuration %} radio_type: - description: One of `ezsp`, `xbee` or `deconz`. + description: One of `ezsp`, `xbee`, `deconz` or `zigate`. required: false type: string default: ezsp From 50f1f44151924fe5e31cbf1289d49966f6972992 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Aug 2019 09:55:03 +0200 Subject: [PATCH 50/77] Bump nokogiri from 1.10.3 to 1.10.4 (#10190) Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.10.3 to 1.10.4. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/master/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.10.3...v1.10.4) Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index b09f53b62f0..1a06732930d 100644 --- a/Gemfile +++ b/Gemfile @@ -19,4 +19,4 @@ group :jekyll_plugins do end gem 'sinatra', '2.0.5' -gem 'nokogiri', '1.10.3' +gem 'nokogiri', '1.10.4' diff --git a/Gemfile.lock b/Gemfile.lock index f125a245016..222b24c147a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -70,7 +70,7 @@ GEM mini_portile2 (2.4.0) multi_json (1.13.1) mustermann (1.0.3) - nokogiri (1.10.3) + nokogiri (1.10.4) mini_portile2 (~> 2.4.0) pathutil (0.16.2) forwardable-extended (~> 2.6) @@ -109,7 +109,7 @@ DEPENDENCIES jekyll-redirect-from (= 0.15.0) jekyll-sitemap (= 1.3.1) jekyll-time-to-read (= 0.1.2) - nokogiri (= 1.10.3) + nokogiri (= 1.10.4) rake (= 12.3.2) sass-globbing (= 1.1.5) sinatra (= 2.0.5) From ae1a821b64e2f73e373575442f7f690d96c7b7af Mon Sep 17 00:00:00 2001 From: Tomas Kislan Date: Wed, 21 Aug 2019 22:48:56 +0200 Subject: [PATCH 51/77] Add minio documentation (#9267) * Add minio documentation * Update minio.markdown * Update minio.markdown * Review changes * :pencil2: Tweak * Update minio.markdown * :pencil2: Tweak * :pencil2: Tweak --- source/_components/minio.markdown | 153 +++++++++++++++++++++++ source/images/supported_brands/minio.png | Bin 0 -> 11496 bytes 2 files changed, 153 insertions(+) create mode 100644 source/_components/minio.markdown create mode 100644 source/images/supported_brands/minio.png diff --git a/source/_components/minio.markdown b/source/_components/minio.markdown new file mode 100644 index 00000000000..e4bba03e2ea --- /dev/null +++ b/source/_components/minio.markdown @@ -0,0 +1,153 @@ +--- +title: "Minio" +description: "Integration for interacting with Minio object storage." +logo: minio.png +ha_category: Utility +ha_iot_class: Cloud Push +ha_release: 0.98 +--- + +This integration adds interaction with [Minio](https://min.io). +Also enables to listen for bucket notifications: [watch docs](https://docs.min.io/docs/minio-client-complete-guide.html#watch) + +To download or upload files, folders must be added to [whitelist_external_dirs](/docs/configuration/basic/). + +## Configuration + +To enable the Minio integration in your installation, add the following to your `configuration.yaml` file: + +```yaml +minio: + host: localhost + port: 9000 + access_key: ACCESS_KEY + secret_key: SECRET_KEY + secure: false +``` + +{% configuration %} +host: + description: Minio server host + required: true + type: string +port: + description: Minio server port + required: true + type: integer +access_key: + description: Minio server access key + required: true + type: string +secret_key: + description: Minio server secret key + required: true + type: string +secure: + description: Whether to use http or https connection + required: true + type: boolean + default: false +listen: + description: List of configurations to listen for events to + required: false + default: [] + type: list + keys: + bucket: + description: Bucket to use + required: true + type: string + prefix: + description: What prefix to use to filter file events + required: false + type: string + default: "" + suffix: + description: What file suffix to use to filter file events + required: false + type: string + default: ".*" + events: + description: What file + required: false + type: string + default: "s3:ObjectCreated:*" +{% endconfiguration %} + +## Automations + +Automations can be triggered on new files created on the Minio server using the `data_template`. + +{% raw %} +```yaml +#Automatically upload new local files +automation: +- alias: Upload camera snapshot + trigger: + platform: event + event_type: folder_watcher + event_data: + event_type: created + action: + - delay: '00:00:01' + - service: minio.put + data_template: + file_path: "{{ trigger.event.data.path }}" + bucket: "camera-image-object-detection" + key: "input/{{ now().year }}/{{ (now().month | string).zfill(2) }}/{{ (now().day | string).zfill(2) }}/{{ trigger.event.data.file }}" + - delay: '00:00:01' + - service: shell_command.remove_file + data_template: + file: "{{ trigger.event.data.path }}" + +- alias: Download new Minio file + trigger: + - platform: event + event_type: minio + + condition: [] + action: + - service: minio.get + data_template: + bucket: "{{trigger.event.data.bucket}}" + key: "{{trigger.event.data.key}}" + file_path: "/tmp/{{ trigger.event.data.file_name }}" +``` +{% endraw %} + +## Platform Services + +These services are provided: + +- `get` +- `put` +- `remove` + +### Service `minio.get` + +Download file. + +| Service data attribute | Required | Description | +|---------------------------|----------|---------------------------------------------------| +| `bucket` | yes | Bucket to use | +| `key` | yes | Object key of the file | +| `file_path` | yes | File path on the local file system | + +### Service `minio.put` + +Upload file. + +| Service data attribute | Required | Description | +|---------------------------|----------|---------------------------------------------------| +| `bucket` | yes | Bucket to use | +| `key` | yes | Object key of the file | +| `file_path` | yes | File path on the local file system | + +### Service `minio.remove` + +Delete file. + +| Service data attribute | Required | Description | +|---------------------------|----------|---------------------------------------------------| +| `bucket` | yes | Bucket to use | +| `key` | yes | Object key of the file | diff --git a/source/images/supported_brands/minio.png b/source/images/supported_brands/minio.png new file mode 100644 index 0000000000000000000000000000000000000000..38f6ff9f01d54b07a8af71ccc6b52eb7e18e4ba6 GIT binary patch literal 11496 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 DnX+}P literal 0 HcmV?d00001 From 64fa33f8609c3fab415e2169e7693fa99098ae21 Mon Sep 17 00:00:00 2001 From: Johann Kellerman Date: Wed, 21 Aug 2019 22:55:50 +0200 Subject: [PATCH 52/77] Update sma.markdown (#10163) * Update sma.markdown * Update sma.markdown * :pencil2: Tweaks --- source/_components/sma.markdown | 98 ++++++++++++++++----------------- 1 file changed, 46 insertions(+), 52 deletions(-) diff --git a/source/_components/sma.markdown b/source/_components/sma.markdown index 4b440b9f8f4..af30b3b28f5 100644 --- a/source/_components/sma.markdown +++ b/source/_components/sma.markdown @@ -12,22 +12,36 @@ redirect_from: The `sma` sensor will poll a [SMA](http://www.sma-solar.com/) [(US)](http://www.sma-america.com/) solar inverter and present the values as sensors (or attributes of sensors) in Home Assistant. -This sensor uses the web interface and in order to use it you have to be able to connect to the solar inverter from your favorite web browser. +This sensor uses the web interface and to use it, you have to be able to connect to the solar inverter from your favorite web browser. ## Configuration To enable this sensor, add the following lines to your `configuration.yaml` file: ```yaml -# Example configuration.yaml entry +# Example configuration.yaml entry (http) sensor: - platform: sma host: IP_ADDRESS_OF_DEVICE password: YOUR_SMA_PASSWORD sensors: - current_consumption: [total_consumption] - pv_power: - total_yield: + - current_consumption + - total_consumption + - pv_power + - total_yield + +# Example configuration.yaml entry (https) +sensor: + - platform: sma + host: IP_ADDRESS_OF_DEVICE + ssl: true + verify_ssl: false + password: YOUR_SMA_PASSWORD + sensors: + - current_consumption + - total_consumption + - pv_power + - total_yield ``` {% configuration %} @@ -55,50 +69,10 @@ group: default: user type: string sensors: - description: A list of sensors that will be added. The value of the list can include a list of sensor names that will be used as attributes. + description: A list of sensors that will be added. Refer to the table in the Sensors section below. If not specified all the sensors in the library will be added. required: false default: All sensors type: list - keys: - pv_power: - description: Current power generated by the inverter (W). - pv_gen_meter: - description: Total kWh generated to date (kWh) - total_yield: - description: Total power yield from solar installation (kWh). - daily_yield: - description: The yield for today (Wh) - - current_consumption: - description: Power that you are currently drawing, depending on your installation it can be a combination of the inverter and the grid (W). - total_consumption: - description: Total power consumption (kWh). - - grid_power_supplied: - description: Power supplied (W) - grid_power_absorbed: - description: Power absorbed (W) - grid_total_yield: - description: Total power fom the grid (kWh) - grid_total_absorbed: - description: Total power supplied to the grid - - grid_power: - description: Power supplied by the grid (W) - frequency: - description: Grid frequency (W) - voltage_l1: - description: Voltage for phase 1 (V) - voltage_l2: - description: Voltage for phase 2 (V) - voltage_l2: - description: Voltage for phase 3 (V) - - status: - description: Status of the solar plant. - - your-custom-sensor: - description: Any sensor name defined in the `custom:` section custom: description: A dictionary of custom sensor key values and units. required: false @@ -117,16 +91,36 @@ custom: required: false default: 1 type: float + path: + description: A custom JMESpath to extract the sensor value (typically not required, advanced use only). + required: false + type: string {% endconfiguration %} -You can create composite sensors, where the sub-sensors will be attributes of the main sensor. E.g., +## Sensors -```yaml - sensors: - - current_power: [total_power, total_consumption] -``` +Sensors available in the library: -The SMA WebConnect module supports a wide variety of sensors, and not all these have been mapped to standard sensors. Custom sensors can be defined by using the `custom` section of the configuration. You will need: A sensor name (no spaces), the SMA sensor key and the unit +| name | Unit | Description | +|--------------|------|:-------------------------------------------| +| pv_power | W | Current power generated by the inverter. | +| pv_gen_meter | kWh | Total kWh generated to date. | +| total_yield | kWh | Total power yield from a solar installation. | +| daily_yield | Wh | The solar plant's yield for today. ! +| current_consumption | W | Power that you are currently drawing, depending on your installation it can be a combination of the inverter and the grid. | +| total_consumption | kWh | Total power consumption. | +| grid_power_supplied | W | Power supplied. | +| grid_power_absorbed | W | Power absorbed. | +| grid_total_yield | kWh | Total power from the grid. | +| grid_total_absorbed | Wh | Total power supplied to the grid +| grid_power | W | Power supplied by the grid. | +| frequency | Hz | Grid frequency. | +| voltage_l1 | V | Voltage for phase 1. | +| voltage_l2 | V | Voltage for phase 2. | +| voltage_l2 | V | Voltage for phase 3. | +| status | | Status of the solar plant. | + +The SMA WebConnect module supports a wide variety of sensors, and not all these have been mapped in the `pysma` library. Custom sensors can be defined by using the `custom` section of the configuration. You will need: A sensor name (no spaces), the SMA sensor key and the unit. Example: From 60922d12dcfbfa83c0b2031b7b7cb1e896a9e9d2 Mon Sep 17 00:00:00 2001 From: Jeff Irion Date: Wed, 21 Aug 2019 14:11:23 -0700 Subject: [PATCH 53/77] Add descriptive fields to script documentation (#10180) * Add descriptive fields to script documentation * Remove comment * Add descriptions of configuration variables * Working on documenting configuration variables --- source/_components/script.markdown | 52 ++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/source/_components/script.markdown b/source/_components/script.markdown index 499d234b114..09ba6536dcd 100644 --- a/source/_components/script.markdown +++ b/source/_components/script.markdown @@ -10,6 +10,8 @@ ha_release: 0.7 The `script` integration allows users to specify a sequence of actions to be executed by Home Assistant when turned on. The script integration will create an entity for each script and allow them to be controlled via services. +## Configuration + The sequence of actions is specified using the [Home Assistant Script Syntax](/getting-started/scripts/). ```yaml @@ -29,11 +31,49 @@ Script names (e.g., `message_temperature` in the example above) are not allowed +{% configuration %} +alias: + description: Friendly name for the script. + required: false + type: string +description: + description: A description of the script that will be displayed in the Services tab under Developer Tools. + required: false + default: '' + type: string +fields: + description: Information about the parameters that the script uses; see the [Passing variables to scripts](#passing-variables-to-scripts) section below. + required: false + default: {} + type: map + keys: + PARAMETER_NAME: + description: A parameter used by this script. + type: map + keys: + description: + description: A description of PARAMETER_NAME. + type: string + example: + description: An example value for PARAMETER_NAME. + type: string +sequence: + description: The sequence of actions to be performed in the script. + required: true + type: list +{% endconfiguration %} + +### Full Configuration + ```yaml script:  - # Turns on the bedroom lights and then the living room lights 1 minute later wakeup: alias: Wake Up + description: 'Turns on the bedroom lights and then the living room lights after a delay' + fields: + minutes: + description: 'The amount of time to wait before turning on the living room lights' + example: 1 sequence: # This is Home Assistant Script Syntax - event: LOGBOOK_ENTRY @@ -49,7 +89,7 @@ script:  brightness: 100 - delay: # supports seconds, milliseconds, minutes, hours - minutes: 1 + minutes: {{ minutes }} - alias: Living room lights on service: light.turn_on data: @@ -102,6 +142,14 @@ Using the variables in the script requires the use of `data_template`: # Example configuration.yaml entry script: notify_pushover: + description: 'Send a pushover notification' + fields: + title: + description: 'The title of the notification' + example: 'State change' + message: + description: 'The message content' + example: 'The light is on!' sequence: - condition: state entity_id: switch.pushover_notifications From ef860a6255ea75a90c4ac8cdf7e36dee2778246d Mon Sep 17 00:00:00 2001 From: Steven Rollason <2099542+gadgetchnnel@users.noreply.github.com> Date: Wed, 21 Aug 2019 22:41:21 +0100 Subject: [PATCH 54/77] Updated documentation for template binary_sensor (#9106) * Updated documentation for template binary_sensor * Update binary_sensor.template.markdown * Updated section header --- .../binary_sensor.template.markdown | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/source/_components/binary_sensor.template.markdown b/source/_components/binary_sensor.template.markdown index 3eff2ecfb53..e59acefa2a4 100644 --- a/source/_components/binary_sensor.template.markdown +++ b/source/_components/binary_sensor.template.markdown @@ -66,6 +66,15 @@ sensors: description: Defines a template for the entity picture of the sensor. required: false type: template + attribute_templates: + description: Defines templates for attributes of the sensor. + required: false + type: map + keys: + "attribute: template": + description: The attribute and corresponding template. + required: true + type: template delay_on: description: The amount of time the template state must be ***met*** before this sensor will switch to `on`. required: false @@ -210,6 +219,35 @@ binary_sensor: ``` {% endraw %} +### Device Tracker sensor with Latitude and Longitude Attributes + +This example shows how to combine an non-GPS (e.g. NMAP) and GPS device tracker while still including latitude and longitude attributes + +{% raw %} +```yaml +binary_sensor: + - platform: template + sensors: + my_device: + value_template: >- + {{ is_state('device_tracker.my_device_nmap','home') or is_state('device_tracker.my_device_gps','home') }} + device_class: 'presence' + attribute_templates: + latitude: >- + {% if is_state('device_tracker.my_device_nmap','home') %} + {{ state_attr('zone.home','latitude') }} + {% else %} + {{ state_attr('device_tracker.my_device_gps','latitude') }} + {% endif %} + longitude: >- + {% if is_state('device_tracker.my_device_nmap','home') %} + {{ state_attr('zone.home','longitude') }} + {% else %} + {{ state_attr('device_tracker.my_device_gps','longitude') }} + {% endif %} +``` +{% endraw %} + ### Change the icon when state changes This example demonstrates how to use `icon_template` to change the entity's From 9a4c87e398625d6bcc88254bf0b42fdd8269e838 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Lov=C3=A9n?= Date: Wed, 21 Aug 2019 23:42:11 +0200 Subject: [PATCH 55/77] Documentation for home-assistant/home-assistant-polymer#3505 (#10200) * Documentation for home-assistant/home-assistant-polymer#3505 * Add raw tags --- source/_lovelace/markdown.markdown | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/source/_lovelace/markdown.markdown b/source/_lovelace/markdown.markdown index e9ef40c5b76..f8aafc15067 100644 --- a/source/_lovelace/markdown.markdown +++ b/source/_lovelace/markdown.markdown @@ -46,3 +46,27 @@ content: > Starting with Home Assistant 0.72, we're experimenting with a new way of defining your interface. We're calling it the **Lovelace UI**. ``` + +## Template variables + +A special template variable - `config` is set up for the `content` of the card. It contains the configuration of the card. + +E.g. +{% raw %} +```yaml +type: entity-filter +entities: + - light.bed_light + - light.ceiling_lights + - light.kitchen_lights +card: + type: markdown + content: | + The lights that are on are: + {% for l in config.entities %} + - {{ l.entity }} + {%- endfor %} + + And the door is {% if is_state('binary_sensor.door', 'on' %} open {% else %} closed {% endif %}. +``` +{% endraw %} From da20810b540f5016b388e2edbc5610212022f9a3 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 21 Aug 2019 16:23:53 -0700 Subject: [PATCH 56/77] Add draft blog post --- _config.yml | 6 +- source/_posts/2019-08-28-release-98.markdown | 596 +++++++++++++++++++ 2 files changed, 599 insertions(+), 3 deletions(-) create mode 100644 source/_posts/2019-08-28-release-98.markdown diff --git a/_config.yml b/_config.yml index e2bb0812a7f..497b4050bbb 100644 --- a/_config.yml +++ b/_config.yml @@ -98,9 +98,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 97 -current_patch_version: 2 -date_released: 2019-08-12 +current_minor_version: 98 +current_patch_version: 0 +date_released: 2019-08-28 # 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/2019-08-28-release-98.markdown b/source/_posts/2019-08-28-release-98.markdown new file mode 100644 index 00000000000..03c1eb149d0 --- /dev/null +++ b/source/_posts/2019-08-28-release-98.markdown @@ -0,0 +1,596 @@ +--- +layout: post +title: "0.98: TBD - UPDATE DATE" +description: "TBD" +date: 2019-08-21 01:11:03 +date_formatted: "August 28, 2019" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2019-08-0.98/components.png +--- + +
+ +## New Integrations + +- Add Plugwise component ([@CoMPaTech] - [#25533]) ([plugwise docs]) (new-integration) +- GeoNet NZ Quakes feed integration ([@exxamalte] - [#25736]) ([geonetnz_quakes docs]) (new-integration) +- Add Keba charging station/wallbox as component ([@dannerph] - [#24484]) ([keba docs]) (new-integration) +- Add Minio component ([@tkislan] - [#23567]) ([minio docs]) (new-integration) + +## New Platforms + +- Add ring switch platform ([@rossdargan] - [#25612]) ([ring docs]) (new-platform) +- Add ring light platform ([@rossdargan] - [#25733]) ([ring docs]) (new-platform) +- Expose Lutron RA2 occupancy sensors ([@achatham] - [#25854]) ([lutron docs]) (new-platform) + +## 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). + +## Reporting Issues + +Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template. + + + +## Breaking Changes + +- fix unique id in cluster channels ([@dmulcahey] - [#25707]) ([zha docs]) (breaking change) +- Deprecates usps integration (ADR-0004) ([@frenck] - [#25743]) ([usps docs]) (breaking change) +- Deprecates sytadin integration (ADR-0004) ([@frenck] - [#25742]) ([sytadin docs]) (breaking change) +- Deprecates ups integration (ADR-0004) ([@frenck] - [#25746]) ([ups docs]) (breaking change) +- Deprecates fedex integration (ADR-0004) ([@frenck] - [#25745]) ([fedex docs]) (breaking change) +- Deprecates srp_energy integration (ADR-0004) ([@frenck] - [#25754]) ([srp_energy docs]) (breaking change) +- Updater component is always available and shows on/off depending on whether an update is available or not ([@Santobert] - [#25418]) ([updater docs]) (breaking change) +- Add Mikrotik hub and rework device tracker ([@slackr31337] - [#25664]) ([mikrotik docs]) (breaking change) +- Deprecates linksys_ap integration (ADR-0004) ([@frenck] - [#25804]) ([linksys_ap docs]) (breaking change) +- Prometheus metrics naming based on device_class and unit_of_measurement ([@perosb] - [#24103]) ([prometheus docs]) (breaking change) +- Move Kodi services from 'media_player' domain to 'kodi' ([@JeffLIrion] - [#25753]) ([kodi docs]) (breaking change) +- Remove zwave.update_config service call ([@kpine] - [#25959]) ([zwave docs]) (breaking change) +- edp_redy: remove component ([@abmantis] - [#25971]) ([edp_redy docs]) (breaking change) +- Remove the ruter integration ([@ludeeus] - [#26041]) ([ruter docs]) (breaking change) +- Sonos playlists play media ([@ahertz] - [#26054]) ([sonos docs]) (breaking change) +- Remove the googlehome integration ([@ludeeus] - [#26035]) ([googlehome docs]) (breaking change) +- Statistics sensors repect given name ([@frenck] - [#26119]) ([statistics docs]) (breaking change) + +## All changes + +- script/test: fix tox env ([@scop] - [#25620]) +- Move mypy settings to setup.cfg ([@scop] - [#25611]) +- Add support for HomeKit CO2 sensors ([@tleegaard] - [#25603]) ([homekit_controller docs]) +- Fix test_install_existing_package ([@elupus] - [#25627]) +- Blacken top level *.py ([@scop] - [#25621]) +- Huawei LTE sensor unique id improvements ([@scop] - [#25609]) ([huawei_lte docs]) +- Add some debugging to azure mypy job ([@scop] - [#25632]) +- Add each fronius sensor as own template ([@nielstron] - [#25608]) ([fronius docs]) +- Add Plugwise component ([@CoMPaTech] - [#25533]) ([plugwise docs]) (new-integration) +- Fix velbus codeowner ([@Cereal2nd] - [#25649]) ([velbus docs]) +- ZHA code cleanup. ([@Adminiuga] - [#25644]) ([zha docs]) +- Add ELECTRICITY_IMPORTED_TOTAL obis to dsmr ([@johnnychicago] - [#25655]) ([dsmr docs]) +- isort ZHA imports. ([@Adminiuga] - [#25660]) ([zha docs]) +- Azure mypy related tweaks ([@scop] - [#25663]) +- Spelling fixes ([@scop] - [#25666]) +- Azure ci templates ([@pvizeli] - [#25688]) +- Upgrade pydocstyle to 4.0.0, do not run in tox ([@scop] - [#25667]) ([filter docs]) ([islamic_prayer_times docs]) ([lw12wifi docs]) ([wunderground docs]) +- Plugwise haanna 0.10.1 ([@CoMPaTech] - [#25693]) ([plugwise docs]) +- Bump geniushub client, handle dead devices, handle raise_for_status ([@zxdavb] - [#25687]) ([geniushub docs]) +- Refactor ZHA Zigbee Cluster report configuration ([@Adminiuga] - [#25589]) ([zha docs]) +- Make myself the codeowner for androidtv ([@JeffLIrion] - [#25697]) ([androidtv docs]) +- Add usb_path to Z-Wave network_status websocket response ([@cgarwood] - [#25617]) ([zwave docs]) +- PS4 Merge async_setup_platform into async_setup_entry ([@ktnrg45] - [#25689]) ([ps4 docs]) +- Zwave Climate: Fan state attribute missing (#25287) ([@jaminh] - [#25573]) ([zwave docs]) +- fix unique id in cluster channels ([@dmulcahey] - [#25707]) ([zha docs]) (breaking change) +- don't mark devices unavailable without ping try ([@dmulcahey] - [#25710]) ([zha docs]) +- stagger device init to avoid flooding network ([@dmulcahey] - [#25709]) ([zha docs]) +- Bump androidtv to 0.0.21; add 'state_detection_rules' config parameter ([@JeffLIrion] - [#25647]) ([androidtv docs]) +- Refactor ZHA Zigbee channel registry. ([@Adminiuga] - [#25716]) ([zha docs]) +- Add zigate support to zha ([@doudz] - [#25552]) ([zha docs]) +- Add ring switch platform ([@rossdargan] - [#25612]) ([ring docs]) (new-platform) +- Add ring light platform ([@rossdargan] - [#25733]) ([ring docs]) (new-platform) +- Use more decorators for ZHA Core registries. ([@Adminiuga] - [#25737]) ([zha docs]) +- Implement "Aux Heat" support for Zwave Climate ([@eyager1] - [#25694]) ([zwave docs]) +- Add test case to identify missing MQTT configuration abbreviations ([@emontnemery] - [#25616]) ([mqtt docs]) +- Manufacturer specific channel for SmartThings. ([@Adminiuga] - [#25739]) ([zha docs]) +- Deprecates usps integration (ADR-0004) ([@frenck] - [#25743]) ([usps docs]) (breaking change) +- Deprecates sytadin integration (ADR-0004) ([@frenck] - [#25742]) ([sytadin docs]) (breaking change) +- Deprecates ups integration (ADR-0004) ([@frenck] - [#25746]) ([ups docs]) (breaking change) +- Deprecates fedex integration (ADR-0004) ([@frenck] - [#25745]) ([fedex docs]) (breaking change) +- Deprecates srp_energy integration (ADR-0004) ([@frenck] - [#25754]) ([srp_energy docs]) (breaking change) +- Updater component is always available and shows on/off depending on whether an update is available or not ([@Santobert] - [#25418]) ([updater docs]) (breaking change) +- Integration requirement check refactor ([@elupus] - [#25626]) +- Add Mikrotik hub and rework device tracker ([@slackr31337] - [#25664]) ([mikrotik docs]) (breaking change) +- Deprecates linksys_ap integration (ADR-0004) ([@frenck] - [#25804]) ([linksys_ap docs]) (breaking change) +- Fix Broadlink MP1 unavailable error ([@miroslawkrol] - [#25806]) ([broadlink docs]) +- Add arcus trigonometry functions to templates ([@tomilehto] - [#25510]) +- Add error handling to !include command in yaml ([@thomasloven] - [#25801]) +- Webhook for Traccar ([@escoand] - [#24762]) ([traccar docs]) +- Refactor ZHA device initialized logic ([@dmulcahey] - [#25796]) ([zha docs]) +- Fix 64-bit modbus sensor register reads ([@tomilehto] - [#25672]) ([modbus docs]) +- GeoNet NZ Quakes feed integration ([@exxamalte] - [#25736]) ([geonetnz_quakes docs]) (new-integration) +- Fix device re-connect when API connection lost ([@slackr31337] - [#25842]) +- Prometheus metrics naming based on device_class and unit_of_measurement ([@perosb] - [#24103]) ([prometheus docs]) (breaking change) +- Websocket call for rendering jinja2 templates subscription ([@thomasloven] - [#25614]) ([websocket_api docs]) +- Bump androidtv to 0.0.22 ([@JeffLIrion] - [#25848]) ([androidtv docs]) +- Move Kodi services from 'media_player' domain to 'kodi' ([@JeffLIrion] - [#25753]) ([kodi docs]) (breaking change) +- Update sensor.py ([@MatsNl] - [#25825]) ([statistics docs]) +- Add pip-wheel-metadata in .gitignore ([@oncleben31] - [#25832]) +- Fix configuration field name ([@skarcha] - [#25840]) ([plex docs]) +- Allow components with empty list config (i.e. person) in packages ([@kellerza] - [#25827]) +- Make reproduce state use platform instead of rely on function ([@balloob] - [#25856]) ([climate docs]) ([group docs]) ([media_player docs]) +- Type check various base components ([@scop] - [#25878]) +- Fix script/translations_develop launch + clean some unused error i18n ([@Quentame] - [#25459]) ([arcam_fmj docs]) ([heos docs]) ([tellduslive docs]) ([twentemilieu docs]) ([upnp docs]) ([vesync docs]) ([zha docs]) +- Tado AIR_CONDITIONING module was not working propertly ([@ejaviga] - [#25677]) ([tado docs]) +- First pass fixing tests that raise exceptions caught by asyncio.gather ([@balloob] - [#25860]) ([demo docs]) ([vacuum docs]) +- Add reproduce state support to input_boolean ([@balloob] - [#25858]) ([input_boolean docs]) +- eq3bt: handle zero (closed valve) as a valid mode. fixes #25333 ([@rytilahti] - [#25905]) ([eq3btsmart docs]) +- Update syncthru library to fix issue ([@nielstron] - [#25924]) ([syncthru docs]) +- Bump version of library aio_geojson_geonetnz_quakes to v0.9 ([@exxamalte] - [#25946]) ([geonetnz_quakes docs]) +- Add OTGW domestic hot water enable option as service ([@tcoenraad] - [#25849]) ([opentherm_gw docs]) +- Bump androidtv to 0.0.23 ([@JeffLIrion] - [#25950]) +- Use canonical pre-commit black URL ([@scop] - [#25948]) +- Update homekit_controller import style ([@Jc2k] - [#25940]) ([homekit_controller docs]) +- Handle more Life360 errors in config flow & bump package to 4.1.1 ([@pnbruckner] - [#25930]) ([life360 docs]) +- Improve Sonos error handling on slow networks ([@amelchio] - [#25902]) ([sonos docs]) +- Bump simplisafe-python to 4.3.0 ([@bachya] - [#25955]) ([simplisafe docs]) +- Bump aioambient to 0.3.2 ([@bachya] - [#25956]) ([ambient_station docs]) +- Expose Lutron RA2 occupancy sensors ([@achatham] - [#25854]) ([lutron docs]) (new-platform) +- Add volumio shuffle support ([@zewelor] - [#25871]) ([volumio docs]) +- Fix Tile Errors ([@paraselene] - [#25866]) ([tile docs]) +- Complete some incomplete type hints in helpers ([@scop] - [#25953]) +- Remove uvloop from default install and warn about stream+shell_command ([@balloob] - [#25929]) ([stream docs]) +- Tweaks to options flow ([@balloob] - [#25969]) ([config docs]) +- Remove zwave.update_config service call ([@kpine] - [#25959]) ([zwave docs]) (breaking change) +- edp_redy: remove component ([@abmantis] - [#25971]) ([edp_redy docs]) (breaking change) +- Add netgear_lte.disconnect_lte service ([@amelchio] - [#25967]) ([netgear_lte docs]) +- Add broadlink switch retry time option ([@zhumuht] - [#25873]) ([broadlink docs]) +- Fix ecobee preset and add climate mode back ([@balloob] - [#25970]) ([ecobee docs]) +- Update pyvera to 0.3.4 ([@KptnKMan] - [#25986]) ([vera docs]) +- Upgrade youtube_dl to 2019.08.13 ([@fabaff] - [#25987]) ([media_extractor docs]) +- Upgrade Mastodon.py to 1.4.6 ([@fabaff] - [#25989]) ([mastodon docs]) +- Upgrade pytz to >=2019.02 ([@fabaff] - [#25991]) +- Upgrade sqlalchemy to 1.3.7 ([@fabaff] - [#25997]) ([recorder docs]) ([sql docs]) +- Upgrade restrictedpython to 4.0 ([@fabaff] - [#25993]) ([python_script docs]) +- Upgrade shodan to 1.15.0 ([@fabaff] - [#25990]) ([shodan docs]) +- Guard against unavailable climate entities ([@balloob] - [#25978]) ([alexa docs]) +- Ensure sun conditions are using the right date ([@emontnemery] - [#23664]) +- Upgrade numpy to 1.17.0 ([@fabaff] - [#25998]) ([iqvia docs]) ([opencv docs]) ([tensorflow docs]) ([trend docs]) +- Upgrade python-slugify to 3.0.3 ([@fabaff] - [#25995]) +- Upgrade importlib-metadata to 0.19 ([@fabaff] - [#26003]) +- Upgrade voluptuous to 0.11.7 ([@fabaff] - [#26007]) +- Upgrade pyyaml to 5.1.2 ([@fabaff] - [#25994]) +- Upgrade pillow to 6.1.0 ([@fabaff] - [#26005]) ([proxy docs]) ([qrcode docs]) ([tensorflow docs]) +- Fix bmw_connected_drive and eq3btsmart components by updating their dependencies ([@OliverRepo] - [#26012]) ([bmw_connected_drive docs]) ([eq3btsmart docs]) +- Upgrade luftdaten to 0.6.3 ([@fabaff] - [#26009]) ([luftdaten docs]) +- Upgrade pysnmp to 4.4.11 ([@fabaff] - [#26010]) ([snmp docs]) +- Upgrade beautifulsoup4 to 4.8.0 ([@fabaff] - [#26006]) ([linksys_ap docs]) ([scrape docs]) ([sytadin docs]) +- Allow entities to indicate they should be disabled by default ([@balloob] - [#26011]) +- Hue tweak registered device type + discovery exception ([@balloob] - [#25977]) ([hue docs]) +- Fix config entry has options check ([@balloob] - [#25976]) ([config docs]) +- Update KNX services.yaml ([@farmio] - [#26014]) +- Entity registry api update disable ([@balloob] - [#26015]) ([config docs]) +- Upgrade voluptuous-serialize to 2.2.0 ([@fabaff] - [#26008]) +- Fix unnecessary db entries for metro_france ([@oncleben31] - [#25957]) ([meteo_france docs]) +- Tone down huawei_lte logging ([@scop] - [#26020]) ([huawei_lte docs]) +- Don't force a query to the main lutron repeater on update ([@thecynic] - [#25939]) ([lutron docs]) +- Upgrade pre-commit to 1.18.2 ([@scop] - [#26029]) +- Update hole to 0.5.0 ([@fabaff] - [#26022]) ([pi_hole docs]) +- Fix background crash in sisyphus integration ([@jkeljo] - [#26032]) ([sisyphus docs]) +- Skip homekit_controller polls when system is overloaded and still trying to process the previous one ([@Jc2k] - [#25968]) ([homekit_controller docs]) +- Run flake8 on pre-commit ([@scop] - [#26028]) +- Upgrade sisyphus-control to 2.2.1 ([@jkeljo] - [#26033]) ([sisyphus docs]) +- Upgrade Dialogflow to work with V2 API ([@jshridha] - [#25975]) ([dialogflow docs]) +- Updates to Environment Canada components ([@michaeldavie] - [#25973]) ([environment_canada docs]) +- Add system options to config entries ([@Kane610] - [#25926]) +- Remove the ruter integration ([@ludeeus] - [#26041]) ([ruter docs]) (breaking change) +- Add support of new Xiaomi Aqara Curtain models ([@syssi] - [#25942]) ([xiaomi_aqara docs]) +- Fritz device tracker: set 'scanning' log to debug ([@ThaSiouL] - [#26043]) ([fritz docs]) +- Fix Mikrotik ARP ping ([@slackr31337] - [#25965]) ([mikrotik docs]) +- Make sure config flows extend ConfigFlow base class ([@balloob] - [#26051]) ([ipma docs]) ([met docs]) ([smhi docs]) +- Revert "Fix bmw_connected_drive and eq3btsmart components by updating their dependencies (#26012)" ([@pvizeli] - [#26065]) ([bmw_connected_drive docs]) ([eq3btsmart docs]) +- Bump nabucasa-cloud to 0.17 ([@pvizeli] - [#26066]) ([cloud docs]) +- fix alarm webhooks ([@fredrike] - [#26062]) ([point docs]) +- Add Keba charging station/wallbox as component ([@dannerph] - [#24484]) ([keba docs]) (new-integration) +- Add packages version to Tensoflow for wheels packages ([@pvizeli] - [#26068]) ([tensorflow docs]) +- Remove reference to typing.Deque (added in Python 3.6.1) ([@jkeljo] - [#26030]) ([camera docs]) +- huawei_lte: support out of range values in default sensor formatter ([@flebourse] - [#26052]) ([huawei_lte docs]) +- SMA simplify config ([@kellerza] - [#25880]) ([sma docs]) +- Add config entry options support to deCONZ ([@Kane610] - [#26049]) ([deconz docs]) +- pysma library update 0.3.4 ([@kellerza] - [#26075]) ([sma docs]) +- Save config entry after updating system options ([@balloob] - [#26077]) ([config docs]) +- Convert progress API to WS ([@balloob] - [#26082]) ([config docs]) +- Add Minio component ([@tkislan] - [#23567]) ([minio docs]) (new-integration) +- Add path option to SABnzbd component ([@cj-thornton] - [#25908]) ([sabnzbd docs]) +- Add strings for traccar config flow ([@balloob] - [#26089]) ([traccar docs]) +- Update pyrainbird to version 0.2.1 to fix zone number ([@konikvranik] - [#26064]) ([rainbird docs]) +- Update pylacrosse library to version 0.4.0 ([@legacycode] - [#26088]) ([lacrosse docs]) +- Docker ADR ([@pvizeli] - [#26085]) +- Bump geniushub client ([@zxdavb] - [#26084]) ([geniushub docs]) +- Use init_subclass for Config Entries ([@balloob] - [#26059]) ([hue docs]) ([met docs]) +- Sonos playlists play media ([@ahertz] - [#26054]) ([sonos docs]) (breaking change) +- Remove the googlehome integration ([@ludeeus] - [#26035]) ([googlehome docs]) (breaking change) +- Test with 3.6.0 in Travis ([@scop] - [#26039]) +- add id to state attributes ([@sander76] - [#26086]) ([homematicip_cloud docs]) +- Fix open-ui cli arg ([@balloob] - [#26091]) +- [bugfix] Exception if vendor's servers are currently unavailable ([@WoLpH] - [#26093]) ([evohome docs]) +- Bump up zha dependencies. ([@Adminiuga] - [#26097]) ([zha docs]) +- Update bimmer_connected to 0.6.0 ([@gerard33] - [#26098]) ([bmw_connected_drive docs]) +- Add support for warning attributes to Homematic IP Cloud ([@SukramJ] - [#26103]) ([homematicip_cloud docs]) +- check if a light supports brightness ([@croghostrider] - [#26055]) ([emulated_hue docs]) +- bump quirks ([@dmulcahey] - [#26106]) ([zha docs]) +- Upgrade ruamel_yaml to 0.15.100 ([@BKPepe] - [#26095]) +- Upgrade pydocstyle to 4.0.1 ([@scop] - [#26111]) +- Upgrade pytest to 5.1.1 ([@scop] - [#26112]) +- Remove coveralls test dependency ([@scop] - [#26110]) +- Check and fix test suite leaving files behind ([@scop] - [#25981]) +- Update PyEssent ([@TheLastProject] - [#26115]) ([essent docs]) +- remove ATTR_ID for groups ([@SukramJ] - [#26114]) ([homematicip_cloud docs]) +- Update eternalegypt to 0.0.10 ([@amelchio] - [#26117]) ([netgear_lte docs]) +- UniFi config entry options ([@Kane610] - [#26113]) ([unifi docs]) +- Template binary sensor attributes ([@gadgetchnnel] - [#22664]) ([template docs]) +- Add descriptive fields to script config ([@JeffLIrion] - [#26056]) ([script docs]) +- Fix tests leaving files behind ([@balloob] - [#26121]) +- Statistics sensors repect given name ([@frenck] - [#26119]) ([statistics docs]) (breaking change) + +[#22664]: https://github.com/home-assistant/home-assistant/pull/22664 +[#23567]: https://github.com/home-assistant/home-assistant/pull/23567 +[#23664]: https://github.com/home-assistant/home-assistant/pull/23664 +[#24103]: https://github.com/home-assistant/home-assistant/pull/24103 +[#24484]: https://github.com/home-assistant/home-assistant/pull/24484 +[#24762]: https://github.com/home-assistant/home-assistant/pull/24762 +[#25418]: https://github.com/home-assistant/home-assistant/pull/25418 +[#25459]: https://github.com/home-assistant/home-assistant/pull/25459 +[#25510]: https://github.com/home-assistant/home-assistant/pull/25510 +[#25533]: https://github.com/home-assistant/home-assistant/pull/25533 +[#25552]: https://github.com/home-assistant/home-assistant/pull/25552 +[#25573]: https://github.com/home-assistant/home-assistant/pull/25573 +[#25589]: https://github.com/home-assistant/home-assistant/pull/25589 +[#25603]: https://github.com/home-assistant/home-assistant/pull/25603 +[#25608]: https://github.com/home-assistant/home-assistant/pull/25608 +[#25609]: https://github.com/home-assistant/home-assistant/pull/25609 +[#25611]: https://github.com/home-assistant/home-assistant/pull/25611 +[#25612]: https://github.com/home-assistant/home-assistant/pull/25612 +[#25614]: https://github.com/home-assistant/home-assistant/pull/25614 +[#25616]: https://github.com/home-assistant/home-assistant/pull/25616 +[#25617]: https://github.com/home-assistant/home-assistant/pull/25617 +[#25620]: https://github.com/home-assistant/home-assistant/pull/25620 +[#25621]: https://github.com/home-assistant/home-assistant/pull/25621 +[#25626]: https://github.com/home-assistant/home-assistant/pull/25626 +[#25627]: https://github.com/home-assistant/home-assistant/pull/25627 +[#25632]: https://github.com/home-assistant/home-assistant/pull/25632 +[#25644]: https://github.com/home-assistant/home-assistant/pull/25644 +[#25647]: https://github.com/home-assistant/home-assistant/pull/25647 +[#25649]: https://github.com/home-assistant/home-assistant/pull/25649 +[#25655]: https://github.com/home-assistant/home-assistant/pull/25655 +[#25660]: https://github.com/home-assistant/home-assistant/pull/25660 +[#25663]: https://github.com/home-assistant/home-assistant/pull/25663 +[#25664]: https://github.com/home-assistant/home-assistant/pull/25664 +[#25666]: https://github.com/home-assistant/home-assistant/pull/25666 +[#25667]: https://github.com/home-assistant/home-assistant/pull/25667 +[#25672]: https://github.com/home-assistant/home-assistant/pull/25672 +[#25677]: https://github.com/home-assistant/home-assistant/pull/25677 +[#25687]: https://github.com/home-assistant/home-assistant/pull/25687 +[#25688]: https://github.com/home-assistant/home-assistant/pull/25688 +[#25689]: https://github.com/home-assistant/home-assistant/pull/25689 +[#25693]: https://github.com/home-assistant/home-assistant/pull/25693 +[#25694]: https://github.com/home-assistant/home-assistant/pull/25694 +[#25697]: https://github.com/home-assistant/home-assistant/pull/25697 +[#25707]: https://github.com/home-assistant/home-assistant/pull/25707 +[#25709]: https://github.com/home-assistant/home-assistant/pull/25709 +[#25710]: https://github.com/home-assistant/home-assistant/pull/25710 +[#25716]: https://github.com/home-assistant/home-assistant/pull/25716 +[#25733]: https://github.com/home-assistant/home-assistant/pull/25733 +[#25736]: https://github.com/home-assistant/home-assistant/pull/25736 +[#25737]: https://github.com/home-assistant/home-assistant/pull/25737 +[#25739]: https://github.com/home-assistant/home-assistant/pull/25739 +[#25742]: https://github.com/home-assistant/home-assistant/pull/25742 +[#25743]: https://github.com/home-assistant/home-assistant/pull/25743 +[#25745]: https://github.com/home-assistant/home-assistant/pull/25745 +[#25746]: https://github.com/home-assistant/home-assistant/pull/25746 +[#25753]: https://github.com/home-assistant/home-assistant/pull/25753 +[#25754]: https://github.com/home-assistant/home-assistant/pull/25754 +[#25796]: https://github.com/home-assistant/home-assistant/pull/25796 +[#25801]: https://github.com/home-assistant/home-assistant/pull/25801 +[#25804]: https://github.com/home-assistant/home-assistant/pull/25804 +[#25806]: https://github.com/home-assistant/home-assistant/pull/25806 +[#25825]: https://github.com/home-assistant/home-assistant/pull/25825 +[#25827]: https://github.com/home-assistant/home-assistant/pull/25827 +[#25832]: https://github.com/home-assistant/home-assistant/pull/25832 +[#25840]: https://github.com/home-assistant/home-assistant/pull/25840 +[#25842]: https://github.com/home-assistant/home-assistant/pull/25842 +[#25848]: https://github.com/home-assistant/home-assistant/pull/25848 +[#25849]: https://github.com/home-assistant/home-assistant/pull/25849 +[#25854]: https://github.com/home-assistant/home-assistant/pull/25854 +[#25856]: https://github.com/home-assistant/home-assistant/pull/25856 +[#25858]: https://github.com/home-assistant/home-assistant/pull/25858 +[#25860]: https://github.com/home-assistant/home-assistant/pull/25860 +[#25866]: https://github.com/home-assistant/home-assistant/pull/25866 +[#25871]: https://github.com/home-assistant/home-assistant/pull/25871 +[#25873]: https://github.com/home-assistant/home-assistant/pull/25873 +[#25878]: https://github.com/home-assistant/home-assistant/pull/25878 +[#25880]: https://github.com/home-assistant/home-assistant/pull/25880 +[#25902]: https://github.com/home-assistant/home-assistant/pull/25902 +[#25905]: https://github.com/home-assistant/home-assistant/pull/25905 +[#25908]: https://github.com/home-assistant/home-assistant/pull/25908 +[#25924]: https://github.com/home-assistant/home-assistant/pull/25924 +[#25926]: https://github.com/home-assistant/home-assistant/pull/25926 +[#25929]: https://github.com/home-assistant/home-assistant/pull/25929 +[#25930]: https://github.com/home-assistant/home-assistant/pull/25930 +[#25939]: https://github.com/home-assistant/home-assistant/pull/25939 +[#25940]: https://github.com/home-assistant/home-assistant/pull/25940 +[#25942]: https://github.com/home-assistant/home-assistant/pull/25942 +[#25946]: https://github.com/home-assistant/home-assistant/pull/25946 +[#25948]: https://github.com/home-assistant/home-assistant/pull/25948 +[#25950]: https://github.com/home-assistant/home-assistant/pull/25950 +[#25953]: https://github.com/home-assistant/home-assistant/pull/25953 +[#25955]: https://github.com/home-assistant/home-assistant/pull/25955 +[#25956]: https://github.com/home-assistant/home-assistant/pull/25956 +[#25957]: https://github.com/home-assistant/home-assistant/pull/25957 +[#25959]: https://github.com/home-assistant/home-assistant/pull/25959 +[#25965]: https://github.com/home-assistant/home-assistant/pull/25965 +[#25967]: https://github.com/home-assistant/home-assistant/pull/25967 +[#25968]: https://github.com/home-assistant/home-assistant/pull/25968 +[#25969]: https://github.com/home-assistant/home-assistant/pull/25969 +[#25970]: https://github.com/home-assistant/home-assistant/pull/25970 +[#25971]: https://github.com/home-assistant/home-assistant/pull/25971 +[#25973]: https://github.com/home-assistant/home-assistant/pull/25973 +[#25975]: https://github.com/home-assistant/home-assistant/pull/25975 +[#25976]: https://github.com/home-assistant/home-assistant/pull/25976 +[#25977]: https://github.com/home-assistant/home-assistant/pull/25977 +[#25978]: https://github.com/home-assistant/home-assistant/pull/25978 +[#25981]: https://github.com/home-assistant/home-assistant/pull/25981 +[#25986]: https://github.com/home-assistant/home-assistant/pull/25986 +[#25987]: https://github.com/home-assistant/home-assistant/pull/25987 +[#25989]: https://github.com/home-assistant/home-assistant/pull/25989 +[#25990]: https://github.com/home-assistant/home-assistant/pull/25990 +[#25991]: https://github.com/home-assistant/home-assistant/pull/25991 +[#25993]: https://github.com/home-assistant/home-assistant/pull/25993 +[#25994]: https://github.com/home-assistant/home-assistant/pull/25994 +[#25995]: https://github.com/home-assistant/home-assistant/pull/25995 +[#25997]: https://github.com/home-assistant/home-assistant/pull/25997 +[#25998]: https://github.com/home-assistant/home-assistant/pull/25998 +[#26003]: https://github.com/home-assistant/home-assistant/pull/26003 +[#26005]: https://github.com/home-assistant/home-assistant/pull/26005 +[#26006]: https://github.com/home-assistant/home-assistant/pull/26006 +[#26007]: https://github.com/home-assistant/home-assistant/pull/26007 +[#26008]: https://github.com/home-assistant/home-assistant/pull/26008 +[#26009]: https://github.com/home-assistant/home-assistant/pull/26009 +[#26010]: https://github.com/home-assistant/home-assistant/pull/26010 +[#26011]: https://github.com/home-assistant/home-assistant/pull/26011 +[#26012]: https://github.com/home-assistant/home-assistant/pull/26012 +[#26014]: https://github.com/home-assistant/home-assistant/pull/26014 +[#26015]: https://github.com/home-assistant/home-assistant/pull/26015 +[#26020]: https://github.com/home-assistant/home-assistant/pull/26020 +[#26022]: https://github.com/home-assistant/home-assistant/pull/26022 +[#26028]: https://github.com/home-assistant/home-assistant/pull/26028 +[#26029]: https://github.com/home-assistant/home-assistant/pull/26029 +[#26030]: https://github.com/home-assistant/home-assistant/pull/26030 +[#26032]: https://github.com/home-assistant/home-assistant/pull/26032 +[#26033]: https://github.com/home-assistant/home-assistant/pull/26033 +[#26035]: https://github.com/home-assistant/home-assistant/pull/26035 +[#26039]: https://github.com/home-assistant/home-assistant/pull/26039 +[#26041]: https://github.com/home-assistant/home-assistant/pull/26041 +[#26043]: https://github.com/home-assistant/home-assistant/pull/26043 +[#26049]: https://github.com/home-assistant/home-assistant/pull/26049 +[#26051]: https://github.com/home-assistant/home-assistant/pull/26051 +[#26052]: https://github.com/home-assistant/home-assistant/pull/26052 +[#26054]: https://github.com/home-assistant/home-assistant/pull/26054 +[#26055]: https://github.com/home-assistant/home-assistant/pull/26055 +[#26056]: https://github.com/home-assistant/home-assistant/pull/26056 +[#26059]: https://github.com/home-assistant/home-assistant/pull/26059 +[#26062]: https://github.com/home-assistant/home-assistant/pull/26062 +[#26064]: https://github.com/home-assistant/home-assistant/pull/26064 +[#26065]: https://github.com/home-assistant/home-assistant/pull/26065 +[#26066]: https://github.com/home-assistant/home-assistant/pull/26066 +[#26068]: https://github.com/home-assistant/home-assistant/pull/26068 +[#26075]: https://github.com/home-assistant/home-assistant/pull/26075 +[#26077]: https://github.com/home-assistant/home-assistant/pull/26077 +[#26082]: https://github.com/home-assistant/home-assistant/pull/26082 +[#26084]: https://github.com/home-assistant/home-assistant/pull/26084 +[#26085]: https://github.com/home-assistant/home-assistant/pull/26085 +[#26086]: https://github.com/home-assistant/home-assistant/pull/26086 +[#26088]: https://github.com/home-assistant/home-assistant/pull/26088 +[#26089]: https://github.com/home-assistant/home-assistant/pull/26089 +[#26091]: https://github.com/home-assistant/home-assistant/pull/26091 +[#26093]: https://github.com/home-assistant/home-assistant/pull/26093 +[#26095]: https://github.com/home-assistant/home-assistant/pull/26095 +[#26097]: https://github.com/home-assistant/home-assistant/pull/26097 +[#26098]: https://github.com/home-assistant/home-assistant/pull/26098 +[#26103]: https://github.com/home-assistant/home-assistant/pull/26103 +[#26106]: https://github.com/home-assistant/home-assistant/pull/26106 +[#26110]: https://github.com/home-assistant/home-assistant/pull/26110 +[#26111]: https://github.com/home-assistant/home-assistant/pull/26111 +[#26112]: https://github.com/home-assistant/home-assistant/pull/26112 +[#26113]: https://github.com/home-assistant/home-assistant/pull/26113 +[#26114]: https://github.com/home-assistant/home-assistant/pull/26114 +[#26115]: https://github.com/home-assistant/home-assistant/pull/26115 +[#26117]: https://github.com/home-assistant/home-assistant/pull/26117 +[#26119]: https://github.com/home-assistant/home-assistant/pull/26119 +[#26121]: https://github.com/home-assistant/home-assistant/pull/26121 +[@Adminiuga]: https://github.com/Adminiuga +[@BKPepe]: https://github.com/BKPepe +[@Cereal2nd]: https://github.com/Cereal2nd +[@CoMPaTech]: https://github.com/CoMPaTech +[@Jc2k]: https://github.com/Jc2k +[@JeffLIrion]: https://github.com/JeffLIrion +[@Kane610]: https://github.com/Kane610 +[@KptnKMan]: https://github.com/KptnKMan +[@MatsNl]: https://github.com/MatsNl +[@OliverRepo]: https://github.com/OliverRepo +[@Quentame]: https://github.com/Quentame +[@Santobert]: https://github.com/Santobert +[@SukramJ]: https://github.com/SukramJ +[@ThaSiouL]: https://github.com/ThaSiouL +[@TheLastProject]: https://github.com/TheLastProject +[@WoLpH]: https://github.com/WoLpH +[@abmantis]: https://github.com/abmantis +[@achatham]: https://github.com/achatham +[@ahertz]: https://github.com/ahertz +[@amelchio]: https://github.com/amelchio +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@cgarwood]: https://github.com/cgarwood +[@cj-thornton]: https://github.com/cj-thornton +[@croghostrider]: https://github.com/croghostrider +[@dannerph]: https://github.com/dannerph +[@dmulcahey]: https://github.com/dmulcahey +[@doudz]: https://github.com/doudz +[@ejaviga]: https://github.com/ejaviga +[@elupus]: https://github.com/elupus +[@emontnemery]: https://github.com/emontnemery +[@escoand]: https://github.com/escoand +[@exxamalte]: https://github.com/exxamalte +[@eyager1]: https://github.com/eyager1 +[@fabaff]: https://github.com/fabaff +[@farmio]: https://github.com/farmio +[@flebourse]: https://github.com/flebourse +[@fredrike]: https://github.com/fredrike +[@frenck]: https://github.com/frenck +[@gadgetchnnel]: https://github.com/gadgetchnnel +[@gerard33]: https://github.com/gerard33 +[@jaminh]: https://github.com/jaminh +[@jkeljo]: https://github.com/jkeljo +[@johnnychicago]: https://github.com/johnnychicago +[@jshridha]: https://github.com/jshridha +[@kellerza]: https://github.com/kellerza +[@konikvranik]: https://github.com/konikvranik +[@kpine]: https://github.com/kpine +[@ktnrg45]: https://github.com/ktnrg45 +[@legacycode]: https://github.com/legacycode +[@ludeeus]: https://github.com/ludeeus +[@michaeldavie]: https://github.com/michaeldavie +[@miroslawkrol]: https://github.com/miroslawkrol +[@nielstron]: https://github.com/nielstron +[@oncleben31]: https://github.com/oncleben31 +[@paraselene]: https://github.com/paraselene +[@perosb]: https://github.com/perosb +[@pnbruckner]: https://github.com/pnbruckner +[@pvizeli]: https://github.com/pvizeli +[@rossdargan]: https://github.com/rossdargan +[@rytilahti]: https://github.com/rytilahti +[@sander76]: https://github.com/sander76 +[@scop]: https://github.com/scop +[@skarcha]: https://github.com/skarcha +[@slackr31337]: https://github.com/slackr31337 +[@syssi]: https://github.com/syssi +[@tcoenraad]: https://github.com/tcoenraad +[@thecynic]: https://github.com/thecynic +[@thomasloven]: https://github.com/thomasloven +[@tkislan]: https://github.com/tkislan +[@tleegaard]: https://github.com/tleegaard +[@tomilehto]: https://github.com/tomilehto +[@zewelor]: https://github.com/zewelor +[@zhumuht]: https://github.com/zhumuht +[@zxdavb]: https://github.com/zxdavb +[alexa docs]: /components/alexa/ +[ambient_station docs]: /components/ambient_station/ +[androidtv docs]: /components/androidtv/ +[arcam_fmj docs]: /components/arcam_fmj/ +[bmw_connected_drive docs]: /components/bmw_connected_drive/ +[broadlink docs]: /components/broadlink/ +[camera docs]: /components/camera/ +[climate docs]: /components/climate/ +[cloud docs]: /components/cloud/ +[config docs]: /components/config/ +[deconz docs]: /components/deconz/ +[demo docs]: /components/demo/ +[dialogflow docs]: /components/dialogflow/ +[dsmr docs]: /components/dsmr/ +[ecobee docs]: /components/ecobee/ +[edp_redy docs]: /components/edp_redy/ +[emulated_hue docs]: /components/emulated_hue/ +[environment_canada docs]: /components/environment_canada/ +[eq3btsmart docs]: /components/eq3btsmart/ +[essent docs]: /components/essent/ +[evohome docs]: /components/evohome/ +[fedex docs]: /components/fedex/ +[filter docs]: /components/filter/ +[fritz docs]: /components/fritz/ +[fronius docs]: /components/fronius/ +[geniushub docs]: /components/geniushub/ +[geonetnz_quakes docs]: /components/geonetnz_quakes/ +[googlehome docs]: /components/googlehome/ +[group docs]: /components/group/ +[heos docs]: /components/heos/ +[homekit_controller docs]: /components/homekit_controller/ +[homematicip_cloud docs]: /components/homematicip_cloud/ +[huawei_lte docs]: /components/huawei_lte/ +[hue docs]: /components/hue/ +[input_boolean docs]: /components/input_boolean/ +[ipma docs]: /components/ipma/ +[iqvia docs]: /components/iqvia/ +[islamic_prayer_times docs]: /components/islamic_prayer_times/ +[keba docs]: /components/keba/ +[kodi docs]: /components/kodi/ +[lacrosse docs]: /components/lacrosse/ +[life360 docs]: /components/life360/ +[linksys_ap docs]: /components/linksys_ap/ +[luftdaten docs]: /components/luftdaten/ +[lutron docs]: /components/lutron/ +[lw12wifi docs]: /components/lw12wifi/ +[mastodon docs]: /components/mastodon/ +[media_extractor docs]: /components/media_extractor/ +[media_player docs]: /components/media_player/ +[met docs]: /components/met/ +[meteo_france docs]: /components/meteo_france/ +[mikrotik docs]: /components/mikrotik/ +[minio docs]: /components/minio/ +[modbus docs]: /components/modbus/ +[mqtt docs]: /components/mqtt/ +[netgear_lte docs]: /components/netgear_lte/ +[opencv docs]: /components/opencv/ +[opentherm_gw docs]: /components/opentherm_gw/ +[pi_hole docs]: /components/pi_hole/ +[plex docs]: /components/plex/ +[plugwise docs]: /components/plugwise/ +[point docs]: /components/point/ +[prometheus docs]: /components/prometheus/ +[proxy docs]: /components/proxy/ +[ps4 docs]: /components/ps4/ +[python_script docs]: /components/python_script/ +[qrcode docs]: /components/qrcode/ +[rainbird docs]: /components/rainbird/ +[recorder docs]: /components/recorder/ +[ring docs]: /components/ring/ +[ruter docs]: /components/ruter/ +[sabnzbd docs]: /components/sabnzbd/ +[scrape docs]: /components/scrape/ +[script docs]: /components/script/ +[shodan docs]: /components/shodan/ +[simplisafe docs]: /components/simplisafe/ +[sisyphus docs]: /components/sisyphus/ +[sma docs]: /components/sma/ +[smhi docs]: /components/smhi/ +[snmp docs]: /components/snmp/ +[sonos docs]: /components/sonos/ +[sql docs]: /components/sql/ +[srp_energy docs]: /components/srp_energy/ +[statistics docs]: /components/statistics/ +[stream docs]: /components/stream/ +[syncthru docs]: /components/syncthru/ +[sytadin docs]: /components/sytadin/ +[tado docs]: /components/tado/ +[tellduslive docs]: /components/tellduslive/ +[template docs]: /components/template/ +[tensorflow docs]: /components/tensorflow/ +[tile docs]: /components/tile/ +[traccar docs]: /components/traccar/ +[trend docs]: /components/trend/ +[twentemilieu docs]: /components/twentemilieu/ +[unifi docs]: /components/unifi/ +[updater docs]: /components/updater/ +[upnp docs]: /components/upnp/ +[ups docs]: /components/ups/ +[usps docs]: /components/usps/ +[vacuum docs]: /components/vacuum/ +[velbus docs]: /components/velbus/ +[vera docs]: /components/vera/ +[vesync docs]: /components/vesync/ +[volumio docs]: /components/volumio/ +[websocket_api docs]: /components/websocket_api/ +[wunderground docs]: /components/wunderground/ +[xiaomi_aqara docs]: /components/xiaomi_aqara/ +[zha docs]: /components/zha/ +[zwave docs]: /components/zwave/ From 3585908a7a91bb07e838b62c1e4e22b259fceb14 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 23 Aug 2019 11:26:09 -0700 Subject: [PATCH 57/77] update draft --- source/_posts/2019-08-28-release-98.markdown | 62 ++++++++++++++++++ .../images/blog/2019-08-0.98/options_flow.png | Bin 0 -> 52197 bytes 2 files changed, 62 insertions(+) create mode 100644 source/images/blog/2019-08-0.98/options_flow.png diff --git a/source/_posts/2019-08-28-release-98.markdown b/source/_posts/2019-08-28-release-98.markdown index 03c1eb149d0..9980f73bea6 100644 --- a/source/_posts/2019-08-28-release-98.markdown +++ b/source/_posts/2019-08-28-release-98.markdown @@ -13,6 +13,43 @@ og_image: /images/blog/2019-08-0.98/components.png +It's time for the 0.98 release. As Home Assistant grows, some features will sometimes be left partially implemented, leaving things to be desired. In this release we've been focusing on tieing up these loose ends, sometimes with new features. Getting better all the time! + +## Entity Management + +One of the things that we've been improving in this release is entity management. Historically we've let this up to integrations, but that caused users to learn multiple ways and more work for integration developers. + +Generally entity management is not that important, you want all the entities created by your integrations! However this was less the case when we started migrating over device trackers. This became clear when we migrated over Unifi. + +So in this release we're introducing a couple of new features that are available for all entities in the entity registry and integrations that are set up via config entries. + +The first feature is that it's now possible to disable entities. If an entity is disabled, it will not be added to Home Assistant when an integration adds it. So now it will be easy to manage which entities will show up. This option is accessible from the entity registry + +The second feature is a new option to automatically disable any new entities that an integration discovers. In the case of a device tracker, newly connected devices to the network won't be added anymore. This option is accessible from the config entry page. + +With these two features we are now at feature parity with the filtering features that are available in the device tracker integration. Next step will be polishing of the person integration to get all those shiny new device tracker entities under one roof. + +## Config Entry Options + +We introduced config entries last year as our way as a generic way for integrations to store authentication and configuration. By allowing integrations to define the storage format, there are no more breaking changes for anything stored inside config entries! + +Config entries also work great with people who prefer configuration.yaml. At startup a config entry is created/updated with the configuration. + +With this release [@kane610] added a new possibility for integrations to offer options in the UI. Options that previously required you to edit configuration.yaml can now be offered via the interface. + +

+Screenshot of Unifi config options. +Screenshot of Unifi config options +

+ +## In Other News + +Mason Made created a great video walking through her Lovelace UI with a fancy custom sidebar. Check it out: + +
+ +
+ ## New Integrations - Add Plugwise component ([@CoMPaTech] - [#25533]) ([plugwise docs]) (new-integration) @@ -55,6 +92,15 @@ Experiencing issues introduced by this release? Please report them in our [issue - Sonos playlists play media ([@ahertz] - [#26054]) ([sonos docs]) (breaking change) - Remove the googlehome integration ([@ludeeus] - [#26035]) ([googlehome docs]) (breaking change) - Statistics sensors repect given name ([@frenck] - [#26119]) ([statistics docs]) (breaking change) +- Nissanleaf login fix ([@filcole] - [#26139]) ([nissan_leaf docs]) (breaking change) (beta fix) + +## Beta Fixes + +- Load user-provided descriptions for python_scripts ([@JeffLIrion] - [#26069]) ([python_script docs]) (beta fix) +- Splitt device_state_attributes between device and group for Homematic IP Cloud ([@SukramJ] - [#26137]) ([homematicip_cloud docs]) (beta fix) +- Nissanleaf login fix ([@filcole] - [#26139]) ([nissan_leaf docs]) (breaking change) (beta fix) +- Log warning if disabled entities receive updates. ([@balloob] - [#26143]) (beta fix) +- Fix tuya switch state ([@PaulAnnekov] - [#26145]) ([tuya docs]) (beta fix) ## All changes @@ -233,6 +279,12 @@ Experiencing issues introduced by this release? Please report them in our [issue - Add descriptive fields to script config ([@JeffLIrion] - [#26056]) ([script docs]) - Fix tests leaving files behind ([@balloob] - [#26121]) - Statistics sensors repect given name ([@frenck] - [#26119]) ([statistics docs]) (breaking change) +- Update azure-pipelines-release.yml for Azure Pipelines ([@pvizeli] - [#26128]) +- Load user-provided descriptions for python_scripts ([@JeffLIrion] - [#26069]) ([python_script docs]) (beta fix) +- Splitt device_state_attributes between device and group for Homematic IP Cloud ([@SukramJ] - [#26137]) ([homematicip_cloud docs]) (beta fix) +- Nissanleaf login fix ([@filcole] - [#26139]) ([nissan_leaf docs]) (breaking change) (beta fix) +- Log warning if disabled entities receive updates. ([@balloob] - [#26143]) (beta fix) +- Fix tuya switch state ([@PaulAnnekov] - [#26145]) ([tuya docs]) (beta fix) [#22664]: https://github.com/home-assistant/home-assistant/pull/22664 [#23567]: https://github.com/home-assistant/home-assistant/pull/23567 @@ -385,6 +437,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [#26065]: https://github.com/home-assistant/home-assistant/pull/26065 [#26066]: https://github.com/home-assistant/home-assistant/pull/26066 [#26068]: https://github.com/home-assistant/home-assistant/pull/26068 +[#26069]: https://github.com/home-assistant/home-assistant/pull/26069 [#26075]: https://github.com/home-assistant/home-assistant/pull/26075 [#26077]: https://github.com/home-assistant/home-assistant/pull/26077 [#26082]: https://github.com/home-assistant/home-assistant/pull/26082 @@ -409,6 +462,11 @@ Experiencing issues introduced by this release? Please report them in our [issue [#26117]: https://github.com/home-assistant/home-assistant/pull/26117 [#26119]: https://github.com/home-assistant/home-assistant/pull/26119 [#26121]: https://github.com/home-assistant/home-assistant/pull/26121 +[#26128]: https://github.com/home-assistant/home-assistant/pull/26128 +[#26137]: https://github.com/home-assistant/home-assistant/pull/26137 +[#26139]: https://github.com/home-assistant/home-assistant/pull/26139 +[#26143]: https://github.com/home-assistant/home-assistant/pull/26143 +[#26145]: https://github.com/home-assistant/home-assistant/pull/26145 [@Adminiuga]: https://github.com/Adminiuga [@BKPepe]: https://github.com/BKPepe [@Cereal2nd]: https://github.com/Cereal2nd @@ -419,6 +477,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [@KptnKMan]: https://github.com/KptnKMan [@MatsNl]: https://github.com/MatsNl [@OliverRepo]: https://github.com/OliverRepo +[@PaulAnnekov]: https://github.com/PaulAnnekov [@Quentame]: https://github.com/Quentame [@Santobert]: https://github.com/Santobert [@SukramJ]: https://github.com/SukramJ @@ -445,6 +504,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [@eyager1]: https://github.com/eyager1 [@fabaff]: https://github.com/fabaff [@farmio]: https://github.com/farmio +[@filcole]: https://github.com/filcole [@flebourse]: https://github.com/flebourse [@fredrike]: https://github.com/fredrike [@frenck]: https://github.com/frenck @@ -540,6 +600,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [modbus docs]: /components/modbus/ [mqtt docs]: /components/mqtt/ [netgear_lte docs]: /components/netgear_lte/ +[nissan_leaf docs]: /components/nissan_leaf/ [opencv docs]: /components/opencv/ [opentherm_gw docs]: /components/opentherm_gw/ [pi_hole docs]: /components/pi_hole/ @@ -578,6 +639,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [tile docs]: /components/tile/ [traccar docs]: /components/traccar/ [trend docs]: /components/trend/ +[tuya docs]: /components/tuya/ [twentemilieu docs]: /components/twentemilieu/ [unifi docs]: /components/unifi/ [updater docs]: /components/updater/ diff --git a/source/images/blog/2019-08-0.98/options_flow.png b/source/images/blog/2019-08-0.98/options_flow.png new file mode 100644 index 0000000000000000000000000000000000000000..69f883ba9692e447b6eed82169b8c7f8d41fb0ff GIT binary patch literal 52197 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%0Dn|R%z0sm;_TPS`Jh?8 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 literal 0 HcmV?d00001 From 245b1ba26a35afe4521789eba4abc54a864bfef1 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 23 Aug 2019 11:34:33 -0700 Subject: [PATCH 58/77] Update in other news --- source/_posts/2019-08-28-release-98.markdown | 10 +++++++++- source/images/blog/2019-08-0.98/batcave.png | Bin 0 -> 111675 bytes 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 source/images/blog/2019-08-0.98/batcave.png diff --git a/source/_posts/2019-08-28-release-98.markdown b/source/_posts/2019-08-28-release-98.markdown index 9980f73bea6..aa968605ee2 100644 --- a/source/_posts/2019-08-28-release-98.markdown +++ b/source/_posts/2019-08-28-release-98.markdown @@ -44,12 +44,20 @@ Screenshot of Unifi config options ## In Other News -Mason Made created a great video walking through her Lovelace UI with a fancy custom sidebar. Check it out: +[Mason Made](https://www.youtube.com/channel/UCI_ONUzb4QCVuR57IL7C8rw) created a great video walking through her Lovelace UI with a fancy custom sidebar. Check it out:
+Reddit user [Skyfox2k](https://www.reddit.com/user/Skyfox2k) has built [a batcave for his robo vacuum](https://www.reddit.com/r/homeautomation/comments/ctnq54/it_works_hidden_alexa_routines_powered_zone/). Once the vacuum starts, Home Assistant will open the door and the vacuum can come out to clean! + + +

+Photo of a robovacuum driving out of a tiny hole in the wall. +Screencap of the batcave video. +

+ ## New Integrations - Add Plugwise component ([@CoMPaTech] - [#25533]) ([plugwise docs]) (new-integration) diff --git a/source/images/blog/2019-08-0.98/batcave.png b/source/images/blog/2019-08-0.98/batcave.png new file mode 100644 index 0000000000000000000000000000000000000000..5d9d55b1f744cbcf9d0119677e00b53416af671d GIT binary patch literal 111675 zcmWh!Wmpql7pJ>xw6ugUx|K#+dgKNONH;Q4YBWfXk}jzs9izKj;tw*IwBi7fFnD>t z-RFM0=REhE^NW*cXz-GpgqZ{j3yWM^OWha?3m1%qg?&JT`*^dQy#sl?z%tY`)!6PS z+UhDO@X{>t)A4)BQx|6ZDaNuP!YoKnsK`glM}s?1hd<<%Xj3GpF3haIETKBs&`*o6 zCC0Wg$f!2dC_sy^)L$>n;YE4it6+U$24d`*VAEEZRY{clR!?zr6sSJjq%z0=5ouMQ z_O>C+Fi2Mf?xtB3;nD_!Y<9rmZfX@Uukt`WW>VY~JB6G#Y6YI!MLv3gIznFR9A9eQ z_Ljt>8^Z=Gl29L^JIE40Ex|kw?Was6=}sy;RRKN4Fi$m}^|l;Tl}~4a-A;vfhNF_V z249%51T!&q)*I#h`jGM%kNOBp9(tm|;^=I5jYP2gNXF}t(kN7oe^+7jVRO`BL(oQv zSMxiQ5`iT2AjxsI!1(!mdDnG z=(j|hQ{rJEldQKY{E#YS2cZbAG5(vb}PN&&%C%kFkpQk8ib6 z_2El}?vojI3z;@NB-l&&E~~{}OT|7#{)R;!s?`xzpF0azbL_^_Y%Ah@{wsFvPIa8k zvain!oqKP&Q5Do4WdgI1Je{ihTI1KB;j%YWF;oA(B`bKX%s&z&J(1_JT^mySKKN6F z!FhZ1=a$Uz>SR?R`YJz-$|$E=nA_o4^-@!MxUsMR3HDHqmmC*aJWo`=K z7hL0o0h?`EUGMaB{6RBiA^JduXggJZLy0sG14s3zjxtof_GZQLft~4|=GxC)wZ-cF zRPyY_RX7M|Y7!kxwcc7N>nVunKP85}F_5Fej`Mq+_0H#Zt!<0yr7{+F^Dk|66;tR| z+XsCY8#BhZr{*Z=0FfShdwx$6=D3cGTqirTf!d35(D0gH!`KlX{L%MRFR{ z-mIk3r#PCGNvSLca5ff3E0h`g_PwKcEzr{|GtF^gr%wZ0}YtLW$-ldB`3#{ELA zK7U4tM+x^0pDlnm$xKdDPEAB5WCzZIxYJyw^pJjUVTu_ zieFR={bgER@v{BJ^UapRgTm364(PWPsmNYWcgh{EVBjvOw*B9ZLpu zcFM@e+^nxFLBFFH`a_Q{4|G8Yu!HSC2g(6grL=*OClR-MHAYqt#=0{kDYC&k@WLRL9<#M+ z*>27FBzu^NLZQ7i2h~pSydvPaE>tB7jx!D|8>|N+at>lLhUM6m`7TFgh3kBl&mi6{Zgg$gR&=CHnt-;^3f* zH=^l#*8(q&+1TePAw8Jc)MO=5>r&Dq#~$QbBnWjwc~Q_qj!Zy2$MJah9gBzu_L21W z|5uc`dl3CVdr6LN$3k+9pOvH6Scq(w?N(C|^WO${+y^5@i|L!S6|i{rLq-Yu=K@;S z$2JSu>116!!F+qmFWGUP@dk*F--nB=Bz2*1Y%_A&>!M9{v#?u4rl zf#sv(1DtT5gzZc56c%`ZnZQ3k73-FY_s}5mgxG^VE3X7=HJ|Rrg)%XCS;*>(+3fRn zs$NVSx(s5<1zQo)=f?}EC(F9l-ru}vZL5N%dI84;-@sk3pMgytc)@rZ?6+Iy{rz2j z2YoZ})xp8_e+gakLj$Q>xAH^KM#TCBS4cKu2umxFOhgv&=NaZS!wkkhenxGV22a;m z4OECs_QiIRt@W317*ToU>K8|I98fgPA%v>qe)_!UJtidF6E-y*?{27$AL9g#5~1ma zqwvdO!v*Yy*KxT5(y&AhN#8`n6PT`EjLw^}HDMW5DLVN&kkJ?=`rR0x-x~I-GQM6e zxKO43oRuy~4Xj%to)9P2+fER~Bw?t+uH#v1c4a$Xc~CnLYoq5&kMJmlb(yl3`|1M_ zA0G_t+_9ga0%@Ssklo~Wwo&i;LatBO;t~BMgH2&d`vYLj=YQ&X&&Qyiz}ir4ETVNT zBm*|?eJtFEVaQ&<0$ykiBH*vCctIGS0vIk)b zZER>nwv9toqSt*7XQ~1+1{sO%4pcp~pw9z;isb?JH1N?*szO`r9IDiRoSzE%4{~(+ZJ}D}(>)`6an4ji@;HH{%7+LJhc5~Wqr%PBKCW2Ll<4t#v@>7$ zVYJ+=R%;30Kd>S`ds4-rd0gKgL3R=TVYh5!@dFlN&;#^$?^kVfz+1q@^-7{d3gDkI zN=n~j?(H*K$1|=X4mv&Rn}oW;m6$?X*3tCw_!Kx^T8h5NFW`qQqeC$-5}eR2?gC@& z0cZP+H4b0Oo7zw&F#q=BZ_9ljBW4uN>>TL|h5kyofQcBhd9FP z9)1LxVR)Sq;nRPn>{`+a3)*RJrVoh8vRw*rg;Ar)wnQ+F^Dlg4#FyB2_z)1M-mr*m#E<0XIzE_&_kT&P zHXu)X=n(iHLWPAz=HD_*_4PcDO-c+Ed%28j*;jaKJIqkB^_nn7G`muSOn5bxGM|yM z@RovQh@9Adi%=s!l*z8Xx(PMr(zw)pn6G9)H{9XlH|BE?rh?MFzjg6RSj2qdKDRAU z&~sdACZfP^oUXfzQxA_`4=al#5yuf|72{N7C5$KZ9%524-Iq#iYF3{}Hk+syHY{^_ z!o8S>INd&ic=ciT_y1)XDtnFBLW4|Es3%4Kdo4W4s`vNosAO~C1yuje7`Hd%E?FNv z!`jf^IRy=0fQmsHhsvs|#(1%C>OuySTQ6|e%8HLrFy7TNFLN3pmu`X-0IXP(8sm_+ z(Z+FEGyjc?*}((H3B|N$e+stR)5Da*fJ6a}J~l2~r9}cHWWLSPY4r(B6@$rI6~FCl zis3SYaRvWT`F`J_`(#L^nPcb#y>1s{02b!RsfwR^HZ32E&M}dwW*?EFGf6)4!^H)( ztAaj#5QJ!Z#d!M}2nfb*(XjUit~W!-gMvUIH9+jK3(y&TP(qK$RMbO-3d&(|Wn>QyJaSWw?J}ZGk&~MZjMr+F|YDNRq<(r;20< zKfkf{2PQ}~oH6g>`uQK-TL)y5Uo<72oyS{P|4$+HPzV3LEYe@A0W8i1!h3PQEifvZ{tI zDhawp@@eStK}2l2&|cy|EIz1F2wDr3vt-r-8k1BB7UbS`*R*!>NnqJ&X&^!Rj4$Qo zQ6k+ej%hyG>_ribM)PUO&s#TjB%)PEUMIDdRVj;*Rgb0_i;z6 z@DR@ZKAz&>Fa3SpAj}wrGx2DUe}7Y0^Gj#>gBPR^TVHl}A-jZN;eSpXYx&yahWaP=!NMBkn<;7*DvZ6QS)hSnpGvcn-4z z?8Geou1bX^sqfh*-0DnqD;o#SY`EP~c4CmiVE_#)>k}|<6e8%w7ypg9fk8lkug-;4 zbdWyqZLA!k7At|f;c zai_77-7E>9-^(G(2z>U^IAXJ0O-o02(q!dMzTTRGQdwu6I(LPB$$lKvp{s))egW5Z z_`-knvy7WwCsF`&N$uNqsdb^lI_^T{KQke9wRg+wNW_B@#BOa@MN zkGBXjRC^CMSGB4_e+m4;DkgL@O|3ln!Xb@Oz%6buSLFSD#Fs%*pI{%CFHTTmGhUGF zNd@e}Y?_D^*+Aj0TWwLv^I-@#3Y4o6@K~2=a1&`)Djg&nYxIIYQ{}u`!0FWbmK<94 z@?0v2ssP({WUpIccULwvO{I|5};~>4=$U63a7**1Nm+C!2BNA z9wvX!NN&Y(d&&B-%)U|zC@Xdo-?#~YV+Lnzr#WKedCuYP(eb1Kfhbf7Lhivww zp$r={WY1!8afznj-pxJ@M6aCT*7q$cr{PH(9$3+3jwiT;|Bmx*E{ae7tNl_5X+wD$ zoi@Mpf`5#WKR&owIEliD>#zSpW9rV1Kcz#w_c^2?chTg?y(P5WN7NiGg$>N=(80C# zxlx@9C}S0aC|!|UT|Gh8{|o%vgBepeKAEBCx5C2ByjRPXF-78(PkIx9SGH$(C@KZ+ z(@~u|XuiMmt~1^4>WunTb9+K}#%ozHQ#o+wJeTy>nm*{5u3+hFqK|fVGo!S>nR~=< z1Yu6V5-9Ib86W9Lzu_K6%vC`35VE!Q>d^R)0KGeSY7I-s7FXfDxeh#gxKFQZHp(M6 zN5L9HYZ){&BQh=`^enc|1?zLay;odA1}22`JTM)rKCX3;)apO0FTdtuq~DVaPBV&L z$taBUA;+<$SC@)7+pJ-HuLdgZ>JmiHQ#H8_7Gr=ER8F{rk1Z;_^i4<(u(qo3hqdl7 zfK^bJk=b?*nlZbCBb>#f;Bn8pTScWUM?UtIv>*Y5Wlpji=!yGj?@aNCY@(0dHYiUG$5$7cciUZxL zSJ|7Rs%`)TF6)NIxFfP)~lW1ZPG|;tJ@;h)L$KYka@tVm7hv@9U#LD4aDr>WI87F=*M;cN!qKRON4JLlQ98aAS{;dpEQB2#bugNJE&a zp`4v;c7gKj+3fIshq3^3q)tf1yGW4MACh*-Dbme8$rsyg_=i9!_O~8KDs0BL95l9< z^yBa@0Prbpg@$ovJVf%w>RZYfX$f}Y9}yaj+ykPm#bm3F=h#5NjcX(#s>zwy+OX3L zqL6!x>Rvx9fXC+{po}o(I)RX`NupC@KL%E}5Vew;pBp|dF2SsM-mvnaBnne}XU;-J z0fVaGlQQu`hc=!?lN)URE>L7yGwSCyOfBxLIPZ!D9jsLf(y#6^KmDFE`aYwmPareb}W^-j#V z-@g)ozIBoyjr$wUpc(~SuU@Nv+vuuchp7-D4^0ojfAdd&w&&cv08<;9jr0P;?tVv? z=HSFli>^%1r;lYsfrJippFNwh|61_P*2{L!DSA8lGUr?A5x!`VBJS({Y|&L7ZBJJD z0GAU(LhOA;{i|Y%Ow`)JiiN|?C69)uki)$WdD&toTP~D1jIEBDL+BAc!F4W-o5_H? zo)&f;oG?U4PAg)o2Sf`FGu^_>UHXMYd&-V=r-%|5fk7gM1hqDC>!-3v^X^*o7-g*^vrXuS7`5ZbX?43t|W7F~c5#%b9k*lX`t>I0+w;36yT zP??90);FD@^0ww{myjwU!B1Ov_h!90q=!$*8QM#J=MB6?`#cGi;V4V?XBlxj*g6Tu zOADZ6$L{qBf!~t&%x2-#iXuEVQl|MV3U(6;{+n|fucw!Fnx+3u8UF8@={NjaX?*{G zC4!z;28;Op=g6Z2_!(4q3amas+Ccm~!UA*vxTO=x2J~sqCKJ?7o3*x@#=)z_YEuL; zR;0*WTI8+0jz)cKz4nWXkOnXCr-oUgO+f%WLnpz5Q0Hx@bi3M>EG<%J&0zrVNw+Pq ze-6hv*R_&!VkU3u!f%in+=G_?91EI)zpLNFpJRN$cHlqR0G5sXgH}=nE z6gZ>21T(iS%~bTrxr7&$gj`L|$yuNIeXf{_u<>HgNN$ zjqiaD1Uub@{pE*d%&6R0{qvYqmgx1P!Q^lC`cQkEju!v7C7}4hT$3!zoZ?MU7Lamw zD7-P!iMjn>T==G>P%X*yM(^+d&%3UF%(v0+uz}QX7fV!dmfk60U)%jE zj0=Ku$R0Y>hs9V3N12f;4SensL%d@j2z(uMH+=bY8n7xZt8->+h1scs z4=t7S{EDAe3_J|r`As?SfNEdwr+Rn-%cvh<-d3KXj6ar{dPQU$GIDG8`Fj0W7|*!oMn7X+_0YM`p7 zDEH6CFXzuniuAq<1tDZ-)q#h;;kFsgSCt%D|HX%zBrd6d>#V0f(c)BI>%$p zTnr=3-UJ!^@Z#(J>N=vq*+-W`teyta8}PCC-GQ;1JOndv6M&a+!S}cDe$L-y1Dwh< z38l%gZ2iJ8Qa1tH=4Ln>f_K6_{k(vX`!@T%Fd>+o+ihix3`SNvC}dR?vJbA$x){b4 z;2-US?rKJZ<^iA}1v`GE1Jc9nuK#zzg^qAiXqC>@r8CWC#$M^{g}jXquNhuk*+qb* zd{&fOJPuC~P*MkJ80$vcqIpwLwlMqmy*T)WVxjK=2Yt-|u9RJ8XdPA9>X`pdYHOpX z{|mU1u)>lCQu(YDgvjuOLtMZN=r^XT1C9@z(u?n^NoUh91N}Io)n@A{IDzl9Y=vUk z(J(%A)$(HVo8wX3>^nh=4c4h$KEV}HI>mUBQ|62Pl)k;y6hN5<3~J%Avq<7mHhA*t zV?qFlGy{+bda!~>=a3>R8MgF0RFeZc86d%=!dn7Wp*YW7^SVJ%dH?W_n|RCl{@&?O zo4kRM6{$xtbW)scHleF1D^anS_a}dE7A^oE9ku;k>? z@HwtotNt(CBbbLwswrWLr1heGDy%UEm>;P!y`B@;E=uURH*@lO zpOu)b3Y<>NkpJ@-Nq+-cc!)F*%IYTPdpq#=M7mDCo)_W_mhhjz0s0$-na~fUjgLO; z;mQ(sMXRoM@alm20=K{uoA<~`l~90%Sw== zKfy(o=iOKpFOT%bu-^&|lHejPQfsz8mD)>LK;xOEwRsMdoCYac4wcG>v%u+^gqiTc zC{iCz<+kesEl+-M70)wuCz7v|efv=dp|FLA(=tmfA1Y3N+IbC5HT>?p?x zWgCTP1O}}OZ1l1X+gZxm5|Ge`NxCS4zl92aBoZ+^4A|p#c|6eF--3{3p(K`!7ftXPi3l~^#GkV3Q{OM1Yy*= zkPz2+GLZx_TGS06vNc&XREBnnCD+ZjgatXx4J0T8ZFJO$rWK}dV55_i^*=>xxv9_# zW=AWi&=JRO)f(e5&?boOSDB4`(-J8kg*S}*p4g&CJd%r(!1>?qZ^f|h zx$(EZzxXdaf6J64xG1)i&BN+Kn1I+#a1phL?{9hezR4Cb7A zTPj>eNdC-q06Tk2W_5pB(jj$Ss7;q{4|eRs5ADNToOpDE#znyYaP0m4&VGA;)f8qL zT&JfmQN6)yGhU%JShU}<)YpaPJ=Y*L4TCw2#uuXo8L(&9*Xmj7@oiPJ zhK3}{G^WFD;+^U!d$C*riP|5(c(Rlh5S$zRI&!{Z2CToOG30B zW-suD9y||X%(DOqO92$_@*S32ZK;$rNp~XB%*9-DEF!$s~(X5|RgAr8VW*`c-@S*Q==#El;Ty#|T*^L)_ z_$9%;iLR8?;h=d%Xc`6sjE#weT^;APVI~JiJ>2EEaU0HtJ^0o*6Q)HTmzgE6QODA&Fk#an;@cdUb{B; zNk1XAxq@59OH#rQ-*N~9d6kZz#D5ohMge8A=&{tiHKF>&9GmPU8m503hUAEii(5Cr z+uyu;^(!PJMg5c}Ed2M+xy_frcMoLQR`7LqY8%oX#GxQwn=LQgpIax&!U zqH8(69ipl_t#o<`;%7IS3i65B zcRK!VH;dH2LWn+J=?#SBMEK^wae>vjmRlcw)Pqj6sdf(Tv24Oo4=GB1W45 zIYv)MsJ3|V+ck_+!SXDzF!w1a+oXnv7UPhMy@7GR})qKAqXuP1=7 zZzjB+E9H>Y&Bx^s-^oWK`h}h@iA?JkR-{f%9f#k;$GD2;lB*J;YEyVnz1qr-kJt_vyQ(J}?bC}FZhQumcf|H%%`L6wfb&B?{DH#Q&+LX5ENK2O4HK?I+T<=)m>WKp zJj;Wx(Cb9^DHuNE&{b@TtY`g0bHjy=*x*E^0(QeB5-A59h{0d2QsB^>%P}Y{GO+=B z<qdkBbf(A9?e#%5__oex&xIk^4 ze?@a1Cg7@3(6v)xm@zHCd&z}NluRy3$Bgqr+-gqEM>VV`LJ zdopljkd#9u4P-rD9F)fytQKNl&86=`B(?AKNc#BjgF8k3%AW5e)F`6W=Kyn&&9Bnd z-wy#W!|s+xj|PK_=<|&}^=mQ>*8G@^Z?8>gu~yi^oT7m=tkPcEMjGV1s6y^ny zUB8_T4JVBZ?r{C26TfgwsqQ_Pfu+1DVjNICJ6hqwpS#D~c@E}7X=G6vk%0LJSCSk? z&#S7<(PlyY#>f;=W&DWK48&}&@gA^yR7ljHNHHj)m*z|yX?W$@rDl@;Y)1B}02sRo zJ*F9`rZRP++E@P3V-Z0SNQa>1oK`xoFV;Z0zx{K4vmkj(pH%)Muov2X8bVa!Xmd~- zGZKbLCPpv#MX;Zb5su>8DbYfJ5|E__9B@xty*78%%&)Vxkv@2`kB`p3*EC zO2hi4Pkl(b+Loky6Kl)}w22+=(~x)1Fk3;xzcQY0@AO5l5?Gpvo%2dn)I-Ba*faKr z_I7G_g{M;W&7b!)v|An8kJ6Li#n)~MC|Z6f(rB*VY1q!~H&}twupg7+Y_1BiMN!Oi zJy*7l#TM!*BbiuNI3_SvrwtM z1DSR!eZy&vK!PfNddD%683B^drmsE>ane%lW($W60T9h}NKJj{Cc|d?efazr7Vh-9 zLk^z(#9Uv>1_#EF9VtV6FyDv}QjpCgjVE63WUifbPwo&oBbD4mldUcQ7E12u=InRt zDVGNI6*F4B^iUNK6zM-oMwyKzcLnwoNd4%O7MhaDH0nUR(tI4DG9ZY{Ey#t`F}Gng zWbL=>KiV=vRO?!<6q-Z#jPlvu5B5xb73 z7Rw~ffY*_CPltt8Q!Jir+12_eM*|#}iiNcgwG(B{xP=KR3OscN*e|~~kBpt8apFIo z`qF!Q5P{Jb)b4s)JI^~`J#QK${cVeWW;T~3{@~Y-1AOsSF&o4;ux|8KjR}*vAzG!o z)!mp1{~3dm_v^!++3wx8&^cIpZhPjgJgN7UTuaKdD!l@pBb3-SYW;alD~rq*>7K1~ zFiIDrnuLpM*BS!>+cd9-jmAAlgRkE!;uebE`1OZ96%Yf;<%vMbxWf9L65p2$_c5TW z6tDGdNvVC4_!)mwj=0w_ z%|Y=SlCjf+Qqr0W{1!aX4q?IXE>vUcrMee1{XTL2DwfsYn&ZPOxt0^Ac-Rf^wj;%iRYHGFodJb3`gFe@XhSvr7I;ic;l&i5}^#M~y8irRhMvwff)UnDmzio8<~rB~@&_SuMv)vr^lDhR(ol>z== z185{h_q}$Z$^!OvS!1dVfme`rI z-Nm&#LiZ3<@>`csliT}`V~)ZV?iC9rm8wz@y|hpUZgHI!rr?|pr15v0kg;CJe*_b` zu?0d;jNVQY1dMsVM%vlRQsg1B@DR*Rea^#%z5rU}rIC}G$CZ!DKaAdlR*W53aBSMU z)IqetR^-NQbY|(}`o{z(;^xupY}x;qz-1Ux=n1;+lTKY3GeRGBN*kdf7Kp2(rbbHfX{>~kPPr^aE92j`1XA21 zcRZnoh_{;Ec~==?=~bSUXNpsBL|dg&SjhTp%JJDmawbb*&CQGMYw1P+sT|n!@;N3t zjS!7^@r+MBhXorCJPn|*?uMav0}za)D@O{ZL!5NK@cZo`+t}zon!2q&Nbzg&fON<` zmwCX4K_P%ubd%O3Aviqb8YDx6AkQB3WHT(Fr@(UmCTsNqFosfn`N;TiJ`~I`0yBQ~ zZ48)Wrp?sWB^!gX0=opnI0d^(2g7l}Z!%FBpK_PIss=fSJ;-;iGk9vKRQ(pjGz1*B zubVI8NcuNQSnXw;eY8Hl!B%vyV@j|XIM9uIiQ$d(#suVt(j5_g{Gs*I-KFv2f*P># z$zRMtz*0!Ip_9kSZ~SMvlJKVclS4CHu*u_OW!TTJf*?*~Mog>?XI5vZdsigAp z0#r0Xjnv1{J#BhDlx@eA-t5N!5))-T^hkES+dU`GIsOj^LIq}b2H%?kVXFu?{OP^u zk4}y`uM+wuE*JYQkbnq)-=mvZeq@&ET_j=o?(FUB!q)8; z_13kPxz*`ABGD=DrrpT|Clr}-+54iIH)G$d*dC?8k3Wl}`B7Al-@^j>ucLniANn{-4N7{Ll)Z+?`p`^S z6O*}_CKaCkK+}f>9y=l_%Kjb1FI}tdFGfgWhG*E3{LvvcN0G)J&0M+lC zM=@8Yv*qJ<@Vqr5X z$(ZJ{n06a-^s?@@?n}4|028e^pdw^yMP`g;P8N+1=Dui*pk^@Es3%vXuJR2k>4iTp zq5RUm^+Up23Y=#S*{9Fs8`I@uaS%Jm!!ZA#0sp@2LU7DxCR~?-qSi@7Q~{XfIcbY| zIydvbm3}~%TIk#nDeS3yhtD`pW4dH$dHLkC^67;PM*;I-4~vVcfzgX3M}iA#D85}# zEPxpuBR$xc#vr zqeQ;8y~4|Yux-x#jFzfMC#WrqS*Dx(8zCqNg*)qZV;Cwt_0w$V>;(KIw=o<7u!LM|BjNmUnu8zl^ zsOl!M=S^z*XQ3aLl(5h!5u(Btl@>>)d3;*yP5)*rRRm~fxHExlgyg&*u zfI7+IFk95Nv&5s58=t+;v@;o$2VZuA+Pmz3{fTpPUvNQk^Qg%otV>dQ36<=z8gf-7 zDG_f<-{AvO$^FNxukOJ=b^auuEMGX?f|5h6I7lz)`B}a~LI%qI<4}zTDGhmk9pc<^ z{5|zvwon$ci9`v%&16n_HcW<$Zs~@y%?`O6?!$IG)R8;LeORWxp7b_HWtVv+xyDWD zZ+Z#>0r1h2XBU~eTFZ&9)=%5M!+K&WWqe%EsPguz-W_znB1bcm0MXjMK;$CBE4ir) zns*LwS;aOo*BhiTT#qrAx2bi`l2`2lBA(037l`3mySuxa4iSxYujn!caw9KaN)cN8 zq#5LUkJ|OP9BlMnAou!rxt|T~w!LvU_;vlt&}8sfb6E9-Kkqqjn2K~iSvyn(@MAQN z%~Rc!^U>*`YRAO_4GHzO`)zS<*(-x%^&Ek8yIUZ9|(_S@SdkHJa`Yx3pR`cZ9TX}aZ~X@Rj^299PR4z5K%FL4KKW7v_$d1?`6M* z+_*sFRJgepEs*FCzvYo{+dp&g;1`5y@GYr(3cc;!#{q9&h1?>~iIm}@&5BZp7U>@` zSi)wqOy2bLE7ZJES~ueK+T8LJLgMkkB2=aNb#Igwt>fSkQK98~PUg92C-dGpvmypI zXXtYpD1G`6K4ee8C{kAg65qeRQUiL+_qFKqsw(hfI1`wRnOFALXUd4*2A#?tyc4!2 zyRwoaq=N(%#8)Abgk5y=}N0$v@un$p(IFd*-Hhw*F{c+s|I5>i`E2ocqOU}p8txnGZ z-@i^r;r9~(1+yRdkECoaU61;#!76SQcm9y)iF41)9ciNZUqk~p)2Q@%GE|n2qAck{ zZQPy3o&SloIVV|$ED~+)(`wG_@TMIbz8W4`?&GKs=S+D)j>KquvvGg3(A2nh){OhL zz6K;JkgV5MF4V%T9am!IrSG*9@<3$m6E;H0eEA723JgLFo*8T>ce%QxhP*y(9-ko^ z!HDxjw&PVjS|CHN1sStSMYCaX`>zcH3LWY+QbEdZ>T`u71O91>dsP3%B{P=7fsOFm zicjd`Ka!_HvT`rfv5~9oDC={`Cq<15t`-~wB??TLgq0`oBZ}DiMokVA+z5yG8_w*>2WylDEReY^$PcR|t$|4v{1hx_T^KQlCc%@byb zE=Djfgiq;o;g*gf7Dk@0CdrV{9mNYB$~a#BE;6WlAaV2()5MCnHZIsI^%E^8C5#um zQ2MWbe8?&i{yqo>?OWgYPU@p=nqXYqs^??dh1Wmajn{S@$z;8KO@e$88BT0bHd|Lm zEe3Zc>(u{@I3WU;mH9h*Ij1fMIy_nSJO!Y~is?H5vBy6&aok}MKD8c8UOwyS;d?Tm=q z+6sP%y-LUl(|DMPy#P*L;E0L>1rJmi*OHu1q%4z0ux3tFO|;g9)Y3rw49_KAhtCm} z^Xu1*&q$B5|Al_F1#VW~^k`#xBGFv5^wG(UP*cVo5yYnqZMPA24LUWuHv+eEp-KkQ z2xd{eJ&Y14i4G>q(b+Lh&-b)kGM=bPwY;q@-Ujr|Slg6nxl*gkUU1~Yz97e)@w~)k zl`7z-00-!1$OMr!>95rEF8nP}<}NaH_UQASO@5;wJ(y#Fwe-EiRg}_@J;?hXS7?fA z$D2T50^PQhMn0D0aruBsv+OX*pMBy;Mv=pM{Ej9Zf$(ARfIIN%>$0+ay#$)Z_o%>B zXkc)dtTWG{Pfpd$d(6CDAxf?_P9# zyVaw*&v$gFbg!x=n>DNM`SPpFA2}%`1tvER%VgJ#%xW-uoEkoB-s(-37$H0)Sc%D? zb~mVE3W)VIS|Q;4kYbHqBe#y;Zm%RldT7Z@$eS?Xs2UF$q1FJ%^h`pq z_;Fww;}zkFwzgM0PN|*aH2gN7IWM3mPtw2x^OZb_;z@+@PO=GWp?cn8;KQaAcKxI` zm1TUMu!unLzV>!9MI8qFEa7h6bFaDokW8-lXOJsGwi(}Vcwy)#b*n@211Ls zKQf8%`vd86*m*T)^L0Yp7`rjtxq@&gj1@@V3&4n{p=<)8#Kg3#0s}Q3w`DwutWRxu z!NFm9u`pTA(3&>kA{*KqXz=x6DK=0HA+-L>%mdhlduoNl5ww zUXR>%9RG7Iq{W+3WqPZ+O$-je;;Y~q8VM3!)iyC5r{nhu(P&z|68|yX1Nm=60^VCl z`{(ui&hxN&@3qV9?=p~~b#z#qp%P$-@L2g_3XVmy6 z>2?v*(P#t#vZ8^b$4Si+wf26C8$<84pUS*0uTG5d{dM>5 z#SyxnF6=yXLGDL)XQO7si=#ga4@H0n&apnS!WVCFrz7^O3b8~VLb^Ndf4&+p_0yS| z24F;g)6BkbJ93O?JsTfT6n~;%Y!HNiuz)YkkqjJ|EFUH{JE7k`6|4D!bVMrz1x+MC z{yMfc#d?{NNOoo4Um90_lSPH{7wK<5quPremmr{Qb57gCEgBAWZrW9C-QxI z-I*ks4e>@Q;9c8ScSzWqT>{rcxL+bO+w#o2-&Prd?inO(IZ>PtnWl~eHhgeeau<)_ z<+PHh0%z#w6rU0>IoOaugA5^5+Zb~<$T_B~&1;Ktf7jB}+~1Cmq>$X&ScZ{SA5dt1 zQHB#=0ZA7jfI?35ga0vf7Hm;yahFcvVV zkn@|h#K2rN|AE-P=_J=D6*%Aba~~V~hLr($bxHIPxfQY75~n?DlOzO%6L~P|;ceDo zsoxnb)}?|d3!#mwKkV;{C+%6?rtu?j85xP!U98@sF(G-{Mhk|3M691LH1&Eeyo^3$ zh3D?1^o8EKc~PhuY}caB<+8F{r9p`gBh&PC2Dl-fw9f9chV7wp|y$I1(AL{y(Eih#2zI7Y7*VKdHmj#bZi=_ z1;Mw!lUwUTdLYFXv0h|;10`RGw+7RSzX^Bcl@aG1_=!>dmG5}I_B`Yc?xX#*VVf#( z6q-u|90+DebNQfC!ZNEwSSIsV#f4CR^}lDbbXJZw)naSNFT;7;afxNW@}|2cI}ISpGfWYm+RUiD*9bp1E61|HQ~sx_-wq3Z%A-4hu!;EV@_{xx*cQOM;(`1_rn?m z0+WyLnnyl*@}jb1+G3jQ2jhmrE@t3+`{zuIrnwhsz6*GkxdUC@Wr6Of+Rsg2dXK%L z78`qsUc|k1P<(k1tqUJ4Q6dCq{cO*)*}@GGcU2<+tQweiJC~M_a;Dvc6LSU+3aWk) zl>DrNM4CGA&$?;jt#;@^U;;GdAg z)GQTex*S90=Tqq@5SMJ%*VQhJeD51E3UHE_8_~pg5;Sa;=XGSNFE}`k_@glFEu1*| zMxVkTj>NO*ZhJP3rKv&qX;=J{I^l*21y2Ek7R|Gly^@KR+;h1LabFF3+Si$zu)*2X z7tXtZ&FIBtI6VQfU9nwLiw7GUw+NhAY!Z(#G-+B1{|k`99T z|G8w`&b^j(`B{+At2sbBRSfeO)UNJ`6mm%djeoBEG!d32gk0NpvdLU$6#$?dp4ftR z8O4gxugg|~`|3FA9a6@)fngBUJ~LSRz;RR*H~f`lo>zr`6TjBZ%(4T2vuw`*OKmB^ z*IZpVn^}&=E_#6T!xlpWl>d>-_uHo=4zn7EG+tUA_Ac@pSNqSso}63;+wO9p%dM&rPCcIq*i>)f3IXB% z0oUanmf0F`w!_~j!isH5oSVC0#QoomN9nxWXDs04i=0#Lz%7mz?raILi3aEt8+Lr< z-_hTtz{EFbpD81Dty=Sba4BBALkJbLr;m#c55QL&=7_RXZ0?#+{Vuk_1$5)1f1MH< zh9}NL{0PjiO_EYY*3Mk~NGkZx_ta(=Bt-+j8%6~!qxPZH$tt;IEf^+azdF_P@}eSPaGT7+kw=CAU<(wwZak1z9lqPUr{FtN@^P zihGU)h}O?w!?ieer>LJaYiTB}?3a{Uz>Vi2zcZUKht&sD3jG)GeDvTsLTvGtNl=sv z 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 p5@ Date: Fri, 23 Aug 2019 11:54:21 -0700 Subject: [PATCH 59/77] More release notes updates --- source/_posts/2019-08-28-release-98.markdown | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/source/_posts/2019-08-28-release-98.markdown b/source/_posts/2019-08-28-release-98.markdown index aa968605ee2..df5f41abab7 100644 --- a/source/_posts/2019-08-28-release-98.markdown +++ b/source/_posts/2019-08-28-release-98.markdown @@ -42,6 +42,26 @@ With this release [@kane610] added a new possibility for integrations to offer o Screenshot of Unifi config options

+## Docker base image change + +If you run Home Assistant via Docker (not Hass.io) and are using the `homeassistant/home-assistant` container, the images are now using the same images as hass.io, which are using Alpine Linux instead of Debian. + +The hass.io images are a third of the size of the old images and are heavily optimized thanks to the hard work by [@pvizeli]. + +This change will only impact you if you were extending or customizing the image with Debian packages. If you want to continue to use the Debian based images, you can find the Dockerfile for the old images [here](https://github.com/home-assistant/home-assistant/blob/0.97.2/Dockerfile). + +For more background on this decision, see [ADR-006](https://github.com/home-assistant/architecture/blob/master/adr/0006-docker-images.md). + +## Webscraping + +With this release we have deprecated integrations that rely on webscraping. These will be removed from Home Assistant in a future release. Our [scrape](/components/scrape/) integration will remain part of Home Assistant. + +Webscraping is fragile, breaks often requires frequent updates and there have been occassions where websites have banned our users. + +Users that rely on these integrations can continue using them as custom components. + +For more background on this decision, see [ADR-004](https://github.com/home-assistant/architecture/blob/master/adr/0004-webscraping.md). + ## In Other News [Mason Made](https://www.youtube.com/channel/UCI_ONUzb4QCVuR57IL7C8rw) created a great video walking through her Lovelace UI with a fancy custom sidebar. Check it out: From cedd6bedf7231e4be12211ca98ee2005f6c10e9d Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 23 Aug 2019 11:58:06 -0700 Subject: [PATCH 60/77] Add components picture --- source/images/blog/2019-08-0.98/components.png | Bin 0 -> 16323 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 source/images/blog/2019-08-0.98/components.png diff --git a/source/images/blog/2019-08-0.98/components.png b/source/images/blog/2019-08-0.98/components.png new file mode 100644 index 0000000000000000000000000000000000000000..ec03d185157f6af8e6319e668ea03449a6b6cf0c GIT binary patch literal 16323 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 Jm4tD?{{Z|BujBv# literal 0 HcmV?d00001 From c10e07eb86dbcd37dc24064eee5e5d4e7493769d Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 23 Aug 2019 12:23:25 -0700 Subject: [PATCH 61/77] metion unifi + deconz having options --- source/_posts/2019-08-28-release-98.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_posts/2019-08-28-release-98.markdown b/source/_posts/2019-08-28-release-98.markdown index df5f41abab7..f7cb20c1e2d 100644 --- a/source/_posts/2019-08-28-release-98.markdown +++ b/source/_posts/2019-08-28-release-98.markdown @@ -37,6 +37,8 @@ Config entries also work great with people who prefer configuration.yaml. At sta With this release [@kane610] added a new possibility for integrations to offer options in the UI. Options that previously required you to edit configuration.yaml can now be offered via the interface. +This release adds config entry options to [Deconz][deconz docs] and [Unifi][unifi docs] integrations with many more to come. +

Screenshot of Unifi config options. Screenshot of Unifi config options From 27d179a06abf6f9bb8a3ac50ab34fc5b14e2a224 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 23 Aug 2019 12:41:27 -0700 Subject: [PATCH 62/77] Add alerts --- source/_posts/2019-08-28-release-98.markdown | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/source/_posts/2019-08-28-release-98.markdown b/source/_posts/2019-08-28-release-98.markdown index f7cb20c1e2d..67cfd347762 100644 --- a/source/_posts/2019-08-28-release-98.markdown +++ b/source/_posts/2019-08-28-release-98.markdown @@ -64,6 +64,14 @@ Users that rely on these integrations can continue using them as custom componen For more background on this decision, see [ADR-004](https://github.com/home-assistant/architecture/blob/master/adr/0004-webscraping.md). +## Alerts + +Devices and services can receive updates that can cause integrations to break. This is frustrating and sometimes the cause can be hard to track down. Usually the users on forums/chat are aware and can help redirect people in the right direction, but that's not a scalable solution! + +So to combat this, we're launching [Home Assistant Alerts](https://alerts.home-assistant.io/). Home Assistant Alerts is a website that will track known issues and explains in user friendly language what is going on. Alerts can be tagged with applicable Home Assistant versions, integrations and Python packages. + +In the future we're planning on integrating this directly in Home Assistant, so that we can pro-actively notify users when an issue related to their configuration pops up. + ## In Other News [Mason Made](https://www.youtube.com/channel/UCI_ONUzb4QCVuR57IL7C8rw) created a great video walking through her Lovelace UI with a fancy custom sidebar. Check it out: From 4206ba310f63999120750b5bb677346578e9bb0d Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 23 Aug 2019 13:03:59 -0700 Subject: [PATCH 63/77] Tweak alerts text --- source/_posts/2019-08-28-release-98.markdown | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/source/_posts/2019-08-28-release-98.markdown b/source/_posts/2019-08-28-release-98.markdown index 67cfd347762..32eb02abd83 100644 --- a/source/_posts/2019-08-28-release-98.markdown +++ b/source/_posts/2019-08-28-release-98.markdown @@ -44,6 +44,14 @@ This release adds config entry options to [Deconz][deconz docs] and [Unifi][unif Screenshot of Unifi config options

+## Alerts + +Devices and services can receive updates that can cause integrations to break. This is frustrating and sometimes the cause can be hard to track down. Usually the users on forums/chat are aware and can help redirect people in the right direction, but that's not a scalable solution! + +So to combat this, we're launching [Home Assistant Alerts](https://alerts.home-assistant.io/). Home Assistant Alerts is a website that will track known issues and explains in user friendly language what is going on. Alerts can be tagged with applicable Home Assistant versions, integrations and Python packages. + +In the future we're planning on integrating this directly in Home Assistant, so that users can be pro-actively notified of issue related to their configuration. + ## Docker base image change If you run Home Assistant via Docker (not Hass.io) and are using the `homeassistant/home-assistant` container, the images are now using the same images as hass.io, which are using Alpine Linux instead of Debian. @@ -64,14 +72,6 @@ Users that rely on these integrations can continue using them as custom componen For more background on this decision, see [ADR-004](https://github.com/home-assistant/architecture/blob/master/adr/0004-webscraping.md). -## Alerts - -Devices and services can receive updates that can cause integrations to break. This is frustrating and sometimes the cause can be hard to track down. Usually the users on forums/chat are aware and can help redirect people in the right direction, but that's not a scalable solution! - -So to combat this, we're launching [Home Assistant Alerts](https://alerts.home-assistant.io/). Home Assistant Alerts is a website that will track known issues and explains in user friendly language what is going on. Alerts can be tagged with applicable Home Assistant versions, integrations and Python packages. - -In the future we're planning on integrating this directly in Home Assistant, so that we can pro-actively notify users when an issue related to their configuration pops up. - ## In Other News [Mason Made](https://www.youtube.com/channel/UCI_ONUzb4QCVuR57IL7C8rw) created a great video walking through her Lovelace UI with a fancy custom sidebar. Check it out: From dc136ba2fdaf693d53f822506db439f603d0fe14 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 23 Aug 2019 13:05:33 -0700 Subject: [PATCH 64/77] Add HA Alerts to footer --- source/_includes/site/footer.html | 5 +++-- source/_posts/2019-08-28-release-98.markdown | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/source/_includes/site/footer.html b/source/_includes/site/footer.html index 2e075aad9c7..697c6cdf3e9 100644 --- a/source/_includes/site/footer.html +++ b/source/_includes/site/footer.html @@ -12,9 +12,10 @@ - + - +