Files
home-assistant-blueprints/CLAUDE.md
2025-10-25 21:51:01 -07:00

3.4 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Repository Overview

This is a Home Assistant blueprints repository containing automation blueprints for Home Assistant. The repository follows a simple structure with individual YAML blueprint files in the root directory alongside comprehensive documentation.

Architecture

Blueprint Structure

  • Blueprint files: YAML files defining Home Assistant automation blueprints
  • Documentation: README.md provides detailed usage examples and configuration guidance
  • Each blueprint is self-contained with embedded metadata (name, description, domain, inputs)

Current Blueprints

Multi-Press Action Blueprint (multi_press_action.yaml)

  • Purpose: Trigger different actions based on rapid entity state changes (single, double, triple, quad press)
  • Key features:
    • Configurable time window for press detection
    • Immediate vs delayed single-press modes
    • Support for complex action sequences with conditions
  • Architecture patterns:
    • Uses Home Assistant blueprint format with input selectors
    • Implements state machine logic with press counting
    • Uses mode: restart to handle overlapping triggers
    • Template-based conditional logic for press count evaluation

Development Workflow

Adding New Blueprints

  1. Create new .yaml file in repository root
  2. Follow Home Assistant blueprint format:
    • blueprint: section with metadata
    • input: section with user-configurable parameters
    • trigger: and action: sections for automation logic
  3. Update README.md with new blueprint documentation
  4. Test blueprint by importing into Home Assistant development environment

Blueprint Best Practices

  • Use descriptive names and clear descriptions for inputs
  • Provide sensible defaults for optional parameters
  • Include comprehensive selector types for user inputs
  • Use mode: restart or mode: single appropriately based on use case
  • Implement proper variable scoping within actions
  • Include detailed documentation with usage examples

Testing

  • No automated testing framework (blueprints are tested in Home Assistant directly)
  • Manual testing involves:
    1. Importing blueprint into Home Assistant
    2. Creating automation from blueprint
    3. Testing various input combinations and edge cases
    4. Verifying automation traces for debugging

Import URLs

  • Repository uses custom Git hosting at git.johnogle.info
  • Import URL pattern: https://git.johnogle.info/johno/home-assistant-blueprints/raw/branch/main/{blueprint_name}.yaml

File Organization

/
├── README.md                    # Comprehensive documentation
├── multi_press_action.yaml     # Multi-press detection blueprint
└── CLAUDE.md                   # This file

Home Assistant Blueprint Conventions

Input Types

  • entity: Entity selector for picking Home Assistant entities
  • action: Action sequence selector for automation actions
  • number: Numeric input with min/max/step validation
  • boolean: True/false toggle
  • text: String input fields

Template Usage

  • Use !input to reference blueprint inputs
  • Template conditions with {{ }} syntax for dynamic logic
  • Variable assignment and reference within action sequences

Automation Modes

  • restart: Stops current execution and restarts on new trigger
  • single: Ignores new triggers while running
  • parallel: Allows multiple simultaneous executions