Skip to content

Satellites : fin de parole propre à chaque satellite - #36

Merged
lfpoulain merged 1 commit into
lfpoulain:betafrom
NeuTroNBZh:satellite-delai-silence
Nov 9, 2026
Merged

lfpoulain merged 1 commit into
lfpoulain:betafrom
NeuTroNBZh:satellite-delai-silence

Conversation

@NeuTroNBZh

Copy link
Copy Markdown
Contributor

Ticket : #35

But

Régler la fin de parole pièce par pièce : plus courte dans une chambre, plus longue dans un bureau.

Ce qui change

  • SatelliteSettings.silenceCloseMs (null : celui du foyer). Accepté par PATCH /api/admin/satellites/:id (3 à 300 s, ou null), conservé dans la nouvelle table satellite_silence (migration en fin de liste, rejouable, ON DELETE CASCADE). La valeur est lue par jointure dans SatelliteStore ; null supprime la ligne.
  • SatelliteHub le passe à controller.satelliteWake(). Le contrôleur l'utilise pour silenceDelay() pendant la conversation de ce satellite seulement. Le miroir et les autres satellites gardent le délai du foyer.
  • Fiche du satellite : liste « Fin de parole sur ce satellite » (« Comme le foyer », 5 s à 1 min ; une valeur réglée par l'API reste affichée).
  • Le message settings envoyé au firmware ne change pas.
  • Documentation (administration) et CHANGELOG.md.

Vérifications

  • npm run check : OK.
  • tests/satellites.test.ts, satellite-conversation.test.ts, storage.test.ts, controller.test.ts : 110/110, dont un nouveau test : un satellite à 5 s ferme à 5 s, puis la conversation suivante sans réglage suit de nouveau le foyer (20 s). Le test du registre couvre le stockage (lu, gardé à la mise à jour d'autres champs, retiré par null), et celui des réglages trois valeurs refusées.

Chaque satellite peut avoir son propre délai de silence (champ
silenceCloseMs, null : celui du foyer), par exemple plus court dans une
chambre. Il est passé à satelliteWake et vaut pour la conversation de
ce satellite seulement. Conservé dans la table satellite_silence
(effacé avec le satellite), réglé dans la fiche du satellite.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings November 8, 2026 22:40

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

@lfpoulain
lfpoulain merged commit 08efce5 into lfpoulain:beta Nov 9, 2026
@lfpoulain

Copy link
Copy Markdown
Owner

Merci, fusionné dans beta et publié dans 0.3.0. Conflit de CHANGELOG.md résolu en gardant les deux entrées, tests relancés.

Un détail à documenter : un changement de délai en cours de conversation ne vaut qu'à la suivante, parce que la valeur est capturée à satelliteWake. Une phrase dans la doc des satellites suffirait.

@NeuTroNBZh

Copy link
Copy Markdown
Contributor Author

Merci ! Les remarques de cette PR sont reprises dans #42 (avec celles de #26, #34, #36 et #38).

lfpoulain pushed a commit that referenced this pull request Nov 9, 2026
…délai

Remarques faites sur #26, #34, #36 et #38 (fusionnées dans 0.3.0) :
- #26 : la couleur demandée et la couleur relue sont comparées à pleine
  intensité (Home Assistant relit [128, 0, 128] en [255, 0, 255]) ; le
  faux Home Assistant des tests relit comme lui ; test de la route admin
  POST /control avec rgbColor ; architecture.md cite couleur et blanc.
- #34 : confidentialite.md, le bouton coupe le micro en veille et ferme
  la conversation pendant une conversation.
- #36 : le délai propre au satellite est pris à satelliteWake, un
  changement vaut pour la conversation suivante (satellites.md,
  administration.md).
- #38 : sonneries et voix partagent le volume du codec
  (board_set_volume → esp_codec_dev_set_out_vol) : au volume 0, l'outil
  le rappelle et la doc le dit ; la fiche du satellite suit un réglage
  vocal (resynchronisée sur la liste rechargée hors réglage en cours).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants