From 4fa6a00bababcce3623c5efc3e00e94658db1447 Mon Sep 17 00:00:00 2001 From: Jason Lawrence Date: Wed, 22 May 2019 09:55:17 -0500 Subject: [PATCH 01/69] Remove 'include_non_clients' config option --- source/_components/plex.markdown | 6 ------ 1 file changed, 6 deletions(-) diff --git a/source/_components/plex.markdown b/source/_components/plex.markdown index 96897830e66..7f79d25cbc0 100644 --- a/source/_components/plex.markdown +++ b/source/_components/plex.markdown @@ -94,7 +94,6 @@ You can customize the Plex component by adding any of the variables below to you media_player: - platform: plex entity_namespace: 'plex' - include_non_clients: true scan_interval: 5 show_all_controls: false use_custom_entity_ids: true @@ -108,11 +107,6 @@ entity_namespace: description: "Prefix for entity ID's. Useful when using overlapping components (ex. Apple TV and Plex components when you have Apple TV's you use as Plex clients). Go from _media_player.playroom2_ to _media_player.plex_playroom_" required: false type: string -include_non_clients: - description: "Display non-recontrollable clients (ex. remote clients, PlexConnect Apple TV's)." - required: false - default: false - type: boolean scan_interval: description: "Amount in seconds in between polling for device’s current activity." required: false From e5ea97bc9f4bb6f84799500450e78585e444920a Mon Sep 17 00:00:00 2001 From: Jason Lawrence Date: Thu, 23 May 2019 10:31:06 -0500 Subject: [PATCH 02/69] Remove scan interval config option --- source/_components/plex.markdown | 6 ------ 1 file changed, 6 deletions(-) diff --git a/source/_components/plex.markdown b/source/_components/plex.markdown index 96897830e66..d0c56a1f492 100644 --- a/source/_components/plex.markdown +++ b/source/_components/plex.markdown @@ -95,7 +95,6 @@ media_player: - platform: plex entity_namespace: 'plex' include_non_clients: true - scan_interval: 5 show_all_controls: false use_custom_entity_ids: true use_episode_art: true @@ -113,11 +112,6 @@ include_non_clients: required: false default: false type: boolean -scan_interval: - description: "Amount in seconds in between polling for device’s current activity." - required: false - default: 10 - type: int show_all_controls: description: "Forces all controls to display. Ignores dynamic controls (ex. show volume controls for client A but not for client B) based on detected client capabilities. This option allows you to override this detection if you suspect it to be incorrect." required: false From 1ca38f620269528dde942c515c4a9323d28701ae Mon Sep 17 00:00:00 2001 From: Jason Lawrence Date: Thu, 23 May 2019 22:32:30 -0500 Subject: [PATCH 03/69] Remove naming config options --- source/_components/plex.markdown | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/source/_components/plex.markdown b/source/_components/plex.markdown index 96897830e66..baa6590079a 100644 --- a/source/_components/plex.markdown +++ b/source/_components/plex.markdown @@ -93,21 +93,15 @@ You can customize the Plex component by adding any of the variables below to you # Example configuration.yaml entry media_player: - platform: plex - entity_namespace: 'plex' include_non_clients: true scan_interval: 5 show_all_controls: false - use_custom_entity_ids: true use_episode_art: true remove_unavailable_clients: true client_remove_interval: 600 ``` {% configuration %} -entity_namespace: - description: "Prefix for entity ID's. Useful when using overlapping components (ex. Apple TV and Plex components when you have Apple TV's you use as Plex clients). Go from _media_player.playroom2_ to _media_player.plex_playroom_" - required: false - type: string include_non_clients: description: "Display non-recontrollable clients (ex. remote clients, PlexConnect Apple TV's)." required: false @@ -123,11 +117,6 @@ show_all_controls: required: false default: false type: boolean -use_custom_entity_ids: - description: "Name Entity ID's by client ID's instead of friendly names. HA assigns entity ID's on a first come first serve basis. When you have identically named devices connecting (ex. media_player.plex_web_safari, media_player.plex_web_safari2), you can't reliably distinguish and or predict which device is which. This option avoids this issue by using unique client ID's (ex. media_player.dy4hdna2drhn)." - required: false - default: false - type: boolean use_episode_art: description: Display TV episode art instead of TV show art. required: false From 595b5ff07ad6ca506ee6c47b5cec01ccdb923946 Mon Sep 17 00:00:00 2001 From: Jason Lawrence Date: Thu, 23 May 2019 23:06:03 -0500 Subject: [PATCH 04/69] Oops, removed standard option --- source/_components/plex.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/_components/plex.markdown b/source/_components/plex.markdown index baa6590079a..7e8428ec5b4 100644 --- a/source/_components/plex.markdown +++ b/source/_components/plex.markdown @@ -93,6 +93,7 @@ You can customize the Plex component by adding any of the variables below to you # Example configuration.yaml entry media_player: - platform: plex + entity_namespace: 'plex' include_non_clients: true scan_interval: 5 show_all_controls: false @@ -102,6 +103,10 @@ media_player: ``` {% configuration %} +entity_namespace: + description: "Prefix for entity ID's. Useful when using overlapping components (ex. Apple TV and Plex components when you have Apple TV's you use as Plex clients). Go from _media_player.playroom2_ to _media_player.plex_playroom_" + required: false + type: string include_non_clients: description: "Display non-recontrollable clients (ex. remote clients, PlexConnect Apple TV's)." required: false From fe84f116c3c19f51c02bb073358b8bb7c9321b41 Mon Sep 17 00:00:00 2001 From: Jason Lawrence Date: Fri, 24 May 2019 16:37:39 -0500 Subject: [PATCH 05/69] Remove entity_namespace, too --- source/_components/plex.markdown | 5 ----- 1 file changed, 5 deletions(-) diff --git a/source/_components/plex.markdown b/source/_components/plex.markdown index 7e8428ec5b4..baa6590079a 100644 --- a/source/_components/plex.markdown +++ b/source/_components/plex.markdown @@ -93,7 +93,6 @@ You can customize the Plex component by adding any of the variables below to you # Example configuration.yaml entry media_player: - platform: plex - entity_namespace: 'plex' include_non_clients: true scan_interval: 5 show_all_controls: false @@ -103,10 +102,6 @@ media_player: ``` {% configuration %} -entity_namespace: - description: "Prefix for entity ID's. Useful when using overlapping components (ex. Apple TV and Plex components when you have Apple TV's you use as Plex clients). Go from _media_player.playroom2_ to _media_player.plex_playroom_" - required: false - type: string include_non_clients: description: "Display non-recontrollable clients (ex. remote clients, PlexConnect Apple TV's)." required: false From 5d99d95c0c87ea58d691c3919a88b127fc8f6715 Mon Sep 17 00:00:00 2001 From: Morten Trab Date: Thu, 30 May 2019 10:37:08 +0200 Subject: [PATCH 06/69] Add Repetier-Server component documentation (#9362) * Updated to newest developer version of Repetier platform * :pencil2: Tweak After this we will merge it * Added Repetier Logo file --- source/_components/repetier.markdown | 111 ++++++++++++++++++++ source/images/supported_brands/repetier.png | Bin 0 -> 27990 bytes 2 files changed, 111 insertions(+) create mode 100644 source/_components/repetier.markdown create mode 100755 source/images/supported_brands/repetier.png diff --git a/source/_components/repetier.markdown b/source/_components/repetier.markdown new file mode 100644 index 00000000000..15654ed411a --- /dev/null +++ b/source/_components/repetier.markdown @@ -0,0 +1,111 @@ +--- +layout: page +title: Repetier-Server Component +description: "Instructions how to add Repetier-Server sensors to Home Assistant." +date: 2019-05-01 +sidebar: true +comments: false +sharing: true +footer: true +logo: repetier.png +ha_category: + - Hub + - Sensor +featured: false +ha_release: 0.94 +ha_iot_class: Local Polling +--- + +[Repetier-Server](https://www.repetier-server.com/) is a 3D printer/CNC server, able to control multiple devices on the same server. +This component handles the main integration to the server. + +There is currently support for the following device types within Home Assistant: + +- Sensor + +## {% linkable_title Configuration %} + +```yaml +repetier: + - host: REPETIER_HOST + api_key: YOUR_API_KEY +``` + +{% configuration %} +repetier: + type: list + required: true + keys: + host: + description: The host IP or hostname of your Repetier-Server. + required: true + type: string + api_key: + description: API-key for the user used to connect to Repetier-Server + required: true + type: string + port: + description: The port used to connect to the host + required: false + type: integer + default: 3344 + sensors: + description: Configuration for the sensors. + required: false + type: map + keys: + monitored_conditions: + description: The sensors to activate. + type: list + default: all + keys: + "current_state": + description: Text of current state. + "extruder_temperature": + description: Temperatures of all available extruders. These will be displayed as `printer_name_extruder_N`. + "bed_temperature": + description: Temperatures of all available heated beds. These will be displayed as `printer_name_bed_N`. + "chamber_temperature": + description: Temperatures of all available heated chambers. These will be displayed as `printer_name_chamber_N`. + "current_job": + description: Returns percentage done of current job in state, and current job information as attributes. + "job_start": + description: Start timestamp of job start. + "job_end": + description: Estimated job end timestamp. +{% endconfiguration %} + +Example with multiple Repetier Servers: + +```yaml +repetier: + - host: REPETIER_HOST + api_key: YOUR_API_KEY + sensors: + monitored_conditions: + - 'current_state' + - 'current_job' + - host: REPETIER_HOST + api_key: YOUR_API_KEY + port: 3344 +``` + +If the Repetier-Server host is equipped with a web camera it is possible to add this as well. + +```yaml +camera: + - platform: mjpeg + name: Repetier + still_image_url: http://YOUR_REPETIER_HOST_IP:8080/?action=snapshot + mjpeg_url: http://YOUR_REPETIER_HOST_IP:8080/?action=stream +``` + +### {% linkable_title Retrieve API-key %} + +To generate the needed API-key do the following: + +* Go to your Repetier Server web-console +* Push the settings icon (the gear icon) +* Select User Profiles. +* Create a new user, deselect all options and click Create User. +* Edit the newly created user and take note of the API-key for this user, that's the one to use in the Home Assistant Settings diff --git a/source/images/supported_brands/repetier.png b/source/images/supported_brands/repetier.png new file mode 100755 index 0000000000000000000000000000000000000000..7cbba43ad45cdc70bc56f6c84f95c0013b2b45a2 GIT binary patch literal 27990 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 literal 0 HcmV?d00001 From 9bf14a4ef0dcc7e1b620aaeee64a13f03f00cc23 Mon Sep 17 00:00:00 2001 From: Jeff Irion Date: Fri, 31 May 2019 14:28:04 -0700 Subject: [PATCH 07/69] Mention 'adb_response' attribute (#9529) * Mention 'adb_response' attribute * Add missing ' * Remove template braces * :pencil2: Tweak After this I will merge it --- source/_components/androidtv.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_components/androidtv.markdown b/source/_components/androidtv.markdown index e19d45d96a5..5a86571d339 100644 --- a/source/_components/androidtv.markdown +++ b/source/_components/androidtv.markdown @@ -208,7 +208,7 @@ stop_netflix: ### {% linkable_title `androidtv.adb_command` %} -The service `androidtv.adb_command` allows you to send either keys or ADB shell commands to your Android TV / Fire TV device. +The service `androidtv.adb_command` allows you to send either keys or ADB shell commands to your Android TV / Fire TV device. If there is any output, it will be stored in the `'adb_response'` attribute (i.e., `state_attr('media_player.android_tv_living_room', 'adb_response')` in a template) and logged at the INFO level. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | @@ -240,4 +240,4 @@ Available key commands include: The full list of key commands can be found [here](https://github.com/JeffLIrion/python-androidtv/blob/e1c07176efc9216cdcff8245c920224c0234ea56/androidtv/constants.py#L115-L155). -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 logged at the INFO level and can be used to help improve state detection in the backend [androidtv](https://github.com/JeffLIrion/python-androidtv) package. +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. From d297d458450f92c3c988ca5f7a46c40dfb6b162e Mon Sep 17 00:00:00 2001 From: Andre Lengwenus Date: Sat, 1 Jun 2019 10:00:53 +0200 Subject: [PATCH 08/69] Add documentation for LCN service calls (#9516) * Add docs for LCN service calls * :pencil2: Tweak After this we can merge it --- source/_components/lcn.markdown | 261 ++++++++++++++++++++++++++++++++ 1 file changed, 261 insertions(+) diff --git a/source/_components/lcn.markdown b/source/_components/lcn.markdown index b66e453dc84..1f0dee0600e 100644 --- a/source/_components/lcn.markdown +++ b/source/_components/lcn.markdown @@ -38,6 +38,12 @@ There is currently support for the following device types within Home Assistant: - [Sensor](#sensor) - [Switch](#switch) +

+ Please note: Besides the implemented platforms the `lcn` component offers a variety of [service calls](#services). + These service calls cover functionalities of the LCN system which cannot be represented by the platform implementations. + They are ideal to be used in automation scripts or for the `template` platforms. +

+ ## {% linkable_title Configuration %} To use your LCN system in your installation, add the following lines to your `configuration.yaml` file. @@ -343,6 +349,8 @@ The [MOTOR_PORT](#ports) values specify which hardware relay configuration will | THRESHOLD | `thrs1`, `thrs2`, `thrs3`, `thrs4`, `thrs5`, `thrs2_1`, `thrs2_2`, `thrs2_3`, `thrs2_4`, `thrs3_1`, `thrs3_2`, `thrs3_3`, `thrs3_4`, `thrs4_1`, `thrs4_2`, `thrs4_3`, `thrs4_4` | | S0_INPUT | `s0input1`, `s0input2`, `s0input3`, `s0input4` | | VAR_UNIT | `native`, `°C`, `°K`, `°F`, `lux_t`, `lux_i`, `m/s`, `%`, `ppm`, `volt`, `ampere`, `degree` | +| TIME_UNIT | `seconds`, `minutes`, `hours`, `days` | +| RELVARREF | `current`, `prog` | ### {% linkable_title States %}: @@ -414,3 +422,256 @@ The `lcn` switch platform allows the control of the following [LCN](http://www.l - Output ports - Relays + +## {% linkable_title Services %} + +In order to directly interact with the LCN system, and invoke commands which are not covered by the implemented platforms, the following service calls can be used. +Refer to the (Services Calls)[/docs/scripts/service-calls] page for examples on how to use them. + +### {% linkable_title Service `output_abs` %} + +Set absolute brightness of output port in percent. + +| Service data attribute | Optional | Description | Values | +| ---------------------- | -------- | ----------- | ------ | +| `address` | No | [LCN address](#lcn-addresses) | +| `output` | No | Output port of module | [OUTPUT_PORT](#ports) | +| `brightness` | Yes | Absolute brightness in percent | 0..100 | +| `transition` | Yes | Transition (ramp) time in seconds | 0..486 | + +Example: + +``` +{"address": "myhome.0.7", "output": "output1", "brightness": 100, "transition": 0} +``` + +### {% linkable_title Service `output_rel` %} + +Set relative brightness of output port in percent. + +| Service data attribute | Optional | Description | Values | +| ---------------------- | -------- | ----------- | ------ | +| `address` | No | [LCN address](#lcn-addresses) | +| `output` | No | Output port of module | [OUTPUT_PORT](#ports) | +| `brightness` | Yes | Relative brightness in percent | -100..100 | +| `transition` | Yes | Transition (ramp) time in seconds | 0..486 | + +Example: + +``` +{"address": "myhome.0.7", "output": "output1", "brightness": 30} +``` + +### {% linkable_title Service `output_toggle` %} + +Toggle output port. + +| Service data attribute | Optional | Description | Values | +| ---------------------- | -------- | ----------- | ------ | +| `address` | No | [LCN address](#lcn-addresses) | +| `output` | No | Output port of module | [OUTPUT_PORT](#ports) | +| `transition` | Yes | Transition (ramp) time in seconds | 0..486 | + +Example: + +``` +{"address": "myhome.0.7", "output": "output1", "transition": 0} +``` + +### {% linkable_title Service `relays` %} + +Set the relays status. The relays states are defined as a string with eight characters. +Each character represents the state change of a relay (1=on, 0=off, t=toggle, -=nochange). + +Example states: `t---001-` + +| Service data attribute | Optional | Description | Values | +| ---------------------- | -------- | ----------- | ------ | +| `address` | No | [LCN address](#lcn-addresses) | +| `state` | No | Relay states as string | + +Example: + +``` +{"address": "myhome.0.7", "state": "t---001-"} +``` + +### {% linkable_title Service `led` %} + +Set the led status. + +| Service data attribute | Optional | Description | Values | +| ---------------------- | -------- | ----------- | ------ | +| `address` | No | [LCN address](#lcn-addresses) | +| `state` | No | Led state as string | [LED_STATE](#states) | + +Example: + +``` +{"address": "myhome.0.7", "led": "led6", "state": "blink"} +``` + +### {% linkable_title Service `var_abs` %} + +Set the absolute value of a variable or setpoint. +If `value` is not defined, it is assumed to be 0. +If `unit_of_measurement` is not defined, it is assumed to be `native`. + +| Service data attribute | Optional | Description | Values | +| ---------------------- | -------- | ----------- | ------ | +| `address` | No | [LCN address](#lcn-addresses) | +| `variable` | No | Variable name | [VARIABLE](#variables-and-units), [SETPOINT](#variables-and-units) | +| `value` | Yes | Variable value | _any positive number_ | +| `unit_of_measurement` | Yes | Variable unit | [VAR_UNIT](#variables-and-units) | + +Example: + +``` +{"address": "myhome.0.7", "variable": "var1", "value": 75, "unit_of_measurement": "%"} +``` + +

+ Ensure that the LCN module is configured properly to provide acces to the defined variable. + Otherwise the module might show unexpected behaviors or return error messages. +

+ +### {% linkable_title Service `var_rel` %} + +Set the relative value of a variable or setpoint. +If `value` is not defined, it is assumed to be 0. +If `unit_of_measurement` is not defined, it is assumed to be `native`. + +| Service data attribute | Optional | Description | Values | +| ---------------------- | -------- | ----------- | ------ | +| `address` | No | [LCN address](#lcn-addresses) | +| `variable` | No | Variable name | [VARIABLE](#variables-and-units), [SETPOINT](#variables-and-units), [THRESHOLD](#variables-and-units) | +| `value` | Yes | Variable value | _any positive or negative number_ | +| `unit_of_measurement` | Yes | Variable unit | [VAR_UNIT](#variables-and-units) | + +Example: + +``` +{"address": "myhome.0.7", "variable": "var1", "value": 10, "unit_of_measurement": "%"} +``` + +

+ Ensure that the LCN module is configured properly to provide acces to the defined variable. + Otherwise the module might show unexpected behavior or return error messages. +

+ +### {% linkable_title Service `var_reset` %} + +Reset value of variable or setpoint. + +| Service data attribute | Optional | Description | Values | +| ---------------------- | -------- | ----------- | ------ | +| `address` | No | [LCN address](#lcn-addresses) | +| `variable` | No | Variable name | [VARIABLE](#variables-and-units), [SETPOINT](#variables-and-units) | + +Example: + +``` +{"address": "myhome.0.7", "variable": "var1"} +``` + +

+ Ensure that the LCN module is configured properly to provide acces to the defined variable. + Otherwise the module might show unexpected behavior or return error messages. +

+ +### {% linkable_title Service `lock_regulator` %} + +Locks a regulator setpoint. +If `state` is not defined, it is assumed to be `False`. + +| Service data attribute | Optional | Description | Values | +| ---------------------- | -------- | ----------- | ------ | +| `address` | No | [LCN address](#lcn-addresses) | +| `setpoint` | No | Setpoint name | [SETPOINT](#variables-and-units) | +| `state` | Yes | Lock state | true, false | + +Example: + +``` +{"address": "myhome.0.7", "setpoint": "r1varsetpoint", "state": true} +``` + +### {% linkable_title Service `send_keys` %} + +Send keys (which executes bound commands). +The keys attribute is a string with one or more key identifiers. Example: `a1a5d8` +If `state` is not defined, it is assumed to be `hit`. +The command allow the sending of keys immediately or deferred. For a deferred sendig the attributes `time` and `time_unit` have to be specified. For deferred sending the only key state allowed is `hit`. +If `time_unit` is not defined, it is assumed to be `seconds`. + +| Service data attribute | Optional | Description | Values | +| ---------------------- | -------- | ----------- | ------ | +| `address` | No | [LCN address](#lcn-addresses) | +| `keys` | No | Keys string | +| `state` | Yes | Keys state | [SENDKEYCOMMANDS](#states) | +| `time` | Yes | Deferred time | 0.. | +| `time_unit` | Yes | Time unit | [TIME_UNIT](#variables-and-units) + +Examples: + +``` +{"address": "myhome.0.7", "keys": "a1a5d8", "state": "hit"} +{"address": "myhome.0.7", "keys": "a1a5d8", "time": 5, "time_unit": "s"} +``` + +### {% linkable_title Service `lock_keys` %} + +Locks keys. +If table is not defined, it is assumend to be table `a`. +The key lock states are defined as a string with eight characters. Each character represents the state change of a key lock (1=on, 0=off, t=toggle, -=nochange). +The command allows the locking of keys for a specified time period. For a time period the attributes `time` and `time_unit` have to be specified. For a time period only tabley `a` is allowed. +If `time_unit` is not defined, it is assumed to be `seconds`. + +| Service data attribute | Optional | Description | Values | +| ---------------------- | -------- | ----------- | ------ | +| `address` | No | [LCN address](#lcn-addresses) | +| `table` | Yes | Table with keys to lock | +| `state` | No | Key lock states as string | [SENDKEYCOMMANDS](#states) | +| `time` | Yes | Time period to lock | 0.. | +| `time_unit` | Yes | Time unit | [TIME_UNIT](#variables-and-units) + +Examples: + +``` +{"address": "myhome.0.7", "table": "a", "state": "1---t0--"} +{"address": "myhome.0.7", "state": "1---t0--", "time": 10, "time_unit": "s"} +``` + +### {% linkable_title Service `dyn_text` %} + +Send dynamic text to LCN-GTxD displays. +The displays support four rows for text messages. +Each row can be set independently and can store up to 60 characters (encoded in UTF-8). + + +| Service data attribute | Optional | Description | Values | +| ---------------------- | -------- | ----------- | ------ | +| `address` | No | [LCN address](#lcn-addresses) | +| `row` | No | Text row 1..4 | +| `text` | No | Text to send for the specified row | + +Example: + +``` +{"address": "myhome.0.7", "row": 1, "text": "text in row 1"} +``` + +### {% linkable_title Service `pck` %} + +Send arbitrary PCK command. Only the command part of the PCK command has to be specified in the `pck` string. + +| Service data attribute | Optional | Description | Values | +| ---------------------- | -------- | ----------- | ------ | +| `address` | No | [LCN address](#lcn-addresses) | +| `pck` | No | PCK command | + +Example: + +``` +{"address": "myhome.0.7", "pck": "PIN4"} +``` From 8637dab4c26be2fb4d072fc5f3dd9afc49634805 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A1s=20Rutkai?= Date: Sat, 1 Jun 2019 10:03:42 +0200 Subject: [PATCH 09/69] Adding Watson TTS (IBM Cloud) (#9279) * Adding Watson TTS (IBM Cloud) * Review fixes * :pencil2: Tweak * :pencil2: Tweak After this we can merge it --- source/_components/watson_tts.markdown | 108 ++++++++++++++++++ .../images/screenshots/watson_tts_screen.png | Bin 0 -> 64275 bytes source/images/supported_brands/watson_tts.png | Bin 0 -> 8580 bytes 3 files changed, 108 insertions(+) create mode 100644 source/_components/watson_tts.markdown create mode 100644 source/images/screenshots/watson_tts_screen.png create mode 100644 source/images/supported_brands/watson_tts.png diff --git a/source/_components/watson_tts.markdown b/source/_components/watson_tts.markdown new file mode 100644 index 00000000000..8418d70a9dd --- /dev/null +++ b/source/_components/watson_tts.markdown @@ -0,0 +1,108 @@ +--- +layout: page +title: "Watson TTS" +description: "Instructions on how to setup IBM Watson TTS with Home Assistant." +date: 2019-04-22 12:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: watson_tts.png +ha_category: + - Text-to-speech +ha_release: 0.94 +--- + +The `watson_tts` text-to-speech platform that works with [IBM Watson Cloud](https://www.ibm.com/watson/services/text-to-speech/) to create the spoken output. +Polly is a paid service via IBM Cloud but there is a decent [free tier](https://www.ibm.com/cloud/watson-text-to-speech/pricing) which offers 10000 free characters every month. + +## {% linkable_title Setup %} + +For supported formats and voices please go to [IBM Cloud About section](https://cloud.ibm.com/docs/services/text-to-speech?topic=text-to-speech-about#about). + +To get started please read the [Getting started tutorial](https://cloud.ibm.com/docs/services/text-to-speech?topic=text-to-speech-gettingStarted#gettingStarted). + +## {% linkable_title Configuration %} + +To configure Watson TTS, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +tts: + - platform: watson_tts + watson_apikey: YOUR_GENERATED_APIKEY +``` + +You can get these tokens after you generated the credentials on the IBM Cloud console: + +

+ +

+ +{% configuration %} +watson_url: + description: "The endpoint to which the service will connect." + required: false + type: string + default: https://stream.watsonplatform.net/text-to-speech/api +watson_apikey: + description: "Your secret apikey generated on the IBM Cloud admin console." + required: true + type: string +voice: + description: Voice name to be used. + required: false + type: string + default: en-US_AllisonVoice +output_format: + description: "Override the default output format. Supported formats: `audio/flac`, `audio/mp3`, `audio/mpeg`, `audio/ogg`, `audio/ogg;codecs=opus`, `audio/ogg;codecs=vorbis`, `audio/wav`" + required: false + type: string + default: audio/mp3 +{% endconfiguration %} + +## {% linkable_title Usage %} + +Say to all `media_player` device entities: + +```yaml +- service: tts.watson_tts_say + data_template: + message: 'Hello from Watson' +``` + +or + +```yaml +- service: tts.watson_tts_say + data_template: + message: > + + Hello from Watson + +``` + +Say to the `media_player.living_room` device entity: + +```yaml +- service: tts.watson_tts_say + data_template: + entity_id: media_player.living_room + message: > + + Hello from Watson + +``` + +Say with break: + +```yaml +- service: tts.watson_tts_say + data_template: + message: > + + Hello from + + Watson + +``` diff --git a/source/images/screenshots/watson_tts_screen.png b/source/images/screenshots/watson_tts_screen.png new file mode 100644 index 0000000000000000000000000000000000000000..9f551f633af66316ddebce64d77adcc6807c715c GIT binary patch literal 64275 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

T-UQy1x*#}t&owv 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 Sar_a0P5!xx4EULGz<&Xsah(AG literal 0 HcmV?d00001 diff --git a/source/images/supported_brands/watson_tts.png b/source/images/supported_brands/watson_tts.png new file mode 100644 index 0000000000000000000000000000000000000000..91a882537be6ec4d24d59e50914f2f061ca53659 GIT binary patch literal 8580 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 Date: Sat, 1 Jun 2019 10:05:17 +0200 Subject: [PATCH 10/69] Created the Azure EH docs (#9462) * Created the Azure EH docs * Update release version Co-Authored-By: Klaas Schoute * :pencil2: Tweak After this we can merge it --- source/_components/azure_event_hub.markdown | 103 ++++++++++++++++++ .../supported_brands/azure_event_hub.svg | 22 ++++ 2 files changed, 125 insertions(+) create mode 100644 source/_components/azure_event_hub.markdown create mode 100644 source/images/supported_brands/azure_event_hub.svg diff --git a/source/_components/azure_event_hub.markdown b/source/_components/azure_event_hub.markdown new file mode 100644 index 00000000000..63c0219676e --- /dev/null +++ b/source/_components/azure_event_hub.markdown @@ -0,0 +1,103 @@ +--- +layout: page +title: "Azure Event Hub" +description: "Setup for Azure Event Hub integration" +date: 2019-05-15 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: azure_event_hub.svg +ha_category: + - History +ha_release: 0.94 +--- + +The `Azure Event Hub` component allows you to hook into the Home Assistant event bus and send events to [Azure Event Hub](https://azure.microsoft.com/en-us/services/event-hubs/) or to a [Azure IoT Hub](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-messages-read-builtin). + +## {% linkable_title First time setup %} + +This assumes you already have a Azure account. Otherwise create a Free account [here](https://azure.microsoft.com/en-us/free/). + +You need to create a Event Hub namespace and a Event Hub in that namespace, you can follow [this guide](https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-create). Alternatively you can directly deploy an ARM template with the namespace and the Event Hub [from here](https://github.com/Azure/azure-quickstart-templates/tree/master/201-event-hubs-create-event-hub-and-consumer-group/). + +You must then create a Shared Access Policy for the Event Hub with 'Send' claims or use the RootManageAccessKey from your namespace (this key has additional claims, including managing the event hub and listening, which are not needed for this purpose), for more details on the security of Event Hubs [go here](https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-authentication-and-security-model-overview). + +Once you have the name of your namespace, instance, Shared Access Policy and the key for that policy, you can setup the component itself. + +## {% linkable_title Configuration %} + +Add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +azure_event_hub: + event_hub_namespace: NAMESPACE_NAME + event_hub_instance_name: EVENT_HUB_INSTANCE_NAME + event_hub_sas_policy: SAS_POLICY_NAME + event_hub_sas_key: SAS_KEY + filter: + include_domains: + - homeassistant + - light + - media_player +``` + +{% configuration %} +event_hub_namespace: + description: The name of your Event Hub namespace. + required: true + type: string +event_hub_instance_name: + description: The name of your Event Hub instance. + required: true + type: string +event_hub_sas_policy: + description: The name of your Shared Access Policy. + required: true + type: string +event_hub_sas_key: + description: The key for the Shared Access Policy. + required: true + type: string +filter: + description: Filter domains and entities for Event Hub. + required: false + type: map + default: Includes all entities from all domains + keys: + include_domains: + description: List of domains to include (e.g., `light`). + required: false + type: list + exclude_domains: + description: List of domains to exclude (e.g., `light`). + required: false + type: list + include_entities: + description: List of entities to include (e.g., `light.attic`). + required: false + type: list + exclude_entities: + description: List of entities to include (e.g., `light.attic`). + required: false + type: list +{% endconfiguration %} + +

+ Not filtering domains or entities will send every event to Azure Event Hub, thus taking up a lot of space. +

+ +

+Event Hubs have a retention time of at most 7 days, if you do not capture or use the events they are deleted automatically from the Event Hub, the default retention is 1 day. +

+ +### {% linkable_title Using the data in Azure %} + +There are a number of ways to stream the data that comes into the Event Hub into storages in Azure, the easiest way is to use the built-in Capture function and this allows you to capture the data in Azure Blob Storage or Azure Data Lake store, [details here](https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-capture-overview). + +Other storages in Azure (and outside) are possible with a [Azure Stream Analytics job](https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-define-inputs#stream-data-from-event-hubs), for instance for [Cosmos DB](https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-documentdb-output), [Azure SQL DB](https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-sql-output-perf), [Azure Table Storage](https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-define-outputs#table-storage), custom writing to [Azure Blob Storage](https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-custom-path-patterns-blob-storage-output) and [Topic and Queues](https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-quick-create-portal#configure-job-output). + +On the analytical side, Event Hub can be directly fed into [Azure Databricks Spark](https://docs.microsoft.com/en-us/azure/azure-databricks/databricks-stream-from-eventhubs?toc=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fevent-hubs%2FTOC.json&bc=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fbread%2Ftoc.json), [Azure Time Series Insights](https://docs.microsoft.com/en-us/azure/time-series-insights/time-series-insights-how-to-add-an-event-source-eventhub) and [Microsoft Power BI](https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-tutorial-visualize-anomalies). + +The final way to use the data in Azure is to connect a Azure Function to the Event Hub using the [Event Hub trigger binding](https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-event-hubs). diff --git a/source/images/supported_brands/azure_event_hub.svg b/source/images/supported_brands/azure_event_hub.svg new file mode 100644 index 00000000000..6e57c82f82c --- /dev/null +++ b/source/images/supported_brands/azure_event_hub.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + From c425dda6405f48e3ac3565c91d7a1fe5c9d781ad Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Sun, 2 Jun 2019 07:47:36 +0200 Subject: [PATCH 11/69] Adds AdGuard Home integration (#9538) * Adds AdGuard Home integration * Update source/_components/adguard.markdown Co-Authored-By: Klaas Schoute * Update source/_components/adguard.markdown Co-Authored-By: Klaas Schoute --- source/_components/adguard.markdown | 117 +++++++++++++++++++++ source/images/supported_brands/adguard.png | Bin 0 -> 2818 bytes 2 files changed, 117 insertions(+) create mode 100644 source/_components/adguard.markdown create mode 100644 source/images/supported_brands/adguard.png diff --git a/source/_components/adguard.markdown b/source/_components/adguard.markdown new file mode 100644 index 00000000000..298351a35de --- /dev/null +++ b/source/_components/adguard.markdown @@ -0,0 +1,117 @@ +--- +layout: page +title: "AdGuard Home" +description: "Instructions on how to integrate AdGuard Home with Home Assistant." +date: 2019-05-31 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: adguard.png +ha_category: + - Network + - Sensor + - Switch +ha_release: 0.95 +ha_iot_class: Local Polling +--- + +AdGuard Home is a network-wide ad-and-tracker blocking DNS server with parental +control (adult content blocking) capabilities. The `adguard` integration allows +you to control and monitor your AdGuard Home instance in Home Assistant. + +## {% linkable_title Configuration via the frontend %} + +Menu: **Configuration** -> **Integrations**. + +Click on the `+` sign to add an integration and click on **AdGuard Home**. +Follow the configuration flow, after finishing, the AdGuard Home +integration will be available. + +## {% linkable_title Sensors %} + +This integration provides sensors for the following information from AdGuard Home: + +- Number of DNS queries. +- Number of blocked DNS queries. +- Ratio (%) of blocked DNS queries. +- Number of requests blocked by safe browsing. +- Number of safe searches enforced. +- Number of requests blocked by parental control. +- Total number of active filter rules loaded. +- Average response time of AdGuard's DNS server in milliseconds. + +## {% linkable_title Switches %} + +The integration will create a number of switches: + +- AdGuard Protection (master switch). +- Filtering. +- Safe Browsing. +- Parental Control. +- Safe Search. +- Query Log. + +These switches allow you to automate things easily. For example, one could +write an automation to turn off Safe Search after the kids' bedtime. + +The "AdGuard Protection" switch, is a master switch. It will turn off and +bypass all AdGuard feature, regardless if they are switched on or not. + +

+Turning off Query Log will result in all sensors not receiving updates anymore. +AdGuard relies on Query Log to provide stats. +

+ +## {% linkable_title Services %} + +These services allow one to manage filter subscriptions in AdGuard Home. +Using these services in automations could be helpful to block certain +sites/domains at certain times. + +For example, you could create a custom filter list blocking social media sites, +during the day and release them during the evening, using a simple automation. + +### {% linkable_title Service `add_url` %} + +Add a new filter subscription to AdGuard Home. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ------------------------------------------------------------ | +| `name` | No | The name of the filter subscription. | +| `url` | No | The filter URL to subscribe to, containing the filter rules. | + +### {% linkable_title Service `remove_url` %} + +Removes a filter subscription from AdGuard Home. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | -------------------------------------- | +| `url` | No | The filter subscription URL to remove. | + +### {% linkable_title Service `enable_url` %} + +Enables a filter subscription in AdGuard Home. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | -------------------------------------- | +| `url` | No | The filter subscription URL to enable. | + +### {% linkable_title Service `disable_url` %} + +Disables a filter subscription in AdGuard Home. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | --------------------------------------- | +| `url` | No | The filter subscription URL to disable. | + +### {% linkable_title Service `refresh` %} + +Refresh all filter subscriptions in AdGuard Home. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ------------------------------------------------- | +| `force` | Yes | Force update (bypasses AdGuard Home throttling). | + +By default, `force` is set to `false`. Forcing an update bypasses AdGuard Home's +throttling logic, so use with care. diff --git a/source/images/supported_brands/adguard.png b/source/images/supported_brands/adguard.png new file mode 100644 index 0000000000000000000000000000000000000000..6bfd89b7b663f1903f337a38fe1cc67cc05ff50d GIT binary patch literal 2818 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 Date: Tue, 4 Jun 2019 22:27:33 +0200 Subject: [PATCH 12/69] Correct misspelled install (#9565) --- source/hassio/installation.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown index 2ff644bea37..112653f51bd 100644 --- a/source/hassio/installation.markdown +++ b/source/hassio/installation.markdown @@ -144,7 +144,7 @@ $ sudo -i # curl -fsSL get.docker.com | sh ``` -And to intall Hass.io the one below. That one is used also for other distributions. +And to install Hass.io the one below. That one is used also for other distributions. ```bash # curl -sL "https://raw.githubusercontent.com/home-assistant/hassio-installer/master/hassio_install.sh" | bash -s From 8cbb2e9df71d7d3caecb67a0a303fea4d89a0143 Mon Sep 17 00:00:00 2001 From: Maciej Bieniek Date: Thu, 6 Jun 2019 18:10:48 +0200 Subject: [PATCH 13/69] Add abbreviation for light template variable names (#9573) --- source/_docs/mqtt/discovery.markdown | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown index 04dfa8af4fd..99e0e88435c 100644 --- a/source/_docs/mqtt/discovery.markdown +++ b/source/_docs/mqtt/discovery.markdown @@ -84,9 +84,11 @@ Supported abbreviations: 'away_mode_cmd_t': 'away_mode_command_topic', 'away_mode_stat_tpl': 'away_mode_state_template', 'away_mode_stat_t': 'away_mode_state_topic', + 'b_tpl': 'blue_template', 'bri_cmd_t': 'brightness_command_topic', 'bri_scl': 'brightness_scale', 'bri_stat_t': 'brightness_state_topic', + 'bri_tpl': 'brightness_template', 'bri_val_tpl': 'brightness_value_template', 'bat_lev_t': 'battery_level_topic', 'bat_lev_tpl': 'battery_level_template', @@ -97,6 +99,8 @@ Supported abbreviations: 'clr_temp_val_tpl': 'color_temp_value_template', 'cln_t': 'cleaning_topic', 'cln_tpl': 'cleaning_template', + 'cmd_off_tpl': 'command_off_template', + 'cmd_on_tpl': 'command_on_template', 'cmd_t': 'command_topic', 'curr_temp_t': 'current_temperature_topic', 'curr_temp_tpl': 'current_temperature_template', @@ -112,12 +116,14 @@ Supported abbreviations: 'fx_cmd_t': 'effect_command_topic', 'fx_list': 'effect_list', 'fx_stat_t': 'effect_state_topic', + 'fx_tpl': 'effect_template', 'fx_val_tpl': 'effect_value_template', 'exp_aft': 'expire_after', 'fan_mode_cmd_t': 'fan_mode_command_topic', 'fan_mode_stat_tpl': 'fan_mode_state_template', 'fan_mode_stat_t': 'fan_mode_state_topic', 'frc_upd': 'force_update', + 'g_tpl': 'green_template', 'hold_cmd_t': 'hold_command_topic', 'hold_stat_tpl': 'hold_state_template', 'hold_stat_t': 'hold_state_topic', @@ -154,6 +160,7 @@ Supported abbreviations: 'pl_stop': 'payload_stop', 'pl_unlk': 'payload_unlock', 'pow_cmd_t': 'power_command_topic', + 'r_tpl': 'red_template', 'ret': 'retain', 'rgb_cmd_tpl': 'rgb_command_template', 'rgb_cmd_t': 'rgb_command_topic', @@ -173,6 +180,7 @@ Supported abbreviations: 'stat_on': 'state_on', 'stat_open': 'state_open', 'stat_t': 'state_topic', + 'stat_tpl': 'state_template', 'stat_val_tpl': 'state_value_template', 'sup_feat': 'supported_features', 'swing_mode_cmd_t': 'swing_mode_command_topic', From a0a235f0897384c6bd97d54a2a94e7a4a49055d5 Mon Sep 17 00:00:00 2001 From: cpopp Date: Thu, 6 Jun 2019 15:55:59 -0500 Subject: [PATCH 14/69] Add documentation for streamlabswater component (#8733) * Add documentation for streamlabswater component * Bump ha_release for component to 0.90 * Quote version to maintain trailing zero * Remove unnecessary redirects from streamlabswater * Update streamlabswater.markdown --- source/_components/streamlabswater.markdown | 54 ++++++++++++++++++ .../supported_brands/streamlabswater.png | Bin 0 -> 16570 bytes 2 files changed, 54 insertions(+) create mode 100644 source/_components/streamlabswater.markdown create mode 100644 source/images/supported_brands/streamlabswater.png diff --git a/source/_components/streamlabswater.markdown b/source/_components/streamlabswater.markdown new file mode 100644 index 00000000000..21bd4583c48 --- /dev/null +++ b/source/_components/streamlabswater.markdown @@ -0,0 +1,54 @@ +--- +layout: page +title: "Streamlabs Water" +description: "Instructions on how to integrate Streamlabs Water devices with Home Assistant." +date: 2019-02-25 12:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: streamlabswater.png +ha_category: + - Binary Sensor + - Sensor +ha_release: "0.95" +ha_iot_class: "Cloud Polling" +--- + +The `Streamlabs Water` component platform is used to interact with [Streamlabs water monitoring devices](https://www.streamlabswater.com/) in order to retrieve usage information and manage the away mode of the device. The [Streamlabs Water API](https://developer.streamlabswater.com) is used to retrieve daily, monthly, and yearly water usage along with the current away mode. + +There is currently support for the following device types within Home Assistant: + +- Binary Sensor +- Sensor + +In preparation for using this component you will need to request an API key following the instructions in the [Streamlabs API Getting Started Section](https://developer.streamlabswater.com/docs/getting-started.html). Be sure to request an API key and not an OAuth token. + +## {% linkable_title Configuration %} + +Add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +streamlabswater: + api_key: YOUR_API_KEY +``` + +{% configuration %} +api_key: + description: Your api_key for the Streamlabs API. + required: true + type: string +location_id: + description: A specific monitor to use if you have multiple. By default the first found will be used. + required: false + type: string +{% endconfiguration %} + +## {% linkable_title Service `set_away_mode` %} + +You can use the service `streamlabswater.set_away_mode` to set the mode to `home` or `away`. The away mode will only be changed for the configured location. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `away_mode` | no | String, must be `away` or `home`. diff --git a/source/images/supported_brands/streamlabswater.png b/source/images/supported_brands/streamlabswater.png new file mode 100644 index 0000000000000000000000000000000000000000..b77ba3cc54cbb5b01214a5425b73f8c0e1486f76 GIT binary patch literal 16570 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 literal 0 HcmV?d00001 From 68deb2952380ba70eef5bb31e866c118c95c5abd Mon Sep 17 00:00:00 2001 From: Phil Bruckner Date: Fri, 7 Jun 2019 23:45:56 -0500 Subject: [PATCH 15/69] Add for option for template triggers (#9572) --- source/_docs/automation/trigger.markdown | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index b892651b895..d8fecee5286 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -172,7 +172,7 @@ A very thorough explanation of this is available in the Wikipedia article about ### {% linkable_title Template trigger %} -Template triggers work by evaluating a [template](/docs/configuration/templating/) on every state change for all of the recognized entities. The trigger will fire if the state change caused the template to render 'true'. This is achieved by having the template result in a true boolean expression (`{% raw %}{{ is_state('device_tracker.paulus', 'home') }}{% endraw %}`) or by having the template render 'true' (example below). Being a boolean expression the template must evaluate to false before it will fire again. +Template triggers work by evaluating a [template](/docs/configuration/templating/) on every state change for all of the recognized entities. The trigger will fire if the state change caused the template to render 'true'. This is achieved by having the template result in a true boolean expression (`{% raw %}{{ is_state('device_tracker.paulus', 'home') }}{% endraw %}`) or by having the template render 'true' (example below). Being a boolean expression the template must evaluate to false (or anything other than true) before it will fire again. With template triggers you can also evaluate attribute changes by using is_state_attr (`{% raw %}{{ is_state_attr('climate.living_room', 'away_mode', 'off') }}{% endraw %}`) {% raw %} @@ -181,6 +181,9 @@ automation: trigger: platform: template value_template: "{% if is_state('device_tracker.paulus', 'home') %}true{% endif %}" + + # If given, will trigger when template remains true for X time. + for: '00:01:00' ``` {% endraw %} From 31d387bb89f00b5e6d537b229694a770869b2cf9 Mon Sep 17 00:00:00 2001 From: Tommy Long <35182132+tommyjlong@users.noreply.github.com> Date: Sat, 8 Jun 2019 05:19:51 -0400 Subject: [PATCH 16/69] Add templating to MQTT Cover tilt_status_topic (#9578) --- source/_components/cover.mqtt.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/_components/cover.mqtt.markdown b/source/_components/cover.mqtt.markdown index acf37e99e42..6542d85615f 100644 --- a/source/_components/cover.mqtt.markdown +++ b/source/_components/cover.mqtt.markdown @@ -144,6 +144,10 @@ tilt_status_topic: description: The MQTT topic subscribed to receive tilt status update values. required: false type: string +tilt_status_template: + description: "Defines a [template](/topics/templating/) that can be used to extract the payload for the `tilt_status_topic` topic. " + required: false + type: string tilt_min: description: The minimum tilt value. required: false @@ -306,6 +310,7 @@ cover: value_template: '{{ value.x }}' tilt_command_topic: 'home-assistant/cover/tilt' tilt_status_topic: 'home-assistant/cover/tilt-state' + tilt_status_template: '{{ value_json["PWM"]["PWM1"] }}' tilt_min: 0 tilt_max: 180 tilt_closed_value: 70 From caa1646b5010b4106279d11beb064070b8371160 Mon Sep 17 00:00:00 2001 From: Markus Jankowski Date: Sat, 8 Jun 2019 11:20:26 +0200 Subject: [PATCH 17/69] updated alarm_control_panel description (#9570) --- source/_components/homematicip_cloud.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/homematicip_cloud.markdown b/source/_components/homematicip_cloud.markdown index 4b5cafadb27..46b59f29eca 100644 --- a/source/_components/homematicip_cloud.markdown +++ b/source/_components/homematicip_cloud.markdown @@ -88,7 +88,7 @@ authtoken: ## {% linkable_title Implemented and tested devices %} * homematicip_cloud.alarm_control_panel - * Security zones (*HmIP-SecurityZone*) + * Combined Alarm Control Panal with INTERNAL and EXTERNAL Security zones (*HmIP-SecurityZone*) * homematicip_cloud.binary_sensor * Window and door contact (*HmIP-SWDO, -I*) From 55abb7e402775ed8149d1317301cbb135e10b4ad Mon Sep 17 00:00:00 2001 From: Robbie Trencheny Date: Mon, 10 Jun 2019 17:52:37 -0700 Subject: [PATCH 18/69] Uber API is going away on June 13, 2019, remove component docs --- source/_components/uber.markdown | 78 -------------------------------- 1 file changed, 78 deletions(-) delete mode 100644 source/_components/uber.markdown diff --git a/source/_components/uber.markdown b/source/_components/uber.markdown deleted file mode 100644 index fc98e5173be..00000000000 --- a/source/_components/uber.markdown +++ /dev/null @@ -1,78 +0,0 @@ ---- -layout: page -title: "Uber" -description: "How to integrate Uber in Home Assistant" -date: 2016-03-24 23:04 -sidebar: true -comments: false -sharing: true -footer: true -logo: uber.png -ha_category: - - Transport -ha_iot_class: Cloud Polling -ha_release: 0.16 -redirect_from: - - /components/sensor.uber/ ---- - -The `uber` sensor will give you time and price estimates for all available [Uber](https://uber.com) products at the given location. The `ATTRIBUTES` are used to provide extra information about products, such as estimated trip duration, distance and vehicle capacity. By default, 2 sensors will be created for each product at the given `start` location, one for pickup time and one for current price. The sensor is powered by the official Uber [API](https://developer.uber.com/). - -## {% linkable_title Setup %} - -You must [create an application](https://developer.uber.com/dashboard/create) in the [Uber developer Dashboard](https://developer.uber.com) to obtain a `server_token`. - -## {% linkable_title Configuration %} - -To enable this sensor, add the following lines to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: uber - server_token: YOUR_UBER_SERVER_TOKEN -``` - -{% configuration %} -server_token: - description: The Server API token. - required: true - type: string -start_latitude: - description: The starting latitude for a trip. - required: false - default: to the latitude in your `configuration.yaml` file. - type: float -start_longitude: - description: The starting longitude for a trip. - required: false - default: to the longitude in your `configuration.yaml` file. - type: float -end_latitude: - description: The ending latitude for a trip. While `end_latitude` is optional, it is strongly recommended to provide an `end_latitude`/`end_longitude` when possible as you will get more accurate price and time estimates. - required: false - type: float -end_longitude: - description: The ending longitude for a trip. While `end_longitude` is optional, it is strongly recommended to provide an `end_latitude`/`end_longitude` when possible as you will get more accurate price and time estimates. - required: false - type: float -product_ids: - description: A list of Uber product UUIDs. If provided, sensors will only be created for the given product IDs. Please note that product IDs are region and some times even more specific geographies based. The easiest way to find a UUID is to click on a sensor in the Home Assistant frontend and look for "Product ID" in the attributes. - required: false - type: list -{% endconfiguration %} - -A full configuration entry could look like the sample below: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: uber - start_latitude: 37.8116380 - start_longitude: -122.2648050 - end_latitude: 37.7768520 - end_longitude: -122.4155500 - server_token: 'BeAPPTDsWZSHLf7fd9OWjZkIezweRw18Q8NltY27' - product_ids: - - '04a497f5-380d-47f2-bf1b-ad4cfdcb51f2' -``` From 21ba04f355cb183940556a8c449666fa13ea286f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=BDdrale?= Date: Tue, 11 Jun 2019 17:44:21 +0200 Subject: [PATCH 19/69] Update list of supported Ubee models (#9610) --- source/_components/ubee.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/ubee.markdown b/source/_components/ubee.markdown index 9c8fb469b24..98033d9a96d 100644 --- a/source/_components/ubee.markdown +++ b/source/_components/ubee.markdown @@ -51,6 +51,7 @@ password: Supported models: - EVW3200-Wifi - EVW320B +- EVW321B - EVW32C-0N - EVW3226@UPC From d9fad023b989ad520d2ef5a49b12096df7d83d67 Mon Sep 17 00:00:00 2001 From: "Clifford W. Hansen" Date: Sat, 15 Jun 2019 14:50:14 +0200 Subject: [PATCH 20/69] Update synologydsm.markdown (#9631) * Update synologydsm.markdown Added name configuration option * Remove optional key --- source/_components/synologydsm.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/_components/synologydsm.markdown b/source/_components/synologydsm.markdown index 9102d78f213..3b28d72e5f6 100644 --- a/source/_components/synologydsm.markdown +++ b/source/_components/synologydsm.markdown @@ -36,6 +36,11 @@ sensor: ``` {% configuration %} +name: + description: The name of your device + required: false + default: Synology DSM + type: string host: description: The IP address of the Synology NAS to monitor. required: true From fadf8456dea49e43cdb8abc9c071e34e50bd5485 Mon Sep 17 00:00:00 2001 From: Tommaso Marchionni Date: Mon, 17 Jun 2019 23:45:18 +0200 Subject: [PATCH 21/69] Added documentation for invert_percent configuration for zwave rollershutte (#9216) --- source/_components/zwave.markdown | 3 ++- source/_docs/z-wave/installation.markdown | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/source/_components/zwave.markdown b/source/_components/zwave.markdown index ba60c98e34b..b763a36811c 100644 --- a/source/_components/zwave.markdown +++ b/source/_components/zwave.markdown @@ -131,13 +131,14 @@ Z-Wave garage doors, blinds, and roller shutters are supported as cover in Home To get your Z-Wave covers working with Home Assistant, follow the instructions for the general [Z-Wave component](#configuration). -If you discover that you need to [invert the operation](/docs/z-wave/installation/#invert_openclose_buttons) of open/close for a particular device, you may change this behavior in your Z-Wave section of your `configuration.yaml` file as follows: +If you discover that you need to [invert the operation](/docs/z-wave/installation/#invert_openclose_buttons) of open/close for a particular device, you may change this behavior in your Z-Wave section of your `configuration.yaml` file as follows, in addition you can also [invert percent position](/docs/z-wave/installation/#invert_percent): ```yaml zwave: device_config: cover.my_cover: invert_openclose_buttons: true + invert_percent: true ``` ## {% linkable_title Lock %} diff --git a/source/_docs/z-wave/installation.markdown b/source/_docs/z-wave/installation.markdown index 10b11875174..7db0e78eb96 100644 --- a/source/_docs/z-wave/installation.markdown +++ b/source/_docs/z-wave/installation.markdown @@ -82,6 +82,11 @@ device_config / device_config_domain / device_config_glob: required: false type: boolean default: false + invert_percent: + description: Inverts the percentage of the position for the cover domain. This will invert the position and state reporting. + required: false + type: boolean + default: false {% endconfiguration %} ### {% linkable_title Network Key %} From c69f3808b180b6525f80092003b69aed9808182c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isabella=20Gross=20Alstr=C3=B6m?= Date: Tue, 18 Jun 2019 02:00:48 +0200 Subject: [PATCH 22/69] Add docs for new google service (#9057) * Update google documention with new service https://github.com/home-assistant/home-assistant/pull/22473 * :pencil2: Tweaks --- source/_components/calendar.google.markdown | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/source/_components/calendar.google.markdown b/source/_components/calendar.google.markdown index 82502250b31..41405af7e3a 100644 --- a/source/_components/calendar.google.markdown +++ b/source/_components/calendar.google.markdown @@ -20,6 +20,7 @@ The sensors created can trigger based on any event on the calendar or only for matching events. When you first setup this component it will generate a new configuration file `google_calendars.yaml` that will contain information about all of the calendars you can see. +It also exposes a service to add an event to one of your Google Calendars. ## {% linkable_title Prerequisites %} @@ -174,6 +175,25 @@ Otherwise everything following the hash sign would be considered a YAML comment. - **start_time**: Start time of event. - **end_time**: End time of event. +### {% linkable_title Service `google.add_event` %} + +You can use the service `google.add_event` to create a new calendar event in a calendar. Calendar id's can be found in the file `google_calendars.yaml`. All dates and times are in your local time, the component gets your time zone from your `configuration.yaml` file. + +| Service data attribute | Optional | Description | Example | +| ---------------------- | -------- | ----------- | --------| +| `calendar_id` | no | The id of the calendar you want. | Your email +| `summary` | no | Acts as the title of the event. | Bowling +| `description` | yes | The description of the event. | Birthday bowling +| `start_date_time` | yes | The date and time the event should start. | 2019-03-10 20:00:00 +| `end_date_time` | yes | The date and time the event should end. | 2019-03-10 23:00:00 +| `start_date` | yes | The date the whole day event should start. | 2019-03-10 +| `end_date` | yes | The date the whole day event should end. | 2019-03-11 +| `in` | yes | Days or weeks that you want to create the event in. | "days": 2 + +

+You either use `start_date_time` and `end_date_time`, or `start_date` and `end_date`, or `in`. +

+ ## {% linkable_title Using calendar in automations %} A calendar can be used as an external scheduler for special events or reoccurring events instead of hardcoding them in automations. From a0dd5a0e01ca08fe16d0f37d9666ce6a697b09ca Mon Sep 17 00:00:00 2001 From: Kevin Cooper Date: Tue, 18 Jun 2019 09:06:32 +0100 Subject: [PATCH 23/69] add code_arm_required to manual alarm with mqtt (#9087) * Add code_arm_required to manual alarm with mqtt * :pencil2: Tweak --- source/_components/manual_mqtt.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/_components/manual_mqtt.markdown b/source/_components/manual_mqtt.markdown index ac75fdb9543..a0fa6aa8d76 100644 --- a/source/_components/manual_mqtt.markdown +++ b/source/_components/manual_mqtt.markdown @@ -69,6 +69,12 @@ code_template: Only one of **code** and **code_template** can be specified. required: exclusive type: string +code_arm_required: + description: > + If true, the code is required to arm the alarm. If false, the code is not validated. + required: false + type: boolean + default: true delay_time: description: The time in seconds of delay added to the triggered state's **pending_time** before triggering the alarm. required: false From 764fd09b7558af037becf13c67730a0628eabbbf Mon Sep 17 00:00:00 2001 From: Tomer Figenblat Date: Tue, 18 Jun 2019 11:27:25 +0300 Subject: [PATCH 24/69] Add switcher kis auto off service (#9640) * Prettier recommandations. * Added switcher_kis.set_auto_off service documantation. --- source/_components/switcher_kis.markdown | 27 ++++++++++++++++++------ 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/source/_components/switcher_kis.markdown b/source/_components/switcher_kis.markdown index 1d2eef6c542..52772e11d13 100644 --- a/source/_components/switcher_kis.markdown +++ b/source/_components/switcher_kis.markdown @@ -57,14 +57,27 @@ device_password: ## {% linkable_title Switch State Attributes %} -| Attribute | Type | Description | Example | -| --------- | ---- | ----------- | ------- | -| `friendly_name` | string | Defaults to the device's configured name. | "Switcher Boiler" | -| `auto_off_set` | string | The auto shutdown time limit configured on the device. | "01:30:00" | -| `remaining_time` | string | Time remaining to shutdown (auto or timer). | "01:29:41" | -| `electric_current` | float | The electric current in amps. | 12.5 | -| `current_power_w` | integer | The current power used in watts. | 2756 | +| Attribute | Type | Description | Example | +| ------------------ | ------- | ------------------------------------------------------ | ----------------- | +| `friendly_name` | string | Defaults to the device's configured name. | "Switcher Boiler" | +| `auto_off_set` | string | The auto shutdown time limit configured on the device. | "01:30:00" | +| `remaining_time` | string | Time remaining to shutdown (auto or timer). | "01:29:41" | +| `electric_current` | float | The electric current in amps. | 12.5 | +| `current_power_w` | integer | The current power used in watts. | 2756 |

Please note, the following attributes are not eligible when the device is off and therefore will not appear as state attributes: `remaining_time`, `electric_current`, `current_power_w`.

+ +## {% linkable_title Services %} + +### {% linkable_title Service: `switcher_kis.set_auto_off` %} + +You can use the `switcher_kis.set_auto_off` service to set the auto-off configuration setting for the device. + +Meaning the device will turn itself off when reaching the auto-off configuration limit. + +| Service Field | Mandatory | Description | Example | +| ------------- | --------- | -------------------------------------------------------------------------------------- | -------------------------- | +| `entity_id` | Yes | Name of the entity id associated with the integration, used for permission validation. | switch.switcher_kis_boiler | +| `auto_off` | Yes | Time period string containing hours and minutes. | "02:30" | From 0c6672ffc7729dae6a56228b4209747954f37882 Mon Sep 17 00:00:00 2001 From: Phil Bruckner Date: Tue, 18 Jun 2019 05:14:21 -0500 Subject: [PATCH 25/69] Life360 integration (#9539) * Life360 integration * Update source/_components/life360.markdown Fix ha_release per review comment. Co-Authored-By: Klaas Schoute * Update source/_components/life360.markdown Fix ha_category per review comment. Co-Authored-By: Klaas Schoute * Update per code changes * :pencil2: Tweaks --- source/_components/life360.markdown | 239 +++++++++++++++++++++ source/images/supported_brands/life360.png | Bin 0 -> 14862 bytes 2 files changed, 239 insertions(+) create mode 100644 source/_components/life360.markdown create mode 100644 source/images/supported_brands/life360.png diff --git a/source/_components/life360.markdown b/source/_components/life360.markdown new file mode 100644 index 00000000000..51cfae1e40a --- /dev/null +++ b/source/_components/life360.markdown @@ -0,0 +1,239 @@ +--- +layout: page +title: "Life360" +description: "Instructions how to use Life360 to track devices in Home Assistant." +date: 2019-04-24 16:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: life360.png +ha_release: 0.95 +ha_category: + - Presence Detection +ha_iot_class: Cloud Polling +--- + +The `life360` integration allows you to detect presence using the [unofficial API](#disclaimer) of [Life360](https://www.life360.com/). + +## {% linkable_title Life360 Account %} + +You must first [create a Life360 account](https://www.life360.com/websignup). + +Then in the Home Assistant user interface (UI), click on Configuration in the left pane, then on Integrations and then on the yellow circle in the lower-right corner to "Set up a new integration." Scroll through the list and click on Life360. Enter your Life360 username and password and click SUBMIT. You can add as many Life360 accounts as you like. + +If you would like to set any advanced options, see the following section. You may want to do this before entering your Life360 account information in the UI, or you can change it at any time. You can also enter your account information in the configuration file (in addition to, or instead of, the UI) if you prefer. + +{% configuration %} +accounts: + description: Your Life360 account information. + required: false + type: [list, map] + default: None + keys: + username: + description: Your Life360 username. + required: true + type: string + password: + description: Your Life360 password. + required: true + type: string +circles: + description: See [Filtering](#filtering) for a detailed description. Must specify **include** or **exclude**, but not both. + required: false + type: map + default: Include all Circles. + keys: + include: + description: Circles to include. + required: false + type: [string, list] + exclude: + description: Circles to exclude. + required: false + type: [string, list] +driving_speed: + description: The minimum speed at which the device is considered to be "driving" (which can also set the `driving` [attribute](#additional-attributes) to `true`.) MPH or KPH, depending on Home Assistant's unit system configuration. + required: false + type: float + default: "\"Driving\" determined strictly by Life360." +error_threshold: + description: See [Communication Errors](#communication-errors) for a detailed description. + required: false + type: integer +interval_seconds: + description: This defines how often the Life360 server will be queried (in seconds.) The resulting device_tracker entities will actually only be updated when the Life360 server provides new location information for each member. + required: false + type: integer + default: 12 +max_gps_accuracy: + description: If specified, and the reported GPS accuracy is larger (i.e., *less* accurate), then update is ignored. + required: false + type: float +max_update_wait: + description: If specified and Life360 does not provide an update for a member within that maximum time window, an event named `life360_update_overdue` will be fired with the `entity_id` of the corresponding member's device_tracker entity. Once an update does come, an event named `life360_update_restored` will be fired with the `entity_id` of the corresponding member's device_tracker entity and another data item named `wait` that will indicate the amount of time spent waiting for the update. You can use these events in automations to be notified when they occur. See [example automations](#example-overdue-update-automations) below. + required: false + type: time +members: + description: See [Filtering](#filtering) for a detailed description. Must specify **include** or **exclude**, but not both. + required: false + type: map + default: Include all Members from all included Circles. + keys: + include: + description: Members to include. + required: false + type: [string, list] + exclude: + description: Members to exclude. + required: false + type: [string, list] +prefix: + description: Device ID prefix. Entity IDs will be in the form of `device_tracker.PREFIX_FIRST_LAST`, or `device_tracker.PREFIX_NAME` if the Member has only one name. To use no prefix, specify `''`. + required: false + type: string + default: life360 +warning_threshold: + description: See [Communication Errors](#communication-errors) for a detailed description. + required: false + type: integer +{% endconfiguration %} + +## {% linkable_title Additional attributes %} + +Attribute | Description +-|- +address | Address of the current location, or `none`. +at_loc_since | Date and time when first at current location (in UTC.) +battery_charging | Device is charging (`true`/`false`.) +driving | Device movement indicates driving (`true`/`false`.) +last_seen | Date and time when Life360 last updated device location (in UTC.) +moving | Device is moving (`true`/`false`.) +place | Name of Life360 Place where the device is located, or `none` if not located within one. +raw_speed | "Raw" speed value provided by Life360 server. (Units unknown.) +speed | Estimated speed of device (in MPH or KPH depending on Home Assistant's unit system configuration.) +wifi_on | Device WiFi is turned on (`true`/`false`.) + +## {% linkable_title Filtering %} + +For most users, filtering is not needed, and in such cases, the corresponding configuration variables should not be used. + +However, in some circumstances, it might be helpful to limit which Life360 Circles and/or Members are used. For these cases [**circles**](#circles) and/or [**members**](#members) can be used. + +**circles** can limit which Life360 Circles are used. + +**members** can limit which Life360 Members will be tracked. + +For a particular Member to be tracked, they must be included (or at least not excluded), and must be in at least one of the included Circles. See [example configuration](#circle-and-member-filtering-example) below. + +Note that Life360's app and website typically only show Members' first names. However, you must use their _full_ names here. If you're not sure what a Member's full name (i.e., first and last) is in Life360, ask them. Alternatively, you can set the [`logger`](https://www.home-assistant.io/components/logger/) to `debug` and look in `home-assistant.log`. The full names of all Life360 Circles & Members will be logged. + +## {% linkable_title Home - Home Assistant vs. Life360 %} + +Normally Home Assistant device trackers are "Home" when they enter `zone.home`. Also, Life360 normally considers your device "Home" when it enters the Place that coincides with your home. Since the definitions of these areas can be different, this can lead to a disagreement between Home Assistant and Life360 as to whether or not you're "Home." To avoid this, make sure these two areas are defined the same -- i.e., same location and radius. (See next section.) + +## {% linkable_title Home Assistant Zones & Life360 Places %} + +See [Zone documentation](https://www.home-assistant.io/components/zone/#home-zone) for details about how HA zones are defined. If you'd like to create HA zones from Life360 Places (e.g., to make HA's `zone.home` be identical to Life360's "Home Place"), make sure `logger` is set to `debug`. Then when HA starts the details of all the Places defined in the included Circles will be written to `home-assistant.log` in a format that can be copied into your configuration under `zone:`. E.g., you would see something like this: + +```text +2019-05-31 12:16:58 DEBUG (SyncWorker_3) [homeassistant.components.life360.device_tracker] My Family Circle: will be included, id=xxxxx +2019-05-31 12:16:58 DEBUG (SyncWorker_3) [homeassistant.components.life360.device_tracker] Circle's Places: +- name: Home + latitude: XX.XXX + longitude: YY.YYY + radius: ZZZ +``` + +## {% linkable_title Communication Errors %} + +It is not uncommon for communication errors to occur between Home Assistant and the Life360 server. This can happen for many reasons, including Internet connection issues, Life360 server load, etc. However, in most cases, they are temporary and do not significantly affect the ability to keep device_tracker entities up to date. + +Therefore, an optional filtering mechanism has been implemented to prevent inconsequential communication errors from filling the log, while still logging unusual error activity. Two thresholds are defined: [**warning_threshold**](#warning_threshold) and [**error_threshold**](#error_threshold). When a particular type of communication error happens on consecutive update cycles, it will not be logged until the number of occurrences reaches these thresholds. When the number reaches **warning_threshold** (but does not exceed **error_threshold**, and only if **warning_threshold** is defined), it will be logged as a WARNING. Once the number reaches **error_threshold**, it will be logged as an ERROR. Only two consecutive communication errors of a particular type will be logged as an ERROR, after which it will no longer be logged until it stops occurring and then happens again. + +## {% linkable_title Examples %} + +### {% linkable_title Typical configuration %} + +{% raw %} +```yaml +life360: + # MPH, assuming imperial units. + # If using metric (KPH), the equivalent would be 29. + driving_speed: 18 + interval_seconds: 10 + max_gps_accuracy: 200 + max_update_wait: + minutes: 45 + # Set comm error thresholds so first is not logged, + # second is logged as a WARNING, and third and fourth + # are logged as ERRORs. + warning_threshold: 2 + error_threshold: 3 +``` +{% endraw %} + +### {% linkable_title Circle and Member Filtering Example %} + +{% raw %} +```yaml +life360: + # Only track Members that are in these Circles. + circles: + include: [My Family, Friends] + # But do not track this Member. + members: + exclude: John Doe +``` +{% endraw %} + +### {% linkable_title Entering accounts in configuration %} + +{% raw %} +```yaml +life360: + accounts: + - username: LIFE360_USERNAME + password: LIFE360_PASSWORD +``` +{% endraw %} + +### {% linkable_title Example overdue update automations %} + +{% raw %} +```yaml +automation: + - alias: Life360 Overdue Update + trigger: + platform: event + event_type: life360_update_overdue + action: + service: notify.email_me + data_template: + title: Life360 update overdue + message: > + Update for {{ + state_attr(trigger.event.data.entity_id, 'friendly_name') or + trigger.event.data.entity_id + }} is overdue. + + - alias: Life360 Update Restored + trigger: + platform: event + event_type: life360_update_restored + action: + service: notify.email_me + data_template: + title: Life360 update restored + message: > + Update for {{ + state_attr(trigger.event.data.entity_id, 'friendly_name') or + trigger.event.data.entity_id + }} restored after {{ trigger.event.data.wait }}. +``` +{% endraw %} + +## {% linkable_title Disclaimer %} + +It does not appear that Life360 officially supports its REST API for use with other than its own apps. This integration is based on reverse engineering that has been done by the open source community, and an API token that was somehow discovered by the same community. At any time Life360 could disable that token or otherwise change its REST API such that this component would no longer work. diff --git a/source/images/supported_brands/life360.png b/source/images/supported_brands/life360.png new file mode 100644 index 0000000000000000000000000000000000000000..210e825d5545f263ad89bbc0aa4b50e9d96c20ab GIT binary patch literal 14862 zcmbWe1yo$ymNrTtK!5-V?yiLtg%=v!y$BH8or1z0g1b8jf#5E|-8B&0U4vVYU_UwM z-qZcR(fzvL+hc57)93u=S~bRA6{f5xg^o&u3I_*=E+Z|j`h5TWd>X$(dcIZ%k=8xm zQ0%3(9O2;5u>YJd;LULldZxDXW{U{WCWloPe;Ky`izS zsS|~fskx<{Ak|58I~9eci6E5*mjauDy_l(mrL+gkRLw&XV(ejU3^t(>7NQVv<9k+M zYwBc3;bv=N=g8+KNcERqzUSvZ!$2yEzgV2C1*t^-7^KitP^J)r!b~Z+Sh-n@L7Z$9 zJYZH3HybAxh?#<&4a5Uv;{vjAv#^2q*m(KaK@|TwsGhCCOw9OH#U=k`>-kNP%EHOX zo(~9gb#-NR<7z|`%2ePxXJae!(y4yJ!y0O?fQvX|nxT&Kt%+lV;5^6{B zN28$;)Y(ap>eI8MPfc`hC{~`aCh<_V!vNZc|lJJM}f3cdnS^hVy ze<=U3KG%Rx31;~WMME2LsIl`OM`gqXsh(qIHL*0|6JZzUVUy$)<>X@L;N}H^c-eS4 zM7bqJxj-V~U`|o)Kc4;3@n6ZZONxt&aC3^Yvx!T9Koab{Vv?L<+@fM);u1U{Ua-W! zWo7Ifoeb@aP5*7z^4TtkgM$~$Vam=A{^XkRKM9zM8#WFUxbou=7AboP3;Ye9vP4nf18~O$?n3|3_vM zV?Hw|%+~N3ke0TF=B7YlzZwsbSK(G<6QhLYo7j<9n*oBB)SFOt@O zB7wnwW{ZD8$P{MjVrn7@gW6L3)$V+j{{=AqXF&cfYx4gG%)oz~k+yVv29^82CPOt- zhkrfUSU&sqJe%+t8vmV8N5f~Iss1(iUpdUdY0SlGV#LE@$j0@IWG)a73oi#d4~r=; z7l*NliJ=M4pY;5#)YZcDxp04h67&p2b_j@r5A=-7=V_YvFHru?<_I-&ay5jRikLrF z`+o-g-$KR~hIZzr&kGHZ>Q9(|X5|0x!Tj&q^8XRcf7dqu+hCsa!TW!=@qZZ+@J~p8 zR|@zyqW+_Zf6@Nag7ln#zlNSyxj&EpEU(Wm|18j^cF)OzJukn}{CbFRaG-q|aS@1H z=FunD1`~<2C*hNyZLaX$6l|{@LPz~fXuiH;kRg}Aaqi4yV=l423bF1QC=dPUj&7~V z0eBT|{q7y)jmRLN3l1xU5`)8Wcjef_*SCcpGF>!Tzst_?8rC+ZHg+WBt?0ZwxvLE= z$5PLeh`@VV+RMjSdHT3qFq08}t?^E+pGF{=$2rZF8BM6<1Gj>DUH9OXMIG0G0Ay#~ zgf+b^X2{8TUgyM1Vp|c?=P+*s!OMn4SY2U4@N&*Ibn4zD`JA>Y{#YOgAFGDlrxTU9 zl6$0&(;JI&c)Suk`Z6$ed<5wGrq^exz0&V`^&6RkjxXlY{zEB}*MasbgFby&8(ucT zA>tuA$;-pA>bC=>unBwI`6*iZ(0+BAOL~fT+b`Bw*RDGxI=0=d$2YQ2t*OVQ{1E(% z{koOs@xDu{pwJe|$=v5BCyCFh)(pHe6@<(nXu+McCvG#$BACPP!lxLhiALbXSd~hM z&z4d0<8ARK>LPGyIdaWQ^!!qPqI^}+_ER|(w@t=>1a4kEPS^h$KIO$KLL0);dFXOF z9t#=W3{uWX5ujh}$_v6>hz-7w&Q$$g^R0}e6;tN8|Jz5WHDJuv zcdKzDzyMk2$qHgpMad9tVM`sAyY$o`jq}4rsp7ea_YY}UyKU&ufl4FJ4N2uDwcF~4 zZ<>|@SmLX%d2y3gv(K?0eBDJ0C@4A}m5%ByZu-27@VgniM;KGCIc@g`t?j{D9S439 z{!j2b2$v%lzk%3%^+sz#u^owoaCyq{Z`E%`?&d64i;)lBZd}5SbH*q zSw56bYpQYo#_Nz$ad*(A#XLIm>p>7W2s=pm0uu&o7E1d>=ddG~c;CszpCZt|*8eS5 zL|WLoLdJ`512`q`II`aJsk5k3)x;L}}z{`7Wr>+%hHk$*(1?T_}c`8&~JDv;ci?FdLc;DIlaYw z`xL+PJ7!hDP8PdbMHuE=`!^cOZBcmzbYBAXU?QH&xrEAO*gW$M^nUu9378*S-Xx{K zHz(_BEgZd(c0%umZ+UNMyyj+bc3NL95iuR0u5hWK492Fvn>soMpij$*{L+6y-^NZg zwk|y*{!Pl?zUuEoFPl6F5S0|yI7&XDb-emORO`pjHh2$)L?gHtblvY8hdu6`zN#1) z?+EU=@RR6X>3B{b@_SP^TUL9z5A^P;UGGm)iq9z%5#9(X$-`9mD|kMZrv_h18W{D+ z`@#8~@=Lnu+>w4;m7tf*=7E3k5>RcnCp+_1w zypVtH8Eaj|RKI^0W=0KPmBlTY>J>7(wy9$@peehvpOUS8uI5pp{&etVbJFpnD`VOm zbC?GFb1i?IENqP*ED#*5Isi|}5(E6vK8j~r{V=V-;E>3C`zS;4gf^my7+^PUBr9Ef z?A)0w`Is4#bFPrE^|{9-2%!Xz3?T^xq9}R$hK=ls;m2@ZnG3*^w{95y06qhb_{E}u zma7&Q=gXQ_=!?e}OXy2sGW&cmsqFZYYiIQJ7={pp6A5?v&}CtCnPbi;?ON)0Z8WD? zK{B5ZpJ8Gp;6<#v?F9L3M}yLBYKUqrbG4`pCSyVy*gY}iv{{u@D2K{fuwQf~8u zcXpTP+OoCSatU5`7hVjCfKE>PTPEou&v7ogbU(8c|CZMc`TJc1rP$PLLdzJqF783@ zscHunkk6_?%~Y^iJ>y;V9)0{I!SgFB14etY_i0yRMlvVtXhqqvmdtBo@OE%*FAnu$ zm(=DjX6d>vW=~)Mjq8E7i&MM1?hp&)g82{CD+&?QQMpm&-JIKSI#=s5B({%ta{gb# zWL8eP=3Y~~FJJk0 zl8>nz>2uitZn3Cv7Ni)dc*R;A2TVFCOXkp!yd6U*ubxwZcJ2-_%M<;OmrF}=>*%-m zQP1P+-VNs$y!~{v7VK>|$V}AqdG?TEgn-NGN`lZVT^OmK5eOx3Kh@41&asTyQXEg>{Hdniq(0RKVoO;Db0gUMpA(_IPs>4cH3#BYtykj&vb zm3i941)nO}*rO|CNOT{4BZGY877ehivgbmCRdSofqRx&w+c<|i4bz9Wblm53yK<&?L^v8XL=6oP}T@F7?BEXWz&#hI|!r zk`<((L+!Jlpl2JAgoR6fLl>tdP2z@LL?1M!&5f{rc^29v&_R>y9I<}Gsd*`{U3kExwQ z#mAG%;3R{p&_D&dt#M-To8 z7Y;jK;Yr_`x#7^{E|bEuq-S{qS5=Gq;sQLAikpDn530_2;8Kz`!gHANyTgeFT~(7# zva2^KxV%;4G5LTL&}e1d3Td*$Joo{dHEm741M>?d`;G<|1z0km@r%8G05<74BYK#w z#?Lr&{w>1ddna1okj^)$+$-BaZPuM3+hbNcUv%o$(c(cttEw4lh09CkcA?WNnK08M zGy?GJ9J82;!lDB-oKXqWm3P`+Y>g*UjTlMRDt3s+$j8HXSrOH&0PU~U9F^37$@|CR z@f(wr{ZvYXTbyLCi{6cdjY|h}SSzn~oKndUWw?OGi-MP*-D2+3sOb5&1dz6`D`$2Wj=N5npD7l=<$8yjSKK&p#a&GV$Zf-OljZfZU@sq6ZjA|kNGEZ!U zYx!&8TnO-lIgHNJ@LIPnI<7T-XHumt8^DjAyrESJS_&QF_Y?Hfp!UL)v-}jfWq@^o zw8l|L5;U|D?uBAnnrQ&%`?1PX#d$535LF*xIj=?i9exNL)3@P3m((8^-qqTq=jDk} zcB6dvZhYKTXD%RHBi=1Y7s-Ofer9tYZot zac@QSYX}9uSI!thMpUl_55v8_Q?@I3tfJ8Q1(2L4=3fNcdIu_240kD$F5zfH7A zgc;KOeywwL-uL@Fr_tv1mY^xQM5&hzQEWlX2Tu$D{gm|2YA;@{_$QR40{D~u3VWu$ zpX}dwK3+9h`1TAbdg=~0Fg;#1yIWepI6CG0s8xhiuTVOdl+jX(4lC?c-?5QQ=0b^? z-ec7j4BSB^)J7Y+WKysnofSFA6o)-@@ha*g(XJnfm-U(*j3Q9G)SZ zWA#NE>sn-cQ6X?+7lKl8YFv#?OpL!CkUO&H`1W5+IsXWI`)&0XUHGe@B4tH7(h~EE z{tgYeC;xN6ke4fezw2iS8t()#3C5~blP(4vKR>xaIu-Tu zBritEhM z(oLD=@CCO@q?S9ZbT`&qfMnV`=j&4IdOY{rdjlyxbFo_V^_ z>P3PU-D;&Xx}|_Jl0v^B!nr2bf;%i;;8szWiR4s(-`DBlRpk-1)m~7(ZZ6Rd5SLYb zuAj+X=GPrnfmbr)RB4R7Q={_=)v@=ISmd|6PxYZ}S|r~35N;XS^J2!Kri6CKM4$PJG^43@KURs`ZgC)^K59Aq&h}dzkdAUr@x|xh)l`Ls9zOG@{OYNe(9d-NIi(-aO zQjJC!?}lZFSY?L}6*?qCr=Rc6pQxtd^D%Gf{lEi;hzROAcZiPqMWS^ndrd*je(k-t zBppSL8IJ}=a}7>o{h;L7>eyj|V53ss&^IzdZ1|@+qqm>xh{`1313rg4E4!=ic}0-g z6Yg&{7f*2H7_Hc*^yYfe0uH7sDr#c_?kOvO(M#H@gjcrLfAk_=bf=A9!tM0`Z9YKB zAdFlW4wVqL&lwCrg*t~u43-5>%u&+!oE^T^S&8|z%h~+BC^IX5>+MfWZLP(Y$phHp zPJ|Y>VmN_m6@hGYn9S%sC?h#!`|2G3bnMKsOZL_`K+5OzsPe}kAx4Ab9#m8k=}YMP21$2 zmwSe>m(%S1TH{|InAOD$y-yVRd{upj1I8UztLXc2&_}b1n>1-uE1b9=NTZZHwd0!= z4!%Fc`jSu~#2=Tyb)A~E5nCmK2nd%~bF-_mNxb-dscs{6t&hnb1 zOUy?_HwVd@HAt{e-PLn2%NJ74pkvJofHsl~muMA|j$J*l-)IU6x26bXLid_2L~EJ*`h7Sdb?lB&1ZakQ ziRX2uQ?Y|i5g(MtTP8jF&h3qN)BA z7Lx1cABTMu5#{f{)7|B;$J4myy|_n58&}UNu)PqoA`+vRM})MMRSI_Jz9P21``8LsnLF!1*l*{sD1iWa4Bv&4Se<#bsZmvX~WKZH%eoK96nZrN-2KQ_**9Tn8 zgzr=EUD)U9c6Rt0?`I+^r>sqpGX;LOTu+jsDYadhZ; z_6$wcgn3J8i(guQ8p?^ELrKz(bH|ux7r-DYK8e89!qMnKR3%Nz2V`uw#e0aw>V-&T ztP)xav3#Hzrx{03azYS+5?gRAdK_LLU->g5lmpu}WSa%|Lt4e?bxbmt?7LmG|Xxhc1F4nVS1#OsYllfs?7P7b10~RZNuj7I^qddj$NXvAj4}98xX*{Ao{VhdydZ~1 zowcJ5hYlpjqByYMrRstGRKK)Kf=&B%O#VJsS=sD+edZi|U2JS`V;JTo+^ib%e*JNvl+$syL!&5ci*Q4Dncp*gO1Tha89Iz-6L%{b{IfqKpgAj3d) z+d1}0E|Uk=dZ?@5usMsdNw39zqJrP2i&^Zs_{E>LImpI9(Rh3}P+ew9yJAOv2e<

3HYOVLI$SZI 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 Date: Tue, 18 Jun 2019 12:17:07 +0200 Subject: [PATCH 26/69] Adds documentation for Plaato Airlock (#9398) * Adds documentation for Plaato Airlock * Fixes typo * Adds logo and text describing the platform was not made by Plaato * Removes quotes as per suggestion in review * :pencil2: Tweaks --- source/_components/plaato.markdown | 28 ++++++++++++++++++++++ source/images/supported_brands/plaato.png | Bin 0 -> 37518 bytes 2 files changed, 28 insertions(+) create mode 100644 source/_components/plaato.markdown create mode 100644 source/images/supported_brands/plaato.png diff --git a/source/_components/plaato.markdown b/source/_components/plaato.markdown new file mode 100644 index 00000000000..5ae43cb5f8f --- /dev/null +++ b/source/_components/plaato.markdown @@ -0,0 +1,28 @@ +--- +layout: page +title: "Plaato Airlock" +description: "Instructions on how to integrate Plaato Airlock sensors within Home Assistant." +date: 2019-05-07 01:15 +sidebar: true +comments: false +sharing: true +footer: true +logo: plaato.png +ha_release: 0.95 +ha_category: + - Sensor +ha_iot_class: Cloud Push +--- + +This component sets up integration with [Plaato Airlock](https://www.plaato.io/). +Plaato Airlock is a tool for beer brewers that wants a unique insight into the fermentation process. +With this integration, you get all your fermentation data available in Home Assistant! + +## {% linkable_title Configuration %} + +To configure Plaato Airlock, you must set it up via the integrations panel in the Home Assistant frontend. + +This will give you the webhook URL to use in the PLAATO mobile app configuration on the tab "Webhook". +More information can be found [here](https://plaato.io/apps/help-center#!hc-general). + +This sensor platform was not made by Plaato. It is not official, not developed, and not supported by Plaato. diff --git a/source/images/supported_brands/plaato.png b/source/images/supported_brands/plaato.png new file mode 100644 index 0000000000000000000000000000000000000000..78ac490866b795dd9a200b9f95365061b8069c1c GIT binary patch literal 37518 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

?x_9njS@-G<8kIlIIQtG@D@Kqpqz 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

wr4>U4mAHuA~fwF-xH9`^NsEeY@vNp zW|E}+u$#eoqGpv#-5CVq6oPnFCjtV293=1V5;St^1{42}rnd}>>U-OUhmsKl1}T*e zr9--71QC$#7NxtpTlfh|%FrO)-7PtUbayj!=kRX+_xtdbzbKeji}!X5fq&6 zXsuJ2xMaK7U#3+*^jCk`9UG&M&cVgP-sU4wo~{;mHa=I$8(-34&H)iI#XqLKe7SMb zf&vPc42+vlrBzJ%tW&hL!s+baVWv^3 zq#q#A0oklqT?5p{BrL`pISM#qYb;9M)XYF^pL!;zd?dP!fc84E+c76fSJIxvT|p5 zV`Hm*wM$xB3FQqq#W%XJ^h1Hl==|PfW1_9ZcX!f6YNvu59~g*tdc+`8qCJHuo`9!$5#nY1k?-$#mpK}sLS zsdGJt6r0?3|K=Q2y6Wj=*dTZ#)%3T|R}{sS>FOOs9=hYLre+KorTackRLkz>zV07b zq{Nc^8H0gBnS?zbgh!XFS)z9GU+%0^BOQpUkCSXJU2Sh|Q?8gFTHDTr0~PzG5{VvE zxORoPA>KahC(%y{{uF9)?6C$`PGmO>$+6Oyd`HFaA?&S;HH|{`BmP5vJ?#DVU3szv zU%G1pAsZaMz$Bp1N&xTOrIxx-ZS8~Macya;P@ZP7mT73|+3YJQ1RX?^pnJU@jVAxY zP@Wn+}Nx7BkSKjVU$vHB}nf~M1#9j04@ z^tH5up-EKW(JU&-D#xoJ70c@fWHx^#6}OWAx8lJTnqYrAuszMD@hsOi+gB1{Cc>9b z@ixZuRP7#N*T&U7fuo&Z;$<+jz=Yb!)8^{1zq4wGODgOy$0x&pRcLvgBR8!R5%>T{ zFraX_u*y$g2m_gR4LECZwA|{EIA=3LiU@j`k+_=s#8U3io4MA{$B70>{0^(kWv!RZ z7BC{Z{-t?xC^(!ZKsAqD*!y~?LQ$vM-1C>qi(8wHFQC>m0k3)nr6f6rC>4;Ugx;d3 z;q;FplZrKr0^LM~>Dr@(8r!Y}8=Gw7UDwA@A0WzwW1&y3blu!6xvZ}82N4lzvw`fZ zpjQzp*mT-cR+Gh^bB7~uzg7XcG$&8H;Z6cYT!k)=MMePxekw4zy^b{SnZBy&v!^Eg zn(gOi=&SUh#DiB-y?W7u9vCp9J-cRowdBJ?BxNmS<4c$o7iglTRA#U!#{=jgdj@FL z$n+bX1@=u%r@(o!%h;=5l!8jh=h+p^$KQp;vzp@@m2$=Xq|BE}H!;BuWQfQh{aC=5 z?(^RC@Vvn8B?{%%;p84qGR(x-1W$!-_L77T1cF%vQZe=`ik)0LYE0ph&()^7aWL*a zm*-)c^*A~qaH}W9r4)wMTQ1%XcVXf!bPmuGW(_PL&9K!csT-ZSeQfW?uPfh5z6x~+ zRIx<$w`tPGr!oOip@Qm{>!|*&y3j$T!l=LrSY=~h@|ti<|@B!qZKeRK5ve2g5^rgR_3VQo$oco#n*h; zlvU5L>J7et8Exq#4B3Hf-9{KIUrdkN3AY+|7cyv2JP7Km8eLvtr&AFMyBd-rhd3qh z|8(2tWh)shIm_*PH>x@Bb~ELTI-x?Sf)nNezy5Odf6hR^t0cAWn?Mw9Z=fuB=Sn5+ z_8$brSW1>aa`Z4MLjknH6-Sb3Sbh;43c1xMls$$-?k@;GXCP;O*=h1F&LjzCJdg_r zJ>8?-k%_^Ri0P{sliBWUg6AOdacBDmvSl9IiIr!}R+us`sWa6PIJnxg9qVLhAS#)c z<`UUGxh3;G+PM!H9cw!XZ6_-elRrN+2t}RnS>dSab)}b-Gfp-amg?FL^O7G!{S^Ei z8Brln@fZ{SB*)zC?*s)E#llePflC^!9PV+B7i{Tr=XYT05^^{i+svRyAXHX*-O_^AmyZ8^8#efn$mtvw# z72Y}2So5{*tI5GctB}!)6uR6lGk!s41u3AkZr9=vqk7_^paA# z+@N6KB*|caScXHwb$AMuwUzUS7LRjKG6+)xGo8zB>Q{LJrnc~6klx7{6= zYoV0mxQUQY=2kE=!Dq5X?VuXey8a-hO*n9@_3jfGrHiAToZ|98ZbVF<0gmohstQGH z;w$H<*!Yek?ESAs6sofvD9jAItW(sRn zWyBenZ63y=f;gXE;A!pGYype2&lo4?Ex&;C5DExgjmWZl;IL!5c)AFxcYF?ptgi|o&=UW+3cm9IyB&Y2g z^`wY;V35+2NdNYwwsoJ?t_w#7G|4ds7wDIDKUqioD|-xTB8#Y;e zb>*%S}6dFu5D6>5{c&c57rkzX^4-;>{soM4P1r_s%T+RSd zCF>%rJKG83JNK%Slcp6W`mMfjzNJF%#Qt(2WH^GwZA<;PsyY!(r*NKO>h&0^MnYbG zU;ag-DVfP8R>b(Kf6;U)-@WP9z69_u-~N11cXZ~HJva5tzwQDm-SFhys_mY~dhZ)b zJ%zkJtC_k|Ollh8uU)j?q)na>6uz6*b}HGSy=E+mI1mKtDnw{P&J2%bVg6Sm7e?tn z=4?PN6G128s&Tjin0h9@Y|1s>3$qXE*W1UL=+Klkgr94Kt@9b-AA*=iRQ2@s3oIv# zO0k})YgCIb7=+?TN2kAXy4?3jsS5t*=Tw0j&Wr(KDhG~Qdz6ft*0nG>ZLn-}!MItY z+3>?5L57mt%JH!aHU?DEUO@j0<8``#QorN%@vj{MdIdZu!5b0X>lWX9Qe86>C^VT{ zBcU#!#q+?)t5f52?iDnKjw4^&wqvb3de8DxG3Z=%;u^8l1InBf#wG%KR$f@{oZVeFQVAlp5J(-vK1G^J%kQI%xom4&9gb~kwF>M z=*Z;{eK+Sed2vG&PXbi1LM^tY$|(7oR6Lptt(RNg)O;(JXz?of_d<1383ZKT`Q6}T zzA?k=>2r@w?VA`TJ~6yn+vWG)btZQ<(#fF8#J~Zh|Ihp;v!=E~FjNW`G}GcG%b%xjG)mq#FqH6Ok?PA)4GlSnQ;Rxy z{|my97Yep0#FAExYRma_`bp}S`{bsriy;IHXRn*p>J@2X7m)E&Qbe7mD$KhFP;3+D zyT8dWQ={K^P^p#bAtUK2-gy0pXJ`2Vp@vVNyA-rB&O zZ*lYcph1xdS#8nJsKN^v%VL=G!Et7yYvk&OF#6Dt5Qq5yJX^e6K6#OE;%%*n@c-CFl>331A)&dxe&xyLNAsJ0Trbch z12%B?$K4XfH;ucooAlIg2G3AI_F+xb7si&4@BkHA9RtcR;}#5xZY(4d66q=2S`vy_^!V;NPLRqspUlVYqvV zodYDiiM>_+kov)I7R(?}Ci-Vt-NFuWK8@Nx0x<8a)f+jIMuF6Otj3Nn5KFZZQ6!8e_?TKp8 z%XPlNXx{R8j*1eN6)vYy{MrGz5CYa{r2{4jEYd04whs^y$})z>xHEAIT0Unc#oFtc zTq-EIr7#FFmVmT#49;OjzrzC_77GOhR9-Tq8Usd0ldyPP{i8LXd=81VM`&lgV|Eh* zqkszw700rV{I)5yWG0FuwFS@_+}|kN^VP9Qj*(VfGkAi_c%AXtd!Kg z-DL5u=~Eth$Hjd09L_CQ;fN8ck`dYbgvuh@!72X<_=$`x>5iZ^#s;7SHFp;6gbzqY`Dq*_bs{x& zH1)}Lju#v_A5zW^t}YC2&kWNady|hI_z&joNc0=LeJbI*g`4*L_0AIa#PZ|qL|e1S zncwf7p58opNVg6L-ZxlUU=J&^gS}&j_+~d9mAaL{HdLm4uH0~TR zerN7ol`H2h>RVK7tR4D*d5I(XJ8t8to@60^sdGDDBiDypC^2vFOo&W@-{%r~VZuDU zLe>MV^_gz%+1=e;bzNFkvQ&odCw~ivL@uHc;X~U3A*jKSw?gzy3V;bfT^+mr^LXXi z_+Xy2(0t~_dQ&)U}W}g?I!$i}U59|f026xdrS5YE&FLlcR z!11BR_o4AV%@~4(qFZ~!(&TitBx+>a+I68@ZSGpE+~T>at)27>mP_*eE+Rj_?|v*N z%Ncb80@)cDAVHUafY8GiypC5W$Hq8&6PYz(E}tqcuKW}%a&BrU*rFqeSRuI$pzWKE8d|N6i~E~J(&w=;nQ? z{l4VXxl*h$zrrnG#r6RX4SGL+rSZ7;+_#KYqGWA#|1Z+upt9A_s9}U!>3EFW8;$m%K&Vd z={*#zm4M-!uKAv|DEx;jJ(XM*m`rTi-pithZ-u6|VVb$aN5=2|XD)N&k6^^tWw^AuI(4q;_FNG^l)%Cn_;V( zv#XcH+ktP{p-cZo7Wut}l-muKQ-P@>zQ&UB+3}hJtdNl3F3q4${hx+Uf51YT&y=9; zoHcY$^u+8HNfZQ1_9_%5G*jQ>bTrJ6LNGu53Hw>FUaqNQ19x)Bbf#rw`GZmUQ*pIw zY`>+)sTSY^D`oWi*`GgYoMxATC;0wfBPq7lWPxm zSf4|w2X8)H$vXDguda2E>bhF9H_T&a|1(jhifQg0j$#6Vpp53Z@%b2&5ddqW1r!+8 zmO6iG80M}}Ri<6S!=nbt7RruLG>Czf@p|_GOr5;IGR4&l38LZqQfZ?=nxS#h;Pi&IiU zgi!+GH1JUOYQN8dJzD*CL$;B?ph(>*YA}%ytWZK_?3Xgk zQms2sdUV~HpBggptc{fSejTmEZ0Cl^n^k(37EwR3M0kJ1 z5*I2+@=2>vH1P$p?3e`&0h)NFUr@0B$TnKuc#ZFv69ICjM)gj3>OGi9TG#Ecu+eQf z6SJ#xLF0-61XDwlYKDa_54_sPa5TuM zOYc#{ekWAGAYPG=xPZeTz3pORw@P-wR5au*`|=gKmIfVA*u8+GYR6st{i~o$rf?VG z4_@pNl$zXgAq~M!EET1NyTi5Bo(F;|=|X|=pe08&+PbB5TcJxDWLpCp*C?*rG!TisrUCryIpQ= zy2P36!C0SC^yzlnD7j*l`S24|I1dD3|0qF^`@0OhDPPm@IJCYSrq~d-xuI^%5Bl zAdiuOJhuBgBAf68lWzP<@~5Jl`o~NEj1kPru9mOBM(S}sm{|yNs62rT~a%+`n=i!!E0ME zFhKiP^`_D!)9eTnFHoxL;4qCq3ZI+jxc&A(D6AY%G3mEB;%u?%36F7{ziQ%Zs${`# z&%#`=y)pvg0>x7giX{W2#LooHH=_0pdg=EUim?=Xb2aO4ryRgUZh(@Zxep1M?&HEdrMCtwUfRuUu5P)GZ=#)`l4X7lLk7^RaAc|{ zZ#BVqt^Kndl|GeU?T0|1SNGnN7yZSSackZS3yWgZaOLwnuKZVlQoUt8hQ$OKO#W zk;$&g8@a;5yPCQE`1(W&jG~Rdx|YMdj`x=6VUj07%4onWUCdm?oNm6E<@w3mr%qOb zo$+SoX9iz;1TC;BzOUE|kR%gto^npFpNNa&w4Nrmwav1!(#8@=zp&V~;JCTqTT1=x6emwM010bQW)c7Gy`8I1EgsCEhy*szQTVilth7k$6+5#Y332r9@w z*<#mz<%^2n&rj<6l1#qF+9-bFKK64dH{Xk`^K~mcYiL<%A1tI|K*x49001NYdmioX zl5(%=u3c1bEDS1(ARfX?{2sNCS>V0p)<}kHwA|5USFGEVIb*ZarRu38*nG1TmqxFu zAdFa1`VHvep7Dg2=$|!-;$5BtDBek+VhcDEnrHFm`ax8Q&g8?@-{EhMH&bHoevrOj z!$R-}%f|fqL(3DDld@Cti4!=xx!}yK(%tCSjV)+H2eqCDxhSyQns(p|19CMMOIN*S zZ}~89cG2mqf1}iyI1|Mh52}+Zswo8M&xP4?h5+}l;b#%2XJ+yX*&q6QE$PSwZX3r} zBdWawm=_LVkx{s9r^os4pUNBe%EvNF>R?}tCy7MR{yrH5{YKB)dQsZU_d)xrpS`8N z)*|~^aTg$rtK@WA0Rn*#cHm6U;UZjV)uCz8{&s&h?Tq9>$$0v-r~~vn;erK>%GSb` z3lxW-dc{9~a3^u%iKN4eG!4?~J2F2dtE+#LIwGYeB9!w}YaqV&W(@rBCg@GXbTS_?Lq}=D*UyAf94@qi0ylrl7Z$uVgz4nd+cFGg zEiJL5;oT8gG@l_-Kgm^=gYIHsPoGJx;VXvuXx7bioJu*Mp6kQM$N!m@fSlGe@G8M% zjzq3Y4lueS@yZm22l{-~Vs5M{i~+(MzqBsgt`%%ZnW+@?^o%5pr9rtC5Vc8b8RZ0A zikYjB{#XOD``e}!&_Pf{BVNvfu z7>s$kv~%=>G-gEB#>UCd5Ugkxc*e7dV|KFj#vdsRJG|zm|{2GS}O$mc4!Uu>r_Orir(Ny%OmMVcI?QG0>{D zyoiM5GB+o9XLLGQEk#Wlj}EAR_ialg!ehk5CAV@qRkP&FBQP5xa*I<@BE+a18~-?X zdl<$KWUsV0f4eu&cg8lo^v7QqECPb3AQR{&W4hwQ*YyM&R;`9Pvtm=zGcYtYdE?#N>O0b!zK?xQCBYsx=-1yzi zI+KO^n7@jN&@1mZNz!I@n>13rB?!egIQEG$*VfM1bL;wthxcD^Mg4tk@D@akPA3yM zp=#DkE|kPsq<%&$_0`A9z*clHS*$FXMW_%GxP2WX9)o^-^Iy2n9c~mEk9)hJzAYZm z*410!Q?@w+^V-&(^${5iSj@i5wl1PV9orYYzJ3GrcJ+kYGr_?c{K1DLZ2FC;em8f? zL0pwwk3@&hBfo57$5_B1#Kf&xQr_c>Kp_``^3)npSZWi$myeCdW(RnHB9L zfXRrMYv@-HBN}wam%>LMw-(r3XZIRT7In#_3PIjDjbD~bRysC+Gm%-D!axCidG(CA z#P1`a)JnxXH3*agGBPp(j&=dQ7>oXUv;DqRGp$~#zW|K+d^g$6CLI_W^p34tpk6=2 zsX;HJ&~oI_>!|CspYP2Li4YxKiV3-<3YnPeOXR)ZYN`g)yNq&NpQ zs1(uYE5anW=NMh8kIaLkVLO2rlYi*)*45izd}XhT{3abieK2N9!XaibMvL z>=+vscQPn$r=~g%^{sfm$u1Ei(VLg3dTh;gNR6Bsk-N();D9_}su!x6k_STg@ZPyT z+Fl)gpyk#-D(v%Czz>Gl*Xw26-1{uKZ+8upDNLjtj^&&gOgVHfu4ebHEHbKoG&3<% z#KFTpJFZVa>T%?MsIgRU+e@1Vf zW%1?{D&6COBKu>N!~;#;^h+i{qY|b>oe_tcGf}8gaQfp7Pay_~3g{cC)hai(Z@<|t zHIM54ddn69D0Id-#0k42e;|5?O4N&TNk9=(QRuwi3zTsjovPX%R>lj0(4h;$jR8*r zRl$8B@9U7!8v#<9u57I^LfE+3@CBE1Rq4uVO-f9l1&UgslC1$SaxA)0pA7_}MAXNu zOve$%WJgA-KDHJX}^jgioYrUVV29`)ciSGMy zrI&2S=81UwQCZ!$ku(n=Y@}R|HXRKXsWi|a`o3M!6wl|9<1T z@vkEh;IMiQaF^ePm;V~?@dJTYF5Opvv6m%&_YN*z8nxvqqFx=T$?1>3$NSB42^J{! za1wky{)Pt>*^+Givk7Dnud~(96C%T%n2cRMboqL9usBv{H{|I3v?qj>(`&gL|-kza`Z z&ZTa?tBk{wlp5VxA5(>lDIhR!++!7>hJr$Tt`Q1us^dpIdu$@5M(0z`IR-Qz?Q< zPIfAv8m)Cp1Ur|(TuY3%&M4?3v$Ou@*bnqN*Oq58kb%RcHn+Y_xlC>L#d?eJAQCn` z%UyeZtx;5or;?ny)uPI!B$>N+R-*0e^-rV_AVk2@pVt20uVvz>mJ_D|JpM?x;uL%` zMOWG}n_#2komBuEM%+IDT>G)Rp5yIMu~^%~p>$On(o_Tb(NqvoPJ=Mjfn5*ZQU36K ze2CsQ+upjsb8BiK*;=`bB!l+n9Ht6+R21j9t2-6*JsB zS5Zk;Vj73Ru;70GZ>j!p)#+R1*~-lf?d)gR0bqJ}kp+BN2^B(qpTo~1+4Ks$Up762 zl45AemTP_dyQsa~MF5pBRlX(ijd~Fai+(NlGVgC1C;>eaTxr035+kbg!J~M0eMcFBp9V`{<&tEz86p`3t%IWmtO3~+Z#khW)9<= zt3T?*Son6M{a^_x-d{u4ev&d&z6iPK96?-s$i9B2YUq11tIwH-BLQio?A{CZ2RhS)R;v7mU?{*Soiar(@;x1Y;KMoO^7A?QD)q!%r! zwl9W9@JcEyF=JwMO-=r|;iHR683RX{n`$s;pT)5B{v*Jj#Smc_z>d#(@q;H}7L{ul zfhwT9@#jgi0zsnbmoECid0V;_nUN#saqL5QG~8$t=PV4bwrv3TL8Ds1KyOrzH}~GE zG+*=M$@cfeQavMb;!`$*#x>9F7RGNH#riczdy~m{0(uG!9N1rh>dvUZYK^qFjd|sn zYkv5O({wcOa+yM$HkbF3W$b0NWhQ~gM<{n&S>gHN#u~MBu|yb+Z(Y+?e{M22H~tSc zML#_|3oX%ZY9$0j1{$W%SneGh{AA*oWnQMw%Rs@`-YEIxqoOLQ@fG)_p?^nb*tbY_PvjFxa8PW6lbD{yfH?(oP$3&u?^JWbc&%Qj234+s_I(Mb^sK0<}vvrAK1 zVhlLvh}h*ZEqfHXX#KJ8D0uO$sGBOVKe3W`H?;O8u1p^@=^XF>ewQZ4_4Voo(Bn`O zPoWw)E$tFnbzj93sfmBSXj}tvtRlM8^0rmm0RIiIhWWJ__oF3rZ(CIk{=V|z@uT9< zi@82{SB!YWzj(Mv8+xw$>@SksDYB9yk+jj}uv~+#TyvWreRkllh|%rpj7;!w`l?ZtHS!JH&>MzY4H!6)XgV5=*0% z^6(m53_ENs$?xq>iejQy7kN!z5T(9!!*R%uFpB`033t!=_T?k`lC z*_7zKS4DE~hS1tZW4pVKJyOU|Q}gi|-fqW5d!`C`9X6c*H|VO62tRPG4*-WaEuTBp zxu#CH@2ZII&NMt&KdsKUNAkD8>OeQ0`KgvkUfoYPvGZU;S@vN_mnCmI=d-Po`K9}L z!!)Mca~ZZ&9>x1D}+}<6Mu|?V&6}G+cK-;^x%hls2UZkjJNl8<(=A#%JPvtBHo*zC_HCwhjz0 ztIgj$E_VE(9Rcn{36++{rbgFOpuewo)J~sbO&%^>F86%{Kv3?8S=RUPe?O-4e7RWJ z@+~Igp(#Hu37}xWs1cE+);Bcdv9r>F_Km{FvhyP(1S9(y-r`d0hvX_E=D2O-*R9j| zq6~{hv!ejC3T!{Eh18dVyh40!nRF2leEbf<6jCVI-N(Q_tRb(1{jpdq|0)iQ0l6U*aR!WDec{>q zb8m}HOh)~JL!{ca|Z$CBOk0iU;*Z z^R<|Je8pm6fZ>eeeD|WgHC5>9!3by!xa1O)h{9b z9DM0c{iy&^P-;ab7ezooFU-^6^>y1Cs0c%7o&aB^6X}&pYl8Fn6a{iZ?I|sRCKiLr z#`I4^p@D-(SAP(1CQ6jgk`>73^8imsn}Bhzf--(B3K&gmHgL^VaCNQ5>Y#3a;g=F$ z?XaoF5^mGw{tr=)(+T^quI>n8GFgeA@#Bj^t~z-PAjj9fqU(@y8ocXN9D(9PKbFHHMG4q{m$+WU+ej% zW)&h|hhuoxdFpKQ?v3?)RbGP0-upnRcp{)bWAfiG&wJ(G#;uQO`K!90UF6QZj!oZw zn2f3N3BrVeAEYy1q&0Zo6jt-?wwr@cIrGBMY+MWbizec!Mfe_)65loLwo2ZkWrbfO)@T`>X%<2d7ragy>IwM0X}z z5Cd$fLKI(3Mjt(ILbjttZub9Ba?6tz*~9R6)ChrVqePZHkGiHPThF!(o`}GI^$xVx zJE?W8N$0(7aU%o6Na^3bT_&G97GFN0prG+eanuIEoa$THMY7;>t4Tj?;Hyuvf-rW0 zIIaYfG)#YH5Cr631zLIBeS2`=mBI;9A_6Udl;k17bA^TK0)DGdbWkvge=G!*qK-6t z2b}`GdW4xnh$?F6+i)7+*nYU2iu9$xns@1r~QLD2I>%#BHT> zR0ZQH+^#y^@sp7Z%pHOu>%Ep+w?FGgZ&$oW2fS%AKVy^Uzbzw!PA2*E&V<*k)GA`$>`vo81z&=Wu5J*r+uY~DKe4mJ@C-W!vX-aX+{zYUJXRxW>O}q@w#h(%ag9m_no3E`jz~@) zal?zoNv?JI7ubsFF*Jh)Qc@?Em6k5CU2L9p1-4FYm^AJ(EBw@Pe1lJMY1Llb)^<4K z20MWcaElP-_WU4yhU7SzZBu8_boKOYZBufyYas!e+$Oyhho+8)<;TB<_p!bwZ9%;U z&k`d?B0B;l8ABHCz4J8+#+b{RukSS-99)1?MR@vudzmQf2ZHzN;`W~0II3!kB{GnP zS&mLda2R-xtC`=cXU4M*66)B0pg&61U9Z+MZc7DgY}O%*Lwc=m9N{HfW`?paEb9n(_NPzFh7Pk zcw5OchGe|y+g&c3j(B#lSFskJX;PH%I=)Elw**e)d{;^q14L=EzOChAIg*b7Y$6*+L{|Gyvc-4J(k1gjKr=M+ zhOc-#^>m3;(Y=!<*TYBDcH7w*5V-yXgtUG6J2Hme=fiQH6*KR{BJiH#Cg3glOL^?3 z@eqI>u+AwVub%1M;8?Uy%DvDtkR@~$W|nqipz#M=IPpneyUniW&3hpk0hj^6Wo-|` zf5qD=JFGsSz#G-~tw)=0&LiTP%GY*qoe^`prqHS_W}g5MvrdL_SoY;)QQ{ry=3I5y zKauYR1_a2Xva(i{2Ja9H1HX*&%kO}q1r=ZrCoQLnPkZZ-x7&eL^EF7v)l~1hAn5-%h_6@=9ILt=Z zIsos}T(gZ=NRg(kaHrKccD)G6=&st72=~`l#J{lrp#jrrS%`>SQZ=v0sL_p;gC|LA zF9kgBjn$uulz-Jm*~N+PM7bKE4P!^d-LIXyf0ZIuhK7a;^m0yB%bJfn?=BEVy<|+j z|Nov0+=wl3xWlD*1*QU(t)&zeLdYp9oMy@;NCDH>_TFE$u(a>`npUthTkZSCpaok# zGBHQ*jp5WL8yhp-7NhYU@pfJ11QS433zWmK+z)kZsfp7+B8QANM^oj@=l25Pn@EN6 z7aG;=;aT9&(wZc`$GcJh_{#(!5z{2UhqI0T99b#F;UPHoPAGnsS3NPHy$7If|IVaJ zBBmc650jdvyq&L|@_%>!U&sTCKAt9HqI~)<>sWWp5=J}`RdVB-3VRP+@pyw%>BObywe^Zxe zu`|`sg}4Z$!jd*fI$y}A+?F?dt(k|5;0TUj`M+(NVl!XCyx%iaP5)LIv~tcSns2e< z*o4=NJl!BFW@+?FovYyythRb+NnaOcM+MH;Ss7pfL|df=jwM|om^;5E(ewAE-#=`os7|&d$dU-Kd(ws2SpnQ2}6qY(*EaLg(sG^ z)H}cd(D*Z$=%;9lr>!S4>3NrNDkW(c2=wx;jHHB`R9fuzMWBhc)}JaAfd7G`%X3vO z+HNCa(>!ihF+H6HMg(y)*FgWXIYXqEk@XWECu{NBCSe5N)vC|`Dp@!_ubVgVvQ7i_ z(^8G~5;uFU&ZNM*P0bX5Oa)UDZF^t&7;0SF0{XY*!SwkAosW3G)@?fj#32I-j8*m< zE57u=DLA6onem982c|eS@h8ToPFgHyb}c^Hyp+=o7TG_i9G`#7$%MD$8Wzq;?6P|Rx{Wvz%zcLAI*7*B*Tm^zA0zhP$i=!!2!;LzJb8A~}w zmeo;!(EHB1Y8rVy@SnY=d*Ofs-)Bo@Kx)H-G~U}a*FY*Hg`#W^>+dVFg10BhziNZx z-gMkvApCS{ba*t#7Q;Mo)=*o#Tn!11PZqzAt=jY7`#yg8&{dI`Z|<2Poh9mbdF~d5 zvm?U6O#f)#It{F(B>k{sNHh!H~6$ zts&==t(xQyslfd+$sV$d`GuYZe$f=nh{>Xni0nJU)$hm30p9ZR1pJfL;>v{o0zE_A zfSU^(G%giv78{z?#T8`;>v^yHk-ef_bMLjOLB{U730(Z<+h|@B%F+_^nTP^4a zXq9Lv{ff{isqxe+teqefQ6ftG8lMFS_wci{NSNF~5|`pLl`)%aPG(+rn5$|w0w0c- zJW#zw{WhbQ2RG>44hQd2w>@&p+TIjtEV|9%`PxrLEt)o2)assuus_}zMosmGGRMo- zoyd&tIcJ5>c%MFJza2Qn?ONCm5JTPByh(UvO*WI$y@T|1hcK9?=>ZQs0`h|J8bF^;uX!uYv?Sd#aMiN+J$CwIa=_e| zy5vq(7(XUR#D4LDkF5MO;7*Y(5iW8QTE`NZKaF_*&HZ+Ig#Y0@-7VSdbie8+x0z(;!wob=rkJwYnQCPEEnMA+nRYxrfgDVYRy+O z#pZ0TL^LMoJ?l)$^$H~O7KQiorje%&>)DF?*oUR{j@>B;yT;9&nz=6{Y)tg;-hCaJ z9cjKj4hi$ln`enF;#G@Wj~2NE%2SOiM^e|c?F!GKTduNZPboWJYG^cz@WxNf5dj3b z8N0sc8snzQ&3(n~U!NbQTrkD;gVG@l=65}NqilkFDfSE4qSsSxp5tSil#e^7L0gpk zV+Xaz&NRa)?SxG`R?EL@e7kPP3nyh21Emv8MlI{Ux|<)LPPeWRX}SR4hg|rmeX28P z%cnwgYThoVSdD4i@3bmCz4~;?tL|ncjmK)b2TxP)A+UIdEN#2RE0UjABiiRO*=e@p zZ2QXE>+K_=25#UxVs8@`se7QIsBzIVHR&|u`E6B-#L!b^wCiB`A9f@$`Af5OhaSbH ztHY{g`+@Jh>_rJhk9tgrlyAxug-eG2SaHMN3u;8OtmSsg5w{`imQJEfj&2cEOJ4hD zQ4J;YHmke&Zb!|a6$|q$QHsPet&>96qAItt+UK=8C4Fb%)2(|vB)A91!EXGgn4T9! z1~&)#t`x}0Yxg6K5fdq5?I{5dcwb+jZB?6HSLlx#QeY0^AIE};s!s&?zv3(J!Yn^L zPT52iyyv!INMQAvofay&?9nKiwDDFUl)`_g3DEMmBDZVUDN0mp8tRH2#gD{|=32VH zwL)GP4vU_G zNRa|1+5XXN@-eWJXZQ8EtfoqFrxnfXlA2s`_1$NrWph-V1zWVq)tI(NZApY4)=x*8 zO9|#L&s?Vm;vDwT<(_s@wlC&dL_QT`l^}*w!`u zP=Kiwly8duUDm9%6nnZ?Y{{anbk*#Cqobqd)yYM~Z2Z?TW|Y1=V{LvTP3c#& z0J+v#b-C!KpLVs?CF9O{#uBhR#we%_1W(r@0@a2g;J8X=k22KFAJ{ZGt}*7!TF2AB z`LScg|LE<-F={SZH3>WCuQNI8QI+mNIGs5*&|{X8NZ}Lw&=^c_d(5eFTRzCNJ^Nfz z*Rp$&h+La9T;k^h_>I=qR@?Phsz{9{ay;Sd6*&9Dh+V4JUO#(l_B<;MP0z>LzaHr~ z_oULjJ#uIdJ|YcD)^+pBk_&E~4!u5>U+gpH`BlxATdsgvto^?pPj0Z;Jsp$@#E>l|c+g^#@E**@DDdv=H$8JiMiH>HPMcrmg;ZfA=9FO>} z>n`7o?bQ?|F0?pq#vn?YkmU+_)%p5_LPQ4&#@doKD&NzZE!+VZG2FE1wG=%K`{t;H z+hG(-snFVNq_0C?U{Kp#Osqm{h00`tk?wb=W8DFd&C&oQ60c@HwONHxaW-D2X|cf6 zqqbJBbYa{kA+NZ&tSl?*9q zn4=Q?`xd(-i=j~aeJwIyN?MQ8>yiRUkzXfeU9!sTR#IH^Jk$(p*rUT4y=*)tzDya; z2@4W0BM+~hC8oK5HO@ICahDq1h2O!&$gQsy=ccEpBR~AA?2*jo=2mMmnk|r{+~FOZ zAkD|s6XoZypK2F>#rbQ|m!tL!o_yH2NGEjh23S0w$) zUN(83`%{&Mlq+@FX)T*`!g#Za^FQlv{=W$p9tDn6tl#nUn{}C-ymV~A!SwxmR@{?_ zos>RR+3oe?!y8K%I>axPT3WO+ef9hLcu;}3bjV%&6OH!*4K~u zyU%^j@bz(7t)Wz{!rAYBEV34WKq z?e^LZn^jZa$^T-w?FKwcjiEukQ9h>jYhL-i!tZPT{rfjlaHF@&nN?xh#(8_+emf}t z|Ie+tr-Ai=dzb^i`;q+j#%Gn2N?md^tz4G|AGvYSU4CcXeaq_W(!#>4m6LK^)=0~* zUq8pXe1B>Er#VNZ<$vch`j{2+0sT1dh*{1pk?nteJ&SUgmfKr=St&_FNiNoFI?&aE zhEXM5MJ_%vM)h@zw>2x5B~&Y%V+3k)P}=uc0!T9m2?8hJfQz&R!DfweM?+&YF^uMg d0WBGR%KzjEJ#hO$@neuPJYD@<);T3K0RS-$UJC#K literal 0 HcmV?d00001 From 31c2aa1e21fd5bc31bea2c220a263d5b5e113950 Mon Sep 17 00:00:00 2001 From: z0p Date: Tue, 18 Jun 2019 13:24:20 +0300 Subject: [PATCH 27/69] Smarty component documentation (#8761) * Smarty component documentation * required changes * removed fan and sensor page * Update source/_components/smarty.markdown Co-Authored-By: z0mbieprocess * :pencil2: Tweak --- source/_components/smarty.markdown | 55 +++++++++++++++++++++++ source/images/supported_brands/salda.png | Bin 0 -> 14620 bytes 2 files changed, 55 insertions(+) create mode 100644 source/_components/smarty.markdown create mode 100644 source/images/supported_brands/salda.png diff --git a/source/_components/smarty.markdown b/source/_components/smarty.markdown new file mode 100644 index 00000000000..cf7caa1f13c --- /dev/null +++ b/source/_components/smarty.markdown @@ -0,0 +1,55 @@ +--- +layout: page +title: "Salda Smarty 2X/3X/4X P/V Ventilation" +description: "Instructions on how to integrate Salda Smarty 2X/3X/4X P/V ventilation systems into Home Assistant." +date: 2019-02-25 20:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: salda.png +ha_category: + - Hub + - Fan + - Sensor +ha_release: 0.95 +--- + +The `smarty` component lets you control Salda [Smarty](http://www.salda.lt/en/products/category/compact-counter-flow-units) ventilation units from Home Assistant. You need a [MB-GATEWAY](http://www.salda.lt/en/products/item/5637227077) or something similar to connect to your local network. + +There is currently support for the following device types within Home Assistant: + +- Fan +- Sensor + +The component has a fan platform to view and control the ventilation speed, and a sensors platform to read: + +- Outdoor air temperature +- Extract air temperature +- Supply air temperature +- Extract fan speed rpm +- Supply fan speed rpm +- Alarm +- Warning +- Filter Change Timer + +## {% linkable_title Configuration %} + +To set it up, add the following information to your `configuration.yaml` file: + +```yaml +smarty: + host: 192.168.0.10 +``` + +{% configuration %} +host: + description: The IP Address of the unit. + required: true + type: string +name: + description: The name of this device as you want to see it in Home Assistant. + required: false + default: Smarty + type: string +{% endconfiguration %} diff --git a/source/images/supported_brands/salda.png b/source/images/supported_brands/salda.png new file mode 100644 index 0000000000000000000000000000000000000000..b9cda129a2d618e39d11102171202bba4993a76e GIT binary patch literal 14620 zcmV+%IpfBOP)NmaNcW7*V7s?wp;o4}igr2GHm=pYQM7?!L>p4Pd0IJeXI| z5a_=5oZtEF+c`JW>2xxg%+POkF+#RbD2$Dco;W)FwHM~T`D*#_q2k0uE}zTfvP0eR z>l>RpPnK4{xS^k`H+Ghm>(#BHcDvK={6_O(xHjM=;%-`+i5gd)Xln&W_@L?u~BVo zZSQl~{?y>GSQt5Wq%bkgsKN=W7=#$DQJA-@Rc|zRcbnVW&7B(Hwdzd)03!Ccx&au_ z1jRySZnii+mdWQBu+w7gUi8{9P`oqL+TMZOyUVM(S>%Xcdfw>tR2NTnI*rY(-L?|&Ae0gv4?t`s|k8`C`wvgAFI(@E%7YidJ6VIL-J#~Ee$P81Yj^_IU3PGy*ci!K; zdtb1_Q@M2NY6OSWfIH!dY%T|2EQfy!BNZ5>I5A#6G?lBAbLEmAcq$ds+TGn1ezN?@ z7tPu(7=#{(qG>z8)QSaUXQ;Nijx4WTyD6FObjDAgoPOzrw_ z(L3)w`RJ3va3xnPg*A#4RHFqqpZk-4di*BfA_Xf2Ilq@ zMN@dXEz80Lf;bk$=L^GgGm{sdIsD?K>94&wdh&Q>=CE$tW1W6vV;s;XSO5G+kKTSa zQz&Ge9pl~<#)Aql`uM36$G-Qi@pGqh`Fy5WOb-2&oX6;>_qFS{mOlDy?dI)`n|Ic4 zec7mPn-0ie(E@G@kP*nGFe55T?Op>p-ywC&Hua?9B<0MU2nANb<_3xQv{ukM1O6gg(7dZV6t|m!8l#)8xh(q z#=_#~M@J-e2ffhUjV6GxqD(di4m;VlWM$yhGQoB?8RO|{Wp+D{+pXRD*23b-7dNIZ zo}avQ{?O%%m1*O@174sPYlc2%z&uc8GEguLFcG-ff{tzQEOVD?PoI+W0HU_Cy7;S) zZv5x}R=xia?+q=IEfur*Qh=)1jP_}a$o1;>&eF>Io%@Tw`nWhYHg@VnVRTr`caW=D ztL?6=!WPKBU~opzJA%QGZOQw=9AKOH*$*Y8ui?CUqp?*5=|vPC*4E(c5u363sxUeN zbxV^IjO+zrz=x0unnBTAp_s!`OL_;~9{#E;*!G#YuidV1Zed|M*KVQ~55I8n$TwfX z{1wMWLD4}qUu|`5Yksj^Z{~`)dlgJdf7w0&JGmBj@?%;bsqio3U}V<9aNHWrwd=R< z{p9D1AAAhkwHkF??`$qFD#jVkW=-MyY%ZHAml<$(eFNo(ftY>mCHxZKa#BC5t*jx| zFkf$hJ#I*O#`JEp$tq0yN¥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 Date: Tue, 18 Jun 2019 13:39:52 +0300 Subject: [PATCH 28/69] Google Cloud Platform Documentation (#9367) * Google Cloud TTS service component manual * Beautified * * Added new parameter description * Structurized * Changed icon * Update source/_components/google_cloud.markdown Co-Authored-By: lufton * Added speed, pitch and gain parameters description * * Added new profiles parameter * Changed default and supported values * Fixes * Fixes * It's too late to be added to 0.93 =( * :pencil2: Tweaks --- source/_components/google_cloud.markdown | 140 ++++++++++++++++++ .../images/supported_brands/google_cloud.png | Bin 0 -> 20211 bytes 2 files changed, 140 insertions(+) create mode 100644 source/_components/google_cloud.markdown create mode 100644 source/images/supported_brands/google_cloud.png diff --git a/source/_components/google_cloud.markdown b/source/_components/google_cloud.markdown new file mode 100644 index 00000000000..ff386fe3133 --- /dev/null +++ b/source/_components/google_cloud.markdown @@ -0,0 +1,140 @@ +--- +layout: page +title: "Google Cloud Platform" +description: "Google Cloud Platform integration." +date: 2019-05-02 12:08 +sidebar: true +comments: false +sharing: true +footer: true +logo: google_cloud.png +ha_category: Text-to-speech +ha_release: 0.95 +--- + +The `google_cloud` platform allows you to use [Google Cloud Platform](https://cloud.google.com/) API and integrate them into Home Assistant. + +## {% linkable_title Configuration %} + +To use Google Cloud Platform, you need to provide `config` directory relative path of [`API key`](#obtaining-api-key) file you are going to use. Place it under `config` folder and set `key_file` parameter in `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +tts: + - platform: google_cloud + key_file: googlecloud.json +``` + +## {% linkable_title Obtaining an API key %} + +API key obtaining process described in corresponding documentation: + +* [Text-to-Speach](https://cloud.google.com/text-to-speech/docs/quickstart-protocol) +* [Speach-to-Text](https://cloud.google.com/speech-to-text/docs/quickstart-protocol) +* [Geocoding](https://cloud.google.com/translate/docs/quickstart) + +Basic instruction for all APIs: + +1. Visit [Cloud Resource Manager](https://console.cloud.google.com/cloud-resource-manager). +2. Click `CREATE PROJECT` button at the top. +3. Specify convenient `Project name` and click `CREATE` button. +4. [Make sure that billing is enabled for your Google Cloud Platform project](https://cloud.google.com/billing/docs/how-to/modify-project). +5. Enable needed Cloud API visiting one of the links below or [APIs library](https://console.cloud.google.com/apis/library), selecting your `Project` from the dropdown list and clicking the `Continue` button: + + * [Text-to-Speech](https://console.cloud.google.com/flows/enableapi?apiid=texttospeech.googleapis.com) + * [Speech-to-Text](https://console.cloud.google.com/flows/enableapi?apiid=speech.googleapis.com) + * [Geocoding](https://console.cloud.google.com/flows/enableapi?apiid=geocoding-backend.googleapis.com) + +6. Set up authentication: + + 1. Visit [this link](https://console.cloud.google.com/apis/credentials/serviceaccountkey) + 2. From the `Service account` list, select `New service account`. + 3. In the `Service account name` field, enter any name. + + If you are requesting Text-to-Speech API key: + + 4. Don't select a value from the Role list. **No role is required to access this service**. + 5. Click `Create`. A note appears, warning that this service account has no role. + 6. Click `Create without role`. A JSON file that contains your `API key` downloads to your computer. + +## {% linkable_title Google Cloud Text-to-Speech %} + +[Google Cloud Text-to-Speech](https://cloud.google.com/text-to-speech/) converts text into human-like speech in more than 100 voices across 20+ languages and variants. It applies groundbreaking research in speech synthesis (WaveNet) and Google's powerful neural networks to deliver high-fidelity audio. With this easy-to-use API, you can create lifelike interactions with your users that transform customer service, device interaction, and other applications. + +### {% linkable_title Pricing %} + +The Cloud Text-to-Speech API is priced monthly based on the amount of characters to synthesize into audio sent to the service. + +| Feature | Monthly free tier | Paid usage | +|-------------------------------|---------------------------|-----------------------------------| +| Standard (non-WaveNet) voices | 0 to 4 million characters | $4.00 USD / 1 million characters | +| WaveNet voices | 0 to 1 million characters | $16.00 USD / 1 million characters | + +### {% linkable_title Text-to-Speach configuration %} + +{% configuration %} +key_file: + description: "The [`API key`](#obtaining-api-key) file to use with Google Cloud Platform. If not specified `os.environ['GOOGLE_APPLICATION_CREDENTIALS']` path will be used." + required: false + type: string +language: + description: "Default language of the voice, e.g. `en-US`. Supported languages, genders and voices listed [here](https://cloud.google.com/text-to-speech/docs/voices)." + required: false + type: string + default: en-US +gender: + description: "Default gender of the voice, e.g. `male`. Supported languages, genders and voices listed [here](https://cloud.google.com/text-to-speech/docs/voices)." + required: false + type: string + default: neutral +voice: + description: "Default voice name, e.g. `en-US-Wavenet-F`. Supported languages, genders and voices listed [here](https://cloud.google.com/text-to-speech/docs/voices). **Important! This parameter will override `language` and `gender` parameters if set**." + required: false + type: string +encoding: + description: "Default audio encoder. Supported encodings are `ogg_opus`, `mp3` and `linear16`." + required: false + type: string + default: ogg_opus +speed: + description: "Default rate/speed of the voice, in the range [0.25, 4.0]. 1.0 is the normal native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 is half as fast. If unset(0.0), defaults to the native 1.0 speed." + required: false + type: float + default: 1.0 +pitch: + description: "Default pitch of the voice, in the range [-20.0, 20.0]. 20 means increase of 20 semitones from the original pitch. -20 means decrease of 20 semitones from the original pitch." + required: false + type: float + default: 0.0 +gain: + description: "Default volume gain (in dB) of the voice, in the range [-96.0, 16.0]. If unset, or set to a value of 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB) will play at approximately half the amplitude of the normal native signal amplitude. A value of +6.0 (dB) will play at approximately twice the amplitude of the normal native signal amplitude. Strongly recommend not to exceed +10 (dB) as there's usually no effective increase in loudness for any value greater than that." + required: false + type: float + default: 0.0 +profiles: + description: "An identifier which selects 'audio effects' profiles that are applied on (post synthesized) text to speech. Effects are applied on top of each other in the order they are given. Supported profile ids listed [here](https: //cloud.google.com/text-to-speech/docs/audio-profiles)." + required: false + type: list + default: "[]" +{% endconfiguration %} + +### {% linkable_title Full configuration example %} + +The Google Cloud Text-to-Speech configuration can look like: + +```yaml +# Example configuration.yaml entry +tts: + - platform: google_cloud + key_file: googlecloud.json + language: en-US + gender: male + voice: en-US-Wavenet-F + encoding: linear16 + speed: 0.9 + pitch: -2.5 + gain: -5.0 + profiles: + - telephony-class-application + - wearable-class-device +``` diff --git a/source/images/supported_brands/google_cloud.png b/source/images/supported_brands/google_cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..c63cd67ca4ddac7598033116e67ef88ed3c320a5 GIT binary patch literal 20211 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

|W@(dQ6+O&$H1IoXg!=4|C!w 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 Date: Tue, 18 Jun 2019 06:53:50 -0400 Subject: [PATCH 29/69] Add Lock device type to zha.markdown (#9522) * Add Lock device type to zha.markdown * Remove lock line from redirect_from --- source/_components/zha.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_components/zha.markdown b/source/_components/zha.markdown index 79df7194824..385855994e7 100644 --- a/source/_components/zha.markdown +++ b/source/_components/zha.markdown @@ -13,6 +13,7 @@ ha_category: - Binary Sensor - Fan - Light + - Lock - Sensor - Switch ha_release: 0.44 @@ -34,6 +35,7 @@ There is currently support for the following device types within Home Assistant: - Binary Sensor - Sensor - Light +- Lock - Switch - Fan From 9bb32b6528fdf52dd9a0edf63a9aa9115e4fe391 Mon Sep 17 00:00:00 2001 From: Andy Castille Date: Tue, 18 Jun 2019 05:55:48 -0500 Subject: [PATCH 30/69] Add DD-WRT device tracker wireless_only option (#9555) --- source/_components/ddwrt.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/_components/ddwrt.markdown b/source/_components/ddwrt.markdown index fd83c351c4f..037c37f0647 100644 --- a/source/_components/ddwrt.markdown +++ b/source/_components/ddwrt.markdown @@ -51,6 +51,11 @@ verify_ssl: required: false type: boolean default: true +wireless_only: + description: Whether to only list devices that are connected directly to the router via WiFi or include those connected via Ethernet or other networked access points as well. + required: false + type: boolean + default: true {% endconfiguration %} By default Home Assistant pulls information about connected devices from DD-WRT every 5 seconds. From f6bb628e3d6766051848554ec3319659ec58bdeb Mon Sep 17 00:00:00 2001 From: Phil Bruckner Date: Tue, 18 Jun 2019 05:57:49 -0500 Subject: [PATCH 31/69] Improve amcrest error handling (#9554) * Improve amcrest error handling Add max_errors and recheck_interval configuration variables. * Update per code changes --- source/_components/amcrest.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/_components/amcrest.markdown b/source/_components/amcrest.markdown index 841920a0f9a..f2e5890f3f3 100644 --- a/source/_components/amcrest.markdown +++ b/source/_components/amcrest.markdown @@ -117,6 +117,8 @@ binary_sensors: keys: motion_detected: description: "Return `on` when a motion is detected, `off` when not." + online: + description: "Return `on` when camera is available (i.e., responding to commands), `off` when not." sensors: description: > Conditions to display in the frontend. @@ -240,6 +242,7 @@ amcrest: password: YOUR_PASSWORD binary_sensors: - motion_detected + - online sensors: - sdcard From b326110e3cd0b1991ad5fb565c9c3aaa38d8ebcf Mon Sep 17 00:00:00 2001 From: GoNzCiD Date: Tue, 18 Jun 2019 12:59:26 +0200 Subject: [PATCH 32/69] Adding accuracy filter feature (#9347) * Adding accuracy filter feature I'm preparing #23292 PR to add this new feature to filter positions by accuracy * Add skip filtering by accuracy function --- source/_components/traccar.markdown | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/source/_components/traccar.markdown b/source/_components/traccar.markdown index ab4a4d6f8ae..da4f294d2e2 100644 --- a/source/_components/traccar.markdown +++ b/source/_components/traccar.markdown @@ -63,6 +63,15 @@ verify_ssl: required: false type: boolean default: true +max_accuracy: + description: Filter positions with higher accuracy than specified. + required: false + type: integer + default: 0 +skip_accuracy_filter_on: + description: Skip filter positon by "max_accuracy filter" if any of specified attributes are pressent on the traccar message. + required: false + type: list monitored_conditions: description: Additional traccar computed attributes or device-related attributes to include in the scan. required: false From 49d2c61908eeb1640b1289452a9cdabec437e0b4 Mon Sep 17 00:00:00 2001 From: David Roberts Date: Tue, 18 Jun 2019 07:07:17 -0400 Subject: [PATCH 33/69] Solaredge local (#9490) * Add documentation for SolarEdge local component * bump release * Update source/_components/solaredge_local.markdown Co-Authored-By: Klaas Schoute * Update source/_components/solaredge_local.markdown Co-Authored-By: Klaas Schoute * remove redirect * remove monitored_conditions per https://github.com/home-assistant/architecture/pull/244 * :pencil2: Tweaks --- source/_components/solaredge_local.markdown | 74 +++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 source/_components/solaredge_local.markdown diff --git a/source/_components/solaredge_local.markdown b/source/_components/solaredge_local.markdown new file mode 100644 index 00000000000..5187a313ee8 --- /dev/null +++ b/source/_components/solaredge_local.markdown @@ -0,0 +1,74 @@ +--- +layout: page +title: "SolarEdge Local Sensor" +description: "Instructions on how to integrate SolarEdge sensor within Home Assistant via Local API." +date: 2018-12-04 14:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: solaredge.png +ha_category: + - Sensor + - Energy +ha_release: 0.95 +ha_iot_class: Local Polling +--- + +The `solaredge_local` platform uses the local API available on some SolarEdge Inverters to allow you to get details from your SolarEdge solar power setup and integrate these into your Home Assistant installation. + +Only specific models support the local API. The local API is available on the SExxxxH-US models with SetApp as well as European three-phase inverters SEXXK-XXXTXBXX4 models with SetApp like SE3K-E10K, SE12.5K-SE27.6K and SE33.3K. Please check the datasheets carefully if in the section "Additional Features", sub-section "Inverter Commissioning" is present the following line "With the SetApp mobile application using built-in Wi-Fi access point for local connection". + +You can check by finding the IP address of your inverter and visiting it in a browser. If it supports the local API, you'll see the SolarEdge logo and a "Commissioning" menu. + +

+If your inveter does not support the local API, you can use the [cloud based version](/components/solaredge/) instead. +

+ +## {% linkable_title Configuration %} + +To use the SolarEdge sensors in your installation, add the following to your configuration.yaml file: + +```yaml +# Example configuration.yaml entry +sensor: + platform: solaredge_local + ip_address: IP_ADDRESS +``` + +{% configuration %} +ip_address: + description: The IP Address of your SolarEdge inverter. + required: true + type: string +name: + description: Let you overwrite the name of the device in the frontend. + required: false + default: SolarEdge + type: string +{% endconfiguration %} + +### {% linkable_title Full configuration sample %} + +A full configuration entry would look like the sample below. + +```yaml +# Example configuration.yaml entry +sensor: + - platform: solaredge_local + name: SolarEdge + ip_address: 192.168.1.123 +``` + +In case you would like to convert the values for example to kWh instead of the default Wh, you can use the [template platform](/components/sensor.template/). + +{% raw %} +```yaml +# Example configuration.yaml entry for template platform +sensors: + platform: template + sensors: + solaredge_energy_this_year_template: + value_template: '{{(states.sensor.solaredge_energy_this_year.state | float / 1000) | round(2)}}' +``` +{% endraw %} From 40c3b8e6b79d5321238863d2310fb953a1be5001 Mon Sep 17 00:00:00 2001 From: Phil Bruckner Date: Tue, 18 Jun 2019 06:10:06 -0500 Subject: [PATCH 34/69] Add control of Amcrest indicator light (#9486) * Add control of Amcrest indicator light * :pencil2: Tweak --- source/_components/amcrest.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/_components/amcrest.markdown b/source/_components/amcrest.markdown index f2e5890f3f3..b117f5f0157 100644 --- a/source/_components/amcrest.markdown +++ b/source/_components/amcrest.markdown @@ -155,6 +155,12 @@ switches: description: Enable/disable motion detection setting. motion_recording: description: Enable/disable recording on motion detection setting. +control_light: + description: > + Automatically control the camera's indicator light, turning it on if the audio or video streams are enabled, and turning it off if both streams are disabled. + required: false + type: boolean + default: true {% endconfiguration %} **Note:** Amcrest cameras with newer firmware no longer have the ability to From 6c2dc151cf90399d05f7ab7faad2a87acc6f14c5 Mon Sep 17 00:00:00 2001 From: kbickar Date: Tue, 18 Jun 2019 07:32:08 -0400 Subject: [PATCH 35/69] Added toggle services (#9245) --- source/_components/cover.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/cover.markdown b/source/_components/cover.markdown index 34674ff60dc..edd086e9cc0 100644 --- a/source/_components/cover.markdown +++ b/source/_components/cover.markdown @@ -38,7 +38,7 @@ The way these sensors are displayed in the frontend can be modified in the [cust ### {% linkable_title Cover control services %} -Available services: `cover.open_cover`, `cover.close_cover`, `cover.stop_cover`, `cover.open_cover_tilt`, `cover.close_cover_tilt`, `cover.stop_cover_tilt` +Available services: `cover.open_cover`, `cover.close_cover`, `cover.stop_cover`, `cover.toggle`, `cover.open_cover_tilt`, `cover.close_cover_tilt`, `cover.stop_cover_tilt`, `cover.toggle_tilt` | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | From a19971a1521752de01feda251152b9fcbdd384a9 Mon Sep 17 00:00:00 2001 From: Philip Rosenberg-Watt Date: Tue, 18 Jun 2019 06:55:29 -0600 Subject: [PATCH 36/69] Add APRS device tracker documentation (#9056) * Add APRS device tracker documentation * Clarify timeout config * Update release * Update release Hopefully this one is it. * :pencil2: Tweak --- .../_components/device_tracker.aprs.markdown | 59 ++++++++++++++++++ source/images/supported_brands/aprs.png | Bin 0 -> 15761 bytes 2 files changed, 59 insertions(+) create mode 100644 source/_components/device_tracker.aprs.markdown create mode 100644 source/images/supported_brands/aprs.png diff --git a/source/_components/device_tracker.aprs.markdown b/source/_components/device_tracker.aprs.markdown new file mode 100644 index 00000000000..c01cfb3519b --- /dev/null +++ b/source/_components/device_tracker.aprs.markdown @@ -0,0 +1,59 @@ +--- +layout: page +title: "APRS" +description: "Instructions on how to use APRS to track devices in Home Assistant." +date: 2018-11-04 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: aprs.png +ha_release: 0.95 +ha_category: Presence Detection +ha_iot_class: Cloud Push +--- + +The `aprs` [(Automatic Packet Reporting System)](https://en.wikipedia.org/wiki/Automatic_Packet_Reporting_System) device tracker component connects to the [APRS-IS](http://aprs-is.net/) network for tracking amateur radio devices. + +## {% linkable_title Configuration %} + +To enable APRS tracking in Home Assistant, add the following section to `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +device_tracker: + - platform: aprs + username: FO0BAR + callsigns: + - 'XX0FOO*' + - 'YY0BAR-1' +``` + +{% configuration %} +username: + description: Your callsign. This is used to connect to the host. + required: true + type: string +password: + description: Your APRS password. This will verify the connection. + required: false + type: string + default: -1 +callsigns: + description: A list of callsigns you wish to track. Wildcard `*` is allowed. Any callsigns that match will be added as devices. + required: true + type: list +host: + description: The APRS server to connect to. + required: false + type: string + default: rotate.aprs2.net +timeout: + description: The number of seconds to wait to connect to the APRS-IS network before giving up. + required: false + type: float + default: 30.0 +{% endconfiguration %} + +Verified connections are only required to send data to the APRS-IS network, which the `aprs` platform does not yet do. +However, you are free to verify your connection if you know your APRS password. diff --git a/source/images/supported_brands/aprs.png b/source/images/supported_brands/aprs.png new file mode 100644 index 0000000000000000000000000000000000000000..0bb10adb6cbaf2d06a309ba86ed0293e982ed3da GIT binary patch literal 15761 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 F{{@qpu0;R< literal 0 HcmV?d00001 From d4fcdc3860c061341313d596e5c28d499e24e7c2 Mon Sep 17 00:00:00 2001 From: David Bonnes Date: Tue, 18 Jun 2019 18:05:17 +0100 Subject: [PATCH 37/69] Add Sensor, BinarySensor to geniushub (#9456) * Initial commit * :pencil2: Tweak * add example automation, tweak text * tweak YAML * restore {% raw %} * tweak text * restore {% raw %} 2 * small tweak to text * :pencil2: Tweaks --- source/_components/geniushub.markdown | 39 +++++++++++++++++++-------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/source/_components/geniushub.markdown b/source/_components/geniushub.markdown index 23aa01aa395..2a007514e5b 100644 --- a/source/_components/geniushub.markdown +++ b/source/_components/geniushub.markdown @@ -17,7 +17,7 @@ ha_release: 0.92 ha_iot_class: Local Polling --- -The `geniushub` integration links Home Assistant with your Genius Hub for controlling its Zones and Devices. Currently, there is no support for Zone schedules. +The `geniushub` integration links Home Assistant with your Genius Hub for controlling its Zones and Devices, and visibility of any Issues. Currently, there is no support for Zone schedules. It uses the [geniushub-client](https://pypi.org/project/geniushub-client/) library. @@ -47,7 +47,24 @@ Each such entity will report back its primary state; in addition, `assigned_zone There are three `Sensor` entities that will indicate the number of **Errors**, **Warnings** and **Information** issues. -Each such entity has a state attribute that will contain a list of any such issues. For example, `error_list`. +Each such entity has a state attribute that will contain a list of any such issues which can be used in automations, etc. For example: + +{% raw %} +```yaml +- alias: GeniusHub Error Alerts + trigger: + platform: numeric_state + entity_id: sensor.errors + above: 0 + action: + - service: notify.pushbullet_notifier + data_template: + title: "Genius Hub has errors" + message: >- + Genius Hub has the following {{ states('sensor.errors') }} errors: + {{ state_attr('sensor.errors', 'error_list') }} +``` +{% endraw %} ### {% linkable_title State Attributes %} @@ -70,7 +87,7 @@ Other properties are available via each entity's state attributes. For example, This data can be accessed in automations, etc. via a value template. For example: {% raw %} -``` +```yaml value_template: "{{ state_attr('water_heater.boiler_h_w', 'status').override.setpoint }}" ``` {% endraw %} @@ -78,7 +95,7 @@ value_template: "{{ state_attr('water_heater.boiler_h_w', 'status').override.set In the specific case of **Radiator** zones with room sensors: {% raw %} -``` +```yaml value_template: "{{ state_attr('climate.main_room', 'status').occupied }}" ``` {% endraw %} @@ -91,7 +108,7 @@ To add your Genius Hub into your Home Assistant installation, add one of the fol - requires a **hub token** obtained from [my.geniushub.co.uk/tokens](https://my.geniushub.co.uk/tokens) - uses the v1 API - which is well-documented - - polls Heat Genius' own servers (so is slower, say 5-10s response time) + - polls Heat Genius' own servers (so is slower, say ~5-10s response time) ```yaml # Example configuration.yaml entry, using a Hub Token @@ -102,8 +119,8 @@ geniushub: ### {% linkable_title Option 2: hub hostname/address with user credentials %} - requires your **username** & **password**, as used with [www.geniushub.co.uk/app](https://www.geniushub.co.uk/app) - - uses the v3 API - results are WIP and may not be what you expect - - polls the hub directly (so is faster, say 1s response time) + - uses the v3 API - unofficial, but there are additional features (e.g., battery levels) + - polls the hub directly (so is faster, say ~1s response time) ```yaml # Example configuration.yaml entry, directly polling the Hub @@ -117,19 +134,19 @@ Note that if a `host` is used instead of `token`, then the `username` and `passw {% configuration %} token: - description: The Hub Token of the Genius Hub + description: The Hub Token of the Genius Hub. required: true type: string host: - description: The hostname/IP address of the Genius Hub + description: The hostname/IP address of the Genius Hub. required: true type: string username: - description: Your Genius Hub username + description: Your Genius Hub username. required: false type: string password: - description: Your Genius Hub password + description: Your Genius Hub password. required: false type: string {% endconfiguration %} From 86c0ec830f46ebd5757c44116079deefe2c68c6e Mon Sep 17 00:00:00 2001 From: David Bonnes Date: Tue, 18 Jun 2019 18:54:56 +0100 Subject: [PATCH 38/69] honeywell - Fix issue 18932 & clean up the mess (#9587) * clean up docs * less notes * ad first warning back in * :pencil2: Tweak * :pencil2: Tweak --- source/_components/honeywell.markdown | 55 +++++++++++++++++---------- 1 file changed, 34 insertions(+), 21 deletions(-) diff --git a/source/_components/honeywell.markdown b/source/_components/honeywell.markdown index bab02288bdf..3c50ddaefe5 100644 --- a/source/_components/honeywell.markdown +++ b/source/_components/honeywell.markdown @@ -16,54 +16,67 @@ redirect_from: - /components/climate.honeywell/ --- +The `honeywell` climate platform lets you control Honeywell TCC (Total Connect Comfort) climate systems from Home Assistant. It does not integrate with Honeywell TCC alarm systems. -The `honeywell` climate platform let you control Honeywell Connected thermostats from Home Assistant. +

+There is some potential confusion over this integration because it is currently implemented as a combination of two _distinct_ climate systems, one being US-based, the other is EU-based. -To set it up, add the following information to your `configuration.yaml` file: +These two regions are _not_ interchangeable, so you must be clear which applies to your climate system. +

+ +## {% linkable_title US-based Systems %} + +These systems are based in North America, and temperatures are usually in Fahrenheit. They would likely be HVAC systems. They always use the [somecomfort](https://github.com/kk7ds/somecomfort) client library. In this integration, this is called the `us` region. + +If your system is US-based, then you can access your system via [https://mytotalconnectcomfort.com/portal/](https://mytotalconnectcomfort.com/portal/) (note the `/portal/`). + +## {% linkable_title EU-based Systems %} + +These systems are based in Europe (including the UK & Ireland), and temperatures are usually in Celsius. They would likely be heating-only systems. They always use the [evohome-client](https://github.com/watchforstock/evohome-client) client library. In this integration, this is called the `eu` region. + +If your system is US-based, then you can access it via [https://international.mytotalconnectcomfort.com/](https://international.mytotalconnectcomfort.com/) (note the `international`). + +The `eu` region is soon to be deprecated, and ongoing support for such systems is available via the [evohome](/components/evohome/) integration. + +## {% linkable_title Configuration %} + +To set up this integration, first confirm your region, then add the following information to your **configuration.yaml** file (the below example is for US-based systems): ```yaml climate: - platform: honeywell username: YOUR_USERNAME password: YOUR_PASSWORD - scan_interval: 600 + region: us ``` -

-Scan interval is expressed in seconds. Omitting or mis-configuring `scan_interval` may result in too-frequent polling and cause you to be rate-limited by Honeywell. -

{% configuration %} username: - description: The username of an user with access. + description: Email address of an account with access the TCC website for your region. required: true type: string password: - description: The password for your given admin account. + description: Password for the account. required: true type: string region: - description: Region identifier (either 'eu' or 'us'). Use the `somecomfort` client library for `us`, and evohome-client for `eu`. + description: Region identifier, either 'eu' or 'us'. required: false default: eu type: string -scan_interval: - description: Scan interval is expressed in seconds. Recommended value of 600 seconds. Omitting scan_interval may result in too-frequent polling and cause you to rate-limited by Honeywell. - required: false - default: 120 - type: integer away_temperature: - description: "(*only for eu region*) Heating setpoint when away mode is on, in deg C." + description: "(*only for the EU region*) Heating setpoint when away mode is on, in degrees Celsius." required: false default: 16.0 type: float away_cool_temperature: - description: "(*only for us region*) Cooling setpoint when away mode is on, in deg C." + description: "(*only for the US region*) Cooling setpoint when away mode is on, in degrees Fahrenheit." required: false - default: 30.0 - type: float + default: 88 + type: integer away_heat_temperature: - description: "(*only for us region*) Heating setpoint when away mode is on, in deg C." + description: "(*only for the US region*) Heating setpoint when away mode is on, in degrees Fahrenheit." required: false - default: 16.0 - type: float + default: 61 + type: integer {% endconfiguration %} From df2ecd988db884d9fcc394b81290d4d619d2555c Mon Sep 17 00:00:00 2001 From: michaeldavie Date: Tue, 18 Jun 2019 14:13:11 -0400 Subject: [PATCH 39/69] Add Environment Canada weather, sensor, and camera platforms (#8604) * Add Environment Canada weather platform * Add icon, and pages for sensor and camera platforms * Add image file * Collapse to single page and update * :pencil2: Tweaks * :ambulance: Fixes header --- .../_components/environment_canada.markdown | 206 ++++++++++++++++++ .../supported_brands/environment_canada.png | Bin 0 -> 10434 bytes 2 files changed, 206 insertions(+) create mode 100644 source/_components/environment_canada.markdown create mode 100644 source/images/supported_brands/environment_canada.png diff --git a/source/_components/environment_canada.markdown b/source/_components/environment_canada.markdown new file mode 100644 index 00000000000..e1eab1a79b6 --- /dev/null +++ b/source/_components/environment_canada.markdown @@ -0,0 +1,206 @@ +--- +layout: page +title: "Environment Canada Weather" +description: "Weather data from Environment Canada." +date: 2019-06-01 10:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: environment_canada.png +ha_category: + - Weather + - Sensor + - Camera +ha_release: 0.95 +ha_iot_class: Cloud Polling +--- + +The `environment_canada` weather platforms provide meteorological data for Canadian locations from [Environment Canada](hhttps://weather.gc.ca/index_e.html). + +The following device types and data are supported: + +- [Weather](#weather) - Current conditions and forecasts +- [Sensor](#sensor) - Current conditions and alerts +- [Camera](#camera) - Radar imagery + +## {% linkable_title Location Selection %} + +Each platform automatically determines which weather station's data to use. However, as station coordinates provided by Environment Canada are somewhat imprecise, in some cases you may need to override the automatic selection to use the desired station. + +For each platform, the location to use is determined according to the following hierarchy: + + - Location ID specified in platform configuration (optional) + - Closest station to latitude/longitude specified in platform configuration (optional + - Closest station to latitude/longitude specified in Home Assistant core configuration + +## {% linkable_title Weather %} + +The `environment_canada` weather platform populates a weather card with Environment Canada current conditions and forecast [data](https://weather.gc.ca/canada_e.html). + +To add Environment Canada weather to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +weather: + - platform: environment_canada +``` + +- The sensor checks for new data every 10 minutes, and the source data is typically updated hourly within 10 minutes after the hour. +- If no name is given, the weather entity will be named `weather.`. +- The platform automatically determines which weather station to use based on the system's latitude/longitude settings. For greater precision, it is also possible to specify either: + - A specific station code based on [this CSV file](http://dd.weatheroffice.ec.gc.ca/citypage_weather/docs/site_list_towns_en.csv), or + - A specific latitude/longitude + +{% configuration %} +latitude: + description: Part of a set of coordinates to use when finding the closest weather station. + required: inclusive + type: float +longitude: + description: Part of a set of coordinates to use when finding the closest weather station. + required: inclusive + type: float +station: + description: The station code of a specific weather station to use. Station codes must be in the form `AB/s0000123`, where `AB`is a provincial abbreviation and `s0000123` is a numeric station code. If provided, this station will be used and any latitude/longitude coordinates provided will be ignored. + required: false + type: string +name: + description: Name to be used for the weather entity. + required: false + type: string +forecast: + description: Specify hourly or daily forecasts. Valid values are 'daily' and 'hourly'. + required: false + type: string + default: daily +{% endconfiguration %} + +## {% linkable_title Sensor %} + +The `environment_canada` sensor platform creates sensors based on Environment Canada [current conditions](https://weather.gc.ca/canada_e.html) and [alerts](https://weather.gc.ca/warnings/index_e.html). + +To add Environment Canada sensors to your installation, add the desired lines from the following example to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: environment_canada +``` + +- By default, a sensor entity is created for each monitored condition and each category of alert. Each sensor entity will be given the `device_id` of `sensor.`. +- The sensor checks for new data every 10 minutes, and the source data is typically updated hourly within 10 minutes after the hour. +- The platform automatically determines which weather station to use based on the system's latitude/longitude settings. For greater precision, it is also possible to specify either: + - A specific station code based on [this CSV file](http://dd.weatheroffice.ec.gc.ca/citypage_weather/docs/site_list_towns_en.csv), or + - A specific latitude/longitude + +{% configuration %} +latitude: + description: Part of a set of coordinates to use when finding the closest weather station. + required: inclusive + type: float +longitude: + description: Part of a set of coordinates to use when finding the closest weather station. + required: inclusive + type: float +station: + description: The station code of a specific weather station to use. If provided, this station will be used and any latitude/longitude coordinates provided will be ignored. Station codes must be in the form of `AB/s0000123`, where `AB`is a provincial abbreviation and `s0000123` is a numeric station code. + required: false + type: string +name: + description: Name to be used for the sensor entities. + required: false + type: string +monitored_conditions: + description: The conditions to monitor. A sensor will be created for each condition. + required: true + type: list + default: All keys + keys: + temperature: + description: The current temperature, in ºC. + dewpoint: + description: The current dewpoint, in ºC. + wind_chill: + description: The current wind chill, in ºC. + humidex: + description: The current humidex, in ºC. + pressure: + description: The current air pressure, in kPa. + tendency: + description: The current air pressure tendency, e.g. "Rising" or "Falling". + humidity: + description: The current humidity, in %. + visibility: + description: The current visibility, in km. + condition: + description: A brief text statement of the current weather conditions, e.g. "Sunny". + wind_speed: + description: The current sustained wind speed, in km/h. + wind_gust: + description: The current wind gust, in km/h. + wind_dir: + description: The current cardinal wind direction, e.g. "SSW". + high_temp: + description: The next forecast high temperature, in ºC. + low_temp: + description: The next forecast low temperature, in ºC. + pop: + description: The next forecast probability of precipitation, in %. + warnings: + description: Current warning alerts. + watches: + description: Current watch alerts. + advisories: + description: Current advisory alerts. + statements: + description: Current special weather statements. + endings: + description: Alerts that have recently ended. +{% endconfiguration %} + +## {% linkable_title Camera %} + +The `environment_canada` camera platform displays Environment Canada meteorological [radar imagery](https://weather.gc.ca/radar/index_e.html). + +To add Environment Canada radar imagery to your installation, add the desired lines from the following example to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +camera: + - platform: environment_canada +``` + +- If no name is given, the camera entity will be named `camera._radar`. +- The platform automatically determines which radar station to use based on the system's latitude/longitude settings. For greater precision, it is also possible to specify either: + - A specific station ID from [this table](https://en.wikipedia.org/wiki/Canadian_weather_radar_network#List_of_radars) (remove the leading `C`, e.g. `XFT` or `ASBV`), or + - A specific latitude/longitude + +{% configuration %} +latitude: + description: Part of a set of coordinates to use when finding the closest radar station. + required: inclusive + type: float +longitude: + description: Part of a set of coordinates to use when finding the closest radar station. + required: inclusive + type: float +station: + description: The station code of a specific radar station to use. If provided, this station will be used and any latitude/longitude coordinates provided will be ignored. + required: false + type: string +name: + description: Name to be used for the camera entity. + required: false + type: string +loop: + description: Boolean setting to determine whether to display an animated GIF of images from the last 2 hours. If `false`, the latest still image will be displayed. + required: false + default: true + type: boolean +precip_type: + description: Determines whether to use the intensity bands for rain or snow. Valid values are RAIN and SNOW. + required: false + type: string + default: RAIN from April to October, SNOW from November to March +{% endconfiguration %} diff --git a/source/images/supported_brands/environment_canada.png b/source/images/supported_brands/environment_canada.png new file mode 100644 index 0000000000000000000000000000000000000000..030df90bb29750ca5d7b5515288f7e686e155da5 GIT binary patch literal 10434 zcmY*<1ymeCvo67d>jJ?Y0*kxL;uhRtad&qOuE8}pBtA33v-r{RbiNM*m~8Qc?T|;%+BQrK9wTLek0Af`Xfci-nC!1cicv zLdezJQa}wP{XgB`TEbM;?(WV4tgK#MUMyamEKaUgtnB>!{H$yotQ;J`Hw4hl$I;!y z8|dgp{og|Vj~tMNo0+SPv%8IxBgH?tCZ+Z zKz2=ZwX!x#`Bp?nHu_sSYPquV4n&0V>v^wD!g78-hF#ORu1xf>wf|Nel`2 z$utS$Lph#?Z3s?Ss`VR?v{5WtT);Y4?b90+O|2+I4b}ZO>@Y^J1eVtNLN*nnkS!Bk zS5Ralq^YM4kY!)N;4{i&VX*wgC!k0wDq!&tA80V#DXvGMrH8agaiSw}iSH0%PIzc` zz_x8=`hL`$^Mlq_xBu%p2n%jASF9hkMq>2N5CsjnUXlI6XUEnq-DHp^J^aZg@?I5TZv z)ILx>7F~GvQA^mF(+)eKzklcN#NWO!Ebb$U-V$i}bB=Sb(2Q>F(3_ua@-d4d3Xou&i zviX(#$h3W=34k?9NRx-Hn(^7Rr|uHhZJiYZ0H+4pfyX>Zi?9;L51{lsJRJ2!%Hv4ma3hGELXCpRcKFhNGuMq>LDj^1VDc2&4vrNUqbI8zz$6Gglsim8x@ zYer@5LT5x^LZ4ZYzsPNuad0zycv-MK^Zj{bbZ#vM${Aw4K_OECZCID7l-g@ z4lt+8C`$Pkh6BCV;9Vd23z)U*uE^tP&Y@{iC`)lEm*4GpMqQ;T3`2l{Eyb(E3_%6* zHL~gN&7F$KeaRn>c|#umJLmSx5vFSOa^=d6+m-?Er7PBiW|p;+4f}~8LubF08|TTu zv(DT6Y8^=L&5~X1>{8FP%$lkVgL{2RGRb?pmc+`fYVPV}PU;7<5{DcV!fK)(O7XvD zSauYdjZw8e$x#dpWK<7L2ipab43HN_ZT5_jPs`xZp@fD34|V$mvUdHdHm8CcvGd-= z?=3EAyfR(RAi$fV`gDbP>OwJj=dDx(#m zGZEYU75p)Lv=xP7sZrLT)Ql{(WeNMZ`}G9@v9P*mo$5=X|1UlavRxaYIPA;k+qGsH z@&GQO3`0*{S&0@-VjCAfJ*qqVT^FIQAl&)q4zzImEf<6Q1Si(Yy^X(&%13Mcu?g3c z{?UESVdc@gA>=9zi2dEqCr&qE!6f-^Yq>BGJSp*2K9$V3U3PIq)mMNi?R9l9=>2wn9fu~!0S z>yGHbopIY*eox|117vF4GjzwHkl|}dV54O1Mdf9E?27P3KrBf9hFe6;7ml{;HE2a9 z_qn(BDI{v2Fc{-#g{XSyI2>2G4wa>)fKA6cQj#Iy;rhKxM_8ZCOSvkikCc=Y1;ANm z3*^E^EcHHy=$qHsDv$U1dJ>uYr1Rxx?~hDOaFCE3=ck

`+mkjR{Gka2c22l$IG@ z+As{8Xng~~CN~$Cj;^jQ^49W|DOO=1jN?-$^BwzP7;&x<#$_xN?&7?dd0U*2iq6Kn zk3?)DU%0QG&*7Z;L075&V|c6><##ci`(~p`m_Lc+XK~V&+{SmokY3r!U^IVuR0SBUX9*+?@Un_YXEWtvYPt! z@@Wxj+!e(|Y&9UF@XJriNc7iOs`=qQ&nu*>4wBS0LR z|9F!2v*ieQd{@flV~>(DY;%X~<@=4V`W^v^*-gU(u5#8I$9R^RqwKJHgWti~N0NFn zV8IrBXg~~?@Fz^U)6~?YRLR_k=UuIPcz8&d4qh!NkueS@foKF^T(9kU-z7RzKZdM(+MC*2&Bf5q@QXR3g50wkBpAOHK@(&HdyL*2R=*idH7w8@m6cs8c|}7bo<}C`rRyAN%{r8 zbuX+6LqxB4X#T^KiV#uUxfH4iVy42AL7mg0jd)kIF;3X(l_1Mi!$>{6-FiTcrJ2y< zsuSyi6#h~y(JKqFZ|J<-TeiPrd0bfUgf^F|(=Ek8ZuNH7-)ZGn)J3d~Ui+W3Yqe_g z>fcRW@$5wJIYeHK^B%3J#}&rdmS{6-K}vi88`TnQ?cvd3(&F1{KSrVj<`E}-dj!}u zX=bF7vl!SvSTmq96vws58zo~3yvq~~3Z!5`hB?Ph#m0mM(*!;LojGm z#rlM2Ii5>IxZjJ)ini*HNyI_Zf?Yl?boFc9s16(wPbxS!{^p=_^g^~Tfw%2zO#`t6 zNTRPk_d6Nr*k>w14=K;v^r9|jy^p&&PS9y(L0~H8Zb(+}oA;4mZ=&Xn{HleY&ig#K zlVu{>dVj;fzYpUx@R-#sG>8(!XkPWL{1b5d$8$59K4S89R@=C#^LBMP4E1d7X_wb? z)n^Z(NZS5kaUu}V3te#?Woz;7k7eyz05e zyPy@K5>A%(rjT6O0CtAxQj0lSYx#d>AXNbHvq#+B^R;GHzU+o=rdd9>XDJC?Q{+6w zt}S%559!@TlxU)A*Hb#oK0hx05*0N~acUVGBzF$?&|d|o{SibEE}`8Q!26J#_@p)W z%McH<6AtnHQslX>uxnM*Wez{GC}AiO4O_&1wwD@Cx<*5ijD$&u&z(IImSC_9nNL5V zhibMDbjh~zyv&Uf{6of1pxbV~Mm*^L&siWr@12Q;@Nr!q%G%aYBIfC5RDz|o*O%LM zI+5avSYX^Z%NMp0zo0zdrEi{-0|Z1DM1S)5vEW`G=DU~hwT-aP^MYRPH*zqCTJLvr zBI`TfmL5cQb@Csh!PanFj*tOB2tQcsvcQ0wn>$1{=pxp5fvL8`REE?;L)P!0Gy`$h z5NfYWNO3N-n`w4@zxTCS@U(?GDwe>|J^A^__!UJ_!_bg)>Y`6^B<^xZ^aZj$gf>_e zuochyq2Yr5t3M71NCa9cs;UQ#%mqkmje;{ZIEyHJ`4+c>}fi|{05g5!mb zjQZqe*~zIq*EQz(JW>=*juJ!K{0Rm`6O8S$(&Ez7dDit9!D~twEGw1ulbn6z@jhmh zrI|P=p!lS5E8(UeS0$olUvAzYz=Ptq0&D9`!kZJkl|RYD+}i_V5*63sW?r-qVsPylGaMipObO)Q4%4AE`P@#st|re7PU7k(VT9N+ zkJlGj<{80_MO;I^hrlsI24L&}WY*`(=FF#B7JsA}6Zlv-y)#!e0V=%u5>x=X zRlsF>={H@)K3o1l*w#xBrRgAiwP`QtvoHSP#^1u1By1-OaoWqj>+vp1crs!lLVT#A zs#HVM_!7wQv49D|vkqKoiKr0WcZ)(O3@5)RV0ITn;J!61eN02iOCW?>@mzKgx0k$r z2PQ#A0OKKL_E3adw~q5ak{r!8Xd{1R4~P)H{xm)UU1n+5vx@(9kUmF|PQnlhOQG}i zeOP4R!|fS)Zj__Qm5<^3a{>Oo%{`ALOX6zCPCS7Ti?m<=M5#gs&TQ93yc4`?+#(7# z7CRbvkP6-59mVDB%nUs5OH^eru4r3EY*Q-!xlo^splIuy9X;D`ML!d}YcE?pB6eaB zas25eiUJCb(a3MjHFfxcX!XCY6Pb0hzUXREf6ZiI7-kc* zYbZTx&=U4{I!a63kvU?C*2x3D&5i2i-($>1v!tsK_j=vN+(y6{jqbsR`soVIeuj@S zT6`D!Ou<$~@f$*oTG4LFxz?F;S=dXk^de_7s>RX>pVM00S&AvwNfqzvO!|(u5=8+n zqIla5y(SXw*$jNjPq{X-#+s;T}=6Zi&}n?|Co6H`#q*8 zD^mE``rm8U7Ez~bx+(AceffPeHk^aZflT}!8Ic4gfz05cWfWd9-J+er#Or~;I~fxo zBTcq>z#pp1Dn&;dA`6R?sQFRm%)#7@S-oL{9QQx94jY^*Ov=Tyk2j4YdD6CPGqCI_ zS~Gplr0`iJdFixOnp)Mz7}Qm+QPL>r7YasxqejB_?v;5$a?Ht)5`pG=$oR-1F*B`E ze5H$|h15#VQxzgA)%1h5Ri2u_B=|tQYu6+-t_?e&=ttE?IL-<9i2_afEJa0xpQiO{ zT<~Po?~L30l9ZMOKWs0t8&~RMnpshmCj;6na_7YUBqb52ejiGf*{J&5!f$J*;g9ga z1Vx_GKPCo%D+%*!+Xwd?p@QCgai<$(h=EVP31H$rynPxs<^|j=iqA+i_CE~RZ-!x9 zSYuiNx|U(BWWRb89W2Kr8V_;G`hA-l75!9(%x$9nHE?ihdQYdenx|p>*>Ay$T$#u3 z(Bskj6vUKq4~=Ce2zWrRQ^{b)39&EDlAJc9u+p$xoTsIl4dPlJNjSBO7B{pXXvaMX z8x6Fv*rH#MsMhiVR@U#J9y#2EdsQC=7xL^!Niru?h+}6;{jUG3V%TQHtve5LZ^1>7 zr{-vS+(;z8K=2_^?GeNXB11X@4}E?uj3l#VfU==#Q8}AkhDY^mwSak$tlH3Gl|mag zwLHGpOLkq6`W;^k9VZB$)xGpW9#7km5I&#+f{VswPkqq?Rg11WNJKYke#<;GSpl(^%Je2I^dm0Pl^2N|`;RY2wv>6iMA|CmGV3;!;gS?RmKZrv<~Z800pTcgqi zfc=E{v}_h#%R1a*BBvBW=BxVlCm4P7|n4ejF-ve2t?oubmz@G72R06Ag)Enbg3gN zZDai2CnQtzNo;3q%;t==P~B2K!@cy>}j z@T`OhlC7OxUrtYt%SMj?`npHBNdyMz2k3P{!v#3tQH>qB%$UJ-T}#qo4m(oUb=>~s zayAfnfD8nV0cwxUEt*ChHiOn2x%HiFcBsATESXt$kY#k46wI{d5Ic4o|0X>dyj~JR z!N-|A~Qf7+2ckwt&C-mbW*V5O{-#E4oH1hU#6qU(-Q)CB#!mtbGS?t^!CaQJ{IjG2A(& zYI_8nZD^0Gn9WX61I!ZPb67yYax8M1bv~0Mqgpgo9r`Mf(c_oZ`7wbE!sh8;N7Qz`UIc0*rnW~(`Zo}Ngucf{4hJ9*1`kFi<${Yh99mUb4xEv!=rVf-5PMhF)+X=b=GL9rnLb1a z%3~3+M?A7)g}VZ@K`-l<51>(TJ%Wa!m((69iB0dNP3RBuZfm{7iS|y<;ymQoGHR8> zh}VxE28n?bPT=Ag9UzC)KvSNu?%Z&MeP`ONUK3AjR4k~)gh}K2%&np?U~25B}Y66J^k30vv7s21uC@v=i7NH%jbG(sJRo zdFg#8h|vqv>%5hi(;NvQN^^SN?!`|O+Pvp8C)O_h9AJI#>uo5c5)?Kx8c7~Lx_s4p z;&J6&vO!sOM@b%h9WE8ZmB94j)CXtnik9>uq(bzR!R<4$!;`%RqH3)?ua1e^s_(2w z(56kbg?-_)chx8BL+v0sE;x(p>fQQ?mN^kF)U??3N#P2rkBVQK&_7an70Gdi@_Vb|JvzX!}Y+6pYa z?-3lKzEYAAU_U?U5B}PIam$yV-aJG}=133NyyEljU`SXm@6i3Yi+S$tPq&$bD4a~q zrlMdpdFgGW8ssH&gcx|6n2sJa6u;~uvz5exLN*5w!MtiN-^%g#_7lK7+V4~)0_8ZB zvTDO~p4H2oLC6ektEv=4?WUrP%19%Ks+Cf0yr>0N_0^Vk3q6yO34e7c(lB$Bl{Cg8 z_3j(f<%_Y}XaV)``AZk+3*j{Du;R2tZL=lYPapAgPBAP{vwDs zrWAp&#%dNsv&)3NxP)DVjM!^7ybdz&D%vD- z`L7R~PMF3nUH-MJ5)K1Pp914_EEtK;^ZM-f=!f(Tzm5R~&GI$NxE?HstEBdrrcfd! zKZ5@507*2y{7lwg#9~)iRQ@SZ45wkr7!5|5W=_FMshc$n&BA*~ot2xcoww&YyzQQ9 zy(n%(t9}-Uo0*ZcW35V-txh(AxKwr*W<$cQwwlC-@QRXsB_*UcvE)4)Gx7p&!xq7$04e8B#8M2^l4~U8TxzvL=2VXl>?_dri#;u$9vkS>Gb4a?A_oobKt5Wn z-!)nzN>i?tTNK_a%Mu2nG+s{=8o98gXRLd@Yd;#dFnBZj-L>|Q7cQJlh7;7_q%4b} zF8P|6-KGIAACToYZQ2O(Gh1CbE}EE79|jcY>+{-ZLJnw zvU&9 zx;cQ+#)YX8_0Ivy517O?v-kFElyg*h;i$y9Ed!|c%6&3LIlb!Ho+Gqg)xSw%&LR-$ zMWXtnv(j9kzHUB}?9LBoAxLD%<+nmzxD??iWMsE)2x%?BdwqJrk>V?4(gI{d136BK zM;rcO)7^3tj%Hd@x&>y$t*oAaJtaMrJ#Wc(JR4u*M<^QA6LfU_!87u<;d?7}xqsU9 zyGfgyd@d_lYN3dbpY>&kb_RuG@ooJz^+i)7Oe6Ngd#FJ5Zw;eMMG`V;b|D2Fa!fiI}&0}A@x5cwEY<}`b?G&{SHoh9ISsfBY+`EXD4Sr@zp zly#t;4Y(N%BrCSPl(d#ORFZ==i2p+?Q(f0vNPs%&xAeDnp;;7=@c6*PdI29WkPqA^KG9S2ftK(oNtS& zJN#;I`i{S&AlkUQb=Eiag^pG+(t(~|LLHnVc0Y$if%jwW7sfb=L0=z+CNdg(>gdYj&7MyXycw8B3y@=5p$V!N9N>3IiE!69?AU~ev z(VJznFx4X`J%Vj`Pp5L@+`|_L5XPgpgu}q#eM=Oq`2DkI{oKz?BqK4NSjJ$b5u=l>u^1wSH0L_l^Q zqYjC(m>tga>y`~>qZC;yxGPQxG#|2UFwDYusC$hLkSx#jm(Qg1TJkBcGmgEiyH7y( zIM$7UwW6-+etGC6a=MX%>_uN41Xg2SP#(YK0IUXzKX^IuhiqQ&CxR|@gO6(3$H)1$ z;_4Dni!9X()?UO*+{XFK>m)EFd!2=D|M-3VbGgmnO{7Nt=xC{l1C4 zg!0E?)gcD26Xvyg!10rbRfY2VV`@~gY!erxq!7GrZ^A+W_lBOs7M^R*w+P)|ja*8B z(>1ei+uU<6ml@sgrDT@QRN>-xH(^q_etTM}k7wO$d{<*E`l8hJ6C#h{4R{8YKdJ^T zT#?A#oxw>~`MzyGNMr)fWZCCs+aI#+PRV0lrhcG?7iDCYH}2%6%W>I-GnIR^NC%uiK-Aht;-)VYPu9zIj?3wyC)wPDFv=nyF13m zy9;{g{m^c#I z^+~9a%ly}~`ir)+VOA>!b$uADg1(ye(+^8H$?=t*V61VSf-SZ_=M(g};QZcd>J?Ii z6c~>wUIsJu6hw-ii?+s|#HrJws{?IAwgA zrk9B|(oU0~mI$aV*7E+9FRjV&bG(?b8UZZZ9H(nUUNO~uuKrU&H%LJp9J=jKinm$! zNt1vb4_>-u^-F%Lnm4$Ga)+G} z6DrZTayebo<}81{BV{aHY&CxIC5fOqAA9xhdNwGUcko&{-48V>Jiowq-HxpCw4Gt` zXv7V2=!kttZ=l~ejD&np`?z8BzhudsYS zr`8Jy-VWWQg(O=}45_Bu^^l<~9j8{CgphQ6CD_F0 z4d!#Buyx_ZLpzAftT6M|Fe*rYY@Mk|tu;c;dG)6&UvLuQh^QV<;4Z&8lx_EWIp4f>|>UXsC@Esqh4#s4`e#!$IB^FUk@W0%b3>LA) zGGD~lbP^rEPz4k^BKV8ls$78HHL#d!V(MP}W|wy09idaq1#3TD%lkd%HJ{w9tyzxg z*})iiMa5{UHm^~HcJ(m#DJ5VqoG{)Vx=f3e-TI{MUHctM#EH^8S+cmtkN)B1~yEH*{ZKtdtmDwG80fHK- zmK&e&pKbn>5DAb*c^-}74okCrlX6x7%hHG!Gdc+H+xp$5&n8l_7_141S}TeHD9I_? zI-W~y1n~^X#?Xyi_kV!xTF)9SUng*(xGlF*Zo1}REXniO$lbn9a-mV~VKk*+t~~k6 z9$&V|fsIp{{cUybVUhVl(Pj5@s(dmsBqdB}`a?^1R z7hgE~ESIq?m+!q9odleRS4y@xX}*+1>iu#P?+~$USKDFRtYF-F_PT0iaP5El^$dl8 zI@j;TXD*{ht__3t8xoN`6z zt-GBJzNXfFFYQdsB=#o)HZT?i>dS5ZL?eRbd}VE2jbtR$hb}Lf2QSmS_ zz~Sdf!SfU`Hv^vsA91CNbRPt{$t+By;VPbCz(Bb)V7wn&QVz2~d4|R1u(=x?0g33; z{zl4dZ2`wO5k{pEeI}M^SqVw=++?1Az`kP_RR_e;tVDC04PJxCrAYKuyQxZ)4yw>i ziFd#}J?lS+sX<=PLt<4k4MZtvfiJ}cwXpk{US0IDcEv9i0TQAElt(Ys(vb&Ucm)qt zS&Q=qYI+FCc81b&PKVGbu?5w|JPxSGrqdX$ogku*%oXtEMq}V*V69(YUv#LIv3uDn zNvT!K__AISEQFyt=q$QA>5avkSng)Z`f}r*FtpVwdZ9gluM@z%t1E1TVTMPphz`1t zn%+^fU+ShsTx@)-)p%fSLFl4!oggq6#d%Oet+GN*B{UZ%u1P&UnuMiAy!X9!`<8yR z_(tkZL@?1l`u;m9)LOCgAP>lpQ^uGYX?jNN9 literal 0 HcmV?d00001 From bc100ed8e88407c64498eeeaf80fa9e2640f829d Mon Sep 17 00:00:00 2001 From: Kevin Cooper Date: Tue, 18 Jun 2019 19:54:16 +0100 Subject: [PATCH 40/69] add code_arm_required to manual alarm (#9088) * Add code_arm_required to manual alarm * :pencil2: tweak --- source/_components/manual.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/_components/manual.markdown b/source/_components/manual.markdown index 688704cd64c..18a0c98ce9f 100644 --- a/source/_components/manual.markdown +++ b/source/_components/manual.markdown @@ -47,6 +47,11 @@ code_template: Only one of **code** and **code_template** can be specified. required: exclusive type: string +code_arm_required: + description: If true, the code is required to arm the alarm. + required: false + type: boolean + default: true delay_time: description: The time in seconds of the pending time before triggering the alarm. required: false From 845ce95d0977e3534ba52b84623e783a3d920114 Mon Sep 17 00:00:00 2001 From: Robert Svensson Date: Tue, 18 Jun 2019 20:55:45 +0200 Subject: [PATCH 41/69] Update discovery and zeroconf documentation (#9506) --- source/_components/discovery.markdown | 14 ++++---------- source/_components/zeroconf.markdown | 14 +++++++++++++- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/source/_components/discovery.markdown b/source/_components/discovery.markdown index 90810424ea1..040dd844878 100644 --- a/source/_components/discovery.markdown +++ b/source/_components/discovery.markdown @@ -17,7 +17,6 @@ ha_release: 0.7 Home Assistant can discover and automatically configure [zeroconf](https://en.wikipedia.org/wiki/Zero-configuration_networking)/[mDNS](https://en.wikipedia.org/wiki/Multicast_DNS) and [uPnP](https://en.wikipedia.org/wiki/Universal_Plug_and_Play) devices on your network. Currently the `discovery` component can detect: * [Apple TV](/components/apple_tv/) - * [Axis Communications security devices](/components/axis/) * [Belkin WeMo switches](/components/wemo/) * [Bluesound speakers](/components/media_player.bluesound/) * [Bose Soundtouch speakers](/components/media_player.soundtouch/) @@ -27,8 +26,6 @@ Home Assistant can discover and automatically configure [zeroconf](https://en.wi * [Enigma2 media player](/components/media_player.enigma2/) * [Frontier Silicon internet radios](/components/media_player.frontier_silicon/) * [Google Cast](/components/media_player.cast/) - * [HomeKit](/components/homekit_controller/) - * [IKEA Trådfri (Tradfri)](/components/tradfri/) * [Linn / Openhome](/components/media_player.openhome/) * [Logitech Harmony Hub](/components/remote.harmony/) * [Logitech media server (Squeezebox)](/components/media_player.squeezebox/) @@ -50,6 +47,10 @@ Home Assistant can discover and automatically configure [zeroconf](https://en.wi It will be able to add Google Chromecasts and Belkin WeMo switches automatically, for Philips Hue it will require some configuration from the user. +

+ Zeroconf discoverable integrations [Axis](/components/axis/)/[ESPHome](/components/esphome/)/[HomeKit](/components/homekit_controller/)/[Tradfri](/components/tradfri/) have been migrated to use [zeroconf](/components/zeroconf) integration to initiate discovery. +

+ To load this component, add the following lines to your `configuration.yaml`: ```yaml @@ -76,7 +77,6 @@ enable: Valid values for ignore are: * `apple_tv`: Apple TV - * `axis`: Axis Communications security devices * `belkin_wemo`: Belkin WeMo switches * `bluesound`: Bluesound speakers * `bose_soundtouch`: Bose Soundtouch speakers @@ -87,7 +87,6 @@ Valid values for ignore are: * `google_cast`: Google Cast * `harmony`: Logitech Harmony Hub * `igd`: Internet Gateway Device - * `ikea_tradfri`: IKEA Trådfri (Tradfri) * `logitech_mediaserver`: Logitech media server (Squeezebox) * `netgear_router`: Netgear routers * `octoprint`: Octoprint @@ -110,7 +109,6 @@ Valid values for ignore are: Valid values for enable are: * `dlna_dmr`: DLNA DMR enabled devices - * `homekit`: HomeKit accessories ## {% linkable_title Troubleshooting %} @@ -135,7 +133,3 @@ If you see `Not initializing discovery because could not install dependency netd ### {% linkable_title DSM and Synology %} For DSM/Synology, install via debian-chroot [see this forum post](https://community.home-assistant.io/t/error-starting-home-assistant-on-synology-for-first-time/917/15). - -## {% linkable_title New platforms %} - -If you are developing a new platform, please read [how to make your platform discoverable](/developers/component_discovery/) for further details. diff --git a/source/_components/zeroconf.markdown b/source/_components/zeroconf.markdown index b44c5f60f7d..7d5783c893a 100644 --- a/source/_components/zeroconf.markdown +++ b/source/_components/zeroconf.markdown @@ -10,10 +10,11 @@ footer: true logo: avahi.png ha_category: - Network +ha_qa_scale: internal ha_release: 0.18 --- -The `zeroconf` component exposes your Home Assistant to the local network using [Zeroconf](https://en.wikipedia.org/wiki/Zero-configuration_networking). Zeroconf is also sometimes known as Bonjour, Rendezvous, and Avahi. +The `zeroconf` integration exposes your Home Assistant to the local network using [Zeroconf](https://en.wikipedia.org/wiki/Zero-configuration_networking). It can also discover and automatically configure devices on your network. Zeroconf is also sometimes known as Bonjour, Rendezvous, and Avahi. ## {% linkable_title Configuration %} @@ -24,6 +25,17 @@ To integrate this into Home Assistant, add the following section to your `config zeroconf: ``` +### {% linkable_title Discoverable services %} + +Currently the `zeroconf` integration can detect: + + * [Axis Communications security devices](/components/axis/) + * [ESPHome](/components/esphome/) + * [HomeKit](/components/homekit_controller/) + * [IKEA Trådfri (Tradfri)](/components/tradfri/) + +### {% linkable_title Discovering Home Assistant %} + The registration will include meta-data about the Home Assistant instance, including a base URL that can be used to access Home Assistant, the currently running Home Assistant version, and whether an API password is needed to access the instance. The examples below show two ways to retrieve the details for testing. ```bash From e0b5bb0fafd3984640400b68a3d9fef7f3bfb714 Mon Sep 17 00:00:00 2001 From: Andre Lengwenus Date: Tue, 18 Jun 2019 20:58:18 +0200 Subject: [PATCH 42/69] Add docs for LCN scenes platform (#9545) --- source/_components/lcn.markdown | 45 +++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/source/_components/lcn.markdown b/source/_components/lcn.markdown index 1f0dee0600e..b796e6c7f27 100644 --- a/source/_components/lcn.markdown +++ b/source/_components/lcn.markdown @@ -14,6 +14,7 @@ ha_category: - Climate - Cover - Light + - Scene - Sensor - Switch ha_release: 0.85 @@ -35,6 +36,7 @@ There is currently support for the following device types within Home Assistant: - [Climate](#climate) - [Cover](#cover) - [Light](#light) +- [Scene](#scene) - [Sensor](#sensor) - [Switch](#switch) @@ -86,6 +88,14 @@ lcn: dimmable: true transition: 5 + scenes: + - name: Romantic + address: myhome.s0.m7 + register: 1 + scene: 4 + outputs: [output1, output2, relais1, relais3, relais4] + transition: 5 + sensors: - name: Temperature address: myhome.s0.m7 @@ -242,6 +252,37 @@ lights: type: int default: 0 +scenes: + description: List of your scenes. + required: false + type: map + keys: + name: + description: "Name of the scene." + required: true + type: string + address: + description: "[Address](#lcn-addresses) of the module/group." + required: true + type: string + register: + description: Number of scene register (0..9). + required: true + type: int + scene: + description: Number of scene (0..9). + required: true + type: int + outputs: + description: "List of ports ([OUTPUT_PORT](#ports), [RELAY_PORT](#ports))." + required: false + type: list + transition: + description: Transition (ramp) time in seconds. + required: false + type: int + default: None + sensors: description: List of your sensors. required: false @@ -398,6 +439,10 @@ The `lcn` light platform allows the control of the following [LCN](http://www.lc - (Dimmable) output ports - Relays +### {% linkable_title Scene %} + +The `lcn` scene platform allows the activation of previously programmed [LCN](http://www.lcn.eu) scenes. + ### {% linkable_title Sensor %} The `lcn` sensor platform allows the monitoring of the following [LCN](http://www.lcn.eu) data sources: From ac342c9c84171e299f08197d0a248b8fe85a4b19 Mon Sep 17 00:00:00 2001 From: tetienne Date: Tue, 18 Jun 2019 21:16:09 +0100 Subject: [PATCH 43/69] Somfy open api (#9625) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * CREATE documentation for new Somfy component - See home-assistant/home-assistant#19548 * UPDATE ha_release * UPDATE ha_release to 0.95 * UPDATE ha_release to 0.95 * MERGE cover documentation within main one * UPDATE No more notification, use Integrations * :pencil2: Tweak * :pencil2: Tweaks * REMOVE qa scale --- source/_components/somfy.markdown | 64 +++++++++++++++++++++++ source/images/supported_brands/somfy.png | Bin 0 -> 18831 bytes 2 files changed, 64 insertions(+) create mode 100644 source/_components/somfy.markdown create mode 100644 source/images/supported_brands/somfy.png diff --git a/source/_components/somfy.markdown b/source/_components/somfy.markdown new file mode 100644 index 00000000000..6a7d4a5fad2 --- /dev/null +++ b/source/_components/somfy.markdown @@ -0,0 +1,64 @@ +--- +layout: page +title: "Somfy" +description: "Instructions on how to set up the Somfy hub within Home Assistant." +date: 2019-06-07 12:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: somfy.png +ha_category: + - Hub +ha_iot_class: Cloud Polling +ha_release: 0.95 +--- + +The Somfy component will allow users to integrate their Somfy devices into Home Assistant using the [official API](https://developer.somfy.com/somfy-open-api/apis), unlike the [tahoma](/components/tahoma/) component. + +### {% linkable_title Setting up developer account %} + +To connect Somfy, you need to set up a developer account. + +1. Visit [https://developer.somfy.com](https://developer.somfy.com). +2. Log in using your Somfy credentials. +3. Open the *My Apps* menu. +4. Add a new App: + - App Name: Home Assistant + - Callback URL: `/auth/somfy/callback` + - Description: Home Assistant instance + - Product: Somfy Open API +5. Once Home Assistant restarted, go to Configuration>Integrations. +6. Select the Somfy integration. + +### {% linkable_title Configuration %} + +```yaml +# Example configuration.yaml entry +somfy: + client_id: CONSUMER_KEY + client_secret: CONSUMER_SECRET +``` + +{% configuration %} +client_id: + description: Your Somfy consumer key. + required: true + type: string +client_secret: + description: Your Somfy consumer secret. + required: true + type: string +{% endconfiguration %} + +### {% linkable_title Potential duplicate with the Tahoma component %} + +If you use the [tahoma](/component/tahoma) component, you will have to exclude the covers added by this one. Otherwise, they will be added twice. + +```yaml +# Example configuration.yaml entry +tahoma: + username: YOUR_USERNAME + password: YOUR_PASSWORD + exclude: ['rts:RollerShutterRTSComponent','rts:CurtainRTSComponent','rts:BlindRTSComponent','rts:VenetianBlindRTSComponent','rts:DualCurtainRTSComponent','rts:ExteriorVenetianBlindRTSComponent','io:ExteriorVenetianBlindIOComponent','io:RollerShutterUnoIOComponent','io:RollerShutterWithLowSpeedManagementIOComponent','io:RollerShutterVeluxIOComponent','io:RollerShutterGenericIOComponent','io:WindowOpenerVeluxIOComponent','io:VerticalExteriorAwningIOComponent','io:HorizontalAwningIOComponent'] +``` diff --git a/source/images/supported_brands/somfy.png b/source/images/supported_brands/somfy.png new file mode 100644 index 0000000000000000000000000000000000000000..f9ef2a55ae0a029db2354d7dc301673b80b99027 GIT binary patch literal 18831 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 literal 0 HcmV?d00001 From 2f25f8e6cf999e99643f6a139318c8fe78b38812 Mon Sep 17 00:00:00 2001 From: Quentame Date: Tue, 18 Jun 2019 23:15:17 +0200 Subject: [PATCH 44/69] Add Linky sensors : yesterday + months + years (#9422) * Add Linky sensors : yesterday + months + years * :pencil2: Tweak * :fire: Removed monitored_conditions * :fire: Removed tip * :pencil2: Reverted comment in example --- source/_components/linky.markdown | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/source/_components/linky.markdown b/source/_components/linky.markdown index d969d68c6b2..fe8b2189450 100644 --- a/source/_components/linky.markdown +++ b/source/_components/linky.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Linky Sensor" -description: "Instructions on how to integrate Linky daily data within Home Assistant." +description: "Instructions on how to integrate Linky consumption data within Home Assistant." date: 2018-09-06 08:35 sidebar: true comments: false @@ -11,16 +11,19 @@ logo: enedis.png ha_release: 0.79 ha_category: - Energy + - Sensor ha_iot_class: Cloud Polling redirect_from: - /components/sensor.linky/ --- -The `linky` sensor platform is showing the last day consumption of your home from the [Linky electric meter](https://www.enedis.fr/english). +The `linky` sensor platform is retrieving the consumption of your home from the [Linky electric meter](https://www.enedis.fr/linky-compteur-communicant). ## {% linkable_title Configuration %} -To add the Linky sensor to your installation, add your Enedis account credentials to your `configuration.yaml` file: +First, you need to create an Enedis account [here](https://espace-client-connexion.enedis.fr/auth/UI/Login?realm=particuliers), if you don't have already one. + +And then, add the Linky sensor to your `configuration.yaml` file like below: ```yaml # Example configuration.yaml entry @@ -39,4 +42,9 @@ password: description: The Enedis account password. required: true type: string +timeout: + description: Timeout to wait for the Enedis API connection. + required: false + type: integer + default: 10 {% endconfiguration %} From 4de9b5d1de74628cae0445aa98db2645f35253dd Mon Sep 17 00:00:00 2001 From: Malte Franken Date: Thu, 20 Jun 2019 00:19:13 +1000 Subject: [PATCH 45/69] Queensland bushfire alert feed platform (#9623) * documenting new qld_bushfire platform * added note about creative commons license * made small changes after review --- source/_components/geo_location.markdown | 1 + source/_components/qld_bushfire.markdown | 102 ++++++++++++++++++ .../screenshots/qld-bushfire-feed-map.png | Bin 0 -> 111183 bytes 3 files changed, 103 insertions(+) create mode 100644 source/_components/qld_bushfire.markdown create mode 100644 source/images/screenshots/qld-bushfire-feed-map.png diff --git a/source/_components/geo_location.markdown b/source/_components/geo_location.markdown index 79ef2c4c09c..3155b55100c 100644 --- a/source/_components/geo_location.markdown +++ b/source/_components/geo_location.markdown @@ -24,6 +24,7 @@ The [Geolocation trigger](/docs/automation/trigger/#geolocation-trigger) can be | GeoJSON Events | `geo_json_events` | | IGN Sismología | `ign_sismologia` | | NSW Rural Fire Service Incidents | `nsw_rural_fire_service_feed` | +| Queensland Bushfire Alert | `qld_bushfire` | | U.S. Geological Survey Earthquake Hazards Program | `usgs_earthquakes_feed` | Conditions can be used to further filter entities, for example by inspecting their state attributes. diff --git a/source/_components/qld_bushfire.markdown b/source/_components/qld_bushfire.markdown new file mode 100644 index 00000000000..8cdf9868ce9 --- /dev/null +++ b/source/_components/qld_bushfire.markdown @@ -0,0 +1,102 @@ +--- +layout: page +title: "Queensland Bushfire Alert" +description: "Instructions on how to integrate the Queensland Bushfire Alert feed into Home Assistant." +date: 2019-06-11 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: geo_location.png +ha_category: Geolocation +ha_iot_class: Cloud Polling +ha_release: 0.95 +--- + +The `qld_bushfire` platform lets you integrate a +[GeoRSS feed](https://www.ruralfire.qld.gov.au/map/Pages/default.aspx) +containing bushfire alerts for Queensland. It retrieves alerts from a feed +and shows information of those alerts 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 +`qld_bushfire`. The distance in kilometers is available as the state +of each entity. + +

+ +

+ +The data is updated every 5 minutes. + +

+The material used by this integration is provided under the [Creative Commons Attribution 4.0 license](https://creativecommons.org/licenses/by/4.0/legalcode). +It has only been modified for the purpose of presenting the material in Home Assistant. +Please refer to the [creator's copyright notice](https://www.qfes.qld.gov.au/Pages/copyright.aspx) for more information. +

+ +## {% linkable_title Configuration %} + +To integrate the Queensland Bushfire Alert feed, add the following lines to +your `configuration.yaml`. + +```yaml +# Example configuration.yaml entry +geo_location: + - platform: qld_bushfire +``` + +{% configuration %} +categories: + description: List of category names found in the feed. Only alerts from the feed that match any of these categories are included. Valid categories are 'Emergency Warning', 'Watch and Act', 'Advice', 'Notification' and 'Information'. + required: false + type: list +radius: + description: The distance in kilometers around Home Assistant's coordinates in which bushfire alerts are included. + required: false + type: float + default: 20.0 +latitude: + description: Latitude of the coordinates around which events are considered. + required: false + type: string + default: Latitude defined in your configuration +longitude: + description: Longitude of the coordinates around which events are considered. + required: false + type: string + default: Longitude defined in your configuration +{% endconfiguration %} + + +## {% linkable_title State Attributes %} + +The following state attributes are available for each entity in addition to +the standard ones: + +| Attribute | Description | +|------------------|-------------| +| latitude | Latitude of the bushfire alert. | +| longitude | Longitude of the bushfire alert. | +| source | `qld_bushfire` to be used in conjunction with `geo_location` automation trigger. | +| external_id | The external ID used in the feed to identify the bushfire alert in the feed. | +| title | Original title from the feed. | +| publication_date | Date and time when this alert was first published. | +| updated_date | Date and time when this alert was last updated. | +| status | Status of the alert, for example, "Patrolled", "Going", "Contained" | + +## {% linkable_title Full Configuration %} + +```yaml +# Example configuration.yaml entry +geo_location: + - platform: qld_bushfire + radius: 30 + categories: + - 'Emergency Warning' + - 'Watch and Act' + latitude: -24.85 + longitude: 152.35 +``` diff --git a/source/images/screenshots/qld-bushfire-feed-map.png b/source/images/screenshots/qld-bushfire-feed-map.png new file mode 100644 index 0000000000000000000000000000000000000000..620cb9e2b6a1dec8c21e2576d1c94f3b34b68ffe GIT binary patch literal 111183 zcmZsD1zc3$x;6rmN((4mB1j3+Eg&u3-BLp{bT<;x4bsxx-Hmh&T~agj00a7s=X~dn z=ibY21H+!Z_gd@C=Y7^Yge!iMe2(!70|5cyxwMqHG6Dh;7y$th1q}s$W+Z5C7Xjg! zw56DsqO_P8rJ|#qxuuO60)kX{q6VsF{K6}t-$S%UPkUl=@b45p$U0tTH#O@1-k{LU9S!tbb*ei&c;SWmakc9mU?jY<939e=mB zwP3Y>({)gDd~mw&jK~ssvybFQ`yqol_5zdY7dk>)25aJrCnA@DuIWn>%5+&6)&9?3 zqgAVhJIyuehS$zDecX+Y>+^TxMlgL9LqGadr1kl-R{y>3P@XrwF?YBK(-V=qMt#8={L zMN4We=eQd4#m4ko4wJ+b6o*b)exWDE-eK!uPZ@o~luD#=Yhmd5gfa5HGOt2mv~-PzT2 z3w}#W_%Q19`l`_GM4xsty(q{pbs8w{->P#9tEVy_xrjHJ6H2lD9)>TxMWaH?aM2jd zBl0F3L*>F`#>w=n^ebPjZ(jNOHsMlZQ41T()JigSAr{=(MI-CPTU_6QGWmLF5)`6I zzDrO(i&0#N*29xg=DadqozAVI9S7}C2Z%=re|kYE&Tul1lRg|7&*^lwLES_-ckk9# z_vW2MCVf`sV5GF_eqgd6PuG)8zo!I>wcT>DsC}6a3&&!B$D8@3mju zkZJe*4x0#VCKOSNewY~uN#co;c-J#J{ql_VBTjGlRG(BXJ|F^h+ux0}E#$*h*Mt4< zuQtNB_~dvkXxL~AXsbaw9DQartcOPa;W;E9!)9kQ9^A*91Wm67dQT~bu$vuT12A+Q zSc$`N9ZQx-nTlKJLdCcQV$RAXXNa#vn-OFMan&{^I;-NxYf@UgC^>#;$ z{7iW3?ESmM%!F3X=Bws*jhGkcvI!8$u2hCh8vOl;2u+)tJ))W>ykAY#OxWB&Uxb8p z+$-zDrz%(8A}RYqOC!bzXzaw~cqjLtZ;iIO~w0`H4B zrGpe+oWChma~QG`a-@yutFIJa1BV=Tn5Kh4AHX!;Lryzn5#Qd=B5+Ec zOq~@|jC?eiB5;0{7CG@jcFNJ2S38g^r*(?(lE;I*J;XIn;fLrmLv3RG+8*6^!e0XE z3{y3+UiT6jCTeod`*E6_oceYIxR^XF>STm**b{;=H0U|-5`3s)Q^Pp>72&j zyto$<^7Ezrfo_gW^Z~(NHbriTZtS%xP6_%7Ix1Sx#>}j&n*=RhsyJ#ctJf=zF!#RZ zKC`~4KEXbdJ{Dtahgfmy)L309(R^gQ7*+8SN?Xd4*JN~hudm|PV(W*JOtBqldE=R= zlE0P?w+=}TB@f38i4o{UkkR?YiQp>kDXJ?rC@nJ(F|;R8m5|T*zY>@Kwx>j-VqH8w zt1`J+J*sJHD<@JF?EI?%FDIs-^NOsZhbG(BZR+CC0MjGS>3DW#(l}zD$4u zc7eroKAs7w4y&r9y*XD1HJy0-q;A5QpA2v0_r67Up$ZCi#f6D)rd2fp(+xiMiJJSMqFe`&R6lVr-ZU{kvEv{uv!^Wu%u_gj<;{JjT4 zxk$xGfyjD7Nv1odmr318#-sH~lFYviU)C&^A*w$=qP6ZC8Dm_QF{`gYbK+z z-{}nD z@9IE2dndbCr|eSKU-}04ru_c!TkMw|k{4nG;`P(}7e8O6P&B$W+!H<;@9o?M!=gm5I5e^c-;(v=AAeM7*RL>Rs0olM?EB8hLtKD{YhIqs!CFxr5dCL4_>gTdxqy5S~2d z_=MD?Wi#0<}vPqM0@6XBzZ-7OP$E~QFbeaPw<1oN+cePqnp(4nOOPk zoYs!+gYL<0d!HUW^~4ws)(S?YyNmN09!@3XkTrLe*2{k}4c2;6J3sy^wtu8y6!-SM zyUy1qpeh4J9>xxJ5Gxi-#akZ^e%tF`cEo@Z6&bpT3! zRK%)*ZeE|JkISCYZP8`Q3MK^MXIH#b`Hz^;g9PB1A6AI>hHhFM-+CfssIh{sP01>%op~UJySeO zt^?X5+I{a+uC}kdt6_ZCuoJsq!{DMjq%TN`%u=HnN&f0e)_0U5s5^{ZqAdmd}q0_19yuiWy!Mm7!a>zl-lmo192VXYClOI1y0O?f#!6FXZLBU3wLGZr^nd-&A|2m)?= z@Rzn`&PJ4Owl)AKJ~u(?e_g=`fBok)D>dc6E^)RNq}G&Iq!hDrG^6BXdC$T|ErdZy zNh#oHYR;!D{_+3c4*yG#`m?jMJs&G85C~)eah5%V`pV&XNF(F?Bot` zHgaPIIMMw3A^&-fxS5lQqouvGr5%9s&vT88?OdD%sj2@A^v~D7=V|6<`8X25>HjYa zzChML@36jOVPpO0+3;Hh{+#7gv~)AG(G<6|H3K-o#}InQ#>OS^uN(f?TaQEjb*t9n zt(@<8{=W0CcmDsK0<3>l@Yjm|Ev|o^h099_LxA-k*$ZJLgu8x*tAo^1TtOB78}W~B z;F?2%|9JE7-+x|bD~j})tRoPb;zQ(CHCc+1C(>M5xm zEQxT{+EB^b@3@k*>Bl7%m_S5y%CAIK}9qZU&6-1#s%1Q_yPRK-U~gt`$yWsQ z*#B{e81y{+^8OULUn=&045)-ACnqO9yf#iE)1*=ibax2-KOS$48^*YS6x^Ep8Oldd zdfk@#e_ZqNi(j%Ll+TWPU8SiN-3gZAZ9_C+f=Bt}e;&jZhz&fAG2H_v8N*|0O)CK) zf$L>%%w3`XHFNkvL@M8KKW%Bo{&ZbE4E|yd#oKe#Z+O!OO8&4qG0X{&{@+3}R7GzJ zx4XzVUeVd4+TYb|z#lii=+J#H(RduXD&t?12-``~`JZ!w&ytuEF}G-SnQoy6pcJyh zIeLTvRQWvG(R{TmY2-N0q z_M<`#@$vCi9v&s0;~lJ(gI9Oo4xRZ*l(oX)Ckc z%GuZACmf1AnfUSX<44Bm_p4o62U$Da?be`YV9s>r`Z`sIhkyaw?BRJ+?Q(EQaKHQb zucm$68I>8qLC4sg)+p%S^{V_FxURtMzo%=Mk1lt3wPImmp=Q=m77-k9u|k2UCk~e` zj-!4K4C$ z20McDuH02X)|ILs{m|4@by{VD7`od5k&$ujz&jM#>+9>eW8LAG_SLW++Z+VQ^;hyP z+39p-+YTqY^d#T`(|-wYAfPLwp{pY{YI=}z8_28#Qgs7;`q{DVsuh5sL7qTw6?Ipja!iI)- z`V*B_=Lnc*s>bMOB({vSxr!ZG2|utgj^Rtee>u1a z7FyS#&+UE0_8itGAOfgr5Y)DmfUeUN`FW5q_n~hKn7{8knGTKW6WY5)LI3vV`RZCl zNkmpD6JSIMOcvbcW^u2(JI+P;T4B#6Wxolc&_!^{!67k-=(GM(lRvd68dCa;WMfRP zk@-ZqCd@H)8_-co4f?uJ?%U8%5-!K^wPnavMM3R5cz!4Lzx|5X9WhxwiCj*S^%4z; zdtyxa0!MEXYbuzwM~~?Q2YlkHQ~onRlA-&GJKWE?2RV2DGzXWzD>ET^!B%s$6>X@k z!71fxpcSRjW6W0)QI^(Cq$~1C(%JX#(u28R-5(Su5e8V2PKWqR<|A zMB!y|DUzMVr84c$xnW)@iH;}JsKGsJl$WY#$rSQmfvZM-BZKRUf`S77OardML|sdy z8@J8|8t@_r4cIieP0?2#El|nw6a6wT?#FJAv3fUU95S) z)(f$4h$SgPP@mE#P;NT3*q`^s2dkhX7^=(M^w-n3vUf32k^~;Z6t0m^veWsd@88jk zhe`~1{T=*yUsvT9Q{bZx2Ew}T$LeT6XZ-l{t}|O$qn@UlYgYB7 z8n;TgU}=`$=A9Zi;$cr?cR&WPm%TzEW`Z^dEjca9O{lmsV7|NOEZ|Jn!L!2Z{YFV| zWo;F)8bULl3W2=6y(_6=efDX&8I|BH1fOSB7So%5XBQEiCvXLih&7qGpKJDz&AZ}) zH7azmJY4rGO#rM(zOo+DZ!LNH#uBn3WAkBE37Lt^WhV}0$FBT8S?utop~OfUw#;kq z0z!u_ukWE%3JMo`ovj_;unsMd=9o41oSoYliXtQ>p=!3itTryN5pJEdDI^E_QcIEI z#u&beT>?z{cgU_#tl1XwHWTW<6Qn;SqEr6|jiz3`4%W@++mjpm9x^9TrM~x@pG&Eo zS(oQ_u7O5#peeu&j(8s9T08-`t|_}s6ptcj?lZ4!TQ_5L@hP$Uk%s09q>xnBD|E?G zdedE=%oGdhU5WwzUS?v;R@U-_594TWv(_rn-pJv3@C(b3+83+=C(HgEU5ifd`~yQ- z%8Q4;#}D1&?3aHUt({#uh<^hk{-L>=?*>Kg$NbxDvHZ_3RTtERa5tmF&To=|n=Aol zM*2D@%5w0@ndy7t&AXzxHiqpoxXKnrpvbD^o5VgNJngA-{W_%+=3);ZZD^@Dkq{)N zU7#J(6^?RDXAHQb3?rNF>G7IW#n$C7<8HYUA)kGLgjofm`34|H3sYe&qTKGSYw7j= z`8AZ~a&~m+@E8ElP*cOap`GcEjMO8#b#zeI0bQ|sk*fm*H2U}hkLi{$nIa#J?qfVc z5I;QR4V~X)GJoBzwtKx$e2#;MmjO@>^3?9GlS`>#-6H$IbmEWbZoaJJ6b0d#e5LW0 zADJzHs3rW8vO5xr?(kH6NNl$E6~!Diwl!PXt*q<|4P2%LTz~S(t~xwghwnfVo3Bsa zB}97K+u_OfZF;vlSdY8^GFe~=X5_H!wrPPIA3qX{kUCJ6@HQ3;EBz3>98x=p{a?7G z3Z0e_)UW14zyuB?0RJQiD{pW2=KLlp^HH=-tWG4QUwT_0TMrq42MM@*8sw#e8j~?k zXek`Yy(WP!w@vl$&F|@2uE>c2t+AuUSo1w$d&zV|}FAl%A=`a<7a6 zZf;eVA9Eq^K1jOsxS}4~9H2-rooG!T_5IP__USLo$VQI*1|)dLJ8q~=9z)7|wpKak zty_M)=jnfgv8R2wSI+~(*~M876Enha8|1q;#Nsczx3|b%xagbFKSP)dw&-Tt7VsOs zQ)jN;aETALbWw@~K5O9#L>B^|n;TH)kga*kaTas)9V$YVT4%Uw?Xw@XCS@pxp3bWb0K0cNd#9B`vM!H&n;O(V^8AQ<`AZNbAcaLKZO&i_4X{5k z?(LOR8GUIe`lIbuC?eV`ax4|waWY2NK8R#G#k!+SQ)##P0Il9FR&DUSwYFo|lOlH? zLYC1-csf25`L}yDzZTg9PkV25q!;$j>{hR;NKe>-3HdfMeO7mr#vO3L?A%_i4GA}R z03`6CI0Y)pDVLNK%`})t(#8Ms5h5K<^f-=T9omk169p-0 z@yUs;Ah+wJ7B{(YL%dA=az|P^EB}!py_$J~;}3$d+jh6JHbNk#m6@5u_;^8UmRG`E z@UZNrPf{G(bbfAews(*HWX>eXcwt&L^I!#<09RETsEP?vN^)l>i^1}9FV5jLZR� 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

    Ne!Co^dp&7fdGBGKz18e) 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 Icb~=m7a%La_5c6? literal 0 HcmV?d00001 From 1b954e9c9a7e67ee4ed2ed2773fbfa6c44ad8a3c Mon Sep 17 00:00:00 2001 From: David Bonnes Date: Wed, 19 Jun 2019 17:44:10 +0100 Subject: [PATCH 46/69] Add incomfort climate, sensor and binary_sensor (#9654) * add incomfort climate, sensors * tweak text * add automation example * tweak text * :pencil2: Tweak --- source/_components/incomfort.markdown | 45 +++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/source/_components/incomfort.markdown b/source/_components/incomfort.markdown index d11846f4cd7..a9dc603b53e 100644 --- a/source/_components/incomfort.markdown +++ b/source/_components/incomfort.markdown @@ -10,25 +10,56 @@ footer: true logo: incomfort.png ha_category: - Water heater + - Climate + - Sensor + - Binary sensor ha_release: 0.93 ha_iot_class: Local Polling --- -The `incomfort` integration links Home Assistant with your Intergas Lan2RF gateway for controlling water_heater devices (the hub does not have to be in the same network as HA). +The `incomfort` integration links Home Assistant with your Intergas Lan2RF gateway for integrating the boiler and any room thermostats attached to it. -The **Water Heater** device will report back the `state` and `temperature`. Other properties are available via the device's attributes. +The boiler is represented as a **Water Heater** device. It will report the boiler's `state` and `temperature` (current temperature). The gateway does not expose any means to directly control the boiler or change its configuration. -In the future, other entities will be added to this integration (e.g. a **Sensor** for CV pressure, and a **Climate** device for room temperature). +Note that the `temperature` will switch between the CV and Tap temperatures according to the current operating mode of the boiler. If the boiler is neither pumping nor tapping, it will be reported as the higher of the two. + +Any room thermostats (there can be 0, 1 or 2) are represented as **Climate** devices. They will report the thermostat's `target_temperature` (setpoint) and `current_temperature` and the setpoint can be changed. + +In addition, there is a **Sensor** for CV pressure, CV temperature, and Tap temperature, and a **Binary Sensor** that will be `on` if there is a fault with the boiler (the fault code will be a state attribute). + +To send an alert if the CV pressure is too low or too high, consider the following automation: + +{% raw %} +```yaml +- alias: Low CV Pressure Alert + trigger: + platform: numeric_state + entity_id: sensor.cv_pressure + below: 1.0 + action: + - service: notify.pushbullet_notifier + data_template: + title: "Warning: Low CH Pressure" + message: >- + {{ trigger.to_state.attributes.friendly_name }} + is low, {{ trigger.to_state.state }} bar. +``` +{% endraw %} + +Other properties are available via each device's attributes. ### {% linkable_title Configuration %} To add your Lan2RF gateway into your Home Assistant installation, add one of the following to your `configuration.yaml` file. +Older gateways do not require user authentication: + ```yaml # Example configuration.yaml entry, older firmware with no user credentials incomfort: host: IP_ADDRESS ``` + Alternatively, if a **username** & **password** is printed on the back of the gateway: ```yaml @@ -39,17 +70,19 @@ incomfort: password: PASSWORD ``` +The hub does not have to be in the same network as HA. + {% configuration %} host: - description: The hostname/IP address of the Lan2RF gateway + description: The hostname/IP address of the Lan2RF gateway. required: true type: string username: - description: The username of the Lan2RF gateway + description: The username of the Lan2RF gateway, if any. required: inclusive type: string password: - description: The password of the Lan2RF gateway + description: The password of the Lan2RF gateway, if any. required: inclusive type: string {% endconfiguration %} From 8924a343a1525c38bf1fd9ff4a2fcb0b502434c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Gonz=C3=A1lez=20Calleja?= Date: Wed, 19 Jun 2019 22:54:50 +0200 Subject: [PATCH 47/69] Add tolerance to dlib face identify (#9661) * Documentation for tolerance parameter * Change type to float and removing optional parameter from example configuration * :pencil2: Removal of unneeded newline --- source/_components/dlib_face_identify.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/_components/dlib_face_identify.markdown b/source/_components/dlib_face_identify.markdown index 1a496513195..3efb0ac8179 100644 --- a/source/_components/dlib_face_identify.markdown +++ b/source/_components/dlib_face_identify.markdown @@ -50,6 +50,11 @@ faces: description: List of faces sources. required: true type: list +confidence: + description: How much distance between faces to consider it a match. Using tolerance values lower than 0.6 will make the comparison more strict. + required: false + type: float + default: 0.6 {% endconfiguration %}

    From be55ff8230db1f40d8a33de1923c3fe0fb14fa42 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 19 Jun 2019 16:34:39 -0700 Subject: [PATCH 48/69] Draft 95 --- _config.yml | 6 +++--- source/_posts/2019-06-26-release-95.markdown | 22 ++++++++++++++++++++ 2 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 source/_posts/2019-06-26-release-95.markdown diff --git a/_config.yml b/_config.yml index d6bb61393f3..f86c7aed19b 100644 --- a/_config.yml +++ b/_config.yml @@ -138,9 +138,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 94 -current_patch_version: 3 -date_released: 2019-06-13 +current_minor_version: 95 +current_patch_version: 0 +date_released: 2019-06-26 # 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-06-26-release-95.markdown b/source/_posts/2019-06-26-release-95.markdown new file mode 100644 index 00000000000..b1a88fa4652 --- /dev/null +++ b/source/_posts/2019-06-26-release-95.markdown @@ -0,0 +1,22 @@ +--- +layout: post +title: "0.95: TBD - UPDATE DATE" +description: "TBD" +date: 2019-06-19 04:11:03 +date_formatted: "June 26, 2019" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2019-06-release-95/google-ui.png +redirect_from: /blog/2019/05/29/release-95/ +--- + + + +- Updated Alexa things: UI to manage what Alexa can see, exposed entities pushed to Alexa on change, opt-in state reporting. +- Better suitability for RV: new `homeassistant.set_location` service and the Met weather service is now able to track your location. + +

    + +
    From 7b004a8c11566a824477419a871eccb2bb8d022a Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 19 Jun 2019 16:42:27 -0700 Subject: [PATCH 49/69] More release notes --- source/_posts/2019-06-26-release-95.markdown | 574 ++++++++++++++++++- 1 file changed, 572 insertions(+), 2 deletions(-) diff --git a/source/_posts/2019-06-26-release-95.markdown b/source/_posts/2019-06-26-release-95.markdown index b1a88fa4652..a88457456ab 100644 --- a/source/_posts/2019-06-26-release-95.markdown +++ b/source/_posts/2019-06-26-release-95.markdown @@ -14,9 +14,579 @@ redirect_from: /blog/2019/05/29/release-95/ -- Updated Alexa things: UI to manage what Alexa can see, exposed entities pushed to Alexa on change, opt-in state reporting. -- Better suitability for RV: new `homeassistant.set_location` service and the Met weather service is now able to track your location. +- Better suitability for running Home Assistant in RVs: + - new `homeassistant.set_location` service to dynamically set the location of the instance + - the Met weather entity can be set up to automatically track your location. + +- AdGuard +- Life360 + +- Updated Alexa: UI to manage what Alexa can see, exposed entities pushed to Alexa on change (including cleaning up no longer exposed ones), opt-in state reporting.
    + +## {% linkable_title New Integrations %} + +- Adds AdGuard Home integration ([@frenck] - [#24219]) ([adguard docs]) (new-integration) (new-platform) +- SolarEdge Local Component ([@drobtravels] - [#23996]) ([solaredge_local docs]) (new-integration) (new-platform) +- Google Cloud Platform component (TTS) ([@lufton] - [#23629]) ([google_cloud docs]) (new-integration) (new-platform) +- Life360 integration ([@pnbruckner] - [#24227]) ([life360 docs]) (new-integration) (new-platform) +- Adds integration for Plaato Airlock ([@JohNan] - [#23727]) ([plaato docs]) (new-integration) (new-platform) +- Queensland bushfire alert feed platform ([@exxamalte] - [#24473]) ([qld_bushfire docs]) (new-integration) + +## {% linkable_title New Platforms %} + +- Adds AdGuard Home integration ([@frenck] - [#24219]) ([adguard docs]) (new-integration) (new-platform) +- Add LCN scene platform ([@alengwenus] - [#24242]) ([lcn docs]) (new-platform) +- SolarEdge Local Component ([@drobtravels] - [#23996]) ([solaredge_local docs]) (new-integration) (new-platform) +- Add Environment Canada weather, sensor, and camera platforms ([@michaeldavie] - [#21110]) ([environment_canada docs]) (new-platform) +- Google Cloud Platform component (TTS) ([@lufton] - [#23629]) ([google_cloud docs]) (new-integration) (new-platform) +- Support for Salda Smarty XV/XP Ventilation Unit ([@z0mbieprocess] - [#21491]) ([smarty docs]) (new-platform) +- Life360 integration ([@pnbruckner] - [#24227]) ([life360 docs]) (new-integration) (new-platform) +- Add support for ZHA door locks #2 ([@presslab-us] - [#24344]) ([zha docs]) (new-platform) +- Somfy open api ([@tetienne] - [#19548]) ([somfy docs]) (new-platform) +- Add APRS device tracker component ([@PhilRW] - [#22469]) ([aprs docs]) (new-platform) +- Camera platform for buienradar imagery ([@ties] - [#23358]) ([buienradar docs]) (new-platform) +- Adds integration for Plaato Airlock ([@JohNan] - [#23727]) ([plaato docs]) (new-integration) (new-platform) +- Add incomfort sensor and binary_sensor ([@zxdavb] - [#23812]) ([incomfort docs]) (new-platform) +- Added ELV PCA 301 smart emeter switch ([@majuss] - [#23300]) ([elv docs]) (new-platform) + +## {% linkable_title If you need help... %} + +...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). + +## {% linkable_title Reporting Issues %} + +Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template. + + + +## {% linkable_title Breaking Changes %} + +- No longer allow invalid slugs or extra keys ([@balloob] - [#24176]) (breaking change) +- Add service for adding event to google component ([@isabellaalstrom] - [#22473]) ([google docs]) (breaking change) +- Remove deprecated AlarmControlPanel ([@SukramJ] - [#24322]) ([homematicip_cloud docs]) (breaking change) +- Remove attribute lowBat ([@SukramJ] - [#24323]) ([homematicip_cloud docs]) (breaking change) +- Remove binary sensors for ZHA remotes and controllers ([@dmulcahey] - [#24370]) ([zha docs]) (breaking change) +- Restore automation last_triggered with initial_state override ([@frenck] - [#24400]) ([automation docs]) (breaking change) +- Fix recorder defaults ([@balloob] - [#24399]) ([recorder docs]) (breaking change) +- Uber API is going away on June 13, 2019, remove component ([@robbiet480] - [#24468]) ([uber docs]) (breaking change) +- Add Linky sensors : yesterday + months + years ([@Quentame] - [#23726]) ([linky docs]) (breaking change) +- Position is reversed for horizontal awnings ([@kbickar] - [#23257]) ([tahoma docs]) (breaking change) +- Remove conversation from default config ([@balloob] - [#24515]) ([default_config docs]) (breaking change) +- Added name to sensors ([@cliffordwhansen] - [#24525]) ([synologydsm docs]) (breaking change) +- Battery attribute & accuracy filter ([@GoNzCiD] - [#24277]) ([traccar docs]) (breaking change) +- Added percent to the disk,memory and swap percent labels ([@cliffordwhansen] - [#24575]) ([glances docs]) (breaking change) + +## {% linkable_title All changes %} + +- Update pysonos to 0.0.14 ([@amelchio] - [#24185]) ([sonos docs]) +- upgrade broadlink library, Use cryptography instead of pycryptodome ([@Danielhiversen] - [#24186]) ([broadlink docs]) +- danielhiversen as codeowner for yr ([@Danielhiversen] - [#24189]) ([yr docs]) +- No longer allow invalid slugs or extra keys ([@balloob] - [#24176]) (breaking change) +- Update azure-pipelines.yml for check version ([@pvizeli] - [#24194]) +- Update Tibber library ([@Danielhiversen] - [#24192]) ([tibber docs]) +- :pencil2: Corrects incorrect command in hassfest ([@frenck] - [#24188]) +- Fix ESPHome config flow with invalid config entry ([@OttoWinter] - [#24213]) ([esphome docs]) +- Add control of Amcrest indicator light ([@pnbruckner] - [#23986]) ([amcrest docs]) +- ZHA requirements version bump. ([@Adminiuga] - [#24228]) ([zha docs]) +- Bump pychromecast ([@soldag] - [#24234]) ([cast docs]) +- Round Awair sensor values ([@danielsjf] - [#24093]) ([awair docs]) +- Sense update ([@kbickar] - [#24220]) ([sense docs]) +- fix gitlab_ci sad icon ([@Emilv2] - [#24241]) ([gitlab_ci docs]) +- Add details to triggered state for total connect alarms ([@austinmroczek] - [#24106]) ([totalconnect docs]) +- Bump python-velbus version for velbus component ([@Cereal2nd] - [#24226]) ([velbus docs]) +- Adds AdGuard Home integration ([@frenck] - [#24219]) ([adguard docs]) (new-integration) (new-platform) +- Fix typo in integration component ([@Emilv2] - [#24250]) ([integration docs]) +- Replace pyunifi with aiounifi in UniFi device tracker ([@Kane610] - [#24149]) ([unifi docs]) +- Add service for adding event to google component ([@isabellaalstrom] - [#22473]) ([google docs]) (breaking change) +- Remove icon() ([@fabaff] - [#24280]) ([meteoalarm docs]) +- Split devices of nodes with multiple instances ([@Swamp-Ig] - [#24032]) ([zwave docs]) +- Update pyvera to 0.3.1 for alert support ([@brandond] - [#24289]) ([vera docs]) +- Expose specific device_class for Velux covers ([@gibman] - [#24279]) ([velux docs]) +- Change meteoalertapi to version 0.1.3 ([@rolfberkenbosch] - [#24307]) ([meteoalarm docs]) +- Upgrade pytest and -cov ([@scop] - [#24258]) +- Add LCN scene platform ([@alengwenus] - [#24242]) ([lcn docs]) (new-platform) +- Add support for learning new commands ([@felipediel] - [#23888]) ([remote docs]) +- Upgrade to newer version of rflink with improve error handling on incoming data. ([@aequitas] - [#24263]) ([rflink docs]) +- SolarEdge Local Component ([@drobtravels] - [#23996]) ([solaredge_local docs]) (new-integration) (new-platform) +- Push to version 0.7.9 of denonavr ([@scarface-4711] - [#24260]) ([denonavr docs]) +- Bump simplipy to 3.4.2 ([@bachya] - [#24326]) ([simplisafe docs]) +- Meteofrance fix 24244 ([@victorcerutti] - [#24315]) ([meteo_france docs]) +- Only update media icon when necessary ([@jjlawren] - [#24324]) ([webostv docs]) +- components/cover: Typo in docstring. ([@andre-richter] - [#24329]) ([cover docs]) +- Add exception handling for Netatmo climate ([@cgtobi] - [#24311]) ([netatmo docs]) +- Remove deprecated AlarmControlPanel ([@SukramJ] - [#24322]) ([homematicip_cloud docs]) (breaking change) +- Use node descriptor from Zigpy for ZHA ([@dmulcahey] - [#24316]) ([zha docs]) +- Add abbreviation for light template variable names ([@bieniu] - [#24336]) ([mqtt docs]) +- Remove attribute lowBat ([@SukramJ] - [#24323]) ([homematicip_cloud docs]) (breaking change) +- Don't load last_checkpoint if shipment is pending ([@davidbb] - [#24301]) ([aftership docs]) +- UPgrade youtube_dl to 2019.05.20 ([@fabaff] - [#24347]) ([media_extractor docs]) +- Add new movement type "actively" of the Xiaomi Vibration Sensor ([@syssi] - [#24334]) ([xiaomi_aqara docs]) +- Fix set_cover_position of the xiaomi_aqara cover for LAN protocol v2 ([@syssi] - [#24333]) ([xiaomi_aqara docs]) +- Add Environment Canada weather, sensor, and camera platforms ([@michaeldavie] - [#21110]) ([environment_canada docs]) (new-platform) +- Google Cloud Platform component (TTS) ([@lufton] - [#23629]) ([google_cloud docs]) (new-integration) (new-platform) +- Add Streamlabs Water Monitor ([@cpopp] - [#21205]) ([streamlabswater docs]) +- ebusd: added check for monitored conditions validity within correct circuit ([@danielkucera] - [#22461]) ([ebusd docs]) +- Bring the Sisyphus integration to silver quality ([@jkeljo] - [#22457]) ([sisyphus docs]) +- Support for Salda Smarty XV/XP Ventilation Unit ([@z0mbieprocess] - [#21491]) ([smarty docs]) (new-platform) +- Bump to pypck==0.6.1 ([@alengwenus] - [#24356]) ([lcn docs]) +- Add templating to MQTT Cover tilt_status ([@tommyjlong] - [#24355]) ([mqtt docs]) +- Upgrade ruamel.yaml to 0.15.97 ([@fabaff] - [#24350]) +- Bump regenmaschine to 1.5.1 ([@bachya] - [#24358]) ([rainmachine docs]) +- Life360 integration ([@pnbruckner] - [#24227]) ([life360 docs]) (new-integration) (new-platform) +- Refactor Waze Travel Time & Update Requirements ([@Petro31] - [#22428]) ([waze_travel_time docs]) +- Update pyhomematic ([@danielperna84] - [#24368]) ([homematic docs]) +- Add service to update core location ([@balloob] - [#24328]) ([homeassistant docs]) +- Fix ZHA battery level when value is reported via signal ([@dmulcahey] - [#24371]) ([zha docs]) +- Remove binary sensors for ZHA remotes and controllers ([@dmulcahey] - [#24370]) ([zha docs]) (breaking change) +- Add support for ZHA door locks #2 ([@presslab-us] - [#24344]) ([zha docs]) (new-platform) +- Upgrade discord.py to 1.1.1 ([@fabaff] - [#24375]) ([discord docs]) +- Upgrade Mastodon.py to 1.4.3 ([@fabaff] - [#24374]) ([mastodon docs]) +- Add shuffle support for itunes component ([@kvanhoorn] - [#24319]) ([itunes docs]) +- Fixed wrong setpoint value on startup when climate was previously turned off ([@alengwenus] - [#24377]) ([lcn docs]) +- Add ATTR_FORECAST_PRECIPITATION option ([@rolfberkenbosch] - [#24308]) ([buienradar docs]) +- Provide an option for the DD-WRT device tracker to include non-wireless devices ([@Klikini] - [#24259]) ([ddwrt docs]) +- Add for option for template triggers ([@pnbruckner] - [#24330]) ([automation docs]) +- Improve amcrest error handling and bump amcrest package to 1.5.3 ([@pnbruckner] - [#24262]) ([amcrest docs]) +- Improve boolean validator ([@Swamp-Ig] - [#24294]) +- add device class to sensors ([@dmulcahey] - [#24373]) ([zha docs]) +- Fixes linter warning in ZHA sensor ([@frenck] - [#24406]) ([zha docs]) +- Use loose version ([@balloob] - [#24394]) +- Restore automation last_triggered with initial_state override ([@frenck] - [#24400]) ([automation docs]) (breaking change) +- Fix recorder defaults ([@balloob] - [#24399]) ([recorder docs]) (breaking change) +- Minor improvements to automation test suite ([@frenck] - [#24424]) +- Upgrade broadlink library ([@Danielhiversen] - [#24450]) ([broadlink docs]) +- Upgrade ambiclimate library ([@Danielhiversen] - [#24449]) ([ambiclimate docs]) +- Rename via_hub to via_device ([@Swamp-Ig] - [#24360]) +- Remove frequest asuswrt log spam ([@jwater7] - [#24448]) ([asuswrt docs]) +- Publish test results ([@pvizeli] - [#24460]) +- Life360: Fix config entry handling for accounts imported from configuration ([@pnbruckner] - [#24455]) ([life360 docs]) +- Add default config to constaint file ([@balloob] - [#24423]) +- Add websock command to query device for triggers ([@emontnemery] - [#24044]) ([automation docs]) ([light docs]) +- Uber API is going away on June 13, 2019, remove component ([@robbiet480] - [#24468]) ([uber docs]) (breaking change) +- Use met.no instead of yr.no in default config ([@thomasloven] - [#24470]) +- Bump pyubee to 0.7 to support more models ([@mzdrale] - [#24477]) ([ubee docs]) +- Somfy open api ([@tetienne] - [#19548]) ([somfy docs]) (new-platform) +- Add APRS device tracker component ([@PhilRW] - [#22469]) ([aprs docs]) (new-platform) +- Add Linky sensors : yesterday + months + years ([@Quentame] - [#23726]) ([linky docs]) (breaking change) +- Add attributs and fix lightlevel inconsistency for LightLevel sensor ([@Cyr-ius] - [#24439]) ([hue docs]) +- Support ZLO device types to support newer Zigbee devices in ZHA ([@jurriaan] - [#24429]) ([zha docs]) +- Camera platform for buienradar imagery ([@ties] - [#23358]) ([buienradar docs]) (new-platform) +- Position is reversed for horizontal awnings ([@kbickar] - [#23257]) ([tahoma docs]) (breaking change) +- Fix aprs imports ([@amelchio] - [#24485]) ([aprs docs]) +- Version bump for toonapilib to include new API call for fetching thermostat states, which was sometimes missing causing errors in the library ([@reinder83] - [#24459]) ([toon docs]) +- remove docs from config entries file [skip ci] ([@balloob] - [#24488]) +- Bump adguardhome to 0.2.1 ([@frenck] - [#24486]) ([adguard docs]) +- Add Cast discovery to manifest ([@balloob] - [#24504]) ([cast docs]) ([discovery docs]) +- Bump pyatmo to 2.00 ([@cgtobi] - [#24505]) ([netatmo docs]) +- Migrate HEOS discovery to manifest ([@balloob] - [#24508]) ([discovery docs]) ([heos docs]) +- Bumping Keenetic NDMS2 client to 0.0.8 ([@foxel] - [#24469]) ([keenetic_ndms2 docs]) +- Update DelugeClient to 1.7.1 ([@GuyKh] - [#24518]) ([deluge docs]) +- Clean up Alexa smart home code ([@balloob] - [#24514]) ([alexa docs]) ([cloud docs]) +- Remove conversation from default config ([@balloob] - [#24515]) ([default_config docs]) (breaking change) +- Refactor yeelight code ([@zewelor] - [#22547]) ([yeelight docs]) +- Migrate Sonos discovery to manifest ([@balloob] - [#24507]) ([discovery docs]) ([sonos docs]) +- Cloud: allow managing Alexa entities via UI ([@balloob] - [#24522]) ([alexa docs]) ([cloud docs]) +- WIP Ps4 Convert entity to Async / Fix entity name changing ([@ktnrg45] - [#24101]) ([ps4 docs]) +- deCONZ - Change attribute Watts to W ([@Kane610] - [#24535]) ([deconz docs]) +- Improve stability of netatmo sensor ([@Danielhiversen] - [#24190]) ([netatmo docs]) +- Update meteoalertapi to 0.1.5 ([@rolfberkenbosch] - [#24528]) ([meteoalarm docs]) +- PS4 bump to 0.8.3 ([@ktnrg45] - [#24527]) ([ps4 docs]) +- Pyyaml5.1 ([@BackSlasher] - [#24529]) +- Added name to sensors ([@cliffordwhansen] - [#24525]) ([synologydsm docs]) (breaking change) +- Update requirement version and add switcher_kis services ([@TomerFi] - [#23477]) ([switcher_kis docs]) +- Flux switch ([@Swamp-Ig] - [#24542]) +- UniFi simplify update ([@Kane610] - [#24304]) ([unifi docs]) +- Fix incomfort issue #24478 & bump client ([@zxdavb] - [#24548]) ([incomfort docs]) +- Handle stacktrace when rtorrent host is unreachable ([@mafrosis] - [#24541]) ([rtorrent docs]) +- Fix a bug with Ambient PWS reconnection ([@bachya] - [#24540]) ([ambient_station docs]) +- Update __init__.py ([@lundan] - [#24553]) ([nissan_leaf docs]) +- Update ambiclimate library ([@Danielhiversen] - [#24562]) ([ambiclimate docs]) +- Misc. ZHA enhancements ([@dmulcahey] - [#24559]) ([zha docs]) +- Update pysonos to 0.0.15 ([@amelchio] - [#24565]) ([sonos docs]) +- Whitelist yeelight predefined effects per device type ([@zewelor] - [#24544]) ([yeelight docs]) +- Battery attribute & accuracy filter ([@GoNzCiD] - [#24277]) ([traccar docs]) (breaking change) +- Bump androidtv to 0.0.16 ([@JeffLIrion] - [#24576]) ([androidtv docs]) +- Added percent to the disk,memory and swap percent labels ([@cliffordwhansen] - [#24575]) ([glances docs]) (breaking change) +- SMA sensor: Add optional path ([@kellerza] - [#24558]) ([sma docs]) +- Fix geniushub issue #24530 (via a client bump) & handle edge cases ([@zxdavb] - [#24546]) ([geniushub docs]) +- Add sensitivity and sensitvity_max attributs for binary sensor ([@Cyr-ius] - [#24438]) ([hue docs]) +- Cloud: Add Alexa report state ([@balloob] - [#24536]) ([alexa docs]) ([cloud docs]) +- Added toggle service to covers ([@kbickar] - [#23198]) ([cover docs]) +- Added invert_percent configuration for zwave rollershutter ([@tommasomarchionni] - [#23101]) ([zwave docs]) +- Add code_arm_required to manual alarm with MQTT ([@JumpMaster] - [#22641]) ([manual_mqtt docs]) +- Add code_arm_required to manual alarm ([@JumpMaster] - [#22618]) ([demo docs]) ([manual docs]) +- Add source selection to Samsung TV media player ([@escoand] - [#22612]) ([samsungtv docs]) +- Fix alarm control panel tests ([@balloob] - [#24586]) +- Adds integration for Plaato Airlock ([@JohNan] - [#23727]) ([plaato docs]) (new-integration) (new-platform) +- Fix honeywell issue #18932 ([@zxdavb] - [#24402]) ([honeywell docs]) +- Bump base Somfy MyLink library version ([@bendews] - [#24587]) ([somfy_mylink docs]) +- Better pairing for Xiaomi devices in ZHA ([@dmulcahey] - [#24564]) ([zha docs]) +- ESPHome config flow only connect when needed ([@OttoWinter] - [#24593]) ([esphome docs]) +- ESPHome load platforms lazily ([@OttoWinter] - [#24594]) ([esphome docs]) +- Add ESPHome event generation and user-defined service array support ([@OttoWinter] - [#24595]) ([esphome docs]) +- Fix validator for lcn.send_keys service ([@alengwenus] - [#24580]) ([lcn docs]) +- Cloud: Make sure on_connect forwards platform only once ([@balloob] - [#24582]) ([cloud docs]) +- Add config entry for Met.no ([@bachya] - [#24608]) ([met docs]) +- Notify Alexa when exposed entities change ([@balloob] - [#24609]) ([alexa docs]) ([cloud docs]) +- Update pysonos to 0.0.16 ([@amelchio] - [#24607]) ([sonos docs]) +- check for None state in broadlink ([@Danielhiversen] - [#24589]) ([broadlink docs]) +- Queensland bushfire alert feed platform ([@exxamalte] - [#24473]) ([qld_bushfire docs]) (new-integration) +- Add incomfort sensor and binary_sensor ([@zxdavb] - [#23812]) ([incomfort docs]) (new-platform) +- Add support for opencv wheels ([@pvizeli] - [#24620]) ([opencv docs]) +- tellstick: Add socat to package dependencies ([@torarnv] - [#24531]) +- Tolerance configuration for dlib_face_identify ([@gonzalezcalleja] - [#24497]) ([dlib_face_identify docs]) +- Fix sending update when not logged in ([@balloob] - [#24624]) ([cloud docs]) +- Uses signal dispatcher to invoke state update ([@JohNan] - [#24627]) ([plaato docs]) +- Add weather alert sensor to meteo france component ([@oncleben31] - [#23128]) ([meteo_france docs]) +- Set up Met during onboarding ([@balloob] - [#24622]) ([met docs]) ([onboarding docs]) +- Added ELV PCA 301 smart emeter switch ([@majuss] - [#23300]) ([elv docs]) (new-platform) + +[#19548]: https://github.com/home-assistant/home-assistant/pull/19548 +[#21110]: https://github.com/home-assistant/home-assistant/pull/21110 +[#21205]: https://github.com/home-assistant/home-assistant/pull/21205 +[#21491]: https://github.com/home-assistant/home-assistant/pull/21491 +[#22428]: https://github.com/home-assistant/home-assistant/pull/22428 +[#22457]: https://github.com/home-assistant/home-assistant/pull/22457 +[#22461]: https://github.com/home-assistant/home-assistant/pull/22461 +[#22469]: https://github.com/home-assistant/home-assistant/pull/22469 +[#22473]: https://github.com/home-assistant/home-assistant/pull/22473 +[#22547]: https://github.com/home-assistant/home-assistant/pull/22547 +[#22612]: https://github.com/home-assistant/home-assistant/pull/22612 +[#22618]: https://github.com/home-assistant/home-assistant/pull/22618 +[#22641]: https://github.com/home-assistant/home-assistant/pull/22641 +[#23101]: https://github.com/home-assistant/home-assistant/pull/23101 +[#23128]: https://github.com/home-assistant/home-assistant/pull/23128 +[#23198]: https://github.com/home-assistant/home-assistant/pull/23198 +[#23257]: https://github.com/home-assistant/home-assistant/pull/23257 +[#23300]: https://github.com/home-assistant/home-assistant/pull/23300 +[#23358]: https://github.com/home-assistant/home-assistant/pull/23358 +[#23477]: https://github.com/home-assistant/home-assistant/pull/23477 +[#23629]: https://github.com/home-assistant/home-assistant/pull/23629 +[#23726]: https://github.com/home-assistant/home-assistant/pull/23726 +[#23727]: https://github.com/home-assistant/home-assistant/pull/23727 +[#23812]: https://github.com/home-assistant/home-assistant/pull/23812 +[#23888]: https://github.com/home-assistant/home-assistant/pull/23888 +[#23986]: https://github.com/home-assistant/home-assistant/pull/23986 +[#23996]: https://github.com/home-assistant/home-assistant/pull/23996 +[#24032]: https://github.com/home-assistant/home-assistant/pull/24032 +[#24044]: https://github.com/home-assistant/home-assistant/pull/24044 +[#24093]: https://github.com/home-assistant/home-assistant/pull/24093 +[#24101]: https://github.com/home-assistant/home-assistant/pull/24101 +[#24106]: https://github.com/home-assistant/home-assistant/pull/24106 +[#24149]: https://github.com/home-assistant/home-assistant/pull/24149 +[#24176]: https://github.com/home-assistant/home-assistant/pull/24176 +[#24185]: https://github.com/home-assistant/home-assistant/pull/24185 +[#24186]: https://github.com/home-assistant/home-assistant/pull/24186 +[#24188]: https://github.com/home-assistant/home-assistant/pull/24188 +[#24189]: https://github.com/home-assistant/home-assistant/pull/24189 +[#24190]: https://github.com/home-assistant/home-assistant/pull/24190 +[#24192]: https://github.com/home-assistant/home-assistant/pull/24192 +[#24194]: https://github.com/home-assistant/home-assistant/pull/24194 +[#24213]: https://github.com/home-assistant/home-assistant/pull/24213 +[#24219]: https://github.com/home-assistant/home-assistant/pull/24219 +[#24220]: https://github.com/home-assistant/home-assistant/pull/24220 +[#24226]: https://github.com/home-assistant/home-assistant/pull/24226 +[#24227]: https://github.com/home-assistant/home-assistant/pull/24227 +[#24228]: https://github.com/home-assistant/home-assistant/pull/24228 +[#24234]: https://github.com/home-assistant/home-assistant/pull/24234 +[#24241]: https://github.com/home-assistant/home-assistant/pull/24241 +[#24242]: https://github.com/home-assistant/home-assistant/pull/24242 +[#24250]: https://github.com/home-assistant/home-assistant/pull/24250 +[#24258]: https://github.com/home-assistant/home-assistant/pull/24258 +[#24259]: https://github.com/home-assistant/home-assistant/pull/24259 +[#24260]: https://github.com/home-assistant/home-assistant/pull/24260 +[#24262]: https://github.com/home-assistant/home-assistant/pull/24262 +[#24263]: https://github.com/home-assistant/home-assistant/pull/24263 +[#24277]: https://github.com/home-assistant/home-assistant/pull/24277 +[#24279]: https://github.com/home-assistant/home-assistant/pull/24279 +[#24280]: https://github.com/home-assistant/home-assistant/pull/24280 +[#24289]: https://github.com/home-assistant/home-assistant/pull/24289 +[#24294]: https://github.com/home-assistant/home-assistant/pull/24294 +[#24301]: https://github.com/home-assistant/home-assistant/pull/24301 +[#24304]: https://github.com/home-assistant/home-assistant/pull/24304 +[#24307]: https://github.com/home-assistant/home-assistant/pull/24307 +[#24308]: https://github.com/home-assistant/home-assistant/pull/24308 +[#24311]: https://github.com/home-assistant/home-assistant/pull/24311 +[#24315]: https://github.com/home-assistant/home-assistant/pull/24315 +[#24316]: https://github.com/home-assistant/home-assistant/pull/24316 +[#24319]: https://github.com/home-assistant/home-assistant/pull/24319 +[#24322]: https://github.com/home-assistant/home-assistant/pull/24322 +[#24323]: https://github.com/home-assistant/home-assistant/pull/24323 +[#24324]: https://github.com/home-assistant/home-assistant/pull/24324 +[#24326]: https://github.com/home-assistant/home-assistant/pull/24326 +[#24328]: https://github.com/home-assistant/home-assistant/pull/24328 +[#24329]: https://github.com/home-assistant/home-assistant/pull/24329 +[#24330]: https://github.com/home-assistant/home-assistant/pull/24330 +[#24333]: https://github.com/home-assistant/home-assistant/pull/24333 +[#24334]: https://github.com/home-assistant/home-assistant/pull/24334 +[#24336]: https://github.com/home-assistant/home-assistant/pull/24336 +[#24344]: https://github.com/home-assistant/home-assistant/pull/24344 +[#24347]: https://github.com/home-assistant/home-assistant/pull/24347 +[#24350]: https://github.com/home-assistant/home-assistant/pull/24350 +[#24355]: https://github.com/home-assistant/home-assistant/pull/24355 +[#24356]: https://github.com/home-assistant/home-assistant/pull/24356 +[#24358]: https://github.com/home-assistant/home-assistant/pull/24358 +[#24360]: https://github.com/home-assistant/home-assistant/pull/24360 +[#24368]: https://github.com/home-assistant/home-assistant/pull/24368 +[#24370]: https://github.com/home-assistant/home-assistant/pull/24370 +[#24371]: https://github.com/home-assistant/home-assistant/pull/24371 +[#24373]: https://github.com/home-assistant/home-assistant/pull/24373 +[#24374]: https://github.com/home-assistant/home-assistant/pull/24374 +[#24375]: https://github.com/home-assistant/home-assistant/pull/24375 +[#24377]: https://github.com/home-assistant/home-assistant/pull/24377 +[#24394]: https://github.com/home-assistant/home-assistant/pull/24394 +[#24399]: https://github.com/home-assistant/home-assistant/pull/24399 +[#24400]: https://github.com/home-assistant/home-assistant/pull/24400 +[#24402]: https://github.com/home-assistant/home-assistant/pull/24402 +[#24406]: https://github.com/home-assistant/home-assistant/pull/24406 +[#24423]: https://github.com/home-assistant/home-assistant/pull/24423 +[#24424]: https://github.com/home-assistant/home-assistant/pull/24424 +[#24429]: https://github.com/home-assistant/home-assistant/pull/24429 +[#24438]: https://github.com/home-assistant/home-assistant/pull/24438 +[#24439]: https://github.com/home-assistant/home-assistant/pull/24439 +[#24448]: https://github.com/home-assistant/home-assistant/pull/24448 +[#24449]: https://github.com/home-assistant/home-assistant/pull/24449 +[#24450]: https://github.com/home-assistant/home-assistant/pull/24450 +[#24455]: https://github.com/home-assistant/home-assistant/pull/24455 +[#24459]: https://github.com/home-assistant/home-assistant/pull/24459 +[#24460]: https://github.com/home-assistant/home-assistant/pull/24460 +[#24468]: https://github.com/home-assistant/home-assistant/pull/24468 +[#24469]: https://github.com/home-assistant/home-assistant/pull/24469 +[#24470]: https://github.com/home-assistant/home-assistant/pull/24470 +[#24473]: https://github.com/home-assistant/home-assistant/pull/24473 +[#24477]: https://github.com/home-assistant/home-assistant/pull/24477 +[#24485]: https://github.com/home-assistant/home-assistant/pull/24485 +[#24486]: https://github.com/home-assistant/home-assistant/pull/24486 +[#24488]: https://github.com/home-assistant/home-assistant/pull/24488 +[#24497]: https://github.com/home-assistant/home-assistant/pull/24497 +[#24504]: https://github.com/home-assistant/home-assistant/pull/24504 +[#24505]: https://github.com/home-assistant/home-assistant/pull/24505 +[#24507]: https://github.com/home-assistant/home-assistant/pull/24507 +[#24508]: https://github.com/home-assistant/home-assistant/pull/24508 +[#24514]: https://github.com/home-assistant/home-assistant/pull/24514 +[#24515]: https://github.com/home-assistant/home-assistant/pull/24515 +[#24518]: https://github.com/home-assistant/home-assistant/pull/24518 +[#24522]: https://github.com/home-assistant/home-assistant/pull/24522 +[#24525]: https://github.com/home-assistant/home-assistant/pull/24525 +[#24527]: https://github.com/home-assistant/home-assistant/pull/24527 +[#24528]: https://github.com/home-assistant/home-assistant/pull/24528 +[#24529]: https://github.com/home-assistant/home-assistant/pull/24529 +[#24531]: https://github.com/home-assistant/home-assistant/pull/24531 +[#24535]: https://github.com/home-assistant/home-assistant/pull/24535 +[#24536]: https://github.com/home-assistant/home-assistant/pull/24536 +[#24540]: https://github.com/home-assistant/home-assistant/pull/24540 +[#24541]: https://github.com/home-assistant/home-assistant/pull/24541 +[#24542]: https://github.com/home-assistant/home-assistant/pull/24542 +[#24544]: https://github.com/home-assistant/home-assistant/pull/24544 +[#24546]: https://github.com/home-assistant/home-assistant/pull/24546 +[#24548]: https://github.com/home-assistant/home-assistant/pull/24548 +[#24553]: https://github.com/home-assistant/home-assistant/pull/24553 +[#24558]: https://github.com/home-assistant/home-assistant/pull/24558 +[#24559]: https://github.com/home-assistant/home-assistant/pull/24559 +[#24562]: https://github.com/home-assistant/home-assistant/pull/24562 +[#24564]: https://github.com/home-assistant/home-assistant/pull/24564 +[#24565]: https://github.com/home-assistant/home-assistant/pull/24565 +[#24575]: https://github.com/home-assistant/home-assistant/pull/24575 +[#24576]: https://github.com/home-assistant/home-assistant/pull/24576 +[#24580]: https://github.com/home-assistant/home-assistant/pull/24580 +[#24582]: https://github.com/home-assistant/home-assistant/pull/24582 +[#24586]: https://github.com/home-assistant/home-assistant/pull/24586 +[#24587]: https://github.com/home-assistant/home-assistant/pull/24587 +[#24589]: https://github.com/home-assistant/home-assistant/pull/24589 +[#24593]: https://github.com/home-assistant/home-assistant/pull/24593 +[#24594]: https://github.com/home-assistant/home-assistant/pull/24594 +[#24595]: https://github.com/home-assistant/home-assistant/pull/24595 +[#24607]: https://github.com/home-assistant/home-assistant/pull/24607 +[#24608]: https://github.com/home-assistant/home-assistant/pull/24608 +[#24609]: https://github.com/home-assistant/home-assistant/pull/24609 +[#24620]: https://github.com/home-assistant/home-assistant/pull/24620 +[#24622]: https://github.com/home-assistant/home-assistant/pull/24622 +[#24624]: https://github.com/home-assistant/home-assistant/pull/24624 +[#24627]: https://github.com/home-assistant/home-assistant/pull/24627 +[@Adminiuga]: https://github.com/Adminiuga +[@BackSlasher]: https://github.com/BackSlasher +[@Cereal2nd]: https://github.com/Cereal2nd +[@Cyr-ius]: https://github.com/Cyr-ius +[@Danielhiversen]: https://github.com/Danielhiversen +[@Emilv2]: https://github.com/Emilv2 +[@GoNzCiD]: https://github.com/GoNzCiD +[@GuyKh]: https://github.com/GuyKh +[@JeffLIrion]: https://github.com/JeffLIrion +[@JohNan]: https://github.com/JohNan +[@JumpMaster]: https://github.com/JumpMaster +[@Kane610]: https://github.com/Kane610 +[@Klikini]: https://github.com/Klikini +[@OttoWinter]: https://github.com/OttoWinter +[@Petro31]: https://github.com/Petro31 +[@PhilRW]: https://github.com/PhilRW +[@Quentame]: https://github.com/Quentame +[@SukramJ]: https://github.com/SukramJ +[@Swamp-Ig]: https://github.com/Swamp-Ig +[@TomerFi]: https://github.com/TomerFi +[@aequitas]: https://github.com/aequitas +[@alengwenus]: https://github.com/alengwenus +[@amelchio]: https://github.com/amelchio +[@andre-richter]: https://github.com/andre-richter +[@austinmroczek]: https://github.com/austinmroczek +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@bendews]: https://github.com/bendews +[@bieniu]: https://github.com/bieniu +[@brandond]: https://github.com/brandond +[@cgtobi]: https://github.com/cgtobi +[@cliffordwhansen]: https://github.com/cliffordwhansen +[@cpopp]: https://github.com/cpopp +[@danielkucera]: https://github.com/danielkucera +[@danielperna84]: https://github.com/danielperna84 +[@danielsjf]: https://github.com/danielsjf +[@davidbb]: https://github.com/davidbb +[@dmulcahey]: https://github.com/dmulcahey +[@drobtravels]: https://github.com/drobtravels +[@emontnemery]: https://github.com/emontnemery +[@escoand]: https://github.com/escoand +[@exxamalte]: https://github.com/exxamalte +[@fabaff]: https://github.com/fabaff +[@felipediel]: https://github.com/felipediel +[@foxel]: https://github.com/foxel +[@frenck]: https://github.com/frenck +[@gibman]: https://github.com/gibman +[@gonzalezcalleja]: https://github.com/gonzalezcalleja +[@isabellaalstrom]: https://github.com/isabellaalstrom +[@jjlawren]: https://github.com/jjlawren +[@jkeljo]: https://github.com/jkeljo +[@jurriaan]: https://github.com/jurriaan +[@jwater7]: https://github.com/jwater7 +[@kbickar]: https://github.com/kbickar +[@kellerza]: https://github.com/kellerza +[@ktnrg45]: https://github.com/ktnrg45 +[@kvanhoorn]: https://github.com/kvanhoorn +[@lufton]: https://github.com/lufton +[@lundan]: https://github.com/lundan +[@mafrosis]: https://github.com/mafrosis +[@majuss]: https://github.com/majuss +[@michaeldavie]: https://github.com/michaeldavie +[@mzdrale]: https://github.com/mzdrale +[@oncleben31]: https://github.com/oncleben31 +[@pnbruckner]: https://github.com/pnbruckner +[@presslab-us]: https://github.com/presslab-us +[@pvizeli]: https://github.com/pvizeli +[@reinder83]: https://github.com/reinder83 +[@robbiet480]: https://github.com/robbiet480 +[@rolfberkenbosch]: https://github.com/rolfberkenbosch +[@scarface-4711]: https://github.com/scarface-4711 +[@scop]: https://github.com/scop +[@soldag]: https://github.com/soldag +[@syssi]: https://github.com/syssi +[@tetienne]: https://github.com/tetienne +[@thomasloven]: https://github.com/thomasloven +[@ties]: https://github.com/ties +[@tommasomarchionni]: https://github.com/tommasomarchionni +[@tommyjlong]: https://github.com/tommyjlong +[@torarnv]: https://github.com/torarnv +[@victorcerutti]: https://github.com/victorcerutti +[@z0mbieprocess]: https://github.com/z0mbieprocess +[@zewelor]: https://github.com/zewelor +[@zxdavb]: https://github.com/zxdavb +[adguard docs]: /components/adguard/ +[aftership docs]: /components/aftership/ +[alexa docs]: /components/alexa/ +[ambiclimate docs]: /components/ambiclimate/ +[ambient_station docs]: /components/ambient_station/ +[amcrest docs]: /components/amcrest/ +[androidtv docs]: /components/androidtv/ +[aprs docs]: /components/aprs/ +[asuswrt docs]: /components/asuswrt/ +[automation docs]: /components/automation/ +[awair docs]: /components/awair/ +[broadlink docs]: /components/broadlink/ +[buienradar docs]: /components/buienradar/ +[cast docs]: /components/cast/ +[cloud docs]: /components/cloud/ +[cover docs]: /components/cover/ +[ddwrt docs]: /components/ddwrt/ +[deconz docs]: /components/deconz/ +[default_config docs]: /components/default_config/ +[deluge docs]: /components/deluge/ +[demo docs]: /components/demo/ +[denonavr docs]: /components/denonavr/ +[discord docs]: /components/discord/ +[discovery docs]: /components/discovery/ +[dlib_face_identify docs]: /components/dlib_face_identify/ +[ebusd docs]: /components/ebusd/ +[elv docs]: /components/elv/ +[environment_canada docs]: /components/environment_canada/ +[esphome docs]: /components/esphome/ +[geniushub docs]: /components/geniushub/ +[gitlab_ci docs]: /components/gitlab_ci/ +[glances docs]: /components/glances/ +[google docs]: /components/google/ +[google_cloud docs]: /components/google_cloud/ +[heos docs]: /components/heos/ +[homeassistant docs]: /components/homeassistant/ +[homematic docs]: /components/homematic/ +[homematicip_cloud docs]: /components/homematicip_cloud/ +[honeywell docs]: /components/honeywell/ +[hue docs]: /components/hue/ +[incomfort docs]: /components/incomfort/ +[integration docs]: /components/integration/ +[itunes docs]: /components/itunes/ +[keenetic_ndms2 docs]: /components/keenetic_ndms2/ +[lcn docs]: /components/lcn/ +[life360 docs]: /components/life360/ +[light docs]: /components/light/ +[linky docs]: /components/linky/ +[manual docs]: /components/manual/ +[manual_mqtt docs]: /components/manual_mqtt/ +[mastodon docs]: /components/mastodon/ +[media_extractor docs]: /components/media_extractor/ +[met docs]: /components/met/ +[meteo_france docs]: /components/meteo_france/ +[meteoalarm docs]: /components/meteoalarm/ +[mqtt docs]: /components/mqtt/ +[netatmo docs]: /components/netatmo/ +[nissan_leaf docs]: /components/nissan_leaf/ +[onboarding docs]: /components/onboarding/ +[opencv docs]: /components/opencv/ +[plaato docs]: /components/plaato/ +[ps4 docs]: /components/ps4/ +[qld_bushfire docs]: /components/qld_bushfire/ +[rainmachine docs]: /components/rainmachine/ +[recorder docs]: /components/recorder/ +[remote docs]: /components/remote/ +[rflink docs]: /components/rflink/ +[rtorrent docs]: /components/rtorrent/ +[samsungtv docs]: /components/samsungtv/ +[sense docs]: /components/sense/ +[simplisafe docs]: /components/simplisafe/ +[sisyphus docs]: /components/sisyphus/ +[sma docs]: /components/sma/ +[smarty docs]: /components/smarty/ +[solaredge_local docs]: /components/solaredge_local/ +[somfy docs]: /components/somfy/ +[somfy_mylink docs]: /components/somfy_mylink/ +[sonos docs]: /components/sonos/ +[streamlabswater docs]: /components/streamlabswater/ +[switcher_kis docs]: /components/switcher_kis/ +[synologydsm docs]: /components/synologydsm/ +[tahoma docs]: /components/tahoma/ +[tibber docs]: /components/tibber/ +[toon docs]: /components/toon/ +[totalconnect docs]: /components/totalconnect/ +[traccar docs]: /components/traccar/ +[ubee docs]: /components/ubee/ +[uber docs]: /components/uber/ +[unifi docs]: /components/unifi/ +[velbus docs]: /components/velbus/ +[velux docs]: /components/velux/ +[vera docs]: /components/vera/ +[waze_travel_time docs]: /components/waze_travel_time/ +[webostv docs]: /components/webostv/ +[xiaomi_aqara docs]: /components/xiaomi_aqara/ +[yeelight docs]: /components/yeelight/ +[yr docs]: /components/yr/ +[zha docs]: /components/zha/ +[zwave docs]: /components/zwave/ From 858226e374a8c91cf65505b580da8a20c80e1a5c Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 20 Jun 2019 09:58:10 -0700 Subject: [PATCH 50/69] Add link to life360 custom --- source/_posts/2019-06-26-release-95.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2019-06-26-release-95.markdown b/source/_posts/2019-06-26-release-95.markdown index a88457456ab..f57de850893 100644 --- a/source/_posts/2019-06-26-release-95.markdown +++ b/source/_posts/2019-06-26-release-95.markdown @@ -19,7 +19,7 @@ redirect_from: /blog/2019/05/29/release-95/ - the Met weather entity can be set up to automatically track your location. - AdGuard -- Life360 +- Life360. If you were using the custom integration, please [read the instructions](https://community.home-assistant.io/t/life360-device-tracker-platform/52406/1077) - Updated Alexa: UI to manage what Alexa can see, exposed entities pushed to Alexa on change (including cleaning up no longer exposed ones), opt-in state reporting. From 4c07711813eaecebabbbeb28630263ba98a68e3a Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 24 Jun 2019 15:09:21 -0700 Subject: [PATCH 51/69] Update notes --- source/_posts/2019-06-26-release-95.markdown | 76 ++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/source/_posts/2019-06-26-release-95.markdown b/source/_posts/2019-06-26-release-95.markdown index f57de850893..ad36d17a123 100644 --- a/source/_posts/2019-06-26-release-95.markdown +++ b/source/_posts/2019-06-26-release-95.markdown @@ -35,6 +35,7 @@ redirect_from: /blog/2019/05/29/release-95/ - Life360 integration ([@pnbruckner] - [#24227]) ([life360 docs]) (new-integration) (new-platform) - Adds integration for Plaato Airlock ([@JohNan] - [#23727]) ([plaato docs]) (new-integration) (new-platform) - Queensland bushfire alert feed platform ([@exxamalte] - [#24473]) ([qld_bushfire docs]) (new-integration) +- Vlc telnet ([@rodripf] - [#24290]) ([vlc_telnet docs]) (beta fix) (new-integration) (new-platform) ## {% linkable_title New Platforms %} @@ -52,6 +53,7 @@ redirect_from: /blog/2019/05/29/release-95/ - Adds integration for Plaato Airlock ([@JohNan] - [#23727]) ([plaato docs]) (new-integration) (new-platform) - Add incomfort sensor and binary_sensor ([@zxdavb] - [#23812]) ([incomfort docs]) (new-platform) - Added ELV PCA 301 smart emeter switch ([@majuss] - [#23300]) ([elv docs]) (new-platform) +- Vlc telnet ([@rodripf] - [#24290]) ([vlc_telnet docs]) (beta fix) (new-integration) (new-platform) ## {% linkable_title If you need help... %} @@ -79,6 +81,29 @@ Experiencing issues introduced by this release? Please report them in our [issue - Added name to sensors ([@cliffordwhansen] - [#24525]) ([synologydsm docs]) (breaking change) - Battery attribute & accuracy filter ([@GoNzCiD] - [#24277]) ([traccar docs]) (breaking change) - Added percent to the disk,memory and swap percent labels ([@cliffordwhansen] - [#24575]) ([glances docs]) (breaking change) +- Save cached logi_circle tokens in config folder ([@evanjd] - [#24726]) ([logi_circle docs]) (breaking change) (beta fix) + +## {% linkable_title Beta Fixes %} + +- Vlc telnet ([@rodripf] - [#24290]) ([vlc_telnet docs]) (beta fix) (new-integration) (new-platform) +- Fix device tracker see for entity registry entities ([@MartinHjelmare] - [#24633]) ([device_tracker docs]) (beta fix) +- Bump ZHA dependencies. ([@Adminiuga] - [#24637]) ([zha docs]) (beta fix) +- Update LIFX brightness during long transitions ([@amelchio] - [#24653]) ([lifx docs]) (beta fix) +- Upgrade blinkpy==0.14.1 for startup bugfix ([@fronzbot] - [#24656]) ([blink docs]) (beta fix) +- Warn when user tries run custom config flow ([@balloob] - [#24657]) (beta fix) +- Bump pysmartthings ([@andrewsayre] - [#24659]) ([smartthings docs]) (beta fix) +- Prefere binary with wheels ([@pvizeli] - [#24669]) (beta fix) +- Allow extra js modules to be included in frontend ([@thomasloven] - [#24675]) ([frontend docs]) (beta fix) +- Fix time expression parsing ([@amelchio] - [#24696]) (beta fix) +- ZHA fix device type mappings ([@dmulcahey] - [#24699]) ([zha docs]) (beta fix) +- Bump version pyatmo to 2.0.1 ([@cgtobi] - [#24703]) ([netatmo docs]) (beta fix) +- Extend websocket method usage to port 8002 in Samsung TV media player ([@2sheds] - [#24716]) ([samsungtv docs]) (beta fix) +- Update ZHA dependencies ([@dmulcahey] - [#24718]) ([zha docs]) (beta fix) +- Add show_as_state options to Life360 ([@pnbruckner] - [#24725]) ([life360 docs]) (beta fix) +- Save cached logi_circle tokens in config folder ([@evanjd] - [#24726]) ([logi_circle docs]) (breaking change) (beta fix) +- Update ZHA dependencies. ([@Adminiuga] - [#24736]) ([zha docs]) (beta fix) +- AdGuard to update entry ([@balloob] - [#24737]) ([adguard docs]) (beta fix) +- Update pysonos to 0.0.17 ([@amelchio] - [#24740]) ([sonos docs]) (beta fix) ## {% linkable_title All changes %} @@ -244,6 +269,25 @@ Experiencing issues introduced by this release? Please report them in our [issue - Add weather alert sensor to meteo france component ([@oncleben31] - [#23128]) ([meteo_france docs]) - Set up Met during onboarding ([@balloob] - [#24622]) ([met docs]) ([onboarding docs]) - Added ELV PCA 301 smart emeter switch ([@majuss] - [#23300]) ([elv docs]) (new-platform) +- Vlc telnet ([@rodripf] - [#24290]) ([vlc_telnet docs]) (beta fix) (new-integration) (new-platform) +- Fix device tracker see for entity registry entities ([@MartinHjelmare] - [#24633]) ([device_tracker docs]) (beta fix) +- Bump ZHA dependencies. ([@Adminiuga] - [#24637]) ([zha docs]) (beta fix) +- Update LIFX brightness during long transitions ([@amelchio] - [#24653]) ([lifx docs]) (beta fix) +- Upgrade blinkpy==0.14.1 for startup bugfix ([@fronzbot] - [#24656]) ([blink docs]) (beta fix) +- Warn when user tries run custom config flow ([@balloob] - [#24657]) (beta fix) +- Bump pysmartthings ([@andrewsayre] - [#24659]) ([smartthings docs]) (beta fix) +- Prefere binary with wheels ([@pvizeli] - [#24669]) (beta fix) +- Allow extra js modules to be included in frontend ([@thomasloven] - [#24675]) ([frontend docs]) (beta fix) +- Fix time expression parsing ([@amelchio] - [#24696]) (beta fix) +- ZHA fix device type mappings ([@dmulcahey] - [#24699]) ([zha docs]) (beta fix) +- Bump version pyatmo to 2.0.1 ([@cgtobi] - [#24703]) ([netatmo docs]) (beta fix) +- Extend websocket method usage to port 8002 in Samsung TV media player ([@2sheds] - [#24716]) ([samsungtv docs]) (beta fix) +- Update ZHA dependencies ([@dmulcahey] - [#24718]) ([zha docs]) (beta fix) +- Add show_as_state options to Life360 ([@pnbruckner] - [#24725]) ([life360 docs]) (beta fix) +- Save cached logi_circle tokens in config folder ([@evanjd] - [#24726]) ([logi_circle docs]) (breaking change) (beta fix) +- Update ZHA dependencies. ([@Adminiuga] - [#24736]) ([zha docs]) (beta fix) +- AdGuard to update entry ([@balloob] - [#24737]) ([adguard docs]) (beta fix) +- Update pysonos to 0.0.17 ([@amelchio] - [#24740]) ([sonos docs]) (beta fix) [#19548]: https://github.com/home-assistant/home-assistant/pull/19548 [#21110]: https://github.com/home-assistant/home-assistant/pull/21110 @@ -305,6 +349,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [#24279]: https://github.com/home-assistant/home-assistant/pull/24279 [#24280]: https://github.com/home-assistant/home-assistant/pull/24280 [#24289]: https://github.com/home-assistant/home-assistant/pull/24289 +[#24290]: https://github.com/home-assistant/home-assistant/pull/24290 [#24294]: https://github.com/home-assistant/home-assistant/pull/24294 [#24301]: https://github.com/home-assistant/home-assistant/pull/24301 [#24304]: https://github.com/home-assistant/home-assistant/pull/24304 @@ -407,6 +452,25 @@ Experiencing issues introduced by this release? Please report them in our [issue [#24622]: https://github.com/home-assistant/home-assistant/pull/24622 [#24624]: https://github.com/home-assistant/home-assistant/pull/24624 [#24627]: https://github.com/home-assistant/home-assistant/pull/24627 +[#24633]: https://github.com/home-assistant/home-assistant/pull/24633 +[#24637]: https://github.com/home-assistant/home-assistant/pull/24637 +[#24653]: https://github.com/home-assistant/home-assistant/pull/24653 +[#24656]: https://github.com/home-assistant/home-assistant/pull/24656 +[#24657]: https://github.com/home-assistant/home-assistant/pull/24657 +[#24659]: https://github.com/home-assistant/home-assistant/pull/24659 +[#24669]: https://github.com/home-assistant/home-assistant/pull/24669 +[#24675]: https://github.com/home-assistant/home-assistant/pull/24675 +[#24696]: https://github.com/home-assistant/home-assistant/pull/24696 +[#24699]: https://github.com/home-assistant/home-assistant/pull/24699 +[#24703]: https://github.com/home-assistant/home-assistant/pull/24703 +[#24716]: https://github.com/home-assistant/home-assistant/pull/24716 +[#24718]: https://github.com/home-assistant/home-assistant/pull/24718 +[#24725]: https://github.com/home-assistant/home-assistant/pull/24725 +[#24726]: https://github.com/home-assistant/home-assistant/pull/24726 +[#24736]: https://github.com/home-assistant/home-assistant/pull/24736 +[#24737]: https://github.com/home-assistant/home-assistant/pull/24737 +[#24740]: https://github.com/home-assistant/home-assistant/pull/24740 +[@2sheds]: https://github.com/2sheds [@Adminiuga]: https://github.com/Adminiuga [@BackSlasher]: https://github.com/BackSlasher [@Cereal2nd]: https://github.com/Cereal2nd @@ -420,6 +484,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [@JumpMaster]: https://github.com/JumpMaster [@Kane610]: https://github.com/Kane610 [@Klikini]: https://github.com/Klikini +[@MartinHjelmare]: https://github.com/MartinHjelmare [@OttoWinter]: https://github.com/OttoWinter [@Petro31]: https://github.com/Petro31 [@PhilRW]: https://github.com/PhilRW @@ -431,6 +496,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [@alengwenus]: https://github.com/alengwenus [@amelchio]: https://github.com/amelchio [@andre-richter]: https://github.com/andre-richter +[@andrewsayre]: https://github.com/andrewsayre [@austinmroczek]: https://github.com/austinmroczek [@bachya]: https://github.com/bachya [@balloob]: https://github.com/balloob @@ -448,11 +514,13 @@ Experiencing issues introduced by this release? Please report them in our [issue [@drobtravels]: https://github.com/drobtravels [@emontnemery]: https://github.com/emontnemery [@escoand]: https://github.com/escoand +[@evanjd]: https://github.com/evanjd [@exxamalte]: https://github.com/exxamalte [@fabaff]: https://github.com/fabaff [@felipediel]: https://github.com/felipediel [@foxel]: https://github.com/foxel [@frenck]: https://github.com/frenck +[@fronzbot]: https://github.com/fronzbot [@gibman]: https://github.com/gibman [@gonzalezcalleja]: https://github.com/gonzalezcalleja [@isabellaalstrom]: https://github.com/isabellaalstrom @@ -476,6 +544,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [@pvizeli]: https://github.com/pvizeli [@reinder83]: https://github.com/reinder83 [@robbiet480]: https://github.com/robbiet480 +[@rodripf]: https://github.com/rodripf [@rolfberkenbosch]: https://github.com/rolfberkenbosch [@scarface-4711]: https://github.com/scarface-4711 [@scop]: https://github.com/scop @@ -502,6 +571,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [asuswrt docs]: /components/asuswrt/ [automation docs]: /components/automation/ [awair docs]: /components/awair/ +[blink docs]: /components/blink/ [broadlink docs]: /components/broadlink/ [buienradar docs]: /components/buienradar/ [cast docs]: /components/cast/ @@ -513,6 +583,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [deluge docs]: /components/deluge/ [demo docs]: /components/demo/ [denonavr docs]: /components/denonavr/ +[device_tracker docs]: /components/device_tracker/ [discord docs]: /components/discord/ [discovery docs]: /components/discovery/ [dlib_face_identify docs]: /components/dlib_face_identify/ @@ -520,6 +591,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [elv docs]: /components/elv/ [environment_canada docs]: /components/environment_canada/ [esphome docs]: /components/esphome/ +[frontend docs]: /components/frontend/ [geniushub docs]: /components/geniushub/ [gitlab_ci docs]: /components/gitlab_ci/ [glances docs]: /components/glances/ @@ -537,8 +609,10 @@ Experiencing issues introduced by this release? Please report them in our [issue [keenetic_ndms2 docs]: /components/keenetic_ndms2/ [lcn docs]: /components/lcn/ [life360 docs]: /components/life360/ +[lifx docs]: /components/lifx/ [light docs]: /components/light/ [linky docs]: /components/linky/ +[logi_circle docs]: /components/logi_circle/ [manual docs]: /components/manual/ [manual_mqtt docs]: /components/manual_mqtt/ [mastodon docs]: /components/mastodon/ @@ -564,6 +638,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [simplisafe docs]: /components/simplisafe/ [sisyphus docs]: /components/sisyphus/ [sma docs]: /components/sma/ +[smartthings docs]: /components/smartthings/ [smarty docs]: /components/smarty/ [solaredge_local docs]: /components/solaredge_local/ [somfy docs]: /components/somfy/ @@ -583,6 +658,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [velbus docs]: /components/velbus/ [velux docs]: /components/velux/ [vera docs]: /components/vera/ +[vlc_telnet docs]: /components/vlc_telnet/ [waze_travel_time docs]: /components/waze_travel_time/ [webostv docs]: /components/webostv/ [xiaomi_aqara docs]: /components/xiaomi_aqara/ From 3b8e3d3e1e68042a278c45518b90d66328ee21ce Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 24 Jun 2019 22:53:27 -0700 Subject: [PATCH 52/69] Fix notes --- source/_posts/2019-06-26-release-95.markdown | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/source/_posts/2019-06-26-release-95.markdown b/source/_posts/2019-06-26-release-95.markdown index ad36d17a123..f6955a5f059 100644 --- a/source/_posts/2019-06-26-release-95.markdown +++ b/source/_posts/2019-06-26-release-95.markdown @@ -27,6 +27,9 @@ redirect_from: /blog/2019/05/29/release-95/ +- We realized that the default database clean up script never automatically ran. This is fixed in this release and so now the defaults will kick in: daily all things older than 10 days will be removed. This is configurable via the recorder integration, check [the docs][recorder docs]. +- If you had some warnings in the last few releases about invalid slugs or extra keys that should be removed. Those warnings will now be errors. + ## {% linkable_title New Integrations %} - Adds AdGuard Home integration ([@frenck] - [#24219]) ([adguard docs]) (new-integration) (new-platform) @@ -39,21 +42,15 @@ redirect_from: /blog/2019/05/29/release-95/ ## {% linkable_title New Platforms %} -- Adds AdGuard Home integration ([@frenck] - [#24219]) ([adguard docs]) (new-integration) (new-platform) - Add LCN scene platform ([@alengwenus] - [#24242]) ([lcn docs]) (new-platform) -- SolarEdge Local Component ([@drobtravels] - [#23996]) ([solaredge_local docs]) (new-integration) (new-platform) - Add Environment Canada weather, sensor, and camera platforms ([@michaeldavie] - [#21110]) ([environment_canada docs]) (new-platform) -- Google Cloud Platform component (TTS) ([@lufton] - [#23629]) ([google_cloud docs]) (new-integration) (new-platform) - Support for Salda Smarty XV/XP Ventilation Unit ([@z0mbieprocess] - [#21491]) ([smarty docs]) (new-platform) -- Life360 integration ([@pnbruckner] - [#24227]) ([life360 docs]) (new-integration) (new-platform) - Add support for ZHA door locks #2 ([@presslab-us] - [#24344]) ([zha docs]) (new-platform) - Somfy open api ([@tetienne] - [#19548]) ([somfy docs]) (new-platform) - Add APRS device tracker component ([@PhilRW] - [#22469]) ([aprs docs]) (new-platform) - Camera platform for buienradar imagery ([@ties] - [#23358]) ([buienradar docs]) (new-platform) -- Adds integration for Plaato Airlock ([@JohNan] - [#23727]) ([plaato docs]) (new-integration) (new-platform) - Add incomfort sensor and binary_sensor ([@zxdavb] - [#23812]) ([incomfort docs]) (new-platform) - Added ELV PCA 301 smart emeter switch ([@majuss] - [#23300]) ([elv docs]) (new-platform) -- Vlc telnet ([@rodripf] - [#24290]) ([vlc_telnet docs]) (beta fix) (new-integration) (new-platform) ## {% linkable_title If you need help... %} From 9e77bd5e3c2e750b8447e43fbf1d494a3a861601 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 24 Jun 2019 22:56:50 -0700 Subject: [PATCH 53/69] Add note SD CARD --- source/_posts/2019-06-26-release-95.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_posts/2019-06-26-release-95.markdown b/source/_posts/2019-06-26-release-95.markdown index f6955a5f059..5e3e19f8f33 100644 --- a/source/_posts/2019-06-26-release-95.markdown +++ b/source/_posts/2019-06-26-release-95.markdown @@ -14,6 +14,7 @@ redirect_from: /blog/2019/05/29/release-95/ +- Raspberry Pi 4 got announced. We are STOKED. Working on making Hass.io images available soon. On a side note, there is a special Application class for SD Cards which can give you a lot better performance. Recommended. Generally, don't go cheap on the SD Cards, it really helps with reliability. - Better suitability for running Home Assistant in RVs: - new `homeassistant.set_location` service to dynamically set the location of the instance - the Met weather entity can be set up to automatically track your location. From 138962b311378b92499c108fecbc2d039b77c5e4 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 25 Jun 2019 18:00:51 -0700 Subject: [PATCH 54/69] Mention MDI icon update --- source/_posts/2019-06-26-release-95.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/_posts/2019-06-26-release-95.markdown b/source/_posts/2019-06-26-release-95.markdown index 5e3e19f8f33..4de1b4203c7 100644 --- a/source/_posts/2019-06-26-release-95.markdown +++ b/source/_posts/2019-06-26-release-95.markdown @@ -31,6 +31,11 @@ redirect_from: /blog/2019/05/29/release-95/ - We realized that the default database clean up script never automatically ran. This is fixed in this release and so now the defaults will kick in: daily all things older than 10 days will be removed. This is configurable via the recorder integration, check [the docs][recorder docs]. - If you had some warnings in the last few releases about invalid slugs or extra keys that should be removed. Those warnings will now be errors. +[Austin Andrews](https://twitter.com/templarian) informed us that Material Design Icons 3.7.95 has been released. It includes a handful of the top requested Home Assistant icons (and a total of 100 new icons!). + + + ## {% linkable_title New Integrations %} - Adds AdGuard Home integration ([@frenck] - [#24219]) ([adguard docs]) (new-integration) (new-platform) From 93ec350a745206d46b9f4e142a9d438171af3fe9 Mon Sep 17 00:00:00 2001 From: majuss Date: Thu, 20 Jun 2019 14:42:34 +0200 Subject: [PATCH 55/69] Added documentation for the ELV PCA 301 smart emeter switch (#8717) * added PCA 301 docu * added reference to hexfile for jeelink clone * cosmetics * typo * cosmetics; version bump * added name conf; deleted linebreak * :pencil2: Tweaks --- source/_components/switch.pca.markdown | 40 +++++++++++++++++++++++++ source/images/supported_brands/elv.png | Bin 0 -> 46260 bytes 2 files changed, 40 insertions(+) create mode 100644 source/_components/switch.pca.markdown create mode 100644 source/images/supported_brands/elv.png diff --git a/source/_components/switch.pca.markdown b/source/_components/switch.pca.markdown new file mode 100644 index 00000000000..55c53006303 --- /dev/null +++ b/source/_components/switch.pca.markdown @@ -0,0 +1,40 @@ +--- +layout: page +title: "ELV PCA 301 Switch" +description: "Instructions on how to integrate ELV PCA 301 switches into Home Assistant." +date: 2019-02-24 18:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: elv.png +ha_category: Switch +ha_iot_class: Local Polling +ha_release: 0.95 +--- + +The `pca` switch platform allows you to control the state of your [ELV PCA 301 smart switch](https://www.elv.de/funkschaltsteckdose-fuer-energiekostenmonitor-pca-301.html). You need an 868 MHz interface like the [JeeLink](https://www.digitalsmarties.net/products/jeelink) flashed with the [pca-hex firmware](https://github.com/mhop/fhem-mirror/blob/master/fhem/FHEM/firmware/JeeLink_PCA301.hex). + +## {% linkable_title Configuration %} + +To use your PCA 301 switch or socket in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: pca + 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. + +{% configuration %} +device: + description: "The path to you serial console. Get it via: `ls /dev/tty*`." + required: true + type: string +name: + description: Default name for the plugs. + required: false + type: string +{% endconfiguration %} diff --git a/source/images/supported_brands/elv.png b/source/images/supported_brands/elv.png new file mode 100644 index 0000000000000000000000000000000000000000..139d727b3f129f427371fabb6bb0402331322131 GIT binary patch literal 46260 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 Date: Thu, 20 Jun 2019 15:10:05 +0200 Subject: [PATCH 56/69] =?UTF-8?q?Update=20M=C3=A9t=C3=A9o=20France=20compo?= =?UTF-8?q?nent=20documentation=20(#9239)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update Météo France component documentation * Apply suggestions from code review Co-Authored-By: oncleben31 * :pencil2: Tweak --- source/_components/meteo_france.markdown | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/source/_components/meteo_france.markdown b/source/_components/meteo_france.markdown index aa66685875b..3226843488d 100644 --- a/source/_components/meteo_france.markdown +++ b/source/_components/meteo_france.markdown @@ -26,7 +26,7 @@ There is currently support for the following device types within Home Assistant: - Sensor - Weather -It displays the current weather along with a 4 days forecast and can create sensors based on the `monitored_conditions` set in your `configuration.yaml` file. +It displays the current weather along with a 4 days forecast and can create sensors based on the `monitored_conditions` set in your `configuration.yaml` file, including weather alerts from [Vigilance Météo-France](http://vigilance.meteofrance.com) ## {% linkable_title Configuration %} @@ -66,6 +66,8 @@ meteo_france: description: Probability of snow for the day. thunder_chance: description: Probability of thunderstorm for the day. + weather_alert: + description: Weather alert status. {% endconfiguration %} ### {% linkable_title About `city` configuration %} @@ -103,6 +105,16 @@ Possible value for each intervals attributes are: - 3 Moderate rain - 4 Heavy rain +### {% linkable_title About `weather_alert` sensor %} + +

    + The weather alert is available for the metropolitan France. +

    + +The `weather_alert` sensor value give the current weather alert status for the department linked to the city. Data is retrieve from [Météo-France vigilance website](http://vigilance.meteofrance.com/). + +The sensor attributes give access to each type of alerts and date of the bulletin emitted by Météo-France. + ### {% linkable_title Complete example %} This is an example for 3 cities forecast with different monitored conditions: @@ -121,6 +133,7 @@ meteo_france: - wind_speed - temperature - uv + - weather_alert - city: 'Oslo, norvege' monitored_conditions: - temperature From c7c62ce0d6ca4d546e01b214e0684d6d2da8eea4 Mon Sep 17 00:00:00 2001 From: Guy Khmelnitsky Date: Sat, 22 Jun 2019 00:05:11 -0700 Subject: [PATCH 57/69] Update Geocoding Quickstart link in Google Cloud (#9673) --- source/_components/google_cloud.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/google_cloud.markdown b/source/_components/google_cloud.markdown index ff386fe3133..dbd70115dda 100644 --- a/source/_components/google_cloud.markdown +++ b/source/_components/google_cloud.markdown @@ -31,7 +31,7 @@ API key obtaining process described in corresponding documentation: * [Text-to-Speach](https://cloud.google.com/text-to-speech/docs/quickstart-protocol) * [Speach-to-Text](https://cloud.google.com/speech-to-text/docs/quickstart-protocol) -* [Geocoding](https://cloud.google.com/translate/docs/quickstart) +* [Geocoding](https://developers.google.com/maps/documentation/geocoding/start) Basic instruction for all APIs: From 0cfa50e5c5bbf3e4b728501e7b6e5735c875fada Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Lov=C3=A9n?= Date: Sat, 22 Jun 2019 05:55:32 +0200 Subject: [PATCH 58/69] Documentation for home-assistant/home-assistant#24675 (#9674) --- source/_components/frontend.markdown | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/source/_components/frontend.markdown b/source/_components/frontend.markdown index d287be2d843..aae2db6d12c 100644 --- a/source/_components/frontend.markdown +++ b/source/_components/frontend.markdown @@ -45,8 +45,12 @@ frontend: description: "List of additional [resources](/developers/frontend_creating_custom_ui/) to load in `latest` javascript mode." required: false type: list - extra_html_url_es5: - description: "List of additional [resources](/developers/frontend_creating_custom_ui/) to load in `es5` javascript mode." + extra_module_url: + description: "List of additional javascript modules to load." + required: false + type: list + extra_js_url_es5: + description: "List of additional javascript code to load in `es5` javascript mode." required: false type: list development_repo: From 5093172046f4deb81af369aaad42a937ffa0c4ce Mon Sep 17 00:00:00 2001 From: Phil Bruckner Date: Mon, 24 Jun 2019 10:05:57 -0500 Subject: [PATCH 59/69] Add new Life360 show_as_state option (#9684) --- source/_components/life360.markdown | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source/_components/life360.markdown b/source/_components/life360.markdown index 51cfae1e40a..dd01a0624a6 100644 --- a/source/_components/life360.markdown +++ b/source/_components/life360.markdown @@ -94,6 +94,10 @@ prefix: required: false type: string default: life360 +show_as_state: + description: If device is not in a Home Assistant zone, it is determined to be driving (see attribute of same name) and `driving` is specified, the state of entity will be set to `driving`. If device is not in a zone, it is determined to be moving and `moving` is specified, then state of entity will be set to `moving`. + required: false + type: [string, list] warning_threshold: description: See [Communication Errors](#communication-errors) for a detailed description. required: false @@ -166,6 +170,9 @@ life360: max_gps_accuracy: 200 max_update_wait: minutes: 45 + show_as_state: + - driving + - moving # Set comm error thresholds so first is not logged, # second is logged as a WARNING, and third and fourth # are logged as ERRORs. From 21fe85432fcacbf49e5bbc8d08f9525908470e11 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 25 Jun 2019 21:09:34 -0700 Subject: [PATCH 60/69] Move aprs to be integration, not platform --- .../_components/{device_tracker.aprs.markdown => aprs.markdown} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename source/_components/{device_tracker.aprs.markdown => aprs.markdown} (100%) diff --git a/source/_components/device_tracker.aprs.markdown b/source/_components/aprs.markdown similarity index 100% rename from source/_components/device_tracker.aprs.markdown rename to source/_components/aprs.markdown From 5f2283e7882965a524c8095b3295fadc5e504165 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 25 Jun 2019 22:40:39 -0700 Subject: [PATCH 61/69] Update draft --- source/_posts/2019-06-26-release-95.markdown | 63 +++++++++++++----- .../blog/2019-06-release-95/components.png | Bin 0 -> 86907 bytes .../images/blog/2019-06-release-95/frenck.png | Bin 0 -> 113023 bytes 3 files changed, 48 insertions(+), 15 deletions(-) create mode 100644 source/images/blog/2019-06-release-95/components.png create mode 100644 source/images/blog/2019-06-release-95/frenck.png diff --git a/source/_posts/2019-06-26-release-95.markdown b/source/_posts/2019-06-26-release-95.markdown index 4de1b4203c7..919525c1ef1 100644 --- a/source/_posts/2019-06-26-release-95.markdown +++ b/source/_posts/2019-06-26-release-95.markdown @@ -1,8 +1,8 @@ --- layout: post -title: "0.95: TBD - UPDATE DATE" -description: "TBD" -date: 2019-06-19 04:11:03 +title: "0.95: AdGuard, Life360, Plaato Airlock" +description: "Manage Alexa UI, improved RV support, even more icons available." +date: 2019-06-26 04:11:03 date_formatted: "June 26, 2019" author: Paulus Schoutsen author_twitter: balloob @@ -14,28 +14,61 @@ redirect_from: /blog/2019/05/29/release-95/
    -- Raspberry Pi 4 got announced. We are STOKED. Working on making Hass.io images available soon. On a side note, there is a special Application class for SD Cards which can give you a lot better performance. Recommended. Generally, don't go cheap on the SD Cards, it really helps with reliability. -- Better suitability for running Home Assistant in RVs: - - new `homeassistant.set_location` service to dynamically set the location of the instance - - the Met weather entity can be set up to automatically track your location. +It is time for release 0.95. And guess what? It's good. First things first, did you see the new Raspberry Pi 4? 3x as fast as the model 3, gigabit ethernet port actually supports gigabit speeds now, faster memory read/write, oh well, faster everything! [The benchmarks are impressive.](https://www.raspberrypi.org/magpi/raspberry-pi-4-specs-benchmarks/) Best of all? The base price stayed the same. But you can now also pay more for upgraded models with more memory, which is great if you like to install all the hass.io add-ons. -- AdGuard -- Life360. If you were using the custom integration, please [read the instructions](https://community.home-assistant.io/t/life360-device-tracker-platform/52406/1077) +Talking about Hass.io support, we've ordered ours and work to add support will start shortly. -- Updated Alexa: UI to manage what Alexa can see, exposed entities pushed to Alexa on change (including cleaning up no longer exposed ones), opt-in state reporting. +And while we're discussing Raspberry Pi's, can we talk SD cards really quick? Quality matters. When you buy SD Cards get the pro variants, preferably the ones that are [class A1](https://amzn.to/2WYUVtm) or, even better, [class A2](https://amzn.to/2X0Z2di). The A stands for application and they are optimized for running apps, like Home Assistant. + +## {% linkable_title RV Assistant %} + +Home Assistant is not just limited to homes. Recently we had a boat owner on [Home Assistant podcast episode 48](https://hasspodcast.io/ha048/), and Home Assistant has also powered recreational vehicles (RV) in the past ([like this schoolbus](https://thisisthebus.com/our-tech-stack.html)). + +In the last release we introduced support for the core config to be updated on the fly, without restarting Home Assistant. This release brings it a step further and introduces a new service `homeassistant/set_location`. This service can be used to change the location that Home Assistant is located. Once updated, it will automatically update all the things that rely on the location, like your sunset triggers and your weather (only [Met][met docs] supported now). + +## {% linkable_title AdGuard - local adblocking %} + +Here at Home Assistant we're big fans of privacy and we're also working on sharing this with you, the users. So this brings us to [AdGuard](https://adguard.com/). AdGuard is a local DNS server that will automatically block any lookup of a domain that is used to serve ads. And thanks to [@frenck], starting release 0.95, this has a top notch integration with Home Assistant: + + - One click install the AdGuard Hass.io add-on from the [Community add-ons](https://github.com/hassio-addons/repository/blob/master/README.md). + - Home Assistant automatically detects the Hass.io add-on and offers to set it up. (It works with standalone installs too, but you need to [manually configure it][adguard docs]) + - DONE! + +One cool new feature: because parental control is now available as a switch, you can control AdGuard via Alexa and Google: "Hey Google, turn on parental control" 😲. + +

    + +Screenshot of Frenck during his stream demoing AdGuard. +Frenck shows a demo of AdGuard during the stream. See the full stream. +

    + +## {% linkable_title Life360 %} + +More goodies. Keep paying attention as we're not done yet. Also new in 0.95 is the [Life360 integration][life360 docs] thanks to the hard work by [@pnbruckner]. This integration started its life over a year ago [on the forums as a custom integration](https://community.home-assistant.io/t/life360-device-tracker-platform/52406) and has now been merged in. Life360 is an app to allow friends or family members to share location with each other. + +If you are migrating from the custom integration, [please read the instructions](https://community.home-assistant.io/t/life360-device-tracker-platform/52406/1077). + +## {% linkable_title Improved Alexa integration %} + +One more thing… This release improves the Home Assistant Cloud Alexa integration. Just like Google Assistant, it is now possible to manage which entities are exposed via the user interface. And Alexa actually offers some cool features around this. Any change you make will now be instantly reflected inside Alexa. Add an entity? Get notified instantly that it has been added to Alexa. + +But we didn't stop there. The [manual installations of Alexa](https://www.home-assistant.io/components/alexa.smart_home/#alexa-component-configuration) has had optional proactive state reporting since earlier this year, and this is now available for Home Assistant Cloud users too. If you choose to opt-in to this, every state change of your exposed entities will be sent to Amazon, allowing Amazon Echos with display to instantly reflect the state and allow you to create routines inside Amazon powered by your Home Assistant entities.
    -- We realized that the default database clean up script never automatically ran. This is fixed in this release and so now the defaults will kick in: daily all things older than 10 days will be removed. This is configurable via the recorder integration, check [the docs][recorder docs]. -- If you had some warnings in the last few releases about invalid slugs or extra keys that should be removed. Those warnings will now be errors. - -[Austin Andrews](https://twitter.com/templarian) informed us that Material Design Icons 3.7.95 has been released. It includes a handful of the top requested Home Assistant icons (and a total of 100 new icons!). +[Austin Andrews](https://twitter.com/templarian), the lead designer of Material Design Icons, informed us that Material Design Icons 3.7.95 has been released. It includes a handful of the top requested Home Assistant icons (and a total of 100 new icons!). +## {% linkable_title Noteworthy breaking changes %} + +For the last couple of releases we've been printing warnings if your configuration contained invalid slugs or extra keys. Starting with this release, these warnings are now errors. No procrastination anymore, you'll need to fix it now. + +We have also realized that the default database clean up task never automatically ran as intended. Instead of running every night, cleaning up your history so that it only contains the last 10 days, it never ran. Oopsie. This is fixed in this release and so now the defaults will kick in. Want to adjust how much history you want to retain? Check [the docs][recorder docs]. + ## {% linkable_title New Integrations %} - Adds AdGuard Home integration ([@frenck] - [#24219]) ([adguard docs]) (new-integration) (new-platform) @@ -44,7 +77,7 @@ redirect_from: /blog/2019/05/29/release-95/ - Life360 integration ([@pnbruckner] - [#24227]) ([life360 docs]) (new-integration) (new-platform) - Adds integration for Plaato Airlock ([@JohNan] - [#23727]) ([plaato docs]) (new-integration) (new-platform) - Queensland bushfire alert feed platform ([@exxamalte] - [#24473]) ([qld_bushfire docs]) (new-integration) -- Vlc telnet ([@rodripf] - [#24290]) ([vlc_telnet docs]) (beta fix) (new-integration) (new-platform) +- VLC telnet ([@rodripf] - [#24290]) ([vlc_telnet docs]) (beta fix) (new-integration) (new-platform) ## {% linkable_title New Platforms %} diff --git a/source/images/blog/2019-06-release-95/components.png b/source/images/blog/2019-06-release-95/components.png new file mode 100644 index 0000000000000000000000000000000000000000..4894b612a93742064098c248068b9f1353472215 GIT binary patch literal 86907 zcmYIvRajeXur&@J61-S&iWisQg`mZuxD|H@?z9vMF2$ihgG+JOQi4ly*C55+wTJVc zi~n}^^Iq)P^UkbUYwaivH3d9uN^B$~Bs?WWSuG?abN~_(N-h@aYh)VaJ%WUUilm|P zQSSNW<=?-5XJ=>6PtUK9uCA^Q4-a>DcUMkv%U($XqCJVHrX#n8~`{rmSmzP@TdhGJvmY;ElxFD@Ti zIPZ^6j{VTo)iqoyWVE$E>gwr3+}%S$zW(dNy4~KDlao6MpgeX#I$zuL^z?LbagBUXKHv?6_DS@7?A*iU@VPPfD z4=E3AphFye-#*!k)bxYUaHLX&ai-|2)=Z;1XJo*;wd2L>>m;V=yHp&Dsqc(u8K3Ik zW}e2%qKPIT1>Ai{`*HsL7wnV6&~{JVe7#oFr)Y-C)@Yg|-IOqEhP?{lTP8a_y?_%C z4_Ef^y|YvHxXtv=?N0Abd)GI2Vvk(fBI$Cov(FXQ<>JhEJe zpuLH0m@36X*So7dBP|Y^$u&!bGY3}>o4Zk(Xzp{q?VYN%v|lP(XWdi4evWms1F;jp za_th|kjZkDdK-9T{Cn$?hp5)h(o*kFWpqeCkkH@T2ju5|#gRpVo+yyKzqDkbLPFLM zQj(Sa=(}{ZFj?NigZl+h#hBUS68JA&LV49N{%c|O1lB(@*N*2%d*1&D37y{>SU*m* zV$*~X+@P6v=lXX5q9Q+(t+Hl54c#mn(T7cthMn{EFlSK0AS)$2G>HTb+I5rYcwQ$SSK4P|xqjq7Pf6i=CI&pGR0k&!n?)J^lj_ z$n4?t_)@@{yh;;dH!1p_Cio&>W4Ny|`olA^Xd_&P|2t%NI6>mdnycNBDjh~3<4Vv! zf@J{3-8`cUg9QGYhvoY^6TH3;RoFRu*zjRuKr1)amUS3T*!+KoqQ)BHm4ltQ=IR9f z6$EqhusQ%Yn++B{a7qj&GbjqwYESq31P1-^k(r}EtYHiu`Tdok=e!m`(MupbcnAsn z2@W2i|No)8fwlYX25dREyWE!^9il*uX@QPg+z3+8!C+Dh1ZOoo07A9bVvahKRP_T@ zKl)bjNm;cLt>r2=0S)W3%*D>x+gO5dIHO34bOVYeD>hWYoi)@BJzs+akg%LLq{NgtJ#Yn*n^f=}9rK`ibX|El zr|PuMH>=D=?s>Uf%-)u)-YQH&lD#*;Ai3tZbg?QhQ~{FseUAdErN0Cky>B_^behVQ zGJ9(*XlRJyHln()2$${HNQHK_r zR)phHi%+y$1XA4QU}z^Oktk*UEx2e$9fdBRI|`pojaeFy0A@}Dbk;PP^-KKqd@cd}?MSuyJ{rIY~jTs#i;) z@Qw2;1JUK%{nU3^tOdaGNzT6;m5Rk8&=5`8@E@|Paotl!PTmHhI?xG^L=EZB;1aIq zz@fUyHRbx}ld8kf%hCERzTlf%@rv?d`>3xr+wPgNYOZ?`ON3}jXHhZ1dCUCzd)?j5 z{K7yYthuy`^+9)LtX`V=-KMlWZDQ8F zU3Gf7V94anCtnLvpWTnDf})EXztBz}GZ#lFdh$|aX^0M+QF2I!G}A2wc=^0o-11L4n7G-`2h zb91}oK)1GBO+gc3T-8|t@QA$wLqR!(YTQiqsl(Kv@YMMh<`Wmq&&b`Lcw-suk!zdf z?k+>Ff_-P5cgA9EmLZL}5jiO$n>=~tg*&Rm47Y+zgXW@+!7YiY+QaTNVk%sCp^cvQ zZ2BW)>6iD0zTxo9!EyJyObJ zP9KJd1wU#pV7(7EP-2rSC3V#K2^hk4R}4a+byr)89B!+H zz@Z$#7j!@^VYdfQ!-jF856voL@4lKy@<>A!l}P0@Csijl1fJHZ^q?PT^aOe8olTp| zN2gLSxSc3Z8lj-nO%Z8ajV^WISko073iTXidjR%)wLY`rwKWCFp2mD&f2%%o#_OQy zmYB}5uQhh%n>2*2R+_rQsbLjp&&ts$U8md#sr3)GK86U@^}yKvO?dc;Ls5Tn{zm)vAoCbrHETq%dIkR)pQc0x+m@F3-YV)O~E)bUT2x?c0;bO3<+>I9DY`LFA zE`r6w66ppAe|(j8;lbWeU;XTIM9wlE0re%q#-fMoRc-yXDjtpdrSxlG7g{}p4gH)5 zUcp1wtP7bXT|me^wwaLQd}-GHMU$Vf^`^srB;aVXN+O`S4cIU}FU~1z86Z?1AO>3!NZAUZ_96o9ZLt|8OP7&sc zv>Gy?_+0`4*>mFZ?a{dQ^Z`6~cPYW`#4BL$)yLlP>bC1_FyZKoNa2f<;;p0n8vfm_ zNZ|wr^ph0NVWCF{j9mBfV+J65t{f63fz@@amk6rEM|gZr%^&s`1r- zJV(WBR*wH_YDb#_pj8&S`kDrJ!8+aj3JD`n8h`%RQwMnHST=RpJPGX8A!Yw|ts56(Rs7YMQ)^RZsUS>lwX!3l-osxTaA+8TIy zrRbl1n+U#3SzF0K3vH2CZ2OHFxje%HIL)C+4k!Q`8s}NiCvR*z|BShR-k~2jLwn(Z z;;RCKAK8&|5fl*!#AOhWA6EgRM7{shU`xk0*642o!@oC{-Uj~TamaW91aIF-vyiV2 z@Q0oOJ;4z<&__&LaPb&D`i47`LCskU;@#ekZ2miJXF;;x6p%vWs`s+J-*jq|ICm2=(^VQ;WA-c{9cdwv zV^}~JH1T(#@S`nBXzFWa^0%3vy(lc#?SCkT=GFltCYy_JMN(q&^q`5SaWVT`)PLxp z&xX|_h}G;8y@bD4`!Qzj3sh`@H!F)T)fj^%nm+~*2i%wFP?FPl7j@?3fp0?+0R^TQ zZFmb#x#ztFIIEM7mBnhs7E?2QD{9EZXLV?$W;j9J)Bsy5Ne4E(C#MA;i~^e5%HI@&_I=NdYak5~UzJa*qDgUV)^Y=V|nL|kuIvOO=C zcg4p&axdfiuKpZHJQ%6iKaSg~C5!{c;uD5dDuvtRBl^Q|-%e3Wwuf45H2EKs7!B~c zDB2PI8jQ_)7ZtS#yEo7K*!WONy>)4M8Or~6X{2;iH0*wtMbv=N1T}MrehYTFua;-j z&uCXO#~TNjloUL`M~mwGR+k4#A)iLcL>70oBsK;jQjN`>{aewRcChaQ|1BAY1N%R2 zO#`ZzIUmLOi92CmEJ4frSsRS|i!Xs?NSfd?X~Lt$>9}ecn9h|zUI!_8orlbrswzSv*hJsT71hNT7hepPxmI| zg!fP9tmJjkDYtc#^2 zNdf1@G+e#$x7Bive)n%E&c!GRWd(5mK-P$(2DUPN#VO=liMzEk8R2m8VX;_Wy$R0W z0lu+NPL;CNmEYk44N9Zqj2)WA&$1eU>WlBF5kF%zT0euBW+8OPi-GeN!M7&K0nzK@ z<{nDuR?0gt+G53bDm&3-AItTPvpjenhLNx|U%{Hla6}A(`T4)Oo|0a|~B;`^=|C($i z+Ld-)X7{Iw9l!7+IZg$FWa!-rD778Ax3^$cvWk2Z<4pf4biSEG5*Qoz6Q}tv94zxK zlVBV~0r8EsWuRC?2U0Tb`ic`JsLfB5@F_D#@AD2XM}oO&g>tcwttbkG;wwH}J#u8f0bhDF!EZ3-5Mif(WIOgUzY}c`Y(x$Kvzn+Sn!bEM1#`^<`Y# zJ7M7fg;rsnq^8UBJ7Hbj30217PZl(v)BiSzQK{#O-;exlzX7E8oobCStERpEZ(VJp zWY-3D^nf3+2*rVJpVK+*gT(9k0fe?5GO_;2f?m?D;^upCdA^-5{oSz$82vPCiFpX# zWe>#w7%4T8LLsbhsQXn<-zC|)ctQDU5D%5KcN|!09*|t?R}$Kby$r+NEUkmv@Umq& zr3uoh2*SoJZreDC{H;AjRagz2gm50rF~Qk3b^3%KY;e;mrJRe`G!GrF!1*k zvXOAF2@!Uj<)4|hI?~xjdH-x>R3Ss{Y5r62Ek=e)(#(~dQV7Fp9rV2;?!}q0I4Pzd9$kkf_YoX-PxmqD zEto^GHv6j(A9;5aMhr4~Z@H zff88Z+G%ntPy6v$Y3ESpnp9wc`|0m}#<+_es82uu zW*~Uo@aWjnRh&XqqU~;q&~0m(%oG%SdAv2cxgc(NkvOyoLDVcqri83DC&R(8PmYWl zkHlx3%|}!4X97b74x{E5O>C?-YXy-+kU#?*LvMI@JlNbE0qpoQuWlmR3OPC2ecTHO zayW(zS~ezu1ZG93C@G^aS#gbidwx?lVCoZrGfMgh^#_$p(1d4^Yy}&+GQEM9@}?`f zsb37re!tXEpQ~K#_hq8_TMO~EA&A|h@U-Wl@7uc-=Cid<)BJ?wpqw#alBPxz9dX}) z!@gIK(D2_id(b)%m?2MgT?uZJ@W(cI*evu$h7N4ZIQ7ya3E*?UH+T}s7}3m!fF!Q{ zPl2Kz1hxa~rb(|nN4FHZiJ6PpkKIc7#B9hkw)n9fd+Bp2lzgskZkYMRzrOI`lY?-t zt!#)Ec^?KQbVl}g^1>WiZ$X6Z-$qEK;WE5lw}VOTW#X+GcJtH% zy#c=%e{_0oj|jU4QFx+KxH>yA&9OItg6$H|rp?4EwJ)y>JnV{oX?4+NjRQWPHhkHx zt#>^Pb-CeP{F#+8MAl0MWCxa8XvPG2i?O?Xc=re6ix}L{dmonifD4?vZTq3Qz=V$s zFnc-CbIoZFd=4$CGW!*H(x;tnw&#*zEe4eF1hRVpz2$wk7wCp+HDerTw-I+%7T+%^ zZ1qwS7D$t&hA?w})2o5LW9)6h`CkB>K+IieLEvbWh#L-VW;Wh=;k*?UqJ=~3kLBdH z{+nT~xqPqifN%AS<}^3izK)Y#aQ(P+qB3a4a zM1lyEUrt2Ki2^2(s2HOdrCs09r^ni3$L!#aXOT~j0-8S?*Z5}yocjmFf%DCg$T-ZD z{$%ciq>|Vv-f$6?@P9TjG%D|A>%0;vjp$V~v;O;cS+Bawb9>HBTUeX=4Rb&adoq9+KuBZPyV%jC zy(B~GCZscP!Ts2@sc|#~HiM_7o)|)e4XE1jxd6?z)TU+c((s^FlHQ29dk!-63og^Z zt*1(K2?EVLxg_r?z#+&A15m-|tdj#47qV>jMh@Y61m)dior#g1@L&%3^8IMREC_62 z+_;K6gY@j&s9(MREUU-5Rqrcr0aHtMPGoP9TH&|H|0DNl-)HnvW6Ak);J$E-k8(2! zP$4!_-~muph*ZCA+p(>oJ|VF8FiLl*R0H?%042jM4XiK7e-Otp!5etq9#>I70gS&> zED{dIV{z6ov$vFTBD9(1ZKaaKXI321@rrIhA2S74z{)#VLFa34fT9`lgjZ>b>O{@f z*39#eQa++qR2t_tse=VeAf-T|Pll0UURLC2RrP!Rqmn+i1H#I<)2VWbcYe=x*g;8( zw>@Ky&0IkS+`q0`*$fTSJrd9Ww8hwEFPQ%G&|Tw`$&e2Y*OTcQ&=2=(5q*?rU2#=7 z+3JBreW2mdL%0!;0hn9p1eIU-aZ$bLgo|o#Q5CG;`HrX~~f8sHP(!&?XZWlZXh#?Jn04njj~ zXzzpvihiQNyM+BA@Z?M+Tnaild1Vk6Ll}U~k%$}d$0EZD;69eAf8HV+@T7Vg51d+w1p8CO@k+74`x~lgPS^l%`<=RzEGP_zD#O#~2;PP2@Xd6t zIMApt0vQ$^yA;<*N})6IKLQX_W7$rKx1CS@3|^^GDVq^mt!61^ZH?V3A-(t`QeEX# zc&@>>oj&cMbK@@n@!6+NX{eGqHr0>o3&d{(N)KvW4V;>0kTp-06skd=eQMii;!mPc zFsA~orqqPC^HS4*#_M3z?B6zWmR6rv8nri;Nhk07%ecSO1Ir0|5H8Npq+G)40Xd6l zl3jut%n55txa6YX7>n`50TJMD?!23Ctb(Yujp~`*T(M#?QgG$!Z@;ifw}kAb~X*RFIb~w+~;c?!xw)_{EGlf>gEe|E>4T zLCRehoZOKAf|d~)zi;F6yeqsTlNy)?QUnG%I(9(>}m8zew zrW!q{OwA^|F9&DGvr)6N)xR!u+6ra|Uci3CBI`w93YaeyHE>}<+xkjN3gV6~JOG8^ zVKLm>TnJNF>?1lL@9}Af-`4bTGu80)I;Q&Ci`EQOaPU=AYyn_o!p5&l8f?9^DhK)= zv9>$dUmV2DkruV@1UeDaaRZ@9I*f|;6=>_q@wUeQ2XxOXi-z;=ePiB8Ou+m|EKu%7 z4YkB_RI%DU>ZaG7Q3VC|^Bn1J(L-4IQ$2Y@p|W5H2VUS5c3b8C1jaj#9=}8{H^Yqn zO0kVZfo=mD27kZILS|oCGxnItpX}|uu!O(y{bNoMGhj&znShGpMD!mm-;N2;%C|JW z65xl@ckl!*#!K|kYYuMxn4oq2T&3S@W(*l4BOAf5#XLNZW}x(pbfF^xlUzt%@$sX_P2#UTV0MO zi|MjhPSO9SZKUpj+LX zUGv+4ESR#23SguPJuYy{caubo6UOc6t%w=d1rqh40j9gBJ!5gB#JfEelEzN?d#Mr) zUXj75Kp_XT6Z;DpjN*6+(vpc?x6Qh|1=lu?9lF z7%ZH)Uf|;@qoNn{unK(TOXT{VuQu7-cERrQ_{}0rpr1B{_j=~gpW_hDEej@y^J)<$ zFqj17w1lM^MZecuhT5v{QbCR4rSQK%^Xg7d(&PR*d0^bMHMl$)UO$jv`mmXbgJb)~ zRNwc+9s=5{4-ofkY6hbM6uy9!QDUrBzrH2Z^!N`a`3sz&RqO7DiM1i!BJpWm)-k_% zu200>`shm^vMqNttYy0%Tk|E@qmY+1mqqSl&y?_=@ zCctBeqNdOndm>?eWi7LJELkYd1nVGiiSOIuVGG9~@`Y%y7McIP^Cp_IHMbipOJIl_ zkjhNDK`>Eao}uY)>bh7^V+34Ws5Aw6NW4{1k%mqV{+>2KJ@#%&_*eL&F8AS}*fW;o z9$zMTng8@fRiBlQ87g3C|Kj-9l1}oJt#{C|i-Y~QH*7*IyFw#>iGSVKaHcutCK6+b zrF?o)i5x>L#4rKiP3nEQ*-!ch#=sSfPsARE&f($m^X+FAk38p4FS7ifKqmS)x}qlX~zB^Uv}JC{|vcGmx85#kS(`l1R5@R!X(79*Af*kHfI+(#hU;P+v2W+W#|DKIiU;pstxnJOxtIUa;v}8ycv!H5 zzez1>xG(NT+y)bv862nwsU#8+lPX6}&?9vP?b|^-rblug`D92ZA^aM!(P~>@k>HPJ z3-q}9zKfudzkk2y@$N%5CL-$z&7oS(kDMPqR9I$C{c74cvm3LQfr-8=2D9drUvckr zJ3z4?w-<%0G={73U)kFIo<2$dw`rRkzANy$j}1;NJjjHnr|99!0i`)%nm3IP(H!wMRAkK zxo@YA30df~)CNTG^s^=qJLmlet%L~)OS(V48^s7SfB>KI@?kC@CliilZ2;Ra21vyb zHxdjIO60d@=xv14uYZN_E6O@uQMo|DsRrQE{p?g2D>jCYzy<*^OA?{XI?mYrPf|Dl z7ogLBq^%4AR^t=*x&NT=!DCaHACF%d(Q{Muqrgh-d%0+iYvg+~UX*&<^;56vg|XAr z;1Cm8E@O-lH<(ohQq_4ANViePcg&1Pyu0(YE-=DL(XAyE)f*Dk|1o7&itDqsc*X&h z6LV5Io#nhnQ^flZ_(R6UBaKEh&cy#i!T!X;;l-~C>JJLzCar3n3vurEZ~Fh6zqpQR z<|^0;E$wnUnDTg?K85IY;LEnrc0(;6q8U&5RbrLene1ZXXvGOpQtE^ z?4#oJ#poC#qt2Y;EQ#a5U?J7Ux!NBL0p(N09z06V*rJ^1p=5HP7i$*3gqTpoB0}qC zlFsHrCI0^1=w==T)#y^AE!_Ojfx_a9fWs;$g2-7X_@J@w6~;wLGcxU?_cCZMd0$kM zjnsEf&-J+{EU*!|_P`qO0ABHv%o!Qs(hY?1QG*rv0`^dbVis}Y#Pcv+;M4-L7U$MV z*8s><;vPdK^i~hIlc3}~0Uj-i<1H@mjeFP!?A{ZzXHm-DuOPiI)RP*dWNfSORdzOQ zPq8o*M=tags?Q-6fA1N&O-TED*EC%*bG3R3`-%jNs^|s-?AZwS8i8+sbNMw=4}V9- zzHaPCpaCMhTaFF<(LNIO!0P%u?;IYtO)>SvK0cT}-dy7ctKJgjwUu6u@4akzA$J_6 zn;j<4m>@JXIbBMqHa$0|VMEgGV@$lsvlIebf~vah)A{*y%SSHtR&|S$DukX{q&^^L zKAUdxFfC?u@l{kyIWa%VTDd{M4s_|$Yj`9T)#^+K{NRa{GzLd?s8oW{+>eZ-bh+jLuV z6^XWm3tmaq9i#F#60DOoW^fao@@5{=Qhpfzc34Y$8VMo7CQcHN{x7$j(-!))qs=f{ zoZ;`O*UK#VbTF2k?V9tS%PXNR4gL*x?7H5$7Tn7gSa0jYk74@K(xW#DMT3&iVa+st zPx*>1r!Kq<2!W?BHq8wX_dMMZQ$s(zv(Io56)*iiM8e&17qRyiX%14FE){ohefV&b zVzNo_wOmt+lzk@4jh9lx#pz=l_MjaJWqXl-?pg#_kDcWh`Bf|wmAuEP+ngU?iNk8| zw~oCaP{xI>Rd1P<3W3i3KwhK+ImL(DiydD@k9wvLnZD zAL=PGQzDMtJgEuuyA4F=Y+pzmOH=pHaa;bpb|o=QyZX!JJTGofdRK3e@DkE45sibA zZS$BI<<~^UWyh!omP@Mz9u#=dlxyG*`QDYO(}jRXNI>E#{2|9*e3Ay&&rzq zA8<~Y=?eFl_xfBH@|)wT$m|Q)kmK{&UzEXut+NkeK%vY3sPRBf(#G#5InFhlt!*!L zNM@LC1nVys-4-%tZ8-3+Aylh3obJFTQLP4{c#<;Zj067`0>*09FSW1xoW>N2Jb6>& zn}{(+{dt|wOMgMa5IY(N+^l{%ny<_yw;@iKU)Wb2vDndch2PH;_>{(5V9Szv^C{U+ z0!ZKMj1cjdAI#jmfzsH8E3dOx|Jw*=*BhReA#*?^O()pI{oIr-N;`)N#aP89tRK6wG+I^F6WZ~GG^0)ca>=}Oit z!3u*eIMOw%>ItUwCDF-7^x{te&^xDmdRgPRtVxHIScg!<#R*n<0U1(@*y;rPtn}RH zQIL~Y@eJHKOvfD)j)=R7CmCs2a3C8>R2g7IfnM@yAA)2lWX`=2G&vFV<+;D5TSTX@ ziKA3`Vp=D^!4W zF~#C&yJ9UmK*Gt@ZSR%L`FxRH^x<=nl=>e_LqfQaKC7PAD}=){!2l52SWcV?Z2u00 z`q1wCna*3=EVYzvogHk&Ttl+0fA(;+y1#8c`E@yGl&-Fg&wH*nd(W;clGUhTd~mP3 zFrMKLf|OzcatRi3uPZbQM~(Y6FR)Q;_aI-)z9uXWD0V!>=q3FQ;nlg~-?z@G{WTG? zqz0(+Ubyx9nOb3VS+!Bmo+tDrvWrY=JuXzv%)VaVMRGpOnNe#CsZ7@iLw`$LOZnDC z?I7T$udWN|ftQ9^Tkcu%4ctN4QMY(Xv$&UM=~{)PZH7j3l&bM<%|hB_$@+l&SAV^53@Kj3 z4B_Ptgv7q;%YPqsdY1MwZYMSpy?(v0U-jtT-*MX)M9Y9{XkI|#12|%6A1iR%?j#8Z^WlYZ&wb)_33g8`uGr(Gj0#ez>OH65#y?G1oE41Q4@1J7E<3Ov>nn+33IY ztZ*lvaNZKNd$QC-Yl_$Hz+@zjEF3K5scfRon8px}SPhxH{KUba8?{6-fmoJX^KFv^%-a-TbWI{6tj5l~CW$vvQ< zhk!oxm+>cyvRLBeA%aNMbMK{n=n3(<-?dkw^wBarh2>LFVf*rM$Si=g=yBAR8}3>c zN`Pl37G>YId}0uMW4Yrt{kt1+b3otY+$8)u0@f#%(KG*~ETIIr8VZepo7h2H+D{veXafuWYRV&jjW!nv+_AQ5vOhF% zv0i$qh#e0DgC(5)Yo>=I)P~I;S*auzJyjbx_hTrc$*sEj;mC=Mai7TlS~dbruzAu* zFfqu982-c&12S=fHq5m=nUs9T(OBGfmT~uYqkpCS1Yhr+_TG;w zuhvtW+jnjw=Ti3bgW`(KJ83a&*h_v$|5Owbg%Dmj11r750U7wsI7+D=4MTk%tPm`B z=_Gz2+ZYNZrK4rIZck6fUD z&_v+##>Ypis~;N4%D8nWs%IXC)Gn1)@yRnnpzrzIVsn|T)#S{$6ZWu;nKNY-1XBKU zlgcu9@1*yK(l3UNo%n!0kF*JHM+zNF} zDP{&7x^%zV{IlY}BI8t4B&MS1ivC)1XnGd6uxgf2+pLz?sS+%g4)#JL&+_aP>Ua^S%!u*UgnM!Vgz*%FYMm%y?$U4uUN zO|xPlaRi#Y;CIBphipX$OT^m$5{g`TPHr?C({BZQG^7h-{h8~x(8CisRFIDo1YsCJ zZd4;3b4at@9CABx5I^IL6jGdtfNtjSA>1|+8FFnklmV9p{K?a-b88sLphOX>WoW3} zm~vs>PIpn!TGcN}(V&Nyyz93-+nPb+?u5_-3Ui@P2CW%A?{+!}2*yWZd9ocx8KhVe zZ-1E019(SJW6yYP{Cqs7|4E=i_XekdS0SDjiNml+F{T3Aw8l+=dttNB^<1R{c-a?= z8XtPQj@_`TJ&t|9xQJ#~r(r#QUasftxo`UoKWwwSpN6#wxsWrp;~7##bj zw>C>Z>_#oTSU&)275bcGX+AB9yMEjI1U0H)^uib3x7U^fiES{OW_o4+{qyT;byn*? zu5VKh&nT^0@2dx5-rj*f>@+^+3C#`1SUc!*ZeaiRTJw|MI71&}SpE}p(fL*Kgjd9J zE~oC;q`vQQt)wiWhcexM%DwEpo`1*%0t;SMbc-^$=49}T!XeslJz3^4p;`5xj?}xN zgtC5Kw#|-^fA-7t`$4_3*PtR-Bz&sdB4d(W)Cqhmy~UcS%J_IDGQK_DeLG_5IaM)@ zE0{xNIT`uev#bWbf;h<=VrXUULWGpH80CwmV+F8npqMDCY|%8c3@;3aA>kcb6tQ?R z>wiPV0i84z{YVY{N_LONH6EPWg4FR$Pc9UpxVnbVmgaD8&|y7K?X0y>2=q@tQSll1 z;}eO5^#_|Om?r~ovJk({cSm(e0ssL9Vj7egwM8vPA!Z8dL!Ze%qRLk$>4f87K93?JevK) zravKzcS|c_r*czsz{Zjm^mUw{4E=guJ>w+PZe)u_r)*-TjlQZ*>4xQw%j;yxIt<%_ zTMDR0mfI||)RYNZ0ggkRFX>x=NmbCtLjL(+|Ch(z@n0eJS9E$+c~Ik*o=i#7phS}s z1KriZHBp2Q25PeT^9-w8BZ!V~=bTS$H0!8F)GFLu>tk8ym%)$qsOwsvGX7|qN2^fV z)V-YY0}v)_cz~gb72T$wvIpT(CzB>5smlCv)dCH@gP%@EJWGz#jed6R&69ccQXs4N zA`9zbD~qWjMi92Cb>yi0aKs~V>QWWSYLlK}kj9ve_RojV%QlkB7&DT>z>wCUs-j@a zjZKEqTddTIU7XLNmsNjP?z|r0ZSHrhW`CkWvw79a-Ush=BL*YzXnEM&3kP!EE2?CN zYRLj`{&2W#X!sV$k#50MU(^Sv4}Mt|GUtg0oX_;-nFgP)w2nx12A-_Mq;s2gZ)Go zYznG1KJ2^%d#?)O;$rwsnPy4UakaPID|~>$sr)^?jWj>fFE_Kxml^83^a(^0P&NhW zbry)4WJB5CQ9EQeFOJk}p`^|PQ6*PPw?8H;?$t-AREun%mLn4R7RV_#_QhA&*%T>E z%^S4c2w5h;@y3Zn%FlxMS7dq!H$uNp+@CN06b~TokLNY!sM+M&DmBoEaUv}WKjpyP zbfdp|@zB|FI?hsej7L~fuy2>Bxx~O95Sp?&jMn7LtBw0-8xBw=E3v?rqs#QF&JKt> zVr6GnJ=fUxc&W(4_LqBu5emSkgqrB%SixjzuJp&$W69>9`W*uxrSVdodeyUuu$o!1 z3@6VsCk>rd19nw)ru$eO4?N0Zg_7ad4is@;6Am@9FU@P=JchB#cpr%-vaCqLmHe0d z%j>wZKSzIjQ9$hWsxL!306Y&#iCoQDs8_5<{rdY=f3*^U(shbffmebBha-8v)RQ7^ zV-HNOB)S}|Bs*@NTI*?r>@vo8ymmA+1jEs4Lf~$mDTG9q)#GsoRU&EXiI#qk2IU|o zq`EDV@C6?G0Flxq*n-$k&x-M&i{uNBprGihmGF`ATWN{CL$QaUtzc6x)a&JefZr)ZR$m^6}aN@l6zI+mSeY+ zXm}rS=Smb1tA&W;0Ycu3?pDqJTrYb>`RZY5p8yvm!Sl-aIoK<{U+d3bYgcl#mqS}) zl%p*^XMV2YkqcS&hXa>jeNsZF^`gY|fS>GBl3N7gD{Tg@9C$mo9C)`FPy!L7ko&VE zj`f$v^?#Be2N}5g&iQKl-J?(2N@uhGX%&4bc$iI5vU-ar;UOSlz3XPFQBU&HCsq}9 zUn}{oYOil%b~B**>F%iv6Q4GpR(i2PS3cPJtRVwj`FYGkF+Qi{dAQM|z#E$&tbp8c zBg@jSUD_$c{XMzc!mJ1Kpix}o1#&-vs{w4nqecc&%ZLXP;@@3?u5fXHy6G;=j@?_{ z-l|t&qE;I``{|j^%ou&@9=_tb&G72s7#>eKQ~43j>{w) z8lmY|kQ<~7mw?mrtLtK?{z}u;R@A9atKst~li4BhCL)8VBD7NZNR>t0QjicewAX!$ z+&s+a?4CGLFCo#NY-p~G!asoor`R)3Mkig;f!NQ7x)>rrkU(G$%f{70h%s)wHRB(f zfC0X+oG^4PrvMCqJ#9n+Um(=!RKc$E#7pPYgFE!UaY>|I`Vi>P2s2;aWlcINb>vz_BS! z7d4p?X}8>Xx7bi3-;7F<8oPI2jl+k7s(s#blSbcv#!bCs)k<~u+PNs=^JYuO@jKFn z;WU6fxflS`l=>&!2aH4WDh2zwC{<;AfBPlaRYWA2TS;=X*`cL4s?07P>5>vyY4pK*vZ+~v=;%?1~j=d z+8KszM5ft8IdN{e-v{4|%_Q_){s)X7P77g$+FBdGs(K0NctFw795-Ln2q-=lz>7wx zGCf;&_|$S0a@qh+*(v)F&wzYRh8e6|cSt%zxBi5@ggd0I^zriANuX5kO+aQ{SK;m7 z(n@1qjN<4P5@mU)n^~=HK7}^vuy24}1DNqBk))NHdPM#^-qhNsfr}>a0aSqy#jH9H zHXp>=0Je!`Iimi2Uct@fsVq-ysU8Yu_K~&7M52D)rrK4iE+C_^__Zwg-!cpr*pCOC zLdi_P`No|x~OoyJrbv@e3pnb7Kdi1_Y!~H z!hq9>tsbFSeB#R$G!nm)o$1*WtKKV-VXZ@0YGAUQZYReCMd1PQUY>Xt1WwRy^I}FGg84@9 zKHWy5ubuzy?d-EZ2A=D`zw=9venlN6Aghnqe>jUiUBDfL6bR?G?`NkWJC}A-$q)pC zFZ4Asb=n=oh6tMI`2) z{nXYDqWA;Wgv7IOV!_pj0Mp;cGgpaIo-+sh?+R6MtUyc=A@y?`O!JrDBknnmqA*dQ zz2Ke7}WM*F&5S3WtJbQ|7f7B$(l$?Az5ysv_ z2K?h$H|sD%rk~7ZIM~7CB9il5|4l$5<+xYnWLvCM^wcP6kcAdlVDsQg59} z#247mWoclaR=KQ&6`8`CR#>dklpZt(;QsEvINnW;WK-A`LJH}TGCB4*tc zl3ywJLqq9GavZv<=OA@{d61c;-Tm!SXn#c|vf_^ z@uPT)cqc}-M4R6gR)sPCP7;Z4EuHVDW+TIf{%!8jjEH$MI zD$;`?kZ-QZfX7B6wGK>L?Uk%4{%! zX+`z$@ChSCt*{ZPwc|A2O$I7~$p5TvW#nK=W<|{OrTx=l@;f=JI`S7OWiP$@8Wv{F zo?3=ijfGKIuF8p=GZ!H-&gB(UpaL#C!ZKG^Z_U?9TI}h`&2m5ZLr_h+{y1&_?(x;j zUqIy^7Hs^PKIz+0-`?KbOv@auPKSq;A1gT*DX-a3tbV3ldC#1jRNgVhsXfH5*r;c4 z;abig@EQEw7K{X=8|i=jjO}@27EBjO10AD%Il-hl@j4Y1{%4BU?*hl69rpmrMa|xO zNrdqHmwLAD#FJ8?E%+$;pPa^D$t}{Yn0EoAeRsQ!_ldKQ@{kvhM96n)_|L@m;L7Uu z&>abRugPOUc3m8#gyIHu>B{du+X^a}PL`szi)QMbt|W=p@SUTDo#&3Prb0H0S3U6_Ajx#G3?cm2F9nhP5a?S!WT z>?=62n4#)bIeJsC%a>wj^I@u0IT1>?#I$Fq;@rUk{;xYk(ie@oZWdb??7K^;@DQfXkB~+Mw$V>{f2ytqV0dOhTR_Gl_N` zf_Wu-FYXk^nC!=@FE08ml`;G=9w!0j<9Q+JUs8u~xo?fX)!M;@1E1cnOyKVtTXBO= zVc}TAPi9-9_0P*Flu|n^e(x3pVgG9^%y{Izq&*G2g9$s^^9A?)BKvS8j1zzHpTEpL z&Fl&LD~cPy!SRh6IzEMy$`m~}CreNZ270|9l-NZKrveKWg}D9v8G=|4A!s^0>yFap zLTKa}<^@JL6x{LnA=_`6p0-w|ckVQ8f|>jCYQzwV}Za zE|qBhi}W|gCmNQ&N+Ky83BGsuPc~$3;E6Jr8<{j+v@k;B=OXK);2@12_2JfC5M$$i=JY=W5=f~W zKTss|e|O>XjMz$|Q7U2?G|_bYRzR77mhLP^Rs4PP^2%zrRpo^BQ-sU|i3{(}ht>1AM9kB@DzY7Rk^S>1HBfjZSM-pD~xs za82nB@t5TA^uV^e_8#2`*3)$+Hz?Y=whfcUK~eNX#b zCN7U(S@~_S{I$Vzw$EYn1^#3i>ctR*aaXisAreyp-fq13(cJ;13{W1S0qFN8L`C~J zr?ZtO)7G=r__w21T9Dz$pEO0x7=a(hY*S@xsj=S>YK7xm%Mg=$zW;rs{@ z;l317xo2du@q{L}zfdLM50&gdv?U`$G^o5mGS0Z%PXoOKv9wGd^9lLxe zpQNaVAz4hv*#6(uwE7J2?51-`V1!5E*UD7~UF%M;{DA-WK?R7C}#!TCcaEGK-ip*Fv>W0IOh0y#7~%OF9EE+ zZ75)xAe_+V^1(~*rPJ?~eQ0IXOct3xw(d0&8Wo5+DWrZD;`|s>L zv7}r$zTR%^`s26nNUE6*9f2f1YuL8+NU{@o0Y#vWD|(Qan~B0qZ-=8wt*Ipmwfgp`&UOagy0yV;O-=}9%+)`I$6)w_+J zMRt@0=Unp^JV(>u-;_ac7`_ER3gDn)81sv1YPYkZUg0j3x9q15yqgD8DkGkH@V>_@PW|_3kbGgC&BynM7hn7@|DGl!0xB(lTT~;3zHrQ3WT$udL&; z6$MT0OLVZWP*(|0D??%0k*JgMADl%qLpybnWo_&E%0y@MC+ww{{9h83$l@806T{LTrd7xv zD-tQe{6JYqIYRS2&6o@gNv)y)M7K|pLV=9oS(gWn5!er4G8w`RqP5S@7L zvjTo+;$rc{wNBn}IffLq}>D06n>)dqM z3O93aayz1vm>tMlD{~`dthQK=wBX0aoc?FXV6S*2R_|F{Bkqk-jZ}!~NZZRxjPzWlY9``o#$SIfw#in?jjN?~e~Y!TqXL{Dd z#sG3lSG$mCoXp&N)LMZeyFcCH)p9u9xII$n?Bn%xYfqO99f3;h+J^g0tWZ3+LG)nW$ zn|Q%(hscB_?T{ZN<##SJQwOn?UnH&xXCj1w+rQ&Hu{&+rROmLnc8D%h#L2S!r^?at zDBr}@atW!b!N(=n=cEs_^oaA?xfXg-;3~i>?>gsj7i$3 z86&nH^5arxqAvKW2eo#ag5o;NyF<^afs4tkDbKf(`v?klUP;u+4s@4mlpR*`w|B1z zSNl&`C~eI1b4Y2ge_gsK^KMJoSt>x_*&U+PQn$R&p?b7cB!74 zg_i;Cw<{}gj6W4)v+Trwz8_&0b@y^245zw-U%ieeZ&GlVI}QLc@ondowyFt}u}^2w zK9+CedzP?V$h*=b@c1!lq*NMJk&NHgMcXB=AMdJmwlE@23h_5s-f_=>gf7Be~(Xhx|DUUv_$nQtDNQ6t4<$Yy*X{pE= zX0uNk7dpT4nUJQ}S~z}vKmG`ih#@IMP-_3@PS`r#=*cJ>C1EBWnPfVqvziL}xA9Jr z@PWbGE{_J5x!IDyV35zN+9cY4lF~-Jywd9MujEvh?uoT9I9Cu^ls3{!s+Vw(ST#xX z_&l@s-3+I|ABg@_Y{+-!+;%R=DL;wq@(=UQ!BJiXVf9<{NkIHo#nji28*D0Vd%v0-gW~!F)&2`*+27 zE8M7JRr1x#-%qubi$wbx^GZYGBm}m--2;>knYbKsuUYr<_}n!hP)!R%J9{O%aY_8H(S^Ohr> z9%9?p82TO{(KQ9HNd3K1aLXZIw!hQRYt)7=VLtRav@n-$8DT%m9h=vUbI9piPhhfn zLvfs}K0_%*lW?M{$E*w*S#QaNaj>dlGW?@Hh5_B~gpGimd3(hGF(1LX4ZWYv@nvrz zAZnZRZs&K(Uy<-W-(y_Z)+lNMMZk@mR*P%RbONiYd|)8MBeHIK1|CZa&xy{Z^qnu^ zcX%O6)Nx#S-2CxBqd%kD6h(xBzOs~V5W2a=mAKGtrc4E#*n-{r+xrtQaEUdX~FZ! zwEcxCFQWbge*hHtGHqWD_nkY?v!C9Z1?oGA4932H|F_82_Z@&NYD)rPa6KZX;2I{g zE-kV90R`q7c~{Z*p<&{^wS7=jUODy7>sRHgoZo&Fg^_nQ&;`ObqV{KMD8;swuj~;w~w*##XT$3nb%)!pl=PVx8dTexgx}?yXVW zj9Jmp8~P&jBXA<2e?|AaIpLZiJa~|_?6A8HOpU0iht(X6NnS}#(=1QA?RZrkeX*B; zYYlBNvwmGpNWc{M1%pC#u>Go&036xw<{3|i@UNaWX1t>(S2ixLvlhVqd;Kg>LNM<5 zYFpNYEzYetb+rYNdK|4%vL`Fsk#`U5a%pN@7X%;p`nio~*Gm`?jAWALuqhFh?FK{V zF>~yo{?U8vVJ2 zk!MzNRBR?#4vPoi{sMy4s@V6%(t5Fg!jjqjxVzlDY6g{`)($1-ym~S=S9st{l(8Wx zFj*aY-X65Ef$OIHU~EO7N|eOjsb>L{ynai3Tt2iDOC7%ylAsI?>A^UY;_<>QQIOPq z>I)idU=c$$(JHC56w9g`5-%aDc2C9&7G9q4b$!t6#Q^mX*$b3TQX8x0S6EFuZ%kfH zsOKISzOUiCBLfNK``-hp325i(xBlkONXxDr@p0vpxTUU`(lvk6gjW{g!~K(XrK57! z4)qfiN|DgR_-jf_UfAZeNR{gD;4KnMzWqQhxy6(kV~-mWCiMIa1+CvU5qK7&d|?)A zV{ZwbkY1HCv3xYcnebk(zy;e!nf?ON*SB}8RNbC3=J`%YtcVG5IK5kLu-z5GHH7Rt zZK*E`5n-Y_!@OJ}e>djbr`Yj1ZVs2SPNGs`)tNV|yTT)n`PbBv%xHF*b!7exb6)@a z#j(EREmAzQpRqf8jV1L$4$NoHZn(PH?NG8^tdcjKkI!?r^pfEmKo9Z$*1Th6iDeP%kVzjDR!0wCG)x$U=rp7NWt}uqa}B;>$=Ov#IqVELcr%S4bMhF+;Rem%EK#d*z0m{g(l2I`|o># zGv?^qAL{*G(R~{Xg(aNZ_HqFA_gh**R3D@XG`hE{ z=n4b+DCijIHXZg+rPO$bO0@=|!34HgA+&fk*oOu*cb}+6l2E_;5|Etw$MCJbq{4zn zFn}F+8I->E758Ois>q46Ff{IBy!Lcx`Ru&)q7l#%-5Hb*cKrvfLE%OwW?>8~pHo+r z^8noL1grfP+(Rb*%$B;TEq92@NCr!|{B@Tp2%Y{C{L^W~(PK_VT9`b$>KO=KnE21U zWp+ET%m;ZD66~$(z{|Mp(ET>xM^j7mj?ykcCo3e$9{e0ZFd@~~S$){WLPVfwr*|Xs zlWk=*MrkIx$0$gZRkGZI5Fe-NTj}&U0+>K!Iz&B*N%aEhX*u^+2xN1^*PLBtvp^;f z4|&97z9;kD6C*=mb&40$L?OMDyLCWvH>4K>U#(ZO%<*gC_&W}7`~CuHo;x9b7ZjK^ zT`!QtF%*lcE*8N7aeXT=%khw-3j#c{z^f;;<&d(nEZnAQ>0l|eQ;j;za-HmS!s-qq z=%e!|{@13%kM3M<0$OmgtCM8)Dk@>;g&YFC@7t)2NI{_7_HSB<8fcy4PL zps#Ef9ClICuY{=qsn()g+27(rkP7#DSITJEgzFxp#Z8{DureN3&j{dX?o&{SnS-oq z0pH>!P-JVmi28xP65dgN>glOPg6&YF@)Zf4JDA&s$ns15bcii1$2iboz;Y_ES81LE zBykBa_U+B(*@fmh*M-blsg@!zo|utEUwX*26s7&9bHKJ6#Wxwu(V)>0^{BuB`rjLYn9oi1U-r#vCpkj5zFP%!7Z7=RZSVBKwl7>9KL+|Cqle?_OdSOg5MQnMykPc5|D_BU>`DKTWrj|tw2F8i$7mDQW;3hp^IIG`9y z3kHBXdl$%Z33Lr$Qu=A*c`k{bM(BAc>`>BVnDQNw3j6&{XbfQwLzlrS4flk_0Wg^) z1{YgmQ0FfQ#L|X79FSSw3Xk8J?iP(|c_7+Gw(J?YcERLOPPEf0a8wzY zTpS*kvbR|WeIsQhhg?5?62c{+^_((~W+Tn_AiE<`$Dy7d3+^Z%5xFZ~VXf!ZbB8ap zwR|o4mRUAyx$?NK8n%QQu!z+56XF(zV!2g(h`>(Xt^or>QtrMxw=GT@*YRXu`C+!_ zurC4(4B881t$>^mqkkRpPEuiCdX}VQ+GLZhe&usNyrZ;GU_Z=`mWXufU7Bpl;3Jrs z5p#G%)mTh~a=r+$4D`2M#cSOxd@*s*@?Wp}Qnn$ra}&v?HVo!I4O$Xn#z-g#Z~k|X z6gMXyFz>vz?w&?`Gk_twVx{aruI5I{WqrZ{jO_Bfx*nVAQ5wNL>%qpqH1EmnF>)Is zn=wfu*p%*?6SzGjlOpV8OyEWPX)5!_f)Fvg@_XmLozUhboz{MpgN*Y`c1-k+60ZVp z_~lWXV*b2xDnxgQ)=j8tuP&_`|Be#P!3 zxj8Ma*!Q=DlPcAXfKhhV(;T%jg%f$Ds8^n4ziTz`=oBAzW^6&1?53tlWmQ%*!}3kHe_%Ii{n>o-7);gebW>aY}ls0<|hZ#PB0wr#hHjNSgcltXl&4b*RZm zB(Gy=@(W|EMauHUR`ujrLIpm)jn9MPR#CI@Tf@wM**H?M+2N6^&wTA&QJhP7PX03- zz$PE>L9+UOstq8a|D^FCw8{9OCt(k0gGU@?ta2xbBc;xaD0QgPWC5>W*wMr9`2kq7 zf{4tWb+-7P2KxsQfs|O+Jbr)}E%V4xnr3u7+NK$$WA`kgIlPc=dEJqBd-l`VXJ8pK zsALi8Wx>TItlW}F*UxkyN%-PuVG>Mae%YV_sF(#ZCgUP-e){R=}O3L*}5z%kw5E_$_=B8P=Lp zyPOk(UHkgly8%1n`RxMe{pYQT;4dfdkBj=py0*l!Dea^*u0s!RK7sW0~^R%53Pu_x_^uw3nqZjk!mLsm_4 zrFN4NA~-b5v+zXA-zb!?lCzx0+lH6iKl+jnjhyvb8zmUCUA^U$@qoQiQ>xWei5r#B zVEs0WWYtctqgfP;l68S9N21X4N*2l|5$rH2#K<2Gret}xP)y?V{&mX#A%3sSmf5$_4kk3x*CxEarEQEpBix~okXn~l$zQK;5C%fyR9637 zlX5uyA!!+aSY2^Y^VHy{4$Fl7`i(}ZFyK{pm9adqiWoR>FB8~W_*7l>y&xt4- z2R5L*g7JnC`3iF8QcaImqCB5>xAIKe0t=n(JTJ;NOK-$%ho-KUv2HY|#621{)c_7s zh2wcp10v>fgfgD3ycKIWl3Wj$N`jB&W@$0EW1t~+L?7xLpZQSQ0#$(RbN^aF5Mwu{ z2({q|JKX6d3ml&gl#a#2gZgb8;*d2#yyAgn#flbRmNN3C;aF!VrcHvrMwAK`vhpmf zBdA(0H8gl=f7DrOz4@FvP8!g!Vmj;a*C|c;zCjit$7e(7Vg zv#;wkQzfjA^@}9O_(H(B|9YYEo?LuPH7XPn1MP%Nl1WGNGyN6W>viIcQJ|&P9og5f zw*8z78moIXE_EI{s>yR8&Vo9ozi^AhC+UubL_$EcMiYCWrTZa1TV9xDet(t6TY1ldJiV-B`pGHKNq~YmI8c zTnwjwn2VYxJx%+eP8fHmFF?nNW~8`%iZ)7ysoC)z#OhqDOG}bFuCHGqsn?po!ReFQ z{={T4BsOoZ_cGeS+fd5onKWP8X7)HU6fc~i&OHvCMX1iDQ*QCuPwlNVc`Md90y|z> znIUL)zokL#&$S=Z_}hU$?o-b$!I}J|kPrbzxceJ-W-efLaoiU|aggu%G%AgFX!R5k z{1qA_G9yE9`C=ia{p1cmPCpBnJUrR<~;0;r^6Dt6*lu3&cB;qC|}D3^426 zsvOG280TV!uZ1dhORYV9e0*);$Zfzpb29IJ!`{ND&Y^J!iVq9ThRTwnhk>rp1QMhb zpkkFNBcc~`IgQanK~HjrlN*GN$90r<0`1J1-b`*Ot`tD{SXNC0gfG5H#})0;7a0(< zElb8=Jf7_sR0NL17}339beZ5Su0lk!E%+5ZNC=XN67G>z+nPQf0!QUgP^#RaVPk89 zLl~yrxr?TQ?4x@*jwVfcdhMpX`EzxEniZ*AiaiAoF_u*g0l^NB`b|Kc$m05Cw*I-Z z^BQZj5k5*0WriL|kI)aivF#TlLpP^48b(a{CBAr9m+f=LTV$nsCAeV#)kLM%jkklZ9~bHJjJ*RTOL!VbpSMsC{43Ict~Hy$-N z9_A%%qqK)L^9^pe0)U&}stEBv6q6jgjgOO|zcG3m<0}Uf?`Ar= zz1hX_Ovy^_b@C$8r>tV8Ea9N5-)7)}_a2Ds^KyMA3vg3{B zj`u^KQ8VOU#hk>QKnZt91kbE+OYYn*#>3Fb0&#TX8&lG*i{kakT;eZ_Vbi4E+Y>4V znt`c2eF)BmitCuNtu$YO8AMB^ai)@f9CpG!+tgDWGh|CuWquR(!l*o7_mFBRR430z z7Fbd%fh>SCv&d=TM)HWwvt|_3Xx<0bO>PJ{)8KPWgEojDp;S^bcQlAPlQSsu9xT$q z^lxf-3GMWox5Kf7SnG}ym6Rl5kK?H&z!mU)t+XYHcezAD2G*rNClbHg7Sq$(KpYA& zXg7(fcTFGCXhN4HR0=$C0Q?a+OiJP0%y9k%RB2PRTfqNt;aAp&o!3!;wmg&ujBGBC z1~CR~213K=x^3Dw(}$gJ6*uj1DSYYoQ;xJYcyic=&5mR=c~foc8GH&ZdU$TU?r5hi zz#s)b-;J+w!iA{>6#m|4mw1yFMCM!qe%PE`%&ld8NRr;#6!pUeO(n>T#%KF0p^JE8r0wy}c@q(OP z6dX_27RpNM3;_qLZ7d~C-nvQf^Wk=q{nE-6*Ogbk5JrgZn+6ys^uKkM&L834egI&N z5}QnWfHXF3%DDTrSbjeIMZWenLicSGM233NqR5VOWN%+cO2#80az6`8@+%&g$??C{ zj)tEzl_rF%V#50}svjZKFJtFco<_)@$Nlc{_RWcX1=HbQ#n7q$Z0;}Nk%4PZM)JAv zz5hw}03iM1eiZdLu%jasc@Sa^9`Qi}K8nuMRQb}w|52va#y}uqgC)u6ng(%&nXp5v zQ|3Psp3hAV7K5RXzyRffcMO{69at;$M7e7Xw2K18xM+Qc>n7N7*0&5xB?w2IlhX1w z=5Re~r})7COT~D(fez2%?61|Dti_Sh0;DMqts+2O1M{>tjtH37NtFy}|A#^KoA94;mh3mVCkylacgK?dUyv zCkL<$o#E8>JwQQ|zAO5;ldY$AWOJc)2=986!zgR($@+HT_F_vWe;!>eZ3zVSOkV$p zeH#?_kuGLBQ2+)8f-}H2KA5`&kC17>twG4YoodqvoZ(}krxWUqpVPXgBfDwY zmYsfEFv#+78b4Lq&!RoUq^HWpj5sYI)1#qVm%-2n5lUO%8KnI!3cA~BUq$cis8%tb(r4IcWP18zmB z=mE}{CwO6xzfkf!ET-zYF8;Uy1}m9Bu`kWE1LCL6qZVgrV>n#csiT zuZ8RRW@V}!Cl|rW-c%|Vn^k5C(w%)_I=Zj{*AxhzUNxddknD60vHfiy*!AUUQ-G4E z7XrzN8M#{#6zy^wGG9TgxbIN27T0#U2Xt1W{ywV)nO&|LGg2kT6cYdCw4u6-$+daw z8PcWoAB(WATU3+N6)DUM6vh%EJQ@*&I{~H}>tb zEtoJ>ko3*kQ_1SH^y{6We)<%uVVcnPF%dN{?yF3|{r3l8vNl6o7kwf#9`uyKz_aOZ zd;_+@6P39q)5+?MS+LI?XUeGNNmNOy=At2_Emg#F%%26b!o9mdH8}9S)l8>pD0Ye^ z@=gpZM&Cxp>}|n2#t{0oy_+c|*Cr@7c5v!4=$L9c%3#aXS)i!1f0kO9j%YN-e%!Nr z+g3wxirOheO@d`jLOoqciaA8bSix8O?xIB_3yR(I6_b)bL+q8Omfo2R(L~fufSm9` z38cVzGuV{hRLk=yd3W7lKRw7(8&HgA23xZi_TMqeG_>ozO_a)8iPGDrl-$QLvR4OO z7s1`${dBmE6hoy9RyNr$I{`16!N11PbI!PP-Hl2Pk9FqSc8=*^7i|rWbDZdr8anag z%sD3|3h8?@&5FX|J#dZe%F{(Lif0@(H}ujHJT{K}H3SsUvFTxgpCLjA^xAv&mxIhv zQX6p*PHI}B4Z0y1ymQKL9L|b_3!m1k+nZ7A2t;8B#v%sHkdl%}85Ec^3Hx#YPTUFM zAzX(;$ZxhB)vjuF;rQYrvRHA(DHUS6zrJW%1L&zD?}iCh2Co8Pt(=dn6PpIUH4*oU zGXLt~{D-u)NZA2__PxodG8-oKdJpv-N8pQ@CY*IrN+!>xkvvE1HbUQ-9oUD;Yml~h zOU5H8aQ~I3Ng{2KSbvyImr+pe2GvOW`z(+{)Le*tnkv5JmjIykn`0h`sseuVXrHO` zYLs0pc)3blVRSIz(}w~(e;RY={(37P8)WNDbkc!Wf3sPNj=@Bhm}Aucvb`;Cs zliA3)^E1t4-J?JLbE75pbu|bp$e=88TCh!pT)9w_*)s)WFw{5`w4$?rCB#vH-@SOv zK^7~tNh8w1QY}H-=>wVp>apiH%rykdWakVHYiHc4iZDCI5Pz7urI^t`PG)dqThV49SbP6!GHae8o_2KpN5Pf%)k$|D?06FHQ@c&gd@>tvo>2#A9 zUsz$5S~Ap`f#QZ4@lNGnK}q?}#3i84HvGL%rNu>Wdh$7XX-n@2iF}-SM}9fiGGKw1 z+2wNeg`EP-Y>sYk0j}s-loONB6; zaEeNta?o9l|00^~E@%$6Ezm&CdCjwBM2C39?dh>5 zP5J#IY}9GytRr_MUk~v&o7G=TfO6asBB0X)3C{_L{xfY9=(V^76=RQkfa5PKa4LKv zZ6%|&Xee>tP}Pb|DBtLc46BtbPiG;ZPBt9IG5Kj1)e%inO@z$d*E)R=RFt}p6@pU` z9|RT;sioZ9a|M=i15@n`e2;%|f8g|HsM<#?>lL*Tr3o^RrucoaerJ*+Z&>wU4PB18 z?K;EFavL^75w1@zsg7#lmKNhHw6?y zA|Fn2yLdTI4)w@K)^ZRQ+(XR_g&Stzk7Am{glOX0&1y;3k zC$(xvUk=6<)o%?s!BZ#7FszkgWM1+NGV#BmZB;=7B&;vgU92&yZO{AyH9sjxUi zK{MzFia5JjHnO=G+Cfj(H)|yEw=_%PsOpfZ$+kFROy^r{xQvkS;s8VpK9})>Rb8K; zhQO_XSg0@<6$dsb&F56?(4?U)<3uB5)flmJU2>49Ut(77j(f;G`|-BuwF`BhlZ9+R zF^E+X8QsOYPUpJD`B*e3P~}gUV%gWd8uV#JHpwbJqXk^?b>werzEfn6evx{=?%4(+ zn@+QCzOhErE0zmY-FuQPldb)J?}cNyap41zM9YyEj82I@mylKWLo!x(3*A9*Aq*}a z8v2D@{yn?=i-!JOttI-*SZ;SWDEE(a&aT5en}->C z3J0B(4jFg<;((JtXb8%zgvMzum+`;sXG`}T0qH&2XEi}#kV?Zw z&ds=9CMs5DGJ{wn$olbDqNgB-ppNjWRp?jLn*^WmD1Y=x9P& zFzUQntBHdNbcmXI7~0c-#Xjm>wCLO)D_i;Q4}p)KapRTbH4#EvC$PODPe-VUNyz5C*5faJMs zCgBmI(|{rucFV2T#rcu@%aD@#oFi_pKSLlY2zeBM1!zJ?6hV&^^6~MF?)Y@49N#)t z50XjuVgSYfU7~?lV!*T4DAfbv_-;-gVFf53a5>DK&5Jb+t%%h%=i6#aRw4LmKmeW^@jtd#xou?N1U(eJc1+&AS*)idDNz&Y{U*#5@>K zuNkOLalooBGYPAn%T}&Z!xXa!Cp4A+Kws6xJkFkkqY3YjPZ0QoR{YV*iD(y43Mn^6 z>pG6LIV@rOZ!UlPLE>9(o{Ra0kfj3z;nk6VzlE( zVFU(|5)kO7i&j@JIt_CyE)6pkuhT4*r)!&k*UfYu@*xX!+1h>m!7NLANPbHGSviKt zO{yR#ygK~y=E!9cD>jI^S2r9L6@Zs}s2s`Wc#4vtiSr!|?})s;6u@P@)jCY-Vi~bb zVjWTKI6!`k;PVhJ*jpvXie_ElAyE>68vu-iB>nw%Uh^9w2V=V-tc1A7e>j=dn6++P zo)%3SO0utwLIOhau5ck&g>+YG&hN{|nttY1wX!@I0K?qRYMz=#O0FK*@xe!2%(QdmlrYVRTIveWpe(#WXI$S> z(jST6{QN#5ZkwH6=YxW-LDaZgRl|IDFm6AiGln<_k;pcRx#B*H{_Zw;L#rrN8_X)Y z-;ShoDLyV~nY4(*l1Gnfag&d9z#j4)pb?_v zd(nmQOcB+z(asMFw1U%c%xYi$i24$a!lEk)d%8Nt`cTjQde}GA*QxcoyzGDz`dX)e z;tQhpI4`z1EG&l)yP#|5f9+de3LZrbaeVa^w6LldM(HJ6NpL9Sd!kKb#?cmWeblIIwQ%ThKxJ3BV^mnt71vZtnI^3+-oik3GuD zxQd0>WV^`6!%yr&WOp9Zh4!{8*kqr@b^;ZtKA(a3+&QBvk`*v_0&1PK7Bu-w<2cDZ zmEGA3RCzJQ;Zb^}^Fsk$E37!FlICSzpn5Xs98!d+ZmimxYUsA9O{Q zk;t)A$z^-utq+DhSlj!mf(4MVzPkG;59s76CykusEfOXUJvOc-68C!g2OhN(d{ZI5 zz69Lu=1w&eZD?p@j%)E-eFr#I?z)Z=5|AL#zEIsl>p=cdJJE`e`o8fFCNRYLCtb-l zB@)DIW|jPNJ*%#j)O{oI45fBDUKwQySqj#a1aV(p&hLfx9UBze&{Vo}M zAZGsWqswWjsgT5WI(-=$UjSL8<^I^w1ndx4o4Oo3CE+qV&=UdezQ1uU=?4j~!|_~T ziuZ9wc4lr%O}im4>XE~9>MHJwC;~y>h(|nIKxQ7OFk7!lomedmqR4&cpL^Q z(vdjs4cSd2A)H4tYVL`Hlf0@Jx1gDGw~#YG-papchW%0r7{;s{8?E2aISzd>0ZqQ{ zvY?D@qj)<>7#0HIc00ULKT+H(kQC*1h3wZ$^PhA-+{!sEg$A3bM7gFJPQ4A zNLY$<$ohR_XVbVEn4i)z_pbIT?)T2rk40e4%kzxA2%qq2+ZY8g_kpyejK@xh6h`+_ zrt!Yoyi<#43Gx^qz}nH6OObngZx~Ds{-DJDWIyOL&u!5wt)MspS70yp7Ha28W{f4Z z9N4DxS&(#Y=eUULy&XE5$K&eq?nk-A|KRK`gW~FfZec7qgZto~;1C!r$lwG?9^46T zVQ|*~10fLH-3jilgG+GN!QF$)<$de>s_yUm>zt}nwX5rN_u0KquU;$o?jK<*(JJa7 zpHx(aCg8>^f4WYL%LE};-CT=Jd67G*HO70s4?e$eN${dq#YtyX#goXm0@0?ywLa(e z6kWS)82t(rCSw`kDz}U?Y~>D^Hxzv$viHPEb7sh$aPShC>AJ~?Y47Mva?5M7OHBJR z6>{jrLQ7GguX2Bm!+R(8v$KE$ioC}37D5i^(cSu(a#V*^yW3L;ERByocWysMR#hGJ z{QHzA>6G(k7V)~+W3h)q*LFp{N>*9#D^hVC1}iD`z;gz>tBGL5BZ5CJO*`JgZB{Sy za6$Vf=L5loW>juGT=P#pBY8hNZ)K&qR|8@3-qF^48H>8ivloJLzccU4=q@@-dSWu7Poz9=M(Dv`R#fb z>-G0p4L|MU8vEiM-*I~gDqwmWEYo81o~FOFnNl!{y4{iAY}Ne#b9}0fo6xxii1ADR z%Q(CLH1b{o&JQ(F?3=^_+>dzT7`K#fX*a3kWA6>PZu@#G_)EZn$< zcnVn_o%@Qa|NraJVcN^F9}tLagu=A#S4~D>bYQBUke1K;sWEHg4`{fL0v;F9g-LpT zlb!dn(m6%xP)+RyoRB1(1Nc1Chwo&m77p5+B2w(dFT9w8dr`5tXTj{$m)}Qn0z5Hx zuIyryhWrkdP88|zm;ApKnPOXfT{wtt85W@o2AhMqsJ=R+D7)X^9!(fH-BnpF2-k78 z2(VjjA&E|~6YJ9?VjqC_y)2Ko%`T!n^#I7DN?~~71WHp89d_>s){I=5esmKW-yck1 zL8pGQ2-*vi4~C*xRf@;pHTS}p_qhw~v=tTvei^NE>g>vQu_9d1MdrQHAXIGSK&CK$4M!QI0j8hucHggJQF#&>6LsKB=dD$p=Kbo57Ua zIYVqX+^&{+gBYcm;95OK>q!K8Yc*GwMc_ke8o}IWemwCJqY79p78MnzzLz0dAnRZ> zBISF!ITF*`=VL>$HNo7*-Sb>bD8{S?Gi8t(Wjx`c&nH`o>=m7Y)nTVVWsL49s5>j= zl&w(M#Kcnr_R_f{IP_1XaWURU8>pn(CBwR;cy|_pw81AFJq&-C+3=1osLVBCXR+v3 zT(sqPP&Xq23zcEEcCnqu6oSibF^Zi$t#pRZ!X;Yw%Pu8;x4aNsZ4RMopB*%cwHzwj zpes)p@+Tz7&^U4WT?wq_;1_i)UB}8@#izE%qyx2^1SU-bkV~P)riNuV9R|T>nnt@|7HR<_=!rd6 zzsqRLM~b)cV`16)#@`e~uIix^oq6r1R`F3mw7>SP9L~Z5&=KAguiRa*5nQ6SI~m#< zd0-#+(9kECf29b!pVT>0!BEhXAPMJ>2!W{xGC#P>H%$Vz1AoWavC=fO(K*lL=$r44 zFG|iFf)8Mc{&vF-^Eo@Bvmd@gVd|A)5N!b}%9|D%5*c!y(ogz-@?Gx!s<-dlHUMD! zjVs4*u6fcsL16ekHixpY(UAF>dAjyn@f7jY{ojU!X9+??{(b*4j_E}KqK-+il+`)U zQhOlnFaz1rT*}4tbc3{gokReJk}zL}n6sCK#qMXSLUv#Sfq?Wq*VOCHGg|NSa^s^M zJw=mGy~F)-Ta$o-qtWZo(Mzc-t3dM=D^}x=JL(q}nww{P;bXUl;bLmLXOs3*itm!9=rG%hABJ`GT<84!L3Nn#DTPNWri$D$1_AyRF(=g%iWl7&Mf0nn)z;8N1vXu zyvN0m+1<2tzWju0Acly{glHZ8OEj%xf>_uOV`v zW@pGYmLnsa>@m*^Ro^@RTe@;{4&;S?v(BXAnEs3jhxoo~1$yo3goZ7iSdUl`fU3+s zC5NwK#qLbDx`Utd|-Ha`^-D!>%2cVPb zF{?HuE1}FtFs}23my;u08;}BGqDwJ#dT=p<0T@)&!d~O3Ta%TYFFC}r9}fGH)~aWL znVNpJj9G|HNJkY#$~ zPD8m|&GfU1F;0nL2~w{qbsh0xkO~GNR#9q5yywy3d9aWIUh0u9(c=woc)$pwHgXtp zbGzsrFZNm+1)-VeP-+<64%Jjs4qts+oOA+LWgCNWrK88+auNWIbk%}9f1Rnhv7mwZ z7+a?ZB7_h=5uSMeGXQRUem=vMg%1LXCDriso`ffjJqcPb1jj*{Q z(clu*HY}|V?ccEjno%Tq$dX5anx&&96?U>=?%u0T2%y-ql4Ogc>5Oa{yJ6x$xg9LBVAz2GTLzB$AwTnBtp~mg4qw<8m;-kA z=l(mhf+tos6@>4#K(1?uI$|j81BbY`0vH^_&?mRhzeiV01Q_E@M21K;TK@eb8Hco6 z=giC-4tA|VqcgpEUtwE{cX|*?O^|U4Z-vxtRL?VEz5;L+&RQesCMOhYE<(kx$pFyZ zuPR(Y=OI28bY6D;zY?}4`x zK=*!X>r{*q9$gD;K|lwf=%J!s7>+2Jf^58f2Ij(2AN9B^{6^|8zC2|h#8KyH*R6|= z#bq*vpji1~FtF7dsaAL_S9=~*arils7JCaXP|jKe2V0OcmBm{-TgDVx!a|M0&pN|n55v02c1SE;OObtL^jjhq4AsH)l+rN*#u#eKpFofCPR=&G1 zr#DBZm13R@Ls+MV0)vWDcJ1&cr~=ZSzhig5anaq4d)%!(>W$`TdF+1#wj9$Fg0=m%Igb zM|I#a%?2U_2Uj?242KFa@8)6HARYJoNhEe6(+D7C$q5xN=%bCKQTm4q;gc{#G}rKR zEtFn-5H{6Rs|NAJvzEckSPN!m2iB_$^$Vnt&x>{Mizo~{4p%EvWA{gZ9K^l|@PoUa1SsCro1y%XOEo@V9$b5{5ke30H zTzml2#3P?kZb|fay!+jcTOj7L`yVUvvWVz45YV@M>06Y}X#K`8Ek^kMl@i2AHf&6O zF8SsRcHkQAwB2_I)(M@}?)3Lh*}yMQ4+94EXq{@+@W)d$ zOsNUFjl^W(V1Qz6E(fUu>&$c?9_KDL{+tB}q-pmT zm99CZKB(<)2&`dpVv}1mxWAUlo*7HZ>Wz(0!lvRQe|f6X&Y#rD%t};5`iP9wocfyP zZ_^Xkz^Ng=REu=Y(LM_t<)iKB9QPJTytLEjPA&O?xFIvqQVpBkL4G@ycY0j;aZ>y# z-!vU3axkX%)4sIemCT-KNWZ@cGxnS$I(nTD69+5l{8?!yX6>=3oKgk+nG4d?Wf6IO)RLET|eD23Dhk&G9ZVqmYu-fu<7(91Ru1W zBQNzXGiy@#-k7y(8|W--fLUUUQ(%2nAB2RUxHj?2f()sey!?w2+u)3}OJO1-H9Li_ zC0kh#MGBEU!3HkyP_}a_;qdl)hn}WcUbWEpznA*emNUh^&^GO?q7eoch1JntJtoE_ zw)=28V4;PN9~0V{f6?$5aFM8-CGqFqMB8GwiWuSLeap!AM$qr zuHn8`g#*9{r3A&xw41HL`Qhg+q!o|6O=1ALDLZxxGA@FxrLpNtOtm}F`8odb6lHD+ zwVL`e^z1K9J^j}B=vi|mV`dt7U!5Eis^cfEte6l`SAh6nvfU5n_z zpG0<-0Y3;`+Sf%mQQah~GV2F~z5xXlw3bkzVbOW^xt#7H8}yz7jh;~NZg7kp_%u4! z&Q0`H2ViIUj0+hARau^SdPMm7dugM<1j&vcj~ZVhWxU?DRr)#{i^TC7%R~cEdNe5B zHpMYP`%Q-eTV~s573+HZHn{Et5*9*Om-6Q)614wwfo2dy<7_lq_`wXL>>W@Nug9aD z#|T%l(8Q{qyErg_z!>4z@i#fXL?Wz|ZlNFgg_!#(oGawe!g4=82DY6ZI>jOK-%eWm zZjAeu#DdZ>L1HfXmN#)}j{7PGqMU$$ue4KuvBE=l;0qshhkr={jTWYMgoK}-G%~(A%uN? zQuv>AF5ZWvh!PZfRwe$^WZZy+c7lRDjXoMsel^UFnJFF{4FTi~0TuOxq5?~Mi>uWo zKNp&De4qy9-;TYfs%A=D)ezbc07;|Xn?F?clgpPZV$MRs9zDh`4M(|@yghD*aDSP> zk1GA2`?hWkBkbg!X&{4SPC8;%@($Ps&VaQ5_}W(VvI8;*P1?t<8CI%kMj>EM0U)qf zDWHJXsdy5T*K|+7lZu9sjK;M=`g_Z$BLPANNAf^7-3yPPJqsIIp|U^W$tHchVZfj- z_SLIa{LEX3YJK@iV(T-iAjzx){w)`mn!JOVulg!u5l46LpoJvCfuI^hK%^oc!DnnD z1Zkd6Rt?0E_>-G|sYp&bH5DvfUz}2=2pGB=H`O?G4J!^3e58&sr2iP?nxs57<&GI$ zLeDTFYoJ_NZ8*3zc74fml6u7!ggJP}?t( z+zG^H6`e%;fOp|wI9lL{_I-+L=^DKE!8M<>!ke&hfQ}SorvsX~LcmKsCi@r7-uTUB zmmm@O=Noo#AGLXq8*^h)KIhYV@oX=@6Nk_*SlKB9@K6^?eOsz2MyB}4#Vq^938Rb+ zzQprR;yZ>0dQ9zcA%bKE!?O0f?<3SW>`35d3mxaJXvZ+C5p~^aqrbZ~N(mJfYWk;- zUQqv2TpHR*Nu4IiVS8K-XL&DUJ(9H#+VU;8Yqsu&V|U_jN922z%fDyMx3g6aRU-nQ z5mLHDIDj4e9LQ$P@(!5A_><8j@3{g#YO{{Qm)*+R&c&*uUoa3K{{xZ;nZ|3G#xulx zWsCj(ks^ZW01yFHNt+eMF%`f`hZK|RejrtqvA!`cq*n9!368|hw8e?~0j4+br_Gxu z2C*l%`*EQ(P5yMk`B#Xk_9uEMpZPDMJk@l=*J>t!Ef^#nJa}AF@~?Gdb?0X>vL0@f z(#K=`m*{L}*lK0x-DX>5r(XvDsEjr4y0~W;ltfG>%&u0=&(HBnMdiUi7`$#Z?&xt? zK9_bS{e|n#5@go=+k=@&v_6Av2d_RkkYG`{9W1@8{vHEwx~GJ_^KYNnUKQ zU~B*acDy`eYzbxkTW78|80N+q))migP?8AQ;@-$JUOeVJTHfGpUnzI_(D3=Hia?^u zH`z~{dIj_=>^93RfQ!n4`aii{VS;0hv>7sdax(xQuB`%4SQK04(V&)V#B4hMnXLVT z%sHf#$;SXBx|uRTx~Jf)tWTuvg6X?z|KkD?8u9}#g;Bf{bT+-!`Dg}Rf}?@1GjD*< z|8T#oqI%JF;TX3AcX%xyf`>k*Q969%X2R;IQ08GSH5zF|r0t>AG~7#Dp#v*1K;(02 zKISR2t7(X6iA){Wi72p+TFLUE1bl0!QBIdeDvy%Ypxy43O1X(gejB#^TG24vT@J!- z)YV8jGzs9Yw+rc-{dwV2+7kc6I6^lcI+s#4qwi8;Wqv48Vpy>ky1N*IocL22bKtSw zO8}1T>HWaDlA(4vftXVl92*>K8)O}&um1!;y+!l;;-%o2IzpmI66>}NM+CGNwRhlu z`OFemMh{gk;31vsbK0Y#_%&GCsQaiK}!WT?VnH>{U_ei~NV_x3oaepE|c+2J-4B z?4CbvSODosmw@biVKWr;Uu46Q6nnc?Fj&;2S>ltYm#^N*+vS_E*oJCGNUYGJlBlJB z<*o}&yarP=)U`3V;SQ~Z=wS^8iSk~)yI!WY7$ldcqiLM~3p1S}@H5F9jYXj|Ir*{Y z_i#|V?iaDMPT%Z!cTj}fQ}Q270M_|Av*g+j|en3~A}~_g7duGo*mM ziY_U-)q01gr%UN!vcbdas<kar?FWg8W zA1Q=*_CIYOw4QVIjuf>9nGR49pl3ZEq!Aj`UK1ZA>Y+z;60cKiOpNspoUH=s&tjo( z5uSeYB%6~H-DJAzm6}>QOln-@_t8Tc7@VLMim$Hu0Yf!W zZsh+@O(ru30+kl%p)(yqC2!N@)L@;bNDzeusmz_#IhFZP2z3)CN+G~^MRmGt1RAWY zYWkH6CE-q%P9+Lm`5L1g#a4WCOP!q3O~xS5%f^qrPfrKZ3O$4zzHSi{T2fi z)WgNPHIR8x(XO1^x?2#V5^HUxQ7V!fU~DUIA; z4EWoG@5X1~dEWkyeQ5Q!g7iVjpM{jlWbtFJx~P$OyD0O8;%kiMO&r54XAMZES8bHeg-0b16FvJ#oT7JWwssuf5@C zF0WZ){cAmnZmr}vOS5A%p!>KSLb~#q_9;5ZloY-3T#eo_3>wAw@2&HV3)vTY#sbCP zsC~{|*=UoB@5p6eg=}?E#0n8{`z#mIAr-0Vq{5W{?Z;gNP9dT*Vx`blNwnc#mW7+H0q4u@QrdvW`@8=ACTy!H7(x9``5FUb81=g$k(mba$y5Ckq zaGqyVAC2&mKQ;BnM4ll1SB}b&?O&HdPP~1Y`WC&gH}RTkPu6edHK9fw;k5Id%ltlY zWwMTRJ*#Jv&wl81zI!$jJ1UZPwj$X-3$5z$*3(JS{z_gOlfJCib%M-}BOUaQmltWg z5}<3{be9>KY!2d7ub2R~f=~#nrxlaYa>P~HCJqSzBiOCDtpg!8)M;ZPQ_~G=@|ifr zIQ0qQ7KG>P=+LSF-M4{%{}E<*-1C}t(})$*O}VbUHZkxr@c|@VH}%8O9VE@EyV+3g z{%Ga(EK4*&`6h$*-+F>5Q6CO@dJFSd4i%e!=L7SJOsK^Df&fnE`lZrF=yqcJ^lE^^ z+U_@Rbu7!@s)i!sr%QXB(s-iRjpEnnfOpt36YuhH9i&)jzptm>oJxIa!pHv(8d2=( zh%;ntk>Y>jo)Oj8Zq+>;sjsh}ofRy?-@c2wJIue;Obo;~LXLc+Rw7B%bf zdcJg;iK2g}n5x7I$n@NPWdd$0Yh}0=ZNrtg3}m>8bam<(%yqK_c|Hb8#KO;d-^&dD zhzE~fN2+G-@Jw{L(*>=2?qdMy&!zl%C{Cyp5y0daeDi2fh#-y=8iv%p%}323V->{H z;4#)@3Hz-AgJ&Ec2m}3jLaB5#`}+<|TaU!Ss+jwEsd#Pq8d6<^^cKI2d^#MU(>mO2 zJo_>KY`cMHy7X-~Q6)6X;?iqV%f#B?l)&&{AB5RCniWz?JJL z`ltotYphufi;vNZ)}JyJflD!$UR_Y`i>}&Zch4NGS4#hV3T8@iAbszn$%YMgF&+l2 ze9?jqAyD7BAr*mjmUN_AeSuxlq*_NEf$k$#7d`?3R4Q6W_dN@(0Rp-O7_YL?seI;c zBbsgl=gkumE~D^Btz}&UkgHeFRd~rkh@cimD2f!#^aSB}&G=3@=Mz^yZWg2epj{*t zAO>Aa32&9zd(4p2XUR;|a+lV2H#W|mX~v=NYCxL7i>;z)>O_b*JNcanst_Z|j~G8@ zf{g#ZDj~oZrE|5=EyqU5;L&tlB_G@kW&V5buFDOS9;Uy47^(j^JNxh7S*On~`3KoV zaZO(`Ht!vso5r@ukkV98SLFjDm*|+Q1G}6l3_;fDAiZ zm-dhCr5vxR+=+QBNyMLyYdiV;+_?1BuF=*7{IeWrC9DzbcCbRvczq7`U(NP@dj%a?r{Tb`fw z0>7^tI6izP;n&9vRF&L}v0NO#{7ib99 z4_F^hynzWhRv^>E!^4MZwoa~@{LltQtRV`OfPo}Fueb256rBzcxd-c<@1{BUhx z!`iJ(9C;DY;fppoc(yErUfh%8{YS0|E9O2mG?;JYpq2YEWWS6=RyyWO?afS;P&_*$ znablVh1bEG1#QzIPEQab4Dpw{NWo89v*SM;g2!L(Oy5T})r!Zn=i`y@FmS&_T;p-4 zJJdU2AfWFimSK7yTz*wSRI70gvEh%$l4R5!hmwV-#+Tl6qhMji=g!(iQ#4*)ctoeh z^9`Lh<(ssIs3^Qc?A4Hz9-z==*Z2Pqaa|XzDmK!Q0BuowfN?NB9c+>G-wrmYref zpNthYZcu6Lsy#lGVmWQ=>xL~09WNOHxN{5k-~TLF&B^G0#}o6mm!syt&BO(A zY;L|I-N;hS_{9d0a|2jra*fyE3g#ZINv+pTc#qf6?9{(W&(wErp8`#5k6y=LD^KHT3pkC30V!$^}kyJcEdXz>W7q;yN6g7841+Zv@*7C;4GEKNg#j9x93X{xJD5Yq{QvfNquSj~ ztmMNNveV`I2Ofn$67)c+o{-SqUONKh%c*(wUS_sP|I&>SIbV) z;UGuX-HiH7DckGH5Pyy*pXWaKy3`ZFgDu<$OWeqzi;j)sA-Pit+_%m9^?4s}XJgLH~T3(^YI@{&;6zp&=>?jcEWt8~62#Abs1l zt`>ewcub#g4eizi+Ovb^@DZIsT?LvKv`uF=qcE6v+3`z_T$Vi@KAuKg#}TT>e5wpB zpsiaWB#1{g%1fDCSll@Tp;FI@R@EN}2sd_56ihF6M_;$2LgW#Dtw9}DCdU!Cnr{so}Cv1u7D{ zmQ1&tGNp&xS;9Z_r6mrRME@y%)Vkj=5Ji%-2ZhRH+2qXhR1AbySdMK_sY(Pd&CdB7 zNY&t74nukIgWmmid5xl`fxgH@Y}X^=V#uJ8xHqmi$<9;Z`Qib>H&pBG*$+Esg^?b7 z?q*f-)wV<*!Hh8GHcw2NJ_>d`_c~v{6yDfX-c$_SqbxJ6*q0Aed?DuBO zcV|BdJ?}hoB~v2bFA?5-ApGQ|_Ep(V9oEUQ*}B2K9rV8D+b-T=Zq7|~nu{Z5SExf% z+-6m;KF3BCorVuNv^)8+t7ubAQUf%JyXww>d+i6Z<4H0M2WOA1j5+R?5gIv%RPECP z21K=3)B8iyS>2MMG+|)r+tCrXZI9V-iGHMvm)BfpM-qIsT>}K+N4~^DxTwoXal5&p zA~Kgpt|37DiWc8$FoFS4I{L${b=Ib@w08kj?a&;Q&z=(d<|AMvXn5t}PY;PX`t|Ln05 z7!+KBI4@fI(BM1ZyDgSBzU2#%hq#R*Q|i{+1~%*5To`Tb!SRRhOJ#rr!~a z{T+b>Nb@-CQlrO+pwqZdm8ciq5&q0QYD`rCI9Ihs%{0uLu5Lx_ zYWH}cahi!JSIRalsy%h9YTuDZk7rQ{81>(jhwZNJe~;JvaxHS?EA^QYiqC3YlC~8yX-3$H;tMHXhH`9*n=@(WYPF_OYNjD7(Q> zS!-)S`G_^WvT($6h{i!*n+*U@upBukD|_T0Y1~XfOCYGAUq*U+S>ow$^b%<;6%D%{ z#V$i1GcyfXv#;B9RpjhjeNdqkb-uftiduG@IZ1M*CpJXO65gLIsBxHIuAVZ_(2nph zzgxzC_McaaZRROQS=+YQ3vH}kCF4jM0ZF)iGT=aC3h3Yk5VwsD%UQO6%REanqqCw( zoSw}FSb5tU6mfK@=v!aeQ(;P|+25hZinb6<%8!pEU6(_OX{MqbT6d+45bk^z&%aEg z4o#*(^Yybx@F!M9*REV@&w{ckM960xBM5nmrUe9iD(#_ynUA#p@i(HiR*17J{T;}c zyg8w@jrRTeXewm<6O6REYLau_sV5&yaivz^Tcq~bjfFP3JJjY{MOsP`?RH_aPMd)f zbG^mhkP|QmR;rg9IdIw!l5e?SJD8PR4N`POcgeC;IH1x+BvO2=H=tnT@F?yX6-W#P z%GO_j)DO_aTE)wCXoKE>Pw$F{678}qp3y0wgo4z{MXJPT#b;=vrQIw4r8#1q_ai60 zAF)SY$oRtBXo8aa8U=n$-P^4tJTO`>mO}~g`W@*eAm6=O1a~E6EJ%`N*hM#kguSQy zcWGPH^6%R=KUQpW7Xgq$EAj!QC$v$qKWC^NJ-*XR`)V5-Ks>{@o)2Qz|LX5@G3s;m zBV|YEehuX?-R3*8X2@QBxxT9PrB$X1okboe`$G>1d$c{TT4#|H^!+pT2-g}&I(Ne0BCG*J@~BrR$|viMrtY>C{V-%xN49 z{`$fB15@zfd4+&^hto#@@}1sX>#pPxqZZ3o@?;Pxk9Pc+dV7zBRU@TMd{=Vp7 zL2!(Z74(Amigx00~UFz?s_u!~;Bb(<*NfRXL+LoaYU;A3x}kbrz@xi1eULM`7o1$%C;f9j!c^%hFj z9teo&t@TsUbU&#S9JeV2m*b2J$U^!&7GR^D@^dbn-)b1 zLsGzIZhot+qbF&Mh zeiK8*p(V?jDHYK&4-;>C?(v^5>RZ1D@$o7_nD1M6%!HIoWF)gLr#IuD@3>;2uPi_> z1oh{J9O}e>ud9l&{GWRLcAj7+i8Gp9K(7Le*DmYYlpepBb_QEf)$|$Cle@M6m!Ntor=153wtE=f~0Mg0V}6>{^cd)}!1w7dTM!5BW4nr^9fs z*q^AQK!CWmyQb*(SqkJ!jMOil*364P_3t(n(SS2?bD?Dth9Y%w`BQNwK!Eu{(imgO zt)X@ZR*0+)FTM9CM(1vsL^H~c7iwsAwSX0Nua44i=>Y^34{6{uVk^Nhpi^?Qn3vB- zU6yEGWxgFNJab|8X(G_>~Ue>g4(^F;XK)n}O>F8Q}oR+a}4Q zP%JJ)KG|TXL+ux90EI~yrZFOXZr>0`eM99VEC6p6~GxO@&Jj>Hfd(VoW zkFNy3x&l?SLt0YsB*w-*2W=OKu%H!fNk6rt`45c6s}Rt7P5Oq0bnXe?nL`$&kFNut zf(4d}F)jY!rutMKB1-3Va~ZkcW1PCw$RkGPf5I7cok)CxFBwpL4OIuKfH+!*o$?LX z`Di2#$>G9(P!4o5i{?1*XU6zyFia>s@KQ>E&Zt5y)6q- zx^cE|!P6o@ic$R#JeJ6XBHh^uhX?b34UH5$6(GQ9VeFfSvYTrqWy{D-7F;dVd(1eJ zkWzu>~Q!{aECH?@9#_nywbv4BxCKv$VtRSwjYR zyIcnIn+qfb@gD#hTQMEy81L;DWBn1K4#R-D?-+@RBfMS1 z;YVX!V?r|-8g8@Prd%`!y^?`2RBs(N#XNp{XL4c?@EMN^DPS)b=9gK-$J?&_>jU5@ z2=*BU5^El%ae`{y?|1Ej>Z<1eBDL(pB!tGaVCypIMg4I!FP9w?tCd;lr4AiM8Lu}? zP}Dcpd2-pII|s$J6b)!0zEKtK(S0G~EbX1Rk~j2yEagnz&MV)J=lt-AHAm6fI1&kg z_5H})@NnqtbKlr|fZiYfNlHExWNL$P{3YCi_#H@{VWp}Oq4Ldh7`P8hPJzuWdjUcT zGqJcJ1Ojl%GD(#tWfWa^wmKo&-}hIW>k`a$lub8UxW5$U$)Sp8RN>45_oRPTvPFG6 zfLLAhB4)IeyzCzpmYcOCepO`BQVhRP2!#yn@!(2Ef#bHShLU){J;#x&if^2+d>60( zFm@~yK>C(Kv^Jv+4raHOAiF`kGTX?xAycHa}d_C*^OYaIw46B94_ z+DgBN110V_`I{EOzH>kcNZLVy{xv8K+*iqWdVjG}hJbr9lOlO(54!I3063iNTSZ_< z$B6)cdbQO?mxxu5luDBgt$zU2^Yw-(Uj0X~@_wZ7KO+UTPeYE$UCtmo1!OxK<^iQ! zmI5N&m+8`{&T9t1kNS$0%@R}Egq=!pm3oJn60RuqqRSUSbJ+iQ{uS%OEtpazb*Fb3rT~_0rkez3LzN=Sc z6ZC!K*uFNY5#rdcvYScvZk;|v19Db=>hOZ)#1ITC3-Dk9Z6p_4;Z=#0@&*u4C-yx9 zz({<30jKk*3h3iB!R8fSZXC8F2Yk~7Fc59+TfAJuzkQ(s;75L%x!|12jsN=aHEr3S z+6k!X06Mn1r|ryryo{5j9JfiWzwyuxO~S?{(m~^%3VoIXeIA-a1{i#Kq!Cz(2do^( zQrdn)VL2$U4nu8PrM7nQaLxaCKgxg`rMABg7;#mpsr#=(KK>9*$gka*c;%LA4j~fo z(fUxTANTK8ZjDbQU|l%u$^~|S2+jN`TejA^36VaveS`ST(?~DiRRYIpE@STOiw=0=lx48TZ7!uwVprjSCvoZw4`ooX&^w4FcnLE`gls-8z~F=%^iw8$;E0yq^IguT5tY z>ifnlX&8TuVlqdylOLe6j;u5rW5I74;61WOwBjcs>W&~ES>Z2@XWcaG@ChQ&XV!5FEgSO3 zS4&{O_~t~Xwm`Z|CM-a|*|VSWyRSNkjUf@5Rr4upbIH_{zwUl^sY(MAC|gl+K-aea zW7JP4L|*S^8LnpZIGE5<*-(abB_n$tP5MF39mGxy`lWW#%xPIV8_1nJjMU1^{AH!~ z=?wrL=TO34I;?ps8dNK3OUKCpEzVh1-YKFxKj^q<pBTbQd~%Fn^S9}2^n=vt{V)Kys<}W2PD2wCMRN;jgx1#^WS!4 zT>R`G|4Pu-KdJ`yPGe~-`kXVfM>`0rev|9Gn0{@`L0ows%g)x#kh^ctOMqP!nEzVC{P7lS&N{E{SdS!sVF8bCBv};#*D_f8w zQ`Yj{>JaKWAb_ts(-Qu3&K=}qS;&!8J_61j9q0hpJI%uy*+--*I99m%cpeE|_HNSe z{L!F6f7&T{QXdpv$)LJlze7n3)7kI;-bMk$I4LO`*S7iUYU2C)6ZdMOQz=VO949tE zwDy$~E$I{jC2-tF4CVB1D5tQk#keoy-)BZG z^uj|TNxIHgBE5@ZQYRg^W)Z;4o7fiW2|*Y{alO%YpJ&cA9mnddbKH&ax#U2yrqqnP zsZ21(iK|CEA2i&CEF3tI^q}InEw&B7vG}MS+buQ{l754La&I)1`jl~b+I6iT(&8>6 zZE-)qv5jpAsZB+90qZ~jnmb5c-PaKG%?26qNW3qn=)aD^DzT;5c8%XuO(JsMo>CWi z@6J#5SyfTF|0uLy#ip+SMp&uL;$MPJqgn~gahmlT#TE9Vu46MITSyh6V(U+HZYC$(t!|(0#r>ZjdY8|5thu2;s zz79vX+x|;7S!#z*WL$wxaTPMUGq?YU7pO_B1f8bZ?F@B+4GhbVIk%o%A$PCcCRev_ zJ%vBG&gHFILBF;wWn2Qz1_p(!Op^bz(W!M-o0!nbY(@+EbXp1BF*ryRacLY9V3<5< z2-E~Nd&O4s(tZ*FhKeaG`3w;3ihpY%6T>mOV;(>p$2=5jP3}%>&7YsRuQZP|PM`F- zY1{@80Z%JIGY?#?MY~0#bHcz-XD34;j)I_$@@%iZoEi63IjY%R|0(z4$J`D!S!SYW z*A*u!TZYw&^-mv&zBj|j#ZjOxpyO2t>xh$P{o4L4-WAsqg~0ifBum^MaZ)YE=aPxW zM8hiCJf(zsC5-(4d}r*2Q|2fgDX=D^)Kd@buLT=e=>*Rm;)e4)PxOsy@ zWUN(Z*C*$x05txn46*~}t?ug9Lvr_OJ7x;G3n9$VCvpuh4l)l_Q6kWa5Rj7!U{3hz zZNK2XrjQyt{tmztV7{pRT>WiB2XZlWe?MF61%wINMtFT6N zF3h4!^`Z`4=O}Wkf5lFhCf|`Wjeo*ng1ql{+!K>3;$y2R>15S%;#xv@-ln0x!;m+5 zjXKj7Q-^fvHcj-B-KAPe+h3qqVKi8jrdpRS{kgCfbPHL?cot34W>C=w>zMoIU z(3x<#;%u8Sw|%_bGyHulb!12m1#c?$=B>$4_tFl2%bz5=Y1Eg?iv={DPG#UpZG}ZQ zb-lh;MuV_8Nq&SYF9qCJjfNlfW{K||v^O$+7gC;hV4aKG!KsXY`$uT_(A~^0qvMH0&I$N2#zalS2G%5+C4@^2PZaVp<3|Am7GmYquXU9 z*LCi7=g^XHJIUG5%M;eYF%DHNbOVD~vqz z2iGb4nclsLsoXphvmi#3@aR(4d~;x5?m88qH8YFcU`#dFg@Ih%US8nO-vo(KOz)3d z{o*~XBlZ(q7L7}S_lZ_g z(b?m#5K%9&oO&SZHsauw3k&+mFX7bz{2nIZavSPSt59S0$N<_xaoC-xXqheNNEt1I zZK?w%g{&X(;W$BpXxG|trg=^L_w2fo_|2ln*ggg2tiDfp2(1w`jddFQd1iTxZeJ+w zxv859Vn)w=3Ha}9UQw=Ss;TihqzppfsGgajyOZk(_e`!3>*)J15aT~yaVTY7E zO!3Sf{yNc@i~Zwt!bf7N$((FKQQmhhr#>b+m7l`q3o*?1?3s3ZNJv6E0EI-a1W*0` z4@3j8Ix?EA%_)m0|NUN;vksnk`Ou*<9eE$mP_C7TCy1^k zj5o{kh5 zT+nbo>WrwOpK+<8cUHTju^!8HDz~H#^)&|JOAutG(7%8Hk<- zQQ7SUahHe3s6|Fc{G?_75JsbBAF(FyPI{AjqVf9rsy!y>u4C0*`WO4mIRT$56bhp= zi6#HS>T30lK>EwwKkX8=43EwRKQ_t3iDlZB5Z3FjIX&U872;i?AzCG1qaXWZxf60B zn8Mh37Lbk?GZhUT!(THwzS?Bc^LQcuhq0>+i!y53(jhD$4ZAeb9WE)bG}1^&hcvi! zcPt>?-7VeHuyltsNOy;TlppUG|G&Q{W}b7+Tyvc>&&+*`GHVP0U|&TDqk0~Sf+la5 z@2^M|K%Qj(nWJFV;IxUCa~d!gFTOv>Ip`V}n(7IW1uesT#GL`E2YC`fJ;6AuN4G

    _D1!mibeRVvSzpnV}>O3nAiAYBkuru|Dn^gy5k> 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 U!?9{}?*IS*07*qoM6N<$f^JT{_W%F@ literal 0 HcmV?d00001 diff --git a/source/images/blog/2019-06-release-95/frenck.png b/source/images/blog/2019-06-release-95/frenck.png new file mode 100644 index 0000000000000000000000000000000000000000..babde7545ef37cc7a49648b22a48002f46935c18 GIT binary patch literal 113023 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

    0d)qNZv5{ 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%0DZO~Nb854oFtg;)}qUDCZZVz6#@eY8O&hT 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 Date: Tue, 25 Jun 2019 23:20:57 -0700 Subject: [PATCH 62/69] Tweaks --- source/_posts/2019-06-26-release-95.markdown | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/source/_posts/2019-06-26-release-95.markdown b/source/_posts/2019-06-26-release-95.markdown index 919525c1ef1..3dff91017b5 100644 --- a/source/_posts/2019-06-26-release-95.markdown +++ b/source/_posts/2019-06-26-release-95.markdown @@ -16,19 +16,17 @@ redirect_from: /blog/2019/05/29/release-95/ It is time for release 0.95. And guess what? It's good. First things first, did you see the new Raspberry Pi 4? 3x as fast as the model 3, gigabit ethernet port actually supports gigabit speeds now, faster memory read/write, oh well, faster everything! [The benchmarks are impressive.](https://www.raspberrypi.org/magpi/raspberry-pi-4-specs-benchmarks/) Best of all? The base price stayed the same. But you can now also pay more for upgraded models with more memory, which is great if you like to install all the hass.io add-ons. -Talking about Hass.io support, we've ordered ours and work to add support will start shortly. - -And while we're discussing Raspberry Pi's, can we talk SD cards really quick? Quality matters. When you buy SD Cards get the pro variants, preferably the ones that are [class A1](https://amzn.to/2WYUVtm) or, even better, [class A2](https://amzn.to/2X0Z2di). The A stands for application and they are optimized for running apps, like Home Assistant. +Talking about Hass.io support, we've ordered ours and work to add support will start shortly 🚀. And while we're discussing Raspberry Pi's, can we talk SD cards really quick? Quality matters. When you buy SD Cards get the pro variants, preferably the ones that are [class A1](https://amzn.to/2WYUVtm) or, even better, [class A2](https://amzn.to/2X0Z2di). The A stands for application and they are optimized for running apps, like Home Assistant. ## {% linkable_title RV Assistant %} -Home Assistant is not just limited to homes. Recently we had a boat owner on [Home Assistant podcast episode 48](https://hasspodcast.io/ha048/), and Home Assistant has also powered recreational vehicles (RV) in the past ([like this schoolbus](https://thisisthebus.com/our-tech-stack.html)). +Home Assistant is not just limited to homes. Recently we had a boat owner on [Home Assistant podcast episode 48](https://hasspodcast.io/ha048/), and Home Assistant also powers recreational vehicles (RV) ([like this schoolbus](https://thisisthebus.com/our-tech-stack.html)). -In the last release we introduced support for the core config to be updated on the fly, without restarting Home Assistant. This release brings it a step further and introduces a new service `homeassistant/set_location`. This service can be used to change the location that Home Assistant is located. Once updated, it will automatically update all the things that rely on the location, like your sunset triggers and your weather (only [Met][met docs] supported now). +In the last release we introduced support for the core config to be updated without restarting Home Assistant. This release brings it a step further and introduces a new service `homeassistant/set_location`. With this service you can automatically change the location that Home Assistant is located. Once updated, it will automatically update all the things that rely on the location, like your sunset triggers and your current weather (only [Met][met docs] supported now). ## {% linkable_title AdGuard - local adblocking %} -Here at Home Assistant we're big fans of privacy and we're also working on sharing this with you, the users. So this brings us to [AdGuard](https://adguard.com/). AdGuard is a local DNS server that will automatically block any lookup of a domain that is used to serve ads. And thanks to [@frenck], starting release 0.95, this has a top notch integration with Home Assistant: +Here at Home Assistant we're big fans of privacy and we're always working on improving it. So this brings us to [AdGuard](https://adguard.com/). AdGuard is a local DNS server that will automatically block any device looking up a domain that is used to serve ads. And thanks to [@frenck], starting release 0.95, this has a top notch integration with Home Assistant: - One click install the AdGuard Hass.io add-on from the [Community add-ons](https://github.com/hassio-addons/repository/blob/master/README.md). - Home Assistant automatically detects the Hass.io add-on and offers to set it up. (It works with standalone installs too, but you need to [manually configure it][adguard docs]) @@ -39,25 +37,28 @@ One cool new feature: because parental control is now available as a switch, you

    Screenshot of Frenck during his stream demoing AdGuard. + Frenck shows a demo of AdGuard during the stream. See the full stream.

    ## {% linkable_title Life360 %} -More goodies. Keep paying attention as we're not done yet. Also new in 0.95 is the [Life360 integration][life360 docs] thanks to the hard work by [@pnbruckner]. This integration started its life over a year ago [on the forums as a custom integration](https://community.home-assistant.io/t/life360-device-tracker-platform/52406) and has now been merged in. Life360 is an app to allow friends or family members to share location with each other. +More goodies. Keep paying attention as we're not done yet. Also new in 0.95 is the [Life360 integration][life360 docs] thanks to the hard work by [@pnbruckner]. This integration started its life a little over 360 days ago [on the forums as a custom integration](https://community.home-assistant.io/t/life360-device-tracker-platform/52406) and has now become part of Home Assistant. Life360 is an app to allow friends or family members to share location with each other. If you are migrating from the custom integration, [please read the instructions](https://community.home-assistant.io/t/life360-device-tracker-platform/52406/1077). ## {% linkable_title Improved Alexa integration %} -One more thing… This release improves the Home Assistant Cloud Alexa integration. Just like Google Assistant, it is now possible to manage which entities are exposed via the user interface. And Alexa actually offers some cool features around this. Any change you make will now be instantly reflected inside Alexa. Add an entity? Get notified instantly that it has been added to Alexa. +One more thing… This release improves the Home Assistant Cloud Alexa integration. Just like Google Assistant, it is now possible to manage which entities are exposed to Amazon via the user interface. And Alexa actually offers some cool features around this. Any change you make will now be instantly reflected inside Alexa. Add an entity? Control it instantly via Alexa. -But we didn't stop there. The [manual installations of Alexa](https://www.home-assistant.io/components/alexa.smart_home/#alexa-component-configuration) has had optional proactive state reporting since earlier this year, and this is now available for Home Assistant Cloud users too. If you choose to opt-in to this, every state change of your exposed entities will be sent to Amazon, allowing Amazon Echos with display to instantly reflect the state and allow you to create routines inside Amazon powered by your Home Assistant entities. +But we didn't stop there. The [manual installations of Alexa](https://www.home-assistant.io/components/alexa.smart_home/#alexa-component-configuration) has had optional proactive state reporting since earlier this year, and this is now available for Home Assistant Cloud users too. If you choose to opt-in to this, every state change of your exposed entities will be sent to Amazon as soon as they happen. This allows Amazon Echos with displays to instantly reflect the state and allows you to create routines inside Amazon powered by your Home Assistant entities.
    +## {% linkable_title More icons available %} + [Austin Andrews](https://twitter.com/templarian), the lead designer of Material Design Icons, informed us that Material Design Icons 3.7.95 has been released. It includes a handful of the top requested Home Assistant icons (and a total of 100 new icons!).