Template function state_attr to get attribute from a state (#4981)

* Adds docs for https://github.com/home-assistant/home-assistant/pull/13378

* 🚑 Fixes build error
This commit is contained in:
Mikael Svensson 2018-03-28 09:04:48 +02:00 committed by Paulus Schoutsen
parent 50b20f06da
commit 88c8cc2ff1

View File

@ -68,6 +68,7 @@ Home Assistant adds extensions to allow templates to access all of the current s
- `states.sensor.temperature` returns the state object for `sensor.temperature`.
- `states('device_tracker.paulus')` will return the state string (not the object) of the given entity or `unknown` if it doesn't exist.
- `is_state('device_tracker.paulus', 'home')` will test if the given entity is specified state.
- `state_attr('device_tracker.paulus', 'battery')` will return the value of the attribute or None if it doesn't exist.
- `is_state_attr('device_tracker.paulus', 'battery', 40)` will test if the given entity is specified state.
- `now()` will be rendered as current time in your time zone.
- For specific values: `now().second`, `now().minute`, `now().hour`, `now().day`, `now().month`, `now().year`, `now().weekday()` and `now().isoweekday()`
@ -114,7 +115,7 @@ The next two statements result in same value if state exists. The second one wil
### {% linkable_title Attributes %}
Print an attribute if state is defined
Print an attribute if state is defined. Both will return the same thing but the last one you can specify entity_id from a variable.
```text
{% raw %}{% if states.device_tracker.paulus %}
@ -124,6 +125,18 @@ Print an attribute if state is defined
{% endif %}{% endraw %}
```
With strings
```text
{% raw %}{% set tracker_name = "paulus"%}
{% if states("device_tracker." + tracker_name) != "unknown" %}
{{ state_attr("device_tracker." + tracker_name, "battery")}}
{% else %}
??
{% endif %}{% endraw %}
```
### {% linkable_title Sensor states %}
Print out a list of all the sensor states.