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.

+ diff --git a/source/_components/switch.mystrom.markdown b/source/_components/switch.mystrom.markdown index a9a4e3d7b0c..7c81252bfc9 100644 --- a/source/_components/switch.mystrom.markdown +++ b/source/_components/switch.mystrom.markdown @@ -25,10 +25,17 @@ switch: host: IP_ADRRESS ``` -Configuration variables: - -- **host** (*Required*): The IP address of your myStrom switch, eg. `http://192.168.1.32`. -- **name** (*Optional*): The name to use when displaying this switch. +{% configuration %} +host: + description: "The IP address of your myStrom switch, e.g., `http://192.168.1.32`." + required: true + type: string +name: + description: The name to use when displaying this switch. + required: false + type: string + default: myStrom Switch +{% endconfiguration %} Check if you are able to access the device located at `http://IP_ADRRESS`. The details about your switch is provided as a JSON response. diff --git a/source/_components/tradfri.markdown b/source/_components/tradfri.markdown index 281d7972211..0f85a2a644e 100644 --- a/source/_components/tradfri.markdown +++ b/source/_components/tradfri.markdown @@ -42,3 +42,9 @@ Configuration variables:

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 service developer tool icon service developer tools, select the service `homeassistant/restart` and click "Call Service". - 2. Or you can restart it from a terminal by running `docker restart homeassistant` + 2. Or you can restart it from a terminal by running `docker restart home-assistant` diff --git a/source/_docs/installation/updating.markdown b/source/_docs/installation/updating.markdown index f5df3a9361b..88279081331 100644 --- a/source/_docs/installation/updating.markdown +++ b/source/_docs/installation/updating.markdown @@ -14,6 +14,8 @@ redirect_from: /getting-started/updating/ The upgrade process differs depending on the installation you have, so please review the documentation that is specific to your install [Hass.io](/hassio/), [HASSbian](/docs/hassbian/common-tasks/#update-home-assistant), [Raspberry Pi All-In-One Installer](/docs/installation/raspberry-pi-all-in-one/#upgrading), [Vagrant](/docs/installation/vagrant/), or [Virtualenv](/docs/installation/virtualenv/#upgrading-home-assistant).

+View what's new in the latest version and potential impacts on your system [here](https://github.com/home-assistant/home-assistant/releases). + The default way to update Home Assistant to the latest release, when available, is: ```bash diff --git a/source/_docs/scripts/conditions.markdown b/source/_docs/scripts/conditions.markdown index 5763106da34..3314e0f4273 100644 --- a/source/_docs/scripts/conditions.markdown +++ b/source/_docs/scripts/conditions.markdown @@ -114,6 +114,23 @@ condition: after_offset: "-1:00:00" ``` +Here is a truth table to clarify the parameters with and without offset: + +| command | night | at sunrise | daytime | at sunset | +| ---------------------------------- | ------------ |:-----------:| ------- |:----------:| +| `after: sunset` | True | ⇒ | False | ⇒ | +| + `after_offset: "01:00:00"` | True | ⇒ | False | **+1h** | +| + `after_offset: "-01:00:00"` | True | ⇒ | False | **-1h** | +| `before: sunset` | False | ⇒ | True | ⇒ | +| + `before_offset: "01:00:00"` | False | ⇒ | True | **+1h** | +| + `before_offset: "-01:00:00"` | False | ⇒ | True | **-1h** | +| `after: sunrise` | False | ⇒ | True | ⇒ | +| + `after_offset: "01:00:00"` | False | **+1h** | True | ⇒ | +| + `after_offset: "-01:00:00"` | False | **-1h** | True | ⇒ | +| `before: sunrise` | True | ⇒ | False | ⇒ | +| + `before_offset: "01:00:00"` | True | **+1h** | False | ⇒ | +| + `before_offset: "-01:00:00"` | True | **-1h** | False | ⇒ | + ### {% linkable_title Template condition %} The template condition will test if the [given template][template] renders a value equal to true. This is achieved by having the template result in a true boolean expression or by having the template render 'true'. @@ -146,7 +163,7 @@ condition: ``` Valid values for `weekday` are `mon`, `tue`, `wed`, `thu`, `fri`, `sat`, `sun`. -Time condition windows can span across the midnight threshold. In the example above, the condition window is from 3pm to 2am. +Time condition windows can span across the midnight threshold. In the example above, the condition window is from 3pm to 2am. ### {% linkable_title Zone condition %} diff --git a/source/_docs/z-wave/device-specific.markdown b/source/_docs/z-wave/device-specific.markdown index eb67577a153..e4661474918 100644 --- a/source/_docs/z-wave/device-specific.markdown +++ b/source/_docs/z-wave/device-specific.markdown @@ -59,7 +59,7 @@ Then disable the Bluetooth modem service: $ sudo systemctl disable hciuart ``` -Finally, reboot to make those changes active. +Finally, reboot to make those changes active. It's been reported that this is also required on the Pi2. ### {% linkable_title Aeon Minimote %} diff --git a/source/_docs/z-wave/installation.markdown b/source/_docs/z-wave/installation.markdown index 338c348d5f0..4765ecb07be 100644 --- a/source/_docs/z-wave/installation.markdown +++ b/source/_docs/z-wave/installation.markdown @@ -170,6 +170,15 @@ $ curl -d '{"devices": ["ttyAMA0"]}' http://hassio/homeassistant/options After that, you need to change `usb_path` to `/dev/ttyAMA0`. +### {% linkable_title RancherOS %} + +If you're using RancherOS for containers, you'll need to ensure you enable the kernel-extras service so that the `USB_ACM` module (also known as `cdc_acm`) is loaded: + +```bash +$ sudo ros service enable kernel-extras +$ sudo ros service up kernel-extras +``` + ### {% linkable_title Network Key %} Security Z-Wave devices require a network key before being added to the network using the Add Secure Node button in the Z-Wave Network Management card. You must set the *network_key* configuration variable to use a network key before adding these devices. diff --git a/source/_posts/2017-11-18-release-58.markdown b/source/_posts/2017-11-18-release-58.markdown index 8ad9a433856..80d8a664c1a 100644 --- a/source/_posts/2017-11-18-release-58.markdown +++ b/source/_posts/2017-11-18-release-58.markdown @@ -62,6 +62,14 @@ Our about screen that shows the error logs has gained a nice upgrade by [@postlu - Add basic backend support for a system log ([@postlund] - [#10492]) ([system_log docs]) (new-platform) - New sensor viaggiatreno. ([@fabfurnari] - [#10522]) ([sensor.viaggiatreno docs]) (new-platform) +## {% linkable_title Release 0.58.1 - November 21 %} + +- Fix yweather ([@tinloaf] - [#10661]) ([weather.yweather docs]) +- Properly initialize Harmony remote ([@amelchio] - [#10665]) ([remote.harmony docs]) +- Handle the new version of HydroQuebec website ([@titilambert] - [#10682]) ([sensor.hydroquebec docs]) +- Fix for time_date sensor ([@etsinko] - [#10694]) ([sensor.time_date docs]) +- Frontend fixes ([@andrey-git] [@armills] [@balloob]) + ## {% linkable_title If you need help... %} ...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. @@ -168,7 +176,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Fix ValueError exception ([@ziotibia81] - [#10596]) ([sensor.modbus docs]) - Fix Hikvision (motion) switch bug ([@arsaboo] - [#10608]) ([switch.hikvisioncam docs]) - Allow unicode when dumping yaml ([@andrey-git] - [#10607]) -- Support script execution for Alexa ([@micbase] - [#10517]) ([alexa.smart_home docs]) +- Support script execution for Alexa ([@micbase] - [#10517]) - bump client version ([@wardcraigj] - [#10610]) ([alarm_control_panel.totalconnect docs]) - New sensor viaggiatreno. ([@fabfurnari] - [#10522]) ([sensor.viaggiatreno docs]) (new-platform) - Modbus switch register support ([@ziotibia81] - [#10563]) ([switch.modbus docs]) @@ -189,7 +197,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Add loglinefetch for frontend API call ([@turbokongen] - [#10579]) - Fixes AirVisual bug regarding incorrect location data ([@bachya] - [#10054]) ([sensor.airvisual docs]) - Make MQTT reconnection logic more resilient and fix race condition ([@cezarsa] - [#10133]) ([mqtt docs]) -- Alexa improvements ([@robbiet480] - [#10632]) ([alexa.smart_home docs]) +- Alexa improvements ([@robbiet480] - [#10632]) - Print entity type in "too slow" warnings ([@andrey-git] - [#10641]) - Bump pyatv to 0.3.8 ([@postlund] - [#10643]) ([apple_tv docs]) - Implement entity and domain exclude/include for Alexa ([@robbiet480] - [#10647]) @@ -376,9 +384,6 @@ Experiencing issues introduced by this release? Please report them in our [issue [abode docs]: https://home-assistant.io/components/abode/ [alarm_control_panel.spc docs]: https://home-assistant.io/components/alarm_control_panel.spc/ [alarm_control_panel.totalconnect docs]: https://home-assistant.io/components/alarm_control_panel.totalconnect/ -[alexa.const docs]: https://home-assistant.io/components/alexa.const/ -[alexa.intent docs]: https://home-assistant.io/components/alexa.intent/ -[alexa.smart_home docs]: https://home-assistant.io/components/alexa.smart_home/ [apple_tv docs]: https://home-assistant.io/components/apple_tv/ [arlo docs]: https://home-assistant.io/components/arlo/ [axis docs]: https://home-assistant.io/components/axis/ @@ -484,3 +489,15 @@ Experiencing issues introduced by this release? Please report them in our [issue [weather.demo docs]: https://home-assistant.io/components/weather.demo/ [websocket_api docs]: https://home-assistant.io/components/websocket_api/ [zwave docs]: https://home-assistant.io/components/zwave/ +[#10661]: https://github.com/home-assistant/home-assistant/pull/10661 +[#10665]: https://github.com/home-assistant/home-assistant/pull/10665 +[#10682]: https://github.com/home-assistant/home-assistant/pull/10682 +[#10694]: https://github.com/home-assistant/home-assistant/pull/10694 +[@amelchio]: https://github.com/amelchio +[@etsinko]: https://github.com/etsinko +[@tinloaf]: https://github.com/tinloaf +[@titilambert]: https://github.com/titilambert +[remote.harmony docs]: https://home-assistant.io/components/remote.harmony/ +[sensor.hydroquebec docs]: https://home-assistant.io/components/sensor.hydroquebec/ +[sensor.time_date docs]: https://home-assistant.io/components/sensor.time_date/ +[weather.yweather docs]: https://home-assistant.io/components/weather.yweather/ diff --git a/source/developers/code_review_platform.markdown b/source/developers/code_review_platform.markdown index 0361d4bfc70..1475234123b 100644 --- a/source/developers/code_review_platform.markdown +++ b/source/developers/code_review_platform.markdown @@ -61,6 +61,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ 1. Extend entity from component, e.g. `class HueLight(Light)` 2. Do not call `update()` in constructor, use `add_devices(devices, True)` instead. 3. Do not do any I/O inside properties. Cache values inside `update()` instead. + 4. The state and/or attributes should not contain relative time since something happened. Instead it should store UTC timestamps. ### {% linkable_title 6. Communication with devices/services %} diff --git a/source/developers/hassio/addon_communication.markdown b/source/developers/hassio/addon_communication.markdown index dd658870f12..adb642d465d 100644 --- a/source/developers/hassio/addon_communication.markdown +++ b/source/developers/hassio/addon_communication.markdown @@ -20,15 +20,15 @@ Use `hassio` to speak with the internal API. ## {% linkable_title Home Assistant %} -An add-on can speak to the [Home Assistant API][hass-api] with our internal proxy. That makes it very easy to communicate with the API without knowing the password, port or any other information of the Home Assistant instance. Use this URL: `http://hassio/homeassistant/api` and internal communication is redirected to the right place. The next stept is to add `homeassistant_api: true` to `config.json`. +An add-on can speak to the [Home Assistant API][hass-api] with our internal proxy. That makes it very easy to communicate with the API without knowing the password, port or any other information of the Home Assistant instance. Use this URL: `http://hassio/homeassistant/api` and internal communication is redirected to the right place. The next stept is to add `homeassistant_api: true` to `config.json` and read the environment variable `API_TOKEN` and use this as Home-Assistant password. It is also possible to speak direct to the Home Assistant instance which is named `homeassistant` over our internal network. But you need to know the configuration that is used by the running instance. -We have severals services for Hass.io inside Home Assistant to execute tasks. To send data over STDIN to an add-on.l simply use `hassio.addon_stdin`. +We have severals services for Hass.io inside Home Assistant to execute tasks. To send data over STDIN to an add-on use the simply `hassio.addon_stdin` service. ## {% linkable_title Hass.io API %} -To enables calls to the [Hass.io API][hassio-api], add `hassio_api: true` to `config.json`. Now you can use the API over the URL: `http://hassio/`. +To enables calls to the [Hass.io API][hassio-api], add `hassio_api: true` to `config.json` and read the environment variable `API_TOKEN`. Now you can use the API over the URL: `http://hassio/`. Use the `API_TOKEN` with header `X-HASSIO-KEY`. [hass-api]: https://home-assistant.io/developers/rest_api/ [hassio-api]: https://github.com/home-assistant/hassio/blob/master/API.md