Page 2 of 2

Re: 自动化场景的问题后续没权限问题

Posted: 2025年 Feb 12日 14:26
by huangzh
Snipaste_2025-02-12_14-24-16.png

下面这里示例都没加init,而且我这里加了init() ts会报错 类型“Promise<SmartAlarmAbility>”上不存在属性“addCustomAlarm”。


Re: 自动化场景的问题后续没权限问题

Posted: 2025年 Feb 12日 14:28
by huangzh
Snipaste_2025-02-12_14-24-16.png

Re: 自动化场景的问题后续没权限问题

Posted: 2025年 Feb 12日 14:33
by xuanyi

Code: Select all

    
const Alarm = new SmartAlarmAbility(); Alarm.init(); Alarm.addCustomAlarm({ ... });

请尝试一下这种写法, 文档示例存在误导,我们将尽快调修复。


Re: 自动化场景的问题后续没权限问题

Posted: 2025年 Feb 12日 15:07
by xuanyi

https://developer.tuya.com/cn/miniapp/d ... e#ray--sdm

如果需要多个地方调用,建议使用上述文档中的方式进行初始化。 初始化完成后可通过 devices.xxx.model.abilities.alarm.funcName({}); 来调用,就不用每次都初始化一个Alarm实例了。 其中 xxx 是可以自定义的。在示例中 xxx 是 sensor :

Code: Select all

const devices = {
  sensor: new SmartDeviceModel<SmartDeviceSchema, { alarm: SmartAlarmAbility }>(options)
};

Re: 自动化场景的问题后续没权限问题

Posted: 2025年 Feb 12日 15:20
by huangzh
Snipaste_2025-02-12_15-12-08.png

根据刚刚的方法加入init()修改过后 addCustomAlarm的时候会提示这个问题,请问是什么原因导致的?根据getLinkageDeviceList接口查询的家庭下的设备不是当前家庭下的设备吗


Re: 自动化场景的问题后续没权限问题

Posted: 2025年 Feb 12日 16:00
by xuanyi

请按以下步骤整理一下信息:

  1. 打开node_modules/@ray-js/panel-sdk/lib/sdm/abilities/alarm/index.js,在addCustomAlarm方法中以下代码前添加打印

    Code: Select all

     
     	...
     	console.log('param', param)
          const bindResult = await bindLinkageRule(param);
          const newAlarmList = await this.__findCustomAlarmByBindIdAndReFetch__(bindResult.bindId);
    
  2. 打开 node_modules/@ray-js/panel-sdk/package.json 确认版本信息
  3. 打印getLinkageDeviceList 请求参数,确认 gid 与第一步打印的 param 中的 gid 是否相同
  4. 提供设备id,并上传 app 日志