一、統(tǒng)一說(shuō)明
1、通訊方式
數(shù)據(jù)接口采用http協(xié)議,通訊內(nèi)容采用JSON數(shù)據(jù)格式。
接口返回?cái)?shù)據(jù)格式如下:
{"code":1001, "message":"信息內(nèi)容", "data":object}
ResultData字段說(shuō)明
字段 |
類型 |
說(shuō)明 |
code |
Integer |
代碼(參考返回代碼說(shuō)明表) |
message |
String |
返回操作結(jié)果描述 |
data |
Json |
Json數(shù)據(jù),具體格式參考各個(gè)接口 |
文檔中所有接口的返回?cái)?shù)據(jù)說(shuō)明表,如無(wú)特殊說(shuō)明均為ResultData數(shù)據(jù)格式,返回的數(shù)據(jù)均存放于data字段中
-
接口調(diào)用注意事項(xiàng)
調(diào)用接口(除測(cè)試、登錄接口外)需要將userId寫入http請(qǐng)求頭中。請(qǐng)求頭字段名固定為userId,字段值為登錄接口獲取到的userId值。
userId通過登錄接口獲取。根據(jù)用戶名和密碼調(diào)用登錄接口,登錄成功后接口返回userId。
接口中如無(wú)特殊說(shuō)明,采用post方法的接口中參數(shù)為json格式,放入請(qǐng)求body中;采用get方法的接口中參數(shù)為查詢參數(shù),放入請(qǐng)求地址后
-
接口地址
通用云平臺(tái)
http://www.xmsiyb.cn/
物聯(lián)云平臺(tái)
http://iot.xmsiyb.cn/
-k
http://ip:port(默認(rèn)9001)
二、接口詳細(xì)
1、登錄操作
1.1 地址可用性測(cè)試
1.1.1接口描述
接口編號(hào) |
1.1 |
接口名稱 |
接口可用性測(cè)試 |
功能描述 |
測(cè)試接口是否可用 |
接口地址 |
/app/TestConnect |
請(qǐng)求方式 |
GET |
參數(shù)格式 |
JSON |
返回?cái)?shù)據(jù)格式 |
String |
備注 |
|
表1.1.1.1
1.1.2請(qǐng)求參數(shù)說(shuō)明
字段 |
類型 |
說(shuō)明 |
id |
string |
隨機(jī)字符串 |
表1.1.2.1
1.1.3返回?cái)?shù)據(jù)說(shuō)明
測(cè)試通過返回請(qǐng)求的隨機(jī)字符串
調(diào)用異常則表示為測(cè)試失敗
1.1.4返回格式示例
{"code":1000,"message":"測(cè)試成功","data":"123"}
1.2 登錄
1.2.1接口描述
接口編號(hào) |
1.2 |
接口名稱 |
登錄接口 |
功能描述 |
用戶登錄 |
接口地址 |
/app/Login |
請(qǐng)求方式 |
POST |
參數(shù)格式 |
JSON |
返回?cái)?shù)據(jù)格式 |
JSON |
備注 |
|
表1.2.1.1
1.2.2請(qǐng)求參數(shù)說(shuō)明
字段 |
類型 |
說(shuō)明 |
loginName |
String |
登錄名 |
password |
String |
密碼 |
表1.2.2.1
1.2.3返回?cái)?shù)據(jù)說(shuō)明
字段 |
類型 |
說(shuō)明 |
userId |
String |
用戶編號(hào) |
userName |
String |
用戶名 |
projectName |
String |
項(xiàng)目名稱 |
authList |
JSON數(shù)組 |
該用戶所具有的權(quán)限列表,參考表1.2.3.3 |
表1.2.3.2
表.用戶權(quán)限
權(quán)限 |
說(shuō)明 |
備注 |
DeviceNew |
新建設(shè)備 |
|
DeviceScan |
掃描設(shè)備 |
|
DeviceEdit |
編輯設(shè)備 |
|
DeviceDelete |
刪除設(shè)備 |
|
SystemSetting |
系統(tǒng)設(shè)置 |
|
DataSync |
數(shù)據(jù)同步 |
|
AlarmSetting |
報(bào)警設(shè)置 |
|
ExportConfig |
導(dǎo)出配置 |
|
ImportConfig |
導(dǎo)入配置 |
|
Org |
組織權(quán)限 |
|
QueryHistoryData |
查詢歷史數(shù)據(jù) |
|
QueryAlarmData |
查詢報(bào)警數(shù)據(jù) |
|
DataEdit |
數(shù)據(jù)編輯 |
重要 |
UserManager |
用戶管理 |
|
DeviceCoefficientEdit |
設(shè)備參數(shù)編輯 |
|
表1.2.3.3
1.2.4返回格式示例
{
"code":1000,
"message":"登錄成功",
"data":
{
"userId":"6a25694572484ac1a4c211fe4872b7dc",
"userName":"master",
"authList":
["DeviceNew","DeviceScan","DeviceEdit","DeviceDelete","SystemSetting","DataSync","AlarmSetting","ExportConfig","ImportConfig","Org","QueryHistoryData","QueryAlarmData","UserManager"]
}
}
2、設(shè)備操作
2.1 獲取用戶設(shè)備分組列表
2.1.1接口描述
接口編號(hào) |
2.1 |
接口名稱 |
獲取用戶的設(shè)備分組列表 |
功能描述 |
獲取用戶設(shè)備分組信息 |
接口地址 |
/app/GetUserDeviceGroups |
請(qǐng)求方式 |
GET |
參數(shù)格式 |
JSON |
返回?cái)?shù)據(jù)格式 |
JSON數(shù)組 |
備注 |
|
表2.1.1.1
2.1.2請(qǐng)求參數(shù)說(shuō)明
請(qǐng)求頭
字段 |
類型 |
說(shuō)明 |
userId |
String |
用戶編號(hào) |
表2.1.2.1
2.1.3返回?cái)?shù)據(jù)說(shuō)明
字段 |
類型 |
說(shuō)明 |
groupId |
String |
組編號(hào) |
groupName |
String |
組名 |
表2.1.3.1
2.1.4返回格式示例
{"code":1000,
"message":"獲取成功",
"data":
[
{"groupId":"733e5346f3414d1e840bfb7d8b581022","groupName":"溫濕度"},
{"groupId":"d1a84321cee54503b6ab7f44c5474005","groupName":"氣象"},
{"groupId":"eb3fab3155e64d7d9c74ef4a1f57fbf3","groupName":"未命名"}
]
}
2.2 獲取設(shè)備信息及實(shí)時(shí)數(shù)據(jù)接口
2.2.1接口描述
接口編號(hào) |
2.2 |
接口名稱 |
獲取設(shè)備信息及實(shí)時(shí)數(shù)據(jù)接口 |
功能描述 |
根據(jù)用戶編號(hào)、設(shè)備組編號(hào)獲取設(shè)備實(shí)時(shí)數(shù)據(jù) |
接口地址 |
/app/GetDeviceData |
請(qǐng)求方式 |
GET |
參數(shù)格式 |
JSON |
返回?cái)?shù)據(jù)格式 |
JSON數(shù)組 |
備注 |
|
表2.2.1.1
2.2.2請(qǐng)求參數(shù)說(shuō)明
請(qǐng)求參數(shù)
字段 |
類型 |
說(shuō)明 |
groupId |
String |
設(shè)備組編號(hào)(接口2.1所獲取的組編號(hào))。如果獲取所有數(shù)據(jù),則該參數(shù)可以填空字符串”” |
表2.2.2.1
請(qǐng)求頭
字段 |
類型 |
說(shuō)明 |
userId |
String |
用戶編號(hào) |
表2.2.2.2
2.2.3返回?cái)?shù)據(jù)說(shuō)明
字段 |
類型 |
說(shuō)明 |
groupId |
String |
組編號(hào) |
deviceKey |
String |
設(shè)備編號(hào) |
deviceAddr |
Integer |
設(shè)備地址 |
nodeID |
Integer |
節(jié)點(diǎn)編號(hào) |
nodeType |
Integer |
節(jié)點(diǎn)類型1:模擬量1啟用;2:模擬量2啟用;3:同時(shí)啟用 |
deviceDisabled |
Boolean |
停用狀態(tài),true停用 |
deviceName |
String |
設(shè)備名稱 |
lng |
Float |
經(jīng)度 |
lat |
Float |
維度 |
deviceStatus |
Integer |
設(shè)備運(yùn)行狀態(tài),0未運(yùn)行,1離線,2在線 |
realTimeData |
JSON |
實(shí)時(shí)數(shù)據(jù),當(dāng)兩個(gè)模擬量同時(shí)啟用時(shí)分別為模擬量1和模擬量2的實(shí)時(shí)數(shù)據(jù)。格式參考表2.2.3.2 |
表2.2.3.1
字段 |
類型 |
說(shuō)明 |
dataName |
String |
模擬量名稱 |
dataValue |
String |
實(shí)時(shí)數(shù)據(jù) |
isAlarm |
Boolean |
是否報(bào)警 |
alarmMsg |
String |
報(bào)警信息 |
表2.2.3.2
2.2.4返回格式示例
{
"code":1000,
"message":"獲取成功",
"data":[
{"groupId":"97a355ad117b45ae8bd7bdc4ee1af85b",
"deviceKey":"e33bdc470f484993aeabf79851532e82",
"deviceAddr":40000342,"nodeID":1,nodeType:3,"deviceDisabled":false,
"deviceName":"網(wǎng)絡(luò)設(shè)備40000342#1",
"lng":0.0,"lat":0.0,"deviceStatus":2,
"realTimeData":
[{"dataName":"溫度(℃)","dataValue":"0","isAlarm":false,"alarmMsg":""},
{"dataName":"濕度(%RH)","dataValue":"0","isAlarm":false,"alarmMsg":""}
]
},
{"groupId":"97a355ad117b45ae8bd7bdc4ee1af85b",
"deviceKey":"768a72794d3c4eb9a1ca7e4a049b3cf1",
"deviceAddr":40000342,"nodeID":2,nodeType:1,"deviceDisabled":false,
"deviceName":"模擬量1使能模擬量2禁用",
"lng":0.0,"lat":0.0,"deviceStatus":2,
"realTimeData":
[{"dataName":"溫度(℃)","dataValue":"0","isAlarm":false,"alarmMsg":""}]
},
{"groupId":"97a355ad117b45ae8bd7bdc4ee1af85b",
"deviceKey":"59e0b7a349af4d96adf1e2f91efe0382",
"deviceAddr":40000342,"nodeID":3,nodeType:2,"deviceDisabled":false,
"deviceName":"模擬量1禁用模擬量2使能",
"lng":0.0,"lat":0.0,"deviceStatus":2,
"realTimeData":
[{"dataName":"濕度(%RH)","dataValue":"0","isAlarm":false,"alarmMsg":""}]
},
{"groupId":"97a355ad117b45ae8bd7bdc4ee1af85b",
"deviceKey":"482570be4a43433587193167460c6be6",
"deviceAddr":40000342,"nodeID":4,nodeType:1,"deviceDisabled":false,
"deviceName":"浮點(diǎn)設(shè)備",
"lng":0.0,"lat":0.0,"deviceStatus":2,
"realTimeData":
[{"dataName":"溫度(℃)","dataValue":"0","isAlarm":false,"alarmMsg":""}]
},
{"groupId":"97a355ad117b45ae8bd7bdc4ee1af85b",
"deviceKey":"f491eebe9169465cb847ec4396efcc75",
"deviceAddr":40000342,"nodeID":5,nodeType:1,"deviceDisabled":false,
"deviceName":"開關(guān)量設(shè)備",
"lng":0.0,"lat":0.0,"deviceStatus":2,
"realTimeData":
[{"dataName":"溫度(℃)","dataValue":"斷開","isAlarm":false,"alarmMsg":"斷開"}]
},
{"groupId":"97a355ad117b45ae8bd7bdc4ee1af85b",
"deviceKey":"27e66ad63e494ad2a2669de21c759901",
"deviceAddr":40000342,"nodeID":6,nodeType:1,"deviceDisabled":false,
"deviceName":"遙調(diào)設(shè)備",
"lng":0.0,"lat":0.0,"deviceStatus":2,
"realTimeData":
[{"dataName":"溫度(℃)","dataValue":"北風(fēng)","isAlarm":true,"alarmMsg":"北風(fēng)"}]
}
]}
2.5 獲取設(shè)備繼電器狀態(tài)接口
2.5.1接口描述
接口編號(hào) |
2.5 |
接口名稱 |
獲取設(shè)備的繼電器狀態(tài) |
功能描述 |
根據(jù)設(shè)備編號(hào)獲取設(shè)備當(dāng)前的繼電器狀態(tài) |
接口地址 |
/app/GetRelays |
請(qǐng)求方式 |
GET |
參數(shù)格式 |
JSON |
返回?cái)?shù)據(jù)格式 |
JSON數(shù)組 |
備注 |
|
表2.5.1.1
2.5.2請(qǐng)求參數(shù)說(shuō)明
請(qǐng)求參數(shù)
字段 |
類型 |
說(shuō)明 |
deviceKey |
String |
設(shè)備編號(hào)(設(shè)備編號(hào),如果查詢所有繼電器,則填寫空字符串””) |
表2.5.2.1
請(qǐng)求頭
字段 |
類型 |
說(shuō)明 |
userId |
String |
用戶編號(hào) |
表2.5.2.2
2.5.3返回?cái)?shù)據(jù)說(shuō)明
字段 |
類型 |
說(shuō)明 |
deviceKey |
String |
設(shè)備編號(hào) |
deviceStatus |
Integer |
設(shè)備運(yùn)行狀態(tài),0未運(yùn)行,1離線,2在線 |
relayID |
Integer |
繼電器編號(hào)(從0開始) |
realyName |
String |
繼電器名稱 |
status |
Integer |
繼電器狀態(tài)0閉合 1斷開 |
表2.5.3.1
2.5.4返回格式示例
{
"code":1000,
"message":"獲取成功",
"data":[
{"deviceKey":"2232","deviceStatus":2,"relayID":0,"realyName":"湖北中醫(yī)院繼電器1",
"status":0},
{"deviceKey":"2232","deviceStatus":2,"relayID":1,"realyName":"湖北中醫(yī)院繼電器2",
"status":0},
{"deviceKey":"2232","deviceStatus":2,"relayID":2,"realyName":"湖北中醫(yī)院繼電器3",
"status":0},
{"deviceKey":"2232","deviceStatus":2,"relayID":3,"realyName":"湖北中醫(yī)院繼電器4",
"status":0},
{"deviceKey":"2232","deviceStatus":2,"relayID":4,"realyName":"湖北中醫(yī)院繼電器5",
"status":0},
{"deviceKey":"2232","deviceStatus":2,"relayID":5,"realyName":"湖北中醫(yī)院繼電器6",
"status":0},
{"deviceKey":"2232","deviceStatus":2,"relayID":6,"realyName":"湖北中醫(yī)院繼電器7",
"status":0},
{"deviceKey":"2232","deviceStatus":2,"relayID":7,"realyName":"湖北中醫(yī)院繼電器8",
"status":0}
]
}
2.6 操作設(shè)備繼電器狀態(tài)接口
2.6.1接口描述
接口編號(hào) |
2.6 |
接口名稱 |
操作設(shè)備繼電器狀態(tài)接口 |
功能描述 |
根據(jù)設(shè)備編號(hào)操作設(shè)備的繼電器狀態(tài) |
接口地址 |
/app/SetRelays |
請(qǐng)求方式 |
Post |
參數(shù)格式 |
JSON |
返回?cái)?shù)據(jù)格式 |
String |
備注 |
|
表2.6.1.1
2.6.2請(qǐng)求參數(shù)說(shuō)明
請(qǐng)求參數(shù)
字段 |
類型 |
說(shuō)明 |
deviceKey |
String |
設(shè)備編號(hào) |
relayId |
Integer |
繼電器編號(hào) |
opt |
Integer |
操作 0閉合 1斷開 |
表2.6.2.1
請(qǐng)求頭
字段 |
類型 |
說(shuō)明 |
userId |
String |
用戶編號(hào) |
表2.6.2.2
2.6.3返回?cái)?shù)據(jù)說(shuō)明
字符串,表示操作結(jié)果;異常信息參考message字段
2.6.4返回格式示例
{"code":1000,"message":"操作成功","data":"操作成功"}
3、數(shù)據(jù)操作
3.1 查詢歷史數(shù)據(jù)
3.1.1接口描述
接口編號(hào) |
3.1 |
接口名稱 |
查詢歷史數(shù)據(jù) |
功能描述 |
根據(jù)設(shè)備編號(hào)、時(shí)間等條件查詢歷史數(shù)據(jù) |
接口地址 |
/app/QueryHistoryList |
請(qǐng)求方式 |
GET |
參數(shù)格式 |
JSON |
返回?cái)?shù)據(jù)格式 |
JSON數(shù)組 |
備注 |
|
表3.1.1.1
3.1.2請(qǐng)求參數(shù)說(shuō)明
請(qǐng)求參數(shù)
字段 |
類型 |
說(shuō)明 |
deviceKey |
String |
設(shè)備編號(hào) |
nodeId |
Integer |
節(jié)點(diǎn)編號(hào)(如果查詢所有節(jié)點(diǎn)的數(shù)據(jù),則nodeId填寫-1) |
beginTime |
DateTime |
開始時(shí)間(YYYY-MM-dd HH:mm:ss) |
endTime |
DateTime |
結(jié)束時(shí)間(YYYY-MM-dd HH:mm:ss) |
isAlarmData |
Integer |
報(bào)警數(shù)據(jù)標(biāo)識(shí)。-1查詢?nèi)繑?shù)據(jù),0查詢正常數(shù)據(jù),1查詢報(bào)警數(shù)據(jù) |
表3.1.2.1
請(qǐng)求頭
字段 |
類型 |
說(shuō)明 |
userId |
String |
用戶編號(hào) |
表3.1.2.2
3.1.3返回?cái)?shù)據(jù)說(shuō)明
字段 |
類型 |
說(shuō)明 |
ID |
String |
編號(hào) |
DeviceKey |
String |
設(shè)備編號(hào) |
DeviceID |
Integer |
設(shè)備地址 |
NodeID |
Integer |
節(jié)點(diǎn)編號(hào) |
Tem |
Double |
模擬量1值
(文檔中只是示例,以平臺(tái)實(shí)際節(jié)點(diǎn)名稱為準(zhǔn)。不同的傳感器表示的意義不同。例如溫濕度傳感器,該值表示為溫度值;PM傳感器表示為PM10的值。
具體參考傳感器類型。) |
Hum |
Double |
模擬量2值
(文檔中只是示例,以平臺(tái)實(shí)際節(jié)點(diǎn)名稱為準(zhǔn)。不同的傳感器表示的意義不同。例如溫濕度傳感器,該值表示為濕度值;PM傳感器表示為PM2.5的值。
具體參考傳感器類型。) |
Lng |
Double |
經(jīng)度 |
Lat |
Double |
維度 |
CoordinateType |
Integer |
坐標(biāo)類型 0百度坐標(biāo),1移動(dòng)基站 2聯(lián)通基站 3GPS |
RecordTime |
Datetime |
記錄時(shí)間 |
IsAlarmData |
Integer |
是否為報(bào)警數(shù)據(jù),0正常數(shù)據(jù),1報(bào)警數(shù)據(jù) |
RecordTimeStamp |
Long |
記錄時(shí)間時(shí)間戳 |
DeviceName |
String |
設(shè)備名稱 |
表3.1.3.1
3.1.4返回格式示例
{
"code":1000,
"message":"獲取成功",
"data":
[
{"ID":"139c213100b64ab581268b42acfa85b7","DeviceKey":"dfea0630a8e949d9b828647f4b8bfbfc","DeviceID":40001739,"NodeID":1,"Tem":0.0,"Hum":0.0,"Lng":0.0,"Lat":0.0,"CoordinateType":2,"RecordTime":"2018-04-07 15:28:35","IsAlarmData":0,"RecordTimeStamp":1523086115000,"DeviceName":"網(wǎng)絡(luò)設(shè)備40001739#1"},
{"ID":"c0c90da1abe749e89510b62e2128600e","DeviceKey":"dfea0630a8e949d9b828647f4b8bfbfc","DeviceID":40001739,"NodeID":1,"Tem":0.0,"Hum":0.0,"Lng":0.0,"Lat":0.0,"CoordinateType":2,"RecordTime":"2018-04-07 15:23:35","IsAlarmData":0,"RecordTimeStamp":1523085815000,"DeviceName":"網(wǎng)絡(luò)設(shè)備40001739#1"},
{"ID":"1aa66f2c293d431d92218cc7246f267d","DeviceKey":"dfea0630a8e949d9b828647f4b8bfbfc","DeviceID":40001739,"NodeID":1,"Tem":0.0,"Hum":0.0,"Lng":0.0,"Lat":0.0,"CoordinateType":2,"RecordTime":"2018-04-07 15:20:50","IsAlarmData":0,"RecordTimeStamp":1523085650000,"DeviceName":"網(wǎng)絡(luò)設(shè)備40001739#1"}
]
}
三、附錄
返回代碼
代碼 |
說(shuō)明 |
1000 |
接口執(zhí)行成功,具體參考各個(gè)接口 |
1001 |
接口執(zhí)行失敗,具體參考各個(gè)接口,原因參考Message |
1002 |
參數(shù)錯(cuò)誤 |
1003 |
程序內(nèi)部異常,異常信息參考Message |
1004 |
鑒權(quán)失敗 |