You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Ajouter les gestes configurables des satellites audio - #22
Les satellites équipés d’un PAJ7620 peuvent associer sept gestes au volume, à la veilleuse, à la coupure du micro, à l’arrêt de leur conversation ou aux équipements Home Assistant explicitement sélectionnés. Les commandes gestuelles sont désactivées par défaut.
Le serveur reconnaît gestures et mic_toggle dans hello.features. Il demande uniquement la coupure du micro, que l’utilisateur peut rouvrir au bouton physique.
Le volume passe par settings. Un geste d’arrêt publie le nouvel état de session.
Le catalogue Home Assistant est lu une fois par requête. L’interface interroge les réglages quand la section des gestes est ouverte.
La migration préserve les réglages des anciennes versions expérimentales et ajoute les tables attendues par beta. Le protocole et le changelog sont documentés.
Validation après rebase : compilation TypeScript et Vite, 51 tests ciblés et un parcours Chromium réussis. La flotte mixte, la reconnexion sans capacités, la coupure du micro et la migration d’une base expérimentale sont couvertes.
Merci pour cette PR, très complète. Côté serveur, tout est couvert et testé : commandes désactivées par défaut, lampes limitées aux entités light et switch choisies par satellite, anciens firmwares acceptés. tsc et les 35 tests ciblés passent contre main.
Procédure
La PR vise main, alors que beta est en avance de plusieurs commits et que la 0.3.0 vient d'être publiée. Pourriez-vous la rebaser sur beta et changer la base de la PR ? Les conflits seront mécaniques (server/satellites.ts, server/storage.ts, tests/satellites.test.ts, CHANGELOG.md). Attention, #34 (le bouton ferme la conversation) et #38 (volume à la voix) sont maintenant dans beta et touchent le même gestionnaire de messages.
À corriger
Doc et CHANGELOG absents. Les nouveaux champs hello.gestures et hello.micToggle et les messages gesture et mute ne sont pas décrits dans docs/developpement/satellites-protocole.md. CONTRIBUTING.md demande la doc et le CHANGELOG.
Convention de capacités. Sur beta, un ajout compatible s'annonce dans hello.features (par exemple ["ring"], et welcome.features pour session_end). Ici, ce sont des booléens. Il faudrait annoncer ["gestures", "mic_toggle"], avec le changement correspondant dans le firmware (cornelius-satellite feat(camera): utiliser facultativement la caméra du navigateur #2).
Performance de GET /api/admin/satellites/:id/gestures (server/satellite-gestures.ts) : le .filter(...) appelle this.deps.home.view() pour chaque entité, et view() reconstruit et trie tout le catalogue à chaque appel. Environ 500 ms de CPU synchrone par requête à 1500 entités, et le composant SatelliteGestureSettings.tsx interroge cette route toutes les 2 s, même <details> replié, pour chaque satellite. Un seul appel à view() règle le problème.
À trancher ou à vérifier
Domaine switch : l'interface parle de « lampes », mais n'importe quelle prise peut être associée. Voulu ?
Réglage « réservé aux personnes reconnues » : les gestes le contournent, par conception (« sans conversation ni caméra »). Nous voulons le confirmer côté mainteneurs.
Capacité mute : hub.mute() envoie mute sans vérifier micToggle, contrairement à toggleMic.
Retour de volume : hub.refresh() envoie déjà settings, puis volumeFeedback envoie le message volume (déprécié sur beta). Le firmware applique le changement deux fois.
Nettoyage : satelliteGesturesMigration est exporté mais inutilisé (storage.ts redéfinit le SQL), la map last n'est jamais purgée à la suppression d'un satellite, et config() ne valide pas la structure du JSON lu.
Merci, fusionnée dans beta avec le firmware (cornelius-satellite #1 et #2). Il reste la doc du protocole à compléter, dans une petite PR : les messages gesture et mute dans les tableaux de docs/developpement/satellites-protocole.md, gestures et mic_toggle dans la description de features, la liste des 7 gestes, et une mention dans docs/fonctionnalites/satellites.md.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
modifications demandéesRelue : des corrections sont attendues avant la fusionà rebaserÀ mettre à jour depuis la branche betasatellitesSatellites audio ESP32 et leur protocole
2 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Les satellites équipés d’un PAJ7620 peuvent associer sept gestes au volume, à la veilleuse, à la coupure du micro, à l’arrêt de leur conversation ou aux équipements Home Assistant explicitement sélectionnés. Les commandes gestuelles sont désactivées par défaut.
gesturesetmic_toggledanshello.features. Il demande uniquement la coupure du micro, que l’utilisateur peut rouvrir au bouton physique.settings. Un geste d’arrêt publie le nouvel état de session.Validation après rebase : compilation TypeScript et Vite, 51 tests ciblés et un parcours Chromium réussis. La flotte mixte, la reconnexion sans capacités, la coupure du micro et la migration d’une base expérimentale sont couvertes.
Firmware associé dans la PR Cornelius Satellite #2.