# 物模型通信

数据上行:

topic

说明

fogcloud/{pk}/{dn}/thing/up/property/post

设备上报属性

fogcloud/{pk}/{dn}/thing/up/event/{event_id}/post

设备上报事件

fogcloud/{pk}/{dn}/thing/up/sub

网关上报子设备数据

fogcloud/{pk}/{dn}/thing/up/through

设备上报透传数据

fogcloud/{pk}/{dn}/thing/up/service/{service_id}/reply

设备响应服务调用请求

数据下行:

topic

说明

fogcloud/{pk}/{dn}/thing/down/property/post_reply

设备接收属性上报回复

fogcloud/{pk}/{dn}/thing/down/property/set

设备接收 App 属性控制

fogcloud/{pk}/{dn}/thing/down/service/{service_id}

设备接收服务

fogcloud/{pk}/{dn}/thing/down/sub

网关接收子设备数据

fogcloud/{pk}/{dn}/thing/down/through

设备接收透传数据

payload 公共字段说明

请求:

字段

类型

说明

id

uint32

设备上报时递增

version

string

协议版本,目前为“1.0”

timestamp

int32

时间戳,单位秒

method

string

用于区分子设备数据业务类型

响应:

字段

类型

说明

id

uint32

与请求数据的 id 相同

code

int32

错误类型,0-成功,其他-参考错误代码

method 字段说明

method 字段

说明

property.post

设备上报属性、网关上报子设备属性

property.set

云端设置属性、云端设置子设备属性

event.{id}.post

设备上报事件、网关上报子设备事件

service.{id}

云端调用设备服务、云端调用子设备服务

# 1 设备属性

# 1.1 设备上报属性

数据上行:fogcloud/{pk}/{dn}/thing/up/property/post 数据下行:fogcloud/{pk}/{dn}/thing/down/property/post_reply

设备上行数据格式:

{
    "id": 1,
    "version": "1.0",
    "timestamp": 1631585734,
    "params": {
        "property1": 1,
        "property2": "on"
    }
}

云端响应数据格式:

{
    "id": 1,
    "code": 0,
    "params": {}
}

# 1.2 设置设备属性

数据下行:fogcloud/{pk}/{dn}/thing/down/property/set 数据上行:无

云端下行数据格式:

{
    "id": 1,
    "version": "1.0",
    "timestamp": 1631585734,
    "params": {
        "property1": 1,
        "property2": 2
    }
}

# 2 设备上报事件

数据上行:fogcloud/{pk}/{dn}/thing/up/event/{event_id}/post 数据下行:fogcloud/{pk}/{dn}/thing/down/event/+/post_reply

设备上行数据格式:

{
    "id": 1,
    "version": "1.0",
    "timestamp": 1631585734,
    "params": {
         "param1": 1,
         "param2": "123"
    }
}

云端响应数据格式:

{
    "id": 1,
    "code": 0,
    "params": {}
}

# 3 设备服务

# 3.1 设备调用服务

数据下行:fogcloud/{pk}/{dn}/thing/down/service/+ 数据上行:fogcloud/{pk}/{dn}/thing/up/service/{service_id}/reply

云端下行数据格式:

{
    "id": 1,
    "version": "1.0",
    "timestamp": 1631585734,
    "params": {
        "input1": 1, //对应物模型定义的对应服务的输入参数
        "input2": 2
    }
}

设备端响应数据格式:

{
    "id": 1,
    "code": 0,
    "params": {         //若该服务无返回,则为空
        "output1": 1, //对应物模型定义的对应服务的输出参数
        "output2": 2
    }
}

# 4 批量上报子设备属性/事件

(子设备是 json 格式,网关是 json 格式)

数据上行:fogcloud/{pk}/{dn}/thing/up/sub

子设备数据上报类型根据 method 字段区分为属性上报或事件上报

设备端上行数据格式:

{
    "id": 1,
    "version": "1.0",
    "params": [
        {
            "product_key": "22345600",
            "device_name": "00000020",
            "raw_data": {
                "method": "property.post", //属性上报
                "timestamp": 1631585734,
                "params": {
                    "property1": 1,
                    "property2": "on"
                }
            }
        },
        {
            "product_key": "22345600",
            "device_name": "00000020",
            "raw_data": {
                "method": "event.event_id.post", //事件上报method格式:event.${event_id}.post
                "timestamp": 1631585734,
                "params": {
                    "field1": 1,   // 入参1
                    "field2": "2"  // 入参2
                }
            }
        }
    ]
}

云端响应数据格式:

{
    "id": 1,
    "code": 0,
    "params": {}
}

# 5 批量设置子设备属性/事件

(子设备是 json 格式,网关是 json 格式)

数据下行:fogcloud/{pk}/{dn}/thing/down/sub

云端下行数据格式:

{
    "id": 1,
    "version": "1.0",
    "params": [
        {
            "product_key": "22345600",
            "device_name": "00000020",
            "raw_data": {
                "method": "property.set",
                "params": {
                    "property1": 1,
                    "property2": "on"
                }
            }
        }, 
        {
            "product_key": "22345600",
            "device_name": "00000001",
            "raw_data": {
                "method": "service.1",
                "params": {
                    "param1": 1,
                    "param2": "on"
                }
            }
        }
    ]
}
更新时间: 2023/11/14 18:20:56