Waarom MQTT?
Presenter gebruikt MQTT al voor QR Remote, live status en lokale AI-topics. Dezelfde broker is beschikbaar voor jouw clients op het kerk-LAN. De ingebouwde broker is MQTT v5-conform en accepteert ook MQTT v3.1.1 / v3.0-clients — je kunt dus met beide verbinden. Je publiceert en abonneert zoals bij elke MQTT-app; Presenter reageert op control-berichten en publiceert deck- en statusupdates.
Verbinden met de ingebouwde broker
Als Presenter draait, luistert de broker op het LAN-adres van de computer. Is de standaardpoort bezet, dan probeert Presenter het volgende nummer in het bereik.
| Transport | Eindpunten | Toelichting |
|---|---|---|
| MQTT over TCP | tcp://<presenter-lan-ip>:1883–1887 | Geschikt voor desktop-scripts, Node, Python en hardwarebruggen. |
| MQTT over WebSocket | ws://<presenter-lan-ip>:9883–9887/mqtt | Pad is altijd /mqtt. Gebruik vanuit browsers of WebSocket-clients. |
tcp://192.168.1.40:1883
ws://192.168.1.40:9883/mqttAan de slag
Gebruik een MQTT v5- of v3.x-client (TCP of WebSocket). Richt die op de Presenter-host terwijl een dienst open is (of nadat Remote is gestart zodat de broker actief is). Presenter’s eigen Remote-verkeer gebruikt MQTT 3.1.1; v5-only features werken voor jouw clients en worden gedegradeerd wanneer je ze mixt met v3-peers.
- Blijf op hetzelfde wifi-/LAN als de Presenter-computer voor lokale toegang.
- Haal het host-IP uit Presenter’s netwerk-/Remote QR-UI, of uit de clientlijst van je router.
- Als 1883 of 9883 faalt, probeer de volgende poort in het fallback-bereik — Presenter logt de gebonden poorten bij het starten.
- QoS 0 is gebruikelijk voor live bediening; houd payloads klein en JSON in UTF-8.
Remote-topicboom
De meeste integraties gebruiken het Remote-voorvoegsel. Vervang {prefix} door proweave/remote op een typische LAN-setup, of proweave/<machine-scope>/remote wanneer Presenter aan een machine-MAC is gekoppeld.
Voorvoegsel: proweave/remote (LAN-standaard) of proweave/<scope>/remote. Session-ID’s komen uit pairing — pair eerst, publiceer daarna onder die sessie.
| Topicpatroon | Richting | Doel |
|---|---|---|
| {prefix}/pair | Client → Presenter | OTP-/pairverzoek om een sessie te maken |
| {prefix}/<sessionId>/paired | Presenter → Client | Pair geaccepteerd of geweigerd |
| {prefix}/<sessionId>/control | Client → Presenter | Commando’s (advance, goto, blank, …) |
| {prefix}/<sessionId>/heartbeat | Client → Presenter | Sessie levend houden; rol controller of viewer |
| {prefix}/<sessionId>/deck | Presenter → Client | Volledige deck-JSON voor controllers |
| {prefix}/<sessionId>/state | Presenter → Client | Live beamer-/controllerstatus |
| {prefix}/<sessionId>/viewer/state | Presenter → Client | Viewer-slide-raster (en chunk-varianten) |
| {prefix}/ai/* | Engine ↔ Presenter | Lokale AI-topics |
Vorm van control-payloads
Publiceer JSON naar {prefix}/<sessionId>/control na een geslaagde pair. Veldnamen volgen remoteControlPayload van Presenter (cmd plus optionele navigatievelden).
{
"cmd": "advance"
}
{
"cmd": "goto",
"deckIdx": 2,
"page": 0
}| cmd | Betekenis |
|---|---|
| present | Presentatie starten |
| stop | Presentatie stoppen |
| advance | Volgende cue / slidestap |
| back | Vorige cue / slidestap |
| goto | Springen met deckIdx / page (en gerelateerde velden) |
| blank | Scherm blanken of herstellen |
| nextItem | Volgend deck-item |
| prevItem | Vorig deck-item |
| setStanza | Springen binnen liedstructuur |
| setPage | PDF- / multipagina-cue-pagina zetten |
| ping | Bereikbaarheidscheck |
Veiligheid en grenzen
- Behandel de broker als LAN-dienst — forward poorten niet naar het openbare internet.
- Iedereen die naar /control van een gepaarde sessie kan publiceren, kan het live deck bedienen; bescherm het netwerk en de pair-flow.
- Topics onder proweave/<scope>/remote/ kunnen ook naar SundayAssist Cloud worden gebridged als cloud-remote aanstaat — test eerst op LAN.
- Deze pagina beschrijft het integratievlak zoals geleverd; velden kunnen groeien. Observeer /deck en /state vanuit een echte Remote-sessie tijdens prototypen.
- Breaking changes in topicnamen zijn zeldzaam; als je een publieke integratie ship’t, mail [email protected] zodat we je kunnen waarschuwen vóór een rename.
Bouw met ons mee
Wil je upstream bijdragen, of heb je een stabiel contract nodig voor een kerk-AV-product? We denken graag mee.