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
}
@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
}
@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
}
@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
}
@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
}
@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
}
@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
}
@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 | 错误码 | 参照错误码 | 是 |