Merge remote-tracking branch 'origin/current' into next

This commit is contained in:
Paulus Schoutsen 2017-11-23 12:43:37 -08:00
commit dfe09b8aae
28 changed files with 307 additions and 129 deletions

View File

@ -140,11 +140,11 @@ social:
# Home Assistant release details # Home Assistant release details
current_major_version: 0 current_major_version: 0
current_minor_version: 58 current_minor_version: 58
current_patch_version: 0 current_patch_version: 1
date_released: 2017-11-18 date_released: 2017-11-21
# Either # or the anchor link to latest release notes in the blog post. # Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it. # Must be prefixed with a # and have double quotes around it.
# Major release: # Major release:
patch_version_notes: "#" patch_version_notes: "#release-0581---november-21"
# Minor release (Example #release-0431---april-25): # Minor release (Example #release-0431---april-25):

View File

@ -1,6 +1,6 @@
--- ---
layout: page layout: page
title: "Ring Binary Camera" title: "Ring Camera"
description: "Instructions on how to integrate your Ring.com devices within Home Assistant." description: "Instructions on how to integrate your Ring.com devices within Home Assistant."
date: 2017-10-20 10:00 date: 2017-10-20 10:00
sidebar: true sidebar: true
@ -13,7 +13,7 @@ ha_release: 0.57
ha_iot_class: "Cloud Polling" 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: Once you have enabled the [Ring component](/components/ring), add the following to your `configuration.yaml` file:

View File

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

View File

@ -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 `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 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 To integrate Tile into Home Assistant, add the following section to your
`configuration.yaml` file: `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) description: the Tile types to monitor; valid values are `TILE` and `PHONE` (default is for all types to be included)
required: false required: false
type: list type: list
{% endconfiguration %} {% endconfiguration %}

View File

@ -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. * *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. * *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. * *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: * *exposed_domains* (Optional): An array of Home Assistant domains to expose to Google Assistant. Options include:
- `switch` - `switch`
- `light` - `light`
@ -133,4 +133,4 @@ homeassistant:
3. Go to Credentials and select API Key from Create Credentials 3. Go to Credentials and select API Key from Create Credentials
4. Note down the generated API Key and use this in the configuration 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.

View File

@ -79,9 +79,7 @@ Notice in the example below that in order to refer to the group "Living Room", y
entities: entities:
- light.light_family_1 - light.light_family_1
- binary_sensor.motion_living - binary_sensor.motion_living
Bedroom: light.light_bedroom, switch.sleeping Bedroom: light.light_bedroom, switch.sleeping
Rooms: Rooms:
view: yes view: yes
name: Rooms 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 %} ## {% linkable_title Default groups %}
Some components automatically create special groups containing component entities. These groups are named like `group.all_...`, for example: Some components automatically create special groups containing component entities. These groups are named like `group.all_...`, for example:
- `group.all_switches` - `group.all_switches`
- `group.all_lights` - `group.all_lights`
- `group.all_devices` - `group.all_devices`
@ -105,13 +104,11 @@ Default groups appear in the HOME tab, if not overridden by user views and group
```yaml ```yaml
# Example configuration.yaml to include default groups in custom view # Example configuration.yaml to include default groups in custom view
customize: customize:
group.all_automations: group.all_automations:
hidden: false hidden: false
group.all_scripts: group.all_scripts:
hidden: false hidden: false
group: group:
automation_view: automation_view:
name: Automation name: Automation
@ -124,3 +121,22 @@ group:
## {% linkable_title Group behaviour %} ## {% 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`. 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
```

View File

@ -39,7 +39,7 @@ Configuration variables:
- **name** (*Optional*): Friendly name of the datetime input. - **name** (*Optional*): Friendly name of the datetime input.
- **has_time** (*Optional*): Set to `true` if this input should have time. Defaults to `false`. - **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`. - **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: A datetime input entity's state exports several attributes that can be useful in automations and templates:

View File

@ -26,11 +26,21 @@ light:
mac: MAC_ADDRESS mac: MAC_ADDRESS
``` ```
Configuration variables: {% configuration %}
host:
- **host** (*Required*): The IP address of your myStrom WiFi Bulb, eg. `192.168.1.32`. description: "The IP address of your myStrom WiFi Bulb, e.g., `192.168.1.32`."
- **mac** (*Required*): The MAC address of your myStrom WiFi Bulb, eg. `5AAC8CA542F3`. required: true
- **name** (*Optional*): The name to use when displaying this light. 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. Check if you are able to access the light located at `IP_ADRRESS`. The details about your light is provided as a JSON response.

View File

@ -37,7 +37,4 @@ data:
- left - left
- menu - menu
- select - 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.

View File

@ -53,7 +53,7 @@ Configuration variables:
- **name** (*Required*): The hub's name to display in the frontend. - **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. - **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. - **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. - **delay_secs** (*Optional*): Default duration in seconds between sending commands to a device.
Configuration file: 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 programmed device names and ID numbers
- List of all available commands per programmed device - 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 off all devices that were switched on from the start of the current activity.
- **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.
| 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 ```yaml
switch: service: remote.send_command
- platform: template data:
switches: entity_id: remote.tv_room
tv: command:
value_template: "{% raw %}{% if is_state('remote.family_room', 'on') %}on{% else %}off{% endif %}{% endraw %}" - home
turn_on: - 1
service: remote.turn_on - 2
entity_id: remote.family_room delay_secs: 0.6
turn_off:
service: remote.turn_off
entity_id: remote.family_room
``` ```
### {% 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. Template sensors can be utilized to display current activity in the frontend.
```yaml ```yaml
@ -104,7 +130,6 @@ sensor:
friendly_name: 'bedroom' 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. 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 ```yaml
@ -130,39 +155,3 @@ automation:
service: input_boolean.turn_off service: input_boolean.turn_off
entity_id: input_boolean.notify 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 %}
````

View File

@ -48,7 +48,7 @@ Configuration variables:
- **name** (*Required*): Command name. - **name** (*Required*): Command name.
- **data** (*Required*): Hex command data. - **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. Note: Global Cache devices expect data in their own format of "sendir...". This component converts hex code to Global Cache IR form.

View File

@ -13,7 +13,7 @@ ha_release: "0.34"
Keeps track which remotes are in your environment, their state and allows you to control them. 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`. * 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 %} ### {% 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 | | 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.

View File

@ -34,16 +34,18 @@ Configuration variables:
The following statistics will be exposed as attributes. The following statistics will be exposed as attributes.
|Attribute |Description | |Attribute |Description |
|:-----------------|:------------------------------------------------------------| |:----------------------|:------------------------------------------------------------|
|is_linked |True if the FritzBox is physically linked to the provider | |is_linked |True if the FritzBox is physically linked to the provider |
|is_connected |True if the FritzBox has established an internet-connection | |is_connected |True if the FritzBox has established an internet-connection |
|wan_access_type |Connection-type, can be `DSL` or `Cable` | |wan_access_type |Connection-type, can be `DSL` or `Cable` |
|external_ip |External ip address | |external_ip |External ip address |
|uptime |Uptime in seconds | |uptime |Uptime in seconds |
|bytes_sent |Bytes sent | |bytes_sent |Bytes sent |
|bytes_received |Bytes received | |bytes_received |Bytes received |
|max_byte_rate_up |Maximum upstream-rate in bytes/s | |transmission_rate_up |Current upstream speed in bytes/s |
|max_byte_rate_down|Maximum downstream-rate 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). 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).

View File

@ -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. 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 ```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: To use your `lacrosse` compatible sensor in your installation, add the following to your `configuration.yaml` file:

View File

@ -24,16 +24,41 @@ sensor:
- platform: pyload - 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. If everything is setup correctly, the download speed will show up in the frontend.
<p class='img'> <p class='img'>
<img src='{{site_root}}/images/components/pyload/pyload_speed.png' /> <img src='{{site_root}}/images/components/pyload/pyload_speed.png' />
</p> </p>

View File

@ -25,10 +25,17 @@ switch:
host: IP_ADRRESS host: IP_ADRRESS
``` ```
Configuration variables: {% configuration %}
host:
- **host** (*Required*): The IP address of your myStrom switch, eg. `http://192.168.1.32`. description: "The IP address of your myStrom switch, e.g., `http://192.168.1.32`."
- **name** (*Optional*): The name to use when displaying this switch. 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. 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.

View File

@ -42,3 +42,9 @@ Configuration variables:
<p class='note'> <p class='note'>
Do not use the `api_key` variable. The key is only needed once at initial setup. Do not use the `api_key` variable. The key is only needed once at initial setup.
</p> </p>
<p class='note'>
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`.
</p>

View File

@ -141,21 +141,6 @@ easily via a hidden menu item at the Mi-Home app.
#### {% linkable_title Windows and Android %} #### {% 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. To fetch the token follow these instructions depending on your mobile phone platform.
1. Configure the robot with the Mi-Home app. 1. Configure the robot with the Mi-Home app.

View File

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

View File

@ -138,6 +138,10 @@ The US Naval Observatory has a [tool](http://aa.usno.navy.mil/data/docs/AltAz.ph
### {% linkable_title Template trigger %} ### {% linkable_title Template trigger %}
<p class='note warning'>
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.
</p>
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). 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 %}`) 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: automation:
trigger: trigger:
platform: template platform: template
entity_id: device_tracker.paulus
value_template: "{% raw %}{% if is_state('device_tracker.paulus', 'home') %}true{% endif %}{% endraw %}" value_template: "{% raw %}{% if is_state('device_tracker.paulus', 'home') %}true{% endif %}{% endraw %}"
``` ```

View File

@ -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. If you change the configuration you have to restart the server. To do that you have 2 options.
1. You can go to the <img src='/images/screenshots/developer-tool-services-icon.png' alt='service developer tool icon' class="no-shadow" height="38" /> service developer tools, select the service `homeassistant/restart` and click "Call Service". 1. You can go to the <img src='/images/screenshots/developer-tool-services-icon.png' alt='service developer tool icon' class="no-shadow" height="38" /> 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`

View File

@ -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). 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).
</p> </p>
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: The default way to update Home Assistant to the latest release, when available, is:
```bash ```bash

View File

@ -114,6 +114,23 @@ condition:
after_offset: "-1:00:00" 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 %} ### {% 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'. 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`. 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 %} ### {% linkable_title Zone condition %}

View File

@ -59,7 +59,7 @@ Then disable the Bluetooth modem service:
$ sudo systemctl disable hciuart $ 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 %} ### {% linkable_title Aeon Minimote %}

View File

@ -170,6 +170,15 @@ $ curl -d '{"devices": ["ttyAMA0"]}' http://hassio/homeassistant/options
After that, you need to change `usb_path` to `/dev/ttyAMA0`. 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 %} ### {% 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. 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.

View File

@ -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) - 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) - 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... %} ## {% 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. ...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 ValueError exception ([@ziotibia81] - [#10596]) ([sensor.modbus docs])
- Fix Hikvision (motion) switch bug ([@arsaboo] - [#10608]) ([switch.hikvisioncam docs]) - Fix Hikvision (motion) switch bug ([@arsaboo] - [#10608]) ([switch.hikvisioncam docs])
- Allow unicode when dumping yaml ([@andrey-git] - [#10607]) - 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]) - bump client version ([@wardcraigj] - [#10610]) ([alarm_control_panel.totalconnect docs])
- New sensor viaggiatreno. ([@fabfurnari] - [#10522]) ([sensor.viaggiatreno docs]) (new-platform) - New sensor viaggiatreno. ([@fabfurnari] - [#10522]) ([sensor.viaggiatreno docs]) (new-platform)
- Modbus switch register support ([@ziotibia81] - [#10563]) ([switch.modbus docs]) - 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]) - Add loglinefetch for frontend API call ([@turbokongen] - [#10579])
- Fixes AirVisual bug regarding incorrect location data ([@bachya] - [#10054]) ([sensor.airvisual docs]) - 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]) - 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]) - Print entity type in "too slow" warnings ([@andrey-git] - [#10641])
- Bump pyatv to 0.3.8 ([@postlund] - [#10643]) ([apple_tv docs]) - Bump pyatv to 0.3.8 ([@postlund] - [#10643]) ([apple_tv docs])
- Implement entity and domain exclude/include for Alexa ([@robbiet480] - [#10647]) - 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/ [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.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/ [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/ [apple_tv docs]: https://home-assistant.io/components/apple_tv/
[arlo docs]: https://home-assistant.io/components/arlo/ [arlo docs]: https://home-assistant.io/components/arlo/
[axis docs]: https://home-assistant.io/components/axis/ [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/ [weather.demo docs]: https://home-assistant.io/components/weather.demo/
[websocket_api docs]: https://home-assistant.io/components/websocket_api/ [websocket_api docs]: https://home-assistant.io/components/websocket_api/
[zwave docs]: https://home-assistant.io/components/zwave/ [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/

View File

@ -61,6 +61,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
1. Extend entity from component, e.g. `class HueLight(Light)` 1. Extend entity from component, e.g. `class HueLight(Light)`
2. Do not call `update()` in constructor, use `add_devices(devices, True)` instead. 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. 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 %} ### {% linkable_title 6. Communication with devices/services %}

View File

@ -20,15 +20,15 @@ Use `hassio` to speak with the internal API.
## {% linkable_title Home Assistant %} ## {% 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. 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 %} ## {% 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/ [hass-api]: https://home-assistant.io/developers/rest_api/
[hassio-api]: https://github.com/home-assistant/hassio/blob/master/API.md [hassio-api]: https://github.com/home-assistant/hassio/blob/master/API.md