Basic DyNet Opcodes
Opcode Structure
Logical Message Protocol | Interface |
---|---|
|
|
Logical Message Structure |
Physical Message Structure |
Byte 0: 1C – Logical Sync byte |
Byte 0: 5C – Physical Sync byte |
Opcode Examples
Preset
Select Current Preset
Byte 0: 1C hex
Byte 1: Area
Byte 2: Fade Rate low byte (usually 100)
Byte 3: Preset: 0= P1, 1= P2, 2= P3, 3= P4, A= P5, B= P6, C= P7, D= P8
Byte 4: Fade Rate high byte (usually 0)
Byte 5: Preset Bank: 0= P1 – P8, 1= P9 – P16, 2= P17 – P24 etc.
Byte 6: Join
Byte 7: Checksum
Example: Select Preset 4 in Area 1:
[1C] [01] [20] [03] [00] [00] [FF] [C1]
Select Current Preset (Linear)
Byte 0: 1C hex
Byte 1: Area
Byte 2: Preset (0 origin)
Byte 3: 65 hex
Byte 4: Fade Time Lo (16 bit fade time in 20 ms steps)
Byte 5: Fade Time Hi
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Select Preset 4 in Area 1 with a fade of 2 seconds:
[1C] [01] [03] [65] [64] [00] [FF] [18]
Preset Offset
Byte 0: 1C hex
Byte 1: Area
Byte 2: Data: Offset value plus Bit 8 set, to distinguish Preset Offset from Swap Bank
Byte 3: Opcode $64
Byte 4: 0 (Unused)
Byte 5: 0 (Unused)
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Preset Offset of 15 in Area 1:
[1C] [01] [8F] [64] [00] [00] [FF] [F1]
Ramp / Fade
Ramp Channel/Area to Off
Byte 0: 1C hex
Byte 1: Area
Byte 2: Channel (0 origin, FF = All Channels in the Area)
Byte 3: 68 hex
Byte 4: 0 (Unused)
Byte 5: Ramp Rate (100 ms steps. Ramp Rate is the time to fade from 0 to 100%)
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Ramp Channel 4 in Area 1 to off with a ramp rate of 5 seconds:
[1C] [01] [03] [68] [00] [32] [FF] [47]
Ramp Channel/Area to On
Byte 0: 1C hex
Byte 1: Area
Byte 2: Channel (0 origin, FF = All Channels in the Area)
Byte 3: 69 hex
Byte 4: 0 (Unused)
Byte 5: Ramp Rate (100 ms steps. Ramp Rate is the time to fade from 0: 100%)
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Ramp Channel 4 in Area 1 to On with a ramp rate of 5 seconds:
[1C] [01] [03] [69] [00] [32] [FF] [46]
Fade Channel/Area to Preset
Byte 0: 1C hex
Byte 1: Area
Byte 2: Channel (0 origin, FF = All Channels in the Area)
Byte 3: 6B hex
Byte 4: Preset (0 origin)
Byte 5: Fade Time (20 ms steps)
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Area 1, Channel 4, Recall Preset 4 with a Fade Time of 2.00s:
[1C] [01] [03] [6B] [03] [64] [FF] [0F]
Ramp Channel/Area to a Level (0.1 sec to 25.5 sec)
Byte 0: 1C hex
Byte 1: Area
Byte 2: Channel (0 origin, FF = All Channels in the Area)
Byte 3: 71 hex
Byte 4: Channel Level (01 = 100%, FF = 0%)
Byte 5: Ramp Rate (100 ms steps. Ramp Rate is the time to fade from 0: 100%)
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Area 2 Channel 3 Fade to 50% over 5 seconds:
[1C] [02] [02] [71] [82] [32] [FF] [BC]
Fade Channel/Area to a Level (1 sec to 255 sec)
Byte 0: 1C hex
Byte 1: Area
Byte 2: Channel (0 origin, FF = All Channels in the Area)
Byte 3: 72 hex
Byte 4: Channel Level (01 = 100%, FF = 0%)
Byte 5: Fade Rate (1 sec steps)
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Area 2 Channel 3 Fade to 50% over 50 seconds:
[1C] [02] [02] [72] [82] [32] [FF] [BB]
Fade Channel/Area to a Level (1 min to 22 min)
Byte 0: 1C hex
Byte 1: Area
Byte 2: Channel (0 origin, FF = All Channels in the Area)
Byte 3: 73 hex
Byte 4: Channel Level (01 = 100%, FF = 0%)
Byte 5: Fade Rate (1 min steps, max 22 minutes)
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Area 2 Channel 3 Fade to 50% over 15 minutes:
[1C] [02] [02] [73] [82] [0F] [FF] [DD]
Fade Channel/Area to Off
Byte 0: 1C hex
Byte 1: Area
Byte 2: Channel (0 origin, FF = All Channels in the Area)
Byte 3: 74 hex
Byte 4: Fade Time Lo (16 bit fade time in 20 ms steps)
Byte 5: Fade Time Hi
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Area 4, All Channels,: Fade to off with a Fade Time of 2.00s:
[1C] [04] [FF] [74] [64] [00] [FF] [0A]
Fade Channel/Area to On
Byte 0: 1C hex
Byte 1: Area
Byte 2: Channel (0 origin, FF = All Channels in the Area)
Byte 3: 75 hex
Byte 4: Fade Time Lo (16 bit fade time in 20 ms steps)
Byte 5: Fade Time Hi
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Area 4, All Channels,: Fade to on with a Fade Time of 2.00s:
[1C] [04] [FF] [75] [64] [00] [FF] [09]
Stop Fade Channel/Area
Byte 0: 1C hex
Byte 1: Area
Byte 2: Channel (0 origin, FF = All Channels in the Area)
Byte 3: 76 hex
Byte 4: 0 (Unused)
Byte 5: 0 (Unused)
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Area 4 Channel 6 Stop Fading:
[1C] [04] [05] [76] [00] [00] [FF] [66]
Fade Area to a Level
Byte 0: 1C hex
Byte 1: Area
Byte 2: Channel (0 origin, FF = All Channels in the Area)
Byte 3: 79 hex
Byte 4: Fade Time Lo (16 bit fade time in 20 ms steps)
Byte 5: Fade Time Hi
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Fade Area 4 to 50% over 2 sec:
[1C] [04] [82] [79] [64] [00] [FF] [82]
Set to Off
Byte 0: 1C hex
Byte 1: Area
Byte 2: Fade Rate low Byte (usually 100)
Byte 3: 4 hex
Byte 4: Fade Rate high Byte (usually 0)
Byte 5: 0 (Unused)
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Turn Area 3 Off:
[1C] [03] [0A] [04] [00] [00] [FF] [D4]
Ramp Channel/Area to a Level except channels preset to 0% or don’t care
Byte 0: 1C hex
Byte 1: Area
Byte 2: Channel (0 origin, FF = All Channels in the Area)
Byte 3: 5F hex
Byte 4: Level (01 = 100%, FF = 0%)
Byte 5: Ramp Rate (100 ms steps. Ramp Rate is the time to fade from 0: 100%)
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Area 4, Ramp Lit Channels Toward 100% with a ramp rate of 5.00s:
[1C] [04] [FF] [5F] [01] [32] [FF] [50]
Request / Report
Report Channel Level (reply from dimmer)
Byte 0: 1C hex
Byte 1: Area
Byte 2: Channel (0 origin)
Byte 3: 60 hex
Byte 4: Target Level (01 = 100%, FF = 0%)
Byte 5: Current Level (01 = 100%, FF = 0%)
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Report from Channel 5 in Area 2 Target Level is 57% & Current Level is 57%:
[1C] [02] [04] [60] [70] [70] [FF] [9F]
Request Preset (sent to dimmer)
Byte 0: 1C hex Byte 1: Area Byte 2: 0 (Unused) Byte 3: 63 hex Byte 4: 0 (Unused) Byte 5: 0 (Unused) Byte 6: Join (usually FF hex) Byte 7: Checksum
Example: Request Current Preset of Area 4:
[1C] [04] [00] [63] [00] [00] [FF] [7E]
Program / Save / Restore Preset
Program Current Preset: Saves channel levels to the current preset
Byte 0: 1C hex
Byte 1: Area
Byte 2: 0 (Unused)
Byte 3: 8 hex
Byte 4: 0 (Unused)
Byte 5: 0 (Unused)
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Save the Current Channel Levels of Area 4 to the Current Preset:
[1C] [04] [00] [08] [00] [00] [FF] [D9]
Program Defined Preset: Saves channel levels to a defined preset
Byte 0: 1C hex
Byte 1: Area
Byte 2: Preset (0 origin)
Byte 3: 9 hex
Byte 4: 0 (Unused)
Byte 5: 0 (Unused)
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Save the Current Channel Levels of Area 4 to Preset 1:
[1C] [04] [00] [09] [00] [00] [FF] [D8]
Panic
Disable/Enable Control Panels
Light Level Compensation (Daylight Harvesting)
Suspend/Resume Light Level Compensation (All presets)
Byte 0: 1C hex
Byte 1: Area
Byte 2: Channel (0 origin, FF = All Channels in the Area)
Byte 3: 11 hex
Byte 4: 0 (Unused)
Byte 5: Suspend / Resume (0 = Suspend, 1 = Resume)
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Area 2, All Channels,: Resume Light Level Compensation for all Presets:
[1C] [02] [FF] [11] [00] [01] [FF] [D2]
Suspend Light Level Compensation (Current Preset)
Byte 0: 1C hex
Byte 1: Area
Byte 2: Channel (0 origin, FF = All Channels in the Area)
Byte 3: 1A hex
Byte 4: 0 (Unused)
Byte 5: 0 (Unused)
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Area 2, All Channels,: Disable Light Level Compensation for Current Preset:
[1C] [02] [FF] [1A] [00] [00] [FF] [CA]
Resume Light Level Compensation (Current Preset)
Byte 0: 1C hex
Byte 1: Area
Byte 2: Channel (0 origin, FF = All Channels in the Area)
Byte 3: 1B hex
Byte 4: 0 (Unused)
Byte 5: 0 (Unused)
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Area 2, All Channels,: Enable Light Level Compensation for Current Preset:
[1C] [02] [FF] [1B] [00] [00] [FF] [C9]
Occupancy Detection
Suspend/Resume Occupancy Detection (All presets)
Byte 0: 1C hex
Byte 1: Area
Byte 2: Channel (0 origin, FF = All Channels in the Area)
Byte 3: 31 hex
Byte 4: 0 (Unused)
Byte 5: Suspend / Resume (0 = Suspend, 1 = Resume)
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Area 1, All Channels, Resume Occupancy Detection for All Presets:
[1C] [01] [FF] [31] [00] [01] [FF] [B3]
Disable Occupancy Detection (Current Preset)
Byte 0: 1C hex
Byte 1: Area
Byte 2: Channel (0 origin, FF = All Channels in the Area)
Byte 3: 3A hex
Byte 4: 0 (Unused)
Byte 5: 0 (Unused)
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Area 1, All Channels, Disable Occupancy Detection for Current Preset:
[1C] [01] [FF] [3A] [00] [00] [FF] [AB]
Enable Occupancy Detection (Current Preset)
Byte 0: 1C hex
Byte 1: Area
Byte 2: Channel (0 origin, FF = All Channels in the Area)
Byte 3: 3B hex
Byte 4: 0 (Unused)
Byte 5: 0 (Unused)
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Area 1, All Channels, Enable Occupancy Detection for Current Preset:
[1C] [01] [FF] [3B] [00] [00] [FF] [AA]
User Preference Messages
Set User Preference
Byte 0: 1C hex
Byte 1: Area
Byte 2: Preference (see below)
Byte 3: 48 hex
Byte 4: Data Hi (see below)
Byte 5: Data Lo (see below)
Byte 6: Join (usually FF hex)
Byte 7: Checksum
Example: Area 1: Set Indicator LED Brightness to 50% with a fade of 1.00s:
[1C] [01] [01] [48] [82] [32] [FF] [E7]
Preference Values:
0x01 = Indicator LED Brightness
0x02 = Backlight LED Brightness
0x03 = Display Brightness
0x04 = Display Contrast
0x05 = Sounder Volume
0x06 = Actual Temperature, 16 bit two’s complement in 0.25 deg Celsius steps
0x07 = User Temperature setpoint, 16 bit two’s complement in 0.25°C steps
0x08 = Display Brightness Scaled Value
0x09 = Air Conditioning Plant Capability
0x0A = Closed loop Light control setpoint (Temporary Adjust) in LUX
0x0B = Dynamic No Motion Timeout (Temporary Adjust) for Universal Motion sensor
0x0C = Actual Temperature, as signed fixed point °C (Range -127.99 to 127.99)
0x0D = User Temperature setpoint, as signed fixed point °C (Range -127.99 to 127.99)
Preference = 0x01
Data Hi: Indicator LED brightness (01=100% FF=0%)
Data Lo: 8 bit Fade Time in 20ms increments.
Preference = 0x02
Data Hi: Backlight LED Brightness (01=100% FF=0%)
Data Lo: 8 bit Fade Time in 20ms increments.
Preference = 0x03
Data Hi: LCD Brightness (01=100% FF=0%)
Data Lo: 8 bit Fade Time in 20ms increments.
Preference = 0x04
Data Hi: LCD Contrast ( 01=100% FF=0%)
Data Lo: 8 bit Fade Time in 20ms increments.
Preference = 0x05
Data Hi: Sounder Volume ( 01=100% FF=0%)
Data Lo: 8 bit Fade Time in 20ms increments.
Preference = 0x08
Data Hi: Display Brightness Scaled Value (01=100% FF=0%)
Data Lo: 8 bit Fade Time in 20mS increments.
Preference = 0x09
Data Hi: Air-conditioning Plant Capabilities
Bit-0: 1- Hot water available, 0- Hot water not available
Bit-1: 1- Cold water available, 0- Cold water not available
Data Lo: Unused
Preference = 0x0A
Closed loop light control setpoint (Temporary Adjust) in LUX
0x0000 to 0xFFFF (Raw Lux)
Preference = 0x0B
No Motion Timeout
0x0000 Revert To Configured No Motion Timeout
0x0001 to 0xFFFE (Timeout in Seconds)
0xFFFF Revert To Configured No Motion Timeout
Preference = 0x0C
Actual / Measured Temperature Range -127.99 to 127.99
Data Hi: 1 MSB is sign bit of temperature (1-negative, 0=positive)
7 LSBs are integer part of temperature (not in 2’s complement)
Data Lo: 8 bit unsigned fraction part of temperature (valid decimal range is 0-99)
Example +25.56°C =⇒ Value High = 0x19, Value Low = 0x38
Join
Area Linking
The Base Link Area (BLA) acts like an Area 0 for all channels that have that BLA defined, and is useful as a global control for a block of areas.
The following is for the 24 areas directly above the BLA, as used by the Set Area Links and Clear Area Links messages:
-
Byte 2:
-
Bit 7 is the 1st area
-
Bit 0 is the 8th area
-
-
Byte 4:
-
Bit 7 is the 9th area
-
Bit 0 is the 16th area
-
-
Byte 5:
-
Bit 7 is the 17th area
-
Bit 0 is the 24th area
-