# 设备 HTTP API
# 1 鉴权
参照 mqtt 鉴权数据,使用deviceSecret生成签名,按照 rfc3986 规则进行 url 编码后,添加到请求参数中。
- 请求参数:
字段名 | 位置 | 说明 |
device_name | path | 设备标识 |
product_key | path | 产品标识 |
sign_method | path | 签名算法:hmacsha256, hmacsha1 |
random | path | 随机字符串,长度 8~16 |
sign | path | 签名 |
- 签名计算方式(同设备文件上传接口):
使用sign_method为签名算法,以device_secret为密钥,对拼接字符串计算签名,字符串固定格式为:"productKey{product_key}deviceName{device_name}random{random}"
签名示例:
请求示例:
POST https://app.api.fogcloud.io/openapi/v1/thing-uplink?
device_name=xxxx
&product_key=xxxx
&sign_method=xxxx
&random=xxxx
&sign=xxxx # 2 接口
整体 API 风格使用 rpc 风格,请求体、返回体和 mqtt 协议保持一致(http 协议返回体的 data 字段同 mqtt 协议 payload 的 params 字段),减少设备端和云端适配代码。
固定接入地址:(不建议,有安全问题)
http://app.api.fogcloud.io/openapi/v1/thing-uplink
或使用 https:
https://app.api.fogcloud.io/openapi/v1/thing-uplink
# 2.1 物模型
# 2.1.1 设备上报属性 (PostProperty)
- 请求参数
字段名 | 位置 | 说明 |
action | path | PostProperty |
event_id | path | 物模型事件标识 |
- 请求示例
POST http://app.api.fogcloud.io/openapi/v1/thing-uplink?action=PostProperty
&device_name=xxxx
&product_key=xxxx
&sign_method=xxxx
&random=xxxx
&sign=xxxx - 返回示例
{
"code": 0,
"message": "SUCCESS",
"data": {}
} # 2.1.2 设备上报事件 (PostEvent)
- 请求参数
字段名 | 位置 | 说明 |
action | path | PostEvent |
event_id | path | 物模型事件标识 |
- 请求示例
POST http://app.api.fogcloud.io/openapi/v1/thing-uplink?action=PostEvent
&device_name=xxxx
&product_key=xxxx
&sign_method=xxxx
&random=xxxx
&sign=xxxx
&event_id=xxxx # 2.1.3 设备上报服务响应 (PostServiceReply)
- 请求参数
字段名 | 位置 | 说明 |
action | path | PostServiceReply |
service_id | path | 物模型服务标识 |
- 接口地址
POST http://app.api.fogcloud.io/openapi/v1/thing-uplink?action=PostServiceReply
&device_name=xxxx
&product_key=xxxx
&sign_method=xxxx
&random=xxxx
&ts=xxxx
&sign=xxxx
&service_id=xxxx # 2.2 hex 数据
# 2.2.1 设备上报 hex 数据 (PostHex)
- 请求参数
字段名 | 位置 | 说明 |
action | path | PostHex |
- 请求示例
POST http://app.api.fogcloud.io/openapi/v1/thing-uplink?action=PostHex
&device_name=xxxx
&product_key=xxxx
&sign_method=xxxx
&random=xxxx
&sign=xxxx # 2.2.2 设备上报子设备 hex 数据 (PostSubHex)
- 请求参数
字段名 | 位置 | 说明 |
action | path | PostSubHex |
- 请求示例
POST http://app.api.fogcloud.io/openapi/v1/thing-uplink?action=PostSubHex
&device_name=xxxx
&product_key=xxxx
&sign_method=xxxx
&random=xxxx
&sign=xxxx # 2.3 modbus 数据
# 2.3.1 modbus 请求
- 请求参数
字段名 | 位置 | 说明 |
action | path | PostModbus |
- 请求示例
POST http://app.api.fogcloud.io/openapi/v1/thing-uplink?action=PostModbus
&device_name=xxxx
&product_key=xxxx
&sign_method=xxxx
&random=xxxx
&sign=xxxx - 请求体
{
"id": 123,
"version": "1.0",
"method": "edge.get"
} # 2.3.2 modbus 子设备数据上报
- 请求参数
字段名 | 位置 | 说明 |
action | path | PostModbusSub |
- 请求示例
POST http://app.api.fogcloud.io/openapi/v1/thing-uplink?action=PostModbusSub
&device_name=xxxx
&product_key=xxxx
&sign_method=xxxx
&random=xxxx
&sign=xxxx # 2.4 星型拓扑
- 请求参数
字段名 | 位置 | 说明 |
action | path | PostStarTopo |
- 请求示例
POST http://app.api.fogcloud.io/openapi/v1/thing-uplink?action=StarTopo
&device_name=xxxx
&product_key=xxxx
&sign_method=xxxx
&random=xxxx
&sign=xxxx
&method=add # 2.5 mesh 拓扑
- 请求参数
字段名 | 位置 | 说明 |
action | path | PostMeshTopo |
- 请求示例
POST http://app.api.fogcloud.io/openapi/v1/thing-uplink?action=PostMeshTopo
&device_name=xxxx
&product_key=xxxx
&sign_method=xxxx
&random=xxxx
&sign=xxxx # 2.6 设备影子
- 请求参数
字段名 | 位置 | 说明 |
action | path | PostShadow |
- 请求示例
POST http://app.api.fogcloud.io/openapi/v1/thing-uplink?action=PostShadow
&device_name=xxxx
&product_key=xxxx
&sign_method=xxxx
&random=xxxx
&sign=xxxx # 2.7 ota
- 请求参数
字段名 | 位置 | 说明 |
action | path | PostOTA |
- 请求示例
POST http://app.api.fogcloud.io/openapi/v1/thing-uplink?action=PostOTA
&device_name=xxxx
&product_key=xxxx
&sign_method=xxxx
&random=xxxx
&sign=xxxx # 2.8 NTP
- 请求参数
字段名 | 位置 | 说明 |
action | path | PostNTP |
- 请求示例
POST http://app.api.fogcloud.io/openapi/v1/thing-uplink?action=PostNTP
&device_name=xxxx
&product_key=xxxx
&sign_method=xxxx
&random=xxxx
&sign=xxxx # 2.9 系统消息
- 请求参数
字段名 | 位置 | 说明 |
action | path | PostSysMsg |
- 请求示例
POST http://app.api.fogcloud.io/openapi/v1/thing-uplink?action=PostSysMsg
&device_name=xxxx
&product_key=xxxx
&sign_method=xxxx
&random=xxxx
&sign=xxxx # 2.10 远程诊断
- 请求参数
字段名 | 位置 | 说明 |
action | path | PostRemoteDiagnosis |
- 请求示例
POST http://app.api.fogcloud.io/openapi/v1/thing-uplink?action=PostRemoteDiagnosis
&device_name=xxxx
&product_key=xxxx
&sign_method=xxxx
&random=xxxx
&sign=xxxx