设备接入 IoTDA设备接入 IoTDA

更新时间:2021/09/06 GMT+08:00
分享

查询规则

接口说明

应用服务器可调用此接口查询物联网平台中指定规则的配置信息。

调试

您可以在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

规则的类型

  • DEVICE_LINKAGE:设备联动。

status

String

规则的状态,默认值:active。

  • active:激活。
  • inactive:未激活。

app_id

String

资源空间ID。此参数为非必选参数,存在多资源空间的用户需要使用该接口时,建议携带该参数指定创建的规则归属到哪个资源空间下,否则创建的规则将会归属到默认资源空间下。

edge_node_ids

List<String>

归属边缘侧节点设备ID列表。

last_update_time

String

规则最后更新时间,使用UTC时区,格式:yyyyMMdd'T'HHmmss'Z'。

表1 ConditionGroup

名称

类型

说明

conditions

List<RuleCondition>

规则的条件列表,单个规则最多支持设置10个条件。

logic

String

规则条件列表中多个条件之间的逻辑关系,默认值:and。

  • and:逻辑且。
  • or:逻辑或。

time_range

TimeRange Object

规则条件触发的有效时间段。

表2 RuleCondition

名称

类型

说明

type

String

规则条件的类型,取值范围:

  • DEVICE_DATA:设备数据类型条件。
  • SIMPLE_TIMER:简单定时类型条件。
  • DAILY_TIMER:每日定时类型条件。

device_property_condition

DeviceDataCondition Object

条件中设备数据类型的信息,当type为DEVICE_DATA时,为必选参数

simple_timer_condition

SimpleTimerType Object

条件中简单定时类型的信息,当type为SIMPLE_TIMER时,为必选参数

daily_timer_condition

DailyTimerType Object

条件中每日定时类型的信息,当type为DAILY_TIMER时,为必选参数

表3 DeviceDataCondition

名称

类型

说明

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>

数据过滤条件

表4 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

规则条件的处理策略,用于确定规则是否判断上次数据是否满足条件。当rule_type为DEVICE_LINKAGE时,该参数值不能为空。

表5 Strategy

名称

类型

说明

trigger

String

规则条件触发的判断策略,默认为pulse。

  • pulse:设备上报的数据满足条件则触发,不判断上一次上报的数据。
  • reverse:设备上一次上报的数据不满足条件,本次上报的数据满足条件则触发。

event_valid_time

Integer

设备数据的有效时间,单位为秒,设备数据的产生时间以上报数据中的eventTime为基准。

表6 SimpleTimerType

名称

类型

说明

start_time

String

规则触发的开始时间,使用UTC时区,格式:yyyyMMdd'T'HHmmss'Z'。

repeat_interval

Integer

规则触发的重复时间间隔,单位为秒。

repeat_count

Integer

规则触发的重复次数。

表7 DailyTimerType

名称

类型

说明

time

String

规则触发的时间,格式:HH:MM。

days_of_week

String

星期列表,以逗号分隔。1代表周日,2代表周一,依次类推,默认为每天。

表8 TimeRange

名称

类型

说明

start_time

String

规则条件触发的开始时间,格式:HH:mm。

end_time

String

规则条件触发的结束时间,格式:HH:mm。若结束时间与开始时间一致,则时间为全天。

days_of_week

String

星期列表,以逗号分隔。1代表周日,2代表周一,依次类推,默认为每天。星期列表中的日期为开始时间的日期。

表9 RuleAction

名称

类型

说明

type

String

规则动作的类型,取值范围:

  • DEVICE_CMD:下发设备命令消息类型。
  • SMN_FORWARDING:发送SMN消息类型。
  • DEVICE_ALARM:上报设备告警消息类型。当选择该类型时,condition中必须有DEVICE_DATA条件类型。该类型动作只能唯一。

smn_forwarding

ActionSmnForwarding Object

发送给SMN消息结构。当type为SMN_FORWARDING时,必填。

device_alarm

ActionDeviceAlarm Object

上报设备告警消息内容。当type为DEVICE_ALARM时,必填。

device_command

ActionDeviceCommand Object

下发设备命令消息内容。当type为DEVICE_CMD时,必填。

表10 ActionSmnForwarding

名称

类型

说明

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

短信或邮件的主题。

表11 ActionDeviceAlarm

名称

类型

说明

name

String

告警名称。

alarm_status

String

告警状态。

  • fault:上报告警。
  • recovery:恢复告警。

severity

String

告警级别,取值范围:warning(警告)、minor(一般)、major(严重)和critical(致命)。

description

String

告警的描述信息。

表12 ActionDeviceCommand

名称

类型

说明

device_id

String

下发命令的设备ID。

  • 当创建设备数据规则时,若device_id为空,则命令下发给触发条件的设备。
  • 当创建定时规则时,不允许为空。

cmd

CMD Object

下发的命令信息。

表13 CMD

名称

类型

说明

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"}}。

  • mode:必选,设备收到命令后是否需要回复确认消息,默认为ACK模式。ACK表示需要回复确认消息,NOACK表示不需要回复确认消息,其它值无效。
  • from:可选,命令发送方的地址。App发起请求时格式为/users/{userId} ,应用服务器发起请求时格式为/{serviceName},物联网平台发起请求时格式为/cloud/{serviceName}。
  • to:可选,命令接收方的地址,格式为/devices/{device_id}/services/{service_id}。
  • method:可选,产品模型中定义的命令名称。
  • body:可选,命令的消息体,里面是一个个键值对,每个键都是产品模型中命令的参数名(paraName)。具体格式需要应用和设备约定。

service_id

String

设备命令所属的设备服务ID,在设备关联的产品模型中定义。

buffer_timeout

Integer

设备命令的缓存时间,单位为秒,表示物联网平台在把命令下发给设备前缓存命令的有效时间,超过这个时间后命令将不再下发,默认值为172800s(48小时)。

如果buffer_timeout设置为0,则无论物联网平台上设置的命令下发模式是什么,该命令都会立即下发给设备。

response_timeout

Integer

命令响应的有效时间,单位为秒,表示设备接收到命令后,在response_timeout时间内响应有效,超过这个时间未收到命令的响应,则认为命令响应超时,默认值为1800s。

mode

String

设备命令的下发模式,仅当buffer_timeout的值大于0时有效。

  • ACTIVE:主动模式,物联网平台主动将命令下发给设备。
  • PASSIVE:被动模式,物联网平台创建设备命令后,会直接缓存命令。等到设备再次上线或者上报上一条命令的执行结果后才下发命令。

请求示例

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解析失败

请联系华为工程师分析解决。

分享:

    相关文档

    相关产品