==靜態模板==
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--