DALI (Lighting Control) Driver
Overview
DALI (Digital Addressable Lighting Interface, IEC 62386) is the standard protocol for building lighting control. A single DALI bus connects up to 64 short addresses (or 16 groups and 16 scenes) worth of luminaires, sensors, and illuminance controllers, and controls switching, dimming, and color temperature (DT8) through broadcast, group, or individual commands.
| Item | Value |
|---|---|
opc_type | DALI |
| Implementation class | plantpulse.driver.protocol.dali.DALI_Driver |
| Library | (none — stub) |
| read | ⛔ stub (returns "") |
| write | ⛔ stub |
| Security | Not applicable (physical access at the bus level) |
DALI exists only as a formal stub inside plantpulse-edge-driver.jar.
Calling read() returns an empty string, and no traffic flows to an actual DALI bus.
If you need real DALI luminaire monitoring or control, use the alternative operating approach below.
Why a native implementation is difficult
PlantPulse Edge is a Java application that runs on general-purpose PCs, industrial PCs, and Linux servers, and it has no interface that can connect directly to a DALI physical bus.
DALI communication always requires separate DALI master / gateway hardware.
| Hardware category | Example products | Upstream interface |
|---|---|---|
| USB DALI master | Lunatone DALI USB, Tridonic DALI USB | USB (vendor SDK) |
| Industrial DALI gateway | Tridonic DALI-2 SCI, Helvar 422 / 510, Lunatone DALI-2 IoT | Ethernet (Modbus TCP / BACnet/IP / REST / OPC UA) |
| Built into building automation controllers | Siemens DXR, Schneider SE8000 | BACnet/IP |
| Wireless mesh | Casambi, Silvair, Zigbee→DALI | Cloud / MQTT / REST |
Having a PC generate bit-level signals directly on a DALI bus is practically impossible due to electrical and timing constraints, and in-house implementations that have not passed DALI-2 certification often cannot be legally used in building lighting systems.
Alternative operating approach
Most commercial DALI gateways provide an interface converted to a standard industrial protocol. Simply choose and register one of PlantPulse's existing drivers.
| Upstream interface provided by the DALI gateway | PlantPulse driver to use | Page |
|---|---|---|
| OPC UA Server | OPCUA | OPC-UA |
| Modbus TCP | MODBUS | Modbus |
| BACnet/IP | (as an internal protocol, gateway → Modbus/OPCUA conversion is recommended) | — |
| REST / JSON API | HTTP | HTTP |
| MQTT (Casambi and other wireless) | (for MQTT input, use Sparkplug or an external broker) | Sparkplug B |
Recommended configuration example (Tridonic DALI-2 SCI / Lunatone DALI-2 IoT)
Considerations for a future native implementation
If an in-house implementation moves into the review stage, the following options should be evaluated.
| Option | Dependency | Difficulty |
|---|---|---|
| Lunatone DALI USB SDK binding | Windows-only DLL + JNA | Medium |
| Helvar Designer Net (Router 422 over Ethernet) | Proprietary TCP protocol (limited documentation) | Medium-high |
| DALI-2 over IP (DiiA D4i, in progress) | Standard not finalized | High |
| OPC UA Companion Spec for Lighting | Standardization in progress (OPC Foundation) | High (can be handled with the OPCUA driver) |
DALI is a field where the gateway conversion model has become established practice. Integrating with PlantPulse through the OPC UA / Modbus TCP / REST interfaces provided by the gateway manufacturer is the most reliable approach, and the priority for adding a native driver is low.
stub registration (test only)
OPC registration itself is possible even with the stub driver, but no data is collected.
curl -X POST http://<edge-host>/api/v1/opc \
-H "Content-Type: application/json" \
-d '{
"opc_id": "OPC_DALI_STUB",
"opc_type": "DALI",
"opc_name": "DALI stub",
"opc_agent_ip": "192.168.0.0",
"opc_agent_port": "0",
"site_id": "SITE_00001",
"auto_collect": false,
"timecycle": 5000,
"tag_list": []
}'