开放能力
变量说明
{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}
⚠️注意:
- api_key 需在 模型应用/三方应用集成 中获取,使用
api key
的操作都和 对应模型相关。
- miot_url 对应
公有云版
和私有版
是不同的。
公有云版(SASS)
: https://da.m-iot.net,私有版(op)
: http://服务器地址
错误代码:
- 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
-
Web Hook 注册配置在 模型应用/三方应用集成 中完成
-
三方应用
hook_api
接受数据后统一响应
{
"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 // 是否成功
}
}