定时任务
调用API
import {TuyaTimerApi} from 'tuyasmart-home-sdk'
import {TuyaTimerApi} from 'tuyasmart-home-sdk'涂鸦智能提供了基本的定时能力,支持设备(包括WiFi设备,蓝牙mesh子设备,zigbee子设备)和群组。并封装了针对设备dp点的定时器信息的增删改查接口。APP通过定时接口设置好定时器信息后,硬件模块会自动根据定时要求进行预订的操作。每个定时任务下可以包含多个定时器。如下图所示: 
定时相关的所有方法都在TuyaRnTimerApi中
以下多个接口用到了taskName这个参数,具体可描述为一个分组,一个分组可以有多个定时器。每个定时属于或不属于一个分组,分组目前仅用于展示
增加定时器
【 描述】
增加一个定时器
【方法调用】
/**
* [addTimer description]
* @param {[type]} category [description]
* @param {[type]} loops [7位字符串,每一位表示星期几,第一位表示星期日,第二位表示星期一,依次类推,表示在哪些天启用定时。0表示未选中,1表示选中.格式例如只选中星期一 星期二:"0110000"。如果都未选中,则表示定时只执行一次,格式:"0000000"]
* @param {[type]} instruct [instruct包含一个dp点的集合和时间]
* @param {[type]} groupId [这个是群组id]
* 添加定时
* 支持群组定时
*/
默认dpValue为true
TuyaTimerApi.addTimerWithTask({
taskName: "timer",
loops: ,
devId: ,
dpId: "0",
time: d
})
如果最后一个参数不传则说明表示为devId,支持设备和群组定时
/**
* 增加定时器 支持子设备新接口
* 其他参数值释义同上
* @param dps dp点键值对,key是dpId,value是dpValue,仅支持单dp点
* @param callback 回调
*/
addTimerWithTaskDps({
taskName: "timer",
loops: ,
devId: ,
dpId: "0",
time: d,
dps:,
})【代码范例】
设备定时
/**
* 设备定时
*/
var instruct = [];
instruct.push({ dps: { 0: true }, time: d });
loops=[0,0,0,0,0,0,1];
TuyaTimerApi.addTimerWithTask({
taskName: "timer",
loops: this.state.repeat.join(""),
devId: this.state.devInfo.devId,
dpId: "0",
time: d
})
/**
* 设备定时 带有自己定义dp点
*/
TuyaTimerApi.addTimerWithTaskDps({
taskName: "timer",
loops: ,
devId: ,
dpId: "0",
time: d,
dps:'{'1':true}',
})获取某设备下的所有定时任务状态
【描述】
获取某设备下的所有定时任务状态
【方法调用】
* 获取定时任务下所有定时器
* @param taskName 定时任务名称
* @param devId 设备Id或群组Id
* @param callback 回调
getTimerTaskStatusWithDeviceId({devid:''})【代码范例】
TuyaTimerApi.getTimerTaskStatusWithDeviceId({devid:''})
.then(data => {
}
})
.catch(err => {
console.log("--err", err);
});控制定时任务中所有定时器的开关状态
【描述】
控制定时任务中所有定时器的开关状态
【方法调用】
* 获取某设备下的所有定时任务状态
*
* @param devId 设备Id
TuyaTimerApi.updateTimerTaskStatusWithTask({taskName:'',devId:'',status:''})【代码范例】
TuyaTimerApi.updateTimerTaskStatusWithTask({taskName:'',devId:'',status:''}).then(data=>{
}).catch(err=>{
})控制某个定时器的开关状态
【描述】
控制某个定时器的开关状态
【方法调用】
* 控制定时任务中所有定时器的开关状态
/**
* 控制某个定时器的开关状态
* @param taskName 定时任务名称
* @param devId 设备Id或群组Id
* @param timerId 定时钟Id
* @param isOpen 开关 Boolean
*/
updateTimerStatusWithTask({taskName:'',devId:'',timeId:'',isOpen:true})【代码范例】
TuyaTimerApi.updateTimerStatusWithTask({taskName:'',devId:'',timeId:'',isOpen:true}).then(data=>{}).catch(err=>{})删除定时器
【描述】
删除定时器
【方法调用】
* 删除定时器
* @param taskName 定时任务名称
* @param devId 设备Id或群组Id
* @param timerId 定时钟Id String
* @param callback 回调
TuyaTimerApi.removeTimerWithTask({devId:'', taskName:'', timeId:''})【代码范例】
TuyaTimerApi.removeTimerWithTask({devId:'',taskName:'',timeId})
.then(data => {
})
.catch(err => {
console.log("--->err", err);
});更新定时器的状态
【描述】
更新定时器的状态
【方法调用】
/**
* 更新定时器的状态
* @param taskName 定时任务名称
* @param loops 循环次数 如每周每天传”1111111”
* @param devId 设备Id或群组Id
* @param timerId 定时钟Id
* @param dpId dp点id
* @param time 定时时间
* @param isOpen 是否开启
*/
updateTimerWithTask({taskName:'',loops:'',devId:'',timerId:'',dpId:'',time:'',isOpen:true})
/**
* 更新定时器的状态
* @param taskName 定时任务名称
* @param devId 设备Id或群组id
* @param timerId 定时钟Id
* @param loops 循环次数
* @param instruct 定时dp点数据,只支持单dp点 json格式 如: [{
* "time": "20:00",
* "dps": {
* "1": true
* }]
*/
updateTimerWithTaskInstruct({taskName:'',loops:'',devId:'',timerId:'',instruct:''})【代码范例】
TuyaTimerApi.updateTimerWithTask({taskName:'',loops:'',devId:'',timerId:'',dpId:'',time:'',isOpen:true}).then(data=>{
}).catch(err=>{})
TuyaTimerApi.updateTimerWithTaskInstruct({taskName:'',loops:'',devId:'',timerId:'',instruct: "[{"time": "20:00", "dps": { "1": true},{"time": "22:00","dps": {"2": true}]"})获取定时任务下所有定时器
【描述】
获取定时任务下所有定时器
【方法调用】
* 获取定时任务下所有定时器
* @param taskName 定时任务名称
* @param devId 设备Id或群组Id
TuyaTimerApi.getTimerWithTask({devId:'', taskName:''})【代码范例】
TuyaTimerApi.getTimerWithTask({devId:'', taskName:''})
.then(data => {
})
.catch(err => {
console.log("--->err", err);
});获取设备所有定时任务下所有定时器
【描述】
获取设备所有定时任务下所有定时器
【方法调用】
* 获取定时任务下所有定时器
* @param devId 设备Id或群组Id
TuyaTimerApi.getAllTimerWithDeviceId({devId:''})【代码范例】
TuyaTimerApi.getAllTimerWithDeviceId({devId:''})
.then(data => {
})
.catch(err => {
console.log("--->err", err);
});Last updated
Was this helpful?