Publishers
Publishers send Zaparoo Core notifications to other services in real time. MQTT publishers forward the notification stream as JSON. PixelCade publishers turn media launch notifications into marquee display requests.
Multiple publishers can run at the same time, including more than one of the same type. Each one receives the same event stream.
Publishers are configured in config.toml. There is no Web UI for this feature.
MQTT
The MQTT publisher sends Core notifications as JSON messages to an MQTT broker. Use it with home automation setups like Home Assistant and Node-RED, or any other system that can subscribe to MQTT topics.
Events are published to the configured topic as they fire.
[[service.publishers.mqtt]]
broker = "mqtt://192.168.1.100:1883"
topic = "zaparoo/events"
See the Config File Reference for all options:
enabled— turn this publisher on or offbroker— MQTT broker URL (mqtt://,mqtts://, orssl://)topic— MQTT topic to publish tofilter— limit which event types are published
PixelCade
The PixelCade publisher displays game marquee art on a PixelCade LED display. When media starts, it maps the Zaparoo system ID to a PixelCade console folder and requests the matching marquee for the launched file.
[[service.publishers.pixelcade]]
host = "192.168.1.50"
See the Config File Reference for all options:
enabled— turn this publisher on or offhost— hostname or IP address of the PixelCade device (required)port— HTTP API port (default:8080)mode—"stream"or"write"endpoint (default:"stream")filter— limit which event types trigger requests
PixelCade currently only sends requests for media.started notifications. Other notification types are ignored even if they pass the filter.
Filtering events
Every publisher has a filter option that limits which notification types it receives. Leave it empty to receive all events.
[[service.publishers.mqtt]]
broker = "mqtt://localhost:1883"
topic = "zaparoo/events"
filter = [
"media.started",
"media.stopped"
]
If you only care about media events and not every token scan, filter down to the event types you need.
Multiple publishers
You can define multiple publishers of the same type, each with different settings:
[[service.publishers.mqtt]]
broker = "mqtt://localhost:1883"
topic = "zaparoo/all"
[[service.publishers.mqtt]]
broker = "mqtt://192.168.1.200:1883"
topic = "home/arcade/events"
filter = ["media.started", "media.stopped"]
[[service.publishers.pixelcade]]
host = "192.168.1.50"