Skip to content

HTTP协议设备接入

准备工作

启动物联网平台

请参考教程5分钟快速运行

创建产品

访问产品管理菜单栏,点击创建产品按钮,根据页面提示填写参数,然后单击“确定”,完成产品的创建。

参数 参数值
产品名称电表
所属品类标准品类
选择标准品类进入选择品类页面,输入多功能电表,点击查询,选择搜索结果
节点类型直连设备
接入协议HTTP
数据类型标准物模型
网络类型以太网
工厂根据实际情况填写
描述请根据实际情况填写

点击进入产品详情页面,点击"为发布"按钮,发布产品。

创建设备

访问设备管理菜单栏,点击添加设备按钮,添加方式选择单个设备,根据页面提示填写参数,然后单击“确定”,完成设备的创建。

参数 参数值
设备名称test_001
所属产品电表
关联驱动不填写
设备描述请根据实际情况填写

下载官方HTTP驱动

访问驱动镜像菜单栏,点击驱动市场,下载HTTP协议驱动。

下载成功后,会在我的驱动出现一条记录。

设备与驱动绑定

访问设备管理菜单栏,勾选刚刚创建的设备,点击批量驱动绑定按钮,弹出绑定页面,关联驱动选择HTTP官方驱动开头的数据,点击确定按钮进行绑定。

绑定成功后,关联驱动一栏会出现驱动具体驱动名称。

启动驱动

访问我的驱动菜单栏,点击操作->编辑按钮。

打开Docker启动参数开关,输入-p 8089:8089 点击确定。

点击启动按钮,启动官方驱动。

下载接口请求模拟工具

准备Postman客户端。下载地址:https://www.postman.com/

认证鉴权

用户调用如下接口时,需要在请求Header中添加token,token的值是采用HmacMD5算法计算出来的。 其中输入为 设备ID与产品编号拼接,中间用&分割,Key为设备密钥,如图。

在计算连接密码时,可以使用在线工具辅助计算。https://www.idcd.com/tool/encrypt/hmac

设备在线

URL

POST /api/v1/device/online/:deviceId/:productId

deviceId与productId需要根据项目实际情况做替换。

请求参数

请求Header参数

参数 是否必选 参数类型 描述
tokenString参数说明:获取方法样例请参见认证鉴权

响应参数

公共参数

参数 参数类型 描述
successBool参数说明:是否调用成功。
codeInteger参数说明:调用失败时,返回的错误码,更多信息,请参见状态码
error_msgString参数说明:调用失败时,返回的出错信息。

请求示例

json
curl --location --request POST 'http://81.68.82.102:8090/api/v1/device/online/36475151/37402339' \
--header 'token: 47a6d2cea9bdac9e6dd4f79afd72f0fb'

响应示例

json
{
  "success": true,
  "code": 200,
  "error_msg": "success"
}

设备离线

URL

POST /api/v1/device/offline/:deviceId/:productId

deviceId与productId需要根据项目实际情况做替换。

请求参数

请求Header参数

参数 是否必选 参数类型 描述
tokenString参数说明:获取方法样例请参见认证鉴权

响应参数

公共参数

参数 参数类型 描述
successBool参数说明:是否调用成功。
codeInteger参数说明:调用失败时,返回的错误码,更多信息,请参见状态码
error_msgString参数说明:调用失败时,返回的出错信息。

请求示例

json
curl --location --request POST 'http://81.68.82.102:8090/api/v1/device/offline/36475151/37402339' \
--header 'token: 47a6d2cea9bdac9e6dd4f79afd72f0fb'

响应示例

json
{
  "success": true,
  "code": 200,
  "error_msg": "success"
}

设备属性上报

URL

POST /api/v1/device/thing/property/post/:deviceId/:productId

deviceId与productId需要根据项目实际情况做替换。

请求参数

请求Header参数

参数 是否必选 参数类型 描述
tokenString参数说明:获取方法样例请参见认证鉴权

请求Body参数

参数名称类型说明
idString消息ID号。String类型,每个消息ID在当前设备中具有唯一性。
versionString协议版本号,目前协议版本号唯一取值为1.0。
paramsObject请求参数。如以上示例中,设备上报了的两个属性Ia(A相电流)和Ib(B相电流)的信息。具体属性信息,包含属性上报时间(time)和上报的属性值(value)。
timeInteger属性上报时间戳,类型为UTC毫秒级时间。
该参数为可选字段。根据您的业务场景决定消息中是否带时间戳。如果消息频繁,需根据时间戳判断消息顺序,建议消息中带有时间戳。
若上传time,物联网平台的云端保存上传的时间作为属性上报时间。
若不上传time,物联网平台的云端自动生成属性上报时间并保存。
valueAny上报的属性值。

响应参数

公共参数

参数 参数类型 描述
successBool参数说明:是否调用成功。
codeInteger参数说明:调用失败时,返回的错误码,更多信息,请参见状态码
error_msgString参数说明:调用失败时,返回的出错信息。

请求示例

json
curl --location 'http://81.68.82.102:8090/api/v1/device/thing/property/post/36475151/37402339' \
--header 'token: 47a6d2cea9bdac9e6dd4f79afd72f0fb' \
--header 'Content-Type: application/json' \
--data '{
    "id":"ea2d8a36-844c-4d49-8102-5e6ce7d90b57",
    "params":{
        "Ia":{
            "value":40,
            "time":1712473482000
        }
    }
}'

响应示例

json
{
    "success": true,
    "code": 200,
    "error_msg": "success"
}

设备事件上报

URL

POST /api/v1/device/thing/event/post/:deviceId/:productId

deviceId与productId需要根据项目实际情况做替换。

请求参数

请求Header参数

参数 是否必选 参数类型 描述
tokenString参数说明:获取方法样例请参见认证鉴权

请求Body参数

参数名称类型说明
idString消息ID号。String类型,每个消息ID在当前设备中具有唯一性。
versionString协议版本号,目前协议版本号唯一取值为1.0。
paramsObject请求参数。如以上示例中,设备上报了M_STATUS(表计通讯故障)事件。
eventTimeInteger属性上报时间戳,类型为UTC毫秒级时间。
该参数为可选字段。根据您的业务场景决定消息中是否带时间戳。如果消息频繁,需根据时间戳判断消息顺序,建议消息中带有时间戳。
若上传time,物联网平台的云端保存上传的时间作为属性上报时间。
若不上传time,物联网平台的云端自动生成属性上报时间并保存。
eventCodeString事件标识符。
outputParamsAny事件输出参数。

响应参数

公共参数

参数 参数类型 描述
successBool参数说明:是否调用成功。
codeInteger参数说明:调用失败时,返回的错误码,更多信息,请参见状态码
error_msgString参数说明:调用失败时,返回的出错信息。

请求示例

json
curl --location 'http://81.68.82.102:8090/api/v1/device/thing/event/post/36475151/37402339' \
--header 'token: 47a6d2cea9bdac9e6dd4f79afd72f0fb' \
--header 'Content-Type: application/json' \
--data '{
  "id":"ea2d8a36-844c-4d49-8102-5e6ce7d90b33",
  "version":"1.0",
  "params":{
    "eventCode":"Error",
    "eventTime":1712474219000,
    "outputParams":{
      "M_STATUS":true
    }
  }
}'

响应示例

json
{
  "success": true,
  "code": 200,
  "error_msg": "success"
}

状态码

状态码 信息 说明
200-成功
10001system error系统错误
10002rpc request errorrpc请求错误
10003too many requests并发请求数据超过设定
10004the format of result is error请求数据格式错误
20001device not found未找到该设备
30001product not found未找到该产品
40001data size is not within the defined range上报数据大小未在指定区间
40002data report type error上报数据格式错误
40003property code not found属性标识符没有找到
40004event code not found事件标识符没有找到
40005data length is greater than the defined上报数据长度未在指定区间
40006invalid Parameter无效的uri参数
40007auth PermissionDenytoken错误