跳到主要内容

开放能力

变量说明

  • {ts}: 时间戳(UNIX时间/毫秒)
  • {mk}: 模型号(模型唯一标识,服务端给出)
  • {dk}: 设备号(模型唯一标识,服务端给出)
  • {un}: 模块位置(0是主模块
  • {dn}: 模块S/N(模块一般即HMI,其S/N为硬件固化)
  • {mach_no}: 设备编号(也叫机台号,即设备唯一编码,设备主模块设置给出,若未给出则同{dn}
  • {iot_sts}: 网络状态(0=离线|1=在线|2=故障)
  • {mach_sts}: 设备状态(0=待机|1=运行|2=故障)
  • {errN}: 故障位(0=正常|1=故障)
  • {req}: MQTT消息处理触发用
  • {rid}: MQTT指令任务ID

Open API

BASE_URL: {miot_url}/api/das?key={api_key}

⚠️注意:

错误代码:

  • OK: 成功
  • NG_KEY: 应用未配置或配置的{api_key}与请求给出的不一致
  • NG_API: 下面的api参数无效
  • NG_MACH_NO: 设备名称 不存在 或 不在对应 api key模型
  • NG_MACH_DATA : 下发配置参数数据不合法
  • NG_MACH_APP_DATA : 下发应用数据不合法
  • NG_ERR: 服务端报错

获取 设备运行状态

  • POST {BASE_URL}&api=get_mach_state
  • 请求:
    {
    "mach_no": "{mach_no}", // 设备编号,若不给出则分页返回所有设备运行状态
    "page_no": 0, // 仅当设备编号不给出时有效,页号(0开始),默认0
    "page_size": 10 // 仅当设备编号不给出时有效,一页数据行数,默认为10,最大50
    }
  • 响应:
    {
    "code": "OK", // 错误代码
    "data": [
    {
    "mach_no": "{mach_no}",
    "mk": "{mk}",
    "iot_sts": 0, // 可能值: 0(离线)/1(在线)
    "mach_sts": 0, // 可能值: 0(停止)/1(运行)/2(故障)
    "mach_err": {
    "err1": true,
    "err3": true,
    // ...
    },
    "err_def" : {
    "err1": "锅底超温",
    "err3": "档位开关故障",
    // ...
    },
    "mach_ixs": [
    { "ix": "voltage", "iv": 2.1 },
    // ...
    ]
    },
    // ...
    ]
    }

获取 设备历史数据

  • POST {BASE_URL}&api=get_mach_data
  • 请求:
    {
    "mach_no": "{mach_no}", // 设备编号,必填
    "mach_ixs": ["voltage", "current", ...], // 设备参数清单,可选
    "data_start": 1676359431233, // 时间戳,大于0表示只返回大于等于`data_start`的数据
    "data_end": 1676359455175, // 时间戳,大于0表示只返回小于等于`data_end`的数据
    "page_no": 0, // 页号(0开始),默认0
    "page_size": 10 // 一页数据行数,默认为10,最大50
    }
  • 响应:
  {
"code": "OK", // 错误代码
"data": [
{
"ts": 1676359455175, // 时间戳
"mach_no": "{mach_no}",
"mk": "{mk}",
"mach_ixs": [
{ "ix": "voltage", "iv": 2.1 },
// ...
]
},
// ...
]
}

获取 设备故障数据

  • POST {BASE_URL}&api=get_mach_errs
  • 请求:
{
"mach_no": "{mach_no}", // 设备编号,若不给出则分页返回所有设备运行状态
"data_start": 1676359431233, // 时间戳,大于0表示只返回大于等于`data_start`的数据
"data_end": 1676359455175, // 时间戳,大于0表示只返回小于`data_end`的数据
"page_no": 0, // 页号(0开始),默认0
"page_size": 10 // 一页数据行数,默认为10,最大50
}
  • 响应:
{
"code": "OK", // 错误代码
"data": [
{
"ts": 1676359455175, // 时间戳
"mach_no": "{mach_no}",
"mk": "{mk}",
"mach_err": {
"err1": true,
"err2": false,
"err3": true,
// ...
},
"err_def" : {
"err1": "锅底超温",
"err2": "锅内压力过高",
"err3": "档位开关故障",
// ...
},
},
// ...
]
}

获取 设备抄表数据

  • POST {BASE_URL}&api=get_mach_copies

  • 请求:

    {
    "day": "{yyyy-MM-dd}" // 抄表日期,精确到天(默认当前天)
    }
  • 响应:

    {
    "code": "OK", // 错误代码
    "data": [
    [
    {
    "rid" : "{rid}",
    "mach_no" : "{mach_no}",
    "node_name" : "{node_name}",
    "sts" : "{sts}", //可能值: 任务下发(1)/任务失败(2)/结束通知(3)/结束失败(4)/任务完成(5)
    "ts" : 1676359455175, // 时间戳
    "mach_ixs" : {
    "power": 2,
    "err1": 2,
    //...
    }
    }
    //...同批次
    ]
    // ...
    ]
    }

获取 设备故障数据

  • POST {BASE_URL}&api=get_mach_errs

  • 请求:

    {
    "mach_no": "{mach_no}", // 设备编号,若不给出则分页返回所有设备运行状态
    "data_start": 1676359431233, // 时间戳,大于0表示只返回大于等于`data_start`的数据
    "data_end": 1676359455175, // 时间戳,大于0表示只返回小于`data_end`的数据
    "page_no": 0, // 页号(0开始),默认0
    "page_size": 10 // 一页数据行数,默认为10,最大50
    }
  • 响应:

    {
    "code": "OK", // 错误代码
    "data": [
    {
    "ts": 1676359455175, // 时间戳
    "mach_no": "{mach_no}",
    "mk": "{mk}",
    "mach_err": {
    "err1": true,
    "err2": false,
    "err3": true,
    // ...
    },
    "err_def" : {
    "err1": "锅底超温",
    "err2": "锅内压力过高",
    "err3": "档位开关故障",
    // ...
    },
    },
    // ...
    ]
    }

获取 下发任务(包含状态)

  • POST {BASE_URL}&api=get_mach_task
  • 请求:
{
"rid":{rid}
}
  • 响应:
{
"code": "OK",
"data": {
"rid": {rid},
"mk": "{mk}",
"cmd": "conf", //conf:配置参数下发 pack:应用数据下发
"sts": 5, //1:请求下发 2:请求失败(设备端任务执行失败,或在给定的时间内未收到应答消息)5:任务完成
"kvs": {
"set_RH": 34
},
"req_at": "2024-01-24T16:46:15.933571+08:00"
}
}

获取 模型

  • POST {BASE_URL}&api=get_mach_dtm

  • 响应:

 {
"code": "OK",
"data": {
"mk": "{mk}",
"name": "{name}",
"dtus": 1,
"mach": "{mach}",
"remarks": "",
"ixs": [
{
"ix": "set_RH",
"un": 0,
"name": "湿度设置",
"unit": "%",
"ix_kind": "env",
"rw_mode": "rw",
"type": "number",
"remarks": ""
},
...
]
}
}

下发 设备配置参数(异步)

用例: 远程锁机/解锁

  • POST {BASE_URL}&api=set_mach_ixs
  • 请求:
{
"mach_no": "{mach_no}", // 设备编号,必填
"mach_ixs": { "locked": 1 } // 参数键值对
}
  • 响应:
{
"code": "OK" // 错误代码
}

下发 设备应用数据包(异步)

设备应用数据包内容不属于物模型,其内容由三方应用和DTU应用双方协商决定,平台对其不感知。

  • POST {BASE_URL}&api=set_mach_app
  • 请求:
{
"mach_no": "{mach_no}", // 设备编号,必填
"mach_app": {
// 任意内容,必填
}
}
  • 响应:
{
"code": "OK" // 错误代码
}

Web Hook

{
"code": "OK" // 错误代码
}

设备 事件

  • 推送数据
{
"ts":"{ts}",
"mach_no": "{mach_no}",
"mach_evt": "new" // 可能值: 新设备(new)/上线(on)/下线(off)/运行(work)/待机(idle)
}

设备 模型数据

  • 推送数据
{
"ts":"{ts}",
"mach_no": "{mach_no}",
"mach_ixs": {
"active": 1, // 已激活(1)/已撤机(0)
"locked": 1, // 已锁机(1)/已解锁(0)
// ...
}
}

设备 应答

通过 open api 对设备进行配置下发后(配置参数应用数据)设备端的应答(是否成功)。当设备端任务执行失败,或在给定的时间内未收到应答消息被认为失败 。

  • 推送数据
{
"ts":"{ts}",
"mach_no": "{mach_no}",
"mach_ack": {
"rid":{rid},
"ok":true // 是否成功
}
}

设备 故障数据

  • 推送数据
{
"ts":"{ts}",
"mach_no": "{mach_no}",
"mach_err": {
"err1": true,
"err3": true,
// ...
},
}

应用数据

设备应用数据内容不属于物模型,其内容由三方应用和DTU应用双方协商决定,平台对其不感知。

  • 推送数据
{
"ts":"{ts}",
"mach_no": "{mach_no}",
"mach_app": {
// 任意内容,由设备端应用和三方应用间协商决定
}
}