- Carte servie et chargée par l'intégration (plus de copie dans www/ ni de ressource Lovelace) - Température de couleur en kelvins (ATTR_COLOR_TEMP supprimé de HA 2026.1), anciens préréglages convertis - get_presets déclarée avec réponse - manifest (URLs, dépendances), hacs.json, icône, .a2m/type_attributes.toml, scripts/package.py - README et CHANGELOG FR/EN, LICENSE MIT, CLAUDE.md et skill de publication - Fichiers de Home Assistant de dev retirés du suivi, .gitignore revu Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4.3 KiB
4.3 KiB
Light Preset Manager
Projet light_preset_manager publié par la chaîne d'outils a2m (repo ange/apc-toolchain) sur Gitea et sur
a2msystemes.org, selon le contrat de publication apc-spec (repo ange/apc-spec, fichier CONTRAT.md ; termes :
GLOSSAIRE.md). Ce fichier en résume ce qui concerne ce projet ; en cas de doute, le contrat fait foi.
Pour publier une release : skill publier-homeassistant-integration (.claude/skills/).
Ce que le contrat exige de ce type
- Type :
homeassistant-integration— Intégration personnalisée Home Assistant / Home Assistant custom integration. - Logiciel hôte : Home Assistant (
homeassistant). type_attributes(schémaschemas/types/homeassistant-integration.schema.json) :domain,ha_version_min,ha_version_max(facultatif),iot_class(facultatif) ; valeurs écrites à la main dans.a2m/type_attributes.tomlavant chaque release.- Pièces jointes obligatoires à chaque release : rôle
download=dist/light_preset_manager-X.Y.Z.zip, contenu decustom_components/light_preset_manager/(construit parpython scripts/package.py). - Constructeur dans a2m : non — le zip est fourni à la main :
a2m release --asset "file=dist/light_preset_manager-X.Y.Z.zip;role=download".
Profil complet : vocabulaire/types.yml d'apc-spec (entrée homeassistant-integration).
Valeurs à tenir d'accord
| Valeur | Où |
|---|---|
| Version X.Y.Z | version de custom_components/light_preset_manager/manifest.json = version de la release (nom du zip) ; version de frontend/package.json |
domain |
dossier custom_components/light_preset_manager/, domain du manifest, DOMAIN de const.py, .a2m/type_attributes.toml |
ha_version_min |
homeassistant de hacs.json, .a2m/type_attributes.toml, README |
iot_class |
iot_class du manifest, .a2m/type_attributes.toml |
Structure
custom_components/light_preset_manager/: l'intégration (seul contenu du zip publié) —manifest.json,__init__.py(activée par la lignelight_preset_manager:deconfiguration.yaml, pas de config flow ; services, commande WebSocket, stockage des préréglages ; sert et charge la carte),const.py,services.yaml,brand/icon.png(icône provisoire, exigée par HACS),frontend/light-preset-manager.js(carte construite, commitée).frontend/: sources de la carte Lovelacecustom:light-preset-manager(TypeScript, lit, esbuild ; traductions danssrc/locales/) ;npm run build(esbuild puisscripts/copy.js) avant chaque commit qui les modifie et avant une release ;npm run watchen développement.docker-compose.yml+ha-dev-config/(configuration.yaml,scenes.yaml) : Home Assistant de développement (le reste n'est pas versionné) ; tâches dans.vscode/tasks.json.Blueprints/: blueprints d'automatisation fournis avec le projet (hors zip).hacs.json: pour HACS, qui n'installe que depuis GitHub (utile seulement avec un miroir GitHub du repo).
Règles
.a2m/project.toml(données du projet : titre, résumé, tags, visibilité, statut…) est écrit par a2m :a2m project update,a2m tags set,a2m project status. Ne pas le modifier à la main.- Versions SemVer
X.Y.Z; tag gitvX.Y.Zcréé para2m release, jamais à la main. Une version publiée est immuable (ses fichiers ne changent plus). - Notes de version : section
[Unreleased]deCHANGELOG.md(anglais) et[Non publié]deCHANGELOG.fr.md(français), reprises para2m release. - README en deux langues :
README.md(anglais) etREADME.fr.md(français). - Rien n'est publié sans commande explicite. Arbre git propre et branche
mainà jour avant une release. - Aucun secret dans le repo (
secrets.yamletha-dev-config/ignorés).
Circuit
a2m status # état du projet, conformité
a2m validate # contrat + .a2m/type_attributes.toml (schéma du type)
python scripts/package.py # dist/light_preset_manager-X.Y.Z.zip
a2m release --dry-run --asset "file=dist/light_preset_manager-X.Y.Z.zip;role=download"
a2m release --asset "file=dist/light_preset_manager-X.Y.Z.zip;role=download" # stable ; --dev : canal dev
a2m deploy # le site prend la release en compte (préprod par défaut)