eDIDIO-S10 BACnet Integration Guide

For Building Automation Integrators and BMS Programmers


Quick Reference

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)


Table of Contents

  1. Getting Started
  2. Understanding the Object Model
  3. Lighting Control
  4. Scheduling
  5. Monitoring and Diagnostics
  6. Integration Patterns
  7. Troubleshooting

Getting Started

Device Discovery

The eDIDIO-S10 announces itself on the BACnet network automatically:

Device Instance Number:

Network Requirements

Supported Services

The device supports these BACnet services:

Unconfirmed Services:

Confirmed Services:


Understanding the Object Model

The eDIDIO-S10 exposes 70 BACnet objects organized by function:

Device Object (1 object)

Device:X - Main controller object

Lighting Output Objects (32 objects)

Lighting-Output:0 through Lighting-Output:31 - DALI group control

DALI Line Mapping:

For 2-Line configuration:

For 4-Line configuration:

Analog Value Objects (10 objects)

For List Control:

For Diagnostics (Read-Only):

Binary Value Objects (10 objects)

For Line Control:

For Fault Monitoring (Read-Only):

For Configuration:

Binary Input Objects (8 objects)

BI:0 through BI:7 - "BINARY INPUT 0" through "BINARY INPUT 7"

Binary Output Objects (4 objects)

BO:0 through BO:3 - "BINARY OUTPUT 0" through "BINARY OUTPUT 3"

Schedule Objects (5 objects)

Schedule:0 through Schedule:4 - Time-based automation


Lighting Control

Basic Lighting Control (Present_Value)

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:

Advanced Lighting Control (Lighting_Command)

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:

Monitoring Fade Progress

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

Fade Time Precision

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

Controlling Entire Lines

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).

Lighting Sequences and Effects

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:


Scheduling

The eDIDIO supports 5 independent weekly schedules for time-based automation.

Schedule Recommendations

Best Practice:

  1. Create schedules using eDIDIO software (SpektraPlus or Configurator)
  2. Use BACnet to edit times as needed for BMS integration

This ensures proper initialization of DALI groups and trigger types.

Schedule Capabilities

Supported:

Not Supported:

Schedule Control Modes

Mode 1: Lighting Output Control

Controls DALI groups directly.

Setup:

Object: Schedule:0
Property: List_Of_Object_Property_References
Value: Lighting-Output:5, Present_Value

Weekly Schedule Example:

Mode 2: List Control

Triggers lighting sequences/effects.

Setup:

Object: Schedule:0
Property: List_Of_Object_Property_References
Value: Analog-Value:0, Present_Value

Weekly Schedule Example:

Creating Schedules via BACnet

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

Schedule Limitations

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

Monitoring and Diagnostics

Physical Inputs

Monitor button presses, sensors, or external triggers:

Read Input State:

Object: Binary-Input:2
Property: Present_Value
Result: ACTIVE (input is HIGH)

Use Cases:

Physical Outputs

Control relays and external equipment:

Activate Output:

Object: Binary-Output:0
Property: Present_Value
Value: ACTIVE
Priority: 8

Use Cases:

DALI Fault Monitoring

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:

Time Synchronization

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).


Integration Patterns

Pattern 1: Simple On/Off Control

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

Pattern 2: Daylight Harvesting

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.

Pattern 3: Scheduled Office Lighting

Use Case: Standard office hours with override capability

Schedule Configuration:

Manual Override:

Pattern 4: Multi-Zone Restaurant

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

Pattern 5: Emergency Override

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)

Pattern 6: Energy Management

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

Troubleshooting

Device Not Responding to Who-Is

Check:

  1. Device is powered and network link LED is active
  2. Device is on same network/VLAN as BMS
  3. Firewall allows UDP 47808 bidirectional
  4. Wait 5 seconds after power-on for I-Am announcement
  5. Use Wireshark to verify I-Am packets are being transmitted

Verify with native discovery:

Cannot Control Lighting

Check:

  1. Out_Of_Service property is false on the Lighting Output
  2. Using valid priority level (1-16, avoid Priority 6)
  3. Value is in valid range (0.0-100.0)
  4. No higher priority command is active (check Priority_Array)
  5. DALI devices are commissioned and responding

Debug 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

Schedule Not Working

Check:

  1. Out_Of_Service is false (schedule enabled)
  2. Effective_Period includes current date
  3. Current day is included in Weekly_Schedule
  4. System time is correct (use Time-Synchronization)
  5. List_Of_Object_Property_References is set correctly
  6. All active days have same times as Monday

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

Fade Not Smooth

Causes:

  1. Using Present_Value instead of Lighting_Command (no fade tracking)
  2. DALI ballasts have different fade time settings
  3. Requested fade time too short (use minimum 1-2 seconds)

Solution:

Tracking_Value Not Updating

Causes:

  1. Fade was started with Present_Value (no tracking)
  2. Polling too infrequently (poll every 500-1000ms during fade)
  3. Fade time too short to observe

Solution:

Read Multiple:
  - Present_Value
  - Tracking_Value
  - In_Progress

Time Sync Issues

Symptoms:

Solutions:

  1. Send Time-Synchronization broadcast regularly (daily recommended)
  2. Use UTC-Time-Synchronization with correct local offset
  3. Verify DST settings match location
  4. Check that BMS time source is accurate

High Priority Command Stuck

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

Network Performance

For optimal performance:

  1. Use Read-Property-Multiple instead of multiple Read-Property calls
  2. Poll only what's needed:
  3. Use appropriate priorities:

Contact Support

For issues not covered in this guide:

Diagnostic Information to Provide:

  1. Firmware version (read from Device:X, Firmware_Revision)
  2. BACnet protocol analyzer capture (Wireshark)
  3. Network configuration (IP, subnet, gateway)
  4. BMS software and version
  5. Description of issue and steps to reproduce

Quick Reference Tables

Object Summary

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 Levels

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

Lighting_Command Operations

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

Common BACnet Services

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 Information

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