Merge pull request #1263 from home-assistant/next

0.31
This commit is contained in:
Fabian Affolter 2016-10-23 00:33:19 +02:00 committed by GitHub
commit 056e268aa1
77 changed files with 1604 additions and 142 deletions

View File

@ -0,0 +1,29 @@
---
layout: page
title: "Concord232 Alarm Control Panel"
description: "Instructions how to integrate Interlogix/GE Concord4 with RS-232 Automation Control Module into Home Assistant."
date: 2016-10-11 10:00
sidebar: true
comments: false
sharing: true
footer: true
logo: interlogix.png
ha_category: Alarm
ha_release: 0.31
---
The `concord232` platform provides integration with GE, Interlogix (and other brands) alarm panels that support the RS-232 Automation Control Panel interface module (or have it built in). Supported panels include Concord 4.
To enable this, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
alarm_control_panel:
- platform: concord232
```
Configuration variables:
- **host** (*Optional*): The host where the concord232 server process is running. Defaults to localhost.
- **port** (*Optional*): The port where the Alarm panel ist listening. Defaults to 5007.

View File

@ -12,9 +12,13 @@ ha_category: Voice
featured: true
---
There are two ways that you can use Amazon Echo and Home Assistant together.
There are a few ways that you can use Amazon Echo and Home Assistant together.
No matter which method(s) you decide to use, please remember that Amazon Echo requires an active Internet connection to function. If your Internet is down or experiencing issues (or Amazon's infrastructure is having issues), neither of these methods will work.
- [Turning devices on and off](#i-just-want-to-turn-devices-on-and-off-using-echo)
- [Build custom commands to use](#i-want-to-build-custom-commands-to-use-with-echo)
- [Create a new Flash Briefing source](#flash-briefing-skills)
No matter which method(s) you decide to use, please remember that Amazon Echo requires an active Internet connection to function. If your Internet is down or experiencing issues (or Amazon's infrastructure is having issues), none of these methods will work.
Amazon has released [Echosim], a website that simulates the Alexa service in your browser. That way it is easy to test your skills without having access to a physical Amazon Echo.
@ -62,9 +66,10 @@ Amazon requires the endpoint of a skill to be hosted via SSL. Self-signed certif
To get started with Alexa skills:
- Log in to [Amazon developer console](https://developer.amazon.com)
- Go to Apps & Services => Alexa => Alexa Skill Kit - Get Started
- Add a new skill
- Log in to [Amazon developer console][amazon-dev-console]
- Click the Alexa button at the top of the console
- Click the yellow "Add a new skill" button in the top right
- Skill Type: Custom Interaction Model (default)
- Name: Home Assistant
- Invocation name: home assistant (or be creative, up to you)
- Version: 1.0
@ -72,6 +77,8 @@ To get started with Alexa skills:
- https
- https://YOUR_HOST/api/alexa?api_password=YOUR_API_PASSWORD
You can use this [specially sized Home Assistant logo][large-icon] as the large icon and [this one][small-icon] as the small one.
### {% linkable_title Configuring your Amazon Alexa skill %}
Alexa works based on intents. Each intent has a name and variable slots. For example, a `LocateIntent` with a slot that contains a `User`. Example intent schema:
@ -119,7 +126,6 @@ You can use [templates] for the values of `speech/text`, `card/title` and `card/
Actions are using the [Home Assistant Script Syntax] and also have access to the variables from the intent.
[templates]: /topics/templating/
[Home Assistant Script Syntax]: /getting-started/scripts/
Configuring the Alexa component for the above intents would look like this:
@ -256,7 +262,7 @@ Then add the intent to your Alexa Section in your HA config file:
Now say `Alexa ask homeassistant to run <some script>` and Alexa will run that script for you.
## {% linkable_title Giving Alexa Some Personality%}
## {% linkable_title Giving Alexa Some Personality %}
In the examples above, we told Alexa to say `OK` when she successfully completed the task. This is effective but a little dull! We can again use [templates] to spice things up a little.
@ -298,3 +304,57 @@ text: !include alexa_confirm.yaml
Alexa will now respond with a random phrase each time. You can use the include for as many different intents as you like so you only need to create the list once.
## {% linkable_title Flash Briefing Skills %}
As of version [0.31][zero-three-one] Home Assistant supports the new [Alexa Flash Briefing Skills API][flash-briefing-api]. A Flash Briefing Skill adds a new Flash Briefing source that is generated by Home Assistant.
### {% linkable_title Configuring a Flash Briefing skill in Home Assistant %}
You can use [templates] for the `title`, `audio`, `text` and `display_url` configuration parameters.
Here's an example configuration of a Flash briefing skill that will tell you who is at home:
```yaml
{% raw %}# Example configuration.yaml entry
alexa:
flash_briefings:
whoishome:
- title: Who's at home?
text: >
{%- if is_state('device_tracker.paulus', 'home') and
is_state('device_tracker.anne_therese', 'home') -%}
You are both home, you silly
{%- else -%}
Anne Therese is at {{ states("device_tracker.anne_therese") }}
and Paulus is at {{ states("device_tracker.paulus") }}
{% endif %}{% endraw %}
```
You can add multiple items for a feed if you want. The Amazon required uid and timestamp will be randomly generated at startup and change at every restart of Home Assistant.
Please refer to the [Amazon documentation][flash-briefing-api-docs] for more information about allowed configuration parameters and formats.
### {% linkable_title Configuring your Flash Briefing skill %}
- Log in to [Amazon developer console][amazon-dev-console]
- Click the Alexa button at the top of the console
- Click the yellow "Add a new skill" button in the top right
- Skill Information
- For Skill Type select Flash Briefing Skill API
- You can enter whatever name you want
- Hit next
- Interaction Model
- Nothing to do here
- Configuration
- Add new feed
- For URL, enter `https://YOUR_HOST/api/alexa/flash_briefings/BRIEFING_ID?api_password=YOUR_API_PASSWORD` where `BRIEFING_ID` is the key you entered in your configuration (such as `whoishome` in the above example)
- You can use this [specially sized Home Assistant logo][large-icon] as the Feed Icon
- All other settings are up to you
[amazon-dev-console]: https://developer.amazon.com
[flash-briefing-api]: https://developer.amazon.com/alexa-skills-kit/flash-briefing
[flash-briefing-api-docs]: https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/flash-briefing-skill-api-feed-reference
[large-icon]: /images/components/alexa/alexa-512x512.png
[small-icon]: /images/components/alexa/alexa-108x108.png
[templates]: /topics/templating/
[zero-three-one]: /blog/2016/10/22/flash-briefing-updater-hacktoberfest/

View File

@ -0,0 +1,29 @@
---
layout: page
title: "Concord232 Binary Sensor"
description: "Instructions how to integrate Interlogix/GE Concord4 binary sensors into Home Assistant."
date: 2016-10-11 10:00
sidebar: true
comments: false
sharing: true
footer: true
logo: interlogix.png
ha_category: Binary sensor
ha_release: 0.31
---
The `concord232` platform provides integration with GE, Interlogix (and other brands) alarm panels that support the RS-232 Automation Control Panel interface module (or have it built in). Supported panels include Concord 4.
To enable this, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
binary_sensor:
- platform: concord232
```
Configuration variables:
- **host** (*Optional*): The host where the concord232 server process is running. Defaults to localhost.
- **port** (*Optional*): The port where the Alarm panel ist listening. Defaults to 5007.

View File

@ -0,0 +1,52 @@
---
layout: page
title: "Netatmo Binary Sensor"
description: "Instructions how to integrate Netatmo binary sensor into Home Assistant."
date: 2016-09-19 15:10
sidebar: true
comments: false
sharing: true
footer: true
logo: netatmo.png
ha_category: Binary Sensor
ha_release: 0.31
---
### {% linkable_title Basic Configuration %}
The `netatmo` binary sensor platform is consuming the information provided by a [Netatmo Welcome](https://www.netatmo.com) camera. This component allows you to get the latest event seen by the camera.
To enable the Netatmo binary sensor, you have to set up [netatmo](/components/netatmo/), this will use discovery to add your binary sensor.
### {% linkable_title Advanced configuration %}
If you want to select a specific sensor, set discovery to False for [netatmo](/components/netatmo/) and add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
binary_sensor:
platform: netatmo
home: home_name
cameras:
- camera_name1
monitored_conditions:
- Someone known
- Someone unknown
- Motion
```
Configuration variables:
- **home** (*Optional*): Will use the cameras of this home only.
- **cameras** array (*Optional*): Cameras to use. Multiple enties allowed.
- 'camera_name': Name of the camera to display.
- **monitored_conditions** array (*Optional*): List of monitored conditions.
- 'Someone known'
- 'Someone unknown'
- 'Motion'
If **home** and **cameras** is not provided, all cameras will be used. If multiple cameras are available then each monitored conditions will create a specific sensor for each camera
<p class='note'>
[Welcome tags](https://www.netatmo.com/product/security/welcome/tags) are not yet supported, but will be in a next update.
</p>

View File

@ -12,10 +12,15 @@ ha_category: Camera
ha_release: 0.22
---
### {% linkable_title Basic Configuration %}
The `netatmo` camera platform is consuming the information provided by a [Netatmo Welcome](https://www.netatmo.com) camera. This component allows you to view the current photo created by the Camera.
To enable the Netatmo camera, you first have to set up [netatmo](/components/netatmo/), and add the following lines to your `configuration.yaml`:
To enable the Netatmo camera, you have to set up [netatmo](/components/netatmo/), this will use discovery to add your camera.
### {% linkable_title Advanced configuration %}
If you want to select a specific camera, set discovery to False for [netatmo](/components/netatmo/) and add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry

View File

@ -0,0 +1,51 @@
---
layout: page
title: "Synology Camera"
description: "Instructions how to integrate Synolog Surveillance Station cameras within Home Assistant."
date: 2016-10-13 08:01
sidebar: true
comments: false
sharing: true
footer: true
logo: synology.png
ha_category: Camera
ha_release: 0.31
---
 
The `synology` platform allows you to watch the live streams of your [Synology](https://www.synology.com/) Surveillance Station based IP cameras in Home Assistant.
To enable your Surveillance Station cameras in your installation, add the following to your `configuration.yaml` file:
```yaml
# Minimum configuration.yaml entry
camera:
- platform: synology
url: SYNOLOGY_URL
username: USERNAME
password: PASSWORD
```
Configuration variables:
- **url** (*Required*): The URL to your synology, including port.
- **username** (*Required*): The username for accessing surveillance station.
- **password** (*Required*): The password for accessing surveillance station.
- **whitelist** (*Optional*): A list of which cameras you want to add, the names must be the same as in Surveillance Station. If omited all cameras are added.
- **verify_ssl** (*Optional*): True to require a valid certificate, False to disable certificate checking. Defaults to `True`.
A full sample configuration for the `synology` platform is shown below:
```yaml
# Example configuration.yaml entry
camera:
- platform: synology
url: https://192.168.1.120:5001
username: USERNAME
password: PASSWORD
verify_ssl: False
```
<p class='note'>
Most users will need to set `valid_ssl` to false unless they have installed a valid SSL certificate in place of the built in self-signed certificate.
</p>

View File

@ -0,0 +1,19 @@
---
layout: page
title: "Verisure Camera"
description: "Instructions how to setup the Verisure cameras within Home Assistant."
date: 2016-10-22 09:00
sidebar: true
comments: false
sharing: true
footer: true
logo: verisure.png
ha_category: Camera
ha_release: 0.31
---
The `verisure` camera platform allows you to control your [Verisure](https://www.verisure.com/) cameras.
The requirement is that you have setup your [Verisure hub](/components/verisure/).

View File

@ -0,0 +1,46 @@
---
layout: page
title: "Netatmo Thermostat"
description: "Instructions how to integrate Netatmo thermostat into Home Assistant."
date: 2016-11-10 08:10
sidebar: true
comments: false
sharing: true
footer: true
logo: netatmo.png
ha_category: Climate
ha_release: 0.31
---
### {% linkable_title Basic Configuration %}
The `netatmo` thermostat platform is consuming the information provided by a [Netatmo Smart Thermostat](https://www.netatmo.com/product/energy/thermostat) thermostat. This component allows you to view the current temperature and setpoint.
To enable the Netatmo thermostat, you first have to set up [netatmo](/components/netatmo/), this will use discovery to add your thermostat.
### {% linkable_title Basic Configuration %}
If you want to select a specific thermostat, set discovery to False for [netatmo](/components/netatmo/) and add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
climate:
platform: netatmo
```
Configuration variables:
- **relay** (*Optional*): Will display the thermostats of this relay only.
- **thermostat** array (*Optional*): Thermostat to use.
- **thermostat_name**: Name of the thermostat to display.
If **relay** and **thermostat** are not provided, all thermostats will be displayed.
```yaml
# Example configuration.yaml entry
climate:
platform: netatmo
relay: relay_name
thermostat:
- thermostat_name
```

View File

@ -0,0 +1,35 @@
---
layout: page
title: "Bbox"
description: "Instructions how to integrate Bouygues Bbox routers into Home Assistant."
date: 2016-10-13 23:00
sidebar: true
comments: false
sharing: true
footer: true
logo: bbox.png
ha_category: Presence Detection
ha_release: "0.31"
---
The `bbox` platform offers presence detection by looking at connected devices to a [Bbox](https://fr.wikipedia.org/wiki/Bbox) based router from [Bouygues](https://www.bouyguestelecom.fr/), which is one of the main Internet provider in France.
<p class='note'>
Bbox is a generic name for different hardware routers. The platform has only been tested on a Sagem F@st 5330b because it's the only model the developer owns.
</p>
To use an Bbox router in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
device_tracker:
- platform: bbox
```
<p class='note warning'>
For now and due to third party limitation, the Bbox must be on the same local network as the Home Assistant installation. And with the default IP configuration (IP of the router must be 192.168.1.254).
</p>
See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked.

View File

@ -17,6 +17,8 @@ As an alternative to the router-based device tracking, it is possible to directl
If you're on Debian or Ubuntu, you might have to install the packages for `arp` and `nmap`. Do so by running `$ sudo apt-get install net-tools nmap`. On a Fedora host run `$ sudo dnf -y install nmap`.
Host detection is done via Nmap's "fast scan" (`-F`) of the most frequently used 100 ports, with a host timeout of 5 seconds.
To use this device tracker in your installation, add the following to your `configuration.yaml` file:
```yaml
@ -28,7 +30,7 @@ device_tracker:
Configuration variables:
- **hosts** (*Required*): The network range to scan in CIDR notation, eg. `192.168.1.1/24`.
- **hosts** (*Required*): The network address to scan (in any supported NMap format). Mixing subnets and IPs is possible.
- **home_interval** (*Optional*): The number of minutes nmap will not scan this device, assuming it is home, in order to preserve the device battery.
- **exclude** (*Optional*): Hosts not to include in nmap scanning.
@ -36,6 +38,7 @@ A full example for the `nmap` tracker could look like the following sample:
```yaml
# Example configuration.yaml entry for nmap
# One whole subnet, and skipping two specific IPs.
device_tracker:
- platform: nmap_tracker
hosts: 192.168.1.1/24
@ -45,5 +48,16 @@ device_tracker:
- 192.168.1.13
```
```yaml
# Example configuration.yaml for nmap
# One subnet, and two specific IPs in another subnet.
device_tracker:
- platform: nmap_tracker
hosts:
- 192.168.1.1/24
- 10.0.0.2
- 10.0.0.15
```
See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked.

View File

@ -29,20 +29,36 @@ OID examples:
- pfSense: `1.3.6.1.2.1.4.22.1.2` (tested on 2.2.4-RELEASE, need to enable SNMP service)
- TPLink: `1.3.6.1.2.1.3.1.1.2.19.1` (Archer VR2600v, need to enable SNMP service)
To use the SNMP platform in your installation, add the following to your `configuration.yaml` file:
To use the SNMP version 1 platform in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
# Example configuration.yaml entry for SNMP version 1
device_tracker:
- platform: snmp
host: 192.168.1.1
community: public
baseoid: 1.3.6.1.4.1.14988.1.1.1.2.1.1
```
If you want to use encryption, you must enable SNMP version 3 by adding `authkey` and `privkey` variables and enabling SNMP version 3 on your router. Currently only SHA1 is supported for authentication and AES for encryption. Example of SNMPv3 configuration:
```yaml
# Example configuration.yaml entry for SNMP version 3
device_tracker:
- platform: snmp
host: 192.168.1.1
community: username
authkey: authpass
privkey: privpass
baseoid: 1.3.6.1.4.1.14988.1.1.1.2.1.1
```
Configuration variables:
- **host** (*Required*): The IP address of the router, eg. 192.168.1.1.
- **community** (*Required*): The SNMP community which is set for the device. Most devices have a default community set to to `public` with read-only permission (which is sufficient).
- **baseoid** (*Required*): The OID prefix where wireless client registrations can be found, usually vendor specific. It's advised to use the numerical notation. To find this base OID, check vendor documentation or check the MIB file for your device.
- **authkey** (*Inclusive*): Authentication key for SNMPv3. Variable privkey must also be set.
- **privkey** (*Inclusive*): Privacy key SNMPv3. Variable authkey must also be set.
See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked.

View File

@ -0,0 +1,38 @@
---
layout: page
title: "Emoncms history"
description: "Instructions on how to integrate Emoncms history into Home Assistant."
date: 2016-09-25 12:50
sidebar: true
comments: false
sharing: true
footer: true
logo: emoncms.png
ha_category: History
featured: false
ha_release: 0.31
---
The `emoncms_history` component makes it possible to transfer details collected with Home Assistant to [Emoncms.org](https://emoncms.org/) or your local running Emoncms instance. It will send the data to a specific input node on Emoncms with the entity IDs as a key. Afterwards you can create feeds and dashboards in Emoncms with the collected data.
To use the `emoncms_history` component in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
emoncms_history:
api_key: put your emoncms WRITE api key here
url: https://emoncms.org
inputnode: 19
whitelist:
- sensor.owm_temperature
- sensor.owm_wind_speed
```
Configuration variables:
- **api_key** (*Required*): Your emoncms write api key
- **url** (*Required*): The root URL of your Emoncms installation. (Use https://emoncms.org for the cloud based version)
- **inputnode** (*Required*): Input node that will be used inside emoncms. Please make sure you use a dedicated, not used before, node for this component!
- **whitelist** (*Required*): List of entity IDs you want to publish.
- **scan_interval** (*Optional*): Defines, in seconds, how reguarly the states of the whitelisted entities are being gathered and send to emoncms. Default is 30 seconds.

View File

@ -28,6 +28,18 @@ Configuration variables:
- **ffmpeg_bin** (*Optional*): Default 'ffmpeg'. The name or path to the `ffmpeg` binary.
- **run_test** (*Optional*): Default True. Check if `input` is usable by ffmpeg.
### {% linkable_title Raspbian Debian Jessie Lite Installations %}
To get the binary on Raspbian Debian Jessie Lite on a RPi you need to perform the following:
```
$ sudo apt-get install libav-tools
```
This will get a forked version of ffmpeg called avconv, once this is installed you need to use the following in the configuration:
```
ffmpeg:
ffmpeg_bin: /usr/bin/avconv
```
### {% linkable_title Troubleshooting %}
In most cases, `ffmpeg` automatically detects all needed options to read a video or audio stream or file. But it is possible in rare cases that you will need to set options to help `ffmpeg` out.

View File

@ -18,7 +18,7 @@ The `history` component will track everything that is going on within Home Assis
To enable the history option in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
# Basic configuration.yaml entry
history:
```
@ -32,6 +32,56 @@ history:
Events are saved in a local database. Google Graphs is used to draw the graph. Drawing is happening 100% in your browser. No data is transferred to anyone at any time.
</p>
Configuration variables:
- **exclude** (*Optional*): Configure which components should **not** be displayed.
- **entities** (*Optional*): The list of entity ids to be excluded from the history.
- **domains** (*Optional*): The list of domains to be excluded from the history.
- **include** (*Optional*): Configure which components should be displayed.
- **entities** (*Optional*): The list of entity ids to be included from the history.
- **domains** (*Optional*): The list of domains to be included from the history.
Without any `include` or `exclude` configuration the history displays graphs for every entity (well that's not exactly true - for instance `hidden` entities or `scenes` are never shown) on a given date. If you are only interested in some of the entities you several options:
- Define domains and entities to `exclude` (aka. blacklist). This is convenient when you are basically happy with the information displayed, but just want to remove some entities or domains. Usually these are entities/domains which do not change (like `weblink`) or rarely change (`updater` or `automation`).
```yaml
# Example configuration.yaml entry with exclude
history:
exclude:
domains:
- automation
- weblink
- updater
entities:
- sensor.last_boot
- sensor.date
```
- Define domains and entities to display by using the `include` configuration (aka. whitelist). If you have a lot of entities in your system and your `exclude` lists possibly get very large, it might be better just to define the entities or domains to display.
```yaml
# Example configuration.yaml entry with include
history:
include:
domains:
- sensor
- switch
- media_player
```
- Use the `include` list to define the domains/entities to display, and exclude some of them with in the `exclude` list. This makes sense if you for instance include the `sensor` domain, but want to exclude some specific sensors. Instead of adding every sensor entity to the `include` `entities` list just include the `sensor` domain and exclude the sensor entities you are not interested in.
```yaml
# Example configuration.yaml entry with include and exclude
history:
include:
domains:
- sensor
- switch
- media_player
exclude:
entities:
- sensor.last_boot
- sensor.date
```
#### {% linkable_title Implementation details %}
The history is stored in a SQLite database `home-assistant.db` within your config directory.

View File

@ -32,7 +32,7 @@ Configuration variables:
- **ssl_certificate** (*Optional*): Path to your TLS/SSL certificate to serve Home Assistant over a secure connection.
- **ssl_key** (*Optional*): Path to your TLS/SSL key to serve Home Assistant over a secure connection.
- **cors_allowed_origins** (*Optional*): A list of origin domain names to allow [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing) requests from. Enabling this will set the `Access-Control-Allow-Origin` header to the Origin header if it is found in the list, and the `Access-Control-Allow-Headers` header to `Origin, Accept, X-Requested-With, Content-type, X-HA-access`. You must provide the exact Origin, i.e. `https://home-assistant.io` will allow requests from `https://home-assistant.io` but __not__ `http://home-assistant.io`.
- **approved_ips** (*Optional*): A list of approved ips. Then it will be possible to login from given ips without providing a password.
- **trusted_networks** (*Optional*): List of trusted networks, consisting of IP addresses or networks, that are allowed to bypass password protection when accessing Home Assistant.
The sample below shows a configuration entry with possible values:
@ -46,9 +46,11 @@ http:
cors_allowed_origins:
- https://google.com
- https://home-assistant.io
approved_ips:
trusted_networks:
- 127.0.0.1
- 192.168.1.9
- ::1
- 192.168.0.0/24
- 2001:DB8:ABCD::/48
```
The [Set up encryption using Let's Encrypt](/blog/2015/12/13/setup-encryption-using-lets-encrypt/) blog post gives you details about the encryption of your traffic using free certificates from [Let's Encrypt](https://letsencrypt.org/).

View File

@ -23,38 +23,9 @@ Sending IR commands is not supported in this component (yet), but can be accompl
To allow Home Assistant to talk to your IR receiver, you need to first make sure you have the correct dependencies installed:
```bash
$ sudo apt-get install lirc python3-lirc
$ sudo apt-get install lirc liblircclient-dev
```
Check the version of `python3-lirc`:
```bash
$ apt-cache show python3-lirc
Package: python3-lirc
Source: python-lirc
Version: 1.2.1-2
```
If you do not have this version or you are running in a virtual environment, then your system will completely freeze with this component active. You will need to build `python3-lirc` from source. The version of this library in the Python package index is also broken, so the typical dependency system cannot fix this. Build it from source like this:
As regular user:
```bash
sudo apt-get install liblircclient-dev
```
As the user that runs hass:
```bash
(hass) $ git clone https://github.com/tompreston/python-lirc.git
(hass) $ cd python-lirc
(hass) $ make py3
(hass) $ python3 setup.py build
(hass) $ python3 setup.py install
```
If you are not using a virtual environment setup, then you'll need a `sudo` before the install line above.
<p class='note'>
If you are configuring on a Raspberry Pi, there are excellent instructions with GPIO schematics and driver configurations [here](http://alexba.in/blog/2013/01/06/setting-up-lirc-on-the-raspberrypi/). Consider following these.

View File

@ -22,13 +22,17 @@ logbook:
Configuration variables:
- **exclude** (*Optional*): Configure which components should **not** create logbook enties.
- **entities** (*Optional*): The list of entity ids to be excluded from creating logbook entries.
- **domains** (*Optional*): The list of domains to be excluded from creating logbook entries.
- **exclude** (*Optional*): Configure which components should **not** create logbook entries.
- **entities** (*Optional*): The list of entity ids to be excluded from creating logbook entries.
- **domains** (*Optional*): The list of domains to be excluded from creating logbook entries.
- **include** (*Optional*): Configure which components should create logbook entries.
- **entities** (*Optional*): The list of entity ids to be included from creating logbook entries.
- **domains** (*Optional*): The list of domains to be included from creating logbook entries.
If you want to exclude messages of some entities or domains from the logbook just add the `exclude` parameter like:
```yaml
# Example of excluding domains and entities from the logbook
logbook:
exclude:
entities:
@ -39,6 +43,34 @@ logbook:
- weblink
```
In case you just want to see messages from some specific entities or domains use the `include` configuration:
```yaml
# Example to show how to include only the listed domains and entities in the logbook
logbook:
include:
domains:
- sensor
- switch
- media_player
```
You can also use the `include` list and filter out some entities or domains with an `exclude` list. Usually this makes sense if you define domains on the include side and filter out some specific entities.
```yaml
# Example of combining include and exclude configurations
logbook:
include:
domains:
- sensor
- switch
- media_player
exclude:
entities:
- sensor.last_boot
- sensor.date
```
### {% linkable_title Exclude Events %}
Entities customized as hidden are excluded from the logbook by default, but sometimes you want to show the entity in the UI and not in the logbook. For instance you use the `sensor.date`to show the current date in the UI, but you do not want an logbook entry for that sensor every day.

View File

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

View File

@ -29,4 +29,10 @@ Configuration variables:
- **host** (*Required*): The IP of the Pioneer device, eg. `192.168.0.10`
- **name** (*Optional*): The name you would like to give to the receiver.
- **port** (*Optional*): The port on which the Pioneer device listens, e.g. `23` (default) or `8102`
- **timeout** (*Optional*): Number of seconds (float) to wait for blocking operations like connect, write, and read.
Notes:
- Some Pioneer AVRs use the port 23 default and some are reported to use 8102.
- `timeout` is a socket level option and should only be configured if you know what you are doing.

View File

@ -39,7 +39,8 @@ Configuration variables:
A few notes:
- Not specifying the host variable will result in automatically searching your network for Yamaha Receivers. It will add a media player device for each one.
- Not specifying the host variable will result in automatically searching your network for Yamaha Receivers. It will add a media player device for each one.
- For receivers that support more than one zone, Home Assistant will add one media player per zone supported by the player, named "$name Zone 2" and "$name Zone 3".
- In some cases, autodiscovery fails due to a known bug in the receiver's firmware. It is possible to manually specify the reveiver's IP address or via it's hostname (if it is discoverably by your DNS) then.
- Please note: If adding the IP address or hostname manually, you **must** enable network standby on your receiver, or else startup of Home Assistant will hang if you have your receiver switched off.
- Currently, this component supports powering on/off, mute, volume control and source selection.

View File

@ -13,7 +13,7 @@ ha_release: "0.20"
---
The `netatmo` component platform is the main component to integrate all Netatmo related platforms. Besides this component you will have to setup any connected sensors separately.
The `netatmo` component platform is the main component to integrate all Netatmo related platforms.
To enable the Netatmo component, add the following lines to your `configuration.yaml`:
@ -32,6 +32,7 @@ Configuration variables:
- **secret_key** (*Required*): Your netatmo secret key
- **username** (*Required*): Username for the netatmo account.
- **password** (*Required*): Password for the netatmo account.
- **discovery** (*Optional)*: Whether to discover Netatmo devices. Set it to False, if you want to choose which Netatmo device you want to add (default True).
### {% linkable_title Get API and Secret Key %}
@ -54,5 +55,5 @@ That's it. You can copy and paste your new API and secret keys in your Home Assi
</p>
<p class='note'>
The Home Assistant NetAtmo platform has only be tested with the classic indoor, outdoor module and rainmeter. There is no support for the windmeter module at this time because developers does not own these modules.
The Home Assistant Netatmo platform has only be tested with the classic indoor, outdoor module and rainmeter. There is no support for the windmeter module at this time because developers does not own these modules.
</p>

View File

@ -0,0 +1,53 @@
---
layout: page
title: "APNS"
description: "Instructions how to add APNS notifications to Home Assistant."
date: 2016-09-05 23:00
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Notifications
ha_release: 0.31
---
The `apns` platform uses the Apple Push Notification service (APNS) to deliver notifications from Home Assistant.
To use the APNS service you will need an Apple developer account and you will need to create an App to receive push notifications. For more information see the apple developer documentation.
```yaml
# Example configuration.yaml entry
notify:
name: NOTIFIER_NAME
platform: apns
cert_file: cert_file.pem
```
Configuration variables:
- **name** (*Required*): The name of the notifier. The notifier will bind to the service `notify.NOTIFIER_NAME`.
- **sandbox** (*Optional*): If true notifications will be sent to the sandbox (test) notification service. Default false.
- **cert_file** (*Required*): The certificate to use to authenticate with the APNS service.
The APNS platform will register two services, `notify.NOTIFIER_NAME` and `apns.NOTIFIER_NAME`.
### apns.NOTIFIER_NAME
This service will register device id's with home assistant. In order to receive a notification a device must be registered. The app on the device can use this service to send an ID to Home Assistant during startup, the ID will be stored in `[NOTIFIER_NAME]_apns.yaml`.
See didRegisterForRemoteNotificationsWithDeviceToken in the [Apple developer documentation](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/#//apple_ref/occ/intfm/UIApplicationDelegate/application:didRegisterForRemoteNotificationsWithDeviceToken:) for more information about how to obtain a device id.
### notify.NOTIFIER_NAME
This service will send messages to a registered device. The following parameters can be used:
- **message**: The message to send
- **target**: The desired state of the device, only devices that match the state will receive messages. To enable state tracking a registered device must have a `tracking_device_id` attribute added to the `[NOTIFIER_NAME]_apns.yaml` file. If this ID matches a device in `known_devices.yaml` the device state will be tracked.
- **data**:
* **badge**: The number to display as the badge of the app ic.
* **sound**: The name of a sound file in the app bundle or in the Library/Sounds folder.
* **category**: Provide this key with a string value that represents the identifier property of the UIMutableUserNotificationCategory.
* **content_available**: Provide this key with a value of 1 to indicate that new content is available.

View File

@ -0,0 +1,39 @@
---
layout: page
title: "Matrix"
description: "Instructions how to add Matrix notifications to Home Assistant."
date: 2016-10-11 23:51
sidebar: true
comments: false
sharing: true
footer: true
logo: matrix.png
ha_category: Notifications
ha_release: 0.31
---
The `matrix` platform allows you to deliver notifications from Home Assistant to a Matrix room. Rooms can be both direct as well as group chats.
```yaml
# Example configuration.yaml entry
notify:
- platform: matrix
homeserver: HOMESERVER
username: USERNAME
password: PASSWORD
default_room: ROOM_ID_OR_ALIAS
```
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`.
- **homeserver** (*Required*): The base URL of the homeserver, where the notifier account is registered (e.g. `https://matrix.org`).
- **username** (*Required*): The username of the notifying Matrix account.
- **password** (*Required*): The password for the given Matrix account.
- **default_room** (*Required*): The room all messages will be sent to, when no other target is given.
- **verify_ssl** (*Optional*): Verify the homeservers certificate. Defaults to `true`.
The target room has to be precreated, the room id can be obtained from the rooms settings dialog. Rooms by default have a canonical id of the form `!<randomid>:homeserver.tld`, but can also be allocated aliases like `#roomname:homeserver.tld`. The notifying account may need to be invited to the room, depending on the individual rooms policies.
To use notifications, please see the [getting started with automation page](/getting-started/automation/).

View File

@ -53,3 +53,22 @@ If using targets, your own account's email address functions as 'send to all dev
]
}
```
To use notifications, please see the [getting started with automation page](/getting-started/automation/).
### {% linkable_title URL support %}
```yaml
...
action:
service: notify.NOTIFIER_NAME
data:
title: Send URL
message: This is an url
data:
url: google.com
```
- **url** (*Required*): Page URL to send with pushbullet.

View File

@ -0,0 +1,39 @@
---
layout: page
title: "Telstra"
description: "Instructions on how to add Telstra API notifications to Home Assistant."
date: 2016-10-19 10:00
sidebar: true
comments: false
sharing: true
footer: true
logo: telstra.png
ha_category: Notifications
ha_release: 0.31
---
The `telstra` notification platform allows you to deliver Home Assistant notifications to Australian phone numbers over the [Telstra SMS API](https://dev.telstra.com/content/sms-api-0).
To enable the Telstra notifications in your installation, you must first create an account and API app over at [dev.telstra.com](https://dev.telstra.com/). The free tier allows for 1000 notifications to be sent per month.
After your API app is approved, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
notify:
name: NOTIFIER_NAME
platform: telstra
consumer_key: TELSTRA_API_CONSUMER_KEY_HERE
consumer_secret: TELSTRA_API_CONSUMER_SECRET_HERE
phone_number: SMS_RECIPIENT_PHONE_NUMBER_HERE
```
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*): The consumer key of your Telstra API app.
- **consumer_secret** (*Required*): The consumer secret of your Telstra API app.
- **phone_number** (*Required*): The phone number of where the notifications will be sent.
To use notifications, please see the [getting started with automation page](/getting-started/automation/).

View File

@ -38,23 +38,20 @@ To enable this component in your installation, add the following to your `config
```yaml
# Example configuration.yaml entry
proximity:
zone: home
ignored_zones:
- twork
- elschool
devices:
- device_tracker.nwaring_nickmobile
- device_tracker.eleanorsiphone
- device_tracker.tsiphone
tolerance: 50
unit_of_measurement: mi
home:
ignored_zones:
- twork
devices:
- device_tracker.nwaring_nickmobile
tolerance: 50
unit_of_measurement: mi
```
Configuration variables:
- **zone** (*Optional*): The zone to which this component is measuring the distance to. Default is the home zone.
- **ignored_zones** array (*Optional*): Where proximity is not calculated for a device (either the device being monitored or ones being compared (e.g. work or school).
- **devices** array (*Optional*): A list of devices to compare location against to check closeness to the configured zone.
- **devices** array (*Optional*): A list of devices to compare location against to check closeness to the configured zone.
- **tolerance** (*Optional*): The tolerance used to calculate the direction of travel in meters (m) to filter out small GPS coordinate changes.
- **unit_of_measurement** (*Optional*): The unit of measurement for distance. Valid values are (km, m, mi, ft) [kilometers, meters, miles and feet respectfully]. The default value is kilometers.
@ -63,11 +60,21 @@ To add multiple proximity components, simply use a list in your `configuration.y
```yaml
# Example configuration.yaml entry
proximity:
- zone: home
home:
ignored_zones:
- twork
- elschool
devices:
- device_tracker.nwaring_nickmobile
- device_tracker.eleanorsiphone
- device_tracker.tsiphone
tolerance: 50
unit_of_measurement: mi
home3:
devices:
- device_tracker.tsiphone
tolerance: 50
- zone: work
work:
devices:
- device_tracker.elanorsiphone
tolerance: 10

View File

@ -10,6 +10,7 @@ footer: true
logo: arduino.png
ha_category: DIY
ha_release: pre 0.7
ha_iot_class: "Local Polling"
---
@ -24,17 +25,16 @@ sensor:
pins:
1:
name: Door switch
type: analog
0:
name: Brightness
type: analog
```
Configuration variables:
- **pins** (*Required*): Array of pins to use. The number corresponds with the pin numbering schema of your board.
- **name**: Name that will be used in the frontend for the pin.
- **type**: The type of the pin. At the moment only 'analog' is supported.
- **pins** array (*Required*): Array of pins to use.
- **[number]** (*Required*): The pin number that corresponds with the pin numbering schema of your board.
- **name** (*Optional*): Name that will be used in the frontend for the pin.
The 6 analog pins of an Arduino UNO are numbered from A0 to A5.

View File

@ -0,0 +1,24 @@
---
layout: page
title: "ARWN Sensor"
description: "Instructions how to integrate ARWN within Home Assistant."
date: 2016-10-20 15:15
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Sensor
ha_release: 0.31
---
The `arwn` sensor platform is a client for the [Ambient Radio Weather Network](http://github.com/sdague/arwn) project. This collects weather station data and makes it available in an MQTT subtree.
To use your ARWN setup, you must already have configured the [MQTT](mqtt) platform. Then add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
platform: arwn
```
Currently all temperature, barometer, and wind sensors will be displayed. Support for rain guage sensors will happen in the future.

View File

@ -0,0 +1,41 @@
---
layout: page
title: "Bbox Sensor"
description: "How to integrate Bbox Bandwidth measuring within Home Assistant."
date: 2016-10-22 01:00
sidebar: true
comments: false
sharing: true
footer: true
logo: bbox.png
ha_category: Sensor
ha_release: 0.31
---
The `bbox` platform uses the [Bbox Modem Router](https://fr.wikipedia.org/wiki/Bbox/) from the French Internet provider Bouygues Telecom. Sensors are mainly bandwidth measures.
<p class='note warning'>
Due to third party limitation, the sensors will only be available if Home Assistant and the Bbox are on the same local area network. You can check this by going to 192.168.1.254 with your web browser.
</p>
To add Bbox sensors to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: bbox
monitored_variables:
- down_max_bandwidth
- up_max_bandwidth
- current_down_bandwidth
- current_up_bandwidth
```
Configuration variables:
- **monitored_variables** array (*Required*): Sensors to display in the frontend.
- **down_max_bandwidth**: Maximum bandwidth available for download.
- **up_max_bandwidth**: Maximum bandwidth available for upload.
- **current_down_bandwidth**: Instant measure of the current used bandwidth for download.
- **current_up_bandwidth**: Instant measure of the current used bandwidthfor upload.

View File

@ -15,7 +15,7 @@ ha_release: 0.19
The Fitbit sensor allows you to expose data from [Fitbit](http://fitbit.com) to Home Assistant.
Enable the sensor by adding the following to your configuration:
Enable the sensor by adding the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@ -33,7 +33,7 @@ The unit system that the sensor will use is based on the country you set in your
Configuration variables:
- **monitored_resources** (*Required*): Resource to monitor.
- **monitored_resources** (*Optional*): Resource to monitor. Defaults to `activities/steps`.
Below is the list of resources that you can add to `monitored_resources`. One sensor is exposed for every resource.

View File

@ -0,0 +1,46 @@
---
layout: page
title: "HaveIBeenPwned Sensor"
description: "Instructions how to integrate HaveIBeenPwned sensor into Home Assistant."
date: 2016-09-29 18:00
sidebar: true
comments: false
sharing: true
footer: true
logo: haveibeenpwned.png
ha_category: Sensor
ha_release: 0.31
---
The `haveibeenpwned` sensor platform creates sensors that check for breached email accounts on [haveibeenpwned](https://haveibeenpwned.com).
To enable this sensor, add the following lines to your `configuration.yaml`, it will list every specified email address as a sensor showing
the number of breaches on that email account:
```yaml
# Example configuration.yaml entry using cloud based emoncms
sensor:
platform: haveibeenpwned
email:
- your_email1@domain.com
- your_email2@domain.com
```
## {% linkable_title Breach meta data %}
If one of your email accounts is breached the sensor will display breach meta data. It will list the title of the site where your email
account has been breached as well as the added date of the breach data. This data is displayed in descending order so that the state attribute
`breach 1` will always contain the last known breach for the specific email account, if there are any breaches detected.
<p class='img'>
<img src='/images/components/haveibeenpwned/sensor.png' />
</p>
## {% linkable_title Configuration variables %}
- **email** (*Required*): List of email addresses.
<p class='note warning'>
The sensor will scan all email addresses specified with a 5 second delay between all breach data requests on Home Assistant startup.
After this initial startup scanning, the sensor will only scan one email account per 15 minutes to prevent abuse, and not hammer "the
Have I been Pwned" service, as this breach data almost never changes.
</p>

View File

@ -0,0 +1,45 @@
---
layout: page
title: "Min/max Sensor"
description: "Instructions how to integrate min/max sensors into Home Assistant."
date: 2016-10-13 12:00
sidebar: true
comments: false
sharing: true
footer: true
logo: home-assistant.png
ha_category: Sensor
ha_iot_class: "Local Polling"
ha_release: "0.31"
---
The `min_max` sensor platform is consuming the state from other sensors and determine the minimum, maximum, and the mean of the collected states. The sensor will always show you the highest/lowest value which was received from your all monitored sensors. If you have spikes in your values, it's recommanded filter/equalize your values with a [statistics sensor](/components/sensor.statistics/) first.
It's an alternative to the [template sensor](/components/sensor.template/)'s `value_template:` to get the average of multiple sensors.
```yaml
{% raw %}{{ ((float(states.sensor.kitchen_temperature.state) +
float(states.sensor.living_room_temperature.state) +
float(states.sensor.office_temperature.state)) / 3) | round(2)
}}{% endraw %}
```
To enable the minimum/maximum sensor, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
sensor:
- platform: min_max
entity_ids:
- sensor.kitchen_temperature
- sensor.living_room_temperature
- sensor.office_temperature
```
Configuration variables:
- **entity_ids** (*Required*): At least two entities to monitor
- **type** (*Optional*): The type of sensor. Defaults to `max`.
- **name** (*Optional*): Name of the sensor to use in the frontend.

View File

@ -11,6 +11,15 @@ logo: netatmo.png
ha_category: Weather
---
### {% linkable_title Basic Configuration %}
The `netatmo` sensor platform is consuming the information provided by a [Netatmo](https://www.netatmo.com) device.
To enable the Netatmo sensor, you have to set up [netatmo](/components/netatmo/), this will use discovery to add your sensor.
### {% linkable_title Advanced configuration %}
If you want to select a specific sensor, set discovery to False for [netatmo](/components/netatmo/) and add the following lines to your `configuration.yaml`:
The `netatmo` sensor platform is consuming the information provided by a [Netatmo](https://www.netatmo.com) device.

View File

@ -0,0 +1,63 @@
---
layout: page
title: "Pilight Sensor"
description: "Instructions how to integrate pilight sensors within Home Assistant."
date: 2016-10-08 23:21
sidebar: true
comments: false
sharing: true
footer: true
logo: pilight.png
ha_category: Sensor
ha_release: 0.31
ha_iot_class: depends
---
This `pilight` sensor platform for 433 MHz devices uses a value in the message payload as the sensor value. Unique identifiers (e.g. _uuid_) can be set to distinguish between multile pilight devices. To use a pilight sensor the pilight home assistant hub has to be set up.
To use your sensor via pilight, make sure it is [supported](https://wiki.pilight.org/doku.php/protocols) and add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yml entry
sensor:
- platform: pilight
variable: temperature
payload:
uuid: '0000-b8-27-eb-f447d3'
```
Configuration variables:
- **variable** (*Required*): The variable name in the data stream that defines the sensor value.
- **payload** (*Required*): Message payload identifiers. Only if all identifiers are matched the sensor value is set.
- **name** (*Optional*): Name of the sensor.
- **unit_of_measurement** (*Optional*): Defines the units of measurement of the sensor, if any.
## {% linkable_title Example: Weather station %}
This section shows a real life example how to use values of a weather station.
```yaml
# Example configuration.yml entry
sensor:
- platform: pilight
name: 'Temperature'
variable: 'temperature'
payload:
uuid: 0000-b8-27-eb-f1f72e
unit_of_measurement: '°C'
- platform: pilight
name: 'Humidity'
variable: 'humidity'
payload:
uuid: 0000-b8-27-eb-f1f72e
unit_of_measurement: '%'
- platform: pilight
name: 'Battery'
variable: 'battery'
payload:
uuid: 0000-b8-27-eb-f1f72e
unit_of_measurement: '%'
```

View File

@ -0,0 +1,93 @@
---
layout: page
title: "Scrape Sensor"
description: "Instructions how to integrate Web scrape sensors into Home Assistant."
date: 2016-10-12 09:10
sidebar: true
comments: false
sharing: true
footer: true
logo: home-assistant.png
ha_category: Sensor
ha_release: 0.31
---
The `scrape` sensor platform is scraping information from websites. The sensor loads a HTML page and gives you the option to search and split out a value. As this is not a full-blown web scraper like [scrapy](https://scrapy.org/). It will most likely only works with simple webpage and it can be time-consuming to get the right section.
To enable this sensor, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: scrape
resource: https://home-assistant.io
select: ".current-version h1"
```
Configuration variables:
- **resource** (*Required*): The URL to the website that contains the value.
- **select** (*Required*): Defines the HTML tag to search for. Check Beautifulsoup's [CSS selectors](https://www.crummy.com/software/BeautifulSoup/bs4/doc/#css-selectors) for details.
- **name** (*Optional*): Name of the sensor.
- **unit_of_measurement** (*Optional*): Defines the units of measurement of the sensor, if any.
## {% linkable_title Examples %}
In this section you find some real life examples of how to use this sensor. There is also a [Jupyter notebook](http://nbviewer.jupyter.org/github/home-assistant/home-assistant-notebooks/blob/master/web-scraping.ipynb) available for this example to give you a bit more insight.
### {% linkable_title Home Assistant %}
The current release Home Assistant is published on [https://home-assistant.io/](https://home-assistant.io/)
```yaml
sensor:
# Example configuration.yaml entry
- platform: scrape
resource: https://home-assistant.io
name: Release
select: ".current-version h1"
value_template: '{% raw %}{{ value.split(":")[1] }}{% endraw %}'
```
### {% linkable_title Available implementations %}
Get the counter for all our implementations from the [Component overview](/components/) page.
```yaml
# Example configuration.yaml entry
sensor:
- platform: scrape
resource: https://home-assistant.io/components/
name: Home Assistant impl.
select: 'a[href="#all"]'
value_template: '{% raw %}{{ value.split("(")[1].split(")")[0] }}{% endraw %}'
```
### {% linkable_title Get a value out of a tag %}
The German [Federal Office for Radiation protection (Bundesamt für Strahlenschutz)](http://www.bfs.de/) is publishing various details about optical radiation including an UV index. This example is getting the index for a region in Germany.
```yaml
sensor:
# Example configuration.yaml entry
- platform: scrape
resource: http://www.bfs.de/DE/themen/opt/uv/uv-index/prognose/prognose_node.html
name: Coast Ostsee
select: 'p:nth-of-type(19)'
unit_of_measurement: 'UV Index'
```
### {% linkable_title IFTTT status %}
If you make heavy use of the [IFTTT](/components/ifttt/) web service for your automations and are curious about the [status of IFTTT](http://status.ifttt.com/) then you can display the current state of IFTTT in your frontend.
```yaml
sensor:
# Example configuration.yaml entry
- platform: scrape
resource: http://status.ifttt.com/
name: IFTTT status
select: '.component-status'
```

View File

@ -55,6 +55,7 @@ sensor:
- precip_today_metric
- precip_today_string
- solarradiation
- alerts
```
@ -89,6 +90,7 @@ Configuration variables:
- **precip_today_metric**: Total precipitation in metric units
- **precip_today_string**: Text summary of precipitation today
- **solarradiation**: Current levels of solar radiation
- **alerts**: Current severe weather advisories
Additional details about the API are available [here](https://www.wunderground.com/weather/api/d/docs).

View File

@ -34,9 +34,9 @@ Configuration variables:
- **name** (*Required*): The name you would like to give the sensor in Home Assistant.
- **type** (*Required*): Set to `analog` or `temperature`.
- **pin** (*Required*): The number identifying which pin to sample
- **pin** (*Optional*): The number identifying which pin to sample.
- **address** (*Optional*): The long 64 bit address of the remote ZigBee device whose pin you would like to sample. Do not include this variable if you want to sample the local ZigBee device's pins.
- **max_volts** (*Optional*): The maximum voltage which the input pin is able to read. Defaults to `1.2`
- **max_volts** (*Optional*): The maximum voltage which the input pin is able to read. Defaults to `1.2`.
## {% linkable_title Examples %}

View File

@ -0,0 +1,27 @@
---
layout: page
title: "ZoneMinder Sensor"
description: "Instructions how to integrate ZoneMinder sensors within Home Assistant."
date: 2016-10-13 22:57
sidebar: true
comments: false
sharing: true
footer: true
logo: zoneminder.png
ha_category: Sensor
---
The `ZoneMinder` sensor platform let you monitor the current state of your zoneminder install including the number of events and the current state of the cameras.
<p class='note'>
You must have the [ZoneMinder component](/components/zoneminder/) configured to use those sensors.
</p>
To set it up, add the following information to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
platform: zoneminder
```

View File

@ -10,6 +10,7 @@ footer: true
logo: arduino.png
ha_category: DIY
ha_release: pre 0.7
ha_iot_class: "Local Polling"
---
@ -24,21 +25,20 @@ switch:
pins:
11:
name: Fan Office
type: digital
12:
name: Light Desk
type: digital
default: on
initial: true
negate: true
```
Configuration variables:
- **pins** (*Required*): Array of pins to use. The number corresponds with the pin numbering schema of your board.
- **name**: Name that will be used in the frontend for the pin.
- **type**: The type of the pin. At the moment only 'digital' is supported.
- **default**: The initial value for this port.
- **negate**: If this pin should be inverted.
- **pins** array (*Required*): List of pins to use.
- **[number]** (*Required*): The pin number that corresponds with the pin numbering schema of your board.
- **name** (*Required*): Name that will be used in the frontend for the pin.
- **initial** (*Optional*): The initial value for this port. Defaults to `False` .
- **negate** (*Optional*): If this pin should be inverted. Defaults to `False`.
The digital pins are numbered from 0 to 13. The available pins are 2 till 13. For testing purposes you can use pin 13 because with that pin you can control the internal LED.
The digital pins are numbered from 0 to 13 on a Arduino UNO. The available pins are 2 till 13. For testing purposes you can use pin 13 because with that pin you can control the internal LED.

View File

@ -0,0 +1,36 @@
---
layout: page
title: "Neato Robotics Switch"
description: "Instructions how to integrate a Neato Botvac Connected switch within Home Assistant."
date: 2016-10-19 17:10
sidebar: true
comments: false
sharing: true
footer: true
logo: neato.png
ha_category: Switch
ha_release: 0.31
---
The `neato` switch platform allows you to control your [Neato Botvac Connected](https://www.neatorobotics.com/robot-vacuum/botvac-connected-series/botvac-connected/).
This will automatically add a switch for each Botvac Connected that you have. The switch will start a full home cleaning when turned ON and return the robot to base when turned OFF.
To enable this switch in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
switch:
- platform: neato
username: USERNAME
password: PASSWORD
```
Configuration variables:
- **username** (*Required*): Username for the Neato account.
- **password** (*Required*): Password for the Neato account.
<p class='note'>
The Home Assistant Neato platform has only be tested with a Botvac Connected. There is no support for the Botvac D3 Connected and Botvac D5 Connected robots at this time.
</p>

View File

@ -0,0 +1,40 @@
---
layout: page
title: "ZoneMinder Switch"
description: "Instructions how to integrate ZoneMinder switches into Home Assistant."
date: 2016-10-13 22:57
sidebar: true
comments: false
sharing: true
footer: true
logo: zoneminder.png
ha_category: Switch
---
The `zoneminder` switch platform allows you to toggle the current function of cameras attached to your ZoneMinder instance.
<p class='note'>
You must have the [ZoneMinder component](/components/zoneminder/) configured to use this.
</p>
To enable this switch, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
switch:
- platform: zoneminder
command_on: Modect
command_off: Monitor
```
Configuration variables:
- **command_on** (*Required*): The function you want the camera to run when turned on.
- **command_off** (*Required*): The function you want the camera to run when turned off.
<p class='note'>
The default functions installed by ZoneMinder are: None, Monitor, Modect, Record, Mocord, Nodect.
</p>

View File

@ -11,15 +11,20 @@ logo: home-assistant.png
ha_category: Other
---
The `updater` component will check for new releases at startup and everyday at noon and midnight. It will show a badge in the frontend if a new version has been detected.
The `updater` component will check daily for new releases. It will show a badge in the frontend if a new version was found.
The updater component will also collect basic information about Home Assistant and its environment. The information includes the current Home Assistant version, the timezone, Python version and operating system infomation. No identifiable information (i.e. IP address, GPS coordinates, etc.) will ever be collected. If you are concerned about your privacy, you are welcome to scrutinize the Python [source code](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/updater.py#L91).
To integrate this into Home Assistant, add the following section to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
updater:
```
If you choose not to share any information when checking for updates, you can add `reporting: False`.
### {% linkable_title Notification %}
For an added bonus, an automation component can be created to send a message with a notifier when that state of this component's entity changes.
```yaml
@ -34,3 +39,4 @@ automation:
data:
message: 'Update for Home Assistant is available.'
```

View File

@ -24,28 +24,16 @@ There is currently support for the following device types within Home Assistant:
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
# Example configuration.yaml entry
zigbee:
```
- **device** (*Optional*): The serial port to which the local ZigBee device is connected. Defaults to `/dev/ttyUSB0`
- **baud** (*Optional*): The baud rate at which to communicate with the local ZigBee device. Defaults to `9600`
To find the possible serial port names of your device, run:
```bash
@ -55,3 +43,12 @@ $ ls /dev/ttyUSB*
<p class='note'>
The port may also appear as /dev/ttyACM* if you're communicating with the ZigBee device through an Arduino.
</p>
### {% linkable_title Example %}
```yaml
# Example configuration.yaml entry
zigbee:
device: /dev/ttyACM1
baud: 115200
```

View File

@ -0,0 +1,31 @@
---
layout: page
title: "ZoneMinder"
description: "Instructions how to integrate ZoneMinder into Home Assistant."
date: 2016-10-13 22:57
sidebar: true
comments: false
sharing: true
footer: true
logo: zoneminder.png
ha_category: Camera
featured: false
---
The ZoneMinder component is the main component to integrate all the sensors and switches for controlling your ZoneMinder instance.
```yaml
# Example configuration.yaml entry
zoneminder:
host: ZM_HOST
path: ZM_PATH
username: USERNAME
password: PASSWORD
```
Configuration variables:
- **host** (*Required*): Your ZoneMinder server.
- **path** (*Optional*): Path to your ZoneMinder install (default: /zm/)
- **username** (*Optional*): Your ZoneMinder username.
- **password** (*Optional*): Your ZoneMinder password.

View File

@ -87,6 +87,6 @@ Example of the new views in the frontend. <a href='/components/group/'>Learn mor
[@w1ll1am23]: https://github.com/w1ll1am23
[@zmrow]: https://github.com/zmrow
### Backwards incompatible changes
### {% linkable_title Backwards incompatible changes %}
- Nest config has moved from thermostat to the [Nest component][Nest].
- Entity IDs for Z-Wave devices are now generated in a deterministic way causing all IDs to change starting this release. This is a one time change.
- Entity IDs for Z-Wave devices are now generated in a deterministic way causing all IDs to change starting this release. This is a one time change. [(Changed again in 0.31)](/blog/2016/10/22/flash-briefing-updater-hacktoberfest/)

View File

@ -0,0 +1,281 @@
---
layout: post
title: "0.31: Reading you the news, some serious business, spooky hackery and a breaking Z-Wave change"
description: "Alexa Flash Briefing API support, Markdown in persistent notifications, a new updater component, Hacktoberfest and breaking Z-Wave changes."
date: 2016-10-22 13:00:00 -0700
date_formatted: "October 22, 2016"
author: Robbie Trencheny
author_twitter: robbie
comments: true
categories: Release-Notes
---
Hello again friend,
How are you? Having a good day? We sure are. If you aren't having a good day, this might cheer you up...
Every other weekend around here gets a little hectic leading to a big sigh of relief as we release a new version of Home Assistant to the world. And this time is no different. Our developer community has once again built us a beautiful new release with lots of new features and improvements. We hope you like it.
One last thing before we get going though, I should warn you... [@balloob] got a bit lazy this week and let me ([@robbiet480]) step up to the plate again to write the blog post and do the release. I guess I didn't do such a bad job in [0.27][zero-two-seven-release]. You'll never know what surprises I have in store. Now that i've got all that stuff out of the way, let's get started...
## {% linkable_title Stats Update %}
Sadly, no big amazing stats to update you with this time, but we did recently pass 7,000 commits! This release featured submissions from 45 contributors. Hopefully with the new updater component we will be able to give you some really good stats in the 0.32 blog post.
## {% linkable_title Hacktoberfest %}
![Hacktoberfest logo][logo]
October means Hacktoberfest time and our community has really come through with some excellent improvements and additions. As of this writing, we have 194 merged and 41 open pull requests to the [home-assistant repository][hacktoberfest-ha-prs] and 209 merged/28 open pull requests submitted to the [home-assistant.github.io repository][hacktoberfest-site-prs]. If you want to get in on the fun check out our [Hacktoberfest][hacktoberfest-blog] blog post or the [Hacktoberfest website][hacktoberfest-website]. You get an awesome t-shirt for free if you have 4 pull requests merged in the month of October! We even have tasks that a non-developer can easily accomplish with a tiny bit of work. Better hurry up though, only 9 days left and most of the easy tasks are gone!
## {% linkable_title ⚠️ A greatly improved updater component (Please read this!) ⚠️ %}
This release includes an update to our [updater] component. The responsibility of the updater component is to check if a new version is available and notify the user if this is the case.
It used to be that this component would check with [PyPi] (the Python package manager) to see if a new update was available. This had a couple of problems:
1. We are unable to do a slow rollout
2. We are unable to show the user extra information (like a link to a changelog or the release date)
3. We are unable to warn users for critical security updates
So to work around these problems, we decided to start hosting the version check service ourselves. Since we had to get some infrastructure spun up anyway, we figured we would take it a step further. Which leads me to this bit of the update (the most important part):
### {% linkable_title What you need to know (the important bit!) %}
Remember how I mentioned that up there in the title that there is some serious business in this release? Well, we also added some basic analytics to the updater component which get sent to the server and stored so that we get a better idea of our user base.
Each Home Assistant instance running the updater component will generate a [unique ID][UUID] (based on UUIDv4) that will be used for the updater to be able to differentiate between instances. This UUID will be stored in your config directory in a file called `.uuid`.
#### Opting out
There are two ways to opt-out. The first way is by using the new `opt_out` option for the updater. This way the updater will continue to check for updates, but no information about your system will be shared with us.
```yaml
updater:
reporting: no
```
You can also disable the updater component entirely by removing `updater:` from your `configuration.yaml` although **we would not suggest you do this** as you would miss any critical updates.
Finally, you can also reset your unique identifier by deleting the `.uuid` file and restarting Home Assistant.
#### Data stored on the Home Assistant update server
Here is what my production Home Assistant instance looks like from the server side:
| Name | Description | Example | Data Source |
|-----------------------|--------------------------------------------|------------------------------------|----------------|
| `arch` | CPU Architecture | `x86_64` | Local Instance |
| `distribution` | Linux Distribution name (only Linux) | `Ubuntu` | Local Instance |
| `docker` | True if running inside Docker | `false` | Local Instance |
| `first_seen_datetime` | First time instance ID was submitted | `2016-10-22T19:56:03.542Z` | Update Server |
| `geo_city` | GeoIP determined city | `Oakland` | Update Server |
| `geo_country_code` | GeoIP determined country code | `US` | Update Server |
| `geo_country_name` | GeoIP determined country name | `United States` | Update Server |
| `geo_latitude` | GeoIP determined latitude | `37.8047` | Update Server |
| `geo_longitude` | GeoIP determined longitude | `-122.2124` | Update Server |
| `geo_metro_code` | GeoIP determined metro code | `807` | Update Server |
| `geo_region_code` | GeoIP determined region code | `CA` | Update Server |
| `geo_region_name` | GeoIP determined region name | `California` | Update Server |
| `geo_time_zone` | GeoIP determined time zone | `America/Los_Angeles` | Update Server |
| `geo_zip_code` | GeoIP determined zip code | `94602` | Update Server |
| `last_seen_datetime` | Most recent time instance ID was submitted | `2016-10-22T19:56:03.542Z` | Update Server |
| `os_name` | Operating system name | `Darwin` | Local Instance |
| `os_version` | Operating system version | `10.12` | Local Instance |
| `python_version` | Python version | `3.5.2` | Local Instance |
| `timezone` | Timezone | `America/Los_Angeles` | Local Instance |
| `user_agent` | User agent used to submit analytics | `python-requests/2.11.1` | Local Instance |
| `uuid` | Unique identifier | `10321ee6094d4a2ebb5ed55c675d5f5e` | Local Instance |
| `version` | Home Assistant version | `0.31.0` | Local Instance |
| `virtualenv` | True if running inside virtualenv | `true` | Local Instance |
In addition to the above collected data, the server will also use your IP address to do a geographic IP address lookup to determine a general geographic area that your address is located in. To be extremely, extremely clear about this bit: __The Home Assistant updater does not: store your IP address in a database and also does not submit the location information from your `configuration.yaml`.__ Our tests show that at best, we get 4 digits of accuracy on your IP address location which is a 5 mile radius of your actual IP location, assuming that it is even correct in the first place (geo IP look ups are very hit or miss). Here's what the accuracy looks like for my data above: ![Robbie's GeoIP accuracy level](/images/blog/2016-10-flash-briefing-updater-hacktoberfest/map.png)
The server also adds two timestamps to the data: the original date your instance UUID was first seen and the timestamp of the last time we have seen your instance.
This data is held in the highest security. The update system runs in a secured Amazon Web Services account owned by me ([@robbiet480]). I personally have 5 years of experience with complex AWS deployments and have an extensive security background. I have audited the entire system and made sure to take every step to protect the data, including limiting who has access (just [@balloob] and myself). While not directly personally identifiable we absolutely understand some users hesistance to giving this information out. Please understand that we are only collecting this information to better understand our user base to provide better long term support and feature development then is currently possible.
We currently have no plans to publicly expose any of this information. If we did do such a thing in the future we would of course notify you in advance. It must also be stated that we will never sell or allow the use of this information for non-Home Assistant purposes.
We thank you for understanding why we are collecting this data and hope that you leave the feature enabled but fully understand if you feel uncomfortable with this.
Now, back to the fun stuff...
## {% linkable_title Good evening. I'm Ron Burgundy and here's what happening in your world tonight. %}
Home Assistant got a crazy idea recently that it couldn't do enough already and wanted to challenge itself even more. I really don't understand how it came up with this kooky idea, but it now thinks that its newest hobby should be a minor career in journalism.
0.31 adds support for the brand spanking new [Alexa Flash Briefing API](https://developer.amazon.com/alexa-skills-kit/flash-briefing), allowing you to get updates from Home Assistant anytime you ask Alexa to read your flash briefing. What's the use case you ask? Well, now when I wake up in the morning and get my flash briefing, Home Assistant adds this to the end of it for me:
> Drive time with traffic is 35 minutes. There is an UberPOOL that will cost $11.52, estimated to be 2 minutes away, for a total of 37 minutes. BART is currently estimated to take 29 minutes. You should take BART, as it is estimated to be faster by 8 minutes.
Now I know how to best get to [my real job][runway] (no, Home Assistant is _not_ my real job, it does seem like it sometimes though) every morning. Obviously not the best home automation example, but I think you get the idea. I could see this being used to tell you any major events that happened in your home overnight or reading you your hyperlocal weather report. Thanks to the audio support you could even replace all of the default Alexa Flash Briefing sources with your own news feeds. Home Assistant supports both text and audio content as well as displaying data in the Alexa app. I also want to point out that unlike the existing Skill integration, the Flash Briefing API does _not_ require HTTPS (_but you should still be using HTTPS if possible_). For more information, check out the new [docs][flash-briefing-docs].
![You stay classy, San Diego. (It's funny, because balloob lives in San Diego))](/images/blog/2016-10-flash-briefing-updater-hacktoberfest/stay-classy.jpg)
## {% linkable_title Major breaking Z-Wave changes ahead %}
A rather nasty Z-Wave [issue][z-wave-issue] was discovered recently by [@lukas-hetzenecker]. There was a somewhat large chance that if you had multiple of the same model Z-Wave device they may both try to use the same entity IDs. To fix the issue the internal Z-Wave index is now appended to the end of all Z-Wave entity IDs.
What this means for all you Z-Wave users is that you will need to update your configurations to reflect the change. I personally have quite a few (17) Z-Wave devices and went through the process this week. Here's what I had to do:
- Update customizations
- Update groups
- Update my `zwave.customize` section
- Update my Alexa skills that used old entity IDs
- Because I use `emulated_hue` with Alexa and `emulated_hue` uses the entity ID as a unique identifier I also had to remove all Z-Wave devices from Alexa and re-add them.
Your todo list may be a little different from mine, I just wanted to outline the steps I took to give you an idea of what you need to think about. It's not a very hard process, especially when using global find and replace in Sublime Text but did take me about 20 minutes to complete.
This is super annoying, I know, especially since we had said in [0.12][zero-one-two-release] that Z-Wave IDs should hopefully never change again, but we are now forced to eat those words. I will state again that Z-Wave IDs shouldn't change in the future but obviously we see how that went. To sum up on this section... sorry but it had to happen.
## {% linkable_title All changes %}
- [Updater] component ([@infamy], [@robbiet480], [@kellerza])
- Continue to setup other platforms when 1 platform config is invalid ([@kellerza])
- Create [persistent notifications][pers-notify] when a platform contains invalid config ([@kellerza])
- Logbook: Allow [filtering] domains and entities to be shown ([@wokar])
- HTTP: Change `approved_ips` from string to CIDR validation ([@mweinelt])
- Persistent Notifications: Allow using [markdown][pers-notify] ([@justweb1])
- Netatmo: Add [discovery][netatmo-discovery] support ([@jabesq])
- Netatmo Welcome camera: Add [binary sensor][netatmo-bin] ([@jabesq])
- Support added for [HaveIBeenPwned] ([@joyrider3774])
- Device tracker: `known_devices.yaml` reading and writing tweaks and fixes ([@kellerza])
- Fix climate platforms showing the wrong temperature unit ([@rcloran])
- Lots of voluptuous love ([@fabaff])
- Ensure proper attribution for weather platforms ([@fabaff])
- Fix Telegram in Docker ([@jeanregisser])
- Support recursive config inclusions in YAML ([@lwis])
- Camera: [Synology] SS cameras now supported ([@jgriff2])
- History: Allow filtering domains and entities to be shown ([@wokar])
- Media Player - Squeezebox: Now able to show artist and album ([@ih8gates])
- Alexa: Flash Briefing skill support added ([@robbiet480])
- Device Tracker: Add support for Bbox Modem Router ([@HydrelioxGithub])
- Sensor: Add support for Bbox Modem Router ([@HydrelioxGithub])
- Input select: Services added to pick next and prev option ([@persandstrom])
- Sensor: [ARWN] now supported ([@sdague])
- Pushbullet: Push an URL note if an url is provided inside data ([@jabesq])
- Z-Wave: Allow certain devices to be not added to Home Assistant ([@lukas-hetzenecker])
- New support for [Zoneminder] added ([@Khabi])
- Weather: Allow tracking severe weather alerts with [WUnderground] ([@tchellomello])
- Sensor: New support added to track [min/max/mean][min] ([@fabaff])
- Convert EntityComponent to be async ([@pvizeli], [@balloob])
- Z-Wave: Add assocation service ([@turbokongen])
- Frontend - Services dev tool: persist state and tweak UI ([@justweb1])
- Sensor: Support added for [scraping][scrape] websites ([@fabaff])
- Clean up of tests ([@capellini])
- New `fail` filter added to templates to raise on UndefinedError ([@jaharkes])
- Support added for [Emoncms history][emoncms] ([@joyrider3774])
- Support for [Apple Push Notifications Service][APNS] ([@sam-io])
- Thermostat: Netatmo now supported ([@gieljnssns])
- Alarm control panel: [Concord232] now supported ([@JasonCarter80])
- Notify: [Matrix] support added ([@mweinelt])
- Device tracker - nmap: Allow specifying multiple inputs for [nmap] ([@hcooper])
- Device Tracker - snmp: SNMPv3 now supported ([@T3m3z])
- Notify: [Telstra] SMS now supported ([@nvella])
- Camera: [Verisure] now supported ([@turbokongen])
- Support added for [Neato] Connected Robot ([@jabesq])
- Media player: More options for [Yamaha] AVR ([@ehagan])
- Sensor: Support for [Pilight] sensor ([@DavidLP])
- iOS support ([@robbiet480])
- Minor features and bug fixes by [@mtl010957], [@molobrakos], [@flyte], [@fabaff], [@phardy], [@sander76], [@T3m3z], [@c-w], [@balloob], [@robbiet480], [@StaticCube], [@vittoriom], [@hartmms], [@kirichkov], [@mezz64], [@ishults], [@Danielhiversen] and [@tchellomello].
## {% linkable_title Breaking changes %}
- The [HTTP] component now takes a different format for authenticating IPs
- Config format has changed for [Proximity]
- The Z-Wave entity ID change mentioned above
## {% linkable_title If you need help... %}
...don't hesitate to use our [Forum](https://community.home-assistant.io/) or join us for a little [chat](https://gitter.im/home-assistant/home-assistant). The release notes have comments enabled but it's preferred if you the former communication channels. Thanks.
## {% linkable_title Until next time %}
Thanks for reading all of the above, especially since this week was a pretty long post. We should be back with a new post around November 5th announcing the arrival of 0.32.
-- Robbie
[@balloob]: https://github.com/balloob
[@capellini]: https://github.com/capellini
[@c-w]: https://github.com/c-w
[@Danielhiversen]: https://github.com/Danielhiversen
[@DavidLP]: https://github.com/DavidLP
[@ehagan]: https://github.com/ehagan
[@fabaff]: https://github.com/fabaff
[@flyte]: https://github.com/flyte
[@gieljnssns]: https://github.com/gieljnssns
[@hartmms]: https://github.com/hartmms
[@hcooper]: https://github.com/hcooper
[@HydrelioxGithub]: https://github.com/HydrelioxGithub
[@ih8gates]: https://github.com/ih8gates
[@infamy]: https://github.com/infamy
[@ishults]: https://github.com/ishults
[@jabesq]: https://github.com/jabesq
[@jaharkes]: https://github.com/jaharkes
[@JasonCarter80]: https://github.com/JasonCarter80
[@jeanregisser]: https://github.com/jeanregisser
[@jgriff2]: https://github.com/jgriff2
[@joyrider3774]: https://github.com/joyrider3774
[@justweb1]: https://github.com/justweb1
[@kellerza]: https://github.com/kellerza
[@Khabi]: https://github.com/Khabi
[@kirichkov]: https://github.com/kirichkov
[@lukas-hetzenecker]: https://github.com/lukas-hetzenecker
[@lwis]: https://github.com/lwis
[@mezz64]: https://github.com/mezz64
[@molobrakos]: https://github.com/molobrakos
[@mtl010957]: https://github.com/mtl010957
[@mweinelt]: https://github.com/mweinelt
[@Nixon506E]: https://github.com/Nixon506E
[@nvella]: https://github.com/nvella
[@persandstrom]: https://github.com/persandstrom
[@phardy]: https://github.com/phardy
[@pvizeli]: https://github.com/pvizeli
[@rcloran]: https://github.com/rcloran
[@robbiet480]: https://github.com/robbiet480
[@sam-io]: https://github.com/sam-io
[@sander76]: https://github.com/sander76
[@sdague]: https://github.com/sdague
[@StaticCube]: https://github.com/StaticCube
[@T3m3z]: https://github.com/T3m3z
[@tchellomello]: https://github.com/tchellomello
[@turbokongen]: https://github.com/turbokongen
[@vittoriom]: https://github.com/vittoriom
[@wokar]: https://github.com/wokar
[APNS]: https://home-assistant.io/components/notify.apns/
[ARWN]: https://home-assistant.io/components/sensor.arwn/
[Concord232]: https://home-assistant.io/components/alarm_control_panel.concord232/
[HTTP]: https://home-assistant.io/components/http/
[HaveIBeenPwned]: https://home-assistant.io/components/sensor.haveibeenpwned/
[Matrix]: https://home-assistant.io//components/notify.matrix/
[Neato]: https://home-assistant.io/components/switch.neato/
[Pilight]: https://home-assistant.io/components/sensor.pilight/
[Proximity]: https://home-assistant.io/components/proximity/
[PyPi]: https://pypi.python.org/pypi
[Synology]: https://home-assistant.io/components/camera.synology/
[Telstra]: https://home-assistant.io/components/notify.telstra/
[UUID]: https://en.wikipedia.org/wiki/Universally_unique_identifier
[Verisure]: https://home-assistant.io/components/camera.verisure/
[WUnderground]: https://home-assistant.io/components/sensor.wunderground/
[Yamaha]: https://home-assistant.io/components/media_player.yamaha/
[Zoneminder]: https://home-assistant.io/components/zoneminder/
[emoncms]: https://home-assistant.io//components/emoncms_history/
[filtering]: https://home-assistant.io/components/logbook/
[flash-briefing-docs]: https://home-assistant.io/components/alexa/
[hacktoberfest-blog]: /blog/2016/10/02/hacktoberfest/
[hacktoberfest-ha-prs]: https://github.com/home-assistant/home-assistant/labels/Hacktoberfest
[hacktoberfest-site-prs]: https://github.com/home-assistant/home-assistant.github.io/labels/Hacktoberfest
[hacktoberfest-website]: https://hacktoberfest.digitalocean.com/
[logo]: /images/blog/2016-10-hacktoberfest/hacktoberfest.png
[min]: https://home-assistant.io/components/sensor.min_max/
[netatmo-bin]: https://home-assistant.io/components/binary_sensor.netatmo/
[netatmo-discovery]: https://home-assistant.io/components/netatmo/
[nmap]: https://home-assistant.io/components/device_tracker.nmap_tracker/
[pers-notify]: https://home-assistant.io/components/persistent_notification/
[runway]: https://runway.is
[scrape]: https://home-assistant.io/components/sensor.scrape/
[updater]: https://home-assistant.io/components/updater/
[z-wave-issue]: https://github.com/home-assistant/home-assistant/pull/3759
[zero-one-two-release]: /blog/2016/01/30/insteon-lifx-twitter-and-zigbee/#backwards-incompatible-changes
[zero-two-seven-release]: /blog/2016/08/28/notifications-hue-fake-unification/
[twitter]: https://twitter.com/home_assistant
[robbie-twitter]: https://twitter.com/robbie

View File

@ -105,7 +105,7 @@ Let's look at the `device_tracker.yaml` file from our example:
consider_home: 120
```
This small example illustrates how the "split" files work. In this case, we start with a "comment block" identifying the file followed by two (2) device tracker entries (`owntracks` and `nmap`). These files follow ["style 1"](/getting-started/devices/#style-2-list-each-device-separately) that is to say a fully left aligned leading entry (`- platform: owntracks`) followed by the parameter entries indented two (2) spaces.
This small example illustrates how the "split" files work. In this case, we start with a "comment block" identifying the file followed by two (2) device tracker entries (`owntracks` and `nmap`). These files follow ["style 1"](/getting-started/devices/#style-2-list-each-device-separately) that is to say a fully left aligned leading entry (`- platform: owntracks`) followed by the parameter entries indented two (2) spaces.
This (large) sensor configuration gives us another example:
@ -170,6 +170,23 @@ We offer four advanced options to include whole directories at once.
- `!include_dir_merge_list` will return the content of a directory as a list by merging all files (which should contain a list) into 1 big list.
- `!include_dir_merge_named` will return the content of a directory as a dictionary by loading each file and merging it into 1 big dictionary.
These work recursively. As an example using `!include_dir_* automation`, will include all 6 files shown below:
```bash
.
└── .homeassistant
├── automation
│   ├── lights
│   │   ├── turn_light_off_bedroom.yaml
│   │   ├── turn_light_off_lounge.yaml
│   │   ├── turn_light_on_bedroom.yaml
│   │   └── turn_light_on_lounge.yaml
│   ├── say_hello.yaml
│   └── sensors
│   └── react.yaml
└── configuration.yaml (not included)
```
#### {% linkable_title Example: `!include_dir_list` %}
`configuration.yaml`
@ -350,7 +367,6 @@ automation: !include_dir_merge_list automation/
action:
service: light.turn_on
entity_id: light.entryway
- alias: Automation 2
trigger:
platform: state

View File

@ -0,0 +1,52 @@
---
layout: page
title: "Details about the updater"
description: "Details what the updater component is reporting about your Home Assistant instance."
date: 2016-10-22 08:00
sidebar: false
comments: false
sharing: true
footer: true
ha_category: Infrastructure
---
Starting with 0.31 the [updater component](/components/updater/) sends an optional report about Home Assistant instance.
We are only collecting this information to better understand our user base to provide better long term support and feature development.
| Name | Description | Example | Data Source |
|-----------------------|--------------------------------------------|------------------------------------|----------------|
| `arch` | CPU Architecture | `x86_64` | Local Instance |
| `distribution` | Linux Distribution name (only Linux) | `Ubuntu` | Local Instance |
| `docker` | True if running inside Docker | `false` | Local Instance |
| `first_seen_datetime` | First time instance ID was submitted | `2016-10-22T19:56:03.542Z` | Update Server |
| `geo_city` | GeoIP determined city | `Oakland` | Update Server |
| `geo_country_code` | GeoIP determined country code | `US` | Update Server |
| `geo_country_name` | GeoIP determined country name | `United States` | Update Server |
| `geo_latitude` | GeoIP determined latitude | `37.8047` | Update Server |
| `geo_longitude` | GeoIP determined longitude | `-122.2124` | Update Server |
| `geo_metro_code` | GeoIP determined metro code | `807` | Update Server |
| `geo_region_code` | GeoIP determined region code | `CA` | Update Server |
| `geo_region_name` | GeoIP determined region name | `California` | Update Server |
| `geo_time_zone` | GeoIP determined time zone | `America/Los_Angeles` | Update Server |
| `geo_zip_code` | GeoIP determined zip code | `94602` | Update Server |
| `last_seen_datetime` | Most recent time instance ID was submitted | `2016-10-22T19:56:03.542Z` | Update Server |
| `os_name` | Operating system name | `Darwin` | Local Instance |
| `os_version` | Operating system version | `10.12` | Local Instance |
| `python_version` | Python version | `3.5.2` | Local Instance |
| `timezone` | Timezone | `America/Los_Angeles` | Local Instance |
| `user_agent` | User agent used to submit analytics | `python-requests/2.11.1` | Local Instance |
| `uuid` | Unique identifier | `10321ee6094d4a2ebb5ed55c675d5f5e` | Local Instance |
| `version` | Home Assistant version | `0.31.0` | Local Instance |
| `virtualenv` | True if running inside virtualenv | `true` | Local Instance |
In addition to the above collected data, the server will also use your IP address to do a geographic IP address lookup to determine a general geographic area that your address is located in. To be extremely, extremely clear about this bit: __The Home Assistant updater does not: store your IP address in a database and also does not submit the location information from your `configuration.yaml`.__
Our tests showed that at best, we get 4 digits of accuracy on your IP address location which is a 5 mile radius of your actual IP location, assuming that it is even correct in the first place (geo IP lookups are very hit or miss).
The server also adds two timestamps to the data:
- the original date your instance UUID was first seen
- the timestamp of the last time we have seen your instance
There are currently no plans to publicly expose any of this information. If we did do such a thing in the future we would of course notify you in advance. It must also be stated that we will never sell or allow the use of this information for non-Home Assistant purposes.

View File

@ -14,8 +14,8 @@ Before we dive into the Home Assistant architecture, let's get a clear overview
For more information about each part in this overview, <a href='/blog/2014/12/26/home-control-home-automation-and-the-smart-home/'>check out our blog</a>. Here's the tl;dr version of the blog:
* Home Control is responsible for collecting information and controlling devices.
* Home Automation triggers commands based on user configurations.
* Smart Home triggers commands based on previous behavior.
* Home Automation triggers command based on user configurations.
* Smart Home triggers commands based on previous behaviour.
<p class='img'>
<a href='{{site_root}}/images/architecture/home_automation_landscape.png' name='landscape'>

View File

@ -19,7 +19,7 @@ Home Assistant has a discovery service running in the background to discover new
Device discovery for Home Assistant has been extracted into an external library called [NetDisco](https://github.com/home-assistant/netdisco). This library is integrated using [the `discovery` component](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/discovery.py) and scans the network in intervals for uPnP and zeroconf/mDNS services.
To have your device be discovered, you will have to extend the NetDisco library to be able to find your device. This is done by adding a new discoverable. [See the repository for examples of existing discoverables.](https://github.com/home-assistant/netdisco/tree/master/netdisco/discoverables)
To have your device be discovered, you will have to extend the NetDisco library to be able to find your device. This is done by adding a new discoverable. [See the repository for examples of existing discoverable.](https://github.com/home-assistant/netdisco/tree/master/netdisco/discoverables)
### {% linkable_title Listening to `SERVICE_DISCOVERED` events %}

View File

@ -73,6 +73,7 @@ This page contains a list of people who have contributed in one way or another t
- [devdelay](https://github.com/devdelay)
- [Edwin Smulders](https://github.com/Dutchy-)
- [Ellis Percival](https://github.com/flyte)
- [Eric Hagan](https://github.com/ehagan)
- [Eric Rolf](https://github.com/xrolfex)
- [ettisan](https://github.com/ettisan)
- [Fabian Affolter](https://github.com/fabaff)
@ -86,6 +87,7 @@ This page contains a list of people who have contributed in one way or another t
- [Fredrik Lindqvist](https://github.com/Landrash)
- [GadgetReactor](https://github.com/GadgetReactor)
- [Geoff Norton](https://github.com/kangaroo)
- [Giel Janssens](https://github.com/gieljnssns)
- [goir](https://github.com/goir)
- [Greg Dowling](https://github.com/pavoni)
- [gross1989](https://github.com/gross1989)
@ -96,6 +98,7 @@ This page contains a list of people who have contributed in one way or another t
- [happyleavesaoc](https://github.com/happyleavesaoc)
- [Harald Nagel](https://github.com/haraldnagel)
- [HBDK](https://github.com/HBDK)
- [hcooper](https://github.com/hcooper)
- [Heathbar](https://github.com/heathbar)
- [Heiko Rothe](https://github.com/mKeRix)
- [Hernán](https://github.com/hmronline)
@ -110,11 +113,14 @@ This page contains a list of people who have contributed in one way or another t
- [Jan Harkes](https://github.com/jaharkes)
- [Jan-Preben Mossin](https://github.com/jpmossin)
- [Jaret Stezelberger](https://github.com/DesignFirst)
- [Jason Carter](https://github.com/JasonCarter80)
- [Jean-Philippe Bouillot](https://github.com/Jypy)
- [Jean Regisser](https://github.com/jeanregisser)
- [Jeffrey Lin](https://github.com/linjef/)
- [Jeffrey Tang](https://github.com/Qrtn)
- [Jeff Schroeder](https://github.com/SEJeff)
- [Jesse Newland](https://github.com/jnewland)
- [jgriff2](https://github.com/jgriff2)
- [Joel Asher Friedman](https://github.com/joelash)
- [Joe McMonagle](https://github.com/joemcmonagle)
- [John Arild Berentsen](https://github.com/turbokongen)
@ -167,6 +173,7 @@ This page contains a list of people who have contributed in one way or another t
- [Moon Shot](https://github.com/moonshot)
- [Nathan Henrie](https://github.com/n8henrie)
- [Nick Touran](https://github.com/partofthething)
- [Nick Vella](https://github.com/nvella)
- [Nick Waring](https://github.com/nickwaring)
- [Nicolas Graziano](https://github.com/ngraziano)
- [Nils Uliczka](https://github.com/darookee)
@ -193,12 +200,14 @@ This page contains a list of people who have contributed in one way or another t
- [Roi Dayan](https://github.com/roidayan)
- [Rowan Hine](https://github.com/GreenTurtwig)
- [rubund](https://github.com/rubund)
- [Russell Cloran](https://github.com/rcloran)
- [Ryan Kraus](https://github.com/rmkraus)
- [Ryan Turner](https://github.com/ryanturner)
- [sam-io](https://github.com/sam-io)
- [sander76](https://github.com/sander76)
- [schneefux](https://github.com/schneefux)
- [Scott O'Neil](https://github.com/americanwookie)
- [Scott Reston](https://github.com/ih8gates)
- [Sean Dague](https://github.com/sdague)
- [sfam](https://github.com/sfam)
- [Stefan Jonasson](https://github.com/stefan-jonasson)
@ -206,6 +215,7 @@ This page contains a list of people who have contributed in one way or another t
- [St. John Johnson](https://github.com/stjohnjohnson)
- [TangoAlpha](https://github.com/TangoAlpha)
- [Teagan Glenn](https://github.com/Teagan42)
- [Teemu Mikkonen](https://github.com/T3m3z)
- [Teemu Patja](https://github.com/tpatja)
- [Theb-1](https://github.com/Theb-1)
- [Theodor Lindquist](https://github.com/theolind)
@ -219,9 +229,11 @@ This page contains a list of people who have contributed in one way or another t
- [vitorespindola](https://github.com/vitorespindola)
- [vladonemo](https://github.com/vladonemo)
- [Warren Konkel](https://github.com/wkonkel)
- [Willems Davy](https://github.com/joyrider3774)
- [William Scanlon](https://github.com/w1ll1am23)
- [wind-rider](https://github.com/wind-rider)
- [wokar](https://github.com/wokar)
- [Zac Mrowicki](https://github.com/zmrow)
This page is irregularly updated. As a base we use the Github [contributors overview](https://github.com/home-assistant/home-assistant/graphs/contributors) of the Home Assistant git repository and the [overview](https://github.com/home-assistant/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.

View File

@ -26,13 +26,21 @@ $ script/setup
* Run `hass` to invoke your local installation.
### {% linkable_title Logging %}
By default logging in home-assistant is tuned for operating in
production (set to INFO by default, with some modules set to even less
verbose logging levels).
You can use the [logger](/components/logger/) component to adjust
logging to DEBUG to see even more details about what is going on.
### {% linkable_title Developing on Windows %}
If you are using Windows as a development platform, make sure that you have the correct Microsoft Visual C++ build tools installed. Check the [Windows Compilers](https://wiki.python.org/moin/WindowsCompilers) section on the [Python website](https://www.python.org/) for details. Validation using `tox` will fail if this is not done correctly.
If you are using Windows as a development platform, make sure that you have the correct Microsoft Visual C++ build tools installed. Check the [Windows Compilers](https://wiki.python.org/moin/WindowsCompilers) section on the [Python website](https://www.python.org/) for details. Validation using `tox` will fail if this is not done correctly.
Also, make sure to install or upgrade the `setuptools` Python package. It contains compatibility improvements and adds automatic use of compilers:
Also, make sure to install or upgrade the `setuptools` Python package. It contains compatibility improvements and adds automatic use of compilers:
```bash
$ pip install --upgrade setuptools
```

View File

@ -11,7 +11,7 @@ footer: true
The `configuration.yaml` file contains the configuration options for components and platforms. We use [voluptuous](https://pypi.python.org/pypi/voluptuous) to make sure that the configuration provided by the user is valid. Some entries are optional or could be required to set up a platform or a component. Others must be a defined type or from an already-defined list.
We test the configuration to ensure that users have a great experience and minimize notifications if something is wrong with a platform or component setup before Home Assistant runs.
We test the configuration to ensure that users have a great experience and minimise notifications if something is wrong with a platform or component setup before Home Assistant runs.
Besides [voluptuous](https://pypi.python.org/pypi/voluptuous) default types, many custom types are available. For an overview, take a look at the [config_validation.py](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/helpers/config_validation.py) helper.

View File

@ -9,7 +9,7 @@ sharing: true
footer: true
---
Home Assistant uses [Polymer](https://www.polymer-project.org/) for the UI and [NuclearJS](http://optimizely.github.io/nuclear-js/) for maintaing the app state.
Home Assistant uses [Polymer](https://www.polymer-project.org/) for the UI and [NuclearJS](http://optimizely.github.io/nuclear-js/) for maintaining the app state.
* Polymer allows building encapsulated custom HTML elements.
[Home-Assistant-Polymer source code on GitHub.](https://github.com/home-assistant/home-assistant-polymer)
@ -29,7 +29,7 @@ http:
development: 1
```
As everything is compiled into the file `frontend.html` you do not want to work with the compiled version but with the seperate files during development.
As everything is compiled into the file `frontend.html` you do not want to work with the compiled version but with the separate files during development.
Next step is to get the frontend code. When you clone the Home Assistant repository, the frontend repository is not cloned by default. You can setup the frontend development environment by running:

View File

@ -20,7 +20,7 @@ $ find homeassistant -name "*.py" -exec file {} \; | grep BOM
$ find homeassistant -name "*.py" -exec file {} \; | grep CRLF
```
To fix the line spearator, use `dos2unix` or `sed`.
To fix the line separator, use `dos2unix` or `sed`.
```bash
$ dos2unix homeassistant/components/notify/kodi.py

View File

@ -9,7 +9,7 @@ sharing: true
footer: true
---
Home Assistant supports running multiple synchronized instances using a master-slave model. Whenever `events.fire` or `states.set` is called on the slave it will forward it to the master. The master will replicate all events and changed states to its slaves.
Home Assistant supports running multiple synchronised instances using a master-slave model. Whenever `events.fire` or `states.set` is called on the slave it will forward it to the master. The master will replicate all events and changed states to its slaves.
<p class='img'>
<a href='/images/architecture/architecture-remote.png'>

View File

@ -11,9 +11,9 @@ footer: true
In the package [`homeassistant.remote`](https://github.com/home-assistant/home-assistant/blob/master/homeassistant/remote.py) a Python API on top of the [HTTP API](/developers/api/) can be found.
Note: This page is not full documentation for this API, but a collection of examples showing its use.
Note: This page is not full documentation for this API, but a collection of examples showing its use.
A simple way to get all current entities is to visit the "Set State" page in the "Developer Tools". For the examples below just choose one from the available entries. Here the sensor `sensor.office_temperature` and the switch `switch.livingroom_pin_2` are used.
A simple way to get all current entities is to visit the "Set State" page in the "Developer Tools". For the examples below just choose one from the available entries. Here the sensor `sensor.office_temperature` and the switch `switch.livingroom_pin_2` are used.
First import the module and setup the basics:
@ -122,7 +122,7 @@ remote.set_state(api, 'switch.livingroom_pin_2', new_state=STATE_ON)
The state will be set to the new values until the next update occurs.
### {% linkable_title Blinking all entites of a domain %}
### {% linkable_title Blinking all entities of a domain %}
If you want to turn on all entities of a domain, retrieve the service via `get_services` and act on that:

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Releasing"
description: "Steps involved to publish a new Home Assistant release."
description: "Steps involved publishing a new Home Assistant release."
date: 2016-07-13 17:00
sidebar: true
comments: false
@ -13,20 +13,20 @@ This page describes the steps for publishing a new Home Assistant release.
### {% linkable_title GitHub %}
1. Create a pull request from `dev` to `master` with the upcoming release number as title.
2. Merge `master` into `dev` to make the PR mergable. PR message contains intro, highlighting major changes, and an overview of all changes tagging each author.
3. Update `homeassistant/const.py` with the correct version number (remove the the `dev` tag) and push that commit.
1. Create a pull request from `dev` to `master` with the upcoming release number as the title.
2. Merge `master` into `dev` to make the PR mergeable. PR message contains intro, highlighting major changes, and an overview of all changes tagging each author.
3. Update `homeassistant/const.py` with the correct version number (remove the `dev` tag) and push that commit.
4. Merge pull request (DO NOT SQUASH!).
5. Then, after merged, push another update to `dev` of `homeassistant/const.py` that includes the next version with the `dev` tag. Add a meaningful commit message like "Version bump to X". This commit acts as marker for the next release.
5. Then, after merged, push another update to `dev` of `homeassistant/const.py` that includes the next version with the `dev` tag. Add a meaningful commit message like "Version bump to X". This commit acts as a marker for the next release.
6. Go to [releases](https://github.com/home-assistant/home-assistant/releases) and tag a new release on the `master` branch. "Tag version" and "Release title" are the version number (`O.x` for major version, `0.x.y` for minor and bug fix releases). Release description is the text from PR. Press "Publish release" to finish the process.
### {% linkable_title Website %}
1. Create a blog post in `next` and base it on the text of the PR in the main repository. Add images, additional text, links, etc. if it adds value. Tag each platform/component in message to documentation.
1. Create a blog post in `next` and base it on the text of the PR in the main repository. Add images, additional text, links, etc. if it adds value. Tag each platform/component in a message to documentation.
2. Create missing documentation as stumbs in `next`.
3. Update the link on the frontpage (`source/index.html`) to link to the new release blog post and version number.
4. Create a pull request from `next` to `current` with the upcoming release number as title.
5. Merge `current` into `next` (`$ git checkout next && git merge current`) to make the PR mergable.
4. Create a pull request from `next` to `current` with the upcoming release number as the title.
5. Merge `current` into `next` (`$ git checkout next && git merge current`) to make the PR mergeable.
6. Merge pull request (blog post, updated frontpage, and all new documentation) to `current`.
### {% linkable_title Python Package Index %}

View File

@ -333,7 +333,7 @@ Expects a JSON object that has at least a state attribute:
}
```
Return code is 200 if the entity existed, 201 if the state of a new entity was set. A location header will be returned with the url of the new resource. The response body will contain a JSON encoded State object.
The return code is 200 if the entity existed, 201 if the state of a new entity was set. A location header will be returned with the URL of the new resource. The response body will contain a JSON encoded State object.
```json
{

View File

@ -62,7 +62,11 @@ If you want to test the server-sent events without creating a website, the Pytho
$ pip3 install sseclient
```
<<<<<<< HEAD
The simplest script to consume the SSE looks like the following snippet.
=======
The simplest script to consume the SSE in Python looks like this:
>>>>>>> current
```python
from sseclient import SSEClient

View File

@ -28,7 +28,7 @@ Then you can work on the documentation:
- Fork home-assistant.io [git repository](https://github.com/home-assistant/home-assistant.github.io).
- Create/edit/update a page in the directory `source/_components/` for your platform/component.
- Test your changes to home-assistant.io locally: run `rake preview` and navigate to [http://127.0.0.1:4000](http://127.0.0.1:4000)
- Create a Pull Request (PR) against the **next** branch of home-assistant.github.io if your documentation is for a new feature, platform, or component.
- Create a Pull Request (PR) against the **next** branch of home-assistant.github.io if your documentation is a new feature, platform, or component.
- Create a Pull Request (PR) against the **current** branch of home-assistant.github.io if you fix stuff, create Cookbook entries, or expand existing documentation.
<p class='note'>
@ -39,7 +39,7 @@ It could be necessary that you run `rake generate` prior to `rake preview` for t
For a platform page, the fastest way is to make a copy of an existing page and edit it. The [Component overview](/components/) and the [Examples section](/cookbook/) are generated automatically, so there is no need to add a link to those pages.
If you start from scratch with a page, you need to add a header. Different sections of the doumentation may need different headers.
If you start from scratch with a page, you need to add a header. Different sections of the documentation may need different headers.
```text
---
@ -59,11 +59,11 @@ Content...Written in markdown.
...
```
There are [pre-definied variables](https://jekyllrb.com/docs/variables/) available but usually it's not necessary to use them when writing documentation.
There are [pre-definied variables](https://jekyllrb.com/docs/variables/) available but usually, it's not necessary to use them when writing documentation.
### {% linkable_title Embedding Code %}
You can use the default markdown syntax to generate syntax highlighted code. For inline code wrap your code in \`. For multi line syntax wrap your code as shown below.
You can use the default markdown syntax to generate syntax highlighted code. For inline code wrap your code in \`. For multi-line, syntax wrap your code as shown below.
```text
{% raw %} ```yaml
@ -78,7 +78,7 @@ When you're writing code that is to be executed on the terminal, prefix it with
### {% linkable_title Templates %}
For the [configuration templating](/topics/templating/) is [Jinja](http://jinja.pocoo.org/) used.
For the [configuration templating](/topics/templating/) is [Jinja](http://jinja.pocoo.org/) used.
If you are using templates then those parts needs to be [escaped](http://stackoverflow.com/a/24102537). Otherwise they will be rendered and appear blank on the website.

View File

@ -17,12 +17,12 @@ These devices will either show as a binary sensor or a sensor called `Alarm xxxx
As of version 0.30 you can set the settings of a Z-Wave device through the dev_service page of Home Assistant with the service: `zwave/set_config_parameter`.
The following parameters can be entered:
- **entity_id** (*Required*): The entity_id of the device that you are going to set a parameter to. Any entity_id of the node can be used.
- **node_id** (*Required*): The node_id of the device that you are going to set a parameter to.
- **parameter** (*Required*): The index number of the parameter to be set. Refer to device manual or zwcfg_[home_id].xml
- **value** (*Required*): The value to set the parameter to. Refer to device manual or zwcfg_[home_id].xml
- **size** (*Optional*): The size of the value. It is normally not needed to specify this parameter, but in some cases it's needed. Check OZW.log for details on this.
You should check OZW.log to see if setting has been set
Example entry in dev-service, setting binary report for Aeotec multisensor 6:
You should check OZW.log to see if your new setting has been set
Example entry in dev-service, setting binary reports for an Aeotec Multisensor 6:
```yaml
# Example entry in dev-service
{"entity_id": "sensor.aetoec_multisensor_6_luminance_5",
@ -33,10 +33,10 @@ Example entry in dev-service, setting binary report for Aeotec multisensor 6:
##### {% linkable_title Locks and other secure devices %}
These devices require a network key to be set for the Z-Wave network before they are paired. This key is set in OpenZwave's `options.xml` which is located in OpenZWave's directory. This should also be the same directory as `config_path:` in your `configuration.yaml`. If it's not, make sure you have the same values in all the files you are using.
These devices require a network key to be set for the Z-Wave network before they are paired. This key is set in OpenZWave's `options.xml` which is located in OpenZWave's directory. This should also be the same directory as `config_path:` in your `configuration.yaml`. If it's not, make sure you have the same values in all the files you are using.
The option is commented out by default in `options.xml` and is a default key. Make your own unique key. The key is in Hexadecimals.
It is best to pair these devices in OpenZWave Control Panel or other Z-wave tool that can show you logs while pairing. Home Assistant show logs from zwave too and it is `OZW.log` in the Home Assistant config directory.
You should see communication from the node with lines starting with `info: NONCES` in `OZW.log` when the device is paired secure successfully. If you use Open Zwave Control Panel to pair, test the device before you save the configuration.
It is best to pair these devices in OpenZWave Control Panel or another Z-Wave tool that can show you logs while pairing. Home Assistant stores logs from Z-Wave in `OZW.log` in the Home Assistant config directory.
You should see communication from the node with lines starting with `info: NONCES` in `OZW.log` when the device is paired successfully with a secure connection. If you use OpenZWave Control Panel to pair, test the device before you save the configuration.
Make sure you copy the newly saved `zwcfg_[home_id].xml`into your Home Assistant configuration directory.

View File

@ -75,7 +75,8 @@ Configuration variables:
- **autoheal** (*Optional*): Allows disabling auto Z-Wave heal at midnight. Defaults to True.
- **polling_interval** (*Optional*): The time period in milliseconds between polls of a nodes value. Be careful about using polling values below 30000 (30 seconds) as polling can flood the zwave network and cause problems.
- **customize** (*Optional*): This attribute contains node-specific override values:
- **polling_intensity** (*Optional*): Enables polling of a value and sets the frequency of polling (0=none, 1=every time through the list, 2-every other time, etc). If not specified then your device will not be polled.
- **polling_intensity** (*Optional*): Enables polling of a value and sets the frequency of polling (0=none, 1=every time through the list, 2=every other time, etc). If not specified then your device will not be polled.
- **ignored** (*Optional*): Ignore this entitiy completely. It won't be shown in the Web Interface and no events are generated for it.
To find the path of your Z-Wave USB stick or module, run:
@ -211,12 +212,13 @@ The *object_id* and *scene_id* of all triggered events can be seen in the consol
### {% linkable_title Services %}
The `zwave` component exposes ten services to help maintain the network.
The `zwave` component exposes multiple services to help maintain the network.
| Service | Description |
| ------- | ----------- |
| add_node | Put the Z-Wave controller in inclusion mode. Allows one to add a new device to the Z-Wave network.|
| add_node_secure | Put the Z-Wave controller in secure inclusion mode. Allows one to add a new device with secure communications to the Z-Wave network. |
| association | Add or remove an association in th Z-Wave network
| cancel_command | Cancels a running Z-Wave command. If you have started a add_node or remove_node command, and decides you are not going to do it, then this must be used to stop the inclusion/exclusion command. |
| heal_network | Tells the controller to "heal" the Z-Wave network. Basically asks the nodes to tell the controller all of their neighbors so the controller can refigure out optimal routing. |
| remove_node | Put the Z-Wave controller in exclusion mode. Allows one to remove a device from the Z-Wave network.|

Binary file not shown.

After

Width:  |  Height:  |  Size: 649 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 542 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

View File

@ -15,11 +15,11 @@ hide_github_edit: true
<div class="grid">
<div class="grid__item one-third lap-one-third palm-one-whole">
<div class='current-version material-card text'>
<h1>Current Version: 0.30.2</h1>
Released: <span class='release-date'>October 12, 2016</span>
<h1>Current Version: 0.31</h1>
Released: <span class='release-date'>October 22, 2016</span>
<div class='links'>
<a href='/blog/2016/10/08/hassbian-rest-digital-ocean/'>Release notes</a>
<a href='/blog/2016/10/22/flash-briefing-updater-hacktoberfest/'>Release notes</a>
</div>
</div>
<div class='join-community material-card text'>