==静态模板==
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--