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 | 所属系统名称 |
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 |
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 | 部件名称 |
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 | 摄像头名称 |
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个接口(获取测点的详细信息)查看。
Ø不是每次推送的实时数据都包含了该设备的全部测点,开发者解析的时候不要每个测点都判断。
Ø设备的所属厂商、系列、型号、对应关系如下图。
Ø用传和消防主机设备推送的数据格式请按照用传部件通知服务版本解析。