Smart Home AssistantNewsletter

Home Assistant Blueprints Guide: Share & Reuse Automations

SepehrBy Sepehr· 19/06/2026· 6 min read
Home Assistant Blueprints Guide: Share & Reuse Automations

If you have ever rebuilt the same automation from scratch for a second room — another motion sensor, another light, the same five-minute timeout — you already understand why Blueprints exist. A Blueprint is a reusable automation template: you author the logic once, expose the variable bits as named inputs, and then create as many automation instances from it as you need. Each instance just asks you to pick a sensor, a light, a timeout. The YAML stays identical under the hood.

Blueprints also make it straightforward to share working automations with the wider Home Assistant community or to import automations others have already tested. You do not need to understand every line of YAML — you just point Home Assistant at a URL and fill in a short form.

Blueprints vs Regular Automations

A Blueprint is a template; an automation is an instance of that template. When you create a normal automation in Home Assistant you write the full YAML — entities, conditions, triggers — all hardcoded. If you want the same logic in a second room you must duplicate the automation and manually update every entity reference.

A Blueprint abstracts those variable parts into declared input fields. Each input has a name, a description, and a selector (such as entity, number, or boolean) that drives the UI. When you create an automation from the Blueprint you see a simple form rather than raw YAML. The Blueprint itself is stored in config/blueprints/automation/ and can be updated without breaking existing instances.

This separation is particularly useful in setups with many rooms or when you want to share automations with others without them needing to understand the internals. For a broader look at how automations fit into your setup, see our Home Assistant automations guide.

How to Import a Blueprint

Home Assistant can import any Blueprint shared as a raw YAML URL — typically a GitHub raw URL or a link from the community forum. The process takes about thirty seconds:

  1. Go to Settings → Automations & Scenes → Blueprints.
  2. Click the Import Blueprint button in the lower-right corner.
  3. Paste the raw YAML URL into the field and click Preview Blueprint.
  4. Home Assistant fetches the file, shows you a preview, and asks you to confirm. Click Import.
  5. The Blueprint now appears in your library. Click Create Automation to generate an instance — you will be asked to fill in the inputs the author declared.

The Blueprint is stored locally after import, so it works offline. If the author publishes an update you can re-import from the same URL; existing automation instances are not broken.

Where to Find Blueprints

The two main sources are the Home Assistant Community Forum and the dedicated Blueprint Community site:

  • community.home-assistant.io — search the Blueprints Exchange category. Posts include import links, changelogs, and discussion threads where you can ask the author questions.
  • blueprint.community — a curated, searchable index of community blueprints, categorised by integration (lights, media players, climate, etc.) and filterable by popularity.

Popular categories include motion-activated lighting, sun-position scene switching, presence-based heating, and notification triggers for door and window sensors. Most blueprints list the minimum Home Assistant version they require, so check that before importing.

Blueprint YAML Structure

Every Blueprint begins with a blueprint: key that provides metadata and declares the inputs. The rest of the file looks exactly like a standard automation YAML, except that entity references are replaced with !input <input_name> tags.

Here is a minimal example — a motion-activated light with a configurable timeout:

blueprint:
  name: Motion-Activated Light
  description: Turn a light on when motion is detected, then off after a timeout.
  domain: automation
  input:
    motion_sensor:
      name: Motion Sensor
      description: The sensor that triggers the light.
      selector:
        entity:
          domain: binary_sensor
          device_class: motion
    target_light:
      name: Light
      description: The light to control.
      selector:
        entity:
          domain: light
    timeout:
      name: Timeout (seconds)
      description: How long to wait before turning the light off after motion clears.
      default: 300
      selector:
        number:
          min: 30
          max: 3600
          unit_of_measurement: seconds

trigger:
  - platform: state
    entity_id: !input motion_sensor
    to: "on"

condition: []

action:
  - service: light.turn_on
    target:
      entity_id: !input target_light
  - wait_for_trigger:
      - platform: state
        entity_id: !input motion_sensor
        to: "off"
        for:
          seconds: !input timeout
  - service: light.turn_off
    target:
      entity_id: !input target_light

mode: restart

The key parts of this structure are:

  • blueprint.input — each entry becomes a field in the automation creation UI. The selector key controls what type of input is shown (entity picker, number slider, boolean toggle, text field, etc.).
  • !input <name> — YAML tag that substitutes the value the user chose when creating the automation instance. This can appear in any field: entity_id, for: durations, service data, conditions.
  • mode: restart — controls what happens if the automation triggers again while already running. restart is typical for motion lights; queued or single suit other use cases.

Common Blueprint Use Cases

Sun-Based Scene Switcher

Expose inputs for a morning scene, a day scene, a sunset scene, and an evening scene. Use sun.sun state changes and elevation triggers to fire scene activations. Users fill in their scene entity IDs without touching any YAML.

Door-Open Notification

Inputs: contact sensor entity, notification service target (e.g. a mobile app or Alexa device), optional delay before alerting. The Blueprint sends a configurable message if the door remains open longer than the delay. Useful for garage doors, garden gates, or fridge doors.

Presence-Based Climate Control

Inputs: a person or group entity, a climate entity, a home temperature, and an away temperature. When presence is detected the thermostat rises to the comfort setting; when everyone leaves it drops to the economy setting. Combine this with Home Assistant's built-in person tracking for reliable results — see our presence detection guide for setup tips.

Writing and Sharing Your Own Blueprint

Creating a Blueprint from an existing automation is the easiest starting point. Open the automation in the UI, switch to the YAML editor, and copy the content. Wrap it in the blueprint: header, replace hardcoded entity IDs with input: declarations, and substitute the values with !input tags. Save the file to config/blueprints/automation/<your_name>/<blueprint_name>.yaml and reload automations.

To share it, push the file to a public GitHub repository and copy the raw file URL (the raw.githubusercontent.com link). Paste that URL into a Home Assistant Community Forum post in the Blueprints Exchange category, describe the inputs, and include the import link. Others can import it with one click.

A few authoring tips:

  • Give every input a clear name and description — these appear verbatim in the UI.
  • Use default: values wherever sensible so the Blueprint works out of the box for most people.
  • Add a source_url: field under blueprint: pointing to your GitHub file — this lets Home Assistant link back to the source and makes updates discoverable.
  • Test the Blueprint by creating at least two instances with different inputs before publishing.

Troubleshooting Blueprint Imports

If an import fails, the most common causes are: a URL that redirects to a rendered HTML page rather than raw YAML (use the raw.githubusercontent.com URL, not the standard GitHub file URL); a YAML syntax error in the Blueprint file; or a minimum Home Assistant version requirement that your installation does not meet. Check the Home Assistant logs under Settings → System → Logs for a specific error message.

If an automation instance stops working after a Blueprint update, open the automation in the editor — Home Assistant will prompt you to review any new or changed inputs and save the updated configuration.

For general Home Assistant setup help, including installing add-ons that complement Blueprint-driven automations, our best Home Assistant add-ons guide covers the most useful community extensions.

Related: Home Assistant Node-RED automations, Home Assistant custom components, and Home Assistant Lovelace dashboard.

Frequently asked questions

What is a Blueprint in Home Assistant?
A Blueprint is a reusable YAML automation template. You write the logic once and declare variable parts (such as which sensor or light to use) as named inputs. When you create an automation from a Blueprint you fill in a simple form rather than editing YAML directly, and you can create multiple instances from the same Blueprint — for example, one motion light per room.
How do I import a Blueprint in Home Assistant?
Go to Settings → Automations & Scenes → Blueprints, click Import Blueprint, paste the raw YAML URL (typically a raw.githubusercontent.com link or a blueprint.community URL), and click Import. The Blueprint is saved locally and you can create automation instances from it immediately.
Where can I find Home Assistant Blueprints?
The two main sources are the Blueprints Exchange on the Home Assistant Community Forum (community.home-assistant.io) and the Blueprint Community site (blueprint.community). Both are searchable and cover integrations from motion lighting to climate control.
Can I create my own Blueprint from an existing automation?
Yes. Open the automation in the YAML editor, copy the content, add a blueprint: header with name, description, and input declarations, then replace hardcoded entity IDs with !input references. Save the file to config/blueprints/automation/ and reload automations. You can then share the raw YAML URL with anyone running Home Assistant.

Sources

Sources verified 2026-06-19

  1. Home Assistant — Blueprints Tutorial
  2. Home Assistant — Blueprint Schema
  3. Home Assistant Community — Blueprints Exchange
  4. Blueprint Community — Blueprint Community — Home Assistant Blueprints
Sepehr

Written by

Sepehr

Head of Engineering with 15+ years of software experience and a decade of hands-on smart home tinkering. I run everything I write about — Home Assistant, Zigbee2MQTT, Frigate, and a full self-hosted homelab. Independent coverage, no brand deals, UK-focused.

LinkedIn →

Related reading