Merge branch 'current' into next

This commit is contained in:
Robbie Trencheny 2016-09-03 16:13:07 -07:00
commit bb8eb97edd
63 changed files with 612 additions and 206 deletions

View File

@ -22,12 +22,11 @@ Amazon has released [Echosim], a website that simulates the Alexa service in you
## {% linkable_title I just want to turn devices on and off using Echo %}
If you just want to be able to turn anything with a switch (like lights, switches, media players, etc) on and off, check out Michael Auchter's [Haaska][haaska-github-link] which integrates the [Alexa Lighting API][alexa-lighting-api] into Home Assistant.
If you just want to be able to turn anything with a switch (like lights, switches, media players, etc) on and off, you should enable the [Emulated Hue][emulated-hue-component] component. It makes your Home Assistant appear as if it were a Phillips Hue bridge, which Echo works with natively.
[haaska-github-link]: https://github.com/auchter/haaska
[alexa-lighting-api]: https://developer.amazon.com/public/binaries/content/assets/html/alexa-lighting-api.html
[emulated-hue-component]: https://home-assistant.io/components/emulated_hue/
Implementing Haaska means you can turn things on and off by simply saying
Enabling the Emulated Hue component means you can turn things on and off by simply saying
> Alexa, turn the living room lights on.
@ -43,9 +42,9 @@ or
> Alexa, tell Home Assistant to set the living room lights to twenty percent.
In addition, you would need to build custom intents for each device and on/off combination using the below method, whereas everything just works without any extra work by using Haaska.
In addition, you would need to build custom intents for each device and on/off combination using the below method, whereas everything just works without any extra work by using Emulated Hue.
Please note that you can use Haaska and the built-in Alexa component side-by-side without issue if you wish.
Please note that you can use Emulated Hue and the built-in Alexa component side-by-side without issue if you wish.
## {% linkable_title I want to build custom commands to use with Echo %}

View File

@ -10,6 +10,7 @@ footer: true
logo: bloomsky.png
ha_category: Binary Sensor
ha_release: 0.14
ha_iot_class: "Cloud Polling"
---
The `bloomsky` binary sensor platform allows you to get data from your BloomSky device.
@ -22,5 +23,13 @@ To use your BloomSky binary sensor in your installation, add the following to yo
# Example configuration.yaml entry
binary_sensor:
- platform: bloomsky
monitored_conditions:
- Night
- Rain
```
Configuration variables:
- **monitored_conditions** array (*Required*): The sensors that you wish to monitor on all of your devices. Select from these options:
- Night
- Rain

View File

@ -10,10 +10,11 @@ footer: true
logo: command_line.png
ha_category: Binary Sensor
ha_release: 0.12
ha_iot_class: "Local Polling"
---
The `command` binary sensor platform issues specific commands to get data.
The `command_line` binary sensor platform issues specific commands to get data.
To use your Command binary sensor in your installation, add the following to your `configuration.yaml` file:

View File

@ -14,10 +14,10 @@ ha_iot_class: "Local Polling"
---
The `ffmpeg` platform allows you to use every video or audio feed with [FFmpeg](http://www.ffmpeg.org/) for various sensors in Home Assistant. Available are: **noise**, **motion**. If the `ffmpeg` process is brocken, the sensor going to unavailable. It exists a service to restart a instance with *binary_sensor.ffmpeg_restart*.
The `ffmpeg` platform allows you to use every video or audio feed with [FFmpeg](http://www.ffmpeg.org/) for various sensors in Home Assistant. Available are: **noise**, **motion**. If the `ffmpeg` process is broken, the sensor will be unavailable. To restart the instance, use the service *binary_sensor.ffmpeg_restart*.
<p class='note'>
You need a `ffmpeg` binary in your system path. On Debain 8 you can install it from backports. If you want Hardware support on a Raspberry Pi you need to build it from sourceby ourself. Windows binary are avilable on [FFmpeg](http://www.ffmpeg.org/) homepage.
You need the `ffmpeg` binary in your system path. On Debain 8 you can install it from backports. If you want Hardware support on a Raspberry Pi you need to build it from source. Windows binary are avilable on [FFmpeg](http://www.ffmpeg.org/) homepage.
</p>
### {% linkable_title Noise %}
@ -47,7 +47,7 @@ Configuration variables:
- **duration** (*Optional*): Default 1 seconds. How long need the noise over the peak to trigger the state.
- **reset** (*Optional*): Defaults to 20 seconds. The time to reset the state after none new noise is over the peak.
- **extra_arguments** (*Optional*): Extra option they will pass to `ffmpeg`, like audio frequence filtering.
- **output** (*Optional*): Allow you to send the audio output of this sensor to a icecast server or other ffmpeg supported output, eg. to stream with sonos after state is trigger.
- **output** (*Optional*): Allow you to send the audio output of this sensor to an icecast server or other ffmpeg supported output, eg. to stream with sonos after state is triggered.
For playing with values:
@ -57,7 +57,7 @@ $ ffmpeg -i YOUR_INPUT -vn -filter:a silencedetect=n=-30dB:d=1 -f null -
### {% linkable_title Motion %}
FFmpeg don't have a motion detection filter so it use a scene filter to detect a new scene/motion. In fact you can set how big a object or size of image they need change to detect a motion. The option 'changes' is the percent value of change between frames. You can add a denoise filter to video if you want a realy small value for 'changes'.
FFmpeg doesn't have a motion detection filter, so it uses a scene filter to detect a new scene/motion. In fact, you can set how big of an object or the size of an image that needs to change in order to detect motion. The option 'changes' is the percent value of change between frames. You can add a denoise filter to the video if you want a really small value for 'changes'.
To enable your FFmpeg with motion detection in your installation, add the following to your `configuration.yaml` file:
@ -79,14 +79,14 @@ camera:
Configuration variables:
- **input** (*Required*): A ffmpeg compatible input file, stream or feed.
- **input** (*Required*): A ffmpeg compatible input file, stream, or feed.
- **tool** (*Required*): Is fix set to `motion`.
- **name** (*Optional*): This parameter allows you to override the name of your camera.
- **ffmpeg_bin** (*Optional*): Default `ffmpeg`.
- **changes** (*Optional*): Default 10 percent. A lower value is more sensitive. I use 4 / 3.5 on my cameras. It describe how much of two frames need to change to detect it as motion. See on descripton.
- **reset** (*Optional*): Default 20 seconds. The time to reset the state after none new motion is detect.
- **repeat** (*Optional*): Default 0 repeats (deactivate). How many motion need to detect in *repeat_time* to trigger a motion.
- **repeat_time** (*Optional*): Default 0 seconds (deactivate). The time to repeats before it trigger a motion.
- **changes** (*Optional*): Default 10 percent. A lower value is more sensitive. I use 4 / 3.5 on my cameras. It describes how much needs to change between two frames to detect it as motion. See on descripton.
- **reset** (*Optional*): Default 20 seconds. The time to reset the state after no new motion is detected.
- **repeat** (*Optional*): Default 0 repeats (deactivate). How many events need to be detected in *repeat_time* in order to trigger a motion.
- **repeat_time** (*Optional*): Default 0 seconds (deactivate). The span of time *repeat* events need to occur in before triggering a motion.
- **extra_arguments** (*Optional*): Extra option they will pass to ffmpeg. i.e. video denoise filtering.
For playing with values (changes/100 is the scene value on ffmpeg):
@ -94,3 +94,5 @@ For playing with values (changes/100 is the scene value on ffmpeg):
```bash
$ ffmpeg -i YOUR_INPUT -an -filter:v select=gt(scene\,0.1) -f framemd5 -
```
If you are running into trouble with this sensor, please refer to this [Troubleshooting section](/components/camera.ffmpeg/#troubleshooting).

View File

@ -14,11 +14,16 @@ ha_category: Binary Sensor
The `nest` binary sensor platform let you monitor various states of a thermostat from [Nest](https://nest.com).
<p class='note'>
You must have the [Nest component](/components/nest/) configured to use this sensors.
</p>
To set it up, add the following information to your `configuration.yaml` file:
```yaml
binary_sensor:
platform: nest
scan_interval: 60
monitored_conditions:
- 'fan'
- 'hvac_ac_state'
@ -34,6 +39,7 @@ binary_sensor:
Configuration variables:
- **scan_interval** (*Optional*): Interval in seconds to scan.
- **monitored_conditions** array (*Required*): States to monitor.
- 'fan'
- 'hvac_ac_state'
@ -45,4 +51,3 @@ Configuration variables:
- 'hvac_emer_heat_state'
- 'online'
<p class='note'>You must have the [Nest component](/components/nest/) configured to use this sensor.</p>

View File

@ -66,3 +66,29 @@ binary_sensor:
value_template: {% raw %}"{{ states.switch.door.state == 'on' }}"{% endraw %}
sensor_class: opening
```
### {% linkable_title Combining multiple sensors, and using entity_id: %}
This example combines multiple CO sensors into a single overall status. It also shows how to use `entity_id`
```yaml
binary_sensor:
- platform: template
sensors:
co:
friendly_name: 'CO'
sensor_class: 'gas'
value_template: {% raw %}>-
{%- if is_state("sensor.bedroom_co_status", "Ok")
and is_state("sensor.kitchen_co_status", "Ok")
and is_state("sensor.wardrobe_co_status", "Ok") -%}
Off
{%- else -%}
On
{%- endif %}{% endraw %}
entity_id:
- sensor.bedroom_co_status
- sensor.kitchen_co_status
- sensor.wardrobe_co_status
```

View File

@ -9,10 +9,14 @@ sharing: true
footer: true
logo: bloomsky.png
ha_category: Hub
ha_release: 0.14
ha_iot_class: "Cloud Polling"
---
The `bloomsky` component allows you to access your [BloomSky](http://www.insteon.com/) weather station's [sensors](/components/sensor.bloomsky) and [camera](/components/camera.bloomsky) from Home Assistant.
The `bloomsky` component allows you to access your [BloomSky](https://www.bloomsky.com/) weather station's [sensors](/components/sensor.bloomsky), [binary sensors](/components/binary_sensor.bloomsky), and [camera](/components/camera.bloomsky) from Home Assistant.
Obtain your PI key from your [BloomSky dashboard](https://dashboard.bloomsky.com). Click `developers` in the bottom left of the screen.
To integrate your BloomSky hub with Home Assistant, add the following section to your `configuration.yaml` file:
@ -24,4 +28,4 @@ bloomsky:
Configuration variables:
- **api_key** *Required*: Your BloomSky API key, obtained from your [BloomSky dashboard](https://dashboard.bloomsky.com) (click `developers` in the bottom left of the screen)
- **api_key** (*Required*): Your BloomSky API key.

View File

@ -13,10 +13,10 @@ ha_release: 0.26
---
The `ffmpeg` platform allows you to use every video feed with [FFmpeg](http://www.ffmpeg.org/) as camera in Home Assistant.
The `ffmpeg` platform allows you to use every video feed with [FFmpeg](http://www.ffmpeg.org/) as camera in Home Assistant. The input for ffmpeg need to support that could have multiple connection to source (input) in same time. For every user in UI and all 10 seconds (snapshot image) it make a new connection/reading to source. Normally that should never be a trouble only in strange selfmade constructs can be make mistakes.
<p class='note'>
You need a ffmpeg binary in your system path. On debain 8 you can install it from backports. If you want HW support on raspberry you need self build from source. Windows binary are avilable on ffmpeg homepage.
You need a `ffmpeg` binary in your system path. On Debain 8 you can install it from backports. If you want Hardware support on a Raspberry Pi you need tobuild from source by yourself. Windows binary are avilable on the [FFmpeg](http://www.ffmpeg.org/) website.
</p>
To enable your FFmpeg feed in your installation, add the following to your `configuration.yaml` file:
@ -36,9 +36,24 @@ Configuration variables:
- **input** (*Required*): A ffmpeg compatible input file, stream or feed.
- **name** (*Optional*): This parameter allows you to override the name of your camera.
- **ffmpeg_bin** (*Optional*): Default 'ffmpeg'.
- **extra_arguments** (*Optional*): Extra option they will pass to ffmpeg. i.e. image quality or video filter options.
- **extra_arguments** (*Optional*): Extra option they will pass to `ffmpeg`. i.e. image quality or video filter options.
### {% linkable_title Image quality %}
You can control the `image quality` with [`extra_arguments`](https://www.ffmpeg.org/ffmpeg-codecs.html#jpeg2000) `-q:v 2-32` or with lossless option `-pred 1`.
### {% linkable_title Troubleshooting %}
In most of case, `ffmpeg` autodetect all needed options to read a video/audio stream or file. But it is possible in rare cases that's needed to set a option to help `ffmpeg`. Per default `ffmpeg` use 5 seconds to detect all options or abort.
First check, if your stream playable by `ffmpeg` with (use option `-an` or `-vn` to disable video or audio stream):
```
$ ffmpeg -i INPUT -an -f null -
```
Now you can see what going wrong. Following list could be help to solve your trouble:
- `[rtsp @ ...] UDP timeout, retrying with TCP`: You need to set RTSP transport in the configuration with: `input: -rtsp_transport tcp -i INPUT`
- `[rtsp @ ...] Could not find codec parameters for stream 0 (Video: ..., none): unspecified size`: FFmpeg need more data or time for autodetect. You can set the `analyzeduration` and/or `probesize` option, play with this value. If you know the needed value you can set it with: `input: -analyzeduration xy -probesize xy tcp -i INPUT`. More information about that can be found on [FFmpeg](https://www.ffmpeg.org/ffmpeg-formats.html#Description).

View File

@ -17,7 +17,7 @@ The `generic_thermostat` climate platform is a thermostat implemented in Home As
```yaml
# Example configuration.yaml entry
climate:
platform: heat_control
platform: generic_thermostat
name: Study
heater: switch.study_heater
target_sensor: sensor.study_temperature

View File

@ -25,9 +25,9 @@ climate:
ipaddress: YOUR_IPADDRESS
port: YOUR_PORT
tstats:
1:
id: THERMOSTAT_ID
name: THERMOSTAT_NAME
- 1:
id: THERMOSTAT_ID
name: THERMOSTAT_NAME
```
A single interface can handle up to 32 connected devices.

View File

@ -14,6 +14,10 @@ ha_category: Climate
The `nest` climate platform let you control a thermostat from [Nest](https://nest.com).
<p class='note'>
You must have the [Nest component](/components/nest/) configured to use those thermostats.
</p>
To set it up, add the following information to your `configuration.yaml` file:
```yaml
@ -25,6 +29,3 @@ climate:
<img src='{{site_root}}/images/screenshots/nest-thermostat-card.png' />
</p>
<p class='note'>
You must have the [Nest component](https://home-assistant.io/components/nest/) configured to use this sensor.
</p>

View File

@ -10,6 +10,7 @@ footer: true
logo: command_line.png
ha_category: Cover
ha_release: 0.14
ha_iot_class: "Local Polling"
---
A `command_line`cover platform that issues specific commands when it is moved up, down and stopped. It allows anyone to integrate any type of cover into Home Assistant that can be controlled from the command line.
@ -22,10 +23,10 @@ cover:
- platform: command_line
covers:
Garage door:
open_cmd: move_command up kitchen
close_cmd: move_command down kitchen
stop_cmd: move_command stop kitchen
state_cmd: state_command kitchen
opencmd: move_command up kitchen
closecmd: move_command down kitchen
stopcmd: move_command stop kitchen
statecmd: state_command kitchen
value_template: {% raw %}>
{% if value == 'open' %}
100
@ -39,8 +40,8 @@ Configuration variables:
- **covers** (*Required*): The array that contains all command line covers.
- **entry** (*Required*): Name of the command line cover. Multiple entries are possible.
- **open_cmd** (*Required*): The command to open the cover.
- **close_cmd** (*Required*): The action to close the cover.
- **stop_cmd** (*Required*): The action to stop the cover.
- **state_cmd** (*Optional*): If given, this will act as a sensor that runs in the background and updates the state of the cover. If the command returns a `0` the indicates the cover is fully closed, whereas a 100 indicates the cover is fully open.
- **value_template** (*optional - default: '{% raw %}{{ value }}{% endraw%}'*): if specified, `state_cmd` will ignore the result code of the command but the template evaluating will indicate the position of the cover. For example, if your `state_cmd` returns a string "open", using `value_template` as in the example config above will allow you to translate that into the valid state `100`.
- **opencmd** (*Required*): The command to open the cover.
- **closecmd** (*Required*): The action to close the cover.
- **stopcmd** (*Required*): The action to stop the cover.
- **statecmd** (*Optional*): If given, this will act as a sensor that runs in the background and updates the state of the cover. If the command returns a `0` the indicates the cover is fully closed, whereas a 100 indicates the cover is fully open.
- **value_template** (*optional - default: '{% raw %}{{ value }}{% endraw%}'*): if specified, `statecmd` will ignore the result code of the command but the template evaluating will indicate the position of the cover. For example, if your `statecmd` returns a string "open", using `value_template` as in the example config above will allow you to translate that into the valid state `100`.

View File

@ -30,27 +30,31 @@ cover:
state_topic: "home-assistant/cover"
command_topic: "home-assistant/cover/set"
name: "MQTT Sensor"
optimistic: false
qos: 0
retain: true
payload_open: "PAYLOAD_OPEN"
payload_close: "PAYLOD__CLOSE"
payload_stop: "PAYLOAD_STOP"
state_open: "STATE_OPEN"
state_closed: "STATE_CLOSED"
service_open: "SERVICE_OPEN"
service_close: "SERVICE_CLOSE"
optimistic: false
retain: false
value_template: '{% raw %}{{ value.x }}{% endraw %}'
```
Configuration variables:
- **state_topic** (*Required*): The MQTT topic subscribed to receive sensor values.
- **command_topic** (*Required*): The MQTT topic to publish commands to control the rollershutter.
- **name** (*Optional*): The name of the sensor. Default is "MQTT Sensor".
- **state_open** (*Optional*): The payload that represents open state. Default is"STATE_OPEN"
- **state_closed** (*Optional*): The payload that represents closed state. Default is "STATE_CLOSED"
- **service_open** (*Optional*): The payload that represents open state in service mode. Default is"SERVICE_OPEN"
- **service_close** (*Optional*): The payload that represents closed state in service mode. Default is "SERVICE_CLOSE"
- **optimistic** (*Optional*): Flag that defines if switch works in optimistic mode. Default is `true` if no state topic defined, else `false`.
- **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0 and will also be used to publishing messages.
- **retain** (*Optional*): If the published message should have the retain flag on or not.
- **payload_open** (*Optional*): The payload that opens the cover. Default is "UP"
- **payload_close** (*Optional*): The payload that closes the cover. Default is "DOWN"
- **payload_stop** (*Optional*): The payload that stops the rollershutter. default is "STOP"
- **state_open** (*Optional*): The payload that represents open state. Default is"STATE_OPEN"
- **state_closed** (*Optional*): The payload that represents closed state. Default is "STATE_CLOSED"
- **optimistic** (*Optional*): Flag that defines if switch works in optimistic mode. Default is `true` if no state topic defined, else `false`.
- **value_template** (*Optional*): Defines a [template](/topics/templating/) to extract a value from the payload.
For a quick check you can use the commandline tools shipped with `mosquitto` to send MQTT messages. Set the state of your sensor manually:

View File

@ -12,7 +12,7 @@ ha_category: Cover
ha_release: 0.13
---
Wink cover/garage door functionality is currently limited to view only. Wink garage doors will still show the current state of the door, but control has been disabled for third parties. If you have a Chamberlain garage door, and would like to control it via Home Assistant, please contact Chamberlain and request that they re-enabled third-party control.
Wink cover/garage door functionality depends on the product you're using. With GoControl/Linear Home Assistant can open, close, and view state. Chamberlain is currently limited to view only. Meaning Home Assistant will only show the current state of the door and control has been disabled (by Chamberlain). If you have a Chamberlain garage door, and would like to control it via Home Assistant, please contact Chamberlain and request that they re-enabled third-party control.
The following quote is from Wink.

View File

@ -19,14 +19,14 @@ Available demo platforms:
- [Alarm control panel](/components/alarm_control_panel/) (`alarm_control_panel`)
- [Binary sensor](/components/binary_sensor/) (`binary_sensor`)
- [Camera](/components/camera/) (`camera`)
- [Climate](/components/climate/) (`climate`)
- [Cover](/components/cover/) (`cover`)
- [Fan](/components/fan/) (`fan`)
- [Light](/components/light/) (`light`)
- [Lock](/components/lock/) (`lock`)
- [Notification](/components/notify/) (`notify`)
- [Cover](/components/cover/) (`cover`)
- [Sensor](/components/sensor/) (`sensor`)
- [Switch](/components/switch/) (`switch`)
- [Climate](/components/climate/) (`climate`)
- [Fan](/components/fan/) (`fan`)
To integrate a demo platform in Home Assistant, add the following section to your `configuration.yaml` file:

View File

@ -1,6 +1,6 @@
---
layout: page
title: "Bluetooth Tracker"
title: "Bluetooth LE Tracker"
description: "Instructions for integrating bluetooth low-energy tracking within Home Assistant."
date: 2016-08-24 00:00
sidebar: true

View File

@ -26,7 +26,7 @@ Install on your smartphone:
- [Android](https://play.google.com/store/apps/details?id=io.locative.app)
- [iOS](https://itunes.apple.com/us/app/geofancy/id725198453)
To configure Locative, you must set up the app to send a `GET` request to your Home Assistant server at `http://<ha_server>/api/locative`. Make sure to include the API password if you have configured a password in Home Assistant (add `?api_password=<password>` to the end of the URL). When you enter or exit a geofence, Locative will send a `GET` request to that URL, updating Home Assistant.
To configure Locative, you must set up the app to send a `GET` request to your Home Assistant server at `http://<ha_server>/api/locative`. Make sure to include the API password if you have configured a password in Home Assistant (add `?api_password=<password>` to the end of the URL). When you enter or exit a geofence, Locative will send a `GET` request to that URL, updating Home Assistant. You are not able to specify a device name in Locative. Instead, you will need to look in your known_devices.yaml file for a new device that Locative will have created on it's first `GET`. If you had been or are using Owntracks as well, you will need to update the device name used in the Owntracks setup with the name that Locative generated.
<p class='img'>
<img src='{{site_root}}/images/screenshots/locative.png'/>

View File

@ -12,7 +12,7 @@ ha_category: Downloading
ha_release: pre 0.7
---
The `downloader` component provides a service to download files. It will raise an error and not continue to set itself up when the download directory does not exist.
The `downloader` component provides a service to download files. It will raise an error and not continue to set itself up when the download directory does not exist. The directory needs to be writable for the user that is running Home Assistant.
To enable it, add the following lines to your `configuration.yaml` file:

View File

@ -13,11 +13,11 @@ featured: true
---
The Ecobee platform lets you control a thermostats and view sensor data from the [Ecobee](https://ecobee.com) thermostat.
The `ecobee` component lets you control a thermostats and view sensor data from [ecobee](https://ecobee.com) thermostats.
You will need to obtain an API key from ecobee's [developer site](https://www.ecobee.com/developers/) to use this component. To get the key, first you need to register your thermostat. Once you have done that, click on the 'Become a developer' link on the developer site. Login with your ecobee credentials, accept the SDK agreement, fill in the fields, and click save. Now login to the regular consumer portal, and in the hamburger menu there will br a new option 'Developer'. Select that, then select 'Create New'. Give your app a name (it appears to need to be unique across all users, as I tried 'home-assistant' and it said it was already in use) and a summary (neither of these are important as they are not used anywhere). For Authorization method select 'ecobee PIN'. You don't need an Application Icon or Detailed Description. Click Save. Now under the Name and Summary Section you will have an API key. Copy this key and use it in you configuration section below. Click the 'X' to close the Developer section.
You will need to obtain an API key from ecobee's [developer site](https://www.ecobee.com/developers/) to use this component. To get the key, first you need to register your thermostat. Once you have done that, click on the **Become a developer** link on the developer site. Login with your Ecobee credentials, accept the SDK agreement, fill in the fields, and click **save**. Now login to the regular consumer portal, and in the hamburger menu there will be a new option **Developer**. Select that, then select **Create New**. Give your app a name (it appears to need to be unique across all users, as I tried 'home-assistant' and it said it was already in use) and a summary (neither of these are important as they are not used anywhere). For Authorization method select **ecobee PIN**. You don't need an Application Icon or Detailed Description. Click **Save**. Now under the Name and Summary Section you will have an API key. Copy this key and use it in you configuration section below. Click the **X** to close the Developer section.
The first time you run Home-Assistant with this component it will give you a PIN code that you need to authorize in the [ecobee consumer portal](https://www.ecobee.com/consumerportal/index.html). You can do this by clicking 'Add Application' in the 'My Apps' section in the sidebar. Enter the PIN code from the Home Assistant screeen. To get the PIN code select the item in the Ecobee card. If you do not have an Ecobee card, you may be using groups with default_view that don't show the card. To get around this you can temporarily comment out the default_view section or add the configurator.ecobee component to your default_view and restart Home Assistant. Once you enter the PIN on the Ecobee site, wait approximately 5 minutes and then click on the 'I have authorized the app' link at the bottom of the Ecobee popup window. If everything worked correctly, you should now be able to restart Home Assistant again to see the full Ecobee card with all of the sensors populated or see the list of sensors in the developer tools. Now you can re-enable your default_view (if you had to disable it) and add the Ecobee sensors to a group and/or view.
The first time you run Home Assistant with this component it will give you a PIN code that you need to authorize in the [ecobee consumer portal](https://www.ecobee.com/consumerportal/index.html). You can do this by clicking **Add Application** in the **My Apps** section in the sidebar. Enter the PIN code from the Home Assistant screeen. To get the PIN code select the item in the ecobee card. If you do not have an ecobee card, you may be using groups with `default_view` that don't show the card. To get around this you can temporarily comment out the `default_view` section or add the `configurator.ecobee` component to your `default_view` and restart Home Assistant. Once you enter the PIN on the ecobee site, wait approximately 5 minutes and then click on the **I have authorized the app** link at the bottom of the ecobee popup window. If everything worked correctly, you should now be able to restart Home Assistant again to see the full ecobee card with all of the sensors populated or see the list of sensors in the developer tools. Now you can re-enable your `default_view` (if you had to disable it) and add the ecobee sensors to a group and/or view.
To set it up, add the following information to your `configuration.yaml` file:
@ -29,8 +29,8 @@ ecobee:
Configuration variables:
- **api_key** (*Required*): Your Ecobee api key.
- **hold_temp** (*Optional*): True/False whether or not to hold changes indefinitely (True) or until the next scheduled event (False, default).
- **api_key** (*Required*): Your ecobee API key.
- **hold_temp** (*Optional*): True/False whether or not to hold changes indefinitely (True) or until the next scheduled event. Defaults to `False`.
<p class='img'>
<img src='{{site_root}}/images/screenshots/ecobee-sensor-badges.png' />

View File

@ -15,6 +15,10 @@ ha_iot_class: "Local Push"
The `emulated_hue` component provides a virtual Philips Hue bridge, written entirely in software, that allows services that work with the Hue API to interact with Home Assistant
entities. The driving use case behind this functionality is to allow Home Assistant to work with an Amazon Echo with no set up cost outside of configuration changes.
<p class='note'>
It is recommended to assign a static IP address to the computer running Home Assistant. This is because the Amazon Echo discovers devices by IP addresss, and if the IP changes, the Echo won't be able to control it. This is easiest done from your router, see your router's manual for details.
</p>
### {% linkable_title Configuration %}
To enable the emulated Hue bridge, add the following to your `configuration.yaml` file:

View File

@ -2,14 +2,14 @@
layout: page
title: "Insteon Hub Fan"
description: "Instructions how to setup the Insteon Hub Fans within Home Assistant."
date: 2016-08-26 08:00
date: 2017-08-26 08:00
sidebar: true
comments: false
sharing: true
footer: true
logo: insteon.png
ha_category: Fan
ha_release: 0.27
ha_release: 0.30
---
The `insteon_hub` fan component lets you control your fans connected to an [Insteon Hub](http://www.insteon.com/insteon-hub/) with Home Assistant.

View File

@ -20,8 +20,8 @@ To use RSS feeds in your installation, add the following to your `configuration.
# Example configuration.yaml entry
feedreader:
urls:
- https://home-assistant.io/atom.xml
- https://github.com/blog.atom
- https://home-assistant.io/atom.xml
- https://github.com/blog.atom
```
Configuration variables:

View File

@ -55,6 +55,18 @@ When your screen looks like this, click the 'call service' button.
You need to setup a unique trigger for each event you sent to IFTTT.
</p>
```yaml
# Example configuration.yaml Automation entry
automation:
- alias: Startup Notification
trigger:
platform: event
event_type: homeassistant_start
action:
service: ifttt.trigger
data: {"event":"TestHA_Trigger", "value1":"Hello World!"}
```
### {% linkable_title Sending events from IFTTT to Home Assistant %}
To be able to receive events from IFTTT, your Home Assistant instance needs to be accessible from the web. This can be achieved by forwarding port 8123 from your router to the device running Home Assistant. If your ISP is giving you a new IP address from time to time, consider using [DuckDNS][duck-dns].

View File

@ -14,32 +14,32 @@ Interacts with media players on your network. Please check the sidebar for a ful
## {% linkable_title Services %}
### {% linkable_title Media control services %}
Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`, `media_play_pause`, `media_play`, `media_pause`, `media_next_track`, `media_previous_track`, `clear_playlist`
Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`, `media_play_pause`, `media_play`, `media_pause`, `media_stop`, `media_next_track`, `media_previous_track`, `clear_playlist`
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | Target a specific media player. Defaults to all.
#### {% linkable_title Service `media_player/mute_volume` %}
#### {% linkable_title Service `media_player/volume_mute` %}
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | Target a specific media player. Defaults to all.
| `mute` | no | True/false for mute/unmute
| Service data attribute | Optional | Description |
|------------------------|----------|--------------------------------------------------|
| `entity_id` | yes | Target a specific media player. Defaults to all. |
| `is_volume_muted` | no | True/false for mute/unmute |
#### {% linkable_title Service `media_player/set_volume_level` %}
#### {% linkable_title Service `media_player/volume_set` %}
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | Target a specific media player. Defaults to all.
| `volume` | no | Integer for volume level
| Service data attribute | Optional | Description |
|------------------------|----------|--------------------------------------------------|
| `entity_id` | yes | Target a specific media player. Defaults to all. |
| `volume_level` | no | Integer for volume level |
#### {% linkable_title Service `media_player/media_seek` %}
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | Target a specific media player. Defaults to all.
| `position` | no | Position to seek to. The format is platform dependent.
| Service data attribute | Optional | Description |
|------------------------|----------|--------------------------------------------------------|
| `entity_id` | yes | Target a specific media player. Defaults to all. |
| `seek_position` | no | Position to seek to. The format is platform dependent. |
#### {% linkable_title Service `media_player/play_media` %}

View File

@ -38,7 +38,7 @@ Configuration variables:
- **event** (*Required*): The event
- **tracker** (*Required*): The name of tracker inside Instapush.
To retrieve those values for existing settings, log into your account at [https://instapush.im](https://instapush.im) and go to your **Dashboard**. Then click **APPS** tab, choose an app, and check the **Basic Info** section. The *Application ID* is the ``api_key`` and ``app_secret`` is the *Application Secret*.
To retrieve the needed values for existing settings, log into your account at [https://instapush.im](https://instapush.im) and go to your **Dashboard**. Then click the **APPS** tab, choose an app, and check the **Basic Info** section. The *Application ID* is the `api_key` and `app_secret` is the *Application Secret*.
Assuming that your setup looks look in the image below...

View File

@ -1,7 +1,7 @@
---
layout: page
title: "Notify My Android"
description: "Instructions how to add user notifications to Home Assistant."
description: "Instructions how to add NMA notifications to Home Assistant."
date: 2015-05-01 18:00
sidebar: true
comments: false
@ -13,7 +13,9 @@ ha_release: pre 0.7
---
The nma platform uses [Notify My Android (NMA)](http://www.notifymyandroid.com/) to delivery notifications from Home Assistant to your Android device.
The `nma` platform uses [Notify My Android (NMA)](http://www.notifymyandroid.com/) to delivery notifications from Home Assistant to your Android device.
Go to the [NMA website](https://www.notifymyandroid.com) and create a new API key. If you are using the trial offer then keep in mind that your limit is five (5) message per day.
To add NMA to your installation, add the following to your `configuration.yaml` file:
@ -28,8 +30,8 @@ notify:
Configuration variables:
- **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`.
- **api_key** (*Required*): Enter the API key for NMA. Go to https://www.notifymyandroid.com and create a new API key.
- **api_key** (*Required*): Enter the API key for NMA.
Details for the API : https://www.notifymyandroid.com/api.jsp
Details for the (API)[https://www.notifymyandroid.com/api.jsp].
To use notifications, please see the [getting started with automation page](/getting-started/automation/).

View File

@ -9,10 +9,13 @@ sharing: true
footer: true
logo: pushetta.png
ha_category: Notifications
ha_release: pre 0.7
---
The pushetta platform uses [Pushetta](http://www.pushetta.com) to delivery notifications from Home Assistant to your devices.
The `pushetta` notify platform uses [Pushetta](http://www.pushetta.com) to delivery notifications from Home Assistant to your devices.
To retrieve the API token, log into your account at (http://www.pushetta.com)[http://www.pushetta.com] and go to your **Dashboard**. Create a new channel by clicking on **Channels** and then **Add a Channel**.
To enable Pushetta notifications in your installation, add the following to your `configuration.yaml` file:
@ -31,8 +34,6 @@ Configuration variables:
- **api_key** (*Required*): Your API key for Pushetta.
- **channel_name** (*Required*): The name of your channel.
To retrieve the API token, log into your account at http://www.pushetta.com and go to your **Dashboard**. Create a new channel by clicking on **Channels** and then **Add a Channel**.
It's easy to test your Pushetta setup outside of Home Assistant. Assuming you have a channel *home-assistant*, just fire a request and check the channel page in the dashboard for a new message.
```bash

View File

@ -15,6 +15,8 @@ ha_release: pre 0.7
The [Pushover service](https://pushover.net/) is a platform for the notify component. This allows components to send messages to the user using Pushover.
In order to get an API key you need to go to the [Pushover website](https://pushover.net) and register a new application. From the website you can also retrieve your user key.
To use Pushover notifications, add the following to your `configuration.yaml` file:
```yaml
@ -29,8 +31,8 @@ notify:
Configuration variables:
- **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`.
- **api_key** (*Required*): This parameter is optional but should be configured, in order to get an API key you should go to https://pushover.net and register a new application.
- **user_key** (*Required*): To retrieve this value log into your account at https://pushover.net
- **api_key** (*Required*): Your API key.
- **user_key** (*Required*): Your user key for Pushover.
This is a quote from the Pushover website regarding free/open source apps:
@ -39,3 +41,5 @@ This is a quote from the Pushover website regarding free/open source apps:
</blockquote>
When setting up the application you can use this [icon](https://home-assistant.io/images/favicon-192x192.png).
To use notifications, please see the [getting started with automation page](/getting-started/automation/).

View File

@ -25,17 +25,8 @@ The quickest way to retrieve your `chat_id` is visiting [https://api.telegram.or
The result set will include your chat ID as `id` in the `from` section:
```json
{
"ok":true,
"result":[
{
"update_id":254199982,
"message":{
"message_id":201,
"from":{
"id":123456789,
"first_name":"Your first name",
...
{"ok":true,"result":[{"update_id":254199982,
"message":{"message_id":27,"from":{"id":123456789,"first_name":"YOUR_FIRST_NAME YOUR_NICK_NAME","last_name":"YOUR_LAST_NAME","username":"YOUR_NICK_NAME"},"chat":{"id":123456789,"first_name":"YOUR_FIRST_NAME YOUR_NICK_NAME","last_name":"YOUR_LAST_NAME","username":"YOUR_NICK_NAME","type":"private"},"date":1678292650,"text":"test"}}]}
```
Another way to get your chat ID directly is described below:
@ -92,6 +83,27 @@ action:
- **username** (*Optional*): Username for an URL which require HTTP basic authentication.
- **password** (*Optional*): Username for an URL which require HTTP basic authentication.
### {% linkable_title Document support %}
```yaml
...
action:
service: notify.NOTIFIER_NAME
data:
title: Send a document
message: That's a example that sends a document.
data:
document:
file: /tmp/whatever.odf
caption: Picture Title xy
```
- **url** or **file** (*Required*): For local or remote path to an image.
- **caption** (*Optional*): The title of the image.
- **username** (*Optional*): Username for an URL which require HTTP basic authentication.
- **password** (*Optional*): Username for an URL which require HTTP basic authentication.
### {% linkable_title Location support %}
```yaml

View File

@ -11,9 +11,9 @@ logo: apcupsd.png
ha_category: Sensor
---
The `apcupsd` sensor platform to allow you to monitor a UPS (battery backup) by using data from the [apcaccess](http://linux.die.net/man/8/apcaccess) command.
The `apcupsd` sensor platform allows you to monitor a UPS (battery backup) by using data from the [apcaccess](http://linux.die.net/man/8/apcaccess) command.
To add this platform to your installation, add the following to your `configuration.yaml` file:
To use this sensor platform, you first have to set up [apcupsd](https://home-assistant.io/components/apcupsd/) and add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry

View File

@ -9,6 +9,8 @@ sharing: true
footer: true
logo: bloomsky.png
ha_category: Sensor
ha_release: 0.14
ha_iot_class: "Cloud Polling"
---
@ -33,7 +35,7 @@ sensor:
Configuration variables:
- **monitored_conditions** array *Required*: The sensors that you wish to monitor on all of your devices. Select from these options:
- **monitored_conditions** array (*Required*): The sensors that you wish to monitor on all of your devices. Select from these options:
- Humidity
- Luminance
- Night

View File

@ -10,10 +10,11 @@ footer: true
logo: command_line.png
ha_category: Sensor
ha_release: pre 0.7
ha_iot_class: "Local Polling"
---
A sensor platform that issues specific commands to get data. This might become our most powerful platform as it allows anyone to integrate any type of sensor into Home Assistant that can get data from the command line.
The `command_line` sensor platform that issues specific commands to get data. This might become our most powerful platform as it allows anyone to integrate any type of sensor into Home Assistant that can get data from the command line.
To enable it, add the following lines to your `configuration.yaml`:

View File

@ -9,13 +9,15 @@ sharing: true
footer: true
logo: avm.png
ha_category: System Monitor
ha_release: "0.27"
ha_release: 0.27
ha_iot_class: "Local Polling"
---
The `fritzbox_callmonitor` sensor monitors the call monitor exposed by [AVM Fritz!Box](http://avm.de/produkte/fritzbox/) routers
on TCP port 1012. It will assume the values 'idle', 'ringing', 'dialing', or 'talking',
with the phone numbers involved contained in the state attributes.
on TCP port 1012. It will assume the values `idle`, `ringing`, `dialing`, or `talking` with the phone numbers involved contained in the state attributes.
To activate the call monitor on your Fritz!Box, dial #96*5* from any phone connected to it.
To use the Fritz!Box call monitor in your installation, add the following to your `configuration.yaml` file:

View File

@ -53,6 +53,7 @@ sensor:
gas_secret: 'GAS_SECRET'
gas_type: imperial
gas_calorific: 38.2
```
Configuration variables:

View File

@ -7,11 +7,11 @@ sidebar: true
comments: false
sharing: true
footer: true
ha_category: sensor
ha_category: Sensor
ha_release: 0.27
---
The MH-Z19 is a small nondispersive infrared sensor that can measure CO2 sensors. High CO2 levels can lead to drowsiness, poor concentration, loss of attention or increased heart rate. Outside CO2 levels are usually between 250 and 350ppm, but inside levels can reach between 1000 and 5000 ppm. High CO2 levels indicate that you should increase ventilation.
The MH-Z19 is a small nondispersive infrared sensor that can measure CO2 sensors. High CO2 levels can lead to drowsiness, poor concentration, loss of attention or increased heart rate. The CO2 level outside is around 400ppm, but inside levels can reach between 1000 and 5000 ppm. High CO2 levels indicate that you should increase ventilation.
Check out the [Open Home Automation web site](https://www.open-homeautomation.com/2016/08/24/monitor-co2-levels-in-your-house/) for a quick guide how to connect the sensor to your PC or Raspberry Pi.

View File

@ -15,6 +15,10 @@ ha_release: pre 0.7
The `nest` sensor platform let you monitor sensors connected to your [Nest](https://nest.com) thermostat and/or your Nest Protect Smoke Alarm.
<p class='note'>
You must have the [Nest component](/components/nest/) configured to use those sensors.
</p>
To set it up, add the following information to your `configuration.yaml` file:
```yaml
@ -57,6 +61,3 @@ Configuration variables:
- 'co_status' # Nest Protect only
- 'smoke_status' # Nest Protect only
<p class='note'>
You must have the [Nest component](/components/nest/) configured to use this sensor.
</p>

View File

@ -15,6 +15,10 @@ ha_iot_class: "Cloud Poll"
The `nest` weather sensor platform let you monitor current weather conditions based on the location of your [Nest](https://nest.com) thermostat.
<p class='note'>
You must have the [Nest component](/components/nest/) configured to use those sensors.
</p>
To set it up, add the following information to your `configuration.yaml` file:
```yaml
@ -37,4 +41,3 @@ Configuration variables:
- 'wind_speed'
- 'wind_direction'
<p class='note'>You must have the [Nest component](/components/nest/) configured to use this sensor.</p>

View File

@ -37,8 +37,8 @@ sensor:
Configuration variables:
- **host** (*Required*): This is the base URL of your SABnzbd instance including the port number if not running on 80, eg. http://192.168.1.32:8124/
- **port** (*Optional*): The port to use whith SABnzbd instance. Defaults to 8080.
- **host** (*Required*): The host where your SABnzbd instance is running, eg. 192.168.1.32
- **port** (*Optional*): The port to use whith SABnzbd instance. Defaults to `8080`.
- **api_key** (*Required*): Name that will be used in the frontend for the pin.
- **name** (*Optional*): The name to use when displaying this SABnzbd instance.
- **monitored_variables** array (*Required*): List of the monitored variables.
@ -48,3 +48,16 @@ Configuration variables:
- **queue_remaining**: Remaining elements in the queue
- **disk_size**: Disk size of the storage location
- **disk_free**: Free disk space at the sotrage location
Note that this will create sensors under the name 'sab' and NOT 'sabnzbd' as follows:
```
- sensor.sab_status
- sensor.sab_speed
- sensor.sab_queue
- sensor.sab_left
- sensor.sab_disk
- sensor.sab_disk_free
```
As always, you can determine the names of sensors by looking at the dev-state page `< >` in the web interface.

View File

@ -11,7 +11,7 @@ ha_category: System Monitor
ha_release: "0.20"
---
The `supervisord` platform allows you to track the states of [Supervisor](http://supervisord.org/).
The `supervisord` platform allows you to track the states of [Supervisord](http://supervisord.org/).
To use this sensor in your installation, add the following to your `configuration.yaml` file:

View File

@ -10,10 +10,11 @@ footer: true
logo: command_line.png
ha_category: Switch
ha_release: pre 0.7
ha_iot_class: "Local Polling"
---
A switch platform that issues specific commands when it is turned on and off. This might very well become our most powerful platform as it allows anyone to integrate any type of switch into Home Assistant that can be controlled from the command line, including calling other scripts!
The `command_line` switch platform issues specific commands when it is turned on and off. This might very well become our most powerful platform as it allows anyone to integrate any type of switch into Home Assistant that can be controlled from the command line, including calling other scripts!
To enable it, add the following lines to your `configuration.yaml`:

View File

@ -0,0 +1,112 @@
---
layout: page
title: "Netio Switch"
description: "Instructions how to integrate Netio switches into Home Assistant."
date: 2016-09-02 19:00
sidebar: true
comments: false
sharing: true
footer: true
logo: netio.png
ha_category: Switch
ha_iot_class: "Local Polling"
ha_release: 0.24
---
The `netio` switch platform allows you to control your [Netio](http://www.netio-products.com/en/overview/) Netio4, Netio4 All, and Netio 230B. These are smart outlets controllable through ethernet and/or WiFi that reports consumptions (Netio4all).
To use Netio devices in your installation, add the following to your `configuration.yaml` file:
```
# Example configuration.yaml entry
switch:
- platform: netio
host: 192.168.1.43
port: 1234
username: user
password: pwd
outlets:
1: Free
2: TV
4: Lamp
```
Configuration variables:
- **host** (*Required*): The IP address of your Netio plug, eg. http://192.168.1.32
- **port** (*Optional*): The port to communicate with the switch. Defaults to `1234`.
- **username** (*Required*): The username for your plug.
- **password** (*Required*): The password for your plug.
- **outlets** (*Required*) array: List of all outlets.
- **[No.]: [Name]** (*Required*): Identification of an outlet.
To get pushed updates from the Netio devices, one can add this Lua code in the device interface as an action triggered on "Netio" "System variables updated"
with an 'Always' schedule:
```lua
-- this will send socket and consumption status updates via CGI
-- to given address. Associate with 'System variables update' event
-- to get consumption updates when they show up
local address='ha:8123'
local path = '/api/netio/<host>'
local output = {}
for i = 1, 4 do for _, what in pairs({'state', 'consumption',
'cumulatedConsumption', 'consumptionStart'}) do
local varname = string.format('output%d_%s', i, what)
table.insert(output,
varname..'='..tostring(devices.system[varname]):gsub(" ","|"))
end end
local qs = table.concat(output, '&')
local url = string.format('http://%s%s?%s', address, path, qs)
devices.system.CustomCGI{url=url}
```
The `dlink` switch platform allows you to control the state of your [D-Link Wi-Fi Smart Plugs](http://us.dlink.com/product-category/home-solutions/connected-home/smart-plugs/).
Supported devices (tested):
- DSP-W215
- DSP-W110
To use your D-Link smart plugs in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
switch:
platform: dlink
host: IP_ADRRESS
name: D-Link plug
username: YOUR_USERNAME
password: YOUR_PASSWORD
```

View File

@ -84,7 +84,7 @@ switch:
switches:
blind:
friendly_name: 'Blind'
value_template: {% raw %}'{{ state }}'{% endraw %}
value_template: {% raw %}'{{ is_state_attr("switch.blind_toggle", "sensor_state", "on") }}'{% endraw %}
turn_on:
service: switch.toggle
entity_id: switch.blind_toggle

View File

@ -28,9 +28,9 @@ thermostat:
ipaddress: YOUR_IPADDRESS
port: YOUR_PORT
tstats:
1:
id: THERMOSTAT_ID
name: THERMOSTAT_NAME
- 1:
id: THERMOSTAT_ID
name: THERMOSTAT_NAME
```
A single interface can handle up to 32 connected devices.

View File

@ -1,41 +0,0 @@
---
layout: page
title: "Example using use_trigger_values"
description: "Basic example how to use use_trigger_values in automation"
date: 2015-10-08 19:05
sidebar: true
comments: false
sharing: true
footer: true
ha_category: Automation Examples
---
Turn on lights during daytime when it's dark enough < 200 lux.
```yaml
automation:
- alias:
trigger:
- platform: numeric_state
entity_id: sensor.sensor_luminance
below: 200
- platform: time
after: "08:00"
before: "23:00"
condition: use_trigger_values
action:
service: homeassistant.turn_on
entity_id: group.basic_lights
automation 2:
- alias:
trigger:
- platform: numeric_state
entity_id: sensor.sensor_luminance
above: 200
- platform: time
after: "23:00"
action:
service: homeassistant.turn_off
entity_id: group.basic_lights
```

View File

@ -10,7 +10,9 @@ footer: true
ha_category: Automation Examples
---
The [iCloud](/components/device_tracker.icloud/) is gathering various details about your device including the battery level. To display it in the Frontend use a [template sensor](/components/sensor.template/).
iOS Devices
If you have a device running iOS (iPhone, iPad, etc), The [iCloud](/components/device_tracker.icloud/) is gathering various details about your device including the battery level. To display it in the Frontend use a [template sensor](/components/sensor.template/).
```yaml
- platform: template
@ -27,6 +29,8 @@ The [iCloud](/components/device_tracker.icloud/) is gathering various details ab
The `else` part is used to have the sensor keep it's last state if the newest [iCloud](/components/device_tracker.icloud/) update doesn't have any battery state in it (which happens sometimes). Otherwise the sensor will be blank.
Android and iOS Devices
While running the [Owntracks](/components/device_tracker.owntracks/) device tracker you can retrieve the battery level with a MQTT sensor.
```yaml

View File

@ -19,6 +19,7 @@
<li>{% active_link /developers/development_checklist/ Checklist %}</li>
<li>{% active_link /developers/development_testing/ Testing %}</li>
<li>{% active_link /developers/development_catching_up/ Catching up with Reality %}</li>
<li>{% active_link /developers/development_validation/ Validation %}</li>
</ul>
</li>
<li>

View File

@ -6,14 +6,14 @@ date: 2016-07-28 06:00:00 +0200
date_formatted: "July 28, 2016"
author: Fabian Affolter
comments: true
categories: How-To
categories: How-To ESP8266 Micropython
og_image: /images/blog/2016-07-micropython/social.png
---
<img src='/images/blog/2016-07-micropython/micropython.png' style='clear: right; border:none; box-shadow: none; float: right; margin-bottom: 12px;' width='200' />
The first release of Micropython for ESP8266 was delivered a couple of weeks ago. The [documentation](http://docs.micropython.org/en/latest/esp8266/esp8266_contents.html) covers a lot of ground. This post is providing only a little summary which should get you started.
Until a couple of weeks ago, the pre-built MicroPython binary for the ESP8266 was only available to backers. This has changed now and it is available to the public for [download](https://micropython.org/download/#esp8266).
Until a couple of weeks ago, the pre-built MicroPython binary for the ESP8266 was only available to backers of the Kickstarter campaign. This has changed now and it is available to the public for [download](https://micropython.org/download/#esp8266).
<!--more-->
@ -57,7 +57,7 @@ Type "help()" for more information.
```
<p class='note'>
The public build of the firmware may be different than the firmware distributed to the backers of the campaign. Especially in regard of the [available modules](http://docs.micropython.org/en/latest/esp8266/py-modindex.html), turned on debug messages, and alike. Also, the WebREPL may not be started by default.
The public build of the firmware may be different than the firmware distributed to the backers of the Kickstarter campaign. Especially in regard of the [available modules](http://docs.micropython.org/en/latest/esp8266/py-modindex.html), turned on debug messages, and alike. Also, the WebREPL may not be started by default.
</p>
Connect a LED to pin 5 (or another pin of your choosing) to check if the ESP8266 is working as expected.
@ -117,7 +117,7 @@ If you reboot, you should see your current IP address in the terminal.
First let's create a little consumer for Home Assistant sensor's state. The code to place in `main.py` is a mixture of code from above and the [RESTful API](/developers/rest_api/) of Home Assistant. If the temperature in the kitchen is higher than 20 °C then the LED connected to pin 5 is switched on.
<p class='note'>
If a module is missing then you need to download is it from [MicroPython Library overview](https://github.com/micropython/micropython-lib) and upload it to the ESP8266 with `webrepl_cli.py` manually.
If a module is missing then you need to download it from the [MicroPython Library overview](https://github.com/micropython/micropython-lib) and upload it to the ESP8266 with `webrepl_cli.py` manually.
</p>
```python

View File

@ -46,7 +46,7 @@ Now that we have that great news out of the way, onto this week's release which
## {% linkable_title 0.27 %}
While this release is **#Amazing**, we had to break a few eggs (now you understand the title reference!) to make a beautiful omelette (using home automation obviously) so some platforms and components have needed to introduce breaking changes. Please make sure to read the Breaking Changes section below.
While this release is **#Amazing**, we had to break a few eggs (now you understand the title reference!) to make a beautiful omelette (using home automation obviously) so some platforms and components have needed to introduce breaking changes. Please make sure to read the [Breaking Changes](#breaking-changes) section below.
### {% linkable_title Hue Bridge Emulation %}
Thanks to [@mgbowen] we now have the functionality previously provided by [@blocke]'s [ha-local-echo](https://github.com/blocke/ha-local-echo) [built right into Home Assistant](/components/emulated_hue/)! This means that for those of you with devices that either lack or have a subpar integration with Home Assistant (looking at you Amazon Echo) you can now have a better experience by having your Home Assistant pretend to be a Hue Bridge. Personally, I have used [@auchter]'s [Haaska](https://github.com/auchter/haaska) previously but found that it was slow to respond and sometimes failed entirely. With the new [`emulated_hue`](/components/emulated_hue/) component, you can have local control of entities through Amazon Echo.
@ -55,7 +55,7 @@ Thanks to [@mgbowen] we now have the functionality previously provided by [@bloc
We have some excellent upgrades to the notification system coming to you in 0.27, courtesy of me, [@robbiet480].
#### {% linkable_title HTML5 Push Notifications %}
This release adds support for [HTML5] push notifications on Chrome/Firefox/Opera on both desktop and Android devices. This means that you can send a notification to your phone even your Home Assistant is not in your mobile browser. When using Chrome you can even include 2 action buttons so that you can control your Home Assistant from your phone's lock screen, allowing you to do things like sound alarms or unlock your front door, all without leaving the notification. Thanks again to me ([@robbiet480]) and Paulus ([@balloob]) for all the hard work on this!
This release adds support for [HTML5] push notifications on Chrome/Firefox/Opera on both desktop and Android devices. This means that you can send a notification to your phone even when your Home Assistant is not open in your mobile browser. When using Chrome you can even include 2 action buttons so that you can control your Home Assistant from your phone's lock screen, allowing you to do things like sound alarms or unlock your front door, all without leaving the notification. Thanks again to me ([@robbiet480]) and Paulus ([@balloob]) for all the hard work on this!
<p class='img'>
<img src='{{site_root}}/images/screenshots/html5-notify.png' />
@ -132,6 +132,8 @@ Along with the new `climate` component, [@Teagan42] and I ([@robbiet480]) decide
- Forecast.io entity IDs are now like `sensor.forecastio_temperature`. Previously they were like `sensor.weather_temperature`. Apologies for this change, but we needed to make Forecast.io more generic now that we have many weather platforms.
- The [Loop Energy][Loop] sensor configuration format changed slightly, please reformat based on the revised documentation.
- The configuration for the [SABnzbd] sensor has slightly changed. The prefix `type:` is no longer required for monitored variables.
- The [IMAP] sensor now uses `username` instead of `user`.
- The [NZBGet] sensor has had so many changes I can't list them all. Please refer to the documentation for more info.
### {% linkable_title Deprecations %}
- Using the `thermostat` and `hvac` components has been deprecated. Please migrate to the new `climate` component. (just change the component name, the configurations are compatible)
@ -139,7 +141,7 @@ Along with the new `climate` component, [@Teagan42] and I ([@robbiet480]) decide
## {% linkable_title Finishing up %}
Thanks all for sticking with me to the end. I'll be taking over a lot of Paulus's (@balloob) work while he is gone, but as I said, don't worry because he'll be back well before 0.28.0 comes out. Hopefully you didn't find this jovial blog post too jarring from our standard style, I just wrote a lot of this at 2am after being awake for almost 20 hours, so I'm a little loopy hahaha 😴.
Thanks all for sticking with me to the end. I'll be taking over a lot of Paulus's ([@balloob]) work while he is gone, but as I said, don't worry because he'll be back well before 0.28.0 comes out. Hopefully you didn't find this jovial blog post too jarring from our standard style, I just wrote a lot of this at 2am after being awake for almost 20 hours, so I'm a little loopy hahaha 😴.
Also, thanks as always to our developer contributors, documentation contributors, but most of all our users! This would've just been a script that Paulus (@balloob) used to control his lights at home if we didn't have your enthusiasm.
@ -153,11 +155,55 @@ Talk to you soon on Gitter and in your pull request comments!
(p.s. To those of you that scrolled directly to the bottom to get your present, just know that you didn't earn it like the others did. 😄)
## {% linkable_title Hotfix 0.27.1 - August 30 %}
- Migrate APCUPSd to voluptuous ([@fabaff])
- Ecobee operation mode fix ([@turbokongen])
- update ha-ffmpeg version to 0.9 ([@pvizeli])
- Device tracker component & platform validation. No more home_range. ([@kellerza])
- Added option to use effect:random for Flux Led light bulbs ([@tchellomello])
- Use voluptuous for smtp ([@pvizeli])
- Upgrade sendgrid to 3.2.10 ([@fabaff])
- Upgrade TwitterAPI to 2.4.2 ([@fabaff])
- Fix bug in wemo discovery caused by voluptuous addition. ([@pavoni])
- Bug fix for asuswrt device_tracker. ([@Danielhiversen])
- Remove units for humidity in Wundeground sensor ([@arsaboo])
- Fix media_player descriptions and select_source ([@MartinHjelmare])
- Allow user to configure server id to perform speed test against ([@Teagan42])
- Bug fix for asuswrt device_tracker. ([@Danielhiversen])
- More Ecobee operation mode fixes ([@turbokongen])
- Map Modes to setpoint indexes ([@turbokongen])
- fix voluptuous and cover autodiscovery ([@pvizeli])
- Fixes wrong statevalue and problem with zwave setpoint ([@turbokongen])
## {% linkable_title Hotfix 0.27.2 - September 3 %}
### home-assistant
- Ble fix ([#3019](https://github.com/home-assistant/home-assistant/pull/3019)) - ([@open-homeautomation](https://github.com/open-homeautomation))
- Reset insteon hub ([#3062](https://github.com/home-assistant/home-assistant/pull/3062)) - ([@Teagan42](https://github.com/Teagan42))
- Host should be optional for apcupsd component ([#3072](https://github.com/home-assistant/home-assistant/pull/3072)) - ([@Danielhiversen](https://github.com/Danielhiversen))
- Zwave climate Bugfix: if some setpoints have different units, we should fetch the o… ([#3078](https://github.com/home-assistant/home-assistant/pull/3078)) - ([@turbokongen](https://github.com/turbokongen))
- Bugfix unit fix ([#3083](https://github.com/home-assistant/home-assistant/pull/3083)) - ([@turbokongen](https://github.com/turbokongen))
- Ecobee humidity slider ([#3088](https://github.com/home-assistant/home-assistant/pull/3088)) - ([@turbokongen](https://github.com/turbokongen))
- Zwave Climate Bugfix: If device was off target temp was null. Default to Heating setpoint ([#3091](https://github.com/home-assistant/home-assistant/pull/3091)) - ([@turbokongen](https://github.com/turbokongen))
- Climate and cover bugfix ([#3097](https://github.com/home-assistant/home-assistant/pull/3097)) - ([@turbokongen](https://github.com/turbokongen))
- Add missing docstrings (fix PEP257 issues) ([#3098](https://github.com/home-assistant/home-assistant/pull/3098)) - ([@fabaff](https://github.com/fabaff))
- Allow None MAC to be loaded from known_devices ([#3102](https://github.com/home-assistant/home-assistant/pull/3102)) - ([@kellerza](https://github.com/kellerza))
- fix homematic climate implementation ([#3114](https://github.com/home-assistant/home-assistant/pull/3114)) - ([@pvizeli](https://github.com/pvizeli))
- Fixed Homematic cover ([#3116](https://github.com/home-assistant/home-assistant/pull/3116)) - ([@danielperna84](https://github.com/danielperna84))
- Bugfix. climate and covermqt ([#3130](https://github.com/home-assistant/home-assistant/pull/3130)) - ([@turbokongen](https://github.com/turbokongen))
### home-assistant-polymer
- Fix missing attributes on the climate and HVAC more info cards ([7e455e2](https://github.com/home-assistant/home-assistant-polymer/commit/7e455e2be1cb7cc4f55628b063019bea548a3182)) - ([@robbiet480](https://github.com/robbiet480))
- Add a default icon for the fan component ([#101](https://github.com/home-assistant/home-assistant-polymer/pull/101)) - ([@robbiet480](https://github.com/robbiet480))
[@arsaboo]: https://github.com/arsaboo
[@auchter]: https://github.com/auchter
[@balloob]: https://github.com/balloob
[@blocke]: https://github.com/blocke
[@BluGeni]: https://github.com/BluGeni
[@Danielhiversen]: https://github.com/Danielhiversen
[@danielperna84]: https://github.com/danielperna84
[@DavidMStraub]: https://github.com/DavidMStraub
[@dpford]: https://github.com/dpford
@ -166,6 +212,7 @@ Talk to you soon on Gitter and in your pull request comments!
[@jnewland]: https://github.com/jnewland
[@Juggels]: https://github.com/Juggels
[@kellerza]: https://github.com/kellerza
[@MartinHjelmare]: https://github.com/MartinHjelmare
[@mcdeck]: https://github.com/mcdeck
[@meatz]: https://github.com/meatz
[@mgbowen]: https://github.com/mgbowen
@ -179,6 +226,7 @@ Talk to you soon on Gitter and in your pull request comments!
[@roidayan]: https://github.com/roidayan
[@roidayan]: ttps://github.com/roidayan
[@shmuelzon]: https://github.com/shmuelzon
[@tchellomello]: https://github.com/tchellomello
[@Teagan42]: https://github.com/Teagan42
[@technicalpickles]: https://github.com/technicalpickles
[@tobiebooth]: https://github.com/tobiebooth
@ -221,3 +269,4 @@ Talk to you soon on Gitter and in your pull request comments!
[attachments]: /components/notify.slack/
[Hue]: /components/emulated_hue/
[fan]: /components/fan/
[IMAP]: /components/sensor.imap/

View File

@ -0,0 +1,106 @@
---
layout: post
title: "ESP8266 and MicroPython - Part 2"
description: "Using MicroPython and MQTT on ESP8266 based devices and Home Assistant."
date: 2016-08-31 06:17:25 +0200
date_formatted: "August 31, 2016"
author: Fabian Affolter
comments: true
categories: How-To MQTT ESP8266 Micropython
og_image: /images/blog/2016-07-micropython/social.png
---
<img src='/images/blog/2016-07-micropython/micropython.png' style='clear: right; border:none; box-shadow: none; float: right; margin-bottom: 12px;' width='200' />
So, part 1 of [ESP8266 and MicroPython](/blog/2016/07/28/esp8266-and-micropython-part1/) was pretty lame, right? Instead of getting information out of Home Assistant we are going a step forward and create our own sensor which is sending details about its state to a Home Assistant instance.
<!--more-->
Beside [HTTP POST](https://en.wikipedia.org/wiki/POST_(HTTP)) requests, MQTT is the quickest way (from the author's point of view) to publish information with DIY devices.
You have to make a decision: Do you want to pull or to poll? For slowly changing values like temperature it's perfectly fine to wait a couple of seconds to retrieve the value. If it's a motion detector the state change should be available instantly. This means the sensor must take initiative.
An example for pulling is [aREST](/components/sensor.arest/). This is a great way to work with the ESP8266 based units and the Ardunio IDE.
### {% linkable_title MQTT %}
You can find a simple examples for publishing and subscribing with MQTT in the [MicroPython](https://github.com/micropython/micropython-lib) library overview in the section for [umqtt](https://github.com/micropython/micropython-lib/tree/master/umqtt.simple).
The example below is adopted from the work of [@davea](https://github.com/davea) as we don't want to re-invent the wheel. The configuration feature is crafty and simplyfies the code with the usage of a file called `/config.json` which stores the configuration details. The ESP8266 device will send the value of a pin every 5 seconds.
```python
import machine
import time
import ubinascii
import webrepl
from umqtt.simple import MQTTClient
# These defaults are overwritten with the contents of /config.json by load_config()
CONFIG = {
"broker": "192.168.1.19",
"sensor_pin": 0,
"client_id": b"esp8266_" + ubinascii.hexlify(machine.unique_id()),
"topic": b"home",
}
client = None
sensor_pin = None
def setup_pins():
global sensor_pin
sensor_pin = machine.ADC(CONFIG['sensor_pin'])
def load_config():
import ujson as json
try:
with open("/config.json") as f:
config = json.loads(f.read())
except (OSError, ValueError):
print("Couldn't load /config.json")
save_config()
else:
CONFIG.update(config)
print("Loaded config from /config.json")
def save_config():
import ujson as json
try:
with open("/config.json", "w") as f:
f.write(json.dumps(CONFIG))
except OSError:
print("Couldn't save /config.json")
def main():
client = MQTTClient(CONFIG['client_id'], CONFIG['broker'])
client.connect()
print("Connected to {}".format(CONFIG['broker']))
while True:
data = sensor_pin.read()
client.publish('{}/{}'.format(CONFIG['topic'],
CONFIG['client_id']),
bytes(str(data), 'utf-8'))
print('Sensor state: {}'.format(data))
time.sleep(5)
if __name__ == '__main__':
load_config()
setup_pins()
main()
```
Subscribe to the topic `home/#` or create a [MQTT sensor](/components/sensor.mqtt/) to check if the sensor values are published.
```bash
$ mosquitto_sub -h 192.168.1.19 -v -t "home/#"
```
```yaml
sensor:
- platform: mqtt
state_topic: "home/esp8266_[last part of the MAC address]"
name: "MicroPython"
```
[@davea](https://github.com/davea) created [sonoff-mqtt](https://github.com/davea/sonoff-mqtt). This code will work on ESP8622 based devices too and shows how to use a button to control a relay.

View File

@ -9,11 +9,11 @@ sharing: true
footer: true
---
The `configuration.yaml` file a plain-text file thus it is readable for everyone who has access to the file. The file contains passwords and API tokens which need to be redacted if you want to share your configuration. This separation can also help you to keep easier track of your passwords and API keys (as they are all stored at one place and no longer spread across the `configuration.yaml` file) if you don't want to [split up your configuration](/topics/splitting_configuration/).
The `configuration.yaml` file is a plain-text file, thus it is readable by anyone who has access to the file. The file contains passwords and API tokens which need to be redacted if you want to share your configuration. By using `!secrets` you can remove any private information from you configuration files. This separation can also help you to keep easier track of your passwords and API keys. As they are all stored at one place and no longer spread across the `configuration.yaml` file or even multiple yaml files if you [split up your configuration](/topics/splitting_configuration/).
### {% linkable_title Using secrets.yaml %}
The workflow for the outsourcing in the `secrets.yaml` is very similar to the [splitting of the configuration](/topics/splitting_configuration/). Create a `secrets.yaml` file in your Home assistant configuration directory (The location of the folder differs between operating systems: on OS X and Linux it's `~/.homeassistant` and on Windows it's `%APPDATA%/.homeassistant`).
The workflow for moving private information to `secrets.yaml` is very similar to the [splitting of the configuration](/topics/splitting_configuration/). Create a `secrets.yaml` file in your Home assistant configuration directory (The location of the folder differs between operating systems: on OS X and Linux it's `~/.homeassistant` and on Windows it's `%APPDATA%/.homeassistant`).
The entries for password and API keys in the `configuration.yaml` file usually looks like the example below.
@ -32,10 +32,30 @@ http:
The `secrets.yaml` file contains the corresponding password assigned to the identifier.
```yaml
logger: debug
http_password: YOUR_PASSWORD
```
### {% linkable_title Debugging secrets %}
When you start splitting your configuration into multiple files, you might end up with configuration in sub folders. Secrets will be resolved in this order:
- A `secrets.yaml` located in the same folder as the yaml file referencing the secret,
- next, parent folders will be searched for a `secrets.yaml` file with the secret, stopping at the folder with the main `configuration.yaml`,
- lastly, `keyring` will be queried for the secret (more info below)
To see where secrets are being loaded from you can either add an option to your `secrets.yaml` file or use the `check_config` script.
*Option 1*: Print where secrets are retrieved from to the Home Assistant log by adding the following to `secrets.yaml`:
```yaml
logger: debug
```
This will not print the actual secret's value to the log.
*Option 2*: View where secrets are retrieved from and the contents of all `secrets.yaml` files used, you can use the `check_config` script from the command line:
```bash
hass --script check_config --secrets
```
This will print all your secrets
### {% linkable_title Storing passwords in a keyring managed by your OS %}
Using [Keyring](http://pythonhosted.org/keyring/) is an alternative way to `secrets.yaml`. They can be managed from the command line via the keyring script.
@ -57,7 +77,7 @@ Create an entry in your keyring.
$ hass --script keyring set http_password
```
If you launch home Assistant now, you will be prompted for the keyring password to unlock your keyring.
If you launch Home Assistant now, you will be prompted for the keyring password to unlock your keyring.
```bash
$ hass

View File

@ -15,7 +15,7 @@ First off, several community members have sanitized (read: without api keys/pass
As commenting code doesn't always happen, please read on for the details.
Now despite the logical assumption that the `configuration.yaml` will be replaced by this process it will in fact remain all be it in a much less cluttered form.
Now despite the logical assumption that the `configuration.yaml` will be replaced by this process it will in fact remain, albeit in a much less cluttered form.
In this lighter version we will still need what could be called the core snippet:
@ -179,17 +179,23 @@ That about wraps it up.
If you have issues checkout `home-assistant.log` in the configuration directory as well as your indentations. If all else fails, head over to the [Gitter Chatroom](https://gitter.im/balloob/home-assistant) and ask away.
### {% linkable_title Debugging multiple configuration files %}
If you have many configuration files, the `check_config` script allows you to see how Home Assistant interprets them:
- Listing all loaded files: `hass --script --check_config --files`
- Viewing a component's config: `hass --script --check_config --info light`
- Or all components' config: `hass --script check_config --info all`
You can get help from the command line using: `hass --script check_config --help`
### {% linkable_title Advanced Usage %}
We offer four advanced options to include whole directories at once.
- `!include_dir_list` will return the content of a directory as a list with each file content being an entry in the list.
- `!include_dir_named` will return the content of a directory as a dictionary which maps filename => content of file.
- `!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.
`!include_dir_list` will return content of a directory as a list with each file content being an entry in the list.
`!include_dir_named` will return content of a directory as a dictionary which maps filename => content of file.
`!include_dir_merge_list` will return 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 content of a directory as a dictionary by loading each file and merging it into 1 big dictionary.
#### {% linkable_title Example: `!include_dir_list` %}

View File

@ -9,9 +9,9 @@ sharing: true
footer: true
---
Components that interact with devices are called [Entity Components](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/helpers/entity_component.py). They are structured in core- and platform logic. This allows the same logic to handle a light to be used by different brands.
Components that interact with devices are called "[Entity Components](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/helpers/entity_component.py)". They are structured in core- and platform logic. This allows the same logic to handle a light to be used by different brands.
For example, the built-in `switch` component consists of various platform in [`homeassistant/components/switch/`](https://github.com/home-assistant/home-assistant/tree/master/homeassistant/components/switch). The file `__init__.py` contains the core logic of all platform and the `vendor_name.py` files only the relevant platform code.
For example, the built-in `switch` component consists of various platforms in [`homeassistant/components/switch/`](https://github.com/home-assistant/home-assistant/tree/master/homeassistant/components/switch). The file `__init__.py` contains the core logic of all platform and the `vendor_name.py` files only the relevant platform code.
If you are planning to add support for a new type of device to an existing component, you can get away with only writing platform logic. Have a look at how the component works with other platforms and create a similar file for the platform that you would like to add:

View File

@ -13,7 +13,7 @@ After loading, the bootstrapper will call `setup(hass, config)` method on the co
### {% linkable_title hass: the Home Assistant instance %}
The Home Assistant instance contains three objects to help you interact with the system.
The Home Assistant instance contains four objects to help you interact with the system.
| Object | Description |
| ------ | ----------- |

View File

@ -19,7 +19,7 @@ Beside the [voluptuous](https://pypi.python.org/pypi/voluptuous) default types a
- Entity ID: `entity_id` and `entity_ids`
- Numbers: `small_float` and `positive_int`
- Time: `time`, `time_zone`
- Misc: `template`, `slug`, `temperature_unit`, `latitude`, `longitude`, `isfile`, `sun_event`, `ensure_list`, and `icon`
- Misc: `template`, `slug`, `temperature_unit`, `latitude`, `longitude`, `isfile`, `sun_event`, `ensure_list`, `port`, `url`, and `icon`
To validate plaforms using [MQTT](/components/mqtt/) there are `valid_subscribe_topic` and `valid_publish_topic` present.

View File

@ -11,7 +11,7 @@ footer: true
The website you're reading now is the home of Home Assistant: [https://home-assistant.io](https://home-assistant.io). This is the place where we provide documentation and additional details about Home Assistant for end users and developers.
home-assistant.io is built using [Jekyll](http://github.com/mojombo/jekyll). The pages are written in [markdown](http://daringfireball.net/projects/markdown/); to add a page you don't need to know about HTML or the like.
home-assistant.io is built using [Jekyll](http://github.com/mojombo/jekyll) and [those available dependencies](https://pages.github.com/versions/). The pages are written in [markdown](http://daringfireball.net/projects/markdown/); to add a page you don't need to know about HTML or the like.
The link "**Edit this page on GitHub**" allows one to edit pages without creating a fork.

View File

@ -37,7 +37,7 @@ automation:
condition:
condition: state
entity_id: group.all_devices
state: home
state: 'home'
action:
service: light.turn_on
```
@ -66,7 +66,7 @@ automation:
condition:
condition: state
entity_id: group.all_devices
state: home
state: 'home'
action:
service: light.turn_on
entity_id: group.living_room
@ -93,7 +93,7 @@ automation:
condition:
condition: state
entity_id: group.all_devices
state: home
state: 'home'
action:
service: homeassistant.turn_on
entity_id: group.living_room

View File

@ -23,14 +23,14 @@ If you want to use a different folder for configuration, use the config command
Inside your configuration folder is the file `configuration.yaml`. This is the main file that contains which components will be loaded and what their configuration is. Throughout the documentation you will find snippets that you can add to your configuration file to enable that functionality.
If you run into trouble while configuring Home Assistant, have a look at [the configuration troubleshooting page](/getting-started/troubleshooting-configuration/) and at the [configuration.yaml examples](/cookbook/#example-configurationyaml).
<p class='note'>
You will have to restart Home Assistant for changes to `configuration.yaml` take effect.
You will have to restart Home Assistant for changes to `configuration.yaml` to take effect.
</p>
If you run into trouble while configuring Home Assistant, have a look at the [configuration troubleshooting page](/getting-started/troubleshooting-configuration/) and at the [configuration.yaml examples](/cookbook/#example-configurationyaml).
<p class='note tip'>
Install colorlog (`$ pip3 install colorlog`) to make the console output easier to read, hence also easier to catch errors and warnings.
Test any changes to your configuration files from the command line with `hass --script check_config`. This script allows you to test changes without the need to restart Home Assistant.
</p>
### [Next step: Get familiar with YAML &raquo;](/getting-started/yaml/)

View File

@ -19,26 +19,27 @@ Whenever a component or configuration option results in a warning, it will be st
When a component does not show up, many different things can be the case. Before you try any of these steps, make sure to look at the `home-assistant.log` file and see if there are any errors related to your component you are trying to set up.
If you have incorrect entries in your configuration files you can use the `check_config` script to assist in identifying them: `hass --script check_config`.
#### {% linkable_title Problems with the configuration %}
One of the most common problems with Home Assistant is an invalid `configuration.yaml` file.
- You can test your configuration using [this online YAML parser](http://yaml-online-parser.appspot.com/) or [YAML Lint](http://www.yamllint.com/).
- You can test your configuration using the command line with: `hass --script check_config`
- You can verify your configuration's yaml structure using [this online YAML parser](http://yaml-online-parser.appspot.com/) or [YAML Lint](http://www.yamllint.com/).
- To learn more about the quirks of YAML, read [YAML IDIOSYNCRASIES](https://docs.saltstack.com/en/latest/topics/troubleshooting/yaml_idiosyncrasies.html) by SaltStack (the examples there are specific to SaltStack, but do explain YAML issues well).
`configuration.yaml` does not allow multiple sections to have the same name. If you want a specific platform to be loaded twice, append a [number or string](/getting-started/devices/#style-2) to the name or nest them using [this style](/getting-started/devices/#style-1).
`configuration.yaml` does not allow multiple sections to have the same name. If you want to load multiplte platforms for one component, you can append a [number or string](/getting-started/devices/#style-2-list-each-device-separately) to the name or nest them using [this style](/getting-started/devices/#style-1-collect-every-entity-under-the-parent):
```yaml
sensor:
platform: forecast
...
sensor 2:
platform: bitcoin
...
- platform: forecast
...
- platform: bitcoin
...
```
Another common problem is that a required configuration setting is missing. If this is the case, the component will report this to `home-assistant.log`. You can have a look at [the component page](/components/) for instructions on how to setup the components.
Another common problem is that a required configuration setting is missing. If this is the case, the component will report this to `home-assistant.log`. You can have a look at [the various component pages](/components/) for instructions on how to setup the components.
If you find any errors or want to expand the documentation, please [let us know](https://github.com/home-assistant/home-assistant.io/issues).

View File

@ -21,6 +21,8 @@ If you are able to successfully run `python3 --version` but not `pip3`, install
$ python3 -m pip install homeassistant
```
On a Debian system, you can also install python3 by `sudo apt-get install python3`, and pip3 by `sudo apt-get install python3-pip`.
#### {% linkable_title No module named pip %}
[Pip](https://pip.pypa.io/en/stable/) should come bundled with the latest Python 3 but is omitted by some distributions. If you are unable to run `python3 -m pip --version` you can install `pip` by [downloading the installer](https://bootstrap.pypa.io/get-pip.py) and running it with Python 3:
@ -28,6 +30,10 @@ $ python3 -m pip install homeassistant
$ python3 get-pip.py
```
#### {% linkable_title libyaml is not found or a compiler error %}
On a Debian system, install the Python 3 YAML library by `sudo apt-get install python3-yaml`.
#### {% linkable_title distutils.errors.DistutilsOptionError: must supply either home or prefix/exec-prefix -- not both %}
This is a known issue if you're on a Mac using Homebrew to install Python. Please follow [these instructions](https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Homebrew-and-Python.md#note-on-pip-install---user) to resolve it.

View File

@ -9,6 +9,22 @@ sharing: true
footer: true
---
You may wish to modify the zwave settings ozw*.xml file in your .homeassistant root folder, or certain situations/devices may require it (i.e. Aeon Multisensor 6). To do this, utilize [Open-Zwave Control Panel](https://github.com/OpenZWave/open-zwave-control-panel). Alternatively, use [Domoticz](https://www.domoticz.com/), which incorporates the Open-Zwave Control Panel project into an easy to use Raspberry Pi image.
You may wish to modify the Z-Wave settings in your `ozw*.xml` file stored in the `.homeassistant` directory, or certain situations/devices may require it (i.e. Aeon Multisensor 6). To do this, utilize [Open-Zwave Control Panel](https://github.com/OpenZWave/open-zwave-control-panel). Alternatively, use [Domoticz](https://www.domoticz.com/), which incorporates the Open-Zwave Control Panel project into an easy to use Raspberry Pi image.
The reasoning for using these tools is that your Zwave controller stores the values and data that are used to control the network. The XML file in the .homeassistant folder acts as a settings/values cache for the zwave network, so modifying it directly won't change the network values. The Open-Zwave Control Panel writes values directly to the network, and will provide you with an updated .xml file to overwrite in your .homeassistant folder. This is the most foolproof way to make modifications to your zwave devices.
The reasoning for using these tools is that your Z-Wave controller stores the values and data that are used to control the network. The XML file in the `.homeassistant` folder acts as a settings/values cache for the Z-Wave network, so modifying it directly won't change the network values. The Open-Zwave Control Panel writes values directly to the network and will provide you with an updated `.xml` file to overwrite in your `.homeassistant` folder. This is the most foolproof way to make modifications to your Z-Wave devices.
Although totally normal for your Z-Wave stick (Aeon Aeotec Z-Stick Gen5 for example) to cycle through its LEDs (Yellow, Blue and Red) while plugged into your system. If you don like this behaviour then you could turn it off.
Use the following commands from a terminal session to your Pi where your Z-Wave stick is connected as an example.
Turn off "Disco lights":
```bash
$ echo -e -n "\x01\x08\x00\xF2\x51\x01\x00\x05\x01\x51" > /dev/serial/by-id/usb-0658_0200-if00
```
Turn on "Disco lights":
```bash
$ echo -e -n "\x01\x08\x00\xF2\x51\x01\x01\x05\x01\x50" > /dev/serial/by-id/usb-0658_0200-if00
```

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@ -15,8 +15,8 @@ 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.27.0</h1>
Released: <span class='release-date'>August 27, 2016</span>
<h1>Current Version: 0.27.2</h1>
Released: <span class='release-date'>September 3, 2016</span>
<div class='links'>
<a href='/blog/2016/08/28/notifications-hue-fake-unification/'>Release notes</a>