diff --git a/_config.yml b/_config.yml index 3f5b224ff88..3f8193a9a79 100644 --- a/_config.yml +++ b/_config.yml @@ -140,11 +140,11 @@ social: # Home Assistant release details current_major_version: 0 current_minor_version: 58 -current_patch_version: 0 -date_released: 2017-11-18 +current_patch_version: 1 +date_released: 2017-11-21 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. # Major release: -patch_version_notes: "#" +patch_version_notes: "#release-0581---november-21" # Minor release (Example #release-0431---april-25): diff --git a/source/_components/camera.ring.markdown b/source/_components/camera.ring.markdown index 854c77f5519..eb7fc031628 100644 --- a/source/_components/camera.ring.markdown +++ b/source/_components/camera.ring.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "Ring Binary Camera" +title: "Ring Camera" description: "Instructions on how to integrate your Ring.com devices within Home Assistant." date: 2017-10-20 10:00 sidebar: true @@ -13,7 +13,7 @@ ha_release: 0.57 ha_iot_class: "Cloud Polling" --- -To get your [Ring.com](https://ring.com/) cameras working within Home Assistant, please follow the instructions for the general [Ring component](/components/ring). +To get your [Ring.com](https://ring.com/) cameras working within Home Assistant, please follow the instructions for the general [Ring component](/components/ring). Please note that downloading and playing Ring video will require a Ring Protect plan. Once you have enabled the [Ring component](/components/ring), add the following to your `configuration.yaml` file: diff --git a/source/_components/cloud.markdown b/source/_components/cloud.markdown new file mode 100644 index 00000000000..be9f5589624 --- /dev/null +++ b/source/_components/cloud.markdown @@ -0,0 +1,88 @@ +--- +layout: page +title: "Cloud" +description: "Enable the Home Assistant Cloud integration." +date: 2017-11-17 20:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_release: 0.57 +--- + +The Home Assistant Cloud allows you to quickly integrate your local instance with various cloud services. Any processing of services from other cloud services is handled by your local instance. + +To get started, create an account and log in via the configuration panel in your Home Assistant instance. There is no need to configure your router or expose your instance to the internet in any other way. + +### {% linkable_title Amazon Alexa %} + +The Alexa integration allows users to control the entities via the [Home Assistant Smart Home skill for Alexa][alexa skill]. This means that you can say things like "Alexa, turn on the kitchen light" to control your local instance. + +```yaml +# Example configuration.yaml entry configuring Alexa +cloud: + alexa: + filter: + include_entities: + - light.kitchen + include_domains: + - switch + exclude_entities: + - light.living_room + exclude_domains: + - script +``` + +{% configuration %} +alexa: + description: Configuration options for the Amazon Alexa integration. + required: false + type: map + keys: + filter: + description: Filters for entities to include/exclude from Alexa. + required: false + type: map + keys: + include_entities: + description: Entity IDs to include. + required: false + type: list + include_domains: + description: Domains to include. + required: false + type: list + exclude_entities: + description: Entity IDs to exclude. + required: false + type: list + exclude_domains: + description: Domains to exclude. + required: false + type: list +{% endconfiguration %} + +### {% linkable_title Possible values for customize %} + +| Attribute | Description | +| --------- | ----------- | +| `alexa_hidden` | Hide the entity from the Alexa smart home devices. +| `alexa_name` | Defines name of the entity for a Alexa smart home device. Useful if you have an entity with a friendly name in a local language that you want to access using an English sounding name. +| `alexa_description` | The description of the device in the Alexa smart home device list. +| `alexa_display_categories` | Set displayCategories, useful for things like media_player (TV/SPEAKERS) or scene (ACTIVITY_TRIGGER/SCENE_TRIGGER). More info can be found [here](https://developer.amazon.com/docs/device-apis/alexa-discovery.html#display-categories). + +### {% linkable_title Available domains %} +Currently, the following domains are available to be used with Alexa: +- alert +- automation +- cover +- light +- fan (supports on/off and set speed) +- group +- lock (lock and unlock, but unlock is untested as Amazon has disabled unlock for now) +- media_player (play, pause, stop, set volume, adjust volume, next track and previous track) +- scene +- switch + +[alexa skill]: https://alexa.amazon.com/spa/index.html#skills/dp/B0772J1QKB/?ref=skill_dsk_skb_sr_2 diff --git a/source/_components/device_tracker.tile.markdown b/source/_components/device_tracker.tile.markdown index 0db52dfefe6..7dc534339f4 100644 --- a/source/_components/device_tracker.tile.markdown +++ b/source/_components/device_tracker.tile.markdown @@ -15,7 +15,7 @@ ha_iot_class: "Cloud Polling" The `tile` platform allows Home Assistant to utilize [Tile® Bluetooth trackers](https://www.thetileapp.com). The official Tile mobile app handles the actual tracking of Tile devices using -the mobile device's Bluetooh and GPS. +the mobile device's Bluetooth and GPS. To integrate Tile into Home Assistant, add the following section to your `configuration.yaml` file: @@ -43,4 +43,4 @@ device_tracker: description: the Tile types to monitor; valid values are `TILE` and `PHONE` (default is for all types to be included) required: false type: list -{% endconfiguration %} \ No newline at end of file +{% endconfiguration %} diff --git a/source/_components/google_assistant.markdown b/source/_components/google_assistant.markdown index 15a3730096b..aa28a32ae6d 100644 --- a/source/_components/google_assistant.markdown +++ b/source/_components/google_assistant.markdown @@ -46,7 +46,7 @@ google_assistant: * *client_id* (Required): A long random URL safe string (no spaces or special characters) that will be used for Implicit OAuth. * *access_token* (Required): Another different long random URL safe string. * *agent_user_id* (Optional): A string to identify the user, e.g., email address. If not provided, the component will generate one. -* *api_key* (Optional): An API Key generated for the project from Google Console. See setup below. If not provided then the request_sync service is not exposed +* *api_key* (Optional): An API Key generated for the project from Google Console which allows you to update devices without unlinking and relinking an account (see setup below). If not provided then the request_sync service is not exposed. * *exposed_domains* (Optional): An array of Home Assistant domains to expose to Google Assistant. Options include: - `switch` - `light` @@ -133,4 +133,4 @@ homeassistant: 3. Go to Credentials and select API Key from Create Credentials 4. Note down the generated API Key and use this in the configuration -*Note:* The request_sync service requires that the initial sync from Google includes the agent_user_id. If not, the service will log an error that reads something like "Request contains an invalid argument". If this happens, then unlink the account from Home Control and relink. +*Note:* The request_sync service requires that the initial sync from Google includes the agent_user_id. If not, the service will log an error that reads something like "Request contains an invalid argument". If this happens, then [unlink the account](https://support.google.com/googlehome/answer/7506443?hl=en-GB) from Home Control and relink. diff --git a/source/_components/group.markdown b/source/_components/group.markdown index 5dd01ab44c5..74f07dc49bb 100644 --- a/source/_components/group.markdown +++ b/source/_components/group.markdown @@ -79,9 +79,7 @@ Notice in the example below that in order to refer to the group "Living Room", y entities: - light.light_family_1 - binary_sensor.motion_living - Bedroom: light.light_bedroom, switch.sleeping - Rooms: view: yes name: Rooms @@ -93,6 +91,7 @@ Notice in the example below that in order to refer to the group "Living Room", y ## {% linkable_title Default groups %} Some components automatically create special groups containing component entities. These groups are named like `group.all_...`, for example: + - `group.all_switches` - `group.all_lights` - `group.all_devices` @@ -105,13 +104,11 @@ Default groups appear in the HOME tab, if not overridden by user views and group ```yaml # Example configuration.yaml to include default groups in custom view - customize: group.all_automations: hidden: false group.all_scripts: hidden: false - group: automation_view: name: Automation @@ -124,3 +121,22 @@ group: ## {% linkable_title Group behaviour %} When any member of a group is `on` then the group will also be `on`. Similarly with a device tracker, when any member of the group is `home` then the group is `home`. + +## {% linkable_title Customize group order %} +You can also order your groups using [customize](/docs/configuration/customizing-devices/) with `order: ` if they don't show up in the order you want them in. + +```yaml +# Example configuration.yaml to order groups with order: +customize: + group.all_automations: + order: 1 + group.all_scripts: + order: 2 +group: + automation_view: + name: Automation + view: yes + entities: + - group.all_automations + - group.all_scripts +``` diff --git a/source/_components/input_datetime.markdown b/source/_components/input_datetime.markdown index f9351f09848..588154ca277 100644 --- a/source/_components/input_datetime.markdown +++ b/source/_components/input_datetime.markdown @@ -39,7 +39,7 @@ Configuration variables: - **name** (*Optional*): Friendly name of the datetime input. - **has_time** (*Optional*): Set to `true` if this input should have time. Defaults to `false`. - **has_date** (*Optional*): Set to `true` if this input should have a date. Defaults to `false`. - - **initial** (*Optional*): Set the initial value of this input. Defaults to '1970-01-01 00:00'. + - **initial** (*Optional*): Set the initial value of this input. Defaults to '1970-01-01 00:00'. If has_time is `false` this must be just a date (e.g.: '1970-01-01'). If has_date is `false` this must be just a time (e.g.: '15:16'). A datetime input entity's state exports several attributes that can be useful in automations and templates: diff --git a/source/_components/light.mystrom.markdown b/source/_components/light.mystrom.markdown index ea1334c3f97..f9ceacdb226 100644 --- a/source/_components/light.mystrom.markdown +++ b/source/_components/light.mystrom.markdown @@ -26,11 +26,21 @@ light: mac: MAC_ADDRESS ``` -Configuration variables: - -- **host** (*Required*): The IP address of your myStrom WiFi Bulb, eg. `192.168.1.32`. -- **mac** (*Required*): The MAC address of your myStrom WiFi Bulb, eg. `5AAC8CA542F3`. -- **name** (*Optional*): The name to use when displaying this light. +{% configuration %} +host: + description: "The IP address of your myStrom WiFi Bulb, e.g., `192.168.1.32`." + required: true + type: string +mac: + description: "The MAC address of your myStrom WiFi Bulb, e.g., `5AAC8CA542F3`." + required: true + type: string +name: + description: The name to use when displaying this bulb. + required: false + type: string + default: myStrom Bulb +{% endconfiguration %} Check if you are able to access the light located at `IP_ADRRESS`. The details about your light is provided as a JSON response. diff --git a/source/_components/remote.apple_tv.markdown b/source/_components/remote.apple_tv.markdown index 68e11de80dd..692de767fcd 100644 --- a/source/_components/remote.apple_tv.markdown +++ b/source/_components/remote.apple_tv.markdown @@ -37,7 +37,4 @@ data: - left - menu - select - device: '' ``` - -Please note that `device` must be specified (because of validation) but is not used by this platform. So you may specify any value. diff --git a/source/_components/remote.harmony.markdown b/source/_components/remote.harmony.markdown index 03813d77cb8..ec7057a5a80 100755 --- a/source/_components/remote.harmony.markdown +++ b/source/_components/remote.harmony.markdown @@ -53,7 +53,7 @@ Configuration variables: - **name** (*Required*): The hub's name to display in the frontend. - **host** (*Optional*): The Harmony device's IP address. Leave empty for the IP to be discovered automatically. - **port** (*Optional*): The Harmony device's port. Defaults to 5222. -- **activity** (*Optional*): Activity to use when turnon service is called without any data. +- **activity** (*Optional*): Activity to use when `turn_on` service is called without any data. - **delay_secs** (*Optional*): Default duration in seconds between sending commands to a device. Configuration file: @@ -64,32 +64,58 @@ Upon startup one file will be written to your Home Assistant configuration direc - List of all programmed device names and ID numbers - List of all available commands per programmed device -Supported services: +### {% linkable_title Service `remote.turn_off` %} -- **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/). -- **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. +Turn off all devices that were switched on from the start of the current activity. +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | Only act on a specific remote, else target all. -### {% linkable_title Examples %} +### {% linkable_title Service `remote.turn_on` %} -A template switch can be used to display and control the state of an activity in the frontend. +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/). + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | Only act on a specific remote, else target all. +| `activity` | yes | Activity ID or Activity Name to start. + +### {% linkable_title Service `remote.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). + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | Only act on a specific remote, else target all. +| `device` | no | Device ID to send the command to. +| `command` | no | A single command or a list of commands to send. +| `num_repeats` | yes | The number of times to repeat the command(s). +| `delay_secs` | yes | The number of seconds between sending each command. + +A typical service call for sending several button presses looks like this: ```yaml -switch: - - platform: template - switches: - tv: - value_template: "{% raw %}{% if is_state('remote.family_room', 'on') %}on{% else %}off{% endif %}{% endraw %}" - turn_on: - service: remote.turn_on - entity_id: remote.family_room - turn_off: - service: remote.turn_off - entity_id: remote.family_room +service: remote.send_command +data: + entity_id: remote.tv_room + command: + - home + - 1 + - 2 + delay_secs: 0.6 ``` +### {% linkable_title Service `remote.harmony_sync` %} + +Synchronize the Harmony device with the Harmony web service if any changes are made from the web portal or app. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | Only act on a specific remote, else target all. + +### {% linkable_title Examples %} + Template sensors can be utilized to display current activity in the frontend. ```yaml @@ -104,7 +130,6 @@ sensor: friendly_name: 'bedroom' ``` - The example below shows how to control an `input_boolean` switch using the Harmony remote's current activity. The switch will turn on when the remote's state changes and the Kodi activity is started and off when the remote's state changes and the current activity is PowerOff. ```yaml @@ -130,39 +155,3 @@ automation: service: input_boolean.turn_off entity_id: input_boolean.notify ```` - -The automation example below shows how to send a command via the harmony remote using the `send_command` service to send the 'Pause' command to the hub, which is already defined as an IR code for each device to be used via the Harmony app. It is checking for the activity name as exposed through the sensor in the harmony remote component using Jinja if statements to set the device_id, sending the correct Pause command for the given activity. This requires checking your activity list and device_id from the `harmony_REMOTENAME.conf` file created when you start the component. In this example, the harmony hub is named bedroom. - -```yaml -automation: - - alias: Harmony Pause contextual for activity - trigger: - # trigger happens to be from a flic button - could be any valid event - platform: event - event_type: flic_click - event_data: - button_name: flic_80e4da70bbb1 - click_type: double - action: - service: remote.send_command - data_template: - # using a data template to have if brances for relevant device - # Always the same entity_id - the harmony hub - entity_id: remote.bedroom - # Always the same command - the Pause key - command: Pause - # select device based upon the activity being undertaken. - device: > - # when in WATCH TV activity, the pause key relates to a TiVo, which is device 22987101 - {% raw %}{% if is_state("sensor.bedroom", "WATCH TV") %}{% raw %} - 22987101 - # when in WATCH APPLE TV activity, the pause key relates to an Apple TV, which is device 23002316 - {% raw %}{% elif is_state("sensor.bedroom", "WATCH APPLE TV") %}{% endraw %} - 23002316 - {% raw %}{% elif is_state("sensor.bedroom", "PLEX") %}{% endraw %} - 23048786 - {% raw %}{% elif is_state("sensor.bedroom", "WATCH BLU RAY") %}{% endraw %} - 23043122 - {% raw %}{% endif %}{% endraw %} - -```` diff --git a/source/_components/remote.itach.markdown b/source/_components/remote.itach.markdown index 97234c7516f..35e14d18524 100755 --- a/source/_components/remote.itach.markdown +++ b/source/_components/remote.itach.markdown @@ -48,7 +48,7 @@ Configuration variables: - **name** (*Required*): Command name. - **data** (*Required*): Hex command data. -An example to call the component from developer tools using the remote, send_command service `{ "entity_id":"remote.tv", "device":"0", "command":"menu" }` +An example to call the component from developer tools using the `remote.send_command` service: `{ "entity_id":"remote.tv", "command":"menu" }` Note: Global Cache devices expect data in their own format of "sendir...". This component converts hex code to Global Cache IR form. diff --git a/source/_components/remote.markdown b/source/_components/remote.markdown index 327797ebbc8..fada23fde39 100755 --- a/source/_components/remote.markdown +++ b/source/_components/remote.markdown @@ -13,7 +13,7 @@ ha_release: "0.34" Keeps track which remotes are in your environment, their state and allows you to control them. * Maintains a state per remote and a combined state `all_remotes`. - * Registers services `remote/turn_on`, `remote/turn_off`, `remote/toggle`, `remote/sync`, and `remote/send_command` to control remotes. + * Registers services `remote/turn_on`, `remote/turn_off`, `remote/toggle`, and `remote/send_command` to control remotes. ### {% linkable_title Use the services %} @@ -25,5 +25,6 @@ Go to the **Developer Tools**, then to **Call Service** in the frontend, and cho | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | -| `entity_id` | yes | Only act on specific remote. Else targets all. +| `entity_id` | yes | Only act on a specific remote, else target all. +See the platform documentation for each type of remote for more detailed examples. diff --git a/source/_components/sensor.fritzbox_netmonitor.markdown b/source/_components/sensor.fritzbox_netmonitor.markdown index d6c8a3e9842..9842499a1ac 100644 --- a/source/_components/sensor.fritzbox_netmonitor.markdown +++ b/source/_components/sensor.fritzbox_netmonitor.markdown @@ -34,16 +34,18 @@ Configuration variables: The following statistics will be exposed as attributes. -|Attribute |Description | -|:-----------------|:------------------------------------------------------------| -|is_linked |True if the FritzBox is physically linked to the provider | -|is_connected |True if the FritzBox has established an internet-connection | -|wan_access_type |Connection-type, can be `DSL` or `Cable` | -|external_ip |External ip address | -|uptime |Uptime in seconds | -|bytes_sent |Bytes sent | -|bytes_received |Bytes received | -|max_byte_rate_up |Maximum upstream-rate in bytes/s | -|max_byte_rate_down|Maximum downstream-rate in bytes/s | +|Attribute |Description | +|:----------------------|:------------------------------------------------------------| +|is_linked |True if the FritzBox is physically linked to the provider | +|is_connected |True if the FritzBox has established an internet-connection | +|wan_access_type |Connection-type, can be `DSL` or `Cable` | +|external_ip |External ip address | +|uptime |Uptime in seconds | +|bytes_sent |Bytes sent | +|bytes_received |Bytes received | +|transmission_rate_up |Current upstream speed in bytes/s | +|transmission_rate_down |Current downstream speed in bytes/s | +|max_byte_rate_up |Maximum upstream-rate in bytes/s | +|max_byte_rate_down |Maximum downstream-rate in bytes/s | The sensor's state corresponds to the `is_linked` attribute and is either `online`, `offline`, or `unavailable` (in case connection to the router is lost). diff --git a/source/_components/sensor.lacrosse.markdown b/source/_components/sensor.lacrosse.markdown index d024d174403..3dc7a9f842e 100644 --- a/source/_components/sensor.lacrosse.markdown +++ b/source/_components/sensor.lacrosse.markdown @@ -25,7 +25,7 @@ The `lacrosse` sensor platform is using the data provided by a [Jeelink](https:/ Since the sensor change their ID after each powercycle/battery change you can check what sensor IDs are availble by using the command-line tool `pylacrosse` from the pylacrosse package. ```bash -$ sudo pylacrosse -D /dev/ttyUSB0 scan +$ sudo pylacrosse -d /dev/ttyUSB0 scan ``` To use your `lacrosse` compatible sensor in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/sensor.pyload.markdown b/source/_components/sensor.pyload.markdown index 4ad24e38938..c4d7611edb4 100644 --- a/source/_components/sensor.pyload.markdown +++ b/source/_components/sensor.pyload.markdown @@ -24,16 +24,41 @@ sensor: - platform: pyload ``` -Configuration variables: +{% configuration %} +host: + description: This is the IP address of your pyLoad download manager. + required: false + type: string + default: localhost +port: + description: The port your pyLoad interface uses. + required: false + type: int + default: 8000 +name: + description: The name to use when displaying this pyLoad instance. + required: false + type: string + default: 20 +username: + description: Your pyLoad username. + required: false + type: string +password: + description: Your pyLoad password. + required: false + type: string +ssl: + description: Enable SSL/TLS for the host. + required: false + type: boolean + default: false +{% endconfiguration %} -- **host** (*Optional*): This is the IP address of your pyLoad download manager, eg. 192.168.0.100. Defaults to `localhost`. -- **port** (*Optional*): The port your pyLoad interface uses. Defaults to 8000. -- **name** (*Optional*): The name to use when displaying this pyLoad instance. -- **username** (*Optional*): Your pyLoad username. -- **password** (*Optional*): Your pyLoad password. If everything is setup correctly, the download speed will show up in the frontend.
Do not use the `api_key` variable. The key is only needed once at initial setup.
+ ++ +Please make sure you have `autoconf` installed (`apt-get install autoconf`) if you want to use this component. Also, installing some dependencies might take considerable time (>1h) on slow devices. You might have to use `sudo` when installing `autoconf`. + +
diff --git a/source/_components/vacuum.xiaomi_miio.markdown b/source/_components/vacuum.xiaomi_miio.markdown index 1528d5c5eec..6fa7f05a2a5 100644 --- a/source/_components/vacuum.xiaomi_miio.markdown +++ b/source/_components/vacuum.xiaomi_miio.markdown @@ -141,21 +141,6 @@ easily via a hidden menu item at the Mi-Home app. #### {% linkable_title Windows and Android %} -Follow the pairing process using your phone and Mi-Home app. You will be able to retrieve the token from a SQLite file inside your phone. - -Before you begin you need to install `libffi-dev` and `libssl-dev` by running the command below. This is needed for `python-mirobo` to be installed correctly. - -```bash -$ sudo apt-get install libffi-dev libssl-dev -``` - -If your Home Assistant installation is running in a [Virtualenv](/docs/installation/virtualenv/#upgrading-home-assistant), make sure you activate it by running the commands below. - -```bash -$ sudo su -s /bin/bash homeassistant -$ source /srv/homeassistant/bin/activate -``` - To fetch the token follow these instructions depending on your mobile phone platform. 1. Configure the robot with the Mi-Home app. diff --git a/source/_components/xiaomi_aqara.markdown b/source/_components/xiaomi_aqara.markdown index d5b94a0a6e4..2e132faa878 100644 --- a/source/_components/xiaomi_aqara.markdown +++ b/source/_components/xiaomi_aqara.markdown @@ -245,3 +245,4 @@ That means that Home Assistant is not getting any response from your Xiaomi gate - Hard reset the gateway: Press the button of the gateway 30 seconds and start again from scratch. - If you are using Home Assistant in [Docker](/docs/installation/docker/), make sure to use `--net=host`. - If you receive an `{"error":"Invalid key"}` in your log while trying to control the gateway light, you should generate the key again using an Android Phone or alternativly an emulator such as [bluestacks](https://www.bluestacks.com). In some instances there is an issue with keys being generated using the iOS application. +- If the required library "PyXiaomiGateway" cannot be installed you will need to install some missing system dependencies `python3-dev`, `libssl-dev`, `libffi-dev` manually (e.g. `sudo apt-get install python3-dev libssl-dev libffi-dev`). diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index a54145e0956..c4b3ee2793a 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -138,6 +138,10 @@ The US Naval Observatory has a [tool](http://aa.usno.navy.mil/data/docs/AltAz.ph ### {% linkable_title Template trigger %} ++ If your template trigger has no `entity_id` listed, then it is evaluted on *every* state change for *every* entity. Instead you should create a [template sensor](/components/sensor.template/) or [template binary sensor](/components/binary_sensor.template/) and use that in your automation. +
+ Template triggers work by evaluating a [template] on each state change. The trigger will fire if the state change caused the template to render 'true'. This is achieved by having the template result in a true boolean expression (`{% raw %}{{ is_state('device_tracker.paulus', 'home') }}{% endraw %}`) or by having the template render 'true' (example below). With template triggers you can also evaluate attribute changes by using is_state_attr (`{% raw %}{{ is_state_attr('climate.living_room', 'away_mode', 'off') }}{% endraw %}`) @@ -145,6 +149,7 @@ With template triggers you can also evaluate attribute changes by using is_state automation: trigger: platform: template + entity_id: device_tracker.paulus value_template: "{% raw %}{% if is_state('device_tracker.paulus', 'home') %}true{% endif %}{% endraw %}" ``` diff --git a/source/_docs/installation/docker.markdown b/source/_docs/installation/docker.markdown index 5d027402911..cd8f8b26eef 100644 --- a/source/_docs/installation/docker.markdown +++ b/source/_docs/installation/docker.markdown @@ -83,4 +83,4 @@ This will launch Home Assistant and serve the web interface from port 8123 on yo If you change the configuration you have to restart the server. To do that you have 2 options. 1. You can go to the