🏠 Home → Knowledge Base → Protocols
Total size: 10 bytes
Example: dd 03a8 0dcf 0c 002ce494
Packet structure:
| Byte | Field | Value | Description |
|---|---|---|---|
| 0 | Packet type | 0xDD |
Scheduled data from switch |
| 1-2 | Channel 1 current | 0x03A8 |
Channel 1 current (0x3A8 = 936 = 4.99 mA) |
| 3-4 | Voltage | 0x0DCF |
Supply voltage in mV (0xDCF = 3535 = 3.53 V) |
| 5 | Temperature | 0x0C |
Temperature in °C (0x0C = 12°C) |
| 6-9 | Uptime | 0x002CE494 |
Uptime in seconds (0x2CE494 = 2942100 sec = 817 h) |
Packet types:
0xCC – Data on Button press0xBB – Switch firmware version data0xDD – Scheduled data from switchNote: If temperature value exceeds 127, subtract from 256 to obtain temperature.
Total size: 20 bytes
Example: dd 02cd 0df0 16 00000000 024075c28f 0c c063fcd5
Packet structure:
| Byte | Field | Value | Description |
|---|---|---|---|
| 0 | Packet type | 0xDD |
Scheduled data from switch |
| 1-2 | ADC value | 0x02CD |
750 = 4mA, (717×4)/750 = 3.824 mA |
| 3-4 | Voltage | 0x0DF0 |
Supply voltage (0xDF0 = 3568 mV) |
| 5 | Temperature | 0x16 |
Temperature (0x16 = 22°C) |
| 6-9 | Uptime | 0x00000000 |
Device uptime |
| 10 | HART variables | 0x02 |
Number of HART variables |
| 11-14 | HART: current | 0x4075c28f |
Current value in mA = 3.83999 (IEEE-754) |
| 15 | HART: unit | 0x0C |
Unit code = 12 = "kPa" (HART) |
| 16-19 | HART: value | 0xC063FCD5 |
Variable 2 value = -3.5623 (IEEE-754) |
Note: If temperature value exceeds 127, subtract from 256 to obtain temperature.
Total size: 16 bytes
Example: dd03e805dc07d009c40e10175fe4a0dc
Packet structure:
| Byte | Field | Value | Description |
|---|---|---|---|
| 0 | Packet type | 0xDD |
Data packet |
| 1-2 | Channel 1 | 0x03E8 |
Value on input 1 (1000) |
| 3-4 | Channel 2 | 0x05DC |
Value on input 2 (1500) |
| 5-6 | Channel 3 | 0x07D0 |
Value on input 3 (2000) |
| 7-8 | Channel 4 | 0x09C4 |
Value on input 4 (2500) |
| 9-10 | Voltage | 0x0E10 |
Supply voltage (3600 mV) |
| 11 | Temperature | 0x17 |
Temperature (23°C) |
| 12-15 | Timestamp | 0x5FE4A0DC |
Unix timestamp (Thu, 24 Dec 2020 14:08:28 GMT) |
If device is not calibrated, it doesn't count rotations, only sends status messages at configured interval. After calibration, device counts rotations and sends message if more than 5 seconds elapsed since last rotation.
Example: cc010005ff0000030102030dd217
Packet structure:
| Byte | Field | Value | Description |
|---|---|---|---|
| 0 | Message type | 0xCC |
0xCC - status, 0xAC - change alert |
| 1 | Calibration status | 0x01 |
Device calibration status |
| 2 | Current rotations | 0x00 |
Number of rotations relative to 0 |
| 3 | Maximum | 0x05 |
Calibrated number of rotations for max opening |
| 4 | Direction | 0xFF |
0xFF - closing, 0x01 - opening |
| 5 | Error code | 0x00 |
Calibration error code (see below) |
| 6 | Process | 0x00 |
0 - normal operation, 1 - calibration |
| 7 | Last sensor | 0x03 |
Last triggered sensor (1, 2, 3) |
| 8 | Counter 1 | 0x01 |
Sensor 1 trigger count |
| 9 | Counter 2 | 0x02 |
Sensor 2 trigger count |
| 10 | Counter 3 | 0x03 |
Sensor 3 trigger count |
| 11-12 | Voltage | 0x0DD2 |
Supply voltage (3.538 V) |
| 13 | Temperature | 0x17 |
Temperature (23°C) |
Calibration error codes:
0x00 - no error0x01 - calibration not performed0x02 - number of rotations not equal in different directions0x03 - no rotations detected during calibration0xF0 - unknown errorFirst start (calibration not performed):
cc000000000000000000000dcf16
Calibration start:
ac000000000001000000000dca16
Erroneous calibration (rotation count mismatch):
ac000000ff0200030b0c0c0dcf16
Successful calibration:
ac010006ff0000030c0c0c0dcf17
Valve opened 2 rotations out of 6:
ac010206010000010f0e0e0dd217
Status message:
cc010206010000010f0e0e0dcf16
Valve closed 1 rotation (was opened 2) out of 6:
ac010106ff000003100f0f0dcf16
Example: dd00020003000000000000000400000000000000050006000700000000000000080000000000000009 0aaa0b
Packet structure:
| Byte | Field | Value | Description |
|---|---|---|---|
| 0 | Packet type | 0xDD |
Data packet |
| 1-2 | Sensor 1: tilts | 0x0002 |
Number of tilts since transmission (2) |
| 3-4 | Sensor 1: changes | 0x0003 |
Number of state changes (3) |
| 5-12 | Sensor 1: total tilts | 0x0000000000000004 |
Total tilts (4) |
| 13-20 | Sensor 1: total changes | 0x0000000000000005 |
Total state changes (5) |
| 21-22 | Sensor 2: tilts | 0x0006 |
Number of tilts since transmission (6) |
| 23-24 | Sensor 2: changes | 0x0007 |
Number of state changes (7) |
| 25-32 | Sensor 2: total tilts | 0x0000000000000008 |
Total tilts (8) |
| 33-40 | Sensor 2: total changes | 0x0000000000000009 |
Total state changes (9) |
| 41-42 | Voltage | 0x0AAA |
Supply voltage (2730 mV) |
| 43 | Temperature | 0x0B |
Temperature (11°C) |
Total size: 6 bytes
Example: cc010c0e0c16
Packet structure:
| Byte | Field | Value | Description |
|---|---|---|---|
| 0 | Packet type | 0xCC |
Status |
| 1-2 | External temperature | 0x010C |
External sensor temperature (16.75°C) |
| 3-4 | Voltage | 0x0E0C |
Battery voltage (3596 mV = 3.596 V) |
| 5 | Internal temperature | 0x16 |
Internal sensor temperature (22°C) |
# Example of external sensor temperature conversion
data = 0x010c # external thermosensor temperature data
# get sign (MSB from 12 bits)
sign = -1 if ((data >> 11) & 0x01) else 1
# integer part - bits 4-10 inclusive
value = float((data & 0x7FF) >> 4)
# lower 4 bits - fractional part, resolution 0.0625
value += (data & 0x0F) / 16.0
# apply sign
value *= sign
print('%.4f' % value) # print with 4 decimal places precision
Example: dd0e00000015001000140000000000000000000000000000000000000000000000000ccc14
Packet structure:
| Byte | Field | Value | Description |
|---|---|---|---|
| 0 | Packet type | 0xDD |
0xDD - data, 0xAA - alert, 0x21 - response |
| 1 | Triggers | 0x0E |
Lower 4 bits - input states (b00001110) |
| 2-3 | Input 1 (tilt) | 0x0000 |
Trigger count between packets (0) |
| 4-5 | Input 2 (impact 1) | 0x0015 |
Trigger count between packets (21) |
| 6-7 | Input 3 (impact 2) | 0x0010 |
Trigger count between packets (16) |
| 8-9 | Input 4 (sound) | 0x0014 |
Trigger count between packets (20) |
| 10-13 | Channel 5: period | 0x00000000 |
Pulses between packets (0) |
| 14-21 | Channel 5: total | 0x0000000000000000 |
Total pulse count (0) |
| 22-25 | Channel 6: period | 0x00000000 |
Pulses between packets (0) |
| 26-33 | Channel 6: total | 0x0000000000000000 |
Total pulse count (0) |
| 34-35 | Voltage | 0x0CCC |
Battery voltage (3.276 V) |
| 36 | Temperature | 0x14 |
Temperature (20°C) |
Security inputs (lower 4 bits of byte 1):
Note: Trigger flags reset after sending two alerts.