From 88d7d0461eed55bbee65df2333528ca676f1a616 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 21 Jan 2016 23:06:56 -0800 Subject: [PATCH 001/348] Update script docs --- source/_components/script.markdown | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/_components/script.markdown b/source/_components/script.markdown index 033c51e70de..5a9f6d285f9 100644 --- a/source/_components/script.markdown +++ b/source/_components/script.markdown @@ -29,13 +29,14 @@ script: domain: light - alias: Bedroom lights on service: light.turn_on - service_data: + data: entity_id: group.bedroom + brightness: 100 - delay: # supports seconds, milliseconds, minutes, hours, etc. minutes: 1 - alias: Living room lights on service: light.turn_on - service_data: + data: entity_id: group.living_room ``` From 8fb97ae5e8d213946e328e593aab51ab8fe97210 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 21 Jan 2016 23:33:19 -0800 Subject: [PATCH 002/348] Add FreakingDean to credits --- source/developers/credits.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/developers/credits.markdown b/source/developers/credits.markdown index 1d7aa491e9a..6a2906bb0a1 100644 --- a/source/developers/credits.markdown +++ b/source/developers/credits.markdown @@ -33,6 +33,7 @@ This page contains a list of people who have contributed in one way or another t - [Chris Mulder](https://github.com/chrisvis) - [Daniel Iversen](https://github.com/danielhiversen) - [Daren Lord](https://github.com/Xorso) +- [Dean Galvin](https://github.com/FreekingDean) - [Edwin Smulders](https://github.com/Dutchy-) - [ettisan](https://github.com/ettisan) - [Fabian Affolter](https://github.com/fabaff) From a7d97190ead5a016b84f227642ee58ef70acc45c Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 25 Jan 2016 20:29:22 -0800 Subject: [PATCH 003/348] Add anchors to architecture page --- source/developers/architecture.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/developers/architecture.markdown b/source/developers/architecture.markdown index 974cc312990..3bf10db703a 100644 --- a/source/developers/architecture.markdown +++ b/source/developers/architecture.markdown @@ -16,7 +16,7 @@ Before we dive into the Home Assistant architecture, it is important to get a cl * Smart Home triggers commands based on previous behavior.

- + Home Automation landscape @@ -31,7 +31,7 @@ The Home Assistant core is responsible for Home Control. It has four parts to ma * The **Timer** will send every 1 second a `time_changed` event on the event bus.

- + Overview of the Home Assistant core architecture From 00bcdde0fdd12edb3bf73c32d5a93a59277e34f1 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 25 Jan 2016 20:52:32 -0800 Subject: [PATCH 004/348] Update notify.pushbullet.markdown --- source/_components/notify.pushbullet.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/notify.pushbullet.markdown b/source/_components/notify.pushbullet.markdown index e5d40058ffb..c6e4abb1d3e 100644 --- a/source/_components/notify.pushbullet.markdown +++ b/source/_components/notify.pushbullet.markdown @@ -49,7 +49,7 @@ If using targets, your own account's email address functions as 'send to all dev "message": "A message for many people", "target": [ "device/telephone", - "contact/hello@example.com", + "email/hello@example.com", "channel/my_home" ] } From b3ce5c2e839de27ad785f0bac07c322d9e0e3fbd Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 26 Jan 2016 09:11:24 +0100 Subject: [PATCH 005/348] Add initial statsd docs --- source/_components/statsd.markdown | 34 ++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 source/_components/statsd.markdown diff --git a/source/_components/statsd.markdown b/source/_components/statsd.markdown new file mode 100644 index 00000000000..fbaa914b3ef --- /dev/null +++ b/source/_components/statsd.markdown @@ -0,0 +1,34 @@ +--- +layout: component +title: "StatsD" +description: "Record events in StatsD." +date: 2016-01-25 08:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: "History" +--- + +The `statsd` component makes it possible to transfer all state changes to an external [StatsD](https://github.com/etsy/statsd) instance. + +To use the `statsd` component in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +statsd: + host: DB_HOST_IP_ADDRESS + port: 20000 + prefix: DB_TO_STORE_EVENTS + rate: 1 +``` + +Configuration variables: + +- **host** (*Optional*): IP address of your StatsD host, eg. 192.168.1.10. Defaults to `localhost`. +- **port** (*Optional*): Port to use. Defaults to 8125. +- **prefix** (*Optional*): Prefix to use. Defaults to `hass`. +- **rate** (*Optional*): The sample rate. Defaults to 1. + +StatsD supports various [backends](https://github.com/etsy/statsd/blob/master/docs/backend.md). + From ebe0c700a16543f1b373ab2b686e2afe7f01f2ee Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 26 Jan 2016 09:15:21 +0100 Subject: [PATCH 006/348] Add new view --- source/_components/group.markdown | 33 ++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/source/_components/group.markdown b/source/_components/group.markdown index 57105769f34..f2b5d1696a8 100644 --- a/source/_components/group.markdown +++ b/source/_components/group.markdown @@ -15,7 +15,6 @@ Groups allow the user to combine multiple entities into one. Check the **Set State** page from the **Developer Tools** and browse the **Current entities:** listing for all available entities. - ```yaml # Example configuration.yaml entry group: @@ -29,6 +28,34 @@ group: - sensor.oven_temperature ``` +With Home Assistant 0.12.0 a new feature **view** was introduced. + +```yaml +# Example configuration.yaml entry +group: + kitchen: + name: Kitchen + view: no + entities: + - switch.kitchen_pin_3 + upstairs: + name: Kids + icon: mdi:account-multiple + view: yes + entities: + - input_boolean.notify_home + - camera.demo_camera + - device_tracker.demo_paulus + - group.garden +``` + +Configuration variables: + +- **name** (*Optional*): Name of the group. +- **icon** (*Optional*): An optional icon to show in the Frontend. +- **view** (*Optional*): If yes then the entry will be shown as a view. +- **entities** array (*Required*): List of entites to group. + If all entities are switches or lights they can be controlled as one with a switch at the top of the card. Grouped states should share the same type of states (ON/OFF or HOME/NOT_HOME). ```yaml @@ -39,7 +66,7 @@ group: - light.ceiling - light.tv_back_light children: - - device_tracker.child_1 - - device_tracker.child_2 + - device_tracker.child_1 + - device_tracker.child_2 ``` From 921862e5f8ae38d77d9d909d6e25bb7c2c05136c Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 26 Jan 2016 09:21:47 +0100 Subject: [PATCH 007/348] Update configuration entries --- source/_components/notify.smtp.markdown | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/source/_components/notify.smtp.markdown b/source/_components/notify.smtp.markdown index f90671994fc..d56dcc00c0d 100644 --- a/source/_components/notify.smtp.markdown +++ b/source/_components/notify.smtp.markdown @@ -12,7 +12,7 @@ ha_category: Notifications --- -The smtp platform allows you to deliver notifications from Home Assistant to an e-mail recipient. +The `smtp` platform allows you to deliver notifications from Home Assistant to an e-mail recipient. To enable notification by e-mail in your installation, add the following to your `configuration.yaml` file: @@ -33,14 +33,13 @@ notify: 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`. -- **server** (*Required*): SMTP server which is used to end the notifications. For Google Mail, eg. smtp.gmail.com. Keep in mind that Google has some extra layers of protection which need special attention (Hint: 'Less secure apps'). -- **port** (*Required*): The port that the SMTP server is using, eg. 587 for Google Mail and STARTTLS or 465/993 depending on your SMTP servers. -- **sender** (*Required*): E-Mail address of the sender. -- **username** (*Required*): Username for the SMTP account. -- **password** (*Required*):Password for the SMTP server that belongs to the given username. If the password contains a colon it need to be wrapped in apostrophes. +- **server** (*Optional*): SMTP server which is used to end the notifications. For Google Mail, eg. smtp.gmail.com. Keep in mind that Google has some extra layers of protection which need special attention (Hint: 'Less secure apps'). Defaults to `localhost`. +- **port** (*Optional*): The port that the SMTP server is using, eg. 587 for Google Mail and STARTTLS or 465/993 depending on your SMTP servers. Defaults to 25. +- **sender** (*Optional*): E-mail address of the sender. +- **username** (*Optional*): Username for the SMTP account. +- **password** (*Optional*):Password for the SMTP server that belongs to the given username. If the password contains a colon it need to be wrapped in apostrophes. - **recipient** (*Required*): Recipient of the notification. -- **starttls** (*Optional*): Enables STARTTLS, eg. 1 or 0. - +- **starttls** (*Optional*): Enables STARTTLS, eg. 1 or 0. Defaults to 0. This platform is fragile and not able to catch all exceptions in a smart way because of the large number of possible configuration combinations. From 66c7794ac85e00ba42b996271b9ce0b8cbdb675a Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 26 Jan 2016 09:24:24 +0100 Subject: [PATCH 008/348] Add trollkarlen --- source/developers/credits.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/developers/credits.markdown b/source/developers/credits.markdown index 6a2906bb0a1..201f2733281 100644 --- a/source/developers/credits.markdown +++ b/source/developers/credits.markdown @@ -87,6 +87,7 @@ This page contains a list of people who have contributed in one way or another t - [Theodor Lindquist](https://github.com/theolind) - [toddeye](https://github.com/toddeye) - [Tom Duijf](https://github.com/tomduijf) +- [trollkarlen](https://github.com/trollkarlen) - [vitorespindola](https://github.com/vitorespindola) - [wind-rider](https://github.com/wind-rider) From f85733f0dfb69deb8960b2e2d50770803c55f4a2 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 26 Jan 2016 11:17:20 +0100 Subject: [PATCH 009/348] Add link to group docs --- source/getting-started/devices.markdown | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/getting-started/devices.markdown b/source/getting-started/devices.markdown index a026836a85b..2df480d61d3 100644 --- a/source/getting-started/devices.markdown +++ b/source/getting-started/devices.markdown @@ -70,11 +70,13 @@ group: - media_player.nexus_player ``` +For more details please check the [Group](https://home-assistant.io/components/group/) page. + ### {% linkable_title Customizing devices and services %} -By default, all of your devices will be visible and have a default icon determined by their domain. You may find it desireable to customize the look and feel of your front page by altering some of these parameters. This can be done by adding the following config to the `homeassistant:` section. +By default, all of your devices will be visible and have a default icon determined by their domain. You may find it desireable to customize the look and feel of your front page by altering some of these parameters. This can be done by adding the following configuration to the `homeassistant:` section. -Entity_pictures, badges, device_tracker pictures, etc can either be a URL or `/local/file.jpg`, which points to directory `www` in the HASS configuration directory. +`entity_pictures`, badges, `device_tracker` pictures, etc. can either be a URL or `/local/file.jpg`, which points to directory `www` in the HASS configuration directory. ```yaml # Example configuration.yaml entry From dacb712e6960c25b7d860d7de1c2bdd9100d0371 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 26 Jan 2016 12:45:04 +0100 Subject: [PATCH 010/348] Move description --- source/_components/zone.markdown | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/source/_components/zone.markdown b/source/_components/zone.markdown index ceada253041..a0bd59ad1a2 100644 --- a/source/_components/zone.markdown +++ b/source/_components/zone.markdown @@ -21,9 +21,7 @@ zone: name: School latitude: 32.8773367 longitude: -117.2494053 - # Optional radius in meters (default: 100) radius: 250 - # Optional icon to show instead of name icon: mdi:school zone 2: @@ -40,10 +38,19 @@ zone 3: icon: mdi:account-multiple ``` +Configuration variables: + +- **name** (*Optional*): Friendly name of entry. +- **latitude** (*Required*): Latitude of the center point of the zone. +- **longitude** (*Required*): Longitude of the center point of the zone. +- **radius** (*Optional*): Optional radius in meters. Defaults to 100 meters. +- **icon** (*Optional*): Optional icon to show instead of name. + + #### {% linkable_title Home zone %} -If no configuration is given, the zone component will create a zone for home. This zone will use location given in the `configuration.yaml` file and have a radius of 100 meters. To override this, create a zone configuration and name it 'Home'. +If no configuration is given, the `zone` component will create a zone for home. This zone will use location given in the `configuration.yaml` file and have a radius of 100 meters. To override this, create a zone configuration and name it **'Home'**. #### {% linkable_title Icons %} -It is preferred to pick an icon to use for your zone. Pick any zone that you can find on [materialdesignicons.com](https://materialdesignicons.com/) and prefix the name with `mdi:`. For example `mdi:school`, `mdi:worker`, `mdi:home`, `mdi:cart`, `mdi:castle`. +It is preferred to pick an icon to use for your zone. Pick any zone that you can find on [materialdesignicons.com](https://materialdesignicons.com/) and prefix the name with `mdi:`. For example `mdi:school`, `mdi:worker`, `mdi:home`, `mdi:cart`, or `mdi:castle`. From 0d2103add755f45542ce022c63a245098b47d97c Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 26 Jan 2016 12:46:38 +0100 Subject: [PATCH 011/348] Add vars description --- source/_components/input_boolean.markdown | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/source/_components/input_boolean.markdown b/source/_components/input_boolean.markdown index 2e66c928787..57a0f2c1aab 100644 --- a/source/_components/input_boolean.markdown +++ b/source/_components/input_boolean.markdown @@ -11,16 +11,22 @@ logo: home-assistant.png ha_category: Automation --- -The input boolean component allows the user to define boolean values that can be controlled via the frontend and can be used within conditions of automation. This can for example be used to disable or enable certain automations. +The `input_boolean` component allows the user to define boolean values that can be controlled via the frontend and can be used within conditions of automation. This can for example be used to disable or enable certain automations. ```yaml # Example configuration.yaml entry input_boolean: notify_home: - # Optional, friendly name of entry name: Notify when someome arrives home - # Optional, value when Home Assistant starts initial: off - # Optional, icon for entry icon: mdi:car ``` + +Configuration variables: + +- **name** (*Optional*): Friendly name of entry. +- **initial** (*Optional*): Initial value when Home Assistant starts. +- **icon** (*Optional*): Icon for entry. + +Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`. + From cd562b68d9c5cb50893d336c065c258f6e6c125f Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 26 Jan 2016 13:06:55 +0100 Subject: [PATCH 012/348] Minor changes --- source/_components/input_boolean.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/_components/input_boolean.markdown b/source/_components/input_boolean.markdown index 57a0f2c1aab..4b874a236d6 100644 --- a/source/_components/input_boolean.markdown +++ b/source/_components/input_boolean.markdown @@ -24,7 +24,8 @@ input_boolean: Configuration variables: -- **name** (*Optional*): Friendly name of entry. +- **[alias]** (*Required*): Alias for the input. +- **name** (*Optional*): Friendly name of the input. - **initial** (*Optional*): Initial value when Home Assistant starts. - **icon** (*Optional*): Icon for entry. From ddf9f6a0559b7fc89b790500b278ece32b67c0e0 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 26 Jan 2016 16:16:54 +0100 Subject: [PATCH 013/348] Make title linkable --- .../getting-started/troubleshooting.markdown | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/source/getting-started/troubleshooting.markdown b/source/getting-started/troubleshooting.markdown index 35db4af8b14..4fd9c7b57aa 100644 --- a/source/getting-started/troubleshooting.markdown +++ b/source/getting-started/troubleshooting.markdown @@ -9,10 +9,10 @@ sharing: true footer: true --- -It can happen that you run into trouble while installing Home Assistant. This page is here to help -you figure out the most common problems. +It can happen that you run into trouble while installing Home Assistant. This page is here to help you figure out the most common problems. -**pip3: command not found** + +#### {% linkable_title pip3: command not found %} This utility should have been installed as part of the Python 3.4 installation. Check if Python 3.4 is installed by running `python3 --version`. If it is not installed, [download it here](https://www.python.org/getit/). If you are able to successfully run `python3 --version` but not `pip3`, run the following command instead to install Home Assistant: @@ -21,28 +21,28 @@ If you are able to successfully run `python3 --version` but not `pip3`, run the $ python3 -m pip install homeassistant ``` -**No module named pip** +#### {% linkable_title No module named pip %} [Pip](https://pip.pypa.io/en/stable/) should come bundled with the latest Python 3 but is ommitted by some distributions. If you are unable to run `python3 -m pip --version` you can install `pip` by [downloading the installer](https://bootstrap.pypa.io/get-pip.py) and run it with Python 3: ```bash $ python3 get-pip.py ``` -**distutils.errors.DistutilsOptionError: must supply either home or prefix/exec-prefix -- not both** +#### {% linkable_title distutils.errors.DistutilsOptionError: must supply either home or prefix/exec-prefix -- not both %} This is a known issue if you're on a Mac using Homebrew to install Python. Please follow [these instructions](https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Homebrew-and-Python.md#note-on-pip-install---user) to resolve it. -**CentOS and Python 3** +#### {% linkable_title CentOS and Python 3 %} To run Python 3.x on [CentOS](https://www.centos.org/) or RHEL, [Software Collections](https://www.softwarecollections.org/en/scls/rhscl/rh-python34/) needs to be activated. -**No access to the frontend** -In newer Linux distributions (at least Fedora 22/CentOS 7) the access to a host is very limited. This means that you can't access the Home Assistant Frontend that is running on a host outside of the host machine. Windows and OSX machines may also have issues with this. +#### {% linkable_title No access to the frontend %} +In newer Linux distributions (at least Fedora 22/CentOS 7) the access to a host is very limited. This means that you can't access the Home Assistant frontend that is running on a host outside of the host machine. Windows and OSX machines may also have issues with this. To fix this you will need to open your machine's firewall for TCP traffic over port 8123. The method for doing this will vary depending on your operating system and the firewall you have installed. Below are some suggestions to try. Google is your friend here. [Windows instructions](http://windows.microsoft.com/en-us/windows/open-port-windows-firewall#1TC=windows-7) [Mac OSX instructions](https://support.apple.com/en-us/HT201642) -For firewalld systems (Fedora, RHEL, etc.): +For systems with **firewalld** (Fedora, CentOS/RHEL, etc.): ```bash $ sudo firewall-cmd --permanent --add-port=8123/tcp @@ -55,15 +55,15 @@ For UFW systems (Ubuntu, Debian, Raspbian, etc.): $ sudo ufw allow 8123/tcp ``` -For iptables systems (usually the default): +For `iptables` systems (was the default for older distributions): ```bash $ iptables -I INPUT -p tcp --dport 8123 -j ACCEPT $ iptables-save > /etc/network/iptables.rules # your rules may be saved elsewhere ``` -**Run the development version** -If you want to stay on top of the development of Home Assistant then you can upgrade to the dev branch. This can result in an unstable system, loss of data etc etc. +#### {% linkable_title Run the development version %} +If you want to stay on top of the development of Home Assistant then you can upgrade to the `dev` branch. This can result in an unstable system, loss of data, etc, etc. ```bash $ pip3 install --upgrade git+git://github.com/balloob/home-assistant.git@dev From ef9472a22ac87b3a3a6c480df7c03f3890448028 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 26 Jan 2016 16:42:39 +0100 Subject: [PATCH 014/348] Fix configuration sample --- source/_components/binary_sensor.command.markdown | 2 +- source/_components/binary_sensor.mqtt.markdown | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_components/binary_sensor.command.markdown b/source/_components/binary_sensor.command.markdown index dbd7ce4e3cb..b4fbf185aa2 100644 --- a/source/_components/binary_sensor.command.markdown +++ b/source/_components/binary_sensor.command.markdown @@ -22,7 +22,7 @@ binary_sensor: command: cat /proc/sys/net/ipv4/ip_forward name: 'IP4 forwarding' payload_on: "1" - payload_of: "0" + payload_off: "0" value_template: '{% raw %}{{ value.x }}{% endraw %}' ``` diff --git a/source/_components/binary_sensor.mqtt.markdown b/source/_components/binary_sensor.mqtt.markdown index b80fda168ad..6ab07dff653 100644 --- a/source/_components/binary_sensor.mqtt.markdown +++ b/source/_components/binary_sensor.mqtt.markdown @@ -24,7 +24,7 @@ binary_sensor: name: "MQTT Sensor" qos: 0 payload_on: "ON" - payload_of: "OFF" + payload_off: "OFF" value_template: '{% raw %}{{ value.x }}{% endraw %}' ``` From a58bbbc0658e4d1c4052aa040e715b33d357e177 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 26 Jan 2016 17:34:26 +0100 Subject: [PATCH 015/348] Add Michael --- source/developers/credits.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/developers/credits.markdown b/source/developers/credits.markdown index 201f2733281..e35d557a67a 100644 --- a/source/developers/credits.markdown +++ b/source/developers/credits.markdown @@ -64,6 +64,7 @@ This page contains a list of people who have contributed in one way or another t - [Michael Arnauts](https://github.com/michaelarnauts) - [Michael Auchter](https://github.com/auchter) - [Michael Gilbert](https://github.com/Zyell) +- [Michael Kuty](https://github.com/michaelkuty) - [miniconfig](https://github.com/miniconfig) - [molobrakos](https://github.com/molobrakos) - [Moon Shot](https://github.com/moonshot) From 90cd3aa8a459f2cb1104084e3657b9959ee368e3 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 27 Jan 2016 07:22:47 +0100 Subject: [PATCH 016/348] Add 1-wire docs --- source/_components/sensor.onewire.markdown | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 source/_components/sensor.onewire.markdown diff --git a/source/_components/sensor.onewire.markdown b/source/_components/sensor.onewire.markdown new file mode 100644 index 00000000000..049a2b40d64 --- /dev/null +++ b/source/_components/sensor.onewire.markdown @@ -0,0 +1,25 @@ +--- +layout: component +title: "One wire sensor" +description: "Instructions how to integrate One wire (1-wire) sensors into Home Assistant." +date: 2016-01-17 07:15 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Sensor +--- + +The `onewire` platform supports sensors which are using the One wire (1-wire) bus for communication. + +Supported devices: + +- [DS18B20}(https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf) + +To enable One wire sensors in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + platform: onewire +``` From dd7b3b38354d3e53ddb5603cc5ba95eb70064159 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 27 Jan 2016 07:53:41 +0100 Subject: [PATCH 017/348] Add twitter docs --- source/_components/notify.twitter.markdown | 38 +++++++++++++++++++++ source/images/supported_brands/twitter.png | Bin 0 -> 32528 bytes 2 files changed, 38 insertions(+) create mode 100644 source/_components/notify.twitter.markdown create mode 100644 source/images/supported_brands/twitter.png diff --git a/source/_components/notify.twitter.markdown b/source/_components/notify.twitter.markdown new file mode 100644 index 00000000000..97ea742ce19 --- /dev/null +++ b/source/_components/notify.twitter.markdown @@ -0,0 +1,38 @@ +--- +layout: component +title: "Twitter" +description: "Instructions how to add Twitter notifications to Home Assistant." +date: 2016-01-27 07:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: twitter.png +ha_category: Notifications +--- + + +The `twitter` platform uses [Twitter](https://twitter.com) to delivery notifications from Home Assistant. + +Go to [Twitter Apps](https://apps.twitter.com/app/new) and create an application. Visit "Keys and Access Tokens" of the application to get the details ("Consumer Key", "Consumer Secret", and "Access Token Secret" which needs to be generated). + +To add Twitter to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +notify: + name: NOTIFIER_NAME + platform: twitter + consumer_key: ABCDEFGHJKLMNOPQRSTUVXYZ + consumer_secret: ABCDEFGHJKLMNOPQRSTUVXYZ + access_token_secret: ABCDEFGHJKLMNOPQRSTUVXYZ +``` + +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`. +- **consumer_key** (*Required*): Your "Consumer Key" (API Key) for the application. +- **consumer_secret** (*Required*): Your "Consumer Secret" (API Secret) for the application. +- **access_token_secret** (*Required*): Your "Access Token Secret" for the application. + +To use notifications, please see the [getting started with automation page]({{site_root}}/components/automation/). diff --git a/source/images/supported_brands/twitter.png b/source/images/supported_brands/twitter.png new file mode 100644 index 0000000000000000000000000000000000000000..c9b89357977a9808771b20fde8a495fec9b095f6 GIT binary patch literal 32528 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 RMIW^QTN|fs_pSX-{}1 Date: Wed, 27 Jan 2016 08:05:58 +0100 Subject: [PATCH 018/348] Add lifx docs --- source/_components/light.lifx.markdown | 27 ++++++++++++++++++++++++ source/images/supported_brands/lifx.png | Bin 0 -> 51280 bytes 2 files changed, 27 insertions(+) create mode 100644 source/_components/light.lifx.markdown create mode 100644 source/images/supported_brands/lifx.png diff --git a/source/_components/light.lifx.markdown b/source/_components/light.lifx.markdown new file mode 100644 index 00000000000..f6456c04566 --- /dev/null +++ b/source/_components/light.lifx.markdown @@ -0,0 +1,27 @@ +--- +layout: component +title: "LIFX" +description: "Instructions how to integrate LIFX into Home Assistant." +date: 2016-01-27 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: lifx.png +ha_category: Light +--- + +The `lifx` platform allows you to integrate your [LIFX](http://www.lifx.com) into Home Assistant. + +```yaml +# Example configuration.yaml entry +light: + platform: lifx + server: 192.168.1.98 + broadcast: 192.168.1.255 +``` +Configuration variables: + +- **server** (*Optional*): Your server address. Only needed if using more than one network interface. Omit if you are unsure. +- **consumer_secret** (*Optional*): The broadcast address, set to reach all LIFX bulbs. + diff --git a/source/images/supported_brands/lifx.png b/source/images/supported_brands/lifx.png new file mode 100644 index 0000000000000000000000000000000000000000..e08297be4276e5e40df4287c6db2f13b5c068298 GIT binary patch literal 51280 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 Date: Wed, 27 Jan 2016 08:36:43 +0100 Subject: [PATCH 019/348] Add names: --- source/_components/sensor.onewire.markdown | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/source/_components/sensor.onewire.markdown b/source/_components/sensor.onewire.markdown index 049a2b40d64..44cb32bea84 100644 --- a/source/_components/sensor.onewire.markdown +++ b/source/_components/sensor.onewire.markdown @@ -14,7 +14,7 @@ The `onewire` platform supports sensors which are using the One wire (1-wire) bu Supported devices: -- [DS18B20}(https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf) +- [DS18B20](https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf) To enable One wire sensors in your installation, add the following to your `configuration.yaml` file: @@ -22,4 +22,11 @@ To enable One wire sensors in your installation, add the following to your `conf # Example configuration.yaml entry sensor: platform: onewire + names: + some_id: your name ``` + +Configuration variables: + +- **names** array (*Optional*): ID and friendly name of your sensors. + From 650916e7b35d403e1b291ecb646c9556136885fb Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 27 Jan 2016 08:56:06 +0100 Subject: [PATCH 020/348] Add nest binary sensor docs --- .../_components/binary_sensor.nest.markdown | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 source/_components/binary_sensor.nest.markdown diff --git a/source/_components/binary_sensor.nest.markdown b/source/_components/binary_sensor.nest.markdown new file mode 100644 index 00000000000..a712d85e712 --- /dev/null +++ b/source/_components/binary_sensor.nest.markdown @@ -0,0 +1,38 @@ +--- +layout: component +title: "Nest thermostat sensor" +description: "Instructions how to integrate Nest thermostats sensors within Home Assistant." +date: 2016-01-26 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: nest_thermostat.png +ha_category: Binary Sensor +--- + + +The `nest` binary sensor platform let you monitor various states of a thermostat from [Nest](https://nest.com). + +To set it up, add the following information to your `configuration.yaml` file: + +```yaml +sensor: + platform: nest + monitored_conditions: + - 'fan' + - 'hvac_ac_state', + - 'hvac_aux_heater_state', + - 'hvac_heat_x2_state', + - 'hvac_heat_x3_state', + - 'hvac_alt_heat_state', + - 'hvac_alt_heat_x2_state', + - 'hvac_emer_heat_state', + - 'online' +``` +Configuration variables: + +- **monitored_conditions** array (*Required*): States to monitos. + +You must have the [Nest Thermostat](https://home-assistant.io/components/thermostat.nest/) entity configured to use this sensor. + From c04adf631c8015eba72e1c3c0862ef8005bb15d0 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 27 Jan 2016 09:11:13 +0100 Subject: [PATCH 021/348] Update array --- .../_components/binary_sensor.nest.markdown | 3 ++- source/_components/sensor.nest.markdown | 24 +++++++------------ 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/source/_components/binary_sensor.nest.markdown b/source/_components/binary_sensor.nest.markdown index a712d85e712..3689d273667 100644 --- a/source/_components/binary_sensor.nest.markdown +++ b/source/_components/binary_sensor.nest.markdown @@ -30,9 +30,10 @@ sensor: - 'hvac_emer_heat_state', - 'online' ``` + Configuration variables: -- **monitored_conditions** array (*Required*): States to monitos. +- **monitored_conditions** array (*Required*): States to monitor. You must have the [Nest Thermostat](https://home-assistant.io/components/thermostat.nest/) entity configured to use this sensor. diff --git a/source/_components/sensor.nest.markdown b/source/_components/sensor.nest.markdown index ef22e305d07..5d46e92709c 100644 --- a/source/_components/sensor.nest.markdown +++ b/source/_components/sensor.nest.markdown @@ -1,9 +1,8 @@ --- layout: component -title: "Nest thermostat" +title: "Nest thermostat sensor" description: "Instructions how to integrate Nest thermostats sensors within Home Assistant." -# Year set to 2017 to unpublish till 0.12 release -date: 2017-01-13 19:59 +date: 2016-01-13 19:59 sidebar: true comments: false sharing: true @@ -13,23 +12,14 @@ ha_category: Sensor --- -The `nest` thermostat platform let you control a thermostat from [Nest](https://nest.com). It also includes the ability to monitor things like the state of our HVAC system and the current humidity and temperature. +The `nest` sensor platform let you monitor a thermostat from [Nest](https://nest.com). It also includes the ability to monitor things like the state of our HVAC system and the current humidity and temperature. To set it up, add the following information to your `configuration.yaml` file: ```yaml -sensor 3: +sensor: platform: nest monitored_conditions: - - 'fan' - - 'hvac_ac_state', - - 'hvac_aux_heater_state', - - 'hvac_heat_x2_state', - - 'hvac_heat_x3_state', - - 'hvac_alt_heat_state', - - 'hvac_alt_heat_x2_state', - - 'hvac_emer_heat_state', - - 'online' - 'temperature', - 'target', - 'away_temperature[0]', @@ -42,7 +32,11 @@ sensor 3: - 'battery_level' ``` -You must have the [Nest Thermostat](https://home-assistant.io/components/thermostat.nest/) entity configured to use this sensor. +Configuration variables: + +- **monitored_conditions** array (*Required*): States to monitor. + +You must have the [Nest Thermostat](https://home-assistant.io/components/thermostat.nest/) entity configured to use this sensor.

From d760009183c072f34bae8f42357b3dba3d9bbfaa Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 27 Jan 2016 09:12:13 +0100 Subject: [PATCH 022/348] UPdate description --- source/_components/mqtt_eventstream.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/mqtt_eventstream.markdown b/source/_components/mqtt_eventstream.markdown index 59a49a64505..a208bdae3e7 100644 --- a/source/_components/mqtt_eventstream.markdown +++ b/source/_components/mqtt_eventstream.markdown @@ -1,7 +1,7 @@ --- layout: component title: "MQTT Eventstream" -description: "Instructions how to setup MQTT within Home Assistant." +description: "Instructions how to setup MQTT eventstream within Home Assistant." date: 2016-01-13 08:00 sidebar: true comments: false From 647c005bbdfa3b43692a9e8426db9ecb61a5ac7f Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 27 Jan 2016 09:20:24 +0100 Subject: [PATCH 023/348] Add template sensor docs --- source/_components/sensor.template.markdown | 36 +++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 source/_components/sensor.template.markdown diff --git a/source/_components/sensor.template.markdown b/source/_components/sensor.template.markdown new file mode 100644 index 00000000000..094492e2771 --- /dev/null +++ b/source/_components/sensor.template.markdown @@ -0,0 +1,36 @@ +--- +layout: component +title: "Template sensor" +description: "Instructions how to integrate Template sensors into Home Assistant." +date: 2016-01-27 07:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Sensor +--- + +The `template` platform supports sensors which breaks out `state_attributes` from other entities. + +To enable Template sensors in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + platform: template + sensors: + solar_angle: + value_template: '{{ states.sun.sun.attributes.elevation }}' + friendly_name: 'Sun angle' + unit_of_measurement: 'degrees' + sunrise: + value_template: '{{ states.sun.sun.attributes.next_rising }}' +``` + +Configuration variables: + +- **sensors** array (*Required*): List of your sensors. + - **friendly_name** (*Optional*): Name to use in the Frontend. + - **unit_of_measurement** (*Optional*): Defines the units of measurement of the sensor, if any. + - **value_template** (*Optional*): Defines a [template](/getting-started/templating/) to extract a value from the payload. + From 33758a2916f299e09aef47ff15219246ae608699 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 27 Jan 2016 09:33:32 +0100 Subject: [PATCH 024/348] Add insteon docs --- source/_components/insteon.markdown | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 source/_components/insteon.markdown diff --git a/source/_components/insteon.markdown b/source/_components/insteon.markdown new file mode 100644 index 00000000000..b60336583b9 --- /dev/null +++ b/source/_components/insteon.markdown @@ -0,0 +1,29 @@ +--- +layout: component +title: "Insteon" +description: "Instructions how to setup the Insteon Hub within Home Assistant." +date: 2016-01-27 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: insteon.png +ha_category: Hub +--- + +The `insteon` component let you use your [Insteon](http://www.insteon.com/) Hub with Home Assistant. + +To integrate your Insteon hub with Home Assistant, add the following section to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +insteon: + host: ISY_ADDRESS + username: YOUR_USERNAME + password: YOUR_PASSWORD +``` +Configuration variables: + +- **username** (*Required*): The username that used to access the ISY interface. +- **password** (*Required*): The password that used to access the ISY interface. + From 874c42c2bed1173416e17849c16aef711eb58524 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 27 Jan 2016 09:36:20 +0100 Subject: [PATCH 025/348] Change ISY to insteon --- source/_components/insteon.markdown | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/source/_components/insteon.markdown b/source/_components/insteon.markdown index b60336583b9..3482fa669fb 100644 --- a/source/_components/insteon.markdown +++ b/source/_components/insteon.markdown @@ -18,12 +18,11 @@ To integrate your Insteon hub with Home Assistant, add the following section to ```yaml # Example configuration.yaml entry insteon: - host: ISY_ADDRESS username: YOUR_USERNAME password: YOUR_PASSWORD ``` Configuration variables: -- **username** (*Required*): The username that used to access the ISY interface. -- **password** (*Required*): The password that used to access the ISY interface. +- **username** (*Required*): The username that used to access the Insteon interface. +- **password** (*Required*): The password that used to access the Insteon interface. From cdf09b27abba6eece9651e6d461bd7fe8c26975c Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 27 Jan 2016 09:42:23 +0100 Subject: [PATCH 026/348] Add new contributors --- source/developers/credits.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/developers/credits.markdown b/source/developers/credits.markdown index e35d557a67a..f905195ab22 100644 --- a/source/developers/credits.markdown +++ b/source/developers/credits.markdown @@ -51,12 +51,14 @@ This page contains a list of people who have contributed in one way or another t - [James Cole](https://github.com/jamespcole) - [Jeffrey Tang](https://github.com/Qrtn) - [Jeff Schroeder](https://github.com/SEJeff) +- [John Arild Berentsen](https://github.com/turbokongen) - [John McLaughlin](https://github.com/loghound) - [John Williams](https://github.com/Jaidan) - [Jon Maddox](https://github.com/maddox) - [Joseph Hughes](https://github.com/joshughes) - [Joseph Piron](https://github.com/eagleamon) - [Julien Danjou](https://github.com/jd) +- [kennedyshead](https://github.com/kennedyshead) - [kixam](https://github.com/kixam) - [Magnus Knutas](https://github.com/MagnusKnutas) - [MakeMeASandwich](https://github.com/MakeMeASandwich) @@ -85,11 +87,14 @@ This page contains a list of people who have contributed in one way or another t - [sander76](https://github.com/sander76) - [sfam](https://github.com/sfam) - [Stefan Jonasson](https://github.com/stefan-jonasson) +- [TangoAlpha](https://github.com/TangoAlpha) - [Theodor Lindquist](https://github.com/theolind) - [toddeye](https://github.com/toddeye) - [Tom Duijf](https://github.com/tomduijf) - [trollkarlen](https://github.com/trollkarlen) - [vitorespindola](https://github.com/vitorespindola) +- [w1ll1am23](https://github.com/w1ll1am23) - [wind-rider](https://github.com/wind-rider) +- [Zac Mrowicki](https://github.com/zmrow) This page is irregularly updated. As a base we use the Github [contributors overview](https://github.com/balloob/home-assistant/graphs/contributors) of the Home Assistant git repository and the [overview](https://github.com/balloob/home-assistant.io/graphs/contributors) for [home-assistant.io](https://home-assistant.io). If you think that you are missing, please let us know or add yourself. From ce83393e4edc8cc3ea42ddc8d85e0936c9a2d2b6 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 27 Jan 2016 12:08:09 +0100 Subject: [PATCH 027/348] Update documentation --- source/_components/tellduslive.markdown | 32 ++++++++++++++++++------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/source/_components/tellduslive.markdown b/source/_components/tellduslive.markdown index 9effddbb502..bf571f33590 100644 --- a/source/_components/tellduslive.markdown +++ b/source/_components/tellduslive.markdown @@ -12,19 +12,33 @@ ha_category: Hub featured: false --- -[Telldus Live] is a cloud platform that connects to your Tellstick connected gear at home. +The `tellduslive` component let you connect to [Telldus Live](https://live.telldus.com). It's cloud platform that connects to your Tellstick connected gear at home. -[Telldus Live]: https://live.telldus.com +To get started using Telldus Live, you will have to obtain developer keys from (https://api.telldus.com/keys/index)[developer-keys]. -To get started using Telldus Live, you will have to obtain developer keys from [here][developer-keys]. - -[developer-keys]: https://api.telldus.com/keys/index +To integrate your Telldus Live with Home Assistant, add the following section to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry tellduslive: - public_key: XX - private_key: XX - token: XX - token_secret: XX + public_key: ABCDEFGHJKLMNOPQRSTUVXYZ + private_key: ABCDEFGHJKLMNOPQRSTUVXYZ + token: ABCDEFGHJKLMNOPQRSTUVXYZ + token_secret: ABCDEFGHJKLMNOPQRSTUVXYZ ``` + +Configuration variables: + +- **public_key** (*Required*): The public key for the Telldus Live service. +- **private_key** (*Required*): The private key for the Telldus Live service. +- **token** (*Required*): The token for the Telldus Live service. +- **token_secret** (*Required*): The token secret for the Telldus Live service. + +Tellstick Net devices can be auto discovered using [this method](https://developer.telldus.com/doxygen/html/TellStickNet.html). + +It might be possible to communicate with the Tellstick Net device directly, bypassing the Tellstick Live service. This however is [poorly documented](http://developer.telldus.se/ticket/114) and yet not [fully supported](https://developer.telldus.com/doxygen/html/TellStickNet.html). + +

+API requests to certain methods are limited to one request every 10 minutes. +

+ From bc4688e0650d38d87aea598f7043a35cb4929bc6 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 27 Jan 2016 12:21:16 +0100 Subject: [PATCH 028/348] Minor changes --- source/_components/device_tracker.asuswrt.markdown | 2 +- source/_components/insteon.markdown | 1 + source/_components/notify.pushbullet.markdown | 11 +++++------ source/_components/notify.telegram.markdown | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/source/_components/device_tracker.asuswrt.markdown b/source/_components/device_tracker.asuswrt.markdown index 9b518a28719..4ca50a9ef3b 100644 --- a/source/_components/device_tracker.asuswrt.markdown +++ b/source/_components/device_tracker.asuswrt.markdown @@ -12,7 +12,7 @@ ha_category: Presence Detection --- -This platform offers presence detection by looking at connected devices to a [ASUSWRT](http://event.asus.com/2013/nw/ASUSWRT/) based router. +The `asuswrt` platform offers presence detection by looking at connected devices to a [ASUSWRT](http://event.asus.com/2013/nw/ASUSWRT/) based router.

This device tracker needs telnet to be enabled on the router. diff --git a/source/_components/insteon.markdown b/source/_components/insteon.markdown index 3482fa669fb..994898a5e32 100644 --- a/source/_components/insteon.markdown +++ b/source/_components/insteon.markdown @@ -21,6 +21,7 @@ insteon: username: YOUR_USERNAME password: YOUR_PASSWORD ``` + Configuration variables: - **username** (*Required*): The username that used to access the Insteon interface. diff --git a/source/_components/notify.pushbullet.markdown b/source/_components/notify.pushbullet.markdown index e5d40058ffb..1653ccfb770 100644 --- a/source/_components/notify.pushbullet.markdown +++ b/source/_components/notify.pushbullet.markdown @@ -12,16 +12,15 @@ ha_category: Notifications featured: true --- -[PushBullet](https://www.pushbullet.com/) is a free service to send information between your phones, browsers and friends. +The `pushbullet` notification platform sends messages to [PushBullet](https://www.pushbullet.com/), a free service to send information between your phones, browsers, and friends. -### Configuration +To enable PushBullet notifications in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry notify: platform: pushbullet api_key: YOUR_API_KEY - # Optional name: NOTIFIER_NAME ``` @@ -30,9 +29,9 @@ Configuration variables: - **api_key** (*Required*): Enter the API key for PushBullet. Go to https://www.pushbullet.com/ to retrieve your API key. - **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`. -### Usage +### {% linkable_title Usage %} -PushBullet is a notify platform and thus can be controlled by calling the notify service [as described here](/components/notify/). It will send a notification to all devices registered in the PushBullet account. An optional **target** parameter can be given to PushBullet to specify specific account's devices, contacts or channels. +PushBullet is a notify platform and thus can be controlled by calling the notify service [as described here](/components/notify/). It will send a notification to all devices registered in the PushBullet account. An optional **target** parameter can be given to PushBullet to specify specific account's devices, contacts or channels. Type | Prefix | Suffix | Example ---- | ------ | ------ | ------- @@ -42,7 +41,7 @@ Email | `email/` | Contact's email address | `email/email@example.com` If using targets, your own account's email address functions as 'send to all devices'. All targets are verified (if exists) before sending, except email. -#### Example service payload +#### {% linkable_title Example service payload %} ```json { diff --git a/source/_components/notify.telegram.markdown b/source/_components/notify.telegram.markdown index 83b8bfd6b27..b804aa5bff7 100644 --- a/source/_components/notify.telegram.markdown +++ b/source/_components/notify.telegram.markdown @@ -12,9 +12,9 @@ ha_category: Notifications --- -The telegram platform uses [Telegram](https://web.telegram.org) to delivery notifications from Home Assistant to your Android device, your Windows phone, or your iOS device. +The `telegram` platform uses [Telegram](https://web.telegram.org) to delivery notifications from Home Assistant to your Android device, your Windows phone, or your iOS device. -The requirement are: +The requirements are: - You need a [Telegram bot](https://core.telegram.org/bots). Please follow those [instructions](https://core.telegram.org/bots#botfather) to create one and get the token for your bot. Keep in mind that bots are not allowed to contact users. You need to make the first contact with your user. Meaning that you need to send a message to the bot from your user. - The `chat_id` of an user. From b5664058849f77b88462e2ec2298c5502b400d03 Mon Sep 17 00:00:00 2001 From: sfam Date: Thu, 28 Jan 2016 00:06:19 +0000 Subject: [PATCH 029/348] Fix template config keys in light.mqtt --- source/_components/light.mqtt.markdown | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/_components/light.mqtt.markdown b/source/_components/light.mqtt.markdown index 07c24d8eaa7..6e8b57ce211 100644 --- a/source/_components/light.mqtt.markdown +++ b/source/_components/light.mqtt.markdown @@ -33,9 +33,9 @@ light: brightness_command_topic: "office/rgb1/brightness/set" rgb_state_topic: "office/rgb1/rgb/status" rgb_command_topic: "office/rgb1/rgb/set" - state_value_format: "{% raw %}{{ value_json.state }}{% endraw %}" - brightness_value_format: "{% raw %}{{ value_json.brightness }}{% endraw %}" - rgb_value_format: "{% raw %}{{ value_json.rgb | join(',') }}{% endraw %}" + state_value_template: "{% raw %}{{ value_json.state }}{% endraw %}" + brightness_value_template: "{% raw %}{{ value_json.brightness }}{% endraw %}" + rgb_value_template: "{% raw %}{{ value_json.rgb | join(',') }}{% endraw %}" qos: 0 payload_on: "ON" payload_off: "OFF" @@ -66,9 +66,9 @@ Configuration variables: - **brightness_command_topic** (*Optional*): The MQTT topic to publish commands to change the light's brightness. - **rgb_state_topic** (*Optional*): The MQTT topic subscribed to receive RGB state updates. - **rgb_command_topic** (*Optional*): The MQTT topic to publish commands to change the light's RGB state. -- **state_value_format** (*Optional*): Defines a [template](/getting-started/templating/) to extract the state value. -- **brightness_value_format** (*Optional*): Defines a [template](/getting-started/templating/) to extract the brightness value. -- **rgb_value_format** (*Optional*): Defines a [template](/getting-started/templating/) to extract the RGB value. +- **state_value_template** (*Optional*): Defines a [template](/getting-started/templating/) to extract the state value. +- **brightness_value_template** (*Optional*): Defines a [template](/getting-started/templating/) to extract the brightness value. +- **rgb_value_template** (*Optional*): Defines a [template](/getting-started/templating/) to extract the RGB value. - **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0 and will also be used to publishing messages. - **payload_on** (*Optional*): The payload that represents enabled state. Default is "ON". - **payload_off** (*Optional*): The payload that represents disabled state. Default is "OFF". From aed2932b5a687057e0e10942ac3fb93e7b12dfde Mon Sep 17 00:00:00 2001 From: tfyoung Date: Wed, 27 Jan 2016 21:57:18 -0800 Subject: [PATCH 030/348] Fix typo Fix trivial typo --- source/getting-started/troubleshooting-configuration.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/getting-started/troubleshooting-configuration.markdown b/source/getting-started/troubleshooting-configuration.markdown index 3a4ca40fe36..cf971b3c470 100644 --- a/source/getting-started/troubleshooting-configuration.markdown +++ b/source/getting-started/troubleshooting-configuration.markdown @@ -46,7 +46,7 @@ sensor: state_topic: sensor2/topic ``` -Indentation is used to specify which objects are nested under one anohter. Getting the right indentation can be tricky if you're not using an editor with a fixed width font. Tabs are not allowed to be used for indentation. +Indentation is used to specify which objects are nested under one another. Getting the right indentation can be tricky if you're not using an editor with a fixed width font. Tabs are not allowed to be used for indentation. - To learn more about the quirks of YAML, read [YAML IDIOSYNCRASIES](https://docs.saltstack.com/en/latest/topics/troubleshooting/yaml_idiosyncrasies.html) by SaltStack. - You can test your configuration using [this online YAML parser](http://yaml-online-parser.appspot.com/). From f798983b32786f11bced2b2dce80187ad8871751 Mon Sep 17 00:00:00 2001 From: GreenTurtwig Date: Thu, 28 Jan 2016 10:08:51 +0000 Subject: [PATCH 031/348] Grammar --- source/getting-started/automation.markdown | 10 ++++----- source/getting-started/configuration.markdown | 4 ++-- source/getting-started/devices.markdown | 6 ++--- source/getting-started/index.markdown | 6 ++--- .../presence-detection.markdown | 6 ++--- source/getting-started/templating.markdown | 22 +++++++++---------- 6 files changed, 27 insertions(+), 27 deletions(-) diff --git a/source/getting-started/automation.markdown b/source/getting-started/automation.markdown index 1538529f1c5..807c7f3479e 100644 --- a/source/getting-started/automation.markdown +++ b/source/getting-started/automation.markdown @@ -21,7 +21,7 @@ Actions will call services within Home Assistant. For example, turn a light on, Conditions are used to prevent actions from firing unless certain conditions are met. For example, it is possible to only turn on the light if someone comes home and it is after a certain point in time. -The difference between a condition and a trigger can be confusing. The difference is that the trigger looks at the event that is happening, ie a car engine turning on. Conditions looks at the current state of the system, ie is the car engine on. +The difference between a condition and a trigger can be confusing. The difference is that the trigger looks at the event that is happening, i.e. a car engine turning on. Conditions looks at the current state of the system, i.e. is the car engine on. ### {% linkable_title Exploring the internal state %} @@ -76,7 +76,7 @@ Now you're happy and all is good. You start to like this automation business and The first thing you do is to look at the entities in the developer tools (second icon) in the app. You see the names of your lights and you write them down: `light.table_lamp`, `light.bedroom`, `light.ceiling`. -Instead of hard coding the entity ids of the lights in the automation rule, we will set up a group. This will allow us to see the living room separate in the app and be able to address it from automation rules. +Instead of hard coding the entity IDs of the lights in the automation rule, we will set up a group. This will allow us to see the living room separate in the app and be able to address it from automation rules. So we tweak the config to add the group and have the automation rule only turn on the group. @@ -102,9 +102,9 @@ automation: entity_id: group.living_room ``` -Christmas is coming along and you decide to buy a remote switch to control the christmas lights from Home Assistant. You can't claim to live in the house of the future if you're still manually turn on your christmas lights! +Christmas is coming along and you decide to buy a remote switch to control the Christmas lights from Home Assistant. You can't claim to live in the house of the future if you're still manually turning on your Christmas lights! -We hook the switch up to Home Assistant and grab the entity id from the developer tools: `switch.christmas_lights`. We will update the group to include the switch and will change our action. We are no longer able to call `light.turn_on` because we also want to turn on a switch. This is where `homeassistant.turn_on` comes to the rescue. This service is capable of turning any entity on. +We hook the switch up to Home Assistant and grab the entity ID0 from the developer tools: `switch.christmas_lights`. We will update the group to include the switch and will change our action. We are no longer able to call `light.turn_on` because we also want to turn on a switch. This is where `homeassistant.turn_on` comes to the rescue. This service is capable of turning any entity on. ```yaml # Example configuration.yaml entry @@ -131,7 +131,7 @@ automation: ### {% linkable_title Further reading %} -We went over the basics of creating a home automation rule. From here no longer any hand holding, go automate! +We went over the basics of creating a home automation rule. Now, go automate! - Learn about the available [automation triggers](/components/automation/#triggers) - Learn about the available [automation conditions](/components/automation/#conditions) diff --git a/source/getting-started/configuration.markdown b/source/getting-started/configuration.markdown index c267a9d87c7..c236513ee9b 100644 --- a/source/getting-started/configuration.markdown +++ b/source/getting-started/configuration.markdown @@ -9,7 +9,7 @@ sharing: true footer: true --- -Home Assistant will create a configuration folder when it is run for the first time. The location of the folder depends on operating system: on OS X/Linux it's `~/.homeassistant` and on Windows it's `%APPDATA%/.homeassistant`. If you want to use a different folder for configuration, run `hass --config path/to/config`. +Home Assistant will create a configuration folder when it is run for the first time. The location of the folder differs between operating systems: on OS X/Linux it's `~/.homeassistant` and on Windows it's `%APPDATA%/.homeassistant`. If you want to use a different folder for configuration, run `hass --config path/to/config`. Inside your configuration folder is the file `configuration.yaml`. This is the main file that contains which components will be loaded and what their configuration is. An example configuration file is located [here](https://github.com/balloob/home-assistant/blob/master/config/configuration.yaml.example). @@ -65,6 +65,6 @@ Home Assistant runs as a self hosted web application and contains support to be To make Home Assistant accessible while away from home, you will have to setup port forwarding from your router to port 8123 on the computer that is hosting Home Assistant. Instructions on how to do this can be found by searching ` port forwarding instructions`. -Some internet service providers will only offer dynamic IPs. This can cause you to be unable to access Home Assistant while being remote. You can solve this by using a free Dynamic DNS service like [DuckDNS](https://www.duckdns.org/). +Some internet service providers will only offer dynamic IPs. This can cause you to be unable to access Home Assistant while away. You can solve this by using a free Dynamic DNS service like [DuckDNS](https://www.duckdns.org/). ### [Next step: Setting up devices »](/getting-started/devices/) diff --git a/source/getting-started/devices.markdown b/source/getting-started/devices.markdown index 2df480d61d3..265d1f39f20 100644 --- a/source/getting-started/devices.markdown +++ b/source/getting-started/devices.markdown @@ -9,11 +9,11 @@ sharing: true footer: true --- -Home Assistant will be able to automatically discover and configure any Google Chromecasts, Netgear routers, Belkin WeMo switches, Philips Hue bridges and Sonos speakers in your network if you have [the discovery component]({{site_root}}/components/discovery/) enabled (which is by default). +Home Assistant will be able to automatically discover and configure any Google Chromecasts, Netgear routers, Belkin WeMo switches, Philips Hue bridges and Sonos speakers on your network if you have [the discovery component]({{site_root}}/components/discovery/) enabled (which is by default). See the [components overview page](/components/) to find installation instructions for your devices and services. If you can't find support for your favorite device or service, [consider adding support](/developers/add_new_platform/). -Usually every entity needs its own entry in the `configuration.yaml` file. There are two kind of styles for multiple entries: +Usually every entity needs its own entry in the `configuration.yaml` file. There are two kinds of style for multiple entries: #### {% linkable_title Style 1 %} @@ -59,7 +59,7 @@ If your devices are not showing up in the frontend then check the entries in you ### {% linkable_title Grouping devices %} -Once you get a bunch of devices set up, it is time to organize them. This can be done using groups. Each group exists of a name and a list of entity IDs. Entity IDs can be retrieved from the web interface by using the Set State page in the Developer Tools (icon in the middle). +Once you have a bunch of devices set up, it is time to organize them. This can be done using groups. Each group exists of a name and a list of entity IDs. Entity IDs can be retrieved from the web interface by using the Set State page in the Developer Tools (icon in the middle). ```yaml # Example configuration.yaml entry diff --git a/source/getting-started/index.markdown b/source/getting-started/index.markdown index 3e3951ef5ce..2c9052fd551 100644 --- a/source/getting-started/index.markdown +++ b/source/getting-started/index.markdown @@ -28,7 +28,7 @@ $ hass --open-ui Running these commands will: - Install Home Assistant - - Launch Home Assistant and serve web interface on [http://localhost:8123](http://localhost:8123) + - Launch Home Assistant and serve the web interface on [http://localhost:8123](http://localhost:8123) @@ -41,7 +41,7 @@ Installation with Docker is straightforward. Adjust the following command so tha $ docker run -d --name="home-assistant" -v /path/to/your/config:/config -v /etc/localtime:/etc/localtime:ro --net=host balloob/home-assistant ``` -This will launch Home Assistant and serve its web interface from port 8123 on your Docker host. +This will launch Home Assistant and serve the web interface from port 8123 on your Docker host.

When using boot2docker on OS X you are unable to map the local time to your Docker container. Replace `-v /etc/localtime:/etc/localtime:ro` with `-e "TZ=America/Los_Angeles"` (replacing America/Los_Angeles with [your timezone](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones)) @@ -64,7 +64,7 @@ $ hass Running these commands will: - Install Home Assistant - - Launch Home Assistant and serve web interface on [http://localhost:8123](http://localhost:8123) + - Launch Home Assistant and serve the web interface on [http://localhost:8123](http://localhost:8123) diff --git a/source/getting-started/presence-detection.markdown b/source/getting-started/presence-detection.markdown index c6b8f3ef805..edb2093da74 100644 --- a/source/getting-started/presence-detection.markdown +++ b/source/getting-started/presence-detection.markdown @@ -16,7 +16,7 @@ We care about privacy. Collected data is only stored in your instance of Presence detection detects if people are home, an important input for automation. The most important piece of information is to know if anyone is home. But knowing who is home or where they are will open a whole range of other automation options: - Send me a notification when my child arrives at school - - Turn on AC when I leave work + - Turn on the AC when I leave work

@@ -27,7 +27,7 @@ Screenshot of Home Assistant showing a school, work and home zone and two people The device tracker component offers presence detection for Home Assistant. It supports two different methods for presence detection: scan for connected devices on the local network and connect to third party service. -Scanning for connected devices is easy to setup. See the instructions for our [supported routers][routers] or [scan the network using nmap][nmap]. This approach does have its limitations. It will only be able to detect if a device is home. It also struggles with iPhones because they disconnect from the WiFi if idle, marking them as not home while they are not. +Scanning for connected devices is easy to setup. See the instructions for our [supported routers][routers] or [scan the network using nmap][nmap]. This approach does have its limitations however, it will only be able to detect if a device is home. It also struggles with iPhones because they disconnect from WiFi if idle, marking them as not home when they actually are. Home Assistant currently supports two third party services for presence detection: [OwnTracks][ha-owntracks] and [Locative][ha-locative]. OwnTracks is an app that you install on your iPhone or Android phone that allows you to push the location of your device to Home Assistant using an MQTT broker. An MQTT broker is an Internet of Things communication platform that you can [freely host yourself][mqtt-self] or get [a private instance for free in the cloud](/components/mqtt/#run-your-own). @@ -39,7 +39,7 @@ OwnTracks communicates directly with your MQTT broker, no data will pass through -Home Assistant will know about the location for your device if you are using OwnTracks. By [setting up zones][zone] you will be able to add names to locations of your devices. This way you can easily spot on the state page where the people in your house are and use it as [triggers][trigger] and [conditions][condition] for automation. +Home Assistant will know the location of your device if you are using OwnTracks. By [setting up zones][zone] you will be able to add names to the locations of your devices. This way you can easily spot on the state page where the people in your house are and use it as [triggers][trigger] and [conditions][condition] for automation. ### [Next step: Setting up automation »](/getting-started/automation/) diff --git a/source/getting-started/templating.markdown b/source/getting-started/templating.markdown index af5b863919c..5594d13e16d 100644 --- a/source/getting-started/templating.markdown +++ b/source/getting-started/templating.markdown @@ -10,7 +10,7 @@ footer: true ---

-This is an advanced feature of Home Assistant. You need a basic understanding of the [Home Assistant architecture], especially states. +This is an advanced feature of Home Assistant. You'll need a basic understanding of the [Home Assistant architecture], especially states.

[Home Assistant architecture]: /developers/architecture/ @@ -36,7 +36,7 @@ Templating in Home Assistant is powered by the Jinja2 templating engine. This me The frontend has a template editor developer tool to help develop and debug templates.

-Templates can get pretty big pretty fast. To keep a clear overview, consider using YAML multiline strings to define your templates: +Templates can get big pretty fast. To keep a clear overview, consider using YAML multiline strings to define your templates: ```yaml script: @@ -56,14 +56,14 @@ script: Home Assistant adds extensions to allow templates to access all of the current states: - - Iterating `states` will yield each state sorted alphabetically by entity id - - Iterating `states.domain` will yield each state of that domain sorted alphabetically by entity id - - `states.sensor.temperature` returns state object for `sensor.temperature` - - `states('device_tracker.paulus')` will return the state string (not the object) of given entity or `unknown` if it doesn't exist. - - `is_state('device_tracker.paulus', 'home')` will test if given entity is specified state. - - `is_state_attr('device_tracker.paulus', 'battery', 40)` will test if given entity is specified state. - - Filter `multiply(x)` will convert input to number and multiply it with `x` - - Filter `round(x)` will convert input to number and round it to `x` decimals. + - Iterating `states` will yield each state sorted alphabetically by entity ID + - Iterating `states.domain` will yield each state of that domain sorted alphabetically by entity ID + - `states.sensor.temperature` returns the state object for `sensor.temperature` + - `states('device_tracker.paulus')` will return the state string (not the object) of the given entity or `unknown` if it doesn't exist. + - `is_state('device_tracker.paulus', 'home')` will test if the given entity is specified state. + - `is_state_attr('device_tracker.paulus', 'battery', 40)` will test if the given entity is specified state. + - Filter `multiply(x)` will convert the input to a number and multiply it with `x` + - Filter `round(x)` will convert the input to a number and round it to `x` decimals. #### {% linkable_title Examples %} @@ -101,7 +101,7 @@ Home Assistant adds extensions to allow templates to access all of the current s ## {% linkable_title Processing incoming data %} -The other part of templating is processing incoming data. It will allow you to modify incoming data and extract only the data that you care about. This will work only for platforms and components that mentioned support for this in their documentation. +The other part of templating is processing incoming data. It will allow you to modify incoming data and extract only the data you care about. This will work only for platforms and components that mentioned support for this in their documentation. It depends per component or platform but it is common to be able to define a template using the `value_template` configuration key. When a new value arrives, your template will be rendered while having access to the following values on top of the usual Home Assistant extensions: From 583e4f93d726b021468487fedb17281877102266 Mon Sep 17 00:00:00 2001 From: Flyte Date: Thu, 28 Jan 2016 17:07:22 +0000 Subject: [PATCH 032/348] Add ZigBee component documentation. --- .../_components/binary_sensor.zigbee.markdown | 33 ++++++++++ source/_components/light.zigbee.markdown | 33 ++++++++++ source/_components/sensor.zigbee.markdown | 59 ++++++++++++++++++ source/_components/switch.zigbee.markdown | 33 ++++++++++ source/_components/zigbee.markdown | 55 ++++++++++++++++ source/images/supported_brands/zigbee.png | Bin 0 -> 18965 bytes 6 files changed, 213 insertions(+) create mode 100644 source/_components/binary_sensor.zigbee.markdown create mode 100644 source/_components/light.zigbee.markdown create mode 100644 source/_components/sensor.zigbee.markdown create mode 100644 source/_components/switch.zigbee.markdown create mode 100644 source/_components/zigbee.markdown create mode 100644 source/images/supported_brands/zigbee.png diff --git a/source/_components/binary_sensor.zigbee.markdown b/source/_components/binary_sensor.zigbee.markdown new file mode 100644 index 00000000000..7d270316e27 --- /dev/null +++ b/source/_components/binary_sensor.zigbee.markdown @@ -0,0 +1,33 @@ +--- +layout: component +title: ZigBee Binary Sensor +description: "Instructions on how to set up ZigBee binary sensors within Home Assistant." +date: 2016-01-28 12:38 +sidebar: true +comments: false +sharing: true +footer: true +logo: zigbee.png +ha_category: Binary Sensor +--- + +A ZigBee binary sensor in this context is a device connected to one of the digital input pins on a ZigBee module. The states reported by such a device are limited to 'on' or 'off'. By default, a binary sensor is considered 'on' when the ZigBee device's digital input pin is held 'high' and considered 'off' when it is held 'low'. This behaviour can be inverted by setting the `on_state` configuration variable to `low`. + +To configure a digital input as a binary sensor, use the following variables: + +- **name** (*Required*): The name you'd like to give the binary sensor in Home Assistant. +- **platform** (*Required*): Set to `zigbee`. +- **pin** (*Required*): The number identifying which pin to use. +- **address**: The long 64bit address of the remote ZigBee device whose digital input pin you'd like to sample. Do not include this variable if you want to sample the local ZigBee device's pins. +- **on_state**: Either `high` (default) or `low`, depicting whether the binary sensor is considered 'on' when the pin is 'high' or 'low'. + +#### Example + +```yaml +binary_sensor: + - name: Hallway PIR Sensor + platform: zigbee + pin: 0 + address: 0013A20040892FA2 + on_state: low +``` diff --git a/source/_components/light.zigbee.markdown b/source/_components/light.zigbee.markdown new file mode 100644 index 00000000000..0c71f8e4bfc --- /dev/null +++ b/source/_components/light.zigbee.markdown @@ -0,0 +1,33 @@ +--- +layout: component +title: ZigBee Light +description: "Instructions on how to set up ZigBee lights within Home Assistant." +date: 2016-01-28 12:38 +sidebar: true +comments: false +sharing: true +footer: true +logo: zigbee.png +ha_category: Light +--- + +A ZigBee light in this context is a light connected to one of the digital output pins on a ZigBee module. It can simply be switched on and off. By default, a light is considered 'on' when the ZigBee device's digital output is held 'high' and considered 'off' when it is held 'low'. This behaviour can be inverted by setting the `on_state` configuration variable to `low`. + +To configure a digital output pin as a light, use the following variables: + +- **name** (*Required*): The name you'd like to give the light in Home Assistant. +- **platform** (*Required*): Set to `zigbee`. +- **pin** (*Required*): The number identifying which pin to use. +- **address**: The long 64bit address of the remote ZigBee device whose digital output pin you'd like to switch. Do not include this variable if you want to switch the local ZigBee device's pins. +- **on_state**: Either `high` (default) or `low`, depicting whether the digital output pin is pulled high or low when the light is turned on. + +#### Example + +```yaml +light: + - name: Desk Lamp + platform: zigbee + pin: 0 + address: 0013A20040791FA2 + on_state: low +``` diff --git a/source/_components/sensor.zigbee.markdown b/source/_components/sensor.zigbee.markdown new file mode 100644 index 00000000000..c8a3e450797 --- /dev/null +++ b/source/_components/sensor.zigbee.markdown @@ -0,0 +1,59 @@ +--- +layout: component +title: ZigBee Sensor +description: "Instructions on how to set up ZigBee sensors within Home Assistant." +date: 2016-01-28 10:08 +sidebar: true +comments: false +sharing: true +footer: true +logo: zigbee.png +ha_category: Sensor +--- + +There are two types of ZigBee sensor available to Home Assistant: + +- Analog input pin +- Temperature sensor (XBee Pro) + +## Analog Input Pin + +The analog input pins on an XBee (non-pro) will read 0-1.2 Volts. This is translated by the [xbee-helper](https://github.com/flyte/xbee-helper) library into a percentage. The maximum voltage your ZigBee device will read is configurable using the `max_volts` configuration variable. + +To configure an analog input pin sensor, use the following variables: + +- **name** (*Required*): The name you'd like to give the sensor in Home Assistant. +- **platform** (*Required*): Set to `zigbee`. +- **type** (*Required*): Set to `analog`. +- **pin** (*Required*): The number identifying which pin to sample. +- **address**: The long 64bit address of the remote ZigBee device whose analog input pin you'd like to sample. Do not include this variable if you want to sample the local ZigBee device's pins. + +#### Example + + sensor: + - name: My Analog Input + platform: zigbee + type: analog + pin: 0 + address: 0013A2004233D138 + +See the [Digi knowledge base](http://knowledge.digi.com/articles/Knowledge_Base_Article/Digital-and-analog-sampling-using-XBee-radios) for more XBee sampling details. + +## Temperature Sensor + +The XBee Pro (and perhaps other third party modules) contains a thermometer device which can be read by using the `TP` AT command. To set this up as a temperature sensor device in Home Assistant use the following config variables: + +- **name** (*Required*): The name you'd like to give the temperature sensor in Home Assistant +- **platform** (*Required*): Set to `zigbee` +- **type** (*Required*): Set to `temperature` +- **address**: The long 64bit address of the remote ZigBee device whose temperature sensor you'd like to sample. Do not include this variable if you want to sample the local ZigBee device's temperature. + +#### Example + +```yaml +sensor: + - name: Living Room Temperature + platform: zigbee + type: temperature + address: 0013A20050E752C5 +``` \ No newline at end of file diff --git a/source/_components/switch.zigbee.markdown b/source/_components/switch.zigbee.markdown new file mode 100644 index 00000000000..e75435b0184 --- /dev/null +++ b/source/_components/switch.zigbee.markdown @@ -0,0 +1,33 @@ +--- +layout: component +title: ZigBee Switch +description: "Instructions on how to set up ZigBee switches within Home Assistant." +date: 2016-01-28 11:52 +sidebar: true +comments: false +sharing: true +footer: true +logo: zigbee.png +ha_category: Switch +--- + +A ZigBee switch in this context is a device connected to one of the digital output pins on a ZigBee module. It can simply be switched on and off. By default, a switch is considered 'on' when the ZigBee device's digital output is held 'high' and considered 'off' when it is held 'low'. This behaviour can be inverted by setting the `on_state` configuration variable to `low`. + +To configure a digital output pin as a switch, use the following variables: + +- **name** (*Required*): The name you'd like to give the switch in Home Assistant. +- **platform** (*Required*): Set to `zigbee`. +- **pin** (*Required*): The number identifying which pin to use. +- **address**: The long 64bit address of the remote ZigBee device whose digital output pin you'd like to switch. Do not include this variable if you want to switch the local ZigBee device's pins. +- **on_state**: Either `high` (default) or `low`, depicting whether the digital output pin is pulled high or low when the switch is turned on. + +#### Example + +```yaml +switch: + - name: Pond Fountain + platform: zigbee + pin: 0 + address: 0013A20040791FA2 + on_state: low +``` diff --git a/source/_components/zigbee.markdown b/source/_components/zigbee.markdown new file mode 100644 index 00000000000..115bbbb4818 --- /dev/null +++ b/source/_components/zigbee.markdown @@ -0,0 +1,55 @@ +--- +layout: component +title: "ZigBee" +description: "Instructions on how to integrate a ZigBee network with Home Assistant." +date: 2016-01-27 17:10 +sidebar: true +comments: false +sharing: true +footer: true +logo: zigbee.png +ha_category: DIY +--- + +[ZigBee](http://www.zigbee.org/what-is-zigbee/) integration for Home Assistant allows you to utilise modules such as the [XBee](http://www.digi.com/lp/xbee) as wireless General Purpose Input/Output (GPIO) devices. The component requires a local ZigBee device to be connected over a serial port. Through this it will send and receive commands to and from other devices on the ZigBee mesh network. + +There is currently support for the following device types within Home Assistant: + +- Binary Sensor (digital input pins) +- Sensor (analog input pins and temperature sensor) +- Light (digital output pins) +- Switch (digital output pins) + +The local ZigBee device (assuming XBee) must have an up to date Router or Coordinator API firmware installed. + +## Configuration + +A `zigbee` section must be present in the `configuration.yaml` file and contain the following options as required: + +- **device**: The serial port to which the local ZigBee device is connected. Default: `/dev/ttyUSB0` + +- **baud**: The baud rate at which to communicate with the local ZigBee device. Default: `9600` + +#### Example + +```yaml +zigbee: + device: /dev/ttyUSB0 + baud: 115200 +``` + +Or to simply use the defaults: + +```yaml +zigbee: +``` + +To find the possible serial port names of your device, run: + +```bash +$ ls /dev/ttyUSB* +``` + +

+The port may also appear as /dev/ttyACM* if you're communicating with the ZigBee device through an Arduino. +

diff --git a/source/images/supported_brands/zigbee.png b/source/images/supported_brands/zigbee.png new file mode 100644 index 0000000000000000000000000000000000000000..444407c349e7ef3c4759f92259fb649ca543f5bb GIT binary patch literal 18965 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 ut6`&pja9_P%c9cuW(4Tr;o&hC@c#qTldk{L Date: Fri, 29 Jan 2016 01:51:27 +0100 Subject: [PATCH 033/348] Update mysensors documentation * Specify config defaults and supported protocol versions. * Add guide for presenting a sensor. * Specify supported S_TYPES and V_TYPES for sensors and switches. --- source/_components/mysensors.markdown | 27 ++++++++++-- source/_components/sensor.mysensors.markdown | 44 ++++++++++++++++++++ source/_components/switch.mysensors.markdown | 27 ++++++++++++ 3 files changed, 95 insertions(+), 3 deletions(-) diff --git a/source/_components/mysensors.markdown b/source/_components/mysensors.markdown index 83482b97904..26214db8b51 100644 --- a/source/_components/mysensors.markdown +++ b/source/_components/mysensors.markdown @@ -14,6 +14,8 @@ featured: true The [MySensors](https://www.mysensors.org) project combines Arduino boards with NRF24L01 radio boards to build sensor networks. The component will automatically add all available switches and sensors to Home Assistant. +### Configuration + Integrate your Serial MySensors Gateway by adding the following to your `configuration.yaml` file: ```yaml @@ -32,13 +34,32 @@ mysensors: Configuration variables: - **port** (*Required*): The port where your board is connected to your Home Assistant host. -- **debug** (*Optional*): Enable or disable verbose debug logging. -- **persistence** (*Optional*): Enable or disable local persistence of sensor information. If this is disabled, then each sensor will need to send presentation messages after Home Assistant starts. +- **debug** (*Optional*): Enable or disable verbose debug logging. Default is false. +- **persistence** (*Optional*): Enable or disable local persistence of sensor information. If this is disabled, then each sensor will need to send presentation messages after Home Assistant starts. Default is true. - **persistence_file** (*Optional*): Path to a file to save sensor information. The file extension determines the file type. Currently supported file types are 'pickle' and 'json'. -- **version** (*Optional*): Specifies the MySensors protocol version to use (ex. 1.4, 1.5). +- **version** (*Optional*): Specifies the MySensors protocol version to use. Supports 1.4 and 1.5. Default is 1.4. If you are using an original Arduino the port will be named `ttyACM*`. The exact number can be determined with the command shown below. ```bash $ ls /dev/ttyACM* ``` + +### Presentation + +Present a MySensors sensor or actuator, by following these steps: + +1. Connect your gateway to your computer. +2. Configure the MySensors component in configuration.yaml. +3. Start hass. +4. Wait for "gateway started" in the log output. +5. Write and upload your MySensors sketch to the sensor. Make sure you: + - Either use a manual node id, or AUTO for requesting a node id from the controller, in gw.begin(). + - Send sketch name. + - Present the sensor's S_TYPE. + - Send at least one initial value per V_TYPE. +6. Start the sensor. + +Visit the [library api] of MySensors for more information. + +[library api]: https://www.mysensors.org/download/sensor_api_15 diff --git a/source/_components/sensor.mysensors.markdown b/source/_components/sensor.mysensors.markdown index 26538464526..bc58715d98b 100644 --- a/source/_components/sensor.mysensors.markdown +++ b/source/_components/sensor.mysensors.markdown @@ -14,4 +14,48 @@ featured: false Integrates MySensors sensors into Home Assistant. See the [main component] for configuration instructions. +The following sensor types are supported: + +##### MySensors version 1.4 and higher + +S_TYPE | V_TYPE +-------------------|--------------------------------------- +S_DOOR | V_TRIPPED +S_MOTION | V_TRIPPED +S_SMOKE | V_TRIPPED +S_TEMP | V_TEMP +S_HUM | V_HUM +S_BARO | V_PRESSURE, V_FORECAST +S_WIND | V_WIND, V_GUST +S_RAIN | V_RAIN, V_RAINRATE +S_UV | V_UV +S_WEIGHT | V_WEIGHT, V_IMPEDANCE +S_POWER | V_WATT, V_KWH +S_DISTANCE | V_DISTANCE +S_LIGHT_LEVEL | V_LIGHT_LEVEL +S_IR | V_IR_SEND, V_IR_RECEIVE +S_WATER | V_FLOW, V_VOLUME +S_AIR_QUALITY | V_DUST_LEVEL +S_CUSTOM | V_VAR1, V_VAR2, V_VAR3, V_VAR4, V_VAR5 +S_DUST | V_DUST_LEVEL +S_SCENE_CONTROLLER | V_SCENE_ON, V_SCENE_OFF + +##### MySensors version 1.5 and higher + +S_TYPE | V_TYPE +---------------|---------------------------------- +S_COLOR_SENSOR | V_RGB +S_MULTIMETER | V_VOLTAGE, V_CURRENT, V_IMPEDANCE +S_SPRINKLER | V_TRIPPED +S_WATER_LEAK | V_TRIPPED +S_SOUND | V_TRIPPED, V_LEVEL +S_VIBRATION | V_TRIPPED, V_LEVEL +S_MOISTURE | V_TRIPPED, V_LEVEL +S_LIGHT_LEVEL | V_LEVEL +S_AIR_QUALITY | V_LEVEL (replaces V_DUST_LEVEL) +S_DUST | V_LEVEL (replaces V_DUST_LEVEL) + +For more information, visit the [serial api] of MySensors. + [main component]: /components/mysensors/ +[serial api]: https://www.mysensors.org/download/serial_api_15 diff --git a/source/_components/switch.mysensors.markdown b/source/_components/switch.mysensors.markdown index 00b90022d5b..43de6457344 100644 --- a/source/_components/switch.mysensors.markdown +++ b/source/_components/switch.mysensors.markdown @@ -14,4 +14,31 @@ featured: false Integrates MySensors switches into Home Assistant. See the [main component] for configuration instructions. +The following actuator types are supported: + +##### MySensors version 1.4 and higher + +S_TYPE | V_TYPE +---------|-------------- +S_DOOR | V_ARMED +S_MOTION | V_ARMED +S_SMOKE | V_ARMED +S_LIGHT | V_LIGHT +S_LOCK | V_LOCK_STATUS + +##### MySensors version 1.5 and higher + +S_TYPE | V_TYPE +-------------|------------------ +S_LIGHT | V_STATUS +S_BINARY | V_STATUS, V_LIGHT +S_SPRINKLER | V_STATUS +S_WATER_LEAK | V_ARMED +S_SOUND | V_ARMED +S_VIBRATION | V_ARMED +S_MOISTURE | V_ARMED + +For more information, visit the [serial api] of MySensors. + [main component]: /components/mysensors/ +[serial api]: https://www.mysensors.org/download/serial_api_15 From 58a9a98a66b6e344818be6365930b4b791f18f5b Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 29 Jan 2016 10:41:57 +0100 Subject: [PATCH 034/348] Add details about multiple files --- .../troubleshooting-configuration.markdown | 45 ++++++++++++++++--- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/source/getting-started/troubleshooting-configuration.markdown b/source/getting-started/troubleshooting-configuration.markdown index 69e5de8b6cf..5cd6e77bbbf 100644 --- a/source/getting-started/troubleshooting-configuration.markdown +++ b/source/getting-started/troubleshooting-configuration.markdown @@ -46,7 +46,7 @@ sensor: state_topic: sensor2/topic ``` -Indentation is used to specify which objects are nested under one anohter. Getting the right indentation can be tricky if you're not using an editor with a fixed width font. You can test your configuration using [this online YAML parser](http://yaml-online-parser.appspot.com/). +Indentation is used to specify which objects are nested under one anohter. Getting the right indentation can be tricky if you're not using an editor with a fixed width font. You can test your configuration using [online YAML parser](http://yaml-online-parser.appspot.com/) or [YAML Lint](http://www.yamllint.com/). To learn more about the quirks of YAML, read [YAML IDIOSYNCRASIES](https://docs.saltstack.com/en/latest/topics/troubleshooting/yaml_idiosyncrasies.html) by SaltStack. @@ -54,31 +54,62 @@ To learn more about the quirks of YAML, read [YAML IDIOSYNCRASIES](https://docs. When a component does not show up, many different things can be the case. Before you try any of these steps, make sure to look at the `home-assistant.log` file and see if there are any errors related to your component you are trying to set up. -**Problems with the configuration** -`configuration.yaml` does not allow multiple sections to have the same name. If you want a specific component to be loaded twice, append a number to the name. +#### {% linkable_title Problems with the configuration %} + +`configuration.yaml` does not allow multiple sections to have the same name. If you want a specific platform to be loaded twice, append a [number/string](/getting-started/devices/#style-2) to the name or use [this style](/getting-started/devices/#style-1). ```yaml sensor: platform: forecast - […] + [...] sensor 2: platform: bitcoin - […] + [...] ``` Another common problem is that a required configuration setting is missing. If this is the case, the component will report this to `home-assistant.log`. You can have a look at [the component page](/components/) for instructions how to setup the components. If you find any errors or want to expand the documentation, please [let us know](https://github.com/balloob/home-assistant.io/issues). -**Problems with dependencies** +#### {% linkable_title Problems with dependencies %} + Almost all components have external dependencies to communicate with your devices and services. Sometimes Home Assistant is unable to install the necessary dependencies. If this is the case, it should show up in `home-assistant.log`. First step is trying to restart Home Assistant and see if the problem persists. If it does, please [report it](https://github.com/balloob/home-assistant/issues) so we can investigate what is going on. -**Problems with components** +#### {% linkable_title Problems with components %} + It can happen that some components either do not work right away or stop working after Home Assistant has been running for a while. If this happens to you, please [report it](https://github.com/balloob/home-assistant/issues) so that we can have a look. +#### {% linkable_title Multiple files %} + +If you are using multiple files for your setup, make sure that the pointers are correct and the format of the files is valid. + +```yaml +light: !include devices/lights.yaml +sensor: !include devices/sensors.yaml +``` +Contents of `lights.yaml`: + +```yaml +- platform: hyperion + host: 192.168.1.98 + [...] +``` + +Contents of `sensors.yaml`: + +```yaml +- platform: mqtt + name: "Room Humidity" + state_topic: "room/humidity" +- platform: mqtt + name: "Door Motion" + state_topic: "door/motion" + [...] +``` +

Whenever you report an issue, be aware that we are a group of volunteers that do not have access to every single device in the world nor unlimited time to fix every problem out there.

From e24bcbf0584f05d7f6df55947633447202f2a4a8 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 29 Jan 2016 10:54:39 +0100 Subject: [PATCH 035/348] Add cookbook entry for battery levels --- source/_cookbook/track_battery_level.markdown | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 source/_cookbook/track_battery_level.markdown diff --git a/source/_cookbook/track_battery_level.markdown b/source/_cookbook/track_battery_level.markdown new file mode 100644 index 00000000000..54ff4279368 --- /dev/null +++ b/source/_cookbook/track_battery_level.markdown @@ -0,0 +1,38 @@ +--- +layout: page +title: "Track your battery level" +description: "Basic example how to track the battery level of your mobile devices." +date: 2016-01-29 09:00 +sidebar: false +comments: false +sharing: true +footer: true +--- + +### {% linkable_title Battery level %} + +The [iCloud](/components/device_tracker.icloud/) is gathering various details about your device including the battery level. To display it in the Frontend use a [template sensor](/components/sensor.template/). + +```yaml + - platform: template + sensors: + battery_iphone: + unit_of_measurement: '%' + value_template: >- + {% raw %}{%- if states.device_tracker.iphone.attributes.battery %} + {{ states.device_tracker.iphone.attributes.battery }} + {% else %} + {{ states.sensor.battery_iphone.state }} + {%- endif %}{% endraw %} +``` + +While running the [Owntracks](/components/device_tracker.owntracks/) device tracker you can retrieve the battery level with a MQTT sensor. + +```yaml + - platform: mqtt + state_topic: "owntracks/tablet/tablet" + name: "Battery Tablet" + unit_of_measurement: "%" + value_template: {% raw %}'{{ value_json.batt }}'{% endraw %} +``` + From a719fb843a8db0c1fef46a02eac044f2bd90835a Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 29 Jan 2016 11:14:34 +0100 Subject: [PATCH 036/348] Add example (thanks @pavoni) --- source/_components/sensor.template.markdown | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/source/_components/sensor.template.markdown b/source/_components/sensor.template.markdown index 094492e2771..f4533c3b3d9 100644 --- a/source/_components/sensor.template.markdown +++ b/source/_components/sensor.template.markdown @@ -34,3 +34,24 @@ Configuration variables: - **unit_of_measurement** (*Optional*): Defines the units of measurement of the sensor, if any. - **value_template** (*Optional*): Defines a [template](/getting-started/templating/) to extract a value from the payload. + +## {% linkable_title Examples %} + +In this section you find some real life examples of how to use this sensor. + +### {% linkable_title Sun angle %} + +This example shows the sun angle in the forntend. + +```yaml +sensor: + platform: template + sensors: + solar_angle: + value_template: '{{ "%+.1f"|format(states.sun.sun.attributes.elevation) }}' + friendly_name: 'Sun Angle' + unit_of_measurement: '°' +``` + + + From 275ac4790cac689061a47a4645aef6ffd5b56dde Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 29 Jan 2016 11:18:47 +0100 Subject: [PATCH 037/348] Fix typo --- source/_components/sensor.template.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/sensor.template.markdown b/source/_components/sensor.template.markdown index f4533c3b3d9..c45e33577a9 100644 --- a/source/_components/sensor.template.markdown +++ b/source/_components/sensor.template.markdown @@ -41,7 +41,7 @@ In this section you find some real life examples of how to use this sensor. ### {% linkable_title Sun angle %} -This example shows the sun angle in the forntend. +This example shows the sun angle in the frontend. ```yaml sensor: From 0bf424eecd5d1a695093c29539528f97b2561fe6 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 29 Jan 2016 11:19:00 +0100 Subject: [PATCH 038/348] Add details about else --- source/_cookbook/track_battery_level.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_cookbook/track_battery_level.markdown b/source/_cookbook/track_battery_level.markdown index 54ff4279368..e60d54c5980 100644 --- a/source/_cookbook/track_battery_level.markdown +++ b/source/_cookbook/track_battery_level.markdown @@ -26,6 +26,8 @@ The [iCloud](/components/device_tracker.icloud/) is gathering various details ab {%- endif %}{% endraw %} ``` +The `else` part is used to have the sensor keep it's last state if the newest [iCloud](/components/device_tracker.icloud/) update doesn't have any battery state in it (which happens sometimes). Otherwise the sensor will be blank. + While running the [Owntracks](/components/device_tracker.owntracks/) device tracker you can retrieve the battery level with a MQTT sensor. ```yaml From 40868c0089a124028e5b828c27504ddd6199e79e Mon Sep 17 00:00:00 2001 From: Flyte Date: Fri, 29 Jan 2016 10:26:40 +0000 Subject: [PATCH 039/348] Add links, fix code block, add missing config variable. --- source/_components/sensor.zigbee.markdown | 25 +++++++++++++---------- source/_components/zigbee.markdown | 8 ++++---- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/source/_components/sensor.zigbee.markdown b/source/_components/sensor.zigbee.markdown index c8a3e450797..db03ea55bcf 100644 --- a/source/_components/sensor.zigbee.markdown +++ b/source/_components/sensor.zigbee.markdown @@ -13,12 +13,12 @@ ha_category: Sensor There are two types of ZigBee sensor available to Home Assistant: -- Analog input pin -- Temperature sensor (XBee Pro) +- [Analog input pin](#analog-input-pin) +- [Temperature sensor](#temperature-sensor) (XBee Pro) -## Analog Input Pin +## {% linkable_title Analog Input Pin %} -The analog input pins on an XBee (non-pro) will read 0-1.2 Volts. This is translated by the [xbee-helper](https://github.com/flyte/xbee-helper) library into a percentage. The maximum voltage your ZigBee device will read is configurable using the `max_volts` configuration variable. +The analog input pins on an XBee (non-Pro) will read 0V to 1.2V. This is translated by the [xbee-helper](https://github.com/flyte/xbee-helper) library into a percentage. The maximum voltage your ZigBee device will read is configurable using the `max_volts` configuration variable. To configure an analog input pin sensor, use the following variables: @@ -27,19 +27,22 @@ To configure an analog input pin sensor, use the following variables: - **type** (*Required*): Set to `analog`. - **pin** (*Required*): The number identifying which pin to sample. - **address**: The long 64bit address of the remote ZigBee device whose analog input pin you'd like to sample. Do not include this variable if you want to sample the local ZigBee device's pins. +- **max_volts**: The maximum voltage which the analog input pin is able to read. Default: `1.2` #### Example - sensor: - - name: My Analog Input - platform: zigbee - type: analog - pin: 0 - address: 0013A2004233D138 +```yaml +sensor: + - name: My Analog Input + platform: zigbee + type: analog + pin: 0 + address: 0013A2004233D138 +``` See the [Digi knowledge base](http://knowledge.digi.com/articles/Knowledge_Base_Article/Digital-and-analog-sampling-using-XBee-radios) for more XBee sampling details. -## Temperature Sensor +## {% linkable_title Temperature Sensor %} The XBee Pro (and perhaps other third party modules) contains a thermometer device which can be read by using the `TP` AT command. To set this up as a temperature sensor device in Home Assistant use the following config variables: diff --git a/source/_components/zigbee.markdown b/source/_components/zigbee.markdown index 115bbbb4818..51ae3f4fae0 100644 --- a/source/_components/zigbee.markdown +++ b/source/_components/zigbee.markdown @@ -15,10 +15,10 @@ ha_category: DIY There is currently support for the following device types within Home Assistant: -- Binary Sensor (digital input pins) -- Sensor (analog input pins and temperature sensor) -- Light (digital output pins) -- Switch (digital output pins) +- [Binary Sensor](../binary_sensor.zigbee) (digital input pins) +- [Sensor](../sensor.zigbee) (analog input pins and temperature sensor) +- [Light](../light.zigbee) (digital output pins) +- [Switch](../switch.zigbee) (digital output pins) The local ZigBee device (assuming XBee) must have an up to date Router or Coordinator API firmware installed. From a039a671d25de4153d27aa250148bf2738a688b1 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 29 Jan 2016 12:45:33 +0100 Subject: [PATCH 040/348] Add new cookbook entry --- ...ha_if_wemo_switch_is_not_detected.markdown | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 source/_cookbook/restart_ha_if_wemo_switch_is_not_detected.markdown diff --git a/source/_cookbook/restart_ha_if_wemo_switch_is_not_detected.markdown b/source/_cookbook/restart_ha_if_wemo_switch_is_not_detected.markdown new file mode 100644 index 00000000000..41a6b1b1643 --- /dev/null +++ b/source/_cookbook/restart_ha_if_wemo_switch_is_not_detected.markdown @@ -0,0 +1,97 @@ +--- +layout: page +title: "Restart Home Assistant if Wemo Switch is not detected" +description: "Restart Home Assistant if Wemo Switch is not detected." +date: 2016-01-29 08:00 +sidebar: false +comments: false +sharing: true +footer: true +--- + +### {% linkable_title Restart Home Assistant %} + +This configuration example is restarting Home Assistant if a [WeMo](/components/switch.wemo/) switch is not detected. An additional MQTT switch is present for stopping Home Assistant and can be triggered by [IFTTT](/components/ifttt/). The running batch script will automatically restart Home Assistant if the process isn't found anymore. + +```yaml +mqtt: + broker: 127.0.0.1 + port: 1883 + client_id: home-assistant-1 + keepalive: 60 + +device_tracker: + - platform: nmap_tracker + hosts: 192.168.0.1-255 + home_interval: 1 + interval_seconds: 30 + consider_home: 900 + +ifttt: + key: *** + +notify: + - platform: pushbullet + api_key: *** + name: pushbullet + +switch: + - platform: wemo + - platform: mqtt + state_topic: "home/killhass" + command_topic: "home/killhass" + name: "KillHass" + qos: 0 + payload_on: "ON" + payload_of: "OFF" + optimistic: false + +script: + restarthawemo: + alias: "Restart HA if WeMo isn't found after 15 minutes" + sequence: + - delay: + minutes: 15 + - execute_service: notify.pushbullet + service_data: + message: 'WeMo not found, restarting HA' + - execute_service: switch.turn_on + service_data: + entity_id: switch.killhass + +automation: + - alias: "Restart HA if WeMo switch isn't found after 15 minutes" + trigger: + platform: state + entity_id: device_tracker.wemo + from: 'not_home' + to: 'home' + condition: + - platform: template + value_template: {% raw %}'{% if states.switch.wemo %}false{% else %}true{% endif %}'{% endraw %} + - platform: state + entity_id: script.restarthawemo + state: 'off' + action: + service: homeassistant.turn_on + entity_id: script.restarthawemo + - alias: 'Stop HA' + trigger: + - platform: state + entity_id: switch.KillHass + state: 'on' + action: + service: homeassistant.stop + - alias: 'Stop restarting HA is WeMo is found' + trigger: + platform: template + value_template: {% raw %}'{% if states.switch.wemo %}true{% else %}false{% endif %}'{% endraw %} + condition: + platform: state + entity_id: script.restarthawemo + state: 'on' + action: + service: homeassistant.turn_off + entity_id: script.restarthawemo +``` + From b2b82d89ee8a5347c261bb1679c764164de6f113 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 29 Jan 2016 14:37:08 +0100 Subject: [PATCH 041/348] Add rocketgraph reports --- source/help/trivia.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/help/trivia.markdown b/source/help/trivia.markdown index 850afc8bcc3..0fdd107d19a 100644 --- a/source/help/trivia.markdown +++ b/source/help/trivia.markdown @@ -53,6 +53,12 @@ The numbers below only covers the [main git repository](https://github.com/ballo More details and statistics can be found on [Github](https://github.com/balloob/home-assistant/graphs/contributors). +[RocketGraph](https://rocketgraph.com) reports shows commit stats for the last 90 days and a neat visual calendar for the current calendar year. + +- [home-assistant](https://rocketgraph.com/s/O163F6yWdgR) +- [home-assistant-polymer](https://rocketgraph.com/s/AfvsRKE_WfB) +- [home-assistant.io](https://rocketgraph.com/s/PvCS9rv7ODL) + ### {% linkable_title First commit %} The first commit in `git` was made on Sep 17, 2013 by [Paulus Schoutsen](https://github.com/balloob). From 56e14e5ce8ce291c56055031da734b1c597687fd Mon Sep 17 00:00:00 2001 From: pavoni Date: Fri, 29 Jan 2016 22:07:07 +0000 Subject: [PATCH 042/348] Add iBeacon documentation. --- .../device_tracker.owntracks.markdown | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/source/_components/device_tracker.owntracks.markdown b/source/_components/device_tracker.owntracks.markdown index 4661b0f11a3..802ee5e6f88 100644 --- a/source/_components/device_tracker.owntracks.markdown +++ b/source/_components/device_tracker.owntracks.markdown @@ -27,4 +27,36 @@ device_tracker: There is no further configuration needed for tracking Owntracks devices. +#####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. + +######Using Owntracks regions +Owntracks can track regions, and send region entry and exit information to Home Assistant(HA). You set up a region in the Owntracks app which you should name the same as your HA Zone, and then make sure to turn on the `share` option for the region in the owntracks app. Please see the [owntracks documentation] (http://owntracks.org/booklet/guide/waypoints/) + +Home Assistant will use the enter and leave messages to set your zone location. Your location will be set to the center of zone when you enter. Location updates from OwnTracks will be ignored while you are inside a zone. + +When you exit a zone, Home Assistant will start using location updates to track you again. To make sure that Home Assistant correctly exits a zone (which it calculates based on your GPS co-ordinates), you may want to set your Zone radius in HA to be slightly smaller that the Owntracks region radius. + +#####Using Owntracks regions - forcing Owntracks to update using iBeacons +When run in the usual `significant changes mode` (which is kind to your phone battery), Owntracks sometimes doesn't update your location as quickly as you'd like when you arrive at a zone. This can be annoying if you want to trigger an automation when you get home. You can improve the situation using iBeacons. + +iBeacons are simple bluetooth devices that send out an 'I'm here' message. They are supported by IOS and some Android devices. Owntracks explain more [here] (http://owntracks.org/booklet/guide/beacons/) + +When you enter an iBeacon region, Owntracks will send a `region enter` message to HA as described above. So if you want to have an event triggered when you arrive home, you can put an iBeacon outside your front door. If you set up an OwnTracks iBeacon region called `home` then getting close to the beacon will trigger an update to HA that will set your zone to be `home`. + +When you exit an iBeacon region HA will switch back to using GPS to determine your location. Depending on the size of your zone, and the accuracy of your GPS location this may change your HA zone. + +Sometimes Owntracks will lose connection with an iBeacon for a few seconds. If you name your beacon starting with `-` Owntracks will wait longer before deciding it has exited the beacon zone. HA will ignore the `-` when it matches the Owntracks region with Zones. So if you call your Owntracks region `-home` then HA will recognise it as `home`, but you will have a more stable iBeacon connection. + +#####Using Owntracks iBeacons to track devices +iBeacons don't need to be stationary. You could put one on your key ring, or in your car. + +When your phone sees a mobile iBeacon that it knows about, it will tell HA the location of that iBeacon. If your phone moves while you are connected to the iBeacon, HA will update the location of the iBeacon. But when your phone loses the connection, HA will stop updating the iBeacon location. + +To use mobile iBeacons with HA, you just set up a region that doesn't match your Zone names. If HA sees an entry event for a iBeacon region that doesn't match a Zone name (say `keys`) - it will start tracking it, calling the device `device_tracker.beacon_keys`). + +This allows you to write zone automations for devices that can't track themselves (for example `alert me if I leave the house and my keys are still at home`). Another example would be `open the gates if my car arrives home`. + +#####Using mobile and fixed iBeacons together +You can use iBeacons of both types together, so if you have a Zone `drive` with an iBeacon region called `-drive` and you arrive home with a mobile iBeacon called '-car', then `device_tracker.beacon_car' will be set to a state of 'drive'. + From 4ed80fe2a0ee07de2b85e7f7b7f346ec4016161a Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 30 Jan 2016 00:27:38 -0800 Subject: [PATCH 043/348] Add 0.12 release blog post --- source/_components/automation.markdown | 24 +++-- .../_components/binary_sensor.nest.markdown | 9 +- .../device_tracker.owntracks.markdown | 26 ++--- source/_components/group.markdown | 30 ++---- ...{insteon.markdown => insteon_hub.markdown} | 1 - source/_components/nest.markdown | 27 ++++++ .../_components/notify.google_voice.markdown | 37 +++++++ source/_components/sensor.nest.markdown | 12 +-- source/_components/thermostat.nest.markdown | 11 +-- ...xtended-support-for-diy-solutions.markdown | 2 +- ...9-insteon-lifx-twitter-and-zigbee.markdown | 91 ++++++++++++++++++ .../images/blog/2016-01-release-12/social.png | Bin 0 -> 52581 bytes .../images/blog/2016-01-release-12/views.png | Bin 0 -> 9360 bytes .../images/supported_brands/google_voice.png | Bin 0 -> 28891 bytes source/images/supported_brands/insteon.png | Bin 16032 -> 21069 bytes source/images/supported_brands/lifx.png | Bin 51280 -> 22311 bytes 16 files changed, 204 insertions(+), 66 deletions(-) rename source/_components/{insteon.markdown => insteon_hub.markdown} (99%) create mode 100644 source/_components/nest.markdown create mode 100644 source/_components/notify.google_voice.markdown create mode 100644 source/_posts/2016-01-29-insteon-lifx-twitter-and-zigbee.markdown create mode 100644 source/images/blog/2016-01-release-12/social.png create mode 100644 source/images/blog/2016-01-release-12/views.png create mode 100644 source/images/supported_brands/google_voice.png diff --git a/source/_components/automation.markdown b/source/_components/automation.markdown index 78e4154b6ae..50ddd5f4baf 100644 --- a/source/_components/automation.markdown +++ b/source/_components/automation.markdown @@ -161,22 +161,30 @@ automation: #### {% linkable_title Time trigger %} -Time can be triggered in many ways. The most common is to specify `after` and trigger at a specific point in time each day. Alternatively, you can also match if the hour, minute or second of the current time has a specific value. For example, by only setting minutes in the config to 5 it will trigger every hour when it is 5 minutes past whole. You cannot use `after` together with hour, minute or second. +Time can be triggered in many ways. The most common is to specify `after` and trigger at a specific point in time each day. Alternatively, you can also match if the hour, minute or second of the current time has a specific value. You can prefix the value with a `/` to match whenever the value is divisible by that number. You cannot use `after` together with hour, minute or second. ```yaml automation: trigger: platform: time - # All following are optional. - # When 'after' is used, you cannot also match on hour, minute, seconds. - # Military time format. - # after: '15:32:00' - hours: 0 + # Matches every hour at 5 minutes past whole minutes: 5 seconds: 0 -``` -The above example will trigger every hour on the 5 (2:05, 3:05, 4:05, etc). +automation 2: + trigger: + platform: time + # When 'after' is used, you cannot also match on hour, minute, seconds. + # Military time format. + after: '15:32:00' + +automation 3: + trigger: + platform: time + # You can also match on interval. This will match every 5 minutes + minutes: '/5' + seconds: 0 +``` #### {% linkable_title Zone trigger %} diff --git a/source/_components/binary_sensor.nest.markdown b/source/_components/binary_sensor.nest.markdown index 3689d273667..ce43d3f95a8 100644 --- a/source/_components/binary_sensor.nest.markdown +++ b/source/_components/binary_sensor.nest.markdown @@ -1,7 +1,7 @@ --- layout: component -title: "Nest thermostat sensor" -description: "Instructions how to integrate Nest thermostats sensors within Home Assistant." +title: "Nest binary sensor" +description: "Instructions how to integrate Nest binary sensors within Home Assistant." date: 2016-01-26 08:00 sidebar: true comments: false @@ -12,7 +12,7 @@ ha_category: Binary Sensor --- -The `nest` binary sensor platform let you monitor various states of a thermostat from [Nest](https://nest.com). +The Nest binary sensor platform let you monitor various states of a thermostat from [Nest](https://nest.com). To set it up, add the following information to your `configuration.yaml` file: @@ -35,5 +35,4 @@ Configuration variables: - **monitored_conditions** array (*Required*): States to monitor. -You must have the [Nest Thermostat](https://home-assistant.io/components/thermostat.nest/) entity configured to use this sensor. - +

You must have the [Nest component](https://home-assistant.io/components/nest/) configured to use this sensor.

diff --git a/source/_components/device_tracker.owntracks.markdown b/source/_components/device_tracker.owntracks.markdown index 802ee5e6f88..2160821844f 100644 --- a/source/_components/device_tracker.owntracks.markdown +++ b/source/_components/device_tracker.owntracks.markdown @@ -27,29 +27,29 @@ device_tracker: There is no further configuration needed for tracking Owntracks devices. -#####Using Owntracks with other device trackers +### {% 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. -######Using Owntracks regions -Owntracks can track regions, and send region entry and exit information to Home Assistant(HA). You set up a region in the Owntracks app which you should name the same as your HA Zone, and then make sure to turn on the `share` option for the region in the owntracks app. Please see the [owntracks documentation] (http://owntracks.org/booklet/guide/waypoints/) +### {% linkable_title Using Owntracks regions %} +Owntracks can track regions, and send region entry and exit information to Home Assistant(HA). You set up a region in the Owntracks app which you should name the same as your HA Zone, and then make sure to turn on the `share` option for the region in the owntracks app. Please see the [owntracks documentation](http://owntracks.org/booklet/guide/waypoints/) -Home Assistant will use the enter and leave messages to set your zone location. Your location will be set to the center of zone when you enter. Location updates from OwnTracks will be ignored while you are inside a zone. +Home Assistant will use the enter and leave messages to set your zone location. Your location will be set to the center of zone when you enter. Location updates from OwnTracks will be ignored while you are inside a zone. -When you exit a zone, Home Assistant will start using location updates to track you again. To make sure that Home Assistant correctly exits a zone (which it calculates based on your GPS co-ordinates), you may want to set your Zone radius in HA to be slightly smaller that the Owntracks region radius. +When you exit a zone, Home Assistant will start using location updates to track you again. To make sure that Home Assistant correctly exits a zone (which it calculates based on your GPS co-ordinates), you may want to set your Zone radius in HA to be slightly smaller that the Owntracks region radius. -#####Using Owntracks regions - forcing Owntracks to update using iBeacons -When run in the usual `significant changes mode` (which is kind to your phone battery), Owntracks sometimes doesn't update your location as quickly as you'd like when you arrive at a zone. This can be annoying if you want to trigger an automation when you get home. You can improve the situation using iBeacons. +### {% linkable_title Using Owntracks regions - forcing Owntracks to update using %}iBeacons +When run in the usual `significant changes mode` (which is kind to your phone battery), Owntracks sometimes doesn't update your location as quickly as you'd like when you arrive at a zone. This can be annoying if you want to trigger an automation when you get home. You can improve the situation using iBeacons. -iBeacons are simple bluetooth devices that send out an 'I'm here' message. They are supported by IOS and some Android devices. Owntracks explain more [here] (http://owntracks.org/booklet/guide/beacons/) +iBeacons are simple bluetooth devices that send out an "I'm here" message. They are supported by IOS and some Android devices. Owntracks explain more [here](http://owntracks.org/booklet/guide/beacons/) When you enter an iBeacon region, Owntracks will send a `region enter` message to HA as described above. So if you want to have an event triggered when you arrive home, you can put an iBeacon outside your front door. If you set up an OwnTracks iBeacon region called `home` then getting close to the beacon will trigger an update to HA that will set your zone to be `home`. When you exit an iBeacon region HA will switch back to using GPS to determine your location. Depending on the size of your zone, and the accuracy of your GPS location this may change your HA zone. -Sometimes Owntracks will lose connection with an iBeacon for a few seconds. If you name your beacon starting with `-` Owntracks will wait longer before deciding it has exited the beacon zone. HA will ignore the `-` when it matches the Owntracks region with Zones. So if you call your Owntracks region `-home` then HA will recognise it as `home`, but you will have a more stable iBeacon connection. +Sometimes Owntracks will lose connection with an iBeacon for a few seconds. If you name your beacon starting with `-` Owntracks will wait longer before deciding it has exited the beacon zone. HA will ignore the `-` when it matches the Owntracks region with Zones. So if you call your Owntracks region `-home` then HA will recognise it as `home`, but you will have a more stable iBeacon connection. -#####Using Owntracks iBeacons to track devices -iBeacons don't need to be stationary. You could put one on your key ring, or in your car. +### {% linkable_title Using Owntracks iBeacons to track devices %} +iBeacons don't need to be stationary. You could put one on your key ring, or in your car. When your phone sees a mobile iBeacon that it knows about, it will tell HA the location of that iBeacon. If your phone moves while you are connected to the iBeacon, HA will update the location of the iBeacon. But when your phone loses the connection, HA will stop updating the iBeacon location. @@ -57,6 +57,6 @@ To use mobile iBeacons with HA, you just set up a region that doesn't match your This allows you to write zone automations for devices that can't track themselves (for example `alert me if I leave the house and my keys are still at home`). Another example would be `open the gates if my car arrives home`. -#####Using mobile and fixed iBeacons together -You can use iBeacons of both types together, so if you have a Zone `drive` with an iBeacon region called `-drive` and you arrive home with a mobile iBeacon called '-car', then `device_tracker.beacon_car' will be set to a state of 'drive'. +### {% linkable_title Using mobile and fixed iBeacons together %} +You can use iBeacons of both types together, so if you have a Zone `drive` with an iBeacon region called `-drive` and you arrive home with a mobile iBeacon called `-car`, then `device_tracker.beacon_car` will be set to a state of `drive`. diff --git a/source/_components/group.markdown b/source/_components/group.markdown index f2b5d1696a8..e28ac57bbd6 100644 --- a/source/_components/group.markdown +++ b/source/_components/group.markdown @@ -11,31 +11,15 @@ logo: home-assistant.png ha_category: Organization --- -Groups allow the user to combine multiple entities into one. +Groups allow the user to combine multiple entities into one. A group can be promoted to a **view** by setting the `view` option to `yes`. This will make the group available as a new tab in the frontend. Check the **Set State** page from the **Developer Tools** and browse the **Current entities:** listing for all available entities. -```yaml -# Example configuration.yaml entry -group: - information: - - sensor.time - living_room: - - binary_sensor.tv - - sensor.living_room_temperature - kitchen: - - switch.kitchen_pin_3 - - sensor.oven_temperature -``` - -With Home Assistant 0.12.0 a new feature **view** was introduced. - ```yaml # Example configuration.yaml entry group: kitchen: name: Kitchen - view: no entities: - switch.kitchen_pin_3 upstairs: @@ -54,7 +38,12 @@ Configuration variables: - **name** (*Optional*): Name of the group. - **icon** (*Optional*): An optional icon to show in the Frontend. - **view** (*Optional*): If yes then the entry will be shown as a view. -- **entities** array (*Required*): List of entites to group. +- **entities** array or comma delimited string (*Required*): List of entites to group. + +

+ +Example of groups shown as views in the frontend. +

If all entities are switches or lights they can be controlled as one with a switch at the top of the card. Grouped states should share the same type of states (ON/OFF or HOME/NOT_HOME). @@ -65,8 +54,5 @@ group: - light.bowl - light.ceiling - light.tv_back_light - children: - - device_tracker.child_1 - - device_tracker.child_2 + children: device_tracker.child_1, device_tracker.child_2 ``` - diff --git a/source/_components/insteon.markdown b/source/_components/insteon_hub.markdown similarity index 99% rename from source/_components/insteon.markdown rename to source/_components/insteon_hub.markdown index 994898a5e32..1681372681f 100644 --- a/source/_components/insteon.markdown +++ b/source/_components/insteon_hub.markdown @@ -26,4 +26,3 @@ Configuration variables: - **username** (*Required*): The username that used to access the Insteon interface. - **password** (*Required*): The password that used to access the Insteon interface. - diff --git a/source/_components/nest.markdown b/source/_components/nest.markdown new file mode 100644 index 00000000000..63b7229bfc3 --- /dev/null +++ b/source/_components/nest.markdown @@ -0,0 +1,27 @@ +--- +layout: component +title: "Nest" +description: "Instructions how to integrate Nest into Home Assistant." +date: 2016-01-29 21:57 +sidebar: true +comments: false +sharing: true +footer: true +logo: nest_thermostat.png +ha_category: Hub +featured: false +--- + +The Nest component is the main component to integrate all Nest related platforms. It will setup your thermostats and any connected sensors. + +```yaml +# Example configurayion.yaml entry +nest: + username: USERNAME + password: PASSWORD +``` + +Configuration variables: + +- **username** (*Required*): Your Nest username. +- **password** (*Required*): Your Nest password. diff --git a/source/_components/notify.google_voice.markdown b/source/_components/notify.google_voice.markdown new file mode 100644 index 00000000000..f266655376c --- /dev/null +++ b/source/_components/notify.google_voice.markdown @@ -0,0 +1,37 @@ +--- +layout: component +title: "Google Voice SMS" +description: "Instructions how to add user notifications to Home Assistant." +date: 2016-01-29 +sidebar: true +comments: false +sharing: true +footer: true +logo: google_voice.png +ha_category: Notifications +featured: true +--- + +[Google Voice](https://www.google.com/voice) is a free service, that allows sending of SMS messages to mobile phones. + +### Configuration + +```yaml +# Example configuration.yaml entry +notify: + platform: googlevoice + username: YOUR_GOOGLE_EMAIL + password: YOUR_GOOGLE_PASSWORD + # Optional + name: NOTIFIER_NAME +``` + +Configuration variables: + +- **username** (*Required*): Enter your the Google email address you have signed up for Google Voice with. Go to https://www.google.com/voice to setup your Google Voice account. +- **password** (*Required*): Enter the password associated with the above email. Go to https://www.pushbullet.com/ to retrieve your API key. +- **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`. + +### Usage + +Google Voice is a notify platform and thus can be controlled by calling the notify service [as described here](/components/notify/). It will send a notification to all devices listed in the notification **target**. diff --git a/source/_components/sensor.nest.markdown b/source/_components/sensor.nest.markdown index 5d46e92709c..f723d806ff7 100644 --- a/source/_components/sensor.nest.markdown +++ b/source/_components/sensor.nest.markdown @@ -1,7 +1,7 @@ --- layout: component -title: "Nest thermostat sensor" -description: "Instructions how to integrate Nest thermostats sensors within Home Assistant." +title: "Nest sensor" +description: "Instructions how to integrate Nest sensors within Home Assistant." date: 2016-01-13 19:59 sidebar: true comments: false @@ -12,7 +12,7 @@ ha_category: Sensor --- -The `nest` sensor platform let you monitor a thermostat from [Nest](https://nest.com). It also includes the ability to monitor things like the state of our HVAC system and the current humidity and temperature. +The Nest sensor platform let you monitor sensors connected to your [Nest](https://nest.com) thermostat. To set it up, add the following information to your `configuration.yaml` file: @@ -36,8 +36,4 @@ Configuration variables: - **monitored_conditions** array (*Required*): States to monitor. -You must have the [Nest Thermostat](https://home-assistant.io/components/thermostat.nest/) entity configured to use this sensor. - -

- -

+

You must have the [Nest component](https://home-assistant.io/components/nest/) configured to use this sensor.

diff --git a/source/_components/thermostat.nest.markdown b/source/_components/thermostat.nest.markdown index fc44ac1e08b..909228f0916 100644 --- a/source/_components/thermostat.nest.markdown +++ b/source/_components/thermostat.nest.markdown @@ -13,22 +13,17 @@ featured: true --- -The nest thermostat platform let you control a thermostat from [Nest](https://nest.com). +The Nest thermostat platform let you control a thermostat from [Nest](https://nest.com). To set it up, add the following information to your `configuration.yaml` file: ```yaml thermostat: platform: nest - username: USERNAME - password: PASSWORD ``` -Configuration variables: - -- **username** (*Required*): Your Nest username. -- **password** (*Required*): Your Nest password. -

+ +

You must have the [Nest component](https://home-assistant.io/components/nest/) configured to use this sensor.

diff --git a/source/_posts/2016-01-17-extended-support-for-diy-solutions.markdown b/source/_posts/2016-01-17-extended-support-for-diy-solutions.markdown index f679c6f7068..dac769a4eb3 100644 --- a/source/_posts/2016-01-17-extended-support-for-diy-solutions.markdown +++ b/source/_posts/2016-01-17-extended-support-for-diy-solutions.markdown @@ -63,7 +63,7 @@ First release of 2016 and we are on 🔥! The [main repository][github-ha] has p [MySensors sensor platform]: /components/sensor.mysensors/ [Amazon Echo]: /components/alexa/ -### Deprecations +### Backwards incompatible changes - The [RPi.GPIO sensor platform][rpi-bs] has been moved to the `binary_sensor` component. - [MySensors sensor platform] now requires the [MySensors] component to be configured. - Geofancy platform has been renamed to [Locative]. diff --git a/source/_posts/2016-01-29-insteon-lifx-twitter-and-zigbee.markdown b/source/_posts/2016-01-29-insteon-lifx-twitter-and-zigbee.markdown new file mode 100644 index 00000000000..81c3c63ef8d --- /dev/null +++ b/source/_posts/2016-01-29-insteon-lifx-twitter-and-zigbee.markdown @@ -0,0 +1,91 @@ +--- +layout: post +title: "0.12: Insteon, LIFX, Twitter and ZigBee" +description: "Home Assistant 0.12 brings improved organizational tools and makes writing automation in Python easier." +date: 2016-01-30 00:22:00 -0800 +date_formatted: "January 30, 2016" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2016-01-release-12/social.png +--- + +Another sprint has come to an end and it seems that we have not slowed down a single bit 🚀. 0.12 is full of new components, platforms and organizational additions. + +I would like to give a shout out to [Greg Dowling (@pavoni)][@pavoni] as every release includes new work from him. He is constantly adding support for new platforms or improving the reliablity of existing components and platforms. Keep up the good work! + +This release includes a very frequent requested feature: the ability to organize entities in different tabs in the frontend. See [the demo] to see this in action and read more in the [group documentation][group] how to get started. + +

+ +Example of the new views in the frontend. Learn more. +

+ + + + - Binary sensor: [command sensor] added ([@Bart274]) + - [Nest] support extended to include sensors and binary sensors ([@joshughes]) + - Light: [LIFX] platform added ([@TangoAlpha]) + - Notify: [Twitter] platform added ([@HydrelioxGitHub]) + - Sensor: [Template] platform added ([@pavoni]) + - Switch: [Wink] platform now supports sirens ([@w1ll1am23]) + - [Insteon hub] support added ([@FreekingDean]) + - [Statsd] component added ([@michaelkuty]) + - Light: [Rfxtrx] platform now supports dimming ([@turbokongen]) + - Time scheduling (including [time automation]) now works with intervals (ie. `/5`) ([@kennedyshead]) + - Sensor: [onewire] support added ([@deisi]) + - [Zigbee] support added ([@flyte]) + - Device Tracker: [OwnTracks] can now track iBeacons ([@pavoni]) + - Notify: [Google Voice SMS] platform added ([@w1ll1am23]) + - Toggle service added to `homeassistant`, `switch`, `light` and `media_player` ([@rmkraus]) + - [Thermostat] services added to control fans ([@auchter]) + - Improved Python automation: Event helpers are now also available as decorators for custom components ([@rmkraus]) + - Frontend: support added for tabs to show [different views][group] of your house ([@balloob]) + - Bugfixes by [@molobrakos], [@MartinHjelmare], [@pavoni], [@trollkarlen], [@zmrow], [@maddox], [@persandstrom], [@happyleavesaoc], [@balloob], [@fabaff], [@stefan-jonasson], [@haraldnagel]. + +[the demo]: /demo/ +[command sensor]: /components/binary_sensor.command/ +[Google Voice SMS]: /components/notify.google_voice/ +[Insteon hub]: /components/insteon_hub/ +[LIFX]: /components/light.lifx/ +[Nest]: /components/nest/ +[onewire]: /components/sensor.onewire/ +[OwnTracks]: /components/device_tracker.owntracks/ +[Rfxtrx]: /components/light.rfxtrx/ +[Statsd]: /components/statsd/ +[Template]: /components/sensor.template/ +[Thermostat]: /components/thermostat/ +[time automation]: /components/automation/#time-trigger +[Twitter]: /components/notify.twitter/ +[Wink]: /components/wink/ +[Zigbee]: /components/zigbee/ +[group]: /components/group/ +[@auchter]: https://github.com/auchter +[@balloob]: https://github.com/balloob +[@Bart274]: https://github.com/Bart274 +[@deisi]: https://github.com/deisi +[@fabaff]: https://github.com/fabaff +[@flyte]: https://github.com/flyte +[@FreekingDean]: https://github.com/FreekingDean +[@happyleavesaoc]: https://github.com/happyleavesaoc +[@haraldnagel]: https://github.com/haraldnagel +[@HydrelioxGitHub]: https://github.com/HydrelioxGitHub +[@joshughes]: https://github.com/joshughes +[@kennedyshead]: https://github.com/kennedyshead +[@maddox]: https://github.com/maddox +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@michaelkuty]: https://github.com/michaelkuty +[@molobrakos]: https://github.com/molobrakos +[@pavoni]: https://github.com/pavoni +[@persandstrom]: https://github.com/persandstrom +[@rmkraus]: https://github.com/rmkraus +[@stefan-jonasson]: https://github.com/stefan-jonasson +[@TangoAlpha]: https://github.com/TangoAlpha +[@trollkarlen]: https://github.com/trollkarlen +[@turbokongen]: https://github.com/turbokongen +[@w1ll1am23]: https://github.com/w1ll1am23 +[@zmrow]: https://github.com/zmrow + +### Backwards incompatible changes + - Nest config has moved from thermostat to the [Nest component][Nest]. \ No newline at end of file diff --git a/source/images/blog/2016-01-release-12/social.png b/source/images/blog/2016-01-release-12/social.png new file mode 100644 index 0000000000000000000000000000000000000000..e13e946a35d0b94ef3b72853932fa8bb20bfc6dc GIT binary patch literal 52581 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 literal 0 HcmV?d00001 diff --git a/source/images/blog/2016-01-release-12/views.png b/source/images/blog/2016-01-release-12/views.png new file mode 100644 index 0000000000000000000000000000000000000000..08d85d76b0fe9507612cc108bdcf04d7a073c1cc GIT binary patch literal 9360 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

dKY6 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 VG-*iD`+pk;rM}6Dm5b>5{vUD*+6w>x literal 0 HcmV?d00001 diff --git a/source/images/supported_brands/insteon.png b/source/images/supported_brands/insteon.png index d681450cb563935cac32f1271896255df8ebc05d..350885f316dbcad2f49733c615313bd7476e3f67 100644 GIT binary patch literal 21069 zcmZsC1ytqCvhK#+WpEhW-QC?C26uPYjk^r)?(XgkFu>sM?rwv_<3H!#d!A*jB%Mxm zSynpL^;IGi90`x3Rq~y`hP{ktw~0t-}{J0Kn_P{nfNJbulFJ zu(h#s=Jwzt{uc%JSNorC24bRrk+@j%5o^jR5{cM5nG&(lv(hsX^TQGm5%D^im~ktM zivQQ}uPZ)c3l|p$ZUzQ-cXxVs7J7Rpa|R|ZE-nT}W(H(>P2(okjFRQ-nWAHF^U|^zW zWcdFLa_ z6Hi`-|C{1Jn)3d`l3T&a()7#Le=Oo>;$`@M`u>Zam*F3C|2Omh?c0C#emR#P_Dj-# zKPY}!D*6dN06-8RB`T!q0dnCBlZ7YN?eF@C=e>UjpC{~w<^yv&M?_>27p`!C3?Y?6 zJf`9!s>HN{pm%jOE}A=r)_~hbL#d~bn*n{>#>d#0=@9-4OcuNWw*d5eaIneM#>w92 zySn?-IH-Ffw70&eX5lX0p;JOOU}5y+xd@#5*7#_t}B$-GL z!8`mvf*F-yivpt}hWGuCREXSR4QygX+3IUn9ELT`Wn-c1S7v|F8oktze$pEkkJ01`Sez*s9S&xv-6Hl%3>G4d~xAIyxG#76uz{vXdzIsU7fFSt>Eh zQl+*Gw}sE2cig!(PZ2Qrk$cqke%zo;RQ#ErU7OSrClSJ|MUuV?7=0RL;X2GTwnaoM z!|1E|fi5BnK5W6$khn@vk+Z?Fwv4UC9C*8y#@4__#2GsXF}!lKk|h%cbi;A3&K-ZbL>-1{`P12w+x#v)Z;~T6`qh!Vctr1(!P#{yjjU> zaRL0ahT>;MnOF8@wgcWXAww<>5;qa@4(u|fej0l$&J8Rqm3c-GA2hR!(Jua!1hwBS z^-tBGqd>W3`t16~9=aDq@XtEM`C{SY{2eW*Jj5yW0JEH0x7`#) zaxX{WowTKawvqe|T&W>L+hzTVw8geSe5+?!FUov&2B0zC)dgOy93%9(vZi?~j;4V> zu@bb&T90s{07YyPG*#3sG}NrONfzbw2Z#wS(Be#}&3M5;lM<&12sFE})CYCfz?%uR ztW$$FGzb}r*2=)~@$^`{c|Bd@?f|5?=k?pvRz$x09gQ9MGUJjB#wSE1T$$s(EwtKp z;xzH1-Jdnmva~J~`sUwyPziajTfTa+@6CWLp?bl;&xT4u)z73$w+ zCH!7kmaVg6WHd^!BDiD=UA*Z1Yx{n@MFt8zeAxV30igI}h9h&LE$PpsqF2DulVCD_ z9EodGEwjezz5rqJdDGU*-$|sPQg-4o5{ns@>B-O8joCV(zzri~_HP2suI%}{0^#zU z;a%KdB_iOZ@02MR15YcPzSXy>Op%~MMjW7b@Yq}G5wNe$%!_Sn1MN>y=fMJ9qJ5r1&aVr zz?jVSo4l)sB0Q4ihJm6xjGPZHrN=iT1ALQ67P6m~M~01Z|W1_i+L)HpsyV_@{sZwX<>3dC%2Up&{FdlJi(E%a@^Hi^3H;{ZRL z=pDd17Yl1?4}9Gc2GK-?O$L@K_vL8U zfm80sZwT*{WBwG|zU=a9@Z9jsQ(1vjXkITm5Q(M(8+{RE|4x)K$#5PY z`=zXr7L28gnz4l7M9XslyHu<|m4F7{n#rP8to)A}T*!67Z0D*+_fNL8B?Ug%sZ2&q=Bh{e&$tE7@7*dzxp^6<2mfgr+KBC;KC zwE+QEEu=I^{RqH7xWRI89Hk_3n}zGZf1}MnvTLa6~#|#an1!@HWxda;kQwg%2XH6Ui~S z6A*f|eoDF0s4L-yPQfby7e9CFJKu+kwN0c+Z=Ay|HRM}IoAzGoiIo|ZPw&^Wn4Z+n zXpkrK(#`eycrZ`K3k4J*X~V3?F7+lbBc<=vB=?S%>JZbYaPxn>#s{=c&7|mCsiVirc8Ox5jc=Jov0!6 z3S%~dG|3V0@XK=AVMWf272RJZ%a`1e``ild2?&z| z^SNdv!}|End3m5X;7cYdlUk|9(qe>>|4^>LaHfWFP_bQA$i`RVLygN=n1@Yo3zuR~ zb3{n~4N+`YR7n&t?$M#lcVJ7v=}};EG?g`JWLFH+)SlFBc+oc1Z6W zHuSx<+o2k8G;=%2Pwsb0L4@!oHG%g?mQB2o=W!1KT2T)z4%u+sIlXOa(FU@t(A^rR zg)J9*EZ`l@c37`QrS+B=2EB7#YNjKTqM(#K0-kwr#kUpH2(w{?90$`RSj~421XUT~ zGDr&;97s=ww(3ZiT2|H@iRi*gQwv&MhK(kvg0`93cOC`U-#b}V6#VC9W!xeayD$e5 zUvJ9Po~Y4D$w;K+l;}jh2Y>diq)x&)S4r8-(8MjDa1U;RP1l^ADF7`pRNV#~ZgtVT zUfau2LuOFQqSKpk+ArxUS8whbS9bLy(9BcpFf>X%t@whu2iA!wmFL+3M#Pf9OoON{ zKx;_iY?Zs08m7Sxzr%T;s&&3BsrXQauG4cINlm_vCQbUoD(}=y3{E{$1WfhpJBefh z7ALM;%^9IR~7%9LvwFSt$4`A-y`Ae8J=(KmK=(qP-BczeMpGAY^&>}E~U|Cdt z9qtpigDt^BS{40JrkA8>ZWgdZ7SoFj2{rf5@6VI(?S2Fr(<}Mz^!p@x`v#XqdnmcG zxgQY%99`aWUL&0O*CvL81(v9kPm@8QcDW9x3sHaVd@1xc9BTAYFZM3TW(00<*LhsQ zQt(B#COF%?_B*?}Y#u;Eh{}5SUdZ#Omh%_>yur8Qski?|k|MknwewZKYeT zw^I9)a-VXonV~qayA`VrIIaq);I^m`G~JI4!EMcMH(ofY-woLOwd2Z~>zLu`F|<{0 z+HN)+%n4?DQ0#DZZP%j#pXY;{ia&nTf!orr9h4S?`RvUvQyRWyDAt^jPz7Jp;3-UP zI2&tNM%`52&#zKh(T*vz|5}G#zOmvv78fb&m!m%UeF^Wl8`#YZUgIY zF`imCNOeDfQpQ9@qjJ>k@q^W1p>kacZ;KD^wGmhA-aRZ6fZ1=;uDl(?crB%GJoQo) zvv_Kkc)Gtk5VAjGJDy4~YZi-&79jHUSnI(9f|u*BsAaX)Jww7DN9I!jRq`3f6`#=^ zlCZ=J05wTcgv#ELK*fBNzE`ERtQUhN=>vM8?L3+veVzQvs=o_W{J;n3b`%pC`T+Ug zpFH1M+*!fyKa%rOx0l{47&Rtcca$3}ygR$rJ#oDA_g694wd;iQDc^a-8rLaMfOMqW zFG8&G48q&X1q*-DkU;ih34E^y3x87bt!E}eT&oi>V3EZy>5|u%o!5~Ug@C@0+CJE> zd3UJOcP{8M-$vS6y_;-2V;rMmTfr-5IL?t!!1(Tm%{FPujwokvEDxD?;6Mjy2_myC zKdL~V+hMB<$MLQ?v19DAaAWo6XjEgt#pL&}0HQOe)ux6o=bq!=D$>vmOFh_tD}CAC z+8H_Vvg_=~IZTt5pRrqELn$@fBEg!|;fyaS!j{b&`0vUW{msJtqi#cYD!;tN`gcUxESu=hoOZkxNH zrp24vJoRUw_eB!RCko?9uR;rIke~nEWAV>533UY3p|8_gX98?mza6Cnya) zI!((h1_&2G?Pbfw@Oi?ZOg*JM81;o=G5L}v*Fc!FsLD)xYFetecDbkG!$zNCY%hJCGuTo*euhP*~6K&VoJ)e!^mJ z(5XMhH%B4cJBxoFBFwFQL77cr<)uvt;i#oDg>g>G&br%!S zD^c@c&-N2@c@8nWLzXieMi+|4l5Xr?kKF|U3 zT2P>1{sf$qKP=-0`CWh#Vo!di;z9&w%?lLA7{kW-_%pmK_x@?RZ)%4xVz8OIZXWU1~M@yat~6y@Rj*dCi-?vG*Y4<7#Mz zZSl`c>d$%CBJF~{>~vHHn26gC+YJJ|?rmLh3+xANtgLs0>{}LDCXM8dwqwiNR5;vv z78$D_GevIygt^%2kM!XImEY_f7M(jaINn7RsT)Xduuj7HZ10O;gb;_J33A~S|FHCQ zVoXXxkVfvdsBqW`s1b7BE~3y~|9Iw_xDwshHGNA&gIxBLM@E#Z*k+_@Ho2+kn@pAw zM_4S7IbUL$feB$}@V ztI4rWq-}|YLWSM@2s7X6{su631Os%YSDb*Fp$}kY%o@Z~bHu>hCuC_G~EJ zJ4(Ex`;z%%9$%4YP`u)>ud2|%`hh6=mrQ_2NdW9&FfCZ6A@zJPF(V&Y$0BRhx3i@^ zTsJKVdo1^!@d!|50o+sK+OWPOz3aXMb2VRn zm*%InV4~Q>Km@9nxy1sX>pi0#rp!MMpy?RChsfMK*#~I#M+M%+@@WY?4fvPf-aq4K z@gT|)IlF-;zvRm7aFcop<&RuyPA}HOBb>pw$I~Gc?3=Q+vqmP+eM{hS&i|nWLlxurgs^)|bpvH>x& zS`rla73>|6Al!FsGZ}ixs8Gp(m?cB!Rj6n`OJh7}@Wj6RSXWb{AX~v9L*l2ytBMlG z2Ux^PEtaoUp5-9z}3hN``z^HBn5}gfVROwWt zp27@dM6ZenL5Vv9cbUDVUx%)BO?!k`yT~5AsYDjogOD}Oh>wKN*!*3hc94aN=3{Xl zDYU7c4>n|$J`&@HWwX51l>Xv8PwEz%Z*ki%H;=WVn|hTe)iZk)tB3QxyfKG8Np#UqHj4#`AW*1yeF6I*xhSKNgaJ?JgBOxJ#umD2~m}5Yk zU!>pISbci${&~QtCIS-p75H~45UZyzs%JV2%xzM}&bo?6q$Tb{+Lcq~BY(#&E@P5}0I|3YC-slL=0 z$w+%7^jKk2u@bDLQF{Y;B@-h~;TCLv6s+$u>#5EkW=F=VIn@QDKc`zU5uX^Gqo;;F zKTkbgFWCV}U1Vh7()$(VS;@I^+<#>xQBx$F(XrIF9}crbnI2kBsX8+xVH9jeYxA8|;p98q&3XpPtWTO%tnZDonFI!N z*fx9KRqLpvvG24w!pql3Bd4(yV{U4dT2f0R14ua44sdH;T>&xP{;jUd#NdcDwDU_}TIEhny^O;EER(K$kbK}W zImUh7{~>?^sB<+_VWm(k#Y~zk{xDU5NGS6-r(yMKQeAXvEOAlX@U%8l_o3l8wsMkmJn@9O>7thCw;Rfi z_$Nvl?g5{mLi)4&bNJtI5t%%QM1j~iD>AUfY3`d&$$`JLJQ(NYTWn2Ewf*9Y5M#GU06zMb+KB3yML`fJLN8Uc=XQPdWUf#t?V{r_G zI1lRCs5DZoS+P0;#RUjlRQvKRWL+V{_4#873RVFIjMAF{*>-Ip1{6TMoLqXtX-((? z(yH(c1$|r%@EU^K2b1dK$du_V=civjg`J`>P3Tw=5yTmht3zSU0!UPabQ|sY#!b#K z&Y^lpSWU^{;8z1vUMilpeyJjo6cXngiJjrgFczdY;dNaha8Hmm58b5Z8fK5h4o@nk3<_Yd8Mhe91(qMGlIPIV5Q zz?zK@k}GSAoB3D(+rDBjSw}a zpGhd?9ZtA`XutlM7P_ z6z2)jd_^JMlJ`cO_o}i`eCgO3*^N=P!gf)4d6S_E8t~$;>p39cw!4D zUpvA?ua!ZA+e|nnps>5UHLZt{&QrlPWr#CHcn>%t{ssHsyd4m>eu{ ze75(wpvq<#mWz{|IQG3)U-=&l6jm05zzi%*>Ch@x!oUigL(drQJhpNjTHLe-={i_4 zPzE;xFfuPTdkN_jb9fq5e@-fv&s za*bLc!f{>dBSiJMnqwM+P1|qmGjqmOtI+$sti_Qq)3m|8tu?mRzJ5aXyFMnU2&SlN znGn|pTOBtK15J8;8qM2A|FnXZL z_ju+Ojwjh+@-v+l?>idJ$X?Yl?iKz5Lu9)rDuSG}wJPTvAEGw|!zI>J5%7LJ!YykRj93kH^31lMOBIS~4{SCDbCD zK|LY^*wYi6mFbHiinv^Yqx?=xnD@7m=Gp_$OL$RWR9EG_<#$+tdKGQ5{3BoMkwgU| zYj})J&W2fvN5EfH>R-W4wYG&74pVTc*g@S$fO{`CS_J%sK4$J&MSs<$mWzw$Y&p~M zj<9%^HHx{1ZfDZ(^GTOUZf+O&eK}Rwc^X5*Fz}$-;M5d^4e4b@%D2GChePtYWO~0I z-!J%`k_MKQr&Lu7lpZN6@{t+cn~Wt?;%)>ng!IN@f7>?ezt z(_&U(<9_`)Jb|KsIpW_(?g|7wFie0wJVn169b@3IryHysmFWc6K?8JJ>{COaMS z$`U(Y&}lDppBq*a89R32CeS>s7&qL|)c|F4y?6iYhxziJ0l#3ahzTwOM%J#DV&_`q zhIRiPhc9XqhiP83(ttG$&^ZE9VouKpQ4`4sW``9(HCeKs!3`%KK^%D6AcFgH@o<5Z z12_G8U6h(!1mMCwp$=!Ls!P6qtkUiAHS|7m`=gf%@}xYnTKQgB|AXA@7xn3ZI#vU} zsryueD~~!AQ%>|~x?R$U73QAiyp7sv?<1AsE;?{5-h_8*5_g_xlx1j=*PeZ~0kn^@ zkw8Bp(SmtJg_O|{KGF%LkG?kN#_+sY<}_1_xs6Qr^K+(cgwSyy{?9J)7 zU^`@e(rOwNSx241tK?U9x*O}%E_E-D4pe@gtB-uxFN=`z4nZWSyB8q#Att+;WF>sB z?7_Mc%KYJVi*t=;g(XCun`)22jWKfOZFZE zQ(kXS!f`t46=-@qpIP1_9(twaGALpWcF)hnHI17K--(eHukgrDF#JHdMPr_*lOPnv zMt2}nfzpYToz-pMG&`J_%^eRUMXo+k(!Y=2D{HGinK;5|cTUq?Sdds;=7J38n`=Vjg= z)*h~S@`K@v2A_l27Q?9ky>?-H(e~_mU(%o^DQg8mP{!Dsvevp1-?TRZx{Wf8bn> ztgN*fi0r6|Z~a7>7on6pH>tu*d8@nEc)$T{6D|pO`&2GZKWFz{|30M9=sC!H%}$Cv z=QS9e2&*aefA}gjF-QVM1~njIn2vPCd!P#wsV@X2(PXS9Kww_sp(&vrl)fgj>A}ge z(V4sPu3!=U=_tcAIWy3#rkMgcPzNwk4h2CQdA0&XX1e>?c;?c;r>UlM^_wtLNy#y) zugXI>_BDH~TOr(gN_nc;G&R)qUx+qp`|>Hj#vm(K=LeE<@0H%f`pO`{ z+IFb3Z)k7zT#!P$5i9nZkfC;xE)pXWp9~%LX@rsJL@Oh^xoxUT;KZ80X=ea*-9QX%fbVWJ3RFkouM;CuwYJLk2 z{w4#>A|IgD`1(!f@oeQyow=}n$H_++(s|T4wmw;+&b0xn(aKuD?*5UtU~v*YK%C@S zR)Wgy4M0xKeV;9x=Ij}y&9aB<#rgE@k4JBh!(IyucD|1Ie)P9YI%q#%U47-^k&vHZxdcy*;g)g6cMB?N>gW0yw$R0DQzMzoU`*?@ih1p*@F8M><&XlSx%jK)D5bZl2Sm3 zd64jWI2}p9FHEnA`ZCe=IFhF90}M{w8fQ@?^24>-3-eVrQjO{f;(8Ofu@`4>dqd_& z;sI;f^Vn3xs+O*-_h|~!LX$QiNAu0%6-qsVc4$p|

tP%pnip-LtpV~&`5Y9R=vM~ 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 StT5~V0000pLD0a7YEv*t0 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 Date: Sat, 30 Jan 2016 00:39:14 -0800 Subject: [PATCH 044/348] More updates --- sass/custom/_paulus.scss | 2 +- source/_components/binary_sensor.command.markdown | 2 +- source/_components/nest.markdown | 7 +++++-- source/_components/notify.google_voice.markdown | 1 - source/_components/thermostat.nest.markdown | 1 - 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/sass/custom/_paulus.scss b/sass/custom/_paulus.scss index bad54a1da87..65bf1fed0a8 100644 --- a/sass/custom/_paulus.scss +++ b/sass/custom/_paulus.scss @@ -160,7 +160,7 @@ p.note { box-shadow: rgba(0,0,0,0.06) 0 0 10px; &::before { - font-family: "FontAwesome"; + font-family: "FontAwesome", sans-serif; content: "\f05a" " Note " attr(data-title); background-color: #6ab0de; color: white; diff --git a/source/_components/binary_sensor.command.markdown b/source/_components/binary_sensor.command.markdown index b4fbf185aa2..74147e8a3a9 100644 --- a/source/_components/binary_sensor.command.markdown +++ b/source/_components/binary_sensor.command.markdown @@ -1,6 +1,6 @@ --- layout: component -title: "Command binary sensor" +title: "Command line binary sensor" description: "Instructions how to integrate Command binary sensors within Home Assistant." date: 2016-01-13 12:15 sidebar: true diff --git a/source/_components/nest.markdown b/source/_components/nest.markdown index 63b7229bfc3..b04bfb93c26 100644 --- a/source/_components/nest.markdown +++ b/source/_components/nest.markdown @@ -9,16 +9,19 @@ sharing: true footer: true logo: nest_thermostat.png ha_category: Hub -featured: false +featured: true --- -The Nest component is the main component to integrate all Nest related platforms. It will setup your thermostats and any connected sensors. +The Nest component is the main component to integrate all Nest related platforms. Besides this component you will have to setup your thermostat and any connected sensors separately. ```yaml # Example configurayion.yaml entry nest: username: USERNAME password: PASSWORD + +thermostat: + platform: nest ``` Configuration variables: diff --git a/source/_components/notify.google_voice.markdown b/source/_components/notify.google_voice.markdown index f266655376c..677f8749d98 100644 --- a/source/_components/notify.google_voice.markdown +++ b/source/_components/notify.google_voice.markdown @@ -9,7 +9,6 @@ sharing: true footer: true logo: google_voice.png ha_category: Notifications -featured: true --- [Google Voice](https://www.google.com/voice) is a free service, that allows sending of SMS messages to mobile phones. diff --git a/source/_components/thermostat.nest.markdown b/source/_components/thermostat.nest.markdown index 909228f0916..3164fb8c633 100644 --- a/source/_components/thermostat.nest.markdown +++ b/source/_components/thermostat.nest.markdown @@ -9,7 +9,6 @@ sharing: true footer: true logo: nest_thermostat.png ha_category: Thermostat -featured: true --- From 65a37114fa161d523faff60119b046867e34d895 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 30 Jan 2016 00:59:52 -0800 Subject: [PATCH 045/348] Update demo --- source/demo/frontend.html | 959 ++++++++++++++++---------- source/demo/webcomponents-lite.min.js | 6 +- 2 files changed, 579 insertions(+), 386 deletions(-) diff --git a/source/demo/frontend.html b/source/demo/frontend.html index 26e5d1e824f..27034d2843c 100644 --- a/source/demo/frontend.html +++ b/source/demo/frontend.html @@ -1,4 +1,4 @@ -