Saltar al contenido
Para desarrolladores

Amplía Presenter mediante MQTT

Cada instalación de Presenter incluye un intermediario MQTT local. Conéctate por TCP o WebSocket en la red local para crear controladores personalizados, herramientas de escenario, puentes de iluminación o automatización sin modificar Presenter.

¿Buscas una descripción general del producto? Visitar Presenter.

¿Por qué MQTT?

Presenter ya utiliza MQTT para Remote por QR, el estado en directo y los temas de IA local. El mismo intermediario está disponible para tus clientes en la red local de la iglesia. El intermediario integrado cumple MQTT v5 y también acepta clientes MQTT v3.1.1 / v3.0, así que puedes utilizar cualquiera. Publicas y te suscribes como en cualquier aplicación MQTT; Presenter responde a los mensajes de control y publica actualizaciones de la presentación y el estado.

Conectarse al intermediario integrado

Cuando Presenter está abierto, el intermediario escucha en la dirección de red local del equipo. Si el puerto predeterminado está ocupado, Presenter prueba el siguiente del intervalo.

TransportePuntos de conexiónObservaciones
MQTT sobre TCPtcp://<presenter-lan-ip>:1883–1887Ideal para scripts de escritorio, Node, Python y puentes de hardware.
MQTT sobre WebSocketws://<presenter-lan-ip>:9883–9887/mqttLa ruta siempre es /mqtt. Utilízala desde navegadores o clientes compatibles con WebSocket.
tcp://192.168.1.40:1883
ws://192.168.1.40:9883/mqtt

Primeros pasos

Utiliza un cliente MQTT v5 o v3.x (TCP o WebSocket). Dirígelo al equipo con Presenter mientras haya una reunión abierta o después de iniciar Remote para que el intermediario esté activo. El tráfico propio de Remote en Presenter utiliza MQTT 3.1.1; tus clientes pueden utilizar funciones exclusivas de v5, que se adaptan al mezclarse con clientes v3.

  • Mantente en la misma Wi-Fi o red local que el ordenador con Presenter para acceder localmente.
  • Obtén la IP del equipo desde la interfaz de red o QR de Remote de Presenter, o desde la lista de clientes del router.
  • Si fallan 1883 o 9883, prueba el siguiente puerto del intervalo alternativo; Presenter registra los puertos utilizados al iniciarse.
  • QoS 0 es habitual para el control en directo; mantén las cargas pequeñas y en JSON con codificación UTF-8.

Árbol de temas de Remote

La mayoría de las integraciones utilizan el prefijo de temas de Remote. Sustituye {prefix} por proweave/remote en una configuración local habitual o por proweave/<machine-scope>/remote cuando Presenter esté delimitado por la MAC del equipo.

Prefijo: proweave/remote (predeterminado en red local) o proweave/<scope>/remote. Los ID de sesión proceden de la vinculación; vincula primero y después publica bajo esa sesión.

Patrón del temaDirecciónFinalidad
{prefix}/pairCliente → PresenterOTP / solicitud de vinculación para crear una sesión
{prefix}/<sessionId>/pairedPresenter → ClienteVinculación aceptada o rechazada
{prefix}/<sessionId>/controlCliente → PresenterÓrdenes (advance, goto, blank, …)
{prefix}/<sessionId>/heartbeatCliente → PresenterMantener activa la sesión; incluir el rol controller o viewer
{prefix}/<sessionId>/deckPresenter → ClienteJSON completo de la presentación para controladores o editores
{prefix}/<sessionId>/statePresenter → ClienteEstado en directo del proyector / controlador
{prefix}/<sessionId>/viewer/statePresenter → ClienteMensaje de diapositiva rasterizada de Visor y variantes por fragmentos
{prefix}/ai/*Motor ↔ PresenterTemas de IA local

Estructura de la carga de control

Publica JSON en {prefix}/<sessionId>/control después de vincular correctamente. Los nombres de campo coinciden con remoteControlPayload de Presenter: cmd y los campos de navegación opcionales.

{
  "cmd": "advance"
}

{
  "cmd": "goto",
  "deckIdx": 2,
  "page": 0
}
cmdSignificado
presentIniciar la presentación
stopDetener la presentación
advanceSiguiente elemento / paso de diapositiva
backElemento anterior / paso de diapositiva
gotoSaltar mediante deckIdx / page y campos relacionados
blankPoner la pantalla en negro o restaurarla
nextItemSiguiente elemento de la presentación
prevItemElemento anterior de la presentación
setStanzaSaltar dentro de la estructura de la canción
setPageEstablecer la página de un PDF o elemento multipágina
pingComprobar actividad

Seguridad y límites

  • Trata el intermediario como un servicio de red local; no reenvíes sus puertos a internet público.
  • Cualquiera que pueda publicar en el tema /control de una sesión vinculada puede dirigir la presentación en directo; protege la red y el proceso de vinculación.
  • Las rutas de temas bajo proweave/<scope>/remote/ también pueden enlazarse con la nube de SundayAssist cuando está activado el control remoto en la nube de Complete; prueba primero en la red local.
  • Esta página documenta la interfaz de integración tal como se distribuye; pueden añadirse campos. Conviene observar /deck y /state de una sesión real de Remote mientras creas el prototipo.
  • Los cambios incompatibles de nombres de temas son poco frecuentes; si publicas una integración, avísanos en [email protected] para poder advertirte antes de cambiar un nombre.

Crea con nosotros

¿Quieres colaborar en el proyecto o necesitas una interfaz estable para un producto audiovisual de iglesia? Nos encantará hablar contigo.