For Building Automation Integrators and BMS Programmers
| Item | Value |
|---|---|
| Device Type | BACnet/IP Device |
| Protocol Revision | 14 (BACnet 2012) |
| Network Port | UDP 47808 (standard BACnet/IP) |
| Vendor ID | 812 (eDIDIO) |
| Model | edidio-s10 |
| Application | DALI/DMX Lighting Control |
Total Objects: 70 objects (1 Device + 32 Lighting Outputs + 10 Analog Values + 10 Binary Values + 8 Binary Inputs + 4 Binary Outputs + 5 Schedules)
The eDIDIO-S10 announces itself on the BACnet network automatically:
Device Instance Number:
00:04:A3:12:34:56 will have instance number 1,193,046The device supports these BACnet services:
Unconfirmed Services:
Confirmed Services:
The eDIDIO-S10 exposes 70 BACnet objects organized by function:
Device:X - Main controller object
Lighting-Output:0 through Lighting-Output:31 - DALI group control
DALI Line Mapping:
For 2-Line configuration:
For 4-Line configuration:
For List Control:
For Diagnostics (Read-Only):
For Line Control:
For Fault Monitoring (Read-Only):
For Configuration:
BI:0 through BI:7 - "BINARY INPUT 0" through "BINARY INPUT 7"
BO:0 through BO:3 - "BINARY OUTPUT 0" through "BINARY OUTPUT 3"
Schedule:0 through Schedule:4 - Time-based automation
The simplest way to control lighting is by writing to the Present_Value property.
Example: Set light to 75%
Object: Lighting-Output:5
Property: Present_Value
Value: 75.0
Priority: 8
Brightness Levels:
Priority Levels:
For precise fade control with custom fade times, use the Lighting_Command property.
FADE_TO Operation:
Fades light to a target level over a specified time.
Object: Lighting-Output:10
Property: Lighting_Command
Operation: FADE_TO
Target Level: 80.0
Fade Time: 5000 ms (5 seconds)
Use Fade Time: TRUE
Priority: 8
RAMP_TO Operation:
Fades light at a specified rate (percent per second).
Object: Lighting-Output:10
Property: Lighting_Command
Operation: RAMP_TO
Target Level: 100.0
Ramp Rate: 20.0 (20% per second)
Use Ramp Rate: TRUE
Priority: 8
Other Operations:
During a fade, you can monitor progress using two properties:
Present_Value:
Tracking_Value:
In_Progress:
Example: Monitoring a 10-second fade to 100%
| Time | Present_Value | Tracking_Value | In_Progress |
|---|---|---|---|
| 0s | 100.0 | 0.0 | FADE_ACTIVE |
| 2s | 100.0 | 20.0 | FADE_ACTIVE |
| 5s | 100.0 | 50.0 | FADE_ACTIVE |
| 10s | 100.0 | 100.0 | IDLE |
The eDIDIO uses DALI standard fade times (16 discrete values):
| Requested Time | Actual Fade Time |
|---|---|
| 0-350ms | 0ms (instant) |
| 350-850ms | 700ms |
| 2400-3400ms | 2800ms (default) |
| 4850-6850ms | 5700ms |
| 10000ms | 11300ms |
| >77250ms | 90500ms |
To turn all lights on a DALI line on or off:
Turn Line 1 fully ON:
Object: Binary-Value:1
Property: Present_Value
Value: ACTIVE
Priority: 8
Turn Line 2 fully OFF:
Object: Binary-Value:2
Property: Present_Value
Value: INACTIVE
Priority: 8
This affects ALL DALI groups on the specified line (instant, no fade).
The eDIDIO has 32 built-in lighting sequences (lists) that can be triggered:
Start List #12:
Object: Analog-Value:0
Property: Present_Value
Value: 12.0
Stop List #12:
Object: Analog-Value:1
Property: Present_Value
Value: 12.0
Use Cases:
The eDIDIO supports 5 independent weekly schedules for time-based automation.
Best Practice:
This ensures proper initialization of DALI groups and trigger types.
Supported:
Not Supported:
Controls DALI groups directly.
Setup:
Object: Schedule:0
Property: List_Of_Object_Property_References
Value: Lighting-Output:5, Present_Value
Weekly Schedule Example:
Triggers lighting sequences/effects.
Setup:
Object: Schedule:0
Property: List_Of_Object_Property_References
Value: Analog-Value:0, Present_Value
Weekly Schedule Example:
Important: Use Write-Property-Multiple to write both Effective_Period and Weekly_Schedule together.
Enable a Schedule:
Object: Schedule:0
Property: Out_Of_Service
Value: false
Disable a Schedule:
Object: Schedule:0
Property: Out_Of_Service
Value: true
Time Constraints:
Example:
Monday: 08:00-18:00 ✓ Valid, becomes reference
Tuesday: 08:00-18:00 ✓ Same times as Monday - included
Wednesday: 09:00-18:00 ✗ Different start time - excluded from schedule
Monitor button presses, sensors, or external triggers:
Read Input State:
Object: Binary-Input:2
Property: Present_Value
Result: ACTIVE (input is HIGH)
Use Cases:
Control relays and external equipment:
Activate Output:
Object: Binary-Output:0
Property: Present_Value
Value: ACTIVE
Priority: 8
Use Cases:
The eDIDIO monitors DALI line health and reports faults.
Check for Faults:
Object: Binary-Value:5 (Line 1 Fault)
Property: Present_Value
Result: ACTIVE (fault detected)
Get Fault Details:
Object: Analog-Value:2 (Line 1 Fault Count)
Property: Present_Value
Result: 3.0 (3 faults detected)
Object: Analog-Value:3 (Line 1 Next Fault Address)
Property: Present_Value
Result: 42.0 (DALI address 42 has fault)
Fault Types:
Keep the device clock synchronized for accurate scheduling:
Local Time Sync:
Service: Time-Synchronization (broadcast)
Date: 2025-01-15 (Wednesday)
Time: 15:30:00
UTC Time Sync:
Service: UTC-Time-Synchronization (broadcast)
Date: 2025-01-15
Time: 05:30:00 UTC
Local Offset: +600 minutes (AEST)
The device handles daylight saving time automatically (Australian AEDT rules).
Use Case: Meeting room with automatic lighting control
Occupancy Detected (from BMS):
→ Write Lighting-Output:5, Present_Value = 100.0, Priority 8
Occupancy Timeout (from BMS):
→ Write Lighting-Output:5, Present_Value = 0.0, Priority 8
Use Case: Office space with photocells feeding BMS
Daylight Sensor > 500 lux:
→ Write Lighting-Output:10, Present_Value = 30.0, Priority 8
Daylight Sensor < 300 lux:
→ Write Lighting-Output:10, Present_Value = 80.0, Priority 8
Use FADE_TO with 5-10 second fade time for smooth transitions.
Use Case: Standard office hours with override capability
Schedule Configuration:
Manual Override:
Use Case: Restaurant with different zones needing different modes
Configuration:
Dinner Service Mode (BMS triggered):
Write Lighting-Output:0-7, Present_Value = 60.0 (Dining ambient)
Write Lighting-Output:8-15, Present_Value = 75.0 (Bar brighter)
Write Lighting-Output:16-23, Present_Value = 100.0 (Kitchen full)
Closing Mode:
Start List #20 (slow fade-out effect)
Write Analog-Value:0, Present_Value = 20.0
Use Case: Fire alarm integration with BMS
Fire Alarm Active:
→ Write Binary-Value:1-4, Present_Value = ACTIVE, Priority 2
(Turns all DALI lines to full brightness at life safety priority)
Fire Alarm Cleared:
→ Relinquish Priority 2 on all Binary-Value:1-4
(Returns to normal automation control)
Use Case: Building-wide energy curtailment
Strategy:
Energy Curtailment Active:
→ Read all Lighting-Output:*, Present_Value
→ Write back at 70% of current level, Priority 7
Curtailment Released:
→ Relinquish Priority 7 on all Lighting Outputs
Check:
Verify with native discovery:
Check:
false on the Lighting OutputDebug Steps:
Read Lighting-Output:X, Priority_Array
→ Check which priorities have values
→ Highest priority (lowest number) wins
Read Lighting-Output:X, Out_Of_Service
→ Must be false for control to work
Check:
false (schedule enabled)Test:
Read Schedule:0, Present_Value
→ Should show the currently active scheduled value
Read Device:X, Local_Time and Local_Date
→ Verify device clock is correct
Causes:
Solution:
Causes:
Solution:
Read Multiple:
- Present_Value
- Tracking_Value
- In_Progress
Symptoms:
Solutions:
Problem: Cannot control light, higher priority is active
Diagnosis:
Read Lighting-Output:X, Priority_Array
Result: Priority 3 = 50.0 (stuck from emergency override)
Solution:
Write Lighting-Output:X, Present_Value = null, Priority 3
→ Relinquishes Priority 3
→ Lower priorities can now control the light
For optimal performance:
For issues not covered in this guide:
Diagnostic Information to Provide:
| Object Type | Count | Instances | Purpose |
|---|---|---|---|
| Device | 1 | X (from MAC) | Device identification |
| Lighting Output | 32 | 0-31 | DALI group control |
| Analog Value | 10 | 0-9 | List control (0-1), Faults (2-9) |
| Binary Value | 10 | 0-9 | Line control (0-4), Faults (5-8), Poll (9) |
| Binary Input | 8 | 0-7 | Physical input monitoring |
| Binary Output | 4 | 0-3 | Physical output control |
| Schedule | 5 | 0-4 | Time-based automation |
| Priority | Use Case | Notes |
|---|---|---|
| 1 | Manual Life Safety | Emergency overrides |
| 2 | Automatic Life Safety | Fire alarm integration |
| 3-5 | Critical Equipment | Critical overrides |
| 6 | RESERVED | Cannot be used |
| 7 | Manual Override | Temporary manual control |
| 8 | Building Automation | Recommended for BMS |
| 9-16 | Lower Priorities | Background control |
| Operation | Purpose | Parameters |
|---|---|---|
| FADE_TO | Fade to level with time | Target Level, Fade Time |
| RAMP_TO | Fade at rate | Target Level, Ramp Rate |
| STEP_UP | Increase brightness | Step Increment |
| STEP_DOWN | Decrease brightness | Step Increment |
| STOP | Stop current fade | None |
| OFF | Turn off | None |
| ON | Turn on to last level | None |
| RELINQUISH | Release priority | None |
| Service | Purpose | Example |
|---|---|---|
| Read-Property | Read single property | Get Present_Value |
| Read-Property-Multiple | Read multiple properties | Get PV + Tracking + Status |
| Write-Property | Write single property | Set brightness |
| Write-Property-Multiple | Write multiple properties | Set schedule + effective period |
| Time-Synchronization | Set device clock | Daily time sync |
Document Version: 1.0
Last Updated: 2025-01-29
Firmware Compatibility: 1.1.3+
BACnet Protocol Revision: 14
For Technical Reference:
See "eDIDIO BACNET Technical Reference.md" for implementation details, code examples, and developer information.
End of Integration Guide