# API 列表

# 1 设备管理

# 1.1 设置设备属性

  • 使用说明:

设置设备属性值。

  • 接口地址:
POST /openapi/v1/things/{device_id}/properties
  • 请求参数:

字段名

类型

位置

是否必填

说明

device_id

string

path

true

设备 id

  • 请求体:

字段名

类型

说明

params

list

设备属性列表(具体属性可以查询设备所属产品的物模型)

  • 返回参数:

字段名

类型

说明

message_id

uint32

当前设备消息唯一 id,用于调试

  • 请求示例:
POST /openapi/v1/things/7e90e6fdf4a543dUeAPS/properties
{
    "params": {
        "property1": 1,
        "property2": "hello"
    }
}
  • 返回示例:
{
    "code": 0,
    "message": "success",
    "data": {
        "message_id": 1
    }
}

# 1.2 调用设备服务

  • 使用说明:

调用设备的指定服务。设备的服务定义于设备所属产品的物模型中,调用该接口时,会根据 service_id 值,选择服务对应的调用方式。(目前只支持异步调用)

  • 接口地址:
POST /openapi/v1/things/{device_id}/services/{service_id}
  • 请求参数:

字段名

类型

位置

是否必填

说明

device_id

string

path

true

设备唯一 id

service_id

string

path

true

设备服务 id

  • 请求体:

字段名

类型

说明

params

list

设备服务参数列表(具体属性可以查询设备所属产品的物模型)

  • 返回参数:

字段名

类型

说明

message_id

uint32

当前设备消息唯一 id,用于调试

  • 请求示例:
POST /openapi/v1/things/7e90e6fdf4a543dUeAPS/services/timer
{
    "params": {
        "param1": 1,
        "param2": "hello"
    }
}
  • 返回示例:
{
    "code": 0,
    "message": "success",
    "data": {
        "message_id": 1
    }
}

# 1.3 查询设备详情

# 1. 通过 device_id 查询

  • 接口地址:
GET /openapi/v1/things/{device_id}/detail
  • 返回参数:

字段名

类型

说明

device_info

json

设备详情

device_name

string

设备名(设备三元组之一)

product_key

string

产品唯一标识(设备三元组之一)

device_secret

string

设备密钥(设备三元组之一)

device_id

string

设备唯一标识

node_type

string

节点类型:direct(直连设备),gateway(网关设备),gateway-sub(网关子设备)

protocol_type

string

协议类型:zigbee,ble

validate_type

string

设备数据校验类型:none(无校验),weak(弱校验)

data_format

string

设备数据格式:json,raw(hex 格式)

product_name

string

产品名称

nickname

string

设备昵称

register_at

date

设备注册日期

updated_at

date

设备最近更新日期

ip

string

设备 ip 地址

status

string

在线状态:online(在线),offline(离线)

  • 请求示例:
GET /openapi/v1/things/xxx/detail
  • 返回示例:
{
    "code": 0,
    "message": "SUCCESS",
    "data": {
        "device_info": {
            "device_secret": "xxxx",
            "device_name": "000000b0",
            "product_key": "f4e7b826",
            "node_type": "direct",
            "protocol_type": "",
            "validate_type": "none",
            "data_format": "json",
            "product_name": "xxxx",
            "nickname": "",
            "device_id": "xxx",
            "register_at": "0001-01-01T00:00:00Z",
            "updated_at": "0001-01-01T00:00:00Z",
            "ip": "",
            "status": "unactive",
            "access_key": "xxxx"
        }
    }
}

# 2.通过 device_name 和 product_key 查询

  • 接口地址:
GET /openapi/v1/products/{product_key}/device-names/{device_name}/detail
  • 请求示例:
GET /openapi/v1/products/xxx/device-names/xxx/detail

# 1.4 查询设备在线状态

  • 使用说明:

查询设备在线状态。

  • 接口地址:
GET /openapi/v1/things/{device_id}/status
  • 请求参数:

字段名

类型

位置

是否必填

说明

device_id

string

path

true

设备唯一 id

  • 返回参数:

字段名

类型

说明

status

string

online,offline

  • 请求示例:
GET /openapi/v1/things/b951e7fd4221460xK2Ni/status
  • 返回示例:
{
    "code": 0,
    "message": "success",
    "data": {
      "status": "online"
    }
}

# 1.5 修改设备状态

  • 使用说明:

修改设备状态。

  • 接口地址:
PUT /openapi/v1/things/{device_id}/status
  • 请求参数:

字段名

类型

位置

是否必填

说明

device_id

string

path

true

设备唯一 id

  • 请求体:

字段名

类型

说明

action

string

enable(启用)

disble(禁用)

unbind (解绑)

bind (绑定)

  • 请求示例:
PUT /openapi/v1/things/b951e7fd4221460xK2Ni/status
{
    "action": "enable"
}
  • 返回示例:
{
    "code": 0,
    "message": "success"
}

# 1.6 验证蓝牙设备身份

  • 使用说明:

用于设备蓝牙辅助配网时设备身份校验。

  • 接口地址:
POST /openapi/v1/auth/ble/products/{product_key}/identity
  • 请求参数:

字段名

类型

位置

是否必填

说明

product_key

string

path

true

产品唯一标识

  • 请求体:

字段名

类型

说明

device_name

string

设备名称

random

string

配网时用户身份标识

cipher

string

密钥,用于校验身份

  • 返回参数:

字段名

类型

说明

ble_key

string

用于设备、app 数据交互

  • 请求示例:
{
    "device_name": "xxx",
    "random": "xxx",
    "cipher": "xxx"
}
  • 返回示例:
{
    "code": 0,
    "message": "success",
    "data": {
        "ble_key": "xxx"
    }
}

# 1.7 修改网关设备拓扑动作

  • 使用说明:

用于管理网关设备与子设备的拓扑关系。网关设备收到消息后会进入对应状态。

  • 接口地址:
PUT /openapi/v1/things/{device_id}/topo
  • 请求参数:

字段名

类型

位置

是否必填

说明

device_id

string

path

true

网关设备 id,设备唯一标识

  • 请求体:

字段名

类型

说明

action

string

sub.add.start(开始子设备添加)

sub.add.stop(停止子设备添加)

session_id

string

当动作为 sub.add.stop 时必填

params

object

参数

timeout

int

网关添加子设备超时时间,单位秒; 不传则默认为 60;

product_keys

array

网关添加的子设备类型,即子设备的 product_key

  • 返回参数:

字段名

类型

说明

session_id

string

该次配网请求唯一标识

  • 请求示例:
PUT /openapi/v1/things/5a7060a3822d4b6Yc25j/topo
{
  "action": "sub.add.start",
  "params": {
    "timeout": 10, //网关添加子设备超时时间,单位秒; 不传则默认为60;
    "product_keys": ["xxx", "xxx"]
  }
}
  • 返回示例:
{
    "code": 0,
    "message": "success",
    "data": {
        "session_id": "xxxx"
    }
}
  • 请求示例:
PUT /openapi/v1/things/5a7060a3822d4b6Yc25j/topo
{
  "action": "sub.add.stop",
  "session_id": "xxx"
}
  • 返回示例:
{
    "code": 0,
    "message": "success"
}

# 1.8 删除设备拓扑关系

  • 使用说明:

用于删除网关与子设备的拓扑关系

  • 接口地址:
DELETE /openapi/v1/things/{device_id}/topo
  • 请求体:

字段名

类型

说明

params

list

子设备列表

device_name

string

设备名称

product_key

string

产品唯一标识

  • 请求示例:
DELETE /openapi/v1/things/5a7060a3822d4b6Yc25j/topo
{
  "params": [
    {
      "device_name": "xxx",
      "product_key": "xxx"
    },
    {
      "device_name": "xxx",
      "product_key": "xxx"
    }
  ]
}
  • 返回示例:
{
    "code": 0,
    "message": "success"
}

# 1.9 查询设备拓扑关系

  • 使用说明:

用于获取网关设备下的子设备信息

  • 接口地址:
GET /openapi/v1/things/{device_id}/topo
  • 请求参数:

字段名

类型

位置

是否必填

说明

device_id

string

path

true

网关设备 id,设备唯一标识

session_id

string

query

true

配网动作唯一标识

  • 返回参数:

字段名

类型

说明

device_id

string

子设备 id,设备唯一标识

device_name

string

子设备三元组设备名

product_key

string

子设备三元组产品名

  • 请求示例:
GET /openapi/v1/things/xxx/topo?session_id=xxx
  • 返回示例:
{
    "code": 0,
    "message": "success",
    "data": {
      "sub_devices": [
        {
          "device_id": "xxx",
          "device_name": "xxx",
          "product_key": "xxx"
        },
        {
          "device_id": "xxx",
          "device_name": "xxx",
          "product_key": "xxx"
        }
      ]
    }
}

# 1.10 查询设备物模型属性

  • 使用说明:

查询设备最新属性。

  • 接口地址:
GET /openapi/v1/things/{device_id}/properties
  • 请求参数:

字段名

类型

位置

是否必填

说明

device_id

string

path

true

设备 id

  • 返回参数:

字段名

类型

说明

properties

object

设备属性

  • 请求示例:
GET /openapi/v1/things/xxx/properties
  • 返回示例:
{
    "code": 0,
    "message": "success",
    "data": {
      "properties": {
        "prop1": 1,
        "prop2": 2,
        "prop3": 3
      }
    }
}

# 2 产品管理

# 2.1 查询单个产品详情

  • 接口地址:
GET /openapi/v1/products/{product_key}
  • 请求参数:

字段名

类型

位置

是否必填

说明

product_key

string

path

true

产品唯一标识

  • 返回参数:

字段名

类型

说明

product_info

json

产品详情

product_key

string

产品唯一标识

product_secret

string

产品密钥

name

string

产品名称

device_type

string

设备品类

network_type

string

网络类型:wifi,ethernet,cellular,lorawan,others

node_type

string

节点类型:

direct(直连设备),

gateway(网关设备),

gateway-sub(网关子设备)

protocol_type

string

协议类型:zigbee,ble

validate_type

string

设备数据校验类型:

none(无校验),

weak(弱校验)

data_format

string

设备数据格式:

json,raw(hex 格式)

register_at

date

设备注册日期

updated_at

date

产品最近更新日期

created_at

date

产品创建日期

dynamic_register

bool

动态注册开关

status

string

状态:

developing(开发中),

released(已发布)

  • 请求示例:
GET /openapi/v1/products/6f2f5483
  • 返回示例:
{
    "code": 0,
    "message": "SUCCESS",
    "data": {
        "product_info": {
            "id": 11,
            "product_key": "6f2f5483",
            "product_secret": "xxxx",
            "project_id": 0,
            "name": "sub-json-test",
            "device_type": "light",
            "network_type": "",
            "protocol_type": "zigbee",
            "description": "",
            "photo_url": "http://192.168.2.111:4000/api/v1/oss/buckets/fogcloud-config?filename=XuyAq1635839607.png",
            "configuration": "",
            "created_at": "2021-11-02T15:53:32.909771+08:00",
            "updated_at": "2021-11-02T15:53:32.909772+08:00",
            "node_type": "gateway-sub",
            "data_format": "json",
            "auth_type": "secret",
            "status": "developing",
            "dynamic_register": false
        }
    }
}

# 2.2 查询产品列表

  • 使用说明:

获取当前项目下产品列表,数据分页返回

  • 接口地址:
GET /openapi/v1/products
  • 请求参数:

字段名

类型

位置

是否必填

说明

page

int

query

false

当前页数。(不传则默认为 1)

page_size

int

query

false

每页数据量。(不传则默认为 10)

  • 返回参数:

字段名

类型

说明

results

list

列表数据

total

int

数据总数

page

int

当前页数

page_size

int

当前页大小

pages

int

总页数

  • 请求示例:
GET /openapi/v1/products?page=1&page_size=2
  • 返回示例:
{
    "code": 0,
    "message": "SUCCESS",
    "data": {
        "page": 1,
        "page_size": 2,
        "pages": 0,
        "results": [
            {
                "id": 17,
                "product_key": "1ea2536e",
                "product_secret": "4abb17934225668d617b07d5f3273ee9",
                "project_id": 0,
                "name": "a",
                "device_type": "",
                "network_type": "wifi",
                "protocol_type": "",
                "description": "",
                "photo_url": "http://192.168.2.111:4000/api/v1/oss/buckets/fogcloud-config?filename=v9ZsM1636598368.png",
                "configuration": "",
                "created_at": "2021-11-11T10:39:30.439694+08:00",
                "updated_at": "2021-11-11T10:39:30.439694+08:00",
                "node_type": "direct",
                "data_format": "json",
                "auth_type": "secret",
                "status": "developing",
                "dynamic_register": false
            },
            {
                "id": 16,
                "product_key": "42a26cb7",
                "product_secret": "edb676e49cc55737429f2b03a2afe4aa",
                "project_id": 0,
                "name": "SK_TEST_VIP",
                "device_type": "",
                "network_type": "wifi",
                "protocol_type": "",
                "description": "",
                "photo_url": "http://192.168.2.111:4000/api/v1/oss/buckets/fogcloud-config?filename=ZuAbs1636532596.png",
                "configuration": "",
                "created_at": "2021-11-10T16:23:17.926998+08:00",
                "updated_at": "2021-11-11T10:39:14.243438+08:00",
                "node_type": "direct",
                "data_format": "json",
                "auth_type": "secret",
                "status": "developing",
                "dynamic_register": false
            }
        ],
        "total": 10
    }
}

# 3 物模型管理

# 3.1 查询产品物模型

  • 接口地址:
GET /openapi/v1/products/{product_key}/thing-model
  • 请求参数

字段名

类型

位置

是否必填

说明

model_type

string

query

true

物模型数据格式:metadata,tsl

  • 返回参数:

物模型数据格式见文档

  • 请求示例:
GET /openapi/v1/products/6f2f5483/thing-model?model_type=metadata
  • 返回示例:
{
    "code": 0,
    "message": "SUCCESS",
    "data": {
        "thing_model": {
            "properties": [
                {
                    "id": "param1",
                    "name": "param1",
                    "required": false,
                    "standard": false,
                    "funcType": "property",
                    "accessMode": "rw",
                    "dataType": {
                        "type": "int",
                        "size": 10,
                        "length": 10240,
                        "elementType": "int"
                    }
                }
            ],
            "events": [
                {
                    "id": "post",
                    "name": "post",
                    "required": true,
                    "standard": false,
                    "funcType": "event",
                    "desc": "属性上报",
                    "method": "thing.event.property.post",
                    "eventType": "info",
                    "outputData": [
                        {
                            "id": "param1",
                            "name": "param1",
                            "dataType": {
                                "type": "int",
                                "size": 10,
                                "length": 10240,
                                "elementType": "int"
                            }
                        }
                    ]
                }
            ],
            "services": [
                {
                    "id": "set",
                    "name": "set",
                    "required": true,
                    "standard": false,
                    "funcType": "service",
                    "desc": "属性设置",
                    "method": "thing.service.property.set",
                    "eventType": "",
                    "outputData": [],
                    "callType": "async",
                    "inputData": [
                        {
                            "id": "param1",
                            "name": "param1",
                            "dataType": {
                                "type": "int",
                                "size": 10,
                                "length": 10240,
                                "elementType": "int"
                            }
                        }
                    ]
                }
            ]
        }
    }
}

# 4 设备影子查询

# 4.1 查询设备影子

  • 接口说明:

设备影子包含设备最新的属性值、期望的属性值、在线状态,和属性更新时间戳。

  • 接口地址:
GET /openapi/v1/things/{device_id}/shadow
  • 返回参数: 设备影子数据格式见文档

  • 请求示例:
GET /openapi/v1/things/4b1da8c4faee4deP1Ljl/shadow
  • 返回示例:
{
    "code": 0,
    "message": "SUCCESS",
    "data": {
        "thing_shadow": {
            "state": {
                "desired": {
                    "brightness": 777,
                    "switch": 1
                },
                "reported": {}
            },
            "metadata": {
                "desired": {
                    "brightness": {
                        "timestamp": 1635478451
                    },
                    "switch": {
                        "timestamp": 1635478451
                    }
                },
                "reported": {}
            },
            "id": 0,
            "timestamp": 1635478451,
            "status": "offline"
        }
    }
}

# 4.2 更新设备影子期望值

  • 接口说明:

设置设备影子期望值,可用于设备离线时进行控制指令缓存,设备恢复网络连接后可以根据期望值进行属性更新。

  • 接口地址:
PUT /openapi/v1/things/{device_id}/shadow
  • 请求体:

字段名

类型

说明

state

json 对象

期望的设备属性数据

  • 请求示例:
PUT /openapi/v1/things/4b1da8c4faee4deP1Ljl/shadow
{
    "state": {
        "desired": {
            "switch": 1,
            "brightness": 666
        }
    }
}
  • 返回示例:
{
    "code": 0,
    "message": "SUCCESS"
}

# 5 固件升级相关

# 5.1 检查设备更新

  • 接口地址:
GET /openapi/v1/things/{device_id}/upgrade?module=default
  • 请求参数

字段名

类型

位置

是否必填

说明

device_id

string

path

true

设备唯一 id

module

string

query

false

模块名称(不传则默认为 default)

  • 返回参数:

字段名

类型

说明

size

int32

固件大小,单位 byte

sign

string

固件 md5 签名

sign_method

string

摘要算法,固定为 md5

version

string

固件版本,采用"x.y.z"格式

url

string

固件下载 url

module

string

模块名称

task_id

string

当前固件升级任务唯一标识

description

string

固件描述

  • 请求示例:
GET /openapi/v1/things/60ff5696991b405bkmhn/upgrade
  • 返回示例:
{
    "code": 0,
    "message": "SUCCESS",
    "data": {
        "size": 0,
        "sign": "90d5683b2887b65fc65b5a4b93248fd0",
        "sign_method": "MD5",
        "version": "1.0.1",
        "url": "http://example.com/api/v1/oss/buckets/fogcloud-firmware?filename=f4e7b826/1635748072ekh3Yt.zip",
        "module": "default",
        "task_id": "15",
        "description": "xxxx"
    }
}

# 5.2 升级设备

  • 接口地址:
POST /openapi/v1/things/{device_id}/upgrade
  • 请求体

字段名

类型

说明

task_id

string

固件升级任务唯一标识

  • 请求示例:
POST /openapi/v1/things/60ff5696991b405bkmhn/upgrade
{
    "task_id": "xxx"
}
  • 返回示例:
{
    "code": 0,
    "message": "SUCCESS"
}

# 5.3 查询设备升级进度

  • 接口地址:
GET /openapi/v1/things/{device_id}/upgrade-step?task_id=0
  • 请求参数

字段名

类型

位置

是否必填

说明

device_id

string

path

true

设备唯一 id

task_id

string

query

false

任务 id

  • 返回参数:

字段名

类型

说明

step

int32

升级进度。-1(升级失败),0~100(升级进度百分比)

  • 请求示例:
GET /openapi/v1/things/60ff5696991b405bkmhn/upgrade-step?task_id=1
  • 返回示例:
{
    "code": 0,
    "message": "SUCCESS",
    "data": {
        "step": 10
    }
}

# 5.4 查询设备固件版本号

  • 接口地址:
GET /openapi/v1/things/{device_id}/version?module=default
  • 请求参数

字段名

类型

位置

是否必填

说明

module

string

query

false

模块名称(默认为 default)

  • 返回参数:

字段名

类型

说明

version

string

版本号

  • 请求示例:
GET /openapi/v1/things/60ff5696991b405bkmhn/version?module=mcu
  • 返回示例:
{
    "code": 0,
    "message": "SUCCESS",
    "data": {
        "version": "1.2.1"
    }
}

# 6 规则引擎

# 6.1 新增场景

  • 接口地址:
POST /openapi/v1/rule-engine/scenes
  • 请求参数:

字段名

类型

位置

是否必填

说明

name

string

body

true

场景名称,具有唯一性

desc

string

body

false

场景描述

status

string

body

true

场景状态。取值:enable(启用),disable(禁用)

triggers

array

body

false

触发条件

conditions

array

body

false

执行条件

actions

array

body

false

执行动作

  • 触发条件字段说明:

字段名

类型

位置

是否必填

说明

URI

enum

body

true

触发类型:

"trigger/device/property"(设备属性),

"trigger/device/event"(设备事件),

"trigger/device/status"(设备状态),

"trigger/cron"(定时器)

params

struct

body

true

详细触发参数

params.product_key

string

body

true

产品身份标识,三元组之一

params.device_name

string

body

true

设备身份标识,三元组之一

(注:设置为"*"时,表示产品下任意设备)

params.property_id

string

body

false

设备属性 id

(注:设置为"*"时,表示任意属性)

params.event_id

string

body

false

设备事件 id

(注:设置为"*"时,表示任意事件)

params.status

enum

body

false

设备状态:

"online"(在线)

"offline"(离线)

"*"(任意状态)

(注:触发类型为设备状态时可用)

params.compare_type

enum

body

false

比较类型:

"=="(等于)

"!="(不等于)

">"(大于)

">="(大于或等于)

"<"(小于)

"<="(小于或等于)

"between"(闭区间)

"in"(在......之中)

"notIn"(不在......之中)

"like"(字符串 like 匹配)

params.compare_val

string

body

false

比较值

params.cron

string

body

false

标准 cron 表达式(支持秒)

(注:触发类型为定时器时可用)

  • 执行条件字段说明:

字段名

类型

位置

是否必填

说明

URI

enum

body

true

执行条件类型:

"condition/device/property"(设备属性),

"condition/device/status"(设备状态),

"condition/time/range"(时间范围)

params

struct

body

true

详细触发参数

params.product_key

string

body

true

产品身份标识,三元组之一

params.device_name

string

body

true

设备身份标识,三元组之一;

(注:设置为"*"时,表示产品下任意设备)

params.property_id

string

body

false

设备属性 id

(注:设置为"*"时,表示任意属性)

params.status

enum

body

false

设备状态:

"online"(在线)

"offline"(离线)

"*"(任意状态)

(注:执行条件类型为设备状态时可用)

params.status_duration

int

body

false

设备状态持续时间,单位分钟;

(注:执行条件类型为设备状态时可用)

params.compare_type

string

body

false

比较类型:

"=="(等于)

"!="(不等于)

">"(大于)

">="(大于或等于)

"<"(小于)

"<="(小于或等于)

"between"(闭区间)

"in"(在......之中)

"notIn"(不在......之中)

"like"(字符串 like 匹配)

params.compare_val

string

body

false

比较值

  • 执行动作字段说明:

字段名

类型

位置

是否必填

说明

URI

enum

body

true

执行动作类型:

"action/device/property"(设置设备属性),

"action/device/service"(调用设备服务),

"action/rule"(触发其他场景)

"action/webhook"(触发 webhook)

params

struct

body

true

详细触发参数

params.scene_id

string

body

false

被触发的其他场景 id

(注:当执行动作为触发其他场景时必填)

params.device_id

string

body

false

设备唯一标识

(注:当执行动作为设备相关时必填)

params.service_id

string

body

false

设备服务 id

params.property_id

string

body

false

设备属性 id

params.items

object

body

false

设备服务调用入参或设备属性设置值

params.URL

string

body

false

webhook 的 URL

(注:当执行动作为 wehook 时必填)

params.method

string

body

false

webhook 请求方法

(注:当执行动作为 wehook 时必填)

params.desc

string

body

false

webhook 描述

(注:当执行动作为 wehook 时可用)

params.connect_timeout

int

body

false

webhook 连接超时时间,单位秒

(注:当执行动作为 wehook 时可用)

params.request_timeout

int

body

false

webhook 请求超时时间,单位秒

(注:当执行动作为 wehook 时可用)

# 请求示例

POST /openapi/v1/rule-engine/scenes
{
    "name": "rule_1",
    "status": "enable",
    "triggers": [
        {
            "URI": "trigger/device/property",
            "params": {
                "type": "trigger/device/property",
                "product_key": "de8d0d3f",
                "device_name": "00002697",
                "property_id": "prop1",
                "compare_type": "==",
                "compare_val": "100"
            }
        },
        {
            "URI": "trigger/device/event",
            "params": {
                "type": "trigger/device/event",
                "product_key": "de8d0d3f",
                "device_name": "0000270e",
                "event_id": "*"
            }
        },
        {
            "URI": "trigger/device/status",
            "params": {
                "type": "trigger/device/status",
                "time_range": {},
                "items": {},
                "product_key": "de8d0d3f",
                "device_name": "0000270f",
                "status": "online"
            }
        },
        {
            "URI": "trigger/cron",
            "params": {
                "type": "trigger/cron",
                "cron": "5 * * * * *"
            }
        }
    ],
    "conditions": [
        {
            "URI": "condition/device/property",
            "params": {
                "type": "condition/device/property",
                "product_key": "de8d0d3f",
                "device_name": "0000270e",
                "property_id": "prop2",
                "compare_type": "<",
                "compare_val": "10"
            }
        },
        {
            "URI": "condition/device/status",
            "params": {
                "type": "condition/device/status",
                "product_key": "de8d0d3f",
                "device_name": "0000270b",
                "status": "online",
                "status_duration": 10
            }
        },
        {
            "URI": "condition/time/range",
            "params": {
                "type": "condition/time/range",
                "time_range": {
                    "start_timestamp": 1646296350,
                    "end_timestamp": 1647073950
                }
            }
        }
    ],
    "actions": [
        {
            "URI": "action/device/service",
            "params": {
                "type": "action/device/service",
                "items": {
                    "prop2": "17"
                },
                "product_key": "de8d0d3f",
                "device_id": "fab44c87bf7948f6M0WI",
                "service_id": "prop2"
            }
        },
        {
            "URI": "action/webhook",
            "params": {
                "type": "action/webhook",
                "URL": "https://demo.webhook.com",
                "method": "POST",
                "connect_timeout": 10,
                "request_timeout": 10,
                "desc": "for example"
            }
        }
    ]
}

# 6.2 删除场景

  • 接口地址:
DELETE /openapi/v1/rule-engine/scenes/{id}

# 6.3 更新场景

  • 接口地址:
PUT /openapi/v1/rule-engine/scenes/{id}

请求参数同新增场景

# 6.4 查询场景详情

  • 接口地址:
GET /openapi/v1/rule-engine/scenes/{id}
  • 请求示例:
GET /openapi/v1/rule-engine/scenes/61e521e7f0988d8865d42864
  • 返回示例:
{
    "code": 0,
    "message": "请求成功",
    "data": {
        "id": "61e521e7f0988d8865d42864",
        "created_at": 1642406375,
        "updated_at": 1646382807,
        "name": "rule_1",
        "status": "enable",
        "triggers": [
            {
                "URI": "trigger/device/property",
                "params": {
                    "product_key": "de8d0d3f",
                    "device_name": "00002697",
                    "property_id": "prop1",
                    "compare_type": "==",
                    "compare_val": "100"
                }
            },
            {
                "URI": "trigger/device/event",
                "params": {
                    "product_key": "de8d0d3f",
                    "device_name": "0000270e",
                    "event_id": "*"
                }
            },
            {
                "URI": "trigger/device/status",
                "params": {
                    "product_key": "de8d0d3f",
                    "device_name": "0000270f",
                    "status": "online"
                }
            },
            {
                "URI": "trigger/cron",
                "params": {
                    "cron": "5 * * * * *",
                    "cron_id": "1499664307204395008"
                }
            }
        ],
        "conditions": [
            {
                "URI": "condition/device/property",
                "params": {
                    "product_key": "de8d0d3f",
                    "device_name": "0000270e",
                    "property_id": "prop2",
                    "compare_type": "==",
                    "compare_val": "10"
                }
            },
            {
                "URI": "condition/device/status",
                "params": {
                    "product_key": "de8d0d3f",
                    "device_name": "0000270b",
                    "status_duration": 10,
                    "status": "online"
                }
            },
            {
                "URI": "condition/time/range",
                "params": {
                    "time_range": {
                        "start_timestamp": 1646296350,
                        "end_timestamp": 1647073950
                    }
                }
            }
        ],
        "actions": [
            {
                "URI": "action/device/service",
                "params": {
                    "service_id": "prop2",
                    "device_id": "fab44c87bf7948f6M0WI",
                    "product_key": "de8d0d3f",
                    "items": {
                        "prop2": "17"
                    }
                }
            },
            {
                "URI": "action/webhook",
                "params": {
                    "URL": "https://demo.webhook.com",
                    "method": "POST",
                    "desc": "for example",
                    "connect_timeout": 10,
                    "request_timeout": 10
                }
            }
        ]
    }
}

# 6.5 查询场景列表

  • 接口地址:
GET /openapi/v1/rule-engine/scenes

# 6.6 手动执行场景动作

  • 接口地址:
POST /openapi/v1/rule-engine/scenes/{id}/actions

# 6.7 更新场景状态

  • 接口地址:
PUT /openapi/v1/rule-engine/scenes/{id}/status

# 7 对象存储服务

# 7.1 上传对象

  • 接口地址:
POST /openapi/v1/oss
  • 请求表单

字段名

类型

说明

file

binary

文件,通过 form 表单提交

  • 返回参数:

字段名

类型

说明

url

string

文件下载 url

md5

string

文件 md5 摘要

  • 请求示例:
POST /openapi/v1/oss
  • 返回示例:
{
    "code": 0,
    "message": "SUCCESS",
    "data": {
        "url": "xxx",
        "md5": "xxx"
    }
}

说明:返回的 url 支持请求头 GET/DELETE

更新时间: 2022/6/6 下午4:10:39