欢迎使用Di-Link EasyIoT 欢迎使用Di-Link EasyIoT
技术支持 (opens new window)
技术支持 (opens new window)
npm

点击返回Di-Link EasyIoT平台

  • 速览

    • 快速开始
    • DTU联网配置
    • 常见问题
    • 实例1-污水厂刮泥机启停监测
    • 实例2-河道闸门监控(二进制)
    • 实例3-空调设备对接(Modbus)
    • 实例4-设备之间互传数据
    • 实例5-设备位置显示
    • 实例6-使用OpenAPI访问设备
      • 实例简介
      • 预期效果
      • 实例设备
      • OpenAPI使用说明
        • 1.基本说明
        • 2.头部信息
        • 3.使用过程
      • API-1 用户登录API
        • 1. URL
        • 2. 头部参数
        • 3. 数据体(BODY)
        • 4. 返回值
        • 5. 错误码
        • 6. 示意图
      • API-2 获取设备最后一次上报数据
        • 1. URL
        • 2. 头部参数
        • 3. 数据体(BODY)
        • 4. 返回值
        • 5. 错误码
        • 6. 示意图
      • API-3 向某个设备发送数据
        • 1. URL
        • 2. 头部参数
        • 3. 数据体(BODY)
        • 4. 返回值
        • 5. 错误码
        • 6. 示意图
    • 实例7-使用透传功能调试设备
    • 实例8-数据实时转发到指定API
    • 实例9-设定数据ACK、空闲离线时间、报警策略等高级功能...
  • 首页

    • 地图展示
    • 大屏展示
    • 统计信息
  • 产品管理

    • 产品管理
  • 设备管理

    • 设备清单
    • 设备授权
    • 设备录入
    • 销售出库
    • 退货入库
  • 数据中心

    • 关键数据
    • 报警数据
    • 设备日志
    • 控制日志
  • 项目管理

    • 项目清单
  • 经销商管理

    • 经销商清单
  • 个人中心

    • 个人信息
  • 联系我们

    • 联系我们
目录

实例6-使用OpenAPI访问设备

# 实例简介

本例通过IoT提供的OpenAPI接口实现设备的访问,包括设备上报数据的获取和对设备的数据下发。

# 预期效果

  • 调用API可获取设备最后一次上报的数据。
  • 调用API可向设备发送数据。

# 实例设备

使用任意一款支持串口透传的且可以配置连接到IoT系统的DTU均可实现,本例使用模拟软件完成。

# OpenAPI使用说明

# 1.基本说明

  • API协议类型为HTTP,使用HTTPS POST方法。
  • API使用第一步为用户登录,获取合法TOKEN,后续所有操作需要在头部信息种添加TOKEN。
  • API仅对在IoT注册的手机账号开放(短信登录后自动完成注册),在IoT系统创建的经销商账号无法使用API,小程序账号也无法使用API。
  • 获取TOKEN后,可以访问此账号录入的设备。

# 2.头部信息

  • X-App-Platform:5 说明:固定值。
  • X-App-Key: acacc54ca8196d370e7defd57528f934 说明:使用默认值,如果客户实施了独立部署,请使用独立部署的X-App-Key。
  • Content-Type: application/json 说明:数据体均为json格式。
  • X-User-Token: d29b75dc82ab4720b1d06b77xxxxxxxx 说明:仅用户登录接口不携带此头部参数,其他API必须携带此头部参数。

# 3.使用过程

  • 需要在IoT系统上注册(短信登录后自动完成注册)且录入了设备后才可正常使用。
  • 使用IoT系统的登录账号和密码,调用用户登录API,获取TOKEN。
  • 获取某个设备的最后一次数据。
  • 向某个设备发送透传数据。

# API-1 用户登录API

# 1. URL

POST https://iot.di-link.com/JCloud/users/logins

# 2. 头部参数

参考前文头部参数描述,不携带X-User-Token

# 3. 数据体(BODY)

{

    "username": "1369146xxxx",

    "password": "xxxxxxxx49ba59abbe56e057f20f883e",     //明文密码的md5串 32字节小写串,例如md5(123456)为 e10adc3949ba59abbe56e057f20f883e

    "role_id": "company" 

}

# 4. 返回值

{
    "result_code": "sis.api.Success",                       //状态码
    "code_message": "successful",                           //返回信息
    "res_data": [
        {
            "uid": "xxxxxxxxe1aafb19ecb7181e9456b427",      //用户ID
            "token": "xxxxxxxx82ab4720b1d06b7757c2cb39",    //用户本地登录TOKEN,有效期7天,顺延
            "role_id": "company",                           //用户角色,只有company角色可使用OpenAPI
            "app_name": "xxxxxxxx"                          //应用名称,OpenAPI不使用
        }
    ]
}

# 5. 错误码

sis.api.Success                         //成功
sis.api.InvalidParamFormat              //参数错误
sis.api.NotExistDevice                  //设备不存在
sis.sdk.DeviceCommandInvalid            //命令格式错误
sis.sdk.UnknowError                     //其他错误

# 6. 示意图

用户登录POST数据截图

login_send

用户登录头部参数截图

login_head

用户登录返回数据截图

login_return

# API-2 获取设备最后一次上报数据

# 1. URL

POST https://iot.di-link.com/device/openApi/DeviceGetLastRawData

# 2. 头部参数

参考前文头部参数描述,携带X-User-Token

# 3. 数据体(BODY)

{

    "mac": "xxx"            //在IoT系统上录入的设备ID,一般是MAC或者IMEI

}

# 4. 返回值

{
    "result_code": "sis.api.Success",   //状态码
    "mac": "xxx",                       //查询的设备ID
    "device_status": 0/1,               //设备在线状态,0:离线,1:在线。
    "hex_data": "xxxx",                 //如果设备数据为HEX格式,返回HEX数据base64后的字符串。
    "json_data": {xxx}                  //如果设备数据为json格式,返回json格式的数据
}

# 5. 错误码

同上

# 6. 示意图

获取HEX格式的设备数据及返回图

get_data_return_hex

  • 说明:raw_array中的串(/v4jrQ==),进行base64解码后,即为设备发送的原始数据0xFEFE23AD

获取JSON格式的设备数据及返回截图

get_data_return_json

# API-3 向某个设备发送数据

# 1. URL

POST https://iot.di-link.com/device/openApi/DevicePushRawData

# 2. 头部参数

参考前文头部参数描述,携带X-User-Token

# 3. 数据体(BODY)

{
    "mac": "xxx",           //在IoT系统上录入的设备ID,一般是MAC或者IMEI
    "command": "xxx"        //发送给设备的字符串数据。
    "command_hex": "xxx"    //发送给设备的HEX数据,需要base64编码后发送。
}

# 4. 返回值

{
    "result_code": "sis.api.Success"   //状态码
}

# 5. 错误码

同上

# 6. 示意图

6.1、发送HEX数据

open_api_send_hex

6.2、设备收到HEX数据

open_api_send_hex_dev_show

6.3、发送字符串数据

open_api_send_json

6.4、设备收到字符串数据

open_api_send_json_dev_show

上次更新: 2025/01/01, 23:09:34
实例5-设备位置显示
实例7-使用透传功能调试设备

← 实例5-设备位置显示 实例7-使用透传功能调试设备→

Theme by Vdoing | Copyright © -2025
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式