Pular para o conteúdo
Para desenvolvedores

Amplie o Presenter por MQTT

Cada instalação do Presenter incorpora um broker MQTT local. Conecte por TCP ou WebSocket na LAN para criar controles, ferramentas de palco, interfaces de iluminação ou automação — sem alterar o Presenter.

Procura a visão geral do produto? Visite o Presenter.

Por que MQTT?

O Presenter já usa MQTT para Remote por QR, estado ao vivo e tópicos de IA local. O mesmo broker está disponível aos seus clientes na LAN da igreja. O broker integrado é compatível com MQTT v5 e também aceita clientes MQTT v3.1.1 / v3.0. Você publica e assina como em qualquer aplicativo MQTT; o Presenter reage às mensagens de controle e publica atualizações da apresentação e do estado.

Conectar ao broker integrado

Com o Presenter aberto, o broker escuta no endereço LAN da máquina. Se a porta padrão estiver ocupada, o Presenter tenta a próxima do intervalo.

TransporteEndereços de conexãoNotas
MQTT por TCPtcp://<presenter-lan-ip>:1883–1887Ideal para scripts de desktop, Node, Python e interfaces de hardware.
MQTT por WebSocketws://<presenter-lan-ip>:9883–9887/mqttO caminho é sempre /mqtt. Use em navegadores ou clientes com WebSocket.
tcp://192.168.1.40:1883
ws://192.168.1.40:9883/mqtt

Primeiros passos

Use um cliente MQTT v5 ou v3.x (TCP ou WebSocket). Aponte ao host do Presenter com um encontro aberto ou após iniciar o Remote, para o broker estar ativo. O tráfego do próprio Remote do Presenter usa MQTT 3.1.1; recursos exclusivos da v5 podem ser usados pelos seus clientes e são adaptados ao misturar com clientes v3.

  • Fique no mesmo Wi-Fi / LAN do computador Presenter para acesso local.
  • Descubra o IP do host na interface de rede / QR do Remote no Presenter ou na lista de clientes do roteador.
  • Se 1883 ou 9883 falhar, tente a próxima porta do intervalo — o Presenter registra as portas vinculadas na inicialização.
  • QoS 0 é comum para controle ao vivo; mantenha as mensagens pequenas e codificadas em JSON UTF-8.

Árvore de tópicos do Remote

A maioria das integrações usa o prefixo de tópicos do Remote. Substitua {prefix} por proweave/remote em uma configuração de rede local comum, ou por proweave/<machine-scope>/remote quando o Presenter estiver associado ao MAC de uma máquina.

Prefixo: proweave/remote (padrão na rede local) ou proweave/<scope>/remote. Os IDs de sessão são gerados na conexão: conecte primeiro e depois publique nessa sessão.

Padrão do tópicoDireçãoFinalidade
{prefix}/pairCliente → PresenterSolicitação de OTP / conexão para criar uma sessão
{prefix}/<sessionId>/pairedPresenter → ClienteConexão aceita ou recusada
{prefix}/<sessionId>/controlCliente → PresenterComandos (advance, goto, blank, …)
{prefix}/<sessionId>/heartbeatCliente → PresenterManter a sessão ativa; incluir a função controller ou viewer
{prefix}/<sessionId>/deckPresenter → ClienteJSON completo da apresentação para controles / editores
{prefix}/<sessionId>/statePresenter → ClienteEstado ao vivo da projeção / do controle
{prefix}/<sessionId>/viewer/statePresenter → ClienteEnvelope com a imagem rasterizada do slide para o visualizador (e variantes em partes)
{prefix}/ai/*Motor ↔ PresenterTópicos da IA local

Estrutura da mensagem de controle

Publique JSON em {prefix}/<sessionId>/control após a conexão ser aceita. Os nomes dos campos correspondem a remoteControlPayload do Presenter (cmd e campos opcionais de navegação).

{
  "cmd": "advance"
}

{
  "cmd": "goto",
  "deckIdx": 2,
  "page": 0
}
cmdSignificado
presentIniciar apresentação
stopParar apresentação
advancePróximo item / etapa do slide
backItem / etapa do slide anterior
gotoIr para uma posição usando deckIdx / page (e campos relacionados)
blankApagar ou restaurar a tela
nextItemPróximo item da apresentação
prevItemItem anterior da apresentação
setStanzaIr para uma parte da música
setPageDefinir a página de um PDF / item com várias páginas
pingVerificação de atividade

Segurança e limites

  • Trate o broker como um serviço de rede local: não redirecione suas portas para a internet pública.
  • Qualquer pessoa que consiga publicar no tópico /control de uma sessão conectada pode controlar a apresentação ao vivo; proteja a rede e o processo de conexão.
  • Os tópicos em proweave/<scope>/remote/ também podem ser encaminhados para o SundayAssist Cloud quando o controle remoto pela nuvem do Complete estiver habilitado. Teste primeiro na rede local.
  • Esta página documenta a interface de integração disponível na versão atual; novos campos podem ser adicionados. Durante a criação do protótipo, observe /deck e /state de uma sessão real do Remote.
  • Alterações incompatíveis nos nomes dos tópicos são raras. Se você publicar uma integração, avise pelo endereço [email protected] para que possamos informar antes de uma mudança de nome.

Construa com a gente

Quer contribuir com o projeto ou precisa de um contrato de integração estável para um produto audiovisual de igreja? Vamos conversar.