使用mqttfx模拟机电设备
操作步骤
- 访问智能设施云平台管理控制台,选择“设备管理 > 产品”,在对应产品分类下创建一个产品,注意产品ID要唯一,协议类型必须为MQTT。
图1 创建产品
- 创建产品成功后单击详情页面,在该页面下添加服务ID,一般默认固定填写为InfoService。
图2 添加服务
- 添加服务成功后可以为该服务添加对应的设备属性,具体属性名称和属性类型根据自己的设备属性来,操作如下:
图3 添加属性
- 接着在“设备”菜单注册对应一个网关设备,设备类型为网关设备,填写网关名称,其它使用默认值即可,操作如下:
图4 注册网关设备
- 准备一台连接公网的虚拟机,并且该虚拟机上安装好docker,接着点“边缘管理》边缘设备”菜单找到步骤4注册好网关后,单击后面的安装,选择对应架构就会生成安装命令,在虚拟机上复制对应安装命令,使用root执行复制的命令来安装网关,安装成功后该网关设备将变成在线状态,同时记录好虚拟机的IP地址(后面mqtt连接需要用到),对应页面如下:
图5 安装网关
- 在“设备”菜单注册对应设备,设备所属产品要选择上面创建的产品,设备类型为机电设备,边缘网关设备选择上面安装好的网关设备,设备鉴权密码填写一个好记住的密码(后面连接mqtt需要用到),操作如下:
图6 注册机电设备
- 注册成功后会弹出关闭保持框,单击确认后就会下载一个DEVICES-KEY.txt的文件,该文件记录好了该设备的secret值(对应的就是设备鉴权密码)。同时去设备详情里面查看设备id并记录下来。
- 进入下面url下载安装MQTT.fx工具后进行安装:
https://iotda-document.obs.cn-north-4.myhuaweicloud.com/mqttfx-1.7.1-windows-x64.exe
- 访问https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com这个地址,填写步骤4的设备ID(DeviceId)和设备的设备鉴权密码,密码签名类型为密钥认证,密码签名类型为不校验时间戳,生成连接信息(ClientId、Username、Password)。
图7 clientID生成工具
- 打开MQTT.fx软件,单击设置图标。
图8 设置按钮
- 参考下表配置鉴权参数,然后单击“Apply”。
图9 mqtt连接配置
表1 mqtt连接参数 参数名称
说明
Broker Address
设备对接地址,此地址为安装网关虚拟机对外的IP地址。
Broker Port
默认使用7882
CliendID
设备cliendID,请参考步骤9中获取。
User Name
即设备ID,请参考步骤9中获取。
Password
加密后的9备密钥,请参考步骤7中获取。
- 单击“Connect”,设备鉴权成功后,在设施云平台“设备”界面可以看到对应物联网设备处于在线状态就说明模拟设备连接成功了。
- 连接成功后就可以通过发布消息到对应设备的url就能上报该设备的点位数据,对应url如下:
“$oc/devices/{device_id}/sys/properties/report”为例,如“$oc/devices/5e4e2e92ac-164aefa8fouquan1/sys/properties/report”。
图10 上报点位 - 填写上报的数据格式如下:
{ "services": [ { "event_time": "20240914T081438Z", "properties": { "ElecQualitity": 10.1 }, "service_id": "InfoService" } ] }
表2 设备服务数据列表 字段名
必选/可选
类型
参数描述
services
必选
List<ServiceProperty>
设备服务数据列表(具体结构参考下表ServiceProperty定义表)
表3 ServiceProperty定义表 字段名
必选/可选
类型
参数描述
service_id
必选
String
设备服务的ID。固定填写为InfoService.
properties
必选
Object
设备服务的属性列表,具体字段在设备关联的产品模型中定义。
eventTime
可选
String
设备采集数据UTC时间(格式:yyyyMMddTHHmmssZ),如:20161219T114920Z。
设备上报数据不带该参数或参数格式错误时,则数据上报时间以平台时间为准。
- 单击“Publish”,可以在设施云设备详情界面上查看设备是否成功上报数据。
图11 机电设备点位
- 如果要模拟设置点位,在mqtt.fx模拟工具打开订阅功能,订阅的topic为$oc/devices/{device_id}/sys/properties/set/#,如下图所示:
图12 订阅点位设置
- 接着在机电设备详情页面对应的属性管理页面,单击对应点位设置按钮来设置这个设备的点位进行下发:
图13 设定点位值
- 设置成功后就可以监听到一个消息了,如下所示,可以看到一个后面有个request_id参数,获取这个参数值后,接着发布一个消息来响应设置点位成功。
图14 监听点位设置信息
- 发布的topic为$oc/devices/{device_id}/sys/properties/set/response/request_id={request_id},速度要快,不然就容易响应超时导致设置失败了。
图15 响应点位设置