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/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/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/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/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 | 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/). 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 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 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/). 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. diff --git a/source/_components/notify.telegram.markdown b/source/_components/notify.telegram.markdown index 74e8cf8d754..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: @@ -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/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. 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/_components/sensor.history_stats.markdown b/source/_components/sensor.history_stats.markdown index 08c0b4d71f2..b277e950406 100644 --- a/source/_components/sensor.history_stats.markdown +++ b/source/_components/sensor.history_stats.markdown @@ -147,5 +147,6 @@ Here, last Monday is _today_ as a timestamp, minus 86400 times the current weekd ```

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

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/_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. 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/_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/_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) 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 ``` 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 3686190a619..ac7e7a4ca4d 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. @@ -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: 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. diff --git a/source/_docs/z-wave.markdown b/source/_docs/z-wave.markdown index 36cbfddb0f5..f219cf86755 100644 --- a/source/_docs/z-wave.markdown +++ b/source/_docs/z-wave.markdown @@ -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 ``` diff --git a/source/developers/rest_api.markdown b/source/developers/rest_api.markdown index 2394857ebf9..f4046b3cb9a 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 [ [ diff --git a/source/images/screenshots/hp_ilo_sensors.png b/source/images/screenshots/hp_ilo_sensors.png new file mode 100644 index 00000000000..0c7c4a96ad2 Binary files /dev/null and b/source/images/screenshots/hp_ilo_sensors.png differ diff --git a/source/images/supported_brands/arlo.png b/source/images/supported_brands/arlo.png new file mode 100644 index 00000000000..1dbcc4ffe85 Binary files /dev/null and b/source/images/supported_brands/arlo.png differ diff --git a/source/images/supported_brands/rachio.png b/source/images/supported_brands/rachio.png new file mode 100644 index 00000000000..340105ff824 Binary files /dev/null and b/source/images/supported_brands/rachio.png differ