Merge pull request #299 from balloob/next

Release 0.15
This commit is contained in:
Paulus Schoutsen 2016-03-12 11:36:39 -08:00
commit 27ea672cd7
15 changed files with 271 additions and 11 deletions

View File

@ -34,4 +34,7 @@ Configuration variables:
- **name** *Optional*: This parameter allows you to override the name of your camera.
- **username** *Required*: The username for accessing your camera.
- **password** *Required*: The password for accessing your camera.
- **Note**: There seems to be some issues within Foscam with lengthy passwords and passwords containing certain symbols. Be sure to check your camera's documentation.
### {% linkable_title Control Foscam PTZ (Pan/Tilt/Zoom) - Home/Away %}
Foscam Webcams which support CGI Commands can be controlled by Home Assistant ([Source](http://www.ipcamcontrol.net/files/Foscam%20IPCamera%20CGI%20User%20Guide-V1.0.4.pdf)). For an example of how this can be done, see the [Foscam IP Camera Pan, Tilt, Zoom Control](/cookbook/foscam_away_mode_PTZ/) Cookbook entry.

View File

@ -23,9 +23,12 @@ To integrate Owntracks in Home Assistant, add the following section to your `con
# Example configuration.yaml entry
device_tracker:
platform: owntracks
max_gps_accuracy: 200
```
There is no further configuration needed for tracking Owntracks devices.
Configuration variables:
- **max_gps_accuracy** (*Optional*): Sometimes Owntracks can report GPS location with a very low accuracy (few kilometers). That can trigger false zoning in your Home Assistant installation. With the parameter, you can filter these GPS reports. The number has to be in meter. For example, if you put 200 only GPS report with an accuracy under 200 will be take in account.
### {% linkable_title Using Owntracks with other device trackers %}
Owntracks can also be used with other device trackers, such as [Nmap](/components/device_tracker.nmap_scanner/) or [Netgear](/components/device_tracker.netgear/). To do this, fill in the `mac` field to the Owntracks entry in `known_devices.yaml` with the MAC address of the device you want to track. This way the state of the device will be determined by the source that reported last.

View File

@ -0,0 +1,35 @@
---
layout: page
title: "Discoverable"
description: "Instructions how to setup the discoverable component with Home Assistant."
date: 2016-03-01 07:00
sidebar: true
comments: false
sharing: true
footer: true
---
The Home Assistant discovery protocol is a lightweight feature that introduces support for Home Assistant servers to be discoverable. This will allow [Home Assistant instances](https://github.com/balloob/micropython-home-assistant) running with [MicroPython](https://micropython.org/) to get started without any required configuration (Example from the [MicroPython Home Assistant](https://github.com/balloob/micropython-home-assistant) documentation):
```python
from homeassistant.discovery import get_instance()
hass = get_instance()
for state in hass.states():
print(state)
```
To enable `discovery` in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yml entry
discoverable:
expose_password: yes
```
Configuration variables:
- **expose_password** (*Optional*): It is up to the user to expose the password in the discovery response (Default: off). If password not exposed, uHA instances will have to provide it (`get_instance('my password')`).

View File

@ -50,3 +50,13 @@ Turns one or multiple lights off.
| `entity_id` | no | String or list of strings that point at `entity_id`s of lights. Else targets all.
| `transition` | no | Integer that represents the time the light should take to transition to the new state.
### {% linkable_title Service `light.toggle` %}
Toggles the state of one or multiple lights using [groups]({{site_root}}/components/group/).
*Note*: If `light.toggle` is used for a group of lights, it will toggle the individual state of each light.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | no | String or list of strings that point at `entity_id`s of lights. Else targets all.
| `transition` | no | Integer that represents the time the light should take to transition to the new state.

View File

@ -0,0 +1,53 @@
---
layout: page
title: "MQTT Lock"
description: "Instructions how to integrate MQTT locks into Home Assistant."
date: 2016-02-28 15:00
sidebar: true
comments: false
sharing: true
footer: true
logo: mqtt.png
ha_category: Lock
---
The `mqtt` lock platform let you control your MQTT enabled locks.
In an ideal scenario, the MQTT device will have a `state_topic` to publish state changes. If these messages are published with RETAIN flag, the MQTT lock will receive an instant state update after subscription and will start with correct state. Otherwise, the initial state of the switch will be false/unlocked.
When a `state_topic` is not available, the lock will work in optimistic mode. In this mode, the lock will immediately change state after every command. Otherwise, the lock will wait for state confirmation from device (message from `state_topic`).
Optimistic mode can be forced, even if state topic is available. Try to enable it, if experiencing incorrect lock operation.
To enable MQTT locks in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yml entry
lock:
platform: mqtt
name: Frontdoor
state_topic: "home/frontdoor/"
command_topic: "home/frontdoor/set"
payload_lock: "LOCK"
payload_unlock: "UNLOCK"
optimistic: false
qos: 0
retain: true
value_template: '{% raw %}{{ value.x }}{% endraw %}'
```
Configuration variables:
- **name** (*Optional*): The name of the lock. Default is 'MQTT Lock'.
- **state_topic** (*Optional*): The MQTT topic subscribed to receive state updates.
- **command_topic** (*Required*): The MQTT topic to publish commands to change the lock state.
- **payload_lock** (*Optional*): The payload that represents enabled/locked state. Default is "LOCK".
- **payload_unlock** (*Optional*): The payload that represents disabled/unlocked state. Default is "UNLOCK".
- **optimistic** (*Optional*): Flag that defines if lock works in optimistic mode. Default is true if no state topic defined, else false.
- **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0 and will also be used to publishing messages.
- **retain** (*Optional*): If the published message should have the retain flag on or not.
- **value_template** (*Optional*): Defines a [template](/getting-started/templating/) to extract a value from the payload.
<p class='note warning'>
Make sure that your topic match exact. `some-topic/` and `some-topic` are different topics.
</p>

View File

@ -0,0 +1,27 @@
---
layout: page
title: "PowerView Scenes"
description: "Instructions how to setup Hunter Douglas PowerView scenes within Home Assistant."
date: 2016-03-11 16:00
sidebar: true
comments: false
sharing: true
footer: true
logo: hunter-douglas-powerview.png
ha_category: Organization
---
Implements the [Hunter Douglas PowerView](http://www.hunterdouglas.com/operating-systems/powerview-motorization/support) platform scene control. It queries the PowerView Hub and Home Assistant displays them as scenes.
Scenes can be activated using the service `scene.turn_on`.
```yaml
# Example configuration.yaml entry
scene:
platform: hunterdouglas_powerview
address: IP_ADDRESS
```
Configuration variables:
- **address** (*Required*): IP address of the PowerView Hub, eg. http://192.168.1.10.

View File

@ -24,12 +24,16 @@ sensor:
port: PORT
username: USERNAME
password: PASSWORD
use_tls: true
verify_tls: true
```
Configuration variables:
- **host** (*Required*): The IP address or hostname of your mFi controller.
- **port** (*Optional*): The port of your mFi controller. Defaults to 6443.
- **port** (*Optional*): The port of your mFi controller. Defaults to 6443 for TLS, otherwise 6080.
- **username** (*Required*): The mFi admin username.
- **password** (*Required*): The mFi admin user's password.
- **use_tls** (*Optional*): If true, use TLS to contact the mFi controller. Defaults to true.
- **verify_tls** (*Optional*): Set this to false if your mFi controller has a self-signed certificate. Defaults to true.

View File

@ -31,6 +31,9 @@ sensor:
- noise
- pressure
- co2
- rain
- sum_rain_1
- sum_rain_24
module_name2:
- temperature
rainmeter_name3:
@ -45,9 +48,16 @@ Configuration variables:
- **secret_key** (*Required*): Your netatmo secret key
- **username** (*Required*): Username for the netatmo account.
- **password** (*Required*): Password for the netatmo account.
- **modules** (*Required*): Modules to use. Multiple entries allowd.
- **modules** (*Required*): Modules to use. Multiple entries allowed.
- **module_name** array (*Required*): Name of the module.
- ** [conditions] **: Condition to monitor.
- **temperature**: Current temperature.
- **co2**: CO2 concentration in ppm.
- **pressure**: Pressure in mbar.
- **noise**: Noise level in dB.
- **humidity**: Humidity in %.
- **rain**: Estimated rainfall for today in mm.
- **sum_rain_1**: Rainfall in the last hour in mm.
- **sum_rain_24**: Rainfall in mm from 00:00am - 23:59pm.
### {% linkable_title Get API and Secret Key %}

View File

@ -87,3 +87,19 @@ switch:
oncmd: "cvlc 1.mp3 vlc://quit &"
offcmd: "pkill vlc"
```
### {% linkable_title Control Foscam Motion Sensor %}
This switch will control the motion sensor of Foscam Webcams which Support CGI Commands ([Source](http://www.ipcamcontrol.net/files/Foscam%20IPCamera%20CGI%20User%20Guide-V1.0.4.pdf)). This switch supports statecmd, which checks the current state of motion detection.
```yaml
# Example configuration.yaml entry
# Replace admin and password with an "Admin" priviledged Foscam user
# Replace ipaddress with the local IP address of your Foscam
switch:
platform: command_line
switches:
foscam_motion:
oncmd: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&usr=admin&pwd=password"'
offcmd: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=0&usr=admin&pwd=password"'
statecmd: 'curl -k --silent "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=admin&pwd=password" | grep -oP "(?<=isEnable>).*?(?=</isEnable>)"'
value_template: '{{ value == "1" }}'

View File

@ -12,7 +12,7 @@ footer: true
Keeps track which switches are in your environment, their state and allows you to control them.
* Maintains a state per switch and a combined state `all_switches`.
* Registers services `switch/turn_on` and `switch/turn_off` to control switches.
* Registers services `switch/turn_on`, `switch/turn_off`, and `switch/toggle` to control switches.
### {% linkable_title Use the services %}

View File

@ -24,6 +24,8 @@ sensor:
port: PORT
username: USERNAME
password: PASSWORD
use_tls: true
verify_tls: true
```
Configuration variables:
@ -32,4 +34,5 @@ Configuration variables:
- **port** (*Optional*): The port of your mFi controller. Defaults to 6443.
- **username** (*Required*): The mFi admin username.
- **password** (*Required*): The mFi admin user's password.
- **use_tls** (*Optional*): If true, use TLS to contact the mFi controller. Defaults to true.
- **verify_tls** (*Optional*): Set this to false if your mFi controller has a self-signed certificate. Defaults to true.

View File

@ -2,7 +2,7 @@
layout: page
title: "Z-Wave"
description: "Instructions how to integrate your existing Z-Wave within Home Assistant."
date: 2015-03-23 19:59
date: 2016-02-27 19:59
sidebar: true
comments: false
sharing: true
@ -17,15 +17,37 @@ There is currently support for switches, lights and sensors. All will be picked
### {% linkable_title Installation %}
To allow Home Assistant to talk to your Z-Wave USB stick you will have to compile Python Open Z-Wave. This can be done using [this script](https://github.com/balloob/home-assistant/blob/dev/script/build_python_openzwave). _(The Home Assistant docker image has support for Z-Wave built-in)_
To allow Home Assistant to talk to your Z-Wave USB stick you will have to compile the OpenZWave library and install the related [python-OpenZWave package](https://github.com/OpenZWave/python-openzwave). This can be done as follows. _(Note: The Home Assistant docker image has support for Z-Wave built-in)_
Make sure you have the correct dependencies installed before running the script:
```bash
$ apt-get install cython3 libudev-dev python-sphinx python3-setuptools
$ pip3 install "cython<0.23"
$ apt-get install cython3 libudev-dev python3-sphinx python3-setuptools
```
Then get the OpenZWave files and switch to the `python3` branch:
```bash
$ git clone https://github.com/OpenZWave/python-openzwave.git
$ cd python-openzwave
$ git checkout python3
$ PYTHON_EXEC=`which python3` make build
$ sudo PYTHON_EXEC=`which python3` make install
```
<p class='note'>
Instead of `make install`, you can alternatively build your own python-openzwave package which can be easily uninstalled:
`$ sudo PYTHON_EXEC=`which python3` checkinstall --pkgname python-openzwave --pkgversion 1.0 --provides python-openzwave`
</p>
With this installation, your `config_path` needed below will resemble:
```bash
/usr/local/lib/python3.4/dist-packages/libopenzwave-0.3.0b8-py3.4-linux-x86_64.egg/config
```
### {% linkable_title Configuration %}
```yaml
@ -53,6 +75,16 @@ To find the path of your Z-Wave stick, run:
$ ls /dev/ttyUSB*
```
Or, on some other systems (such as Raspberry Pi), use:
```bash
$ ls /dev/ttyACM*
```
<p class='note'>
Depending on what's plugged into your USB ports, the name found above may change. You an lock in a name, such as `/dev/zwave`, by following [these instructions](http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/).
</p>
#### {% linkable_title Events %}
Some devices can also trigger scene activation events, which can be used in automation scripts (for example the press of a button on a wall switch):

View File

@ -0,0 +1,64 @@
---
layout: post
title: "0.15: Unforked Open Z-Wave, templated service calls, extended scene support and PEP257 compliance."
description: "Home Assistant 0.15 has arrived."
date: 2016-03-12 10:55:00 -0800
date_formatted: "March 12, 2016"
author: Paulus Schoutsen
author_twitter: balloob
comments: true
categories: Release-Notes
---
Two weeks has past so here is 0.15! We have been focussing a lot on quality. Making sure the system is more stable and reliable. I usually try to highlight one cool thing in the release notes but this release has 4 exciting announcements!
- [@fabaff] has upgraded the codebase to follow the PEP257 documentation standard.
- [@partofthething] has migrated us to use the main Python Open Z-Wave library instead of our forked version.
- To make our automations more powerful, [@persandstrom] added the option to use templates to dynamically create service calls. This works for automation, script, Alexa, universal media player, template switch.
- [@MartinHjelmare] has upgraded our scene support to now support all built-in services and components.
Besides bug fixes, this release also brings:
<img src='/images/supported_brands/hunter-douglas-powerview.png' style='clear: right; margin-left: 5px; border:none; box-shadow: none; float: right; margin-bottom: 16px;' width='150' />
- Scene: Converted to a platform based component ([@sander76])
- Scene: [Hunter Douglas Powerview] now supported ([@sander76])
- Lock: [MQTT] platform added ([@fabaff])
- Device Tracker: [OwnTracks] will allow filtering inaccurate GPS locations ([@HydrelioxGitHub])
- Binary Sensor: Wemo Motion now supported ([@pavoni], [@ryanlaux])
```yaml
# Example using templates for service and data in service call.
# Works for automation, script, Alexa, universal media player, template switch.
automation:
- trigger:
- platform: state
entity_id: switch.bathroom
action:
service_template: >
{% raw %}{% if is_state('switch.bathroom', 'on') %}
switch.turn_on
{% else %}
switch.turn_off
{% endif %}{% endraw %}
data_template:
entity_id: switch.{% raw %}{{ states('input_select.is') }}{% endraw %}
```
[Hunter Douglas Powerview]: /components/scene.hunterdouglas_powerview/
[MQTT]: /components/lock.mqtt/
[OwnTracks]: /components/device_tracker.owntracks/
[Wemo Motion]: /components/binary_sensor.wemo/
[@fabaff]: https://github.com/fabaff
[@partofthething]: https://github.com/partofthething
[@persandstrom]: https://github.com/persandstrom
[@fabaff]: https://github.com/fabaff
[@persandstrom]: https://github.com/persandstrom
[@PartOfTheThing]: https://github.com/PartOfTheThing
[@sander76]: https://github.com/sander76
[@sander76]: https://github.com/sander76
[@fabaff]: https://github.com/fabaff
[@HydrelioxGitHub]: https://github.com/HydrelioxGitHub
[@MartinHjelmare]: https://github.com/MartinHjelmare
[@pavoni]: https://github.com/pavoni
[@ryanlaux]: https://github.com/ryanlaux

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB