Files
angeandClaude Opus 5.5 2a8ba5105a Mise en conformité a2m (type homeassistant-integration) et compatibilité Home Assistant 2026
- 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>
2026-10-22 13:37:27 +02:00

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éma schemas/types/homeassistant-integration.schema.json) : domain, ha_version_min, ha_version_max (facultatif), iot_class (facultatif) ; valeurs écrites à la main dans .a2m/type_attributes.toml avant chaque release.
  • Pièces jointes obligatoires à chaque release : rôle download = dist/light_preset_manager-X.Y.Z.zip, contenu de custom_components/light_preset_manager/ (construit par python 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 ligne light_preset_manager: de configuration.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 Lovelace custom:light-preset-manager (TypeScript, lit, esbuild ; traductions dans src/locales/) ; npm run build (esbuild puis scripts/copy.js) avant chaque commit qui les modifie et avant une release ; npm run watch en 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 git vX.Y.Z créé par a2m release, jamais à la main. Une version publiée est immuable (ses fichiers ne changent plus).
  • Notes de version : section [Unreleased] de CHANGELOG.md (anglais) et [Non publié] de CHANGELOG.fr.md (français), reprises par a2m release.
  • README en deux langues : README.md (anglais) et README.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.yaml et ha-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)