经验分析:之前一直是以为灯有bug,是程序在误上报开关属性。但是我反复测试发现休眠灯在On的状态下,27分钟,上报一次On属性; Off情况下,27分钟上报一次Off属性。
(一)、分析对于Sleepy end device与end device不同之处。
(1) 休眠设备一般都处于低功耗状态
(2) 低功耗状态一般都在睡眠,不会经常往网关上报开关属性
(3) 主动往网关上报,会耗电,达不到休眠的最终目的。
(二)、从抓包中获取网关的上报配制属性
(1)从芯科抓包数据中,获取上报最大时间间隔为:0x0654
(2) 根据网关配制的最大上报时间间隔,计算定时上报时间:
0x0654=1620 1620/60 =27分钟
(三)从串口打印出现上报时间
(1)根据void emberAfPluginReportingTickEventHandler(void) //上报中断
打印出 elapsedMs 上报时间:
用调试串口打印上报的elapsedMs=1658882 或 elapsedMs=1658881。这个 elapsedMs数据便是上报的时间。换算为对应的分钟为:1658882/1024/60 =27 分钟,也就是说每27分钟上报一次当前状态。我将灯加入生迪网关,发现网关端配制如下:最大间隔为:0x0654
0x654=1620 1620/60=27分钟。因此这是网关端配制的上报onoff时间,无需理会27分钟上报当前状态问题。