Get state attribute: state_attr
The state_attr template function returns the value of a specific attribute from an entityAn entity represents a sensor, actor, or function in Home Assistant. Entities are used to monitor physical properties or to control other entities. An entity is usually part of a device or a service. [Learn more]‘s state. Entities in Home Assistant often have more information than their main state. For example, a climate entity’s state might be heating, but it also has attributes like temperature, current_temperature, and hvac_modes.
You’ll use this whenever you need information beyond the main state of an entity. Common examples include reading the brightness of a light, the battery level of a deviceA device is a model representing a physical or logical unit that contains entities., the friendly name of an entity, or the list of options available on a select entity. If the entity or attribute doesn’t exist, it returns None instead of causing an error.
For dashboards, a Tile card can show attributes as badges without a template. Reach for state_attr() when you need the value inside an automation, a notification message, or another template.
Usage
Here’s how to use this template function. Copy any example and adjust it to your setup.
{{ state_attr("climate.living_room", "temperature") }}
21.0
Function signature
The signature is a technical summary of this template function. It shows the name of the function, the values (called parameters) it accepts, and what type of data each parameter expects (for example, a piece of text or a number).
Function parameters that have a = with a value after them are optional. If you leave them out, the default value shown is used automatically. Function parameters without a default are required.
state_attr(
entity_id: str,
attribute: str,
) -> Any
Function parameters
The following parameters can be provided to this function.
To see all available attributes for an entity, go to Developer Tools > States and select the entity. The attributes are listed below the state value.
Good to know
- Returns
Nonewhen the entity or attribute does not exist. Chain with| default(value)for a fallback. - Attribute values keep their original type, so numeric attributes like
brightnesscome back as numbers without conversion.
Try it yourself
Ready to test this? Open Developer tools > Template, paste the example into the Template editor, and watch the result update on the right. Edit the values to see how the function adapts to your own entitiesAn entity represents a sensor, actor, or function in Home Assistant. Entities are used to monitor physical properties or to control other entities. An entity is usually part of a device or a service. [Learn more].
More examples
Real scenarios where this function comes up in automations and templates. Copy any example and adapt it to your setup.
Get the brightness of a light
Read how bright a light is currently set.
{{ state_attr("light.living_room", "brightness") }}
178
Get battery level
Check the battery percentage of a device.
{{ state_attr("sensor.phone_battery", "battery_level") }}
85
Use an attribute in a conditionConditions are an optional part of an automation that will prevent an action from firing if they are not met. [Learn more]
Check if the current temperature is below the target temperature.
{{
state_attr("climate.living_room", "current_temperature")
< state_attr("climate.living_room", "temperature")
}}
true
Still stuck?
The Home Assistant community is quick to help: join Discord for real-time chat, post on the community forum with your template and expected result, or share on our subreddit /r/homeassistant.
AI assistants like ChatGPT or Claude can also explain or fix templates when you describe what you want in plain language.
Related template functions
These functions work well alongside this one:
-
Get entity state: states - Returns the state value of an entity, or lets you iterate over all entity states.
-
Test state attribute: is_state_attr - Tests if a specific attribute of an entity has a given value.
-
Test entity state: is_state - Tests if an entity is in a specific state.
-
Check if entity has a value: has_value - Tests if an entity exists and has a valid state (not unavailable or unknown).