Skip to content

MQTT topics

Sentinel uses MQTT 5 with QoS 1 for every message it sends. All subtopics live under sentinel/<mac>/ (local, on the gateway broker) and are mapped by the gateway to m/<workspace>/c/<channel>/<mac>/ (Celestian). <mac> is the node’s Ethernet MAC, lowercase without separators (e.g. 001a2b3c4d5e), the same as the device Serial in Celestian. In direct mode the node uses the Celestian topics directly.

Subtopic Format Contents
telemetry SenFlat / SenML regular (default every 10 seconds) and earlier when temperature, power, or the alarm level changes
event SenFlat / SenML door/input changes, outputs, alarms (alarm_…), rules (rule_…), maintenance mode; the identify button
status SenFlat / SenML, retained state online/offline, fw, ip, gateway. Offline is sent by the broker through the LWT, 30 seconds after the node disappears
config/reported JSON, retained the effective configuration, cfg_ver, rejected, firmware status
cmd/result JSON command result
rules/reported, rules/current JSON rules report (retained); set content verbatim (reply to get_rules, not retained)
sources/reported, sources/current JSON Modbus sources report; set content
profiles/reported, profiles/current JSON Modbus profiles report; set content
tgroups/reported, tgroups/current JSON telemetry groups report; set content
Subtopic Format Contents
config JSON, retained configuration + cfg_ver (config)
cmd JSON commands (commands)
rules JSON, retained rules set + rules_ver (rules)
sources JSON, retained Modbus sources + sources_ver (sources)
profiles JSON, retained Modbus profiles + profiles_ver (profiles)
tgroups JSON, retained telemetry groups + tgroups_ver (groups)
Local Celestian
sentinel/<mac>/… m/<workspace>/c/<channel>/<mac>/…
sentinel/<mac>/telemetry, event (SenFlat v2) m/<workspace>/c/<channel>/<gateway-ID>/telemetry, event: many nodes merged in one message, by the history component

Details in Bridge to Celestian.

  • QoS 1 for all outgoing node messages. Incoming messages are retained for settings, so a node that has just powered up receives the latest one.
  • An empty payload on a settings topic is ignored (the way to delete a retained message on the broker).
  • Content type in MQTT 5 follows the format: application/senml+json for SenML, otherwise application/json.
  • LWT: an offline status is sent by the broker if the node does not return within 30 seconds, so brief disconnects do not make the status flicker. The LWT message is always SenFlat v1 (or SenML if payload_format = senml).
  • Size: a telemetry message is at most 12,086 B; settings messages are limited per type (Limits).
  • In direct mode the node creates its client_id automatically, prefixed with the device ID per Celestian’s broker policy.