日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

室內安防設備對接邊緣服務器接口定義

更新時間:

1 方案介紹

室內各傳感器的數(shù)據(jù)都匯總到室內機上,室內機通過小區(qū)局域網(wǎng)直連物業(yè)管理一體機,即邊緣服務器。傳感器產生的報警事件由室內機上報到邊緣服務器。邊緣服務生成物模型事件并同步到物聯(lián)網(wǎng)平臺

image

2 接口說明

室內機對接邊緣服務器,訪問10070端口。

邊緣服務器訪問室內機的端口由設備廠商自定義,定義后固定不變。

所有HTTP 報文的首部信息中,不能帶有Connection: Keep-Alive字段,可以設置為Connection:Close。

物業(yè)管理一體機,以下簡稱“邊緣服務器”。

3 服務接口

3.1 服務檢測

調用此接口檢查服務是否可用。

URL:http://[邊緣服務器IP 或 室內機IP]:[端口]/alarm/ping
Method:GET
Content-Type:application/json

說明

服務啟動后開始監(jiān)聽端口數(shù)據(jù),當收到ping消息后,立刻回復pong,以表示服務狀態(tài)正常,否則無消息返回。

請求參數(shù)

無。

返回參數(shù)

名稱

類型

示例值

描述

code

Integer

0

調用成功時,返回0。固定內容。

message

String

pong

調用成功時,返回“pong”。固定內容。

示例

正常返回示例

{
    "code": 0,
    "message": "pong"
}

3.2 建立連接

室內機向邊緣服務器發(fā)送連接請求。

URL:http://[邊緣服務器IP]:[端口]/alarm/connect
Method:POST
Content-Type:application/json

說明

前置條件:

室內機先預置安全密鑰(RSA公鑰),再進行連接。

建立連接交互流程:

  1. 室內機攜帶下面的請求參數(shù)向邊緣服務器發(fā)起連接請求。

  2. 邊緣服務器校驗IP參數(shù)是否已經(jīng)配置,如未配置,拒絕連接請求。設備信息配置需要預先在云端配置好,并部署到邊緣。

  3. 如果配置校驗通過,邊緣服務器返回成功消息給室內機。響應消息中包含一個有效的token。

  4. 邊緣服務器向室內機發(fā)送“服務檢測”ping請求,室內機返回pong消息給邊緣服務器,連接建立完成。

  5. 如果室內機沒有收到成功消息和token,等待一分鐘后,再次發(fā)起連接請求。

connect請求里,如果參數(shù)encrypted為1,那么參數(shù)ciphertext的內容為使用RSA公鑰加密的密文。下面是生成密文和發(fā)送密文的方法:

  1. 室內機先隨機生成一個長度為16字節(jié)的AES Secret Key,再使用預置的RSA公鑰對AESSecret Key進行加密,把生成的密文發(fā)送給邊緣服務器。

  2. 邊緣服務器使用RSA私鑰解密出AES Secret Key并保存,在后續(xù)通信中,用它對數(shù)據(jù)進行加解密。

  3. 連接建立成功后,室內機發(fā)送的數(shù)據(jù)都使用AES Secret Key進行加密,室內機收到的數(shù)據(jù)也是使用AES Secret Key加密的。

說明:

RSA的加密模式為:ECB;填充模式為:PKCS1Padding。(JAVA為:RSA/ECB/PKCS1Padding)

AES長度128位加密模式為:ECB;填充模式為:PKCS7Padding。(JAVA為:AES/ECB/PKCS5Padding)

限制

調用該接口的每秒請求數(shù)(QPS)最大限制為10。

請求參數(shù)

名稱

類型

是否必選

示例值

描述

version

String

2021-01-01

API版本號,為日期形式:YYYY-MM-DD,最新版本為2021-01-01 。接口可能存在多個版本。

protocol

String

2021-01-01

設備的通信協(xié)議的版本號,為日期形式:YYYY-MM-DD,固定值為2021-01-01

邊緣服務器發(fā)起請求時,使用此參數(shù)作為version,即version為2021-01-01

sn

String

123456789

設備的唯一編碼。長度為4-32個字符,可以包含英文字母、數(shù)字和特殊字符:連字符(-)、下劃線(_)、at符號(@)、點號(.)、和英文冒號(:)。

vendor

String

DEV

設備廠商名稱。

model

String

DEV-HW-210

設備硬件型號。

time

Integer

1589472000

請求的時間戳。以秒為單位,需要使用UTC時間。

ip

String

192.168.1.128

連接發(fā)起方的IPv4地址。

mac

String

00-16-EA-AE-3D-40

連接發(fā)起方的MAC地址。

port

int

10000

邊緣服務器訪問設備服務的端口,如果不提供,填寫-1。

keepalive

Integer

30

心跳最大間隔。單位:秒,合法取值范圍[10,120]。

encrypted

Integer

1

是否采用數(shù)據(jù)加密模式。

  • 0:不加密。

  • 1:加密。

ciphertext

String

mrmZ2Amm5TNDjlxA+ssNt23QTcbcQNKxzMc+YDoewHkR1eOT2+fk=

如果encrypted為1,需要傳遞此參數(shù)。先隨機生成一個長度為16字節(jié)的AES Secret Key,再使用預置的RSA公鑰對Secret Key進行加密,再把密文進行Base64編碼得到的結果就是ciphertext的內容。

返回參數(shù)

名稱

類型

示例值

描述

code

Integer

0

調用成功時,返回0。失敗時,返回的錯誤碼。詳見錯誤碼表。

message

String

success

調用結果描述。

data

JSONObject

調用成功時,返回內容定義如下。

名稱

類型

示例值

描述

token

String

6f2a-***-1-128

連接成功后,由接收連接的server端頒發(fā)的連接成功標識,代表一個有效連接,最大長度位64字節(jié)。在后續(xù)client的請求中需要攜帶,如“心跳保活”。

示例

請求示例

{
    "version": "2021-01-01",
    "protocol": "2021-01-01",
    "sn": "123456789",
    "vendor": "DEV",
    "model": "DEV-HW-210",
    "time": 1589472000,
    "ip": "192.168.1.128",
    "mac": "00-16-EA-AE-3D-40",
    "port": 10000,
    "keepalive": 30,
    "encrypted": 1,
    "ciphertext": "hlbtFix0/wrcca8SqUcy+5Q8J76xOM29fp4itQhstZhAQRRi+RITQPupSSnrZCXAGzPHYUdbKWijcMa0FGwAoPqw4m0Mot1HT3qKxMBHTvSGuOEayozZJMj18FL0tceGZ2V5BxkethBDsRTfn2qaDEMCaS9+go0dqj1aP0IjrYg="
}

正常返回示例

{
    "code": 0,
    "message": "success",
    "data":{
        "token": "6f2ae65e-d7f3-11ea-9a16-6c96cfdfd355-192-168-1-128"
    }
}

3.3 心跳保活

室內機向邊緣服務器定期發(fā)送心跳消息,以確保消息通道的連通性,維持設備的在線狀態(tài)。

URL:http://[邊緣服務器IP]:[端口]/alarm/keepalive
Method:POST
Content-Type:application/json

說明

建立連接后,服務器會向客戶端頒發(fā)一個token,心跳消息中需要攜帶此token。當發(fā)送心跳時,返回token無效,那么需要重新建立連接,獲取有效token。

成功時,返回的消息體中包含一個時間參數(shù),可以用來同步雙方時間。

限制

調用該接口的每秒請求數(shù)(QPS)最大限制為100。

請求參數(shù)

名稱

類型

是否必選

示例值

描述

version

String

2021-01-01

API版本號,為日期形式:YYYY-MM-DD,最新版本為2021-01-01 。接口可能存在多個版本。

token

String

6f2a-***-1-128

有效連接的標識。

返回參數(shù)

名稱

類型

示例值

描述

code

Integer

0

調用成功時,返回0。失敗時,返回的錯誤碼。詳見錯誤碼表。

message

String

success

調用結果描述。

data

JSONObject

調用成功時,返回內容定義如下。

名稱

類型

示例值

描述

time

String

1591069176000

響應消息生成的時間,時間戳以毫秒為單位,需要使用UTC時間。

示例

請求示例

{
    "version": "2021-01-01",
    "token": "6f2ae65e-d7f3-11ea-9a16-6c96cfdfd355-192-168-1-128"
}

正常返回示例

{
    "code": 0,
    "message": "success",
    "data":{
        "time": "1591069176000"
    }
}

3.4 上報防區(qū)信息和狀態(tài)

室內機上報主機下的防區(qū)信息和防區(qū)狀態(tài)給邊緣服務器。

URL:http://[邊緣服務器IP]:[端口]/alarm/reportZoneInfo
Method:POST
Content-Type:application/json

說明

每次建立連接后,上報一次防區(qū)信息和狀態(tài)。當防區(qū)信息或狀態(tài)變化時,立即上報實時的防區(qū)信息和狀態(tài)。

限制

調用該接口的每秒請求數(shù)(QPS)最大限制為100。

請求參數(shù)

名稱

類型

是否必選

示例值

描述

version

String

2021-01-01

API版本號,為日期形式:YYYY-MM-DD,最新版本為2021-01-01 。接口可能存在多個版本。

token

String

6f2a-***-128

有效連接標識。

zoneInfo

JSONArray

防區(qū)信息。

  • zoneID

String

01

防區(qū)的唯一標識。

  • zoneDeviceType

Integer

1

防區(qū)下的探測器類型,枚舉值見附錄。

  • zoneState

Integer

1

防區(qū)布防狀態(tài),枚舉如下:

  • 0:未知

  • 1:撤防

  • 2:布防

加密的

名稱

類型

是否必選

示例值

描述

version

String

2021-01-01

API版本號,為日期形式:YYYY-MM-DD,最新版本為2021-01-01 。接口可能存在多個版本。

token

String

6f2a-***-128

有效連接標識。

ciphertext

String

ewogICAgJ2EiJzoiYiIKfQ==

先將zoneInfo對應的內容轉換為JSON字符串,再使用AES密鑰進行加密,最后把密文Base64編碼。

例如:

"zoneInfo":abc,abc就是需要加密的內容。

返回參數(shù)

名稱

類型

示例值

描述

code

Integer

0

調用成功時,返回0。失敗時,返回的錯誤碼。詳見錯誤碼表。

message

String

success

調用結果描述。

示例

請求示例

{
    "version":"2021-01-01",
    "token":"6f2ae65e-d7f3-11ea-9a16-6c96cfdfd355-192-168-1-128",
    "zoneInfo":[
        {
            "zoneID":"01",
            "zoneDeviceType":1,
            "zoneState":1
        },
        {
            "zoneID":"02",
            "zoneDeviceType":3,
            "zoneState":2
        }
    ]
}

加密的

{
    "version":"2021-01-01",
    "token":"6f2ae65e-d7f3-11ea-9a16-6c96cfdfd355-192-168-1-128",
    "ciphertext":"ewogICAgJ2EiJzoiYiIKfQ=="
}

正常返回示例

{
    "code": 0,
    "message": "success"
}

3.5 設置防區(qū)布防狀態(tài)

邊緣服務器對室內機下的指定防區(qū)進行設防或撤防操作。

URL:http://[室內機IP]:[端口]/alarm/setZoneAlertState
Method:POST
Content-Type:application/json

說明

可以對一個或多個防區(qū)進行布防或撤防操作。

限制

調用該接口的每秒請求數(shù)(QPS)最大限制為100。

請求參數(shù)

名稱

類型

是否必選

示例值

描述

version

String

2021-01-01

為connect接口傳遞的protocol參數(shù)值。

zoneInfo

JSONArray

防區(qū)信息。

  • zoneID

String

01

防區(qū)的唯一標識。

  • zoneState

Integer

1

防區(qū)狀態(tài),枚舉如下:

  • 1:撤防

  • 2:布防

  • time

String

1591069176000

設置操作的時間,時間戳以毫秒為單位,需要使用UTC時間。

為了防止重放攻擊,室內機需要記錄這個時間,如果收到請求的時間參數(shù)等于或小于最后記錄的時間,則拋棄這個請求。

加密的

名稱

類型

是否必選

示例值

描述

version

String

2021-01-01

為connect接口傳遞的protocol參數(shù)值。

ciphertext

String

ewogICAgJ2EiJzoiYiIKfQ==

先將zoneInfo對應的內容轉換為JSON字符串,再使用AES密鑰進行加密,最后把密文Base64編碼。

例如:

"zoneInfo":abc,abc就是需要加密的內容。

返回參數(shù)

名稱

類型

示例值

描述

code

Integer

0

調用成功時,返回0。失敗時,返回的錯誤碼。詳見錯誤碼表。

message

String

success

調用結果描述。

示例

請求示例

{
    "version":"2021-01-01",
    "zoneInfo":[
        {
            "zoneID":"01",
            "zoneState":1,
            "time":"1591069176000"
        },
        {
            "zoneID":"02",
            "zoneState":2,
            "time":"1591069176000"
        }
    ]
}

加密的

{
    "version":"2021-01-01",
    "ciphertext":"ewogICAgJ2EiJzoiYiIKfQ=="
}

正常返回示例

{
    "code": 0,
    "message": "success"
}

3.6 防區(qū)報警

室內機發(fā)送防區(qū)設備報警信息給邊緣服務器。

URL:http://[邊緣服務器IP]:[端口]/alarm/reportAlarm
Method:POST
Content-Type:application/json

說明

當防區(qū)設備觸發(fā)報警時,根據(jù)報警觸發(fā)規(guī)則,室內機上報報警信息給邊緣服務器。

限制

調用該接口的每秒請求數(shù)(QPS)最大限制為100。

請求參數(shù)

名稱

類型

是否必選

示例值

描述

version

String

2021-01-01

API版本號,為日期形式:YYYY-MM-DD,最新版本為2021-01-01 。接口可能存在多個版本。

token

String

6f2a-***-128

有效連接標識。

alarmInfo

JSONArray

報警信息。

  • zoneID

String

01

防區(qū)的唯一標識。

  • alarmTime

String

1591069176000

報警事件發(fā)生的歷史時間,如果無此參數(shù),表示事件發(fā)生在當前時間。

時間戳以毫秒為單位,需要使用UTC時間。

加密的

名稱

類型

是否必選

示例值

描述

version

String

2021-01-01

API版本號,為日期形式:YYYY-MM-DD,最新版本為2021-01-01 。接口可能存在多個版本。

token

String

6f2a-***-128

有效連接標識。

ciphertext

String

ewogICAgJ2EiJzoiYiIKfQ==

先將alarmInfo對象轉換為JSON字符串,再使用AES密鑰進行加密,最后把密文Base64編碼。

例如:

"alarmInfo":abc,abc就是需要加密的內容。

返回參數(shù)

名稱

類型

示例值

描述

code

Integer

0

調用成功時,返回0。失敗時,返回的錯誤碼。詳見錯誤碼表。

message

String

success

調用結果描述。

示例

請求示例

{
    "version":"2021-01-01",
    "token":"6f2ae65e-d7f3-11ea-9a16-6c96cfdfd355-192-168-1-128",
    "alarmInfo":[
        {
            "zoneID":"01"
        },
        {
            "zoneID":"02",
            "alarmTime":"1591069176000"
        }
    ]
}

加密的

{
    "version":"2021-01-01",
    "token":"6f2ae65e-d7f3-11ea-9a16-6c96cfdfd355-192-168-1-128",
    "ciphertext":"ewogICAgJ2EiJzoiYiIKfQ=="
}

正常返回示例

{
    "code": 0,
    "message": "success"
}

附錄

探測器類型

1.SOS緊急按鈕
2.紅外
3.門磁
4.窗磁
5.瓦斯
6.煙霧
7.水浸
8.震動
9.氣壓