Live infrastructure service
DALI Crane Lighting
Multi-crane overview, per-light predictive-maintenance health, and per-crane + cluster control. All cranes, all lights, live from MQTT.
DALI Control — Reference
Live status & health — crane QC01 (auto-updated from retained status/diagnostics — works even when lights are OFF)
| SA | On/Off | Level | Online | Health | Power W | Op h | Gear °C | SC / OC faults |
|---|---|---|---|---|---|---|---|---|
| waiting for data… | ||||||||
Live camera — ET200SP system (MJPEG feed from edge PLC; routed through SpiderWeb proxy — internal IPs never exposed)
Individual light
ON=action5 (recall max) · OFF=action0 · dim=action255+level · step=action3/4
Group / cluster & broadcast
Group g uses addr 128+g · broadcast = addr 255. A gear only responds to a group after it has been assigned to it (see "Group membership").
Query a light (on-demand)
Reply arrives on dali/<crane>/cmd/resp. CMD 1 → data[0]=level. CMD 11 → data[2]=basic status bits (b0 gearFail · b1 lampFail · b2 lampOn · b3 limitError).
Dimming curve (DT6 / LED)
Webapp sends intent to dali/<crane>/cmd/curve; the PLC builds the DALI frames. Gear must already be DT6 (watch rc=0x91 type-mismatch on cmd/resp). The PLC owns the linear/log inversion — you just pick the curve. The PLC auto-reads-back after every set → dali/<crane>/dimcurve/<addr>.
Group membership (assign address → groups)
CMD 28/29 bytes: p=[addr, mask(groups0–7), mask(groups8–15)]. This is how you wire up clusters before using GROUP ON/OFF.
Raw CM command console
Reaches ANY command in the CM list. e.g. cmd 21 p=[addr,6] add LED gear, cmd 62 p=[] reset module, cmd 0 p=[1] poll. Reply on cmd/resp.
MQTT log
Dimming curve per channel All 64 DALI short addresses for crane QC01. Set buttons are enabled only when the gear is online and answered a dim-curve read. The PLC auto-reads-back after every set — that confirmation is the source of truth (no optimistic update).
| Channel | Online | Current curve | Set (raw DT6 route B) | Query |
|---|---|---|---|---|
| click "Refresh all" to query every channel… | ||||
Online gate — a Set is allowed only when the gear is
currently online. Online is derived from the latest signal:
status.online === true, or the most recent dim-curve
query returned valid === true.
A stale value (from the retained cache, before any query this
session) shows a dotted underline marker.