Insights
|
08 Jan 2022
u-blox 物联网通信即服务平台 Thingstream 可通过 MQTT 将物联网设备连接到世界各地的 Cumulocity。
Cumulocity 是 Software AG 推出的物联网平台,可提供物联网设备管理、数据可视化和 API,旨在将物联网与企业网络的其他部分连接起来。
Cumulocity 通过 Thingstream 服务交付平台与 u-blox 全球通信网络无缝集成在一起,实现设备与企业之间的全球通信。按照本指南使用 u-blox Thingstream 将您的物联网设备与 Cumulocity 平台连接起来。
将数据从设备传输到 Cumulocity 的最简单的方法是通过MQTT(MQ 遥测传输)。Software AG 提供了许多 MQTT 静态模板,您可以使用这些模板在 Cumulocity 中快速注册设备,并发送常见用例的更新,包括位置更新和发送遥测。
要在 Thingstream 数据流中使用静态模板,您需要添加函数节点(如下图所示)以使用所需格式为要使用的 Cumulocity 静态模板创建有效负载。
MQTT 发布到 Cumulocity 需要使用设备唯一的客户端 ID。一个好主意是从 Thingstream 客户端 ID 派生该 ID,此操作可使用 Thingstream 函数节点通过以下代码完成:
var id = msg.contextProperties.deviceId.split(':'); //此操作将使用 Thing 的唯一设备 ID,并分离前缀“device:”以使其与 Cumulocity 兼容
msg.clientid = id[1]; // 此操作将设置 Thingstream MQTT 发布节点使用的 msg.clientid 属性
在 Cumulocity 中注册新设备时,需要使用静态模板“100”来创建设备,并使用静态模板“110”来用客户端 ID 更新该设备。如果设备已存在于 Cumulocity 中,则此类请求将被忽略。将以下代码添加到 Thingstream 函数节点:
msg.payload="100,"+msg.contextProperties.deviceName+",MQTT\n110,"+msg.clientid // 此操作将使用 Thingstream Thing 的显示名称和在上一步中创建的客户端 ID 在 Cumulocity 中创建设备
在 Cumulocity 中向设备添加位置时,需要使用静态模板“112”,此操作可以通过 Thingstream 函数节点使用以下代码完成,其中 lat 和 lon 是您声明的来自设备的传入负载的变量:
msg.payload = "112,"+lat+","+lon;
如果愿意,您可以通过简单地将每个静态模板发布与换行符连接起来,依次进行注册、更新和设置位置任务:
msg.payload="100,"+msg.contextProperties.deviceName+",MQTT\n110,"+msg.clientid+"\n112,"+lat+","+lon;
一旦准备好有效负载,就可以将函数节点加入配置了 Cumulocity 租户凭证的 MQTT 发布节点。服务器 URL 是 mqtt.cumulocity.com,要发布的主题是 s/us。将客户端 ID 留空,以便使用您之前设置的 msg.clientid 值,然后将用户名设置为您的 Cumulocity 用户 ID,该 ID 以您的租户名称(如 mytenant/myusername)为前缀。将密码设置为用于登录 Cumulocity 的密码
Nick Hayes
客户运营主管 - u-blox 服务