使用CC2530抓包zigbee网络

最近一直在玩zigbee2mqtt,想给没有支持的设备添加支持,大部份功能按已有的设备改改就好,但是有的个性化的功能,就需要自己抓包获取,比如我这次要添加的京选智能插座的来电记忆功能。
zigbee2mqtt教程很详细提到了使用CC2531来抓包https://www.zigbee2mqtt.io/how_tos/how_to_sniff_zigbee_traffic.html
不过我手上没有,只有个CC2530的开发板,研究一番也实现了使用Packet Sniffer+Wireshark在windows环境下的抓包

  • 环境

1.工具smartRF04EB+CC2530

2.安装smartRF Flash ProgrammerPacket SnifferTiWsPc,Wireshark

3.使用smartRF Flash Programmer 烧写sniffer_fw_cc2530.hex(此文件从Packet Sniffer安装目录获取)到CC2530中

  • 抓包
    1.打开TiWsPc
    image
    2.选择 device configuration 选择要抓取的信道 这里APP看不到网关所在的信道,我是一个个试,看哪个信道可以接收到包才找到的,如果有别的好的方法希望可以分享下。
    image
    3.点击start开始抓包,复制软件下部分的pipe location
    image
    4.打开wireshark,选择 捕获–选项–Manage Interfaces,点击管道选项卡,新建一个管道,如下图,开始捕获

5.点击 编辑—首选项—Protocols-zigbee

6.点击 edit ,添加默认密钥5A:69:67:42:65:65:41:6C:6C:69:61:6E:63:65:30:39
image

7.拿一个设备进行配网,找到 zigbee ZDP的协议,查看ZigBee Network Layer Data下面的ZigBee Security Header,获取如图所示key

8.将获取的key 添加到Protocols里,就可以解密流量了
image

9.APP里操作设备,获取到相关信息

10.Z2M里照葫芦画瓢改一下 ,测试ok

回去试试,我自己下载ti官方例子,直接烧写ZHA的工程,总数无法加入iobroker,不知道啥原因。