From 6451e47133359404345ba726cae68790c05923bd Mon Sep 17 00:00:00 2001 From: Johann Kellerman Date: Fri, 1 Jul 2016 23:30:54 +0200 Subject: [PATCH 001/116] Persistant changed to persistent --- .../_components/persistent_notification.markdown | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/source/_components/persistent_notification.markdown b/source/_components/persistent_notification.markdown index 8ca121d36bf..9746ef22002 100644 --- a/source/_components/persistent_notification.markdown +++ b/source/_components/persistent_notification.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Persistent notification" -description: "Instructions on how to integrate persistant notifications into Home Assistant." +description: "Instructions on how to integrate persistent notifications into Home Assistant." date: 2016-06-25 10:00 sidebar: true comments: false @@ -12,10 +12,10 @@ ha_category: Other ha_release: 0.23 --- -The `persistant_notification` can be used to show a message on the frontend that has to be dismissed by the user. +The `persistent_notification` can be used to show a message on the frontend that has to be dismissed by the user.

- +

### {% linkable_title Service %} @@ -28,21 +28,21 @@ The service `persistent_notification/create` takes in `message`, `title`, and `n | `title` | yes | Title of the notification. | `notification_id` | yes | If `notification_id` is given, it will overwrite the notification if there already was a notification with that ID. -The `persistant_notification` component supports specifying [templates](/topics/templating/) for both the `message` and the `title`. This will allow you to use the current state of Home Assistant in your notifications. +The `persistent_notification` component supports specifying [templates](/topics/templating/) for both the `message` and the `title`. This will allow you to use the current state of Home Assistant in your notifications. In an [action](https://home-assistant.io/getting-started/automation-action/) of your [automation setup](/getting-started/automation/) it could look like this with a customized subject. ```yaml action: - service: persistant_notification.create + service: persistent_notification.create data: message: "Your message goes here" title: "Custom subject" ``` -### {% linkable_title Create a persistant notification %} +### {% linkable_title Create a persistent notification %} -Choose service developer tool icon **Services** from the **Developer Tools** to call the `persistant_notification` service. Select `persistant_notification/create` from the list of **Available services:** and enter something like the sample below into the **Service Data** field and hit **CALL SERVICE**. +Choose service developer tool icon **Services** from the **Developer Tools** to call the `persistent_notification` service. Select `persistent_notification/create` from the list of **Available services:** and enter something like the sample below into the **Service Data** field and hit **CALL SERVICE**. ```json { From 0232ca969c0973b8cf51412dbcb347b16ebac7ef Mon Sep 17 00:00:00 2001 From: Brent Date: Fri, 8 Jul 2016 10:57:34 -0500 Subject: [PATCH 002/116] Added log_attributes to the config documentation for statsd (#625) --- source/_components/statsd.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_components/statsd.markdown b/source/_components/statsd.markdown index 0ad7398e3c7..4aa901f2a4e 100644 --- a/source/_components/statsd.markdown +++ b/source/_components/statsd.markdown @@ -22,6 +22,7 @@ statsd: port: 20000 prefix: DB_TO_STORE_EVENTS rate: 1 + log_attributes: true ``` Configuration variables: @@ -30,6 +31,7 @@ Configuration variables: - **port** (*Optional*): Port to use. Defaults to 8125. - **prefix** (*Optional*): Prefix to use. Defaults to `hass`. - **rate** (*Optional*): The sample rate. Defaults to 1. +- **log_attributes** (*Optional*): Log state and attribute changes. This changes the default stats path. StatsD supports various [backends](https://github.com/etsy/statsd/blob/master/docs/backend.md). From 7798cb2beebf8ad48b508f15511e012bbe0f0a9d Mon Sep 17 00:00:00 2001 From: Dale Higgs Date: Fri, 8 Jul 2016 10:58:18 -0500 Subject: [PATCH 003/116] Fix AsusWRT docs to prevent SSH key confusion (#623) pxssh is expecting the path to a private key, not a public key --- source/_components/device_tracker.asuswrt.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_components/device_tracker.asuswrt.markdown b/source/_components/device_tracker.asuswrt.markdown index b6631401078..dff7ff57987 100644 --- a/source/_components/device_tracker.asuswrt.markdown +++ b/source/_components/device_tracker.asuswrt.markdown @@ -34,8 +34,8 @@ Configuration variables: - **protocol** (*Optional*): The protocol (`ssh` or `telnet`) to use. Defaults to `ssh`. - **mode** (*Optional*): The operating mode of the router (`router` or `ap`). Defaults to `router`. - **username** (*Required*: The username of an user with administrative privileges, usually *admin*. -- **password** (*Optional*): The password for your given admin account (use this if no public key is given). -- **pub_key** (*Optional*): The public key for your given admin account (instead of password). +- **password** (*Optional*): The password for your given admin account (use this if no SSH key is given). +- **ssh_key** (*Optional*): The path to your SSH private key file associated with your given admin account (instead of password).

You need to enable telnet on your router if you choose to use `protocol: telnet`. From 007eb5f2280b62d0e23553f828a678a22ccdf688 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Fri, 8 Jul 2016 18:02:29 +0200 Subject: [PATCH 004/116] add yahoo weather support (#621) * add yahoo weather * update with woeid not longer required --- source/_components/sensor.yweather.markdown | 68 ++++++++++++++++++ .../images/supported_brands/yahooweather.png | Bin 0 -> 19214 bytes 2 files changed, 68 insertions(+) create mode 100644 source/_components/sensor.yweather.markdown create mode 100644 source/images/supported_brands/yahooweather.png diff --git a/source/_components/sensor.yweather.markdown b/source/_components/sensor.yweather.markdown new file mode 100644 index 00000000000..56ffcb8974e --- /dev/null +++ b/source/_components/sensor.yweather.markdown @@ -0,0 +1,68 @@ +--- +layout: page +title: "Yahoo! weather" +description: "Instructions how to integrate yweather within Home Assistant." +date: 2016-07-06 9:06 +sidebar: true +comments: false +sharing: true +footer: true +logo: yahooweather.png +ha_category: Weather +ha_release: pre 0.23 +--- + + +The `yweather` platform uses [Yahoo! weather](http://https://www.yahoo.com/news/weather/) as an source for current meteorological datan. The `forecast` will show you the condition for 5 days, 0 is the current day. You can use only 'weather', 'temp_min' and 'temp_max' with forecast. + +Rate Limits: Use of the Yahoo Weather API should not exceed reasonable request volume. Access is limited to 2,000 signed calls per day. + +The `woeid` (Where On Earth ID) for your location, as shown in the example below. You can find your woeid by copying the numeric digits at the end of the URL for your location at [Yahoo! weather](http://https://www.yahoo.com/news/weather/). If you don't add a woeid it generate it from Home-Assistant latitude and longitude. + +To add Yahoo! weather to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + platform: yweather + woeid: YOUR_WOEID + forecast: 0 until 5 + monitored_conditions: + - weather + - weather_current + - temp_min + - temp_max + - wind_speed + - pressure + - visibility + - humidity + - temperature + +# Example configuration.yaml entry with forecast +sensor: + platform: yweather + woeid: YOUR_WOEID + forecast: 3 + monitored_conditions: + - weather + - temp_min + - temp_max + +``` + +Configuration variables: + +- **woeid** (*Optional*): See above. +- **forecast** (*Optional*): Day of forecast. The default is the current day to display conditions. +- **monitored_conditions** array (*Required*): Conditions to display in the frontend. + - **weather**: A human-readable text summary with picture from yahoo. + - **weather_current**: A human-readable text summary with picture from yahoo from current conditon. + - **temperature**: The current temperature. + - **temp_min**: The minimal temperature of this day. + - **temp_max**: The maximum temperature of this day. + - **wind_speed**: The wind speed. + - **humidity**: The relative humidity. + - **pressure**: The sea-level air pressure in millibars. + - **visibility**: The average visibility. + +Details about the API are available in the [Yahoo! developer](http://https://developer.yahoo.com/weather/). diff --git a/source/images/supported_brands/yahooweather.png b/source/images/supported_brands/yahooweather.png new file mode 100644 index 0000000000000000000000000000000000000000..479ffb06ec3ba4b264051c58b17ef275bbfc00ef GIT binary patch literal 19214 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 literal 0 HcmV?d00001 From 3dfa68390a367dbca971da99855251a4aad54157 Mon Sep 17 00:00:00 2001 From: William Scanlon Date: Fri, 8 Jul 2016 12:44:19 -0400 Subject: [PATCH 005/116] Doc for simplisafe alarm (#613) --- .../alarm_control_panel.simplisafe.markdown | 35 ++++++++++++++++++ source/images/supported_brands/simplisafe.png | Bin 0 -> 3057 bytes 2 files changed, 35 insertions(+) create mode 100644 source/_components/alarm_control_panel.simplisafe.markdown create mode 100644 source/images/supported_brands/simplisafe.png diff --git a/source/_components/alarm_control_panel.simplisafe.markdown b/source/_components/alarm_control_panel.simplisafe.markdown new file mode 100644 index 00000000000..a186d692dd7 --- /dev/null +++ b/source/_components/alarm_control_panel.simplisafe.markdown @@ -0,0 +1,35 @@ +--- +layout: page +title: "SimpliSafe Alarm Control Panel" +description: "Instructions how to integrate SimpliSafe into Home Assistant." +date: 2016-07-02 22:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: simplisafe.png +ha_release: 0.24 +ha_category: Alarm +--- + +The `simplisafe` platform enables the ability to control a SimpliSafe control panel. [simplisafe.com](http://simplisafe.com/). + +To enable this, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +alarm_control_panel: + platform: simplisafe + name: "HA Alarm" + code: PASSCODE + username: YOUR_USERNAME + password: YOUR_PASSWORD +``` + +Configuration variables: + +- **username** (*Required*): Username for the SimpliSafe account. +- **password** (*Required*): Password for SimpliSafe account. +- **name** (*Optional*): The name of the alarm. Default is the SimpliSafe alarm id. +- **code** (*Optional*): Specifies a code to enable or disable the alarm in the frontend. + diff --git a/source/images/supported_brands/simplisafe.png b/source/images/supported_brands/simplisafe.png new file mode 100644 index 0000000000000000000000000000000000000000..38b81353da698a44824f74f4a126d02dcbb79671 GIT binary patch literal 3057 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 literal 0 HcmV?d00001 From f265c43a63596017892abcf24ee01b655f507073 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 8 Jul 2016 18:13:22 +0200 Subject: [PATCH 006/116] Minor fixes --- source/_components/sensor.yweather.markdown | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/source/_components/sensor.yweather.markdown b/source/_components/sensor.yweather.markdown index 56ffcb8974e..5a070f4e76d 100644 --- a/source/_components/sensor.yweather.markdown +++ b/source/_components/sensor.yweather.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "Yahoo! weather" -description: "Instructions how to integrate yweather within Home Assistant." +title: "Yahoo Weather" +description: "Instructions how to integrate Yahoo Weather within Home Assistant." date: 2016-07-06 9:06 sidebar: true comments: false @@ -9,17 +9,19 @@ sharing: true footer: true logo: yahooweather.png ha_category: Weather -ha_release: pre 0.23 +ha_release: 0.24 --- -The `yweather` platform uses [Yahoo! weather](http://https://www.yahoo.com/news/weather/) as an source for current meteorological datan. The `forecast` will show you the condition for 5 days, 0 is the current day. You can use only 'weather', 'temp_min' and 'temp_max' with forecast. +The `yweather` platform uses [Yahoo Weather](http://https://www.yahoo.com/news/weather/) as an source for current meteorological data. The `forecast` will show you the condition for 5 days, 0 is the current day. You can use only `weather`, `temp_min`, and `temp_max` with forecast. -Rate Limits: Use of the Yahoo Weather API should not exceed reasonable request volume. Access is limited to 2,000 signed calls per day. +

+Use of the Yahoo Weather API should not exceed reasonable request volume. Access is limited to 2,000 signed calls per day. +

-The `woeid` (Where On Earth ID) for your location, as shown in the example below. You can find your woeid by copying the numeric digits at the end of the URL for your location at [Yahoo! weather](http://https://www.yahoo.com/news/weather/). If you don't add a woeid it generate it from Home-Assistant latitude and longitude. +The `woeid` (Where On Earth ID) for your location, as shown in the example below. You can find your woeid by copying the numeric digits at the end of the URL for your location at [Yahoo Weather](http://https://www.yahoo.com/news/weather/). If you don't add a woeid it generate it from Home Assistant's latitude and longitude. -To add Yahoo! weather to your installation, add the following to your `configuration.yaml` file: +To add Yahoo Weather to your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -47,7 +49,6 @@ sensor: - weather - temp_min - temp_max - ``` Configuration variables: @@ -65,4 +66,4 @@ Configuration variables: - **pressure**: The sea-level air pressure in millibars. - **visibility**: The average visibility. -Details about the API are available in the [Yahoo! developer](http://https://developer.yahoo.com/weather/). +Details about the API are available in the [Yahoo! EDeveloper Network](http://https://developer.yahoo.com/weather/). From 252d5802a7f45af9da15bb21a59ad1140a881d75 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 8 Jul 2016 18:44:47 +0200 Subject: [PATCH 007/116] Rename the blog post for 0.24 --- .../_posts/{2016-07-01-tbd.markdown => 2016-07-15-tbd.markdown} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename source/_posts/{2016-07-01-tbd.markdown => 2016-07-15-tbd.markdown} (100%) diff --git a/source/_posts/2016-07-01-tbd.markdown b/source/_posts/2016-07-15-tbd.markdown similarity index 100% rename from source/_posts/2016-07-01-tbd.markdown rename to source/_posts/2016-07-15-tbd.markdown From 9ab55effb1a8b8dd603e856ea81bf785205225d2 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 8 Jul 2016 18:45:15 +0200 Subject: [PATCH 008/116] Initial blog post for 0.24 --- source/_posts/2016-07-15-tbd.markdown | 99 +++++++-------------------- 1 file changed, 26 insertions(+), 73 deletions(-) diff --git a/source/_posts/2016-07-15-tbd.markdown b/source/_posts/2016-07-15-tbd.markdown index 3a066b24796..eecc5cf4e88 100644 --- a/source/_posts/2016-07-15-tbd.markdown +++ b/source/_posts/2016-07-15-tbd.markdown @@ -1,96 +1,49 @@ --- layout: post -title: "0.23: TBD (rename file too)." +title: "0.24: TBD (rename file too)." description: "" -date: 2016-07-01 00:31:00 +0000 -date_formatted: "July 1, 2016" +date: 2016-07-15 00:31:00 +0000 +date_formatted: "July 15, 2016" author: Paulus Schoutsen author_twitter: balloob comments: true categories: Release-Notes --- -It's time for Home Assistant 0.23 and it's full of goodies. It's also the release that bumps us over a 1000 tests and to 94% test coverage! Also our install issues on the Raspberry Pi and Synology have been resolved. +It's time for Home Assistant 0.24 and it's full of new integrations for your Home. This release brings support for two new ecosystems: [Envisalink] and [Homematic]. We can now also control your TV via HDMI using [HDMI-CEC] (which works on the Pi!) and another cool feature is the [persistent notifications] which allow you to add a notification to the frontend till dismissed. [Wink] support has been dramatically improved by migrating to the PubNub API. This allows Wink to push changes from their system to Home Assistant. This change came just in time as somehow our Wink integration was causing a lot of requests to their servers. Thanks to Wink for letting us know so we could solve it instead of blocking us. -On the config side, you can now [store your passwords][secrets] in your OS keyring or just in a standalone file. We also got a new service to reload the core config so no reboots needed anymore after changing customize settings! +The [Recorder component][recorder] was migrated to SQLAlchemy. This change will allow the easy integration of other database systems than SQLite in the future. - + -- Support for [Envisalink] added ([alarm control panel][envi-alarm], [binary sensor][envi-binary-sensor], [sensor][envi-sensor]) ([@cinntax]) -- Support for [Homematic] added ([binary sensor][hm-binary-sensor], [light][hm-light], [rollershutter][hm-rollershutter], [sensor][hm-sensor], [switch][hm-switch]) ([@pvizeli], [@danielperna84]) -- New [HDMI-CEC] component ([@happyleavesaoc], [@lukas-hetzenecker]) -- Major rewrite of [Wink] which now pushes changes to Home Assistant ([@w1ll1am23]) -- Core: new add [reload core config service] ([@balloob]) -- Support for [persistent notifications] added ([@fabaff], [@balloob]) -- Garage door: [Z-Wave][zwave-garage-door] support added ([@turbokongen]) -- Rollershutter: [Z-Wave][zwave-rollershutter] support added ([@turbokongen]) -- Media Player: [Sony Bravia TV] now supported ([@aparraga]) -- Sensor: [Fixer.io] now supported ([@fabaff]) -- Garage door: Control any garage door using [Raspberry Pi GPIO pins] ([@kellerza]) -- Sensor: [OpenExchangeRates] support added ([@arsaboo]) -- Notify: [Pushover] now supports target device, sound, url and priority ([@dale3h]) -- Sensor: [Netatmo] now supports wind, battery and radio signals ([@Jypy]) -- Log successful and failed login attemps ([@fabaff]) -- Config: allow [extracting account info][secrets] into OS keyring or separate YAML file ([@kellerza]) -- Core: add option to not filter out duplicate states per entity ([@philipbl]) -- HTTP: Follow Mozilla SSL recommendations ([@danieljkemp], [@AlucardZero]) -- Light: [Z-Wave colorbulb][zwave-light] support added ([@armills]) -- Core: new elevation config option added ([@balloob]) -- Sensor: [OneWire] support extended with support for DS18S20, DS1822, DS1825 and DS28EA00 temperature sensors + support for bus masters which use fuse to mount device tree. ([@Ardetus]) -- Lock: [Vera] now supported ([@rhooper]) -- HTTP: Migrate to CherryPy WSGI server to fix install and runtime problems ([@balloob]) -Breaking changes: +- Config: improved support for storing [secrets][secrets] ([@kellerza]) +- Sensor: Support for [Yahoo Weather][yahoo-weather] ([@pvizeli]) +- Core: Scripts are available via CLI ([@balloob]) +- Alarm: [SimpliSafe][simplisafe] Alarm panels are now supported ([@w1ll1am23]) +- Core: Switch to SQLAlchemy for the Recorder component ([@rhooper]) -- Homematic thermostat configuration has changed and now depends on the new [Homematic] component. +### {% linkable_title Breaking changes %} + +- Migrating existing databases. +- + +### {% linkable_title FAQ %} + +- -[@AlucardZero]: https://github.com/AlucardZero/ -[@aparraga]: https://github.com/aparraga/ -[@Ardetus]: https://github.com/Ardetus/ -[@armills]: https://github.com/armills/ -[@arsaboo]: https://github.com/arsaboo/ -[@balloob]: https://github.com/balloob/ -[@cinntax]: https://github.com/cinntax/ -[@dale3h]: https://github.com/dale3h/ -[@danieljkemp]: https://github.com/danieljkemp/ -[@danielperna84]: https://github.com/danielperna84/ -[@fabaff]: https://github.com/fabaff/ -[@happyleavesaoc]: https://github.com/happyleavesaoc/ -[@Jypy]: https://github.com/Jypy/ -[@kellerza]: https://github.com/kellerza/ -[@lukas-hetzenecker]: https://github.com/lukas-hetzenecker/ -[@philipbl]: https://github.com/philipbl/ [@pvizeli]: https://github.com/pvizeli/ +[@kellerza]: https://github.com/kellerza/ +[@balloob]: https://github.com/balloob/ [@rhooper]: https://github.com/rhooper/ -[@turbokongen]: https://github.com/turbokongen/ [@w1ll1am23]: https://github.com/w1ll1am23/ -[envi-alarm]: /components/alarm_control_panel.envisalink/ -[envi-binary-sensor]: /components/binary_sensor.envisalink/ -[envi-sensor]: /components/sensor.envisalink/ -[Envisalink]: /components/envisalink/ -[HDMI-CEC]: /components/hdmi_cec/ -[hm-binary-sensor]: /components/binary_sensor.homematic/ -[hm-light]: /components/light.homematic/ -[hm-rollershutter]: /components/rollershutter.homematic/ -[hm-sensor]: /components/sensor.homematic/ -[hm-switch]: /components/switch.homematic/ -[Homematic]: /components/homematic/ -[Netatmo]: /components/sensor.netatmo/ -[OneWire]: /components/sensor.onewire/ -[OpenExchangeRates]: /components/sensor.openexchangerates/ -[Pushover]: /components/notify.pushover/ + +[recorder]: /components/recorder/ [secrets]: /topics/secrets/ -[Vera]: /components/lock.vera/ -[Wink]: /components/wink/ -[zwave-garage-door]: /components/garage_door.zwave/ -[zwave-light]: /components/light.zwave/ -[zwave-rollershutter]: /components/rollershutter.zwave/ -[Fixer.io]: /components/sensor.fixer/ -[persistent notifications]: /components/persistent_notification/ -[reload core config service]: /getting-started/customizing-devices/#reloading-customize -[Sony Bravia TV]: /components/media_player.braviatv/ -[Raspberry Pi GPIO pins]: /components/garage_door.rpi_gpio/ +[yahoo-weather]: /components/sensor.yweather/ +[simplisafe]: /components/alarm_control_panel.simplisafe/ + From 6076f5195a2334f124b8fa4923d6aa6029fdf4d8 Mon Sep 17 00:00:00 2001 From: Dale Higgs Date: Fri, 8 Jul 2016 14:21:44 -0500 Subject: [PATCH 009/116] Update sensor.apcupsd docs to reflect changes (#617) * Update sensor.apcupsd docs to reflect changes * Remove "type:" from configuration --- source/_components/sensor.apcupsd.markdown | 45 ++++++++++++++-------- 1 file changed, 29 insertions(+), 16 deletions(-) diff --git a/source/_components/sensor.apcupsd.markdown b/source/_components/sensor.apcupsd.markdown index 2a1d18741d3..c93291ff725 100644 --- a/source/_components/sensor.apcupsd.markdown +++ b/source/_components/sensor.apcupsd.markdown @@ -11,11 +11,30 @@ logo: apcupsd.png ha_category: Sensor --- -Any of the lines of output from the [apcaccess](http://linux.die.net/man/8/apcaccess) command can be used as a sensor device in Home Assistant. In order to create a sensor for a value, create an entity within a `sensor` section of your configuration. The following parameters may be used: +The `apcupsd` sensor platform to allow you to monitor a UPS (battery backup) by using data from the [apcaccess](http://linux.die.net/man/8/apcaccess) command. -- **name** (*Required*): The name you'd like to give the sensor in Home Assistant. -- **platform** (*Required*): Set to `apcupsd`. -- **type** (*Required*): The label for the value you'd like to track based on the output of `apcaccess`. Refer to the examples for ideas. +To add this platform to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: apcupsd + resources: + - bcharge + - linev + - loadpct + - nominv + - nompower + - numxfers + - outputv + - status + - timeleft + - tonbatt +``` + +Configuration variables: + +- **resources** array (*Required*): Contains all entries to display. #### Example @@ -76,19 +95,13 @@ FIRMWARE : 70.11.I END APC : 2016-02-09 17:13:46 +0000 ``` -Use the (case insensitive) values from the left hand column as your `type`: +Use the (case insensitive) values from the left hand column: ```yaml sensor: - - name: Mains Voltage - platform: apcupsd - type: linev - - - name: UPS Load - platform: apcupsd - type: loadpct - - - name: UPS Temperature - platform: apcupsd - type: itemp + - platform: apcupsd + resources: + - linev + - loadpct + - itemp ``` From d56ecf499b6ce58879c0a15ac90d56fabaf03a14 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 8 Jul 2016 21:26:08 +0200 Subject: [PATCH 010/116] Add apcupsd sensor breaking change --- source/_posts/2016-07-15-tbd.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_posts/2016-07-15-tbd.markdown b/source/_posts/2016-07-15-tbd.markdown index eecc5cf4e88..e99741f740a 100644 --- a/source/_posts/2016-07-15-tbd.markdown +++ b/source/_posts/2016-07-15-tbd.markdown @@ -30,7 +30,7 @@ The [Recorder component][recorder] was migrated to SQLAlchemy. This change will ### {% linkable_title Breaking changes %} - Migrating existing databases. -- +- The [APCUPSd Sensor][apcupsd-sensor] was updated. This will need that you modify your `configuration.yaml` file. ### {% linkable_title FAQ %} @@ -46,4 +46,4 @@ The [Recorder component][recorder] was migrated to SQLAlchemy. This change will [secrets]: /topics/secrets/ [yahoo-weather]: /components/sensor.yweather/ [simplisafe]: /components/alarm_control_panel.simplisafe/ - +[apcupsd-sensor]: /components/sensor.apcupsd/ From a0c3b2c9bc5516608a0d75726336be575cb1510a Mon Sep 17 00:00:00 2001 From: BradleyDHobbs Date: Sat, 9 Jul 2016 15:10:12 -0400 Subject: [PATCH 011/116] Added samsung models to the list of supported Samsung Smart TV's (#630) --- source/_components/media_player.samsungtv.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_components/media_player.samsungtv.markdown b/source/_components/media_player.samsungtv.markdown index 87d3cd23c5c..c6eef02d513 100644 --- a/source/_components/media_player.samsungtv.markdown +++ b/source/_components/media_player.samsungtv.markdown @@ -41,6 +41,8 @@ Currently known supported models: - ES5500 - ES6800 - F6500 +- EH5600 +- F6400AF If your model is not on the list then give it a test, if everything works correctly then add it to the list on [GitHub](https://github.com/home-assistant/home-assistant.io). The two letters at the beginning of the model number represent the region, UE is Europe, UN is North America and UA is Asia & Australia. The two numbers following that represent the screen size. If you add your model remember to remove these before adding them to the list. From 3d1e22b5978624cf1f9646ae22f2517cb923a6a1 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 11 Jul 2016 07:37:58 +0200 Subject: [PATCH 012/116] Add IMAP sensor docs --- source/_components/sensor.imap.markdown | 37 +++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 source/_components/sensor.imap.markdown diff --git a/source/_components/sensor.imap.markdown b/source/_components/sensor.imap.markdown new file mode 100644 index 00000000000..54e1db5bc94 --- /dev/null +++ b/source/_components/sensor.imap.markdown @@ -0,0 +1,37 @@ +--- +layout: page +title: "IMAP Sensor" +description: "Instructions how to integrate IMAP sensors into Home Assistant." +date: 2016-07-11 06:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Sensor +ha_release: 0.24 +--- + + +The `imap` sensor platform is observing your [IMAP server](https://en.wikipedia.org/wiki/Internet_Message_Access_Protocol) and reporting the amount of unread emails. + +To enable this sensor, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: imap + server: imap.gmail.com + port: 993 + name: Emails + user: USERNAME + password: PASSWORD +``` + +Configuration variables: + +- **server** (*Required*): The IP address or hostname of the IMAP server. +- **port** (*Required*): The port where the server is accessible. +- **name** (*Optional*): Name of the IMAP sensor. +- **user** (*Required*): Username for the IMAP server. +- **password** (*Required*): Password for the IMAP server. + From 6bf1dbb607a98281b5ef1f1f23b9dab3ee8dbb6c Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 11 Jul 2016 07:38:31 +0200 Subject: [PATCH 013/116] Add IMAP sensor --- source/_posts/2016-07-15-tbd.markdown | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/_posts/2016-07-15-tbd.markdown b/source/_posts/2016-07-15-tbd.markdown index e99741f740a..49d0c51b79f 100644 --- a/source/_posts/2016-07-15-tbd.markdown +++ b/source/_posts/2016-07-15-tbd.markdown @@ -21,11 +21,12 @@ The [Recorder component][recorder] was migrated to SQLAlchemy. This change will -- Config: improved support for storing [secrets][secrets] ([@kellerza]) +- Config: Improved support for storing [secrets][secrets] ([@kellerza]) - Sensor: Support for [Yahoo Weather][yahoo-weather] ([@pvizeli]) - Core: Scripts are available via CLI ([@balloob]) - Alarm: [SimpliSafe][simplisafe] Alarm panels are now supported ([@w1ll1am23]) - Core: Switch to SQLAlchemy for the Recorder component ([@rhooper]) +- Sensor: The [IMAP sensor][imap-sensor] platform is ovserving Email accounts ([@danieljkemp]) ### {% linkable_title Breaking changes %} @@ -41,9 +42,11 @@ The [Recorder component][recorder] was migrated to SQLAlchemy. This change will [@balloob]: https://github.com/balloob/ [@rhooper]: https://github.com/rhooper/ [@w1ll1am23]: https://github.com/w1ll1am23/ +[@danieljkemp]: https://github.com/danieljkemp [recorder]: /components/recorder/ [secrets]: /topics/secrets/ [yahoo-weather]: /components/sensor.yweather/ [simplisafe]: /components/alarm_control_panel.simplisafe/ [apcupsd-sensor]: /components/sensor.apcupsd/ +[imap-sensor]: /component/sensor.imap/ From d8760e23f5ec13c0db3eb75e141c6ec014d71b69 Mon Sep 17 00:00:00 2001 From: Nolan Gilley Date: Tue, 12 Jul 2016 11:49:06 -0400 Subject: [PATCH 014/116] add joaoapps join component and platform. (#633) --- source/_components/joaoapps_join.markdown | 51 ++++++++++++++++++ .../_components/notify.joaoapps_join.markdown | 16 ++++++ .../images/supported_brands/joaoapps_join.png | Bin 0 -> 20517 bytes 3 files changed, 67 insertions(+) create mode 100644 source/_components/joaoapps_join.markdown create mode 100644 source/_components/notify.joaoapps_join.markdown create mode 100644 source/images/supported_brands/joaoapps_join.png diff --git a/source/_components/joaoapps_join.markdown b/source/_components/joaoapps_join.markdown new file mode 100644 index 00000000000..827e587dd66 --- /dev/null +++ b/source/_components/joaoapps_join.markdown @@ -0,0 +1,51 @@ +--- +layout: page +title: "Joaoapps Join" +description: "Instructions for how to integrate the Join by Joaoapps service within Home Assistant." +date: 2016-07-12 10:49 +sidebar: true +comments: false +sharing: true +footer: true +logo: joaoapps_join.png +ha_category: Hub +ha_release: "0.24" +--- + + +The Join platform exposes services from [Join](http://joaoapps.com/join). In Home Assistant, the Join features are divided up in two locations, the Join component, and the Join notify platform. The notify platform allows us to send messages to Join devices, the the component allows us to access the other special features that Join offers. + +In the configuartion.yaml you need to provide the device id of the target device. If you want to send to a group of devices, you need to provide an api key. You can find you device id and api key [here](https://joinjoaomgcd.appspot.com/). + +To set it up, add the following information to your `configuration.yaml` file: + +```yaml +notify: + - platform: joaoapps_join + device_id: d5asdfasdf54645h45h368761dfe5gt8a + name: droid *optional + api_key: asd97823jb628a34fwsdfwefd5384345tf2d *optional + +joaoapps_join: + device_id: group.android + name: droid + api_key: asd97823jb628a34fwsdfwefd5384345tf2d +``` + +The notify service has a few optional parameters such as icon and smallicon. You can use them like so: + +```json +{"message":"Hello!","title":"From Hass","data":{"icon":"https://goo.gl/KVqcYi","smallicon":"http://goo.gl/AU4Wf1"}} +``` + +The services exposed in the joaoapps_join component can be used with the service data described below: + +| Service | Data | +|------------------------------ |------------------------------------------------------------------ | +| joaoapps_join/ring | | +| joaoapps_join/send_sms | {"number":"5553334444", "message":"Hello!"} | +| joaoapps_join/send_tasker | {"command":"test"} | +| joaoapps_join/send_url | {"url":"http://google.com"} | +| joaoapps_join/send_wallpaper | {"url":"http://www.planwallpaper.com/static/images/ZhGEqAP.jpg"} | +| joaoapps_join/send_file | {"url":"http://download.thinkbroadband.com/5MB.zip"} | + diff --git a/source/_components/notify.joaoapps_join.markdown b/source/_components/notify.joaoapps_join.markdown new file mode 100644 index 00000000000..46e3c5e3701 --- /dev/null +++ b/source/_components/notify.joaoapps_join.markdown @@ -0,0 +1,16 @@ +--- +layout: page +title: "Join Notify" +description: "Instructions how to setup the Join notification platform within Home Assistant." +date: 2016-07-12 09:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: joaoapps_join.png +ha_category: Notify +ha_release: "0.24" +--- + +See the [Joaoapps Join component page](/components/joaoapps/) for information how to get the join notify platform running. + diff --git a/source/images/supported_brands/joaoapps_join.png b/source/images/supported_brands/joaoapps_join.png new file mode 100644 index 0000000000000000000000000000000000000000..28fa7c48b29bff93c1a45c17afe6969e199cccda GIT binary patch literal 20517 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

*FYyQ-}Xw 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 Date: Tue, 12 Jul 2016 17:49:24 +0200 Subject: [PATCH 015/116] Add join --- source/_posts/2016-07-15-tbd.markdown | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/source/_posts/2016-07-15-tbd.markdown b/source/_posts/2016-07-15-tbd.markdown index 49d0c51b79f..4e81a3cbd39 100644 --- a/source/_posts/2016-07-15-tbd.markdown +++ b/source/_posts/2016-07-15-tbd.markdown @@ -12,13 +12,11 @@ categories: Release-Notes It's time for Home Assistant 0.24 and it's full of new integrations for your Home. -This release brings support for two new ecosystems: [Envisalink] and [Homematic]. We can now also control your TV via HDMI using [HDMI-CEC] (which works on the Pi!) and another cool feature is the [persistent notifications] which allow you to add a notification to the frontend till dismissed. - -[Wink] support has been dramatically improved by migrating to the PubNub API. This allows Wink to push changes from their system to Home Assistant. This change came just in time as somehow our Wink integration was causing a lot of requests to their servers. Thanks to Wink for letting us know so we could solve it instead of blocking us. +This release brings support for new ecosystems: [Join by Joaoapps][join-joaoapps], The [Recorder component][recorder] was migrated to SQLAlchemy. This change will allow the easy integration of other database systems than SQLite in the future. - + - Config: Improved support for storing [secrets][secrets] ([@kellerza]) @@ -26,7 +24,8 @@ The [Recorder component][recorder] was migrated to SQLAlchemy. This change will - Core: Scripts are available via CLI ([@balloob]) - Alarm: [SimpliSafe][simplisafe] Alarm panels are now supported ([@w1ll1am23]) - Core: Switch to SQLAlchemy for the Recorder component ([@rhooper]) -- Sensor: The [IMAP sensor][imap-sensor] platform is ovserving Email accounts ([@danieljkemp]) +- Sensor: The [IMAP sensor][imap-sensor] platform is observing Email accounts ([@danieljkemp]) +- Support for [Join by Joaoapps][join-joaoapps] added incl. [Join Notify][join-notify] ([@nkgilley]) ### {% linkable_title Breaking changes %} @@ -43,6 +42,7 @@ The [Recorder component][recorder] was migrated to SQLAlchemy. This change will [@rhooper]: https://github.com/rhooper/ [@w1ll1am23]: https://github.com/w1ll1am23/ [@danieljkemp]: https://github.com/danieljkemp +[@nkgilley]: https://github.com/nkgilley [recorder]: /components/recorder/ [secrets]: /topics/secrets/ @@ -50,3 +50,6 @@ The [Recorder component][recorder] was migrated to SQLAlchemy. This change will [simplisafe]: /components/alarm_control_panel.simplisafe/ [apcupsd-sensor]: /components/sensor.apcupsd/ [imap-sensor]: /component/sensor.imap/ +[join-joaoapps]: /components/joaoapps_join/ +[join-notify]: /components/notify.joaoapps_join/ + From cd0eecce20622ba20e3c9d6dc69f3077fd0842cd Mon Sep 17 00:00:00 2001 From: Daniel Matuschek Date: Wed, 13 Jul 2016 09:09:18 +0200 Subject: [PATCH 016/116] Added documentation of the KNX component (#611) --- source/components/knx.markdown | 37 ++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 source/components/knx.markdown diff --git a/source/components/knx.markdown b/source/components/knx.markdown new file mode 100644 index 00000000000..5f552036b32 --- /dev/null +++ b/source/components/knx.markdown @@ -0,0 +1,37 @@ +--- +layout: page +title: "KNX" +description: "Instructions on how to integrate KXN compoents with Home Assistant." +date: 2016-06-08 12:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: knx.png +ha_category: DIY +ha_release: 0.24 +--- + +[KNX/EIB](http://www.knx.org) integration for Home Assistant allows you to connect to a KNX bus. The component requires a local KNX/IP interface like the [Weinzierl 730](http://www.weinzierl.de/index.php/en/all-knx/knx-devices-en/knx-ip-interface-730-en). Through this it will send and receive commands to and from other devices to the KNX bus. + +There is currently support for the following device types within Home Assistant: + +- [Binary Sensor](../binary_sensor.knx) +- [Switch](../switch.knx) + +The local ZigBee device (assuming XBee) must have an up to date Router or Coordinator API firmware installed. + +## Configuration + +A `knx` section must be present in the `configuration.yaml` file and contain the following options as required: + +- **host**: The IP address of the KNX/IP interface to use. You can use "0.0.0.0" if your KNX/IP gateway supports discovery + +- **port**: The UDP port number. Default: `3671` + +#### Example + +```yaml +knx: + host: 192.168.1.12 +``` From 9c01ec7a2112d5d427aabd6b28bd66221b06cd4c Mon Sep 17 00:00:00 2001 From: Keaton Taylor Date: Wed, 13 Jul 2016 02:31:28 -0500 Subject: [PATCH 017/116] Added set_brightness to website docs. (#582) * Added configuration for card order to customize docs * Added configuration options to docs for the set_brightness command. * Revert "Added configuration for card order to customize docs" This reverts commit bd310fbd115c76bc49d994fff4ff3e1a0d0e9540. --- source/_components/light.markdown | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/source/_components/light.markdown b/source/_components/light.markdown index c54acd0ebb6..ebc5497623d 100644 --- a/source/_components/light.markdown +++ b/source/_components/light.markdown @@ -61,3 +61,16 @@ Toggles the state of one or multiple lights using [groups]({{site_root}}/compone | ---------------------- | -------- | ----------- | | `entity_id` | no | String or list of strings that point at `entity_id`s of lights. Else targets all. | `transition` | yes | Integer that represents the time the light should take to transition to the new state. + +### {% linkable_title Service `light.set_brightness` %} + +Changes the brightness of one or multiple lights using [groups]({{site_root}}/components/group/). + +*Note*: This currently is only supported by the [Lifx]({{site_root}}/components/light.lifx/ component. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | no | String or list of strings that point at `entity_id`s of lights. Else targets all. +| `transition` | yes | Integer that represents the time the light should take to transition to the new state. +| `brightness` | yes | Integer between 0 and 255 for how bright the color should be. + From 2d5326644d96718deb8604ead2fe670887f2d07e Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 13 Jul 2016 09:37:35 +0200 Subject: [PATCH 018/116] Add new contributors --- source/developers/credits.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/developers/credits.markdown b/source/developers/credits.markdown index 73f9fb9678a..f1d71ca83f5 100644 --- a/source/developers/credits.markdown +++ b/source/developers/credits.markdown @@ -51,6 +51,7 @@ This page contains a list of people who have contributed in one way or another t - [Daniel](https://github.com/danielperna84) - [Daniel Iversen](https://github.com/danielhiversen) - [Daniel J. Kemp](https://github.com/danieljkemp/) +- [Daniel Matuschek](https://github.com/usul27) - [Dan Smith](https://github.com/kk7ds) - [Dan Sullivan](https://github.com/dansullivan86/) - [Daren Lord](https://github.com/Xorso) @@ -66,6 +67,7 @@ This page contains a list of people who have contributed in one way or another t - [Finbarr Brady](https://github.com/fbradyirl) - [Flavio Castelli](https://github.com/flavio) - [Florian Holzapfel](https://github.com/florianholzapfel) +- [GadgetReactor](https://github.com/GadgetReactor) - [Geoff Norton](https://github.com/kangaroo) - [goir](https://github.com/goir) - [gottsman](https://github.com/gottsman) @@ -101,6 +103,7 @@ This page contains a list of people who have contributed in one way or another t - [Justin Moy](https://github.com/justincmoy) - [Justyn Shull](https://github.com/justyns/) - [Karen Goode](https://github.com/kfgoode) +- [Keaton Taylor](https://github.com/keatontaylor) - [kennedyshead](https://github.com/kennedyshead) - [kixam](https://github.com/kixam) - [Kyle Hendricks](https://github.com/kylehendricks) From 227e477781ff8842ce0b1a1991f01f5ba626e7a4 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 13 Jul 2016 09:45:35 +0200 Subject: [PATCH 019/116] Add TP-Link smart plug docs --- source/_components/switch.tplink.markdown | 37 +++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 source/_components/switch.tplink.markdown diff --git a/source/_components/switch.tplink.markdown b/source/_components/switch.tplink.markdown new file mode 100644 index 00000000000..65bf8579803 --- /dev/null +++ b/source/_components/switch.tplink.markdown @@ -0,0 +1,37 @@ +--- +layout: page +title: "TPLink Switch" +description: "Instructions how to integrate TPLink switches into Home Assistant." +date: 2016-07-13 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: tplink.png +ha_category: Switch +--- + + +The `tplink` switch platform allows you to control the state of your [TPLink smart switch](http://www.tp-link.com/en/products/list-5258.html). + +Supported units: + +- HS100 +- HS110 + +To use your TPLink switch in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + platform: tplink + host: IP_ADRRESS + name: TP-Link Switch +``` + +Configuration variables: + +- **host** (*Required*): The IP address of your myStrom switch, eg. http://192.168.1.32 +- **name** (*Optional*): The name to use when displaying this switch. + + From ee4b4b3dde1c004baf7c349371e27eb119337994 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 13 Jul 2016 09:49:31 +0200 Subject: [PATCH 020/116] Sync with PR --- source/_posts/2016-07-15-tbd.markdown | 68 ++++++++++++++++++++------- 1 file changed, 52 insertions(+), 16 deletions(-) diff --git a/source/_posts/2016-07-15-tbd.markdown b/source/_posts/2016-07-15-tbd.markdown index 4e81a3cbd39..dd1f91b5579 100644 --- a/source/_posts/2016-07-15-tbd.markdown +++ b/source/_posts/2016-07-15-tbd.markdown @@ -10,46 +10,82 @@ comments: true categories: Release-Notes --- -It's time for Home Assistant 0.24 and it's full of new integrations for your Home. +It's time for Home Assistant 0.24 and it's full of new integrations for your Home. It contains some structural changes to our history which requires action from your end, so please keep reading. -This release brings support for new ecosystems: [Join by Joaoapps][join-joaoapps], +[Roy Hooper][@rhooper] did an amazing job migrating the history support from being tied to SQLite to use the ORM SQLAlchemy instead. This means that you can now use **any** SQL backend for the history. So besides SQLite you can now databases like MySQL or PostgreSQL.However, this does require that you run a command to migrate your existing history over. We tried to make the process as seamless as possible by introducing a new command line script: -The [Recorder component][recorder] was migrated to SQLAlchemy. This change will allow the easy integration of other database systems than SQLite in the future. +```bash +hass --script db_migrator --config /path/to/config +``` + +You can omit the `--config` option if you use the default configuration directory. Run the script with `--help` to get more options. - Config: Improved support for storing [secrets][secrets] ([@kellerza]) -- Sensor: Support for [Yahoo Weather][yahoo-weather] ([@pvizeli]) -- Core: Scripts are available via CLI ([@balloob]) -- Alarm: [SimpliSafe][simplisafe] Alarm panels are now supported ([@w1ll1am23]) +- Sensor: Support for [Yahoo! Weather][yahoo-weather] ([@pvizeli]) +- Core: Add scripts to command line to expose advanced options ([@balloob]) +- Alarm: [SimpliSafe][simplisafe] is now supported ([@w1ll1am23]) - Core: Switch to SQLAlchemy for the Recorder component ([@rhooper]) - Sensor: The [IMAP sensor][imap-sensor] platform is observing Email accounts ([@danieljkemp]) - Support for [Join by Joaoapps][join-joaoapps] added incl. [Join Notify][join-notify] ([@nkgilley]) +- Media Player: [Plex] will no longer spam the logs if server goes offline ([@dale3h]) +- Sensor: [APCUPSd Sensor][apcupsd-sensor] now supports names, icons and units ([@dale3h]) +- Lock: [Verisure] entities will now use name instead of serial number for entity id ([@turbokongen]) +- [StatsD] can now also export attributes ([@bah2830]) +- Support for [KNX] added ([@usul27]) +- Switch: [TPLink] HS100/HS110 now supported ([@GadgetReactor]) +- Stability fixes for [RFXTRX] ([@Danielhiversen]) +- Tweaks to [Z-Wave] ([@turbokongen]) +- Light: [Brightness] now clamped to 0-255 ([@keatontaylor]) +- Thermostat: [Radiotherm] HVAC mode now supported ([@danieljkemp]) +- [Google Travel] times can now use dynamic locations for start/end ([@bah2830]) +- Notify: Allow sending photos to [Telegram] ([@pvizeli]) +- Frontend: Improve loading times ([@balloob]) +- Frontend: Fix stream not reconnecting after standby ([@balloob]) +- Frontend: Wait up to two seconds for new state before resetting toggle after toggling state ([@balloob]) ### {% linkable_title Breaking changes %} -- Migrating existing databases. +- Migrating existing databases (see above). - The [APCUPSd Sensor][apcupsd-sensor] was updated. This will need that you modify your `configuration.yaml` file. +- Entity IDs of Verisure locks will change. This is a one time change but should improve readability. ### {% linkable_title FAQ %} -- +- Frequently asked questions about this release will show up here... -[@pvizeli]: https://github.com/pvizeli/ -[@kellerza]: https://github.com/kellerza/ +[@bah2830]: https://github.com/bah2830/ [@balloob]: https://github.com/balloob/ -[@rhooper]: https://github.com/rhooper/ -[@w1ll1am23]: https://github.com/w1ll1am23/ +[@dale3h]: https://github.com/dale3h/ [@danieljkemp]: https://github.com/danieljkemp +[@GadgetReactor]: https://github.com/GadgetReactor +[@keatontaylor]: https://github.com/keatontaylor +[@kellerza]: https://github.com/kellerza/ [@nkgilley]: https://github.com/nkgilley +[@pvizeli]: https://github.com/pvizeli/ +[@rhooper]: https://github.com/rhooper/ +[@turbokongen]: https://github.com/turbokongen/ +[@usul27]: https://github.com/usul27 +[@w1ll1am23]: https://github.com/w1ll1am23/ -[recorder]: /components/recorder/ -[secrets]: /topics/secrets/ -[yahoo-weather]: /components/sensor.yweather/ -[simplisafe]: /components/alarm_control_panel.simplisafe/ [apcupsd-sensor]: /components/sensor.apcupsd/ +[Brightness]: /components/light/ +[Google Travel]: /components/sensor.google_travel_time/ [imap-sensor]: /component/sensor.imap/ [join-joaoapps]: /components/joaoapps_join/ [join-notify]: /components/notify.joaoapps_join/ +[KNX]: /components/knx/ +[Plex]: /components/media_player.plex/ +[Radiotherm]: /components/thermostat.radiotherm/ +[recorder]: /components/recorder/ +[secrets]: /topics/secrets/ +[simplisafe]: /components/alarm_control_panel.simplisafe/ +[StatD]: /components/statsd/ +[Telegram]: /components/notify.telegram/ +[TPLink]: /components/switch.tplink/ +[Verisure]: /components/lock.verisure/ +[yahoo-weather]: /components/sensor.yweather/ +[Z-Wave]: /components/zwave/ From 465944ff8d5efc70c5ea4cbd4f9507b06d89a648 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Wed, 13 Jul 2016 09:54:44 +0200 Subject: [PATCH 021/116] update service (#634) --- source/_components/notify.markdown | 1 + source/_components/notify.telegram.markdown | 25 +++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/source/_components/notify.markdown b/source/_components/notify.markdown index 39ba50c756e..74e0afed95a 100644 --- a/source/_components/notify.markdown +++ b/source/_components/notify.markdown @@ -34,6 +34,7 @@ Once loaded, the `notify` platform will expose a service that can be called to s | `message` | no | Body of the notification. | `title` | yes | Title of the notification. Default is `Home Assistant`. | `target` | yes | Some platforms will allow specifying a recipient that will receive the notification. See your platform page if it is supported. +| `data` | yes | On platforms who have extended functionality. See your platform page if it is supported. The notification component supports specifying [templates](/topics/templating/) for both the `message` and the `title`. This will allow you to use the current state of Home Assistant in your notifications. diff --git a/source/_components/notify.telegram.markdown b/source/_components/notify.telegram.markdown index e2f656f92dc..ee90fb0297a 100644 --- a/source/_components/notify.telegram.markdown +++ b/source/_components/notify.telegram.markdown @@ -66,3 +66,28 @@ Configuration variables: - **chat_id** (*Required*: The chat ID of your user. To use notifications, please see the [getting started with automation page](/getting-started/automation/). + +### Photo support + +```yaml +... + +action: + service: notify.NOTIFIER_NAME + data: + title: test notify + message: That's a exemple + data: + photo: + - url: http://192.168.1.28/camera.jpg + username: admin + password: secrete + - file: /tmp/picture.jpg + caption: Picture Title xy + - url: http://somebla.ie/video.png + caption: I.e. for a Title +``` + +- **url** or **file** (*Required*): For local or remote path to a picture +- **caption** (*Optional*: Picture title +- **username** and **password** (*Optional*: For URL they require a basic auth From d246733e9ac3ba4b801ab701866ae9edaaebaf28 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 13 Jul 2016 09:51:13 +0200 Subject: [PATCH 022/116] Move KNX docs to right folder --- source/{components => _components}/knx.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename source/{components => _components}/knx.markdown (100%) diff --git a/source/components/knx.markdown b/source/_components/knx.markdown similarity index 100% rename from source/components/knx.markdown rename to source/_components/knx.markdown From c01087813bdb0fa1bf2c24b924b4f4afe0967d09 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 13 Jul 2016 09:53:49 +0200 Subject: [PATCH 023/116] Fix typos and layout --- source/_components/knx.markdown | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/source/_components/knx.markdown b/source/_components/knx.markdown index 5f552036b32..76a93895ca5 100644 --- a/source/_components/knx.markdown +++ b/source/_components/knx.markdown @@ -1,7 +1,7 @@ --- layout: page title: "KNX" -description: "Instructions on how to integrate KXN compoents with Home Assistant." +description: "Instructions on how to integrate KXN components with Home Assistant." date: 2016-06-08 12:00 sidebar: true comments: false @@ -16,22 +16,19 @@ ha_release: 0.24 There is currently support for the following device types within Home Assistant: -- [Binary Sensor](../binary_sensor.knx) -- [Switch](../switch.knx) +- [Binary Sensor](/components/binary_sensor.knx) +- [Switch](/components/switch.knx) The local ZigBee device (assuming XBee) must have an up to date Router or Coordinator API firmware installed. -## Configuration - A `knx` section must be present in the `configuration.yaml` file and contain the following options as required: -- **host**: The IP address of the KNX/IP interface to use. You can use "0.0.0.0" if your KNX/IP gateway supports discovery - -- **port**: The UDP port number. Default: `3671` - -#### Example - ```yaml knx: - host: 192.168.1.12 + host: IP_ADDRESS + port: PORT ``` + +- **host** (*Required*): The IP address of the KNX/IP interface to use. You can use "0.0.0.0" if your KNX/IP gateway supports discovery. +- **port** (*Optional*): The UDP port number. Defaults to `3671`. + From 9cae9a78edc01166e09e3afd6dac557c05a005eb Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 13 Jul 2016 10:00:16 +0200 Subject: [PATCH 024/116] Add missing KNX logo --- source/images/supported_brands/knx.png | Bin 0 -> 57605 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 source/images/supported_brands/knx.png diff --git a/source/images/supported_brands/knx.png b/source/images/supported_brands/knx.png new file mode 100644 index 0000000000000000000000000000000000000000..960513c620870727c401da38b9e58b86d3e4f0bc GIT binary patch literal 57605 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%0D&%f?n;X((q zVFxI333V|NJm1NgzG}jMFUy4q1RVhaJMei^<*WL6=E~aNU&ycV2y+cRWczAfnuQud zH)flWhU=_wr5I**tQ!diSt!sBFJ=_gTDO=di-x_;h5Yu*eX1I0!=%&3zW#4v0GPgLvS$)?|vo z;SpZcudh3bw2V`Eh|G@5NM6x`pI4oQ?K|kznJQqus4IKyZ;_CxBq=$YK-I_-*_vJ2 zsXr!P7L5=6lNf8}FOO+Q2yw_2gdD||i%515FWB=kDj?*=fM0vEE*p&wR1|KrPMJ>G zo%}IEP_$feH`pvs7EjTlZS|PYQw}NUEwNR-${xy459s z`c_oP1ClLw0o8y9uMc(~-)00_j45oAQqy9FbAc)oTh$y9aukZ6S9jZ;EnJ%D+EBZK zK-Md$J#utQ{hlRHaD(SQgfZG}4<7weVKtpA*A&{v8O@*CMK70vBaWX~uZ%YH2@H)A zXgIodkvxH}uvIErvcA5*h1M6YVm^arS@=^Pf*gn?Q+;_tP$k$Q##SxJwbst{8hwB0 z>~{!n&EBU{D)tC#ECd=)9x%vqk|jb8-_?sLsSrdGtBf4)yw4D2&wY0scJe^BU*WL5 zEaz&rFEk)Ie0P+xyH8wq)R)zLDuXnhPi1g8zx zA&Ucj5b-RcU&EjNI2$HldGDltjD$>eL-Iz>WsW%HcZ>xqujSNxTV2;y6Rg?QL1wgh z0&^)caHOD06kWY#O*Tx^9IU{k8sE`cV`1hcc0(drNnN@6fHXFDFGa3gBD|gYmTJZ{ z1VK-h$kx-89>yN=`o=9uyjA9fykSagW@L+)T!Go}U}LZ4Y3pNNLL&ocBt(LIl;yQt zDStb&<&P-aC1#O~)wa>vujg;d8p~^4q+txgdrxA77zFoJqsi9Ul5oXI9S|`>o%k_+Z5wlS6`wthDJdo{5c$nzfcX)HOnszJ*}8q)z3e& z>@qIPc9ewKkUJO-KWVFq&0UJUr4lSoKV9AA>=*0*Du`MMJ#$DzrA$wEWSOwLlL&Zc z2l`;B#a7;4wmPcvMwe3pjkh5YcclVPo?n&93uU(Glgj(BnHkwEAvIR&zB+*Z1InD~ zuxy1fZcb~+5P3;Jfm9QkaPlsrJVI&1^dpkr@~5zKx&&QBr9z87OB7G4g1T}oaTVjx z`xYVr2M1fTnSu0iFWSbki5Kypi8u5--FzxR>&~ktMLb8vR}BrF=5`fFi1tDA(dUbIa>=+`=}w57xZq4 zM!w?od@SygF+G7xhff=EOo^EC*)bc(cV^WWpUtCPV1-Sf)m{AR-TS8KmDuFt7BTDf=1n z_a{fsWt?{k3&i5|uY zK}4CN#no3(M;DA0LOvzAi|?WL`>btkFYyFqZ#$N(;GYpvl|0i8Mi~RL$DpJ@hYAsR zr?;Pn7BoESJMXm`n0&pMapR&2f@Pw`Bz^JJdLSRNWBTs~B$=lXz2jqif)3q~U@f-z zct+Rhc?9}ABtEFdty>oBT$}A!c}bllpT+}rTZZCVbeM(vd+SfV)-a&7yI1RCNL#%e zM9?VLQY@WDaUuY0nv67kP2@r2a(CvR_p7#oNrvvSkywM5*TM(EYJvy#E;nI6UgFq? z3|;9svd~-}@4p2@U)mnBrgFOOczL1)48w3u*oB#=mJW^Y0JmX^0=Q=VyxaYu+>&KN zzC{dQg%`*fL)*bf?@hh+^-_cAwTMyI-2$hM3@|V5MN}v>Phrf{8r<||b^J8^_t3o% zMs1Q;Y%%K#KM#$up2*Y*R7cg1osya?ma^~?asY#1LaV8tF*gq`=QKrNu%zh(jANoKYp)CdVZB|e20<}HAQo^)#I#xL&c#)nJ5LmCFLc>?8nAbm&_#N#k`e2$Ib8t<(gUszDFv=P%y*ZiQAPu z!G~|-U-Sd_5PIRX?CgwCY}T%>SQcSjnhZIZL%)JB#^FwBvkt_1XgryjKO-%wt;J5R z`o3M~ad2EgYP8p9UE(Kozr$3*9dVt+Kvl~SMdLhp!5~PbP+X!shtN?(}tjazi1&PUc@H!Bxy(4dJ#8^`DZFG#Oxry;#cB`Q15on zl${O`^H$k=VX#|$g%*dx8$B(le8H`qq2knFzT5zaMmcfPGn?)=O@em-C%TW&w?Hq2 z@q6;DVuSu=Qe%3D1HNI_wxXxOK8{H2q3^Q%%;z)1nZ_T}G?DS32VdPT((1_^-cu@l zP1BroB|9z>LgL3mpo5s<{g-I1cR-V|gXAdGJE*hUvIO`uxOY232u@JhFKo*_JzrDb z0AC1b@VXe}GHC6sUZqdFB1-B`bFbQwD>t58`h-;Lj8LcRTn$tL@_e9DipoEB-cDE5 zI@JlMw3Ztt93y+>Y%wA9%4AySK95mJCf2ARhWBm}wW&aZ+67^#0B`b*E_4aVv^$6a8pE6AqN-JQ*)x$^ey=hESgF?VO`xdB$DC=g05IVAT zMDD_%+j^!>O3$(#`|IFF0_yZRmL*ES(lNX^mjG z%k`Yr(V4*Z10bO~e8_`3LqEMRqvu;D!_XAMuDgsdh8cT~1LvZY^B-s#NQA+47Io6H zgXp(IO~zC)4$x`%DEae@&zSU`Dd7AcXloHruv~-*`a$;Ij+F+Aa((cjm_V z5F&vf4DEY(k?1~dPOvP@w1l`+nG;Or*bd;?y4}yyU)1e4#)c|{{Cj2Xo{zon>)jsC z8ki_y6w!2>>k!|z&y4A&KTP-UDDi+0G)jmFOpWB70sx!KErbXc`riU3vuv} zruwHDSVkg*Y)+aZQg=jr<4taT4{C>D8EMghoxRQ4)`_QJ#cY6w7V>4-T~5@xuMUUr zrJGvNNTDO}WCH$VpxVYVvnD7_>okiRJJ}$fL-Y$;$x#ZEhPl&Vrx8Nme3J5xoQvMq zes#G53rQmk6=J|{ID;}n;9Y5CuQ@0N_Ycl0`#aJJz(oG0bzBwkGs1$xJ+jl~uRlZp7{TZU z2A%fw;%0L12=B1ry+^tALORpsuJs$32~E;@L>6g-F7zET5KP-6uBLJ?q${`hM$Kkr zl_|0rZLPjr39r#Bn>q8cpLZLeOo+sC6mk35Eu@9Do#_I7p@{11c~TdSrx3HV0}3`a zgN3}Hg{KR~gmncj*R2UgaSJ-$_45~1TeO`Be^3JBPJrTwaGfW}dMNF*_s74k@FoYQ z{Z!bq+6m;M`>r{^8y z*;L(+p7KDpf4HA2DoqKR?`GdkJ^qe<4&L3I%dUjkaATK6SW+RB@^hcV`?JKzRIIF<&gyeYVO(y-FrPceOJ;QWhd1}FK*fKezSd zwutv)Mu-v+@Bo+(eKZeuq10;pu%Q6K*5C4et3bk%8XLLEy)-S#xC>Gk{)w8>47+!CIVMRAkLO zmwcE{y>>v@&(L55BrUFzp@dSNqeQ zfxm*MF65m#)X(0(n3d)d zO4N|)lHD|hB3y=E6tOe-c4;{`szKlO<$?RZTVWSsUPO6P?CuKEmKbp~)sA7P?=90G zk=r`sM$mUy{7@m?4j-(2aN*Uezf^VUy(XYUC+vToZnsnFg2I*tg`mEL-b5@Kh@MAK zZ4QFnMO#c{bOg-%Ys{`?rQxrAVZ0tO>~wOcWuo32FL0a`c1AsG@DXGs%)Q|!ThCip z4{fnqH!Q7hfL05Kq1gEgxF&Oew+H4fn#$1u?gYZS96+od{?4PU6GSS+XEkd0rmd{>0Da@7w)O^*#}ij)T7U%=|^50Bg!s z{WPONTIyF6M(gNBk-FRUJ`2YOQ>G4&<0t~oSrmy)wR&2Lpy!viDE-4g?hAPcaWnrR zCD4-XTDNwz9*4RJ62z+0yjkpG6UAKWs6nT{rDM0q#kpnlESW;7+8;EREpVAsO zHh{hu@C>~Rg72E|Fn5?Y^~Mcp9gwkq&u6$`tU)oy)P`K1udhq$55Y6ihK9RDC*vCD z2uf9#^;RWd(+D<8gQdmx+Ktcrzr5L6&WY=gE;ljON{BhRGkzVOs!SI;>vFKOV=_D0 z-A?bP%PVr}36ZZRun(J}j<7i10;8ybIcuy1W~p=;PKj<6e|{@9^Y(BQgdlk+$f@bz zb*f=tgw!kSv4|__WWi@1$Alu@#ebP+i18e(cy(UnLC{Fv1(qXhFxB4FXy0}%(u70` z)(G?KELZPs)_82^74Qh{Ci&J)s={sH=~*rgBd-8 zM($kmNiEovSSf zOh5pkCBstB>soOB4Gyr8c!0)L3iX97OPOKd0z68Q#oSiEbDf1@J5skHC*RlL+&5y%(0wdk9=xgLG_(TGPr!~()4}1# z=fo8JS0s*-ziuL6C_(&?Zp6(Y-fE zY3Qy&n(s87e<5Te6U9TTjFKoe+Gef`WL5Y?0T6u%5 zCkWvZ{t`_Kp-1a(I|aH5(SOm2NDH2rn{ofRJ=ktTGRqBoJFO}4qbIRWcYVFf6^!B+ zoZca{NO7j^mrc%S-#2ZB)<~rWMjD;+%Kr2Tao_H*pqs=B74oZATO!J0=4F!uJ~kJ= z_Gg&ZAfq^Cx_DD0k8SjXEL@88+*SHKgg5HYx=3S_D^>UNmcEaAX^(6EHSXV$MgQ8Q zqjin^mu|U+#7u|!Z)PPz+PZ#LealN9+#Zt&o$<2yQcGnEPtO`sz0z`aT%gvH@ z`@zPZKZ(y>qh9O`AB$DII-l+`>)Fvw_q!3|fziyYoDGRtmg~0}<)NBD5H7gkpfiK6 zF?n4csE`^>oCmxM^0sG2jR*Hn|LKEGbA9WT_%9#aq((|mM}dpPuPd8@37~xZjJFtWUCZtxTB z0SWhpF(SKEhjiSCJvJ(oh zcDYHCb4!wNb$$Nt)JFoWxEVG%yj>^4wDf0|SZG1a#-)@t(4r)N-Is-ZjDdYBR>)nO z^k6N*{ETTM0Ejgu!+MSe#$W)(m{rO+t|4@QftpM$YbIyz^j;XZ*vNr(yhZEwp_7{yGV&zr z>Mi>(w!44_y*{yHBf0KTe-Zo{#z&su zaTfzWhoQ*&9Nf_7-4w{hIgbb@Ne-SW+&???CoLK^0;6y&z8in(>$nP*tQMM|-~yL? zU}Mdl^XwbVwg~7duusIe9L8k}wuu~eWe z-@P7ANN==(cNwqxO21y&WGYHI<_`rkFHf*wrs=QFTM%D5%EayAO?|{;DY6k(V2VMd z^-pqvp%|cm%r2~~oIXqBWto$e!1iE>vNhab4GZt+T~`&8w>Lj4Z-cLv+yEgG2szzF3=p zv90nTTy3{8;++&hni{a&Pa7`YKW`7Eco^jhK~WO&WFJmCkxz1GHFt20Z4beT0V{PO%sHTLSnB+mxdm1{SMD)|7?_~?2m@TX5Hm6l9NeL`mLGc z^hoWwwAvot6EtJ=F5>dbudvSR21TqNjcBUYs!FdBSR+2`&WkrnaZT@n zO~M$}Wgl&nPdk(_Oay`nPd=Nf@W#+khv5>46=u}_f#=>cV7LAZCq;C0?h^Rdx_ta} zEH=P{J&Y4qK9#8I#l1Q04em|2C&E0|3nbvUu z*pmSsMV9q-CzNr^#s$mLRJJHap6mkTzJ4}K@0tE(6%GAv%0k&I#$+r*_FBtJDxhcK z#%O_aDdec-4FBQ!$qI^#qd23v?EC(W6I4!d@XJ@Z=%5zBnswKAKP{FuOS1M3B@dnaR?n1Z@Gj7UIed zFSq=W^%F%`87U)v&u{95)}%*QzPF7_E>aXQ|E}=6!W1u~-OB6#ZkIFvbCh{4*qB=O zQpVIysJEklTcC*-IC-A4mY2UjQ5aVq1t-1g{|6s?pPzcUT^|v;2ms{9RK#6_?;UfFyY&f&qG!i?GufJNt zueFcRS>l#`VklMe&ti{mkMhHMw9{GF`L0D7x5+tqN_)7yO&B;EgA)D-#6`Z*avf;k z+-Qz)^2`Pdtfw^v8ISZ0?fbzmUGNa(8?PN}GC&TCR4%k5>}c}PspqL{6gbU8T(TrLQFu|=&+sOI(^ zB2?lvEm8yJ++|Qc+JzO|1+pd~Kmtv;g^H8<2jC|>p@qzz#m*rX`x9o2e+_Uo=f(HY zxouh))X3X4EUZL6S;+XM!s#%SAgGO*HS1&TCxO-P`LnyQA~tKu zb#U^F+ZC%0tM~8x%0fumr3T2kD>-H77T&jH4ESb>1FKp>jZnV1Z10M`QJ{ZCSrwYS z(iE#|Sgd+x()ADVaqokcqtxk)?qCcD?u1J4S!cCwg_mbMFN2d^4#b7z8r3YGkWN>J z4ZY%fkX@{$!er~?IbbL|z<+W1$2Tv^{O>clB2pSSF#Q9fq4jOZDKne=!%y%_8ErTS z>EE6L4nL!oEkx@lYY0oqes~#Dzlr5#e&EW}^N8Sr#1Atgx2&HUr0hN_XnR1Rf?xDp zOG0AjMPX9s%mnp2T*&jhf&SFR6x&3hZa@Q(SPo?-prsUXIR_BCATgDmT>0Ag$z{H{ z!CZtomPT!SkMF}yhBI@<0IPd`kd~cDQ4CLP@M!%ubD6!&ND`B1?0DyCCpGc(|t4oS|pnv%{ z$?oo{SM@K7-oXVX8ezQrU9i0T%wze=crK#5B>-^4ZuZDh(i zJiUKIukC_&oE7MLU+I~+52c2QX!uhL?;1Va+&KHR9d6Mnn|j$06Bl zh5A=+@VQr$2Fr6L00gN03$%VDiL39CmihCYwFOnT8O1COP{v(^n2si#tFrNi6&3!f z<1B~u005*jPDSGpiN->XD&+bVtB2M9!7BJFR%osFh#3#=D`PM2JQ@b zkg>c%^INKW{@j?`dj09ZGGuisYl7txir#ARED26}A%b*s#SRloHTNvM9DdmpLm$-4 zSzi8m5K15xLfLC(Ix;dM65?Om-N|S(9`NiScmHVT*UE%ff$U%TyDDZQqX+vD6kk+i zZdQNLr0N=^DGM%8{$fTaZOSs9bQp@9Lwwe&{J1Ewnu21^VX9FPTw|_`{2TCZGYp>z zNYu`0dia(gB?_Idh@4qo9t+b`-)CFCY9~b$Z8`wh-;L`|bT2OZA;oPsS~Z(c>wQQ# zw*8mD7xM6d^-sMggb00>J17XLDYzda9W$ODI7Op z3`o4^_iX9CMoe1WAp^|vS@uUOi9f05V^3w*EJQv2!z&_YmG5`i2io>pQuZexYut5* zC0fr+(YiylUzy zP6*r`H`_t!1!vywBG8f&BYvp=Qc;)qIy}OCmc}SJarut&VVP0R`f0>JyyBeYRj)s- z{-Wg+qMOZfJuUusTfg3*C8PRJI_b++>*NYLFPYNH`^3)qm#<&TO7|!Zk}dOE|1V)R zb-v$stp0ibwUWw$a~Nb9j7r@Bn{SC@xYOEs^BLRV<8{upbY|5L}#V zcp#)+qUk*N?mwrWqUq9aEdIHb*ijwzw&&TVQpy_I>MT>QccTEVl>0}-5?9mhh03;( zGDHhNuIj7CP*)&>vm38n!B>n+ zU^XzSUzbeuEPga_=Qb~D*$tsDbg$O3@IMu}%6x5n++%OVvfgkvcLYlOh=*^XF++m6 zCRD+ch6rC#j%)pWg~L;A*IFc{Zso_EcOA=H&6{TIl=&{imAuk>4DfN!xZ#NAOBTr2cyg@GpSkP+gQw zcJVtz%h#?|Om@_Y+7yFw71BW`&7pq(26A$H;}CJ4fsBJwybT(?eVEYvc|v%A{Vx!2 z`#oZ$VaSK-Oo04hzI^jqAH+znvgyAa>YCy!b;(TnPaGr8xsz-G-Hb z#+zkpeE*^8_7}qXb5*BRL?l2zzq5$7-O1xZtErenkbKPXG~xFfI`8;~AS;0-ti+cB zrn)YQhmgPbH-S*Tm?XQPyp|85)WSzAA7e>jh1Ie%6R?pdW2w!l;dV~mw}}_}QA4;_ zCj_bHBa_%Qua!Iuj`OX6CXVC}w!u47@H*Z`F9(XwubkKD_OeINiKemiPOs;!jI#o_Je*+xh&nbSHa#H#pp(T=V!hv$*Q8ofY^(zPDo| zbsqG_zUxmn#iK89(zoA85yxXDW<5^->x?+psuOu(=XFTffavXqsQo;<9f+Y1nH%Xk z9#J%7+*+Q*L&+*bblL#Vmxa38j*!d+GA6G<`Q__>d2e~FypFqNUyUu+KVI@URe$bY zkkBt>ntD}-j797t5WZ;t=q*xU`TCHPQDbMPutVB-Y?=Mv*ejjlkv-oK)nN@ncY*Cw z7oxebT$@5eGsde5WGthZp!8u3&WD`V!Y_Bt)eq9h=1#E+yEuIP7y6|i-d*&mzjim) zI|4X>%5BWUivHKSPT~Q+#P|H_0;~!1)Xb!cKU|tW-zf3$=|spR&5T0sjeV4%zyo!U+cU&}MP}{S ztCcTWk%obS={7WkJO2FZ_4&O@iZD_Yzq*@zI^(H_1^YG6)PF*WUF&`asx;>YMvO=4 zRsKEwv8Bs6UF`~QVtG2?`sZ~~w_rV6hp!ZOT*+9@O`;4|`+7^JIA9S2JohSwJ5xo3 z;9s8npL{1B2K8FCXZYZqi}V23a~YvufQHWFr-khDd($5{TW(wf!u9v(S_fg!_8LOh zl;4yO)1mO3+-1)H;s*HENp+<>sxW#-54c-=O6yP6zPCwy&qA)T5k)sDx%D&MBD9^Y z0JTmR88o{GD6J?i_P=zCbCwuXoqHKHeS$5PweB5!*J|W>3Qw!yiY0$U!jLXH7N6>h z5SkX_cx*=dp97}e(K6IBSE~FqH_lhlbP~6-v{%lJb#VcpqFH+XQXW zynjOzK48pIZ2RLtE$^#4CZ)Oer|vuEzj_M|Vi%qqa6glVB`Qsy5i6pZE`Q(EixwM% zBHzcYkVIQcB#m!-jPqhU*)DJHxd08izfB6x75$4o)PNK75@?K}(kf@#W&EC5I6Slh zA&!e^5ZvZFtYf+cOwF+AWJ!6p_>2C3FRj=+TDNguc`7=|`>L1+0%O+dcPzeM$ai>L zq`XF;xLb2Xw0^>a$Sc%0X+Bj%`Ph9aIaXV~`j=&shZmKhw(`g%@XS9^m-}+q;Zmg( zCF<&&(s{K43!V#uZ#Ofq&9S@vnbJ^gNZkCJ({aMe%hzxt<|yOKA4^#6ib=q5Ji^ z+!XX>ym#W{C|Tmi$%zS{58c5CgEFSd((pQ0*N@1LFV{0V*2``htH1nR zR8Q}`4z73$vPTiU1mA5Vcz*DN|8?BWg}7~{`q=*@jqcMM`s6#h zwe?r`3uH6m3j8m+rtQIwT53=>S)Fk@B!&b<8!<;8g%#KkY#?+VOs1Nm6p7%g|;q>>^@u|yIVvDVd`PcSEXu=RwP@J!XyNbKCIY=* z`>#7DZ)11>Y_@HyHS6^(PrIPztS!zs9TtH*GL(D?`{|`BGBT%?-Uq$S!#+{E|56;l zqtz)B19_q{bOK6fk(S^cJ0dVyNinRoc|#goX;iFFbf&tcg908`l!w`+IlKQ?{VoGKNM{NR@#yL+65j4T(GQw-~tR1^5vxSi_z(7le@%zWeS!^fP! z*naTOx^z~ZCn~?WDH6A7l`a=LKXp`5(XoqDk!$*dR^zU_7U{US;sDY-@prt6VQ73#O>1dTVVN z@flPEENN~iU(=8LgVz5VdYq~CuH^}hx!h%l@U!eDzx{oy&V!Pg|KaYd|Dx)?a1X5@ zp@IsC3<^r8N{N7=lp-mT(nu@e(4`1Uhtee=-6ae|NQk5~5<`R33_Ub=AK&-=-upM) zpZut>&)zGa^{lneDYR@5Gjpfgfz&2Gi4MDaK6!}w@L@U=x7cxXR#&ikQv2Wh0PWq1 zcVv#~S5x=|qSd#6=%<6$zw<+eSjN&t0{lZobGDVFmm?qAMrTYRXUTC&+v7l)XB{8 z`TuceP%)A6Qp%Uyt{BBozS5ZFtPDhYWjwP^fQ^zWB|INsNT#4*O!Lmh~FxO1SsUVk(zjJ8Nsq6s=d(M*3}$rG<|X z?bL!^|87`dSf@(amnzCp5}1#4=KQfv#oWhTOXY{J2{Uq0ClkEeq6$TocG7c?634&$ zeog-LzbD>Qfg$WU?}vRBnye`j>4@6I`&mOZ9r-dR5&QM;;L5j~%sNrSY{IYYxRne$ zlJ-8CS@%Di4wQGCtnb*Ti|hkp&JG%QhV*rAo)lt|$`u#NaH zQTU$4f7(SDQ@Fk0s~%%R4~vob&)M~Db7XOfn~c}U3SRvus23G!-%Uk4SaiZj$>7W! zHvfZ}5V@(5UFiewxViggNq!F;lE{zF>Zl1D8>p=#JOA^*Bc&7%J`vpgyZopuK*9YZ zB%g?dak=^O$M-JeMUUTl(VMYL|Mv5FezW*vy z=t{yQ{w|4ENCpvXFBos#*(io`;{}RmXGs{PcH0J(nV2ZC(ftwrZck&Y9Y3mN-5VRY zWBA`$Q{}mrvwywZsfd)E09xIWA<6BHtg+z6)FO!F54zLw4mq0!d`xPA__y@f!+#Z8 zY|B&azghF3j}^d+=BIPV+!YqdoZF0Y_kA?-t=(+fLyBU`y$5h4>TexRq8nSsnf|BI zk9v+cUk5Cef;}9Ej+Aqb9_x>-cRZ-G%pj7l$(v@{oOV+v`mpI~h{YS^yifaDnDYF8 z`uy;41^?@%OJ0UHP-tKl9dTKC#=;MOx287I@MY|K>I44Oh}%55cq!FC)Q?)jCT}B~ z9RK&^nO1S0KZp4lMT+G4)-=_NY%!`JnUHUoN1Q`wt_YST_9sPhrn`93QVib}abCCS z`sO`e^RITKf-B~f!-qKm{YWc|<%`VYYCa=44R07L;)=}s)^PJ@Yf`_TZ!3oGf6u${ z#r0Ts?z=b}lVOryo9#22+m;Gl5~_7S-%%k3^_{a^aL*JJpUka%$*!G3D_@D9KsEkn z3{u~3EJ^wGV z$QOUEbKR`dRI7F-zkcU>5h$}(LT6fTndZwE<>?|8KR+H=N!t@ynm*cdnO&H@d(U#> z--MM)Ts~(t@0~s6;QOeNq;4{&F2u7`4NRX}{5o|8tNj`*_D69ZRGNn&4ME zV{1bb0)u*yHvgu?ijI{i)Ilq|nsQII3MEmQd%bnizaoK7e|+Bw;5aAFwq^oUX!DF_ z;H5%W6>|Pzr8l%BS<5Y<;#yWKZlr~wdAK&56CLW6R)-h2t?Sct_CSHYr=UE8B z1hyA>m7P^@c1bF6RN?bvFRlIhr8vTBMAPEnW)R&AJ9}qgPKLEPrwH(j3}u+YSF4JIvTQw?{R6U zAqo8M!e5u=h>iS%Y3w-sW1z3B_O1xW_VDmBO^Fo9p5S)^g-B_jk|+QKUn$#HV5Q0* z;Fy`M+9zx$2oSsNi4=C#PCLs)JrZl>1S?kzzsz@RV&+A;$yQ56nK;(8MF+*w+2`@} z12EDNf}j!lF_6;4ttF@EJhD^-*zaYnza@I&d1^L6U{mCzHKFG^F(W}_7wNjR!7tBb z2c98-(YU)@_}MAm`3!$=`*(+w%fsUk$_6h?LVmX}!YRX9vG?pRp1H}#&6h}hW z=469>@TNx_MEE$vtfKx?e@P?&bu^6jYMkBymlkdU+`?vIgzXAuKD+2qlsLAuA!7^? zsLbV}7|oT8kK{%8B$BE9=$p#KPeE%B@jG#Q+VZe=p&#BmJ>TN_=MC?y3l8~QyUMzy z@;y}2P^z1tbYrKdaI}BM-WtZbb#m^e5N?>8!=PhuWhoPs9~{{bIt8B0OFXgoI&(1;A=l@+}OY-WpBvL5TEh6e!D^_ zYNOj*1|W`0vdbS3uY~U2aXtp!J1K>O80i;p;+%<#^V;E^CfVE_m}|VqCSjW7H}Wd- zMGlFloK67r;dcGv6LP}VFjJJ4$^KbJNmk%S55EHV+4gGXCpGwY_wVz^!A~e9>dUDJ zRB95nwlq7Q-Fc3LppPRn)lCj&Wo*a2Vk9N1y!%vLIQInSGvVxfAiKd)2e zVz~QsE=UmA0>e__=ncI;D45tqs67>%54$3A7f-Q51F`k|L=DDN=+}pV)0egW=ny3! zlq~?Hc1Ef~-#ahFTiG!g>5(iU;Z-vxLe>Wz?}Y`uSTUXq9m0>d_gFy8V85_bu@lfi zHWBG^&An7&-ft?<_v?;i6%~O`eS9+ccg9-$xM#p~&XndG#Xf#7L6a`=^c$;JkCAw_ zFy|*+Z>`-4^W_mb9!3m%O8pC9X$uGG4FAXiF)_Gqe}7#9SXzw*TCI$fp~l-Bz(nsJ zg|b2eH~lhavSOjuAGbD)xK-E-;>71B{DS>7FVH;*D(Pw;!p-g zW($abJO{mSU7_l^1>)JlOKI$NU=MG)SKXUl{0JKc(*lBcISDWMM2Nufo_BEL)ev#~6Fcs$ zn*}v+z3vmw3pkD`5cgpcXa!>ajxuV!??O#0%mIl$t zLDW;7F2_w@z&e}8{s%;uI>jlzLUq=oZ7;&3CxAD$x;h6Z2cl##I&mwd&f$0N4Y2rH z%UPNRdG`elj_j!NpRnZ>^4H3MCT2fyY8{I=xGa@pm;v$&6!BD7SBrZP@;BHK=B?U^ zu!p0RK&O=_aNui$zjFd(jrU8SNpbd97*BM?&Pq`!6+z{Xkv&sVng&JPu5^ckK)^PT z8=K^+6)IUcV{MrTX_H{WIvf~7r9GY7QTP=ph*qWM)>b#-+_2K<1Q0mGD}#yzhC>%# zL7#7<_P6iU^@$OVT#Nc4LO>X6Rj?8@zE~hca|;{7z=s>E#VW2`NPSr=;w6F}6eBtR z+D*!rfgI?uh~LL$Q9tbg#HtH}|8|r++mk9_B&12-NBeboXN~nt_Xz;e*T#g z0DIQaU7L@523rV~rt9)byZOGc;4g>aJbK9sxI>5dOg876VIgzWI#7gCQQpLh`?Xq| z?%Kc=-}0WZB8xvb=>S0crXLfe98Fz~rE5_I(a4p}#X`-!*u!nbl6L9;XzbY31`$>NN8 zI#KGezv-|-JC#D8^!;o&D}`s9I{l0>$XjarR~70(>65tElb4Bqyh7g490Y9ca%iOW z%3cX5+diK^hk&jN+1jopcwWKqw1#Ccem)X_aVgLWbY8@ipZhSDjvDxrx0465)v(J-9DfNfl2 zCN2wzcR+%~Bc+kJ?VmSVbSS(+H8ua3KF1Iu_^7awpYn5sSOIj214A5sddl#i$v`ni zB4B@9$4Pzow;Q3lL2YHz*W1Dmba~t78|@EUg4N=`y!_%IUo|NF5o)@%!>eiUu_)m0 z2xH&G`X%eNH57Q}>C24BiwLP+%OaGLK~TOB4VU`7eoXiB+|pV3yRBhr>*4KkK{Ind zf`COCK3J=)T%a_%va95l&dhum{l6s>`CLWRTZLgAIp{RoA>$(fG5e!6=YmLU zI1ScH&(2H459s;~yfgRe%QV)hr9D!(3-#exoarij7U2%yHVme`Av&p$104dQxiI zGZF)u?eZZV``*kp%V-c4pmR@@NU#f`p`ifVAQTev^5~^}j4LzjqV#g5`-FfNKRH$) zgeQTYnr+qKqa7KqNM7iyW@bMZvTj-VY11?g}i#YPr15Pjp6QRmVc25Fw)62ilXy^9($Hk}R1BR?A%{+;i_a7iAzp z>-Bo~vDE(2W1a$UjF_2jrG(EMnoEVu=SnWtZlpiN`Yr3{BU8qhEoP>~i7iU-7PR*{h(sn?r{a#|1`?3fv-S-L3 zU^(O-!0N^U6*FQ-fpr}m+Gs+LfzoR~hma|Uj?7HF`qfEKfm`Q&_N{o|$a zEl$hmjT^r!Lz$J9jUB7#01jgkEVxzXE>gW}2lufMYH3m3S6+64PCFs=5F5-jrqxvv zDz!9fV(3Fa92jMDH#)^3a?Tq}0$tfSF|?(xSN+YMGMnadYnC$#{{_EC09uBFPpGl&>Mo^=``ixC` z6wI)sICL46^wMwq{vxnG5i7vcc7u!owkz`bG;N{Ie1&|SO`wJJ=$-g2y6{w$L z#&0bV0ayHtJlLLE9j_Q-f@ofxSZnd>cKL^~XCLDyQ>c}FMXU?-Z|nzw48~>VaPWQs zj|Mq|4coHOv?Kup^mz3LHJF@hsC4SgxsqJ#T982vkgyKs@G143T?0^xK?1_RT_@ZI zHJJb*#Lg5Zv3mvV7HR9e*s(tbhq^&>4`m9+q7o|U4>~{?A@7kwUaX@goQy$hCPgRL zfLX*0d+$YW&vhk5hJt)iUhCBTYjxasg$j}nJk}IwAjxEprQrPr+l0iT=6$F544iHZ z;@PfxwsKNg8bHQu=3YHm21?v#r*J^gY{j;>hW@(qU{~hLkjVh zNq#R~vreyAEu;Hth@cDR(=)r8^ebngNf)mYoe3unTBNe(7J1ai42l&lGRuy=wfO#s zQn2yZ$ug802Y}8>1A8p!K4|6vuQZwBlfpL+J704vBF%yO4+Tf2|2GR@bzgj7#NFSS z1Y!-}>eff@w10Akxmsh>hh0(R1FV){d{tmZ|B-tpUq!dn+2^qdxfH}O|70mwlnmfkIWDNkCtEY2uPQYm#q0fVjn$3^%!}SwlL?6KHoJzN-a>S?H%9`gepDJoaJoIU^<86mB_mjCR}0UY4!l{f#wjuA1h@#{-2fHvz8NB*2z#qfdhMCwD% zx$o;lL?VXslq}&7o2~UFOu?=hDv<_g@;0Pk~pX2l88cm zCCE;-I%#6yC8wM#G|eM9NrSoUIFlp!@`72p!+go-0kXCUM1e?-&@n=VPhF&%WcSNQ zm2Lqo8XG9RXK+j@>jrbJ3+U6Z7NsKb?=?gpS|CDJ%`sK)&(w^pXh4=e7nRp-wI5D| z)0pue``Li|FoSyZRil;q0|>5`?dETD@%PI6M3Vse&91Hlvm#}4dxpeNFp0rQYu>X0 z(4Zjx(A?vS_&K_AD%YKaumqE)e@#nE-!92F))M3>OepOMZ1ly$^M{8ta5v||79`2wqQXw#FCD+a2u*e#{ywqtDCW)7vxN8{H0ow zM;Jtvx4@`Adh40()7N~R#t*UigGwU$0!(Rg$KbQT`K`Qu8>-t=fFT1~`o%DGt|whs zO0(?jqJ#?hsP*Lz>o~Aj>ylN)_8lFI)Hcvbg-*Y`2FnPfKM`%)Cl9Ub+iZP80Yso9x7JY70A=Q}zIWWs5ZQx2tmK7ZX7 zdy~YG?f5&WK-72^-3Du?D?msS$zB)KLwhKk#3#FK#>lzbr)!*HD zN&z{Q=(N@FvgH=sH|2qRY#sa3-WvVBoG%_u3CK@39P9BNIgEYLNeyaMj;(eW?6XoCMGy!Df^bdgGAj$pSF#F6D?E)GwTA= zKKt1qM)ZZjqAn8QP(^8%vnK*H)T|sw?c7l@jJY=mQX7qoZJfPAJSYreU*`^PZv))G zU!I-*Abm+$K?wFI$)99G^pcf;uercEp^bkis{eArH&E33a7upu#}!Ek@ih@6VsPKB z0H`<&*l>P)TjLV$ot zjXx^=^6jfMw=-xmxutlJ17av!_;{BUR^pc!G07{id}e_7JUk0}eT#VZN5?GjnQ+8l z(oV`ww`W%kQSYXM#M>L69B(5jFJB{+Qgd0ml;NZZ2^+1GDI?oPuMVYuP!C-#LrWMJ4;=+VPml*MRkxcK8xs~~!Zg&7o z2RMpyGcO}1wS2G(VtJ%lJezj`>owgN8~nM~n;`jhiQ?z;J{O90))196L4<~RLp7(7 z!}maJ4jvZQy!$4h^w?~OBUZ|rQ4*d>y1w=90TM`{64;SI3^rd<-Jk%b>X4ID@@DA^ zh4htR9zix&&!MWkq9PNVkPB3I27Ly|^s7(F8mJs{2g{n)hUjAv6pm4#dhK3P@W-C{ zJ8h#_0?0_?{2DHyr<-dqCv(!+aEBl0|EEhwV1h%nGqEu!8X8WAbdbq&VgOPIfeD99 zJon1E)i3_lKih+V@)MIaFkOa6BlpLyN%_$-=Mp~5&CSD_V61blNJe%ooirk{wPf(- zU`kbrKs3qK>~Q%JI4CK|Ufxr+Hz^aZFR`p#Xbwhd<**5li4ln}0sNB#=GQ>|uBP~U z(}e65A#q?@Zudc$7_RVgeLxgeS2GGW_f%QYtihldzR6)AM&OWBr+^-OUT9O9AqjBO zGeXyiT>q8oC~iAIdvXmV!LA-1E%uV$bcAdhF=$mCoNB;S9P)V=JLaRs*X=j1KPWNwmm`P5MKir?CCA937ID(a9!37TM zNT+mAQ+556ylvUh*4xvAUL*l4OTB)z8KXZ@x2X@Ht3fFBor@g-p%)EfuK*g2)eIzR zah%Hjo;T;%3v(tvZ{xogF1EefQ6_L`v7oEDQBl5oYl!7FNR-V|&K6&L-G~1nZD02_ z<-EE8!qpV>6RNiZ1zP%pszywHGjsG(kWEB5wZ#H1KO>NqPTyp;L#>8ZZeB$j@**PNn55K*B2J zpg^=CTfC$3x+d{jF|YLaUjN{DRa*_Aw*}ZS=cEfGaNA>T=~vO82aZO>Sh1jPr!C1z ziVMbLsRX=OC!WsxF@QmrhRW))BE2^fJ#Sh&fclC(?P5zFrb#~P!-3-pb-zd>@%-`J zLP`y^{^uF(KRG4BZf4=yvnL=8#C%{~(*T;mtq2!5oY3tFYgUzl?`Lfnbgz_7$g_q)?p9Fug9%nAF9>}nq2|JCT9mJ#)#Pk za6^s<%tZs|!DXALfSQD6e!BA1)p+iV<%_GZ-UDu&H1N#5I)e@*hos{>clRYft?`vn zah!$c>C5IX0iFDIBzFSpItHV-A7FKT$XQv&a8=vg(u9k<`tC4)IgoRpHy^+q1uOuW zWJrH$2O!%wjUxs;ktHHEainMf;(n@xy$X3pWxd%eCC@0C%ue%NA=5`wrN&V2y%2am1N&132(xPA+uZ z18$2@Eb5H~W<{V5WP0Ao32~R>DU*%!wo%|5z!&09r7CRVzKy znfiG^^haAN1jbb>8vuX|cR`#}_XL;aQ@A(slq1vJ?&q8rJk26sJ6mK^k7Zpsb7cd5 zfQq|*-rOk272=2Tyuipd*?N+8sy3Qn9R1f5tm?stydrD}&*1^L|Ix9@X9$H&{<{y6 z*(f^cw%`8Az8vdA0N89pKijJ!O5K35LA===-kTfyYh@omBj%S-0PGIs1pCFGH`3RE z_Yx{j#_eCOp1S`N2WEEUC6+e5TED(eegQf(kYaoJfXgd&IXO8{y^_ES8yCbS#5mq+ zUpfzKZn$^!n`@l&qkQ1A&lC^dfv_NiU>?dwpP+_Vz)U_dd$^^w^<;iDHnO}5Hn(VX zuhxc=>KE_;iDDnw$@Ze}R{jl@SFk8Bku^`$a#jDbVz9X>VatZ-OV<1LUg!Q@H%q6L zS{#G~g2yXAYdM&|c_|cu;qr{+H`4qjsg}n*umxv!C@sGDUAO58qB=V;hu)V-JKt&# zPr;|~3^kESr>Db*6h*y%ToUQd>B1951?AWayM!St=2p;B5`N=WccM()!397p~X} z>a5jlY#iTJra`Ko$%_+yvd3cCuUZ>AlfCgE$Z6Dami0zOhnS%f$?MSS|F-D^kvPpvIO)Em1`_8{qS@7a>x7*IdGqFbh={W!LzL1PC5?Bra%8=yPA%clWLXLS_#ORVQP+qvSRqPC|ciTUo-Os#Uy+ zdRC6a#p>vr?ZKpLz*N}ATN;%I73h##a+-tUtmsY@$p?nwwy(Iv!PBQ076`ifQ2{5i zJhxc5j+OEY7MI#==YGX^t1k<^Ws=1;#$gS~>mTG4=fC~x#4 zZ9KRmdLK3ksk7jewQ0wpQD_+zF<&`Dg7tDYj2)$%BkOUeIEl7NkqWJ?dWmBsQbB=d zO`q)_r~dQOqfMMRAb@~4)@K%FK8PE;EP?Q^a;rk9x<8=3LwyHd@`ni8oO}0xc9Q-9 zKaM8)JutTQH;3CVIMvEBSa7ta-QwFW6FRuSNbOOSV&i9b3xt5X>D`2l8@jDmrTjKz z&aXfIf$YkiOz$N#%?+kNaSmfr`7K_WQ=h65L35!B7MNOd^&ljfA}c^U^1fpXrw>c< zN*~ec;i6lEqj*(Z;Ekct`pAtN!@KP7M6Ik{eu)#$f{!g3URC~+s9PnM?iqP93JZf# z_nt*|HI4vB13{4&9t#)fAb;ec#Z?Gf+5SLkU(iN*8DU^|QH7dHlZUl8Zsu3uZgS+W z16xRDkQ9sGOJsiwETPG%@2$lEw($2LxCa3HT``F`ayb9Q3tslZUD4)^g&8K~<6Yq1 zbMo%97Hp_7UaCGe?@tcx?$6fB@Ed{r*Ozr%ev5V{E;4yrS$b%Mi}vAId45qV zYA#jB-9CJk6L*f)yvWo7#N4J4BKfP@abiB(OV-&r%)B;~eNH%9Rx6E57~zp|R11g> zkX+Aitt;9%Cf^Tmv4_YMGe1%>w^+&HOCp%vplZ=sWO^;d<2fwkH8)ypx|oYj>k%i; zY&=UdB{hUjtFaR~FjjfFt}Oj!2BCjjB(JC+jySZjWo}*XNigTH)EkZy5F%Pe8LmY) z2eiZnQVfos3g7}IOUtX+`^nHk;ju;};&N-0N5z_;N>|||Ut1WE}R(Uwhz_TVfiFyD&g>tGua+m?! z_iwsrm?#znVD{cbsCw@5n<2Z;{&*Llv=RjhGIRU-CU{*9fx$=Vns5x$T1)b4vVb>C z@kqH=qfe_=C|vX_&D~tH!<<680?(9i|1Z`=k+-=i76rZLE)tz7ez7?IV4{1}owW;O z@GpM;#V=EGz+8!(Z4!m47kG)e``q+cCjea-b?zUTWT># z`?bS&8BeQgh1-o}r5AGwmhR(dSWQ+5nh9f4(*antOE1(uPoKWevy#WrfvVW`e*D$CebZpQVNaFiij>Olk1g4|&XYA0 zeqDHF=~6$-eU+_U-C9r~w1qDY%0}7kgf{MHR_6cId=+< znWMgEUG$`OVTkzc8qEC3mw@;aSKG1yzM$f!{#=ruDamg-nKC!~U3iy{eo6JYCQYsw zdJ$HDNPhQYz9~q1C{SK}9jbE}g(|YKoE!{huD*NSAD>fT6ofp}{+584F0as{wJY)x zNQ2sqPJ>``niwVsGX1RmWBCrUwn3bT%mR>Xh&<(^1#$%m41HV17ajM>7n@qPYlqo> zg*^K!*Lgt98ch%bvHt!!M7F%M{*yeq@0l1TdC*h~FyFzpE;fDagzvk!Li)ss4l^?lyQKKhYm4>Q_QH{5RNSx5iurJl4ctpr zO<-FRfb#;Y_O@BYZry6&3lL;(z~M_Zu3JlYHl|ia#VZk#ewZ^kS&`j zI%T^Mh*axwN{#Ep*D4o_si&}W16>g4PH_jjo_L>`WC~QJ`~YeAy4ySS9gb)Gy+JaI`_fVNyp>XkR1$*3n`4m zh-^c=i&B+sQ24-MfhNf!aQVwxUd@9bt7)ih4WDvpzKXkeMy5QWwoo7fd5-z))mgUq%e z%$hV|xs7{q-9vqKO^2J-)~A_~S0p#NKKlpJOCkh(5R1zwa}U|C)@bqY;?%MC@$Ql{ zu+}sA%R*P|$MyiCJ-P;OjE*9gK9O%p7vPIj!xR;zNfMKj_@NV}%vWU@O_Dr*+#lF@ zG<5r!Ff8%`C1f;Q>tqCid3C5I8EIdo{LLcU;%dBLvL_`ZrOhOn(~do7bTuqa%7G9- zp}EdwSCpA1m}(mrCxMgTuf94Y)A}Uunr`b}g!R)9=CzQ7TAA=`K;689&cZwtzUjf$ zmj?ty^6+Z#b)|Mb_QX23HKrJMBm_C+t_8o4S1tPoXj+lj_C}t>oc2oEF6ri`>VhVg zR!JwX(NTjCI6HE=@=oO@bNR<&^WthG2PlJ~|*m(F`kKzs6EE&~% zu#Rd~!Rv^OHyh05dP4pv()z=%m*9oeW;Npl*F|xGikASchUWC#n|`oP%qIDAlV@?h zbDk0URZC7@Bg;gYhn5L9I0|E~Rzcaek_fKQ%*qvN7o*5_hj>*=uDAm-%}27-#`(wl zn_w+7U%vNHn>YnSyhBNb_ckvxR&E6<0rQZi}M^7k(c^)UvyI_h(=MNERE$qroD;4nu8`sh@-kP_uLx`cKVZ z22?83(t0&!^#+C>YPa(rjkntfm8t~4>$r@HH}@C8Mr*8rg2b8n{=uJnJO|yyaB{p7 zlcRcdQhgOJ!_+t)Or3uYajLjCg+%UM5>XNToQK{p$DJ|li6xTfPo4~N%9*@tVjf-@ z2(YN1e{v&Q9i(3f3fC@@To!&i>>{T@4qR6y=lxSX&fiqHbI@6eO1}-Fi(m%Nw6(nO z>sQ0+j>x^cMxi9Xche*)aD%lxhqbz3g1p(ErceiM-jAvk=al}tiNQ7dt3#~rMSfm$ zNra$SdX}ATRDmQd4I&_p<98klZhc+@rn0IpWnj{lRbf4BvXGM_3r35lpX0)7DPT=R z79^iAKJ?d)^jb_JOda@67tAc8b`BwruED-XK75*Vl)Ygm?dMk~SdLuQyR(biQ6_*O zwympcK|}6xb4j2{3UTU<#hvo{yGA~$RfnSGe|@sD*O^c9T{VHEa|fO8B<0fV$j8r2 z__6-hBBSW#?iwo{Ljk)2uZk&q=4|urm-vkyzi&ju&;Vw;*bh_&5W8W-&TMZyzeN z?UP{%R{+D-x592qxGl)Yz}On$dJ}EQUsyAWx)BCvJ?NciAg zM!W4osS{v(nqS}ac&K0X4`5}QpYWR_UP`&8`2+BpAl`G|)JMCmwbpN9+Y$`HB&v_3 zgYK+y4!=_0EQSN3db=bO%q&k%bVkj@N^6!eod)1uJ$_HeJ`CF8hL30Cb`;7AL7%{Flig;D2xU5S(f%$@j<@lIDE87Po&OzZ;&Bj@Avo zs=oJZ=jBdZeGhWkME z9wv}4s%Gtp_xY9$qR3ESK@OeUNe}KV1y6SU-WA7z+x}BLdf%+N-aFQEZC;1Pb5#$d zKJpngGlXZMs;+vkIN`o9pnK$=eWlXKuEEB67pfk9%(w^_^teY6$`}gWvsnh zCN}^m^`}oa)=^}Phs-dO1zDQfpZ+dF8Z7BYI5&du2n7thUQW$0R|s>TST&xnE#!u--{Pyelj#C9wkW#svU4!3jfFk)6GBFt`rir=TH z53?;<$}iK$i=$25d}lp~*?x^9*8neQiyl-ROE9?2@S94Z=dV{tp5p`!J3yYO^8A)q zTU&F+u*8{x7O_v$;Lx^hoTt=Gk8-Mw-~FaN0zLrOE&(fGbJW0hUJebl3NY>20wmgr z^}yx3f9$ax@9&UgrS$J`|WIH zUptB-{1ie!{2}3A=55;WKnQn(eXcsPKI?Sx?>Y&c<*#>YoO^&5Fu*xG7NW?# zRwLgh=^g{^n-1ror_(WX5Yd?ncPgxh$|zosuq?5G?I?$P2{Js)!X{7bfK@>Vw)_#G z;%sr|-bds;P_7U)H0LK*={EIVRXF0Nh>rB{5%5CrT#*Wo&B240F34|av7rZ0BtOsg zd51mo2gh37&w>4^%{Nu(SpnK44*BRaG3b%_d_Z{~@X_UH_k|~ zQB>B}e)gxT=Ac&Qx&wSJZwk)Dx~v@BU!qdVEA~63Ff#vC2^X3_1&$^10OYkGQ(O!! z2oZ6YoPtKd)MPj(&{u1(WAF>lp3YfYS!zW$e?UF$1hJQ@Bkv+lV_@59ONtlav@xj2 zb^M5wzXbbJw3K_(GY*eVaiX@uS9xL#pM&HaubYVw_(kT{dw0KP31yB5wqKne7F}gix#y)r46t{ML%-ycaF4O?}h~b+^rBc=-%_a4T8ka$1C@? zMpQ=dff>UtfCQ?)9a3jKm0x$d4IIMsIn60kqfv3kvm$NpkI07y8%9J>bm#h69>L=R zBxyKH70{R9$$h_au#&>n3iML!x33516^ei%fAKO?-7fT9AUlC;-Edp!8pXbP7bIfm zOX?p?!f=t~PjS|+&c8eB1i9~7ESQj#+*Kw}>ltX>^DQ@l8qbSY78#BH$=*?zc7`po z=q7{M0xO@rCB@J3cTxSaycd0wU`x_pC!0S$WsdL17lC}?<00T~1wOji zJDU4ULDH#H`ckZwN&kYe#Ud*%y8JAhU*^h%G2E6RKu_eC#0G|7DQJI({5Dn+#m$gi zg@Bw|NCI5`-O4}PfM(WHp@8HYP8p>NYo`3t{J!5)Kry`yrz}d@ZEm=QzR}lu9gbtN zlqoK88AUD@Q1=kO7XnQG^4}L%j?>dB%TwyJ#Blt}S_`??tpJL$?N(Xu-qI=FOo{iT z?lD)bTQ~=^!SA{a4P4;uY2YRDBe3SL_I%n-!EpElrB+zkzcf3Nx+LH;wZ0}|<^Tu| z+el?l(tjc4&Nf=iKk?p#1v=7y&9`FmW6R}&Pc~(8RDx`!^8X>B@<8sHrZbTIXgqzr zrcD{^F-QySd8rl4FJBrRNj-yM!_@aX_cDvpzIs`#JyWm%oQ3M!uiuOe-{2(wnn4#8 zKlpm;lUnx(!pXvB774AU%5L%NJa9HJEB!hxnZd8ycOL}td*8)?o|tY)y?VKVQPHpJ z!Tw8e{rZw^lv;g?Lj&rU&Ty`QNZ#6dCG|S`sYkJoj61G9^vR;T90YMbcJCi%+ozzP;-bnSfAS(q_ zA6eCGbZ$-5Qw;YKH%!J=(Jq|p#2$;o{xmN#a-(=xx6b9HOYIM*7Pa6?_IG(Fq=kh= zqjFwQF7}8QxpU1d2bfL+PM1)J8{2 zbChE&kUOc3lJ2_)Z}aJyc!}F(i!6V)DG)@p555_wqvMrFgMQH`Pahd>Bz@4_9=c<{ zgI&MC4Hkx|6XMBkTa~d&EF=+L6-DWWQFaak#D-x5xKY%HnBrL>O@=JYL+$D^zJ+q7Ym+_1>=L2?k-Sy=Gh8a5U5`fV73i^KJL+ z{ar#c&=`(}cmC@nt<-aLx1`oj0c*ClQdfa_%nUP=yRD7g3|3h81`q*Ns;QjG+WIN) z9rUj}Zk=U#&CZuQY9Z_{=K`o*Xnjy%mYLS+1Co@Vg~dZUjM~#@gUA(-2a?&|$5nQM zmcB@`3wW2ox@qstPzchfY;q+Y@@g>_xTZR|AL$imc)_9JzqVGW1BE#tYo`j*H+Z%8 z62X$nc;KsGf(k*R4N9^#mY3B?^7fhP*H6H$ve{_Pzk>ZJb7h!X8@x_tNRizO8dvO>;lM2y#qb2ckTwr45q*P;+k>tvXmKY`-ttdS z8hktMHgA|+(i8;cAe3_8D2fib^`I+Q&xRaN+#hPVU znO$}xiRGQ%iANJ?*n~SElWXKOn?U;tv@}08*EoHLX303O0oLiBK05!^sX$T|(>$D2 zs|{lm=I+$O0illM!&4)KCM0K3W>kM^4mnun`8yGqJx!w5g^1z84lSF1CgW-c>xTc?t3wSqe|JuvS&8Hvf^2z6jrR65GShcPrpby*|A4(1g^M2 zWEUS^s^c%P9#VoEkNfJHnwpz%z9`o_a;2!@`Y`;+E7qS5kY+AbNVyzh&`5wxyVgG_ zv5ie9`Hqit?-5)bVId7~V1lH~#BUD$Ild*~@~8m#3*v>BsHNImTDO-^cSvz(AgS(w zp__Mo^qd<>WJmzd@aERewKo67Rj%NCd?-7~EZ}3ppX6noK2miF`_^>sB0el$O$10u zLEi>y~U{5f#@Cw(Dm~%&5UdT5nGx9|?N09r%axNQwwXpd-MgIO25RkF&^P5u!NVc^f#<3tUcb1 zaYbG|3tw+S^p7T7`}}<#=6PpL(&EDiC=mWDT z4K7!O8Di@TE)7s$&2Nr|zp>OJ(osrw$0DaH?vO>q*0>DK}a8c3_yqE9bAUUoK=D*`K zb_tq0zhjE+>oQI`@a{L%leI2BsTmYEu7wLask-u{{fi{xN__^PwE&trT{@$ORyZ2C zs)HVD(9XDQl@|zMR^fP%SW1nE+>ZGCd6H8W7jt`Nw4Esn9kj-} z_##`U1>pkG10F$<7Ip<~WrNfQwVE9VR^a#SL8f^P0uMwruT8?ZCbrZlWCcT@xM^7G z-9Nlew4)?efBOuGE3(v~%F4>7m>fi4`o>`ura1($0!_s4>Yv#l6?}V;s=Ywysl?w` zNbwrp3Q3Ma8!Vs~8@Epdvem!&e(ATb6UEo6QK$WNWQA2QDkgqcwu5w8{<2W%_nN zAF3jk<_BJ{{$h9Y@>4ryWl8Z*AuTVN}FF;Y?0)(!jV_r45+X;dY zDTEjtf9kVZwbh&A+2;pfuJ87LU6#<2ci>hW6z*PdjQi~016u55%ces`pUF}dnFym9 zL8nM9uaZV=1@*Ol94;|+a_FW0Pig-hPxb%)f#U~-Xs9&Jib7U)$V?ovXJjN>$T*IX zk&=>(V`V1?+1Yzk$ch{*TSh|8$=Pw)5p`}=(V{=WWu-CnQT!}C0!*W+6E`*pv9 zn-c`!B-c%#RQP!kqy0ik2(KbHeK>iL^``wHwq#PU`tV@$&F>Z7P4s zBjO?-zUvPRJPyFppje}|1mWYQ)1KRtG;m90le*n38+Y&PTDilMGVIr<2kn9#!y&(5 z?jc^=Y%Gn-&(fk%Q^H7R0G3*V7YeZOsB^YrRq8&+grW1{-;3`1Z&0_+0BADY?yGus zk%YX`cr1dqQpiXFawdNXvY_6J7;|X)oRq0VaD2k>LQop~8*;!X9H8wm{S3DoiKQZ3 z|9^lK$4^!pwuZc5|lFpt(Q+uj=;UxzAg~j1!)aO=+>= zT~YT+Y`Xs{(I@fEp-E@)_bMD`hTaq`<$F}o0S1SfMyu>6uz70`gh=$$Zv%%*N=U}w zSqO0X*mw^a>kss~g<^q;$kZXnMFl&@C*Ggf5qtjedo@Lt-b2|0{k-|R-xNwtLhNRh zj(Ozwj9ZdzjsuP|DGez5P`Y6W{u2jh0UKgS$iZmJ2)TQE0oL6pg^ zRo14Inq>mF6PI3Fphtg;b>F~9IL^Yse$L@|#5hoo zW9K34x%c0WZT(yisB2$L9`VQbX{JkP=a)z&cW+>;A?5lHeKscWcEKwy3f&@SB(6cC zf}Q}~2p2ECPj{-+foyVcR`eDbUd(SVIe=z`?HCl|rQB~FsyuhMB5UL?9|SDh_AL|k zCevs)FdMFZgdKB{M9q2xZa~{&skfaw7D?^ELMIvtyVSY6|B37Faaby?|6(cQktEJm)`s0h6UWg& z_+ah(527O2a2YAn;!1K!O*CmIR9vK0sg-ctBlz^);u=AJEpP-AmzDH;F~U4c5cn!u zI>4UNO8X#GRl~Dz+svpg5Iq8ihlAciT32K>_l!>`mkF1=kVG!2il-xX7g3o^!F_2% zx*pDe{<4i~Rp-qKAz^*c(hgNQA3*zpUSWl8aothYPW8>ChihTa?DF@6X7}BDBm3lm z-34f`WGu~N6ef7egoo%E3Ri^&uF6E#(A|wb2d6Dsq!!tHTjUI-Ql5d({*l&$X96tZWRY$ikUBxTID+r|sbKL&rwhwehF&inL z0-aDAm&`3^kB4U(75 z2<2HwaDh03H&r3E(p)i(1_mEzgIGr&p-$aP5v2&lw~S#;p6?IG4XECto?2p2_v)VP zk>1lK@z|zdX|)z^4xP*6n`LN58aHm$_*sv*TWoVPa7e}B?dOJ|xs*h9mmcnMFLe>^ ze074JNpsJYLhlE zkyCUINd&=_O~iK|viOI5L+7QYdQGT9-T+%I>8@9g+5PB$Q-lNWS;hT3Tc3VS*{c>y zqhVg4wboJ_KMX7gvg7CArImXzIrN{eE3l9QsOLmPGr?2|0q-+(7=$LHu5 zjK2LXSS;Ux)TVD@m@x4Ib7bg|SZJg6V6+zBjGbxt3HK-5s^DT)R;9j#S{BlYiVB?p z@J_vaMPIsBk8lOPK;D1xna?Hov4+cFUrK>+SkdUN)<1g^JrHSPa!Q?`%6}{d-VbjW zo-wdEop2Zxe$DwfudH8{dEt3Q-6bgK0X&KlsC|t08qY)5N+R)rhMSald2xsfIBJ|S zaUW?=r66M@jSzpM-2n6oLDL zymo-bW%TIHZCw}3n)SV*0t~&&{J%JVpD+$yD?K1Il%@(vhBVq@- zjapskU;Y^-N4-7&nx`CzKUI%^cJVx?WnW4aI^NPDRSVdbXzcvjWhDJuhFqO6RbBtV z%-R#W%MVz9|8T-fAJruU2p1L1t}3O~=MUf8_FPheR{mAmN@gf4J=>dVagHlQ89QAS zcXe-X?|Z6(nMuRfxwoDL z^%4m=Cd5eLC~K^V*WB1o4sjy_0DwxIJ(JN)4Ax9@?Tx?`qVjJ%^E!grZ-o+l&MOne zDXMU`%=X^6D`c_I`jIJ%<9zgi6t@J<1LeQevH^}_tm53^HSa}!jnoOvxtWo-1WL~35w{~khLyPcT`=o*N2J| z)qGa}JK|VpCJ#&VAFh)PewOtr?ehW4BxFPM4&qvs3(`q<5NayG5F$3V`WYu%exR^MUaF_MT-jYOvtySkL9Tao`c@xo@_WVueCyu}EK2 z*#_uqIKX|$roTHERT#xO&Ftw#A#xLvT+huC?5nL*f8QKJ`9E)p#zKTHEh{_D75oc5 z1fYkG0PRu+g6qsZ_LFCHMGkupEHIj?e!#5?_3aMo+zB}C7@Ss<9roD<>oAb}W$!Pj z`CdKaab!#IAl~Eu%0j&FM=!n1lNd2&Jcnd!ia@HPV&BfiKEEW>g!(TRfHK@$*82BA zwZ6CYI~NFN2Xp|L*26t1z@X1hj?=CMqJ_HtU|7SDQxop>F#R82I5=9k;C`|5&!0PO za*W`CCzMK7d33+eLV6T@vP37ZHV^t?N0De|FYEQtm~lLdmC_gjLIY~qyKI10>$^H+ z?rLXCwtj`a;gjwycs+$!)z$3udW8%lc3-PQZS9Vl_Iw-VmyuC2u1_OX#0x2_aQ`Hm zJP!4MrP#*}nbALg{kexsW3Iw>i#dCOAsDcB7EC7#{a7OAQsEdD_O773*# z8-2i}5rvz4=JJ#GWjS+CNHi#au02Tp4uU@Y>J8*wEo9!h!T;;r&B?crLz;~kZt;c( z!sHw(dHzhU(Q6h-@RXY{1NctsEqY<0TzIz>ypK*5{Lg!h(4ch`$Qp*MeeGxTB7^#^ zANAbyH1O#B%qrVmv9^)_?jKcpcJ2eeSAEP{pGOdD%D-pKGVF1TcSn1wtZEy<2Xn4PtYR9mq~I^%3JC#`>J1eiog zAGsGLjLs6zPEmzR$)5XAN=k#?2aB3N>zB_wlbR>rzI>;DT=5Dv$CcM_?l6kwC@Yoo z=H%;oM;L052sb1d4;Id;6NO&WB2Ol7I3%qCRC}2!K8^QVC(5qB{TwnBZ%nmwmL0|V0HoFnB{zR}N%72`g!dnL&!*aWck7(gZpspM z?v8+9avLg2PG$UV;70|mQY?-CjW~J{AVl)Ow**BP3pM`j5sej6SR=4!Btk+uB0hH| z7Kh7THP$K5ThbyOM|}{xf%OkbH{fp8)O}KiH}x!MjSl4sxsA{o_I@&SAh-RY!Lm%` zUDFt$R*Az658^Ht=h=Dw^@P7b1%E+VqvC;0|9Y6@Zpxxp*R%SNGx5)aruzbq3K|)Y z_X)wE3ySNNGx>BluW7~KZl!gyr3!w=9|z!!WBKm= zeHSF}l+Ung=G+nX;+uQS+;`6l7lEI-KY zNdha6cdcWZuLTt@G<7`ui!S$BMY%__%3hzV4`;2u&-QV5y${79YDd$F#IdC$Dw8Kg#`g8{Yi zxZhnhVf`~}TjpOlgWqTRvj*QK;j1eJTArx6S473G3TT*y+@%s*_zFN*RejPDv?`Ft zkk~gMkh~<1EBP()MMPk(7Pogjj(<8naHF@DIGnN!>KKxO%uj_K^||kT9JMHi1gkWE z`8W!NRq-DGAm*z<&;-<2Ip0v$$n9XnAp91P8rZcf?Eh9fUEKe-Sm-CULKHwHNQjeov-PB79Wab(4 z4Z%_u&A^tKkINRQ{jkH;-eyjVw13%;#dK@c z{P^CH9Asgr89X4@loeBAY1nl%RG(ZX%lXLGbDziERKDD{ke;AWS>K`F&!O{CARK|W z(8l&V$t$<)iv-2sCse>H|FC2Qc0Mp2F^I%I?}UJV&rY6pzRws$Oe+(0t~rHLekman z+7Zlt4#Q=Wh8&k~SXQqUTz`4)HvD=^EB6S)ZQhMe84)0W@er9t1ZM)Y!dSMC5fi*@ z!@VLs9Hz&v-%7>5iZOCwbUMx^P1#bWpHdf|u@5!ej;~NmemZK?+zwU9ojv0`@>BuUXc}vDB{%b*zW$I>MyE2#RPyBVvq`v~(Vf;B6n)I(+mubbm|4 zU*}@me2#S?f1o4yCYhFUUS8fa&6l%C&I5+pYP{S~On=9{WmOCQ#w686&Kjd~VX6GS z6?gjzU?Lah5+L59aA82{5EMb9y!U=`HQ?oaQ~Zk$O$;X6<#gTc!ly!G)s>ScbHHVuKa- z7!Uh9Po6YrHK_adewfW+jfg_MW8X<`M;B!GxRkMfWSge}zLU_uXgF!>GcBg87^bwPg1o(Y-7_igLk0cZzngXg>pCEK zMnx|4t{y(GDt8w807_JKl_Aq{bt2~#1ci#NW3g>d|JV`t6c}^vX>o0bJ6_#Z^1=47 zgIR@hHluJ+GwrkcYG*qmruQl|QK+jH(7oXL<84qh0CPAe>os1g4e$v1d9|1hc0bOO z`zLoHK3w{mJ^p)v3bRz3#GyT4kA3`GUMl=0i%EKYSU7V-g2p`+4{Yc^M`Rr^qsK_g zAa|7e(lb%^y&iYvzl2MNc>NEdEV_#7Y%hj-TY4n{ufS|8onB4%>*~IE$2eVy{k$A{ z|E8Qm55TnF$NEgu?(8GEb5PIzJLJld;vj)1}c;>JM<;1wa z?32b81U?`u-@VUIoVgunGpL!#*|&?^Yl9&%4>?V@jG@k*jU&56qj(lwJSAE^Muax{ zQto%cSku^-8I#_>Mb2NfDn_gC2^% z5JWBAv#};s6H9bZV*wliRZ4I4iGJnkEw{sWRN+W~%5d+MI z-4T!UO1S?Gvl=fT7D(n}_SIsMd6cWT97gI+QUv#X2+i>0Y0W7WUTY|(^=kU~5(lKGIbT*x9&8gGopMDKsg-vGQ$hjsa))}F{zq|4y zR?i^cX|ILK{jT09k@sL~@8mO@CAU1=olIPvozavk&XI4<{=F7s8pkSB+egMOaqs~p z^m$yJ_RAdg{n12+`V~jc=ud;Y(l2>_!B1gpkMp`;Csc>Z zKgTV)S0&%DY%j+5jkAcEyn6LYj?pQ(4AYzd1v;yPTw^S4+v0K{ElYIZ=HwpG0?LsN zje%*@XJn+$JdFMqLL7co`{ndumax zWAin6m^}%$jNLxkKF3`;;K*D~`XRMzjdO|-5^x+po&IIvbla-%J!@7^DrT8P>{Rd5 zzdN@#e@0TOS9@1uS}F{7zCSK;@+fOuQl|f0Z~NG3Cdp7j!qONNAU`=Di;R9GA~E?8 z8-u@=3#G6nTf&|`P`{4HU%m}QKFmlrS9_JW)KWK16vBhrseoD-*y=L)4tq)M2Y<4>` zchK^xqr)K9byUbv;5jIEj8FH*G6JW0V&2CSZHnkT$ZZtcIM1d2p=rUo`6{zau$jp!}V zsXSAyEV!Aew{ZMWTV-G0tu<0nCkmwk)1L~d<{p2|(c`7?*MJUHGUbpGE!0(Y=+$4` z+3d9SvkP=+Le(#8_4i^Rd2(3RtC&l>9OPTAXV_ove-P8DZ`}^I^;RSKb%^879~D|3 zWt+_}Cd!0!C2iPex_$dcg$SWe-hq{wpNcHo*E!eWH(EmWz#$tqB8)RNOL}_S<0g;3 z;+EAyc>PE5S`}qs<)H^j0jx>+N!Kj$uJErPm-KIx3^?AZQvXe{yX2N&HFK#W=hbK4 zIeK2R-nkNVtOe&h(p`irhqC%PQD&c)D3uBg;_m&uj;76n#y3p191cvg|B&JZD04imS z-{&uw#$r`KI)v?7B|{%>`@{lW2ooipBp=_c#Dc#eEL0zhv%KG3?i5vatj5p=tU77G zNb53GL^V`AL~)8!MBcwcIDrVgJZ+zrVzZ4#&fW>?joT~1G+&y_-3`F=8)`nf%0ckr z`Bn>Jq7Px#vTJsOGhJ=aD0VvucF%cx^=AYnZ4@I{q(SA}-NCnYy`Wav3`IwQRwB?{UR+_{_(%_ zGJo&y(J43%!$i+~~a z@-7kdynn#yo6p4wq|(syrH@2nQrwcoW`aN0=zTd&(r{M^#84jxm%KML#Y@UuwEMlA zj#07!@k7%nSYX0Ljf-?!ImyuDR19HrX<~#LHn@oL+Kl16gBr%Nu>_;LlTPo3<30GazhsD*IDL z-3Geq3wW;V;G|)V(!x1Q_{!lz`3+o-k(0H65sn~#!~gC+yUU*P!cn$gUZn%Pk%{HU zZ*ntX>LXXyCbQM)8+o)d_#PTR{S5xYuc%L<8%?2_@UNZt^YQYt?Wh)f<3^NLqd;7T+4PhZ+B*+?l>&E9Y{bqr#9)QzKYTkR?Yo2a9)0FQ zltZU4k)ApK%GYhr5MQ972b2L<(sNzd=UwWob^j&yRL@anX-NTX!oz+}Y68QC+DNgU zy>%v{A$=ne#p!jfly~Q8talhVuXjq8E<8A+JnMoLg{-ALmG~_gl~!%w-{Da0^t&hVf>%exDBjOxLCH_%zH#Vh#?&YP zvcG*b3^H>&FZ0pnL+XZK?iJ;3V#Xe+bu)0%gPmq#Mo$mhXKV)13H|uX{ikQhXA`mB zX`VRdGDotu=#?G+3kp|zuyr-{AQ6<_YM-{wf_>UA3@e6lQ#DtQc1B9-$EKl((aJLe z_O_1iF-MLwQ7FZ^2AAIxjVelQ9*Irr*#-x4^_ow<*Td0P_!a#9j86WC9ySG6s;lhX zMSnrI06xsCbYgtW3QrX|w$w}C-5fj!XfM6muL1Lz~S)4qG*idhK zv+Ml{#*C-Ub=MQIrX>fSuxBfNOq}@kkcOcL1slh8qqCB%AgBu!pnTk3@wD4(wlOYl zh0YDz`H2f{BBXM)3!?T`lKD!ilk+b0pY1~hd}8lePkjG4L@{M%=GRAlbJS_{DJ#>@ zmHGV21s&vEf%i7j6iR094&JMgCPR~AA}61^-+0C#wbiQF zdFG?UIQl>>DkQCJ?~W%-M-s#jzp60(vPo$?TJu%B@vilvu}h+xf^1@qR6%-z+DDkf z22#|N#YD+5b&i5NXmz7I>Uh z8{#S;sZC2hJsKx$jEOa}Mm7AL1pQ0Bvd(RFPuN*}93}HvVAr-#t)8k(2CSL;CA_l!H749M)ox3_>=x)H%PCH<-Uxd~@zBA>YTSwsTZo||pIMEV zC$0|mUqC$;yB}qaI`SibG0aDa0CGlv3zW>L;db=doDVy3x)3kv5+!u))jXTU(?3`w zY}otl9X$|&^-mnb-`eDZ2>Ma>nc0V|4MR_iA(mCC(-XULa%7 z$kww#TCUTFZNX5DUb~2{Rk6SL5B23~uG;?Xu@v?(N%>1P)jD~Vu)^Y>3g~`C+iry2 z{ScxayZR8~=$t~97*X15u~pG92-RRyNw04f9dIUZWxE!eg5)tFPw$QovkhE%CGkfE zw;#v#LY;7|r`#y^P-?Mbn6m=C4ccnswpL;feLw%^T7wZw z4j=QMzNTh@;*>q}MgBUw59Il%$8;*L1(B26Y^tSDZ zz@L=q{HCAb2O4BIVOlsCEyAF`nD8VSzh4M{G&J0GR2U2GNcgIZE!~PN-%wfsF+4_P z>V-}*CGC)y{FOBHHq9~EKu?m6rq3N|a@;DG{`mFnJml@2&X}7t)6!}Epee0T3H*fM zj?iD2XN6j}uvNrS)+2G1CY?*vru|hUQ~(p39m%&6;JfB^aQ}Dbe!LlXUstp92d?W znqv~K&UT83MG}(Pi6qxCaq`xCr50mJE?YGaVkf#v9DLKw9U@jmk>hz=GyCps_`vDq z4u3DBYx^%y6X+G{jM}Tur+yujrKIaR(S^EFZM_D}7diA!ICY>+{#>?qJ?0Qfl1j}l z>gmpOTRP6y99(;N34Z^~@+K^k=m7tFK0M66PjkazA-w2g{>_40UuIk86p@fLZfEfs z;C!%`kShSID?Iv`<&-on^=K4snq^M)d{-&7&Fep-v?zJw1g(`epA?IIqd}F$tk&po z`i0?RkxEH^nK!R<%gHb(Dmo#7QfTrbn?pI6;*Nw)?Z(;T%polBR$7jUtotf;jygh2 zx_QlSDk^!a+z5O?$^#VV>FdL1cYk=6gJdcOVPcv%hGO`UysnJBC`!1$`FBYS8 zuPSx@fhV>K4-(_l5l(vc``fwK+YTek5)yYNqCRcnwqr0f0Ya@`>$Y2tl@=h|YNX9k zoL8r!~Qyq#_CAG0pe9TBays0XP8)`cbXgN;FV=D8c z)>UzopvsRQcys#;7OWB3cG#8(8NO)TT`T_erOL@*7}+xUHFnMpzwFq$n}(q|b>lLr zQ_I^6c46&x^pfs#Rq`$zJ!Ff!?C^b=dCXRs?wX9h|Iu%4KGN>a#ju5jHbAJ>N`I}d z|0Jr7nL_D8RR!j!{MdpPTz?MR>ms!>Lw*H#zcRR@ccw>f&gUY+{C?~SZ)UC~UE4gk zh$i?5omj*2UQkJdF$h-vYKHCYq#a90yY-Az^?edBhy0gkrq9c?^|r-$4tQOYDx^W7 zZRTznZclo%*TRmcS1;MiWfn^pa^?R@if0~c)6HPt1(|7Cue1{DJgWj#Q2GQy5UUJ@ zYNa~b@ZsoFjZOOux6FmS>!_$}phc{ek?88{SL2k74}xIy4&Sj5|6V65vL^v)MHmo1 zTaU-fXxdA!od}+~imnFHQ`SsF)x6CL%pFd+`Q*YC82f~2B2ss1ja3ilRA0P#@k9eT zyo>7G(zPrO7i;uINE!Wc`~~*G*;gOo&V~JsxyrZMG_N%Nh$%qc&1Y90NwDFO$y}-o z9DJZ`QwFS_F1zW(F~#i{)+$@+hzYVUZxZM8o2MYBj$)z=7r=H;dXBGm`h5rc4j8CP zzoQ#{v$Y;}y&iG)4HTbuEa`0ExaF-os0a~=gOsnGv2WaeA${7PLTS2|p@0sRR{sC$ zE{x4NU77Lj>){`)IxKVV0qQAbnbi7`o1;j3=96Jzneq@U;E>4E4v%^>zWYBe0DZmk zB4)r)|D6m|>Ajo#mS8GbTFds)bKBkv;aVVq#QGTO5MSa6*!1=O6c zAqxRkGe^R=W=~VkI{a67@vLI!9OLl2!p1H{Bn@b+&V>N_FzM-+pEX=Tzf`u$Fh>Gb z$y?X#HM?$rfFv+lILPExE4>p>V-LO8D7N>SFG7qEnh$K~*piMxB7MpgPA7<SB{Il>SAaq_AK5-ty8>#D3ul zOO#s*(%dOkIHA|JJv^fW>a6&G>RGi!fdv}2cg4hQoP_BUI_kib$^@Fl9tYNLv7!gbK(k(qPpTsbGb6ZlAkLFJ4q+hPfr;QOdit<<)~^7iT; zux+|oiM|NmFsSW&HLGQp6N$195~Z^4nnq&od^j%Pe_Jw`_K=me_J)i?qEpm}I}&yR z3)`_Qr4N2-f+JCmjD=a@{fCzAhwHH>u53sfih~RKcteF7B4}#}znpu;cIxHm&~XYC zW5v;ETy?iNg={d}20PE_DqsJlORy?VBOp1sbnZdsjxBB-dR#Il1x(J{q~4g**I|Eh z6dQ9*v#VjZc)cmX8oCkhY%Gc+-2YT+E`I|r9=!cN!#6W}DJ|rvx^=@q;ItE*?;m9V8R;5;|CU(zFZMxzh#BkpK~E8Xa3;S zpe_kG71#Thcm`Kz4L)S*YR|qc`W(co8yi_JHf2TMw)5mQZbQFHX;Pkr<9Xyp3b?4n z{!2|z6>^+DDD@c?R81}xAvw6=PoG$?iyk(#2pja%rF&(M2Bn(n?h*WD>+)trDI3}EQ_Z*)!Ub6o)=i%;&3FKDHyBFr zpfg`VhzV9K$co=7tSbGTd?iml_>6QTd0U5>_P8-_A67Av&+N2 zFAlZ$$fZgnFl5$~aeEuBo4FWD+$4(zp3+!2DdGHMvw;EW^dG{?UTsM5O5zG4=^&jc zr5g}s+P=eHr-z-@d{C-sn2_>_YAH@hWUM-p0ioUP`uY|yx(Bx0tdl_!X!UD^W|yZ% z^me8_#w!*>P44Wo*u^fbeTvlhj;^QFr%Sj0WYcdLkNz_XrNVi2HD9E#Z{5#?`g^*j zIx8c`F&;zZ|5vQ*jKTR@m0ukflv_nrCb#IK&XAb=uJP%{jd-(R1CiGve{9ws^DQ?M zl=9z(Ru!P_3Oi-qB?8s99u}AW0Ad@5K2qLuU|!%&A*WM{#`QCGYwu&heSAIz210M; z*&e{+$xKbDL1XCZfXhcdqHnGei4gxHss9qS4zy-HjqQ^lZS>0%@X0i=raz5*!ec_K zf1<(|*l#@?4PdS15B1rIsKr15grW|bI!4F%LYIeD>U!lclxOeE@^)zPm%~KmYAg((g;!u2C_K3ki;z06G7^eJ= z*oPeF0N7p@m^B0}{})#44(n>M23S@dqIC8(V%=C3xeWh#na2juhI@B8={hs@VLDv@ zh@9sDEb2Km<99tJKBI5$Yp#lhoTKAKjWOs?18zZAsn6AKY#5(lV{8u6AO38%9|{3f z+@WJQ>`bVc&-Wr)QayfLLl$rYT4Fm??AR=LTt-~k-paIFEi5SOBeAJ!&#o%M1q^Wf z;A5bci5>#seb!p-LMeNu2a63*M*jPDf#b?EqjKI@w*m~+=jmx_;dF^n3-CiNz&kt7 za6P7@_70+uk9sWQ;4|B@&8MUc8-z~!X>j=ki_e3gb-=0qU)XW_~loa2au=HGL6 zChHpQ_~I_U`qc)B{f8PN4PtcCvChOxLPGu*zyy z$S<(-SsaIECx;$5m50BI`uj8Awz$CwZ}IYW-;*|_vr&Y(b<>h#T{3&kkw?tVN)mFLJD7> z?bUlS*PV1l+DU@&j2%~gD>XEfDdxMmY(Qhv-%zBlb?!Ru zDumaQ>YRku`P}U~40T&?-#71RE-U4&S|psTna}j)y%vq_qtZLEOkFj5(haUm$DiGr z$o&uuRRG3tErDg{EhN^HljivipFy;|czkJ<^g3L_A@)K3Q)eQv%BfqRSOVtQ5=`S zH$A^k5U{S+eiDjQ3jPAULlUaXqquA&v6j8r2MA9+2y>$eYilQ37swAX;ANuFqS((X z{THSXq5Y?p#m;?ot+UE|R1nZ2H|z@L@^7_PQOIYOSN}YY}e03Y?%op<7Qqr&bE`GE6+b_0C_|fF4s^#OisX1cK>MU^CSz5I@gbdVK>o4_@ZOm zEsi-k=dWxuD|Rej7fRhl!sN(jI^aGkjT8Y+yuv$a0*lgZ7bHxapOoXTK(_w!WNT7h zXO(LIr3P7_2SX-JzA<=3Bmp?rHsk#tWCaJ(7L8wBrp}PF9(|_jv%uy9vEL`Wc#i8$BohJC^FidrS+DlikTX$bPj?v50;C?U|I#V~XF zn{rkqRN|^89pA_%#J>$4wpjLdJ= z%YYZjllKq6^!|cb0C9@cW!l~tBRk_8{oqaLt%i2JeH0{BmctMPE+TAdIP8apUjT;M z-}x7)uhi+4bZ)n}I;W;;YWljtZ zZZgKN4<+PY_rFoR|086&4016g&eqZVvN}`sN)Jl`5zfM4Jk808A|QGyw;hPM|+s!CN)Veh_YRolbG=WnsY zYrxF_$^GGVqjMvZHI4v5YcviKeP3zqF{AyE(yIdA%ZBd)joE#-3{nhKTt}a`iC!<} z{B2|k_7Rc<<$3kaA>!M{2Y&~2H+t*aA(rDjC=RXPvEwpgM-noblZGX8P0Lq|*lL@h zE??Thi`(&)ccPkg6&Eosb+Gs~b(sZvPJ{ht0wKxc&!AKr{`>s(W#Zf0ss9(lMuSw| zA7cUQP7P(qd6}WCP{5ax6tY7=5WxGO_Ef|4o7g3hy%n=scJcHpfLdsJdPlWwwf37h zo(@c|c|=COt81rNT4y2@9g;jiTccGOe}7R2b_pFp5{1c+HI|>kBnM6#>F4x+^{3=y`p6v47gj^E>Y^Rf3`OfZ#4SpoQmlB#B1UFr{ecr3 zR#V>szQZf}McP_hpBlt;{xZgEG8(t_N;|5@R7{~8Z^rFPqSd`HdVTH~^69EIlS=bK zSU9|MdaCKazQMU8myHkCj?KZSyuq~CAWGfll-9q**#;hrJ~i7Nj{5n#80!3H1DF`2 zkNs(bS0Fe+N`3xb;oM=uo;Ujj9~|4^FeLTyIcPkjEiCw@afquDd=XoFj6alE7as&lo+$DqI0F&(xmmYTgE@wMCxnk71qD^j~VR* z0o|PVef<+{N&ZbISh^hDCs@Zjdr%bFG8y@#V;WQ8Glu6P*uBDR%L391jl>dz}w!zK1Z zsb3+cDHR#bt4LBEr8pxs&RV$$@aO-*r1`Ic6mygwcihH>RxE_x^Hh08b~?I)d~=KN zF76g&9PjLhq6J*td-o13Z%i+ARb+0~8#+`*<_aGF1=sr=U`^*wt9K2petZqz7%9b- zbPHV>vj0QaY54hyjW~Ws)1`CM$9Mley1v+vEd1STQT_JCx!BcxNc%3C>;}8NDEfBa zftvBI2!nms-%6Y>Y-(ZEZL?1j@bPnEa$!Z{fFtEauf28^S;jDVOe16;&QW zYR+02mr=X9TSMa0n~ z&x4z$RUP$vnf9Ue0F~DY zbTu^XG1~Bgf+=kRwDKP3wsnkOUUI)chyN2pv-o4h(i4C-no}ze72;Fvt!}}Z?5MM| z!p@KLr&&Jo%7$O|^h=0w+&Z@qE)6Du(ynIks#{2`mzkt8=V&=8RX~idR=d>?7Ly9? zqt8Y5!)YvTCi|A~%ITrkYx{L$7Mwr=6=jG zu#Y2Gb;odXhqLOzmOH#1d|upA1-88Fn zGKDKOnf`ydjVk`$AibwOXq!=mf4ei}{CSoQ3+qpDlLu8F!$n^wWAdoL&d%H7{- zjMXbdXYnbObv;6kKCb3F@iH}VdCLj>T3fZCebqcK1eV8i;LBz53;D!8nR5~MNa{=}Myz{tQ?N^|p@CN7W zkQ5+u(+3aW8{@)J6xC-2R_Xx@Q9uYFEv0C1ZJExG*da%#C?}S?0qy*G5?%v0rr%d* z%+;QXW@?nGH(p|3ewf7q^{PVoP(#HVt)JeS_SU zdSJ5Ybx_hktu+&R&)m*TNm%tm~rD0{U@YDlB6=dTNLK8#Sx8g+}4M8~!R;nMGM zL{=*k6kz>khgz$;zTzlfuDpNIMxd>??hQ$mQ`ZVLUZQa%Jrz<;^EQJZyk}+TFss6T z6|j*0*ILdaeyc-~VG!2->fi4`1x)1G8Glq$v(J_AFN$piEFN+MwqHjSx?3RuOodEQ z8i9f@_XYQSiuiYsBe}kWHH-0nxK_^&^gm^A95i@_dtg# z{4H6NvOQ2Vpae=*^sX{hi-pFSj_-@moV{KTA7m1)$ze(UOZQ%c6?$Ydn7ndEn4#yw z0u9Qq@yc(GOYN~8yXiGXj-zBz(LjcpS<{5awbD>4t&-a1f$u=oom{6psjNZYQhlav z+OT;FS>(y#RUI!X9jBb7cTlglRRU)ZP#Hm(JOwKz6cu5{W|Ic;`k7?z*|gUhb(-2H zJ#G9GF><#wvmS2s1l=)~;j5KAh%?0)R?SW0>yN;%XFaIYTT^&#>j9jKS{@rUslBmF z2^RXt`S4lg?@FqcIrtQalI%RdbsG4J{PG$e)ze?Dx$Nm`%E0a1usIm;?ZX7+3{V=Pk8b zp7kawuBRja^_`IP7wcl-N6{yJBGqD|@s3D?;XmN`D^QrgRaa>VGObeoEltMhwsZxYJhYr~SuCX)^W~sCE3cC|+Vq?~L3z0rh0= zFGzAWj1*Cpobcb2jY>rAq6eJvB>X2ze|1KW%rKdWvU}6*`dMSTl`w72y@PejwACCMt`>wN`}gVOW}x6qZFkezxQ1@%W9Cf zYu!F~7R?C>@Z}gRZLelIgasM$vJ>2~D?VTqQ3KI-?cW&NO>r>%{Bga1#&@k<9e|<#2Pj6MsJ2Fh*Ry^@OI8>7#UXGm z!<)5KYeztSz>}UsD-x##IWGi#C0!TaG~nl2ar+{AVxJfub>u~ld__XX!)480pWYX7 ziuZz0GYw1B;%(1eJGYgk^<97{ijr+v?Q7r0;JBdJe|zSDWs2fg8_L|*({%d}tW8j% z&rvz&lrJ@63SHlqu@WOrDAd%0kA)i)xH^F3&1xOlF4oB#spUc$uWXWhnw5j)`Z;b7 zt+AwQ2!KXkde_g;Wq}=GMak9h>M3qrgs3p}Xf33my_y}lehH=6X+6v0Ak52W;Et7_ zMY4>Dde+6(K^!qtEg01GDa9Ppm`D6iNA9DfZOqM$2ViVAr3aj)#($b^Qn{V0nR!=G z=RMcIvFu5s0+)zF4$?nA?s0zuU+E@PFg&Gr#|piNKy^8J898;|#K}2q)nKegqPk3K zS@Rm)FDebUp)K_&{V+TiSi~-#G5z?jvy@j&?I&JM4k8LQ&BZ2>k9Mjwe z@MJm22On`u&q<=C;iZHpPCM!t?Y|0q0um4YI6&ttkB6Dov4}Zxx>*L)iPTRfO8n|K$O3MN<-U^?2a8CoD`%( zZ|xTSa;8O8!~v#wRcXQ`7^Bf6M4^&7?cnpZeY2XK36{}67xPhLD!l;G z_+8NGl)Z^fW!v*35A?{pb9F51PfW1)fe|;@S5YNL6Ij> zO7h2#4OuW=6wC|G`P6E4``|L5xVV9}*`Dw;9O#fxL>-U7wyloy&T%iCdfrx^m6ktc zwoec9&rvl`dqgCEzW*Rg=z;PpYG6C3x@Q)+ekjx-Yg-~lS;6$ol;ROrW5At`Pf_`I zJDZ%QoJH@EA?Fz9+%?^m-Or-f4Ffi;4@|S%%p%%~^))%C;N|PC(ft$LK2tsStk{bL z9tj1&GHy?wV`g8Q(2m^d0=v&<&+;9|9)cgzX!kbBkLX==aU^`G>-^e>OW*ymQO)fd@?E3gFo3*< z@-Nc(IexW34dQj9{p~B83w@vdkxlU5AO8Ci>MrY$tU-HiajWH%ho8)Jr|ks?|5kd_ zm{v2xnXRcHRF$%g4seGViYj@H!L0uO f$A9Re_F1TJKa??a4ThOA(9BU#yPYp*7V!TAa0N57 literal 0 HcmV?d00001 From c8e3ef919d469a0a81db22a14f7b6222b9339736 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 13 Jul 2016 10:04:15 +0200 Subject: [PATCH 025/116] Fix logo name --- source/_components/switch.tplink.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/switch.tplink.markdown b/source/_components/switch.tplink.markdown index 65bf8579803..3ae81fb44f8 100644 --- a/source/_components/switch.tplink.markdown +++ b/source/_components/switch.tplink.markdown @@ -7,7 +7,7 @@ sidebar: true comments: false sharing: true footer: true -logo: tplink.png +logo: tp-link.png ha_category: Switch --- From d3a8271bfa9af570be4a6ad01a44ce5233cf5074 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 13 Jul 2016 10:18:45 +0200 Subject: [PATCH 026/116] Fix category --- source/_components/notify.joaoapps_join.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/notify.joaoapps_join.markdown b/source/_components/notify.joaoapps_join.markdown index 46e3c5e3701..a7de35171f5 100644 --- a/source/_components/notify.joaoapps_join.markdown +++ b/source/_components/notify.joaoapps_join.markdown @@ -8,7 +8,7 @@ comments: false sharing: true footer: true logo: joaoapps_join.png -ha_category: Notify +ha_category: Notifications ha_release: "0.24" --- From 9e4678f8c5190a0a0080258696e347ad3134a03d Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 13 Jul 2016 12:34:14 +0200 Subject: [PATCH 027/116] Revert "Added set_brightness to website docs." (#636) --- source/_components/light.markdown | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/source/_components/light.markdown b/source/_components/light.markdown index ebc5497623d..c54acd0ebb6 100644 --- a/source/_components/light.markdown +++ b/source/_components/light.markdown @@ -61,16 +61,3 @@ Toggles the state of one or multiple lights using [groups]({{site_root}}/compone | ---------------------- | -------- | ----------- | | `entity_id` | no | String or list of strings that point at `entity_id`s of lights. Else targets all. | `transition` | yes | Integer that represents the time the light should take to transition to the new state. - -### {% linkable_title Service `light.set_brightness` %} - -Changes the brightness of one or multiple lights using [groups]({{site_root}}/components/group/). - -*Note*: This currently is only supported by the [Lifx]({{site_root}}/components/light.lifx/ component. - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | no | String or list of strings that point at `entity_id`s of lights. Else targets all. -| `transition` | yes | Integer that represents the time the light should take to transition to the new state. -| `brightness` | yes | Integer between 0 and 255 for how bright the color should be. - From 94a39d42d66438d6f44109ad7b8f75d732b4199f Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 13 Jul 2016 12:56:17 +0200 Subject: [PATCH 028/116] Add initial KNX docs for binary sensors and switches --- source/_components/binary_sensor.knx.markdown | 15 +++++++++++++++ source/_components/switch.knx.markdown | 15 +++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 source/_components/binary_sensor.knx.markdown create mode 100644 source/_components/switch.knx.markdown diff --git a/source/_components/binary_sensor.knx.markdown b/source/_components/binary_sensor.knx.markdown new file mode 100644 index 00000000000..f9af2538a4a --- /dev/null +++ b/source/_components/binary_sensor.knx.markdown @@ -0,0 +1,15 @@ +--- +layout: page +title: "KNX Binary Sensor" +description: "Instructions how to setup the KNX binary sensors within Home Assistant." +date: 2016-07-13 07:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: zknx.png +ha_category: Binary Sensor +ha_release: 0.24 +--- + +To get your KNX binary sensors working with Home Assistant, follow the instructions for the [KNX component](/components/knx/). diff --git a/source/_components/switch.knx.markdown b/source/_components/switch.knx.markdown new file mode 100644 index 00000000000..d90f21ccb06 --- /dev/null +++ b/source/_components/switch.knx.markdown @@ -0,0 +1,15 @@ +--- +layout: page +title: "KNX Switch" +description: "Instructions how to setup the KNX switches within Home Assistant." +date: 2016-07-13 07:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: zknx.png +ha_category: Switch +ha_release: 0.24 +--- + +To get your KNX switches working with Home Assistant, follow the instructions for the [KNX component](/components/knx/). From 5487863bd894b9706e0c9b13b8fbfcb88847b4ca Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 13 Jul 2016 18:39:01 +0200 Subject: [PATCH 029/116] Update title, desc, and date --- ...13-sqlalchemy-knx-join-simplisafe.markdown | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 source/_posts/2016-07-13-sqlalchemy-knx-join-simplisafe.markdown diff --git a/source/_posts/2016-07-13-sqlalchemy-knx-join-simplisafe.markdown b/source/_posts/2016-07-13-sqlalchemy-knx-join-simplisafe.markdown new file mode 100644 index 00000000000..e20ba7bca72 --- /dev/null +++ b/source/_posts/2016-07-13-sqlalchemy-knx-join-simplisafe.markdown @@ -0,0 +1,90 @@ +--- +layout: post +title: "0.24: SQLAlchemy, KNX, Join by Joaoapps, and SimpliSafe." +description: "This new release of Home Assistant contains support for KNX, Join by Joaoapps, and SimpliSafe. As of now our new database backend is SQLAlchemy which gives you more flexibility for storing your data." +date: 2016-07-13 15:00:00 +0000 +date_formatted: "July 13, 2016" +author: Fabian Affolter +author_twitter: fabaff +comments: true +categories: Release-Notes +--- + +It's time for Home Assistant 0.24 and it's full of new integration for your Home. It contains some structural changes to our history which requires action from your end, so please keep reading. + +[Roy Hooper][@rhooper] did an amazing job migrating the history support from being tied to SQLite to use the ORM SQLAlchemy instead. This means that you can now use **any** SQL backend for the history. So besides SQLite you can now databases like MySQL or PostgreSQL. However, this does require that you run a command to migrate your existing history over. We tried to make the process as seamless as possible by introducing a new command line script: + +```bash +$ hass --script db_migrator --config /path/to/config +``` + +You can omit the `--config` option if you use the default configuration directory. Run the script with `--help` to get more options. + + + +- Config: Improved support for storing [secrets][secrets] ([@kellerza]) +- Sensor: Support for [Yahoo! Weather][yahoo-weather] ([@pvizeli]) +- Add scripts to command line to expose advanced options ([@balloob]) +- Alarm: [SimpliSafe][simplisafe] is now supported ([@w1ll1am23]) +- Core: Switch to SQLAlchemy for the Recorder component ([@rhooper]) +- Sensor: The [IMAP sensor][imap-sensor] platform is observing Email accounts ([@danieljkemp]) +- Support for [Join by Joaoapps][join-joaoapps] added incl. [Join Notify][join-notify] ([@nkgilley]) +- Media Player: [Plex] will no longer spam the logs if server goes offline ([@dale3h]) +- Sensor: [APCUPSd Sensor][apcupsd-sensor] now supports names, icons and units ([@dale3h]) +- Lock: [Verisure] entities will now use name instead of serial number for entity id ([@turbokongen]) +- [StatsD] can now also export attributes ([@bah2830]) +- Support for [KNX] added ([@usul27]) +- Switch: [TPLink] HS100/HS110 now supported ([@GadgetReactor]) +- Stability fixes for [RFXTRX] ([@Danielhiversen]) +- Tweaks to [Z-Wave] ([@turbokongen]) +- Light: [Brightness] now clamped to 0-255 ([@keatontaylor]) +- Thermostat: [Radiotherm] HVAC mode now supported ([@danieljkemp]) +- Sensor: [Google Travel] times can now use dynamic locations for start/end ([@bah2830]) +- Notify: Allow sending photos to [Telegram] ([@pvizeli]) +- Frontend: Improve loading times ([@balloob]) +- Frontend: Fix stream not reconnecting after standby ([@balloob]) +- Frontend: Wait up to two seconds for new state before resetting toggle after toggling state ([@balloob]) + +### {% linkable_title Breaking changes %} + +- Migrating existing databases (see above). +- The [APCUPSd Sensor][apcupsd-sensor] was updated. This will need that you modify your `configuration.yaml` file. +- Entity IDs of Verisure locks will change. This is a one time change but should improve readability. + +### {% linkable_title FAQ %} + +- Frequently asked questions about this release will show up here... + +[@bah2830]: https://github.com/bah2830/ +[@balloob]: https://github.com/balloob/ +[@dale3h]: https://github.com/dale3h/ +[@danieljkemp]: https://github.com/danieljkemp +[@GadgetReactor]: https://github.com/GadgetReactor +[@keatontaylor]: https://github.com/keatontaylor +[@kellerza]: https://github.com/kellerza/ +[@nkgilley]: https://github.com/nkgilley +[@pvizeli]: https://github.com/pvizeli/ +[@rhooper]: https://github.com/rhooper/ +[@turbokongen]: https://github.com/turbokongen/ +[@usul27]: https://github.com/usul27 +[@w1ll1am23]: https://github.com/w1ll1am23/ + +[apcupsd-sensor]: /components/sensor.apcupsd/ +[Brightness]: /components/light/ +[Google Travel]: /components/sensor.google_travel_time/ +[imap-sensor]: /component/sensor.imap/ +[join-joaoapps]: /components/joaoapps_join/ +[join-notify]: /components/notify.joaoapps_join/ +[KNX]: /components/knx/ +[Plex]: /components/media_player.plex/ +[Radiotherm]: /components/thermostat.radiotherm/ +[recorder]: /components/recorder/ +[secrets]: /topics/secrets/ +[simplisafe]: /components/alarm_control_panel.simplisafe/ +[StatD]: /components/statsd/ +[Telegram]: /components/notify.telegram/ +[TPLink]: /components/switch.tplink/ +[Verisure]: /components/lock.verisure/ +[yahoo-weather]: /components/sensor.yweather/ +[Z-Wave]: /components/zwave/ + From 22ac71388e3ce38498d7dd4aecb7bb24eceeb5b5 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 13 Jul 2016 18:39:28 +0200 Subject: [PATCH 030/116] Rename blog post --- source/_posts/2016-07-15-tbd.markdown | 91 --------------------------- 1 file changed, 91 deletions(-) delete mode 100644 source/_posts/2016-07-15-tbd.markdown diff --git a/source/_posts/2016-07-15-tbd.markdown b/source/_posts/2016-07-15-tbd.markdown deleted file mode 100644 index dd1f91b5579..00000000000 --- a/source/_posts/2016-07-15-tbd.markdown +++ /dev/null @@ -1,91 +0,0 @@ ---- -layout: post -title: "0.24: TBD (rename file too)." -description: "" -date: 2016-07-15 00:31:00 +0000 -date_formatted: "July 15, 2016" -author: Paulus Schoutsen -author_twitter: balloob -comments: true -categories: Release-Notes ---- - -It's time for Home Assistant 0.24 and it's full of new integrations for your Home. It contains some structural changes to our history which requires action from your end, so please keep reading. - -[Roy Hooper][@rhooper] did an amazing job migrating the history support from being tied to SQLite to use the ORM SQLAlchemy instead. This means that you can now use **any** SQL backend for the history. So besides SQLite you can now databases like MySQL or PostgreSQL.However, this does require that you run a command to migrate your existing history over. We tried to make the process as seamless as possible by introducing a new command line script: - -```bash -hass --script db_migrator --config /path/to/config -``` - -You can omit the `--config` option if you use the default configuration directory. Run the script with `--help` to get more options. - - - - -- Config: Improved support for storing [secrets][secrets] ([@kellerza]) -- Sensor: Support for [Yahoo! Weather][yahoo-weather] ([@pvizeli]) -- Core: Add scripts to command line to expose advanced options ([@balloob]) -- Alarm: [SimpliSafe][simplisafe] is now supported ([@w1ll1am23]) -- Core: Switch to SQLAlchemy for the Recorder component ([@rhooper]) -- Sensor: The [IMAP sensor][imap-sensor] platform is observing Email accounts ([@danieljkemp]) -- Support for [Join by Joaoapps][join-joaoapps] added incl. [Join Notify][join-notify] ([@nkgilley]) -- Media Player: [Plex] will no longer spam the logs if server goes offline ([@dale3h]) -- Sensor: [APCUPSd Sensor][apcupsd-sensor] now supports names, icons and units ([@dale3h]) -- Lock: [Verisure] entities will now use name instead of serial number for entity id ([@turbokongen]) -- [StatsD] can now also export attributes ([@bah2830]) -- Support for [KNX] added ([@usul27]) -- Switch: [TPLink] HS100/HS110 now supported ([@GadgetReactor]) -- Stability fixes for [RFXTRX] ([@Danielhiversen]) -- Tweaks to [Z-Wave] ([@turbokongen]) -- Light: [Brightness] now clamped to 0-255 ([@keatontaylor]) -- Thermostat: [Radiotherm] HVAC mode now supported ([@danieljkemp]) -- [Google Travel] times can now use dynamic locations for start/end ([@bah2830]) -- Notify: Allow sending photos to [Telegram] ([@pvizeli]) -- Frontend: Improve loading times ([@balloob]) -- Frontend: Fix stream not reconnecting after standby ([@balloob]) -- Frontend: Wait up to two seconds for new state before resetting toggle after toggling state ([@balloob]) - -### {% linkable_title Breaking changes %} - -- Migrating existing databases (see above). -- The [APCUPSd Sensor][apcupsd-sensor] was updated. This will need that you modify your `configuration.yaml` file. -- Entity IDs of Verisure locks will change. This is a one time change but should improve readability. - -### {% linkable_title FAQ %} - -- Frequently asked questions about this release will show up here... - -[@bah2830]: https://github.com/bah2830/ -[@balloob]: https://github.com/balloob/ -[@dale3h]: https://github.com/dale3h/ -[@danieljkemp]: https://github.com/danieljkemp -[@GadgetReactor]: https://github.com/GadgetReactor -[@keatontaylor]: https://github.com/keatontaylor -[@kellerza]: https://github.com/kellerza/ -[@nkgilley]: https://github.com/nkgilley -[@pvizeli]: https://github.com/pvizeli/ -[@rhooper]: https://github.com/rhooper/ -[@turbokongen]: https://github.com/turbokongen/ -[@usul27]: https://github.com/usul27 -[@w1ll1am23]: https://github.com/w1ll1am23/ - -[apcupsd-sensor]: /components/sensor.apcupsd/ -[Brightness]: /components/light/ -[Google Travel]: /components/sensor.google_travel_time/ -[imap-sensor]: /component/sensor.imap/ -[join-joaoapps]: /components/joaoapps_join/ -[join-notify]: /components/notify.joaoapps_join/ -[KNX]: /components/knx/ -[Plex]: /components/media_player.plex/ -[Radiotherm]: /components/thermostat.radiotherm/ -[recorder]: /components/recorder/ -[secrets]: /topics/secrets/ -[simplisafe]: /components/alarm_control_panel.simplisafe/ -[StatD]: /components/statsd/ -[Telegram]: /components/notify.telegram/ -[TPLink]: /components/switch.tplink/ -[Verisure]: /components/lock.verisure/ -[yahoo-weather]: /components/sensor.yweather/ -[Z-Wave]: /components/zwave/ - From 8181da63bcc206e7d16be3038ad8ea6fa26a05fc Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 13 Jul 2016 18:42:00 +0200 Subject: [PATCH 031/116] Update for 0.24 --- source/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/index.html b/source/index.html index 0aabf789962..fb0b96f7367 100644 --- a/source/index.html +++ b/source/index.html @@ -15,11 +15,11 @@ hide_github_edit: true