Draft copy, pending Luke's approval.
Export your entity list
We ask for the list of entities in your Home Assistant: each entity id, its name, and its device class and unit if it has them. We do not need current states, history, locations or your access token. Pick one of the three ways below.
The local Penduline runtime does connect to your Home Assistant, on your machine, read-only, and never switches anything. This page is for sending a contribution by hand. Nothing here is required to use Penduline.
Before anything is saved, Penduline keeps only the entity id, name,
device class and unit of each entity. Anything else in your export is
dropped, as are the friendly names of person and
device_tracker entities. Entity ids (on every domain) and the
names of other entities are kept and can still contain a person's name,
so leave out any that do. If your export contains an access token, it is
refused.
1. Template (recommended, no token needed)
- In Home Assistant, open Developer tools and choose the Template tab.
- Clear the template editor and paste in the template below.
- The result appears on the right. It starts with
[and ends with]. - Copy the whole result and paste it into the intake form, or save it as a
.jsonfile and upload it.
{%- set ns = namespace(rows=[]) -%}
{%- for s in states -%}
{%- set ns.rows = ns.rows + [{
"entity_id": s.entity_id,
"attributes": {
"friendly_name": s.name,
"device_class": s.attributes.device_class | default(none),
"unit_of_measurement": s.attributes.unit_of_measurement | default(none)
}
}] -%}
{%- endfor -%}
{{ ns.rows | tojson }}
This only reads names and types. It does not change anything in your Home Assistant.
2. Download from the REST API
If you are comfortable with a terminal, you can download
/api/states with a long-lived access token
(your profile page in Home Assistant, under Security).
Run this on your own machine. The token stays there; do not send it to us.
curl -s -H "Authorization: Bearer $HA_TOKEN" \
http://homeassistant.local:8123/api/states > states.json
Upload states.json. This file includes current states and
every attribute (sometimes GPS for phones and people). Penduline drops
all of that before saving, but if you would rather it never leaves your
machine, use the template instead.
3. A pasted list
Type or paste entity ids, one per line. You can copy them from
Settings → Devices & services → Entities.
Lines starting with # are ignored.
# downstairs
binary_sensor.hall_motion
sensor.kitchen_temperature
light.kitchen
A bare list gives us less to go on (no device classes), so the first map will have more questions in it.
If the form says your export is malformed
- "This is not valid JSON (line …, column …)"
- Part of the result was missed when copying. Copy it again from the first
[to the last]. - "This is a single entity, not a list"
- You copied one entity. Use the template above to get all of them.
- "Malformed entity id …"
- Entity ids look like
sensor.kitchen_temperature: lowercase, one dot, no spaces. Names like "Kitchen temperature" are not entity ids. - "This looks like it contains a Home Assistant access token"
- Remove the token (a long string starting with
eyJ) and send again. We never need it.
No export at all? That is fine. Describe your home in words instead.