From 8661c807d5f5fe3bffefe4eb767770da2e9c81a5 Mon Sep 17 00:00:00 2001 From: happyleavesaoc Date: Fri, 19 May 2017 13:09:01 -0500 Subject: [PATCH 01/24] Update sensor.usps.markdown (#2662) --- source/_components/sensor.usps.markdown | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/source/_components/sensor.usps.markdown b/source/_components/sensor.usps.markdown index 4f07f171e31..062ef7c7f6b 100644 --- a/source/_components/sensor.usps.markdown +++ b/source/_components/sensor.usps.markdown @@ -12,8 +12,8 @@ ha_category: Sensor ha_release: 0.36 --- -The `usps` platform allows one to track deliveries by the [US Postal Service (USPS)](https://www.usps.com/). -In addition to having a USPS account, you will need to complete the "Opt-In" process by clicking "Get Started Now" on [this page](https://my.usps.com/mobileWeb/pages/intro/start.action). Currently, you also will need to have a package listed in the "Package Dashboard" in order for the component to complete set-up. +The `usps` platform allows one to track deliveries and inbound mail from the [US Postal Service (USPS)](https://www.usps.com/). +In addition to having a USPS account, you will need to complete the "Opt-In" process by clicking "Get Started Now" on [this page](https://my.usps.com/mobileWeb/pages/intro/start.action). You must also "Opt-In" to [Informed Delivery](https://informeddelivery.usps.com/box/pages/intro/start.action) to see inbound mail. To enable this sensor, add the following lines to your `configuration.yaml`: @@ -25,23 +25,13 @@ sensor: password: YOUR_PASSWORD ``` +You will see two new sensors, one for packages and one for mail. + Configuration options for the USPS Sensor: - **username** (*Required*): The username to access the MyUSPS service. - **password** (*Required*): The password for the given username. -- **name** (*Optional*): Name the sensor (default: your mailing address). -- **update_inverval** (*Optional*): Minimum time interval between updates. Default is 1 hour. Supported formats: - - `update_interval: 'HH:MM:SS'` - - `update_interval: 'HH:MM'` - - Time period dictionary, e.g.: -
update_interval:
-        # At least one of these must be specified:
-        days: 0
-        hours: 0
-        minutes: 3
-        seconds: 30
-        milliseconds: 0
-    
+- **name** (*Optional*): Prefix for sensor names (defaults to "USPS")

The USPS sensor logs into the MyUSPS website to scrape package data. It does not use an API. From d9a5f3bd5d23f6ade3e752524a46d556320f8f83 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 20 May 2017 15:37:01 +0200 Subject: [PATCH 02/24] Add screenshots (#2669) --- source/_docs/automation/editor.markdown | 43 +++++++++++++++--- .../docs/automation-editor/new-action.png | Bin 0 -> 34346 bytes .../docs/automation-editor/new-automation.png | Bin 0 -> 14074 bytes .../docs/automation-editor/new-trigger.png | Bin 0 -> 46107 bytes 4 files changed, 37 insertions(+), 6 deletions(-) create mode 100644 source/images/docs/automation-editor/new-action.png create mode 100644 source/images/docs/automation-editor/new-automation.png create mode 100644 source/images/docs/automation-editor/new-trigger.png diff --git a/source/_docs/automation/editor.markdown b/source/_docs/automation/editor.markdown index 66e44f34221..5fc9f4695b1 100644 --- a/source/_docs/automation/editor.markdown +++ b/source/_docs/automation/editor.markdown @@ -11,11 +11,41 @@ footer: true In Home Assistant 0.45 we have introduced the first version of our automation editor. The editor is still in a very early stage and rough around the edges. For now we are only supporting Chrome but better browser support is planned for the future. -If you just created a new config with Home Assistant then you're all set! Go to the UI and enjoy. +If you just created a new configuration with Home Assistant then you're all set! Go to the UI and enjoy. -## {% linkable_title Updating your config to use the editor %} +From the UI choose **Automation** which is located in the sidebar. Press the **+** sign in the lower right corner to get started. This example is based on the manual steps described in the [Getting started section](/getting-started/automation/) for a [`random` sensor](/components/sensor.random/). -The automation editor reads and writes to the file `automations.yaml` in your configuration folder. Make sure that you have set up the automation component to read from it: +Choose a meaningful name for your automation rules. + +

+ +

+ +If the value of the is greater than 10 then the automation rule should apply. + +

+ +

+ +Firing a [persistent notification](/components/persistent_notification/) is the result. + +

+ +

+ +As "Service Data" we want a simple text that is shown as part of the notification. + +```json +{ + "message": "Sensor value greater than 10" +} +``` + +Don't forget to save your new automation rule. + +## {% linkable_title Updating your configuration to use the editor %} + +The automation editor reads and writes to the file `automations.yaml` in your [configuration](/docs/configuration/) folder. Make sure that you have set up the automation component to read from it: ```yaml # Configuration.yaml example @@ -27,12 +57,12 @@ If you still want to use your old automation section, add a label to the old ent ```yaml automation old: - trigger: - platform: … + platform: ... ``` -## {% linkable_title Migrating your automations to automations.yaml %} +## {% linkable_title Migrating your automations to `automations.yaml` %} -If you want to migrate your old automations to use the editor, you'll have to copy them to `automations.yaml`. Make sure that `automations.yaml` remains a list! For each automation that you copy over you'll have to add an id. This can be any string as long as it's unique. +If you want to migrate your old automations to use the editor, you'll have to copy them to `automations.yaml`. Make sure that `automations.yaml` remains a list! For each automation that you copy over you'll have to add an `id`. This can be any string as long as it's unique. ```yaml # Example automations.yaml entry @@ -56,3 +86,4 @@ If you want to migrate your old automations to use the editor, you'll have to co

Any comments in the YAML file will be lost when you update an automation via the editor.

+ diff --git a/source/images/docs/automation-editor/new-action.png b/source/images/docs/automation-editor/new-action.png new file mode 100644 index 0000000000000000000000000000000000000000..e488a9ed432f5dceadd18c27856234f049c35003 GIT binary patch literal 34346 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ⅈ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 DZG5`- literal 0 HcmV?d00001 diff --git a/source/images/docs/automation-editor/new-automation.png b/source/images/docs/automation-editor/new-automation.png new file mode 100644 index 0000000000000000000000000000000000000000..58d6966cf23df14be9ba5df244a654168ecf14d0 GIT binary patch literal 14074 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 literal 0 HcmV?d00001 diff --git a/source/images/docs/automation-editor/new-trigger.png b/source/images/docs/automation-editor/new-trigger.png new file mode 100644 index 0000000000000000000000000000000000000000..76aa4a9a7f022c18c0d42f52dd7ed664dc588353 GIT binary patch literal 46107 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 Dw=n~= literal 0 HcmV?d00001 From df5799ae42a9629b0f013ce01e1a4ba313209e65 Mon Sep 17 00:00:00 2001 From: florincosta Date: Sat, 20 May 2017 23:46:48 +0300 Subject: [PATCH 03/24] Add raspihats binary_sensor documentation (#2574) * Add raspihats component documentation * Added raspihats binary_sensor documentation * Add raspihats switch documentation --- .../binary_sensor.raspihats.markdown | 47 +++++++++++++++++++ source/_components/switch.raspihats.markdown | 47 +++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 source/_components/binary_sensor.raspihats.markdown create mode 100644 source/_components/switch.raspihats.markdown diff --git a/source/_components/binary_sensor.raspihats.markdown b/source/_components/binary_sensor.raspihats.markdown new file mode 100644 index 00000000000..5a76cbe2559 --- /dev/null +++ b/source/_components/binary_sensor.raspihats.markdown @@ -0,0 +1,47 @@ +--- +layout: page +title: "Raspihats Binary Sensor" +description: "Instructions how to integrate Raspihats add-on boards for Raspberry PI into Home Assistant as a binary_sensor." +date: 2017-05-01 04:09 +sidebar: true +comments: false +sharing: true +footer: true +logo: raspihats.png +ha_category: Binary Sensor +ha_release: 0.44 +ha_iot_class: "Local Push" +--- + +The `raspihats` binary sensor platform allows you to read sensor values ​​using the digital inputs of the [raspihats](http://www.raspihats.com/) boards. + +To use your `raspihats` boards in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +binary_sensor: + - platform: raspihats + i2c_hats: + - board: DI6acDQ6rly + address: 0x60 + channels: + - index: 0 + name: PIR Office + invert_logic: true + device_class: motion + - index: 1 + name: PIR Bedroom +``` + +Configuration variables: + +- **i2c_hats** (*Optional*): Array of used I2C-HATs. + - **board** (*Required*): The board name [Di16, Di6Rly6, DI16ac, DI6acDQ6rly]. + - **address** (*Required*): The board I2C address, hex value. + - **channels** (*Required*): Array of used digital input channels. + - **index** (*Required*): Digital input channel index. + - **name** (*Required*): Friendly name to use for the frontend. + - **invert_logic** (*Optional*): Inverts the input logic, default is `false`. + - **device_class** (*Optional*): See device classes in [binary_sensor component](/components/binary_sensor/), default is `None` + +For more details about the `raspihats` add-on boards for Raspberry PI, visit [raspihats.com](http://www.raspihats.com/). diff --git a/source/_components/switch.raspihats.markdown b/source/_components/switch.raspihats.markdown new file mode 100644 index 00000000000..0c13b8a1682 --- /dev/null +++ b/source/_components/switch.raspihats.markdown @@ -0,0 +1,47 @@ +--- +layout: page +title: "Raspihats Switch" +description: "Instructions how to integrate Raspihats add-on boards for Raspberry PI into Home Assistant as a switch." +date: 2017-05-15 04:20 +sidebar: true +comments: false +sharing: true +footer: true +logo: raspihats.png +ha_category: Switch +ha_release: 0.45 +--- + + +The `raspihats` switch platform allows you to control the digital outputs of your [raspihats](http://www.raspihats.com/) boards. + +To use your raspihats boards in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: raspihats + i2c_hats: + - board: DI6acDQ6rly + address: 0x60 + channels: + - index: 0 + name: Fan Office + invert_logic: true + initial_state: true + - index: 1 + name: Light Office +``` + +Configuration variables: + +- **i2c_hats** (*Optional*): Array of used I2C-HATs. + - **board** (*Required*): The board name. + - **address** (*Required*): The board I2C address, hex value. + - **channels** (*Required*): Array of used digital output channels. + - **index** (*Required*): Digital output channel index. + - **name** (*Required*): Friendly name to use for the frontend. + - **invert_logic** (*Optional*): Inverts the output logic, default is `False`. + - **initial_state** (*Optional*): Initial state, default is `None`, can also be `True` or `False`. `None` means no state is forced on the corresponding digital output when this switch is instantiated. + +For more details about the Raspihats add-on boards for Raspberry PI, visit [raspihats.com](http://www.raspihats.com/). From e66a4a27942d43298a0d407a7e24894c52ab8c31 Mon Sep 17 00:00:00 2001 From: Robbie Trencheny Date: Sat, 20 May 2017 16:37:28 -0700 Subject: [PATCH 04/24] Embed Ben's video into the post --- .../2017-05-20-automation-editor-zwave-panel-ocr.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_posts/2017-05-20-automation-editor-zwave-panel-ocr.markdown b/source/_posts/2017-05-20-automation-editor-zwave-panel-ocr.markdown index d650a45a568..a4bcb0c8195 100644 --- a/source/_posts/2017-05-20-automation-editor-zwave-panel-ocr.markdown +++ b/source/_posts/2017-05-20-automation-editor-zwave-panel-ocr.markdown @@ -23,6 +23,10 @@ First thing for this release is a feature that has been requested a lot: an auto Check this [video](https://youtu.be/0j_hWdCTip4) by [Ben](https://twitter.com/BRUHautomation) from [BRUHautomation](http://www.bruhautomation.com/) to see the new release in action. +
+ +
+ As the editor is experimental, there are some limitations. These include that Chrome/Chromium is the only supported browser, we don't support all triggers and actions and there is no support for conditions yet. But the foundation is there and so if you want to contribute to this, come help! On the Z-Wave front a lot has happened. The biggest one is that we have a major extension of the Z-Wave panel thanks to [@turbokongen]! You will now be able to change config parameters and manage your devices. From 864f8399813cbc92563ccc6f763aea5402498327 Mon Sep 17 00:00:00 2001 From: John Arild Berentsen Date: Sun, 21 May 2017 20:15:57 +0200 Subject: [PATCH 05/24] Changes for #7676 in homeassistant (#2674) * Changes for #7676 in homeassistant * Update z-wave.markdown --- source/_docs/z-wave.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_docs/z-wave.markdown b/source/_docs/z-wave.markdown index d6e2b477b35..a207ec64f43 100644 --- a/source/_docs/z-wave.markdown +++ b/source/_docs/z-wave.markdown @@ -202,6 +202,7 @@ The `zwave` component exposes multiple services to help maintain the network. | rename_node | Sets a node's name. Requires a `node_id` and `name` field. | | remove_failed_node | Remove a failed node from the network. The Node should be on the Controllers Failed Node List, otherwise this command will fail.| | replace_failed_node | Replace a failed device with another. If the node is not in the controller's failed nodes list, or the node responds, this command will fail.| +| reset_node_meters | Reset a node's meter values. Only works if the node supports this. | | set_config_parameter | Let's the user set a config parameter to a node. | | soft_reset | Tells the controller to do a "soft reset". This is not supposed to lose any data, but different controllers can behave differently to a "soft reset" command.| | start_network | Starts the Z-Wave network.| From b871b2b999bb22931921e3b5d98c1795bac935c8 Mon Sep 17 00:00:00 2001 From: Eugenio Panadero Date: Mon, 22 May 2017 08:41:04 +0200 Subject: [PATCH 06/24] fix links, add new data from #7689, change example config (#2677) --- source/_components/notify.telegram.markdown | 2 +- source/_components/telegram_bot.markdown | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/source/_components/notify.telegram.markdown b/source/_components/notify.telegram.markdown index 5afe840e143..74e8cf8d754 100644 --- a/source/_components/notify.telegram.markdown +++ b/source/_components/notify.telegram.markdown @@ -48,7 +48,7 @@ To enable Telegram notifications in your installation, add the following to your ```yaml # Example configuration.yaml entry for the Telegram Bot telegram_bot: - platform: webhooks + platform: polling api_key: ABCDEFGHJKLMNOPQRSTUVXYZ allowed_chat_ids: - CHAT_ID_1 diff --git a/source/_components/telegram_bot.markdown b/source/_components/telegram_bot.markdown index 0f213b192d6..49b770f7606 100644 --- a/source/_components/telegram_bot.markdown +++ b/source/_components/telegram_bot.markdown @@ -13,7 +13,7 @@ ha_release: 0.42 Use Telegram on your mobile or desktop device to send and receive messages or commands to/from your Home Assistant. -This component creates notification services to send, or edit previously sent, messages from a [Telegram Bot account](https://core.telegram.org/bots) configured either with the [polling](/_components/telegram_bot.polling.markdown) method or with the [webhooks](/_components/telegram_bot.webhooks.markdown) one, and trigger events when receiving messages. +This component creates notification services to send, or edit previously sent, messages from a [Telegram Bot account](https://core.telegram.org/bots) configured either with the [polling](/components/telegram_bot.polling/) method or with the [webhooks](/components/telegram_bot.webhooks/) one, and trigger events when receiving messages. ### {% linkable_title Notification services %} @@ -121,7 +121,7 @@ Respond to a callback query originated by clicking on an online keyboard button. ### {% linkable_title `Telegram` notification platform %} -The [Telegram notification platform](/_components/notify.telegram.markdown) requires the `telegram_bot` component to work with, and it's designed to generate a customised shortcut (`notify.USERNAME`) to send notifications (messages, photos, documents and locations) to a particular `chat_id` with the old syntax, allowing backward compatibility. +The [Telegram notification platform](/components/notify.telegram/) requires the `telegram_bot` component to work with, and it's designed to generate a customised shortcut (`notify.USERNAME`) to send notifications (messages, photos, documents and locations) to a particular `chat_id` with the old syntax, allowing backward compatibility. The required yaml configuration now reduces to: ```yaml @@ -144,6 +144,7 @@ args: "" from_first: "" from_last: "" user_id: "" +chat_id: "" ``` Any other message not starting with `/` will be processed as simple text, firing a `telegram_text` event on the event bus with the following `event_data`: @@ -153,6 +154,7 @@ text: "some text received" from_first: "" from_last: "" user_id: "" +chat_id: "" ``` if the message is sent from a [press from an inline button](https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating), for example, a callback query is received, and Home Assistant will fire a `telegram_callback` event with: @@ -165,6 +167,7 @@ from_last: "" user_id: "" id: "" chat_instance: "" +chat_id: "" ``` ### {% linkable_title Configuration samples %} @@ -215,7 +218,7 @@ trigger: action: - service: homeassistant.turn_on entity_id: switch.vision_zm1601eu5_battery_operated_siren_switch_9_0 - - delay: + - delay: seconds: 10 - service: homeassistant.turn_off entity_id: switch.vision_zm1601eu5_battery_operated_siren_switch_9_0 @@ -330,7 +333,7 @@ Only acknowledges the 'NO' answer: message: 'OK, you said no!' ``` -For a more complex usage of the `telegram_bot` capabilities, using [AppDaemon](https://home-assistant.io/docs/ecosystem/appdaemon/tutorial/) is advised. +For a more complex usage of the `telegram_bot` capabilities, using [AppDaemon](/docs/ecosystem/appdaemon/tutorial/) is advised. This is how the previous 4 automations would be through a simple AppDaemon app: From ab9950f2d113f07357e9f469a2876e09b29afef0 Mon Sep 17 00:00:00 2001 From: Anders Melchiorsen Date: Mon, 22 May 2017 16:30:13 +0200 Subject: [PATCH 07/24] Deprecate automation trigger "state" (#2665) Also elaborate on the meaning of a state change when no filters are present. Also make it clear that "from" and "to" are both optional. --- source/_docs/automation/trigger.markdown | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index 3686190a619..fb729d0c149 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -72,7 +72,7 @@ automation: ### {% linkable_title State trigger %} -Triggers when the state of tracked entities change. If only entity_id given will match all state changes. +Triggers when the state of tracked entities change. If only entity_id given will match all state changes, even if only state attributes change. ```yaml automation: @@ -81,11 +81,9 @@ automation: entity_id: device_tracker.paulus, device_tracker.anne_therese # Optional from: 'not_home' + # Optional to: 'home' - # Alias for 'to' - state: 'home' - # If given, will trigger when state has been the to state for X time. for: hours: 1 @@ -96,6 +94,9 @@ automation:

Use quotes around your values for `from` and `to` to avoid the YAML parser interpreting values as booleans.

+

+ Using `state` as an alias for `to` is deprecated. +

### {% linkable_title Sun trigger %} Trigger when the sun is setting or rising. An optional time offset can be given to have it trigger for example 45 minutes before sunset, when dusk is setting in. From 00516fbaa8cc633ee4d540609b1b5c6c61015575 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 23 May 2017 09:04:14 +0200 Subject: [PATCH 08/24] Make 'sender' a requirement (#2686) --- source/_components/notify.smtp.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/_components/notify.smtp.markdown b/source/_components/notify.smtp.markdown index d12935b15bc..f03d7edf2e2 100644 --- a/source/_components/notify.smtp.markdown +++ b/source/_components/notify.smtp.markdown @@ -22,20 +22,20 @@ To enable notification by e-mail in your installation, add the following to your notify: - name: NOTIFIER_NAME platform: smtp - server: MAIL_SERVER + sender: YOUR_SENDER recipient: YOUR_RECIPIENT ``` Configuration variables: - **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. +- **sender** (*Required*): E-mail address of the sender. +- **recipient** (*Required*): E-mail address of the recipient of the notification. This can be a recipient address or a list of addresses for multiple recipients. - **server** (*Optional*): SMTP server which is used to end the notifications. Defaults to `localhost`. - **port** (*Optional*): The port that the SMTP server is using. Defaults to 25. - **timeout** (*Optional*): The timeout in seconds that the SMTP server is using. Defaults to 5. -- **sender** (*Optional*): E-mail address of the sender. - **username** (*Optional*): Username for the SMTP account. - **password** (*Optional*): Password for the SMTP server that belongs to the given username. If the password contains a colon it need to be wrapped in apostrophes. -- **recipient** (*Required*): E-mail address of the recipient of the notification. This can be a recipient address or a list of addresses for multiple recipients. - **starttls** (*Optional*): Enables STARTTLS, eg. True or False. Defaults to False. - **sender_name** (*Optional*): Sets a custom 'sender name' in the emails headers (*From*: Custom name ). - **debug** (*Optional*): Enables Debug, eg. True or False. Defaults to False. From 264fe455d62f8ee84fad2b4208af71dfe4b54eb9 Mon Sep 17 00:00:00 2001 From: cribbstechnologies Date: Wed, 24 May 2017 14:32:34 -0400 Subject: [PATCH 09/24] Template Light Platform documentation (#2661) * creating docs for light template platform * escaping templates * updating docs with a more simple example * updating example text * making descrption more standalone * updating docs to include missing field and make example name more inline with actual example --- source/_components/light.template.markdown | 106 +++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100755 source/_components/light.template.markdown diff --git a/source/_components/light.template.markdown b/source/_components/light.template.markdown new file mode 100755 index 00000000000..08ab8cdb409 --- /dev/null +++ b/source/_components/light.template.markdown @@ -0,0 +1,106 @@ +--- +layout: page +title: "Template Light" +description: "Instructions how to integrate Template lights into Home Assistant." +date: 2016-05-18 20:32 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Light +ha_release: 0.46 +ha_iot_class: "Local Push" +logo: home-assistant.png +--- + +The `template` platform creates lights that combine components and provides the ability to run scripts or invoke services for each of the on, off, and brightness commands of a light. + +To enable Template lights in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +light: + - platform: template + lights: + theater_lights: + friendly_name: "Theater Lights" + value_template: "{% raw %}{{is_state('sensor.theater_brightness.attributes.lux > 0'}}{% endraw %}" + turn_on: + service: script.theater_lights_on + turn_off: + service: script.theater_lights_off + set_level: + service: script.theater_lights_level + data_template: + volume_level: "{% raw %}{{brightness}}{% endraw %}" + level_template: "{% raw %}{{is_state('sensor.theater_brightness.attributes.lux'}}{% endraw %}" +``` + +Configuration variables: + +- **lights** array (*Required*): List of your lights. + - **friendly_name** (*Optional*): Name to use in the Frontend. + - **value_template** (*Optional*): Defines a [template](/topics/templating/) to get the state of the light. If not provided the component defaults to optimisitc state determination. + - **turn_on** (*Required*): Defines an [action](/getting-started/automation/) to run when the light is turned on. + - **turn_off** (*Required*): Defines an [action](/getting-started/automation/) to run when the light is turned off. + - **set_level** (*Optional*): Defines an [action](/getting-started/automation/) to run when the light is given a brightness command. + - **level_template** (*Optional): Defines a [template](/topics/templating/) to get the brightness of the light. If not provided the component defaults to optimisitc brightness determination. + - **entity_id** (*Optional*): Add a list of entity IDs so the switch only reacts to state changes of these entities. This will reduce the number of times the light will try to update it's state. + + +## {% linkable_title Considerations %} + +If you are using the state of a platform that takes extra time to load, the template light may get an 'unknown' state during startup. This results in error messages in your log file until that platform has completed loading. If you use is_state() function in your template, you can avoid this situation. For example, you would replace {% raw %}'{{ states.switch.source.state }}'{% endraw %} with this equivalent that returns true/false and never gives an unknown result: +{% raw %}'{{ is_state('switch.source', 'on') }}'{% endraw %} + +## {% linkable_title Examples %} + +In this section you will find some real life examples of how to use this light. + +### {% linkable_title Theater Volume Control %} + +This example shows a light that is actually a home theater's volume. This component gives you the flexibility to provide whatever you'd like to send as the payload to the consumer including any scale conversions you may need to make; the media_player component needs a floating point percentage value 0.0-1.0 + +```yaml +light: + - platform: template + lights: + theater_volume: + friendly_name: 'Receiver Volume' + value_template: >- + {% raw %} + {%- if is_state("media_player.receiver", "on") -%} + {%- if states.media_player.receiver.attributes.is_volume_muted -%} + off + {%- else -%} + on + {%- endif -%} + {%- else -%} + off + {%- endif -%} + {% endraw %} + turn_on: + service: media_player.volume_mute + data: + entity_id: media_player.receiver + is_volume_muted: false + turn_off: + service: media_player.volume_mute + data: + entity_id: media_player.receiver + is_volume_muted: true + set_level: + service: media_player.volume_set + data: + entity_id: media_player.receiver + data_template: + volume_level: '{% raw %}{{((brightness / 255 * 100) | int)/100}}{% endraw %}' + level_template: >- + {% raw %} + {%- if is_state("media_player.receiver", "on") -%} + {{(255 * states.media_player.receiver.attributes.volume_level) | int}} + {%- else -%} + 0 + {%- endif -%} + {% endraw %} +``` \ No newline at end of file From 204b1831706bcbcc88b95757d19a3aa623a7d5ff Mon Sep 17 00:00:00 2001 From: Anton Sarukhanov Date: Wed, 24 May 2017 19:12:35 -0700 Subject: [PATCH 10/24] Add icon to device_tracker; misc cleanup. (#2709) - Add `icon` to `device_tracker` config documentation (see https://github.com/home-assistant/home-assistant/issues/1237). - Remove gravatar from example because it makes no sense to configure gravatar *and* picture. - Fix default value for `track`. --- source/_components/device_tracker.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_components/device_tracker.markdown b/source/_components/device_tracker.markdown index 754e89ef401..45d58877d7a 100644 --- a/source/_components/device_tracker.markdown +++ b/source/_components/device_tracker.markdown @@ -62,7 +62,6 @@ devicename: name: Friendly Name mac: EA:AA:55:E7:C6:94 picture: https://home-assistant.io/images/favicon-192x192.png - gravatar: test@example.com track: yes hide_if_away: no ``` @@ -72,7 +71,8 @@ devicename: | `name` | Host name or "Unnamed Device" | The friendly name of the device | | `mac` | None | The MAC address of the device. Add this if you are using a network device tracker like Nmap or SNMP | | `picture` | None | A picture that you can use to easily identify the person or device. You can also save the image file in a folder "www" in the same location (can be obtained from developer tools) where you have your configuration.yaml file and just use `picture: /local/favicon-192x192.png`. | +| `icon` | mdi:account | An icon for this device (use as an alternative to `picture`). | | `gravatar` | None | An email address for the device's owner. If provided, it will override `picture` | -| `track` | False | If `yes`/`on`/`true` then the device will be tracked. Otherwise its location and state will not update | +| `track` | [uses platform setting] | If `yes`/`on`/`true` then the device will be tracked. Otherwise its location and state will not update | | `hide_if_away` | False | If `yes`/`on`/`true` then the device will be hidden if it is not at home | | `consider_home` | [uses platform setting] | Allows you to override the global `consider_home` setting from the platform configuration on a per device level | From e24bbff26da19c7ce383237fa06d0f0b4bedd96f Mon Sep 17 00:00:00 2001 From: Boris K Date: Thu, 25 May 2017 10:10:16 +0200 Subject: [PATCH 11/24] Add more info about the /api/history/period route (#2699) --- source/developers/rest_api.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/developers/rest_api.markdown b/source/developers/rest_api.markdown index 27b4392e1a7..ed5e4ffe03d 100644 --- a/source/developers/rest_api.markdown +++ b/source/developers/rest_api.markdown @@ -202,6 +202,12 @@ $ curl -X GET -H "x-ha-access: YOUR_PASSWORD" \ #### {% linkable_title GET /api/history/period/<timestamp> %} Returns an array of state changes in the past. Each object contains further details for the entities. +The `` is optional and defaults to 1 day before the time of the request. It determines the beginning of the period. + +You can pass the following optional GET parameters: + - `filter_entity_id=` to filter on a single entity + - `end_time=` to choose the end of the period (defaults to 1 day) + ```json [ [ From fd51ccd7153c60b59c9c1f2ba3f3f60d39b5cc66 Mon Sep 17 00:00:00 2001 From: Adam Mills Date: Fri, 26 May 2017 02:23:36 -0400 Subject: [PATCH 12/24] Zwave fan documentation (#2712) * Zwave fan documentation * Update fan.zwave.markdown --- source/_components/fan.zwave.markdown | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 source/_components/fan.zwave.markdown diff --git a/source/_components/fan.zwave.markdown b/source/_components/fan.zwave.markdown new file mode 100644 index 00000000000..f49e1004cdc --- /dev/null +++ b/source/_components/fan.zwave.markdown @@ -0,0 +1,14 @@ +--- +layout: page +title: "Z-Wave Fan" +description: "Instructions how to setup the Z-Wave Fans within Home Assistant." +date: 2017-05-25 17:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: z-wave.png +ha_category: Fan +--- + +To get your Z-Wave fans working with Home Assistant, follow the instructions for the general [Z-Wave component](/components/zwave/). From a35de2ade502f0bc43d9f9bc8497268ea5e2bb05 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 26 May 2017 10:19:00 +0200 Subject: [PATCH 13/24] Add warning --- source/_components/sensor.swiss_hydrological_data.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/_components/sensor.swiss_hydrological_data.markdown b/source/_components/sensor.swiss_hydrological_data.markdown index 96d50ac55ce..59f81644e2e 100644 --- a/source/_components/sensor.swiss_hydrological_data.markdown +++ b/source/_components/sensor.swiss_hydrological_data.markdown @@ -13,6 +13,9 @@ ha_iot_class: "Cloud Polling" ha_release: 0.22 --- +

+ This sensor doesn't work at the moment due to changed by the [Swiss Federal Office for the Environment (Bundesamt für Umwelt - Abt. Hydrologie)](http://www.hydrodaten.admin.ch) to access the data. +

The `swiss_hydrological_data` sensor will show you details (temperature, level, and discharge) of rivers and lakes in Switzerland. From 9c411db10e42485f0a95433e3708ef371b213175 Mon Sep 17 00:00:00 2001 From: Eugenio Panadero Date: Fri, 26 May 2017 22:54:09 +0200 Subject: [PATCH 14/24] digest auth, explicit inline keyboards, more data in events (#2714) --- source/_components/notify.telegram.markdown | 24 +++++++++------- source/_components/telegram_bot.markdown | 32 +++++++++++++-------- 2 files changed, 34 insertions(+), 22 deletions(-) diff --git a/source/_components/notify.telegram.markdown b/source/_components/notify.telegram.markdown index 74e8cf8d754..94791bea1cc 100644 --- a/source/_components/notify.telegram.markdown +++ b/source/_components/notify.telegram.markdown @@ -77,11 +77,11 @@ action: service: notify.NOTIFIER_NAME data: title: '*Send a message*' - message: 'That's an example that _sends_ a *formatted* message with a custom keyboard.' + message: 'That's an example that _sends_ a *formatted* message with a custom inline keyboard.' data: - keyboard: - - '/command1, /command2' - - '/command3, /command4' + inline_keyboard: + - 'Task 1:/command1, Task 2:/command2' + - 'Task 3:/command3, Task 4:/command4' ``` Configuration variables: @@ -115,8 +115,9 @@ Configuration variables: - **url** or **file** (*Required*): For local or remote path to an image. - **caption** (*Optional*): The title of the image. -- **username** (*Optional*): Username for a URL which require HTTP basic authentication. -- **password** (*Optional*): Username for a URL which require HTTP basic authentication. +- **username** (*Optional*): Username for a URL which require HTTP authentication. +- **password** (*Optional*): Username for a URL which require HTTP authentication. +- **authentication** (*Optional*): Set to 'digest' to use HTTP digest authentication, defaults to 'basic'. - **keyboard** (*Optional*): List of rows of commands, comma-separated, to make a custom keyboard. - **inline_keyboard** (*Optional*): List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with asociated callback data. @@ -129,19 +130,23 @@ action: service: notify.NOTIFIER_NAME data: title: Send a document - message: That's an example that sends a document. + message: That's an example that sends a document and a custom keyboard. data: document: file: /tmp/whatever.odf caption: Document Title xy + keyboard: + - '/command1, /command2' + - '/command3, /command4' ``` Configuration variables: - **url** or **file** (*Required*): For local or remote path to a document. - **caption** (*Optional*): The title of the document. -- **username** (*Optional*): Username for a URL which require HTTP basic authentication. -- **password** (*Optional*): Username for a URL which require HTTP basic authentication. +- **username** (*Optional*): Username for a URL which require HTTP authentication. +- **password** (*Optional*): Username for a URL which require HTTP authentication. +- **authentication** (*Optional*): Set to 'digest' to use HTTP digest authentication, defaults to 'basic'. - **keyboard** (*Optional*): List of rows of commands, comma-separated, to make a custom keyboard. - **inline_keyboard** (*Optional*): List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with asociated callback data. @@ -163,7 +168,6 @@ action: Configuration variables: -- **location** (*Required*): For local or remote path to an image. - **latitude** (*Required*): The latitude to send. - **longitude** (*Required*): The longitude to send. - **keyboard** (*Optional*): List of rows of commands, comma-separated, to make a custom keyboard. diff --git a/source/_components/telegram_bot.markdown b/source/_components/telegram_bot.markdown index 69a58146fb5..946772a6a13 100644 --- a/source/_components/telegram_bot.markdown +++ b/source/_components/telegram_bot.markdown @@ -146,6 +146,7 @@ from_first: "" from_last: "" user_id: "" chat_id: "" +chat: "" ``` Any other message not starting with `/` will be processed as simple text, firing a `telegram_text` event on the event bus with the following `event_data`: @@ -156,6 +157,7 @@ from_first: "" from_last: "" user_id: "" chat_id: "" +chat: "" ``` if the message is sent from a [press from an inline button](https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating), for example, a callback query is received, and Home Assistant will fire a `telegram_callback` event with: @@ -263,8 +265,8 @@ Text repeater: message: 'You said: {% raw %}{{ trigger.event.data.text }}{% endraw %}' disable_notification: true inline_keyboard: - - '/edit,/NO' - - '/remove button' + - "Edit message:/edit_msg, Don't:/do_nothing" + - "Remove this button:/remove button" ``` Message editor: @@ -275,7 +277,7 @@ Message editor: platform: event event_type: telegram_callback event_data: - data: '/edit' + data: '/edit_msg' action: - service: telegram_bot.answer_callback_query data_template: @@ -288,8 +290,8 @@ Message editor: chat_id: {% raw %}'{{ trigger.event.data.user_id }}'{% endraw %} title: '*Message edit*' inline_keyboard: - - '/edit,/NO' - - '/remove button' + - "Edit message:/edit_msg, Don't:/do_nothing" + - "Remove this button:/remove button" message: > {% raw %}Callback received from {% raw %}{{ trigger.event.data.from_first }}{% endraw %}. Message id: {% raw %}{{ trigger.event.data.message.message_id }}{% endraw %}. @@ -315,7 +317,7 @@ Keyboard editor: message_id: 'last' chat_id: {% raw %}'{{ trigger.event.data.user_id }}'{% endraw %} inline_keyboard: - - '/edit,/NO' + - "Edit message:/edit_msg, Don't:/do_nothing" ``` Only acknowledges the 'NO' answer: @@ -326,7 +328,7 @@ Only acknowledges the 'NO' answer: platform: event event_type: telegram_callback event_data: - data: '/NO' + data: '/do_nothing' action: - service: telegram_bot.answer_callback_query data_template: @@ -354,7 +356,9 @@ class TelegramBotEventListener(appapi.AppDaemon): assert event_id == 'telegram_text' user_id = payload_event['user_id'] msg = 'You said: ``` %s ```' % payload_event['text'] - keyboard = ['/edit,/NO', '/remove button'] + keyboard = [[("Edit message", "/edit_msg"), + ("Don't", "/do_nothing")], + [("Remove this button", "/remove button")]] self.call_service('telegram_bot/send_message', title='*Dumb automation*', target=user_id, @@ -368,8 +372,13 @@ class TelegramBotEventListener(appapi.AppDaemon): data_callback = payload_event['data'] callback_id = payload_event['id'] user_id = payload_event['user_id'] + # keyboard = ["Edit message:/edit_msg, Don't:/do_nothing", + # "Remove this button:/remove button"] + keyboard = [[("Edit message", "/edit_msg"), + ("Don't", "/do_nothing")], + [("Remove this button", "/remove button")]] - if data_callback == '/edit': # Message editor: + if data_callback == '/edit_msg': # Message editor: # Answer callback query self.call_service('telegram_bot/answer_callback_query', message='Editing the message!', @@ -381,7 +390,6 @@ class TelegramBotEventListener(appapi.AppDaemon): user = payload_event['from_first'] title = '*Message edit*' msg = 'Callback received from %s. Message id: %s. Data: ``` %s ```' - keyboard = ['/edit,/NO', '/remove button'] self.call_service('telegram_bot/edit_message', chat_id=user_id, message_id=msg_id, @@ -397,13 +405,13 @@ class TelegramBotEventListener(appapi.AppDaemon): callback_query_id=callback_id) # Edit the keyboard - new_keyboard = ['/edit,/NO'] + new_keyboard = keyboard[:1] self.call_service('telegram_bot/edit_replymarkup', chat_id=user_id, message_id='last', inline_keyboard=new_keyboard) - elif data_callback == '/NO': # Only Answer to callback query + elif data_callback == '/do_nothing': # Only Answer to callback query self.call_service('telegram_bot/answer_callback_query', message='OK, you said no!', callback_query_id=callback_id) From 7e75b8312f16bf1a8a2425f4e0dec319f5d8f166 Mon Sep 17 00:00:00 2001 From: Teagan Glenn Date: Mon, 29 May 2017 03:20:30 -0600 Subject: [PATCH 15/24] Rest Notifier Data Configuration (#2708) --- source/_components/notify.rest.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_components/notify.rest.markdown b/source/_components/notify.rest.markdown index 5a074dec02f..370f26be8c3 100644 --- a/source/_components/notify.rest.markdown +++ b/source/_components/notify.rest.markdown @@ -33,6 +33,8 @@ Configuration variables: - **message_param_name** (*Optional*): Parameter name for the message. Defaults to `message`. - **title_param_name** (*Optional*): Parameter name for the title. Defaults to none. - **target_param_name** (*Optional*): Parameter name for the target. Defaults to none. +- **data** (*Optional*): Dictionary of extra parameters to send to the resource. +- **data_template** (*Optional*): Template dictionary of extra parameters to send to the resource. To use notifications, please see the [getting started with automation page](/getting-started/automation/). From 41b969c8081c61cd4936e8015e0bd6b73d2a17dd Mon Sep 17 00:00:00 2001 From: Sten Spans Date: Mon, 29 May 2017 13:52:47 +0200 Subject: [PATCH 16/24] Update media_player.frontier_silicon.markdown (#2724) Add note regarding alternate ports used for API access on some models (Revo heritage for example) --- source/_components/media_player.frontier_silicon.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_components/media_player.frontier_silicon.markdown b/source/_components/media_player.frontier_silicon.markdown index 642f72416af..6507bd0ad82 100644 --- a/source/_components/media_player.frontier_silicon.markdown +++ b/source/_components/media_player.frontier_silicon.markdown @@ -43,6 +43,8 @@ Configuration variables: - **port** (*Optional*): The port number. Defaults to 80. - **password** (*Optional*): PIN code of the Internet Radio. Defaults to 1234. +Some models use a seperate port (2244) for API access, this can be verified by visiting http://[host]:[port]/device. + In case your device (friendly name) is called *badezimmer*, an example automation can look something like this: ```yaml From 7f4b07a887f658888ab9a54a6c44b8cfd159ba2b Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 30 May 2017 10:08:12 +0200 Subject: [PATCH 17/24] Add initial Rachio docs (#2723) * Add initial Rachio docs * Add default for manual run * Minor fixes * Add iframe sample --- source/_components/switch.rachio.markdown | 85 ++++++++++++++++++++++ source/images/supported_brands/rachio.png | Bin 0 -> 7253 bytes 2 files changed, 85 insertions(+) create mode 100644 source/_components/switch.rachio.markdown create mode 100644 source/images/supported_brands/rachio.png diff --git a/source/_components/switch.rachio.markdown b/source/_components/switch.rachio.markdown new file mode 100644 index 00000000000..e75c4ed155e --- /dev/null +++ b/source/_components/switch.rachio.markdown @@ -0,0 +1,85 @@ +--- +layout: page +title: "Rachio Switch" +description: "Instructions how to use Rachio switches with Home Assistant." +date: 2017-05-29 09:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: rachio.png +ha_category: Switch +ha_iot_class: "Local Polling" +ha_release: 0.46 +--- + +The `rachio` switch platform allows you to control your [Rachio irrigations system](http://rachio.com/). + +## {% linkable_title Getting your Rachio API Access Token %} + +- Log in at [https://app.rach.io/](https://app.rach.io/). +- Click the user button at the top right. +- Click API Access Token. +- Copy the API access token from the dialog that opens. + +To add this platform to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +switch: + - platform: rachio + access_token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx +``` + +Configuration variables: + +- **access_token** (*Required3): Your Rachio API Access Token. +- **manual_run_mins** (*Optional*): For how long, in minutes, to turn on a station when the switch is enabled. Defaults to 10 minutes. + +## {% linkable_title Examples %} + +In this section you find some real life examples of how to use this switch. + +### {% linkable_title `groups.yaml` example %} + + +```yaml +irrigation: + name: Irrigation + icon: mdi:water-pump + view: true + entities: + - group.zones_front + - group.zones_back + +zones_front: + name: Front Yard + view: false + entities: + - switch.driveway + - switch.front_bushes + - switch.front_garden + - switch.front_yard + - switch.side_yard + +zones_back: + name: Back Yard + view: false + entities: + - switch.back_bushes + - switch.back_garden + - switch.back_porch + - switch.back_trees +``` + +### {% linkable_title iFrame %} + +If you would like to see the Rachio details then create an [iFrame](/components/panel_iframe/) that contains the information accessible through your panel. + +```yaml +panel_iframe: + rachio: + title: Rachio + url: "https://app.rach.io" + icon: mdi:water-pump +``` diff --git a/source/images/supported_brands/rachio.png b/source/images/supported_brands/rachio.png new file mode 100644 index 0000000000000000000000000000000000000000..340105ff8249064e0387995c5d1a8a4dbe483c99 GIT binary patch literal 7253 zcmb7}XEYq#xBvCtdx>a4Fc`h}nh+6nv=|XBdKp5L84N-6E<{2^lrT|7pBcRqLPiUs zM(@2{&-4G^^}8?ceRI}cYnOH2oU`}-eqxObbt%c%$Z&9QC?Dx*8ROvK0`BbBBt&NNWXP4Sky&sH=rE9&O*{7R*mJMeTiZ4DLl z;r5V|EZUyo0bMKuS)n0UiXH)gE>?>NoTB#tkLk{!Md;o6pxQhsB%nJ(3&Zo@o_|8< zaO1W9zvrKj|5LJTqG*YuitJgv>KBS!g}@Cl^vL_I3Yf|2jg0@rRqVNT7d4S}bD+Sz z^3&f{^qHus#pcct)NPRN>%og1ouYjvyv(-}mVo*^G3j4%BNO#`LF$slYom*19CUHW z(58}w*9jg$0`tF9!f%w#rR&%7JKeUa89grdLHj~2r)nQQb#+NNJjsi^FO>?41J$os zcjV!^)WTix(8XTa_z^?Em{P(Mo(% zs0dVCCYS8&@|60a;CLXZTgb%u1B*8!HU?n{P)BUF@H9}E02ujbMX0CSd-vL45~? z!|nFXa?`NjzL}4V`R3vgM1;8UP{u`!f|<=!=LV813&x=sLht z6;U43XY1R_R^9^EbWnekfLjhaKEdF7+hD_G+pX~Gm$86C zpU@7cL5&S&-R5a(HhOpk>6z-8j_u>2*U#VGV4U+UKu5^}ZBO+FZ)D#OO;o;osod-{ z0(1JARkacG9Y2d~)_QmU=PFkp_eGfDOPhkTqF6|1f_UTpm7739h!B$GdF zeKlL8*=k844>SF~e76F`6G^O?>F;LxF1Y|G4qJf=kbgU~(JWE(dd8c!+z>RNgY#fS z_LU#4kG&1Gsi*p%j>Zk!j0M^y74EtxIn&JJcwdV7P8{Kpi1 zk2_#XB`WRU(AJ<5G`#lm7gqJx(&Tf8@LPwj3z7U5Wi2JBvz_B`%P%Dx>NXZXw2h04>o0=j>+`4~1lRU1l67 zJNcf59GFFmoxVPFg9zEV{n|fzO7Ap0>$9haU+GqQNOs?2%x~|@PSF=YXVzf{r?eUR z`U$p3&f<_Wrs9+g5Z`6|gtlZ%zlp&g&;0oKl{zLj+_K~0jUMAXdsv+nuk2^hFQ3tf zm&e_^>;aqT<6*0UjPnZ`9GA-ZvQo>k5<SOaAMf67#v)GK+sy?Hn zAdkkmLQF0dxn^-UH6BmL8{-UcD`ARPa^G}DoiHmCd1O`(Q8kJVodHOT$9{XsK8&5K z{awOh0qARRiptrT6$rhi=p@Q0r@?Q8glq5yVm}}arshYfula{^6X#3B_|b_O(YpV> zb4ztTi#QfBOqrCV0k)&dg1eC9DSCAb$6lVbhz|XvA+Wf=Le_F8m4}EzvNTEYcusg# z&6^m&V4i$o|EAXP&|Ta&-`cMXef7ywR1YVy4G$0lUZbM~x!XCdEGxI2hLEIpSKC#- zf#;ht6e%_j<_a}_$`?RbaR6R0n521t0T;#l}0A(PX~N%hF4)-Gs~!@ErmBHHFi~a+huwD=L{$FR z5k1{^A}{mSv&!=6(n!#Am+_MbF7U+s`|y6YoyDZ>7`V~nb7|cXp2(a=8>bg^WI{Q0 zISNjHOC?qZ&NLX}5i52DVO?aB7GTD|Lo$;h)Le*3luJw19tem-KGTmw9uk7kBv53L zc-nrATS?^o${!AQP*XW~jX&}VyH6WG^?O)TSG8la(%X+|Y~zI{xMSyf=+EwQJT0>4 zZ|ULrj+Xt}P?m}s8zTcHyp=r6yl*|{wj&jfS{AwIV}~fQXQok6pQMdSc=8I|dZgX# zH<_wCa}NauGIUr_-S|wNYhN(i4aW`kSm*{SbdZqpN`WyALY-r*Q6%) z)dZY~LU&0Wq}PWGdJxMj%kthtTO!#4ZjZ8E72zH@t1HVgNs-&5uM61(t^~x-&*|MC@ij&R3j8edG)dI65btm=EvM2tvj1vHiUvP(nR>raxZn zz{^Fy-97aK|3rI9rf5<^CK=~5o7*<(+~qiNCgvWGt^T#(f{+PEb3km zncF@w2;u5$%RFHF{gOq}v~rWjFr6N>rk}uRBZ4c2hZtv+r9l*W1hm%hbvF?J-h-K! znqq!k>oz@6RTh>&igB_(Gwc1ehb^tyC57-ak^xk(or&K~uPLg+ys+ImI0A@5<2p?( z+(?dKlAO}!a;R%VJ=8T2@pe75A}S}{l!_Ubzj2Vk3R8Xg^4q}p@dL2!&+yGUgOzD{ zzd)PT-LUB{$nE5Hh0wZVL%;?NEjK>`;nxQ#Fz$}^otpbd?<_WcKvqHeXvI$(H?l)9 z?7On!U%cj#38m&Olm+!S6UpsUMu}!$%1^ieBqjZn3J-X{V6H=MccVA1L9?=geh-(v znwPB%6Jeh}kgsh3w(psk@p;I>4@p+FP~}Da5=JQ8nzfiQ0Wpp*;6s+C;=J%@fPQeQ z63gF6kLcrxn|4hCKnacL%Jc`DQ`ix3xQFX09aj9IiCG5SnGcNE^~G$)duBYqvZm$+ zt5*-VfYnFmwM2i3`>^A&%oeGsi2VFIu6)b7eX6on_2 z0Who~p;&pTmdmo{z|`gWw;Mvib5c%+@J8EUAz2W062t;?7ewSJay&HQ%4%+U&mhvg z?>VgatqJS(95(~#yOSmo2P{u!0tgT?_|uDL*!ip3=j4*{4({TG=TT+7dq@s zWxZd6QXG5DCA_+3d+8Nv!rRi9qC{ygv*&&Lv^CSUN^0Ai$zE~Kzgre~z{FigfepoM zPMtUD4d30U`iVIoSj4ubG@b^n#EofR8-j?uuF(IDEm{TKU;0K#ayrURF`z-p=H8gtRCYtcSKlk?IRMuiA`B=vTU=48*YpH4P%K z7?w~xf2Kc*PUHXrqlFN_*D3cXRg6ws4uihm+xM=-Xq?5(R^qo&0UE-+ZLzj|&fJ*A zICIPaJ-3PRskG7!TnQh0LyO6UethOB=- z-y`WU6Tjaz%~!kX9vx&tV0bbmIbTZzUrCxU;=|3>dtrhK3@&+F*Ic6OwBMeN`~_Q= zc*71WJHZDSBYT5wdoqss+bz0-@05F`0Kf2U9m0p&$FFJA*>! z2Vg=fkPU=D>0I^EGl$g84=I1zcoENk=e`$e=FIHGJQk9UBdIW0-R3&&XqQ1$t+Xvb z61~i#+_)?`Q>#Czw;l9s{%lS&2hw%rdf zSmGqQ5!AKgt!Kh27yYf!1w$S^oa1TMZS2G-2=F6#ByyN8$*GAX5y>klVqcSE>Gy-@ zsuO)lZxm2?@dMFtM6z1ciYX(Qo9p+CxL%gXT`6(yyHe0{T`)YKQ83d;2V5#-Fvx#0 zNth)y`1hwH1-b2NhwZt+os2OkZ0(oRBfIi;ZF~4+X!-NOR2x~v;#l?N8I(+I@2(Hl zEU+&NBj((GD#JFp>5Wa(pJ6_tI*8(ylFM)B?QkDsWImkNAws#KX~0wt$Hi zgxL8_tZG4#&2fvvth&2Kon;2qI}8T|=Dv-6OpGswGNQb3hk0dN4hElogS=X4BdiF85oETC+N0)<{1JHM z6Rr(V_?Y<%Y9)rB45=I0!XIcf=6vunr7(-W9#D?>@{L;6b`V2u+GZ28%KZC+hcf_S z258rb_RlkoXK0^JBBs=BpNvduYZ`HbEf}#XD>v=w*SK~_p3Qx%87(M<9T~9PG*|VL z*&w;B!0n$Msou@vO1nXdcKZ*t*Av2SKkJ#K7XaelewAO3lv@r zZTE)}z-+MaQkX2F!qqfQI!z1GM4=59^zg9u)s}p=g)2meI3rMAvi@18)NIr`(==me zgWUwacK=+mRNu+zIp~~8h_AHB-nA7T#oNZY?rXK`_lW`!{&=G3>G=`5WI9!&y`ez@ zvNz@Jb6Gh2vN0Tqp?@;%43hqJ4lAt zh>_~!KQi3*zwH%TY$bBrM9P9SK&xWMHPalz*%SULf{CuvW7(MrK5@CJ& z%|(o$nSx09Zs1F#KIZ#`#zgED^L^g^GcfVd4ZW?J_+I98EmqR`i1NKS`9%7h>%=ih zR(yg$&?Vg>0TaWW;OA23sBOUw)}C>)AU>qnE|%DNObSpkf(=W=;cn@_$L&_DO@nr! zQ&Yw@IQQ0thh=M(O&Ppw*@Vh*5Z+1g64?Qy+ReqY38@O&2Nk`OC>YyolE%HdR#5xC z_~O663xP$1S_11!wm&l#v)zwb7A&0D`7GIp=n?72Z1t0R)R=ptKsu~Twio1XFYhFg zLm*a!zHxnh4_6q7S=?mf{j#w2PD&DW#8@SpFIwsTvTl zfjV@OjU!5CNB)PwSIT~iwpBizc>_CCS%J+lz5S5@*wzk15OiF;b18$bBWRy@T37WN z?cq?d*cYaE9YIV@Ei(<9qRkWm?WpYCFb6$+6b-zeZb_WIuz^E7x__8O ztt&@&m2hT*k6ZuuO^8fo0r_*y$1dS{7OlnBZH=wA%H(;2Y48BD#O36R+q2 zrdr`DUnrqkV}MgLgbTU?MBM2Zj~=ZIxc*4d`^1Z;dLG5)x^-WN#6KvR9rW0`iN!`z zLR&GB2q)GQ4khGUW}g-^FBPibdP`*t7Tm^KWe?BRTG@tGf321dJ$qoxNRTOQ8#8xg zTB50~ST&4{pac!L*OaN~>LXtztP1>%6i6upBJNG6f7?9nB!VCz$gUEb>~V}na2_A) zVEC`{n$tD5u#ePvcZld(lc;9JPCr%Jfx)LtVwg3{6w?l|G%|}f$>{uI@lGOFB=ASf zlRJW>RMrU&lT)&kJjqFrw={R*W*TLbdx1C5beLryYL_6=n3EznExwYmO1!Sgf5(|x z%v_PPD9vxXv-{rr=H>e{xMBcoApxH7^o}mv&t9f(JlExi1lRZFkvmCLAg#+dU&ZE* zQLPlj1j5&+hNhZ4Ta&Unm2aIrb31;9*k%TTw}MWY?qc YA(J|h2+TXvJ6wqKNZU}WQUe_EUyZ-wX8-^I literal 0 HcmV?d00001 From 682ec93ed36c68035c6073ae32a1945e5c463667 Mon Sep 17 00:00:00 2001 From: everix1992 Date: Tue, 30 May 2017 05:34:49 -0500 Subject: [PATCH 18/24] Update harmony markdown (#2432) --- source/_components/remote.harmony.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_components/remote.harmony.markdown b/source/_components/remote.harmony.markdown index 18f3f838a75..551d61e573f 100755 --- a/source/_components/remote.harmony.markdown +++ b/source/_components/remote.harmony.markdown @@ -52,9 +52,9 @@ Upon startup one file will be written to your Home Assistant configuration direc Supported services: -- **Turn Off**: Turn off all devices that were switched on from the start of the current activity. +- **Turn Off**: Turn off all devices that were switched on from the start of the current activity.s - **Turn On**: Start an activity, will start the default activity from configuration.yaml if no activity is specified. The specified activity can either be the activity name or the activity ID from the configuration file written to your [Home Assistant configuration directory](/docs/configuration/). The service will respond faster if the activity ID is passed instead of the name. -- **Send Command**: Send a command to one device, device ID and available commands are written to the configuration file at startup. +- **Send Command**: Send a single command or a set of commands to one device, device ID and available commands are written to the configuration file at startup. You can optionally specify the number of times you wish to repeat the command(s) and delay you want between repeated command(s). - **Sync**: Synchronizes the Harmony device with the Harmony web service if any changes are made from the web portal or app. From df5bb8768ff721698fb8983480063c3e0c829686 Mon Sep 17 00:00:00 2001 From: Juggels Date: Wed, 31 May 2017 08:04:15 +0200 Subject: [PATCH 19/24] Documentation update for sensor.hp_ilo (#2608) Revert document date Align docs with requested PR changes Align docs with requested PR changes Align docs with requested PR changes --- source/_components/sensor.hp_ilo.markdown | 83 ++++++++++++------- source/images/screenshots/hp_ilo_sensors.png | Bin 0 -> 83118 bytes 2 files changed, 54 insertions(+), 29 deletions(-) create mode 100644 source/images/screenshots/hp_ilo_sensors.png diff --git a/source/_components/sensor.hp_ilo.markdown b/source/_components/sensor.hp_ilo.markdown index d259a373444..c5db907bb64 100644 --- a/source/_components/sensor.hp_ilo.markdown +++ b/source/_components/sensor.hp_ilo.markdown @@ -13,11 +13,9 @@ ha_release: 0.27 ha_iot_class: "Local Polling" --- -The `hp_ilo` platform allows you to do an API call to the HP ILO (Integrated Lights-Out) sensor of your server, and use this data in (template) sensors. +The `hp_ilo` platform allows you to do an API call to the HP ILO (Integrated Lights-Out) sensor of your server, and use this data in Home Assistant sensors. -The component will output the ILO information in the sensor attributes so they can be accessed like that. - -If the ILO only returns a single value (e.g. a temperature or state), it will be put in the state field. +If the ILO or specified jsonpath query returns only a single value (e.g. a temperature or state), it will be put in the state field. If a data structure is returned, it will be placed in the `ilo_data` attribute. Some more details about what can be retrieved from these sensors is available in the [python-hpilo documentation](http://pythonhosted.org/python-hpilo/). @@ -36,17 +34,8 @@ sensor: username: USERNAME password: PASSWORD monitored_variables: - - server_name - - server_fqdn - - server_host_data - - server_oa_info - - server_power_status - - server_power_readings - - server_power_on_time - - server_asset_tag - - server_uid_status - - server_health - - network_settings + - name: SENSOR NAME + sensor_type: SENSOR TYPE ``` Configuration variables: @@ -55,26 +44,62 @@ Configuration variables: - **port** (*Optional*): The port on which the ILO can be reached, defaults to port `443`. - **username** (*Required*): The username used to connect to the ILO. - **password** (*Required*): The password used to connect to the ILO. -- **monitored_variables** array (*Optional*): Information to be collected from the ILO, defaults to `server_name`. - - **server_name**: Get the name of the server this iLO is managing. - - **server_fqdn**: Get the fqdn of the server this iLO is managing. - - **server_host_data**: Get SMBIOS records that describe the host. - - **server_oa_info**: Get information about the Onboard Administrator of the enclosing chassis. - - **server_power_status**: Whether the server is powered on or not. - - **server_power_readings**: Get current, min, max and average power readings. - - **server_power_on_time**: How many minutes ago has the server been powered on. - - **server_asset_tag**: Gets the server asset tag. - - **server_uid_status**: Get the status of the UID light. - - **server_health**: Get server health information. - - **network_settings**: Get the iLO network settings. +- **monitored_variables** array (*Optional*): Sensors created from the ILO data. Defaults to an empty list (no sensors are created). + - **name** (*Required*): The sensor name. + - **sensor_type** (*Required*): The sensor type, has to be one of the specified valid sensor types. + - **unit_of_measurement** (*Optional*): The sensors' unit of measurement. + - **value_template** (*Optional*): When a Jinja2 template is specified here, the created sensor will output the template result. The ILO response can be referenced with the `ilo_data` variable. + +Valid sensor_types: +- **server_name**: Get the name of the server this iLO is managing. +- **server_fqdn**: Get the fqdn of the server this iLO is managing. +- **server_host_data**: Get SMBIOS records that describe the host. +- **server_oa_info**: Get information about the Onboard Administrator of the enclosing chassis. +- **server_power_status**: Whether the server is powered on or not. +- **server_power_readings**: Get current, min, max and average power readings. +- **server_power_on_time**: How many minutes ago has the server been powered on. +- **server_asset_tag**: Gets the server asset tag. +- **server_uid_status**: Get the status of the UID light. +- **server_health**: Get server health information. +- **network_settings**: Get the iLO network settings. + +### Example + +In order to get two sensors reporting CPU fan speed and Ambient Inlet Temperature, as well as a dump of `server_health` on a HP Microserver Gen8, you could use the following in your `configuration.yaml` file + +```yaml +sensor: + - platform: hp_ilo + host: IP_ADDRESS or HOSTNAME + username: USERNAME + password: PASSWORD + monitored_variables: + - name: CPU fanspeed + sensor_type: server_health + unit_of_measurement: '%' + value_template: '{{ ilo_data.fans["Fan 1"].speed[0] }}' + - name: Inlet temperature + sensor_type: server_health + unit_of_measurement: '°C' + value_template: '{{ ilo_data.temperature["01-Inlet Ambient"].currentreading[0] }}' + - name: Server Health + sensor_type: server_health + +``` + +

+ +

+ +## {% linkable_title Hardware specifics %}

Not every hardware supports all values.

-### {% linkable_title HP Microserver gen8 %} +### {% linkable_title HP Microserver Gen8 %} -On this hardware you need to remove the below listed variables from `monitored_variables:` to avoid errors. +On this hardware you should avoid using the following sensor_types as `monitored_variables:` to prevent errors. - `server_oa_info` - `server_power_readings` diff --git a/source/images/screenshots/hp_ilo_sensors.png b/source/images/screenshots/hp_ilo_sensors.png new file mode 100644 index 0000000000000000000000000000000000000000..0c7c4a96ad26159331b659db0c1836e7f23c5856 GIT binary patch literal 83118 zcmdqJ=lW8wtNb2m)V z7z+5WX{k!7sYoWGmPtHpi9Hgm?!Vlcv0QM}PZIsO*=R=4e@h@cy#qn7mPFApQP!gMy*<_QgOn>Ezz_ zavxNf!0tDnz76uh!TDOl1=(&Rz6yKw>!tZ!@B3i=R5Ke`!?U+6%;n2q2&4)h1_t~Z zE~pIy0)e#rhCtfF{4ZhF_usvQdhKSp8gBgx6cc-2v-x+XS${w4dXAr%+(i|k_kHUW8=@Q>)s z&|>WfxX&mIVE_6fM}o8l^Q^M?|1638h=)Io{_p2BF3@HcaXd<(pHC|Jt422VV$}cD z`=3S>c43Ep(zs+N{P=gfW)>PG|LTg^_sJLEekkrrFbMzMyT7|S^s`*xza9SjQTV$8 z3<)O5$ho;WR^L1KBz~`2l`=hDt!fK02JPB7;3vk!yf5x!`%xQ&v8?sB@O)=N+;zq0 zs-C;~dM)g9R1nhN?hivrK|x{XDgCd?IX}OXsWlzw_ z!){U8;-$t;o@@%$!F-LA<+3l>mizptFw$8C(?0|HYi+*MBfQ?^;V|rk<=)ATO+D3a z^Y!80&Cf!_(zqn@KJGYOuy2bO<%V4FG1ad^&$-O#ZZ@BdfM-SzD*IBCUcX#rI zjefdRcTXV0>yW!ZDJPU}JeAuiHJZhGnx6Y=(P?u%N{}%yQ!7CTx{t)K`8YAyre;cw z)p4U=Bt{GW&vjFvg?+`zzU;A0bOUtFbg!f?p^w_alN3Z#-Vt z;$oeK@gBQHucMYqi!t(@xvIP{%45ohyR*^FCAXD$tEs{PhPuTyPQkn5u7HjJZB!Q0 zt{@Z)v9&pp+R^QSV2C)0&uin}@aRUDy+L2_fw~BK29Haj0imMrDIu##a5w?iNQ3x6 z)u_M-5pq|^>3WQa=LRryVbqc~DNvPHqYzsvl{eZQK2&w%|u4VPqV4> zHP+I7kwlx}Y$FabKKNkvKMyLJ#9J|#&v=_8iD@%>UM09K&yld-<|GkOXLwgCr(Vq( zqb9K!2eG|x&ICOO1;P!~%;?d%>`q2|oNZM|Ho6|{VwyvzC>}aFIpt{A*|Azp=Ku5| z1dmHIaZ{!p3GFP@l_`f$OiVl%-kCLya`FF}YJL8DtRvg8pX^ILyFC9zoR0TNkLcw| zpe?Rkg~?Q*>IlE(VB8zg7@N8!*GPh1>;N)<^gy!ngSwT$WDaY@3FQ%a!Fv^EZ)Uy( zMqRD?Q9nZhIDD}e7rjuO?TFHl8GXM71D{h;zulsU(?Y^Z;hnwnQ;Z7k{s%^N*w?CLc#;H`a3Hs zAq0b3>gsT5=>snBUF$}Sbm#`gU36^hdN}UjOtB`L$65&WMg-TgLvQ!#CMb;;&wpOX z(Dmb~(d$K@t0gspF!;6FPk4 zyFZ^eL<8GSnkFh+*;cO9vn(D@~`+DRtRit zhMhyOaHy>A#|As&IbmSA)eFX^{WYEM8YOfVZ;70SSnT2%U$N5pvqte^n!a;r8U%ry zR&K<(y9T3eZcPSdzH)a~*5iIG@8~&b1s`IlHFx&2v;4U`g`i&$;6IRxb%K-}2tv(F z97Zg_RITi1YV`SJ_(g=8^o0D7(6QX}~$ zDRF?C-rXsPN%Rys!Jh~h9T%UHK{$E{<2qUnhTd zR_y>WR+d3nV|nb7QrT>c>05M1`KoBdo#OIH8gJ94Us4*&|KCW9nLqtN-{Z%tS6gx# zKmn2q9r;kFpVrZ*-bh78&okN$NS=FC78<4PJV1W z@uJoQ6mE@g8x@9of(JXZ&e=oKYhLV`=)zC$_w*9=50xY}6b_t<(ICbajjaptnt83y z5GSuDw3dbvCHPRkpi^U|dNoieZc0{9f-YQP)PuN9?6MiJp3q~twzXr-r%)f#Mar0! zDa~qXhG($b%i7y*cHH->4|W7YL|!Kp4|1xB18*Ww1$*HFj6%yr7`!xq$Sh3FkhMq4*sq#*_fRfxCebXdO1>#U z<-=;)Tc7>%3yE+2ai`d)b_aU}^lFWk#nrKdks0@$~fNw`4tU5ovunSp; zNiCAk5I8IccH{EYM4JY)mfqw}?Sh?Clg3ymE84r^;!(iFZZC$p59n6Dci8WlD48uGX|GeI)rB~4=6VzH}xW?{dk-Yom!sMbA>`!(YGqg6T|0@D~ zZBn|T%BR=;BM^G=N@CE3wu6r$>E9*VZ=bQT*B-w#nBw~L4l)&LM~j8vGA_vff* zI{{=|@!1WksP)eR8l*=!{#+F_@#m(q`2|!o+sXS;b>+{3xaYv^4F(i$TK~77ux?>Fc<*Lo~h8(>A&#E|KrO*`{_r8`-#!b<$^sZ(-&9|8g*!Z%vSo|-#Rh` zrY%01)lDH%OJU=Vfagj@Y9;x8TuaW%i#)}eRbo_fsWcP0vUD;FW%`11ZYw^Uc^STr z3%PP>yW=*q`PbgQPH;?u>Ehxzw^M5nE%-i0>%10-1J3^AJ(n-zPhs>&z4-gy}R8jJN#BP!c)Y2 z@EJ#s#yrEPmfd=K$d>olCk&lrk@)h?@cl6Kd??sl`3y#Wugf^eSgL_%@Pwp3x98DG zZ03V3eS{PwKIhSNzW{u(etTVR*!7C`1JH>dFbvU8w%}mMJ5R~creV&7e%_;I<^5v- z_Kv?%{X*=S&s@lBK0?TS+E0;V*cDXi@asLEfOkFb7C^k>$b^IX3-Z!w0T>y}f3>I# zFb+EV=93_L{no`C4*=NZNGCD|tcfKXNAXYFLJpgbHo!-1i3tqaQZuExVeuWDxc;ZF zj{!0!p{ABV2+$T*=idtIap1!ydArsdvzayklxp7q*ly9)?21|7rNFhp!0>Rqyugh} zu1peniB^qc@1UBtE!J7%K!5+&Hpqjv0OZceZMepIM(!og@9(F@jcE%{7Wp%*(xe|> z*|9pbzQc{he09NOzM^mfy{6KBFywAq@DyMwP3%B5O$!;x$+Q&Wk(g$}FS$3qlJ^-n z5W27W%bk$RWvQ3x$$6ZH5c^&mHXJtYrJ}RC9qJS)=S8kseRc%!-snIGb^7nv`8@P| zG+2jd9)S1h===QojFT-MMJzh#@^G^a0`TQZr|r34_~pYr7?iJ=^_qb}Hu#{O^jD)H z9Lu~*VDwmtHrI=hyEO09fsv0)LyN6XSo!xcx_U$hMWKM8Ppm;Q*yH7x=?;xfVlkr`2#@=v*hw%0jH7Iklg{9Q5|9B!?}3aEgZSd3Q{QeBV_00fhOby4;Eorc!EdkZ+DAw zjQb)ht)^%@hzh0RX-m7kjo8GCy=Wx8uBIt?8(E_}BI z8d{{#5Is>Ci8rwQ-yd@weva;ZHCit;oWdo~<94_o9^KF0v65}9${Bw82sa&Y*gnyz z71P|=>OVoi3VN_od|4F*&wJBo)34cwtO!4JqmRUIY$ocvQq)Ha?46ue-ixiSkUPwo zCN_LVO!wS<<2I=4I@j|&=q&JC*!OFJkxuw3^U(z0+)v<54%vucWTf|C)iW}0Bz3gQ zh6yG_$eASVSa>XOJ~3T!RF8(dTPoFc-ct18m1bephxJ~&YV6MlrlB9FB_7=rOH`Lp zM7+~J=Fdq!k!l8*wd{o~SU|$xJtubnp!{2yk8hC@tR89C25{xNQJxoN-w4RbJhxLT z(XMj^hZuTpM2l~P(v>>2y?_-bFC$pv`bKHE^$D-dx~ydykIi$*tg;9s99eNV{#3h4MY{7fsGeOEIMU20x8vB|Dd3;aM_!7SsAt+ zG%WYSih~NnDZds9!)92NzJ)_2rU#ZG5n%7a-wxhAqFJ03cH>@TLsMEc?XH|q%J1+f z_#3{lkvVBeJ;AO^i@z;8QoI#$Oc`}ttnMKsOoztRIBw`{tbAnP z;@_~WY;3|{?l3}kionLzSGb^l1HbCMppOoIC0~1=f>11i4L#hRUke1H*a z)bYE&7$CH={1YI3M5lp=-rV9*ed$u8{3i-~Msdu9o{!0f4|#>e8}Y<~{52&xA^_r2 zg0`G{a#j81r7VvI&BpXbRy_arL;-A3@9ITS?XbnCu?nBRpZ>i_alt?nl$~bqPqx%w zok9}>ddtjHJNm>vJbvu|3LU_QBD4FX|L$!kf(?3*m|AIn3)_TA$9xO(v%d6PGamkHr44vIfAscZPnv=N)b*q-tjKn3Lkp8_ zLyK%sfJ@G3+c0$!tGAFqFY44!cQ>I;)t_bGVyN7PC1TTRUkxnEcm~;nZ>*);4!RtN z03*oMdi{Qc`%0(b(Z@mQbJcQXk};B&;~NM!Zkgd@vc|Q7DQ!&f_bdRjt&sG>hHBU3 zhNI(WOJ$CET6?wF4VG!_NV8DU@xvN>LzZl<&KRGzm3g6ynG!kl+4g9n>%js@6i1(a zCI4B4nXMw-cAn+L#-kt19|nFfN;&V*jBj4AMF9`iJ`R{sOf1UJV4^aJ9 zK`SZ%W>cM48;u>QairuosJyEX+gPWx?40#IN^^Ai#HVk0uQD;C_&h=1I3ZW+%fb2V zd;??JsMj1^G^*+^S^0t3K-Z!81J*m@=&8AzzTruyqtd=h1e)s&T{;T+gkpL05kIro zwL!ng^qr;81+4NHtpYAiIf_$vj`x@Hp?Ad|hiVk^VvJJp&J2btjUJyjmo);`Ro$Ee?!L#j(;!@`!f=e7ORN?KB zFJ=kgaY!X|+R~b*dF1j=>AEeyd32g1lL+X@@g7vm^0yE@AqM`4LZk-7ul3S-r&_i? z*|VBnCSx`jY9;SOOmn}hP~f7a36929NGoqd+!T!4%H-Zv@~os;92c{5UwuJtFmY@g z(uk*pX&wFw%CnhlRt#P6(GqRFqf-^5mx^5yGaa0azv;`YzMMSMxl(SF(NCkL_KPLk z_HG+PBs)^3HtnAh%mu|^jTQAY=qZYN7jLzV{+3bQI6D(dYISf7N@Zoy^&MwjJd+MO zzh)JFP|2c9*MTSp$>2c|HgFLgbF_5FxcjJGJh@98wi)sN;q&=69><@6iR?Fu5lLNr=KWvi2=>sX`!8UL^iiy^rI4^Jbosmf#O46Ms+USZ0R_bVD0b8A zU9fGvTKoxkAvC+t4%~gT!xQ_JE(#}GbnISboftTq(R+EO5=2Bxe$r8<*|&w*Z$>oU zdT*<6XB$j5{uohcp5PX=cdHEcqvq(3c1qbwM52IK|8c*!VLgH?Wq%lZFjB$8tKH}m z{U$3RdoaXPM)H$;1kR+yb#5OVms6*WupkGI9mIno%;KhWY9bBdlgwA`<@&2(RNZ)O zXJvdt&c*t@mO3aN;xe=yGUgmdyGB=uNdM6ysdsMLCWWt|z$FqnC6OwTbJXRgXgHIF z!RmLu_3SdoS;-flscR3>iPWjL83S4{j?}y4JI_dHIbrYjuWX68nnqUa%`>Tf-z=V+!F zpUZ`Z`I1Tx#p_p0im-1gX|wO96o~8#X}$F33qY}MRaRMc>e5{K*76-gLhz~A4r= z!l4Br2Y4x?x?tezGOz!dczt#QY}@*Hk1KkejN3x#37ik7sl`<+xRjGqAb#7*$#?S> z66{lrUOSmm_pUpGzse#g9(-4Fz1KoNcffDExdc5oW)ZC$rvH{kex#*(y5N6QFT=5< z<_t%kVX2`VBM^S|)`g=;T@?|GRz-78w>Y_WQ6agz^*Ibj3~txrPi1y*P<3|9cgVZEyqQ1>9RnF zfemtoMg`GERn^GGU9FT!+dL(M?fJTcQ%W`qK?^%}?i{DpMnMjG4@Um+YFzt>hHZm2 zEQVkC_OJ|Msg?_5K$*goBIm*73}wXK$L2G!FiBy*Qk9vkhqyVrp4YugQk#MQqQm`# zV;2gS#J%SQtz$)r%|C|nBf3QByYZl2eIA&Tb;M|YE6igq_4xNjs611^CF+t3BYKjl z>u7@Nk|m{vd$3)f?otVxSj^TYtDack?4i75fS=FGFK7PZPC~F@owK`P@O>)M&&z?C zj>Mb+&fQQBzpTum%L*R4iCQrmia_>=sd}v+z5UK}fh80!ud8+iAXwvsm ziEjONlS!j{;%}zGAMzInrxRWytoy|D8lhFoYh!>;N=6EiRkC6qu*;%|v<3T0zKfFb zpD+fpe{Uw2l9P+nzD-C9H;&|2V{H9RP8R%!13CrCKiiz$VS)_mx-nyXamBT8BmMgz zQ3Z7W8Bx_{CkYS`f>XB734%T$3|zn=Ns5F!mXvjiq@5~pu6ZN2&1)&slQVpZ<)rgL zRU~;x`xKn=5qA}_K;sxY$_;Z(39f(DYN~YgFGESx4knMHLcpwV3%uL2h5+- z%qTFB(6KE+q_J>d{Tku=Gk#nkU<9mXOhD~Bxrmm$%sNZFImnYfSpI%OtGBxw4Ed#R zKKS0JfISs~aQp4Xn%SJ=nX?NoLDG(qTrh^A=Bmka;=0W7?^k>hKu z?zK&v=>$T8UNCt{S7@;_%I$PLnyj|AvC!dUrGY!Sq0c^W6h3c8$$$IyD?y^y;^YJW zjktO^1cOTE>%{0=VXZnlhCpKXcb->=x-5uhIsfxAgui=(E};o9`_B3E!eE@xij87F zePI(1cT{LQ&W6h{cHA5KgbTzJ z7-U}jFd)vkXwkaZWi0Bq&aOVK^L`5DqY>PfsEcJJM=h!$)%D{&n4B9L(~kG}b5jcMag$R5xf&;sDhU(}x6 z{a1$v{Q-u$3AH5mFK0fd8?^SPAJOr2jti4ENo~33DY4Bh-pqpP%c%sjt8TAv@P^oy ze_Y9fqIc*{*C?y*H$@BpUCO4j8E?sxz78g~V;fm)3>+vsnJg#EazT@)6b&p8Y}9ab z+ns?&e)dC%lNgg$I{4O!62pJ^|KQlp=njv`NZ1}YMG47?Q13lmZsVbor-IxcO>YA3 z-k3)&3$&91IJ-{)VFixS+trUS*+8VU=RpgIV}9%X!&O;{AyKxEMRRo8HqW6uZ_hxlT&=i!hce)XO&$^ay)h=JP5gobX=-f44qP>WbC=?(G5_$RH99Ya-5qd{Z zbF&(Vx={&YjNQ)g(|gH(uHbRCs(r`Hp`>bOVpoLkBdG&2o@uG*dsi8T%)9#<0eP_@kju?QX(BBL8&_dak+Vtiy4mlBg`Eoc=_Pli)6)1i zmF{T>+k$nXS`}skV;F5YrLs;l8w0;klyXiuZ#*ECw4)6q2YPIx%j=7cH^=W9!b~w| znWaZn<|rD=LtbtrA+Y%oW`r;MRno}& zPVtN}f+q*e&)1H)S&dE8+a3DLxE-w~*av2V%b3HS@9wZU`bHK{gd~lHIo326X5%6tR^vRi#D}dI2txcT}WaY7X@}qVEI?ZyY)i~67 zzSY9N^H$MByKLr^HR~L_%a=H#S91oQnx$+AkS2KF(sb~ZHln&kFFAhw_T2&Pjp?nO zW-0x6$=H!^s>l1)|stTCXX@!X3b2`{g80j%a>2tdxnxA|JPQ(C~Ajw&qJmilz63XDg$EZS5T zrE8c&<(DmM3xpmO%g1M^%;^_a;o+h=3=W5lAP9fD=eBx1qL$+`y?e*@ zX_H?r{-&sPG&*-7)Vhf2;>w4|D=4 zV+yL#Ln^(w+&+kKf@WnlcqS^qRyHZgUs6`FODZBwxp(tz)^-jf9)4o%b~vgPi)zFV zPL9*;NPLvkHsJ&0lOQ-aDmbzrxcgtMwlh{c9^>!93_h4y^w}TZm#fdPhJrq&= zo&cNjP?-40H7W<$Px5$Rhinn_(tqol8VsJxit^l&FGId(5G}nE(1v3lj%!-T0SWGw z2JTIE5g9kh8KPA}E*c0n&UMEpU1&4pHJ0Oq4qkc4qtx+e=OBnl-g9x~SJ0d`;3pwe zye=D=zEl(L0!=mL3=GJg`sruif7HZ5MhW<}evxIMJ#pn)6m4H_WP+j+n7Q7M!rGSB z{~=<+q_41mN4Z9bc%E))I9;*TJ*I?c&6oo*MIFQ?GfJF66w9!U9NTo%s_nY?L7WSO zo@BQ<82>0Q@>q}HB6pj!e?oCpte_;6cys3*(qhWXX}l!GT^uob=Y#k8?r%novv zb77;Ewfk2NS|t2NH}43al0S*l%Q)Y`!J6 zyHL@jA+5m%EM)o!>aWu(9O^0772i)j&kt!_LsoUe7n=(q3Rd}zZ%7PJaUs~aMUvFFeE|PaY3P2Q_;#?wRFbBzIayg zIoqp&O*M8G$y2#nUz8e#B%+kO#h3%}^N92;P6-$npS{eW>B#4B@?%+S(9VPxY9=MxC|ofShuD|Y#73VDklD8`)Q z;p0>w8fFDHzISsT{tMWvWp?hqh6=RNlkOqHh?aN1BAH+#^_f{fZ<0NDmOc`wI1S@) zi<|Q*ENTi_s`Jh( zvrjyig7_0w`Qa@~UynDM&E51OA$P%t@qUV`$eR?W*8HM39SEi=cu5#j8fOP8>c%=- z*8KNJ-|%)`8u6R$><1^hdw`t>yaga$rED}F=6!5!8-+!xzU9J|_raRX8dX}DLC2<6 zspJp~K_Lf_u(wa)uI1$dnco(2V1jDJ0~g&)Ptryn{exiAZB-~{Z_jfaomI7TfNiB+ z3udt06C@S_!eD(?R-?Y5>+?S@_CYbyogYV@JiC0w)!)wLG@g~R^lm~Kd9>JGM4WJaBn5UVqYudp9D2G;RZ+!j z3HXt!303T9cUrnhd$FIn8SDA)s)m9GcX$dW@jOsue$ir; z6cc912pYKtY(-An_lG?+rs2nR2%t}Y;igiO%6f?Qn15XB~uZql;p9S+g`gvNxfxxEACSfE$rZD>Fvi}-hBAE@mqV|ZDjNy?M2;m{3v3= zaY?aDx#JTx86fns84nlJ#LVYA^%gf~BL;IXw8)h4jkM*Y#U_1`yG=*Z*}YrntYe2$ z(|=+e|1Zq$-9T0v=tsG$)RWi$ihR<-11ynNoLBSBpTXC6IphHK&9P#nD}G`_0D_xO z2++rT!UL0>e@VFFL*FTZ7D}}mDwR}65UpV!7@(&L)!p(ctv6Q4?Y93HSsjdhWY&WQ zZ1{%GHveL|%+QpN?S_=k{V#_1Upd_;ARI~&9{E(Y^jFDukw=vqIwx=cpF9`WACLt8 zhqoRLv1^udQih9$Tt?R=M&aZQ@*+*#jWTSV^~D#QZXB5^AGyn{q-M}&+-tHlo#=xS z21IdmUq6N(;YmCtrpxr1G&MCHk6Nw<1D+#EwfF(DYVpICqtkN4=I@W(L&ted7DcUKJ6( zAky*2pwun{;y7xh^{0bU9bI)!xDOf^D{&8-XWl?^#G*@DS{jksr%s=T^u+$E&*u7? zgMjSzO-2Nw_?**K6E0tkW9k@49j z>OIcBuqa>$_3qDArJ=8DCprz?ucJbgbB!#z6<#7?#IJ$`A$Jsf7K6&f9_NZT9$Q1F z^zRJ``shT8ThWi|-NAW)oD2}91Sb}&Tuv;@^PPxHHVa&@!rUmLM2l?n64=MNE&Hgy z+*?q8#m`u&-^VLoxzlwjogGeNOJk$=aJ$FE4GBQXzOZYOoG=^S08#;B%i131k6bh0 z&wncpIW+B+Hf8IAFAwoAxA}qmn2n*Tkr;V_`|AFaF<+4c3a#Y9dWIy=2oga(xwj`G z+$WzfQh%V^Bx<#_UD3k4tV!B+ndX<=K((w~AxW~KbP#UOTsNHD!R8urpWQ8~tiqek+k*_u8_l!D z60!7fojBSZt680 z*Y!gdA#M*u7lZ5n)MZe|%aux;_ed7on7t*?l+lbPKb!izufTxxs;I=^ z)zDryT!WJM9vYQ2S9ZS_Pm?kSgZ%A5DxEg`zQ2YkRU1mfo6_d0nqu9$(RkPS+UT?Q zNHaP8)Y3|(Y0Kc=yQEA)fa@kMT&kf6qUAQvt6{5*ol98hxfcLUl|K#MhAWiDR;_}G3` zJb>uRn#tK*KKWhjPMrd3s6l{oAGr;T=SXkz^K}UZ4XA+AZO&smO_xV3M{gQlPv7(*XA37n(6Uvrx7sj~QP*UY|BBu*Qm}eh z;NjX>9kSfw1p-6|8<$|t2jFfciUm}lwf!F+#EV-`fHax``H9?t)-+xu#Bo5usaouV z%b%kc{?2vUnXes(QHLhO`!u9jyH2h*9FJnbuBoKjX6$`$1cCbO;ducBg@Ee5rlsZ8 z&~M8uu?W~rEW^t%^p1-`AaonqO2l7v2tH!Uu+Xmi*-Y`ADx)ac3CMqv031!(de4r2 z*|#0+R;@?!iV?33%Fb!m+U#6DkLr^3zcfoIOuYP{pI~v%1LPB$d5KGp4w0}iisu_{ zeb$WEts!is$Avq;awZ~uD}e<*s9h-4z%!mI3Cgvd$c>PO2)exJD!&um`_-WDJ7@Y{ zdnG>*ibg;B{ldz3HvZ9qiV7g(3yaqtiD4TwpYV84OHQ#KD!DzNH>bC+u(bl#k2Vvm+XFbL9+dSmUDqtwK#)k*-+{Lip8HO(txq=w>(~5%^ljT}LJja4g?QOiKfH%XZ9Tx(x!=>NL0;;?RP16Gi(6il8KgHIHWoRcrsQ0C z`YmmSh-6cmit$&(al*Oe}8o~_UQqMW|(J&KwZ@YSECUi@uNbdD#~ zbeeklYOkUF;;refise#ay!Z95FOHcb0aIgprX!0DcDWqN;C6pclH>OzvX>9|dkr{q zSEGDqGH%JTJ|owaYM(|wdVF>NaF`lRMeQB?rfMd;A7x_P1j5AjJO^KBZtu<`H(WQF z+&&-TUB{Ai3fjF3A}&7U*nap*mM9~a2wYsI?R9vLH*pb&n1e=5@11O_o6UF=7;}dcqGkC1B zd!7s7&U5;j-#7YVnOi|qw)y`RjgWD!9iQN_nz*)#$@4Q#@euQq2@A})YLrDdwx0Hq zo;VgItfvH=2GyvV=oPKi+msGTMQ8N_N|a&ni-;MEE6ZFHoLMeI(_VKz6P-rBQ|)AW zCF8Z?Bi4=mBhJeg`gY^@`95Ug_G^B{vhm#hJccSgyUGvOeqg7-UgP7Br>rtqk>8m) zhJ|g5X#>IgRZ+_0cMsN6sNjuQdDp=WS*{g&aS|t)Up5^?Zi{3vaL8W;&w~U+u%bC_ z7X}Mei|&4W&X~9$3$3hH(yts4j`~8E+@q7jubAVY$=&eY+%NpsUU)Ma% zr#7|355W$uO67y_TU69IX36TiXb--N^9jdmbn$xl{-Uy0S|3%(09p19hUe;WOe((~ z#oyUg_=31D2&mW6s$;yT`B|B#UnUy1)Atq`f^Xhxi(joCeTK)q`2pMZL-}H<(T#~P z>C*PDB|Vlie6ts`$o`l#Q{SQ0;-Jd=#&O4G)!z{UgZg&*7#GMVRbDk1MR<*x$30KX z_nWEy`2AH%WtM}k;{fF$*`WRWUGv$fTb12iZ=DAKK@;j$Jj9o$1b2Jfy4i%$iE=|f z{3MFHKM(0rwd|8v`xQ<;jKI2Ge>rbWL^m!v7!-i+?U#1Fo)0gELII-5@li1ZI_fD~ul+sCXX zyujst2ZD>0U-#gqv+I?I*v7lYzL$ye@ zYJH3<=GF6woQwn*3M`20ZiwR!<+Kk%PKtG~vG`7fah$T>y<9qVhGQsNn^Q!sm%S|) z(_)zCPL&vArSCYDb{%O=;^EKF&&PmJhre+x!a1)YI0$8+MQ5{4>t` zB_Wn%HbgkffW9TbJ{;or{qD{;7Q;^LwYaC81M4?GU`@9L9uOAUb$G_9K@hig%EV`T zF#JX-h^`*io!^C7Zwj@zvK-fQkycaq^h(d(2eDVo_mPn7#di2hGqy}#e7L>ZRM%1b z#=bAm(Q>84AL+#u#5$^S`vKJ_lDX(QO|MTVi)#*SJ?q3&d8E8L?mmL4)(q|argW_5 z%_N*EaYlMPW8i{$1Kt-G9(MO-I=P(nF*a(=%snRda zn-WQQXV|B5iCb+?wsZj}iB(Gcr~IU`6gf>B(~xYey{C->8+G{nm2%elWd>JeaDqMV z%1e&34JwZ6Z)EtTgkKH)vI{B_8L7F3%)gdkd1&LYFHq@MnDhoiT}ZnPU}HX1Sbbca zwhBb+CN3)>KMPgUYm2BJb?tZE*3Ifq_KSP7K6SiPxQ$A8##AJ#Rgl>8eW@y2$|^lI zvlljKkHOl>WIF(ldSuLdfv+J?wzjuRB{~-04D`!|s}>Z=Gx4fO{^s<4Aw$2Q^QV-! zxY3K&>FvVz{tm(>m==DjrN=GAJkI$tYNjq-#unrd|~Kg zJ-rI0T{g!G4=6`z*n~WcMyNgHRN-7L`nWxa-A4tS7t`hqPpT98&291U3?rC3WEU`h z=)lq8%LkFFIuxlCkmu#Ib_CvFbFfD8ol4~Cyz1`v2*?tTzB&FV3*0h&t=|!QO6rzr zx3Orb>y}+p*f7Z_P6%>Rz68lXCg%%{?dJ7{;Fu9)o`^T(GWbq@F$Jof<$)gAA2^1F z_{BW{0{@OTw&f&1!pzSy1tWB^Z3Srg@v(+z9x3r+v;*gG0U5@XZ1mnl^{PX7YW4Vws*>RnK#z03BDfVVzBEiAm!Y{@@Fe*}aU~qS z3Fe@B)kV55Ae7EWz@1=D;TVJ8rE^xc*ZC4xpWfk@d0%}Zm8YNVMgz`17^du4w0!&`3Ig#03z3?e7Qc)dkOwL;dg@tf1;yD!QSGSLN%OGtJsJIV0l zVoRkCb(+O&@GhzzhYD=!hl--9Seds)9UtyX3E~IJ9;Bk#2)5r+1R5)5Urjdm<|9RO zvCkKgAD#h-)p_!+#o=%?!G>O)gX3efHQJ#pziYqhRW>FE`yKj#k8e&D)uY(2SVlDy zd>FSb2JUi1TnBwvpF}CDY83Hk9b#`M#9_=i29ZQ9PV)}gqrl00W56UbZ>R4o#Z0Ol(xj45@VFmRfpQ3BCv{LmtdEJll zgzP&RedRu3B+OT*J;Rg<2F@qU#;{>n<}_C__efIo4=XaMzs0`)`n0MS)EVagSsQ`v zJ>OS7wH(Bb&GsnQCY0w8qc<}rw_+OL@QGG`x{rcfS$1*oIgH7?7*!5HP z43UNdVL(Tu48^TMNN!D*;$Ligy&#+xAw$5zce9IQVuY*&VFzGV9KAljj!a9h3WL*X zwwQP(@@j<0Xm6KKnS6O8wVF*nRpDlyDzOPR zoO*~{ma$$g5^1?D_3o<*t*FPq5-NxEgd(-+J#|3!YNK{HifpCOJ z?C3qiU+)M~rJqU!ct>bUZ72(Qs^K2YY)q*37>GV|c`!y@VK!$GWFDvRSR{-8~t3 zp!Nah;-oTG;^ioCbY2#ZiOUP7{8C)M_}xp^TG7g03^9H@>D-)qVGzZW7~A(o|G4yv zI*Ha~vgJwL2Tf)Qw&m@1FCk zbOyM+x^PpAN;R5hsiG%h{g|%m7Z#B`dC@Q}KCH2TMH0F{piop@jVZUE-|7_`2=W;k zmMo}8;hf^6d&<1Ux(&bv{`oCEc#mvGm1f&RxcQb3W#T}^6eW^I>{wO>-7Lb}ssFLy z2&GtQ|D-qGALKV;{0oz;xbLcn<5$wpXYum6o=GvcePM0l%k1HzzwqRpGQ`q5KzdNz zW3XF&0*_Jb??1Xp0~2vH*&nW%LexOYDYmz2KPgb$#FumOHi*1`8+erTCX~ z%2j6~`oo=XnOHm)NKRfvAJI{sh}OQ$B}hIkfw6Sn5eWB)q76cua}fXeIR=NRgO(>R ziA=8@sv-4cz)G&=cU6>1lZgMyq2NPEL3V)3BQSkzbML^njiGJT;+o%*BCY=A8+=q! zn2`Ag{a8K9t$u$ir<~;?|8%`Rbmk?u$(V)09xkb)3)FUD#NH*TxD05(HrNCU(6F=W;>mY6$s6F;Pj<=K`Y*Y8J1x{)|4k zy7?jRB+Z4mx1=ws$xEmJQ}HtYzb*wTdpo)F}E#JCcF_3-7ka-2174sSUWj6X{}ek zt{uo+@9Ny5#RjQc^}os|gLs_|yP6)uWzG5K_=_r|a+#k}cq<)r(=XoWHzwbA{u*Mn zUF5(w(`TvAs;W|ltHn7cMti67Qx)Aq`r8Vs?*%QqWgOz(QK1|mLMG1M4&`yeAEi?P zCxRH9&R>|;vbn@zoh*Ii)Cum%4bQh9p{;JRyih60NUaQNpSNsJzV6Buc=zO$($U0{ z2z=?S?QMv8<)PowT|+2}^ep_F-&;YS@Z%1>Wm#viy)e#-vF!&@MOtT1V|1WbD3r?j z2hQNgR!PnZ^*R^wt14tR*`8V^?%Gf&TeM*Ng=+u2DH>BK`nEDO%R-8Zq`?Vg&Twc# znpMKEOz{{rGaVxDJ06u@Zu+&&EYyBhre6DRzbUL-iOz;A!w)Q6U-I7=S&2SeT3u3& zgulv5d{*zUCpfonIoT1zj%5xW{$l8_C%PGMC>Py5V(nv#}?exRG(!T zA$xo!&VsaFAFE4~qm%oBHZ=y8n?%TGSrn-hFQ}B}+u)!H@C2+!c$m0Z+?|g3kMsf? z4*Su~x82)n3rI7_vthdK*x2B{|0YNLqv2=Tkj}#7UgzizM)&wgtI~n?ExI+a*XJv- z#7?!Dw^AwIWx1*3;}^b_BO_pA+pT?QzGoCItTnoQDrB@6i*}z!3Gvgwa<#N8mwm6# z$A3N(Xf8V&DL^D5%wE<0z4`_)Hb=95w#dAvo3Wj5{H%g%hR$i{B}fW#={GzU^Qd0^ zUQ*5oh{R%;Z=((aUfFsIA5)G;p1y_sQhj77hF&ho@lbRc$Xcfwt_-{lWSN8GuFqKX z$#`?U?YlkFZ_^N9ad?Fu4!t4k$eYAL18T-DZ4 z!!tM6P5&cMfj7jWL!`I-%QUir*-5VTOjv7lQNrcE@%@{5BNHW3se1HanmG2*(1hMoZ#KyH*T>S-*|?Y6dc^3^66rvLZKKGZtf|mz(Cc3+~sPv zU{tjCth!+*+l2_CS;WF3QTTT@jo|59Kz$NhzCIzK)jHp45dXg`M8? zg)pWc_G3^VdP%bY?*iWuI{LF?1wt~VN{OlnuPc7R`9kdLaFo6&?O{dKpfZw^EK}ly zm^6x$#7(+Qa3=iiH!@cSBnT4v=V89@{It$no+FHa+F^e&axU=XAkFSjL5n{69?`a@Pb@$ys`OfI=&Jw*mQ|$wA6Zau^ z+}p^*IWu-S467kJ63HxObQMp)x$wuW_M^F0y7BCQNLz^Ah?+&Ym>)g{<>Mp)JLl_W z^09k+Lk>@GUCRCa0N+*ck6i(A=@9=54Vmspgy%crRBFbB>Di)>?i=5300+7U|NEbS z0sR83flpjD1bsyiIg)r*Z&}Oo{Lg=GP^aDoa!jdC+tVK8uCy-I+yL*ffV)`EK!20z zRZ!3pMxG<4R1(+t(nK^&_XE;~l6gte|7eQ}DWV5gk)Ud5<{L;g`br%YE4s5^9N0-@ zS3!fVZAAO%VnD-&3v6qx;@MSXBzAh!Gg=vO>#fJ&zJ$l?9L!zSjx{_87luGlCCxPU zop8lOgzY*?{l`vTsH{{YTKIT)JtvFh?PtCK1CAY>_SDP+o+{JWX!D5v(-dqE|N86JgBRO)@dpa%gE<{e zZh*lLbqrUC1h%v;Oai^Uu&oJ~;zu@xre`rqyzmmfG*Wt^?whKU`gm7dvambb#||8N zjSZzwEK1r#rXOPwWoSU3`trOLLxQfh4>C)akVPUob zAQw8QY%Qx&!ZB#451`WE)Ndv(GuC?CE5q?FWQt_6+)iS%p$W!mvT@&Y^Lc_R%oe2} zcrRHiojzKRCCc&^-EqsC34i{y>y&Q2$&gH-$&HbH9+%SFZR@p+?y<+qRpOHnV!Apx zoHzT1O*QVeRIxv}i^{ZqV~rQ3`+gmDd9J;zCf^3pvJ!*Mp#;*&*&dYe%}w_c&KF9S zQ9<1zjKNqjz+u}}btv;j<4>z>BaBw2>-3=`5U=oE3g_t|qO>oG!PnytL`epF6?R{O zr@TybX%qgd##9{uaT_Wp{WJD6;7=z`J|<1%9Vo_CyE%mUY|^hbbF-Y5e)EOF2qJx$ zdVJw^A35UNvQDBS$0gVkYG7l^q5|DkfUSWq((MwVr!=b&PWsVf+GYJ3TS&~%&QJy$9UV0Lr%M&LD9$O}rs!cZ>GYK11S zP~gBl$>7RH>h(rh^3uXLC$z%zP|S`^A9E_1%SMS~3}S?>@|f~rQ`nh8-#^q{*ZiEI z$DYFXt(M@#Ofme4SlQa+@_)mr$f3!#vV;%yP&vB^!x` z`m9X>wjV~kF1g??C#=ksJ6$$CBWD*q_qzF$x2Aph%v9Q7%0_T?LNF11abr4_DnFsV zU)#GiT)rz66D{D+8Iv>r8^i3&*!yQbLT_N5w3-aX$TslDrsM|5A>M0LKOoGzf_6aK zD`~D4cT7vD7_HVa?!(bb#yG8S8nOW!!>7ikFPTC^<@(=Yx0K2QOufvJ_6nlu*19`P z2~RhVx!E5Gf!%OLEK;N-_)!i*@g?_LO3rIk5ca7U)>)d(T7l?&K@qCcTGEj+XKvl| zxkqk|JDubICwCEdlRM8AfM0n9u~t}~zBcq^^7Ql5uK(ze(qbdz9P z@Up4Mo?E-&;k`oS?KUA+m^jX}>aFOm-<^HE|CF+#d9xVxXf3}ubBCGwb97Q1Un^Yc z`k8+6bg)>|sXy^f6ebpftP<^u|F3ZegsK@lbLKof@8;yL?mo$yS+ z`@7E1yd=3e1o-&@;d5yZNz-H!?VMf9ubwA92)gKDJsV?8$-kVF=#5h}EPs7i-~CGF zBB7UKS3i<@k9v8IvWwrLPpU))6rNwhdS5c7WVqyA2nSVaYp1@#r5>vm`^OCN1oone zjgHf0K~)u0Gz>(!OzczP{|ZQ6a%ag3K2r(*XEljaSe-!{uc$lkM?WQwrQabZW01|G zgL@t%;N=}bd^7cJa0PKO3qtR5tK)ekkY5;?Z1_KSna5hBJS)F#CM*en^?2+QvJlRN z7S>ICe+lk}(%xR6d_Z|^S0lz!bP#R;?3bI>Wz{ONw}K{ilNk8RwEv|7U)}_D;&g|8T7&NBw)dD27+hhJA|mkpCSgDaHF| zy}_Hb2>ajGn`j`pkzC$c(eOXK>Oh<%PxBvQN|QGc|9@pbK5_tjrjJ#3b#wp2SNM-P zp!kn^r8ujsJu)UANKXQ4JEpmpJpoKGBb}x#G|RLJ+;L=rngH}hvw|cOtZf#sd3rt0-@2jSja#Yv&oQF%Gv*&`?zt2+2L=Od6M$Dl!K%`b(}Dc* z57!E;zO{=KVje5`e%V-ybIJfbr#;7#2(quGS^iId`l4H(z18MY!P&n++k5nY^P!IH zYR)+hl4$Az7?{U|FS<^R`jU@bNAD^D$R?ick&5X#L|T_3;g%`3>-bu^7*wF1r|i|b z8^yZM;g`P;Xw`J-T4fKDMX!IxGvtTpZQm@`cvfyq4^)3TC9HdgJU%|vwJx=vF{otn zxnHdQ1MNg-9R^Z}WJKGnWXC#gVfGU$$ z0^9B_eXcdP->(s5{z6KC?{K$P-`Rv;fAF*20os8oUy*VJ~f8lAUj4%&NPDo?HFQwuSqVDPwiu<)U#|OIu7J&rkCN{m@Id@foWOy7bJkd&GQFO3&>N<~;W5<*I{JJ+VJlVgS;gP9E@2nrlo%&>}jY>)e}l zyL?;M;-UwmL0wFzOO=US=0kYIi$|4B>klox?(R}%MQ?zvy1q7INb@rM7v^zyY9~w& zVI77D8lw&2f!j@a27iEZ*!rJMVRK5jUF9Dj_VZkX;JK;rDSuKuVK_#zE#R3TeX5Da zb2=onTLsVoqpY6-oV^~ee{{)=r@*v(?T$-6{-SiU`$v5c`N?4iycmnf`h~SDe39AT z-?dJZJgPr^0B6UBD**cA5D5p74cjmk>H8`Ud;mnR2xM3P(R^tfd%Fhh_GNINPy*PK*>_j2L_c|(-LlV3X9`ST6`#jw ze)X1#1^Jdx{9;$^tBb=m9tz zgV*=@YM4Sz*{Lf)Q!OTl@nd?Bsk({a*Bcw}lRqV40s=nBDIS24f!n_iuDg81S{E`r zCj80g2Xi>y!M@{$L5abeKE~ZTzV1go8+5+Iq!jD8e5I_A(lw@` zTl5UyhQi=Z|zWZ`-DWIheAnI6{+FIzizJ}unTi-dP<|NEQ3&CDSuy{#*{52>V zNorVeLxi<|YMIZ{n|cDfyhV1=ajhzFCaQmZL_Ll~iYYvhdgbFMVOV~J0~i7?SMdD7 zmv^*!3q=tWlu3XAK(X4W(?B$2?eR6Bd7Y+E9HMNb6L2Twae{Y#cVsD5%)N$1k^BdJl{1WAiv>Ht28@Yd$irPn%wQ=zogmPyH8owIOaUzs2q%l93N~0SL0k z!GnRJkd4|jlqG)QG^xfuKHl{FyE6$ zZSQta_lQw^i}CfW>v%;yTpF^wNiIA#NND`mz+AoIyYT|mL#Ko!`raYrC_#?=0B@jn zZ)g+%Ow;BPPT0ALA9uaI_I=|FCwqC$@i})rLQ3&CMg@%|em#>*)IFn2@oc#JX}k^o zmJsCXx3pqCzVZ|yt)$k0e_x%qUAzym)rCOX!fqX>v!8)Gp3k4svu*2l&w`j2TjD33 z-}oP=1&>BHK2aFxcRXB!*Nj1@TBGQ|7H76$%r$0>zdqk8#%c21qWV#H8rHarHeN)N zLuXlZb#GURBcXl)pYM2S*ze_^pMyh9V8ge*J=diY0U(s5zQYvZo}1rb4jCRS^J(b9 zUP>*fHPg<5baczPyP1I~SY519PXB9t`p+DZD7*M!pvbcN(agQDYa62+rrQ{!Us!b{aBP_y9 zlSdr1Y}pH{ijg@oXi=bn24y2LCDvoi(D6owymmK?C{f6K8J$s5o
Cm{_@%Vo{6ov{jk|=uP^e8 zc8rL%rTe)Q!Gztz&y>J6UiAKRVF>wx`~ctIFXUH!P||V0ZMg)=&7tDXu^hqdcbAvt zt_YK%^C^=B&#gG7Vw>1a$tjy=#T`k>7;C*8`T`#vQ|%aTCCH5o1!ri=+b)zkhJ+`0 z{i3FSKjjSw%GkUW6$ahxNz*MonjRE!-^#2WFnBbYG~uXLqE@|eI(6j?+hxtSmOaq4 z(9XTx>A;3y>*IlT;ccv+cR zf@PG9E2ywZactkb{MM`mWvUkehaMz1EO(-T8`5ksinC%GLB9S4fsjJm{8zTod`Zq% zJJZz>5a8A8Y)AB~M3{G~)R#NwxD)>S8U@|6jWWiyjJRx9x9r<-1TA|mAfyDTe08nl zX`lUo=+}V-;s0oz#dt~u&6cLZm=orY#oN^Pgfq-(?iY)(07qYOJ`2cl#!*9K)6a<0 z#LpBGgw^YZD916!{ec?f{`kc~@sIuk=-j}m!ZOp0Ael%^~7EqpMOxVpTqYd$;;OVCczi$R0qNJ1V&q}~jj)rdh0)g!?Z zO=5-lN!(cS3M!9=>BAGO*Ob?Vgr7z0Fo26idcW39DplO|-JYiCJ9{ADy)ZMG9v~NA zZ*e)9Mq!VZ@l5PapgnX$K1cd9e0|mRxIX%2<2Rc+9>CC7X&!WnF}xjqtJfQh#Qv$l zWyK&bnvJYv2r1l;cW*P770grdk~rCJ*#70*U%K7AgKd$BH^~?Q!OUUI(mjml1z2 z(!*EYNFwbo5d_id5BA9trwkFvJ*lW8L_lRYWeJv)>c5D79{4W!F_$>v7)@QxgBeA! z&I5GTmE>TIks=EAN!eTrd7*C+2d`*r`!Rb>P44)-YPAS144jz2u^>U?!BF_Nv`eGV zo=zXf^!*id-#5|faE-n^CrGe;^s7QhEX?C6(>4sLY0a1Wa9&7G>PRXul;|h(L%A)o;B%PSJc zAg5&Cs(^!W2RHoqj|opR8_p$NZ+gwXG2HZ&t(L-_w)K8I_`|dAaO|`%I%*G0=Z>QLx55+w2z9vEgf=Sy+Fkz%T_xzaxB#biuEx`3_S`bsyY8?kYuH;t3s;R<9P>4YE38%pgU`n6Qr zaf;{8_RT%c;&kL_yd37 zO^u?2JmF%npj=(w@hXMSU+Mu=xG-#Iw6KlFILZ7eWz#*e+swE?90x)bb%K`O`VQOu z1&@ZC*(Sfr+xJ|wNSqlpc%Z^a$zJCyJ&fP{cIz#=ChQ3KJc_Z&;<9wmmvGXMZp6lp z|GdPCP4p5URll>cN_Lh6Rg0+tPBLwZT!sgQ%&g)nh8S=TK-!&>$2gA%_8dZm%)gJc z*Z1A5ZpJ@jM%}J&cX5|v_)gj)G({8;Ib0^qMi))g9XS2=?`!VV_%8tC@nO}DfJe

*yK($ac)bq8L1yvqnSLu_KUrBHb68lJ2Lw{ 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 TOhfSs2>8*{Hqv^JaEkta5OlXI literal 0 HcmV?d00001 From 565af0d8bae0b2581346f15ac5e9bb0cfce613ee Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 31 May 2017 08:30:58 +0200 Subject: [PATCH 20/24] Add initial benchmark script section --- source/_docs/tools/scripts.markdown | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/source/_docs/tools/scripts.markdown b/source/_docs/tools/scripts.markdown index 240c9a4484e..c5b0cce18a8 100644 --- a/source/_docs/tools/scripts.markdown +++ b/source/_docs/tools/scripts.markdown @@ -9,8 +9,7 @@ sharing: true footer: true --- -The command-line and the frontend which simplify common tasks, are helping with migrations, and ensure that Home Assistant runs properly. Please do not confuse those with with Home Assistant's [script](/docs/scripts/) feature. - +The command-line and the frontend which simplify common tasks, are helping with migrations, and ensure that Home Assistant runs properly. Please do not confuse those with with Home Assistant's [script](/docs/scripts/) feature. ### {% linkable_title Configuration check %} @@ -36,9 +35,19 @@ There is a method to store secrets outside of your `configuration.yaml` file. Fo $ hass --script keyring ``` +### {% linkable_title Benchmark %} + +For testing the performance of Home Assistant the Benchmark scipt runs until you exit using Control+C. + +Firing and handling of a million events. + +```bash +$ hass --script benchmark async_million_events +``` + ### {% linkable_title Old scripts %} -Usally those scripts were only use when a massive update happend and was announced in the release notes. +Usally those scripts were only used when a massive update happend and was announced in the release notes. - `db_migrator`: Migrate an existing SQLite database to the new schema. - `influxdb_migrator`: Convert an old InfluxDB to the new format. From db428a5c2ddacce1e049a69235e3d2eefc9298fa Mon Sep 17 00:00:00 2001 From: Marcelo Moreira de Mello Date: Wed, 31 May 2017 04:21:55 -0400 Subject: [PATCH 21/24] Added Netgear Arlo documentation (#2726) --- source/_components/arlo.markdown | 33 ++++++++++++++++++++++ source/_components/camera.arlo.markdown | 32 +++++++++++++++++++++ source/_components/sensor.arlo.markdown | 36 ++++++++++++++++++++++++ source/images/supported_brands/arlo.png | Bin 0 -> 2751 bytes 4 files changed, 101 insertions(+) create mode 100644 source/_components/arlo.markdown create mode 100644 source/_components/camera.arlo.markdown create mode 100644 source/_components/sensor.arlo.markdown create mode 100644 source/images/supported_brands/arlo.png diff --git a/source/_components/arlo.markdown b/source/_components/arlo.markdown new file mode 100644 index 00000000000..23c0a4e075b --- /dev/null +++ b/source/_components/arlo.markdown @@ -0,0 +1,33 @@ +--- +layout: page +title: "Arlo" +description: "Instructions on how to integrate your Netgear Arlo cameras within Home Assistant." +date: 2017-05-30 10:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: arlo.png +ha_category: Hub +ha_release: 0.46 +--- + +The `arlo` implementation allows you to integrate your [Arlo](https://arlo.netgear.com/) devices in Home Assistant. + +To enable device linked in your [Arlo](https://arlo.netgear.com/) account, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +arlo: + username: you@example.com + password: secret +``` + +Configuration variables: + +- **username** (*Required*): The username for accessing your Arlo account. +- **password** (*Required*): The password for accessing your Arlo account. + +It is recommended to create a dedicated user on Arlo website to be used within Home Assistant and then share your Arlo cameras. + +Finish its configuration by visiting the [Arlo sensor page](/components/sensor.arlo/) or [Arlo camera page](/components/camera.arlo/). diff --git a/source/_components/camera.arlo.markdown b/source/_components/camera.arlo.markdown new file mode 100644 index 00000000000..c66cfc63efb --- /dev/null +++ b/source/_components/camera.arlo.markdown @@ -0,0 +1,32 @@ +--- +layout: page +title: "Arlo Camera" +description: "Instructions how to integrate your Netgear Arlo cameras within Home Assistant." +date: 2016-05-30 10:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: arlo.png +ha_category: Camera +ha_release: 0.46 +--- + +To get your [Arlo](https://arlo.netgear.com/) sensors working within Home Assistant, please follow the instructions for the general [Arlo component](/components/arlo). + +This component is not yet able to live stream from your Arlo camera, but it will be able to playback the last video capture. + +Once you have enabled the [Arlo component](/components/arlo), add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +camera: + - platform: arlo + ffmpeg_arguments: '-pred 1 -q:v 2' +``` + +Configuration variables: + +- **ffmpeg_arguments**: (*Optional*): Extra options to pass to ffmpeg, e.g. image quality or video filter options. + +**Note:** To be able to playback the last capture, it is required to install the `ffmpeg` component. Make sure to follow the steps mentioned at [FFMPEG](https://home-assistant.io/components/ffmpeg/) documentation. diff --git a/source/_components/sensor.arlo.markdown b/source/_components/sensor.arlo.markdown new file mode 100644 index 00000000000..c8c47c44888 --- /dev/null +++ b/source/_components/sensor.arlo.markdown @@ -0,0 +1,36 @@ +--- +layout: page +title: "Arlo Sensor" +description: "Instructions on how to integrate your Netgear Arlo cameras within Home Assistant." +date: 2017-05-30 10:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: arlo.png +ha_category: Sensor +ha_release: "0.46" +--- + +To get your [Arlo](https://arlo.netgear.com/) sensors working within Home Assistant, please follow the instructions for the general [Arlo component](/components/arlo). + +Once you have enabled the [Arlo component](/components/arlo), add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: arlo + monitored_conditions: + - captured_today + - last_capture + - total_cameras +``` + +Configuration variables: + +- **monitored_conditions** array (*Required*): Conditions to display in the frontend. The following conditions can be monitored. + - **captured_today**: Return the number of videos captured on the current day. + - **last_capture**: Return the timestamp from the last video captured by your Arlo camera. + - **total_cameras**: Return the number of recognized and active cameras linked on your Arlo account. + +If no **monitored_conditions** are specified, all of above will be enabled by default. diff --git a/source/images/supported_brands/arlo.png b/source/images/supported_brands/arlo.png new file mode 100644 index 0000000000000000000000000000000000000000..1dbcc4ffe85502f19ad46991d527b2e91f72e079 GIT binary patch literal 2751 zcmV;w3PAOVP)Dj8PssI20o12?_e0+4vmlLg4b<3DXyLP&|x~r?J z=;-Ll$;m!GK2AD z(W0;4!Dq*ebsgs3000TnNkli#15C!4)Ge~A;_g`gv&VYG1x^ebvVa3wl z0RR91007AHq9`)?gR;7+n>Htq%QRPAp9jHX8q-k6X&Td)g2yx_=7PsGrX!BeG^Q@) z5ot^xE5+NBK6zOy=}HJPco{8q zeaKi}*Sn*aCTiHwICV2S`G)pX(-Q5=V93gJmTr|Az>+?2Lw02GRMQG&Ib?|bQlWF) zC}QUf=mT5MDDA06>9T6NDj_u0oLuN|90>)Rry6a^0Cg5IDWh3AZg6*_KGldZ8nUbC zE>&R9D%_|o!{(_*>#|xbHLAc2ab?Dl6*ipv!GC<^alW)FG=$->5Yg;C@ICTZc{Z-AY$piC4?7rziQAdM9Mo*G6jcpmcf~}fd ziZ?0ArN=PM7BOiKtjw7025H<{d61Qr(>46mJ0nYgn);`weuWx;L$uvWRx@CYh^UGa zHwzRt3!(0ynk(5OdBslSdTR32gQN*m!`C@&VyS90ot23ehWgIP9EWw)05=K<(&J|jko7Dp=!Q+dv;d9IgfMBw^rsATdMFteM}8Qb074N?=ViPGDcaWq1>PPLi>U4?bEF*r6Pnaqn;dW{Le_xF5Ewbg)- zTf@`ieKHMznu7EeW+pCGp+r~>Drq{Px0&6jB9IhrrUZyHY^J7~q#PN@O+rWf;?F@& z1ygBeK*&JU*(Ehh{{y771szzh113pjd+60sqwiu8RZ|S@QmP_Oi)f`=;tm_s?9K3k z8rJ#a+(RE^v<}H-gYWLRQ09}Unt35Mr%G~g`J0t9Bf5$*25LarOacGH4A}u{1@2N} zI0i^bSk3zV`1aa~DcuOAH)J1#8hxM+biMm0&T3dq!C!P>e4f3=ptF$|Ha<*9zOb6S z2pYOXyu*o90>*%qaOlV%I@{Cv9cQ&FHN#^{v(Lw9BUJd5*4wO6FTNvTHCvD+!Pq*u z#}qSDKFoAVZ4Jh1B{e8)wDX~|Drp`X-{C8i&n$5@X?XyK;L(D!rC7W)WEbcVY;C*QI<$YzdX^EWt=(g$(tC%5)y#1^#DOV@ z`!ee39aaOvgRW+3^t0pU9n|>e1%bGz1PG`BM`h1lzr6H%I*5~MG#ODdyr9OEx#kIU z$oP=B8lSE(Z>Z+wORuXl0Sw&NG*iQBsZpsFIp?`-HJ}^eb?%5M)k7WhnJ^9-q3I-u zrv49w~4vGS1f^i$|?yn}ky&9Ux z+#hQcvQvht^l37D``%v-zk?d(v^5tp2jm4y5(nj~Po;(oxkUk^JRImKRE3Tc4co=H#Axeo!1YnW=%III&DdXTBA-tQWI1Y++WSKu9|>ujy99Mjj0)er1o%X z~^ZW~DQo1+Vq|N&qU0?>#cN=cnu<{8oUxD^(sD@JSoq5HM8gFsc zR$QByezKd6D|atKfq1kkHi+Y?SFojaYLdPBq{7WA$f-mgtnOn5yAdr+jwEbF2=EV^ z27c$q2J*jU-X6boRd`$NX3yKl$MWxQo`=oc2W`ww(UqE~4H!U1QcE`8kt{u3hrUT9 z6zr`EHx%r=1FvcN>K)i^>8Ifcyv^AF$xK>O^D_^y^W_xmt*ULDa?1l)IsHUzRzg=L z?L{p9c6DxLKX_UD7l&Or)yJPR=7S-aI$PqYPV#6+dKxQkhd+b665?_|0z3gj-UH#-)<^=X)6UHkO*Ne; zniNuIQDhn}Nkh@-*W=&z;6MNX0002U|FscRRaI40RRQG3k5u;dLoNUS002ovPDHLk FV1h2yJp}*& literal 0 HcmV?d00001 From 6cf3cd0a24cf81df692ab6a07f6c81783eff648f Mon Sep 17 00:00:00 2001 From: Adam Mills Date: Fri, 2 Jun 2017 01:41:02 -0400 Subject: [PATCH 22/24] Rename time trigger 'after' to 'at' (#2731) --- .../_components/binary_sensor.workday.markdown | 2 +- source/_components/climate.markdown | 16 ++++++++-------- source/_components/climate.zwave.markdown | 4 ++-- source/_components/cover.markdown | 4 ++-- source/_components/switch.mysensors.markdown | 4 ++-- source/_cookbook/automation_first_light.markdown | 2 +- source/_cookbook/automation_sun.markdown | 2 +- ...nfiguration_yaml_from_bassclarinetl2.markdown | 2 +- source/_docs/automation/trigger.markdown | 6 +++--- source/_docs/z-wave.markdown | 4 ++-- 10 files changed, 23 insertions(+), 23 deletions(-) diff --git a/source/_components/binary_sensor.workday.markdown b/source/_components/binary_sensor.workday.markdown index 580af7da013..133b28f1b76 100644 --- a/source/_components/binary_sensor.workday.markdown +++ b/source/_components/binary_sensor.workday.markdown @@ -44,7 +44,7 @@ automation: alias: Turn on heater on workdays trigger: platform: time - after: '08:00:00' + at: '08:00:00' condition: condition: state entity_id: 'binary_sensor.workday_sensor' diff --git a/source/_components/climate.markdown b/source/_components/climate.markdown index a8b0e8b3dd0..d20705eb3da 100644 --- a/source/_components/climate.markdown +++ b/source/_components/climate.markdown @@ -44,7 +44,7 @@ Turn auxiliary heater on/off for climate device automation: trigger: platform: time - after: "07:15:00" + at: "07:15:00" action: - service: climate.set_aux_heat data: @@ -69,7 +69,7 @@ reflecting a situation where the climate device is set to save energy. This may automation: trigger: platform: time - after: "07:15:00" + at: "07:15:00" action: - service: climate.set_away_mode data: @@ -96,7 +96,7 @@ temporary target temperature. The particular modes available depend on the clima automation: trigger: platform: time - after: "07:15:00" + at: "07:15:00" action: - service: climate.set_hold_mode data: @@ -122,7 +122,7 @@ Set target temperature of climate device automation: trigger: platform: time - after: "07:15:00" + at: "07:15:00" action: - service: climate.set_temperature data: @@ -146,7 +146,7 @@ Set target humidity of climate device automation: trigger: platform: time - after: "07:15:00" + at: "07:15:00" action: - service: climate.set_humidity data: @@ -169,7 +169,7 @@ Set fan operation for climate device automation: trigger: platform: time - after: "07:15:00" + at: "07:15:00" action: - service: climate.set_fan_mode data: @@ -192,7 +192,7 @@ Set operation mode for climate device automation: trigger: platform: time - after: "07:15:00" + at: "07:15:00" action: - service: climate.set_operation_mode data: @@ -215,7 +215,7 @@ Set operation mode for climate device automation: trigger: platform: time - after: "07:15:00" + at: "07:15:00" action: - service: climate.set_swing_mode data: diff --git a/source/_components/climate.zwave.markdown b/source/_components/climate.zwave.markdown index 0f3d4962d9c..b3b913eedf7 100644 --- a/source/_components/climate.zwave.markdown +++ b/source/_components/climate.zwave.markdown @@ -42,7 +42,7 @@ automation: - alias: Turn on Heater at 8pm trigger: - platform: time - after: "20:00:00" + at: "20:00:00" action: - service: climate.set_operation_mode entity_id: climate.remotec_zxt120_heating_1_id @@ -61,7 +61,7 @@ automation: - alias: Turn off Heater at 9pm trigger: - platform: time - after: "21:00:00" + at: "21:00:00" action: - service: climate.set_operation_mode entity_id: climate.remotec_zxt120_heating_1_id diff --git a/source/_components/cover.markdown b/source/_components/cover.markdown index b2cdaeb908f..5e656ad7f59 100644 --- a/source/_components/cover.markdown +++ b/source/_components/cover.markdown @@ -41,7 +41,7 @@ Set cover position of one or multiple covers. automation: trigger: platform: time - after: "07:15:00" + at: "07:15:00" action: - service: cover.set_cover_position data: @@ -64,7 +64,7 @@ Set cover tilt position of one or multiple covers. automation: trigger: platform: time - after: "07:15:00" + at: "07:15:00" action: - service: cover.set_cover_tilt_position data: diff --git a/source/_components/switch.mysensors.markdown b/source/_components/switch.mysensors.markdown index 974843207e7..d383e68b7d8 100644 --- a/source/_components/switch.mysensors.markdown +++ b/source/_components/switch.mysensors.markdown @@ -66,7 +66,7 @@ automation: - alias: turn hvac on trigger: platform: time - after: '5:30:00' + at: '5:30:00' action: service: switch.mysensors_send_ir_code entity_id: switch.hvac_1_1 @@ -76,7 +76,7 @@ automation: - alias: turn hvac off trigger: platform: time - after: '0:30:00' + at: '0:30:00' action: service: switch.mysensors_send_ir_code entity_id: switch.hvac_1_1 diff --git a/source/_cookbook/automation_first_light.markdown b/source/_cookbook/automation_first_light.markdown index ca88cadf653..e2f857912f1 100644 --- a/source/_cookbook/automation_first_light.markdown +++ b/source/_cookbook/automation_first_light.markdown @@ -30,7 +30,7 @@ automation: - alias: Enable First Morning Trigger trigger: - platform: time - after: '5:00' + at: '5:00' action: service: homeassistant.turn_on entity_id: input_boolean.trigger_first_morning diff --git a/source/_cookbook/automation_sun.markdown b/source/_cookbook/automation_sun.markdown index 550904ebb99..db9d8dfe8ef 100644 --- a/source/_cookbook/automation_sun.markdown +++ b/source/_cookbook/automation_sun.markdown @@ -35,7 +35,7 @@ _Note, Philips Hue is currently the only light platform that support transitions automation: trigger: platform: time - after: "07:15:00" + at: "07:15:00" action: service: light.turn_on entity_id: light.bedroom diff --git a/source/_cookbook/configuration_yaml_from_bassclarinetl2.markdown b/source/_cookbook/configuration_yaml_from_bassclarinetl2.markdown index a3f0ddd17df..0f418577c35 100644 --- a/source/_cookbook/configuration_yaml_from_bassclarinetl2.markdown +++ b/source/_cookbook/configuration_yaml_from_bassclarinetl2.markdown @@ -148,7 +148,7 @@ automation: # zone: zone.barracuda_sj # event: enter # - platform: time -# after: '07:15' +# at: '07:15' # before: '09:00' # action: # service: ifttt.trigger diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index fb729d0c149..ac7e7a4ca4d 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -127,7 +127,7 @@ automation: ### {% linkable_title Time trigger %} -Time can be triggered in many ways. The most common is to specify `after` and trigger at a specific point in time each day. Alternatively, you can also match if the hour, minute or second of the current time has a specific value. You can prefix the value with a `/` to match whenever the value is divisible by that number. You cannot use `after` together with hour, minute or second. +Time can be triggered in many ways. The most common is to specify `at` and trigger at a specific point in time each day. Alternatively, you can also match if the hour, minute or second of the current time has a specific value. You can prefix the value with a `/` to match whenever the value is divisible by that number. You cannot use `at` together with hour, minute or second. ```yaml automation: @@ -140,9 +140,9 @@ automation: automation 2: trigger: platform: time - # When 'after' is used, you cannot also match on hour, minute, seconds. + # When 'at' is used, you cannot also match on hour, minute, seconds. # Military time format. - after: '15:32:00' + at: '15:32:00' automation 3: trigger: diff --git a/source/_docs/z-wave.markdown b/source/_docs/z-wave.markdown index a207ec64f43..236e3cfd459 100644 --- a/source/_docs/z-wave.markdown +++ b/source/_docs/z-wave.markdown @@ -217,14 +217,14 @@ automation: - alias: soft reset at 2:30am trigger: platform: time - after: '2:30:00' + at: '2:30:00' action: service: zwave.soft_reset - alias: heal at 2:31am trigger: platform: time - after: '2:31:00' + at: '2:31:00' action: service: zwave.heal_network ``` From 152ec0c141936dd49d9a1445f0fc022a75f5ec6f Mon Sep 17 00:00:00 2001 From: Boris K Date: Fri, 2 Jun 2017 07:53:32 +0200 Subject: [PATCH 23/24] Update history_stats doc about the 'from' and 'to' attributes (#2733) --- source/_components/sensor.history_stats.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/sensor.history_stats.markdown b/source/_components/sensor.history_stats.markdown index bc2b79b76d4..5d88d7ea16d 100644 --- a/source/_components/sensor.history_stats.markdown +++ b/source/_components/sensor.history_stats.markdown @@ -143,5 +143,5 @@ Here, last Monday is _today_ as a timestamp, minus 86400 times the current weekd ```

- If you want to check if your period is right, just click on your component, the `from` and `to` attributes will show the start and end of the period, nicely formatted. + The `/dev-template` page of your home-assistant UI can help you check if the values for `start`, `end` or `duration` are correct.

From 910824dc3f3352bc55e31b6fe26ed8812ca9f9ab Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Fri, 2 Jun 2017 11:57:41 +0200 Subject: [PATCH 24/24] Telegram change for 0.46 (#2736) * Update telegram_bot.webhooks.markdown * Update telegram_bot.polling.markdown * Update notify.telegram.markdown --- source/_components/notify.telegram.markdown | 12 +++--- .../_components/telegram_bot.polling.markdown | 10 ++--- .../telegram_bot.webhooks.markdown | 37 ++++++++++--------- 3 files changed, 30 insertions(+), 29 deletions(-) diff --git a/source/_components/notify.telegram.markdown b/source/_components/notify.telegram.markdown index 94791bea1cc..7dde8c1dca1 100644 --- a/source/_components/notify.telegram.markdown +++ b/source/_components/notify.telegram.markdown @@ -48,12 +48,12 @@ To enable Telegram notifications in your installation, add the following to your ```yaml # Example configuration.yaml entry for the Telegram Bot telegram_bot: - platform: polling - api_key: ABCDEFGHJKLMNOPQRSTUVXYZ - allowed_chat_ids: - - CHAT_ID_1 - - CHAT_ID_2 - - CHAT_ID_3 + - platform: polling + api_key: ABCDEFGHJKLMNOPQRSTUVXYZ + allowed_chat_ids: + - CHAT_ID_1 + - CHAT_ID_2 + - CHAT_ID_3 # Example configuration.yaml entry for the notifier notify: diff --git a/source/_components/telegram_bot.polling.markdown b/source/_components/telegram_bot.polling.markdown index 1ea4b0bf5f3..fcd0ce4a9bf 100644 --- a/source/_components/telegram_bot.polling.markdown +++ b/source/_components/telegram_bot.polling.markdown @@ -22,11 +22,11 @@ To integrate this into Home Assistant, add the following section to your `config # Example configuration.yaml entry telegram_bot: - platform: polling - api_key: - allowed_chat_ids: - - 12345 - - 67890 + - platform: polling + api_key: + allowed_chat_ids: + - 12345 + - 67890 ``` Configuration variables: diff --git a/source/_components/telegram_bot.webhooks.markdown b/source/_components/telegram_bot.webhooks.markdown index 3fa940723d5..491b292879b 100644 --- a/source/_components/telegram_bot.webhooks.markdown +++ b/source/_components/telegram_bot.webhooks.markdown @@ -24,12 +24,12 @@ http: base_url: # the Home Assistant https url which is exposed to the internet. telegram_bot: - platform: webhooks - api_key: telegram api key - parse_mode: html - allowed_chat_ids: - - 12345 - - 67890 + - platform: webhooks + api_key: telegram api key + parse_mode: html + allowed_chat_ids: + - 12345 + - 67890 ``` Configuration variables: @@ -38,6 +38,7 @@ Configuration variables: - **api_key** (*Required*): The API token of your bot. - **trusted_networks** (*Optional*): Telegram server access ACL as list. Defaults to `149.154.167.197-233`. - **parse_mode** (*Optional*): Default parser for messages if not explicit in message data: 'html' or 'markdown'. Default is 'markdown'. +- **url** (*Optional*): Allow to overwrite the `base_url` from http component for diferent configs. To get your `chat_id` and `api_key` follow the instructions [here](/components/notify.telegram) . @@ -49,16 +50,16 @@ http: base_url: telegram_bot: - platform: webhooks - api_key: ABCDEFGHJKLMNOPQRSTUVXYZ - trusted_networks: - - 149.154.167.197/32 - - 149.154.167.198/31 - - 149.154.167.200/29 - - 149.154.167.208/28 - - 149.154.167.224/29 - - 149.154.167.232/31 - allowed_chat_ids: - - 12345 - - 67890 + - platform: webhooks + api_key: ABCDEFGHJKLMNOPQRSTUVXYZ + trusted_networks: + - 149.154.167.197/32 + - 149.154.167.198/31 + - 149.154.167.200/29 + - 149.154.167.208/28 + - 149.154.167.224/29 + - 149.154.167.232/31 + allowed_chat_ids: + - 12345 + - 67890 ```