Merge pull request #4216 from home-assistant/release-0-60

0.60
This commit is contained in:
Fabian Affolter 2017-12-17 16:44:09 +01:00 committed by GitHub
commit a5da79f7e7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
54 changed files with 1662 additions and 211 deletions

View File

@ -139,12 +139,12 @@ social:
# Home Assistant release details
current_major_version: 0
current_minor_version: 59
current_patch_version: 2
date_released: 2017-12-06
current_minor_version: 60
current_patch_version: 0
date_released: 2017-12-17
# 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: "#release-0592---december-6"
patch_version_notes: "#"
# Minor release (Example #release-0431---april-25):

View File

@ -0,0 +1,59 @@
---
layout: page
title: "ADS"
description: Connect Home Assistant to TwinCAT devices via the ADS interface
date: 2017-12-05 12:00
sidebar: true
comments: false
sharing: true
footer: true
logo: beckhoff.png
ha_category: Hub
ha_release: "0.60"
ha_iot_class: "Local Push"
---
The ADS (automation device specification) describes a device-independent and fieldbus independent interface for communication between [Beckhoff](https://www.beckhoff.com/) automation devices running [TwinCAT](http://www.beckhoff.hu/english.asp?twincat/default.htm) and other devices implementing this interface.
To enable ADS, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
ads:
device: '127.0.0.1.1.1'
port: 48898
```
{% configuration %}
device:
required: true
description: The AMS NetId that identifies the device.
type: string
port:
required: true
description: The port that runs the AMS server on the device, typically this would be 801 or 851.
type: int
ip_address:
required: false
description: The IP address of the ADS device, if not set the first 4 bytes of the device id will be used.
type: string
{% endconfiguration %}
## {% linkable_title Service %}
The ADS component will register the service `write_by_name` allowing you to write a value to a variable on your ADS device.
```json
{
"adsvar": ".myvariable",
"adstype": "int",
"value": 123
}
```
Service parameters:
- **adsvar**: Name of the variable on the ADS device. To access global variables on *TwinCAT2* use a prepending dot `.myvariable`, for TwinCAT3 use
`GBL.myvariable`.
- **adstype**: Specify the type of the variable. Use one of the following: `int`, `byte`, `uint`, `bool`
- **value**: The value that will be written in the variable.

View File

@ -0,0 +1,18 @@
---
layout: page
title: "Canary Alarm Control Panel"
description: "Instructions on how to integrate your Canary devices into Home Assistant."
date: 2017-12-07 22:00
sidebar: true
comments: false
sharing: true
footer: true
logo: canary.png
ha_category: Alarm
ha_release: "0.60"
ha_iot_class: "Cloud Polling"
---
The `canary` alarm control panel platform allows you to integrate your [Canary](https://canary.is) alarm system in Home Assistant.
To add `canary` alarm control panel to your installation, follow instructions in [Canary component](/components/canary/).

View File

@ -0,0 +1,48 @@
---
layout: page
title: "Antifurto365 iAlarm Control Panel"
description: "Instructions how to integrate iAlarms alarms into Home Assistant."
date: 2017-11-30 20:00
sidebar: true
comments: false
sharing: true
footer: true
logo: antifurto365-ialarm.png
ha_category: Alarm
ha_release: "0.60"
---
The `ialarm` platform provides connectivity with the [Antifurto365](https://www.antifurtocasa365.it/) iAlarm alarm systems.
This platform supports the following services: `alarm_arm_away`, `alarm_arm_home` and `alarm_disarm`.
To enable this, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
alarm_control_panel:
- platform: ialarm
host: ALARM_SYSTEM_IP
username: YOUR_USERNAME
password: YOUR_PASSWORD
```
{% configuration %}
host:
description: The IP address of the iAlarm device on your home network.
required: true
type: string
username:
description: Username used to sign into the iAlarm web client (should be admin by default).
required: true
type: string
password:
description: Password used to sign into the iAlarm web client.
required: true
type: string
name:
description: Name of device in Home Assistant.
required: false
type: string
{% endconfiguration %}

View File

@ -25,13 +25,62 @@ Configuration variables:
- **name** (*Optional*): The name of the alarm. Default is "HA Alarm".
- **code** (*Optional*): If defined, specifies a code to enable or disable the alarm in the frontend.
- **pending_time** (*Optional*): The time in seconds of the pending time before arming the alarm. Default is 60 seconds.
- **code_template** (*Optional*): If defined, returns a code to enable or disable the alarm in the frontend; an empty string disables checking the code. Inside the template, the variables **from_state** and **to_state** identify the current and desired state. Only one of **code** and **code_template** can be specified.
- **delay_time** (*Optional*): The time in seconds of the pending time before triggering the alarm. Default is 0 seconds.
- **pending_time** (*Optional*): The time in seconds of the pending time before effecting a state change. Default is 60 seconds.
- **trigger_time** (*Optional*): The time in seconds of the trigger time in which the alarm is firing. Default is 120 seconds.
- **disarm_after_trigger** (*Optional*): If true, the alarm will automatically disarm after it has been triggered instead of returning to the previous state.
- **armed_home/armed_away/armed_night/triggered** (*Optional*): State specific settings
- **pending_time**: State specific pending time override.
- **armed_custom_bypass/armed_home/armed_away/armed_night/disarmed/triggered** (*Optional*): State specific settings
- **delay_time** (*Optional*): State specific setting for **delay_time** (all states except **triggered**)
- **pending_time** (*Optional*): State specific setting for **pending_time** (all states except **disarmed**)
- **trigger_time** (*Optional*): State specific setting for **trigger_time** (all states except **triggered**)
In the config example below, armed_home state will have no pending time and triggered state will have pending time of 20 second whereas armed_away state will have a default pending time of 30 seconds.
## {% linkable_title State machine %}
The state machine of the manual alarm component is complex but powerful. The
transitions are timed according to three values, **delay_time**, **pending_time**
and **trigger_time**. The values in turn can come from the default configuration
variable or from a state-specific override.
When the alarm is armed, its state first goes to **pending** for a number
of seconds equal to the destination state's **pending_time**, and then
transitions to one of the "armed" states. Note that **code_template**
never receives "pending" in the **to_state** variable; instead,
**to_state** contains the state which the user has requested. However,
**from_state** *can* contain "pending".
When the alarm is triggered, its state goes to **pending** for a number of
seconds equal to the previous state's **delay_time** plus the triggered
state's **pending_time**. Then the alarm transitions to the "triggered"
states. The code is never checked when triggering the alarm, so the
**to_state** variable of **code_template** cannot ever contain "triggered"
either; again, **from_state** *can* contain "triggered".
The alarm remains in the "triggered" state for a number of seconds equal to the
previous state's **trigger_time**. Then, depending on **disarm_after_trigger**,
it goes back to either the previous state or **disarmed**. If the previous
state's **trigger_time** is zero, the transition to "triggered" is entirely
blocked and the alarm remains in the armed state.
Each of the settings is useful in different scenarios. **pending_time** gives
you some time to leave the building (for "armed" states) or to disarm the alarm
(for the "triggered" state).
**delay_time** can also be used to allow some time to disarm the alarm, but with
more flexibility. For example, you could specify a delay time for the
"armed away" state, in order to avoid triggering the alarm while the
garage door opens, but not for the "armed home" state.
**trigger_time** is useful to disable the alarm when disarmed, but it can also
be used for example to sound the siren for a shorter time during the night.
In the config example below:
- the disarmed state never triggers the alarm;
- the armed_home state will leave no time to leave the building or disarm the alarm;
- while other states state will give 30 seconds to leave the building before triggering the alarm, and 20 seconds to disarm the alarm when coming back.
```yaml
# Example configuration.yaml entry
@ -40,11 +89,13 @@ alarm_control_panel:
name: Home Alarm
code: 1234
pending_time: 30
delay_time: 20
trigger_time: 4
disarmed:
trigger_time: 0
armed_home:
pending_time: 0
triggered:
pending_time: 20
trigger_time: 4
delay_time: 0
```
## {% linkable_title Examples %}

View File

@ -42,15 +42,21 @@ alarm_control_panel:
Configuration variables:
All configuration variables from the base manual alarm platform are available:
The following configuration variables from the base manual alarm platform are available:
- **name** (*Optional*): The name of the alarm. Default is "HA Alarm".
- **code** (*Optional*): If defined, specifies a code to enable or disable the alarm in the frontend. This code is not required for MQTT interactions.
- **pending_time** (*Optional*): The time in seconds of the pending time before arming the alarm. Default is 60 seconds.
- **code_template** (*Optional*): If defined, returns a code to enable or disable the alarm in the frontend; an empty string disables checking the code. Inside the template, the variables **from_state** and **to_state** identify the current and desired state. Only one of **code** and **code_template** can be specified.
- **delay_time** (*Optional*): The time in seconds of the pending time before triggering the alarm. Default is 0 seconds.
- **pending_time** (*Optional*): The time in seconds of the pending time before effecting a state change. Default is 60 seconds.
- **trigger_time** (*Optional*): The time in seconds of the trigger time in which the alarm is firing. Default is 120 seconds.
- **disarm_after_trigger** (*Optional*): If true, the alarm will automatically disarm after it has been triggered instead of returning to the previous state.
- **armed_home|armed_away|armed_night|triggered** (*Optional*): State specific settings
- **pending_time**: State specific pending time override.
- **armed_home/armed_away/armed_night/disarmed/triggered** (*Optional*): State specific settings
- **delay_time** (*Optional*): State specific setting for **delay_time** (all states except **triggered**)
- **pending_time** (*Optional*): State specific setting for **pending_time** (all states except **disarmed**)
- **trigger_time** (*Optional*): State specific setting for **trigger_time** (all states except **triggered**)
See the documentation for the [manual alarm platform](../alarm_control_panel.manual/) for a description.
Additionally, the following MQTT configuration variables are also available:
@ -62,7 +68,13 @@ Additionally, the following MQTT configuration variables are also available:
- **payload_arm_away** (*Optional*): The payload to set armed-away mode on this Alarm Panel. Default is "ARM_AWAY".
- **payload_arm_night** (*Optional*): The payload to set armed-night mode on this Alarm Panel. Default is "ARM_NIGHT".
In the config example below, armed_home state will have no pending time and triggered state will have a pending time of 20 seconds whereas armed_away state will have a default pending time of 30 seconds.
In the config example below:
- the disarmed state never triggers the alarm;
- the armed_home state will leave no time to leave the building or disarm the alarm;
- while other states state will give 30 seconds to leave the building before triggering the alarm, and 20 seconds to disarm the alarm when coming back.
```yaml
# Example configuration.yaml entry
@ -71,11 +83,13 @@ alarm_control_panel:
state_topic: home/alarm
command_topic: home/alarm/set
pending_time: 30
delay_time: 20
trigger_time: 4
disarmed:
trigger_time: 0
armed_home:
pending_time: 0
triggered:
pending_time: 20
trigger_time: 4
delay_time: 0
```
## {% linkable_title Examples %}

View File

@ -10,9 +10,13 @@ footer: true
logo: amazon-echo.png
ha_category: Voice
featured: true
ha_release: 0.10
ha_release: '0.10'
---
<p class='note'>
Use [Home Assistant Cloud](/components/cloud/) to integrate with Alexa without any effort.
</p>
There are a few ways that you can use Amazon Echo and Home Assistant together.
- [Build custom commands to use](#i-want-to-build-custom-commands-to-use-with-echo)
@ -325,7 +329,7 @@ Please refer to the [Amazon documentation][flash-briefing-api-docs] for more inf
- All other settings are up to you
- Hit "Next"
- Test
- Having passed all validations to reach this screen, you can now click on "< Back to All Skills" as your flash briefing is now available as in "Development" service.
- Having passed all validations to reach this screen, you can now click on "< Back to All Skills" as your flash briefing is now available as in "Development" service.
- To invoke your flash briefing, open the Alexa app on your phone or go to the [Alexa Settings Site][alexa-settings-site], open the "Skills" configuration section, select "Your Skills", scroll to the bottom, tap on the Flash Briefing Skill you just created, enable it, then manage Flash Briefing and adjust ordering as necessary. Finally ask your Echo for your "news","flash briefing", or "briefing".
[amazon-dev-console]: https://developer.amazon.com

View File

@ -0,0 +1,41 @@
---
layout: page
title: "ADS Binary Sensor"
description: "Instructions on how to set up ADS binary sensors within Home Assistant."
date: 2017-10-25 10:00
sidebar: true
comments: false
sharing: true
footer: true
logo: beckhoff.png
ha_category: Binary Sensor
ha_release: "0.60"
ha_iot_class: "Local Push"
---
The `ads` binary sensor platform can be used to monitor a boolean value on your ADS device.
To use your ADS device, you first have to set up your [ADS hub](/components/ads/) and then add the following to your `configuration.yaml`
file:
```yaml
# Example configuration.yaml entry
binary_sensor:
- platform: ads
adsvar: .boolean1
```
{% configuration %}
adsvar:
required: true
description: The name of the variable which you want to access on the ADS device.
type: string
name:
required: false
description: An identifier for the light in the frontend.
type: string
device_class:
required: false
description: The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend.
type: string
{% endconfiguration %}

View File

@ -28,6 +28,7 @@ The way these sensors are displayed in the frontend can be modified in the [cust
- **plug**: `On` means device is plugged in, `Off` means device is unplugged
- **power**: Power, over-current, etc.
- **presence**: `On` means Home, `Off` means Away
- **problem**: `On` means a problem was detected, `Off` means the status is OK
- **safety**: `On` means unsafe, `Off` means safe
- **smoke**: `On` means smoke detected
- **sound**: `On` means sound detected, `Off` means no sound

View File

@ -0,0 +1,104 @@
---
layout: page
title: "CalDav"
description: "Instructions on how to integrate a WebDav calendar into Home Assistant."
date: 2017-11-27 23:14
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Calendar
ha_iot_class: "Cloud Polling"
ha_release: "0.60"
---
The `caldav` platform allows you to connect to your WebDav calendar and generate binary sensors. A different sensor will be created for each individual calendar, or you can specify custom calendars which match a criteria you define (more on that below). These sensors will be `on` if you have an on going event in that calendar or `off` if the event is later in time, or if there is no event at all. The WebDav calendar get updated roughly every 10 minutes.
### {% linkable_title Prerequisites %}
You need to have a CalDav server and eventually credentials for it. This component was tested against [Baikal](http://sabre.io/baikal/) but any component complying with the RFC4791 should work.
You might need some additional system packages to compile the Python caldav library. On a Debian based system, install them by:
```bash
$ sudo apt-get install libxm2-dev libxslt1-dev zlib1g-dev
```
### {% linkable_title Basic Setup %}
To integrate a WebDav calendar in Home Assistant, add the following section to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
calendar:
- platform: caldav
url: https://baikal.my-server.net/cal.php/calendars/john.doe@test.com/default
```
{% configuration %}
url:
required: true
description: The full URL to your calendars.
type: string
username:
required: false
description: Username for authentication.
type: string
password:
required: false
description: Password for authentication.
type: string
calendars:
required: false
description: List of the calendars to filter. Empty or absent means no filtering.
type: list
custom_calendars:
required: false
description: Details on any custom binary sensor calendars you want to create.
type: list
keys:
name:
required: true
description: The name of your custom calendar.
type: string
calendar:
required: true
description: The source calendar to search on.
type: string
search:
required: true
pending_charges: Regular expression for filtering the events
type: string
all_day:
required: false
description: Include events that last the whole day.
type: boolean
default: true
{% endconfiguration %}
### {% linkable_title Sensor attributes %}
- **offset_reached**: If set in the event title and parsed out will be on/off once the offset in the title in minutes is reached. So the title Very important meeting !!-10 would trigger this attribute to be on 10 minutes before the event starts.
- **all_day**: `True/False` if this is an all day event. Will be `False` if there is no event found.
- **message**: The event title with the `search` values extracted. So in the above example for `offset_reached` the message would be set to Very important meeting
- **description**: The event description.
- **location**: The event Location.
- **start_time**: Start time of event.
- **end_time**: End time of event.
### {% linkable_title Sensor attributes %}
```yaml
# Example configuration.yaml entry
calendar:
- platform: caldav
url: https://baikal.my-server.net/cal.php/calendars/john.doe@test.com/default
username: john.doe@test.com
password: !secret caldav
custom_calendars:
- name: 'HomeOffice'
calendar: 'Agenda'
search: 'HomeOffice'
```

View File

@ -0,0 +1,18 @@
---
layout: page
title: "Canary Camera"
description: "Instructions on how to integrate your Canary devices into Home Assistant."
date: 2017-12-07 22:00
sidebar: true
comments: false
sharing: true
footer: true
logo: canary.png
ha_category: Camera
ha_release: "0.60"
ha_iot_class: "Cloud Polling"
---
The `canary` camera platform allows you to view the latest camera image (triggered by motion) by your [Canary](https://canary.is) device in Home Assistant.
To add `canary` camera to your installation, follow instructions in [Canary component](/components/canary/).

View File

@ -0,0 +1,53 @@
---
layout: page
title: "Canary"
description: "Instructions on how to integrate your Canary devices into Home Assistant."
date: 2017-12-07 22:00
sidebar: true
comments: false
sharing: true
footer: true
logo: canary.png
ha_category: Hub
ha_release: "0.60"
ha_iot_class: "Cloud Polling"
---
The `canary` component allows you to integrate your [Canary](https://canary.is) devices in Home Assistant.
You will need your Canary login information (username, usually your email address, and password) to use this module.
To set it up, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
canary:
username: you@example.com
password: secret
```
{% configuration %}
username:
description: The username for accessing your Canary account.
required: true
type: string
password:
description: The password for accessing your Canary account.
required: true
type: string
timeout:
description: Timeout to wait for connections.
required: false
type: int
default: 10
{% endconfiguration %}
Once loaded, your front end will have the following components:
* A camera image triggered by motion for each camera.
* An alarm control panel for each location.
* A sensor per camera that reports temperature.
* A sensor per camera that reports humidity.
* A sensor per camera that reports air quality.

View File

@ -38,6 +38,7 @@ Configuration variables:
- **cold_tolerance** (*Optional*): Set a minimum amount of difference between the temperature read by the sensor specified in the *target_sensor* option and the target temperature that must change prior to being switched on. For example, if the target temperature is 25 and the tolerance is 0.5 the heater will start when the sensor equals or goes below 24.5.
- **hot_tolerance** (*Optional*): Set a minimum amount of difference between the temperature read by the sensor specified in the *target_sensor* option and the target temperature that must change prior to being switched off. For example, if the target temperature is 25 and the tolerance is 0.5 the heater will stop when the sensor equals or goes above 25.5.
- **keep_alive** (*Optional*): Set a keep-alive interval. If set, the switch specified in the *heater* option will be triggered every time the interval elapses. Use with heaters and A/C units that shut off if they don't receive a signal from their remote for a while.
- **initial_operation_mode** (*Optional*): Set the initial operation mode. Valid values are `off` or `auto`. Value has to be double quoted. If this parameter is not set, it is preferable to set a *keep_alive* value. This is helpful to align any discrepancies between *generic_thermostat* and *heater* state.
A full configuration example looks like the one below. `min_cycle_duration` and `keep_alive` must contain at least one of the following entries: `days:`, `hours:`, `minutes:`, `seconds:` or `milliseconds:`.
@ -57,4 +58,5 @@ climate:
seconds: 5
keep_alive:
minutes: 3
initial_operation_mode: "off"
```

View File

@ -8,16 +8,19 @@ comments: false
sharing: true
footer: true
logo: home-assistant.png
ha_release: 0.57
ha_release: 0.60
ha_category: Voice
ha_iot_class: "Cloud Push"
---
<p class='note warning'>
Home Assistant Cloud is currently in private beta.
</p>
The Home Assistant Cloud allows you to quickly integrate your local Home Assistant with various cloud services. Any processing of services from other cloud services is handled by your local Home Assistant.
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.
```yaml
# Example configuration.yaml entry to enable the cloud component
cloud:
```
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.
Once activated, go to the configuration panel in Home Assistant and create an account and log in. There is no need to configure your router or expose your instance to the internet in any other way.
### {% linkable_title Amazon Alexa %}

View File

@ -98,3 +98,17 @@ logbook:
- sensor.garage_door_time_in_state
- sensor.garage_door_wifi_signal_strength
```
As of firmware release 1.17 the garadget device has native support for MQTT. The options allow the end-user to configure the device in the following ways 'cloud only', 'cloud and MQTT' or 'MQTT only'.
For configuration of the garadget as a MQTT cover:
```yaml
cover:
- platform: mqtt
name: "Garage Door"
command_topic: "garadget/device_name/command"
state_topic: "garadget/device_name/status"
payload_open: "open"
payload_close: "close"
```

View File

@ -0,0 +1,25 @@
---
layout: page
title: "TellStick Cover"
description: "Instructions how to integrate TellStick covers into Home Assistant."
date: 2017-11-29 16:23
sidebar: true
comments: false
sharing: true
footer: true
logo: telldus_tellstick.png
ha_category: Cover
ha_iot_class: "Assumed State"
ha_release: "0.60"
---
This `tellstick` cover platform allows you to control your [TellStick](http://www.telldus.se/products/tellstick) covers.
To use your TellStick device, you first have to set up your [Tellstick hub](/components/tellstick/) and then add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
cover:
- platform: tellstick
```

View File

@ -26,15 +26,19 @@ device_tracker:
host: 192.168.1.1
username: admin
password: YOUR_PASSWORD
new_device_defaults:
track_new_devices: True
hide_if_away: False
```
The following optional parameters can be used with any platform. However device tracker will only look for global settings under the configuration of the first configured platform:
| Parameter | Default | Description |
|---------------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `track_new_devices` | True | If new discovered devices are tracked by default |
| `interval_seconds` | 12 | Seconds between each scan for new devices |
| `consider_home` | 180 | Seconds to wait till marking someone as not home after not being seen. This parameter is most useful for households with Apple iOS devices that go into sleep mode while still at home to conserve battery life. iPhones will occasionally drop off the network and then re-appear. `consider_home` helps prevent false alarms in presence detection when using IP scanners such as Nmap. `consider_home` accepts various time representations, (E.g. the following all represents 3 minutes: `180`, `0:03`, `0:03:00`) |
|----------------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `interval_seconds` | 12 | Seconds between each scan for new devices |
| `consider_home` | 180 | Seconds to wait till marking someone as not home after not being seen. This parameter is most useful for households with Apple iOS devices that go into sleep mode while still at home to conserve battery life. iPhones will occasionally drop off the network and then re-appear. `consider_home` helps prevent false alarms in presence detection when using IP scanners such as Nmap. `consider_home` accepts various time representations, (E.g. the following all represents 3 minutes: `180`, `0:03`, `0:03:00`) |
| `new_device_defaults`| | Default values for new discovered devices. Available options `track_new_devices` (default: `True`), `hide_if_away` (default: `False`) |
The extended example from above would look like the following sample:

View File

@ -0,0 +1,37 @@
---
layout: page
title: "Meraki"
description: "Instructions on how to integrate Meraki-based presence detection into Home Assistant."
date: 2017-11-22 08:00
sidebar: true
comments: false
sharing: true
footer: true
logo: meraki.png
ha_category: Presence Detection
ha_release: "0.60"
---
Use your `Meraki AP` as device tracker. Note that Meraki will see all devices, not only connected to the network.
Follow instructions [here](https://meraki.cisco.com/technologies/location-analytics-api) how to enable Location Analytics.
After you configure access to the Meraki CMX API, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
device_tracker:
- platform: meraki
secret: your_secert
validator: meraki_validator
```
{% configuration %}
secret:
description: Secret code added in Meraki
required: true
type: string
validator:
description: Validation string from Meraki
required: true
type: string
{% endconfiguration %}

View File

@ -23,7 +23,7 @@ frontend:
description: "Version of the JavaScript to serve to clients. Options: `es5` - transpiled so old browsers understand it. `latest` - not transpiled, so will work on recent browsers only. `auto` - select a version according to the browser user-agent. The value in the config can be overiden by putting `es5` or `latest` in the URL. For example `http://localhost:8123/states?es5` "
required: false
type: string
default: es5
default: auto
themes:
description: Allow to define different themes. See below for further details.
required: false

View File

@ -28,58 +28,69 @@ To set up the component, add the following information to your `configuration.ya
```yaml
homematic:
hosts:
interfaces:
wireless:
ip: 127.0.0.1
host: 127.0.0.1
```
Configuration variables (global):
- **hosts** (*Required*): Configuration for each host to integrate into Home Assistant.
- **interfaces** (*Required*): Configuration for each XML-RPC interface to integrate into Home Assistant.
- **hosts** (*Optional*): Configuration for each Hub (CCU/Homegear) to integrate into Home Assistant.
- **local_ip** (*Optional*): IP of device running Home Assistant. Override auto-detected value for exotic network setups.
- **local_port** (*Optional*): Port for connection with Home Assistant. By default it is randomly assigned.
Configuration variables (host):
Configuration variables (interface):
- **ip** (*Required*): IP address of CCU/Homegear device.
- **host** (*Required*): IP address or Hostname of CCU/Homegear device or Hass.io add-on.
- **port** (*Optional*): Port of CCU/Homegear XML-RPC Server. Wireless: 2001, wired: 2000, IP: 2010, thermostatgroups: 9292.
- **callback_ip** (*Optional*): Set this, if Home Assistant is reachable under a different IP from the CCU (NAT, Docker etc.).
- **callback_port** (*Optional*): Set this, if Home Assistant is reachable under a different port from the CCU (NAT, Docker etc.).
- **resolvenames** (*Optional*): [`metadata`, `json`, `xml`] Try to fetch device names. Defaults to `false` if not specified.
- **username** (*Optional*): When fetching names via JSON-RPC, you need to specify a user with guest-access to the CCU.
- **password** (*Optional*): When fetching names via JSON-RPC, you need to specify the password of the user you have configured above.
- **primary** (*Optional*): Set to `true` when using multiple hosts and this host should provide the services and variables.
- **variables** (*Optional*): Set to `true` if you want to use CCU2/Homegear variables. Should only be enabled for the primary host. When using a CCU credentials are required.
- **path** (*Optional*): Set to `/groups` when using port 9292.
Configuration variables (host):
- **host** (*Required*): IP address of CCU/Homegear device.
- **username** (*Optional*): When fetching names via JSON-RPC, you need to specify a user with guest-access to the CCU.
- **password** (*Optional*): When fetching names via JSON-RPC, you need to specify the password of the user you have configured above.
#### Example configuration with multiple protocols and some other options set:
```yaml
homematic:
hosts:
interfaces:
rf:
ip: 127.0.0.1
host: 127.0.0.1
resolvenames: json
username: Admin
password: secret
primary: true
variables: true
wired:
ip: 127.0.0.1
host: 127.0.0.1
port: 2000
resolvenames: json
username: Admin
password: secret
ip:
ip: 127.0.0.1
host: 127.0.0.1
port: 2010
groups:
ip: 127.0.0.1
host: 127.0.0.1
port: 9292
resolvenames: json
username: Admin
password: secret
path: /groups
hosts:
ccu2:
host: 127.0.0.1
username: Admin
password: secret
```
### {% linkable_title The `resolvenames` option %}
@ -115,7 +126,7 @@ sensor:
### {% linkable_title Variables %}
It is possible to read and set values of system variables you have setup on the CCU/Homegear. The supported types for setting values are float- and bool-variables.
The states of the variables are available through the attributes of your hub entity (e.g. `homematic.rf`). Use templates (as mentioned above) to make your variables available to automations or as entities.
The states of the variables are available through the attributes of your hub entity (e.g. `homematic.ccu2`). Use templates (as mentioned above) to make your variables available to automations or as entities.
The values of variables are polled from the CCU/Homegear in an interval of 30 seconds. Setting the value of a variable happens instantly and is directly pushed.
### {% linkable_title Events %}
@ -154,8 +165,8 @@ The name depends on if you chose to resolve names or not. If not, it will be the
* *homematic.virtualkey*: Simulate a keypress (or other valid action) on CCU/Homegear with device or virtual keys.
* *homematic.reconnect*: Reconnect to CCU/Homegear without restarting Home Assistant (useful when CCU has been restarted)
* *homematic.set_var_value*: Set the value of a system variable.
* *homematic.set_dev_value*: Control a device manually (even devices without support). Equivalent to setValue-method from XML-RPC.
* *homematic.set_variable_value*: Set the value of a system variable.
* *homematic.set_device_value*: Control a device manually (even devices without support). Equivalent to setValue-method from XML-RPC.
#### {% linkable_title Examples %}
Simulate a button being pressed
@ -184,9 +195,9 @@ Set boolean variable to true
```yaml
...
action:
service: homematic.set_var_value
service: homematic.set_variable_value
data:
entity_id: homematic.rf
entity_id: homematic.ccu2
name: Variablename
value: true
```
@ -200,7 +211,7 @@ Manually turn on a switch actor
```yaml
...
action:
service: homematic.set_dev_value
service: homematic.set_device_value
data:
address: LEQ1234567
channel: 1
@ -212,7 +223,7 @@ Manually set temperature on thermostat
```yaml
...
action:
service: homematic.set_dev_value
service: homematic.set_device_value
data:
address: LEQ1234567
channel: 4

View File

@ -0,0 +1,145 @@
---
layout: page
title: "Philips Hue"
description: "Instructions on setting up Philips Hue within Home Assistant."
date: 2017-11-29 23:51
sidebar: true
comments: false
sharing: true
footer: true
logo: philips_hue.png
ha_category: Hub
ha_iot_class: "Local Polling"
featured: true
ha_release: 0.60
---
Philips Hue support is integrated into Home Assistant as a Hub that can drive the light platform. The preferred way to setup the Philips Hue platform is by enabling the [discovery component](/components/discovery/).
Once discovered, if you have a custom default view, locate `configurator.philips_hue` in the entities list ( < > ) and add it to a group in `configuration.yaml`. Restart Home Assistant so that the configurator is visible in the Home Assistant dashboard. Once Home Assistant is restarted, locate and click on `configurator.philips_hue` to bring up the initiation dialog. This will prompt you to press the Hue button to register the Hue hub in Home Assistant. Once complete, the configurator entity isn't needed anymore and can be removed from any visible group in `configuration.yaml`.
When you configure the Hue bridge from Home Assistant, it writes a token to a file in your Home Assistant [configuration directory](/docs/configuration/). That token authenticates the communication with the Hue bridge. This token uses the Address of the Hue Bridge. If the IP address for the Hue Bridge changes, you will need to register the Hue Bridge with Home Assistant again. To avoid this you may set up DHCP registration for your Hue Bridge, so that it always has the same IP address.
Once registration is complete you should see the Hue lights listed as "light" entities; if you don't you may have to restart Home Assistant once more. Add these light entities to configuration.yaml and restart Home Assistant once more to complete the installation.
If you want to enable the component without relying on the [discovery component](/components/discovery/), add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
hue:
bridges:
- host: DEVICE_IP_ADDRESS
```
Configuration variables:
- **host** (*Optional*): IP address of the device, eg. 192.168.1.10. Required if not using the `discovery` component to discover Hue bridges.
- **allow_unreachable** (*Optional*): (true/false) This will allow unreachable bulbs to report their state correctly.
- **filename** (*Optional*): Make this unique if specifying multiple Hue hubs.
- **allow_in_emulated_hue** (*Optional*): )true/false) Enable this to block all Hue entities from being added to the `emulated_hue` component.
- **allow_hue_groups** (*Optional*): (true/false) Enable this to stop Home Assistant from importing the groups defined on the Hue bridge.
### {% linkable_title Migrating from older configuration %}
In previous versions of the Hue component the configuration looked different:
```yaml
# Example configuration.yaml entry
light:
- platform: hue
host: DEVICE_IP_ADDRESS
```
You will need to convert each bridge into an entry in the new configuration style. See above for an example.
### {% linkable_title Multiple Hue bridges %}
Multiple Hue bridges work transparently with discovery, you don't have to do anything. If you prefer to configure them manually and use multiple Hue bridges then it's needed that you provide a configuration file for every bridge. The bridges can't share a single configuration file.
Add `filename` to your Hue configuration entry in your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
hue:
bridges:
- host: BRIDGE1_IP_ADDRESS
filename: phue.conf
- platform: hue
host: BRIDGE2_IP_ADDRESS
filename: phue2.conf
```
### {% linkable_title Using Hue Groups in Home Assistant %}
The Hue API allows you to group lights. Home Assistant also supports grouping of entities natively, but sometimes it can be useful to use Hue Groups to group light bulbs. By doing so, Home Assistant only needs to send one API call to change the state of all the bulbs in those groups instead of one call for every light in the group. This causes all the bulbs to change state simultaneously.
These Hue Groups can be a `Luminaire`, `Lightsource`, `LightGroup` or `Room`. The `Luminaire` and `Lightsource` can't be created manually since the Hue bridge manages these automatically based on the discovered bulbs. The `Room` and `LightGroup` can be created manually through the API, or the mobile app. A bulb can only exist in one `Room`, but can exist in multiple `LightGroup`. The `LightGroup` can be useful to link certain bulbs together since.
The 2nd generation Hue app only allows to create a `Room`. You need to use the first generation app or the API to create a `LightGroup`.
Example:
To create a `LightGroup` named `Ceiling lights` that contains the lights 1, 2 and 3, execute the following command:
```bash
$ curl -XPOST -d '{"name": "Ceiling lights", "lights": ["1", "2", "3"]}' http://<bridge>/api/<username>/groups
```
The `<username>` is the string that is used to register Home Assistant on the bridge, you can find it in the `phue.conf` file in your configuration path. `<bridge>` is the IP address or hostname of your Hue bridge.
You can find out the ids of your lights by executing the following command:
```bash
$ curl http://<bridge>/api/<username>/lights
```
Home Assistant will automatically detect your new `LightGroup` and add it to the interface.
<p class='note warning'>
To support Hue Light Groups, your bridge needs to have at least firmware 1.13 (released on June 3, 2016).
</p>
More information can be found on the [Philips Hue API documentation](https://www.developers.meethue.com/documentation/groups-api#22_create_group) website.
### {% linkable_title Using Hue Scenes in Home Assistant %}
The Hue platform has it's own concept of scenes for setting the colors of a group of lights at once. Hue Scenes are very cheap, get created by all kinds of apps (as it is the only way to have 2 or more lights change at the same time), and are rarely deleted. A typical Hue hub might have hundreds of scenes stored in them, many that you've never used, almost all very poorly named.
To avoid user interface overload we don't expose scenes directly. Instead there is a [light.hue_activate_scene](/components/light/#service-lighthue_activate_scene) service which can be used by `automation` or `script` components.
This will have all the bulbs transitioned at once, instead of one at a time using standard scenes in Home Assistant.
For instance:
```yaml
script:
porch_on:
sequence:
- service: light.hue_activate_scene
data:
group_name: "Porch"
scene_name: "Porch Orange"
```
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `group_name` | no | The group/room name of the lights. Find this in the Hue official app.
| `scene_name` | no | The name of the scene. Find this in the Hue official app.
*Note*: `group_name` is not linked to Home Assistant group name.
*** Finding Group and Scene Names ***
How do you find these names?
The easiest way to do this is only use the scenes from the 2nd generation Hue app. That is organized by room (group) and scene Name. Use the values of room name and scene name that you see in the app. You can test these work on the `dev-service` console of your Home Assistant instance.
Alternatively, you can dump all rooms and scene names using this [gist](https://gist.github.com/sdague/5479b632e0fce931951c0636c39a9578). This does **not** tell you which groups and scenes work together but it's sufficient to get values that you can test in the `dev-service` console.
*** Caveats ***
The Hue API doesn't activate scenes directly, only on a Hue Group (typically rooms, especially if using the 2nd gen app). But Hue Scenes don't actually reference their group. So heuristic matching is used.
Neither group names or scene names are guaranteed unique in Hue. If you are getting non deterministic behavior, adjust your Hue scenes via the App to be more identifying.
The Hue hub has limited spaces for scenes, and will delete scenes if new ones get created that would overflow that space. The API docs say this is based on "Least Recently Used".

View File

@ -34,12 +34,54 @@ Configuration variables:
- **host** (*Required*): The host entry should be in full URL format, eg. http://192.168.10.100:80
- **username** (*Required*): The username that used to access the ISY interface.
- **password** (*Required*): The password that used to access the ISY interface.
- **sensor_string** (*Optional*): This is the string that is used to identify which devices are to be assumed to be sensors instead of lights of switches. By default, this string is 'sensor'. If this string is found in the device name or folder, Home Assistant will assume it is as a sensor or binary sensor (if the device has on/off or true/false states).
- **sensor_string** (*Optional*): This is the string that is used to identify which devices are to be assumed to be sensors instead of lights of switches. By default, this string is 'sensor'. If this string is found in the device name or folder, Home Assistant will assume it is as a sensor or binary sensor (if the device has on/off or true/false states). This is only necessary for nodes that are not automatically detected as sensors by Home Assistant. Insteon door, window, motion and leak sensors should all be detected automatically.
- **hidden_string** (*Optional*): The HIDDEN_STRING is a string that is used to identify which devices are to be hidden on Home Assistant's front page. This string will be stripped from the device's name before being used. By default, this value is '{HIDE ME}'.
- **tls** (*Optional*): This entry should reflect the version of TLS that the ISY controller is using for HTTPS encryption. This value can be either 1.1 or 1.2. If this value is not set, it is assumed to be version 1.1. This is the default for most users. ISY994 Pro users may likely be using 1.2. When using HTTPS in the host entry, it is best practice to set this value.
Once the ISY controller is configured, it will automatically import any binary sensors, covers, fans, lights, locks, sensors and switches it can locate.
### {% linkable_title Sensors %}
An Insteon door/window sensor will show up as a single Binary Sensor rather than two discrete devices like it does in the ISY994 admin panel. Note that when in "Two Nodes" mode, the sensor will have an UNKNOWN state until the sensor changes for the first time since the last Home Assistant reboot. If you do not use Insteon scenes that are controlled directly from the door sensor, you may prefer to set the sensor to "One Node" mode using the ISY Admin Panel.
Each Insteon leak sensor will also show up as a single Binary Sensor as opposed to the two nodes seen in the ISY994. The name of the device will be based on what the parent node is named in the ISY994, which is typically the one with "-Dry" at the end of the name. This may be confusing, because "On" means wet in Home Assistant. You can rename this node either in the ISY994 Admin Panel (which will change the entity_id in Home Assistant) or assign a `friendly_name` in the [Customization section](https://home-assistant.io/docs/configuration/customizing-devices/) of your configuration.
If your leak or door/window sensor supports heartbeats, a new binary_sensor device will be added to Home Assistant to represent the battery state. The sensor will stay "Off" so long as the daily heartbeats occur. If a heartbeat is missed, the sensor will flip to "On". The name of this device will be based on the heartbeat node in the ISY.
### {% linkable_title Handling Insteon Control Events %}
A Home Assistant `isy994_control` event is emitted for every "control" event in the Insteon network. This allows you to write automations that trigger based on Insteon button presses. You can also trigger off of the unique Insteon events, such as double-presses, long-holds etc.
```yaml
automation:
- alias: turn off living room on double tap lightswitch
trigger:
platform: event
event_type: isy994_control
event_data:
entity_id: light.lr_track_lights_front
control: 'DFOF'
action:
service: light.turn_off
entity_id: light.lr_track_lights_rear
```
All `isy994_control` events will have an `entity_id` and `control` parameter in its `event_data`. You'll need to refer to ISY994 documentation for the list of every possible control type, but the common ones are:
- `DON`: On button
- `DOF`: Off button
- `DFON`: "Fast On", usually from double-tapping an On button
- `DFOF`: "Fast Off", usually from double-tapping an Off button
- `FDUP`: "Fade Up", usually while holding down an On button
- `FDDOWN`: "Fade Down", usually while holding down an Off button
- `FDSTOP`: "Fade Stop", when releasing a long-held button
- `BRT`: "Brighten", from controllers that issue a single command to slightly brighten a light
- `DIM`: "Dim", from controllers that issue a single command to slightly dim a light
### {% linkable_title Insteon Scenes %}
All Insteon scenes configured in the ISY994 will show up as switches in Home Assistant.
### {% linkable_title Creating Custom Devices %}
Using the Programs tab in the controller's Administrative Console, custom devices can be created that will appear natively inside of Home Assistant. Home Assistant will scan the following folders and build the device to the associated domains:

View File

@ -0,0 +1,42 @@
---
layout: page
title: "ADS Light"
description: Instructions how to set up ADS lights within Home Assistant
date: 2017-10-25 10:00
sidebar: true
comments: false
sharing: true
footer: true
logo: beckhoff.png
ha_category: Light
ha_release: "0.60"
ha_iot_class: "Local Push"
---
The `ads` light platform allows you to control your connecte ADS lights.
To use your ADS device, you first have to set up your [ADS hub](/components/ads/) and then add the following to your `configuration.yaml`
file:
```yaml
# Example configuration.yaml entry
light:
- platform: ads
adsvar: GVL.enable_light
adsvar_brightness: GVL.brightness
```
{% configuration %}
adsvar:
required: true
description: The name of the boolean variable that switches the light on
type: string
adsvar_brightness:
required: false
description: The name of the variable that controls the brightness, use an unsigned integer on the PLC side
type: integer
name:
required: false
description: An identifier for the Light in the frontend
type: string
{% endconfiguration %}

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Philips Hue"
description: "Instructions how to setup Philips Hue within Home Assistant."
title: "Philips Hue Light"
description: "Instructions how to integrate Philips Hue lights into Home Assistant."
date: 2015-03-23 20:09
sidebar: true
comments: false
@ -14,119 +14,8 @@ featured: true
ha_release: pre 0.7
---
Philips Hue support is integrated into Home Assistant as a light platform. The preferred way to setup the Philips Hue platform is by enabling the [discovery component](/components/discovery/).
The Philips Hue light platform allows you to control your Philips Hue lights.
Once discovered, if you have a custom default view, locate `configurator.philips_hue` in the entities list ( < > ) and add it to a group in `configuration.yaml`. Restart Home Assistant so that the configurator is visible in the Home Assistant dashboard. Once Home Assistant is restarted, locate and click on `configurator.philips_hue` to bring up the initiation dialog. This will prompt you to press the Hue button to register the Hue hub in Home Assistant. Once complete, the configurator entity isn't needed anymore and can be removed from any visible group in `configuration.yaml`.
This component will automatically add `Lights` configured on your Hue bridges.
When you configure the Hue bridge from Home Assistant, it writes a token to a file in your Home Assistant [configuration directory](/docs/configuration/). That token authenticates the communication with the Hue bridge. This token uses the IP Address of the Hue Bridge. If the IP address for the Hue Bridge changes, you will need to register the Hue Bridge with Home Assistant again. To avoid this you may set up DHCP registration for your Hue Bridge, so that it always has the same IP address.
Restarting Home Assistant once more should result in the Hue lights listed as "light" entities. Add these light entities to configuration.yaml and restart Home Assistant once more to complete the installation.
If you want to enable the component without relying on the [discovery component](/components/discovery/), add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
light:
- platform: hue
host: DEVICE_IP_ADDRESS
```
Configuration variables:
- **host** (*Optional*): IP address of the device, eg. 192.168.1.10. Required if not using the `discovery` component to discover Hue bridges.
- **allow_unreachable** (*Optional*): (true/false) This will allow unreachable bulbs to report their state correctly.
- **filename** (*Optional*): Make this unique if specifying multiple Hue hubs.
- **allow_in_emulated_hue** (*Optional*): )true/false) Enable this to block all Hue entities from being added to the `emulated_hue` component.
- **allow_hue_groups** (*Optional*): (true/false) Enable this to stop Home Assistant from importing the groups defined on the Hue bridge.
### {% linkable_title Multiple Hue bridges %}
If you use multiple Hue bridges then it's needed that you provide a configuration file for every bridge. The bridges can't share a single configuration file.
Add `filename` to your Hue configuration entry in your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
light:
- platform: hue
host: BRIDGE1_IP_ADDRESS
filename: phue.conf
- platform: hue
host: BRIDGE2_IP_ADDRESS
filename: phue2.conf
```
### {% linkable_title Using Hue Groups in Home Assistant %}
The Hue API allows you to group lights. Home Assistant also supports grouping of entities natively, but sometimes it can be useful to use Hue Groups to group light bulbs. By doing so, Home Assistant only needs to send one API call to change the state of all the bulbs in those groups instead of one call for every light in the group. This causes all the bulbs to change state simultaneously.
These Hue Groups can be a `Luminaire`, `Lightsource`, `LightGroup` or `Room`. The `Luminaire` and `Lightsource` can't be created manually since the Hue bridge manages these automatically based on the discovered bulbs. The `Room` and `LightGroup` can be created manually through the API, or the mobile app. A bulb can only exist in one `Room`, but can exist in multiple `LightGroup`. The `LightGroup` can be useful to link certain bulbs together since.
The 2nd generation Hue app only allows to create a `Room`. You need to use the first generation app or the API to create a `LightGroup`.
Example:
To create a `LightGroup` named `Ceiling lights` that contains the lights 1, 2 and 3, execute the following command:
```bash
$ curl -XPOST -d '{"name": "Ceiling lights", "lights": ["1", "2", "3"]}' http://<bridge>/api/<username>/groups
```
The `<username>` is the string that is used to register Home Assistant on the bridge, you can find it in the `phue.conf` file in your configuration path. `<bridge>` is the IP address or hostname of your Hue bridge.
You can find out the ids of your lights by executing the following command:
```bash
$ curl http://<bridge>/api/<username>/lights
```
Home Assistant will automatically detect your new `LightGroup` and add it to the interface.
<p class='note warning'>
To support Hue Light Groups, your bridge needs to have at least firmware 1.13 (released on June 3, 2016).
</p>
More information can be found on the [Philips Hue API documentation](https://www.developers.meethue.com/documentation/groups-api#22_create_group) website.
### {% linkable_title Using Hue Scenes in Home Assistant %}
The Hue platform has it's own concept of scenes for setting the colors of a group of lights at once. Hue Scenes are very cheap, get created by all kinds of apps (as it is the only way to have 2 or more lights change at the same time), and are rarely deleted. A typical Hue hub might have hundreds of scenes stored in them, many that you've never used, almost all very poorly named.
To avoid user interface overload we don't expose scenes directly. Instead there is a [light.hue_activate_scene](/components/light/#service-lighthue_activate_scene) service which can be used by `automation` or `script` components.
This will have all the bulbs transitioned at once, instead of one at a time using standard scenes in Home Assistant.
For instance:
```yaml
script:
porch_on:
sequence:
- service: light.hue_activate_scene
data:
group_name: "Porch"
scene_name: "Porch Orange"
```
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `group_name` | no | The group/room name of the lights. Find this in the Hue official app.
| `scene_name` | no | The name of the scene. Find this in the Hue official app.
*Note*: `group_name` is not linked to Home Assistant group name.
*** Finding Group and Scene Names ***
How do you find these names?
The easiest way to do this is only use the scenes from the 2nd generation Hue app. That is organized by room (group) and scene Name. Use the values of room name and scene name that you see in the app. You can test these work on the `dev-service` console of your Home Assistant instance.
Alternatively, you can dump all rooms and scene names using this [gist](https://gist.github.com/sdague/5479b632e0fce931951c0636c39a9578). This does **not** tell you which groups and scenes work together but it's sufficient to get values that you can test in the `dev-service` console.
*** Caveats ***
The Hue API doesn't activate scenes directly, only on a Hue Group (typically rooms, especially if using the 2nd gen app). But Hue Scenes don't actually reference their group. So heuristic matching is used.
Neither group names or scene names are guaranteed unique in Hue. If you are getting non deterministic behavior, adjust your Hue scenes via the App to be more identifying.
The Hue hub has limited spaces for scenes, and will delete scenes if new ones get created that would overflow that space. The API docs say this is based on "Least Recently Used".
The requirement is that you have setup your [Philips Hue bridge](/components/hue/).

View File

@ -0,0 +1,38 @@
---
layout: page
title: "Logitech UE Smart Radio"
description: "Instructions on how to integrate a Logitech UE Smart Radio player into Home Assistant."
date: 2017-12-09 20:00
sidebar: true
comments: false
sharing: true
footer: true
logo: ueradio.png
ha_category: Media Player
ha_release: "0.60"
ha_iot_class: "Cloud Polling"
---
The `ue_radio` platform allows you to control a [Logitech UE Smart Radio](https://www.uesmartradio.com) from Home Assistant. This lets you control both Logitech UE Smart Radios and Logitech Squeezebox Radios that have been updated with the UE Smart Radio update.
To add your UE Smart Radio player to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
media_player:
- platform: ue_smart_radio
username: USERNAME
password: PASSWORD
```
{% configuration %}
username:
description: The email you use to log in to `uesmartradio.com`.
required: true
type: string
password:
description: The password you use to log in to `uesmartradio.com`.
required: true
type: string
{% endconfiguration %}

View File

@ -0,0 +1,43 @@
---
layout: page
title: "Ziggo Mediabox XL"
description: "Instructions how to integrate the Ziggo Mediabox XL into Home Assistant."
date: 2017-11-10 20:00
sidebar: true
comments: false
sharing: true
footer: true
logo: ziggo.png
ha_category: Media Player
ha_iot_class: "Local Polling"
ha_release: "0.60"
---
The `ziggo_mediabox_xl` component allows you to control a [Ziggo](https://www.ziggo.nl/) Mediabox XL from Home Assistant.
To add a Ziggo Mediabox XL to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
media_player:
- platform: ziggo_mediabox_xl
host: 192.168.0.123
name: Ziggo Mediabox
```
{% configuration %}
host:
description: The hostname or address of the device.
required: true
type: string
name:
description: The name of the device used in the frontend.
required: false
type: string
{% endconfiguration %}
The channel information (numbers and names) are downloaded from ziggo.nl on startup.
#### {% linkable_title Preparation of the Mediabox %}
Makes sure to enable the Home Network ("mijn thuisnetwerk") service in the settings menu of the media box. Once you have set up the Media Library ("mediabiblotheek"), we can determine whether the device is turned on or off. Without this, the component will fail to start.

View File

@ -14,9 +14,11 @@ ha_iot_class: "Local Polling"
---
Notification platform for [Notifications for Android TV](https://play.google.com/store/apps/details?id=de.cyberdream.androidtv.notifications.google&hl=en) and [Notifications for FireTV](https://play.google.com/store/apps/details?id=de.cyberdream.firenotifications.google).
Notification platform for [Notifications for Android TV](https://play.google.com/store/apps/details?id=de.cyberdream.androidtv.notifications.google) and [Notifications for FireTV](https://play.google.com/store/apps/details?id=de.cyberdream.firenotifications.google).
The notifications are in the global scope of your Android TV device. They will be displayed regardless of which application is running.
The In-App purchases only apply to the client for Android smartphones, so there isn't any limit when pushing notifications from Home Assistant.
When setting this up be aware, that there are two apps: one for your smartphone to send notifications (not required for this platform) and one for your Android TV device to receive the notifications. The app available in the store of your target device is the one that is needed to display notifications sent from Home Assistant. The In-App purchases only apply to the client for Android smartphones, so there isn't any limit when pushing notifications from Home Assistant.
To enable the notification platform, add the following to your `configuration.yaml` file:
@ -50,7 +52,7 @@ This is a fully customized JSON you can use to test how the final notification w
"duration":2,
"transparency":"0%",
"color": "red",
"interrupt": 1
"interrupt": 1,
}
}
```

View File

@ -0,0 +1,21 @@
---
layout: page
title: "Vera Scene"
description: "Instructions on how to integrate Vera Scenes into Home Assistant."
date: 2017-11-20 20:00
sidebar: true
comments: false
sharing: true
footer: true
logo: vera.png
ha_category: Scene
ha_iot_class: "Local Push"
ha_release: "0.60"
---
The `vera` platform allows you to control your [Vera](http://getvera.com/) scenes from within Home Assistant.
They will be automatically discovered if the `vera` component is loaded.
For more configuration information see the [Vera component](/components/vera/) documentation.

View File

@ -0,0 +1,51 @@
---
layout: page
title: "ADS Sensor"
description: "Instructions how to integrate ADS numeric values into Home Assistant."
date: 2017-10-25 10:00
sidebar: true
comments: false
sharing: true
footer: true
logo: beckhoff.png
ha_category: Sensor
ha_release: "0.60"
ha_iot_class: "Local Push"
---
The `ads` sensor platform allows reading the value of a numeric variable on your ADS device. The variable can be of type *INT*, *UINT* or *BYTE*.
To use your ADS device, you first have to set up your [ADS hub](/components/ads/) and then add the following to your `configuration.yaml`
file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: ads
adsvar: GVL.temperature
unit_of_measurement: '°C'
adstype: int
```
{% configuration %}
adsvar:
required: true
description: The name of the variable which you want to access.
type: string
adstype:
required: false
description: The datatype of the ADS variable, possible values are int, uint, byte.
default: int
type: string
name:
required: false
description: An identifier for the sensor.
type: string
factor:
required: false
description: A factor that divides the stored value before displaying in Home Assistant.
default: 1
type: integer
{% endconfiguration %}
The *factor* can be used to implement fixed decimals. E.g., set *factor* to 100 if you want to display a fixed decimal value with two decimals. A variable value of `123` will be displayed as `1.23`.

View File

@ -0,0 +1,53 @@
---
layout: page
title: "Alpha Vantage"
description: "Instructions how to setup Alpha Vantage within Home Assistant."
date: 2017-12-02 12:00
sidebar: true
comments: false
sharing: true
footer: true
logo: alpha_vantage.png
ha_category: Finance
ha_iot_class: "Cloud Polling"
featured: false
ha_release: "0.60"
---
The `alpha_vantage` sensor platform uses [Alpha Vantage](https://www.alphavantage.co) to monitor the stock market.
To enable the `yahoo_finance` platform, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: alpha_vantage
api_key: YOUR_API_KEY
```
{% configuration %}
api_key:
description: "The API Key from [Alpha Vantage](https://www.alphavantage.co)."
required: true
type: string
symbols:
description: List of stock market symbols for given companies.
required: false
type: string, list
default: GOOGL
{% endconfiguration %}
## {% linkable_title Examples %}
In this section you find some real life examples of how to use this sensor.
### {% linkable_title Red Hat and Google %}
```yaml
sensor:
- platform: yahoo_finance
symbols:
- RHT
- GOOGL
```

View File

@ -0,0 +1,24 @@
---
layout: page
title: "Canary Sensor"
description: "Instructions on how to integrate your Canary devices into Home Assistant."
date: 2017-12-07 22:00
sidebar: true
comments: false
sharing: true
footer: true
logo: canary.png
ha_category: Sensor
ha_release: "0.60"
ha_iot_class: "Cloud Polling"
---
The `canary` sensor platform allows you to integrate the sensors of your [Canary](https://canary.is) devices in Home Assistant.
To add `canary` sensors to your installation, follow instructions in [Canary component](/components/canary/).
Once loaded, you will see following sensors:
* A sensor per camera that reports temperature.
* A sensor per camera that reports humidity.
* A sensor per camera that reports air quality.

View File

@ -0,0 +1,72 @@
---
layout: page
title: "Gearbest"
description: "Instructions on how to integrate a Gearbest sensor into Home Assistant."
date: 2017-11-13 09:08
sidebar: true
comments: false
sharing: true
footer: true
logo: gearbest.png
ha_category: Sensor
ha_iot_class: "Cloud Polling"
ha_release: "0.60"
---
The `gearbest` sensor will track the price of a product from [Gearbest](https://www.gearbest.com). This information can be used in, e.g., automations to notify you when a price drops. The update interval for every item is currently set to 2 hours.
To enable this sensor, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: gearbest
currency: EUR
items:
- url: https://www.gearbest.com/....
```
{% configuration %}
currency:
description: "The currency in which the products should be tracked. Currently supported: USD, EUR, GBP, AUD, CAD, CHF, HKD, CNY, NZD, JPY, RUB, BRL, CLP, NOK, DKK, SEK, KRW, ILS, COP, MXN, PEN, THB, IDR, UAH, PLN, INR, BGN, HUF, RON, TRY, CZK, HRK, MAD, AED, SAR, ZAR, SGD, MYR, TWD, RSD, NGN - if the currency could not be found in the conversion rate list, USD will be used as default. Either an ID or an URL must be present."
required: true
type: string
items:
description: List of products that should be tracked.
required: true
type: map
keys:
id:
description: The ID of the product.
required: false
type: int
url:
description: The URL of the product.
required: false
type: string
name:
description: The name of the item. If not set, it is parsed from the website.
required: false
type: string
currency:
description: Overwrite the currency for the current item.
required: false
type: string
{% endconfiguration %}
### {% linkable_title Extended example %}
```yaml
# Example configuration.yaml entry
sensor:
- platform: gearbest
currency: EUR
items:
- url: https://www.gearbest.com/3d-printers-3d-printer-kits/pp_779174.html?wid=21
name: Creality CR-10 upgraded
currency: USD
- id: 779174
name: Creality CR-10 upgraded #2
currency: EUR
```

View File

@ -45,16 +45,6 @@ sensor:
required: false
default: Luftdaten Sensor
type: string
resource:
description: The URL of the API endpoint. Usually this has not to be changed.
required: false
default: https://api.luftdaten.info/v1/sensor/
type: string
verify_ssl:
description: Verify SSL connection.
required: false
default: true
type: boolean
monitored_conditions:
description: A list of conditions you want to monitor.
required: true
@ -65,8 +55,15 @@ sensor:
P2:
description: Show the particle sensors (particles 2.5 microns and below).
temperature:
description: Display the temperature from a weather sensor.
description: Display the temperature from the sensor.
humidity:
description: Display the humidity from a weather sensor.
description: Display the humidity from the sensor.
pressure:
description: Display the pressure from the sensor.
{% endconfiguration %}
Not all sensors provide all conditions. Also, it's possible that the sensor values are not available all the time. To check what a sensor is publishing use `curl`:
```bash
$ curl https://api.luftdaten.info/v1/sensor/[sensorid]/
```

View File

@ -89,6 +89,11 @@ json_attributes:
description: A list of keys to extract values from a JSON dictionary result and then set as sensor attributes.
reqired: false
type: list, string
force_update:
description: Sends update events even if the value hasn't changed. Useful if you want to have meaningful value graphs in history.
reqired: false
type: boolean
default: False
{% endconfiguration %}
<p class='note warning'>

View File

@ -15,7 +15,7 @@ ha_release: 0.29
---
<p class='note warning'>
This sensor doesn't work anymore as [Yahoo!](https://yahoo.uservoice.com/forums/382977-finance/suggestions/32103877-yahoo-stock-quote-api-please-bring-back) decommissioned the service in early November 2017.
This sensor doesn't work anymore as [Yahoo!](https://yahoo.uservoice.com/forums/382977-finance/suggestions/32103877-yahoo-stock-quote-api-please-bring-back) decommissioned the service in early November 2017. A repleacement is the [`alpha_vantage` sensor](/components/sensor.alpha_vantage/).
</p>
The `yahoo_finance` platform uses [Yahoo Finance](https://finance.yahoo.com/) to monitor the stock market.

View File

@ -12,26 +12,40 @@ ha_category: Voice
ha_release: 0.48
---
The [Snips Voice Platform](https://www.snips.ai) allows users to add powerful voice assistants to their Raspberry Pi devices without compromising on Privacy. It runs 100% on-device, and does not require an Internet connection. It features Hotword Detection, Automatic Speech Recognition (ASR), Natural Language Understanding (NLU) and Dialog Management.
The [Snips Voice Platform](https://www.snips.ai) allows users to add powerful voice assistants to their Raspberry Pi devices without compromising on privacy. It runs 100% on-device, and does not require an internet connection. It features Hotword Detection, Automatic Speech Recognition (ASR), Natural Language Understanding (NLU) and Dialog Management.
The latest documentation can be found here: [Snips Platform Documentation](https://github.com/snipsco/snips-platform-documentation/wiki).
![Snips Modules](/images/screenshots/snips_modules.png)
Snips takes voice or text as input, and produces *intents* as output, which are explicit representations of an intention behind an utterance, and which can subsequently be used by Home Assistant to perform appropriate actions.
Snips takes voice or text as input and produces *intents* as output, which are explicit representations of an intention behind an utterance and which can subsequently be used by Home Assistant to perform appropriate actions.
![Snips Modules](/images/screenshots/snips_nlu.png)
## {% linkable_title The Snips Voice Platform %}
### Installation
### {% linkable_title Installation %}
The Snips Voice Platform is installed on Raspberry Pi with the following command:
The Snips Voice Platform is installed as a Docker image on Raspberry Pi with the following command:
```sh
```bash
(pi) $ curl https://install.snips.ai -sSf | sh
```
### Creating an assistant
Snips can also be installed on a Debian/Ubuntu machine as well:
```bash
$ sudo apt-get update
$ sudo apt-get install -y dirmngr
$ sudo bash -c 'echo "deb https://debian.snips.ai/$(lsb_release -cs) stable main" > /etc/apt/sources.list.d/snips.list'
$ sudo apt-key adv --keyserver pgp.mit.edu --recv-keys F727C778CCB0A455
$ sudo apt-get update
$ sudo apt-get install -y snips-platform-voice
```
### {% linkable_title Creating an assistant %}
<div class='videoWrapper'>
<iframe src="https://player.vimeo.com/video/223255884" width="700" height="380" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
@ -39,26 +53,34 @@ The Snips Voice Platform is installed on Raspberry Pi with the following command
Snips assistants are created via the [Snips Console](https://console.snips.ai). Once trained, the assistant should be downloaded and copied to the Raspberry Pi:
```sh
```bash
$ scp assistantproj_XXX.zip pi@pi_hostname:/home/pi/assistant.zip
```
and installed locally via the `snips-install-assistant` helper script:
```sh
```bash
(pi) $ sudo snips-install-assistant assistant.zip
```
### Running Snips
### {% linkable_title Running Snips %}
Make sure that a microphone is plugged to the Raspberry Pi. If you are having trouble setting up audio, we have written a guide on [Raspberry Pi Audio Configuration](https://github.com/snipsco/snips-platform-documentation/wiki/1.-Setup-the-Snips-Voice-Platform-on-your-Raspberry-Pi#configuring-the-audio).
Start the Snips Voice Platform using the `snips` command:
```sh
Raspberry Pi:
```bash
(pi) $ snips
```
Debian/Ubuntu:
```bash
$ sudo systemctl start "snips-*"
```
Snips is now ready to take voice commands from the microphone. To trigger the listening, simply say
> Hey Snips
@ -67,23 +89,32 @@ followed by a command, e.g.
> Set the lights to green in the living room
We should see the transcribed phrase in the logs, as well as a properly parsed intent. The intent is published on MQTT, on the `hermes/nlu/intentParsed` topic. The Snips Home Assistant component subscribes to this topic, and handles the intent according to the rules defined in `configuration.yaml`, as explained below.
We should see the transcribed phrase in the logs, as well as a properly parsed intent. The intent is published on MQTT, on the `hermes/intent/<slotName>` topic. The Snips Home Assistant component subscribes to this topic, and handles the intent according to the rules defined in `configuration.yaml`, as explained below.
#### Optional: specifying an external MQTT broker
#### {% linkable_title Optional: specifying an external MQTT broker %}
By default, Snips runs its own MQTT broker. But we can also tell Snips to use an external broker by specifying this when launching Snips. In this case, instead of running the `snips` command above (which assumes we are using the internal MQTT broker), we use the full launch command with explicitly specified parameters (replace `MQTT_BROKER_IP` and `MQTT_BROKER_PORT` with appropriate values):
Raspberry Pi:
```sh
$ docker run -t --rm --name snips --log-driver none -v /home/pi/.asoundrc:/root/.asoundrc -v /opt/snips/config:/opt/snips/config --privileged -v /dev/snd:/dev/snd snipsdocker/platform --mqtt MQTT_BROKER_IP:MQTT_BROKER_PORT
$ docker run -t --rm --name snips --log-driver none \
-v /home/pi/.asoundrc:/root/.asoundrc \
-v /opt/snips/config:/opt/snips/config \
--privileged -v /dev/snd:/dev/snd snipsdocker/platform \
--mqtt MQTT_BROKER_IP:MQTT_BROKER_PORT
```
Debian/Ubuntu:
Edit the `/etc/snips.toml` file. See snips documentation for more information on configuring this
For more details on launch options, check the documentation on [Snips Platform Commands](https://github.com/snipsco/snips-platform-documentation/wiki/6.--Learn-more:-Platform-Commands#using-a-custom-mqtt-bus).
## Home Assistant configuration
## {% linkable_title Home Assistant configuration %}
### Specifying the MQTT broker
### {% linkable_title Specifying the MQTT broker %}
Messages between Snips and Home Assistant are passed via MQTT. We must tell Home Assistant which MQTT broker to use by adding the following entry to `configuration.yaml`:
Messages between Snips and Home Assistant are passed via MQTT. We must tell Home Assistant which [MQTT broker](/docs/mqtt/) to use by adding the following entry to the `configuration.yaml` file:
```yaml
mqtt:
@ -98,10 +129,14 @@ mqtt:
broker: 127.0.0.1
port: 9898
```
### Triggering actions
Alternatively, MQTT can be configured to bridge messages between servers if using a custom MQTT broker such as `mosquitto`.
### {% linkable_title Triggering actions %}
In Home Assistant, we trigger actions based on intents produced by Snips using the [`intent_script`](/components/intent_script) component. For instance, the following block handles `ActivateLightColors` intents (included in the Snips IoT intent bundle) to change light colors:
{% raw %}
```yaml
snips:
@ -110,6 +145,29 @@ intent_script:
action:
- service: light.turn_on
data_template:
entity_id: light.{% raw %}{{ objectLocation | replace(" ","_") }}{% endraw %}
color_name: {% raw %}{{ objectColor }}{% endraw %}
entity_id: light.{{ objectLocation | replace(" ","_") }}
color_name: {{ objectColor }}
```
{% endraw %}
The variables that can be used in the template are of the form 'slotName = value'.
Snips intents that utilize builtin slot types will contain extended information along with the value and can be exposed using this format:
{% raw %}
```yaml
SetTimer:
speech:
type: plain
text: weather
action:
service: script.set_timer
data_template:
name: "{{ timer_name }}"
duration: "{{ timer_duration }}"
seconds: "{{ slots.timer_duration.value.seconds }}"
minutes: "{{ slots.timer_duration.value.minutes }}"
hours: "{{ slots.timer_duration.value.hours }}"
```
{% endraw %}

View File

@ -0,0 +1,37 @@
---
layout: page
title: "ADS Switch"
description: "Instructions on how to set up ADS switches within Home Assistant."
date: 2017-10-25 10:00
sidebar: true
comments: false
sharing: true
footer: true
logo: beckhoff.png
ha_category: Switch
ha_release: "0.60"
ha_iot_class: "Local Push"
---
The `ads` switch platform accesses a boolean variable on the connected ADS device. The variable is identified by its name.
To use your ADS device, you first have to set up your [ADS hub](/components/ads/) and then add the following to your `configuration.yaml`
file:
```yaml
# Example configuration.yaml entry
switch:
- platform: ads
adsvar: .global_bool
```
{% configuration %}
adsvar:
required: true
description: The name of the variable which you want to access on the ADS device.
type: string
name:
required: false
description: An identifier for the switch in the frontend.
type: string
{% endconfiguration %}

View File

@ -8,7 +8,7 @@ comments: false
sharing: true
footer: true
logo: telegram.png
ha_category: Telegram chatbot
ha_category: Notifications
ha_release: 0.48
---

View File

@ -8,7 +8,7 @@ comments: false
sharing: true
footer: true
logo: telegram.png
ha_category: Telegram chatbot
ha_category: Notifications
ha_release: 0.42
---

View File

@ -8,7 +8,7 @@ comments: false
sharing: true
footer: true
logo: telegram.png
ha_category: Telegram chatbot
ha_category: Notifications
ha_release: 0.42
---

View File

@ -14,7 +14,7 @@ ha_release: pre 0.7
The [Vera](http://getvera.com) hub is a controller mainly connecting to Z-Wave devices.
Switches, Lights (inc Dimmers), Locks, Sensors and Binary sensors are supported - and will be automatically added when HA connects to your Vera controller.
Switches, Lights (inc Dimmers), Locks, Sensors, Binary sensors, and Scenes are supported - and will be automatically added when HA connects to your Vera controller.
To use Vera devices in your installation, add the following to your configuration.yaml file using the IP and port number of your Vera controller:

View File

@ -0,0 +1,61 @@
---
layout: post
title: Introducing Home Assistant Cloud
description: "Use Alexa to control any device that is connected to Home Assistant."
date: 2017-12-17 03:00:00
date_formatted: "December 17, 2017"
author: Paulus Schoutsen
author_twitter: balloob
comments: true
categories: Announcements
---
Today were introducing the next step in the Home Assistant saga: the Home Assistant Cloud. The goal of the Home Assistant Cloud is to bridge the gap between your local Home Assistant instance and services in the cloud while delivering the maximum possible security and privacy.
The first service that is supported via the Home Assistant Cloud is the Amazon Alexa Smart Home skill. This integration will allow you to control all your devices in Home Assistant via Amazon Alexa. You will be able to say _“Alexa, turn on the kitchen lights”_ and your local Home Assistant will turn on the lights. Because Alexa talks to Home Assistant, it doesnt matter what kind of lights they are! Anything that is linked to Home Assistant will work. IKEA lights, a 10 year old X10 switch or something youve made yourself. As long as Home Assistant can control it, you can control it via Alexa.
We have designed the Home Assistant Cloud with security in mind. When you activate the new Cloud component, your instance will setup a secure connection to the Home Assistant Cloud. Alexa will deliver messages to our cloud which we will forward to your local instance for processing. We just forward the response back to Alexa. This means that we do not have to store the state of your house in our cloud, were just the messenger!
We are making the beta of the Home Assistant Cloud publicly available today. During the beta period the Home Assistant Cloud will be free to use. We are currently planning to run a beta till March 1, 2018 0:00 UTC. Once the beta ends, the Home Assistant Cloud will be part of our Community Support package which will run at $5 USD/month.
By subscribing to the Community Support package you will show your support for the Home Assistant organization, its projects and its community. It will help fund development, cover our operating costs and gives you access to use Home Assistant Cloud.
So if you ever felt like donating money to support the development of Home Assistant and Hass.io: sign up for the Home Assistant Cloud!
### {% linkable_title Why not take donations? %}
With donations you have to convince people to keep donating and it will be hard to plan around the amount of available money. The biggest concern is what do you do when there is not enough money. We could shut down the servers or again depend on the wallets of our developers. We could run Wikipedia style advertisements for donating, but those are even more annoying than running advertisements.
## {% linkable_title Getting started %}
Upgrade Home Assistant to 0.60 and enable the [`cloud`](/components/cloud/) and [`config`](/components/config/) components:
```yaml
# Example configuration.yaml entry
cloud:
config:
```
Now restart Home Assistant and navigate to the configuration panel. It will offer a new cloud section. Here you can create an account and login. Once logged in, your instance will connect to the cloud.
The next step is to configure Alexa. This can be done by enabling the Home Assistant skill for Alexa and link your Home Assistant cloud account.
Once youre done, ask Alexa to discover devices (“Alexa, discover devices”) and you are all set to control them: “Alexa, turn on &lt;device name&gt;”.
## {% linkable_title FAQ %}
**Will Home Assistant and Hass.io remain open source?**
Yes. Yes. Yes! Home Assistant is the work of hundreds of developers all working together in creating something amazing. The only thing that will require a subscription is the optional cloud functionality.
**What other features will come to the cloud?**
We have a lot of ideas! We are not going to make any promises but here are some things that were looking into:
- Google Home / Google Assistant Smart Home skill
- Allow easy linking of other cloud services to Home Assistant. No more local juggling with OAuth flows. For example, link your Fitbit account and the Fitbit component will show up in Home Assistant.
- Encrypted backups of your Hass.io data
- Text to speech powered by AWS Polly
- Generic HTTP cloud endpoint for people to send messages to their local instance. This will allow people to build applications on - top of the Home Assistant cloud.
- IFTTT integration
- Alexa shopping list integration

View File

@ -0,0 +1,356 @@
---
layout: post
title: "0.60: Beckhoff/TwinCAT, WebDav, Gearbest, iAlarm"
description: "Use Home Assistant for your production line or track prices and the stock market."
date: 2017-12-17 02:00:00
date_formatted: "December 17, 2017"
author: Fabian Affolter
author_twitter: fabaff
comments: true
categories: Release-Notes
og_image: /images/blog/2017-12-0.60/components.png
---
<a href='/components/#version/0.60'><img src='/images/blog/2017-12-0.60/components.png' style='border: 0;box-shadow: none;'></a>
The biggest change for 0.60 will be covered in a separate [blog post](/blog/2017/12/17/introducing-home-assistant-cloud/). Thus, we will keep it short here. Just one thing: This is the last release in 2017. We will be back to our bi-weekly release cycle in 2018.
A big "Thank you" to all people who supported us to make this release possible.
## {% linkable_title TwinCAT %}
With the brand-new [ADS (automation device specification)][ads docs] component by [@stlehmann] allows you to hook Home Assistant into this fieldbus independent interface which is often used between Beckhoff devices running with TwinCAT.
## {% linkable_title WebDav calendar %}
Thanks to [@maxlaverse] Home Assistant support now [WebDav calendars][calendar.caldav docs].
## {% linkable_title Tracking prices %}
With the new [`gearbest` sensor][sensor.gearbest docs] there is now an additional sensor available to track the price of a product.
## {% linkable_title Financial details %}
Yahoo! has discontinued their financial service. To fill this gap we have now the [`alpha_vantage` sensor][sensor.alpha_vantage docs] which is intruded in this release and allows you to monitor the stock market.
## {% linkable_title New Platforms %}
- Add iAlarm support ([@RyuzakiKK] - [#10878]) ([alarm_control_panel.ialarm docs]) (new-platform)
- Add Alpha Vantage sensor ([@fabaff] - [#10873]) ([sensor.alpha_vantage docs]) (new-platform)
- Add ADS component ([@stlehmann] - [#10142]) ([ads docs]) ([binary_sensor.ads docs]) ([light.ads docs]) ([sensor.ads docs]) ([switch.ads docs]) (new-platform)
- Gearbest sensor ([@HerrHofrat] - [#10556]) ([sensor.gearbest docs]) (new-platform)
- Add Ziggo Mediabox XL media_player ([@b10m] - [#10514]) ([media_player.ziggo_mediabox_xl docs]) (new-platform)
- Meraki AP Device tracker ([@masarliev] - [#10971]) ([device_tracker.meraki docs]) (new-platform)
- Added Vera scenes ([@alanfischer] - [#10424]) ([vera docs]) ([scene.vera docs]) (new-platform)
- Add support for Canary component and platforms ([@snjoetw] - [#10306]) ([canary docs]) ([camera.canary docs]) ([sensor.canary docs]) (new-platform)
- Add support for Logitech UE Smart Radios. ([@GreenTurtwig] - [#10077]) ([media_player.ue_smart_radio docs]) (new-platform)
- Added support for cover in tellstick ([@perfalk] - [#10858]) ([tellstick docs]) ([cover.tellstick docs]) (new-platform)
- Add a caldav calendar component ([@maxlaverse] - [#10842]) ([calendar.caldav docs]) (new-platform)
- Refactor hue to split bridge support from light platform ([@andreacampi] - [#10691]) ([hue docs]) ([light.hue docs]) (breaking change) (new-platform)
## {% linkable_title Breaking Changes %}
- Update snips to listen on new mqtt topic and utilize rawValue ([@tschmidty69] - [#11020]) ([snips docs]) (breaking change)
- Refactor hue to split bridge support from light platform ([@andreacampi] - [#10691]) ([hue docs]) ([light.hue docs]) (breaking change) (new-platform)
- Use luftdaten module ([@fabaff] - [#10970]) ([sensor.luftdaten docs]) (breaking change)
- ISY994 sensor improvements ([@OverloadUT] - [#10805]) ([isy994 docs]) ([binary_sensor.isy994 docs]) (breaking change)
- Homematic next ([@pvizeli] - [#11156]) ([homematic docs]) (breaking change)
## {% 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.
## {% linkable_title Reporting Issues %}
Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template.
## {% linkable_title All changes %}
- Update ecobee version to fix stack-trace issue ([@PhracturedBlue] - [#10894]) ([ecobee docs])
- Pybotvac multi ([@raymccarthy] - [#10843]) ([neato docs])
- More declarative timeout syntax for manual alarm control panel. ([@bonzini] - [#10738]) ([alarm_control_panel.manual docs]) ([alarm_control_panel.manual_mqtt docs])
- Unpacking RESTful sensor JSON results into attributes. ([@nickovs] - [#10753]) ([sensor.rest docs])
- Bump dev to 0.60.0.dev0 ([@fabaff] - [#10912])
- Update eliqonline.py ([@molobrakos] - [#10914]) ([sensor.eliqonline docs])
- Add iAlarm support ([@RyuzakiKK] - [#10878]) ([alarm_control_panel.ialarm docs]) (new-platform)
- Correction of Samsung Power OFF behaviour ([@RiRomain] - [#10907]) ([media_player.samsungtv docs])
- Add Alpha Vantage sensor ([@fabaff] - [#10873]) ([sensor.alpha_vantage docs]) (new-platform)
- Don't repeat getting receiver name on each update / pushed to denonavr 0.5.5 ([@scarface-4711] - [#10915]) ([media_player.denonavr docs])
- Add Min and Event Count Metrics To Prometheus ([@bah2830] - [#10530]) ([prometheus docs])
- Update coveragerc ([@balloob] - [#10931])
- Report availability of TP-Link smart sockets ([@DanNixon] - [#10933]) ([switch.tplink docs])
- Set percent unit for battery level so that history displays properly; edited variable name for consistency ([@nbougues] - [#10932]) ([sensor.tesla docs])
- Export climate status and target temperature to Prometheus ([@hudashot] - [#10919]) ([prometheus docs])
- Tado ignore invalid devices ([@dasos] - [#10927]) ([climate.tado docs])
- don't ignore voltage data if sensor data changed ([@PaulAnnekov] - [#10925]) ([xiaomi_aqara docs])
- Add ADS component ([@stlehmann] - [#10142]) ([ads docs]) ([binary_sensor.ads docs]) ([light.ads docs]) ([sensor.ads docs]) ([switch.ads docs]) (new-platform)
- Gearbest sensor ([@HerrHofrat] - [#10556]) ([sensor.gearbest docs]) (new-platform)
- Add Ziggo Mediabox XL media_player ([@b10m] - [#10514]) ([media_player.ziggo_mediabox_xl docs]) (new-platform)
- Generic thermostat initial_operation_mode ([@ziotibia81] - [#10690]) ([climate.generic_thermostat docs])
- Use new build path for dev translations ([@armills] - [#10937])
- Add option to set default hide if away for new devices ([@masarliev] - [#10762]) ([device_tracker docs])
- Allow disabling the LEDs on TP-Link smart plugs ([@DanNixon] - [#10980]) ([switch.tplink docs])
- Meraki AP Device tracker ([@masarliev] - [#10971]) ([device_tracker.meraki docs]) (new-platform)
- Update tradfri.py ([@pvizeli] - [#10991]) ([light.tradfri docs])
- webostv: Ensure source exists before use ([@OddBloke] - [#10959]) ([media_player.webostv docs])
- Ensure Docker script files uses LF line endings to support Docker for Windows. ([@R1chardTM] - [#10067])
- Added Vera scenes ([@alanfischer] - [#10424]) ([vera docs]) ([scene.vera docs]) (new-platform)
- Fix Egardia alarm status shown as unknown after restart ([@jeroenterheerdt] - [#11010]) ([alarm_control_panel.egardia docs])
- Handle OSError when forcibly turning off media_player.samsungtv ([@lwis] - [#10997]) ([media_player.samsungtv docs])
- Shuffle support in Sonos ([@mar-schmidt] - [#10875]) ([media_player.sonos docs])
- Add support for Canary component and platforms ([@snjoetw] - [#10306]) ([canary docs]) ([camera.canary docs]) ([sensor.canary docs]) (new-platform)
- Ignore Sonos players with unknown hostnames ([@amelchio] - [#11013])
- Support LIFX Mini products ([@amelchio] - [#10996]) ([light.lifx docs])
- Update snips to listen on new mqtt topic and utilize rawValue ([@tschmidty69] - [#11020]) ([snips docs]) (breaking change)
- Change default js version to auto ([@andrey-git] - [#10999])
- Serialize mochad requests ([@mtreinish] - [#11029]) ([mochad docs]) ([light.mochad docs]) ([switch.mochad docs])
- In dev mode expose only relevant sources ([@andrey-git] - [#11026])
- Added force_update for REST sensor ([@foxel] - [#11016]) ([sensor.miflora docs]) ([sensor.mqtt docs]) ([sensor.rest docs])
- Add support for Logitech UE Smart Radios. ([@GreenTurtwig] - [#10077]) ([media_player.ue_smart_radio docs]) (new-platform)
- Make notify.html5 depend on config ([@balloob] - [#11052]) ([notify.html5 docs])
- This change fixes the error `OSError: [WinError 193]` on Windows debuggers (i.e. PyCharm) ([@tringler] - [#11034])
- Added support for cover in tellstick ([@perfalk] - [#10858]) ([tellstick docs]) ([cover.tellstick docs]) (new-platform)
- Add a caldav calendar component ([@maxlaverse] - [#10842]) ([calendar.caldav docs]) (new-platform)
- Add GPS coords to meraki ([@addelovein] - [#10998]) ([device_tracker.meraki docs])
- Refactor hue to split bridge support from light platform ([@andreacampi] - [#10691]) ([hue docs]) ([light.hue docs]) (breaking change) (new-platform)
- add custom bypass status to total connect ([@uchagani] - [#11042]) ([alarm_control_panel.totalconnect docs])
- Volvo on call: Optional use of Scandinavian miles. Also add average fuel consumption property ([@molobrakos] - [#11051]) ([volvooncall docs]) ([sensor.volvooncall docs])
- Allow tradfri to read the available state of the device ([@pvizeli] - [#11056]) ([light.tradfri docs])
- Upgrade aiohttp to 2.3.6 ([@fabaff] - [#11079])
- Upgrade yarl to 0.16.0 ([@fabaff] - [#11078])
- Upgrade psutil to 5.4.2 ([@fabaff] - [#11083]) ([sensor.systemmonitor docs])
- Upgrade youtube_dl to 2017.12.10 ([@fabaff] - [#11080]) ([media_extractor docs])
- Upgrade shodan to 1.7.7 ([@fabaff] - [#11084]) ([sensor.shodan docs])
- Update tellcore-net to 0.4 ([@pvizeli] - [#11087]) ([tellstick docs])
- Bump pymusiccast to version 0.1.6 ([@jalmeroth] - [#11091]) ([media_player.yamaha_musiccast docs])
- Use luftdaten module ([@fabaff] - [#10970]) ([sensor.luftdaten docs]) (breaking change)
- Bump pyatv to 0.3.9 ([@postlund] - [#11104]) ([apple_tv docs])
- Report availability for TP-Link smart bulbs ([@DanNixon] - [#10976]) ([light.tplink docs])
- Fix incorrect comment. ([@emosenkis] - [#11111])
- Update Warrant ([@balloob] - [#11101]) ([cloud docs])
- Fixed typo in automation.py ([@ryanm101] - [#11116]) ([config.automation docs])
- Add media position properties ([@pschmitt] - [#10076]) ([media_player.liveboxplaytv docs])
- update pyripple ([@nkgilley] - [#11122]) ([sensor.ripple docs])
- Skip HASS emulated Hue bridges from detection. ([@andreacampi] - [#11128]) ([hue docs])
- Always consume the no_throttle keyword argument. ([@andreacampi] - [#11126])
- Add problem device class ([@armills] - [#11130]) ([binary_sensor docs])
- set default utc offset to 0 ([@pollett] - [#11114]) ([sensor.efergy docs])
- Allow using more than one keyboard remote ([@BryanJacobs] - [#11061]) ([keyboard_remote docs])
- ISY994 sensor improvements ([@OverloadUT] - [#10805]) ([isy994 docs]) ([binary_sensor.isy994 docs]) (breaking change)
- Disable html5 notify dependency ([@balloob] - [#11135]) ([notify.html5 docs])
- Upgrade Homematic ([@danielperna84] - [#11149]) ([homematic docs])
- Fix X10 commands for mochad light turn on ([@mtreinish] - [#11146]) ([light.mochad docs])
- Homematic next ([@pvizeli] - [#11156]) ([homematic docs]) (breaking change)
- Resolve hostnames ([@pvizeli] - [#11160]) ([homematic docs])
- Perform logbook filtering on the worker thread ([@armills] - [#11161]) ([logbook docs])
- Don't connect to cloud if subscription expired ([@balloob] - [#11163]) ([cloud docs]) ([cloud.const docs])
- Add install mode to homematic ([@pvizeli] - [#11164]) ([homematic docs])
- convert alarmdecoder interface from async to sync ([@PhracturedBlue] - [#11168]) ([alarmdecoder docs])
- Remove logging ([@cmsimike] - [#11173]) ([sensor.octoprint docs])
- Revbump to SoCo 0.13 and add support for Night Sound and Speech Enhancement. ([@rbdixon] - [#10765]) ([media_player.sonos docs])
[#10067]: https://github.com/home-assistant/home-assistant/pull/10067
[#10076]: https://github.com/home-assistant/home-assistant/pull/10076
[#10077]: https://github.com/home-assistant/home-assistant/pull/10077
[#10142]: https://github.com/home-assistant/home-assistant/pull/10142
[#10306]: https://github.com/home-assistant/home-assistant/pull/10306
[#10424]: https://github.com/home-assistant/home-assistant/pull/10424
[#10514]: https://github.com/home-assistant/home-assistant/pull/10514
[#10530]: https://github.com/home-assistant/home-assistant/pull/10530
[#10556]: https://github.com/home-assistant/home-assistant/pull/10556
[#10690]: https://github.com/home-assistant/home-assistant/pull/10690
[#10691]: https://github.com/home-assistant/home-assistant/pull/10691
[#10738]: https://github.com/home-assistant/home-assistant/pull/10738
[#10753]: https://github.com/home-assistant/home-assistant/pull/10753
[#10762]: https://github.com/home-assistant/home-assistant/pull/10762
[#10765]: https://github.com/home-assistant/home-assistant/pull/10765
[#10805]: https://github.com/home-assistant/home-assistant/pull/10805
[#10842]: https://github.com/home-assistant/home-assistant/pull/10842
[#10843]: https://github.com/home-assistant/home-assistant/pull/10843
[#10858]: https://github.com/home-assistant/home-assistant/pull/10858
[#10873]: https://github.com/home-assistant/home-assistant/pull/10873
[#10875]: https://github.com/home-assistant/home-assistant/pull/10875
[#10878]: https://github.com/home-assistant/home-assistant/pull/10878
[#10894]: https://github.com/home-assistant/home-assistant/pull/10894
[#10907]: https://github.com/home-assistant/home-assistant/pull/10907
[#10912]: https://github.com/home-assistant/home-assistant/pull/10912
[#10914]: https://github.com/home-assistant/home-assistant/pull/10914
[#10915]: https://github.com/home-assistant/home-assistant/pull/10915
[#10919]: https://github.com/home-assistant/home-assistant/pull/10919
[#10925]: https://github.com/home-assistant/home-assistant/pull/10925
[#10927]: https://github.com/home-assistant/home-assistant/pull/10927
[#10931]: https://github.com/home-assistant/home-assistant/pull/10931
[#10932]: https://github.com/home-assistant/home-assistant/pull/10932
[#10933]: https://github.com/home-assistant/home-assistant/pull/10933
[#10937]: https://github.com/home-assistant/home-assistant/pull/10937
[#10959]: https://github.com/home-assistant/home-assistant/pull/10959
[#10970]: https://github.com/home-assistant/home-assistant/pull/10970
[#10971]: https://github.com/home-assistant/home-assistant/pull/10971
[#10976]: https://github.com/home-assistant/home-assistant/pull/10976
[#10980]: https://github.com/home-assistant/home-assistant/pull/10980
[#10991]: https://github.com/home-assistant/home-assistant/pull/10991
[#10996]: https://github.com/home-assistant/home-assistant/pull/10996
[#10997]: https://github.com/home-assistant/home-assistant/pull/10997
[#10998]: https://github.com/home-assistant/home-assistant/pull/10998
[#10999]: https://github.com/home-assistant/home-assistant/pull/10999
[#11010]: https://github.com/home-assistant/home-assistant/pull/11010
[#11013]: https://github.com/home-assistant/home-assistant/pull/11013
[#11016]: https://github.com/home-assistant/home-assistant/pull/11016
[#11020]: https://github.com/home-assistant/home-assistant/pull/11020
[#11026]: https://github.com/home-assistant/home-assistant/pull/11026
[#11029]: https://github.com/home-assistant/home-assistant/pull/11029
[#11034]: https://github.com/home-assistant/home-assistant/pull/11034
[#11042]: https://github.com/home-assistant/home-assistant/pull/11042
[#11051]: https://github.com/home-assistant/home-assistant/pull/11051
[#11052]: https://github.com/home-assistant/home-assistant/pull/11052
[#11056]: https://github.com/home-assistant/home-assistant/pull/11056
[#11061]: https://github.com/home-assistant/home-assistant/pull/11061
[#11078]: https://github.com/home-assistant/home-assistant/pull/11078
[#11079]: https://github.com/home-assistant/home-assistant/pull/11079
[#11080]: https://github.com/home-assistant/home-assistant/pull/11080
[#11083]: https://github.com/home-assistant/home-assistant/pull/11083
[#11084]: https://github.com/home-assistant/home-assistant/pull/11084
[#11087]: https://github.com/home-assistant/home-assistant/pull/11087
[#11091]: https://github.com/home-assistant/home-assistant/pull/11091
[#11101]: https://github.com/home-assistant/home-assistant/pull/11101
[#11104]: https://github.com/home-assistant/home-assistant/pull/11104
[#11111]: https://github.com/home-assistant/home-assistant/pull/11111
[#11114]: https://github.com/home-assistant/home-assistant/pull/11114
[#11116]: https://github.com/home-assistant/home-assistant/pull/11116
[#11122]: https://github.com/home-assistant/home-assistant/pull/11122
[#11126]: https://github.com/home-assistant/home-assistant/pull/11126
[#11128]: https://github.com/home-assistant/home-assistant/pull/11128
[#11130]: https://github.com/home-assistant/home-assistant/pull/11130
[#11135]: https://github.com/home-assistant/home-assistant/pull/11135
[#11146]: https://github.com/home-assistant/home-assistant/pull/11146
[#11149]: https://github.com/home-assistant/home-assistant/pull/11149
[#11156]: https://github.com/home-assistant/home-assistant/pull/11156
[#11160]: https://github.com/home-assistant/home-assistant/pull/11160
[#11161]: https://github.com/home-assistant/home-assistant/pull/11161
[#11163]: https://github.com/home-assistant/home-assistant/pull/11163
[#11164]: https://github.com/home-assistant/home-assistant/pull/11164
[#11168]: https://github.com/home-assistant/home-assistant/pull/11168
[#11173]: https://github.com/home-assistant/home-assistant/pull/11173
[@BryanJacobs]: https://github.com/BryanJacobs
[@DanNixon]: https://github.com/DanNixon
[@GreenTurtwig]: https://github.com/GreenTurtwig
[@HerrHofrat]: https://github.com/HerrHofrat
[@OddBloke]: https://github.com/OddBloke
[@OverloadUT]: https://github.com/OverloadUT
[@PaulAnnekov]: https://github.com/PaulAnnekov
[@PhracturedBlue]: https://github.com/PhracturedBlue
[@R1chardTM]: https://github.com/R1chardTM
[@RiRomain]: https://github.com/RiRomain
[@RyuzakiKK]: https://github.com/RyuzakiKK
[@addelovein]: https://github.com/addelovein
[@alanfischer]: https://github.com/alanfischer
[@amelchio]: https://github.com/amelchio
[@andreacampi]: https://github.com/andreacampi
[@andrey-git]: https://github.com/andrey-git
[@armills]: https://github.com/armills
[@b10m]: https://github.com/b10m
[@bah2830]: https://github.com/bah2830
[@balloob]: https://github.com/balloob
[@bonzini]: https://github.com/bonzini
[@cmsimike]: https://github.com/cmsimike
[@danielperna84]: https://github.com/danielperna84
[@dasos]: https://github.com/dasos
[@emosenkis]: https://github.com/emosenkis
[@fabaff]: https://github.com/fabaff
[@foxel]: https://github.com/foxel
[@hudashot]: https://github.com/hudashot
[@jalmeroth]: https://github.com/jalmeroth
[@jeroenterheerdt]: https://github.com/jeroenterheerdt
[@lwis]: https://github.com/lwis
[@mar-schmidt]: https://github.com/mar-schmidt
[@masarliev]: https://github.com/masarliev
[@maxlaverse]: https://github.com/maxlaverse
[@molobrakos]: https://github.com/molobrakos
[@mtreinish]: https://github.com/mtreinish
[@nbougues]: https://github.com/nbougues
[@nickovs]: https://github.com/nickovs
[@nkgilley]: https://github.com/nkgilley
[@perfalk]: https://github.com/perfalk
[@pollett]: https://github.com/pollett
[@postlund]: https://github.com/postlund
[@pschmitt]: https://github.com/pschmitt
[@pvizeli]: https://github.com/pvizeli
[@raymccarthy]: https://github.com/raymccarthy
[@rbdixon]: https://github.com/rbdixon
[@ryanm101]: https://github.com/ryanm101
[@scarface-4711]: https://github.com/scarface-4711
[@snjoetw]: https://github.com/snjoetw
[@stlehmann]: https://github.com/stlehmann
[@tringler]: https://github.com/tringler
[@tschmidty69]: https://github.com/tschmidty69
[@uchagani]: https://github.com/uchagani
[@ziotibia81]: https://github.com/ziotibia81
[ads docs]: https://home-assistant.io/components/ads/
[alarm_control_panel.egardia docs]: https://home-assistant.io/components/alarm_control_panel.egardia/
[alarm_control_panel.ialarm docs]: https://home-assistant.io/components/alarm_control_panel.ialarm/
[alarm_control_panel.manual docs]: https://home-assistant.io/components/alarm_control_panel.manual/
[alarm_control_panel.manual_mqtt docs]: https://home-assistant.io/components/alarm_control_panel.manual_mqtt/
[alarm_control_panel.totalconnect docs]: https://home-assistant.io/components/alarm_control_panel.totalconnect/
[alarmdecoder docs]: https://home-assistant.io/components/alarmdecoder/
[apple_tv docs]: https://home-assistant.io/components/apple_tv/
[binary_sensor docs]: https://home-assistant.io/components/binary_sensor/
[binary_sensor.ads docs]: https://home-assistant.io/components/binary_sensor.ads/
[binary_sensor.isy994 docs]: https://home-assistant.io/components/binary_sensor.isy994/
[calendar.caldav docs]: https://home-assistant.io/components/calendar.caldav/
[camera.canary docs]: https://home-assistant.io/components/camera.canary/
[canary docs]: https://home-assistant.io/components/canary/
[climate.generic_thermostat docs]: https://home-assistant.io/components/climate.generic_thermostat/
[climate.tado docs]: https://home-assistant.io/components/climate.tado/
[cloud docs]: https://home-assistant.io/components/cloud/
[cloud.const docs]: https://home-assistant.io/components/cloud.const/
[config.automation docs]: https://home-assistant.io/components/config.automation/
[cover.tellstick docs]: https://home-assistant.io/components/cover.tellstick/
[device_tracker docs]: https://home-assistant.io/components/device_tracker/
[device_tracker.meraki docs]: https://home-assistant.io/components/device_tracker.meraki/
[ecobee docs]: https://home-assistant.io/components/ecobee/
[homematic docs]: https://home-assistant.io/components/homematic/
[hue docs]: https://home-assistant.io/components/hue/
[isy994 docs]: https://home-assistant.io/components/isy994/
[keyboard_remote docs]: https://home-assistant.io/components/keyboard_remote/
[light.ads docs]: https://home-assistant.io/components/light.ads/
[light.hue docs]: https://home-assistant.io/components/light.hue/
[light.lifx docs]: https://home-assistant.io/components/light.lifx/
[light.mochad docs]: https://home-assistant.io/components/light.mochad/
[light.tplink docs]: https://home-assistant.io/components/light.tplink/
[light.tradfri docs]: https://home-assistant.io/components/light.tradfri/
[logbook docs]: https://home-assistant.io/components/logbook/
[media_extractor docs]: https://home-assistant.io/components/media_extractor/
[media_player.denonavr docs]: https://home-assistant.io/components/media_player.denonavr/
[media_player.liveboxplaytv docs]: https://home-assistant.io/components/media_player.liveboxplaytv/
[media_player.samsungtv docs]: https://home-assistant.io/components/media_player.samsungtv/
[media_player.sonos docs]: https://home-assistant.io/components/media_player.sonos/
[media_player.ue_smart_radio docs]: https://home-assistant.io/components/media_player.ue_smart_radio/
[media_player.webostv docs]: https://home-assistant.io/components/media_player.webostv/
[media_player.yamaha_musiccast docs]: https://home-assistant.io/components/media_player.yamaha_musiccast/
[media_player.ziggo_mediabox_xl docs]: https://home-assistant.io/components/media_player.ziggo_mediabox_xl/
[mochad docs]: https://home-assistant.io/components/mochad/
[neato docs]: https://home-assistant.io/components/neato/
[notify.html5 docs]: https://home-assistant.io/components/notify.html5/
[prometheus docs]: https://home-assistant.io/components/prometheus/
[scene.vera docs]: https://home-assistant.io/components/scene.vera/
[sensor.ads docs]: https://home-assistant.io/components/sensor.ads/
[sensor.alpha_vantage docs]: https://home-assistant.io/components/sensor.alpha_vantage/
[sensor.canary docs]: https://home-assistant.io/components/sensor.canary/
[sensor.efergy docs]: https://home-assistant.io/components/sensor.efergy/
[sensor.eliqonline docs]: https://home-assistant.io/components/sensor.eliqonline/
[sensor.gearbest docs]: https://home-assistant.io/components/sensor.gearbest/
[sensor.luftdaten docs]: https://home-assistant.io/components/sensor.luftdaten/
[sensor.miflora docs]: https://home-assistant.io/components/sensor.miflora/
[sensor.mqtt docs]: https://home-assistant.io/components/sensor.mqtt/
[sensor.octoprint docs]: https://home-assistant.io/components/sensor.octoprint/
[sensor.rest docs]: https://home-assistant.io/components/sensor.rest/
[sensor.ripple docs]: https://home-assistant.io/components/sensor.ripple/
[sensor.shodan docs]: https://home-assistant.io/components/sensor.shodan/
[sensor.systemmonitor docs]: https://home-assistant.io/components/sensor.systemmonitor/
[sensor.tesla docs]: https://home-assistant.io/components/sensor.tesla/
[sensor.volvooncall docs]: https://home-assistant.io/components/sensor.volvooncall/
[snips docs]: https://home-assistant.io/components/snips/
[switch.ads docs]: https://home-assistant.io/components/switch.ads/
[switch.mochad docs]: https://home-assistant.io/components/switch.mochad/
[switch.tplink docs]: https://home-assistant.io/components/switch.tplink/
[tellstick docs]: https://home-assistant.io/components/tellstick/
[vera docs]: https://home-assistant.io/components/vera/
[volvooncall docs]: https://home-assistant.io/components/volvooncall/
[xiaomi_aqara docs]: https://home-assistant.io/components/xiaomi_aqara/

View File

@ -35,6 +35,8 @@ Additional dependencies exist if you plan to perform Frontend Development, pleas
#### {% linkable_title Developing on Windows %}
If you are using Windows as a development platform, make sure that you have the correct Microsoft [Visual C++ build tools](http://landinghub.visualstudio.com/visual-cpp-build-tools) installed. The installation of the most requirements and validation using `tox` will fail if this is not done correctly. Check the [Windows Compilers](https://wiki.python.org/moin/WindowsCompilers) section on the [Python website](https://www.python.org/) for details.
Due to Home Assistant is mainly designed and developed on Linux distributions it is not recommended to develop on Windows machines. However on Windows 10 machines you should decide to set up a [Linux subsystem](https://docs.microsoft.com/de-de/windows/wsl/install-win10).
Setup Linux subsystem.
@ -46,7 +48,7 @@ $ echo 'export DISPLAY=:0' >> ~/.bashrc && . ~/.bashrc
$ sudo apt-get install xubuntu-desktop -y
```
Download and start PyCharm.
It is recommended using [PyCharm](https://www.jetbrains.com/pycharm/download/) as debugger. Download and start PyCharm.
```bash
$ wget https://download.jetbrains.com/python/pycharm-community-20XX.X.tar.gz
@ -56,8 +58,6 @@ $ ./pycharm.sh
In order to display the PyCharm GUI on Windows you need to run a X-Server like [VcXserv](https://sourceforge.net/projects/vcxsrv/).
If you decide using Windows as a development platform, make sure that you have the correct Microsoft Visual C++ build tools installed. Check the [Windows Compilers](https://wiki.python.org/moin/WindowsCompilers) section on the [Python website](https://www.python.org/) for details. Validation using `tox` will fail if this is not done correctly.
Also, make sure to install or upgrade the `setuptools` Python package. It contains compatibility improvements and adds automatic use of compilers:
```bash

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

@ -33,6 +33,14 @@ description: Open-source home automation platform running on Python 3. Track and
<a href='https://discord.gg/c5DvZ4e'>Chat</a>
</div>
</div>
<div class='material-card text'>
<h1>Alexa, turn on the lights</h1>
Use Alexa to control Home Assistant.
<div class='links'>
<a href='/components/cloud/'>LEARN MORE</a>
</div>
</div>
<a class='material-card highlight-blog-post' href='/blog/2016/01/19/perfect-home-automation/'>
Read our founder's vision for the perfect home automation <i class="icon-arrow-right"></i>
@ -119,7 +127,7 @@ description: Open-source home automation platform running on Python 3. Track and
<a href='https://www.wired.com/2016/07/now-can-hide-smart-home-darknet/'><img src='/images/press/wired.com.svg' alt='Wired.com logo'></a>
<a href='https://opensource.com/article/17/7/home-automation-primer'><img src='/images/press/opensource.com.svg' alt='OpenSource.com logo'></a>
<a href='http://www.linux-magazine.com/Issues/2017/203/Home-Assistant'><img src='/images/press/LinuxMagazine.png' alt='Linux Magazine logo'></a>
<a href='https://www.heise.de/ct/ausgabe/2017-26-Hausautomations-Schaltzentrale-Home-Assistant-3909532.html'><img src='/images/press/ct.png' alt='Ct logo'></a>