Instruction file imported from woutercoppens/home-assistant-test (
.github/instructions/manifest.instructions.md). Copyright stays with the author.
Manifest Instructions
Applies to: custom_components/openmotics/manifest.json
Schema Validation
Schema: /schemas/json/manifest_schema.json
This schema combines Home Assistant's official manifest requirements with HACS-specific fields. Always validate against this schema.
Required Fields
{
"domain": "openmotics",
"name": "OpenMotics Home Assistant integration Beta",
"codeowners": ["@woutercoppens"],
"config_flow": true,
"documentation": "https://github.com/woutercoppens/home-assistant-test",
"integration_type": "device",
"iot_class": "cloud_polling",
"issue_tracker": "https://github.com/woutercoppens/home-assistant-test/issues",
"requirements": [],
"version": "0.0.0"
}
Field Reference
Core fields:
domain- Integration identifier (matches directory name)name- Display name in Home Assistantversion- Semantic version (required for HACS)documentation- Link to documentationissue_tracker- Link to GitHub issues (required for HACS)codeowners- GitHub usernames for notifications
Integration behavior:
config_flow- Boolean, true if integration has UI configintegration_type- One of:device,hub,service,helper,system,virtualiot_class- Connectivity type (see below)requirements- Python package dependencies
Optional fields:
dependencies- Home Assistant integrations this depends onafter_dependencies- Load after these integrationsdhcp,zeroconf,ssdp,usb,bluetooth- Discovery configshomekit,mqtt- Protocol configs
IoT Class Values
Choose the most accurate:
cloud_polling- Cloud API with pollingcloud_push- Cloud API with push updateslocal_polling- Local device with pollinglocal_push- Local device with push updatescalculated- Derived from other entitiesassumed_state- Cannot verify state
Requirements Format
Use package name with version constraint:
"requirements": [
"aiohttp>=3.9.0",
"some-package==1.2.3"
]
Codeowners Format
GitHub usernames with @ prefix:
"codeowners": [
"@woutercoppens"
]
Version
Use semantic versioning: MAJOR.MINOR.PATCH
- Increment MAJOR for breaking changes
- Increment MINOR for new features
- Increment PATCH for bug fixes
Validation
Manifest is validated by:
- Home Assistant on integration load
- HACS validation
- Schema validator
Errors appear in Home Assistant logs.
Common Mistakes
- ❌ Missing
version(required for HACS) - ❌ Missing
issue_tracker(required for HACS) - ❌ Wrong
domain(must match directory) - ❌ Invalid
iot_classvalue - ❌ Unquoted version numbers
- ❌ Trailing commas in JSON