我需要实现一个功能,zigbee协调器(网关)和路由器(子设备)出厂默认使用tcLinkKeyCentralDefault;当需要更新这个key时,网关通过串口录入新的128bit的key保存在nv中下次开机时作为网关新的tcLinkKeyCentralDefault,并将此key通过广播发送给网络内的其他路由器(子设备),其他子设备收到新key后替换自己的tcLinkKeyCentralDefault并保存到nv中下次开机使用。
现在问题:
1. 当网关更新过key后,子设备恢复出厂后使用旧的tcLinkKeyCentralDefault依然可以入网;
2. 刚清除过flash并烧录固件的子设备,使用网关曾经的tcLinkKeyCentralDefault依然也可以入网,与问题1现象一致。
请问有办法或者机制帮我实现这个需求吗?网络内的所以设备更新key后都使用新的key入网,其他的不一样key的设备不能入网?
zigbee sdk中8258 sram使用方法 |
TLSR8258 ZigBee,协调器可以解散网络或退出网络吗?SDK里面接口用哪个? |
感谢回复。
我想知道现有的ZigBee3.0是否支持这种做法?就是出厂的时候使用默认的tcLinkKeyCentralDefault;使用过程中可以更改,更改之后设备使用新的key入网,使用旧tcLinkKeyCentralDefault的设备无法入网。
还有问题就是,我明明在bdb_init前对g_bdbCommissionSetting.linkKey.tcLinkKey.key重新赋值了,为何网络中还是用的赋值前的key通信、入网?
预置网络密钥机制可以实现这个功能吗?
SDK内部的处理不清楚,可能建立网后将这些信息固定到flash了,install code可以每个设备都衍生出唯一的unique link key,作用和tckey一致,就实现了你说的功能。
@xyhe
你好,
这是非标准的做法,需要特殊功能需要走商务确认,建议你只开放install code入网,这样能够避免掉不需要的设备加入。
感谢回复。
我想知道现有的ZigBee3.0是否支持这种做法?就是出厂的时候使用默认的tcLinkKeyCentralDefault;使用过程中可以更改,更改之后设备使用新的key入网,使用旧tcLinkKeyCentralDefault的设备无法入网。
还有问题就是,我明明在bdb_init前对g_bdbCommissionSetting.linkKey.tcLinkKey.key重新赋值了,为何网络中还是用的赋值前的key通信、入网?
预置网络密钥机制可以实现这个功能吗?
SDK内部的处理不清楚,可能建立网后将这些信息固定到flash了,install code可以每个设备都衍生出唯一的unique link key,作用和tckey一致,就实现了你说的功能。
@xyhe