Last Updated on : 2023-05-22 06:38:25
Smart Life App SDK provides basic capabilities to manage scheduled tasks. For example, set scheduled tasks for devices and groups. Supported types of devices include Wi-Fi devices, Bluetooth mesh sub-devices, and Zigbee sub-devices. This SDK encapsulates the API methods to query, add, modify, or delete timers for data points (DPs). The app can be used to set timers based on specific scheduled task API calls. Then, network modules will automatically run predefined tasks.
Encapsulation class
Class name | Description |
---|---|
TuyaSmartTimer | Encapsulates API methods for scheduled tasks. |
Multiple API methods require the taskName
parameter. It can be regarded as a group of timers. Each timer belongs to at most one group. A group is only used for display. Example:
A switch might support multiple DPs. A group of timers can be created for each DP.
Multiple timers can be added to each group to control the switch status of the DP in different periods.
A scheduled task can include multiple timers. The following figure shows the architecture of the device, scheduled tasks, and timers.
API description
Adds a timer to a specified scheduled task specified by task
for a device or group. The maximum number of timers allowed for each device or group is 30.
- (void)addTimerWithTask:(NSString *)task
loops:(NSString *)loops
bizId:(NSString *)bizId
bizType:(NSUInteger)bizType
time:(NSString *)time
dps:(NSDictionary *)dps
status:(BOOL)status
isAppPush:(BOOL)isAppPush
aliasName:(NSString *)aliasName
success:(TYSuccessHandler)success
failure:(TYFailureError)failure;
Parameters
Parameter | Description |
---|---|
task | The name of the scheduled task. |
loops | The way the scheduled task is repeated. Format: 0000000 . Valid values of each digit:
0100000 . |
bizId | The ID of the device or group. |
bizType |
|
time | The scheduled time. Example: 18:00 . |
dps | The list of DPs to be sent. |
status | Specifies whether to enable the timer. |
isAppPush | Specifies whether to enable push notifications. |
aliasName | The remarks. |
success | The success callback. |
failure | The failure callback. |
Example
ObjC:
- (void)addTimer {
// self.timer = [[TuyaSmartTimer alloc] init];
NSDictionary *dps = @{@"1": @(YES)};
[self.timer addTimerWithTask:@"timer_task_name" loops:@"1000000" bizId:@"device_id" bizType:0 time:@"18:00" dps:dps status:YES isAppPush:YES aliasName:@"timer for device xxx" success:^{
NSLog(@"addTimerWithTask success");
} failure:^(NSError *error) {
NSLog(@"addTimerWithTask failure: %@", error);
}];
}
Swift:
func addTimer() {
let dps = ["1" : true]
self.timer.add(withTask: "timer_task_name", loops: "1000000", bizId: "device_id", bizType: 0, time: "18:00", dps: dps, status: true, isAppPush: true, aliasName: "timer for device xxx") {
print("addTimerWithTask success")
} failure: { (error) in
if let e = error {
print("addTimerWithTask failure: \(e)")
}
}
}
API description
- (void)updateTimerStatusWithTimerIds:(NSArray<NSString *> *)timerIds
bizId:(NSString *)bizId
bizType:(NSUInteger)bizType
updateType:(int)updateType
success:(TYSuccessHandler)success
failure:(TYFailureError)failure;
Parameters
Parameter | Description |
---|---|
timerIds | The list of target timer IDs. |
bizId | The ID of the device or group. |
bizType |
|
updateType | The type of update.
|
success | The success callback. |
failure | The failure callback. |
Example
ObjC:
[self.timer updateTimerStatusWithTimerIds:@[@"2222", @"timer_id2"] bizId:@"device_id" bizType:0 updateType:1 success:^{
NSLog(@"updateTimer success");
} failure:^(NSError *error) {
NSLog(@"updateTimer failure: %@", error);
}];
Swift:
self.timer.updateTimerStatus(withTimerIds: ["232323", "233"], bizId: "device_id", bizType: 0, updateType: 1) {
print("updateTimer success")
} failure: { (error) in
if let e = error {
print("updateTimer failure: \(e)")
}
}
API description
Updates the timer information of a scheduled task for a device or group.
- (void)updateTimerWithTimerId:(NSString *)timerId
loops:(NSString *)loops
bizId:(NSString *)bizId
bizType:(NSUInteger)bizType
time:(NSString *)time
dps:(NSDictionary *)dps
status:(BOOL)status
isAppPush:(BOOL)isAppPush
aliasName:(NSString *)aliasName
success:(TYSuccessHandler)success
failure:(TYFailureError)failure;
Parameters
Parameter | Description |
---|---|
timerId | The target timer ID. |
loops | The way the scheduled task is repeated. Format: 0000000 . Valid values of each digit:
0100000 . |
bizId | The ID of the device or group. |
bizType |
|
time | The scheduled time. Example: 18:00 . |
dps | The list of DPs to be sent. |
status | Specifies whether to enable the timer. |
isAppPush | Specifies whether to enable push notifications. |
aliasName | The remarks. |
success | The success callback. |
failure | The failure callback. |
Example
ObjC:
- (void)updateTimer {
// self.timer = [[TuyaSmartTimer alloc] init];
NSDictionary *dps = @{@"1": @(YES)};
[self.timer updateTimerWithTimerId:@"timer_id" loops:@"1000000" bizId:@"device_id" bizType:0 time:@"18:00" dps:dps status:YES isAppPush:YES aliasName:@"timer for device xxx" success:^{
NSLog(@"updateTimer success");
} failure:^(NSError *error) {
NSLog(@"updateTimer failure: %@", error);
}];
}
Swift:
func updateTimer() {
let dps = ["1" : true]
self.timer.updateTimer(withTimerId: "timer_id", loops: "1000000", bizId: "device_id", bizType: 0, time: "18:00", dps: dps, status: true, isAppPush: true, aliasName: "timer for device xxx") {
print("updateTimer success")
} failure: { (error) in
if let e = error {
print("updateTimer failure: \(e)")
}
}
}
API description
Returns all timers of a scheduled task for a device or group.
- (void)getTimerListWithTask:(NSString *)task
bizId:(NSString *)bizId
bizType:(NSUInteger)bizType
success:(void(^)(NSArray<TYTimerModel *> *list))success
failure:(TYFailureError)failure;
Parameters
Parameter | Description |
---|---|
task | The name of the scheduled task. |
bizId | The ID of the device or group. |
bizType |
|
success | The success callback. An array of timers is returned. |
failure | The failure callback. |
Example
ObjC:
- (void)getTimer {
// self.timer = [[TuyaSmartTimer alloc] init];
[self.timer getTimerListWithTask:@"timer_task_name" bizId:@"device_id" bizType:0 success:^(NSArray<TYTimerModel *> *list) {
NSLog(@"getTimer success %@:", list);
} failure:^(NSError *error) {
NSLog(@"getTimer failure: %@", error);
}];
}
Swift:
func getTimer() {
self.timer.getListWithTask("timer_task_name", bizId: "device_id", bizType: 0, success: { (list) in
print("getTimer success: \(list)")
}, failure: { (error) in
if let e = error {
print("getTimer failure: \(e)")
}
})
}
API description
Returns all timers for a device or group. Each timer is assigned to a scheduled task.
- (void)getTimerTaskListWithbizId:(NSString *)bizId
bizType:(NSUInteger)bizType
success:(void(^)(NSArray<TYCategoryTimersModel *> *list))success
failure:(TYFailureError)failure
Parameters
Parameter | Description |
---|---|
bizId | The ID of the device or group. |
bizType |
|
success | The success callback. An array of timers is returned. |
failure | The failure callback. |
Example
ObjC:
- (void)getTimer {
// self.timer = [[TuyaSmartTimer alloc] init];
[self.timer getTimerTaskListWithBizId:@"device_id" bizType:0 success:^(NSArray<TYCategoryTimersModel *> *list) {
NSLog(@"getTimer success %@:", list);
} failure:^(NSError *error) {
NSLog(@"getTimer failure: %@", error);
}];
}
Swift:
func getTimer() {
self.timer.getTimerTaskListWithBizId("device_id", bizType: 0, success: { (list) in
print("getTimer success: \(list)")
}, failure: { (error) in
if let e = error {
print("getTimer failure: \(e)")
}
})
}
API description
- (void)updateTimerTaskStatusWithTask:(NSString *)task
bizId:(NSString *)bizId
bizType:(NSUInteger)bizType
updateType:(NSUInteger)updateType
success:(TYSuccessHandler)success
failure:(TYFailureError)failure;
Parameters
Parameter | Description |
---|---|
task | The name of the scheduled task. |
bizId | The ID of the device or group. |
bizType |
|
updateType | The type of update.
|
success | The success callback. An array of timers is returned. |
failure | The failure callback. |
Example
ObjC:
- (void)updateTimerTask {
// self.timer = [[TuyaSmartTimer alloc] init];
[self.timer updateTimerTaskStatusWithTask:@"timer_task_name" bizId:@"device_id" bizType:0 updateType:1 success:^{
NSLog(@"updateTimer success");
} failure:^(NSError *error) {
NSLog(@"updateTimer failure: %@", error);
}];
}
Swift:
func updateTimerTask() {
self.timer.updateTaskStatus(withTask: "timer_task_name", bizId: "device_id", bizType: 0, updateType: 1) {
print("updateTimer success: \(list)")
} failure: { (error) in
if let e = error {
print("updateTimer failure: \(e)")
}
}
}
Is this page helpful?
YesFeedbackIs this page helpful?
YesFeedback