### 概述
數據推送是用于開發者開發自己個性化業務系統時,讓平臺向用戶指定的第三方URL地址通過Http或Https推送設備產生的數據(如設備變量數據,定位數據等)。
### 操作流程
#### .需要準備一臺有外網ip的服務器
#### .提供進行http推送地址校驗和接收http數據推送的http服務
#### .把地址提供給坤典云平臺配置Http推送地址
### 推送地址校驗
推送的時候會對接口進行校驗,會向`提供的推送地址`上發送get請求,驗證地址的合法性,需要返回相應的數據進行校驗。
接口校驗方式如下:
| 請求類型 | get |
| --- | --- |
| 請求 | {url}?verify=0123abcd (隨機8位數字或字母) |
| 返回內容 | body為verify的值(如:0123abcd) 注:返回內容只有verify(8個字符)的值,不要加其它任何字符 |
### 推送限制
每個用戶每秒最多推送10條數據,超出部分數據會丟失
### 接口回復
* 服務器收到http推送后應立即進行回復,推送失敗超過10分鐘發送報警郵件和短信,超過半小時發送報警郵件和短信并關閉推送開關
* 正常回復`狀態碼:``Status Code:200 OK`,`body`中內容為空
* 服務器5秒內沒有收到回復視為超時
### http推送格式
類型:post
協議類型:http
| 字段 | | 說明 |
| --- | --- | --- |
| | Content-Type | application/json |
| body | | json格式 |
#### 原始數據
| 類型 | 內容 | | 類型 | 說明 |
| --- | --- | --- | --- | --- |
|
body | type | | transmission | 數據點類型 |
| | deviceId | | string | 設備id |
| | data | | base64 | 透傳的數據(轉為base64傳輸) |
#### 設備數據點上報數據推送
| 類型 | | 內容 | | 類型 | 說明 |
| --- | --- | --- | --- | --- | --- |
|
body | type | | | dataPoint | 數據點類型 |
| | data | | | | 數據 |
| | | dataPoints | | array | 內容如下 |
| | | | dataPointId | int | 數據點id |
| | | | slaveName | string | 從機名稱 |
| | | | variableName | string | 變量名稱 |
| | | | value | string | 數值 |
| | | | err | int | 錯誤碼。
0:正常,非0異常。
1:從機無應答
2:從機給了一個錯誤應答3:無法連接
4:無此key |
| | | | time | long | 時間戳(秒) |
| | | deviceId | | string | 設備id |
| | | deviceName | | string | 設備名稱 |
`示例:`
```
{
"type": "dataPoint",
"data": {
"version": 0,
"dataPoints": [
{
"dataPointId": 123123,
"slaveName": "1",
"variableName": "123",
"value": "42.12",
"err": 0,
"time": 1539311832
}
],
"deviceId": "123",
"deviceName": "balabala"
}
}
```
#### 設備定位數據
| 類型 | | 內容 | | 類型 | |
| --- | --- | --- | --- | --- | --- |
|
body |
type | | | location | 數據點類型 |
| | data | | | | 數據 |
| | | position | | | |
| | | | locationType | string | GPS, Cell等 |
| | | | lng\_bd | string | 經度 - 百度 |
| | | | lat\_bd | string | 緯度 - 百度 |
| | | | lng\_wgs | string | 經度 - 原始 |
| | | | lat\_wgs | string | 緯度 - 原始 |
| | | | lng\_gcj | string | 經度 - 火星 |
| | | | lat\_gcj | string | 緯度 - 火星 |
| | | | time | string | 時間戳(秒) |
| | | deviceId | | string | 設備id |
| | | deviceName | | string | 設備名稱 |
`示例:`
```
{
"type": "position",
"data": {
"version": 0,
"position": {
"locationType": "Cell",
"lngBd": 0,
"latBd": 0,
"lngWgs": 0,
"latWgs": 0,
"lngGcj": 0,
"latGcj": 0,
"time": "1539311832"
},
"deviceId": "123",
"deviceName": "balabala"
}
}
```