Page 1 of 1
关于Ray-js 中获取家庭中所有场景 getSceneList API接口结果为空
Posted: 2024年 May 16日 16:12
by 18565078111
- Tuya MiniApp Tools 版本信息:0.6.4
- @ray-js/ray@1.5.4
@ray-js/cli@1.5.4
- 相关代码:
Code: Select all
const { homeId } = await home.getCurrentHomeInfo();
const devId = 'xxxxx'
getSceneList({
devId: devId,
gid: homeId,
})
.then((res) => {
console.log(res);
setSceneList(res);
})
.catch(console.error);
Code: Select all
- 日志信息:无
- 问题描述(复现步骤):
- 预期结果: 查询出该家庭中的场景数据
- 实际结果:查询结果是一个空数组。
之前在后台提交工单咨询关于查询家庭中所有场景的问题,得到工作人员的答复是在这个接口中加入gid 的参数。如今文档上已经加入该参数说明,NPM包也发布新版了。在升级本地NPM包之后,利用以上代码进行查询,得到的结果仍旧为空。
Re: 关于Ray-js 中获取家庭中所有场景 getSceneList API接口结果为空
Posted: 2024年 May 16日 16:12
by 18565078111
补充:homeId 176170055, devId:vdevo171516122052680
Re: 关于Ray-js 中获取家庭中所有场景 getSceneList API接口结果为空
Posted: 2024年 May 16日 19:05
by lshinylee
当前基础库版本是多少?看看是否在 2.18.4 以上
Re: 关于Ray-js 中获取家庭中所有场景 getSceneList API接口结果为空
Posted: 2024年 May 16日 23:25
by 18565078111
lshinylee 2024年 May 16日 19:05
当前基础库版本是多少?看看是否在 2.18.4 以上
改到2.18.5 ,可以查到数据了。谢谢。
Re: 关于Ray-js 中获取家庭中所有场景 getSceneList API接口结果为空
Posted: 2024年 May 17日 00:18
by 18565078111
顺便在咨询个问题: 我想实现一个功能,将场景和一个DP点关联起来,从而实现点击DP点对应UI的时候,触发场景。Ray-js 的API中ray/api/scenes/rule/bindRule 似乎满足需求,但是参数我不太明白。
Code: Select all
bindRule({
associativeEntityId: '1#single_click',
ruleId: 'xxxxx',
entitySubIds: '1',
expr: [['$dp1', '==', '单击']],
bizDomain: 'wirelessSwitchBindScene',
})
- 这里的associativeEntityId 1应该是DPID,那#后面的可选值有哪些?
- expr 的规则是什么?
- 以及bizDomain 的可选值有哪些?分别代表什么
Re: 关于Ray-js 中获取家庭中所有场景 getSceneList API接口结果为空
Posted: 2024年 May 17日 09:29
by lshinylee
类似下面这样,
associativeEntityId #后面的可选值为 # 之前对应 dpId 功能的可选值,即 dpValue,相当于在满足指定功能点接受到指定的上报值时会自动触发场景。
expr 的规其实也就是 associativeEntityId 的规则化版本
bizDomain 代表业务域,目前先固定使用 wirelessSwitchBindScene,其余业务域暂未开放,滥用会导致功能异常。
associativeEntityId: ${dpId}#${dpValue}
,
entitySubIds: ${dpId}
,
expr: [[$dp${dpId}
, '==', ${dpValue}
]]
另外这块功能我们近期也在筹备开放教程,后续会进一步简化调用模式。