Tuya MiniApp Tools 版本信息:Node: v18.17.0 Tools: 0.7.0 Ray: 1.5.20 插件版本1.7.3-beta
使用的demo是以public-sdm作为基础制作的
一:
问题描述:
当我的网关子设备离线的时候,开发者工具中会有离线弹窗,且重新上线之后,刷新页面仍有离线弹窗;但是真机调试并不会弹窗,想知道哪边呈现的效果是正确的。
想要达成的效果:
我想,在网关的面板中,只有网关离线才会有离线弹窗,只需要显示子设备的在线状态,要如何修改。
二:
想要达成的效果:
我想在网关面板中显示子设备的信息,调用了onSubDeviceDpUpdate,onSubDeviceInfoUpdate,onSubDeviceRemoved。分别监听子设备的dp状态变化,子设备信息变化,子设备移除。
实际的效果:
1:我的依赖数组应该是错误的,但测试下来,在开发者工具中onSubDeviceDpUpdate可以监听到dp的变化(真题调试监听不到)。onSubDeviceInfoUpdate只能监听到子设备的名称修改,dp和在线状态都没能监听到。且在子设备离线状态,依然能监听到子设备的名称修改。
2:onSubDeviceRemoved没有成功监听到子设备的移除。Code: Select all
useEffect(() => { const handleSubDeviceDpUpdate = (data) => { console.log('有dp变更:', data); // console.log('up id:', data.deviceId); // console.log('up dps:', data.dps); setNewData(data); }; const handleSubDeviceInfoUpdate = (data) => { console.log('有信息更新:', data); getchSubDeviceInfo(); }; const handlesubremov =(data) =>{ console.log('子设备移除:', data); }; onSubDeviceDpUpdate(handleSubDeviceDpUpdate); onSubDeviceInfoUpdate(handleSubDeviceInfoUpdate); onSubDeviceRemoved(handlesubremov); return () => { offSubDeviceDpUpdate(handleSubDeviceDpUpdate); offSubDeviceInfoUpdate(handleSubDeviceInfoUpdate); offSubDeviceRemoved(handlesubremov); }; }, [devInfo.devId]);
关于zigbee网关,子设备的一些问题
-
- Posts: 114
关于zigbee网关,子设备的一些问题
Last edited by silverlight on 2024年 Aug 7日 15:34, edited 1 time in total.
Tags:
Re: 关于zigbee网关,子设备的一些问题
感谢反馈
- IDE中关于子设备相关问题及接口我们会尽快安排排查修复,后续修复问题后会升级面板开发工具插件版本,可关注后续beta版本进行手动更新,或发布正式版本后IDE会进行强制更新
- 在注册监听之前,请先调用 registerGateWaySubDeviceListener 进行网关设备的注册,并在注册后尝试是否可正常接收到,若注册后真机调试中依然有无法接收到监听的情况,请提供一下所使用的 app 及版本号,以及无效方法列表。方便的话可上传一下 app 日志(我的>右上角设置>关于>上传日志),并提供一下上传时弹窗的截图。
Re: 关于zigbee网关,子设备的一些问题
registerGateWaySubDeviceListener参照:
https://developer.tuya.com/cn/miniapp/d ... celistener
子设备相关接口使用参照:
https://github.com/Tuya-Community/tuya- ... s/index.ts
-
- Posts: 114
Re: 关于zigbee网关,子设备的一些问题
xuanyi 2024年 Aug 7日 09:38感谢反馈
- IDE中关于子设备相关问题及接口我们会尽快安排排查修复,后续修复问题后会升级面板开发工具插件版本,可关注后续beta版本进行手动更新,或发布正式版本后IDE会进行强制更新
- 在注册监听之前,请先调用 registerGateWaySubDeviceListener 进行网关设备的注册,并在注册后尝试是否可正常接收到,若注册后真机调试中依然有无法接收到监听的情况,请提供一下所使用的 app 及版本号,以及无效方法列表。方便的话可上传一下 app 日志(我的>右上角设置>关于>上传日志),并提供一下上传时弹窗的截图。
谢谢,已经成功监听了子设备信息变化。但还有一些疑问。
一:当子设备处于离线状态的时候,修改子设备的名称,为什么网关依然能监听到子设备信息变化。
二:onSubDeviceInfoUpdate在文档中,回调参数有deviceid和dps,但实际测试,我修改子设备名称的时候,只有返回deviceid,想知道onSubDeviceInfoUpdate 能监听获取到哪些信息。
Code: Select all
{
title: Strings.getLang('onSubDeviceInfoUpdate'),
functionName: 'onSubDeviceInfoUpdate',
func: () => {
return new Promise((resolve, reject) => {
registerGateWaySubDeviceListener({ deviceId })
onSubDeviceInfoUpdate((event) => {
console.log('============onSubDeviceInfoUpdate', event)
})
resolve(true)
})
},
},
-
- Posts: 114
Re: 关于zigbee网关,子设备的一些问题
(发了重复内容,但没法删除)
Last edited by silverlight on 2024年 Aug 7日 15:48, edited 3 times in total.
Re: 关于zigbee网关,子设备的一些问题
- 修改名称并不依赖子设备在线, 只要网关在线就可以触发到onSubDeviceInfoUpdate。
- onSubDeviceInfoUpdate 子设备信息(名称、标题、房间等信息)变更时会触发,但不一定会携带变动的内容。可以通过getDeviceInfo去获取最新的设备信息。
-
- Posts: 114
Re: 关于zigbee网关,子设备的一些问题
xuanyi 2024年 Aug 7日 14:27
- 修改名称并不依赖子设备在线, 只要网关在线就可以触发到onSubDeviceInfoUpdate。
- onSubDeviceInfoUpdate 子设备信息(名称、标题、房间等信息)变更时会触发,但不一定会携带变动的内容。可以通过getDeviceInfo去获取最新的设备信息。
非常感谢