【已解决】wifi&ble产品DPID上报失败
开发平台:tuyaOS;
芯片:BK7231N;
SDK版本:ty_iot_sdk_bk7231n_2.3.3-beta.277;
问题:在每次上电(配网后)第一次执行该上报操作时能正常执行上报,但是在第二次及之后执行该上报操作时报错,错误码为-3585,DPID没有发现;
附图:;
附代码:;
求大神解答!
开发平台:tuyaOS;
芯片:BK7231N;
SDK版本:ty_iot_sdk_bk7231n_2.3.3-beta.277;
问题:在每次上电(配网后)第一次执行该上报操作时能正常执行上报,但是在第二次及之后执行该上报操作时报错,错误码为-3585,DPID没有发现;
附图:;
附代码:;
求大神解答!
相关log与IOT平台的DPID定义:
每次上电后第一次执行成功的log:
有没有可能跟面板有关?我在IOT平台没有选择面板,配网的时候自动给了一个
第一次上报成功,但是后面重复上报了相同内容的dp,导致被重复过滤,组装的报文为空,所以报了这个找不到要上报dp错误码。
我该条执行的是:如果收到DPID为5,value为真的情况下,执行上报该DPID为假;
如果我收到并执行此段代码,则说明DPID的值被改了,此时我再改回去,也会被判定重复吗?
上报重复的值会被过滤。如果dp定义中定义了强制上报,那么不会被过滤,也会上报上去。
obj
型 DP
上报的时候,会对上报的数值进行过滤,相同则不予上报;obj
型 DP
,可以通过带 force
的接口上报,或者将 DP
点定义为统计类型(stat
)另外从你的逻辑上看:
1,你是上电报了flase,tuyaos会将这个flase缓存;
2,然后app发了个true,你的代码逻辑会再上报个false,此时上报的flase和tuyaos缓存的false是一致的,导致dp被过滤。
3,如果你上报true就不会过滤。
可以理解为:开关默认是关的(false)app想把开关打开(dp=6,设置为true),设备打开成功之后,给云端/app返回了开关已经打开(dp=6的值上报true)。
愚者千虑必有一得 2022年 Oct 14日 17:20
obj
型DP
上报的时候,会对上报的数值进行过滤,相同则不予上报;- 如果想上报相同的
obj
型DP
,可以通过带force
的接口上报,或者将DP
点定义为统计类型(stat
)另外从你的逻辑上看:
1,你是上电报了flase,tuyaos会将这个flase缓存;
2,然后app发了个true,你的代码逻辑会再上报个false,此时上报的flase和tuyaos缓存的false是一致的,导致dp被过滤。
3,如果你上报true就不会过滤。可以理解为:开关默认是关的(false)app想把开关打开(dp=6,设置为true),设备打开成功之后,给云端/app返回了开关已经打开(dp=6的值上报true)。
1、app下发给我的数据是不会刷新tuyaOS缓存的,tuyaos中缓存的只是我的上报,所以会重复导致被过滤;
2、带force的接口我找到了,如何将‘DP’点定义为统计类型(‘stat’)?
感谢回复