What we need from your Home Assistant

We need a device list from your Home Assistant setup to place your devices. You create one file called ha-inventory.json. It is usually 50–500 KB.

The list shows device names, their rooms and what each device can do, such as whether a lamp can be dimmed. We use it to assess the displays and controls you want in your dashboard. Your quote sets out the functions we agree to provide.

To build the model of your home, we also need a 3D scan or a floor plan with dimensions. The device list contains no building geometry. Exterior photos help us with the roof, façade, garden and materials. They are recommended, but not required.

Assign every device to a room first

Before exporting, assign every device to an area in Home Assistant. An “area” is a room. This is the simplest step you can take to speed up preparation of your dashboard.

If you have set up areas and floors, the export includes them. Without areas, the file contains no room assignments. We then need to work through the rooms with you.

Your login details stay with you

We never need your password or an access key. The intended export contains no passwords and no record of what anyone did at home.

Never send a full Home Assistant backup, secrets.yaml, core.auth, files named auth_provider.*, the recorder database, location history or camera recordings. Keep access tokens and API keys out of your enquiry too. We do not accept these files or credentials.

Create your device list

This works best on a computer. You need no coding knowledge, access to Home Assistant files or add-on. You log in to your own Home Assistant for these steps. You do not share your login details with us. During the export, only the text you choose to copy and send leaves your home.

  1. Open Home Assistant in your browser and log in as an administrator.
  2. Open Settings, scroll to the bottom of the page and select Tools, then the Template tab. Quicker: press Ctrl+K (Cmd+K on Mac), type template and press Enter.
  3. Clear the box on the left.
  4. Paste the export template supplied below exactly as provided.
{#- Device list for your 3D dashboard. The result is one long line of text.
    In Home Assistant, open Settings → Tools → Template (or press Ctrl+K / Cmd+K and type
    "template"). Clear the box on the left and paste all of this text into it. Copy the line
    that appears on the right and save it as ha-inventory.json.
    It lists your floors and rooms, and for each device its name, room and what it can do.
    It needs no password and no access key, and the result contains no history and no
    measured values or on/off states. -#}
{%- set d = namespace(floors=[], areas=[], entities=[]) -%}
{%- for f in floors() -%}
  {%- set d.floors = d.floors + [{'id': f, 'name': floor_name(f), 'areas': floor_areas(f)}] -%}
{%- endfor -%}
{%- for a in areas() -%}
  {%- set d.areas = d.areas + [{'id': a, 'name': area_name(a)}] -%}
{%- endfor -%}
{%- for s in states -%}
  {%- if s.domain in ['light', 'cover', 'binary_sensor', 'sensor', 'switch', 'climate', 'weather'] -%}
    {%- set d.entities = d.entities + [{
      'id': s.entity_id, 'name': s.name, 'domain': s.domain,
      'area': area_id(s.entity_id),
      'device_class': state_attr(s.entity_id, 'device_class'),
      'unit': state_attr(s.entity_id, 'unit_of_measurement'),
      'supported_features': state_attr(s.entity_id, 'supported_features'),
      'color_modes': state_attr(s.entity_id, 'supported_color_modes'),
      'min_kelvin': state_attr(s.entity_id, 'min_color_temp_kelvin'),
      'max_kelvin': state_attr(s.entity_id, 'max_color_temp_kelvin'),
      'hidden': is_hidden_entity(s.entity_id),
      'temperature_attribute': 'current_temperature' if s.domain == 'climate' and state_attr(s.entity_id, 'current_temperature') is not none else none
    }] -%}
  {%- endif -%}
{%- endfor -%}
{#- instance and ha_version cannot be read from a template; the operator fills them in. The date
    only, not the time: HA re-renders a template that reads the clock every minute, and the text
    would never stop changing while the customer copies it. -#}
{{ {'version': 1,
    'source': {'kind': 'template-export', 'instance': none, 'captured': utcnow().date().isoformat(), 'ha_version': none},
    'floors': d.floors, 'areas': d.areas, 'entities': d.entities} | to_json }}
  1. One long line of text appears on the right. Wait until it stops changing. This can take a few seconds in a large home.
  2. Click into the right-hand box. Select all with Ctrl+A / Cmd+A and copy with Ctrl+C / Cmd+C.
  3. Paste into an empty plain-text file and save it as ha-inventory.json. Check that the name does not end in .json.txt. Upload this one file with your enquiry under “Home Assistant device list / KNX file”.

Which file goes where

  • Home Assistant device list / KNX file: one ha-inventory.json file. If your home uses KNX and you have a knx.yaml, send that instead. It also contains group addresses. Send only one file in this field.
  • 3D scan or floor plan with dimensions: the materials for your home model. You can use an image file for a floor plan. If your format does not match the displayed file types, mention it in your enquiry. We’ll agree how to receive it.
  • Exterior photos: recommended views from outside. They help us build the model but are not required.

Your email address and smart-home system are enough for an initial enquiry. You can add files later. We confirm the start once the scope, required materials and connection arrangements are agreed.

If you get stuck

  • “I cannot find Tools.” Tools is only available to administrator accounts. In Home Assistant versions before 2026.2, it is called Developer tools and sits in the sidebar instead of under Settings. If you are not an administrator on this installation, ask the owner to run the export.
  • There is a red error on the right. Take a screenshot and mention the error in your enquiry. We’ll agree how you can send us the image.
  • The text looks cut off. Tell us in your enquiry. We’ll help you use another route.
  • “This feels wrong.” Stop. Instead, take a screenshot of Settings → Devices & services → Entities. Tell us in your enquiry that you want to use this route. We’ll agree how to receive the image. Mapping takes us longer this way, but it works.

Check screenshots for private information and credentials before sending. Send only the relevant part. The technical-file field does not accept image files.