0% found this document useful (0 votes)
70 views

Programming Manual en

This document provides manuals for different protocols to program an IOT relay including: 1) Dingtian string protocol for TCP, UDP, and CAN/RS485 with commands to query status and control relays with options for ON/OFF, delays, and jogging. 2) Dingtian binary protocol over UDP with multicast support and default settings along with command formats for reading/writing relays with options for status, control, delays, and jogging. 3) HTTP GET CGI protocol to load relay status, set relays, load input status, and enable session checking with examples. 4) Modbus RTU/TCP/ASCII protocols with register mappings and examples of reading/writing

Uploaded by

Gustavo Placido
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
70 views

Programming Manual en

This document provides manuals for different protocols to program an IOT relay including: 1) Dingtian string protocol for TCP, UDP, and CAN/RS485 with commands to query status and control relays with options for ON/OFF, delays, and jogging. 2) Dingtian binary protocol over UDP with multicast support and default settings along with command formats for reading/writing relays with options for status, control, delays, and jogging. 3) HTTP GET CGI protocol to load relay status, set relays, load input status, and enable session checking with examples. 4) Modbus RTU/TCP/ASCII protocols with register mappings and examples of reading/writing

Uploaded by

Gustavo Placido
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 57

IOT Relay Programing Manual

V1.9.8
1 Protocol:Dingtian string.............................................................................................................. 3
1.1 Query status command/KeepAlive................................................................................... 3
1.2 Control command............................................................................................................ 4
1.2.1 ON/OFF example................................................................................................... 4
1.2.2 Delay example....................................................................................................... 4
1.2.3 Jogging example.................................................................................................... 4
2 Protocol:Dingtian binary............................................................................................................. 6
2.1 default setting.................................................................................................................. 6
2.2 command......................................................................................................................... 6
2.2.1 read relay status.................................................................................................... 7
2.2.2 write relay............................................................................................................. 8
2.2.3 write relay with delay............................................................................................ 9
2.2.4 write relay with jogging....................................................................................... 10
2.2.5 relay keep alive.................................................................................................... 11
3 Protocol:HTTP GET CGI.............................................................................................................. 12
3.1 load relay status............................................................................................................. 12
3.2 set relay.......................................................................................................................... 15
3.3 load input status............................................................................................................. 18
3.4 Session check................................................................................................................. 20
3.4.1 web config to Enable HTTP Session check............................................................20
3.4.2 HTTP CGI test tool................................................................................................ 21
3.4.3 full example(success):.......................................................................................... 22
3.4.4 full example(fail).................................................................................................. 23
4 Protocol:Modbus-RTU/TCP/ASCII.............................................................................................. 24
4.1 Registers......................................................................................................................... 25
4.2 Modbus-RTU + Modbus-RTU Over TCP/UDP..................................................................27
4.2.1 0x03:Read holding register..................................................................................27
4.2.2 0x06:Write Single Register................................................................................... 28
4.2.3 0x10: Write Multiple Register..............................................................................29
4.3 Modbus-TCP/UDP........................................................................................................... 33
4.3.1 0x03:Read holding register..................................................................................33
4.3.2 0x06:Write Single Register................................................................................... 34
4.3.3 0x10: Write Multiple Register..............................................................................35
4.4 Modbus-ASCII + Modbus-ASCII Over TCP/UDP...............................................................39
4.4.1 0x03:Read holding register..................................................................................39
4.4.2 0x06:Write Single Register................................................................................... 40
4.4.3 0x10: Write Multiple Register..............................................................................41
5 Protocol:MQTT.......................................................................................................................... 45
5.1 MQTT Topic Fast View.................................................................................................... 47
5.2 MQTT Topic(firmware version < V2.15.869)...................................................................48
5.3 MQTT Topic(firmware version >= V2.15.869).................................................................49
5.4 MQTT Topic(firmware version >= V2.17.xx)....................................................................50
5.5 MQTT LWT topic............................................................................................................. 53
6 Protocol:CoAP........................................................................................................................... 54
6.1 Compile libcoap.............................................................................................................. 54
6.2 Get relay status.............................................................................................................. 54
6.3 Control relay(simple)...................................................................................................... 55
6.4 Control relay.......................................................................................................................56
1 Protocol:Dingtian string
Suport TCP client, TCP server, UDP, CAN/RS485

1.1 Query status command/KeepAlive


command code 00(2 character) Return character (0:OFF, 1:ON)

Format
[relay1][relay2]...[relay32]:[input1][input2]...[input32]:[channel count]
example(2 channel):
00:11:2

example(4 channel):
0000:1111:4

example(8 channel):
00000000:11111111:8

example(16 channel):
0000000000000000:1111111111111111:16

example(24 channel):
000000000000000000000000:111111111111111111111111:24

example(32 channel):
00000000000000000000000000000000:11111111111111111111111111111111:32
Remarks
1 The command code is a text string and does not need to be followed by a return.
1.2 Control command
X R C P
1(ON) 1~32 relay null(ON/OFF) C parameter
2(OFF) X for all relay :(Delay)
*(Jogging)

1.2.1 ON/OFF example


11 #relay 1 ON
21 #relay 1 OFF

13 #relay 3 ON
23 #relay 3 OFF

132 #relay 32 ON
232 #relay 32 OFF

1X #relay all ON
2X #relay all OFF

1.2.2 Delay example


Delay ON/OFF some time and then OFF/ON
Delay second range 1-65535

11:30 #relay 1 ON,delay 30second OFF


21:30 #relay 1 OFF,delay 30second ON

13:30 #relay 3 ON,delay 30second OFF


23:30 #relay 3 OFF,delay 30second ON

132:30 #relay 32 ON,delay 30second OFF


232:30 #relay 32 OFF,delay 30second ON

1X:30 #relay all ON,delay 30second OFF


2X:30 #relay all OFF,delay 30second ON

1.2.3 Jogging example


Jogging ON/OFF little time(ms) and then OFF/ON
Jogging time is 500ms(can change from web page),
11* #relay 1 ON,Jogging 500ms OFF
13* #relay 3 ON,Jogging 500ms OFF
132* #relay 32 ON,Jogging 500ms OFF
1X* #all relay ON,Jogging 500ms OFF
2 Protocol:Dingtian binary
Support Different network segment communication(Mulitcast only support UDP)
Mulitcast addr: 224.0.2.11

Support password

2.1 default setting


IP 192.168.1.100
Netmask 255.255.255.0
Gateway 192.168.1.1
UDP Port 60000
Multicast addr 224.0.2.11

2.2 command
data bytes >=2byte store format is LSB
example:0x1234,store format is 0x34,0x12

format
filed bytes comment
command 1 0xFF: set relay
0x07: multicast set relay
result(xor 0xAA) 1 pc->device: 0 xor 0xAA
device->pc: result xor 0xAA
result=0 success
result=other fail
session 1 0~255
device reply the same
relay command 1 0: read relay status
1:write relay
2:write relay with delay
3:write relay with jogging
4:relay keep alive
password 2 0~9999
0:no password
Password incurrent device no
reply
command data x
2.2.1 read relay status
pc send
filed bytes comment
command 1 0xFF
result(xor 0xAA) 1 0 xor 0xAA=0xAA
session 1 0~255
device not change
relay command 1 0: read relay status
password 2 0~9999
0:no password

device reply
filed bytes comment
command 1 0xFF
result(xor 0xAA) 1 0 xor 0xAA=0xAA
session 1 0~255
device not change
relay command 1 0: read relay status
Relay status 1(2/4/8CH) Bit0~31 map to relay relay1~32
2(16CH) Bit=1 relay on
3(24CH) Bit=0 relay off
4(32CH)
Example:
pc send:
FF AA 00 00 34 12 # password 0x1234
device reply:
FF AA 00 00 01 # relay 1 on
2.2.2 write relay
pc send
filed bytes comment
command 1 0xFF
result(xor 0xAA) 1 0 xor 0xAA=0xAA
session 1 0~255
device not change
relay command 1 1:write relay
password 2 0~9999
0:no password
relay mask 1(2/4/8CH) Bit0~31 map to relay relay1~32
2(16CH) Bit=1,relay need update
3(24CH)
4(32CH)
relay set 1(2/4/8CH) Bit0~31 map to relay relay1~32
2(16CH) Bit=1,relay on
3(24CH) Bit=0,relay off
4(32CH)

device reply
filed bytes comment
command 1 0xFF
result(xor 0xAA) 1 0 xor 0xAA=0xAA
session 1 0~255
device not change
relay command 1 1:write relay
Example:
pc send:
FF AA 00 01 34 12 05 01 # relay 1 on, rely 3 off
device reply:
FF AA 00 01
2.2.3 write relay with delay
pc send
filed bytes comment
command 1 0xFF
result(xor 0xAA) 1 0 xor 0xAA=0xAA
session 1 0~255
device not change
relay command 1 2:write relay with delay
password 2 0~9999
0:no password
relay index 1 Bit0=1 relay on
and relay on/off Bit0=0 relay off
Bit1~bit7=relay index
Relay delay 2 1~65535 second
second

device reply
filed bytes comment
command 1 0xFF
result(xor 0xAA) 1 0 xor 0xAA=0xAA
session 1 0~255
device not change
relay command 1 2:write relay with delay
Example:
pc send:
FF AA 00 02 34 12 03 05 # relay 1 on, delay 5 second off
device reply:
FF AA 00 02
2.2.4 write relay with jogging
pc send
filed bytes comment
command 1 0xFF
result(xor 0xAA) 1 0 xor 0xAA=0xAA
session 1 0~255
device not change
relay command 1 3:write relay with jogging
password 2 0~9999
0:no password
relay index 1 Bit0=1 relay on
and relay on/off Bit0=0 relay off
Bit1~bit7=relay index

device reply
filed bytes comment
command 1 0xFF
result(xor 0xAA) 1 0 xor 0xAA=0xAA
session 1 0~255
device not change
relay command 1 3:write relay with jogging
Example:
pc send:
FF AA 00 03 34 12 05 05 # relay 2 on, jogging
device reply:
FF AA 00 03
2.2.5 relay keep alive
device send
filed bytes comment
command 1 0xFF
result(xor 0xAA) 1 0 xor 0xAA=0xAA
session 1 0~255
pc not change
relay command 1 4: relay keep alive
device MAC 6 device MAC address
Relay status 1 Bit0~7 map to relay relay1~8
Bit=1 relay on
Bit=0 relay off

pc reply
filed bytes comment
command 1 0xFF
result(xor 0xAA) 1 0 xor 0xAA=0xAA
session 1 0~255
pc not change
relay command 1 4: relay keep alive
Example:
device send:
FF AA 00 04 BC 34 88 12 34 56 00 # MAC BC:34:88:12:34:56 00:all relay off
pc reply:
FF AA 00 00
3 Protocol:HTTP GET CGI
Relay board as HTTP server, accept HTTP GET CGI request.
Support CGI relay on/off
Support CGI relay jogging
Support CGI relay delay
Support CGI password verification

Support CGI Session check(details: 3.4 Session check)

3.1 load relay status


HTTP GET request
parameter filed data comment
1 CGI API relay_cgi_load.cgi cgi changeable suffix
relay_cgi_load.cgi,
relay_cgi_load.php,
relay_cgi_load.cs
is work ok

HTTP GET respond


parameter filed data comment
1 result 0 0: ok
other fail
2 relay count 2/4/8/16/24/32
3 relay 1 status 0/1 0:off
1:on
4 relay 2 status 0/1 0:off
1:on
5 relay 3 status 0/1 0:off
1:on
6 relay 4 status 0/1 0:off
1:on
7 relay 5 status 0/1 0:off
1:on
8 relay 6 status 0/1 0:off
1:on
9 relay 7 status 0/1 0:off
1:on
10 relay 8 status 0/1 0:off
1:on
11 relay 9 status 0/1 0:off
1:on
12 relay 10 status 0/1 0:off
1:on
13 relay 11 status 0/1 0:off
1:on
14 relay 12 status 0/1 0:off
1:on
15 relay 13 status 0/1 0:off
1:on
16 relay 14 status 0/1 0:off
1:on
17 relay 15 status 0/1 0:off
1:on
18 relay 16 status 0/1 0:off
1:on
19 relay 17 status 0/1 0:off
1:on
20 relay 18 status 0/1 0:off
1:on
21 relay 19 status 0/1 0:off
1:on
22 relay 20 status 0/1 0:off
1:on
23 relay 21 status 0/1 0:off
1:on
24 relay 22 status 0/1 0:off
1:on
25 relay 23 status 0/1 0:off
1:on
26 relay 24 status 0/1 0:off
1:on
27 relay 25 status 0/1 0:off
1:on
28 relay 26 status 0/1 0:off
1:on
29 relay 27 status 0/1 0:off
1:on
30 relay 28 status 0/1 0:off
1:on
31 relay 29 status 0/1 0:off
1:on
32 relay 30 status 0/1 0:off
1:on
33 relay 31 status 0/1 0:off
1:on
34 relay 32 status 0/1 0:off
1:on
example(4 channel relay):
HTTP GET request
http://192.168.1.100/relay_cgi_load.cgi # request relay board HTTP CGI API
HTTP GET respond
&0&4&1&0&1&0& # ok,4 relay,relay 1 on,relay 2 off,relay 3 on, relay 4 off
3.2 set relay
HTTP GET request
parameter filed data comment
1 CGI API relay_cgi.cgi cgi suffix variable
relay_cgi.cgi,
relay_cgi.php,
relay_cgi.cs
is work ok
2 type 0/1/2 0:relay on/off
1:relay jogging
2:relay delay
3 relay 0~31
4 on 0/1 0:off
1:on
5 time 0 0:type
1~255 0:time
1~65535
1:type
1~255:time(1=100ms)

2:type
1~65535:time(second)
6 pwd 0~9999 0~9999
Password incurrent device no
respond

HTTP GET respond


parameter filed data comment
1 result 0 0: ok
other fail
2 type 0/1/2 0:relay on/off
1:relay jogging
2:relay delay
3 relay 0~31 0:relay 1
1:relay 2
...
31:relay 32
4 on 0/1 0:off
1:on
5 time 0 0:type
1~255 0:time
1~65535
1:type
1~255:time(1=100ms)

2:type
1~65535:time(second)

example 1(relay on):


HTTP GET request(request relay board HTTP CGI API, set relay 0 on ,time 0,password 0)
http://192.168.1.100/relay_cgi.cgi?type=0&relay=0&on=1&time=0&pwd=0&
HTTP GET respond
&0&0&0&1&0& # ok, type 0 on/off,relay 0 on,time 0

example 2(relay off):


HTTP GET request(request relay board HTTP CGI API, set relay 0 off ,time 0,password 0)
http://192.168.1.100/relay_cgi.cgi?type=0&relay=0&on=0&time=0&pwd=0&
HTTP GET respond
&0&0&0&0&0& # ok, type 0 on/off,relay 0 off,time 0

example 3(relay 1 jogging on):


HTTP GET request(request relay board HTTP CGI API, set relay 1 jogging on ,time 500ms,password
4660)
http://192.168.1.100/relay_cgi.cgi?type=1&relay=1&on=1&time=5&pwd=4660&
HTTP GET respond
&0&1&1&1&5& # ok, type 1 jogging,relay 1 on,time 5(500ms)

example 4(relay 1 jogging off):


HTTP GET request(request relay board HTTP CGI API, set relay 1 jogging off,time 500ms,password
4660)
http://192.168.1.100/relay_cgi.cgi?type=1&relay=1&on=0&time=5&pwd=4660&
HTTP GET respond
&0&1&1&0&5& # ok, type 1 jogging,relay 1 off,time 5(500ms)

example 5(relay 1 on delay 10 second off):


HTTP GET request(request relay board HTTP CGI API, set relay 1 on delay 10 second off ,time 5
second,password 4660)
http://192.168.1.100/relay_cgi.cgi?type=2&relay=1&on=1&time=10&pwd=4660&
HTTP GET respond
&0&2&1&1&10& # ok, type 2 delay,relay 1 on,time 10 second

example 6(relay 1 off delay 10 second on):


HTTP GET request(request relay board HTTP CGI API, set relay 1 off delay 10 second on ,time 5
second,password 4660)
http://192.168.1.100/relay_cgi.cgi?type=2&relay=1&on=0&time=10&pwd=4660&
HTTP GET respond
&0&2&1&0&10& # ok, type 2 delay,relay 1 off,time 10 second
3.3 load input status
HTTP GET request
parameter filed data comment
1 CGI API input.cgi cgi changeable suffix
input.cgi,
input.php,
input.cs
is work ok

HTTP GET respond


parameter filed data comment
1 result 0 0: ok
other fail
2 Input 0 default: 0
start postion
3 input count 2/4/8/16/24/32
4 relay 1 status 0/1 0:low
1:high
5 relay 2 status 0/1 0:low
1:high
6 relay 3 status 0/1 0:low
1:high
7 relay 4 status 0/1 0:low
1:high
8 relay 5 status 0/1 0:low
1:high
9 relay 6 status 0/1 0:low
1:high
10 relay 7 status 0/1 0:low
1:high
11 relay 8 status 0/1 0:low
1:high
12 relay 9 status 0/1 0:low
1:high
13 relay 10 status 0/1 0:low
1:high
14 relay 11 status 0/1 0:low
1:high
15 relay 12 status 0/1 0:low
1:high
16 relay 13 status 0/1 0:low
1:high
17 relay 14 status 0/1 0:low
1:high
18 relay 15 status 0/1 0:low
1:high
19 relay 16 status 0/1 0:low
1:high
20 relay 17 status 0/1 0:low
1:high
21 relay 18 status 0/1 0:low
1:high
22 relay 19 status 0/1 0:low
1:high
23 relay 20 status 0/1 0:low
1:high
24 relay 21 status 0/1 0:low
1:high
25 relay 22 status 0/1 0:low
1:high
26 relay 23 status 0/1 0:low
1:high
27 relay 24 status 0/1 0:low
1:high
28 relay 25 status 0/1 0:low
1:high
29 relay 26 status 0/1 0:low
1:high
30 relay 27 status 0/1 0:low
1:high
31 relay 28 status 0/1 0:low
1:high
32 relay 29 status 0/1 0:low
1:high
33 relay 30 status 0/1 0:low
1:high
34 relay 31 status 0/1 0:low
1:high
35 relay 32 status 0/1 0:low
1:high
example(4 channel relay):
HTTP GET request
http://192.168.1.100/input.cgi # request relay board HTTP CGI API
HTTP GET respond
&0&0&4&1&0&1&0& # ok,reserve,4 input,input 1 high,relay 2 low,relay 3 high, relay 4 low
3.4 Session check
The HTTP CGI session check is implemented by adding a “Cookie” header

“Cookie” header example:


Cookie: session=12345678

3.4.1 web config to Enable HTTP Session check


3.4.2 HTTP CGI test tool
3.4.3 full example(success):
HTTP GET request:
GET /relay_cgi.cgi?type=0&relay=0&on=1&time=0&pwd=0& HTTP/1.1

Host: 192.168.1.9
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: keep-alive
Cookie: session=12345678

HTTP GET response:


HTTP/1.1 200 OK

Content-Type: text/html
Content-Length: 11

&0&0&0&1&0&
3.4.4 full example(fail)
HTTP GET request:
GET /relay_cgi.cgi?type=0&relay=0&on=0&time=0&pwd=0& HTTP/1.1

Host: 192.168.1.9
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: keep-alive
Cookie: session=1234567

HTTP GET response:


HTTP/1.1 200 OK

Content-Type: text/html
Content-Length: 7

&302&/&
4 Protocol:Modbus-RTU/TCP/ASCII
Support Modbus:
Modbus-RTU
Modbus-TCP/UDP
Modbus-ASCII
Modbus-RTU Over TCP/UDP
Modbus-ASCII Over TCP/UDP

Support Modbus Function:


0x03read holding register
0x06Write Single register
0x10Wirte Multile register(CAN bus not support)

Notice:
Modbus-RTU Over UDP/TCP,Modbus-ASCII Over UDP/TCP use RS485 addr
4.1 Registers
Register Name 0x03/0x06/0x10 Value
0x0000 Relay Count 0x03 2/4/8/16/32
0x0001 Relay Status 0x03 bit0~7 map to relay1~8
0x0002 Write Relay 0x06 bit0~7 new status of relay1~8(bit=1 ON,bit=0 OFF)
bit8~15 map to relay1~8 need update(bit=1 Update)

0x0003 Advance Write Type 0x10 Bit0~5:


1:Write ON/OFF
2:Write with delay
3:Write with Jogging
bit6~15:(only for Type:Write ON/OFF(1))
relay group:0~3
r1~8:G0 r9~16:G1 r17~24:G2 r25~32:G3
0x0004 Advance Write Password 0x10 Password 0~65535
when password in current do nothing
0x0005 Advance Write Relay 0x10 Type:Write ON/OFF(1)
bit0~7 new status of relay1~8(bit=1 ON,bit=0 OFF)
bit8~15 map to relay1~8 need update(bit=1 Update)
Type:Write with delay(2)
bit0: bit=1 ON,bit=0 OFF
bit1~7:relay index 0~31
Type:Write with Jogging(3)
bit0: bit=1 ON,bit=0 OFF
bit1~7:relay index 0~31
0x0006 Advance Write Time 0x10 Type:Write ON/OFF(1)
0
Type:Write with delay(2)
Number of Second need delay
Type:Write with Jogging(3)
Number of 100ms need jogging(1=100ms)

0x0007 Expand Write Status Group 0x10 relay1~16:G0 relay16~32:G1


0x0008 Expand Write Relay Mask 0x10 bit0~15 map to relay G0:R1~16 / G1:R17~32
need update(bit=1 Update)
0x0009 Expand Write Relay 0x10 bit0~15 map to relay G0:R1~16 / G1:R17~32

0x000A Expand Input Status 1~16 0x03 input1~16


0x000B Expand Input Status 17~32 0x03 input17~32
0x000C Expand Input Status 33~48 0x03 input33~48
0x000D Expand Input Status 49~64 0x03 input49~64

0x000E Expand Relay Status 1~16 0x03 relay1~16


0x000F Expand Relay Status 17~32 0x03 relay17~32
0x0010 Expand Relay Status 33~48 0x03 relay33~48
0x0011 Expand Relay Status 49~64 0x03 relay49~64

0x0012 Expand Write Relay Mask 1~16 0x10 relay1~16 mask bits; bit=1 need change,bit=0 no change
0x0013 Expand Write Relay mask 17~32 0x10 relay17~32 mask bits; bit=1 need change,bit=0 no change
0x0014 Expand Write Relay bits 1~16 0x10 relay1~16 relay bits; bit=1(ON),bit=0(OFF)
0x0015 Expand Write Relay bits 17~32 0x10 relay17~32 relay bits, bit=1(ON),bit=0(OFF)
Notice:
1、0x0003~6/0x0007~9/0x0012~15 is block,must written at the same time.
4.2 Modbus-RTU + Modbus-RTU Over TCP/UDP
4.2.1 0x03:Read holding register
Read all Relay Status
Send:
01 03 0000 0002 C40B
Recv:
01 03 04 0004 0000 BBF2

Read all Input Status(2/4/8 channel)


Send:
01 03 000A 0001 A408
Recv:
01 03 02 FFFF B9F4

Read all Input Status(support 16/24/32 channel)


Send:
01 03 000A 0002 E409
Recv:
01 03 04 FFFF 00FF BA57

Read all Relay Status(2/4/8 channel)


Send:
01 03 000E 0001 E5C9
Recv:
01 03 02 0000 B844

Read all Relay Status(support 16/24/32 channel)


Send:
01 03 000E 0002 A5C8
Recv:
01 03 04 0000 0080 FB93
4.2.2 0x06:Write Single Register
4 Relay All ON
Send:
01 06 0002 0f0f 6DFE
Recv:
01 06 0002 0f0f 6DFE

4 Relay All OFF


Send:
01 06 0002 0f00 2DFA
Recv:
01 06 0002 0f00 2DFA

Relay 1,4 ON; Relay 2,3 stay the same


Send:
01 06 0002 0909 EE5C
Recv:
01 06 0002 0909 EE5C
4.2.3 0x10: Write Multiple Register
1、ON/OFF
4 Relay All ON
Send:
01 10 0003 0004 08 0001 0000 0f0f 0000 91A9
Recv:
01 10 0003 0004 31 CA

4 Relay All OFF


Send:
01 10 0003 0004 08 0001 0000 0f00 0000 A1AA
Recv:
01 10 0003 0004 31 CA

Relay 2,3 ON; Relay 1,4 stay the same


Send:
01 10 0003 0004 08 0001 0000 0606 0000 4237
Recv:
01 10 0003 0004 31 CA
2、Delay
Relay 1 OFF Delay 5 Second ON
Send:
01 10 0003 0004 08 0002 0000 0000 0005 51BD
Recv:
01 10 0003 0004 31 CA

Relay 1 ON Delay 5 Second OFF


Send:
01 10 0003 0004 08 0002 0000 0001 0005 007D
Recv:
01 10 0003 0004 31 CA

Relay 2 ON Delay 5 Second OFF


Send:
01 10 0003 0004 08 0002 0000 0003 0005 A1BD
Recv:
01 10 0003 0004 31 CA

Relay 3 ON Delay 5 Second OFF


Send:
01 10 0003 0004 08 0002 0000 0005 0005 41BC
Recv:
01 10 0003 0004 31 CA
Relay 4 ON Delay 5 Second OFF
Send:
01 10 0003 0004 08 0002 0000 0007 0005 E07C
Recv:
01 10 0003 0004 31 CA
3、Jogging
Relay 4 ON Joging 500ms OFF,Password 0x1234
Send:
01 10 0003 0004 08 0003 1234 0007 0005 420A
Recv:
01 10 0003 0004 31 CA

Relay 1 OFF Joging 500ms ON


Send:
01 10 0003 0004 08 0003 0000 0000 0005 417D
Recv:
01 10 0003 0004 31 CA

Relay 1 ON Joging 500ms OFF


Send:
01 10 0003 0004 08 0003 0000 0001 0005 10BD
Recv:
01 10 0003 0004 31 CA

Relay 2 ON Joging 500ms OFF


Send:
01 10 0003 0004 08 0003 0000 0003 0005 B17D
Recv:
01 10 0003 0004 31 CA

Relay 3 ON Joging 500ms OFF


Send:
01 10 0003 0004 08 0003 0000 0005 0005 517C
Recv:
01 10 0003 0004 31 CA

Relay 4 ON Joging 500ms OFF


Send:
01 10 0003 0004 08 0003 0000 0007 0005 F0BC
Recv:
01 10 0003 0004 31 CA
4 16/24/32 channel write relay
8 channel all relay ON
Send:
01 10 0012 0004 08 00FF 0000 00FF 0000 B17D
Recv:
01 10 0012 0004 61CF

8 channel all relay OFF


Send:
01 10 0012 0004 08 00FF 0000 0000 0000 814D
Recv:
01 10 0012 0004 61CF

16 channel all relay ON


Send:
01 10 0012 0004 08 FFFF 0000 FFFF 0000 CE6D
Recv:
01 10 0012 0004 61CF

16 channel all relay OFF


Send:
01 10 0012 0004 08 FFFF 0000 0000 0000 CE49
Recv:
01 10 0012 0004 61CF

24 channel all relay ON


Send:
01 10 0012 0004 08 FFFF 00FF FFFF 00FF 9A39
Recv:
01 10 0012 0004 61CF

24 channel all relay OFF


Send:
01 10 0012 0004 08 FFFF 00FF 0000 0000 DA5D
Recv:
01 10 0012 0004 61CF

32 channel all relay ON


Send:
01 10 0012 0004 08 FFFF FFFF FFFF FFFF CFC6
Recv:
01 10 0012 0004 61CF

32 channel all relay OFF


Send:
01 10 0012 0004 08 FFFF FFFF 0000 0000 CE52
Recv:
01 10 0012 0004 61CF
4.3 Modbus-TCP/UDP
4.3.1 0x03:Read holding register
Read all Relay Status
Send:
0000 0000 0006 FF 03 0000 0002
Recv:
0000 0000 0007 FF 03 04 0004 000F

Read all Relay Status(Extend support 16/24/32 channel relay board)


Send:
0000 0000 0006 FF 03 0000 0002
Recv:
0000 0000 0007 FF 03 04 0004 000F

Read all Input Status(2/4/8 channel)


Send:
0000 0000 0006 FF 03 000A 0001
Recv:
0000 0000 0005 FF 03 02 FFFF

Read all Input Status(support 16/24/32 channel)


Send:
0000 0000 0006 FF 03 000A 0002
Recv:
0000 0000 0007 FF 03 04 FFFF 00FF

Read all Relay Status(2/4/8 channel)


Send:
0000 0000 0006 FF 03 000E 0001
Recv:
0000 0000 0005 FF 03 02 0000

Read all Relay Status(support 16/24/32 channel)


Send:
0000 0000 0006 FF 03 000E 0002
Recv:
0000 0000 0007 FF 03 04 0000 0000
4.3.2 0x06:Write Single Register
4 Relay All ON
Send:
0000 0000 0006 FF 06 0002 0f0f
Recv:
0000 0000 0006 FF 06 0002 0f0f

4 Relay All OFF


Send:
0000 0000 0006 FF 06 0002 0f00
Recv:
01 06 0002 0f00 2DFA

Relay 1,4 ON; Relay 2,3 stay the same


Send:
0000 0000 0006 FF 06 0002 0909
Recv:
0000 0000 0006 FF 06 0002 0909
4.3.3 0x10: Write Multiple Register
1 ON/OFF
4 Relay All ON
Send:
0001 0000 000F FF 10 0003 0004 08 0001 0000 0f0f 0000
Recv:
0001 0000 0006 FF 10 0003 0004

4 Relay All OFF


Send:
0001 0000 000F FF 10 0003 0004 08 0001 0000 0f00 0000
Recv:
0001 0000 0006 FF 10 0003 0004

Relay 2,3 ON; Relay 1,4 stay the same


Send:
0001 0000 000F FF 10 0003 0004 08 0001 0000 0606 0000
Recv:
0001 0000 0006 FF 10 0003 0004
2 Delay
Relay 1 OFF Delay 5 Second ON
Send:
0001 0000 000F FF 10 0003 0004 08 0002 0000 0000 0005
Recv:
0001 0000 0006 FF 10 0003 0004

Relay 1 ON Delay 5 Second OFF


Send:
0001 0000 000F FF 10 0003 0004 08 0002 0000 0001 0005
Recv:
0001 0000 0006 FF 10 0003 0004

Relay 2 ON Delay 5 Second OFF


Send:
0001 0000 000F FF 10 0003 0004 08 0002 0000 0003 0005
Recv:
0001 0000 0006 FF 10 0003 0004

Relay 3 ON Delay 5 Second OFF


Send:
0001 0000 000F FF 10 0003 0004 08 0002 0000 0005 0005
Recv:
0001 0000 0006 FF 10 0003 0004
Relay 4 ON Delay 5 Second OFF
Send:
0001 0000 000F FF 10 0003 0004 08 0002 0000 0007 0005
Recv:
0001 0000 0006 FF 10 0003 0004
3 Jogging
Relay 4 ON Joging 500ms OFF,Password 0x1234
Send:
0001 0000 000F FF 10 0003 0004 08 0003 1234 0007 0005
Recv:
0001 0000 0006 FF 10 0003 0004

Relay 1 OFF Joging 500ms ON


Send:
0001 0000 000F FF 10 0003 0004 08 0003 0000 0000 0005
Recv:
0001 0000 0006 FF 10 0003 0004

Relay 1 ON Joging 500ms OFF


Send:
0001 0000 000F FF 10 0003 0004 08 0003 0000 0001 0005
Recv:
0001 0000 0006 FF 10 0003 0004

Relay 2 ON Joging 500ms OFF


Send:
0001 0000 000F FF 10 0003 0004 08 0003 0000 0003 0005
Recv:
0001 0000 0006 FF 10 0003 0004

Relay 3 ON Joging 500ms OFF


Send:
0001 0000 000F FF 10 0003 0004 08 0003 0000 0005 0005
Recv:
0001 0000 0006 FF 10 0003 0004

Relay 4 ON Joging 500ms OFF


Send:
0001 0000 000F FF 10 0003 0004 08 0003 0000 0007 0005
Recv:
0001 0000 0006 FF 10 0003 0004
4 16/24/32 channel write relay
8 channel all relay ON
Send:
0001 0000 000F FF 10 0012 0004 08 00FF 0000 00FF 0000
Recv:
0001 0000 0006 FF 10 0012 0004

8 channel all relay OFF


Send:
0001 0000 000F FF 10 0012 0004 08 00FF 0000 0000 0000
Recv:
0001 0000 0006 FF 10 0012 0004

16 channel all relay ON


Send:
0001 0000 000F FF 10 0012 0004 08 FFFF 0000 FFFF 0000
Recv:
0001 0000 0006 FF 10 0012 0004

16 channel all relay OFF


Send:
0001 0000 000F FF 10 0012 0004 08 FFFF 0000 0000 0000
Recv:
0001 0000 0006 FF 10 0012 0004

24 channel all relay ON


Send:
0001 0000 000F FF 10 0012 0004 08 FFFF 00FF FFFF 00FF
Recv:
0001 0000 0006 FF 10 0012 0004

24 channel all relay OFF


Send:
0001 0000 000F FF 10 0012 0004 08 FFFF 00FF 0000 0000
Recv:
0001 0000 0006 FF 10 0012 0004

32 channel all relay ON


Send:
0001 0000 000F FF 10 0012 0004 08 FFFF FFFF FFFF FFFF
Recv:
0001 0000 0006 FF 10 0012 0004

32 channel all relay OFF


Send:
0001 0000 000F FF 10 0012 0004 08 FFFF FFFF 0000 0000
Recv:
0001 0000 0006 FF 10 0012 0004
4.4 Modbus-ASCII + Modbus-ASCII Over TCP/UDP
4.4.1 0x03:Read holding register
Read all Relay Status
Send:
ASCII : 01 03 0000 0002 BA \r\n
HEX 3A 3031 3033 30303030 30303032 4241 0D0A
Recv:
ASCII : 01 03 04 0004 0000 54 \r\n
HEX 3A 3031 3033 3034 30303034 30303030 3534 0D0A

Read all Input Status(2/4/8 channel)


Send:
ASCII : 01 03 000A 0001 AA \r\n
HEX 3A 3031 3033 30303041 30303031 4141 0D0A
Recv:
ASCII : 01 03 02 FFFF C2 \r\n
HEX 3A 3031 3033 3032 46464646 4332 0D0A

Read all Input Status(support 16/24/32 channel)


Send:
ASCII : 01 03 000A 0002 A9 \r\n
HEX 3A 3031 3033 30303041 30303032 4139 0D0A
Recv:
ASCII : 01 03 04 FFFF 00FF D4 \r\n
HEX 3A 3031 3033 3034 46464646 30304646 4434 0D0A

Read all Relay Status(2/4/8 channel)


Send:
ASCII : 01 03 000E 0001 A6 \r\n
HEX 3A 3031 3033 30303045 30303031 4136 0D0A
Recv:
ASCII : 01 03 02 0000 1A \r\n
HEX 3A 3031 3033 3032 30303030 3141 0D0A

Read all Relay Status(support 16/24/32 channel)


Send:
ASCII : 01 03 000E 0002 A5 \r\n
HEX 3A 3031 3033 30303045 30303032 4135 0D0A
Recv:
ASCII : 01 03 04 0000 0080 FB93 \r\n
HEX 3A 3031 3033 3034 30303030 30303830 3530 0D0A
4.4.2 0x06:Write Single Register
4 Relay All ON
Send:
ASCII : 01 06 0002 0F0F 8B \r\n
HEX 3A 3031 3036 30303032 30463046 3842 0D0A
Recv:
ASCII : 01 06 0002 0F0F 8B \r\n
HEX 3A 3031 3036 30303032 30463046 3842 0D0A

4 Relay All OFF


Send:
ASCII : 01 06 0002 0F00 A1 \r\n
HEX 3A 3031 3036 30303032 30463030 4131 0D0A
Recv:
ASCII : 01 06 0002 0F00 A1 \r\n
HEX 3A 3031 3036 30303032 30463030 4131 0D0A
4.4.3 0x10: Write Multiple Register
1 ON/OFF
4 Relay All ON
Send:
ASCII :01 10 0003 0004 08 0001 0000 0F0F 0000 22 \r\n
HEX 3A 3031 3130 30303033 30303034 3038 30303031 30303030 30463046 30303030
3232 0D0A
Recv:
ASCII :01 10 0003 0004 B7 \r\n
HEX 3A 3031 3130 30303033 30303034 4237 0D0A

4 Relay All OFF


Send:
ASCII :01 10 0003 0004 08 0001 0000 0F00 0000 38 \r\n
HEX 3A 3031 3130 30303033 30303034 3038 30303031 30303030 30463030 30303030
3338 0D0A
Recv:
ASCII :01 10 0003 0004 B7 \r\n
HEX 3A 3031 3130 30303033 30303034 4237 0D0A

Relay 2,3 ON; Relay 1,4 stay the same


Send:
ASCII :01 10 0003 0004 08 0001 0000 0606 0000 42 \r\n
HEX 3A 3031 3130 30303033 30303034 3038 30303031 30303030 30363036 30303030
3432 0D0A
Recv:
ASCII :01 10 0003 0004 B7 \r\n
HEX 3A 3031 3130 30303033 30303034 4237 0D0A
2 Delay
Relay 1 ON Delay 5 Second OFF
Send:
ASCII :01 10 0003 0004 08 0002 0000 0001 0005 47 \r\n
HEX 3A 3031 3130 30303033 30303034 3038 30303032 30303030 30303031 30303035
3437 0D0A
Recv:
ASCII :01 10 0003 0004 B7 \r\n
HEX 3A 3031 3130 30303033 30303034 4237 0D0A

Relay 4 ON Delay 5 Second OFF


Send:
ASCII :01 10 0003 0004 08 0002 0000 0007 0005 41 \r\n
HEX 3A 3031 3130 30303033 30303034 3038 30303032 30303030 30303037 30303035
3431 0D0A
Recv:
ASCII :01 10 0003 0004 B7 \r\n
HEX 3A 3031 3130 30303033 30303034 4237 0D0A
3 Jogging
Relay 4 ON Joging 500ms OFF,Password 0x1234
Send:
ASCII :01 10 0003 0004 08 0003 1234 0007 0005 36 \r\n
HEX 3A 3031 3130 30303033 30303034 3038 30303033 31323334 30303037 30303035
3336 0D0A
Recv:
ASCII :01 10 0003 0004 B7 \r\n
HEX 3A 3031 3130 30303033 30303034 4237 0D0A

Relay 1 ON Joging 500ms OFF


Send:
ASCII :01 10 0003 0004 08 0003 0000 0001 0005 46 \r\n
HEX 3A 3031 3130 30303033 30303034 3038 30303033 30303030 30303031 30303035
3436 0D0A
Recv:
ASCII :01 10 0003 0004 B7 \r\n
HEX 3A 3031 3130 30303033 30303034 4237 0D0A

Relay 4 ON Joging 500ms OFF


Send:
ASCII :01 10 0003 0004 08 0003 0000 0007 0005 40 \r\n
HEX 3A 3031 3130 30303033 30303034 3038 30303033 30303030 30303037 30303035
3430 0D0A
Recv:
ASCII :01 10 0003 0004 B7 \r\n
HEX 3A 3031 3130 30303033 30303034 4237 0D0A

4 16/24/32 channel write relay


8 channel all relay ON
Send:
ASCII :01 10 0012 0004 08 00FF 0000 00FF 0000 F7 \r\n
HEX 3A 3031 3130 30303132 30303034 3038 30304646 30303030 30304646 30303030
4637 0D0A
Recv:
ASCII :01 10 0012 0004 B7 \r\n
HEX 3A 3031 3130 30303132 30303034 4237 0D0A

8 channel all relay OFF


Send:
ASCII :01 10 0012 0004 08 00FF 0000 0000 0000 23 \r\n
HEX 3A 3031 3130 30303132 30303034 3038 30304646 30303030 30303030 30303030
3233 0D0A
Recv:
ASCII :01 10 0012 0004 B7 \r\n
HEX 3A 3031 3130 30303132 30303034 4237 0D0A

16 channel all relay ON


Send:
ASCII :01 10 0012 0004 08 FFFF 0000 FFFF 0000 9F \r\n
HEX 3A 3031 3130 30303132 30303034 3038 46464646 30303030 46464646 30303030
3946 0D0A
Recv:
ASCII :01 10 0012 0004 B7 \r\n
HEX 3A 3031 3130 30303132 30303034 4237 0D0A

16 channel all relay OFF


Send:
ASCII :01 10 0012 0004 08 FFFF 0000 0000 0000 F7 \r\n
HEX 3A 3031 3130 30303132 30303034 3038 46464646 30303030 30303030 30303030
4637 0D0A
Recv:
ASCII :01 10 0012 0004 B7 \r\n
HEX 3A 3031 3130 30303132 30303034 4237 0D0A

24 channel all relay ON


Send:
ASCII :01 10 0012 0004 08 FFFF 00FF FFFF 00FF \r\n
HEX 3A 3031 3130 30303132 30303034 3038 46464646 30304646 46464646 30304646
3437 0D0A
Recv:
ASCII :01 10 0012 0004 B7 \r\n
HEX 3A 3031 3130 30303132 30303034 4237 0D0A

24 channel all relay OFF


Send:
ASCII :01 10 0012 0004 08 FFFF 00FF 0000 0000 CB \r\n
HEX 3A 3031 3130 30303132 30303034 3038 46464646 30304646 30303030 30303030
4342 0D0A
Recv:
ASCII :01 10 0012 0004 B7 \r\n
HEX 3A 3031 3130 30303132 30303034 4237 0D0A
32 channel all relay ON
Send:
ASCII :01 10 0012 0004 08 FFFF FFFF FFFF FFFF CFC6 \r\n
HEX 3A 3031 3130 30303132 30303034 3038 46464646 46464646 46464646 46464646
4546 0D0A
Recv:
ASCII :01 10 0012 0004 B7 \r\n
HEX 3A 3031 3130 30303132 30303034 4237 0D0A

32 channel all relay OFF


Send:
ASCII :01 10 0012 0004 08 FFFF FFFF 0000 0000 CE52 \r\n
HEX 3A 3031 3130 30303132 30303034 3038 46464646 46464646 30303030 30303030
3946 0D0A
Recv:
ASCII :01 10 0012 0004 B7 \r\n
HEX 3A 3031 3130 30303132 30303034 4237 0D0A
5 Protocol:MQTT
MQTT version 3.1.1
Relay board as MQTT client,communcation with broker..
Support relay on/off
Support relay jogging
Support relay delay
Support password verification
Support LWT(details: 5.5 MQTT LWT topic)
Relay board Ethernet MQTT Client Id
dingtian-relay+SN
Relay board WiFi MQTT Client Id
dingtian-wrelay+SN

example:
below relay board “Serial Number” is 1868
so ETH MQTT client id is:dingtian-relay1868
so WiFI MQTT client id is:dingtian-wrelay1868
5.1 MQTT Topic Fast View
firmware version <V2.15.869
/dingtian/relay/in/control
/dingtian/relay/out/relayX

firmware version >=V2.15.869


/dingtian/relaySN/in/control
/dingtian/relaySN/out/relayX

firmware version >= V2.17.xx


ETH
/dingtian/relaySN/in/control
/dingtian/relaySN/in/rX
/dingtian/relaySN/out/rX
/dingtian/relaySN/out/iX
/dingtian/relaySN/out/relayX
/dingtian/relaySN/out/inputX
/dingtian/relaySN/out/ip
/dingtian/relaySN/out/sn
/dingtian/relaySN/out/mac
/dingtian/relaySN/out/input_cnt
/dingtian/relaySN/out/relay_cnt
WiFi
/dingtian/wrelaySN/in/control
/dingtian/wrelaySN/in/rX
/dingtian/wrelaySN/out/rX
/dingtian/wrelaySN/out/iX
/dingtian/wrelaySN/out/relayX
/dingtian/wrelaySN/out/inputX
/dingtian/wrelaySN/out/ip
/dingtian/wrelaySN/out/sn
/dingtian/wrelaySN/out/mac
/dingtian/wrelaySN/out/input_cnt
/dingtian/wrelaySN/out/relay_cnt
5.2 MQTT Topic(firmware version < V2.15.869)
topic type value
/dingtian/relay/in/control subscribe parameter filed data
type command type ON/OFF
DELAY
JOGGING
idx relay index 1~32
status relay status ON,OFF
time time for type ON/OFF:0
DELAY:1~65535second
JOGGING:1~255*100m
s
pass password 0~9999
example:
{"type":"ON/OFF",'idx':'1',"status":"ON","time":"0","pass":"0"}
{"type":"DELAY",'idx':'2',"status":"ON","time":"5","pass":"0"}
{"type":"JOGGING",'idx':'3',"status":"ON","time":"5","pass":"0"}
{"type":"ON/OFF",'idx':'4',"status":"OFF","time":"0","pass":"0"}
/dingtian/relay/out/relayX publish parameter filed data
idx relay index 1~32
example: status relay status ON,OFF
/dingtian/relay/out/relay1 example:
/dingtian/relay/out/relay2 {“idx”:”1”,”status”:”OFF”}
5.3 MQTT Topic(firmware version >= V2.15.869)
topic type value
/dingtian/relaySN/in/control subscribe parameter filed data
type command type ON/OFF
example: DELAY
/dingtian/relay1868/in/control JOGGING
idx relay index 1~32
status relay status ON,OFF
time time for type ON/OFF:0
DELAY:1~65535second
JOGGING:1~255*100m
s
pass password 0~9999
example:
{"type":"ON/OFF",'idx':'1',"status":"ON","time":"0","pass":"0"}
{"type":"DELAY",'idx':'2',"status":"ON","time":"5","pass":"0"}
{"type":"JOGGING",'idx':'3',"status":"ON","time":"5","pass":"0"
}
{"type":"ON/OFF",'idx':'4',"status":"OFF","time":"0","pass":"0"}
/dingtian/relaySN/out/relayX publish parameter filed data
example: idx relay index 1~32
/dingtian/relay1868/out/ status relay status ON,OFF
relay1 example:
{“idx”:”1”,”status”:”OFF”}
5.4 MQTT Topic(firmware version >= V2.17.xx)
ETH: firmware version >= V2.17.xx
WiFi: firmware version >= V1.0.xx
topic type value
ETH subscribe parameter filed data
/dingtian/relaySN/in/control type command type ON/OFF
WiFi DELAY
/dingtian/wrelaySN/in/control JOGGING
idx relay index 1~32
example:
status relay status ON,OFF
/dingtian/relay1868/in/control
time time for type ON/OFF:0
/dingtian/wrelay1868/in/control
DELAY:1~65535second
JOGGING:1~255*100m
s
pass password 0~9999
example:
{"type":"ON/OFF",'idx':'1',"status":"ON","time":"0","pass":"0"}
{"type":"DELAY",'idx':'2',"status":"ON","time":"5","pass":"0"}
{"type":"JOGGING",'idx':'3',"status":"ON","time":"5","pass":"0"
}
{"type":"ON/OFF",'idx':'4',"status":"OFF","time":"0","pass":"0"}
ETH subscribe X:1~32
/dingtian/relaySN/in/rX value: ON,OFF
WiFi
/dingtian/wrelaySN/in/rX

example:
/dingtian/relay1868/in/r1
/dingtian/relay1868/in/r2
/dingtian/wrelay1868/in/r1
/dingtian/wrelay1868/in/r2

ETH publish X:1~32


/dingtian/relaySN/out/rX value: ON,OFF
WiFi
/dingtian/wrelaySN/out/rX

example:
/dingtian/relay1868/out/r1
/dingtian/relay1868/out/r2
/dingtian/wrelay1868/out/r1
/dingtian/wrelay1868/out/r2
ETH publish X:1~32
/dingtian/relaySN/out/iX value: ON,OFF
WiFi
/dingtian/wrelaySN/out/iX

example:
/dingtian/relay1868/out/i1
/dingtian/relay1868/out/i2
/dingtian/wrelay1868/out/i1
/dingtian/wrelay1868/out/i2
ETH publish parameter filed data
/dingtian/relaySN/out/relayX idx relay index 1~32
WiFi status relay status ON,OFF
/dingtian/wrelaySN/out/relayX example:
{“idx”:”1”,”status”:”OFF”}
example:
/dingtian/relay1868/out/relay1
/dingtian/relay1868/out/relay2
/dingtian/wrelay1868/out/relay1
/dingtian/wrelay1868/out/relay2
ETH publish parameter filed data
/dingtian/relaySN/out/inputX idx relay index 1~32
WiFi status relay status HIGH,LOW
/dingtian/wrelaySN/out/inputX example:
{"idx":"1","status":"HIGH"}
example: {"idx":"1","status":"LOW"}
/dingtian/relay1868/out/input1
/dingtian/wrelay1868/out/input1
ETH publish example:
/dingtian/relaySN/out/ip 192.168.1.100
WiFi
/dingtian/wrelaySN/out/ip

example:
/dingtian/relay1868/out/ip
/dingtian/wrelay1868/out/ip
ETH publish example:
/dingtian/relaySN/out/sn 1868
WiFi
/dingtian/wrelaySN/out/sn

example:
/dingtian/relay1868/out/sn
/dingtian/relay1868/out/sn
ETH publish example:
/dingtian/relaySN/out/mac bc:34:88:00:00:00
WiFi
/dingtian/wrelaySN/out/mac

example:
/dingtian/relay1868/out/mac
/dingtian/relay1868/out/mac
ETH publish 2,4,8,16,32
/dingtian/relaySN/out/input_cnt
WiFi
/dingtian/wrelaySN/out/input_cnt

example:
/dingtian/relay1868/out/input_cnt
/dingtian/wrelay1868/out/
input_cnt
ETH publish 2,4,8,16,32
/dingtian/relaySN/out/relay_cnt
WiFi
/dingtian/relaySN/out/relay_cnt

example:
/dingtian/relay1868/out/relay_cnt
/dingtian/wrelay1868/out/relay_cnt
5.5 MQTT LWT topic
ETH: firmware version >= V2.17.188
WiFi: firmware version >= V1.0.449
topic type value
ETH publish online,offline
/dingtian/relaySN/out/lwt_availability
WiFi
/dingtian/wrelaySN/out/lwt_availability

example
/dingtian/relay1868/out/lwt_availability
/dingtian/wrelay1868/out/
lwt_availability
6 Protocol:CoAP
Relay board as CoAP server, accept CoAP Client request.
Support relay on/off
Support relay jogging
Support relay delay
Support password verification

you need linux system to compile libcoap

6.1 Compile libcoap


git clone --recurse-submodules https://github.com/obgm/libcoap
./autogen.sh
./configure --disable-manpages --enable-examples --enable-tests
make

6.2 Get relay status


Relay Status(1:ON, 0:OFF)
./coap-client -m get coap://192.168.1.100/dingtian/r1
./coap-client -m get coap://192.168.1.100/dingtian/r2
./coap-client -m get coap://192.168.1.100/dingtian/r3
./coap-client -m get coap://192.168.1.100/dingtian/r4
./coap-client -m get coap://192.168.1.100/dingtian/r5
./coap-client -m get coap://192.168.1.100/dingtian/r6
./coap-client -m get coap://192.168.1.100/dingtian/r7
./coap-client -m get coap://192.168.1.100/dingtian/r8

./coap-client -m get coap://192.168.1.100/dingtian/r32

Input Status(1:High, 0:Low)


./coap-client -m get coap://192.168.1.100/dingtian/i1
./coap-client -m get coap://192.168.1.100/dingtian/i2
./coap-client -m get coap://192.168.1.100/dingtian/i3
./coap-client -m get coap://192.168.1.100/dingtian/i4
./coap-client -m get coap://192.168.1.100/dingtian/i5
./coap-client -m get coap://192.168.1.100/dingtian/i6
./coap-client -m get coap://192.168.1.100/dingtian/i7
./coap-client -m get coap://192.168.1.100/dingtian/i8

./coap-client -m get coap://192.168.1.100/dingtian/i32
6.3 Control relay(simple)
./coap-client -e "1" -m put coap://192.168.1.100/dingtian/r1 # relay1 ON
./coap-client -e "0" -m put coap://192.168.1.100/dingtian/r1 # relay1 OFF
./coap-client -e "1" -m put coap://192.168.1.100/dingtian/r2 # relay2 ON
./coap-client -e "0" -m put coap://192.168.1.100/dingtian/r2 # relay2 OFF
./coap-client -e "1" -m put coap://192.168.1.100/dingtian/r3 # relay3 ON
./coap-client -e "0" -m put coap://192.168.1.100/dingtian/r3 # relay3 OFF
./coap-client -e "1" -m put coap://192.168.1.100/dingtian/r4 # relay4 ON
./coap-client -e "0" -m put coap://192.168.1.100/dingtian/r4 # relay4 OFF
./coap-client -e "1" -m put coap://192.168.1.100/dingtian/r5 # relay5 ON
./coap-client -e "0" -m put coap://192.168.1.100/dingtian/r5 # relay5 OFF
./coap-client -e "1" -m put coap://192.168.1.100/dingtian/r6 # relay6 ON
./coap-client -e "0" -m put coap://192.168.1.100/dingtian/r6 # relay6 OFF
./coap-client -e "1" -m put coap://192.168.1.100/dingtian/r7 # relay7 ON
./coap-client -e "0" -m put coap://192.168.1.100/dingtian/r7 # relay7 OFF
./coap-client -e "1" -m put coap://192.168.1.100/dingtian/r8 # relay8 ON
./coap-client -e "0" -m put coap://192.168.1.100/dingtian/r8 # relay8 OFF

./coap-client -e "1" -m put coap://192.168.1.100/dingtian/r32 # relay32 ON
./coap-client -e "0" -m put coap://192.168.1.100/dingtian/r32 # relay32 OFF
6.4 Control relay
format:
status:type:time:password
parameter filed data comment
status relay status 0,1
type ON/OFF
DELAY
JOGGING
time time for type ON/OFF:0
DELAY:1~65535second
JOGGING:1~255*100m
s
password password 0~9999
example:
1:ON/OFF:0:4660
status:1
type:ON/OFF
time:0
password:4660

ON/OFF example:
./coap-client -e "1:ON/OFF:0:4660" -m put coap://192.168.1.100/dingtian/r1
./coap-client -e "1:ON/OFF:0:4660" -m put coap://192.168.1.100/dingtian/r2
./coap-client -e "1:ON/OFF:0:4660" -m put coap://192.168.1.100/dingtian/r3
./coap-client -e "1:ON/OFF:0:4660" -m put coap://192.168.1.100/dingtian/r4
./coap-client -e "1:ON/OFF:0:4660" -m put coap://192.168.1.100/dingtian/r5
./coap-client -e "1:ON/OFF:0:4660" -m put coap://192.168.1.100/dingtian/r6
./coap-client -e "1:ON/OFF:0:4660" -m put coap://192.168.1.100/dingtian/r7
./coap-client -e "1:ON/OFF:0:4660" -m put coap://192.168.1.100/dingtian/r8
./coap-client -e "0:ON/OFF:0:4660" -m put coap://192.168.1.100/dingtian/r1
./coap-client -e "0:ON/OFF:0:4660" -m put coap://192.168.1.100/dingtian/r2
./coap-client -e "0:ON/OFF:0:4660" -m put coap://192.168.1.100/dingtian/r3
./coap-client -e "0:ON/OFF:0:4660" -m put coap://192.168.1.100/dingtian/r4
./coap-client -e "0:ON/OFF:0:4660" -m put coap://192.168.1.100/dingtian/r5
./coap-client -e "0:ON/OFF:0:4660" -m put coap://192.168.1.100/dingtian/r6
./coap-client -e "0:ON/OFF:0:4660" -m put coap://192.168.1.100/dingtian/r7
./coap-client -e "0:ON/OFF:0:4660" -m put coap://192.168.1.100/dingtian/r8

./coap-client -e "0:ON/OFF:0:4660" -m put coap://192.168.1.100/dingtian/r32

DELAY example:
./coap-client -e "1:DELAY:5:4660" -m put coap://192.168.1.100/dingtian/r1
./coap-client -e "1:DELAY:5:4660" -m put coap://192.168.1.100/dingtian/r2
./coap-client -e "1:DELAY:5:4660" -m put coap://192.168.1.100/dingtian/r3
./coap-client -e "1:DELAY:5:4660" -m put coap://192.168.1.100/dingtian/r4
./coap-client -e "1:DELAY:5:4660" -m put coap://192.168.1.100/dingtian/r5
./coap-client -e "1:DELAY:5:4660" -m put coap://192.168.1.100/dingtian/r6
./coap-client -e "1:DELAY:5:4660" -m put coap://192.168.1.100/dingtian/r7
./coap-client -e "1:DELAY:5:4660" -m put coap://192.168.1.100/dingtian/r8
./coap-client -e "0:DELAY:5:4660" -m put coap://192.168.1.100/dingtian/r1
./coap-client -e "0:DELAY:5:4660" -m put coap://192.168.1.100/dingtian/r2
./coap-client -e "0:DELAY:5:4660" -m put coap://192.168.1.100/dingtian/r3
./coap-client -e "0:DELAY:5:4660" -m put coap://192.168.1.100/dingtian/r4
./coap-client -e "0:DELAY:5:4660" -m put coap://192.168.1.100/dingtian/r5
./coap-client -e "0:DELAY:5:4660" -m put coap://192.168.1.100/dingtian/r6
./coap-client -e "0:DELAY:5:4660" -m put coap://192.168.1.100/dingtian/r7
./coap-client -e "0:DELAY:5:4660" -m put coap://192.168.1.100/dingtian/r8

./coap-client -e "0:DELAY:5:4660" -m put coap://192.168.1.100/dingtian/r32

JOGGING example:
./coap-client -e "1:JOGGING:5:4660" -m put coap://192.168.1.100/dingtian/r1
./coap-client -e "1:JOGGING:5:4660" -m put coap://192.168.1.100/dingtian/r2
./coap-client -e "1:JOGGING:5:4660" -m put coap://192.168.1.100/dingtian/r3
./coap-client -e "1:JOGGING:5:4660" -m put coap://192.168.1.100/dingtian/r4
./coap-client -e "1:JOGGING:5:4660" -m put coap://192.168.1.100/dingtian/r5
./coap-client -e "1:JOGGING:5:4660" -m put coap://192.168.1.100/dingtian/r6
./coap-client -e "1:JOGGING:5:4660" -m put coap://192.168.1.100/dingtian/r7
./coap-client -e "1:JOGGING:5:4660" -m put coap://192.168.1.100/dingtian/r8
./coap-client -e "0:JOGGING:5:4660" -m put coap://192.168.1.100/dingtian/r1
./coap-client -e "0:JOGGING:5:4660" -m put coap://192.168.1.100/dingtian/r2
./coap-client -e "0:JOGGING:5:4660" -m put coap://192.168.1.100/dingtian/r3
./coap-client -e "0:JOGGING:5:4660" -m put coap://192.168.1.100/dingtian/r4
./coap-client -e "0:JOGGING:5:4660" -m put coap://192.168.1.100/dingtian/r5
./coap-client -e "0:JOGGING:5:4660" -m put coap://192.168.1.100/dingtian/r6
./coap-client -e "0:JOGGING:5:4660" -m put coap://192.168.1.100/dingtian/r7
./coap-client -e "0:JOGGING:5:4660" -m put coap://192.168.1.100/dingtian/r8

./coap-client -e "0:JOGGING:5:4660" -m put coap://192.168.1.100/dingtian/r32

You might also like