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

This commit is contained in:
Paulus Schoutsen 2018-04-06 10:29:52 -04:00
commit 9bbbf21643
38 changed files with 844 additions and 97 deletions

View File

@ -0,0 +1,17 @@
module Jekyll
class EnvironmentVariablesGenerator < Generator
def generate(site)
# https://www.netlify.com/docs/continuous-deployment/#build-environment-variables
repo_url = ENV['REPOSITORY_URL'] || 'https://github.com/home-assistant/home-assistant.github.io'
# Rewrite urls if repo url is the ssh format.
if repo_url.start_with? 'git@github.com:'
repo_url = repo_url.sub 'git@github.com:', 'https://github.com/'
end
# These values will be available as {{ site.NLY_REPOSITORY_URL }}
site.config['NLY_REPOSITORY_URL'] = repo_url
site.config['NLY_HEAD'] = ENV['HEAD'] || 'current'
end
end
end

View File

@ -28,6 +28,9 @@ amcrest:
sensors:
- motion_detector
- sdcard
switches:
- motion_detection
- motion_recording
- host: IP_ADDRESS_CAMERA_2
username: YOUR_USERNAME
@ -54,6 +57,9 @@ Configuration variables:
- **motion_detector**: Return True/False when a motion is detected
- **sdcard**: Return the SD card usage by reporting the total and used space
- **ptz_preset**: Return the number of PTZ preset positions configured for the given camera
- **switches** array (*Optional*): Switches to display in the frontend. By default, *none* of the switches are shown. The following switches can be monitored.
- **motion_detection**: Enable/disable motion detection setting
- **motion_recording**: Enable/disable recording on motion detection setting
**Note:** Amcrest cameras with newer firmware no longer have the ability to stream `high` definition video with MJPEG encoding. You may need to use `low` resolution stream or the `snapshot` stream source instead. If the quality seems too poor, lower the `Frame Rate (FPS)` and max out the `Bit Rate` settings in your camera's configuration manager. If you defined the *stream_source* to **mjpeg**, make sure your camera supports *Basic* HTTP authentication. Newer Amcrest firmware may not work, then **rtsp** is recommended instead.

View File

@ -15,6 +15,10 @@ ha_release: 0.41
The `workday` binary sensor indicates, whether the current day is a workday or not. It allows specifying, which days of the week counts as workdays and also uses the python module [holidays](https://pypi.python.org/pypi/holidays) to incorporate information about region-specific public holidays.
## {% linkable_title Configuration %}
Check the [country list](https://github.com/dr-prodigy/python-holidays#available-countries) for available province.
To enable the `workday` sensor in your installation, add the following to your `configuration.yaml` file:
```yaml

View File

@ -25,7 +25,7 @@ bmw_connected_drive:
name:
username: USERNAME_BMW_CONNECTED_DRIVE
password: PASSWORD_BMW_CONNECTED_DRIVE
country: COUNTRY_BMW_CONNECTED_DRIVE
region: one of "north_america", "china" , "rest_of_world"
```
{% configuration %}
@ -46,8 +46,8 @@ bmw_connected_drive:
description: Your BMW Connected Drive password.
required: true
type: string
country:
description: "The country of your Connected Drive account. Please use the exact names for the country as listed on the [Connected Drive website](https://www.bmw-connecteddrive.com/)."
region:
description: "The region of your Connected Drive account. Please use of these values: `north_america`, `china`, `rest_of_world`"
required: true
type: string
{% endconfiguration %}

View File

@ -0,0 +1,49 @@
---
layout: page
title: "Gogogate2 Cover"
description: "Instructions on how to integrate Gogogate2-Enabled garage door covers into Home Assistant."
date: 2018-03-26 20:02
sidebar: true
comments: false
sharing: true
footer: true
logo: gogogate2.png
ha_category: Cover
ha_release: 0.67
ha_iot_class: Local Polling
---
The `gogogate2` cover platform lets you control Gogogate2-Enabled garage doors through Home Assistant. Device names in Home Assistant are generated based on the names defined in your Gogogate2 mobile app.
## {% linkable_title Configuration %}
To use your Gogogate2 cover in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yml entry
cover:
- platform: gogogate2
username: email@email.com
password: password
ip_address: 192.168.1.200
```
{% configuration %}
username:
description: Your Gogogate2 account username.
required: true
type: string
password:
description: Your Gogogate2 account password.
required: true
type: string
ip_address:
description: The IP Address of your Gogogate2 device.
required: true
type: string
name:
description: Allows you to override the default name.
default: gogogate2
required: false
type: string
{% endconfiguration %}

View File

@ -19,6 +19,8 @@ The `asuswrt` platform offers presence detection by looking at connected devices
This platform is **NOT** available for [Microsoft Windows installations](http://pexpect.readthedocs.io/en/stable/overview.html#pexpect-on-windows).
</p>
### {% linkable_title Configuration %}
To use an ASUSWRT router in your installation, add the following to your `configuration.yaml` file:
```yaml
@ -29,15 +31,44 @@ device_tracker:
username: YOUR_ADMIN_USERNAME
```
Configuration variables:
- **host** (*Required*): The IP address of your router, eg. `192.168.1.1`.
- **username** (*Required*: The username of an user with administrative privileges, usually `admin`.
- **password** (*Optional*): The password for your given admin account (use this if no SSH key is given).
- **protocol** (*Optional*): The protocol (`ssh` or `telnet`) to use. Defaults to `ssh`.
- **port** (*Optional*): SSH port to use. Defaults to `22`.
- **mode** (*Optional*): The operating mode of the router (`router` or `ap`). Defaults to `router`.
- **ssh_key** (*Optional*): The path to your SSH private key file associated with your given admin account (instead of password).
{% configuration %}
host:
description: "The IP address of your router, eg. `192.168.1.1`."
required: true
type: string
username:
description: "The username of an user with administrative privileges, usually `admin`."
required: true
type: string
password:
description: "The password for your given admin account (use this if no SSH key is given)."
required: false
type: string
protocol:
description: "The protocol (`ssh` or `telnet`) to use."
required: false
type: string
default: ssh
port:
description: SSH port to use.
required: false
type: int
default: 22
mode:
description: "The operating mode of the router (`router` or `ap`)."
required: false
type: string
default: router
ssh_key:
description: The path to your SSH private key file associated with your given admin account (instead of password).
required: false
type: string
require_ip:
description: If the router is in access point mode.
required: false
type: boolean
default: true
{% endconfiguration %}
<p class='note warning'>
You need to [enable telnet](https://www.asus.com/support/faq/1005449/) on your router if you choose to use `protocol: telnet`.

View File

@ -27,6 +27,14 @@ device_tracker:
- platform: bluetooth_tracker
```
{% configuration %}
request_rssi:
description: Performs a request for the "Received signal strength indication" (RSSI) of each tracked device
required: false
type: boolean
default: False
{% endconfiguration %}
In some cases it can be that your device is not discovered. In that case let your phone scan for Bluetooth devices while you restart Home Assistant. Just hit `Scan` on your phone all the time until Home Assistant is fully restarted and the device should appear in `known_devices.yaml`.
For additional configuration variables check the [Device tracker page](/components/device_tracker/).

View File

@ -0,0 +1,46 @@
---
layout: page
title: "Google Maps Location Sharing"
description: "Instructions how to use Google Maps Location Sharing to track devices in Home Assistant."
date: 2017-02-12 10:00
sidebar: true
comments: false
sharing: true
footer: true
logo: google_maps.png
ha_release: 0.67
ha_category: Presence Detection
ha_iot_class: "Cloud Polling"
---
The `google_maps` platform allows you to detect presence using the unofficial API of [Google Maps Location Sharing](https://myaccount.google.com/locationsharing).
You first need to create an additional Google account and share your location with that account. This platform will use that account to fetch the location of your device(s). You have to setup sharing through the Google Maps app on your mobile phone. You can find more information [here](https://support.google.com/accounts?p=location_sharing).
This platform will create a file named `google_maps_location_sharing.conf` where it caches your login session.
<p class='note warning'>
Since this platform is using an official API with the help of [locationsharinglib](https://github.com/costastf/locationsharinglib), Google seems to block access to your data the first time you've logged in with this component.
This issue can be fixed by logging in with your new account and approving your login on the [Device Activity](https://myaccount.google.com/device-activity) page.
</p>
To integrate Google Maps Location Sharing in Home Assistant, add the following section to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
device_tracker:
platform: google_maps
username: example@gmail.com
password: password
```
{% configuration %}
username:
description: The email address for the Google account that has access to your shared location.
required: true
type: string
password:
description: The password for your given username.
required: true
type: string
{% endconfiguration %}

View File

@ -0,0 +1,38 @@
---
layout: page
title: "Xiaomi Mi WiFi Repeater 2"
description: "Instructions how to integrate your Xiaomi Mi WiFi Repeater 2 within Home Assistant."
date: 2018-04-01 21:06
sidebar: true
comments: false
sharing: true
footer: true
logo: xiaomi.png
ha_category: Sensor
ha_version: 0.67
ha_iot_class: "Local Polling"
---
The `xiaomi_miio` device tracker platform is observing your Xiaomi Mi WiFi Repeater 2 and reporting all associated WiFi clients.
Please follow the instructions on [Retrieving the Access Token](/components/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token.
To add a Xiaomi Mi Air Quality Monitor to your installation, add the following to your `configuration.yaml` file:
```yaml
device_tracker:
- platform: xiaomi_miio
host: 192.168.130.73
token: YOUR_TOKEN
```
{% configuration %}
host:
description: The IP address of your miio device.
required: true
type: string
token:
description: The API token of your miio device.
required: true
type: string
{% endconfiguration %}

View File

@ -31,6 +31,7 @@ Configuration variables:
- **username** (*Required*): The username of a non-administrator user account on the device.
- **password** (*Required*): The password for the user specified.
- **doorbell_events** (*Optional*): Setting this to `true` this will register a callback URL with the device so that events can be published to the event bus when the doorbell rings.
- **hass_url_override** (*Optional*): If your DoorBird cannot connect to the machine running Home Assistant because you are using dynamic DNS or some other HTTP configuration, specify the LAN IP of the machine here to force a LAN connection.
<p class="note warning">
Enabling `doorbell_events` will delete all other registered push notification services with the device every time Home Assistant starts. This will not affect notifications delivered by the DoorBird mobile app.

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Xiaomi Air Purifier"
description: "Instructions on how to integrate your Xiaomi Air Purifier within Home Assistant."
description: "Instructions on how to integrate your Xiaomi Air Purifier and Xiaomi Air Humidifier within Home Assistant."
date: 2017-10-13 12:35
sidebar: true
comments: false
@ -13,35 +13,161 @@ ha_version: 0.57
ha_iot_class: "Local Polling"
---
The `xiaomi_miio` fan platform allows you to control the Xiaomi Air Purifier 2, Air Purifier 2S and Air Purifier Pro.
The `xiaomi_miio` fan platform allows you to control the Xiaomi Air Purifier and Xiaomi Air Humidifier.
Currently, the supported features are:
## Features
* On, Off
### Air Purifier 2 et al.
* Power (on, off)
* Operation modes (auto, silent, favorite, idle)
* Buzzer (on, off)
* Child lock (on, off)
* LED (on, off), LED brightness (bright, dim, off)
* Favorite Level (0...16)
* Attributes
- power
- aqi
- average_aqi
- humidity
- model
- temperature
- humidity
- aqi
- mode
- filter_hours_used
- filter_life_remaining
- favorite_level
- child_lock
- led
- motor_speed
- average_aqi
- purify_volume
- learn_mode
- sleep_time
- sleep_mode_learn_count
- extra_features
- turbo_mode_supported
- auto_detect
- use_time
- button_pressed
- buzzer
- led_brightness
- sleep_mode
### Air Purifier Pro (zhimi.airpurifier.v6)
* Power (on, off)
* Operation modes (auto, silent, favorite)
* Child lock (on, off)
* LED (on, off)
* Favorite Level (0...16)
* Attributes
- model
- temperature
- humidity
- aqi
- mode
- filter_hours_used
- filter_life_remaining
- favorite_level
- child_lock
- led
- motor_speed
- average_aqi
- purify_volume
- learn_mode
- sleep_time
- sleep_mode_learn_count
- extra_features
- turbo_mode_supported
- auto_detect
- use_time
- button_pressed
- filter_rfid_product_id
- filter_rfid_tag
- filter_type
- illuminance
- motor2_speed
- volume
### Air Purifier V3 (zhimi.airpurifier.v3)
* Power (on, off)
* Operation modes (auto, silent, favorite, idle, medium, high, strong)
* Child lock (on, off)
* LED (on, off)
* Attributes
- model
- aqi
- mode
- led
- buzzer
- child_lock
- purify_volume
- filter_life_remaining
- illuminance
- filter_hours_used
- filter_life_remaining
- motor_speed
- average_aqi
- volume
- motor2_speed
- filter_rfid_product_id
- filter_rfid_tag
- filter_type
- purify_volume
- learn_mode
- sleep_time
- sleep_mode_learn_count
- extra_features
- auto_detect
- use_time
- button_pressed
### Air Humidifier (zhimi.humidifier.v1)
Please follow the instructions on [Retrieving the Access Token](/components/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token.
* On, Off
* Operation modes (silent, medium, high)
* Buzzer (on, off)
* Child lock (on, off)
* LED brightness (bright, dim, off)
* Target humidity (30, 40, 50, 60, 70, 80)
* Attributes
- model
- temperature
- humidity
- mode
- buzzer
- child_lock
- trans_level
- target_humidity
- led_brightness
- button_pressed
- use_time
- hardware_version
### Air Humidifier CA (zhimi.humidifier.ca1)
* On, Off
* Operation modes (silent, medium, high, auto)
* Buzzer (on, off)
* Child lock (on, off)
* LED brightness (bright, dim, off)
* Target humidity (30, 40, 50, 60, 70, 80)
* Dry mode (on, off)
* Attributes
- model
- temperature
- humidity
- mode
- buzzer
- child_lock
- trans_level
- target_humidity
- led_brightness
- button_pressed
- use_time
- hardware_version
- speed
- depth
- dry
Please follow the instructions on [Retrieving the Access Token](/components/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token to use in the `configuration.yaml` file.
To add a Xiaomi Air Purifier to your installation, add the following to your `configuration.yaml` file:
@ -67,6 +193,10 @@ name:
required: false
type: string
default: Xiaomi Air Purifier
model:
description: The model of your device.
required: false
type: string
{% endconfiguration %}
## {% linkable_title Platform Services %}
@ -80,37 +210,37 @@ Set the fan speed/operation mode.
| `entity_id` | yes | Only act on a specific air purifier. Else targets all. |
| `speed` | no | Fan speed. Valid values are 'Auto', 'Silent', 'Favorite' and 'Idle' |
### {% linkable_title Service `fan.xiaomi_miio_set_buzzer_on` %}
### {% linkable_title Service `fan.xiaomi_miio_set_buzzer_on` %} (Air Purifier Pro excluded)
Turn the buzzer on.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on a specific air purifier. Else targets all. |
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------|
| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. |
### {% linkable_title Service `fan.xiaomi_miio_set_buzzer_off` %}
### {% linkable_title Service `fan.xiaomi_miio_set_buzzer_off` %} (Air Purifier Pro excluded)
Turn the buzzer off.
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------|
| `entity_id` | yes | Only act on a specific air purifier. Else targets all. |
| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. |
### {% linkable_title Service `fan.xiaomi_miio_set_led_on` %}
### {% linkable_title Service `fan.xiaomi_miio_set_led_on` %} (Air Purifier only)
Turn the led on.
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------|
| `entity_id` | yes | Only act on a specific air purifier. Else targets all. |
| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. |
### {% linkable_title Service `fan.xiaomi_miio_set_led_off` %}
### {% linkable_title Service `fan.xiaomi_miio_set_led_off` %} (Air Purifier only)
Turn the led off.
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------|
| `entity_id` | yes | Only act on a specific air purifier. Else targets all. |
| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. |
### {% linkable_title Service `fan.xiaomi_miio_set_child_lock_on` %}
@ -118,7 +248,7 @@ Turn the child lock on.
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------|
| `entity_id` | yes | Only act on a specific air purifier. Else targets all. |
| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. |
### {% linkable_title Service `fan.xiaomi_miio_set_child_lock_off` %}
@ -126,23 +256,105 @@ Turn the child lock off.
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------|
| `entity_id` | yes | Only act on a specific air purifier. Else targets all. |
| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. |
### {% linkable_title Service `fan.xiaomi_miio_set_led_brightness` %}
### {% linkable_title Service `fan.xiaomi_miio_set_led_brightness` %} (Air Purifier Pro excluded)
Set the led brightness. Supported values are 0 (Bright), 1 (Dim), 2 (Off).
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------|
| `entity_id` | yes | Only act on a specific air purifier. Else targets all. |
| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. |
| `brightness` | no | Brightness, between 0 and 2. |
### {% linkable_title Service `fan.xiaomi_miio_set_favorite_level` %}
### {% linkable_title Service `fan.xiaomi_miio_set_favorite_level` %} (Air Purifier only)
Set the favorite level of the operation mode "favorite".
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------|
| `entity_id` | yes | Only act on a specific air purifier. Else targets all. |
| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. |
| `level` | no | Level, between 0 and 16. |
### {% linkable_title Service `fan.xiaomi_miio_set_auto_detect_on` %} (Air Purifier Pro only)
Turn the auto detect on.
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------|
| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. |
### {% linkable_title Service `fan.xiaomi_miio_set_auto_detect_off` %} (Air Purifier Pro only)
Turn the auto detect off.
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------|
| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. |
### {% linkable_title Service `fan.xiaomi_miio_set_learn_mode_on` %} (Air Purifier 2 only)
Turn the learn mode on.
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------|
| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. |
### {% linkable_title Service `fan.xiaomi_miio_set_learn_mode_off` %} (Air Purifier 2 only)
Turn the learn mode off.
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------|
| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. |
### {% linkable_title Service `fan.xiaomi_miio_set_volume` %} (Air Purifier Pro only)
Set the sound volume.
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------|
| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. |
| `volume` | no | Volume, between 0 and 100. |
### {% linkable_title Service `fan.xiaomi_miio_reset_filter` %} (Air Purifier 2 only)
Reset the filter lifetime and usage.
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------|
| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. |
### {% linkable_title Service `fan.xiaomi_miio_set_extra_features` %} (Air Purifier only)
Set the extra features.
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------|
| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. |
| `features` | no | Integer, known values are 0 and 1. |
### {% linkable_title Service `fan.xiaomi_miio_set_target_humidity` %} (Air Humidifier only)
Set the target humidity.
| Service data attribute | Optional | Description |
|---------------------------|----------|-----------------------------------------------------------------|
| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. |
| `humidity` | no | Target humidity. Allowed values are 30, 40, 50, 60, 70 and 80 |
### {% linkable_title Service `fan.xiaomi_miio_set_dry_on` %} (Air Humidifier CA only)
Turn the dry mode on.
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------|
| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. |
### {% linkable_title Service `fan.xiaomi_miio_set_dry_off` %} (Air Humidifier CA only)
Turn the dry mode off.
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------|
| `entity_id` | yes | Only act on a specific Xiaomi miIO fan entity. Else targets all. |

View File

@ -0,0 +1,75 @@
---
layout: page
title: "folder watcher"
description: "Component for monitoring changes within the filesystem."
date: 2018-03-11 14:00
sidebar: true
comments: false
sharing: true
footer: true
logo: home-assistant.png
ha_category: System Monitor
ha_iot_class: "Local Polling"
ha_release: 0.67
---
This component adds [Watchdog](https://pythonhosted.org/watchdog/) file system monitoring, publishing events on the Home-Assistant bus on the creation/deletion/modification of files.
To configure the `folder_watcher` component add to you `configuration.yaml` file:
```yaml
{% raw %}
folder_watcher:
- folder: /config
{% endraw %}
```
{% configuration %}
folder:
description: The folder path
required: true
type: string
patterns:
description: Pattern matching to apply
required: false
default: "*"
type: string
{% endconfiguration %}
## Patterns
Pattern matching using [fnmatch](https://docs.python.org/3.6/library/fnmatch.html) can be used to limit filesystem monitoring to only files which match the configured patterns. The following example shows the configuration required to only monitor filetypes `.yaml` and `.txt`.
```yaml
{% raw %}
folder_watcher:
- folder: /config
patterns:
- '*.yaml'
- '*.txt'
{% raw %}
```
## Automations
Automations can be triggered on filesystem event data using a data_template. The following automation will send a notification with the name and folder of new files added to that folder:
```yaml
{% raw %}
- action:
- data_template:
message: 'Created {{trigger.event.data.file}} in {{trigger.event.data.folder}}'
title: New image captured!
data:
file: "{{trigger.event.data.path}}"
service: notify.pushbullet
alias: New file alert
condition: []
id: '1520092824697'
trigger:
- event_data: {"event_type":"created"}
event_type: folder_watcher
platform: event
{% endraw %}
```

View File

@ -0,0 +1,49 @@
---
layout: page
title: "freedns.afraid.org"
description: "Keep your DNS record up to date with FreeDNS."
date: 2018-03-27 21:30
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Utility
ha_release: 0.67
---
With the `freedns` component you can keep your [FreeDNS](https://freedns.afraid.org) record up to date.
## {% linkable_title Configuration %}
You need to determine your update URL or your access token.
1. Head over to the [FreeDNS](https://freedns.afraid.org) website and login to your account.
2. Select the menu "Dynamic DNS"
3. You should now see your update candiates in a table at the bottom of the page.
4. Copy the link target of the "Direct URL".
5. The access token is the part at the end of the link: `https://freedns.afraid.org/dynamic/update.php?YOUR_UPDATE_TOKEN`
6. Either put the token as `access_token` _or_ the whole URL into the `url` attribute.
To use the component in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
freedns:
access_token: YOUR_TOKEN
```
{% configuration %}
access_token:
description: Your access token. This is exclusive to `url`.
required: false
type: string
url:
description: The full update URL. This is exclusive to `access_token`.
required: false
type: string
update_interval:
description: How often to call the update service.
required: false
type: time period
default: 10 minutes
{% endconfiguration %}

View File

@ -228,3 +228,5 @@ Home Assistant will then convert its 8bit value in the message to and from the d
- [MQTT JSON Light](https://github.com/mertenats/Open-Home-Automation/tree/master/ha_mqtt_rgbw_light_with_discovery) is another implementation for ESP8266 including [MQTT discovery](/docs/mqtt/discovery/).
- [esphomelib](https://github.com/OttoWinter/esphomelib) is a library for ESP8266 and ESP32 boards that has many of Home Assistant's MQTT features (like [discovery](/docs/mqtt/discovery/)) pre-implemented and provides high-level abstractions for components such as lights or sensors.
- [AiLight](https://github.com/stelgenhof/AiLight) is a custom firmware for the Ai-Thinker (and equivalent) RGBW WiFi light bulbs that has an ESP8266 onboard and controlled by the MY9291 LED driver. It implements the [MQTT JSON light](/components/light.mqtt_json/) platform and supports ON/OFF, RGBW colours, brightness, colour temperature, flashing and transitions. Also it includes [MQTT Auto Discovery](/docs/mqtt/discovery/)) and the MQTT Last Will and Testament is enabled as well.

View File

@ -0,0 +1,52 @@
---
layout: page
title: "Nanoleaf Aurora Light Panel"
description: "Instructions how to integrate Nanoleaf Aurora Light Panels into Home Assistant."
date: 2018-01-04 20:00
sidebar: true
comments: false
sharing: true
footer: true
logo: nanoleaf_aurora_light.png
ha_category: Light
ha_iot_class: "Local Polling"
featured: false
ha_release: 0.67
---
### {% linkable_title Configuration Sample %}
To enable the Aurora lights, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
light:
- platform: aurora
host: 192.168.1.10
token: xxxxxxxxxxxxxxxxxxxxx
```
{% configuration %}
host:
description: IP address or host-name of the device, e.g., 192.168.1.10.
required: true
type: string
token:
description: The *auth* token that you get via *POST* to */api/v1/new*
required: true
type: string
name:
description: Name of the component, make this unique if you have multiple Light Panels
required: false
type: string
default: Aurora
{% endconfiguration %}
### {% linkable_title Getting The Auth Token %}
1. Make sure that your Nanoleaf Aurora Panel is fully patched (as of the time of writing the latest version was 2.2.0)
2. Hold down the *ON* button on the Panel for 5 seconds; the LED will start flashing
3. Issue a *POST* request to the API endpoint, e.g., via `$ curl -i -X POST http://192.168.1.155:16021/api/v1/new`
4. The output should include the auth token like *{"auth_token":"xxxxxxxxxxxxxxxxxxxxx"}*, copy the resulting token into your configuration
If you get a 403 Forbidden message, you probably did not press the *ON* button long enough. The time-frame to get a valid token is only 30 seconds, so you have to be quick to issue the curl request.

View File

@ -35,7 +35,7 @@ light:
Configuration variables:
- **ip** (*Required*): IP(s) of your wifi bulbs
- **ip** (*Required*): IP(s) of your Wifi bulbs
- **name** (*Optional*): A friendly name for the device.
- **transition** (*Optional*, default 350): Smooth transitions over time (in ms).
- **use_music_mode** (*Optional*, default False): Enable music mode.
@ -63,4 +63,17 @@ This component is tested to work with the following models. If you have a differ
- **YLDD02YL**: Lightstrip (Color)
- **MJCTD01YL**: Xiaomi Mijia Bedside Lamp - WIFI Version!
- **MJTD01YL**: Xiaomi Mijia Smart LED Desk Lamp (autodiscovery isn't possible because the device doesn't support mDNS due to the small amount of RAM)
- **YLXD02YL**: Yeelight Ceiling Light 4 (Jiaoyue 650)
- **YLXD02YL**: Yeelight Ceiling Light 4 (Jiaoyue 650)
- **YLXD01YL**: Yeelight Smart LED Ceiling Light - Youth Version
## {% linkable_title Platform Services %}
### {% linkable_title Service `light.yeelight_set_mode` %}
Set a operation mode.
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------------------------------------------|
| `entity_id` | yes | Only act on a specific yeelight. Else targets all. |
| `mode` | no | Operation mode. Valid values are 'last', 'normal', 'rgb', 'hsv', 'color_flow', 'moonlight'. |

View File

@ -1,8 +1,8 @@
---
layout: page
title: "Homematic Lock"
description: "Instructions on how to integrate Homematic locks within Home Assistant."
date: 2016-06-28 08:30
title: "Homematic Lock (KeyMatic)"
description: "Instructions how to integrate Homematic locks (KeyMatic) within Home Assistant."
date: 2018-01-28 03:00
sidebar: true
comments: false
sharing: true
@ -13,7 +13,6 @@ ha_release: 0.66
ha_iot_class: "Local Push"
---
The `homematic` lock platform lets you observe and control the state of the HomeMatic [Homematic](http://www.homematic.com/) KeyMatic lock through Home Assistant.
The `homematic` lock platform lets you control [Homematic](http://www.homematic.com/) locks through Home Assistant.
Devices will be configured automatically. Please refer to the [component](/components/homematic/) configuration on how to setup Homematic.
Devices will be configured automatically. Please refer to the [component](/components/homematic/) configuration on how to setup Homematic.

View File

@ -23,29 +23,5 @@ This component provides the following platforms:
- Device tracker: To track location of your car.
<p class='note warning'>
The component can integrate cars from European and African markets only.
</p>
To use Mercedes me in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
mercedesme:
username: YOUR_E_MAIL_ADDRESS
password: YOUR_PASSWORD
```
{% configuration %}
username:
description: The email address associated with your Mercedes me account.
required: true
type: string
password:
description: The password for your given Mercedes me account.
required: true
type: string
{% endconfiguration %}
<p class='note'>
The requirement `lxml` has to be [installed](http://lxml.de/installation.html) manually `pip install lxml` on some devices.
The component was removed. The vendor disabled the API endpoint and a new API is not available currently.
</p>

View File

@ -0,0 +1,52 @@
---
layout: page
title: "Mastodon"
description: "Instructions on how to add Instapush notifications to Home Assistant."
date: 2018-03-25 18:00
sidebar: true
comments: false
sharing: true
footer: true
logo: mastodon.png
ha_category: Notifications
ha_release: 0.67
---
The `mastodon` platform uses [MAstodon](https://joinmastodon.org/) to delivery notifications from Home Assistant.
Go to **Preferences** in the Mastodon web interface, then to **Development** and create a new application.
To add Mastodon to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
notify:
- name: NOTIFIER_NAME
platform: mastodon
access_token: !secret mastodon_access_token
client_id: !secret mastodon_client_id
client_secret: !secret mastodon_client_secret
```
{% configuration %}
access_token:
description: Your Mastodon access token.
required: true
type: string
client_id:
description: Your Mastodon client ID
required: true
type: string
client_secret:
description: Your Mastodon client secret.
required: true
type: string
base_url:
description: URL of the Mastodon instance to use.
required: false
type: string
default: https://mastodon.social
{% endconfiguration %}
To use notifications, please see the [getting started with automation page](/getting-started/automation/).

View File

@ -30,6 +30,7 @@ Configuration variables:
- **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`.
- **resource** (*Required*): The resource or endpoint that will receive the value.
- **method** (*Optional*): The method of the request. Default is GET.
- **headers** (*Optional*): The headers for the request.
- **message_param_name** (*Optional*): Parameter name for the message. Defaults to `message`.
- **title_param_name** (*Optional*): Parameter name for the title. Defaults to none.
- **target_param_name** (*Optional*): Parameter name for the target. Defaults to none.

View File

@ -24,14 +24,12 @@ To integrate pilight into Home Assistant, add the following section to your `con
```yaml
# Example configuration.yaml entry
pilight:
host: 127.0.0.1
port: 5000
```
Configuration variables:
- **host** (*Required*): The IP address of the computer running the pilight-daemon, e.g., 192.168.1.32.
- **port** (*Required*): The network port to connect to. The usual port is [5000](https://manual.pilight.org/development/api.html).
- **host** (*Optional*): The IP address of the computer running the pilight-daemon, e.g., 192.168.1.32.
- **port** (*Optional*): The network port to connect to. The usual port is [5001](https://manual.pilight.org/development/api.html).
- **send_delay** (*Optional*): You can define a send delay as a fraction of seconds if you experience transmission problems when you try to switch multiple switches at once. This can happen when you use a [pilight USB Nano](https://github.com/pilight/pilight-usb-nano) as hardware and switches a whole group of multiple switches on or off. Tested values are between 0.3 and 0.8 seconds depending on the hardware.
- **whitelist** (*Optional*): You can define a whitelist to prevent that too many unwanted RF codes (e.g., the neighbors weather station) are put on your HA event bus. All defined subsections have to be matched. A subsection is matched if one of the items are true.

View File

@ -13,12 +13,9 @@ featured: false
ha_release: "0.20"
---
The `qwikswitch` component is the main component to integrate various [QwikSwitch](http://www.qwikswitch.co.za/) devices with Home Assistant. The integration requires the QSUSB Modem device and connects to the QS Mobile application.
The `qwikswitch` component is the main component to integrate various [QwikSwitch](http://www.qwikswitch.co.za/) devices with Home Assistant.
Loading the `qwikswitch` component automatically adds all devices from the QS Mobile application. QS Mobile controls the QSUSB Modem device.
Currently QwikSwitch relays and LED dimmers are supported (tested). QwikSwitch relay devices can be [switches](/components/switch.qwikswitch/) or [lights](/components/light.qwikswitch/) in Home-Assistant. If the device name in the QSUSB app ends with ` Switch` it will be created as a switch, otherwise as a light.
The `qwikswitch` component discovers all devices from QS Mobile. Currently, Relays and LED dimmers are discovered in Home Assistant. Relay devices are [lights](/components/light.qwikswitch/) by default, and can be configured as [switches](/components/switch.qwikswitch/).
Example configuration:
@ -31,28 +28,45 @@ qwikswitch:
Configuration variables:
- **url** (*Required*): The URL including the port of your QwikSwitch hub.
- **dimmer_adjust** (*Optional*): A decimal value to adjust the brightness of the dimmer exponentially. Increasing this value allows dimmers that reaches full brightness with low values in QS Mobile to appear more linear in Home Assistant. Recommended values between 1 and 2 and the default is 1.
- **button_events** (*Optional*): A comma separated list of button types that will generate events. Details below.
- **dimmer_adjust** (*Optional*): A decimal value to adjust the brightness of the dimmer exponentially. Increasing this value allows dimmers that reach full brightness with low values in QS Mobile to appear more linear in Home Assistant. Recommended values between 1 and 2 and the default is 1.
- **button_events** (*Optional*): A comma-separated list of button types that will generate events. See [QwikSwitch Events] for detail.
- **switches** (*Optional*): A list of device QS_id's that should be switches, and not lights (i.e. `['@0dev01', '@0dev02']`)
- **sensors** (*Optional*): A dictionary of sensors. In the format of {entity_id: QS_id}. (i.e. `{door_sensor: '@0dev03'}`)
### {% linkable_title QwikSwitch Buttons %}
### {% linkable_title QwikSwitch Events %}
QwikSwitch devices (i.e. transmitter buttons) will fire events on the Home Assistant bus. These events can then be used as triggers for any `automation` action, as follows:
QwikSwitch devices (i.e., transmitter buttons) will fire events on the Home Assistant bus. These events can then be used as triggers for any `automation` action, as follows:
```yaml
automation:
- alias: Action - Respond to button press
- alias: Action - Respond to A button press
trigger:
platform: event
event_type: qwikswitch.button.@12df34
```
`event_type` names should be in the format **qwikswitch.button.@__ID__**. where **@__ID__** will be captured in the Home Assistant log when pressing the button. Alternatively, you can also get the device ID from the QS Mobile application or using the listen API call by browsing to `http://127.0.0.1:2020/&listen` and then pressing the button.
`event_type` names should be in the format **qwikswitch.button.@_QS_id_**. where **@_QS_id_** will be captured in the Home Assistant log when pressing the button. Alternatively, you can also get the device ID from the QS Mobile application or by using the listen API call by browsing to `http://127.0.0.1:2020/&listen` and then pressing the button.
The full packet from the QSUSB API will be passed as `data`
By default events will be fired if the value in the command (cmd) field of the listen packet equals:
- `TOGGLE` - Normal QwikSwitch Transmitter button
- `SCENE EXE` - QwikSwitch Scene Transmitter buttons
- `LEVEL` - QwikSwitch OFF Transmitter buttons
The list of recognized commands can be extended for Keyfobs, door sensors, and PIR transmitters with the **button_events** configuration option. **button_events** contain a comma separated list of commands that will fire Home Assistant events. By default it is: TOGGLE,SCENE EXE,LEVEL.
The list of recognized commands can be extended for Keyfobs, door sensors, and PIR transmitters with the **button_events** configuration option. **button_events** can be a list or comma separated list of additional commands that will fire Home Assistant events. By default, it is: TOGGLE,SCENE EXE,LEVEL.
On some QS Mobile servers button events are only generated for switches added to the QS Mobile application, so it might be best to test button presses through the `/&listen` API
### {% linkable_title Qwikswitch Sensors %}
Some Qwikswith devices might support more than one channel per device (i.e. ipmod). The channel can be specified by appending a number to the QS_id. Example sensors configuration:
```yaml
qwikswitch:
...
sensors:
door_sensor: '@0dev01'
door2_sensor: '@0dev02.1'
door3_sensor: '@0dev02.2'
```

View File

@ -37,7 +37,7 @@ sensor:
db_url:
description: The URL which points to your database. See [supported engines](/components/recorder/#custom-database-engines).
required: false
default: Defaults to the recorder db_url.
default: "Defaults to the default recorder `db_url` (not the current `db_url` of recorder)."
type: string
queries:
description: List of your queries.

View File

@ -0,0 +1,51 @@
---
layout: page
title: "Waze Travel Time"
description: "Instructions on how to add Waze travel time to Home Assistant."
date: 2018-01-23 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: waze.png
ha_category: Transport
ha_iot_class: "Cloud Polling"
ha_release: 0.67
---
The `waze_travel_time` sensor provides travel time from the [Waze](https://www.waze.com/).
Unit system is set to metric system.
## {% linkable_title Configuration %}
To use this sensor in your installation, add the following `abode` section to your `configuration.yaml` file:
```yaml
# Example entry for configuration.yaml
sensor:
- platform: waze_travel_time
origin: Montréal, QC
destination: Québec, QC
region: 'US'
```
{% configuration %}
origin:
description: Enter the starting address or the GPS coordinates of the location (GPS coordinates has to be separated by a comma).
required: true
type: string
destination:
description: Enter the destination address or the GPS coordinates of the location (GPS coordinates has to be separated by a comma).
required: true
type: string
region:
description: Choose one of the available regions from 'EU', 'US', 'NA' (equivalent to 'US') or 'IL'.
required: true
type: string
name:
description: A name to display on the sensor.
required: false
default: "Waze Travel Time"
type: string
{% endconfiguration %}

View File

@ -29,7 +29,6 @@ Please follow the instructions on [Retrieving the Access Token](/components/vacu
To add a Xiaomi Mi Air Quality Monitor to your installation, add the following to your `configuration.yaml` file:
```yaml
sensor:
# Example configuration.yaml entry
sensor:
- platform: xiaomi_miio

View File

@ -0,0 +1,18 @@
---
layout: page
title: "Amcrest IP Camera Settings"
description: "Instructions on how to integrate settings for Amcrest IP Camera as switches within Home Assistant."
date: 2018-03-08 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: amcrest.png
ha_category: Switch
ha_release: 0.67
ha_iot_class: "Local Polling"
---
The `amcrest` switch platform lets you control settings of [Amcrest IP Camera](https://home-assistant.io/components/camera.amcrest/) through Home Assistant.
Switches will be configured automatically. Please refer to the [component](/components/amcrest/) configuration on how to setup.

View File

@ -0,0 +1,17 @@
---
layout: page
title: "Tahoma Switch"
description: "Instructions on how to integrate Tahoma switches into Home Assistant."
date: 2017-07-18 12:00
sidebar: true
comments: false
sharing: true
footer: true
logo: tahoma.png
ha_category: Sensor
ha_release: 0.59
---
The `tahoma` switch platform lets you see switches added to your Tahoma Box in Home Assistant.
Switches will be added automatically. Please refer to the [component](/components/tahoma/) configuration on how to setup Tahoma.

View File

@ -39,6 +39,6 @@ Configuration variables:
- **port** (*Optional*): Port to connect to. Default is 23 if not defined.
- **command_on** (*Required*): Command to turn device on.
- **command_off** (*Required*): Command to turn device off.
- **command_state** (*Required*): Command to determine the state of the switch. If not defined the switch will assume successful state changes.
- **value_template** (*Required*): The template evaluating to `true` will indicate that the switch is on.
- **command_state** (*Optional*): Command to determine the state of the switch. If not defined the switch will assume successful state changes.
- **value_template** (*Optional*): The template evaluating to `true` will indicate that the switch is on.
- **name** (*Optional*): The name used to display the switch in the frontend.

View File

@ -68,6 +68,7 @@ Home Assistant adds extensions to allow templates to access all of the current s
- `states.sensor.temperature` returns the state object for `sensor.temperature`.
- `states('device_tracker.paulus')` will return the state string (not the object) of the given entity or `unknown` if it doesn't exist.
- `is_state('device_tracker.paulus', 'home')` will test if the given entity is specified state.
- `state_attr('device_tracker.paulus', 'battery')` will return the value of the attribute or None if it doesn't exist.
- `is_state_attr('device_tracker.paulus', 'battery', 40)` will test if the given entity is specified state.
- `now()` will be rendered as current time in your time zone.
- For specific values: `now().second`, `now().minute`, `now().hour`, `now().day`, `now().month`, `now().year`, `now().weekday()` and `now().isoweekday()`
@ -85,6 +86,10 @@ Home Assistant adds extensions to allow templates to access all of the current s
- Filter `timestamp_custom(format_string, local_boolean)` will convert an UNIX timestamp to a custom format, the use of a local timestamp is default, supporting [Python format options](https://docs.python.org/3/library/time.html#time.strftime).
- Filter `max` will obtain the largest item in a sequence.
- Filter `min` will obtain the smallest item in a sequence.
- Filter `regex_match(string, find, ignorecase=FALSE)` will match the find expression at the beginning of the string using regex.
- Filter `regex_search(string, find, ignorecase=FALSE)` will match the find expression anywhere in the string using regex.
- Filter `regex_replace(string, find='', replace='', ignorecase=False)` will replace the find expression with the replace string using regex.
- Filter `regex_findall_index(string, find='', index=0, ignorecase=False)` will find all regex matches of find in string and return the match at index (findall returns an array of matches).
[strp-format]: https://docs.python.org/3.6/library/datetime.html#strftime-and-strptime-behavior
@ -114,7 +119,7 @@ The next two statements result in same value if state exists. The second one wil
### {% linkable_title Attributes %}
Print an attribute if state is defined
Print an attribute if state is defined. Both will return the same thing but the last one you can specify entity_id from a variable.
```text
{% raw %}{% if states.device_tracker.paulus %}
@ -124,6 +129,18 @@ Print an attribute if state is defined
{% endif %}{% endraw %}
```
With strings
```text
{% raw %}{% set tracker_name = "paulus"%}
{% if states("device_tracker." + tracker_name) != "unknown" %}
{{ state_attr("device_tracker." + tracker_name, "battery")}}
{% else %}
??
{% endif %}{% endraw %}
```
### {% linkable_title Sensor states %}
Print out a list of all the sensor states.

View File

@ -1422,7 +1422,7 @@ Name of the event to subscribe to. Can be a standard Home Assistant event such a
One or more keyword value pairs representing App specific parameters to supply to the callback. If the keywords match values within the event data, they will act as filters, meaning that if they don't match the values, the callback will not fire.
As an example of this, a Minimote controller when activated will generate an event called `zwave.scene_activated`, along with 2 pieces of data that are specific to the event - `entity_id` and `scene`. If you include keyword values for either of those, the values supplied to the `listen_event()1 call must match the values in the event or it will not fire. If the keywords do not match any of the data in the event they are simply ignored.
As an example of this, a Minimote controller when activated will generate an event called `zwave.scene_activated`, along with 2 pieces of data that are specific to the event - `entity_id` and `scene`. If you include keyword values for either of those, the values supplied to the `listen_event()` call must match the values in the event or it will not fire. If the keywords do not match any of the data in the event they are simply ignored.
Filtering will work with any event type, but it will be necessary to figure out the data associated with the event to understand what values can be filtered on. This can be achieved by examining Home Assistant's logfiles when the event fires.

View File

@ -15,6 +15,7 @@ The discovery of MQTT devices will enable one to use MQTT devices with only mini
Supported by MQTT discovery:
- [Binary sensors](/components/binary_sensor.mqtt/)
- [Cameras](/components/camera.mqtt/)
- [Covers](/components/cover.mqtt/)
- [Fans](/components/fan.mqtt/)
- [Lights](/components/light.mqtt/)

View File

@ -94,7 +94,8 @@ For more information about jinja2, visit [jinja2 documentation](http://jinja.poc
{% linkable_title mqtt %}
This section is only visible if the MQTT is configured. To configure MQTT, add `mqtt:` to the `configuration.yaml` file. For more information, refer to [mqtt](/components/mqtt/)
This section is only visible if the MQTT component is configured. To configure MQTT, add `mqtt:` to the `configuration.yaml` file. For more information, refer to the [mqtt](/components/mqtt/) component.
Even though MQTT in general provides deeper functionality, the developer tools section of MQTT is limited to publishing messages to a given topic. It supports templates for the payload. To publish a message, simply specify the topic name and the payload and click “PUBLISH” button.
{% linkable_title Info %}

View File

@ -1,4 +1,4 @@
{% assign url_parts = page.url | split: '/' %}
{% if page.hide_github_edit != true %}
<div class='edit-github'><a href='https://github.com/home-assistant/home-assistant.github.io/tree/current/source/{{ page.path }}'>Edit this page on GitHub</a></div>
<div class='edit-github'><a href='{{ site.NLY_REPOSITORY_URL }}/tree/{{ site.NLY_HEAD }}/source/{{ page.path }}'>Edit this page on GitHub</a></div>
{% endif %}

View File

@ -78,4 +78,4 @@ _LOGGER.error("No route to device: %s", self._resource)
```
Don't print out wrong API keys, tokens, usernames, or passwords.
Also note that `_LOGGER.info` is reserved for the core, use `_LOGGER.debug` in anything else.

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB