This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

一个ZLL的设备入到ZHA的网络中,profile ID发生了变化

协调器协议栈版本:ZHA1.2.2a

有几个外协的LED灯模块,用的ZLL的协议栈,加到我们现在的协调器网络中。

1、开始没问题,入网之后在描述符中读出来的profile ID=0xC05E,DEVICEID=0x0100;

2、后来网关有个改动,入网后在读取简单描述符之前,先读取了一下厂商名称,用的read attributes命令,读取后再获取的描述符中就变成了:

       profile ID=0x0104,DEVICEID=0x0100;

3、这样造成了一个问题:同样的DEVICEID(0x0100),在不同的profile ID下表示的设备类型是不同的,

      ZLL中:#define ZLL_DEVICEID_DIMMABLE_LIGHT                        0x0100

      ZHA中:#define ZCL_HA_DEVICEID_ON_OFF_LIGHT                    0x0100

4、这样在网关端生成的设备类型就不一样了,在APP的控制上就发生错误了。

请问下:为什么一个读取的操作,会影响设备本身的简单描述符中的信息?而且测试了号几家的LED模块,都是同样的现象,所以应该是ZLL设备加入到ZHA网络的统一现象。

下边两个抓包文件,一个是没有进行读取操作,一个是进行了读取操作的。可以看到,不读厂商名profile ID=0xC05E,读了之后profile ID=0x0104.

下边这个这个是profile ID没有变得:

外协调光灯profileC05E.rar

下边这个这个是profile ID变成0x0104得:

外协调光灯profile0104.rar