Télécommande Mobile
StreamooS peut être piloté depuis un mobile sur le réseau local via une PWA (Progressive Web App).
Prérequis
- PC et mobile sur le même réseau Wi-Fi
- StreamooS lancé (le serveur remote démarre automatiquement)
Accès
- Dans les réglages de StreamooS, note l'adresse affichée (ex:
https://streamoos.local:8080ouhttps://192.168.1.x:8080) - Ouvre cette URL dans le navigateur de ton mobile
Couplage PIN
Sécurité
Le token JWT est signé avec un secret unique de 32 octets généré par installation et stocké de manière chiffrée via safeStorage. Cela garantit que même sur un réseau local, aucun appareil non autorisé ne peut forger de tokens de contrôle.
Au premier accès, un code PIN s'affiche dans l'app desktop. Entre-le sur mobile pour valider le pairing. Un token JWT est ensuite stocké sur le mobile pour les connexions suivantes.
HTTPS et certificats auto-signés
La PWA requiert HTTPS. StreamooS génère automatiquement un certificat auto-signé dans userData/.
Sur iOS (Safari)
- Accepte l'avertissement : Avancé → Continuer vers le site
- Partager → Sur l'écran d'accueil
Sur Android (Chrome)
Confiance du certificat
Le certificat étant auto-signé et généré localement, votre navigateur affichera un avertissement de sécurité. C'est un comportement normal pour le HTTPS sur réseau local. Vous devez manuellement "Continuer" ou "Faire confiance" au certificat pour permettre à la PWA de communiquer avec le serveur StreamooS.
- Accepte l'avertissement : Paramètres avancés → Accéder au site
- Menu ⋮ → Installer l'application
Architecture technique
Mobile (PWA) ──HTTPS:8080──▶ Fastify (app/src/main/remote/)
│
HandlerRuntime.dispatchCommand()
│
FeatureHandlers (timer, khinsider…)- Découverte : mDNS via
DiscoveryService→streamoos.local - Auth : JWT signé par
AuthServiceaprès PIN pairing - Commandes : même interface que les overlays WS - toutes les features sont accessibles
Controles disponibles
Une fois couple, la PWA donne acces a toutes les features StreamooS :
| Feature | Actions disponibles |
|---|---|
| KHInsider Radio | Play, Pause, Next, Shuffle, Volume |
| SMTC | Play, Pause, Next, Previous |
| Timer | Start, Stop, Reset |
| Discord | Connect, Disconnect, Status |
La telecommande utilise la meme interface de commandes que les overlays WebSocket -- toutes les actions FeatureHandler sont accessibles via HandlerRuntime.dispatchCommand().
Bascule de port
Le serveur de telecommande essaie le port 8080 d'abord, puis 8443 si 8080 est occupe. Le QR code et l'URL affichee dans le dashboard refletent toujours le port reel -- scanne-les ou copie-les plutot que de taper l'adresse de memoire. Si les deux ports sont occupes, la carte Telecommande affiche une erreur explicite ; ferme l'application qui utilise ces ports puis genere un nouveau PIN.
Appareils appaires
La carte Telecommande liste chaque appareil appaire (nom + derniere activite). Utilise Revoquer pour invalider immediatement l'acces d'un appareil -- il devra refaire l'appairage avec un nouveau PIN.
Depannage
| Erreur navigateur | Cause probable | Solution |
|---|---|---|
DNS_PROBE_FINISHED_NXDOMAIN sur streamoos.local | mDNS bloque par le routeur/OS (frequent sous Windows sans Bonjour, certains Android) | Utilise l'URL IP de secours encodee dans le QR code (https://192.168.x.x:<port>) |
ERR_CERT_AUTHORITY_INVALID / avertissement certificat | Certificat auto-signe (attendu) | Accepte le certificat manuellement -- voir la section HTTPS ci-dessus |
ERR_CONNECTION_REFUSED | Serveur non demarre (deux ports occupes) ou pare-feu | Verifie le statut sur la carte Telecommande, libere les ports 8080/8443, ouvre le port dans le pare-feu |
| Appairage refuse avec un PIN valide | PIN expire (5 min) ou deja consomme | Genere un nouveau PIN depuis le dashboard |
| La telecommande ne repond plus apres redemarrage de l'app | Les appairages sont gardes en memoire seulement | Refais l'appairage avec un nouveau PIN |
mDNS
Certains routeurs bloquent mDNS. Dans ce cas, scanne le QR code : il encode l'URL IP directe du LAN, qui contourne entierement la resolution de nom.
Pare-feu
Si la telecommande n'est pas joignable, verifie que les ports 8080/8443 (HTTPS) sont ouverts dans ton pare-feu. Sous Windows, StreamooS peut demander une exception pare-feu au premier lancement.
