Pourquoi MQTT ?
Presenter utilise déjà MQTT pour Remote par code QR, l’état en direct et les sujets de l’IA locale. Le même serveur est accessible à vos clients sur le réseau local de l’Église. Le serveur intégré est conforme à MQTT v5 et accepte aussi les clients MQTT v3.1.1 / v3.0 : vous pouvez utiliser l’une ou l’autre version. Vous publiez et vous abonnez comme dans toute application MQTT ; Presenter répond aux messages de commande et publie les mises à jour de la présentation et de son état.
Se connecter au serveur intégré
Lorsque Presenter fonctionne, le serveur écoute sur l’adresse réseau locale de l’ordinateur. Si le port par défaut est occupé, Presenter essaie le suivant dans la plage.
| Transport | Points d’accès | Précisions |
|---|---|---|
| MQTT sur TCP | tcp://<presenter-lan-ip>:1883–1887 | Adapté aux scripts de bureau, à Node, Python et aux passerelles matérielles. |
| MQTT sur WebSocket | ws://<presenter-lan-ip>:9883–9887/mqtt | Le chemin est toujours /mqtt. Utilisez-le depuis un navigateur ou un client compatible WebSocket. |
tcp://192.168.1.40:1883
ws://192.168.1.40:9883/mqttPremiers pas
Utilisez un client MQTT v5 ou v3.x, en TCP ou WebSocket. Connectez-le à l’hôte Presenter lorsqu’une rencontre est ouverte, ou après le démarrage de Remote pour que le serveur soit actif. Les échanges de Remote avec Presenter utilisent MQTT 3.1.1 ; vos clients peuvent employer les fonctions propres à v5, qui sont adaptées lors des échanges avec des clients v3.
- Restez sur le même Wi-Fi ou réseau local que l’ordinateur Presenter pour l’accès local.
- Retrouvez l’adresse IP de l’hôte dans l’interface réseau ou le code QR Remote de Presenter, ou dans la liste des clients de votre routeur.
- Si 1883 ou 9883 ne répond pas, essayez le port suivant dans la plage de secours : Presenter consigne les ports utilisés au démarrage.
- QoS 0 convient généralement aux commandes en direct ; gardez les messages petits et encodez-les en JSON UTF-8.
Arborescence des sujets Remote
La plupart des intégrations utilisent le préfixe des sujets Remote. Remplacez {prefix} par proweave/remote dans une configuration locale courante, ou par proweave/<machine-scope>/remote lorsque Presenter utilise un périmètre lié à l’adresse MAC de l’ordinateur.
Préfixe : proweave/remote par défaut en réseau local, ou proweave/<scope>/remote. Les identifiants de session proviennent de l’association : associez d’abord le client, puis publiez sous cette session.
| Structure du sujet | Sens | Rôle |
|---|---|---|
| {prefix}/pair | Client → Presenter | Demande OTP / d’association pour créer une session |
| {prefix}/<sessionId>/paired | Presenter → Client | Association acceptée ou refusée |
| {prefix}/<sessionId>/control | Client → Presenter | Commandes (advance, goto, blank, …) |
| {prefix}/<sessionId>/heartbeat | Client → Presenter | Maintient la session active ; inclure le rôle controller ou viewer |
| {prefix}/<sessionId>/deck | Presenter → Client | JSON de la présentation complète pour les clients de commande ou de préparation |
| {prefix}/<sessionId>/state | Presenter → Client | État en direct de la projection et de la commande |
| {prefix}/<sessionId>/viewer/state | Presenter → Client | Enveloppe de l’image matricielle de la diapositive Spectateur, avec ses variantes découpées |
| {prefix}/ai/* | Moteur ↔ Presenter | Sujets de l’IA locale |
Structure du message de commande
Publiez du JSON sur {prefix}/<sessionId>/control après une association réussie. Les noms des champs correspondent à remoteControlPayload dans Presenter : cmd et les champs de navigation facultatifs.
{
"cmd": "advance"
}
{
"cmd": "goto",
"deckIdx": 2,
"page": 0
}| cmd | Signification |
|---|---|
| present | Démarrer la projection |
| stop | Arrêter la projection |
| advance | Élément ou étape de diapositive suivant |
| back | Élément ou étape de diapositive précédent |
| goto | Aller à la position indiquée par deckIdx / page et les champs associés |
| blank | Masquer ou rétablir la projection |
| nextItem | Élément suivant de la présentation |
| prevItem | Élément précédent de la présentation |
| setStanza | Aller à une partie de la structure du chant |
| setPage | Définir la page d’un PDF ou d’un élément à plusieurs pages |
| ping | Vérifier que la connexion est active |
Sécurité et limites
- Traitez le serveur comme un service local : ne redirigez pas son port vers Internet.
- Toute personne pouvant publier sur le sujet /control d’une session associée peut commander la présentation en direct ; protégez le réseau et le parcours d’association.
- Les sujets sous proweave/<scope>/remote/ peuvent aussi être relayés vers SundayAssist Cloud lorsque la commande par le cloud avec Complete est activée : testez d’abord en réseau local.
- Cette page décrit l’interface d’intégration livrée ; des champs peuvent s’ajouter. Pendant le prototypage, observez de préférence /deck et /state dans une véritable session Remote.
- Les changements incompatibles de noms de sujets sont rares ; si vous publiez une intégration, prévenez-nous à [email protected] pour que nous puissions vous avertir avant un renommage.
Construire avec nous
Vous souhaitez contribuer au projet ou avez besoin d’une interface stable pour un produit audiovisuel d’Église ? Parlons-en avec plaisir.