ha-integration

Create custom Home Assistant integrations with config flows, entities, and coordinators.

Updated Jun 11, 2026
One-click install
npx skills add https://github.com/brillianodhiya/VisionScript --skill ha-integration-brillianodhiya
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: ha-integration
Source: https://github.com/brillianodhiya/VisionScript/tree/main/.agents/skills/ha-integration
Command: npx skills add https://github.com/brillianodhiya/VisionScript --skill ha-integration-brillianodhiya

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires homeassistant, voluptuous, aiohttp, and includes references (resource) and assets (resource) components.

What problem does it solve? Building custom Home Assistant integrations involves many error-prone details—manifest configuration, async setup, config flow validation, unique entity IDs, and device registry linking—that commonly cause duplicate entities, frozen UIs, and silent validation failures. ## Core Features & Use Cases - Integration Scaffolding: Generate manifest.json, init.py, config_flow.py, and coordinator boilerplate following Home Assistant conventions. - Entity Implementation: Build sensor, binary sensor, and switch entities with proper unique_id, device_info, and state class configuration. - Config Flow Patterns: Implement user setup flows with validation, reauth handling, options flows, and multi-step forms. - Use Case: You want to integrate a third-party API device into Home Assistant. Use this Skill to scaffold the full integration with a DataUpdateCoordinator polling the API, a config flow for credentials, and entities linked to the device registry. ## Quick Start Create a new Home Assistant custom integration for my device API with a config flow, a temperature sensor entity, and a polling coordinator.

Frequently Asked Questions about ha-integration

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

FAQPage Schema
How do I create a custom Home Assistant integration?▼

Create a directory with manifest.json declaring the domain and config_flow, an __init__.py with async_setup_entry, a config_flow.py for user setup, and platform files like sensor.py. Use a DataUpdateCoordinator to poll external APIs and forward setup to platforms.

How to implement a config flow in Home Assistant?▼

Subclass ConfigFlow with your domain and implement async_step_user to show a voluptuous form, validate input in try/except, and call async_create_entry on success. Set a unique ID with async_set_unique_id to prevent duplicate entries.

Why do duplicate entities appear after Home Assistant restart?▼

Duplicate entities occur when entity classes lack a unique_id property. Implement unique_id returning a stable identifier derived from device data, such as the device ID combined with the entity type.

Does Home Assistant support synchronous network calls in integrations?▼

No, synchronous calls like the requests library block the event loop and freeze the UI. Use aiohttp with async/await for all network I/O inside coordinators and entity methods.

Why are my Home Assistant entities showing unavailable?▼

Entities become unavailable when the coordinator update fails. Raise UpdateFailed in _async_update_data instead of generic exceptions, and expose coordinator.last_update_success through the entity's available property.

When should I not use this integration development approach?▼

Do not use it for built-in Home Assistant components, Lovelace UI card development, or automation and template scripting. It targets custom component development with config flows and entity platforms only.