- {% for post in site.posts reverse %}
+ {% assign reversedposts = site.posts | reverse %}
+ {% for post in reversedposts %}
{% capture this_year %}{{ post.date | date: "%Y" }}{% endcapture %}
{% unless year == this_year %}
{% assign year = this_year %}
diff --git a/source/developers/website.markdown b/source/developers/website.markdown
index 310295488d2..d2f36e50306 100644
--- a/source/developers/website.markdown
+++ b/source/developers/website.markdown
@@ -11,12 +11,12 @@ 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 uses the [Octopress](http://octopress.org/) framework for [Jekyll](http://github.com/mojombo/jekyll). To get more details, please checkout the [Octopress documentation](http://octopress.org/docs/).
+home-assistant.io uses the [Octopress](http://octopress.org/) framework for [Jekyll](http://github.com/mojombo/jekyll). To get more details, please checkout the [Octopress 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 the like.
The process for working on the website is no different from working on Home Assistant itself.
-To test your changes locally, you need to install the **Ruby** dependencies (gems):
+To test your changes locally, you need to install the **Ruby** dependencies (gems):
- [Install Ruby](https://www.ruby-lang.org/en/documentation/installation/) if you don't have it already.
- Install `bundler`, which is a dependency manager for Ruby: `gem install bundler`
@@ -24,11 +24,11 @@ To test your changes locally, you need to install the **Ruby** dependencies (gem
Then you can work on the documentation:
-- Fork home-assistant.io [git repository](https://github.com/home-assistant/home-assistant.io).
+- Fork home-assistant.io [git repository](https://github.com/home-assistant/home-assistant.github.io).
- Create/edit/update a page in the directory `source/_components/` for your platform/component.
- Test your changes to home-assistant.io locally: run ``rake preview`` and navigate to [http://127.0.0.1:4000](http://127.0.0.1:4000)
- Create a Pull Request (PR) against the **next** branch of home-assistant.io if your documentation is for a new feature, platform, or component.
-- Create a Pull Request (PR) against the **master** branch of home-assistant.io if you fix stuff, create Cookbook entries, or expand existing documentation.
+- Create a Pull Request (PR) against the **current** branch of home-assistant.io if you fix stuff, create Cookbook entries, or expand existing documentation.
For a platform page, the fastest way is 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 your page.
diff --git a/source/getting-started/automation-action.markdown b/source/getting-started/automation-action.markdown
index b099686bde8..dda01b43073 100644
--- a/source/getting-started/automation-action.markdown
+++ b/source/getting-started/automation-action.markdown
@@ -62,9 +62,9 @@ automation:
- condition: or
conditions:
- condition: template
- value_template: '{{ states.sun.sun.attributes.elevation < 4 }}'
+ value_template: '{% raw %}{{ states.sun.sun.attributes.elevation < 4 }}{% endraw %}'
- condition: template
- value_template: '{{ states.sensor.sensorluz_7_0.state < 10 }}'
+ value_template: '{% raw %}{{ states.sensor.sensorluz_7_0.state < 10 }}{% endraw %}'
- service: scene.turn_on
entity_id: scene.DespiertaDespacho
```
diff --git a/source/getting-started/automation-condition.markdown b/source/getting-started/automation-condition.markdown
index a28b3c93a0f..165c5172af8 100644
--- a/source/getting-started/automation-condition.markdown
+++ b/source/getting-started/automation-condition.markdown
@@ -32,9 +32,9 @@ Example of using condition:
condition: or
conditions:
- condition: template
- value_template: '{{ states.sun.sun.attributes.elevation < 4 }}'
+ value_template: '{% raw %}{{ states.sun.sun.attributes.elevation < 4 }}{% endraw %}'
- condition: template
- value_template: '{{ states.sensor.sensorluz_7_0.state < 10 }}'
+ value_template: '{% raw %}{{ states.sensor.sensorluz_7_0.state < 10 }}{% endraw %}'
action:
- service: scene.turn_on
entity_id: scene.DespiertaDespacho
diff --git a/source/getting-started/automation-templating.markdown b/source/getting-started/automation-templating.markdown
index d7957e61e24..940a3887665 100644
--- a/source/getting-started/automation-templating.markdown
+++ b/source/getting-started/automation-templating.markdown
@@ -37,15 +37,19 @@ automation 2:
message: {% raw %}{{ trigger.payload }}{% endraw %}
```
-### {% linkable_title Available Trigger Data %}
+## {% linkable_title Available Trigger Data %}
The following tables show the available trigger data per platform.
+### {% linkable_title event %}
+
| Template variable | Data |
| ---- | ---- |
| `trigger.platform` | Hardcoded: `event`.
| `trigger.event` | Event object that matched.
+### {% linkable_title mqtt %}
+
| Template variable | Data |
| ---- | ---- |
| `trigger.platform` | Hardcoded: `mqtt`.
@@ -53,6 +57,8 @@ The following tables show the available trigger data per platform.
| `trigger.payload` | Payload.
| `trigger.qos` | QOS of payload.
+### {% linkable_title numeric_state %}
+
| Template variable | Data |
| ---- | ---- |
| `trigger.platform` | Hardcoded: `numeric_state`
@@ -62,6 +68,8 @@ The following tables show the available trigger data per platform.
| `trigger.from_state` | The previous [state object] of the entity.
| `trigger.to_state` | The new [state object] that triggered trigger.
+### {% linkable_title state %}
+
| Template variable | Data |
| ---- | ---- |
| `trigger.platform` | Hardcoded: `state`
@@ -70,12 +78,16 @@ The following tables show the available trigger data per platform.
| `trigger.to_state` | The new [state object] that triggered trigger.
| `trigger.for` | Timedelta object how long state has been to state, if any.
+### {% linkable_title sun %}
+
| Template variable | Data |
| ---- | ---- |
| `trigger.platform` | Hardcoded: `sun`
| `trigger.event` | The event that just happened: `sunset` or `sunrise`.
| `trigger.offset` | Timedelta object with offset to the event, if any.
+### {% linkable_title template %}
+
| Template variable | Data |
| ---- | ---- |
| `trigger.platform` | Hardcoded: `template`
@@ -83,11 +95,15 @@ The following tables show the available trigger data per platform.
| `trigger.from_state` | Previous [state object] of entity that caused change.
| `trigger.to_state` | New [state object] of entity that caused template to change.
+### {% linkable_title time %}
+
| Template variable | Data |
| ---- | ---- |
| `trigger.platform` | Hardcoded: `time`
| `trigger.now` | DateTime object that triggered the time trigger.
+### {% linkable_title zone %}
+
| Template variable | Data |
| ---- | ---- |
| `trigger.platform` | Hardcoded: `zone`
diff --git a/source/getting-started/automation-trigger.markdown b/source/getting-started/automation-trigger.markdown
index 349ce666147..84b2f75d912 100644
--- a/source/getting-started/automation-trigger.markdown
+++ b/source/getting-started/automation-trigger.markdown
@@ -11,7 +11,7 @@ footer: true
Triggers are what starts the processing of an automation rule. It is possible to specify multiple triggers for the same rule. Once a trigger starts, Home Assistant will validate the conditions, if any, and call the action.
-#### {% linkable_title Event trigger %}
+### {% linkable_title Event trigger %}
Triggers when an event is being processed. Events are the raw building blocks of Home Assistant. You can match events on just the event name or also require specific event data to be present.
```yaml
@@ -24,7 +24,7 @@ automation:
mood: happy
```
-#### {% linkable_title MQTT trigger %}
+### {% linkable_title MQTT trigger %}
Triggers when a specific message is received on given topic. Optionally can match on the payload being sent over the topic.
```yaml
@@ -36,7 +36,7 @@ automation:
payload: 'on'
```
-#### {% linkable_title Numeric state trigger %}
+### {% linkable_title Numeric state trigger %}
On state change of a specified entity, attempts to parse the state as a number and triggers if value is above and/or below a threshold.
```yaml
@@ -51,7 +51,7 @@ automation:
below: 25
```
-#### {% linkable_title State trigger %}
+### {% linkable_title State trigger %}
Triggers when the state of tracked entities change. If only entity_id given will match all state changes.
@@ -76,7 +76,7 @@ automation:
Use quotes around your values for `from` and `to` to avoid the YAML parser interpreting values as booleans.
-#### {% linkable_title Sun trigger %}
+### {% linkable_title Sun trigger %}
Trigger when the sun is setting or rising. An optional time offset can be given to have it trigger for example 45 minutes before sunset, when dusk is setting in.
```yaml
@@ -89,7 +89,7 @@ automation:
offset: '-00:45:00'
```
-#### {% linkable_title Template trigger %}
+### {% linkable_title Template trigger %}
Template triggers work by evaluating a [template] on each state change. The trigger will fire if the state change caused the template to render 'true'. This is achieved by having the template result in a true boolean expression (`{% raw %}{{ is_state('device_tracker.paulus', 'home') }}{% endraw %}`) or by having the template render 'true' (example below).
@@ -100,7 +100,7 @@ automation:
value_template: '{% raw %}{% if is_state('device_tracker.paulus', 'home') %}true{% endif %}{% endraw %}'
```
-#### {% linkable_title Time trigger %}
+### {% linkable_title Time trigger %}
Time can be triggered in many ways. The most common is to specify `after` and trigger at a specific point in time each day. Alternatively, you can also match if the hour, minute or second of the current time has a specific value. You can prefix the value with a `/` to match whenever the value is divisible by that number. You cannot use `after` together with hour, minute or second.
@@ -127,7 +127,7 @@ automation 3:
seconds: 0
```
-#### {% linkable_title Zone trigger %}
+### {% linkable_title Zone trigger %}
Zone triggers can trigger when an entity is entering or leaving the zone. For zone automation to work, you need to have setup a device tracker platform that supports reporting GPS coordinates. Currently this is limited to the [OwnTracks platform](/components/device_tracker.owntracks/) as well as the [iCloud platform](/components/device_tracker.icloud/).
diff --git a/source/getting-started/automation.markdown b/source/getting-started/automation.markdown
index 2de0f5c7db7..339e8da9c71 100644
--- a/source/getting-started/automation.markdown
+++ b/source/getting-started/automation.markdown
@@ -15,7 +15,7 @@ Home Assistant offers a wide range of automations. In the next few pages we'll t
[cookbook-config]: /cookbook/#example-configurationyaml
-### {% linkable_title The basics of automation %}
+### {% linkable_title Automation basics %}
Before you can go ahead and create your own automations, it's important to learn the basics. To explore the basics, let's have a look at the following example home automation rule:
diff --git a/source/getting-started/customizing-devices.markdown b/source/getting-started/customizing-devices.markdown
index 9fbaca4c7b8..695be29f04a 100644
--- a/source/getting-started/customizing-devices.markdown
+++ b/source/getting-started/customizing-devices.markdown
@@ -9,28 +9,21 @@ sharing: true
footer: true
---
-By default, all of your devices will be visible and have a default icon determined by their domain. You can customize the look and feel of your front page by altering some of these parameters. This can be done by adding the following configuration inside the `homeassistant:` section.
-
-Devices that you don't want to have visible can be hidden with `hidden`.
-
-`entity_picture`entries, badges, `device_tracker` pictures, etc. can either be external URLs (e.g. `http://example.com/example.jpg`) or of the form `/local/filename.jpg`, where `/local` represents the directory `www` in the HASS configuration directory. You may have to create the `www` directory yourself as it is not made automatically.
-
-You can also use `icon` and refer to any icon from [MaterialDesignIcons.com](http://MaterialDesignIcons.com).
-
-For switches with an assumed state two buttons are shown (turn off, turn on) instead of a switch. By setting `assumed_state` to `false` you will get the default switch icon.
-
+By default, all of your devices will be visible and have a default icon determined by their domain. You can customize the look and feel of your front page by altering some of these parameters. This can be done by overriding attributes of specific entities.
```yaml
# Example configuration.yaml entry
homeassistant:
+ name: Home
+ unit_system: celsius
+ # etc
- # Add this to your existing configuration
- # Only the `entity_id` is required. All other options are optional.
customize:
+ # Only the 'entity_id' is required. All other options are optional.
sensor.living_room_motion:
hidden: true
thermostat.family_roomfamily_room:
- entity_picture: https://dl.dropboxusercontent.com/u/12345/images/nest.jpg
+ entity_picture: https://example.com/images/nest.jpg
friendly_name: Nest
switch.wemo_switch_1:
friendly_name: Toaster
@@ -42,6 +35,16 @@ homeassistant:
assumed_state: false
```
+### {% linkable_title Possible values %}
+
+| Attribute | Description |
+| --------- | ----------- |
+| friendly_name | Name of the entity
+| hidden | Set to `true` to hide the entity.
+| entity_picture | url to use as picture for entity
+| icon | Any icon from [MaterialDesignIcons.com](http://MaterialDesignIcons.com). Prefix name with `mdi:`, ie `mdi:home`.
+| assumed_state | For switches with an assumed state two buttons are shown (turn off, turn on) instead of a switch. By setting `assumed_state` to `false` you will get the default switch icon.
+
### {% linkable_title Reloading customize %}
Home Assistant offers a service to reload the core configuration while Home Assistant is running called `homeassistant/reload_core_config`. This allows you to change your customize section and see it being applied without having to restart Home Assistant. To call this service, go to the

service developer tools, select the service `homeassistant/reload_core_config` and click "Call Service".
diff --git a/source/getting-started/devices.markdown b/source/getting-started/devices.markdown
index 8de52675eef..c6e2eafca1d 100644
--- a/source/getting-started/devices.markdown
+++ b/source/getting-started/devices.markdown
@@ -9,7 +9,7 @@ sharing: true
footer: true
---
-Home Assistant will be able to automatically discover and configure any Google Chromecasts, Netgear routers, Belkin WeMo switches, Philips Hue bridges and Sonos speakers on your network if you have [the discovery component]({{site_root}}/components/discovery/) enabled (which is by default).
+Home Assistant will be able to automatically discover a bunch of devices and services available on your network if you have [the discovery component]({{site_root}}/components/discovery/) enabled (which is by default).
See the [components overview page](/components/) to find installation instructions for your devices and services. If you can't find support for your favorite device or service, [consider adding support](/developers/add_new_platform/).
@@ -51,10 +51,6 @@ camera 2:
platform: mjpeg
```
-
-If your devices are not showing up in the frontend then check the entries in your configuration.yaml
file for duplicates.
-
-
### {% linkable_title Grouping devices %}
Once you have a bunch of devices set up, it is time to organize them into groups.
diff --git a/source/getting-started/presence-detection.markdown b/source/getting-started/presence-detection.markdown
index bfa3d8e90e4..6d6bc252c3e 100644
--- a/source/getting-started/presence-detection.markdown
+++ b/source/getting-started/presence-detection.markdown
@@ -23,7 +23,7 @@ Presence detection detects if people are home, an important input for automation
Screenshot of Home Assistant showing a school, work and home zone and two people.
-## {% linkable_title Setting it up %}
+### {% linkable_title Setting it up %}
The device tracker component offers presence detection for Home Assistant. It supports two different methods for presence detection: scan for connected devices on the local network and connect to third party service.
@@ -35,7 +35,7 @@ Home Assistant currently supports two third party services for presence detectio
OwnTracks communicates directly with your MQTT broker, no data will pass through their servers.
-#### {% linkable_title Zones %}
+### {% linkable_title Zones %}

diff --git a/source/getting-started/scripts-conditions.markdown b/source/getting-started/scripts-conditions.markdown
index 430727ba976..17256f028b4 100644
--- a/source/getting-started/scripts-conditions.markdown
+++ b/source/getting-started/scripts-conditions.markdown
@@ -11,7 +11,7 @@ footer: true
Conditions can be used within a script or automation to prevent further execution. A condition will look at the system right now. For example a condition can test if a switch is currently turned on or off.
-#### {% linkable_title AND condition %}
+### {% linkable_title AND condition %}
Test multiple conditions in 1 condition statement. Passes if all embedded conditions are valid.
@@ -26,7 +26,7 @@ conditions:
below: '20'
```
-#### {% linkable_title OR condition %}
+### {% linkable_title OR condition %}
Test multiple conditions in 1 condition statement. Passes if any embedded conditions is valid.
@@ -41,7 +41,7 @@ conditions:
below: '20'
```
-#### {% linkable_title MIXED AND and OR conditions %}
+### {% linkable_title MIXED AND and OR conditions %}
Test multiple AND and OR conditions in 1 condition statement. Passes if any embedded conditions is valid.
This allows you to mix several AND and OR conditions together.
@@ -62,7 +62,7 @@ conditions:
below: '20'
```
-#### {% linkable_title Numeric state condition %}
+### {% linkable_title Numeric state condition %}
This type of condition attempts to parse the state of specified entity as a number and triggers if the value matches all of the above or below thresholds.
@@ -76,10 +76,10 @@ entity_id: sensor.temperature
above: 17
below: 25
# If your sensor value needs to be adjusted
-value_template: {{ float(state.state) + 2 }}
+value_template: {% raw %}{{ float(state.state) + 2 }}{% endraw %}
```
-#### {% linkable_title State condition %}
+### {% linkable_title State condition %}
Tests if an entity is a specified state.
@@ -94,7 +94,7 @@ for:
seconds: 5
```
-#### {% linkable_title Sun condition %}
+### {% linkable_title Sun condition %}
The sun condition can test if the sun has already set or risen when a trigger occurs. The `before` and `after` keys can only be set to `sunset` or `sunrise`. They have a corresponding optional offset value (`before_offset`, `after_offset`) that can be added, similar to the [sun trigger][sun_trigger].
@@ -107,7 +107,7 @@ after: sunset
after_offset: "-1:00:00"
```
-#### {% linkable_title Template condition %}
+### {% linkable_title Template condition %}
The template condition will test if the [given template][template] renders a value equal to true. This is achieved by having the template result in a true boolean expression or by having the template render 'true'.
@@ -121,7 +121,7 @@ Within an automation, template conditions also have access to the `trigger` vari
[template]: /topics/templating/
[automation-templating]: /getting-started/automation-templating/
-#### {% linkable_title Time condition %}
+### {% linkable_title Time condition %}
The time condition can test if it is after a specified time, before a specified time or if it is a certain day of the week
@@ -138,7 +138,7 @@ weekday:
Valid values for `weekday` are `mon`, `tue`, `wed`, `thu`, `fri`, `sat`, `sun`.
-#### {% linkable_title Zone condition %}
+### {% linkable_title Zone condition %}
Zone conditions test if an entity is in a certain zone. For zone automation to work, you need to have setup a device tracker platform that supports reporting GPS coordinates. Currently this is limited to the [OwnTracks platform](/components/device_tracker.owntracks/) and the [iCloud platform](/components/device_tracker.icloud/).
@@ -148,8 +148,7 @@ entity_id: device_tracker.paulus
zone: zone.home
```
-
-#### {% linkable_title Examples %}
+### {% linkable_title Examples %}
```yaml
condition:
diff --git a/source/getting-started/scripts.markdown b/source/getting-started/scripts.markdown
index 54ae5a15bf0..fdeede23996 100644
--- a/source/getting-started/scripts.markdown
+++ b/source/getting-started/scripts.markdown
@@ -26,7 +26,7 @@ script:
message: 'Turned on the ceiling light!'
```
-#### {% linkable_title Call a Service %}
+### {% linkable_title Call a Service %}
The most important one is the action to call a service. This can be done in various ways. For all the different possibilities, have a look at the [service calls page].
@@ -38,7 +38,7 @@ data:
brightness: 100
```
-#### {% linkable_title Test a Condition %}
+### {% linkable_title Test a Condition %}
While executing a script you can add a condition to stop further execution. When a condition does not return `true`, the script will finish. There are many different conditions which are documented at the [conditions page].
@@ -48,7 +48,7 @@ entity_id: device_tracker.paulus
state: 'home'
```
-#### {% linkable_title Delay %}
+### {% linkable_title Delay %}
Delays are useful for temporarily suspending your script and start it at a later moment. We support different syntaxes for a delay as shown below.
@@ -75,7 +75,7 @@ delay:
delay: {% raw %}'00:{{ input_slider.minute_delay | int }}:00'{% endraw %}
```
-#### {% linkable_title Fire an Event %}
+### {% linkable_title Fire an Event %}
This action allows you to fire an event. Events can be used for many things. It could trigger an automation or indicate to another component that something is happening. For instance, in the below example it is used to create an entry in the logbook.
diff --git a/source/getting-started/z-wave.markdown b/source/getting-started/z-wave.markdown
index 1d82eb2f6e3..aa4534e5b38 100644
--- a/source/getting-started/z-wave.markdown
+++ b/source/getting-started/z-wave.markdown
@@ -90,9 +90,9 @@ $ ls /dev/ttyACM*
Depending on what's plugged into your USB ports, the name found above may change. You can lock in a name, such as `/dev/zwave`, by following [these instructions](http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/).
-#### {% linkable_title Events %}
+### {% linkable_title Events %}
-**zwave.network_complete**
+#### {% linkable_title zwave.network_complete %}
HomeAssistant will trigger a event when the zwave network is complete. Meaning all of the nodes on the network have been queried. This can take quite som time, depending on wakeup intervals on the battery powered devices on the network.
```yaml
@@ -102,7 +102,7 @@ HomeAssistant will trigger a event when the zwave network is complete. Meaning a
event_type: zwave.network_complete
```
-**zwave.network_ready**
+#### {% linkable_title zwave.network_ready %}
HomeAssistant will trigger a event when the zwave network is ready for use. Between `zwave.network_start` and `zwave.network_ready` HomeAssistant will feel sluggish when trying to send commands to zwave nodes. This is because the controller is requesting information from all of the nodes on the network. When this is triggered all awake nodes have been queried and sleeping nodes will be queried when they awake.
```yaml
@@ -112,7 +112,7 @@ HomeAssistant will trigger a event when the zwave network is ready for use. Betw
event_type: zwave.network_ready
```
-**zwave.network_start**
+#### {% linkable_title zwave.network_start %}
HomeAssistant will trigger a event when the zwave network is set up to be started.
```yaml
@@ -122,7 +122,7 @@ HomeAssistant will trigger a event when the zwave network is set up to be starte
event_type: zwave.network_start
```
-**zwave.network_stop**
+#### {% linkable_title zwave.network_stop %}
HomeAssistant will trigger a event when the zwave network stopping.
```yaml
@@ -132,7 +132,7 @@ HomeAssistant will trigger a event when the zwave network stopping.
event_type: zwave.network_stop
```
-**zwave.node_event**
+#### {% linkable_title zwave.node_event %}
HomeAssistant will trigger a event when command_class_basic changes value on a node.
This can be virtually anything, so tests have to be made to determine what value equals what.
You can use this for automations.
@@ -168,7 +168,7 @@ automation:
The *object_id* and *scene_id* of all triggered events can be seen in the console output.
-#### {% linkable_title Services %}
+### {% linkable_title Services %}
The Z-Wave component exposes seven services to help maintain the network.