Merge pull request #2747 from fabaff/release-0-46

0.46
This commit is contained in:
Paulus Schoutsen 2017-06-03 20:14:16 -07:00 committed by GitHub
commit 2537be4f78
33 changed files with 488 additions and 132 deletions

View File

@ -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/).

View File

@ -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'

View File

@ -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.

View File

@ -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:

View File

@ -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

View File

@ -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:

View File

@ -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 |

View File

@ -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/).

View File

@ -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 %}
```

View File

@ -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

View File

@ -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/).

View File

@ -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 <example@mail.com>).
- **debug** (*Optional*): Enables Debug, eg. True or False. Defaults to False.

View File

@ -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:
@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -147,5 +147,6 @@ Here, last Monday is _today_ as a timestamp, minus 86400 times the current weekd
```
<p class='note'>
The `/dev-template` page of your home-assistant UI can help you check if the values for `start`, `end` or `duration` are correct.
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.
</p>

View File

@ -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
```
<p class='img'>
<img src='{{site_root}}/images/screenshots/hp_ilo_sensors.png' />
</p>
## {% linkable_title Hardware specifics %}
<p class='note warning'>
Not every hardware supports all values.
</p>
### {% 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`

View File

@ -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.:
<pre>update_interval:
# At least one of these must be specified:
days: 0
hours: 0
minutes: 3
seconds: 30
milliseconds: 0
</pre>
- **name** (*Optional*): Prefix for sensor names (defaults to "USPS")
<p class='note warning'>
The USPS sensor logs into the MyUSPS website to scrape package data. It does not use an API.

View File

@ -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

View File

@ -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
```

View File

@ -146,6 +146,7 @@ from_first: "<first name of the sender>"
from_last: "<last name of the sender>"
user_id: "<id of the sender>"
chat_id: "<origin chat id>"
chat: "<chat info>"
```
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: "<first name of the sender>"
from_last: "<last name of the sender>"
user_id: "<id of the sender>"
chat_id: "<origin chat id>"
chat: "<chat info>"
```
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)

View File

@ -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: <telegram api key>
allowed_chat_ids:
- 12345
- 67890
- platform: polling
api_key: <telegram api key>
allowed_chat_ids:
- 12345
- 67890
```
Configuration variables:

View File

@ -24,12 +24,12 @@ http:
base_url: <public_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: <public_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
```

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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:
<p class='note warning'>
Use quotes around your values for `from` and `to` to avoid the YAML parser interpreting values as booleans.
</p>
<p class='note warning'>
Using `state` as an alias for `to` is deprecated.
</p>
### {% 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.
@ -126,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:
@ -139,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:

View File

@ -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.

View File

@ -207,6 +207,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.|
@ -221,14 +222,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
```

View File

@ -202,6 +202,12 @@ $ curl -X GET -H "x-ha-access: YOUR_PASSWORD" \
#### {% linkable_title GET /api/history/period/&lt;timestamp> %}
Returns an array of state changes in the past. Each object contains further details for the entities.
The `<timestamp>` 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=<entity_id>` to filter on a single entity
- `end_time=<timestamp>` to choose the end of the period (defaults to 1 day)
```json
[
[

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB