Get entities for a device: device_entities
The device_entities template function returns a list of 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] IDs that belong to a given deviceA device is a model representing a physical or logical unit that contains entities.. You pass it a device ID, and it gives you every entity that is tied to that device in Home Assistant.
This is useful when you want to work with all the entities that a single device provides. For example, a smart plug might expose a switch entity, an energy sensor, and a signal strength sensor. With device_entities, you can loop through all of those at once. You could use it to check if any entity on a device is unavailable, build a summary card for a specific device, or find all sensors on a particular piece of hardware.
The device’s page in Settings > Devices & services lists all entities that belong to it. Reach for device_entities() when you need that list inside a template expression.
Usage
Here’s how to use this template function. Copy any example and adjust it to your setup.
{{ device_entities("a1b2c3d4e5f6a1b2c3d4e5f6") }}
[
"switch.smart_plug",
"sensor.smart_plug_energy",
"sensor.smart_plug_signal",
]
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.
device_entities(
device_id: str,
) -> list[str]
Function parameters
The following parameters can be provided to this function.
The ID of the device. You can find device IDs by using the device_id function with an entity ID or device name.
Good to know
- Returns an empty list when the device ID does not match. It does not raise an error.
- Only accepts a device ID, not an entity ID or device name. Use
device_idto resolve those first. - Hidden and disabled entities are included in the result.
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.
Count entities on a device
Find out how many entities a specific device has registered.
{{ device_entities("a1b2c3d4e5f6a1b2c3d4e5f6") | count }}
3
Check if any entity on a device is unavailable
This checks whether any entity belonging to a device is currently in an unavailable state. Useful for monitoring device health.
{{
device_entities("a1b2c3d4e5f6a1b2c3d4e5f6")
| select("is_state", "unavailable")
| list
| count > 0
}}
false
Get all sensor entities from a device
Filter the device’s entities to only include sensors.
{{
device_entities("a1b2c3d4e5f6a1b2c3d4e5f6")
| select("match", "sensor.")
| list
}}
[
"sensor.smart_plug_energy",
"sensor.smart_plug_signal",
]
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 a device ID: device_id - Returns the device ID for a given entity ID or device name.
-
Get a device name: device_name - Returns the name of a device from a device ID or entity ID.
-
Get device attribute: device_attr - Returns the value of a specific attribute from a device.
-
Test device attribute: is_device_attr - Tests if a specific attribute of a device has a given value.