Skip to content

Updated Configuration Variables sections #5929

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 16 commits into from
Sep 30, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 48 additions & 15 deletions source/_components/abode.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,12 @@ ha_release: 0.52
ha_iot_class: "Cloud Push"
---

The `abode` component will allow users to integrate their Abode Home Security systems into Home Assistant and use its alarm system and sensors to automate their homes.
The `abode` component will allow users to integrate their Abode Home Security
systems into Home Assistant and use its alarm system and sensors to automate
their homes.

Please visit the [Abode website](https://goabode.com/) for further information about Abode Security.
Please visit the [Abode website](https://goabode.com/) for further information
about Abode Security.

There is currently support for the following device types within Home Assistant:

Expand All @@ -30,34 +33,61 @@ There is currently support for the following device types within Home Assistant:

## {% linkable_title Configuration %}

To use Abode devices in your installation, add the following `abode` section to your `configuration.yaml` file:
To use Abode devices in your installation,
add the following `abode` section to your `configuration.yaml` file:

```yaml
# Example configuration.yaml entry
abode:
username: abode_username
password: abode_password
name: Abode Alarm System
polling: False
polling: false
exclude:
- 'ZW:0000000034'
- 'RF:00000011'
lights:
- 'ZW:0000000022'
```

Configuration variables:

- **username** (*Required*): Username for your Abode account.
- **password** (*Required*): Password for your Abode account.
- **name** (*Optional*): The name for your alarm controller.
- **polling** (*Optional*): Enable polling if cloud push updating is less reliable. Will update the devices once every 30 seconds. Defaults to False.
- **exclude** (*Optional*): A list of devices to exclude from Home Assistant by their Abode `device_id` or `automation_id`, found within the component attributes.
- **lights** (*Optional*): A list of switch devices that Home Assistant should treat as lights by the switches Abode `device_id`, found within the component attributes.
{% configuration %}
username:
description: Username for your Abode account.
required: true
type: string
password:
description: Password for your Abode account.
required: true
type: string
name:
description: The name for your alarm controller.
required: false
type: string
polling:
description: >
Enable polling if cloud push updating is less reliable.
Will update the devices once every 30 seconds.
required: false
type: boolean
default: false
exclude:
description: >
A list of devices to exclude from Home Assistant by their Abode `device_id`
or `automation_id`, found within the component attributes.
required: false
type: list
lights:
description: >
A list of switch devices that Home Assistant should treat as lights by the
switches Abode `device_id`, found within the component attributes.
required: false
type: list
{% endconfiguration %}

## {% linkable_title Events %}

There are a number of events that can be triggered from Abode. They are grouped into the below events:
There are a number of events that can be triggered from Abode.
They are grouped into the below events:

- **abode_alarm**: Fired when an alarm event is triggered from Abode. This includes Smoke, CO, Panic, and Burglar alarms.
- **abode_alarm_end**: Fired when an alarm end event is triggered from Abode.
Expand All @@ -80,13 +110,16 @@ Field | Description
`date` | The date of the event in the format `MM/DD/YYYY`.
`time` | The time of the event in the format `HH:MM AM`.

There is a unique list of known event_codes that can be found [here](https://github.com/MisterWil/abodepy/files/1262019/timeline_events.txt).
There is a unique list of known event_codes that can be found
[here](https://github.com/MisterWil/abodepy/files/1262019/timeline_events.txt).

## {% linkable_title Services %}

### {% linkable_title Service `change_setting` %}

Change settings on your Abode system. For a full list of settings and valid values, consult the [AbodePy settings section](https://github.com/MisterWil/abodepy/blob/master/README.rst#settings).
Change settings on your Abode system.
For a full list of settings and valid values, consult the
[AbodePy settings section](https://github.com/MisterWil/abodepy/blob/master/README.rst#settings).

| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
Expand Down
110 changes: 89 additions & 21 deletions source/_components/alert.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,25 @@ ha_category: Automation
ha_release: 0.38
---

The `alert` component is designed to notify you when problematic issues arise. For example, if the garage door is left open, the `alert` component can be used remind you of this by sending you repeating notifications at customizable intervals. This is also used for low battery sensors, water leak sensors, or any condition that may need your attention.
The `alert` component is designed to notify you when problematic issues arise.
For example, if the garage door is left open, the `alert` component can be used
remind you of this by sending you repeating notifications at customizable
intervals. This is also used for low battery sensors,
water leak sensors, or any condition that may need your attention.

Alerts will add an entity to the front end only when they are firing. This entity allows you to silence an alert until it is resolved.
Alerts will add an entity to the front end only when they are firing.
This entity allows you to silence an alert until it is resolved.

<p class='note warning'>
When using the `alert` component, it is important that the time zone used for Home Assistant and the underlying operating system match. Failing to do so may result in multiple alerts being sent at the same time (such as when Home Assistant is set to the `America/Detroit` time zone but the operating system uses `UTC`).
When using the `alert` component, it is important that the time zone used for Home Assistant and the underlying operating system match.
Failing to do so may result in multiple alerts being sent at the same time (such as when Home Assistant is set to the `America/Detroit` time zone but the operating system uses `UTC`).
</P>

### {% linkable_title Basic Example %}

The `alert` component makes use of any of the `notifications` components. To setup the `alert` component, first, you must setup a `notification` component. Then, add the following to your configuration file:
The `alert` component makes use of any of the `notifications` components. To
setup the `alert` component, first, you must setup a `notification` component.
Then, add the following to your configuration file:

```yaml
# Example configuration.yaml entry
Expand All @@ -39,20 +47,65 @@ alert:
- ryans_phone
- kristens_phone
```
Configuration variables:

- **name** (*Required*): The friendly name of the alert.
- **done_message** (*Optional*): A message sent after an alert transitions from `on` to `off`. Is only sent if an alert notification was sent for transitioning from `off` to `on`.
- **entity_id** (*Required*): The ID of the entity to watch.
- **state** (*Optional*): The problem condition for the entity. Defaults to `on`.
- **repeat** (*Required*): Number of minutes before the notification should be repeated. Can be either a number or a list of numbers.
- **can_acknowledge** (*Optional*): Allows the alert to be unacknowledgeable. Defaults to `true`.
- **skip_first** (*Optional*): Controls whether the notification should be sent immediately or after the first delay. Defaults to `false`.
- **notifiers** (*Required*): List of `notification` components to use for alerts.

In this example, the garage door status (`input_boolean.garage_door`) is watched and this alert will be triggered when its status is equal to `on`. This indicates that the door has been opened. Because the `skip_first` option was set to `True`, the first notification will not be delivered immediately. However, every 30 minutes, a notification will be delivered until either `input_boolean.garage_door` no longer has a state of `on` or until the alert is acknowledged using the Home Assistant frontend.

For notifiers that require other parameters (such as `twilio_sms` which requires you specify a `target` parameter when sending the notification), you can use the `group` notification to wrap them for an alert. Simply create a `group` notification type with a single notification member (such as `twilio_sms`) specifying the required parameters other than `message` provided by the `alert` component:
{% configuration %}
name:
description: The friendly name of the alert.
required: true
type: string
done_message:
description: >
A message sent after an alert transitions from `on` to `off`. Is only sent
if an alert notification was sent for transitioning from `off` to `on`.
required: false
type: string
entity_id:
description: The ID of the entity to watch.
required: true
type: string
state:
description: The problem condition for the entity.
required: false
type: string
default: on
repeat:
description: >
Number of minutes before the notification should be repeated.
Can be either a number or a list of numbers.
required: true
type: [int, list]
can_acknowledge:
description: Allows the alert to be unacknowledgeable.
required: false
type: boolean
default: true
skip_first:
description: >
Controls whether the notification should be
sent immediately or after the first delay.
required: false
type: boolean
default: false
notifiers:
description: "List of `notification` components to use for alerts."
required: true
type: list
{% endconfiguration %}

In this example, the garage door status (`input_boolean.garage_door`) is watched
and this alert will be triggered when its status is equal to `on`.
This indicates that the door has been opened. Because the `skip_first` option
was set to `True`, the first notification will not be delivered immediately.
However, every 30 minutes, a notification will be delivered until either
`input_boolean.garage_door` no longer has a state of `on` or until the alert is
acknowledged using the Home Assistant frontend.

For notifiers that require other parameters (such as `twilio_sms` which requires
you specify a `target` parameter when sending the notification), you can use the
`group` notification to wrap them for an alert.
Simply create a `group` notification type with a single notification member
(such as `twilio_sms`) specifying the required parameters other than `message`
provided by the `alert` component:

```yaml
- platform: group
Expand All @@ -77,7 +130,13 @@ freshwater_temp_alert:

### {% linkable_title Complex Alert Criteria %}

By design, the `alert` component only handles very simple criteria for firing. That is, it only checks if a single entity's state is equal to a value. At some point, it may be desirable to have an alert with a more complex criteria. Possibly, when a battery percentage falls below a threshold. Maybe you want to disable the alert on certain days. Maybe the alert firing should depend on more than one input. For all of these situations, it is best to use the alert in conjunction with a `Template Binary Sensor`. The following example does that.
By design, the `alert` component only handles very simple criteria for firing.
That is, it only checks if a single entity's state is equal to a value. At some
point, it may be desirable to have an alert with a more complex criteria.
Possibly, when a battery percentage falls below a threshold. Maybe you want to
disable the alert on certain days. Maybe the alert firing should depend on more
than one input. For all of these situations, it is best to use the alert in
conjunction with a `Template Binary Sensor`. The following example does that.

```yaml
binary_sensor:
Expand All @@ -97,11 +156,16 @@ alert:
- kristens_phone
```

This example will begin firing as soon as the entity `sensor.motion`'s `battery` attribute falls below 15. It will continue to fire until the battery attribute raises above 15 or the alert is acknowledged on the frontend.
This example will begin firing as soon as the entity `sensor.motion`'s `battery`
attribute falls below 15. It will continue to fire until the battery attribute
raises above 15 or the alert is acknowledged on the frontend.

### {% linkable_title Dynamic Notification Delay Times %}

It may be desirable to have the delays between alert notifications dynamically change as the alert continues to fire. This can be done by setting the `repeat` configuration key to a list of numbers rather than a single number. Altering the first example would look like the following.
It may be desirable to have the delays between alert notifications dynamically
change as the alert continues to fire. This can be done by setting the `repeat`
configuration key to a list of numbers rather than a single number.
Altering the first example would look like the following.

```yaml
# Example configuration.yaml entry
Expand All @@ -121,4 +185,8 @@ alert:
- kristens_phone
```

Now the first message will be sent after a 15 minute delay, the second will be sent 30 minutes after that, and a 60 minute delay will fall between every following notification. For example, if the garage door opens at 2:00, a notification will be sent at 2:15, 2:45, 3:45, 4:45, etc., continuing every 60 minutes.
Now the first message will be sent after a 15 minute delay, the second will be
sent 30 minutes after that, and a 60 minute delay will fall between every
following notification.
For example, if the garage door opens at 2:00, a notification will be
sent at 2:15, 2:45, 3:45, 4:45, etc., continuing every 60 minutes.
Loading