diff --git a/source/_components/camera.foscam.markdown b/source/_components/camera.foscam.markdown index ed4b4106d7d..906fb622a1b 100644 --- a/source/_components/camera.foscam.markdown +++ b/source/_components/camera.foscam.markdown @@ -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. diff --git a/source/_components/device_tracker.owntracks.markdown b/source/_components/device_tracker.owntracks.markdown index 10a04326a4b..6fceeda3805 100644 --- a/source/_components/device_tracker.owntracks.markdown +++ b/source/_components/device_tracker.owntracks.markdown @@ -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. diff --git a/source/_components/discoverable.markdown b/source/_components/discoverable.markdown new file mode 100644 index 00000000000..19c16ce0ac3 --- /dev/null +++ b/source/_components/discoverable.markdown @@ -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')`). + diff --git a/source/_components/light.markdown b/source/_components/light.markdown index 9cf467f247a..56f078f65e3 100644 --- a/source/_components/light.markdown +++ b/source/_components/light.markdown @@ -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. diff --git a/source/_components/lock.mqtt.markdown b/source/_components/lock.mqtt.markdown new file mode 100644 index 00000000000..a307db56649 --- /dev/null +++ b/source/_components/lock.mqtt.markdown @@ -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. + +

+Make sure that your topic match exact. `some-topic/` and `some-topic` are different topics. +

diff --git a/source/_components/scene.markdown b/source/_components/scene.home_assistant.markdown similarity index 100% rename from source/_components/scene.markdown rename to source/_components/scene.home_assistant.markdown diff --git a/source/_components/scene.hunterdouglas_powerview.markdown b/source/_components/scene.hunterdouglas_powerview.markdown new file mode 100644 index 00000000000..72fb3e46702 --- /dev/null +++ b/source/_components/scene.hunterdouglas_powerview.markdown @@ -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. diff --git a/source/_components/sensor.mfi.markdown b/source/_components/sensor.mfi.markdown index c7dcc96257a..58b25e26ea6 100644 --- a/source/_components/sensor.mfi.markdown +++ b/source/_components/sensor.mfi.markdown @@ -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. diff --git a/source/_components/sensor.netatmo.markdown b/source/_components/sensor.netatmo.markdown index 966f90095ee..0ed0740d4fc 100644 --- a/source/_components/sensor.netatmo.markdown +++ b/source/_components/sensor.netatmo.markdown @@ -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 %} diff --git a/source/_components/switch.command_line.markdown b/source/_components/switch.command_line.markdown index 3487a7b9bcb..6bba25ea65f 100644 --- a/source/_components/switch.command_line.markdown +++ b/source/_components/switch.command_line.markdown @@ -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>).*?(?=)"' + value_template: '{{ value == "1" }}' diff --git a/source/_components/switch.markdown b/source/_components/switch.markdown index 162d9c8c79a..8f181dc59b5 100644 --- a/source/_components/switch.markdown +++ b/source/_components/switch.markdown @@ -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 %} diff --git a/source/_components/switch.mfi.markdown b/source/_components/switch.mfi.markdown index 353a6d6a2c0..7c0bd1c582b 100644 --- a/source/_components/switch.mfi.markdown +++ b/source/_components/switch.mfi.markdown @@ -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. diff --git a/source/_components/zwave.markdown b/source/_components/zwave.markdown index 5f17e0512cb..554c8c8c573 100644 --- a/source/_components/zwave.markdown +++ b/source/_components/zwave.markdown @@ -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 +``` +

+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` + +

+ +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* +``` + +

+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/). +

+ #### {% 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): diff --git a/source/_posts/2016-03-12-z-wave-pep257-templated-service-calls.markdown b/source/_posts/2016-03-12-z-wave-pep257-templated-service-calls.markdown new file mode 100644 index 00000000000..90031cc1626 --- /dev/null +++ b/source/_posts/2016-03-12-z-wave-pep257-templated-service-calls.markdown @@ -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: + + + + - 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 diff --git a/source/images/supported_brands/hunter-douglas-powerview.png b/source/images/supported_brands/hunter-douglas-powerview.png new file mode 100644 index 00000000000..53fdc95027b Binary files /dev/null and b/source/images/supported_brands/hunter-douglas-powerview.png differ