home-assistant-dev-guidelines

Standardize Home Assistant YAML configurations using packages and Jinja2 templating.

1|Updated Jul 5, 2024
One-click install
npx skills add https://github.com/bcl1713/homeassistant_config --skill home-assistant-dev-guidelines
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: home-assistant-dev-guidelines
Source: https://github.com/bcl1713/homeassistant_config/tree/main/.claude/skills/home-assistant-dev-guidelines
Command: npx skills add https://github.com/bcl1713/homeassistant_config --skill home-assistant-dev-guidelines

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Managing a complex Home Assistant configuration can be daunting, leading to messy YAML, inconsistent automations, and difficult debugging. This Skill provides structured guidance and best practices to streamline your smart home setup, ensuring reliability and maintainability.

Core Features & Use Cases

  • Modular Configuration: Learn to organize your Home Assistant setup using the packages pattern for cleaner, more manageable code.
  • Advanced Automation: Master Jinja2 templating, triggers, conditions, and actions to create powerful, dynamic smart home automations.
  • Development Standards: Adhere to YAML formatting, entity naming, and automation best practices for a robust and scalable system.
  • Use Case: When you want to create a new presence-based lighting automation, this Skill will guide you through defining the automation structure, using Jinja2 for dynamic conditions, and integrating it into your existing package system, saving you time and preventing errors.

Quick Start

I need help creating a new Home Assistant automation for my smart lights. Guide me on best practices for triggers, conditions, and actions.

Frequently Asked Questions about home-assistant-dev-guidelines

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I organize a complex Home Assistant configuration using packages?

The packages pattern modularizes your Home Assistant setup by splitting automations, sensors, and scripts into separate YAML files grouped by function. This reduces clutter, improves maintainability, and makes debugging easier across large configurations.

What's the best way to structure Home Assistant automations with Jinja2 templating?

Use Jinja2 templates in triggers, conditions, and actions to create dynamic automations that respond to sensor states and context. Structure templates safely by validating template syntax against official documentation and avoiding unsafe variable interpolation in your automation definitions.

How do I follow YAML and naming conventions for Home Assistant automations?

Apply consistent entity naming, standardized YAML formatting, and structured automation naming conventions to ensure your configuration remains readable and scalable. These standards prevent naming collisions and make automations easier to locate and modify later.

Can I use Home Assistant best practices for presence detection and notifications?

Yes. Presence detection and notification automations benefit from standardized trigger-condition-action patterns, proper template handling, and package organization. This Skill guides you through defining reliable presence logic and integrating notifications into your automation workflow.

What testing and error-handling approaches should I use for Home Assistant automations?

Test automation logic by validating YAML syntax, verifying template safety, and checking trigger conditions against real entity states. Implement error handling in actions to gracefully manage failed notifications or state transitions without breaking dependent automations.

Do I need specific knowledge before setting up modular Home Assistant configurations?

Familiarity with YAML syntax, basic Home Assistant entities, and automation concepts helps, but this Skill guides you from planning through deployment. Start by reviewing YAML formatting rules and entity naming conventions before organizing your first package.