diff --git a/README.markdown b/README.markdown index d7531a67054..32421af2737 100644 --- a/README.markdown +++ b/README.markdown @@ -4,15 +4,11 @@ This is the source for the [Home Assistant](https://github.com/balloob/home-assi Please point your Pull Request (PR) at the `next` branch. -## Jekyll project to generate and deploy +## Preview Jekyll website locally | Command | Action | |---|---| | `rake preview` | Preview site on [http://127.0.0.1:4000](http://127.0.0.1:4000) -| `rake generate` | Generate new version of the site -| `rake deploy` | Deploy a new version of the site - -_Generating and deploying is no longer necessary as we now have auto-deply._ ## Setup @@ -27,36 +23,6 @@ $ cd home-assistant.io $ bundle ``` -## Create a new blog post - -```bash -$ rake new_post["title"] -``` - -## Site preview - -```bash -$ rake preview -``` - -The preview is now available on [http://127.0.0.1:4000](http://127.0.0.1:4000). - -## Steps for the deployment of the site - -All developers with write access to the repositories are able to deploy the website. The deploy process is fully automated with `rake generate && rake deploy`. - -```bash -$ git submodule update --init -$ cd _deploy -$ git fetch -$ git pull origin gh-pages -$ cd .. -$ rake generate && rake deploy -``` -```bash -TZ=UTC rake generate && rake deploy -``` - ### Setup on Fedora and CentOS On Fedora > 22 or CentOS 7.1.1503 Ruby is not available by default. Please take the notes here as a little guide for the Ruby installation process. diff --git a/source/_components/alexa.markdown b/source/_components/alexa.markdown index 0cfeb9a1153..fd378d865f8 100644 --- a/source/_components/alexa.markdown +++ b/source/_components/alexa.markdown @@ -9,17 +9,50 @@ sharing: true footer: true logo: amazon-echo.png ha_category: Voice -featured: false +featured: true --- -The Alexa component allows you to integrate Home Assistant into Alexa/Amazon Echo. This component will allow you to query information and call services within Home Assistant by using your voice. There are no supported sentences out of the box as of now, you will have to define them all yourself. +There are two 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. + +### {% 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. + +[haaska-github-link]: https://github.com/auchter/haaska +[alexa-lighting-api]: https://developer.amazon.com/public/binaries/content/assets/html/alexa-lighting-api.html + +Implementing Haaska means you can turn things on and off by simply saying + +> Alexa, turn the living room lights on. + +or + +> Alexa, set the living room lights to twenty percent. + +instead of + +> Alexa, tell Home Assistant to turn the living room lights on. + +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. + +Please note that you can use Haaska 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 %} + +The built-in Alexa component allows you to integrate Home Assistant into Alexa/Amazon Echo. This component will allow you to query information and call services within Home Assistant by using your voice. There are no supported sentences out of the box as of now, you will have to define them all yourself.
Make sure that the URL matches exactly your endpoint or resource. diff --git a/source/_components/binary_sensor.tcp.markdown b/source/_components/binary_sensor.tcp.markdown index e328ffb034f..9cd1be3043b 100644 --- a/source/_components/binary_sensor.tcp.markdown +++ b/source/_components/binary_sensor.tcp.markdown @@ -10,23 +10,22 @@ footer: true ha_category: Binary Sensor --- - The TCP Binary Sensor is a type of [TCP Sensor](/components/sensor.tcp/) which is either "off" or "on". In order to use this sensor type, in addition to the configuration for the TCP Sensor, you must supply a `value_on` value to represent what is returned when the device is turned on. To enable this sensor, add the following lines to your `configuration.yaml`: ```yaml -sensor: +binary_sensor: # Example configuration.yaml entry - - platform: tcp - name: TCP Binary Sensor - host: IP_ADDRESS - port: PORT - payload: "r State\n" - value_on: 1 - timeout: 5 - value_template: "{% raw %}{{ value.split(';')[0] }}{% endraw %}" - unit: UNIT_OF_MEASUREMENT + platform: tcp + name: TCP Binary Sensor + host: IP_ADDRESS + port: PORT + payload: "r State\n" + value_on: 1 + timeout: 5 + value_template: "{% raw %}{{ value.split(';')[0] }}{% endraw %}" + buffer_size: BUFFER_SIZE ``` Configuration options for the a TCP Sensor: @@ -38,6 +37,5 @@ Configuration options for the a TCP Sensor: - **value_on** (*Required*): The value returned when the device is "on". - **timeout** (*Optional*): How long in seconds to wait for a response from the service before giving up and disconnecting. Defaults to 10. - **value_template** (*Optional*): Defines a [template](/topics/templating/) to extract the value. By default it's assumed that the entire response is the value. -- **unit** (*Optional*): The unit of measurement to use for the value. - **buffer_size** (*Optional*): The size of the receive buffer in bytes. Set this to a larger value if you expect to receive a response larger than the default. Defaults to 1024. diff --git a/source/_components/binary_sensor.vera.markdown b/source/_components/binary_sensor.vera.markdown new file mode 100644 index 00000000000..b8004fa74bb --- /dev/null +++ b/source/_components/binary_sensor.vera.markdown @@ -0,0 +1,17 @@ +--- +layout: page +title: "Vera Binary Sensor" +description: "Instructions how to integrate Vera binary sensors into Home Assistant." +date: 2016-03-26 23:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: vera.png +ha_category: Binary Sensor +ha_iot_class: "Local Push" +--- + +The `vera` platform allows you to get data from your [Vera](http://getvera.com/) binary sensors from within Home Assistant. + +They will be automatically discovered if the vera component is loaded. diff --git a/source/_components/camera.mjpeg.markdown b/source/_components/camera.mjpeg.markdown index 4f166f044c4..5cc0c6f3bff 100644 --- a/source/_components/camera.mjpeg.markdown +++ b/source/_components/camera.mjpeg.markdown @@ -31,3 +31,7 @@ Configuration variables: - **name** *Optional*: This parameter allows you to override the name of your camera. - **username** *Optional*: The username for accessing your camera. - **password** *Optional*: The password for accessing your camera. + +
+There is a known issue in urllib3 that you will get error messages in your logs like [StartBoundaryNotFoundDefect(), MultipartInvariantViolationDefect()], unparsed data: ''
but the component still works fine. You can ignore the messages.
+
+Apple iPhones do not support this feature in any browser. +
diff --git a/source/_components/ecobee.markdown b/source/_components/ecobee.markdown index 69879ddab9a..529a293ad0e 100644 --- a/source/_components/ecobee.markdown +++ b/source/_components/ecobee.markdown @@ -9,6 +9,7 @@ sharing: true footer: true logo: ecobee.png ha_category: Hub +featured: true --- diff --git a/source/_components/http.markdown b/source/_components/http.markdown index a05b058d1f7..e66976ca8d5 100644 --- a/source/_components/http.markdown +++ b/source/_components/http.markdown @@ -33,8 +33,8 @@ Configuration variables: On top of the `http` component is a [REST API](/developers/rest_api/) and a [Python API](/developers/python_api/) available. -The `http` platforms are not a real platform within the meaning of the terminology used around Home Assistant. Home Assistant's [REST API](/developers/rest_api/) is consuming and proceeding messages received over HTTP. +The `http` platforms are not real platforms within the meaning of the terminology used around Home Assistant. Home Assistant's [REST API](/developers/rest_api/) sends and receives messages over HTTP. To use those kind of sensors in your installation no configuration in Home Assistant is needed. All configuration is done on the devices themselves. This means that you must be able to edit the target URL or endpoint and the payload. The entity will be created after the first message has arrived. -All [requests](/developers/rest_api/#post-apistatesltentity_id) needs to be sent to the endpoint of the device and must be **POST**. +All [requests](/developers/rest_api/#post-apistatesltentity_id) need to be sent to the endpoint of the device and must be **POST**. diff --git a/source/_components/influxdb.markdown b/source/_components/influxdb.markdown index 32ed6d6ac39..b17c53fd144 100644 --- a/source/_components/influxdb.markdown +++ b/source/_components/influxdb.markdown @@ -9,6 +9,7 @@ sharing: true footer: true logo: influxdb.png ha_category: "History" +featured: true --- The `influxdb` component makes it possible to transfer all state changes to an external [InfluxDB](https://influxdb.com/) database. For more details, [see the blog post on InfluxDB](/blog/2015/12/07/influxdb-and-grafana/). @@ -25,6 +26,9 @@ influxdb: password: MY_PASSWORD ssl: true verify_ssl: true + blacklist: + - entity.id1 + - entity.id2 ``` Configuration variables: @@ -36,3 +40,4 @@ Configuration variables: - **password** (*Optional*): The password for the database user account. - **ssl** (*Optional*): Use https instead of http to connect. Defaults to false. - **verify_ssl** (*Optional*): Verify SSL certificate for https request. Defaults to false. +- **blacklist** (*Optional*): List of entities not logged to influxdb. diff --git a/source/_components/input_boolean.markdown b/source/_components/input_boolean.markdown index 2fcdedc64b4..68d26181d13 100644 --- a/source/_components/input_boolean.markdown +++ b/source/_components/input_boolean.markdown @@ -17,7 +17,7 @@ The `input_boolean` component allows the user to define boolean values that can # Example configuration.yaml entry input_boolean: notify_home: - name: Notify when someome arrives home + name: Notify when someone arrives home initial: off icon: mdi:car ``` @@ -31,3 +31,22 @@ Configuration variables: Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`. +Here's an example of an automation using the above input_boolean. This action will only occur if the switch is on. + +```yaml +automation: + alias: Arriving home + trigger: + platform: state + entity_id: binary_sensor.motion_garage + to: 'on' + condition: + platform: state + entity_id: input_boolean.notify_home + state: 'on' + action: + service: notify.pushbullet + data: + title: "" + message: "Honey, I'm home!" +``` diff --git a/source/_components/light.hue.markdown b/source/_components/light.hue.markdown index 1236a070420..c6bc83680df 100644 --- a/source/_components/light.hue.markdown +++ b/source/_components/light.hue.markdown @@ -28,7 +28,7 @@ light: Configuration variables: -- **host** (*Required*): IP address aof the device, eg. 192.168.1.10. +- **host** (*Required*): IP address of the device, eg. 192.168.1.10. - **allow_unreachable** (*Optional*): This will allow unreachable bulbs to report their state correctly. By default *name* from the device is used. - **filename** (*Optional*): Make this unique if specifying multiple Hue hubs. diff --git a/source/_components/light.rfxtrx.markdown b/source/_components/light.rfxtrx.markdown index 076f8efb495..c16b42a4b20 100644 --- a/source/_components/light.rfxtrx.markdown +++ b/source/_components/light.rfxtrx.markdown @@ -23,6 +23,7 @@ light: living_room: name: Living Room packetid: XXXXX + fire_event: True automatic_add: True ``` @@ -31,3 +32,4 @@ Configuration variables: - **devices** (*Required*): A list of devices with their name to use in the frontend. - **automatic_add** (*Optional*): To enable the automatic addition of new lights. - **signal_repetitions** *Optional*: Because the rxftrx device sends its actions via radio and from most receivers it's impossible to know if the signal was received or not. Therefore you can configure the switch to try to send each signal repeatedly. +- **fire_event** *Optional*: Fires an event even if the state is the same as before. Can be used for automations. diff --git a/source/_components/light.vera.markdown b/source/_components/light.vera.markdown index 3ed552548a4..810ea94cfca 100644 --- a/source/_components/light.vera.markdown +++ b/source/_components/light.vera.markdown @@ -9,31 +9,12 @@ sharing: true footer: true logo: vera.png ha_category: Light +ha_iot_class: "Local Push" --- +The `vera` platform allows you to control your [Vera](http://getvera.com/) lights from within Home Assistant. -This `vera` light platform allows you to control your [Vera](http://getvera.com/) lights. +They will be automatically discovered if the vera component is loaded. -This platform is useful if you wish for switches connected to your Vera controller to appear as lights in Home Assistant. All switches will be added as a light unless you exclude them in the configuration file. +For more configuration information see the [Vera component](/components/vera/) documentation. -To use your Vera lights in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -light: - platform: vera - vera_controller_url: http://YOUR_VERA_IP:3480/ - device_data: - 12: - name: My awesome sensor - exclude: true - 13: - name: Another sensor -``` - -Configuration variables: - -- **vera_controller_url** (*Required*): This is the base URL of your vera controller including the port number if not running on 80, eg. http://192.168.1.21:3480/ -- **device_data** array (*Optional*):This contains an array additional device information for your Vera devices. It is not required and if not specified all sensors configured in your Vera controller will be added with default values. You should use the id of your Vera device as the key for the device within `device_data`. - - **name** (*Optional*):This parameter allows you to override the name of your Vera device in the frontend, if not specified the value configured for the device in your Vera will be used. - - **exclude** (*Optional*): This parameter allows you to exclude the specified device, it should be set to "True" if you want this device excluded. diff --git a/source/_components/logger.markdown b/source/_components/logger.markdown index 66c521e09ea..3cb7a36d2f5 100644 --- a/source/_components/logger.markdown +++ b/source/_components/logger.markdown @@ -11,11 +11,11 @@ logo: home-assistant.png ha_category: "Other" --- -The logger component lets one define the level of logging activities in Home Assistant. +The logger component lets you define the level of logging activities in Home Assistant. To enable the logger in your installation, add the following to your `configuration.yaml` file: -By default log all messages and ignore log event lowest than critical for custom omponents. +By default log all messages and ignore events lower than critical for specified components. ```yaml # Example configuration.yaml entry @@ -26,7 +26,7 @@ logger: homeassistant.components.camera: critical ``` -By default ignore all messages lowest than critical and log event for custom components. +By default ignore all messages lower than critical and log event for specified components. ```yaml # Example configuration.yaml entry @@ -41,7 +41,7 @@ logger: Possible log severities are: -- citical +- critical - fatal - error - warning diff --git a/source/_components/media_player.sonos.markdown b/source/_components/media_player.sonos.markdown index 8b7dcc4e698..ebea7c807d6 100644 --- a/source/_components/media_player.sonos.markdown +++ b/source/_components/media_player.sonos.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Sonos" -description: "Instructions how to integrateSonos devices into Home Assistant." +description: "Instructions how to integrate Sonos devices into Home Assistant." date: 2015-09-12 13:00 sidebar: true comments: false @@ -23,3 +23,12 @@ media_player: platform: sonos ``` +You can also specify hosts to connect to if they cannot be found with auto-discovery. + +```yaml +# Example configuration.yaml entry +media_player: + platform: sonos + hosts: IP +``` + diff --git a/source/_components/mqtt.markdown b/source/_components/mqtt.markdown index 614af9061f8..718a44a3bbc 100644 --- a/source/_components/mqtt.markdown +++ b/source/_components/mqtt.markdown @@ -46,18 +46,22 @@ The MQTT component needs you to run an MQTT broker for Home Assistant to connect #### {% linkable_title Use the embedded broker %} -Home Assistant contains an embedded MQTT broker. If no broker configuration is given, the [HBMQTT broker](https://pypi.python.org/pypi/hbmqtt) is started and Home Asssistant connects to it. Default settings for the embedded broker: +Home Assistant contains an embedded MQTT broker. If no broker configuration is given, the [HBMQTT broker](https://pypi.python.org/pypi/hbmqtt) is started and Home Asssistant connects to it. Embedded broker default configuration: | Setting | Value | | ------- | ----- | | Host | localhost | Port | 1883 -| Version | 3.1 +| Protocol | 3.1.1 | User | homeassistant | Password | Your API password | Websocket port | 8080 -If you want to customize the settings of the embedded broker, use `embedded:` and the values shown in the [HBMQTT Broker configuration](http://hbmqtt.readthedocs.org/en/latest/references/broker.html#broker-configuration). ++This broker does not currently work with OwnTracks because of a protocol version issue. +
+ +If you want to customize the settings of the embedded broker, use `embedded:` and the values shown in the [HBMQTT Broker configuration](http://hbmqtt.readthedocs.org/en/latest/references/broker.html#broker-configuration). This will replace the default configuration. ```yaml # Example configuration.yaml entry diff --git a/source/_components/proximity.markdown b/source/_components/proximity.markdown index b42a218d441..8e6c6d2aeee 100644 --- a/source/_components/proximity.markdown +++ b/source/_components/proximity.markdown @@ -23,7 +23,7 @@ Some examples of its use include: The Proximity entity which is created has the following values: - `state`: Distance from the monitored zone (in km) -- `dir_of_travel`: Direction of the closest device to the monitoed zone. Values are: +- `dir_of_travel`: Direction of the closest device to the monitored zone. Values are: - 'not set' - 'arrived' - 'towards' diff --git a/source/_components/scene.markdown b/source/_components/scene.markdown index 3ba280133dc..8b3cd94cd9d 100644 --- a/source/_components/scene.markdown +++ b/source/_components/scene.markdown @@ -11,9 +11,7 @@ logo: home-assistant.png ha_category: Organization --- -A user can create scenes that capture the states you want certain entities to be. For example a scene can contain that light A should be turned on and light B should be bright red. - -Scenes can be activated using the service `scene.turn_on`. +You can create scenes that capture the states you want certain entities to be. For example a scene can specify that light A should be turned on and light B should be bright red. ```yaml # Example configuration.yaml entry @@ -33,3 +31,19 @@ scene: brightness: 100 light.ceiling: off ``` + +Scenes can be activated using the service `scene.turn_on` (there is no 'scene.turn_off' service). + +```yaml +# Example automation +... +automation: + trigger: + platform: state + entity_id: device_tracker.sweetheart + from: 'not_home' + to: 'home' + action: + service: scene.turn_on + entity_id: scene.romantic +``` diff --git a/source/_components/sensor.mqtt.markdown b/source/_components/sensor.mqtt.markdown index 7d55875f3f3..be3d99c3608 100644 --- a/source/_components/sensor.mqtt.markdown +++ b/source/_components/sensor.mqtt.markdown @@ -41,7 +41,7 @@ In this section you find some real life examples of how to use this sensor. ### {% linkable_title Get battery level %} -If you are using the [Owntracks](components/device_tracker.owntracks/) and enable the reporting of the battery level then you can use a MQTT sensor to keep track of your battery. A regular MQTT message from Owntracks looks like this: +If you are using the [Owntracks](/components/device_tracker.owntracks/) and enable the reporting of the battery level then you can use a MQTT sensor to keep track of your battery. A regular MQTT message from Owntracks looks like this: ```bash owntracks/tablet/tablet {"_type":"location","lon":7.21,"t":"u","batt":92,"tst":144995643,"tid":"ta","acc":27,"lat":46.12} @@ -56,6 +56,6 @@ sensor: state_topic: "owntracks/tablet/tablet" name: "Battery Tablet" unit_of_measurement: "%" - value_template: '{{ value_json.batt }}' + value_template: {% raw %}'{{ value_json.batt }}'{% endraw %} ``` diff --git a/source/_components/sensor.rest.markdown b/source/_components/sensor.rest.markdown index 5e55cdda28d..26c3203d471 100644 --- a/source/_components/sensor.rest.markdown +++ b/source/_components/sensor.rest.markdown @@ -45,7 +45,7 @@ Configuration variables: - **resource** (*Required*): The resource or endpoint that contains the value. - **method** (*Optional*): The method of the request. Default is GET. - **value_template** (*Optional*): Defines a [template](/topics/templating/) to extract the value. -- **payload** (*Optional*): The payload to send with a POST request. Usualy formed as a dictionary. +- **payload** (*Optional*): The payload to send with a POST request. Depends on the service, but usually formed as JSON. - **name** (*Optional*): Name of the REST sensor. - **unit_of_measurement** (*Optional*): Defines the unit of measurement of the sensor, if any. @@ -66,7 +66,7 @@ In this section you find some real life examples of how to use this sensor. ### {% linkable_title External IP address %} -Always want to know your external IP address. [JSON Test](http://www.jsontest.com) will provide you this information at their http://ip.jsontest.com/ endpoint. +You can find your external IP address using the service [JSON Test](http://www.jsontest.com) at their http://ip.jsontest.com/ endpoint. To display the IP address, the entry for a sensor in the `configuration.yaml` file will look like this. @@ -93,7 +93,7 @@ Add something similar to the entry below to your `configuration.yaml` file: ### {% linkable_title Value for other Home Assistant instance %} -The Home Assistant [API](/developers/rest_api/) is exposing the data from your attached sensors. If you are running multiple Home Assistant instances which are not [connected](/developers/architecture/#multiple-connected-instances) you can still get information from them. +The Home Assistant [API](/developers/rest_api/) exposes the data from your attached sensors. If you are running multiple Home Assistant instances which are not [connected](/developers/architecture/#multiple-connected-instances) you can still get information from them. ```yaml diff --git a/source/_components/sensor.tcp.markdown b/source/_components/sensor.tcp.markdown index a6227a641bf..bbf501e7345 100644 --- a/source/_components/sensor.tcp.markdown +++ b/source/_components/sensor.tcp.markdown @@ -17,14 +17,14 @@ To enable this sensor, add the following lines to your `configuration.yaml`: ```yaml sensor: # Example configuration.yaml entry - - platform: tcp - name: Central Heating Pressure - host: IP_ADDRESS - port: PORT - timeout: 5 - payload: PAYLOAD - value_template: "{% raw %}{{ value.split(';')[0] }}{% endraw %}" - unit: UNIT_OF_MEASUREMENT + platform: tcp + name: Central Heating Pressure + host: IP_ADDRESS + port: PORT + timeout: 5 + payload: PAYLOAD + value_template: "{% raw %}{{ value.split(';')[0] }}{% endraw %}" + unit: UNIT_OF_MEASUREMENT ``` Configuration options for the a TCP Sensor: @@ -56,19 +56,19 @@ You will notice that the output from the service is not just a single value (it ```yaml sensor: # Example configuration.yaml entry - - platform: tcp - name: Central Heating Pressure - host: 10.0.0.127 - port: 8888 - timeout: 5 - payload: "r WaterPressure\n" - value_template: "{% raw %}{{ value.split(';')[0] }}{% endraw %}" - unit: Bar + platform: tcp + name: Central Heating Pressure + host: 10.0.0.127 + port: 8888 + timeout: 5 + payload: "r WaterPressure\n" + value_template: "{% raw %}{{ value.split(';')[0] }}{% endraw %}" + unit: Bar ``` ### {% linkable_title hddtemp %} -The tool `hddtemp` collects the temperatur of your harddisks. +The tool `hddtemp` collects the temperature of your harddisks. ```bash $ hddtemp @@ -90,12 +90,12 @@ The entry for the `configuration.yaml` file for a `hddtemp` sensor could look li ```yaml sensor: # Example configuration.yaml entry - - platform: tcp - name: HDD temperature - host: 127.0.0.1 - port: 7634 - timeout: 5 - payload: "\n" - value_template: "{% raw %}{{ value.split('|')[3] }}{% endraw %}" - unit: "°C" + platform: tcp + name: HDD temperature + host: 127.0.0.1 + port: 7634 + timeout: 5 + payload: "\n" + value_template: "{% raw %}{{ value.split('|')[3] }}{% endraw %}" + unit: "°C" ``` diff --git a/source/_components/sensor.vera.markdown b/source/_components/sensor.vera.markdown index eb634bf280a..da1c1124d17 100644 --- a/source/_components/sensor.vera.markdown +++ b/source/_components/sensor.vera.markdown @@ -9,29 +9,10 @@ sharing: true footer: true logo: vera.png ha_category: Sensor +ha_iot_class: "Local Push" --- +The `vera` platform allows you to get data from your [Vera](http://getvera.com/) sensors from within Home Assistant. + +They will be automatically discovered if the vera component is loaded. -This `vera` sensor platform allows you to get data from your [Vera](http://getvera.com/) sensors. - -To use your Vera sensor in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - platform: vera - vera_controller_url: http://YOUR_VERA_IP:3480/ - device_data: - 12: - name: My awesome sensor - exclude: true - 13: - name: Another sensor -``` - -Configuration variables: - -- **vera_controller_url** (*Required*): This is the base URL of your vera controller including the port number if not running on 80, eg. http://192.168.1.21:3480/ -- **device_data** array (*Optional*):This contains an array additional device information for your Vera devices. It is not required and if not specified all sensors configured in your Vera controller will be added with default values. You should use the id of your Vera device as the key for the device within `device_data`. - - **name** (*Optional*):This parameter allows you to override the name of your Vera device in the frontend, if not specified the value configured for the device in your Vera will be used. - - **exclude** (*Optional*): This parameter allows you to exclude the specified device, it should be set to "True" if you want this device excluded. diff --git a/source/_components/sun.markdown b/source/_components/sun.markdown index 18058bc1421..e5538d3a9e7 100644 --- a/source/_components/sun.markdown +++ b/source/_components/sun.markdown @@ -22,12 +22,12 @@ homeassistant: longitude: -117.22743 sun: - elevation: 123 + elevation: 102 ``` Configuration variables: -- **elevation** (*Optional*): The solar elevation angle is the altitude of the sun. If ommitted will be retrieved from Google Maps. +- **elevation** (*Optional*): The (physical) elevation of your location, in metres above sea level. If ommitted will be retrieved from Google Maps.
@@ -59,5 +59,6 @@ The sun event need to have the type 'sun', which service to call, which event (s
| State Attributes | Description |
| --------- | ----------- |
-| `next_rising` | Date and time of the next sun rising
-| `next_setting` | Date and time of the next sun setting
+| `next_rising` | Date and time of the next sun rising (in UTC).
+| `next_setting` | Date and time of the next sun setting (in UTC).
+| `elevation` | Solar elevation. This is the angle between the sun and the horizon. Negative values mean the sun is below the horizon.
diff --git a/source/_components/switch.command_line.markdown b/source/_components/switch.command_line.markdown
index 6bba25ea65f..6ddb7baa179 100644
--- a/source/_components/switch.command_line.markdown
+++ b/source/_components/switch.command_line.markdown
@@ -75,7 +75,7 @@ switch:
### {% linkable_title Control your VLC player %}
-This switch will control a local VLC media player ([Source](https://automic.us/forum/viewtopic.php?f=4&t=144)).
+This switch will control a local VLC media player ([Source](https://community.home-assistant.io/t/vlc-player/106)).
```yaml
diff --git a/source/_components/switch.rfxtrx.markdown b/source/_components/switch.rfxtrx.markdown
index a0f7fbdd52d..9cb5cb5a510 100644
--- a/source/_components/switch.rfxtrx.markdown
+++ b/source/_components/switch.rfxtrx.markdown
@@ -23,6 +23,7 @@ switch:
living_room:
name: Living Room
packetid: XXXXX
+ fire_event: True
automatic_add: True
```
@@ -31,3 +32,4 @@ Configuration variables:
- **devices** (*Required*): A list of devices with their name to use in the frontend.
- **automatic_add** (*Optional*): To enable the automatic addition of new switches.
- **signal_repetitions** *Optional*: Because the rxftrx device sends its actions via radio and from most receivers it's impossible to know if the signal was received or not. Therefore you can configure the switch to try to send each signal repeatedly.
+- **fire_event** *Optional*: Fires an event even if the state is the same as before. Can be used for automations.
diff --git a/source/_components/switch.vera.markdown b/source/_components/switch.vera.markdown
index 07bad9bea28..db2562a193d 100644
--- a/source/_components/switch.vera.markdown
+++ b/source/_components/switch.vera.markdown
@@ -9,29 +9,11 @@ sharing: true
footer: true
logo: vera.png
ha_category: Switch
+ha_iot_class: "Local Push"
---
+The `vera` platform allows you to control your [Vera](http://getvera.com/) switches from within Home Assistant.
-This `vera` switch platform allows you to control your [Vera](http://getvera.com/) switches.
+They will be automatically discovered if the vera component is loaded.
-To use your Vera switches in your installation, add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- platform: vera
- vera_controller_url: http://YOUR_VERA_IP:3480/
- device_data:
- 12:
- name: My awesome sensor
- exclude: true
- 13:
- name: Another sensor
-```
-
-Configuration variables:
-
-- **vera_controller_url** (*Required*): This is the base URL of your vera controller including the port number if not running on 80, eg. http://192.168.1.21:3480/
-- **device_data** array (*Optional*):This contains an array additional device information for your Vera devices. It is not required and if not specified all sensors configured in your Vera controller will be added with default values. You should use the id of your Vera device as the key for the device within `device_data`.
- - **name** (*Optional*):This parameter allows you to override the name of your Vera device in the frontend, if not specified the value configured for the device in your Vera will be used.
- - **exclude** (*Optional*): This parameter allows you to exclude the specified device, it should be set to "True" if you want this device excluded.
+For more configuration information see the [Vera component](/components/vera/) documentation.
diff --git a/source/_components/vera.markdown b/source/_components/vera.markdown
index 50167fd0d4a..e41ac4410f0 100644
--- a/source/_components/vera.markdown
+++ b/source/_components/vera.markdown
@@ -11,8 +11,22 @@ logo: vera.png
ha_category: Hub
---
+The [Vera](http://getvera.com) hub is a controller ainly connecting to Z-Wave devices.
-The [Vera](http://getvera.com) ecosystem is using Z-Wave for communication between the Vera controller and the devices.
+Switches, Lights (inc Dimmers), Sensors and Binary sensors are supported - and will be automaticaly added when HA connects to your Vera controller.
+
+To use Vera devices in your installation, add the following to your configuration.yaml file using the IP and port number of your Vera controller:
+
+```yaml
+vera:
+ vera_controller_url: http://192.168.1.161:3480/
+```
+
+By default your switches will be added to HA as switches, however if some of them are light switches, you can tell HA this using the optional ```lights``` parameter as shown below.
+
+Vera imports detailed zwave devices into HA - this can include system devices and other devices that you don't use, you can tell HA not to load these devices using the ```exclude:``` parameter as shown below.
+
+You can find the vera device id either by looking at your vera controller - or by checking the ```Vera Device Id``` attribute on each device imported into HA.
```yaml
vera:
@@ -22,3 +36,4 @@ vera:
# Optional to import switches as lights - this is a list of vera device ids
lights: [15, 17, 19, 21, 22, 24, 26, 43, 64, 70, 87]
```
+
diff --git a/source/_components/weblink.markdown b/source/_components/weblink.markdown
index 4d08fc67f6f..69467bfaafa 100644
--- a/source/_components/weblink.markdown
+++ b/source/_components/weblink.markdown
@@ -11,9 +11,9 @@ logo:
ha_category: Other
---
-The `weblinks` component allows you to display links in the Home Assistant frontend.
+The `weblink` component allows you to display links in the Home Assistant frontend.
-To use this component in your installation, add the following to your `configuration.yaml` file:
+To use this component in your installation, add something like the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
diff --git a/source/_components/wemo.markdown b/source/_components/wemo.markdown
index e2bf5c9236a..df99afa5081 100644
--- a/source/_components/wemo.markdown
+++ b/source/_components/wemo.markdown
@@ -9,6 +9,7 @@ sharing: true
footer: true
logo: belkin_wemo.png
ha_category: Hub
+featured: true
---
The `wemo` component is the main component to integrate various [Belkin WeMo](http://www.belkin.com/us/Products/home-automation/c/wemo-home-automation/) devices with Home Assistant.
diff --git a/source/_components/zone.markdown b/source/_components/zone.markdown
index accd4824824..29c84024dc6 100644
--- a/source/_components/zone.markdown
+++ b/source/_components/zone.markdown
@@ -51,6 +51,10 @@ Configuration variables:
If no configuration is given, the `zone` component will create a zone for home. This zone will use location given in the `configuration.yaml` file and have a radius of 100 meters. To override this, create a zone configuration and name it **'Home'**.
+
+Devices that are in the zone **'Home'** will not appear on the map in the Home Assistant UI. +
+ #### {% linkable_title Icons %} It is preferred to pick an icon to use for your zone. Pick any zone that you can find on [materialdesignicons.com](https://materialdesignicons.com/) and prefix the name with `mdi:`. For example `mdi:school`, `mdi:worker`, `mdi:home`, `mdi:cart`, or `mdi:castle`. diff --git a/source/_components/zwave.markdown b/source/_components/zwave.markdown index 83c13ff0325..607851ec90c 100644 --- a/source/_components/zwave.markdown +++ b/source/_components/zwave.markdown @@ -9,6 +9,7 @@ sharing: true footer: true logo: z-wave.png ha_category: Hub +featured: true --- [Z-Wave](http://www.z-wave.com/) integration for Home Assistant allows you to observe and control connected Z-Wave devices. Z-Wave support requires a [supported Z-Wave USB stick](https://github.com/OpenZWave/open-zwave/wiki/Controller-Compatibility-List) to be plugged into the host. @@ -25,7 +26,7 @@ Make sure you have the correct dependencies installed before running the script: $ sudo apt-get install cython3 libudev-dev python3-sphinx python3-setuptools ``` -Make sure you have at least version 0.23 of cython. +Make sure you have at least version 0.23 of cython. ```bash $ sudo pip3 install --upgrade cython @@ -61,7 +62,7 @@ With this installation, your `config_path` needed below will resemble: zwave: usb_path: /dev/ttyUSB0 config_path: /usr/local/share/python-openzwave/config - polling_interval: 10000 + polling_interval: 60000 customize: sensor.greenwave_powernode_6_port_energy_10: polling_intensity: 1 @@ -71,7 +72,7 @@ Configuration variables: - **usb_path** (*Required*): The port where your device is connected to your Home Assistant host. - **config_path** (*Optional*): The path to the Python Open Z-Wave configuration files. -- **polling_interval** (*Optional*): The time period in milliseconds between polls of a nodes value. +- **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) @@ -102,7 +103,7 @@ automation: trigger: platform: event event_type: zwave.scene_activated - event_data: + event_data: entity_id: zwaveme_zme_wallcs_secure_wall_controller_8 scene_id: 11 ``` @@ -111,12 +112,105 @@ The *entity_id* and *scene_id* of all triggered events can be seen in the consol #### {% linkable_title Services %} -The Z-Wave component exposes two services to help maintain the network. +The Z-Wave component exposes four services to help maintain the network. | Service | Description | | ------- | ----------- | -| add_node | | -| remove_node | | -| heal_network | | -| soft_reset | | +| add_node | Put the zwave controller in inclusion mode. Allows one to add a new device to the zwave network.| +| remove_node | Put the zwave controller in exclusion mode. Allows one to remove a device from the zwave network.| +| heal_network | Tells the controller to "heal" the network. Bascially asks the nodes to tell the controller all of their neighbors so the controller can refigure out optimal routing. | +| soft_reset | Tells the controller to do a "soft reset". This is not supposed to lose any data, but different controllers can behave differently to a "soft reset" command.| | test_network | Tells the controller to send no-op commands to each node and measure the time for a response. In theory, this can also bring back nodes which have been marked "presumed dead".| + +The soft_reset and heal_network commands can be used as part of an automation script +to help keep a zwave network running relliably. For example: + +```yaml +# Example configuration.yaml automation entry +automation: + - alias: soft reset at 2:30am + trigger: + platform: time + after: '2:30:00' + action: + service: zwave.soft_reset + + - alias: heal at 2:31am + trigger: + platform: time + after: '2:31:00' + action: + service: zwave.heal_network +``` + +#### {% linkable_title Device Specific Notes & Configuration %} + +##### {% linkable_title Aeon Minimote %} + +Here's a handy configuration for the Aeon Labs Minimote that defines all possible button presses. Put it into `automation.yaml`. + +```yaml +- alias: Minimote Button 1 Pressed + trigger: + platform: event + event_type: zwave.scene_activated + event_data: + entity_id: aeon_labs_minimote_1 + scene_id: 1 + +- alias: Minimote Button 1 Held + trigger: + platform: event + event_type: zwave.scene_activated + event_data: + entity_id: aeon_labs_minimote_1 + scene_id: 2 + +- alias: Minimote Button 2 Pressed + trigger: + platform: event + event_type: zwave.scene_activated + event_data: + entity_id: aeon_labs_minimote_1 + scene_id: 3 + +- alias: Minimote Button 2 Held + trigger: + platform: event + event_type: zwave.scene_activated + event_data: + entity_id: aeon_labs_minimote_1 + scene_id: 4 + +- alias: Minimote Button 3 Pressed + trigger: + platform: event + event_type: zwave.scene_activated + event_data: + entity_id: aeon_labs_minimote_1 + scene_id: 5 + +- alias: Minimote Button 3 Held + trigger: + platform: event + event_type: zwave.scene_activated + event_data: + entity_id: aeon_labs_minimote_1 + scene_id: 6 + +- alias: Minimote Button 4 Pressed + trigger: + platform: event + event_type: zwave.scene_activated + event_data: + entity_id: aeon_labs_minimote_1 + scene_id: 7 + +- alias: Minimote Button 4 Held + trigger: + platform: event + event_type: zwave.scene_activated + event_data: + entity_id: aeon_labs_minimote_1 + scene_id: 8 +``` diff --git a/source/_cookbook/automation_flashing_lights.markdown b/source/_cookbook/automation_flashing_lights.markdown new file mode 100644 index 00000000000..9bd23647d42 --- /dev/null +++ b/source/_cookbook/automation_flashing_lights.markdown @@ -0,0 +1,108 @@ +--- +layout: page +title: "Examples for flashing lights" +description: "Automation examples for flashing lights in case of an alarm." +date: 2016-03-30 08:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Automation Examples +--- + +#### {% linkable_title Flashing lights triggered by an alarm %} + +For flashing regular lights in case the the triggering of an alarm. + +```yaml +# AlmAct1 - switch to activate the alarm in Room1 +# AlmSnd1 - switch for a buzzer + +automation: +- alias: 'Alarm_PIR_Room1' + trigger: + platform: state + entity_id: binary_sensor.PIR1 + state: 'on' + condition: + - platform: state + entity_id: switch.AlmAct1 + state: 'on' + - platform: state + entity_id: script.alarm_room1 + state: 'off' + action: + # start alarm on movement if alarm activated + # and the alarm is not triggered + service: script.turn_on + entity_id: script.alarm_room1 + +- alias: 'flash_room1_start' + trigger: + platform: state + entity_id: switch.AlmSnd1 + state: 'on' + action: + service: script.turn_on + entity_id: script.flash_room1 + +- alias: 'flash_room1_stop' + trigger: + platform: state + entity_id: switch.REL1 + state: 'off' + condition: + platform: state + entity_id: switch.AlmSnd1 + state: 'off' + action: + service: script.turn_off + entity_id: script.flash_room1 + +script: + alarm_room1: + alias: Alarm room1 + sequence: + - alias: Alarm Room1 Start + service: homeassistant.turn_on + data: + entity_id: switch.AlmSnd1 + - alias: Set Ack Room1 + service: homeassistant.turn_on + data: + entity_id: input_boolean.ack1 + - alias: email_Room1 + service: notify.email + data: + message: 'Movement alarm in Room1' + - delay: + # time interval for alarm sound and light flashing + seconds: 60 + - alias: Alarm Room1 Stop + service: homeassistant.turn_off + data: + entity_id: switch.AlmSnd1 + + flash_room1: + alias: Flash Room1 On + sequence: + - alias: Light Room1 On + service: homeassistant.turn_on + data: + entity_id: switch.REL1 + - delay: + # time for flash light on + seconds: 1 + - alias: Light Room1 Off + service: homeassistant.turn_off + data: + entity_id: switch.REL1 + - delay: + # time for flash light off + seconds: 1 + - alias: loop_room1 + service: script.turn_on + data: + entity_id: script.flash_room1 +``` + diff --git a/source/_cookbook/configuration_yaml_from_bassclarinetl2.markdown b/source/_cookbook/configuration_yaml_from_bassclarinetl2.markdown index 90f2298fa69..dd69f051804 100644 --- a/source/_cookbook/configuration_yaml_from_bassclarinetl2.markdown +++ b/source/_cookbook/configuration_yaml_from_bassclarinetl2.markdown @@ -223,7 +223,7 @@ http: ssl_key: /etc/letsencrypt/live/example.com/privkey.pem ifttt: - key: gm3dAtxwX8RpbA793mHWbK1bftO1wgScKt0ZHiT9GyC + key: [redacted] media_player 1: platform: plex @@ -249,8 +249,8 @@ media_player 7: name: Parents TV wink: - access_token: cf83448f669cd3acd3b969b063028565 - refresh_token: 6213c8a1d519d864e08b7364c91eaf22 + access_token: [redacted] + refresh_token: [redacted] zwave: usb_path: /dev/ttyUSB0 @@ -264,8 +264,8 @@ zwave: mqtt: broker: 127.0.0.1 port: 8883 - username: hass - password: austin + username: [redacted] + password: [redacted] device_tracker 1: platform: owntracks @@ -281,7 +281,7 @@ device_tracker 2: #sensor: # platform: openweathermap -# api_key: b693a8bb2f60dcedc7b4bf33649ed4f1 +# api_key: [redacted] # forecast: 1 # monitored_conditions: # - temperature diff --git a/source/_cookbook/customize_polling_interval.markdown b/source/_cookbook/customize_polling_interval.markdown index e6aff18ebe8..ef73095c114 100644 --- a/source/_cookbook/customize_polling_interval.markdown +++ b/source/_cookbook/customize_polling_interval.markdown @@ -7,7 +7,7 @@ sidebar: true comments: false sharing: true footer: true -ha_category: Example configuration.yaml +ha_category: Customize Defaults --- Platforms that require polling will be polled in an interval specified by the main component. For example a light will check every 30 seconds for a changed state. It is possible to overwrite this scan interval for any platform that is being polled by specifying a `scan_interval` config key. In the example below we setup the Philips Hue lights but tell Home Assistant to poll the devices every 10 seconds instead of the default 30 seconds. diff --git a/source/_cookbook/foscam_away_mode_PTZ.markdown b/source/_cookbook/foscam_away_mode_PTZ.markdown index 3ac9578ccce..59d20576c58 100644 --- a/source/_cookbook/foscam_away_mode_PTZ.markdown +++ b/source/_cookbook/foscam_away_mode_PTZ.markdown @@ -47,18 +47,18 @@ The `script.foscam_off` and `script.foscam_on` can be used to set the motion det script: foscam_off: sequence: - - execute_service: switch.turn_off - service_data: + - service: switch.turn_off + data: entity_id: switch.foscam_motion - service: shell_command.foscam_turn_off foscam_on: sequence: - - execute_service: switch.turn_off - service_data: + - service: switch.turn_off + data: entity_id: switch.foscam_motion - service: shell_command.foscam_turn_on - - execute_service: switch.turn_on - service_data: + - service: switch.turn_on + data: entity_id: switch.foscam_motion ``` diff --git a/source/_cookbook/restart_ha_if_wemo_switch_is_not_detected.markdown b/source/_cookbook/restart_ha_if_wemo_switch_is_not_detected.markdown index 5c7accebee2..cca4f2f07d1 100644 --- a/source/_cookbook/restart_ha_if_wemo_switch_is_not_detected.markdown +++ b/source/_cookbook/restart_ha_if_wemo_switch_is_not_detected.markdown @@ -53,11 +53,11 @@ script: sequence: - delay: minutes: 15 - - execute_service: notify.pushbullet - service_data: + - service: notify.pushbullet + data: message: 'WeMo not found, restarting HA' - - execute_service: switch.turn_on - service_data: + - service: switch.turn_on + data: entity_id: switch.killhass automation: diff --git a/source/_cookbook/turn_on_light_for_10_minutes_when_motion_detected.markdown b/source/_cookbook/turn_on_light_for_10_minutes_when_motion_detected.markdown index 1cbdbdde6e1..78c668a00da 100644 --- a/source/_cookbook/turn_on_light_for_10_minutes_when_motion_detected.markdown +++ b/source/_cookbook/turn_on_light_for_10_minutes_when_motion_detected.markdown @@ -30,15 +30,15 @@ script: alias: "Turn on lamp and set timer" sequence: # Cancel ev. old timers - - execute_service: script.turn_off - service_data: + - service: script.turn_off + data: entity_id: script.timer_off - - execute_service: light.turn_on - service_data: + - service: light.turn_on + data: entity_id: light.kitchen # Set new timer - - execute_service: script.turn_on - service_data: + - service: script.turn_on + data: entity_id: script.timer_off timer_off: @@ -46,7 +46,7 @@ script: sequence: - delay: minutes: 10 - - execute_service: light.turn_off - service_data: + - service: light.turn_off + data: entity_id: light.kitchen ``` diff --git a/source/_posts/2015-08-26-laundry-automation-with-moteino-mqtt-and-home-assistant.markdown b/source/_posts/2015-08-26-laundry-automation-with-moteino-mqtt-and-home-assistant.markdown index 0fdd5bcfab6..676de505396 100644 --- a/source/_posts/2015-08-26-laundry-automation-with-moteino-mqtt-and-home-assistant.markdown +++ b/source/_posts/2015-08-26-laundry-automation-with-moteino-mqtt-and-home-assistant.markdown @@ -55,6 +55,10 @@ Materials used: Home Assistant Configuration: ++The automation and script syntax here is using a deprecated and no longer supported format. +
+ ```yaml mqtt: broker: 192.168.1.100 diff --git a/source/_posts/2015-12-06-community-highlights.markdown b/source/_posts/2015-12-06-community-highlights.markdown index bce943466ae..f4e35542694 100644 --- a/source/_posts/2015-12-06-community-highlights.markdown +++ b/source/_posts/2015-12-06-community-highlights.markdown @@ -13,7 +13,7 @@ og_image: /images/blog/2015-12-community/hass-alexa.png From time to time we come along things that are worth sharing with fellow Home Assisters. Here a list of some cool stuff from last week: -First is the public beta of [Let's Encrypt](https://letsencrypt.org/). Let's Encrypt is a new certificate authority that is free, automated and open. This means that it will now be very easy to secure your connection to Home Assistant while you are away from home. W1ll1am23 has written up [a guide how to get started](https://automic.us/forum/viewtopic.php?f=4&t=29). +First is the public beta of [Let's Encrypt](https://letsencrypt.org/). Let's Encrypt is a new certificate authority that is free, automated and open. This means that it will now be very easy to secure your connection to Home Assistant while you are away from home. W1ll1am23 has written up [a guide how to get started](https://community.home-assistant.io/t/homeassistant-nginx-ssl-proxy-setup/53). The next thing is a show-off of some of the cool stuff people do with Home Assistant. This is miniconfig talking to Home Assistant using the Amazon Echo! diff --git a/source/_posts/2016-02-20-community-highlights.markdown b/source/_posts/2016-02-20-community-highlights.markdown index d3a277cca1e..e489028e05e 100644 --- a/source/_posts/2016-02-20-community-highlights.markdown +++ b/source/_posts/2016-02-20-community-highlights.markdown @@ -52,7 +52,7 @@ Example config.json entry to load Home Assistant: ### {% linkable_title Custom alarm system with Home Assistant %} -User thaijames [describes in the Home Assistant forums](https://automic.us/forum/viewtopic.php?f=4&t=43&hilit=nfc) how he has created his own NFC-based alarm system using Home Assistant, DIY components and Garfield dolls. +User thaijames [describes in the Home Assistant forums](https://community.home-assistant.io/t/controlling-house-alarm-from-ha/67) how he has created his own NFC-based alarm system using Home Assistant, DIY components and Garfield dolls.
diff --git a/source/_topics/splitting_configuration.markdown b/source/_topics/splitting_configuration.markdown
index 46dddbdf1d7..644296f28ec 100644
--- a/source/_topics/splitting_configuration.markdown
+++ b/source/_topics/splitting_configuration.markdown
@@ -9,50 +9,42 @@ sharing: true
footer: true
---
-So you've been using Home Assistant (HA, hass, or any number of other abbreviations) for a while now and your configuration.yaml file brings people to tears (https://home-assistant.io/cookbook/configuration_yaml_from_bassclarinetl2/) or you simply want to start off with the distributed approach, here's how to "split the configuration.yaml" into more manageable (read: husmanly readable) pieces.
+So you've been using Home Assistant for a while now and your [configuration.yaml file brings people to tears](https://home-assistant.io/cookbook/configuration_yaml_from_bassclarinetl2/) or you simply want to start off with the distributed approach, here's how to "split the configuration.yaml" into more manageable (read: humanly readable) pieces.
-First off, several community members have sanitized (read: without api keys/passwords etc) versions of their configurations available for viewing:
-
-- https://github.com/bassclarinetl2/HASS
-- https://github.com/happyleavesaoc/my-home-automation/tree/master/homeassistant
+First off, several community members have sanitized (read: without api keys/passwords etc) versions of their configurations available for viewing, you can see a list of them [here](https://home-assistant.io/cookbook/#example-configurationyaml).
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 all be it in a much less cluttered form.
In this lighter version we will still need what could be called the core snippet:
- homeassistant:
- # Name of the location where Home Assistant is running
- name: My Hass Instance
- # Location required to calculate the time the sun rises and sets
- latitude: 37
- longitude: -121
- # C for Celcius, F for Fahrenheit
- temperature_unit: F
- # Pick yours from here: http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
- time_zone: America/Los_Angeles
- customize: !include customize.yaml
+```yaml
+homeassistant:
+ # Name of the location where Home Assistant is running
+ name: My Hass Instance
+ # Location required to calculate the time the sun rises and sets
+ latitude: 37
+ longitude: -121
+ # C for Celcius, F for Fahrenheit
+ temperature_unit: F
+ # Pick yours from here: http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
+ time_zone: America/Los_Angeles
+ customize: !include customize.yaml
+```
-Note that each line after `homeassistant:` is indented two (2) spaces. Since the configuration files in Home Assistant are based on the YAML "language", indentation and spacing are important. Also note that seemingly strange entry under `customize:`.
+Note that each line after `homeassistant:` is indented two (2) spaces. Since the configuration files in Home Assistant are based on the YAML language, indentation and spacing are important. Also note that seemingly strange entry under `customize:`.
-`!include filename.yaml` is the statement that tells Home Assistant to insert the contents of `filename.yaml` at that point. This is how we are going to break a monolithic and hard to read file (when it gets big) into more manageable chunks.
+`!include filename.yaml` is the statement that tells Home Assistant to insert the contents of `filename.yaml` at that point. This is how we are going to break a monolithic and hard to read file (when it gets big) into more manageable chunks.
Now before we start splitting out the different components, let's look at the other components (in our example) that will stay in the base file:
-```
-#discovery:
-sun:
-#updater:
+```yaml
history:
-#conversation:
frontend:
logbook:
http:
api_password: ImNotTelling!
- server_port: 8123
- ssl_certificate: /etc/letsencrypt/live/example.com/fullchain.pem
- ssl_key: /etc/letsencrypt/live/example.com/privkey.pem
ifttt:
key: [nope]
@@ -72,54 +64,41 @@ zwave:
mqtt:
broker: 127.0.0.1
- port: 8883
- username: user
- password: password
```
-As with the core snippet, indentation makes a difference. The component headers (`mqtt:`) should be fully left aligned (aka no indent), and the parameters (`port:`) should be indented two (2) spaces.
+As with the core snippet, indentation makes a difference. The component headers (`mqtt:`) should be fully left aligned (aka no indent), and the parameters (`port:`) should be indented two (2) spaces.
-While some of these components can technically be moved to a separate file they are so small or "one off's" where splitting them off is superfluous. Also, you'll notice the # symbol (hash/pound). This represents a "comment" as far as the commands are interpreted. Put another way, any line prefixed with a `#` will be ignored. This makes breaking up files for human readability really convenient , not to mention turning off features while leaving the entry intact. (Look at the `zigbee:` entry above and the sensors entry further down)
+While some of these components can technically be moved to a separate file they are so small or "one off's" where splitting them off is superfluous. Also, you'll notice the # symbol (hash/pound). This represents a "comment" as far as the commands are interpreted. Put another way, any line prefixed with a `#` will be ignored. This makes breaking up files for human readability really convenient, not to mention turning off features while leaving the entry intact. (Look at the `zigbee:` entry above and the b entry further down)
Now, lets assume that a blank file has been created in the hass configuration directory for each of the following:
- groups.yaml
- zones.yaml
- automation.yaml
- notifications.yaml
- sensors.yaml
- switches.yaml
- scripts.yaml
- media_player.yaml
- device_tracker.yaml
- customize.yaml
-
-`automation.yaml`will hold all the automation component details
-`zones.yaml` will hold the zone component details
-and so forth. These files can be called anything but giving them names that match their function will make things easier to keep track of.
+```text
+automation.yaml
+zones.yaml
+sensors.yaml
+switches.yaml
+device_tracker.yaml
+customize.yaml
+```
+
+`automation.yaml` will hold all the automation component details. `zones.yaml` will hold the zone component details and so forth. These files can be called anything but giving them names that match their function will make things easier to keep track of.
Inside the base configuration file add the following entries:
-```
-group: !include groups.yaml
-zone: !include zones.yaml
+
+```yaml
automation: !include automation.yaml
-notifications: !include notifications.yaml
+zone: !include zones.yaml
sensor: !include sensors.yaml
switch: !include switches.yaml
-scripts: !include: scripts.yaml
-media_player: !include media_player.yaml
device_tracker: !include device_tracker.yaml
```
-Note that there can only be one `!include:` for each component so chaining them isn't going to work. If that sounds like greek, don't worry about it.
+
+Note that there can only be one `!include:` for each component so chaining them isn't going to work. If that sounds like greek, don't worry about it.
Alright, so we've got the single components and the include statements in the base file, what goes in those extra files?
-Let's look at the `device_tracker` file from our example:
-
-```
-### device_tracker.yaml
-###
-###
+Let's look at the `device_tracker.yaml` file from our example:
+```yaml
- platform: owntracks
- platform: nmap_tracker
hosts: 192.168.2.0/24
@@ -127,27 +106,24 @@ Let's look at the `device_tracker` file from our example:
track_new_devices: yes
interval_seconds: 40
- consider_home: 120
+ 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 2" 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:
-```
+
+```yaml
### sensors.yaml
-###
-###
-###
##############################################################
### METEOBRIDGE ####
-### http://meteobridge.com/wiki/index.php/Add-On_Services ####
-### Live Data as Plain text ####
##############################################################
- platform: tcp
name: 'Outdoor Temp (Meteobridge)'
host: 192.168.2.82
timeout: 6
- payload: "Content-type: text/xml; charset=UTF-8\n\n"
+ payload: "Content-type: text/xml; charset=UTF-8\n\n"
value_template: "{{value.split (' ')[2]}}"
unit: C
- platform: tcp
@@ -166,102 +142,6 @@ This (large) sensor configuration gives us another example:
payload: "Content-type: text/xml; charset=UTF-8\n\n"
value_template: "{{value.split (' ')[4] }}"
unit: C
-- platform: tcp
- name: 'Wind Direction (Meteobridge)'
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charset=UTF-8\n\n"
- value_template: "{{value.split (' ')[7]}}"
- unit: Degrees
-- platform: tcp
- name: 'Wind Gust (Meteohub)'
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charset=UTF-8\n\n"
- value_template: "{{value.split (' ')[8]}}"
- unit: m/s
-- platform: tcp
- name: 'Wind Speed (Meteobridge)'
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charset=UTF-8\n\n"
- value_template: "{{value.split (' ')[9]}}"
- unit: m/s
-- platform: tcp
- name: 'Wind Chill (Meteobridge)'
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charset=UTF-8\n\n"
- value_template: "{{value.split (' ')[10]}}"
- unit: C
-- platform: tcp
- name: 'Precip Rate (Meteobridge)'
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charset=UTF-8\n\n"
- value_template: "{{value.split (' ')[13]}}"
- unit: mm/hr
-- platform: tcp
- name: 'Precip Total (Meteobridge)'
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charaset=UTF-8\n\n"
- value_template: "{{value.split (' ')[14]}}"
- unit: mm
-- platform: tcp
- name: 'Precip Change (Meteobridge)'
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charaset=UTF-8\n\n"
- value_template: "{{value.split (' ')[15]}}"
- unit: mm
-- platform: tcp
- name: 'Indoor Temp (Meteobridge)'
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charaset=UTF-8\n\n"
- value_template: "{{value.split (' ')[18]}}"
- unit: C
-- platform: tcp
- name: 'Indoor Humidity (Meteobridge)'
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charaset=UTF-8\n\n"
- value_template: "{{value.split (' ')[19]}}"
- unit: percent
-- platform: tcp
- name: 'Indoor Dewpoint (Meteobridge)'
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charaset=UTF-8\n\n"
- value_template: "{{value.split (' ')[20]}}"
- unit: C
-- platform: tcp
- name: 'Barometric Pressure (Meteobridge)'
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charaset=UTF-8\n\n"
- value_template: "{{value.split (' ')[21]}}"
- unit: mb
-- platform: tcp
- name: 'Sea Level Pressure (Meteobridge)'
- host: 192.168.2.82
- port: 5556
- timeout: 6
- payload: "Content-type: text/xml; charaset=UTF-8\n\n"
- value_template: "{{value.split (' ')[22]}}"
- unit: mb
###################################
#### STEAM FRIENDS ####
##################################
@@ -281,7 +161,7 @@ This (large) sensor configuration gives us another example:
- 'date'
- platform: worldclock
time_zone: Etc/UTC
- name: 'UTC'
+ name: 'UTC'
- platform: worldclock
time_zone: America/New_York
name: 'Ann Arbor'
@@ -295,7 +175,7 @@ This (large) sensor configuration gives us another example:
You'll notice that this example includes a secondary parameter section (under the steam section) as well as a better example of the way comments can be used to break down files into sections.
-That about wraps it up.
+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.im chat and ask away.
+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.
diff --git a/source/_topics/z-wave.markdown b/source/_topics/z-wave.markdown
index 84d15a60c62..4fff9fea8e2 100644
--- a/source/_topics/z-wave.markdown
+++ b/source/_topics/z-wave.markdown
@@ -13,7 +13,9 @@ footer: true
Z-Wave is a popular home automation protocol that is not always straightforward to setup. This page will try to help you make sense of it all.
-- Note: Upon first run, the z-wave component will take time to initialize entities and entities may appear with incomplete names. Running a network heal may expidite this proccess.
+
+Upon first run, the z-wave component will take time to initialize entities and entities may appear with incomplete names. Running a network heal may expidite this proccess. +
## {% linkable_title Supported Z-Wave Sticks %} @@ -21,6 +23,7 @@ Z-Wave is a popular home automation protocol that is not always straightforward |-------------------------|----------------|------------------|--------------|-----------| | Aeotec Z-Stick Series 2 | X | | | | | Aeotec Z-Stick Series 5 | X | | | | +| Razberry GPIO Module | X | | | | ## {% linkable_title Stick Alternatives %} diff --git a/source/developers/architecture.markdown b/source/developers/architecture.markdown index 3bf10db703a..e457e5d8e9e 100644 --- a/source/developers/architecture.markdown +++ b/source/developers/architecture.markdown @@ -28,7 +28,7 @@ The Home Assistant core is responsible for Home Control. It has four parts to ma * The **Event Bus** facilitates the firing and listening of events. This is the beating heart of Home Assistant. * The **State Machine** keeps track of the states of things. Fires a `state_changed` event when a state has been changed. * The **Service Registry** listens on the event bus for `call_service` events and allows other code to register services. - * The **Timer** will send every 1 second a `time_changed` event on the event bus. + * The **Timer** will send a `time_changed` event every 1 second on the event bus. -Home Assistant can be extended by **components**. Each component is responsible for a specific domain within Home Assistant. Components can listen for- or trigger events, offer services and maintain states. Components are written in Python and can do all the goodness that Python has to offer. Out of the box, Home Assistant offers a bunch of [built-in components]({{site_root}}/components/). +Home Assistant can be extended by **components**. Each component is responsible for a specific domain within Home Assistant. Components can listen for or trigger events, offer services and maintain states. Components are written in Python and can do all the goodness that Python has to offer. Out of the box, Home Assistant offers a bunch of [built-in components]({{site_root}}/components/). -We can differentiate between two different types ofcomponents within Home Assistant. +We can differentiate between two different types of components within Home Assistant. #### {% linkable_title Components that interact with an Internet of Things domain %} -These components will track devices within a specific domain and exist of a core part and platform specific logic. These components make their information available via the State Machine and the Event Bus. The component will also register services in the Service Registry to expose control of the devices. +These components will track devices within a specific domain and consist of a core part and platform-specific logic. These components make their information available via the State Machine and the Event Bus. The component will also register services in the Service Registry to expose control of the devices. For example, one of the built-in components is the `switch` component. This component is responsible for interaction with different types of switches. +A platform provides support for a particular kind/brand of device. For example, a switch could use a WeMo or Orvibo platform, and a light component might interact with the Hue or LiFX platform. + If you are planning to add support for a new platform, please check out the [add new platform section]({{root_url}}/developers/add_new_platform/). #### {% linkable_title Components that respond to events that happen within Home Assistant %} @@ -86,7 +88,7 @@ When we put all the different pieces of Home Assistant together we see that we m Overview of the full Home Assistant architecture with a couple of loaded components and platforms. -Component's platform logic uses 3rd party Python libraries to communicate with the devices. This is done so that we can leverage great device libraries that are out there in the Python community. +The platform logic for components uses 3rd party Python libraries to communicate with the devices. This is done so that we can leverage great device libraries that are out there in the Python community. ## {% linkable_title Multiple connected instances %} @@ -99,7 +101,7 @@ Home Assistant supports running multiple synchronized instances using a master-s Overview of the Home Assistant architecture for multiple devices. -A slave instance can be started with the following code and has the same support for components as a master-instance. +A slave instance can be started with the following code and has the same support for components as a master instance. ```python import homeassistant.remote as remote @@ -120,5 +122,5 @@ hass.block_till_stopped() ```-Because each slave maintains its own ServiceRegistry it is possible to have multiple slaves respond to one service call. +Because each slave maintains its own Service Registry it is possible to have multiple slaves respond to one service call.
diff --git a/source/developers/credits.markdown b/source/developers/credits.markdown index 115a38e7747..f6f63365775 100644 --- a/source/developers/credits.markdown +++ b/source/developers/credits.markdown @@ -22,6 +22,7 @@ This page contains a list of people who have contributed in one way or another t - [Adrien Brault](https://github.com/adrienbrault) - [Alex Harvey](https://github.com/infamy) - [Allan Glen](https://github.com/allanglen) +- [Andrew](https://github.com/aoakeson) - [Andy Loughran](https://github.com/andylockran) - [andythigpen](https://github.com/andythigpen) - [Arthur Leonard Andersen](https://github.com/leoc) @@ -74,6 +75,7 @@ This page contains a list of people who have contributed in one way or another t - [Karen Goode](https://github.com/kfgoode) - [kennedyshead](https://github.com/kennedyshead) - [kixam](https://github.com/kixam) +- [Luca Soldi](https://github.com/LucaSoldi) - [Lukas Hetzenecker](https://github.com/lukas-hetzenecker) - [Magnus Knutas](https://github.com/MagnusKnutas) - [MakeMeASandwich](https://github.com/MakeMeASandwich) @@ -99,6 +101,7 @@ This page contains a list of people who have contributed in one way or another t - [rhooper](https://github.com/rhooper) - [Richard Arends](https://github.com/Mosibi) - [rkabadi](https://github.com/rkabadi) +- [Robbie Trencheny](https://github.com/robbiet480) - [Rowan Hine](https://github.com/GreenTurtwig) - [Ryan Kraus](https://github.com/rmkraus) - [Ryan Turner](https://github.com/ryanturner) diff --git a/source/developers/website.markdown b/source/developers/website.markdown index cc0a3f6c756..fac5d007e18 100644 --- a/source/developers/website.markdown +++ b/source/developers/website.markdown @@ -11,7 +11,7 @@ footer: true The home of Home Assistant is [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 using [Octopress](http://octopress.org/). To get more details, please checkout the [documentation](http://octopress.org/docs/). That means that creating a new page is simple. The pages are written in [markdown](http://daringfireball.net/projects/markdown/), you don't need to care about HTML or alike. +home-assistant.io is using the [Octopress](http://octopress.org/) framework for [Jekyll](http://github.com/mojombo/jekyll). To get more details, please checkout the [documentation](http://octopress.org/docs/). That means that creating a new page is simple. The pages are written in [markdown](http://daringfireball.net/projects/markdown/), you don't need to care about HTML or alike. To work on the website the process is no different to working on Home Assistant itself. @@ -24,13 +24,13 @@ To work on the website the process is no different to working on Home Assistant For a platform page it would be the fastest way to make a copy of an existing page and edit it. The [component overview](/components/) is generated automatically, so there is no need to add a link to that your page. ### {% linkable_title Code %} -To take advantage of the build-in features of Octopress to display code snipplets, just use the default markdown syntax. Please use `$` and `#` if it's a command and to differ from output. +To take advantage of the built-in features of Octopress to display code snippets, just use the default markdown syntax. Please use `$` and `#` if it's a command and to differ from output. ```bash Here goes the code... ``` -If you want to display line numbers, add the following snipplets somewhere on your page. +If you want to display line numbers, add the following snippet somewhere on your page. ``` {::options coderay_line_numbers="table" /} @@ -44,5 +44,5 @@ The images which are displayed on the pages are stored in various directories ac | screen shots | source/images/screenshots | | logos | source/images/supported_brands | -Not everything (product, component, etc.) has a logo, to show something for internal parts of Home Assistant we are using the [Material Design Icons](https://materialdesignicons.com/). +Not everything (product, component, etc.) has a logo. To show something for internal parts of Home Assistant we are using the [Material Design Icons](https://materialdesignicons.com/). diff --git a/source/getting-started/autostart.markdown b/source/getting-started/autostart.markdown index 000ed53c2c7..c10625a3b12 100644 --- a/source/getting-started/autostart.markdown +++ b/source/getting-started/autostart.markdown @@ -32,7 +32,6 @@ Upstart will launch init scripts that are located in the directory `/etc/init.d/ To install this script, download it, tweak it to you liking, and install it by following the directions in the header. This script will setup Home Assistant to run when the system boots. To start/stop Home Assistant manually, issue the following commands: - ```bash $ sudo service hass-daemon start $ sudo service hass-daemon stop @@ -44,64 +43,64 @@ When running daemons, it is good practice to have the daemon run under its own u
You will have to restart Home Assistant for changes in
-Whenever you report an issue, be aware that we are a group of volunteers that do not have access to every single device in the world nor unlimited time to fix every problem out there.
+Whenever you report an issue, be aware that we are volunteers who do not have access to every single device in the world nor unlimited time to fix every problem out there.
configuration.yaml
to take effect.
@@ -46,7 +47,7 @@ homeassistant:
### {% linkable_title Password protecting the web interface %}
-The first thing you want to add is a password for the web interface. Use your favourite text editor to open the file `/config/configuration.yaml` and add the following to the bottom:
+The first thing you want to add is a password for the web interface. Use your favourite text editor to open the file `/config/configuration.yaml` and add the following to the `http` section:
```yaml
http:
@@ -59,12 +60,12 @@ _See the [HTTP component documentation][http] for more options like HTTPS encryp
### {% linkable_title Setting up your phone or tablet %}
-Home Assistant runs as a self hosted web application and contains support to be added to your homescreen. If you're on Android you can follow [the visual guide]({{site_root}}/getting-started/android/). For other devices, open Home Assistant on your mobile browser and tap on the add to homescreen option.
+Home Assistant runs as a self-hosted web application and contains support to be added to your home screen. If you're on Android you can follow [the visual guide]({{site_root}}/getting-started/android/). For other devices, open Home Assistant on your mobile browser and tap the add to home screen option.
### {% linkable_title Remote access %}
To make Home Assistant accessible while away from home, you will have to setup port forwarding from your router to port 8123 on the computer that is hosting Home Assistant. Instructions on how to do this can be found by searching `