今天有个客户买了两套zigbee设备,但是问题来了。他把两套设备的协调器都打开建立完网络后,打开终端结果终端都加入了同一协调器网络里了。由于设备要批量,如果为每一套设置一个pandid或其他的能区分的参数的话不现实。在这种情况下,该怎样处理。
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.
那假如我买了一家的符合home automation的灯光控制产品一个灯光(协调器)一个开关(终端)。同时我的邻居也买同样的产品。当我们两家同时安装的情况下,会不会组错网?因为一般厂商量产的时候肯定会为不同的产品烧写相同的firmware他们的panid肯定是一样。一般panid是0xFFFF。这时如何解决正确的模块加入到正确的网络?是不是只能用Commissioning tool。如果用Commissioning tool的话一般只能工程人员有。最终客户一般不会买Commissioning tool设备的。这个问题如何解决?困扰好久了。这个问题zigbee标准有没有相关的标准解决方案?
首先当coordinator建立网络的时候会有相应的扫描机制,如果发现自己选择的PANID和目前网络中已经有的PANID有conflict,那么它就会再选择一个PANID,直到没有冲突的为止。所以首先可以确保你家和别人家建立的网络时不一样的。
另外比较常见的做法是,coordinator并不是一直出去join permit状态的,一般都是用户想加入设备的时候,在coordinator按一个按键,允许coordinator再多少时间内,开启join permit,所以这样也可以保证你的设备可以加入到你想加入的网络内。
那么至于加入一次以后,开启NV功能的话,下次就会直接加入了。
如果真需要防止这种情况的话,你可以对你们设备固话PANID,相当于写死一个网络标示符,如果写除了0xFFFF以外的数的话,协调器建立网络时选择这个PANID建网,同样路由和节点入网的时候选择对应的PANID去加入网络。
/* Define the default PAN ID.
*
* Setting this to a value other than 0xFFFF causes
* ZDO_COORD to use this value as its PAN ID and
* Routers and end devices to join PAN with this ID
*/
-DZDAPP_CONFIG_PAN_ID=0xFFFF
我们也在做智能家居,我们的做法是把节点的IEEE地址输入到协调器。在烧写节点的firmware时,就把IEEE地址标在标签上,然后启动后就把IEEE地址输入到协调器。
我觉得目前这就是最好的方法
zigbee设备加入网络有两种方法,一个是自动搜索可加入网络,自动加入,一个是直接加入,就是告诉协调器要加入的设备的mac,然后直接将此设备加入网络中