北向应用
# 基础功能使用指南
北向应用包括终端管理、应用接入管理和应用平台管理三部分内容。
# 视频教程
# 终端管理
首先介绍终端管理,终端管理包含终端类型管理和终端信息管理两大功能。
# 终端类型管理
对终端信息进行归类,用户如果需要对终端信息划分多个类型进行分组,可以在这里维护终端类型。终端类型也支持配置产品的终端类型,当配置产品的终端类型后,后续同步的该产品的终端以及已同步的该产品的终端将默认配置该终端类型。该功能主要维护终端类型字典信息,在北向功能中,实施人员必须维护好终端类型数据。
# 终端信息管理
终端信息管理,主要功能有终端数据同步功能(程序自动同步,无需人员操作),该功能主要实现:将设备中的数据自动映射到终端信息中,终端编号默认为设备号,终端名称默认为设备名称,所属产品自动为设备所属产品,其余信息无法同步的,需要实施人员对数据进行修改。该管理界面还提供了导出和导入功能。导出:当操作完同步之后,终端信息的安装信息是没有的,这时候需要配置,如何批量配置,使用导出功能,对空白字段的数据进行修改。导入:当用户维护好前面导出的数据之后,再将数据导入,这样就实现了数据批量修改。也可以对终端信息进行一一维护。
重点属性说明:
终端编号:默认为设备号,后续可根据业务需求修改,不能重复。作为终端的唯一标识。
终端ID:默认生成规则为 设备地址_设备号。
按条件搜索终端信息
导出终端信息
导入设备/终端信息
将设备/终端信息填写完整点击导入
选择导入的表格
修改终端信息
用户根据终端实际情况,将终端所属分类及终端基本属性维护好,这样才能使基本数据完整,后面的业务流程需要这些基础信息。
删除终端信息
# 终端分类管理
可根据业务需求新增终端分类数据,可以在终端信息管理中配置终端的终端分类
# 应用接入管理
应用接入管理,常见的应用有,线下ROMA,线上ROMA,其他厂商应用。对接主要围绕IoT数据接入进行展开,如应用调用IoT北向接口,IoT实时数据推送给应用。
# 应用接口管理
管理北向应用可以访问的北向接口,可以新增接口、修改、删除接口。在应用调用北向接口是,首先判断接口是否在该范围中,如果不在该范围,应用是无法调用成功的。
新增接口
填写接口信息点击保存,该接口地址可以从《IoT平台北向通用V2 API文档网关版V2.0.X》中获取。点击IoT平台北向通用V2 API文档网关版V2.1.0下载
转发功能
在IoT项目中开发协议插件或扩展插件时,碰到需要暴露WebApi接口给第三方使用的场景时,常见的做法是在插件中暴露一个端口,将接口暴露出来给第三方进行调用。为了统一对外端口及鉴权安全要求,应用接口管理中可以接管该类业务需求,使用转发功能将地址进行转发。
例如:协议插件中暴露了一个接口,用于查询停车信息:
http://127.0.0.1:8008/api/protocol/event/GetParkingInfoList
在北向接口管理中配置如下:
说明:
是否转发: 选择是,表示启用转发功能。
转发地址: 填入插件中暴露的接口,此处应填入http://127.0.0.1:8008/api/protocol/event/GetParkingInfoList
请求地址: 使用转发功能时,请求地址的前缀统一使用 /customapi/,因此请求地址处应填入 /customapi/api/protocol/event/GetParkingInfoList。
配置完成后就可以使用IoTCenter的https端口进行访问了。例如:https://127.0.0.1:44380/customapi/api/protocol/event/GetParkingInfoList。
查看接口信息
修改接口
可修改启用停用接口、接口名称、请求地址、接口分组、请求方式
删除接口
# 应用接入管理
维护北向应用信息,在需要与北向应用进行对接时,在应用接入功能中添加对应应用的信息,该信息中主要包含:应用名称,应用Key,应用秘钥,是否启用等信息。在添加应用时尤其要注意应用key,应用信息创建后无法查看,只能进行修改时查看,因此要妥善保管,在上层应用没有提出需求时不要去修改。
新增应用
点击新增填写应用名称点击保存
默认配置:该功能实现对应于自动赋予所有终端,自动赋予所有北向通用接口,用于快速配置应用相关数据
查看应用
修改应用
重置密钥:重置应用密码(应用授权),应用状态:启用、停用
调试模式:是、否(打印INFO日志)。
删除应用
可以删除应用信息,删除的同时,应用无法调用北向接口,北向转发数据也会立即停止。
应用日志下载
可以下载各个应用产生的日志信息,在应用新增或修改界面,可以配置应用的调试状态,如果选择调试模式,会将Info级别的日志写入日志文件中。否则只记录Warning级别的日志,在与应用联调时,可以将调试模式开启,等待接入完成后,关闭调试模式。
应用终端授权
应用创建后,用户可以对应用授权终端,可以按终端类型进行全选或者自定义选择。只有应用授权后的终端,应用才可看和可控可进行批量操作。
应用接口授权
北向应用在调用接口时,如果某个接口已授权给该应用了,那么应用调用后能正常返回成功,否则会出现“该接口未授权”的提示。
访问安全组:有两种配置格式,格式1:"192.168.0.0/24","fe80::/10";格式2:"169.258.0.0-169.258.0.255",可以填某个IP或者IP段。如果填写了该IP,那么只有该IP才能访问北向接口,如果不填写,后端会以警告的日志记录调用者的IP,提示用户配置改IP。
该新增为接口授权新增,先从北向接口库中选择需要授权给应用的接口。选择后会在列表中生成新的记录,如果已经存在不会进行新增。在列表中产生的新纪录并没有保存到数据中
接口访问限制,用户可以选择继续配置请求限制次数。然后点击底部的保存按钮,提交数据到数据库中。
删除授权接口,可以将已授权的接口删除。
新增接口,点击新增选择所需接口
转发规则引擎
北向应用需要IoT平台推送实时数据时,用户可以按产品配置转发规则,如产品为温湿度的终端,应用需要设备状态、遥测、遥信的实时值,需要在状态、遥测、遥信变化时上报数据;并且对产品属性的数据配置过滤值,如终端属性的wendu,有效值在10-100范围内,并且过滤为88的值才会进行上报。
上报类型:设备状态、遥测、遥信、终端报警事件、命令执行结果。这些项选择的目的是为应用推送实时消息,可以根据应用需求进行个性化配置。
属性上报规则:定时上报和变化上报,其中定时上报可以配置间隔时间。这两种上报规则只对遥测、遥信有效。
状态上报规则:定时上报和变化上报,其中变化上报的规则中配置的“时间间隔”为设置时间内两次状态变化间隔多久内不上报。当前上报规则只对设备状态有效。
其他规则:对产品中的遥测属性进行控制,主要包括过滤值(毛刺值),有效范围。只有符合在规则范围的实时值才会进行上报,不符合的数据会进行过滤。如果需要对某个遥测属性进行配置,可以新增属性,并配置相应的值,然后单击底部的保存按钮生效。
消息订阅管理
消息订阅主要针对终端实时数据,应用订阅终端实时数据时,需要应用提供接收实时数据的协议地址,可以支持常见的协议如,http,https,kafka等协议。主要的实时消息有4种:终端属性变化(遥测、遥信),终端状态变化(设备状态),终端事件(如报警事件),终端命令响应。在配置消息订阅完成后,敢为根据该配置信息,转发终端的实时数据,以下为消息发送流程:
新增订阅,选择订阅所属的应用,针对所填写的内容,请参考如下填写规则。
实时数据类型:推送终端4中实时数据(状态、属性(遥测遥信)事件,命令响应)。
协议类型:上层应用接收消息采用的协议。
终端类型:推送哪些终端类型数据(所选终端类型都会推送到一个topic下)
订阅名称:该名称iot这边可以自行定义。
转发地址:上层应用提供的消息接收地址。
转发topic:对于线上roma kafka需要用到,线下ROMA https 会用到。
发地址APPId:对于线上kafka需要用到,线下ROMA https 会用到。
转转发地址KEY:对于线上kafka需要用到,线下ROMA https 会用到。
SSL证书:对于线上ROMA中的kafka接入,如果开启了MQS_SASL_SSL,需要上传证书,该证书可以向线下roma的人获取。
# 接口使用
下面介绍北向常用接口的调用方式。
鉴权
需先在IOT上添加应用,保存好密码。
给应用授权接口
去postman鉴权(发送请求前检查url、端口、请求方式)
批量查询终端基础信息
IOT批量查询终端基础信息
查询单个终端基础信息
先批量查询终端基础信息得到terminalId,按terminalId查询单个设备基础信息
IOT单个设备基础信息
查询终端分类数据
查询IOT终端分类
批量查询终端属性数据
先批量查询终端基础信息得到terminalId
查询IOT终端属性数据
查询设备属性历史值
先批量查询终端基础信息得到terminalId,批量查询终端属性数据得到propertyCode,选择开始和结束的时间。
IOT查询设备属性历史值
查询终端实时事件信息
IOT查询终端实时事件信息
查询终端历史事件信息
先批量查询终端基础信息得到terminalId,eventType事件类型:NORMAL(报警消除、恢复)、ABNORMAL(报警)、COMMAND(指令下发),选择时间
IOT查询终端历史事件信息
终端指令下发
先批量查询终端基础信息得到terminalId,批量查询终端属性数据得到propertyCode,输入下发参数。
IOT终端指令下发
查询订阅列表
IOT查询订阅列表
创建订阅
输入所创建订阅信息
IoT创建订阅
修改订阅
查询订阅列表得到subscriptionId,修改订阅信息
IOT修改订阅
删除订阅
查询订阅列表得到subscriptionId,删除subscriptionId
删除订阅
批量查询设备状态
支持传入"TerminalNos":["13855","13856"] 终端集合查询对应终端的状态
pageNo、pageSize为空时默认查询全部终端状态
查询终端是否存在历史值
传入参数与查询终端历史值的参数相同,当前接口返回true 为当前日期存在历史值false为当前日期不存在历史值
确认实时快照信息
requestId:试试快照唯一标识
ProcMsg:确认信息
WuBao: 是否误报(0否1是)
入参为空则确认最新一条实时快照
查询序列类型终端属性历史值
入参跟查询终端历史值相同,返回字符串类型历史值
查询字符串类型终端属性历史值
入参跟查询终端历史值相同,返回字符串类型历史值
# 应用平台管理
应用平台管理包括平台管理和平台终端管理量大功能。
下面先介绍平台管理
对接IoTEdge平台
华为IoTEdge,即华为边缘网关,在IoTDA中体现为一个直连设备,敢为所有的终端都注册到该直连设备中。边缘网关部署成功后,会自动在IoTDA中创建一个直连设备。
如果项目中使用IoTEdge边缘上报网关数据,配置信息如下,切勿填写错误。
平台配置完成后,终端注册到IoTEdge的配置如下:
平台设备id前缀:对平台设备前缀进行定义。举例:
如该前缀为:“d_wsd_”,设备号为:1000,那么注册到平台后的设备id为:“d_wsd_1000”。
平台设备标识码前缀:对平台设备标识码前缀进行定义。举例:
如该前缀为:“n_wsd_”,设备号为:1000,那么注册到平台后的设备id为:“n_wsd_1000”。
平台产品Id:在华为IoTDA平台中,创建产品后,会有一个产品Id,如下图所示:
对该平台配置上报规则:
上报规则中“其他规则”,有一个服务名称,该名称就是“华为IoT平台创建产品”中提到的服务Id。对照属性为“华为产品”中的属性名称。
对接IoTDA平台
对接IoTDA平台,即华为云IoT平台,它最大的特点是,可以添加任意的直连设备,敢为网关通过各个直连设备进行子设备注册,数据上报。这样就做到了,某一类设备可以全部注册的某个直连网关下。对接IoTDA的场景,一般用于智慧城市项目,用于设备分权处理,即各个委办局可以看到自己所在委办的设备。如在项目中,既要对接公交车子系统,又要对接水环境监测子系统,很明显所在的职能部门不一样,那要怎么做呢?
创建直连设备
在IoTDA中创建两个直连设备,分别为公交车子系统设备,水环境监测设备。敢为南向解析也会有两个分类(或两个设备模板/产品)。因此我们可以将敢为南向中的两个分类设备注册到IoTDA中的(公交车子系统设备,水环境监测设备)。
创建直连设备:需要将设备Id和设备秘钥记住,后面在敢为注册设备时需要用到。
IoT中配置平台**
连接参数key请按照如下配置,其中host对应的值,应根据项目中实际情况来填写,端口默认采用:1883。
平台终端注册参数,请按照下图准确无误的填写。
平台配置完成后,终端注册到IoTDA的配置如下:
这里所填写的内容和IoTEdge那个类似,只是多了两个参数,这两个参数就是上一步“创建直连设备”成功后给到的设备id和设备秘钥,如下图。
对该平台配置上报规则:
上报规则中“其他规则”,有一个服务名称,该名称就是“华为IoT平台创建产品”中提到的服务Id。对照属性为“华为产品”中的属性名称。
对接Ebg平台
在平台管理填写平台连接参数
T_IOT_DEVICE_DATACHANGED_GW__bingoqa3 订阅topic
T_IOT_DEVICE_ALARM_GW__bingoqa3 订阅topic
T_IOT_DEVICE_ADDED_GW__bingoqa3 订阅topic
T_IOT_DEVICE_COMMANDRSP_GW__bingoqa3 订阅topic
T_IOT_DEVICE_DELETED_GW__bingoqa3 订阅topic
T_IOT_DEVICE_ONLINESTATUS_GW__bingoqa3 订阅topic
T_IOT_DEVICE_MESSAGE_GW__bingoqa3 订阅topic
KafkaHost 127.0.0.1:9092 Kafka地址
PlatformId ganwei.iot 平台ID
MaxRetries 10 连接次数
TenantName bingoqa3 租户
选择上报规则,新增设备,根据规则上报数据。
平台终端管理
支持查看已注册到平台的终端列表。可以查询已注册,注册失败、下线等状态的数据,可以根据名称查询。