设备接口协议

2022-10-25 17:46
1207

1.访问https://my.iot.store申请开分站。



2.审核通过后,使用系统提供的访问地址、登录名、密码登录。



3.登录后,添加设备。

举例说明:

(1)添加LoRaWAN版三相组合式电气火灾报警器

点击【资产管理】-【设备管理】-【设备管理】,点击“添加传感器”,按照以下填写所属系统、设备编号(设备上的标签编号)、厂商/系列/型号

(查看设备类型表https://ask.zkturing.com/sys-nd/789.html?fromColId=30)等信息。




(2)添加测量热解粒子式电气火灾监控探测器

点击【资产管理】-【设备管理】-【设备管理】,点击“添加传感器”,按照以下填写所属系统、设备编号(使用DTU软件查看当前热解离子设备的编号)、厂商/系列/型号(查看设备类型表https://ask.zkturing.com/sys-nd/789.html?fromColId=30)等信息。



(3)添加用户信息传输装置

点击【资产管理】-【设备管理】-【消防主机管理】,点击“添加设备”,按照以下填写所属系统、设备编号(设备上的标签编号)、厂商/系列/型号等信息。

说明:通过用传把传统消防主机数据对接到平台,需联系我司技术人员协助操作。



4.访问https://open.zkturing.com/platform/login免费注册开放平台用户。



5.登录开放平台,在【应用管理】-【我的应用】菜单创建应用,待应用审核通过后使用AppKey及密钥。



6.点击左下角“接口文档”跳转至“OpenAPI”页面。



7.获取接口开放平台access_token信息

接口名称

申请访问令牌

URL

https://api.iot.ink/api/app.php?s=App.Auth.ApplyToken

请求方式

POST

参数

字段

类型

说明

service

String

默认填写App.Auth.ApplyToken

app_key

客户端key

客户端key

app_secret

用户密钥

应用密钥

返回结果

access_token

String

平台token信息

expire_at

Long

过期时间戳


https://api.iot.ink/docs.php?service=App.Auth.ApplyToken&detail=1&type=expand


8.通过域名信息获取站点tenant-id


接口名称

根据域名获取站点信息

URL

https://api.iot.ink/api/app.php?s=Manage.Admin_Tenant_GetgetTenantByDomain.Api

请求方式

GET

参数

字段

类型

说明

service

String

Manage.Admin_Tenant_GetgetTenantByDomain.Api

access_token

String

接口平台access_token

domain

String

获取站点信息的域名


https://api.iot.ink/docs.php?service=Manage.Admin_Tenant_GetgetTenantByDomain.Api&detail=1&type=fold


9.获取添接口中需要的token令牌


接口名称

登录获取token

URL

https://api.iot.ink/api/app.php?s=Manage.Auth_Oauth_Posttoken.Api

请求方式

POST

参数

字段

类型

说明

service

String

Manage.Auth_Oauth_Posttoken.Api

access_token

String

接口平台token信息

username

String

用户名

password

String

密码

tenant-id

String

站点id

grant_type

String

默认填写password

scope

String

默认填写server

返回结果

access_token

String

消防平台token

dept_id

String

用户所在单位id

expires_in

Integer

token有效期

realName

String

真实姓名

user_id

Integer

用户id

username

String

用户名


https://api.iot.ink/docs.php?service=Manage.Auth_Oauth_Gettoken.Api&detail=1&type=fold


10.获取有权限的单位列表


接口名称

获取单位树

URL

https://api.iot.ink/api/app.php?s=Manage.Admin_Dept_User_Gettree.Api

请求方式

GET

参数

字段

类型

说明

service

String

Manage.Admin_Dept_User_Gettree.Api

access_token

String

接口平台token信息

searchType

String

1区域展示查询 2单位展示查询

请求头

Authorization

String

消防平台Token令牌信息

TENANT-ID

Integer

站点id

scope

String

默认填写server

返回结果

id

Integer

单位id

latLud

String

单位经纬度

name

String

单位名称

parentId

Integer

上级单位id


https://api.iot.ink/docs.php?service=Manage.Admin_Dept_User_Gettree.Api&detail=1&type=fold


11.获取所属系统


接口名称

站点的消防栏目列表

URL

https://api.iot.ink/api/app.php?s=Manage.Admin_Tenant_GetgetFcSystemList.Api

请求方式

GET

参数

字段

类型

说明

service

String

Manage.Admin_Tenant_GetgetFcSystemList.Api

access_token

String

接口平台token信息

请求头

Authorization

String

消防平台Token令牌信息

TENANT-ID

Integer

站点id

scope

String

默认填写server

返回结果

systemCode

String

所属系统编码

systemName

String

所属系统名称


https://api.iot.ink/docs.php?service=Manage.Admin_Tenant_GetgetFcSystemList.Api&detail=1&type=fold


12.获取厂商系列型号


接口名称

站点的消防栏目列表

URL

https://api.iot.ink/api/app.php?s=Manage.Admin_Tenant_GetgetFcSystemList.Api

请求方式

GET

参数

字段

类型

说明

service

String

Manage.Admin_Tenant_GetgetFcSystemList.Api

access_token

String

接口平台token信息

请求头

Authorization

String

消防平台Token令牌信息

TENANT-ID

Integer

站点id

scope

String

默认填写server

返回结果

systemCode

String

所属系统编码

systemName

String

所属系统名称


https://api.iot.ink/docs.php?service=Equipment.Device_DeviceModel_GetgetManufacturerTypeModel.Api&detail=1&type=fold


13.获取建筑树


接口名称

获取建筑树

URL

https://api.iot.ink/api/app.php?s=Equipment.Device_Building_GettreeByDevice.Api

请求方式

GET

参数

字段

类型

说明

service

String

Equipment.Device_Building_GettreeByDevice.Api

access_token

String

接口平台token信息

deptId

Ingeter

单位id

请求头

Authorization

String

消防平台Token令牌信息

TENANT-ID

Integer

站点id

scope

String

默认填写server

返回结果

buildingName

String

建筑名称

id

Integer

建筑id


https://api.iot.ink/docs.php?service=Equipment.Device_Building_GettreeByDevice.Api&detail=1&type=fold


14.获取用传和消防主机树


接口名称

获取用传和消防主机树

URL

https://api.iot.ink/api/app.php?s=Equipment.Device_FireMain_GetlistFireMainAndUserCode.Api

请求方式

GET

参数

字段

类型

说明

service

String

Equipment.Device_FireMain_GetlistFireMainAndUserCode.Api

access_token

String

接口平台token信息

deptId

Integer

单位id

isDept

String

0: 单位 1:区域

请求头

Authorization

String

消防平台Token令牌信息

TENANT-ID

Integer

站点id

scope

String

默认填写server

返回结果

code

String

用传编码

children->code

String

主机编码


https://api.iot.ink/docs.php?service=Equipment.Device_FireMain_GetlistFireMainAndUserCode.Api&detail=1&type=fold


15.获取消防主机部件树


接口名称

获取消防主机部件树

URL

https://api.iot.ink/api/app.php?s=Equipment.Device_FireMain_GetlistAllFireMainType.Api

请求方式

GET

参数

字段

类型

说明

service

String

Equipment.Device_FireMain_GetlistAllFireMainType.Api

access_token

String

接口平台token信息

请求头

Authorization

String

消防平台Token令牌信息

TENANT-ID

Integer

站点id

scope

String

默认填写server

返回结果

fireMainTypeId

Integer

部件id

fireMainTypeName

String

部件名称


https://api.iot.ink/docs.php?service=Equipment.Device_FireMain_GetlistAllFireMainType.Api&detail=1&type=fold


16.获取能挂载的视频


接口名称

获取设备能挂载的视频

URL

https://api.iot.ink/api/app.php?s=Equipment.Video_Videodevice_GetgetVideoDeviceList.Api

请求方式

GET

参数

字段

类型

说明

service

String

Equipment.Video_Videodevice_GetgetVideoDeviceList.Api

access_token

String

接口平台token信息

deptId

Integer

单位id

isDept

String

0:单位节点 1:区域节点

请求头

Authorization

String

消防平台Token令牌信息

TENANT-ID

Integer

站点id

scope

String

默认填写server

返回结果

id

Integer

摄像头id

name

String

摄像头名称


https://api.iot.ink/docs.php?service=Equipment.Video_Videodevice_GetgetVideoDeviceList.Api&detail=1&type=expand


17.添加指定设备


接口名称

添加设备

URL

https://api.iot.ink/api/app.php?s=Equipment.Device_Device_PostaddDevice.Api

请求方式

POST

参数

字段

类型

说明

service

String

Equipment.Device_Device_PostaddDevice.Api

access_token

String

接口平台token信息

deptId

Integer

单位id

system

String

所属系统

code

String

设备编码

manufacturer

Integer

厂商id

deviceType

Integer

设备类型id

deviceModel

Integer

设备型号id

buildId

Integer

建筑id

floor

Integer

建筑楼层

addressDesc

String

位置描述

mark

String

位置标记

mainEngine

String

用传和主机编码

address

String

主机地址

loopBack

String

回路

videoIdList

Integer[]

绑定的视频列表

请求头

Authorization

String

消防平台Token令牌信息

TENANT-ID

Integer

站点id

scope

String

默认填写server


https://api.iot.ink/docs.php?service=Equipment.Device_Device_PostaddDevice.Api&detail=1&type=fold


18.获取硬件设备测点信息说明


接口名称

添加设备

URL

https://api.iot.ink/api/app.php?s=Equipment.Device_DeviceModel_GetgetDeviceModelAPI.Api

请求方式

POST

参数

字段

类型

说明

service

String

Equipment.Device_DeviceModel_GetgetDeviceModelAPI.Api

access_token

String

接口平台token信息

deviceModelId

Integer

设备型号ID

请求头

Authorization

String

消防平台Token令牌信息

TENANT-ID

Integer

站点id

scope

String

默认填写server


https://api.iot.ink/docs.php?service=Equipment.Device_DeviceModel_GetgetDeviceModelAPI.Api&detail=1&type=fold


19.第三方平台获取设备实时数据

推送接口统一采用HTTP的方式向第三方平台推送数据,接收数据的第三方平台需要实现相应的HTTP的接口,将接口的地址设置到中科图灵消防物联网云平台,这样平台就会向设置好的URL的路径发送HTTP的POST请求,平台推送的数据都封装在了Body内,具体的Body内的参数见下面的描述。

(1)如何设置推送地址

Ø登陆申请的消防物联网云平台。

Ø找到 “系统管理”-“其他设置”-填写推送地址(注意:设备在哪个单位下,就要在哪个单位下设置推送地址)如下图所示。



Ø请先根据例子使用调试工具(postman等)测试接口是否能通,再去配置推送地址postman,下载地址:https://www.postman.com/dpwnloads。

Ø文档涉及到用传的国标协议 GBT 26875[1].3-2011城市消防远程监控系统 第3部分:报警传输网络通信协议.pdf ,如需要请联系我们。


(2)用传部件通知服务(注意:所有的通知服务只有一个推送地址

推送的目标服务器路径:

第三方平台设置的推送地址

推送的功能:

当消防主机的部件状态发生变化时,平台接收到设备传过来的数据后,经过处理可以分发到第三方平台。

推送的方法:POST

推送的body内的参数格式:


参数

类型

描述

logId

String

日志编号

address

String

部件说明

fireMainCode

Integer

消防主机编号

deviceCode

String

消防平台生成部件编号(全平台唯一)例如:5312213319941-1-223

531221331994:表示用传编号,1:表示主机编号,两个-中间的1:表示部件回路,223:表示部件地址

uploadTime

Long

数据产生时间

userCode

String

用传编号

receiveTime

Long

平台接收数据时间

addressNo

String

部件地址

systemType

Integer

系统类型(GBT 26875[1].3-2011城市消防远程监控系统 第3部分:报警传输网络通信协议.pdf 见8.2.1.1 表4 系统类型定义表)

statusName

String

部件状态(延时、反馈、启动、监管、屏蔽、故障、火警、正常、停止、监管取消、屏蔽取消、反馈取消、故障恢复、火警恢复、电源故障)

FIREMAIN

JSON

测点信息

FIREMAIN>>alarmType

String

报警类型

FIREMAIN>>alarmStatus

Integer

0故障 1报警 2正常

FIREMAIN>>alarmValue

Integer

状态型:0故障 1报警 2正常

partType

Integer

部件类型(GBT 26875[1].3-2011城市消防远程监控系统 第3部分:报警传输网络通信协议.pdf 见8.2.1.2 表5 建筑消防设施部件类型定义表)

loopNo

String

部件回路

status

Integer

整条数据的状态 0故障 1报警 2正常(消防主机模块 只有一个测点)这里的状态是依据测点里的alarmStatus状态,有多个测点,只要一个测点出现火警/故障,这里的status同测点的状态





推送的示例:

访问的URL:

用户设定的地址

Header的参数:

Content-Type: application/json

Body内的数据:

{

    "address": "3层",

    "fireMainCode": 1,

    "deviceCode": "5312213319941-1-223",

    "uploadTime": 1663894963651,

    "userCode": "531221331994",

    "receiveTime": 1663894963651,

    "addressNo": "223",

    "systemType": 1,

    "statusName": "反馈",

    "FIREMAIN": {

        "alarmType": "反馈",

        "alarmStatus": 2,

        "alarmValue": 2

    },

    "logId": "63cc8d7b-beda-434b-aa2f-9b5a9b823c48",

    "partType": 0,

    "loopNo": "1",

    "status": 2

}


(3)用传操作/运行/心跳信息

平台接收到设备传过来的数据后,经过处理可以分发到第三方平台。

推送的方法:POST

推送的body内的参数格式:

参数

类型

描述

statusName

String

操作信息(复位、消音、手动报警、警情解除、自检、查岗应答、测试、正常)

logId

String

日志编号

uploadTime

Long

数据产生时间

userCode

String

用传编号

status

Integer

0故障 1报警 2正常



例子:

{

    "statusName": "复位",

    "logId": "a6fd9622-e636-4f37-b956-16215520c13c",

    "uploadTime": 1663898977007,

    "userCode": "531221331994",

    "status": 2

}


(4)独立设备通知服务

推送的功能:

当设备状态发生变化/心跳/离线,平台接收到设备传过来的数据后,经过处理可以分发到第三方平台。

推送的方法:POST

推送的body内的参数格式:


参数

类型

描述

logId

String(固定)

日志编号

deviceCode

String(固定)

设备编号

uploadTime

Long(固定)

设备数据时间

receiveTime

Long(固定)

平台接收时间

status

Integer(固定)

0故障 1报警 2:正常 4:离线

测点

Object(可变)

每种独立式设备都会有多个测点,可以通过中科图灵开放平台调用接口,查询每种独立式设备的测点列表

测点>>alarmType

String

当前测点状态描述

测点>>alarmStatus

Integer

测点状态   0故障 1报警 2:正常 4:离线

测点>>alarmValue

String

测点值(当测点是状态型的,值和alarmStatus一样,当测点是数值型的,就是普通的数值,例如温度:25)


访问的URL:

用户设定的地址

Header的参数:

Content-Type: application/json

Body内的数据:

{

    "ECA": {

        "alarmType": "电流过大",

        "alarmStatus": 0,

        "alarmValue": "120.2"

    },

    "ECC": {

        "alarmType": "没有接传感器",

        "alarmStatus": 2,

        "alarmValue": "0.0"

    },

    "ECB": {

        "alarmType": "没有接传感器",

        "alarmStatus": 2,

        "alarmValue": "0.0"

    },

    "VLA": {

        "alarmType": "电压缺相",

        "alarmStatus": 1,

        "alarmValue": "0"

    },

    "deviceCode": "9879456461214",

    "uploadTime": 1665194256000,

    "VLC": {

        "alarmType": "电压缺相",

        "alarmStatus": 1,

        "alarmValue": "0"

    },

    "VLB": {

        "alarmType": "电压缺相",

        "alarmStatus": 1,

        "alarmValue": "0"

    },

    "receiveTime": 1665995751504,

    "TEMPT4": {

        "alarmType": "正常",

        "alarmStatus": 2,

        "alarmValue": "17.9"

    },

    "TEMPT3": {

        "alarmType": "正常",

        "alarmStatus": 2,

        "alarmValue": "17.8"

    },

    "TEMPT2": {

        "alarmType": "正常",

        "alarmStatus": 2,

        "alarmValue": "17.9"

    },

    "TEMPT1": {

        "alarmType": "正常",

        "alarmStatus": 2,

        "alarmValue": "0.0"

    },

    "logId": "86ea3dd4-4e36-4768-a81a-c0396d3fe0d1",

    "SIGN": {

        "alarmType": "正常",

        "alarmStatus": 2,

        "alarmValue": "-90"

    },

    "OFFLINE": {

        "alarmType": "上线",

        "alarmStatus": 2,

        "alarmValue": 2

    },

    "LK": {

        "alarmType": "没有接传感器",

        "alarmStatus": 2,

        "alarmValue": "20"

    },

    "status": 1

}

对应的设备型号测点描述详情可通过 第18接口调用获取。

接口的型号ID参数可通过下图地方获取。



注意事项

Ø添加设备时 请先查看该设备属于哪种系统,可根据设备型号表查看。

Ø添加推送地址时,请选择设备对应的所属单位。

Ø每个设备类型的测点都不一样,可通过调用第18个接口(获取测点的详细信息)查看。

Ø不是每次推送的实时数据都包含了该设备的全部测点,开发者解析的时候不要每个测点都判断。

Ø设备的所属厂商、系列、型号、对应关系如下图。



Ø用传和消防主机设备推送的数据格式请按照用传部件通知服务版本解析。



昵称:
内容:
提交评论
评论一下