Agent Skills: Home Assistant Automations

|

UncategorizedID: laurigates/claude-plugins/ha-automations

Install this agent skill to your local

pnpm dlx add-skill https://github.com/laurigates/claude-plugins/tree/HEAD/home-assistant-plugin/skills/ha-automations

Skill Files

Browse the full folder contents for ha-automations.

Download Skill

Loading file tree…

home-assistant-plugin/skills/ha-automations/SKILL.md

Skill Metadata

Name
ha-automations
Description
|

Home Assistant Automations

When to Use This Skill

| Use this skill when... | Use ha-configuration instead when... | |------------------------|-------------------------------------| | Creating automation rules | Editing configuration.yaml | | Writing triggers/conditions/actions | Setting up integrations | | Working with scripts and scenes | Managing secrets | | Using blueprints | Organizing packages | | Device trigger setup | General YAML configuration |

Automation Structure

automation:
  - id: "unique_automation_id"
    alias: "Descriptive Name"
    description: "What this automation does"
    mode: single  # single, restart, queued, parallel

    trigger:
      - platform: state
        entity_id: binary_sensor.motion
        to: "on"

    condition:
      - condition: time
        after: "08:00:00"
        before: "22:00:00"

    action:
      - service: light.turn_on
        target:
          entity_id: light.living_room

Trigger Types

State Triggers

trigger:
  # Basic state change
  - platform: state
    entity_id: binary_sensor.door
    to: "on"
    from: "off"

  # With duration
  - platform: state
    entity_id: binary_sensor.motion
    to: "off"
    for:
      minutes: 5

  # Attribute change
  - platform: state
    entity_id: climate.thermostat
    attribute: current_temperature

Time Triggers

trigger:
  # Specific time
  - platform: time
    at: "07:00:00"

  # Input datetime
  - platform: time
    at: input_datetime.alarm_time

  # Time pattern (every hour)
  - platform: time_pattern
    hours: "*"
    minutes: 0
    seconds: 0

  # Every 15 minutes
  - platform: time_pattern
    minutes: "/15"

Other trigger types (numeric state, sun, device, event, webhook, template, zone) are documented in REFERENCE.md.

Condition Types

State Conditions

condition:
  # Single entity
  - condition: state
    entity_id: binary_sensor.door
    state: "off"

  # Multiple states allowed
  - condition: state
    entity_id: alarm_control_panel.home
    state:
      - armed_home
      - armed_away

  # Check for duration
  - condition: state
    entity_id: binary_sensor.motion
    state: "off"
    for:
      minutes: 10

Time Conditions

condition:
  # Time range
  - condition: time
    after: "08:00:00"
    before: "22:00:00"

  # Weekdays only
  - condition: time
    weekday:
      - mon
      - tue
      - wed
      - thu
      - fri

  # Combined
  - condition: time
    after: "09:00:00"
    before: "17:00:00"
    weekday:
      - mon
      - tue
      - wed
      - thu
      - fri

Other condition types (numeric state, sun, template, zone, logical, shorthand) are documented in REFERENCE.md.

Action Types

Service Calls

action:
  # Basic service call
  - service: light.turn_on
    target:
      entity_id: light.living_room
    data:
      brightness_pct: 80
      color_temp: 350

  # Multiple targets
  - service: light.turn_off
    target:
      entity_id:
        - light.bedroom
        - light.bathroom
      area_id: upstairs

Delays and Waits

action:
  - service: light.turn_on
    target:
      entity_id: light.living_room

  # Fixed delay
  - delay:
      seconds: 30

  # Wait for trigger
  - wait_for_trigger:
      - platform: state
        entity_id: binary_sensor.motion
        to: "off"
    timeout:
      minutes: 5
    continue_on_timeout: true

  # Wait for template
  - wait_template: "{{ is_state('light.bedroom', 'off') }}"
    timeout: "00:05:00"

If/Then/Else (Modern)

action:
  - if:
      - condition: state
        entity_id: binary_sensor.motion
        state: "on"
    then:
      - service: light.turn_on
        target:
          entity_id: light.hallway
    else:
      - service: light.turn_off
        target:
          entity_id: light.hallway

For advanced action patterns (choose, repeat, variables, parallel execution), scripts, scenes, and common automation patterns, see REFERENCE.md.

Automation Modes

| Mode | Behavior | |------|----------| | single | Ignore new triggers while running | | restart | Stop current run, start new | | queued | Queue up to max runs | | parallel | Run up to max in parallel |

automation:
  - alias: "Motion Light"
    mode: restart
    max: 10  # For queued/parallel
    max_exceeded: silent  # silent, warning, error

Agentic Optimizations

| Context | Command | |---------|---------| | Find automation | grep -r "alias:" config/automations.yaml | | Find triggers | grep -r "platform: state" config/ --include="*.yaml" | | List scripts | grep -r "^ [a-z_]*:" config/scripts.yaml | | Find scenes | grep -r "^ - name:" config/scenes.yaml | | Check automation IDs | grep -r "^ - id:" config/automations.yaml |

Home Assistant Automations Skill | Agent Skills