Skip to content

feat(ambiance): synchronisation de l'éclairage sur le minuteur #212

Description

@CCoupel

Contexte

Extension du milestone v10.0.0 — Éclairage ambiance, une fois le cœur livré et validé.

Constat du cadrage — pourquoi ce n'est pas dans le cœur

L'idée d'origine (#182) évoquait une synchronisation sur le countdown. L'audit a montré que
rien n'existe pour s'y accrocher :

  • Le protocole LED du projet n'a ni durée ni animation pilotée au tick — toutes les animations
    sont autonomes côté firmware (protocol.LEDSetPayload, internal/protocol/messages.go:751, ne
    porte aucun champ de durée).
  • OnTimerTick et OnCountdownTick (internal/game/engine.go:242-252) ne déclenchent
    aucune LED aujourd'hui.
  • COUNTDOWN n'a même pas de rendu LED propre : la phase partage le cas groupé
    PhaseStopped/PhasePrepare/PhaseReady/PhaseCountdown de sendLEDSetForBuzzerNormal.

Câbler l'éclairage sur le minuteur reviendrait donc à créer un mécanisme de déclenchement
entièrement nouveau — exactement ce que la contrainte de cadrage (« réutiliser la logique
d'événements existante plutôt que dupliquer ») demandait d'éviter dans le lot cœur.

Portée

  • Éclairage évoluant pendant le décompte (progression de couleur, pulsation accélérée).
  • Débit : c'est le point dur. Une animation au tick multiplie les écritures HTTP vers le pont
    séquentielles, à l'opposé de la coalescence « dernier état gagnant » que le cœur impose
    précisément pour protéger le matériel et le timing de buzz. Un mécanisme d'effet autonome
    côté ampoule
    serait à privilégier sur un pilotage image par image depuis le serveur.

Dépendances

Milestone v10.0.0 livré. À réévaluer selon le pilote effectivement retenu.

Note du 2026-09-03 — issue mise à jour après l'abandon du BLE au profit du pont Hue en REST
local. Le raisonnement sur le débit est inchangé : Philips recommande ~10 commandes/s sur
/lights, et l'écrivain de #205 coalesce précisément pour rester sous ce plafond. Un mécanisme
d'effet autonome côté ampoule reste préférable à un pilotage image par image.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    backlogItem du backlog BuzzMasterenhancementNew feature or request

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions