subRuleActionList List 联动动作集合

高级定制

场景功能

获取场景规则

​ 场景规则下包含条件、动作、延时动作(比较特殊),联动动作。其中定时条件只能有一条。

请求参数:

参数名 类型 说明 备注 必需
callback Icallback 回调函数

例子:

IotCloudSDK.getSceneRuleManager().getSceneRuleList (new Icallback>() {

@Override

public void onSuccess(List< SceneRule > rules) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result List 返回成功信息 返回success或者需求数据

SceneRule对象参数:

参数名 类型 说明 备注 必需
ruleId int 规则唯一id
status int 规则状态 1表示启用,0表示不启用,
-1表示数据库获取不到值
ruleName String 规则名称
ruleType int 规则类型 1 手动执行场景 2 定时执
行场景 3 触发器场景
触发器规则是指触发的条
件是设备上报的数据点的
数值满足一个范围而执行
的条件 -1表示数据库获
取不到值
frequencyFlag RuleFrequencyFlag 多条件联动
触发规则
RULE_DEF_FLAG,//0
默认
RULE_NOT_JUDGE,// 1
RULE_JUDGE//2
isCurrent Boolean 是否当前场景 家庭下存在一个当前场景,
用户下当前场景最多为2,
一个家庭场景,一个普通
场景
conditionList List 规则的条件 规则的条件可能没有,比
如手动规则,也可能只有
一个,比如定时规则,也
可能有多个,比如触发器
规则
actionList List 规则的动作
delayActionList List 规则的延时
动作
延时动作比较特殊需要
subRuleAction List 规则下联动
动作
两者关系见本次更新内容

SubRuleAction对象参数:

参数名/方法 类型 说明 备注 必需
actionId int 联动动作
Id
actionName String 联动动作
名称
condoper Int 条件间的
关系
1表示&操作
2表示\
操作,
0表示没有操作符,
单个条件
subRuleValid int 联动动作
是否有效
0无效1有效
subRuleCondList List 联动动作
条件
subRuleActionList List 联动动作
动作

SubRuleConditionList对象参数:

参数名/方法 类型 说明 备注 必需
productId int 产品Id
iotId String 设备Id
condition String 条件的内容 如dp_switch=0&dp_temp=2
dpname String 数据点名称 如:温度
conditionName String 条件名称
conditionValid Int 条件是否有效 1有效 0无效

SubRuleActionList对象参数:

参数名/方法 类型 说明 备注 必需
actionValid Int 动作是否有效 1有效 0无效
dpname String 动作名称 如:温度
action String 动作内容 如:"dp_switch=1"
actionName String 动作名称
iotId String 设备Id
productId Int 产品Id

MultiM2Mcondition对象的参数

参数名/方法 类型 说明 备注 必需
condId int 条件唯一id
condName String 条件名称
condType int 条件类型 1:数据点触发的条件
2:定时触发的条件
productId int 产品id 当condType=3的时候有效
getDeviceId() 方法 对应设备的id 当condType=3的时候有效,
并且可能为iotId或者subIotId,
即主设备或子设备的id
condoper int 条件的操作符 1表示&操作 2表示\ 操作,
0表示没有操作符,单个条件
dpName String 功能点名称 当condType=3的时候有效,
用户创建条件的时候可配置,
紧用于存储显示
cronTime int 时间配置 condType为2或者3时有效。
不重复就是Unix时间戳 重复
循环就是从零点开始的时间秒数
cronCircle int 定时循环 condType为2或者3时不为空。
0 不循环 1-127周一至周日循环
condValid int 条件是否有
效标志位
1:有效 0:无效
如果条件被标记为无效,
那么只能删除,如果不删除
会导致规则不能开启
dpKey String 设备功能点键值 当condType=3的时候有效
getSymbolAndValueList() 方法 获取功能点对
应的符号和值
当condType=3的时候有效
例如条件是温度大于5
即tempture > 5
符号就是 > 值就是 5
分别用symbol和value
isRepeatAllDay() 方法 判断当前定时
配置是否每天
都重复
当condType=2的时候有效
getRepeatWeek() 方法 可以依次返回值
List
每个元素的值都对应Week类
中的int常量 例如Week.MON
表示周一 以此类推
Week.SUN表示周日

SceneAction对象的参数

参数名/方法 类型 说明 备注 必需
actionId int 动作唯一id
actionType int 动作类型 4指向规则开启或关闭的动作
8 向设备发送命令的动作
actionName String 动作名称
productId int 产品id 当actionType=8的时候有效
dpName String 功能点名称 当actionType=8的时候有效,
用户创建条件的时候可配置,
紧用于存储显示
getDeviceId() 方法 对应设备的id 当actionType=8的时候有效,
并且可能为iotId或者subIotId,
即主设备或子设备的id
ruleId int 指向的场景规则id 当actionType=4的时候有效
actionValid int 当前动作有效还是无效 1:有效 0:无效
ruleStatus int 指向的场景的规则的
状态
当actionType=4的时候有效,
1表示目标场景开启
0表示目标场景关闭
getKeyAndValue() 方法 获取当前发送的命令
的功能点的键值对
KeyAndValue.key表示功能
点的键
KeyAndValue.value表示
命令对应的值

通过规则id获取场景规则详情

请求参数:

参数名 类型 说明 备注 必需
ids List 场景的规则id列表 可以通过规则id获取规则详情,获取的内容同上
callback Icallback 回调函数

例子:

IotCloudSDK.getSceneRuleManager().getSceneRuleList (ids, new Icallback>() {

@Override

public void onSuccess(List rules) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result List 返回成功信息 返回success或者需求数据

获取可用于配置动作指向场景规则开关的信息列表

请求参数:

参数名 类型 说明 备注 必需
SceneRule SceneRule 场景的规则 用于规则过滤,即返回的列表不会返回传入的规则,否则会可能选择到的动作配置自己联动自己。
callback Icallback 回调函数

例子:

IotCloudSDK.getSceneRuleManager().getActionToSceneRuleList (sceneRule,

new Icallback>() {

@Override

public void onSuccess(List result) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result List< SceneCondToRule> 返回成功信息 返回success或者需求数据

result列表参数:

参数名 类型 说明 备注 必需
ruleId int 场景的规则id 可用于配置动作
status int 场景的规则的当前的状态 1启用 0不启用 表示场景的规则当前是开启还是关闭,可作为参考
ruleName String 场景的规则名称

创建场景规则

请求参数:

参数名 类型 说明 备注 必需
SceneRule SceneRule 新增的规则集合 实现有参的构造函数
创建成功后传入的该对象的
ruleId字段会被赋值
即SceneRule.ruleId可用
可做修改和删除操作
callback Icallback 回调函数

传入的SceneRule需要用户先自动创建,然后传入接口调用

SceneRule sceneRule = new SceneRule(String ruleName, int ruleType,RuleFrequencyFlag frequencyFlag);

ruleName表示场景的规则名称

ruleType可以从如下类型中选择

SceneRule 的静态常量

/*

1 手动触发的场景规则

2 定时触发的场景规则

3 通过设备功能点上报数据满足条件触发的规则

*/

public static final int RULE_TYPE_MANUAL = 1;

public static final int RULE_TYPE_TIMER = 2;

public static final int RULE_TYPE_TRIGGER = 3;

RuleFrequencyFlag参数说明:

RuleFrequencyFlag为枚举类,传入时SDK将会自动转换

RULE_DEF_FLAG,//0 默认

RULE_NOT_JUDGE,// 1

RULE_JUDGE//2

1 手动执行 0 场景不可连续触发,处于该场景(未切换),不可再次触发场景

​ 1 场景可连续触发,处于该场景,可再触发场景

2 定时执行 0 场景不可连续触发,处于当前定时场景时,时间到了不触发

​ 1 场景可连续触发,处于当前定时场景时,时间到了可以再触发

3 触发执行 0 场景不可连续触发,处于当前场景时,不再触发

​ 1 场景可连续触发,不判断规则真值改变,上报真就触发

​ 2 场景可连续触发,判断规则真值改变,连续为真只触发第一次

当ruleType为手动执行和定时执行时 RuleFrequencyFlag传入RULE_JUDGE将会传入默认值(RULE_DEF_FLAG),创建后不可修改此字段

例子:

IotCloudSDK.getSceneRuleManager().createSceneRule (sceneRule, frequencyFlag

new Icallback() {

@Override

public void onSuccess(SceneRule rule) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result SceneRule 场景的规则 参照获取场景的规则列表参数说明

更新场景规则名称

请求参数:

参数名 类型 说明 备注 必需
rule SceneRule 要修改名称的场景规则
newName String 新名称
callback ISDKCallback 回调函数

例子:

IotCloudSDK.getSceneRuleManager().updateSceneRuleName (rule, newName,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

更改场景规则的开关状态

请求参数:

参数名 类型 说明 备注 必需
changeRuleStatus ChangeSceneRuleStatus 修改规则的开启、关闭状态 实现有参的构造函数
callback Icallback 回调函数

ChangeSceneRuleStatus changeRuleStatus = new ChangeSceneRuleStatus (

​ SceneRule rule,

int status

);

rule 要更改状态的场景规则

status 更改的状态,可以从如下选择

SceneRule 的静态常量

/*

1表示启用,0表示不启用

​ */

public static final int RULE_STATUS_OPEN = 1;

public static final int RULE_STATUS_CLOSE = 0;

例子:

IotCloudSDK.getSceneRuleManager().changeSceneRuleStatus (changeRuleStatus,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

修改触发器场景规则下条件间的操作符

当规则的类型是触发器规则时,配置有效。

请求参数:

参数名 类型 说明 备注 必需
rule SceneRule 场景的规则
condoper int 条件间的关系 1表示&(并且),2表示 l (或者)
callback ISDKCallback 回调函数

例子:

IotCloudSDK.getSceneRuleManager().changeSceneRuleConditionOperator (rule, condoper,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

删除场景规则

请求参数:

参数名 类型 说明 备注 必需
id int 场景的规则id
callback ISDKCallback 回调函数

例子:

IotCloudSDK.getSceneRuleManager().deleteSceneRule (id, new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

给场景规则添加条件

请求参数:

参数名 类型 说明 备注 必需
sceneRule SceneRule 要添加条件的规则
sceneToCondition SceneToCondition 要添加的条件 创建成功后传入的该对象的
condId字段会被赋值 即
sceneToCondition.condId
可用可做修改和删除操作
callback Icallback 回调函数

SceneToCondition sceneToCondition = new SceneToCondition (String condName);

condName,要创建的条件名称

setConditionName(String condName); //可用于临时修改内存中的条件名称

需要填充配置数据

设置定时配置(同一个条件只能是一种类型,条件创建完成后,类型不能修改,可以修改具体参数,定时条件只能有一条)

sceneToCondition.setTimerData(int time, @Week int cronCircle);

cronCircle当定时不需要重复的时候直接填入Week.NULL

当需要按星期定时循环的时候可以使用Week.MON | Week.TUES | Week.WED

就是按照星期一、星期二、星期三循环

即cronCircle = Week.MON | Week.TUES | Week.WED

如果需要每天都循环的话可以直接传入Week.ALL_DAY(包含周一到周日)

time当cronCircle表示是不需要重复的时候,time表示UNIX时间戳

当cronCircle表示按星期重复的时候,time表示当天0点到目前时刻的秒钟数

即15:02:03则time = 15 3600 + 2 60 + 3

设置触发器配置(同一个条件只能是一种类型,条件创建完成后,类型不能修改,可以修改具体参数,可以有多条)

sceneToCondition.setTriggerData(int productId, String devId, String dpName, String key, String symbol1, String value1, String operator, String symbol2, String value2);

productId表示对应设备的产品id

devId表示对应设备的iotId或者对应子设备的subIotId

dpName 由用户传入,可填写功能点的中文说明

key 在云平台配置的设备的功能点变量名

symbol1、value1、operator、symbol2、value2

这个几个条件表示符号和值还有操作符

例如条件是温度大于20并且小与30

即tempture>20&tempture<30

symbol1和symbol2可以填写>、<、=、>=、<=、!=

operator可以填写&或者|(表示并且、或者)

operator、symbol2、value2可以为空,为空表示只需要一个范围

即tempture>20

例子:

IotCloudSDK.getSceneRuleManager().createSceneCondition (sceneRule, multiM2Mcondition,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

修改场景规则的条件

请求参数:

参数名 类型 说明 备注 必需
sceneRule SceneRule 条件所属的规则
sceneToCondition SceneToCondition 要修改的条件
callback Icallback 回调函数

需要填充配置数据

设置定时配置(同一个条件只能是一种类型,条件创建完成后,类型不能修改,可以修改具体参数,定时条件只能有一条)

sceneToCondition.setTimerData(int time, @Week int cronCircle);

cronCircle当定时不需要重复的时候直接填入Week.NULL

当需要按星期定时循环的时候可以使用Week.MON | Week.TUES | Week.WED

就是按照星期一、星期二、星期三循环

即cronCircle = Week.MON | Week.TUES | Week.WED

如果需要每天都循环的话可以直接传入Week.ALL_DAY(包含周一到周日)

time当cronCircle表示是不需要重复的时候,time表示UNIX时间戳

当cronCircle表示按星期重复的时候,time表示当天0点到目前时刻的秒钟数

即15:02:03则time = 15 3600 + 2 60 + 3

设置触发器配置(同一个条件只能是一种类型,条件创建完成后,类型不能修改,可以修改具体参数,可以有多条)

sceneToCondition.setTriggerData(int productId, String devId, String dpName, String key, String symbol1, String value1, String operator, String symbol2, String value2);

productId表示对应设备的产品id

devId表示对应设备的iotId或者对应子设备的subIotId

dpName 由用户传入,可填写功能点的中文说明

key 在云平台配置的设备的功能点变量名

symbol1、value1、operator、symbol2、value2

这个几个条件表示符号和值还有操作符

例如条件是温度大于20并且小与30

即tempture>20&tempture<30

symbol1和symbol2可以填写>、<、=、>=、<=、!=

operator可以填写&或者|(表示并且、或者)

operator、symbol2、value2可以为空,为空表示只需要一个范围

即tempture>20

例子:

IotCloudSDK.getSceneRuleManager().updateSceneCondition (SceneRule, multiM2Mcondition,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

删除场景规则的某个条件

请求参数:

参数名 类型 说明 备注 必需
sceneRule SceneRule 条件所属的规则
sceneToCondition SceneToCondition 要删除的条件
callback Icallback 回调函数

例子:

IotCloudSDK.getSceneRuleManager().deleteSceneCondition (sceneRule, sceneToCondition,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

给场景规则添加动作

请求参数:

参数名 类型 说明 备注 必需
sceneRule SceneRule 要添加动作的规则
sceneToAction SceneToAction 要添加的动作 创建成功后传入的该对象的actionId
字段会被赋值
即sceneToAction.actionId可用
可做修改和删除操作
callback Icallback 回调函数

SceneToAction sceneToAction = new SceneToAction (String actionName);

actionName 要添加的动作名称

setActionName(String actionName); // 可临时修改内存中的动作名称

需要填充配置

设置指定规则开启、禁用配置(同一个动作只能是一种类型,动作创建完成后,类型不能修改,可以修改具体参数)

sceneToAction.setSwitchData(int ruleId, int ruleStatus);

ruleId 需要控制开启禁用的场景的规则id

ruleStatus 开启、禁用的状态

SceneRule 的静态常量

/*

1表示启用,0表示不启用

​ */

public static final int RULE_STATUS_OPEN = 1;

public static final int RULE_STATUS_CLOSE = 0;

需要填充配置

设置给指定设备发送命令的配置(同一个动作只能是一种类型,动作创建完成后,类型不能修改,可以修改具体参数)

sceneToAction.setCommandData(int productId, String devId, String key, String value, String dpName);

productId 对应的设备的产品id

devId 对应的设备的iotId或者对应的子设备的subIotId

key 网页上配置的设备功能点的变量名

value 对设备发送命令的具体数值

dpName 由用户填入,可以填写key的中文说明

例子:

IotCloudSDK.getSceneRuleManager().createSceneAction (sceneRule, sceneToAction,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

修改场景规则的动作

请求参数:

参数名 类型 说明 备注 必需
sceneRule SceneRule 动作所属的规则
sceneToAction SceneToAction 要修改的动作
callback Icallback 回调函数

需要填充配置

设置指定规则开启、禁用配置(同一个动作只能是一种类型,动作创建完成后,类型不能修改,可以修改具体参数)

sceneToAction.setSwitchData(int ruleId, int ruleStatus);

ruleId 需要控制开启禁用的场景的规则id

ruleStatus 开启、禁用的状态

SceneRule 的静态常量

/*

1表示启用,0表示不启用

​ */

public static final int RULE_STATUS_OPEN = 1;

public static final int RULE_STATUS_CLOSE = 0;

需要填充配置

设置给指定设备发送命令的配置(同一个动作只能是一种类型,动作创建完成后,类型不能修改,可以修改具体参数)

sceneToAction.setCommandData(int productId, String devId, String key, String value, String dpName);

productId 对应的设备的产品id

devId 对应的设备的iotId或者对应的子设备的subIotId

key 网页上配置的设备功能点的变量名

value 对设备发送命令的具体数值

dpName 由用户填入,可以填写key的中文说明

例子:

IotCloudSDK.getSceneRuleManager().updateSceneAction (sceneRule, sceneToAction,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

删除场景规则的某个动作

请求参数:

参数名 类型 说明 备注 必需
sceneRule SceneRule 动作所属的规则
sceneToAction SceneToAction 要删除的动作
callback Icallback 回调函数

例子:

IotCloudSDK.getSceneRuleManager().deleteSceneAction (sceneRule, sceneToAction,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

给场景规则创建延时动作

请求参数:

参数名 类型 说明 备注 必需
sceneRule SceneRule 要添加延时动作的规则
sceneToDelayAction SceneToDelayAction 要添加的延时动作 延时动作可以配置延时时间
和一系列动作 创建成功后
传入的该对象的actionId字
段会被赋值
sceneToDelayAction.actionId
可用可做修改和删除操作
callback Icallback 回调函数

SceneToDelayAction action = new SceneToDelayAction (int cronTime);

cronTime要延时的秒钟数

例如要延时1小时10分钟6秒

cronTime = 1 3600 + 10 3600 + 6;

setDelayTimeData(int cronTime); // 可用于临时修改内存中的延时时间

延时动作除了时间的配置外,还可以添加多个普通动作,就是前面提到的动作

注意延时动作中的SceneToDelayAction的actionId字段无效

action.addAction(MultiM2Maction action);

例子:

IotCloudSDK.getSceneRuleManager().createSceneDelayAction (sceneRule, action,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

sceneToDelayAction参数说明

参数名/方法 类型 说明 备注 必需
actionId int 延时动作的id
cronTime String 延时动作的延时时间
actionValid int 延时动作是否有效 1有效,0无效
actionList List 延时执行的一些列动作列表 这里的SceneToAction的 actionId字段无效

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

修改延时动作

请求参数:

参数名 类型 说明 备注 必需
sceneRule SceneRule 延时动作所属的规则
action SceneToDelayAction 要修改的延时动作 延时动作可以配置延时时
间和一系列动作
callback Icallback 回调函数

cronTime要延时的秒钟数

例如要延时1小时10分钟6秒

cronTime = 1 3600 + 10 3600 + 6;

setDelayTimeData(int cronTime); // 可用于临时修改内存中的延时时间

延时动作除了时间的配置外,还可以添加多个普通动作,就是前面提到的动作

注意延时动作中的SceneToDelayAction的actionId字段无效

action.addAction(MultiM2Maction action);

如果要更新actionList中的某个动作,直接参照上边修改规则的动作方法修改,但不能调用其对应的修改接口,只是修改内存中的内容,然后调用下面的接口整体修改延时动作

如果要删除掉actionList中的某个或者某几个动作,则直接从list按照引用或者下标删除,然后调用更新接口即可

例子:

IotCloudSDK.getSceneRuleManager().updateSceneDelayAction (sceneRule, action,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

SceneToDelayAction参数说明

参数名/方法 类型 说明 备注 必需
actionId int 延时动作的id
cronTime String 延时动作的延时时间
actionValid int 延时动作是否有效 1有效,0无效
actionList List 延时执行的一些列动作列表 这里的SceneToAction的
actionId字段无效

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

删除延时动作

请求参数:

参数名 类型 说明 备注 必需
sceneRule SceneRule 延时动作所属的规则
delayAction SceneToDelayAction 要删除的延时动作 延时动作可以配置延
时时间和一系列动作
callback Icallback 回调函数

例子:

IotCloudSDK.getSceneRuleManager().deleteSceneDelayAction (sceneRule, delayAction,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

执行手动规则

请求参数:

参数名 类型 说明 备注 必需
sceneRule SceneRule 手动场景的规则
callback Icallback 回调函数

例子:

IotCloudSDK.getSceneRuleManager().executeManualSceneRule (sceneRule,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

获取场景规则触发的记录

请求参数:

参数名 类型 说明 备注 必需
count int 期望的记录数量
callback Icallback 回调函数

例子:

IotCloudSDK.getSceneRuleManager().getSceneRuleRecordList (count,

new Icallback>() {

@Override

public void onSuccess(List result) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result List

result的说明:

如果要获取记录的详情,即是触发了哪些动作的执行,可以使用前面介绍的通过规则id获取规则详情的接口

参数名 类型 说明 备注 必需
ruleId int 场景的规则id
datetime String 时间 年-月-日 时:分:秒
name String 场景的规则的名字

创建场景规则联动动作

​ 联动动作属于所属规则id,属于规则下的一个动作。

参数名 类型 说明 备注 必需
ruleId Int 规则id
condoper Int 条件间的关
1表示&操作
2表示 l 操作,
0表示没有操作符,
单个条件
subRuleCondList List
联动动作触
发条件
多个条件用condoper
字段连接
subRuleActionList List
联动动作触
发动作
frequencyFlag RuleFrequencyFlag 多条件联动
触发规则
RULE_DEF_FLAG,//0
默认
RULE_NOT_JUDGE,// 1
RULE_JUDGE//2
ICallback Function 回调函数

子规则(联动) 0 判断规则真值改变,连续为真只触发第一次,真假真再触发

​ 1 不判断规则真值改变,上报真就触发联动

传入RULE_JUDGE将会传入默认值(RULE_DEF_FLAG)创建后不可修改此字段

例子:

IotCloudSDK.getSceneRuleManager().createSubRule(ruleId,condoper, subRuleCondList, subRuleActionList,frequencyFlag,new ICallback() {

​ @Override

​ public void onSuccess(String actionId) {

​ }

​ @Override

​ public void onError(ErrorMessage errorMessage) {

​ }

​ });

返回参数:

参数名 类型 说明 备注 必需
actionId String 联动动作Id
errorMessage ErrorMessage 错误码 参照错误码

删除场景规则联动动作

​ 删除规则联动动作

请求参数

参数名 类型 说明 备注 必需
ruleId Int 规则Id
actionId int 联动动作Id
ICallback Function 回调函数

例子:

IotCloudSDK.getSceneRuleManager().deleteSubRule(ruleId, actionId, new ICallback() {

​ @Override

​ public void onSuccess(Object o) {

​ }

​ @Override

​ public void onError(ErrorMessage errorMessage) {

​ }

​ });

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

修改场景规则联动动作

请求参数

参数名 类型 说明 备注 必需
ruleId Int 规则Id
actionId int 联动动作Id
condoper Int 条件符号 1表示&(并且),
2表示 l (或者)
subRuleCondList List
联动条件集合
frequencyFlag RuleFrequencyFlag 多条件联动
触发规则
RULE_DEF_FLAG,//0 默认
RULE_NOT_JUDGE,// 1
RULE_JUDGE//2
subRuleActionList List
联动动作集合

例子:

IotCloudSDK.getSceneRuleManager().updateSubRule(ruleId,actionId,condoper,subRuleCondList, subRuleActionList,frequencyFlag, new ICallback() {

​ @Override

​ public void onSuccess(Object o) {

​ listener.onSuccess("");

​ }

​ @Override

​ public void onError(ErrorMessage errorMessage) {

​ listener.onError(errorMessage.getCode(), errorMessage.getMessage());

​ }

​ });

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

获取用户当前所处场景规则联动动作

​ 当场景执行后如果没有出发其他场景则会一直处于当前场景。将场景修改或开启和关闭将会重置场景。如果此时没有触发其他场景,则当前不会处于任何场景。

请求参数

参数名 类型 说明 备注 必需
ICallback Funtion 回调函数

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result ICallback 返回成功信息 返回success或者需求数据

result的说明:

参数名 类型 说明 备注 必需
ruleId int 当前所处场景规则的Id 如果没有处在某场景该值为0
ruleName String 场景名称 如果没有处在某场景该值为空

多条件联动

获取多条件规则列表

​ 多条件规则下包含条件、动作、延时动作(比较特殊)。其中定时条件只能有一条。

请求参数:

参数名 类型 说明 备注 必需
callback Icallback 回调函数

例子:

IotCloudSDK.getMultiLinkManager().getRuleList(new Icallback>() {

@Override

public void onSuccess(List rules) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result List 返回成功信息 返回success或者需求数据

MultiM2MRule对象参数:

参数名 类型 说明 备注 必需
ruleId int 规则唯一id
status int 规则状态 1表示启用,0表示不启
,**-1**表示数据
库获取不到值
ruleName String 规则名称
condoper Int 条件之间的
关系
1表示同时满足条件
2表示满足任一条件
(触发器场景此字段有效)
ruleType int 规则类型 1 手动执行规则
2 定时执行规则
3 触发器规则
触发器规则是指触发
的条件是设备上报的
数据点的数值满足一
个范围而执行的条件
-1表示数据库获取不到值
frequencyFlag RuleFrequencyFlag 多条件联动
触发规则
RULE_DEF_FLAG,//0 默认
RULE_NOT_JUDGE,// 1
RULE_JUDGE//2
conditionList List
规则的条件 规则的条件可能没有,
比如手动规则,也可
能只有一个,比如定
时规则,也可能有多
个,比如触发器规则
actionList List
规则的动作
delayActionList List
规则的延时
动作
延时动作比较特殊需要

MultiM2Mcondition对象的参数

参数名/方法 类型 说明 备注 必需
condId int 条件唯一id
condName String 条件名称
condType int 条件类型 1:数据点触发的条件
2:定时触发的条件
productId int 产品id 当condType=3的时候有效
getDeviceId() 方法 对应设备的id 当condType=3的时候有效,
并且可能为iotId或者subIotId,
即主设备或子设备的id
condoper int 条件的操作符 1表示&操作 2表示 l 操作,
0表示没有操作符,单个条件
dpName String 功能点名称 当condType=3的时候有效,
用户创建条件的时候可配置,
紧用于存储显示
cronTime int 时间配置 condType为2或者3时有效。
不重复就是Unix时间戳 重复
循环就是从零点开始的时间秒数
cronCircle int 定时循环 condType为2或者3时不为空。
0 不循环 1-127周一至周日循环
condValid int 条件是否有效标
志位
1:有效 0:无效 如果条件
被标记为无效,那么只能删除,
如果不删除会导致规则不能开启
dpKey String 设备功能点键值 当condType=3的时候有效
getSymbolAndValueList() 方法 获取功能点对应
的符号和值
当condType=3的时候有效
例如条件是温度大于5
即tempture > 5
符号就是 > 值就是 5
分别用symbol和value
isRepeatAllDay() 方法 判断当前定时配
置是否每天都重复
当condType=2的时候有效
getRepeatWeek() 方法 可以依次返回值
List
每个元素的值都对应Week
类中的int常量
例如Week.MON 表示周一
以此类推Week.SUN
表示周日

MultiM2Maction对象的参数

参数名/方法 类型 说明 备注 必需
actionId int 动作唯一id
actionType int 动作类型 4指向规则开启或关闭的动作
8 向设备发送命令的动作
actionName String 动作名称
productId int 产品id 当actionType=8的时候有效
dpName String 功能点名称 当actionType=8的时候有效,
用户创建条件的时候可配置,
紧用于存储显示
getDeviceId() 方法 对应设备的id 当actionType=8的时候有效,
并且可能为iotId或者subIotId,
即主设备或子设备的id
ruleId int 指向的多条件联
动规则id
当actionType=4的时候有效
actionValid int 当前动作有效还
是无效
1:有效 0:无效
ruleStatus int 指向的多条件联
动规则的状态
当actionType=4的时候有效,
1表示目标场景开启
0表示目标场景关闭
getKeyAndValue() 方法 获取当前发送的
命令的功能点的键值对
KeyAndValue.key表示功能点的键
KeyAndValue.value表示命令对应的值

通过多条件联动规则id获取规则详情

请求参数:

参数名 类型 说明 备注 必需
ids List 多条件联动的规则id列表 可以通过规则id获取规则详情,
获取的内容同上
callback Icallback 回调函数

例子:

IotCloudSDK.getMultiLinkManager().getRuleList(ids, new Icallback>() {

@Override

public void onSuccess(List rules) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result List 返回成功信息 返回success或者需求数据

获取可用于配置动作指向多条件联动规则开关的信息列表

请求参数:

参数名 类型 说明 备注 必需
multiM2MRule MultiM2MRule 多条件联动规则 用于规则过滤,即返回的列表不
会返回传入的规则,否则会可能
选择到的动作配置自己联动自己。
callback Icallback 回调函数

例子:

IotCloudSDK.getMultiLinkManager().getAction2RuleList(multiM2MRule,

new Icallback>() {

@Override

public void onSuccess(List result) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result List< MultiM2Mcond2Rule> 返回成功信息 返回success或者需求数据

result列表参数:

参数名 类型 说明 备注 必需
ruleId int 多条件联动规则id 可用于配置动作
status int 多条件联动规则的当前的状态 1启用
0不启用
表示多条件联动当前是开启
还是关闭,可作为参考
ruleName String 场景的规则名称

创建多条件联动规则

请求参数:

参数名 类型 说明 备注 必需
multiM2MRule MultiM2MRule 新增的规则集合 实现有参的构造函数
创建成功后传入的该对象
的ruleId字段会被赋值
即multiM2MRule.ruleId可用
可做修改和删除操作
frequencyFlag RuleFrequencyFlag 多条件联动触发规则 RULE_DEF_FLAG,//0 默认
RULE_NOT_JUDGE,// 1
ULE_JUDGE//2
callback Icallback 回调函数

传入的multiM2MRule需要用户先自动创建,然后传入接口调用

MultiM2MRule multiM2MRule = new MultiM2MRule(String ruleName, int ruleType,RuleFrequencyFlag frequencyFlag );

ruleType可以从如下类型中选择

/*

1 手动触发的规则

2 定时触发的规则

3 通过设备功能点上报数据满足条件触发的规则

*/

public static final int RULE_TYPE_MANUAL = 1;

public static final int RULE_TYPE_TIMER = 2;

public static final int RULE_TYPE_TRIGGER = 3;

RuleFrequencyFlag参数说明:

RuleFrequencyFlag为枚举类,传入时SDK将会自动转换

RULE_DEF_FLAG,//0 默认

RULE_NOT_JUDGE,// 1

RULE_JUDGE//2

触发执行 0 场景不可连续触发,处于当前场景时,不再触发

​ 1 场景可连续触发,不判断规则真值改变,上报真就触发

​ 2 场景可连续触发,判断规则真值改变,连续为真只触发第一次

当ruleType为手动执行和定时执行时 RuleFrequencyFlag只支持RULE_NOT_JUDGE

ruleName表示多条件规则名称

例子:

IotCloudSDK.getMultiLinkManager().createRule(multiM2MRule,

new Icallback() {

@Override

public void onSuccess(MultiM2MRule rule) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result MultiM2MRule 多条件联动规则 参照获取多条件联动规则列表参数说明

更新多条件联动规则名称

请求参数:

参数名 类型 说明 备注 必需
rule MultiM2MRule 要修改名称的场景规则
newName String 新名称
callback ISDKCallback 回调函数

例子:

IotCloudSDK.getMultiLinkManager().updateRuleName(rule, newName,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

更改多条件联动规则的开关状态

请求参数:

参数名 类型 说明 备注 必需
changeRuleStatus ChangeMultiM2MruleStatus 修改多条件联动规则的开启、关闭状态 实现有参的构造函数
callback Icallback 回调函数

ChangeMultiM2MruleStatus changeRuleStatus = new ChangeMultiM2MruleStatus(

​ MultiM2MRule rule,

int status

);

rule 要更改状态的多条件联动规则

status 更改的状态,可以从如下选择

MultiM2MRule 的静态常量

/*

1表示启用,0表示不启用

​ */

public static final int RULE_STATUS_OPEN = 1;

public static final int RULE_STATUS_CLOSE = 0;

例子:

IotCloudSDK.getMultiLinkManager().changeRuleStatus(changeRuleStatus,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

修改触发器多条件联动规则下条件间的操作符

当规则的类型是触发器规则时,配置有效。

请求参数:

参数名 类型 说明 备注 必需
rule MultiM2MRule 多条件联动规则
condoper int 条件间的关系 1表示&(并且),2表示 l (或者)
callback ISDKCallback 回调函数

例子:

IotCloudSDK.getMultiLinkManager().changeRuleConditionOperator(rule, condoper,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

删除多条件联动规则

请求参数:

参数名 类型 说明 备注 必需
id int 多条件联动规则id
callback ISDKCallback 回调函数

例子:

IotCloudSDK.getMultiLinkManager().deleteRule(id, new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

给多条件联动规则添加条件

请求参数:

参数名 类型 说明 备注 必需
multiM2MRule MultiM2MRule 要添加条件的规则
multiM2Mcondition MultiM2Mcondition 要添加的条件 创建成功后传入的该对象的
condId字段会被赋值 即
multiM2Mcondition.condId可用 可做修改和删除操作
callback Icallback 回调函数

MultiM2Mcondition multiM2Mcondition = new MultiM2Mcondition(String condName);

condName,要创建的条件名称

setConditionName(String condName); //可用于临时修改内存中的条件名称

需要填充配置数据

设置定时配置(同一个条件只能是一种类型,条件创建完成后,类型不能修改,可以修改具体参数,定时条件只能有一条)

multiM2Mcondition.setTimerData(int time, @Week int cronCircle);

cronCircle当定时不需要重复的时候直接填入Week.NULL

当需要按星期定时循环的时候可以使用Week.MON | Week.TUES | Week.WED

就是按照星期一、星期二、星期三循环

即cronCircle = Week.MON | Week.TUES | Week.WED

如果需要每天都循环的话可以直接传入Week.ALL_DAY(包含周一到周日)

time当cronCircle表示是不需要重复的时候,time表示UNIX时间戳

当cronCircle表示按星期重复的时候,time表示当天0点到目前时刻的秒钟数

即15:02:03则time = 15 3600 + 2 60 + 3

设置触发器配置(同一个条件只能是一种类型,条件创建完成后,类型不能修改,可以修改具体参数,可以有多条)

multiM2Mcondition.setTriggerData(int productId, String devId, String dpName, String key, String symbol1, String value1, String operator, String symbol2, String value2);

productId表示对应设备的产品id

devId表示对应设备的iotId或者对应子设备的subIotId

dpName 由用户传入,可填写功能点的中文说明

key 在云平台配置的设备的功能点变量名

symbol1、value1、operator、symbol2、value2

这个几个条件表示符号和值还有操作符

例如条件是温度大于20并且小与30

即tempture>20&tempture<30

symbol1和symbol2可以填写>、<、=、>=、<=、!=

operator可以填写&或者|(表示并且、或者)

operator、symbol2、value2可以为空,为空表示只需要一个范围

即tempture>20

例子:

IotCloudSDK.getMultiLinkManager().createCondition(multiM2MRule, multiM2Mcondition,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

修改多条件联动规则的条件

请求参数:

参数名 类型 说明 备注 必需
multiM2MRule MultiM2MRule 条件所属的规则
multiM2Mcondition MultiM2Mcondition 要修改的条件
callback Icallback 回调函数

需要填充配置数据

设置定时配置(同一个条件只能是一种类型,条件创建完成后,类型不能修改,可以修改具体参数,定时条件只能有一条)

multiM2Mcondition.setTimerData(int time, @Week int cronCircle);

cronCircle当定时不需要重复的时候直接填入Week.NULL

当需要按星期定时循环的时候可以使用Week.MON | Week.TUES | Week.WED

就是按照星期一、星期二、星期三循环

即cronCircle = Week.MON | Week.TUES | Week.WED

如果需要每天都循环的话可以直接传入Week.ALL_DAY(包含周一到周日)

time当cronCircle表示是不需要重复的时候,time表示UNIX时间戳

当cronCircle表示按星期重复的时候,time表示当天0点到目前时刻的秒钟数

即15:02:03则time = 15 3600 + 2 60 + 3

设置触发器配置(同一个条件只能是一种类型,条件创建完成后,类型不能修改,可以修改具体参数,可以有多条)

multiM2Mcondition.setTriggerData(int productId, String devId, String dpName, String key, String symbol1, String value1, String operator, String symbol2, String value2);

productId表示对应设备的产品id

devId表示对应设备的iotId或者对应子设备的subIotId

dpName 由用户传入,可填写功能点的中文说明

key 在云平台配置的设备的功能点变量名

symbol1、value1、operator、symbol2、value2

这个几个条件表示符号和值还有操作符

例如条件是温度大于20并且小与30

即tempture>20&tempture<30

symbol1和symbol2可以填写>、<、=、>=、<=、!=

operator可以填写&或者|(表示并且、或者)

operator、symbol2、value2可以为空,为空表示只需要一个范围

即tempture>20

例子:

IotCloudSDK.getMultiLinkManager().updateCondition(multiM2MRule, multiM2Mcondition,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

删除多条件联动规则的某个条件

请求参数:

参数名 类型 说明 备注 必需
multiM2MRule MultiM2MRule 条件所属的规则
multiM2Mcondition MultiM2Mcondition 要删除的条件
callback Icallback 回调函数

例子:

IotCloudSDK.getMultiLinkManager().deleteCondition(multiM2MRule, multiM2Mcondition,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

给多条件联动规则添加动作

请求参数:

参数名 类型 说明 备注 必需
multiM2MRule MultiM2MRule 要添加动作的规则
multiM2Maction MultiM2Maction 要添加的动作 创建成功后传入的该对象的
actionId字段会被赋值 即
multiM2Maction.actionId
可用 可做修改和删除操作
callback Icallback 回调函数

MultiM2Maction multiM2Maction = new MultiM2Maction(String actionName);

actionName 要添加的动作名称

setActionName(String actionName); // 可临时修改内存中的动作名称

需要填充配置

设置指定规则开启、禁用配置(同一个动作只能是一种类型,动作创建完成后,类型不能修改,可以修改具体参数)

multiM2Maction.setSwitchData(int ruleId, int ruleStatus);

ruleId 需要控制开启禁用的场景的规则id

ruleStatus 开启、禁用的状态

MultiM2MRule 的静态常量

/*

1表示启用,0表示不启用

​ */

public static final int RULE_STATUS_OPEN = 1;

public static final int RULE_STATUS_CLOSE = 0;

需要填充配置

设置给指定设备发送命令的配置(同一个动作只能是一种类型,动作创建完成后,类型不能修改,可以修改具体参数)

multiM2Maction.setCommandData(int productId, String devId, String key, String value, String dpName);

productId 对应的设备的产品id

devId 对应的设备的iotId或者对应的子设备的subIotId

key 网页上配置的设备功能点的变量名

value 对设备发送命令的具体数值

dpName 由用户填入,可以填写key的中文说明

例子:

IotCloudSDK.getMultiLinkManager().createAction(multiM2MRule, multiM2Maction,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

修改多条件联动规则的动作

请求参数:

参数名 类型 说明 备注 必需
multiM2MRule MultiM2MRule 动作所属的规则
multiM2Maction MultiM2Maction 要修改的动作
callback Icallback 回调函数

需要填充配置

设置指定规则开启、禁用配置(同一个动作只能是一种类型,动作创建完成后,类型不能修改,可以修改具体参数)

multiM2Maction.setSwitchData(int ruleId, int ruleStatus);

ruleId 需要控制开启禁用的场景的规则id

ruleStatus 开启、禁用的状态

MultiM2MRule 的静态常量

/*

1表示启用,0表示不启用

​ */

public static final int RULE_STATUS_OPEN = 1;

public static final int RULE_STATUS_CLOSE = 0;

需要填充配置

设置给指定设备发送命令的配置(同一个动作只能是一种类型,动作创建完成后,类型不能修改,可以修改具体参数)

multiM2Maction.setCommandData(int productId, String devId, String key, String value, String dpName);

productId 对应的设备的产品id

devId 对应的设备的iotId或者对应的子设备的subIotId

key 网页上配置的设备功能点的变量名

value 对设备发送命令的具体数值

dpName 由用户填入,可以填写key的中文说明

例子:

IotCloudSDK.getMultiLinkManager().updateAction(multiM2MRule, multiM2Maction,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

删除多条件联动规则的某个动作

请求参数:

参数名 类型 说明 备注 必需
multiM2MRule MultiM2MRule 动作所属的规则
multiM2Maction MultiM2Maction 要删除的动作
callback Icallback 回调函数

例子:

IotCloudSDK.getMultiLinkManager().deleteAction(multiM2MRule, multiM2Maction,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

给多条件联动规则创建延时动作

请求参数:

参数名 类型 说明 备注 必需
multiM2MRule MultiM2MRule 要添加延时
动作的规则
delayAction MultiM2MdelayAction 要添加的延
时动作
延时动作可以配置延时时间和
一系列动作 创建成功后传入
的该对象的actionId字段会被
赋值 即delayAction.actionId
可用 可做修改和删除操作
callback Icallback 回调函数

MultiM2MdelayAction delayAction = new MultiM2MdelayAction(int cronTime);

cronTime要延时的秒钟数

例如要延时1小时10分钟6秒

cronTime = 1 3600 + 10 3600 + 6;

setDelayTimeData(int cronTime); // 可用于临时修改内存中的延时时间

延时动作除了时间的配置外,还可以添加多个普通动作,就是前面提到的动作

注意延时动作中的MultiM2Maction的actionId字段无效

delayAction.addAction(MultiM2Maction action);

例子:

IotCloudSDK.getMultiLinkManager().createDelayAction(MultiM2MRule, delayAction,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

MultiM2MdelayAction参数说明

参数名/方法 类型 说明 备注 必需
actionId int 延时动作的id
cronTime String 延时动作的延时
时间
actionValid int 延时动作是否有效 1有效,0无效
actionList List
延时执行的一些
列动作列表
这里的MultiM2Maction
的 actionId字段无效

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

修改延时动作

请求参数:

参数名 类型 说明 备注 必需
MultiM2MRule MultiM2MRule 延时动作所属的规则
delayAction MultiM2MdelayAction 要修改的延时动作 延时动作可以配置延
时时间和一系列动作
callback Icallback 回调函数

cronTime要延时的秒钟数

例如要延时1小时10分钟6秒

cronTime = 1 3600 + 10 3600 + 6;

setDelayTimeData(int cronTime); // 可用于临时修改内存中的延时时间

延时动作除了时间的配置外,还可以添加多个普通动作,就是前面提到的动作

注意延时动作中的MultiM2Maction的actionId字段无效

delayAction.addAction(MultiM2Maction action);

如果要更新actionList中的某个动作,直接参照上边修改规则的动作方法修改,但不能调用其对应的修改接口,只是修改内存中的内容,然后调用下面的接口整体修改延时动作

如果要删除掉actionList中的某个或者某几个动作,则直接从list按照引用或者下标删除,然后调用更新接口即可

例子:

IotCloudSDK.getMultiLinkManager().updateDelayAction(multiM2MRule, delayAction,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

MultiM2MdelayAction参数说明

参数名/方法 类型 说明 备注 必需
actionId int 延时动作的id
cronTime String 延时动作的延
时时间
actionValid int 延时动作是否有效 1有效,0无效
actionList List
延时执行的一些
列动作列表
这里的MultiM2Maction
的 actionId字段无效

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

删除延时动作

请求参数:

参数名 类型 说明 备注 必需
multiM2MRule MultiM2MRule 延时动作所属的规则
delayAction MultiM2MdelayAction 要删除的延时动作 延时动作可以配置延
时时间和一系列动作
callback Icallback 回调函数

例子:

IotCloudSDK.getMultiLinkManager().deleteDelayAction(multiM2MRule, delayAction,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

执行手动多条件联动规则

请求参数:

参数名 类型 说明 备注 必需
multiM2MRule MultiM2MRule 手动多条件联动的规则
callback Icallback 回调函数

例子:

IotCloudSDK.getMultiLinkManager().executeManualRule(multiM2MRule,

new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

获取多条件联动规则触发的记录

请求参数:

参数名 类型 说明 备注 必需
count int 期望的记录数量
callback Icallback 回调函数

例子:

IotCloudSDK.getMultiLinkManager().getRuleRecordList(count,

new Icallback>() {

@Override

public void onSuccess(List result) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result List

result的说明:

如果要获取记录的详情,即是触发了哪些动作的执行,可以使用前面介绍的通过规则id获取规则详情的接口

参数名 类型 说明 备注 必需
ruleId int 场景的规则id
datetime String 时间 年-月-日 时:分:秒
name String 场景的规则的名字

创建多条件联动规则联动动作

​ 联动动作属于所属规则id,属于规则下的一个动作。只有当ruleType=3下可以创建

参数名 类型 说明 备注 必需
ruleId Int 规则id
condoper Int 条件间的关
1表示&操作
2表示\
操作,
0表示没有操作符,
单个条件
subRuleCondList List
联动动作触
发条件
多个条件用condoper
字段连接
subRuleActionList List
联动动作触
发动作
frequencyFlag RuleFrequencyFlag 多条件联动
触发规则
RULE_DEF_FLAG,//0
默认
RULE_NOT_JUDGE,//
1
RULE_JUDGE//2
ICallback Function 回调函数

RuleFrequencyFlag参数说明:

RuleFrequencyFlag为枚举类,传入时SDK将会自动转换

RULE_DEF_FLAG,//0 默认

RULE_NOT_JUDGE,// 1

RULE_JUDGE//2

子规则(联动) 0 判断规则真值改变,连续为真只触发第一次,真假真再触发

只能在ruleType=3下创建 1 不判断规则真值改变,上报真就触发联动

传入RULE_JUDGE将会传入默认值(RULE_DEF_FLAG)创建后不可修改此字段

例子:

IotCloudSDK.getMultiLinkManager().createSubRule(ruleId,condoper, subRuleCondList, subRuleActionList,frequencyFlag,new ICallback() {

​ @Override

​ public void onSuccess(String actionId) {

​ }

​ @Override

​ public void onError(ErrorMessage errorMessage) {

​ }

​ });

返回参数:

参数名 类型 说明 备注 必需
actionId String 联动动作Id
errorMessage ErrorMessage 错误码 参照错误码

删除多条件联动规则联动动作

​ 删除规则联动动作只存在rule_type=3下

请求参数

参数名 类型 说明 备注 必需
ruleId Int 规则Id
actionId int 联动动作Id
ICallback Function 回调函数

例子:

IotCloudSDK.getSceneRuleManager().deleteSubRule(ruleId, actionId, new ICallback() {

​ @Override

​ public void onSuccess(Object o) {

​ }

​ @Override

​ public void onError(ErrorMessage errorMessage) {

​ }

​ });

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

修改多条件联动规则联动动作

只存在rule_type=3下

请求参数

参数名 类型 说明 备注 必需
ruleId Int 规则Id
actionId int 联动动作Id
condoper Int 条件符号 1表示&(并且),
2表示\
(或者)
subRule
CondList
List
联动条件
集合
frequencyFlag RuleFrequencyFlag 多条件联动
触发规则
RULE_DEF_FLAG,//0
默认
RULE_NOT_JUDGE,//
1
RULE_JUDGE//2
subRule
ActionList
List
联动动作
集合

例子:

IotCloudSDK.getSceneRuleManager().updateSubRule(ruleId,actionId,condoper,subRuleCondList, subRuleActionList,frequencyFlag, new ICallback() {

​ @Override

​ public void onSuccess(Object o) {

​ listener.onSuccess("");

​ }

​ @Override

​ public void onError(ErrorMessage errorMessage) {

​ listener.onError(errorMessage.getCode(), errorMessage.getMessage());

​ }

​ });

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
Copyright & copy qinglianyun all right reserved,powered by Gitbook该文件修订时间: 2021-04-22 18:53:48

results matching ""

    No results matching ""