IOTGateway 与IOTSharp通讯
1、资料
教程:http://iotgateway.net/docs/intro/
2、配置
打开iotsharp,“数字孪生->设备管理->添加”添加网关“IIoTGateway”
注意:网关设备必须添加,不然遥测数据看不到~~
点击设备名称“IIoTGateway”,复制详情里面的Token值:6411ce47fc104962bcc230634aea00d7
设置mqtt用户名为前面复制的Token
注意:iotsharp的mqtt默认使用的是1883端口,所以IOTGateway的mqtt也要使用1883,iotsharp的mqtt端口配置在appsettings.DefaultSettings.json文件里
3、发布消息
使用mqtt测试工具,发送一个遥测数据
devices/{设备名称}/telemetry 遥测数据
devices/{设备名称}/attributes 属性数据
刷新一下页面,我们就能在“grb”设备中看到遥测数据了
测试1号,这边还能看到之前测试的温湿度数据
4、上下线消息订阅
设备上线消息:
设备下线消息:
说明:
1、按官方教程说“gateway/connect、gateway/disconnect”主题,可以直接兼容“v1/gateway/connect、v1/gateway/disconnect”。
2、但是经过测试发现,这里只能使用“v1/gateway/connect、v1/gateway/disconnect”,“gateway/connect、gateway/disconnect”在源码环境中不能使用,收不到消息。
3、消息的数据编码为UTF-8。
当输出平台是“ThingsBoard、IoTSharp、IoTGateway”时,消息是带“v1”的,只有“ThingsCloud”平台的是不带v1的,这个和官方教程的说法有出入。
5、遥测消息订阅
设备的遥测数据订阅,这个订阅实际上是订阅的IoTGateway的服务。
代码在下面这个位置。
订阅结果如下,从订阅结果来看,订阅的数据是最终计算后的值。
注意:
1、IOTSharp没启动的情况下,遥测数据无法订阅
2、必须先启动IOTSharp工程,然后再启动IoTGateway,如果需要先启动IoTGateway工程,所有设备必须处于关闭状态,否则IOTSharp启动时,程序会异常。
推测原因:mqtt消息订阅比其他模块先启动,导致接收到mqtt消息后,程序查询不到数据,导致异常。