Merge pull request #1741 from home-assistant/next

0.36
This commit is contained in:
Paulus Schoutsen 2017-01-15 09:10:22 -08:00 committed by GitHub
commit 706472ad9b
70 changed files with 1753 additions and 86 deletions

View File

@ -130,9 +130,9 @@ social:
# Home Assistant release details
current_major_version: 0
current_minor_version: 35
current_patch_version: 3
date_released: 2016-12-23
current_minor_version: 36
current_patch_version: 0
date_released: 2017-01-15
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.

View File

@ -0,0 +1,16 @@
---
layout: page
title: "BeagleBone Black GPIO"
description: "Instructions how to integrate the GPIO capability of a BeagleBone Black into Home Assistant."
date: 2017-01-14 10:00
sidebar: true
comments: false
sharing: true
footer: true
logo: beaglebone-black.png
ha_category: DIY
ha_release: 0.36
---
The `bbb_gpio` component is the base for all [BeagleBone Black][https://beagleboard.org/black] related GPIO platforms in Home Assistant. There is no setup needed for the component itself, for the platforms please check their corresponding pages.

View File

@ -30,6 +30,7 @@ Configuration variables:
- **host** (*Optional*): The IP or hostname of the flic service server. (default: `localhost`)
- **port** (*Optional*): The port of the flic service. (default: `5551`)
- **discovery** (*Optional*): If `true`, the component is configured to constantly scan for new buttons. (default: `true`)
- **ignored_click_types**: List of click types whose occurrence should not trigger and `flic_click` event.
- **timeout** (*Optional*): Maximum time in seconds an event can be queued locally on a button before discarding the event. (default: `3`)
#### {% linkable_title Discovery %}
@ -64,3 +65,7 @@ Event data:
- **button_address**: The bluetooth address of the button, that triggered the event.
- **click_type**: The type of click. Possible values are `single`, `double` and `hold`.
- **queued_time**: The amount of time this event was queued on the button, in seconds.
##### {% linkable_title Ignoring Click Types %}
For some purposes it might make sense to exclude a specific click type from triggering click events. For example when ignoring double clicks, pressing the button twice fast results in two `single` instead of a `double` click event. This is very useful for applications where you want to click fast.

View File

@ -33,7 +33,7 @@ Configuration variables:
- **username** (*Optional*): The username for accessing your camera.
- **password** (*Optional*): The password for accessing your camera.
- **authentication** (*Optional*): `basic` (default) or `digest` auth for requests.
-
<p class='note'>
There is a <a href="https://github.com/shazow/urllib3/issues/800" target="_blank">known issue in urllib3</a> that you will get error messages in your logs like <code>[StartBoundaryNotFoundDefect(), MultipartInvariantViolationDefect()], unparsed data: ''</code> but the component still works fine. You can ignore the messages.
</p>

View File

@ -22,6 +22,7 @@ Available demo platforms:
- [Climate](/components/climate/) (`climate`)
- [Cover](/components/cover/) (`cover`)
- [Fan](/components/fan/) (`fan`)
- [Image Processing](/components/image_processing/) (`image_processing`)
- [Light](/components/light/) (`light`)
- [Lock](/components/lock/) (`lock`)
- [Notification](/components/notify/) (`notify`)

View File

@ -32,6 +32,10 @@ device_tracker:
- platform: bluetooth_le_tracker
```
Configuration variables:
- **device_id** (*Optional*): The device ID for the bluetooth device to be used for tracking. Defaults to `hci0`.
As some BT LE devices change their MAC address regularly, a new device is only discovered when it has been seen 5 times.
Some BTLE devices (e.g. fitness trackers) are only visible to the devices that they are paired with. In this case, the BTLE tracker won't see this device.

View File

@ -0,0 +1,33 @@
---
layout: page
title: "Ping (ICMP)"
description: "Instructions how to integrate Ping (ICMP)-based presence detection into Home Assistant."
date: 2017-01-06 08:00
sidebar: true
comments: false
sharing: true
footer: true
logo: home-assistant.png
ha_category: Presence Detection
ha_release: 0.36
---
The `ping` platform offers presence detection by using `ping` to send ICMP echo requests. This can be useful when devices are running a firewall and are blocking UDP or TCP packets but responding to ICMP requests (like Android phones). This tracker doesn't need to know the MAC address since the host can be on a different subnet. This makes this an option to detect hosts on a different subnet when `nmap` or other solutions don't work since `arp` doesn't work.
To use this presence detection in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
device_tracker:
- platform: ping
hosts:
hostone: 192.168.2.10
```
Configuration variables:
- **hosts** array (*Required*): List of device names and their corresponding IP address or hostname.
- **count** (*Optional*): Number of packet used for each device (avoid false detection).
See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked.

View File

@ -0,0 +1,34 @@
---
layout: page
title: "TrackR"
description: "Instructions how to use TrackR to track devices in Home Assistant."
date: 2016-12-22 1000
sidebar: true
comments: false
sharing: true
footer: true
logo: trackr.png
ha_release: 0.36
ha_category: Presence Detection
ha_iot_class: "Cloud Polling"
---
The `trackr` platform allows you to detect presence using [TrackR](https://www.thetrackr.com/) devices.
The offical TrackR mobile app handles the tracking of the TrackR devices using your phones bluetooth and GPS.
To integrate TrackR in Home Assistant, add the following section to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
device_tracker:
platform: trackr
username: USERNAME
password: PASSWORD
```
Configuration variables:
- **username** (*Required*): The email address for the TrackR account.
- **password** (*Required*): The password for your given username.

View File

@ -0,0 +1,28 @@
---
layout: page
title: "UPC ConnectBox"
description: "Instructions how to integrate UPC ConnectBox into Home Assistant."
date: 2016-12-30 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: upc.png
ha_category: Presence Detection
ha_release: 0.36
---
The `upc_connect` platform offers presence detection by looking at connected devices to an [ConnectBox](https://www.upc.ch/de/internet/connectbox/) router from [Liberty Global](http://www.libertyglobal.com/), which is a Internet provider in Switzerland, Austria.
To use an Internet-Box router in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
device_tracker:
platform: upc_connect
password: '123456'
host: "192.168.0.1" # only required if not 192.168.0.1
```
See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked.

View File

@ -0,0 +1,35 @@
---
layout: page
title: "Xiaomi Router"
description: "Instructions how to integrate Xiaomi routers into Home Assistant."
date: 2017-01-12 12:04
sidebar: true
comments: false
sharing: true
footer: true
logo: xiaomi.png
ha_category: Presence Detection
ha_release: 0.36
---
The `xiaomi` platform offers presence detection by looking at connected devices to a [Xiaomi](http://miwifi.com) router.
To use an Xiaomi router in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
device_tracker:
- platform: xiaomi
host: YOUR_ROUTER_IP
password: YOUR_ADMIN_PASSWORD
```
Configuration variables:
- **host** (*Required*): The IP address of your router, eg. `192.168.0.1`.
- **username** (*Optional*: The admin username. By default `admin`.
- **password** (*Required*): The password for the admin account.
See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked.

View File

@ -0,0 +1,19 @@
---
layout: page
title: "Wink Fan"
description: "Instructions how to setup the Wink fans within Home Assistant."
date: 2017-01-14 12:00
sidebar: true
comments: false
sharing: true
footer: true
logo: wink.png
ha_category: Fan
ha_release: 0.36
---
The Wink fan platform allows you to control your [Wink](http://www.wink.com/) fans.
The requirement is that you have setup your [Wink hub](/components/wink/).

View File

@ -9,7 +9,7 @@ sharing: true
footer: true
logo: home-assistant.png
ha_category: Release
ha_release: 0.35
ha_release: 0.36
---
Details about the latest release can always be found at:

View File

@ -0,0 +1,36 @@
---
layout: page
title: "Image Processing"
description: "Instructions how to setup image processing with Home Assistant."
date: 2017-01-09 00:00
sidebar: true
comments: false
sharing: true
footer: true
ha_release: 0.36
---
Image processing enables Home Assistant to process image from [cameras][/components/#camera]. Only camera entities are supported as sources.
For interval control, use `scan_interval` in platform.
## {% linkable_title ALPR %}
Alpr entities attribute have a vehicle counter `vehicles` and all found plates as `plates`.
This event is trigger after OpenALPR found a new licence plate.
```yaml
# Example configuration.yaml automation entry
automation:
- alias: Open garage door
trigger:
platform: event
event_type: openalpr.found
event_data:
entity_id: openalpr.camera_garage_1
plate: BE2183423
...
```
The following event attributes will be present: `entity_id`, `plate`, `confidence`

View File

@ -0,0 +1,35 @@
---
layout: page
title: "OpenALPR Cloud"
description: "Instructions how to integrate licences plates with OpenALPR cloud into Home Assistant."
date: 2017-01-09 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: openalpr.png
ha_category: Image_Processing
featured: false
ha_release: 0.36
---
[OpenALPR](http://www.openalpr.com/) integration for Home Assistant allows you to process licences plates from a camera. You can use them to open a garage door or trigger any other [automation](https://home-assistant.io/components/automation/).
### {% linkable_title Configuration Home Assistant %}
```yaml
# Example configuration.yaml entry
image_processing:
- platform: openalpr_cloud
region: eu
source:
- entity_id: camera.garage
```
Configuration variables:
- **region** (*Required*): Country or region. List of supported [values](https://github.com/openalpr/openalpr/tree/master/runtime_data/config).
- **alpr_bin** (*Optional*): The command line tool alpr from OpenALPR software for local processing. Defaults to `alpr`.
- **confidence** (*Optional*): The minimum of confidence in percent to process with Home Assistant. Defaults to 80.
- **source** array (*Required*): List of image sources.
- **entities** (*Required*): A list of devices to add in Home Assistant.
- **name** (*Optional*): This parameter allows you to override the name of your OpenALPR entity.

View File

@ -0,0 +1,54 @@
---
layout: page
title: "OpenALPR Local"
description: "Instructions how to integrate licences plates with OpenALPR local into Home Assistant."
date: 2017-01-09 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: openalpr.png
ha_category: Image_Processing
featured: false
ha_release: 0.36
---
[OpenALPR](http://www.openalpr.com/) integration for Home Assistant allows you to process licences plates from a camera. You can use them to open a garage door or trigger any other [automation](https://home-assistant.io/components/automation/).
### {% linkable_title Local installation %}
If you want process all data locally, you need version 2.3.1 or higher of the `alpr` commandline tool.
If you don't find binaries for your distribution you can compile from source. Documention of how to build openalpr is found [here](https://github.com/openalpr/openalpr/wiki).
On a Debian system you can use this `cmake` command to build only the command line tool:
```bash
$ cmake -DWITH_TEST=FALSE -DWITH_BINDING_JAVA=FALSE --DWITH_BINDING_PYTHON=FALSE --DWITH_BINDING_GO=FALSE -DWITH_DAEMON=FALSE -DCMAKE_INSTALL_PREFIX:PATH=/usr ..
```
Verify your `alpr` installation with:
```
$ wget -O- -q http://plates.openalpr.com/h786poj.jpg | alpr -
```
### {% linkable_title Configuration Home Assistant %}
```yaml
# Example configuration.yaml entry
image_processing:
- platform: openalpr_cloud
api_key: 'sk_abcxyz123456'
region: eu
source:
- entity_id: camera.garage
```
Configuration variables:
- **region** (*Required*): Country or region. List of supported [values](https://github.com/openalpr/openalpr/tree/master/runtime_data/config).
- **api_key** (*Required*): You need an API key from [OpenALPR Cloud](https://cloud.openalpr.com/).
- **confidence** (*Optional*): The minimum of confidence in percent to process with Home Assistant. Defaults to 80.
- **source** array (*Required*): List of image sources.
- **entities** (*Required*): A list of devices to add in Home Assistant.
- **name** (*Optional*): This parameter allows you to override the name of your OpenALPR entity.

View File

@ -38,6 +38,23 @@ Configuration variables:
- **tags** (*Optional*): Tags to mark the data.
Starting with 0.36 the InfluxDB component has a new schema to store values in the InfluxDB databases.
- There will not be any tags/fields named time anymore.
- All numeric fields (int/float/bool) will be stored as float inside InfluxDB database.
- All string fields corresponding to state attributes will be renamed as `FIELDNAME_str`, where `FIELDNAME` is the state attribute, to avoid type conflicts.
- All string fields corresponding to a state will be renamed as state (former value).
- Fields named value will always be stored as float.
- Fields named state will always be stored as string.
If you need to migrate your database, you may require to run the `influxdb_migrator` script.
```bash
$ hass --script influxdb_migrator \
-H IP_INFLUXDB_HOST -u INFLUXDB_USERNAME -p INFLUXDB_PASSWORD \
-o test_series -d INFLUXDB_DB_NAME
```
## {% linkable_title Examples %}

View File

@ -0,0 +1,54 @@
---
layout: page
title: "Insteon (local)"
description: "Instructions how to setup the Insteon Hub locally within Home Assistant."
date: 2016-12-18 08:00
sidebar: true
comments: false
sharing: true
footer: true
logo: insteon.png
ha_category: Hub
ha_iot_class: "Local Polling"
ha_version: 0.36
---
The `insteon_local` component let you use your [Insteon Hub](http://www.insteon.com/insteon-hub/) with Home Assistant.
To integrate your Insteon local setup with Home Assistant, add the following section to your `configuration.yaml` file:
```yaml
# Example configuration.yaml platform entry
insteon_local:
host: YOUR HUB IP
username: YOUR HUB USERNAME
password: YOUR HUB PASSWORD
```
Configuration variables:
- **host** (*Required*): The IP address of your hub.
- **username** (*Required*): The username used to access the Insteon interface (find in your Insteon app).
- **password** (*Required*): The password used to access the Insteon interface.
- **timeout** (*Optional*): Timeout to wait for connections. Defaults to 10 seconds.
- **port** (*Optional*): The port your hub is configured to listen to. Defaults to `25105`.
### {% linkable_title Full configuration %}
The `insteon_local` component currently supports both lights (dimmers) and switches. A full configuration may look like so:
```yaml
insteon_local:
host: YOUR HUB IP
username: YOUR HUB USERNAME
password: YOUR HUB PASSWORD
timeout: 10
port: 25105
light:
- platform: insteon_local
switch:
- platform: insteon_local
```

View File

@ -22,6 +22,7 @@ Example of bulbs:
- [MagicLight® Plus - WiFi Smart LED Light Bulb4](https://www.amazon.com/gp/product/B00NOC93NG)
- [Flux WiFi Smart LED Light Bulb4](http://smile.amazon.com/Flux-WiFi-Smart-Light-Bulb/dp/B01A6GHHTE)
- [WIFI smart LED light Bulb1](http://smile.amazon.com/gp/product/B01CS1EZYK)
- [Ledenet WiFi RGBW Controller](https://www.amazon.com/gp/product/B01DY56N8U)
The chances are high that your bulb or controller (eg. WiFi LED CONTROLLER) will work if you can control the device with the MagicHome app.
@ -63,7 +64,7 @@ light:
name: flux_living_room_lamp
automation:
random_flux_living_room_lamp:
alias: random_flux_living_room_lamp
trigger:
platform: time
seconds: '/45'
@ -89,3 +90,14 @@ Will add a light with white mode (default). Changing the brightness will set the
name: NAME
mode: "rgbw"
```
Some devices such as the Ledenet RGBW controller use a slightly difference protocol for communicating the brightness to each color channel. If your device is only turning on or off but not changing color or brightness try adding the LEDENET protocol.
```yaml
light:
- platform: flux_led
devices:
192.168.1.10:
name: NAME
protocol: 'ledenet'
```

View File

@ -0,0 +1,34 @@
---
layout: page
title: "Insteon (Local) Light"
description: "Instructions how to setup the Insteon Hub Lights locally within Home Assistant."
date: 2016-12-18 08:00
sidebar: true
comments: false
sharing: true
footer: true
logo: insteon.png
ha_category: Light
ha_version: 0.36
---
The `insteon_local` light component lets you control your lights connected to an [Insteon Hub](http://www.insteon.com/insteon-hub/) with Home Assistant.
To integrate add a light, configure your hub Insteon(local) with Home Assistant, add the following section to your `configuration.yaml` file:
```yaml
# Example configuration.yaml platform entry
insteon_local:
host: YOUR HUB IP
username: YOUR HUB USERNAME
password: YOUR HUB PASSWORD
timeout: 10
port: 25105
```
To add lights (dimmers) to your set-up, add the platform to your light configuration:
```yaml
light:
- platform: insteon_local
```

View File

@ -0,0 +1,39 @@
---
layout: page
title: "Tikteck"
description: "Instructions on how to setup Tikteck LED bulbs within Home Assistant."
date: 2017-01-04 16:32
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Light
ha_iot_class: "Local Polling"
featured: false
ha_release: 0.36
---
Support for the Bluetooth smart bulb from [Tikteck](http://www.tikteck.com). To enable these lights, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
light:
- platform: tikteck
devices:
00:21:4D:00:00:01:
name: Bulb 1
password: 76409387
00:21:4D:00:00:01:
name: Bulb 2
password: 36478643
```
Configuration variables:
- **devices**: A list of devices with their bluetooth address, a custom name to use in the frontend and the bulb-specific password. The password can be obtained from an Android device using an app like [aLogcat](https://play.google.com/store/apps/details?id=org.jtb.alogcat&hl=en) or the `adb logcat` command for phones in developer mode. Look for a line like:
```
E LedoBleSDK: login =skName=======[Smart Light]=======skPw==[password]
```
The password is the text between the square brackets following `skPw`.

View File

@ -0,0 +1,30 @@
---
layout: page
title: "Zengge"
description: "Instructions how to integrate Zengge Bluetooth bulbs into Home Assistant."
date: 2017-01-14 08:00
sidebar: true
comments: false
sharing: true
footer: true
logo: zengge.png
ha_category: Light
ha_iot_class: "Local Polling"
ha_release: 0.36
---
The `zengge` platform allows you to integrate your [Zengge Bluetooth bulbs](http://www.zengge.com/) into Home Assistant.
```yaml
# Example configuration.yaml entry
light:
- platform: zengge
devices:
C4:BE:84:51:54:8B:
name: Living Room
```
Configuration variables:
- **devices** array (*Required*): List of your devices/bulbs.
- **MAC address** (*Required*): The MAC address of the bulb.
- **MAC address** (*Optional*): Friendly name for the frontend.

View File

@ -34,6 +34,13 @@ Configuration variables:
- **username** (*Optional*): The username of the Samsung Smart TV. Defaults to admin.
- **password** (*Optional*): The password of the Samsung Smart TV. Defaults to password.
- **name** (*Optional*): The name you would like to give to the Sharp Aquos TV.
- **power_on_enabled** (*Optional*): If you want to be able to turn on your TV. Defaults to False.
<p class='note warning'>
When you set **power_on_enabled** as True, you have to turn on your TV on the first time with the remote.
Then you will be able to turn on with Home-Assistant.
Also, with **power_on_enabled** as True, the Aquos logo on your TV will stay on when you turn off the TV and your TV could consumes more power.
</p>
Currently known supported models:

View File

@ -23,13 +23,13 @@ To add Kodi to your installation, add the following to your `configuration.yaml`
# Example configuration.yaml entry
media_player:
- platform: kodi
host: http://192.168.0.123
host: 192.168.0.123
```
Configuration variables:
- **host** (*Required*): The host name or address of the device that is running XBMC/Kodi
- **port** (*Optional*): The port number. Defaults to 8080.
- **port** (*Optional*): The http port number. Defaults to 8080.
- **name** (*Optional*): The name of the device used in the frontend.
- **username** (*Optional*): The XBMC/Kodi HTTP username.
- **password** (*Optional*): The XBMC/Kodi HTTP password.

View File

@ -0,0 +1,50 @@
---
layout: page
title: "NAD"
description: "Instructions how to integrate NAD receivers into Home Assistant."
date: 2016-01-05 20:00
sidebar: true
comments: false
sharing: true
footer: true
logo: nad.png
ha_category: Media Player
ha_release: 0.36
ha_iot_class: "Local Polling"
---
The `nad` platform allows you to control a [NAD receiver](http://nadelectronics.com) through RS232 from Home Assistant.
To add an NAD receiver to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
media_player:
- platform: nad
serial_port: /dev/ttyUSB0
name: NAD Receiver
min_volume: -60
max_volume: -20
sources:
1: 'Kodi'
2: 'TV'
```
Configuration variables:
- **serial_port** (*Required*): The serial port . Default is `/dev/ttyUSB0`
- **name** (*Optional*): Name of the device. Default is NAD Receiver.
- **min_volume** (*optional*): Minimum volume in dB to use with the slider. Default is `-92`
- **max_volume** (*optional*): Maximum volume in dB to use with the slider. Default is `-20`
- **sources** (*Optional*): A list of mappings from source to source name. Valid sources are `1 to 10`.
The min_volume and max_volume are there to protect you against misclicks on the slider so you will not blow up your speakers when you go from -92dB to +20dB.
You can still force it to go higher or lower than the values set with the plus and minus buttons.
<p class='note warning'>
On linux the user running home-assistant needs `dialout` permissions to access the serial port.
This can be added to the user by doing `sudo usermod -a -G dialout <username>`.
Be aware that the user might need to logout and logon again to activate these permissions.
</p>

View File

@ -21,6 +21,7 @@ Currently known supported models:
- TX-P42STW50
- TC-P65VT30
- TX-55CX700E
- TX-49DX650B
If your model is not on the list then give it a test, if everything works correctly then add it to the list on [GitHub](https://github.com/home-assistant/home-assistant.io).

View File

@ -27,4 +27,20 @@ media_player:
Configuration variables:
- **name** (*Optional*): The name to use in the frontend.
- **arguments** (*Optional*): Additional arguments to be passed to VLC.
Only "music" media type is supported for now.
This service will control a background VLC instance, therefore you cannot use this to control a VLC instance launched on your desktop, unlike the Kodi media player for example.
## {% linkable_title Full configuration %}
A full configuration for VLC could llok like the one below:
```yaml
# Example configuration.yaml entry
media_player:
- platform: vlc
name: speaker_1
arguments: '--alsa-audio-device=hw:1,0'
```

View File

@ -22,17 +22,19 @@ notify:
name: NOTIFIER_NAME
platform: apns
cert_file: cert_file.pem
topic: topic
```
Configuration variables:
- **name** (*Required*): The name of the notifier. The notifier will bind to the service `notify.NOTIFIER_NAME`.
- **sandbox** (*Optional*): If true notifications will be sent to the sandbox (test) notification service. Default false.
- **cert_file** (*Required*): The certificate to use to authenticate with the APNS service.
- **topic** (*Required*): The app bundle ID specified in the certificate.
- **sandbox** (*Optional*): If true notifications will be sent to the sandbox (test) notification service. Default false.
The APNS platform will register two services, `notify.NOTIFIER_NAME` and `apns.NOTIFIER_NAME`.
The APNS platform will register two services, `notify.NOTIFIER_NAME` and `notify.apns_NOTIFIER_NAME`.
### apns.NOTIFIER_NAME
### notify.apns_NOTIFIER_NAME
This service will register device id's with home assistant. In order to receive a notification a device must be registered. The app on the device can use this service to send an ID to Home Assistant during startup, the ID will be stored in `[NOTIFIER_NAME]_apns.yaml`.
@ -47,7 +49,7 @@ This service will send messages to a registered device. The following parameters
- **target**: The desired state of the device, only devices that match the state will receive messages. To enable state tracking a registered device must have a `tracking_device_id` attribute added to the `[NOTIFIER_NAME]_apns.yaml` file. If this ID matches a device in `known_devices.yaml` the device state will be tracked.
- **data**:
* **badge**: The number to display as the badge of the app ic.
* **sound**: The name of a sound file in the app bundle or in the Library/Sounds folder.
* **category**: Provide this key with a string value that represents the identifier property of the UIMutableUserNotificationCategory.
* **content_available**: Provide this key with a value of 1 to indicate that new content is available.
* **badge**: The number to display as the badge of the app ic.
* **sound**: The name of a sound file in the app bundle or in the Library/Sounds folder.
* **category**: Provide this key with a string value that represents the identifier property of the UIMutableUserNotificationCategory.
* **content_available**: Provide this key with a value of 1 to indicate that new content is available.

View File

@ -0,0 +1,80 @@
---
layout: page
title: "Lannouncer"
description: "Instructions how to add Lannouncer notifications to Home Assistant."
date: 2017-01-06 10:00
sidebar: true
comments: false
sharing: true
footer: true
logo: lannouncer.png
ha_category: Notifications
ha_release: 0.36
---
The `lannouncer` notification platform allows you to play spoken messages (TTS) or sounds on an Android device running [Lannouncer](http://www.keybounce.com/lannouncer/). This can be useful when you have a wall mounted Android tablet, or an Android device that is permanently powered and turned on and want to use that to play notifications.
To enable Lannouncer notifications in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
notify:
- name: NOTIFIER_NAME
platform: lannouncer
host: HOSTNAME_OR_IP
```
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`.
- **host** (*Required*): The hostname or IP-address of the Android device that is running Lannouncer.
- **port** (*Optional*): The port on which Lannouncer is running. By default this is `1035`.
### {% linkable_title Installation %}
You need to install the Lannouncer app and enable the *Network (TCP) Listener* and *Auto-Start Network Listener*. You can disable the *GCM (Google Cloud) and WAN Messaging* and *SMS Listener* since this component doesn't use them.
Lannouncer uses the default Android TTS voice. You can tweak that in the Android configuration, or you can install a different TTS engine from the Play Store. You might want to raise the volume in the app settings since that depends on the actual hardware device.
More information can be found [here](http://www.keybounce.com/lannouncer/configuring-lannouncer/).
### {% linkable_title Sending messages %}
Lannouncer supports two types of messages.
Spoken messages is the default method (`speak`). You just invoke the `notify` service with the following json and the device will speak out the specified message.
```json
{
"message": "I'm sorry, I cannot do that Dave."
}
```
The second method is to play notifications (`alarm`). There are 4 build-in sounds (`chime`, `doorbell`, `alarm` and `siren`).
```json
{
"message": "chime",
"data": {
"method": "alarm"
}
}
```
You can also request to play a configured additional soundfiles (`FILE1`, `FILE2`, `FILE3`, `FILE4` or `FILE5`). You can configure this file in the app settings.
```json
{
"message": "FILE1",
"data": {
"method": "alarm"
}
}
```
<p class='note info'>
The free version only supports one additional soundfile.
</p>
To use notifications, please see the [getting started with automation page](/getting-started/automation/).

View File

@ -0,0 +1,100 @@
---
layout: page
title: "MySensors Notify"
description: "Instructions how to integrate MySensors notifications into Home Assistant."
date: 2017-01-07 15:00 +0100
sidebar: true
comments: false
sharing: true
footer: true
logo: mysensors.png
ha_category: Notifications
ha_release: 0.36
ha_iot_class: "Local Push"
---
Integrates MySensors notifications into Home Assistant. See the [main component] for configuration instructions.
Setting the `target` key in the service call will target the name of the MySensors device in Home Assistant. MySensors device names follow the notation: "[Sketch name] [Node id] [Child id]".
### {% linkable_title Automation example %}
```yaml
...
action:
service: notify.mysensors
data:
message: Welcome home!
target: 'TextSensor 254 1'
```
The following sensor types are supported:
##### MySensors version 2.0 and higher
S_TYPE | V_TYPE
----------------|--------------------------
S_INFO | V_TEXT
For more information, visit the [api] page of MySensors.
### {% linkable_title Example sketch %}
```cpp
/*
* Documentation: http://www.mysensors.org
* Support Forum: http://forum.mysensors.org
*/
#define MY_DEBUG
#define MY_RADIO_NRF24
#define MY_REPEATER_FEATURE
#include <SPI.h>
#include <MySensors.h>
#define SN "TextSensor"
#define SV "1.0"
#define CHILD_ID 1
MyMessage textMsg(CHILD_ID, V_TEXT);
bool initialValueSent = false;
void setup(void) {
}
void presentation() {
sendSketchInfo(SN, SV);
present(CHILD_ID, S_INFO, "TextSensor1");
}
void loop() {
if (!initialValueSent) {
Serial.println("Sending initial value");
// Send initial values.
send(textMsg.set("-"));
Serial.println("Requesting initial value from controller");
request(CHILD_ID, V_TEXT);
wait(2000, C_SET, V_TEXT);
}
}
void receive(const MyMessage &message) {
if (message.type == V_TEXT) {
if (!initialValueSent) {
Serial.println("Receiving initial value from controller");
initialValueSent = true;
}
// Dummy print
Serial.print("Message: ");
Serial.print(message.sensor);
Serial.print(", Message: ");
Serial.println(message.getString());
// Send message to controller
send(textMsg.set(message.getString()));
}
}
```
[main component]: /components/mysensors/
[api]: http://www.mysensors.org/download/

View File

@ -1,7 +1,7 @@
---
layout: page
title: "OpenAlpr"
description: "Instructions how to integrate licences plates with OpenAlpr into Home Assistant."
title: "OpenALPR"
description: "Instructions how to integrate licences plates with OpenALPR into Home Assistant."
date: 2016-09-22 00:00
sidebar: true
comments: false
@ -14,7 +14,7 @@ ha_release: 0.29
ha_iot_class: "Local Push"
---
[OpenAlpr](http://www.openalpr.com/) integration for Home Assistant allows you to process licences plates from a camera. You can use them to open a garage door or trigger any other [automation](https://home-assistant.io/components/automation/).
[OpenALPR](http://www.openalpr.com/) integration for Home Assistant allows you to process licences plates recorded with a camera. You can use them to open a garage door or trigger any other [automation](https://home-assistant.io/components/automation/).
<p class='note'>
If you want use a video stream. You need setup the [ffmpeg](/components/ffmpeg) component. See also there for troubleshooting local ffmpeg installation.
@ -22,18 +22,20 @@ If you want use a video stream. You need setup the [ffmpeg](/components/ffmpeg)
### {% linkable_title Local installation %}
If you want process all data local you need the command line tool `alpr` in version > 2.3.1
If you want process all data locally, you need version 2.3.1 or higher of the `alpr` commandline tool.
If you don't find binaries for your distribution you can compile from source. Documention of how to build openalpr is found [here](https://github.com/openalpr/openalpr/wiki).
If you don't find binaries for your distribution you can compile from source. Documention of how to build OpenALPR is found [here](https://github.com/openalpr/openalpr/wiki).
On a Debian system you can use this `cmake` command to build only the command line tool:
On a debian system you can use this cmake command to build only the command line tool (which second part on linux build instruction - ubuntu 14.04+):
```bash
cmake -DWITH_TEST=FALSE -DWITH_BINDING_JAVA=FALSE --DWITH_BINDING_PYTHON=FALSE --DWITH_BINDING_GO=FALSE -DWITH_DAEMON=FALSE -DCMAKE_INSTALL_PREFIX:PATH=/usr ..
$ cmake -DWITH_TEST=FALSE -DWITH_BINDING_JAVA=FALSE --DWITH_BINDING_PYTHON=FALSE --DWITH_BINDING_GO=FALSE -DWITH_DAEMON=FALSE -DCMAKE_INSTALL_PREFIX:PATH=/usr ..
```
Verify your alpr installation with:
Verify your `alpr` installation with:
```
wget -O- -q http://plates.openalpr.com/h786poj.jpg | alpr -
$ wget -O- -q http://plates.openalpr.com/h786poj.jpg | alpr -
```
### {% linkable_title Configuration Home Assistant %}
@ -57,19 +59,20 @@ openalpr:
username: admin
password: bla
```
Configuration variables:
- **engine** (*Required*): `local` or `cloud` for processing
- **region** (*Required*): Country or region. List of Supported [value](https://github.com/openalpr/openalpr/tree/master/runtime_data/config).
- **confidence** (*Optional*): Default 80. The minimum of confidence in percent to process with Home-Assistant.
- **entities** (*Required*): A list of device to add in Home-Assistant.
- **name** (*Optional*): This parameter allows you to override the name of your openalpr entity.
- **interval** (*Optional*): Default 2. Time in seconds to poll a picture. If the interval is 0 It don't poll and it only process data with `openalpr.scan` service.
- **render** (*Optional*): default is with ffmpeg. How is Home-Assistant to get a picture from. It support `ffmpeg` for video streams and `image` for a still image.
- **input** (*Required*): The source from getting pictures. With ffmpeg it could by all supported input. Image only support a url.
- **extra_arguments** (*Optional*): Only available with ffmpeg.
- **username** (*Optional*): Only available with image for http authentification.
- **password** (*Optional*): Only available with image for http authentification.
- **region** (*Required*): Country or region. List of supported [values](https://github.com/openalpr/openalpr/tree/master/runtime_data/config).
- **confidence** (*Optional*): The minimum of confidence in percent to process with Home Assistant. Defaults to 80.
- **entities** (*Required*): A list of device to add in Home Assistant.
- **name** (*Optional*): This parameter allows you to override the name of your OpenALPR entity.
- **interval** (*Optional*): Time in seconds to poll a picture. If the interval is 0 It don't poll and it only process data with `openalpr.scan` service. Default is 2 seconds.
- **render** (*Optional*): How is Home Assistant to get a picture from. It support `ffmpeg` for video streams and `image` for a still image. Default is with `ffmpeg`.
- **input** (*Required*): The source from getting pictures. With `ffmpeg` it could by all supported input. Image only support an URL.
- **extra_arguments** (*Optional*): Only available with `ffmpeg`.
- **username** (*Optional*): Only available with image for HTTP authentification.
- **password** (*Optional*): Only available with image for HTTP authentification.
### {% linkable_title Configuration Home Assistant local processing %}
@ -84,7 +87,7 @@ openalpr:
```
Configuration variables:
- **alpr_binary** (*Optional*): Default `alpr`. The command line tool alpr from OpenAlpr software for local processing.
- **alpr_binary** (*Optional*): Default `alpr`. The command line tool `alpr` from OpenALPR software for local processing.
### {% linkable_title Configuration Home Assistant cloud processing %}
@ -97,9 +100,10 @@ openalpr:
entities:
...
```
Configuration variables:
- **api_key** (*Required*): You need a api key from [OpenAlpr Cloud](https://cloud.openalpr.com/).
- **api_key** (*Required*): You need an API key from [OpenALPR Cloud](https://cloud.openalpr.com/).
#### {% linkable_title Service %}
@ -121,4 +125,4 @@ automation:
...
```
This event is trigger after openalpr found a new licence plate.
This event is trigger after OpenALPR found a new licence plate.

View File

@ -28,16 +28,65 @@ recorder:
Configuration variables:
- **purge_days** (*Optional*): Delete events and states older than x days.
- **exclude** (*Optional*): Configure which components should be excluded from recordings.
- **entities** (*Optional*): The list of entity ids to be excluded from recordings.
- **domains** (*Optional*): The list of domains to be excluded from recordings.
- **include** (*Optional*): Configure which components should be included in recordings. If set, all other entities will not be recorded.
- **entities** (*Optional*): The list of entity ids to be included from the history.
- **domains** (*Optional*): The list of domains to be included from the history.
- **db_url** (*Optional*): The URL which point to your database.
Define domains and entities to `exclude` (aka. blacklist). This is convenient when you are basically happy with the information recorded, but just want to remove some entities or domains. Usually these are entities/domains which do not change (like `weblink`) or rarely change (`updater` or `automation`).
```yaml
# Example configuration.yaml entry
# Example configuration.yaml entry with exclude
recorder:
purge_days: 5
db_url: sqlite:///home/user/.homeassistant/test
exclude:
domains:
- automation
- weblink
- updater
entities:
- sun.sun # Don't record sun data
- sensor.last_boot
- sensor.date
```
Define domains and entities to record by using the `include` configuration (aka. whitelist). If you have a lot of entities in your system and your `exclude` lists possibly get very large, it might be better just to define the entities or domains to record.
```yaml
# Example configuration.yaml entry with include
history:
include:
domains:
- sensor
- switch
- media_player
```
Use the `include` list to define the domains/entities to record, and exclude some of them with in the `exclude` list. This makes sense if you for instance include the `sensor` domain, but want to exclude some specific sensors. Instead of adding every sensor entity to the `include` `entities` list just include the `sensor` domain and exclude the sensor entities you are not interested in.
```yaml
# Example configuration.yaml entry with include and exclude
history:
include:
domains:
- sensor
- switch
- media_player
exclude:
entities:
- sensor.last_boot
- sensor.date
```
If you only want to hide events from e.g. your history, take a look at the [`history` component](/components/history/). Same goes for logbook. But if you have privacy concerns about certain events or neither want them in history or logbook, you should use the `exclude`/`include` options of the `recorder` component, that they aren't even in your database. That way you can save storage and keep the database small by excluding certain often-logged events (like `sensor.last_boot`).
## Custom database engines
| Database engine | `db_url` |
| :---------------|:---------------------------------------------------------|
| SQLite | `sqlite:///PATH/TO/DB_NAME` |

View File

@ -0,0 +1,40 @@
---
layout: page
title: "RESTful Command"
description: "Instructions how to integrate REST commands into Home Assistant."
date: 2016-12-27 00:00
sidebar: true
comments: false
sharing: true
footer: true
logo: restful.png
ha_category: Automation
ha_release: 0.36
---
This component can expose regular REST commands as services. Services can be called from a [script] or in [automation].
[script]: /components/script/
[automation]: /getting-started/automation/
To enable this switch, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
rest_command:
example_request:
url: 'http://example.com/'
```
Configuration variables:
- **[service_name]** (*Required*): The name used to expose the service. E.g. in the above example would it be ` rest_command.example_request`.
- **url** (*Required*): The URL (support template) for sending request.
- **method** (*Optional*): HTTP method (get, post, put, delete). Default is get.
- **payload** (*Optional*): A string/template to send with request.
- **username** (*Optional*): The username for HTTP authentication.
- **password** (*Optional*): The password for HTTP authentication.
- **timeout** (*Optional*): Timeout for requests. Defaults to 10 seconds.
The commands can be dynamic, using templates to insert values of other entities. Service call support variables for template stuff.

View File

@ -53,3 +53,7 @@ automation:
service: scene.turn_on
entity_id: scene.romantic
```
<p class='note'>
Please note that the scene component currently only supports one service call per entity to achieve the state. Due to this limitation you cannot set states belonging to different services.
</p>

View File

@ -12,25 +12,11 @@ ha_category: Weather
ha_release: 0.29
---
The `bom` platform allows you to get the current weather conditions from the [Bureau of Meteorology (BOM)](http://www.bom.gov.au/) Australia.
The `bom` sensor platform uses the [Australian Bureau of Meteorology (BOM)](http://www.bom.gov.au) as a source for current (half-hourly) meteorological data.
- Each sensor will be given the `device_id` of "bom [optionalname] friendlyname units"
- A name is optional but if multiple BOM weather stations are used a name will be required.
- The sensor will update every minute 35 minutes after last data timestamp. This allows for the 30 minute observation cycle and the approximate 5 minute update delay in publishing the data.
To get the station ID `[zone_id]` and `[wmo_id]` for your local BOM station:
- Find your station on these maps:
- NSW: http://www.bom.gov.au/nsw/observations/map.shtml
- QLD: http://www.bom.gov.au/qld/observations/map.shtml
- VIC: http://www.bom.gov.au/vic/observations/map.shtml
- WA: http://www.bom.gov.au/wa/observations/map.shtml
- SA: http://www.bom.gov.au/sa/observations/map.shtml
- TAS: http://www.bom.gov.au/tas/observations/map.shtml
- ACT: http://www.bom.gov.au/act/observations/canberramap.shtml
- NT: http://www.bom.gov.au/nt/observations/map.shtml
- alternatively, from the [BOM website](http://www.bom.gov.au/), navigate to State -> Observations -> Latest Observations -> Choose the station.
- The URL will look like: http://www.bom.gov.au/products/[zone_id]/[zone_id].[wmo_id].shtml
- For Adelaide, the URL will look like http://www.bom.gov.au/products/IDS60801/IDS60801.94675.shtml.
- The sensor checks for new data every minute, starting 30 minutes after the timestamp of the most recent data as the data is updated every half-hour.
To add the BOM weather observation to your installation, add the following to your `configuration.yaml` file:
@ -38,17 +24,9 @@ To add the BOM weather observation to your installation, add the following to yo
# Example configuration.yaml entry
sensor:
- platform: bom
zone_id: IDS60801
wmo_id: 94675
station: IDS60801.94675
name: Adelaide
monitored_conditions:
- wmo
- name
- history_product
- local_date_time
- local_date_time_full
- aifstime_utc
- lat
- lon
- apparent_t
- cloud
- cloud_base_m
@ -77,9 +55,19 @@ sensor:
- wind_spd_kt
```
To get the station ID for any BOM station:
- Find your station on these maps: [NSW](http://www.bom.gov.au/nsw/observations/map.shtml), [QLD](http://www.bom.gov.au/qld/observations/map.shtml), [VIC](http://www.bom.gov.au/vic/observations/map.shtml), [WA](http://www.bom.gov.au/wa/observations/map.shtml), [SA](http://www.bom.gov.au/sa/observations/map.shtml), [TAS](http://www.bom.gov.au/tas/observations/map.shtml), [ACT](http://www.bom.gov.au/act/observations/canberramap.shtml), [NT](http://www.bom.gov.au/nt/observations/map.shtml).
- alternatively, from the [BOM website](http://www.bom.gov.au/), navigate to State -> Observations -> Latest Observations -> Choose the station.
- The URL will look like: http://www.bom.gov.au/products/IDx60801/[station].shtml
- For Adelaide, the URL will look like `http://www.bom.gov.au/products/IDS60801/IDS60801.94675.shtml`; the station ID is `IDS60801.94675`.
Configuration variables:
- **zone_id** (*Required*): The zone_id as identified from the BOM website.
- **wmo_id** (*Required*): The wmo as identified from the BOM website.
- **station** (*Optional*): The station ID string as identified from the BOM website. If not given, defaults to the closest station.
- **name** (*Optional*): The name you would like to give to the weather station.
- **monitored_conditions** (*Required*): A list of the conditions to monitor.
<p class='note'>
This sensor is an alternative to the [`bom`](/components/weather.bom/) weather platform.
The weather platform is easier to configure but less customisable.
</p>

View File

@ -13,16 +13,27 @@ ha_release: 0.35
---
The `broadlink` sensor platform let you monitor data from an RM2 and A1 E-air.
There is currently no support for the cloud API.
The `broadlink` sensor platform let you monitor data from an RM2 and A1 E-air. There is currently no support for the cloud API.
To enable it, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
switch:
- platform: broadlink
host: IP_ADDRESS
mac: 'MAC_ADDRESS'
monitored_conditions:
- 'temperature'
```
Configuration options:
- **name** (*Optional*): Default BL. Sensor name
- **update_interval** (*Optional*): Default 300. Time in seconds to fetch data from sensors
- **host** (*Required*): The hostname/IP address to connect to.
- **mac** (*Required*): Device mac address.
- **timeout** (*Optional*): Timeout in seconds for the connection to the device
- **name** (*Optional*): Default BL. Sensor name
- **update_interval** (*Optional*): Time in seconds to fetch data from sensors. Default 300.
- **timeout** (*Optional*): Timeout in seconds for the connection to the device.
- **monitored_conditions** array (*Required*): States to monitor.
- 'temperature'
- 'humidity'
@ -33,9 +44,10 @@ Configuration options:
To set it up, add the following information to your `configuration.yaml` file:
Obtain sensor data from an A1:
```yaml
sensor:
platform: broadlink
- platform: broadlink
update_interval: 60
host: IP_ADDRESS
mac: 'MAC_ADDRESS'
@ -48,12 +60,27 @@ sensor:
```
Obtain temperature data from an RM2:
```yaml
sensor:
platform: broadlink
- platform: broadlink
update_interval: 60
host: IP_ADDRESS
mac: 'MAC_ADDRESS'
monitored_conditions:
- temperature
```
### {% linkable_title Microsoft Windows installation %}
<p class='note'>
The pycrypto library needs to be available on your platform. On a typical windows sysytem `pip install pycrypto` will fail, as a compiler needs to be installed first.
</p>
The quickest way around this is to use a pre-built binary, e.g. from https://github.com/sfbahr/PyCrypto-Wheels
Be sure to get the correct 64 or 32-bit binary for your system, the full commandline will look something like the sample below for a 64-bit system:
```bash
pip install --use-wheel --no-index --find-links=https://github.com/sfbahr/PyCrypto-Wheels/raw/master/pycrypto-2.6.1-cp35-none-win_amd64.whl pycrypto
```

View File

@ -0,0 +1,38 @@
---
layout: page
title: "Dublin Bus Transport"
description: "Instructions how to integrate timetable data for travelling on Dublin Bus within Home Assistant."
date: 2017-01-09 21:45
sidebar: true
comments: false
sharing: true
footer: true
logo: train.png
ha_category: Transport
ha_iot_class: "Cloud Polling"
ha_release: 0.36
---
The `dublin_bus_transport` sensor will give you the time until the next two departures from a Dublin bus stop using the RTPI information.
The [Dublin Bus](https://www.dublinbus.ie/RTPI/) website can help to determine the id of your bus stop. You can check if this is correct by going to
https://data.dublinked.ie/cgi-bin/rtpi/realtimebusinformation?stopid=[Stop ID]
Then add the data to your `configuration.yaml` file as shown in the example:
```yaml
# Example configuration.yaml entry
sensor:
- platform: dublin_bus_transport
stopid: STOP_ID
```
Configuration variables:
- **stopid** (*Required*): The ID of the bust stop to get the information for.
- **route** (*Optional*): Only show a single bus route at the stop. This is the same as the bus number, e.g. `83`.
- **name** (*Optional*): A friendly name for this sensor.
The public RTPI information is coming from [Dub Linked](https://data.dublinked.ie/).

View File

@ -46,5 +46,6 @@ Configuration variables:
- **minute** (*Optional*): Specify the minute(s) of the hour to schedule the speedtest. Use a list for multiple entries. Default is 0.
- **hour** (*Optional*): Specify the hour(s) of the day to schedule the speedtest. Use a list for multiple entries. Default is None.
- **day** (*Optional*): Specify the day(s) of the month to schedule the speedtest. Use a list for multiple entries. Default is None.
- **manual** (*Optional*): True or False to turn manual mode on or off. Manual mode will disable scheduled speedtests.
There is also a service named `sensor.update_fastdotcom` that you can use to run a fast.com speedtest on demand.
There is also a service named `sensor.update_fastdotcom` that you can use to run a fast.com speedtest on demand. You can turn on manual mode to disable the scheduled speedtests.

View File

@ -0,0 +1,54 @@
---
layout: page
title: "Hydro-Québec"
description: "Instructions how to integrate Hydro-Québec consumption profile within Home Assistant."
date: 2016-12-10 0:15
sidebar: true
comments: false
sharing: true
footer: true
logo: hydroquebec.svg
ha_category: Energy
ha_release: 0.35
ha_iot_class: "Cloud Polling"
---
Integrate your [Hydro-Québec](https://www.hydroquebec.com/portail/) consumption profile information into Home Assistant.
```yaml
# Example configuration.yaml entry
ensor:
- platform: hydroquebec
username: MYUSERNAME
password: MYPASSWORD
monitored_variables:
- period_total_bill
- period_length
- period_total_days
- period_mean_daily_bill
- period_mean_daily_consumption
- period_total_consumption
- period_lower_price_consumption
- period_higher_price_consumption
- yesterday_total_consumption
- yesterday_lower_price_consumption
- yesterday_higher_price_consumption
```
Configuration variables:
- **username** (*Required*): The App Token for your account.
- **password** (*Required*): The App Token for your account.
- **monitored_variables** array (*Required*): Variables to monitor.
- **period_total_bill** : Current period bill
- **period_length**: Current period length
- **period_total_days**: Total number of days in this period
- **period_mean_daily_bill**: Period daily average bill
- **period_mean_daily_consumption**: Period daily average consumption
- **period_total_consumption**: Total Consumption
- **period_lower_price_consumption**: Period Lower price consumption
- **period_higher_price_consumption**: Period Higher price consumption
- **yesterday_total_consumption**: Yesterday total consumption
- **yesterday_lower_price_consumption**: Yesterday lower price consumption
- **yesterday_higher_price_consumption**: Yesterday higher price consumption

View File

@ -0,0 +1,26 @@
---
layout: page
title: "International Space Station Sensor"
description: "Know if or when ISS will be above your home location"
date: 2016-12-18 10:00
sidebar: true
comments: false
sharing: true
footer: true
logo: bbox.png
ha_category: Sensor
ha_release: 0.36
---
The `iss` platform uses the [Open Notify API](http://open-notify.org/Open-Notify-API/ISS-Location-Now/) to let you know if the station is above your home location. This means that ISS is 10° above the horizon of your home.
You can check in the attributes of the sensor how many minutes you have to wait until the next rise of the station and the number of people in space.
To add ISS sensor to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: iss
```

View File

@ -19,9 +19,9 @@ To use your Mi Flora plant sensor in your installation, add the following to you
```yaml
# Example configuration.yaml entry
sensor
sensor:
- platform: miflora
mac: xx:xx:xx:xx:xx:xx
mac: "xx:xx:xx:xx:xx:xx"
monitored_conditions:
- temperature
```
@ -47,9 +47,9 @@ A full configuration example could looks the one below:
```yaml
# Example configuration.yaml entry
sensor
sensor:
- platform: miflora
mac: xx:xx:xx:xx:xx:xx
mac: "xx:xx:xx:xx:xx:xx"
name: Flower 1
force_update: false
median: 3

View File

@ -43,6 +43,7 @@ The following conditions are available by device:
- operation\_mode
- temperature
- target
- hvac\_state: The currently active state of the HVAC system, `heating`, `cooling`, or `off`.
- Nest Protect:
- co\_status
- smoke\_status

View File

@ -0,0 +1,66 @@
---
layout: page
title: "SMA Solar WebConnect"
description: "Instructions on how to connect your SMA Solar Inverter to Home Assistant."
date: 2015-12-28 21:45
sidebar: true
comments: false
sharing: true
footer: true
ha_category:
logo: sma.png
ha_iot_class: "Local Polling"
ha_release: 0.36
---
The `sma` sensor will poll a [SMA][http://www.sma-america.com/] solar inverter and present the values as sensors (or attributes of sensors) in Home Assistant.
To enable this sensor, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor sma:
- platform: sma
host: 192.168.88.199
password: !secret sma_password
sensors:
current_consumption: [total_consumption]
current_power:
total_yield:
```
Configuration variables:
- **host** (*Required*): The IP address of the SMA WebConnect module.
- **password** (*Required*): The password of the SMA WebConnect module.
- **group** (*Optional*): The user group, which can be either `user` (the default) or `installer`.
- **sensors** (*Required*): A dictionary of sensors that will be added. The value of the dictionary can include sensor names that will be shown as attributes.
- **custom** (*Optional*): A dictionary of custom sensor key values and units
Sensors configuration:
The sensors can be any one of the following:
- current_power
- current_consumption
- total_power
- total_consumption
You can create composite sensors, where the sub-sensors will be attributes of the main sensor, e.g.
```yaml
sensors:
- current_power: [total_power, total_consumption]
```
The SMA WebConnect module supports a wide variety of sensors, and not all these have been mapped to standard sensors. Custom sensors can be defined by using the `custom` section of the configuration. You will need: A sensor name (no spaces), the SMA sensor key and the unit
Example:
```yaml
custom:
yesterday_consumption:
key: 6400_00543A01
unit: W
```
Over time more sensors will be added as standard sensors to the [pysma library](https://github.com/kellerza/pysma/blob/master/pysma/__init__.py#L18). Feel free to submit additional sensors on that repository.

View File

@ -38,6 +38,7 @@ Configuration variables:
- **diskspace**: Available disk space.
- **host** (*Optional*): The host Sonarr is running on (Default: localhost).
- **port** (*Optional*): The port Sonarr is running on (Default: 8989).
- **urlbase** (*Optional*): The base URL Sonarr is running under (Default: /).
- **days** (*Optional*): How many days to look ahead for the upcoming sensor, 1 means today only (Default: 1).
- **included_paths** (*Optional*): Array of filepaths to include when calculating diskspace. Leave blank to include all.
- **unit**: (*Optional*): The unit to display disk space in (Default: GB).

View File

@ -41,10 +41,12 @@ Configuration variables:
- **minute** (*Optional*): Specify the minute(s) of the hour to schedule the speedtest. Use a list for multiple entries. Default is 0.
- **hour** (*Optional*): Specify the hour(s) of the day to schedule the speedtest. Use a list for multiple entries. Default is None.
- **day** (*Optional*): Specify the day(s) of the month to schedule the speedtest. Use a list for multiple entries. Default is None.
- **manual** (*Optional*): True or False to turn manual mode on or off. Manual mode will disable scheduled speedtests.
This component uses [speedtest-cli](https://github.com/sivel/speedtest-cli) to gather network performance data from Speedtest.net. Please be aware of the potential [inconsistencies](https://github.com/sivel/speedtest-cli#inconsistency) that this component may display.
When Home Assistant first starts up, the values of the speedtest will show as `Unknown`. You can use the service `sensor.update_speedtest` to run a manual speedtest and populate the data or just wait for the next regularly scheduled test.
When Home Assistant first starts up, the values of the speedtest will show as `Unknown`. You can use the service `sensor.update_speedtest` to run a manual speedtest and populate the data or just wait for the next regularly scheduled test. You can turn on manual mode to disable the scheduled speedtests.
## {% linkable_title Examples %}

View File

@ -0,0 +1,32 @@
---
layout: page
title: USPS Sensor
description: "Instructions on how to set up USP sensors within Home Assistant."
date: 2017-01-06 08:00
sidebar: true
comments: false
sharing: true
footer: true
logo: usps.png
ha_category: Sensor
ha_release: 0.36
---
The `usps` platform allows one to track deliveries by the [US Postal Service (USPS)](https://www.usps.com/).
To enable this sensor, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
sensor:
- platform: usps
username: YOUR_USERNAME
password: YOUR_PASSWORD
```
Configuration options for the a TCP Sensor:
- **username** (*Required*): The username to access the USPS service.
- **password** (*Required*): The password for the given username.
- **update_interval** (*Optional*): Interval in minutes for the updates.

View File

@ -0,0 +1,41 @@
---
layout: page
title: "BeagleBone Black GPIO Switch"
description: "Instructions how to integrate the GPIO of a BeagleBone Black into Home Assistant as a switch."
date: 2017-01-14 10:00
sidebar: true
comments: false
sharing: true
footer: true
logo: beaglebone-black.png
ha_category: Switch
ha_release: 0.36
---
The `bbb_gpio` switch platform allows you to control the GPIOs of your [BeagleBone Black](https://beagleboard.org/black).
To use yourBeagleBone Black's GPIO in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
switch:
- platform: bbb_gpio
pins:
GPIO0_7:
name: LED Red
P9_12:
name: LED Green
initial: true
invert_logic: true
```
Configuration variables:
- **pins** array (*Required*): Array of used ports.
- **pin_name** (*Required*): Port numbers and corresponding names.
- **name** (*Optional*): Friendly name to use for the frontend.
- **initial** (*Optional*): Initial state of the pin. Defaults to `False`.
- **invert_logic** (*Optional*): If true, inverts the output logic to ACTIVE LOW. Default is `false` (ACTIVE HIGH).
For more details about the GPIO layout, visit the [article](http://elinux.org/Beagleboard:BeagleBoneBlack) about the BeagleBone Black.

View File

@ -12,7 +12,7 @@ ha_category: Switch
ha_release: 0.35
---
This `Broadlink` switch platform allow to you control Broadlink RM2 Pro and RM mini IR+RF [devices](http://www.ibroadlink.com/rm/).
This `Broadlink` switch platform allow to you control Broadlink [devices](http://www.ibroadlink.com/rm/).
To enable it, add the following lines to your `configuration.yaml`:
@ -29,9 +29,12 @@ switch:
```
Configuration variables:
- **host** (*Required*): The hostname/IP address to connect to.
- **mac** (*Required*): Device mac address.
- **timeout** (*Optional*): Timeout in seconds for the connection to the device
- **friendly_name** (*Optional*): The name used to display the switch in the frontend.
- **types** (*Optional*): Switch type. (rm, rm2, rm_mini, rm_pro_phicomm, rm2_home_plus, rm2_home_plus_gdt, rm2_pro_plus, rm2_pro_plus2, rm2_pro_plus_bl, rm_mini_shate, sp1, sp2, honeywell_sp2, sp3, spmini2 or spminiplus)
- **switches** (*Optional*): The array that contains all switches.
- **identifier** (*Required*): Name of the command switch as slug. Multiple entries are possible.
- **friendly_name** (*Optional*): The name used to display the switch in the frontend.
@ -39,16 +42,16 @@ Configuration variables:
- **command_off** (*Required*): Base64 encoded packet from RM device to take for off.
How to obtain IR/RF packets?
Choose Call Service from the Developer Tools. Choose the service broadlink/learn_command from the list of Available services: and hit CALL SERVICE. Press the button on your remote with in 20 seconds. The packet will be printed in the log and as a persistent notification.
Example config:
Example config for rm, rm2, rm_mini, rm_pro_phicomm, rm2_home_plus, rm2_home_plus_gdt, rm2_pro_plus, rm2_pro_plus2, rm2_pro_plus_bl and rm_mini_shate devices:
```yaml
- platform: broadlink
switch 2:
platform: broadlink
host: 192.168.1.2
mac: 'B4:43:0D:CC:0F:58'
timeout: 15
@ -77,4 +80,37 @@ Example config:
friendly_name: "LG Tv"
command_on: 'JgBIAAABIpQPFBITETgSEw8UEhQSEhEVDzgSOBAUETgQOQ84EjgRNxITETgSExA5EDgREhI3EhMROBMSEDkQFBETEjYTEhE4EQANBQ=='
command_off: 'JgBIAAABH5YPFBETETgUERAUEBURFBATETgROBEUETcSNxE4ETcSOBISEBUQFREUEjUSFBA5ETcRNxE4ETkQOBAUEjcRFRAUEQANBQ=='
switch 2:
platform: broadlink
host: 192.168.1.2
mac: 'B4:43:0D:CC:0F:58'
timeout: 15
# Will work on most Phillips tvs:
tv:
friendly_name: "Phillips Tv"
command_on: 'JgAcAB0dHB44HhweGx4cHR06HB0cHhwdHB8bHhwADQUAAAAAAAAAAAAAAAA='
```
Example config for sp1, sp2, honeywell_sp2, sp3, spmini2 and spminiplus devices:
```yaml
switch 1:
platform: broadlink
host: IP_ADDRESS
mac: 'MAC_ADDRESS'
type: sp1
friendly_name: 'Humidifier'
switch 2:
platform: broadlink
host: IP_ADDRESS
mac: 'MAC_ADDRESS'
type: sp2
friendly_name: 'Humidifier'
```

View File

@ -0,0 +1,33 @@
---
layout: page
title: "Insteon (Local) Switch"
description: "Instructions how to setup the Insteon Hub switches locally within Home Assistant."
date: 2016-12-18 08:00
sidebar: true
comments: false
sharing: true
footer: true
logo: insteon.png
ha_category: Switch
ha_version: 0.36
---
The `insteon_local` switch component lets you control your switches connected to an [Insteon Hub](http://www.insteon.com/insteon-hub/) with Home Assistant.
To integrate add a switch, configure your hub Insteon(local) with Home Assistant, add the following section to your `configuration.yaml` file:
```yaml
# Example configuration.yaml platform entry
insteon_local:
host: YOUR HUB IP
username: YOUR HUB USERNAME
password: YOUR HUB PASSWORD
timeout: 10
port: 25105
```
To add switches to your set-up, add the platform to your light configuration:
```yaml
switch:
- platform: insteon_local
```

View File

@ -0,0 +1,43 @@
---
layout: page
title: "Kankun SP3 Wifi Switch"
description: "Instructions for the Kankun SP3 wifi switch"
date: 2016-12-28 01:50
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Switch
ha_release: 0.36
ha_iot_class: "Local Polling"
---
The `kankun` switch platform allows you to toggle customised Kankun SP3 wifi switches. Switches are
modified to include the [json.cgi](https://github.com/homedash/kankun-json/blob/master/cgi-bin/json.cgi)
script to provide a HTTP API. Details of the necessary modifications can be found
[here](http://www.homeautomationforgeeks.com/openhab_http.shtml#kankun) (be sure to install the JSON version
of the script as linked above).
To enable it, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
switch:
platform: kankun
switches:
bedroom_heating:
host: hostname_or_ipaddr
```
Configuration variables:
- **switches** (*Required*): The array that contains all Kankun switches.
- **identifier** (*Required*): Name of the Kankun switch as slug. Multiple entries are possible.
- **host** (*Required*): Hostname or IP address of the switch on the local network.
- **name** (*Optional*): Friendly name of the switch.
- **port** (*Optional*): HTTP connection port, defaults to 80.
- **path** (*Optional*): Path of CGI script, defaults to `/cgi-bin/json.cgi`.
- **username** (*Optional*): Username for basic authentication.
- **password** (*Optional*): Password for basic authentication.

View File

@ -37,6 +37,7 @@ switch:
protocol: 5
code_on: 654321
code_off: 654320
signal_repetitions: 15
```
Configuration variables:
@ -48,4 +49,4 @@ Configuration variables:
- **code_off** (*Required*): Decimal code to switch the device off.
- **protocol** (*Optional*): RF Protocol (Default is `1`).
- **pulselength** (*Optional*): Pulselength (Default is the protocol default).
- **signal_repetitions** (*Optional*): Number of times to repeat transmission (default is 10, can increase to try to improve reliability).

View File

@ -83,7 +83,6 @@ data_template:
cache: false
```
## {% linkable_title Cache %}
The component have two caches. Both caches can be controlled with the `cache` option in the platform configuration or the service call `say`. A long time cache will be located on the file system. The in-memory cache for fast responses to media players will be auto-cleaned after a short period.

View File

@ -0,0 +1,39 @@
---
layout: page
title: "Pico Text-to-Speech"
description: "Instructions how to setup Pico Text-to-Speech with Home Assistant."
date: 2017-01-03 16:00
sidebar: true
comments: false
sharing: true
footer: true
logo: home-assistant.png
ha_category: Text-to-speech
ha_release: 0.36
---
The `picotts` text-to-speech platform uses offline pico Text-to-Speech engine to read a text with natural sounding voices.
This requires to install the pico tts library on the system, typically on debian just do `sudo apt-get install libttspico-utils`
On some raspbian release, this package is missing but you can just copy the arm deb package from debian.
To enable text-to-speech with Pico, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
tts:
- platform: picotts
```
Configuration variables:
- **language** (*Optional*): The language to use. Defaults to `en-US`.
Supported languages : 'en-US', 'en-GB', 'de-DE', 'es-ES', 'fr-FR', 'it-IT'
A full configuration sample:
```yaml
# Example configuration.yaml entry
tts:
- platform: picotts
language: 'fr-FR'
```

View File

@ -0,0 +1,46 @@
---
layout: page
title: "Yandex TTS"
description: "Instructions how to setup Yandex SpeechKit TTS with Home Assistant."
date: 2017-01-05 03:04
sidebar: true
comments: false
sharing: true
footer: true
logo: yandex.png
ha_category: Text-to-speech
ha_release: 0.36
---
The `yandextts` text-to-speech platform uses [Yandex SpeechKit](https://tech.yandex.com/speechkit/) Text-to-Speech engine to read a text with natural sounding voices.
To enable text-to-speech with Yandex SpeechKit, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
tts:
- platform: yandextts
api_key: 'XXXXXXXX'
```
Configuration variables:
- **api_key** (*Requered*): API Key for use this service.
- **language** (*Optional*): The language to use. Defaults to `en-us`. Supported en-EN, ru-RU, uk-UK, tr-TR
- **codec** (*Optional*): Audo codec. Default is 'mp3'. Supported us mp3, wav, opus.
- **voice** (*Optional*): Speaker voice. Default is 'zahar'. Supported female voices are jane, oksana, alyss, omazh and male voices are zahar and ermil
See on api [documentation](https://tech.yandex.com/speechkit/cloud/doc/dg/concepts/speechkit-dg-tts-docpage/) for details. N.B. english version of documentation is outdated. So you could receive api key [here](https://developer.tech.yandex.ru/)
A full configuration sample:
```yaml
# Example configuration.yaml entry
tts:
- platform: yandextts
api_key: 'XXXXX'
language: 'ru-RU'
codec: mp3
voice: oksana
```

View File

@ -0,0 +1,32 @@
---
layout: page
title: "Bureau of Meteorology (BOM) Australia"
description: "Instructions on how to integrate Bureau of Meteorology Australia weather conditions into Home Assistant."
date: 2016-09-29 09:00
sidebar: true
comments: false
sharing: true
footer: true
logo: bom.png
ha_category: Weather
ha_release: 0.36
---
The `bom` weather platform uses the [Australian Bureau of Meteorology (BOM)](http://www.bom.gov.au) as a source for current (half-hourly) meteorological data.
To add the BOM weather platform to your installation, add the following to your `configuration.yaml` file:
```yaml
weather:
- platform: bom
```
Configuration variables:
- **name** (*Optional*): The name you would like to give to the weather station.
- **station** (*Optional*): The station ID string; defaults to the closest station. See the [`sensor.bom` docs](/components/sensor.bom/) for details on how to find the ID of a station.
<p class='note'>
This platform is an alternative to the [`bom`](/components/sensor.bom/) sensor.
The weather platform is easier to configure but less customisable.
</p>

View File

@ -0,0 +1,153 @@
---
layout: post
title: "0.36: ISS, USPS, Image processing, "
description: "Track packages, space stations, TrackR devices, Xiaomi, and UPC"
date: 2017-01-14 08:04:05 +0000
date_formatted: "January 15, 2017"
author: Fabian Affolter
author_twitter: fabaff
comments: true
categories: Release-Notes
og_image: /images/blog/2016-12-0.35/social.png
---
Welcome to 2017 and 0.36. We are proud to announce the first release for this year. While we are still migrating parts to async but 0.36 is focusing on new features and bug fixes.
## {% linkable_title Packages %}
[Packages][packages] are providing a new way to organize different component's configuration parts together. With packages we offer the option to include different components or parts of configuration using any of the `!include` directives.
## {% linkable_title International Space Station (ISS) %}
No, unfortunately we are not going to space. The `iss` sensor is tracking the position of the International Space Station and gives your some details.
## {% linkable_title Insteon local %}
The support for Insteon was removed due to issues. With the `insteon_local` component support for [Insteon][insteon] is back.
## {% linkable_title Image processing %}
The new [image processing component][image] currently works with [number plates][plates]. But this could level the way to integrate feature like facial recognition or gestures control.
## {% linkable_title All changes %}
- Sensor: Support for [HydroQuebec][quebec] ([@titilambert])
- Sensor: Tracking the [ISS][iss] ([@HydrelioxGitHub])
- Sensor: [USPS][usps] deliveries tracking ([@happyleavesaoc])
- Device tracker: New [ping-based][ping] tracker ([@michaelarnauts])
- TTS: Support for [Pico][pico] ([@doudz])
- Switch: [BeagleBone Black][beaglebone] GPIO are supported now ([@MatoKafkac])
- Light: New support for [Tikteck][tik] Bluetooth bulbs ([@mjg59])
- Switch: Support for customised [Kankun SP3 Wifi][kankun] switches ([@webworxshop])
- Insteon local: Local [insteon][insteon] support([@wardcraigj])
- `rest_command`: Support for using [REST][rest] ([@pvizeli])
- Sensor: Show details of the [Dublin RTPI][dublin] information ([@ttroy50])
- Light: [Zengge Bluetooth][zengge] bulbs ([@mjg59])
- Fan: Wink support for [fans][wink-fan] ([@w1ll1am23])
- Device tracker: New [TrackR][trackr] device tracker support ([@w1ll1am23])
- Device tracker: Support for [Xiaomi router][xiaomi] ([@RiRomain])
- Sensor: New [SMA Solar Webconnect][sma] sensor ([@kellerza])
- Notify: [Lannouncer][lannouncer] TTS support ([@michaelarnauts])
- Image processing: Support for [Image processing][image] ([@pvizeli])
- Device tracker: [UPC][upc] connect box platform ([@pvizeli])
- Sensor - sonarr: Add `urlbase` to [Sonarr][] ([@quadportnick])
- Switch - broadlink: Support for [SP][bl-switch] devices ([@Danielhiversen])
- Homematic: Support for HMIP-PSM or HMWIOSwitch ([@danielperna84], [@pvizeli])
- Light - flux: Ledenet protocol support by Flux LED ([@bah2830])
- Device tracker: Support for longer intervals ([@partofthething])
- ISY994: Weather sensors added ([@rmkraus])
- Light - Yeelight: Auto discovery support and color temperature feature for [Yeelight][yeelight] ([@jjensn])
- Media player - SqueezeBox: Switch to JSON-RPC ([@dasos])
- Scripts: Support for `last_triggered` ([@Danielhiversen])
- Media player: Support for `SUPPORT_PLAY` flag ([@armills])
- Minor and not so minor features and bug fixes by [@balloob], [@pvizeli], [@fabaff], [@mezz64], [@andrey-git], [@aequitas], [@abmantis], [@turbokongen], [@jabesq], [@michaelarnauts], [@kellerza], [@titilambert], [@btorresgil], [@henworth], [@armills], [@mjg59], [@Giannie], [@n8henrie], [@magicus], [@florianholzapfel], [@MrMep], [@bah2830], [@happyleavesaoc], [@lwis], [@glance-], [@markferry], and [@nikdoof].
### {% linkable_title Breaking Changes %}
- [APNS][apns] service was moved to the `notify` domain. Use `notify.apns_NOTIFIER_NAME` instead of `apns.NOTIFIER_NAME`.
- InfluxDB component has a new schema to store values in the influx db. You may require to run the `influxdb_migrator` script.
You have to note:
- There will not be any tags/fields named time anymore.
- All numeric fields (int/float/bool) will be stored as float inside influx db.
- All string fields corresponding to state attributes will be renamed as FIELDNAME_str, where FIELDNAME is the state attribute, to avoid type conflicts.
- All string fields corresponding to a state will be renamed as state (former value).
- Fields named value will always be stored as float.
- Fields named state will always be stored as string.
### {% linkable_title If you need help... %}
...don't hesitate to use our [Forum](https://community.home-assistant.io/) or join us for a little [chat](https://gitter.im/home-assistant/home-assistant). 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.
[@abmantis]: https://github.com/abmantis
[@aequitas]: https://github.com/aequitas
[@andrey-git]: https://github.com/andrey-git
[@armills]: https://github.com/armills
[@bah2830]: https://github.com/bah2830
[@balloob]: https://github.com/balloob
[@brandonweeks]: https://github.com/brandonweeks
[@btorresgil]: https://github.com/btorresgil
[@Danielhiversen]: https://github.com/Danielhiversen
[@danieljkemp]: https://github.com/danieljkemp
[@danielperna84]: https://github.com/danielperna84
[@dasos]: https://github.com/dasos
[@DavidLP]: https://github.com/DavidLP
[@doudz]: https://github.com/doudz
[@eieste]: https://github.com/eieste
[@fabaff]: https://github.com/fabaff
[@florianholzapfel]: https://github.com/florianholzapfel
[@Giannie]: https://github.com/Giannie
[@glance-]: https://github.com/glance-
[@happyleavesaoc]: https://github.com/happyleavesaoc
[@henworth]: https://github.com/henworth
[@HydrelioxGitHub]: https://github.com/HydrelioxGitHub
[@jabesq]: https://github.com/jabesq
[@jjensn]: https://github.com/jjensn
[@kellerza]: https://github.com/kellerza
[@kk7ds]: https://github.com/kk7ds
[@lwis]: https://github.com/lwis
[@magicus]: https://github.com/magicus
[@markferry]: https://github.com/markferry
[@MatoKafkac]: https://github.com/MatoKafkac
[@mezz64]: https://github.com/mezz64
[@michaelarnauts]: https://github.com/michaelarnauts
[@mjg59]: https://github.com/mjg59
[@MrMep]: https://github.com/MrMep
[@n8henrie]: https://github.com/n8henrie
[@nikdoof]: https://github.com/nikdoof
[@partofthething]: https://github.com/partofthething
[@pvizeli]: https://github.com/pvizeli
[@quadportnick]: https://github.com/quadportnick
[@RiRomain]: https://github.com/RiRomain
[@rmkraus]: https://github.com/rmkraus
[@scmmmh]: https://github.com/scmmmh
[@technicalpickles]: https://github.com/technicalpickles
[@ttroy50]: https://github.com/ttroy50
[@turbokongen]: https://github.com/turbokongen
[@w1ll1am23]: https://github.com/w1ll1am23
[@wardcraigj]: https://github.com/wardcraigj
[@webworxshop]: https://github.com/webworxshop
[@titilambert]: https://github.com/titilambert
[beaglebone]: https://home-assistant.io/components/bbb_gpio/
[bl-switch]: https://home-assistant.io/components/switch.broadlink/
[dublin]: https://home-assistant.io/components/sensor.dublin_public_transport/
[image]: https://home-assistant.io/components/image_processing/
[insteon]: https://home-assistant.io/components/insteon_local/
[kankun]: https://home-assistant.io/components/switch.kankun/
[lannouncer]: https://home-assistant.io/components/notify.lannouncer/
[packages]: https://home-assistant.io/topics/packages/
[pico]: https://home-assistant.io/components/tts.picotts/
[ping]: https://home-assistant.io/components/device_tracker.ping/
[plates]: https://home-assistant.io/components/openalpr/
[quebec]: https://home-assistant.io/components/sensor.hydroquebec/
[rest]: https://home-assistant.io/components/rest_command/
[sma]: https://home-assistant.io/components/sensor.sma/
[sonarr]: https://home-assistant.io/components/sensor.sonarr/
[tik]: https://home-assistant.io/components/light.tikteck/
[trackr]: https://home-assistant.io/components/device_tracker.trackr/
[upc]: https://home-assistant.io/components/device_tracker.upc_connect/
[usps]: https://home-assistant.io/components/sensor.usps/
[wink-fan]: https://home-assistant.io/components/fan.wink/
[xiaomi]: https://home-assistant.io/components/device_tracker.xiaomi/
[yeelight]: https://home-assistant.io/components/light.yeelight/
[zengge]: https://home-assistant.io/components/light.zengge/
[apns]: https://home-assistant.io/components/notify.apns/

View File

@ -0,0 +1,91 @@
---
layout: page
title: "Packages"
description: "Describes all there is to know about configuration packages in Home Assistant."
date: 2017-01-10 20:00 +0200
sidebar: false
comments: false
sharing: true
footer: true
---
Packages in Home Assistant provides a way to bundle different component's configuration together. We were already introduced to the two configuration styles (specifying platforms entries together or individually) on the [adding devices](/getting-started/devices/) page. Both of these configuration methods require you to create the component key in the main `configuration.yaml` file. With packages we have a way to include different components, or parts of configuration using any of the `!include` directives introduced in [splitting the configuration](/topics/splitting_configuration).
Packages are configured under the core `homeassistant/packages` in the configuration and take the format of a packages name (no spaces, all lower case) followed by a dictionary with the package config. For example, package `pack_1` would be created as:
```yaml
homeassistant:
...
packages:
pack_1:
...package configuration here...
```
The package configuration can include: `switch`, `light`, `automation`, `groups` or the majority of the Home Assistant components.
It can be specified inline or in a seperate YAML file using `!include`.
Inline example, main `configuration.yaml`:
```yaml
homeassistant:
...
packages:
pack_1:
switch:
- platform: rest
...
light:
- platform: rpi
...
```
Include example, main `configuration.yaml`:
```yaml
homeassistant:
...
packages:
pack_1: !include my_package.yaml
```
The file `my_package.yaml` contains the "top-level" configuration:
```
switch:
- platform: rest
...
light:
- platform: rpi
...
```
There are some rules for packages that will be merged:
1. Component names may only use the basic form (e.g. `switch` and `switch 1` or `switch aa` is not accepted).
2. Platform based components (`light`, `switch`, etc) can always be merged.
3. Components where entities are identified by a key that will represent the entity_id (`{key: config}`) need to have unique 'keys' between packages and the main configuration file.
For example if we have the following in the main config. You are not allowed to re-use "my_input" again for `input_boolean` in a package:
```yaml
input_boolean:
my_input:
```
4. Any component that is not a platform [2], or dictionaries with Entity ID keys [3] cannot be merged and can only occur once between all packages and the main configuration.
<p class='note tip'>
Components inside packages can only specify platform entries using configuration style 1, where all the platforms are grouped under the component name.
</p>
### {% linkable_title Create a packages folder %}
One way to organise packages would be to create a folder named "packages" in your Home Assistant configuration directory. In the packages directory you can store any number of packages in a YAML file. This entry in your `configuration.yaml` will load all packages:
```yaml
homeassistant:
packages: !include_dir_named packages
```
This uses the concept splitting the configuration and will include all files in a directory with the keys representing the filenames.
See the documentation about [splitting the configuration](/topics/splitting_configuration/) for more information about `!include_dir_named` and other include statements that might be helpful.

View File

@ -17,7 +17,7 @@ A component will be loaded on start if a section (ie. `light:`) for it exists in
Once loaded, a component will only be setup if all dependencies can be loaded and are able to setup. Keep an eye on the logs to see if your component could be loaded and initialized.
<p class='note warning'>
You can override a built-in component by having a component with the same name in your <code>config/custom_components</code> folder. If the built-in component is inside a subfolder, take care to place your customization in a folder with the same name in <code>config/custom_components/*folder*</code>. Note that overriding built-in components is not recommended and will probably break things!
You can override a built-in component by having a component with the same name in your <code>config/custom_components</code> folder. If the build-in component is inside a subfolder, take care to place your customization in a folder with the same name in <code>config/custom_components/*folder*</code>. Note that overriding build-in components is not recommended and will probably break things!
</p>
<p class='note'>

View File

@ -50,6 +50,7 @@ This page contains a list of people who have contributed in one way or another t
- [Brent](https://github.com/bah2830)
- [Bruno Adele](https://github.com/badele)
- [Cameron Bulock](https://github.com/cbulock)
- [Cameron Llewellyn](https://github.com/camrun91)
- [Carlo Costanzo](https://github.com/CCOSTAN)
- [cawilliamson](https://github.com/cawilliamson)
- [Charles Spirakis](https://github.com/srcLurker)
@ -59,6 +60,8 @@ This page contains a list of people who have contributed in one way or another t
- [chrom3](https://github.com/chrom3)
- [Corban Mailloux](https://github.com/corbanmailloux)
- [coteyr](https://github.com/coteyr/)
- [Craig J. Ward](https://github.com/wardcraigj)
- [Craig Ward](https://github.com/wardcraigj)
- [dainok](https://github.com/dainok)
- [Dale Higgs](https://github.com/dale3h)
- [Dan Cinnamon](https://github.com/Cinntax)
@ -73,6 +76,7 @@ This page contains a list of people who have contributed in one way or another t
- [Dan Sullivan](https://github.com/dansullivan86/)
- [Daren Lord](https://github.com/Xorso)
- [dasos](https://github.com/dasos)
- [dasos](https://github.com/dasos)
- [Dave Banks](https://github.com/djbanks)
- [David-Leon Pohl](https://github.com/DavidLP)
- [David Straub](https://github.com/DavidMStraub)
@ -183,6 +187,7 @@ This page contains a list of people who have contributed in one way or another t
- [Markus Peter](https://github.com/bimbar)
- [Markus Stenberg](https://github.com/fingon)
- [Martin Hjelmare](https://github.com/MartinHjelmare)
- [Martin Vacula](https://github.com/MatoKafkac)
- [Matteo Lampugnani](https://github.com/t30)
- [Matthew Bowen](https://github.com/mgbowen)
- [Matthew Treinish](https://github.com/mtreinish)
@ -191,6 +196,7 @@ This page contains a list of people who have contributed in one way or another t
- [Michaël Arnauts](https://github.com/michaelarnauts)
- [Michael Gilbert](https://github.com/Zyell)
- [Michael Kutý](https://github.com/michaelkuty)
- [Michael Long](https://github.com/phareous)
- [Micha LaQua](https://github.com/milaq)
- [miniconfig](https://github.com/miniconfig)
- [molobrakos](https://github.com/molobrakos)
@ -247,18 +253,21 @@ This page contains a list of people who have contributed in one way or another t
- [Theb-1](https://github.com/Theb-1)
- [Theodor Lindquist](https://github.com/theolind)
- [Thomas Friedel](https://github.com/tfriedel)
- [Thom Troy](https://github.com/ttroy50)
- [tilutza](https://github.com/tilutza)
- [Tim Harton](https://github.com/timharton)
- [Tim](https://github.com/tinglis1)
- [Tobie Booth](https://github.com/tobiebooth)
- [toddeye](https://github.com/toddeye)
- [Tom Duijf](https://github.com/tomduijf)
- [Touliloup]https://github.com/RiRomain
- [trollkarlen](https://github.com/trollkarlen)
- [Valentin Alexeev](https://github.com/valentinalexeev)
- [vitorespindola](https://github.com/vitorespindola)
- [Vlad Korniev](https://github.com/vkorn)
- [vladonemo](https://github.com/vladonemo)
- [Warren Konkel](https://github.com/wkonkel)
- [webworxshop](https://github.com/webworxshop)
- [Willems Davy](https://github.com/joyrider3774)
- [William Scanlon](https://github.com/w1ll1am23)
- [wind-rider](https://github.com/wind-rider)

View File

@ -52,6 +52,25 @@ ExecStart=/srv/homeassistant/homeassistant_venv/bin/hass -c "/home/homeassistant
WantedBy=multi-user.target
```
If you want to use docker, the following template should work for you.
```
[Unit]
Description=Home Assistant
Requires=docker.service
After=docker.service
[Service]
Restart=always
RestartSec=3
ExecStart=/usr/bin/docker run --name="home-assistant-%i" -v /home/%i/.homeassistant/:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/home-assistant
ExecStop=/usr/bin/docker stop -t 2 home-assistant-%i
ExecStopPost=/usr/bin/docker rm -f home-assistant-%i
[Install]
WantedBy=multi-user.target
```
You need to reload `systemd` to make the daemon aware of the new configuration. Enable and launch Home Assistant after that.
```bash

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 200 65" xml:space="preserve">
<style type="text/css">
.st0{fill:#FF9B00;}
.st1{fill:#003366;}
</style>
<g>
<path class="st0" d="M44.9,49.5C40.4,53,34.8,55,28.7,55C14,55,2.1,43.1,2.1,28.4C2.1,13.6,14,1.7,28.7,1.7
c14.7,0,26.6,11.9,26.6,26.6c0,6.1-2,11.7-5.5,16.2v0c1.3,1,7.4,5.5,8,6.3c-0.2-2.2-1-9.3-1-9.3l22.3,16.7l0.1,0.5l-16.5-7.3
L64.2,64L44.9,49.5L44.9,49.5z M38.5,44.5c-3.1-2.3-15.1-11-15.1-11h11.7c0.7,0.5,5.9,4.4,8.5,6.4l0,0c2.4-3.2,3.9-7.2,3.9-11.5
c0-10.5-8.4-19-18.8-19c-10.4,0-18.8,8.5-18.8,19c0,10.5,8.4,19,18.8,19C32.3,47.3,35.7,46.3,38.5,44.5L38.5,44.5z"/>
<g>
<g>
<path class="st1" d="M89.2,24.8L86,10.1h4.7l1,6.9c0.2,1.6,0.4,2.9,0.6,3.9h0.1c0.3-1,0.8-2.2,1.5-3.9l2.9-6.9h4.7L91.1,30.8
l-5.3,0L89.2,24.8z"/>
<path class="st1" d="M72.8,4.1l-1.6,8.5h8.1l1.6-8.5h4.5l-4.1,21.8h-4.5l1.7-9.2h-8.1l-1.7,9.2h-4.5l4.1-21.8H72.8z"/>
<path class="st1" d="M117.8,25.9l1.8-9.5c0.4-2.4,0.6-5,0.8-6.3h3.9c-0.1,1.1-0.2,2.1-0.3,3.3h0.1c1.1-2.1,2.9-3.6,5-3.6
c0.3,0,0.6,0,0.9,0l-0.9,4.4c-0.2,0-0.5,0-0.7,0c-2.9,0-4.4,2.7-4.9,5.8l-1.1,6H117.8z"/>
<path class="st1" d="M136,26.3c-4,0-6.7-2.6-6.7-6.5c0-5.4,3.8-10,9.4-10c4.2,0,6.7,2.9,6.7,6.5C145.4,21.9,141.4,26.3,136,26.3
L136,26.3z M136.6,22.8c2.6,0,4.1-3.8,4.1-6.5c0-1.5-0.7-3.1-2.6-3.1c-2.7,0-4.2,3.9-4.2,6.5C133.9,21.5,134.9,22.8,136.6,22.8
L136.6,22.8z"/>
<path class="st1" d="M118.3,3.6l-3.1,16.3c-0.4,2-0.7,4.2-0.7,6h-4.1l0.2-2.6h-0.1c-1.4,2.1-3.3,3-5.2,3c-2.7,0-4.9-2.1-4.9-5.9
c0-5.5,4-10.6,9.9-10.6c0.7,0,1.5,0.1,2.2,0.4l1.3-6.6H118.3z M111.9,13.7c-0.4-0.3-1.1-0.6-1.9-0.6c-2.9,0-4.9,3.3-4.9,6.4
c0,1.9,0.8,3.1,2.2,3.1c1.4,0,3.1-1.5,3.7-4.6L111.9,13.7z"/>
</g>
<g>
<path class="st1" d="M134,36.8l-2,10.7c-0.4,2-0.6,3.7-0.8,5.1h-4l0.3-2.6l-0.1,0c-1.6,2.1-3.5,3-5.4,3c-2.5,0-4.1-1.4-4.1-4.4
c0-0.9,0.1-1.8,0.3-2.9l1.7-8.8h4.5l-1.6,8.5c-0.1,0.7-0.2,1.5-0.2,2.1c0,1.1,0.4,1.9,1.7,1.9c1.6,0,3.3-1.9,3.9-5.1l1.4-7.4H134
z"/>
<path class="st1" d="M195.3,52.1c-1,0.5-2.6,0.8-4.5,0.8c-3.9,0-6.6-2.4-6.6-6.5c0-5.6,4.3-10,10.2-10c1.4,0,2.5,0.3,3.2,0.5
l-1.1,3.4c-0.6-0.2-1.2-0.4-2.2-0.4c-3.4,0-5.5,2.9-5.5,5.9c0,2.2,1.4,3.4,3.2,3.4c1.4,0,2.4-0.3,3.2-0.7L195.3,52.1z"/>
<g>
<path class="st1" d="M150.1,51.9l4.1-21.7l4.5,0l-1.6,8.6l0.1,0c0.9-1.4,2.9-2.5,4.9-2.5c3.3,0,4.9,2.5,4.9,5.5
C166.7,50.6,159.1,55.2,150.1,51.9z M155,49.3c4.1,1.8,7.1-2.9,7.1-6.6c0-1.6-0.8-2.8-2.1-2.8c-1.8,0-3.6,1.8-4.2,5.1L155,49.3z
"/>
</g>
<path class="st1" d="M182.7,44.9c0.7-3,0.6-8.5-5.4-8.5c-5.8,0-9.2,5.1-9.2,9.9c0,4,2.2,6.6,6.8,6.6c1.8,0,4.1-0.4,5.8-1.2
l-0.3-3.3c-1.2,0.8-7.8,2.6-8-2L182.7,44.9z M172.8,43.5c0.1-1.1,1.3-3.5,3.5-3.8c2.1-0.2,2.9,1.5,2.6,2.9L172.8,43.5z"/>
<path class="st1" d="M104.2,53c-3.7,0-8.7-2.3-8.7-9.2c0-6.6,4.2-13.3,11.9-13.3c6,0,8.7,4.3,8.7,9.1c0,5-3.2,8.9-5.2,10v0
c0.2,0,1.7-0.5,3.4-0.5c0,0,0.9,0,1.4,0l-0.7,3.5c-0.3,0-2.6,0-5.5,0C107.2,52.6,107.2,53,104.2,53z M104.9,49.2
c4,0,6.5-5.4,6.5-9.6c0-2.5-1-5.3-4.5-5.3c-4.1,0-6.6,5.5-6.6,9.6C100.2,46.9,101.7,49.2,104.9,49.2L104.9,49.2z"/>
<path class="st1" d="M149.4,30.2l-4,4.7h-3.2l3-4.7H149.4z M149.3,44.9c0.7-3,0.6-8.5-5.4-8.5c-5.8,0-9.2,5.1-9.2,9.9
c0,4,2.2,6.6,6.8,6.6c1.8,0,4.1-0.4,5.8-1.2l-0.3-3.3c-1.2,0.8-7.8,2.6-8-2L149.3,44.9z M139.3,43.5c0.1-1.1,1.3-3.5,3.5-3.8
c2.1-0.2,2.9,1.5,2.5,2.9L139.3,43.5z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB