1. 在Z-WAVE PC Controller软件选择已配对的智能开关。
从上图中可以看到,我们的智能开关的node id是11,即0x0B。
2. 按下智能开关,用串口工具可以看到以下信息。
01 0D 00 04 00 0B 07 60 0D 01 01 00 03 FF 6B
01 0D 00 04 00 0B 07 60 0D 01 01 00 03 FF 6B
01 0D 00 04 00 0B 07 60 0D 01 01 00 03 FF 6B
01 0D 00 04 00 0B 07 60 0D 01 01 00 03 FF 6B
01 0D 00 04 00 0B 07 60 0D 01 01 00 03 00 94
01 0D 00 04 00 0B 07 60 0D 01 01 00 03 00 94
01 0D 00 04 00 0B 07 60 0D 01 01 00 03 00 94
01 0D 00 04 00 0B 07 60 0D 01 01 00 03 00 94
3.在<<INS12350-4 - Serial API Host Appl. Prg.Guide.pdf>>这个手册里找到下图,这是z-wave串口协议的一个整体结构图。
各个字段的说明都可以在这个文档里找到,包括Checksum的计算方式 。
从这张图,我们可以知道Serial API Command ID是0x04
4.从<<INS12308-6 - Z-Wave 500 Series Appl. Prg.Guide v6.51.03.pdf>>这个手册上找到0x04这条协议,可以看到此条串口协议的整体格式。
从0x04这个命令号后面都是此窗口指令的参数。
使用Z-Wave PC Controller可以看到0x04后面数据的含义,除了cmdLength需要自己计算一下。
5.使用嗅探器可以看到pCmd里面数据具体含义,不同版本的信息有差别,我们就看最新的version3就可以了。用version1正好可以看到原始数据,发现上Z-Wave PC Controller里的pCmd是一致的。
6.通过上面的分析,我们就可以分析如下表
01 | SOF |
0D | Length ,除SOF和checksum外的长度 |
00 | REQ |
04 | 串口命令ID |
00 | rxStatus |
0B | sourceNode |
07 | cmdLength |
60 0D 01 00 03 FF或00 |
|
6B或94 | Checksum |
7.另外,冠榕智能开关上面有两个开关,另外一个开关的协议类似。
只有一个字节不同,用红色标出来了。应该是标识同一结点的不同开关的。
01 | SOF |
0D | Length ,除SOF和checksum外的长度 |
00 | REQ |
04 | 串口命令ID |
00 | rxStatus |
0B | sourceNode |
07 | cmdLength |
60 0D 02 00 03 FF或00 |
|
68或97 | Checksum |