使用MQTTBox连接MindSphere IoT Extention

==静态模板==

https://cumulocity.com/guides/device-sdk/mqtt/#mqtt-static-templates 

==创建连接==

打开MQTTBox,在Client创建界面中输入相应信息:

【MQTT Client Name】Client识别名

【MQTT Client Id】可使用 “Generate a random ID” 按钮或者自行输入。此ID会成为平台上此网关的ID名称(MQTT ClientId是一个字段,用于唯一标识每个连接的客户端。Cumulocity IoT还使用ClientId将客户端直接链接到设备。一个好的设备标识符可以是网络适配器的MAC地址,移动设备的IMEI或硬件序列号。

【Protocol】选择mqtt/tcp

【Host】Tenant的URL地址:{TenantName}.mciotextension.cn1.mindsphere-in.cn:1883

【Username】:{TenantName}/{MailAddress}, 例如:cnsocdev/san.zhang@163.com

【Password】登录IoT Extension的密码

其他选项可直接使用默认,点击Save保存。显示Connected,则表示与平台连接成功。如下图所示:

==创建设备==

在Topic to publish中输入s/us,使用此topic发送数据至平台侧。

创建设备,发送100模版消息(100,myDevice,myType),点击发送。如:

100,QchDevice0403,qchtype

点击Publish发送。

这样就可以去MindSphere IoT Extention上可以看到注册的设备了。

可以点进进去查看设备信息:

==设置硬件信息==

使用消息模版110(110,serialNumber,model,revision),同样是用s/us topic 发送:

110,202004031044000,DView500边缘控制器,1.0.0

再次查看设备信息,可以看到通过消息模板发送的硬件信息了:

==设置网关设备要求间隔时间==

使用消息模板117(117,requireIntervalInSeconds)

117,60

之后在IoT Extension的设备界面中,及会显示此信息,并且设备状态更新为“在线”

==发送模拟数据==

使用消息模版211(发送温度测量值 211,temperatureValue,timestamp)

之后在此网关页面的“测量”上即可看到此上传数据值

==上传自定义属性==

使用消息模版200。如:

200,QchMeasurement,AR_TEST_VAR1,100,度,
200,QchMeasurement,AR_TEST_VAR2,101,度,
200,QchMeasurement,AR_TEST_VAR3,101,度,

在测量上查看发送的自定义变量。

也可以在payload里写批量的静态模板。如:

200,QchMeasurement,AR_TEST_VAR4,101,度,
200,QchMeasurement,AR_TEST_VAR5,102,度,
200,QchMeasurement,AR_TEST_VAR6,103,度,

在页面上查看结果:

==反向控制(向设备发送控制命令)==

1)网关需接受从云端发送的消息,则需要订阅Topic s/ds。

点击“Subscribe”订阅。

2)向云端申明,支持的下发操作类型。

使用消息模版114

114,c8y_Command,c8y_Restart,c8y_Configuration,c8y_SoftwareList

3)返回设备界面,到“控制”页面中,点击“重新启动设备”。

如果不发送上面的那条申报命令,是看不到“重新启动设备”的按钮的。

在MQTT Box订阅的消息中,则会收到此重启命令,消息模版510

4)使用IoT Extension的API调取实现反向控制操作,下发到设备。

使用Postman工具,调取API:

【url】https://{TenantName}.mciotextension.cn1.mindsphere-in.cn/devicecontrol/operations/

【authorization】使用BasicAuth认证,用户名密码均为登录IoT Extension时所使用的。

【body】使用JSON格式(其中deviceId可以去页面上去找)

{
  "deviceId" : "17910",
  "c8y_Command": {
    "text": "Machine_Stop"
  }
}

点击send之后,在MQTT Box上订阅的信息会显示此命令:

可在设备的控制页上查看到此使用API调取发送的控制命令:

--END--

原文地址:https://www.cnblogs.com/quchunhui/p/12625415.html