⌐ AWAITING BROKER ¬

SCANNING . . .

The MQTT broker is not online.

Open chdp-broker.html and start it with mosquitto -v

This dashboard will subscribe and activate automatically.

CHDP // OPERATIONS DASHBOARD

SUBSCRIBER NODE · clientId: dashboard-001
AWAITING BROKER
▸ FLOOR PLAN
▸ OPC UA VIEW
▸ MQTT vs OPC UA
LEGEND:
NORMAL
WARN ≥0.20
PANIC ≥0.40
FAULT <0
CA IMBALANCE >0.10
◇ = XREF
FACILITY STATUS
NORMAL
0
WARN
0
PANIC
0
FAULT
0
IMBALANCED CA
0
TOTAL CHDPs
0
💡 MQTT LESSON
Waiting for broker connection...
📡 MQTT TRAFFIC0
SUBSCRIPTIONS
dc/+/+/+/dp [QoS 1]
dc/sim/status [QoS 1]
$SYS/broker/# [QoS 0]
OPC UA SERVER · opc.tcp://localhost:4840
OPC UA exposes the SAME CHDP data as a hierarchical address space. Each variable has a NodeId like ns=2;s=DC.Romp06.CA2.CHDP2_3.DP. Browse the tree below. In LIVE mode, values update in real time (mirrored from MQTT). In STATIC mode, the tree shows addressing only.
SIDE-BY-SIDE: MQTT vs OPC UA
The exact same CHDP reading represented in both protocols. Notice the payload size, structure, and subscription model differ — but both deliver the same information.

📤 MQTT PUBLISH

Topic-based, payload-agnostic
topic: dc/romp06/ca2/chdp2_3/dp
payload: {"value":0.02,"status":"normal"}
qos: 1
retain: true
Wire size: ~58 bytes

📡 OPC UA WRITE

Structured, typed, addressable
NodeId: ns=2;s=DC.Romp06.CA2.CHDP2_3.DP
Value: { Value: 0.02,
         StatusCode: Good,
         SourceTimestamp: 2026-05-19T15:32:01.234Z,
         ServerTimestamp: 2026-05-19T15:32:01.235Z }
DataType: Double
AccessLevel: CurrentRead
Wire size: ~340 bytes

SUBSCRIBE

mosquitto_sub -t "dc/+/+/+/dp" -q 1
One line. Wildcards. Broker delivers to all matching subscribers.

SUBSCRIBE

session.create_subscription(500, handler)
node = client.get_node("ns=2;s=DC.Romp06.CA2.CHDP2_3.DP")
sub.subscribe_data_change(node)
# repeat for each node...
Per-node subscriptions. Strongly typed. Built-in heartbeat & monitoring.

WHEN TO USE

✓ Telemetry over internet / cellular
✓ IoT sensor networks
✓ Cloud-bound data
✓ Cross-vendor messaging
✓ Many-to-many fan-out

WHEN TO USE

✓ Industrial PLC ↔ SCADA
✓ Plant-floor LAN
✓ Need built-in alarms / history
✓ Strongly-typed engineering data
✓ Regulated environments (FDA, ISA)
💡 The pattern most teams use: OPC UA on the plant floor (PLCs ↔ SCADA), then a gateway translates to MQTT for everything else (cloud, mobile, analytics). Best of both worlds.