查询规则
接口说明
应用服务器可调用此接口查询物联网平台中指定规则的配置信息。
调试
您可以在API Explorer中直接运行调试该接口。
URI
|
请求方法 |
GET |
|---|---|
|
URI |
/v5/iot/{project_id}/rules/{rule_id} |
|
传输协议 |
HTTPS |
请求参数
|
名称 |
必选/可选 |
类型 |
位置 |
说明 |
|---|---|---|---|---|
|
X-Auth-Token |
必选 |
String |
Header |
参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 |
|
Instance-Id |
可选 |
String |
Header |
参数说明:实例ID。物理多租下各实例的唯一标识,一般华为云租户无需携带该参数,仅在物理多租场景下从管理面访问API时需要携带该参数。 |
|
project_id |
必选 |
String |
Path |
参数说明:项目ID。获取方法请参见 获取项目ID。 |
|
rule_id |
必选 |
String |
Path |
参数说明:规则ID,用于唯一标识一条规则,在创建规则时由物联网平台分配获得。 取值范围:长度不超过32,只允许字母、数字的组合。 |
响应参数
|
名称 |
类型 |
说明 |
|---|---|---|
|
rule_id |
String |
规则id。 |
|
name |
String |
规则名称。 |
|
description |
String |
规则的描述信息。 |
|
condition_group |
ConditionGroup Object |
规则的条件组,包含简单规则和复杂规则集合。 |
|
actions |
List<RuleAction> |
规则的动作列表,单个规则最多支持设置10个动作。 |
|
rule_type |
String |
规则的类型
|
|
status |
String |
规则的状态,默认值:active。
|
|
app_id |
String |
资源空间ID。此参数为非必选参数,存在多资源空间的用户需要使用该接口时,建议携带该参数指定创建的规则归属到哪个资源空间下,否则创建的规则将会归属到默认资源空间下。 |
|
edge_node_ids |
List<String> |
归属边缘侧节点设备ID列表。 |
|
last_update_time |
String |
规则最后更新时间,使用UTC时区,格式:yyyyMMdd'T'HHmmss'Z'。 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
conditions |
List<RuleCondition> |
规则的条件列表,单个规则最多支持设置10个条件。 |
|
logic |
String |
规则条件列表中多个条件之间的逻辑关系,默认值:and。
|
|
time_range |
TimeRange Object |
规则条件触发的有效时间段。 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
type |
String |
规则条件的类型,取值范围:
|
|
device_property_condition |
DeviceDataCondition Object |
条件中设备数据类型的信息,当type为DEVICE_DATA时,为必选参数 |
|
simple_timer_condition |
SimpleTimerType Object |
条件中简单定时类型的信息,当type为SIMPLE_TIMER时,为必选参数 |
|
daily_timer_condition |
DailyTimerType Object |
条件中每日定时类型的信息,当type为DAILY_TIMER时,为必选参数 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
device_id |
String |
设备ID,用于唯一标识一个设备,在注册设备时由物联网平台分配获得。当rule_type为DEVICE_LINKAGE时,该参数值和product_id不能同时为空。如果该参数和product_id同时存在时,以该参数值对应的设备进行条件过滤。 |
|
product_id |
String |
设备关联的产品ID,用于唯一标识一个产品模型,在管理门户导入产品模型后由平台分配获得。当rule_type为DEVICE_LINKAGE时,该参数值和device_id不能同时为空。如果该参数和device_id同时存在时,以device_id参数值对应的设备进行条件过滤。 |
|
filters |
List<PropertyFilter> |
数据过滤条件 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
path |
String |
设备属性的路径信息,格式:service_id/DataProperty,例如门磁状态为“DoorWindow/status”。 |
|
operator |
String |
数据比较的操作符,当前支持的操作符有:>,<,>=,<=,=和between:表示数值区间,geo.circle.in:表示圆形区域范围内,geo.circle.out:表示圆形区域范围外。 |
|
value |
String |
数据比较表达式的右值。与数据比较操作符between联用时,右值表示最小值和最大值,用逗号隔开,如“20,30”表示大于等于20小于30。 |
|
strategy |
Strategy Object |
规则条件的处理策略,用于确定规则是否判断上次数据是否满足条件。 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
trigger |
String |
规则条件触发的判断策略,默认为pulse。
|
|
event_valid_time |
Integer |
设备数据的有效时间,单位为秒,设备数据的产生时间以上报数据中的eventTime为基准。 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
start_time |
String |
规则触发的开始时间,使用UTC时区,格式:yyyyMMdd'T'HHmmss'Z'。 |
|
repeat_interval |
Integer |
规则触发的重复时间间隔,单位为秒。 |
|
repeat_count |
Integer |
规则触发的重复次数。 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
time |
String |
规则触发的时间,格式:HH:MM。 |
|
days_of_week |
String |
星期列表,以逗号分隔。1代表周日,2代表周一,依次类推,默认为每天。 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
start_time |
String |
规则条件触发的开始时间,格式:HH:mm。 |
|
end_time |
String |
规则条件触发的结束时间,格式:HH:mm。若结束时间与开始时间一致,则时间为全天。 |
|
days_of_week |
String |
星期列表,以逗号分隔。1代表周日,2代表周一,依次类推,默认为每天。星期列表中的日期为开始时间的日期。 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
type |
String |
规则动作的类型,取值范围:
|
|
smn_forwarding |
ActionSmnForwarding Object |
发送给SMN消息结构。当type为SMN_FORWARDING时,必填。 |
|
device_alarm |
ActionDeviceAlarm Object |
上报设备告警消息内容。当type为DEVICE_ALARM时,必填。 |
|
device_command |
ActionDeviceCommand Object |
下发设备命令消息内容。当type为DEVICE_CMD时,必填。 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
region_name |
String |
SMN服务对应的region区域 |
|
project_id |
String |
SMN服务对应的projectId信息 |
|
theme_name |
String |
SMN服务对应的主题名称 |
|
topic_urn |
String |
SMN服务对应的topic的主题URN |
|
message_content |
String |
短信或邮件的内容。 |
|
message_title |
String |
短信或邮件的主题。 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
name |
String |
告警名称。 |
|
alarm_status |
String |
告警状态。
|
|
severity |
String |
告警级别,取值范围:warning(警告)、minor(一般)、major(严重)和critical(致命)。 |
|
description |
String |
告警的描述信息。 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
device_id |
String |
下发命令的设备ID。
|
|
cmd |
CMD Object |
下发的命令信息。 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
command_name |
String |
设备命令名称,在设备关联的产品模型中定义。 |
|
command_body |
object |
设备命令参数,Json格式。 使用LWM2M协议设备命令示例:{"value":"1"},里面是一个个健值对,每个健都是产品模型中命令的参数名(paraName)。 使用MQTT协议设备命令示例:{"header": {"mode": "ACK","from": "/users/testUser","method": "SET_TEMPERATURE_READ_PERIOD","to":"/devices/{device_id}/services/{service_id}"},"body": {"value" : "1"}}。
|
|
service_id |
String |
设备命令所属的设备服务ID,在设备关联的产品模型中定义。 |
|
buffer_timeout |
Integer |
设备命令的缓存时间,单位为秒,表示物联网平台在把命令下发给设备前缓存命令的有效时间,超过这个时间后命令将不再下发,默认值为172800s(48小时)。 如果buffer_timeout设置为0,则无论物联网平台上设置的命令下发模式是什么,该命令都会立即下发给设备。 |
|
response_timeout |
Integer |
命令响应的有效时间,单位为秒,表示设备接收到命令后,在response_timeout时间内响应有效,超过这个时间未收到命令的响应,则认为命令响应超时,默认值为1800s。 |
|
mode |
String |
设备命令的下发模式,仅当buffer_timeout的值大于0时有效。
|
请求示例
GET https://{Endpoint}/v5/iot/{project_id}/rules/{rule_id}
Content-Type: application/json
X-Auth-Token: ********
Instance-Id: ********
响应示例
Status Code: 200 OK
Content-Type: application/json
{
"rule_id" : "string",
"name" : "string",
"description" : "string",
"condition_group" : {
"conditions" : [ {
"type" : "string",
"device_property_condition" : {
"device_id" : "string",
"product_id" : "string",
"filters" : [ {
"path" : "string",
"operator" : "string",
"value" : "string",
"strategy" : {
"trigger" : "string",
"event_valid_time" : 0
}
} ]
},
"simple_timer_condition" : {
"start_time" : "string",
"repeat_interval" : 0,
"repeat_count" : 0
},
"daily_timer_condition" : {
"time" : "string",
"days_of_week" : "string"
}
} ],
"logic" : "string",
"time_range" : {
"start_time" : "string",
"end_time" : "string",
"days_of_week" : "string"
}
},
"actions" : [ {
"type" : "string",
"addition" : [ "string" ],
"smn_forwarding" : {
"region_name" : "string",
"project_id" : "string",
"theme_name" : "string",
"topic_urn" : "string",
"message_content" : "string",
"message_title" : "string"
},
"device_alarm" : {
"name" : "string",
"alarm_status" : "string",
"severity" : "string",
"description" : "string"
},
"device_command" : {
"device_id" : "string",
"cmd" : {
"command_name" : "string",
"service_id" : "string",
"buffer_timeout" : 0,
"response_timeout" : 0,
"mode" : "string"
}
}
} ],
"rule_type" : "string",
"status" : "string",
"app_id" : "string",
"edge_node_id" : [ "string" ],
"last_update_time" : "string"
}
错误码
|
HTTP状态码 |
错误码 |
错误码英文描述 |
错误码中文描述 |
处理建议 |
|---|---|---|---|---|
|
400 |
IOTDA.000006 |
Invalid input data. |
请求参数不合法 |
请排查请求参数是否符合华为云文档要求。 |
|
IOTDA.000013 |
Invalid input. The parameter 'pageSize' multiply 'pageNo' exceeds the upper limit. |
查询范围查过最大限制。 |
请检查pageSize和pageNo参数的大小。 |
|
|
403 |
IOTDA.000004 |
Invalid access token. |
非法token |
请排查请求中的token是否正常。 |
|
IOTDA.000021 |
Operation not allowed. User not found by IAM token or the authorized user has not subscribed IOTDA service. |
没有找到IAM Token所对应的用户信息或该用户没有订阅设备接入服务(IOTDA) |
请排查IAM Token所在用户是否订阅了设备接入服务(IOTDA)。 |
|
|
IOTDA.001000 |
The application does not exist. |
该应用不存在 |
请确定是否已在平台注册应用并检查应用ID是否正确。 |
|
|
IOTDA.001002 |
Operation not allowed. The application has not been authorized. |
该应用没有权限访问 |
请检查该应用是否已被授权。 |
|
|
IOTDA.001005 |
Operation not allowed. The parameter 'app_id' is not carried, and the authorized user has more than one applications. Include the parameter 'app_id', or contact Huawei technical support engineers to merge application data. |
该用户下有多个应用的情况下未携带appId访问接口 |
请携带对应的appId或联系华为工程师合并应用数据。 |
|
|
IOTDA.001006 |
Operation not allowed. Application not found by authorized user or the authorized user has no application. |
用户下没有应用或应用与用户不匹配 |
请排查用户下是否有应用或是否有指定的应用。 |
|
|
IOTDA.001007 |
Operation not allowed. The application does not belong to the authorized user. |
应用与用户信息不匹配 |
请排查该用户下是否有指定的应用。 |
|
|
404 |
IOTDA.010002 |
The rule does not exist. |
该规则不存在 |
请确认平台是否存在该规则或请求参数是否正确。 |
|
500 |
IOTDA.000020 |
Decrypt IAM token failed. |
IAM Token解析失败 |
请联系华为工程师分析解决。 |
Last Article: 创建定时规则(按天触发)
Next Article: 修改规则
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.