設備管理

MQTT

感測資料

伺服器連線位址:iot.cht.com.tw,連接埠1883 與 8883 (TLS 加密連線)
支援 MQTT Protocol V3.1 與 V3.1.1
協定名稱
訂閱感測資料變動通知
Topic
/v1/device/${device_id}/sensor/${sensor_id}/rawdata
協定描述
訂閱感測資料變動通知。當感測資料有變動時,系統將會發送變動資訊給訂閱感測資料變動的終端裝置
模式

Subscribe

帳號與密碼
username: PROJECT_KEY or DEVICE_KEY
password: PROJECT_KEY or DEVICE_KEY
Response 說明
{ "id": "light0001", "deviceId": "7432", "time": "2016-03-30T08:28:47.532Z", "value":["1"] }
備註
1.device_id 為裝置 ID,而 sensor_id 為指定裝置 ID 下的sensor ID
2.project key 為專案的專屬金鑰,可以從專案管理 > 權限資料查詢得知
3.device key 為裝置專屬的金鑰,可以從裝置管理查詢得知
4.MQTT QoS 傳輸品質目前支援 QoS 0 最多傳送一次(at most once)模式。
5.MQTT 訂閱通知訊息的反應時間會依據平台目前訊息量多寡而影響快慢,平均 3秒內可接收到通知訊息。
6.MQTT 在網路階層架構中屬於應用層,它產生訊息並交給下一層(TCP)處理, MQTT 本身並不清楚最底層的網路是否壅塞甚至斷線,因此 MQTT 不保證能百分之百交付訊息。

協定名稱
訂閱感測資料變動通知(CSV)
Topic
/v1/device/${device_id}/sensor/${sensor_id}/csv
協定描述
訂閱感測資料變動通知。當感測資料有變動時,系統將會以CSV格式發送變動資訊給訂閱感測資料變動的終端裝置
模式

Subscribe

帳號與密碼
username: PROJECT_KEY or DEVICE_KEY
password: PROJECT_KEY or DEVICE_KEY
Response 說明
2016-03-30T08:28:47.532Z,7432,light0001,1
備註
1.回傳CSV格式為:日期,裝置編號,感測器識別代碼,感測器數值
2.device_id 為裝置 ID,而 sensor_id 為指定裝置 ID 下的sensor ID
3.project key 為專案的專屬金鑰,可以從專案管理 > 權限資料查詢得知
4.device key 為裝置專屬的金鑰,可以從裝置管理查詢得知
5.MQTT QoS 傳輸品質目前支援 QoS 0 最多傳送一次(at most once)模式。
6.MQTT 訂閱通知訊息的反應時間會依據平台目前訊息量多寡而影響快慢,平均 3秒內可接收到通知訊息。
7.MQTT 在網路階層架構中屬於應用層,它產生訊息並交給下一層(TCP)處理, MQTT 本身並不清楚最底層的網路是否壅塞甚至斷線,因此 MQTT 不保證能百分之百交付訊息。

協定名稱
發佈感測資料
Topic
/v1/device/${device_id}/rawdata
協定描述
發佈感測資料
模式

Publish

帳號與密碼
username: PROJECT_KEY or DEVICE_KEY
password: PROJECT_KEY or DEVICE_KEY
Message 說明
[ { "id": "loading", "time": "2014-12-11T10:43:58", "value": [ "96.3", "77.4" ] },{ "id": "loading", "time": "2014-12-11T10:45:58", "value": [ "97.7", "71.5" ] } ]
備註
1.device_id 為裝置 ID,而 id 為指定裝置 ID 下的sensor ID
2.time 為時間,格式為 ISO 8601 [optional]
3.lat 為緯度 (latitude) [optional]
4.lon 為經度 (longitude) [optional]
5.value 為原始資料數值,格式為字串,可以多筆數據。
6.project key 為專案的專屬金鑰,可以從專案管理 > 權限資料查詢得知
7.device key 為裝置專屬的金鑰,可以從裝置管理查詢得知
8.MQTT QoS 傳輸品質目前支援 QoS 0 最多傳送一次(at most once)模式。
9.MQTT 發布訊息的內容 Payload 大小為 5KB,若超過大小,平台將會捨棄訊息。
10.MQTT 在網路階層架構中屬於應用層,它產生訊息並交給下一層(TCP)處理, MQTT 本身並不清楚最底層的網路是否壅塞甚至斷線,因此 MQTT 不保證能百分之百交付訊息。

協定名稱
訂閱感測控制通知
Topic
/v1/device/${device_id}/sensor/${sensor_id}/command
協定描述
訂閱感測控制通知。當感測控制變動時,系統將會發送控制資訊給訂閱感測控制通知的終端設備
模式

Subscribe

帳號與密碼
username: PROJECT_KEY or DEVICE_KEY
password: PROJECT_KEY or DEVICE_KEY
Response 說明
{ "id": "cin", "deviceId": "266148835", "time": "2017-03-28T07:09:05.699Z", "cmd": "close" }
備註
1.device_id 為設備 ID,而 sensor_id 為指定設備 ID 下的sensor ID
2.project key 為專案的專屬金鑰,可以從專案管理 > 權限資料查詢得知
3.device key 為設備專屬的金鑰,可以從設備管理查詢得知
4.time 為感測控制資料系統接收時間,格式為 ISO 8601
5.cmd 為控制指令(使用者自行定義指令),格式為字串。
6.MQTT QoS 傳輸品質目前支援 QoS 0 最多傳送一次(at most once)模式。
7.MQTT 訂閱通知訊息的反應時間會依據平台目前訊息量多寡而影響快慢,平均 3秒內可接收到通知訊息。
8.MQTT 在網路階層架構中屬於應用層,它產生訊息並交給下一層(TCP)處理, MQTT 本身並不清楚最底層的網路是否壅塞甚至斷線,因此 MQTT 不保證能百分之百交付訊息。

協定名稱
發佈感測控制
Topic
/v1/device/${device_id}/command
協定描述
發佈感測控制
模式

Publish

帳號與密碼
username: PROJECT_KEY or DEVICE_KEY
password: PROJECT_KEY or DEVICE_KEY
Message 說明
[ { "id":"cin", "lat":24.1, "lon":121.23, "save":true, "cmd":"open" } ]
備註
1.device_id 為設備 ID,而 id 為指定設備 ID 下的sensor ID
2.lat 為緯度 (latitude) [optional]
3.lon 為經度 (longitude) [optional]
4.cmd 為控制指令(使用者自行定義指令),格式為字串。
5.save true:永久儲存,可於歷史紀錄中查詢該筆控制指令;false:暫時儲存,會被之後的資料所取代,無法於歷史紀錄中查詢。預設為true[optional]
6.project key 為專案的專屬金鑰,可以從專案管理 > 權限資料查詢得知
7.device key 為設備專屬的金鑰,可以從設備管理查詢得知
8.MQTT QoS 傳輸品質目前支援 QoS 0 最多傳送一次(at most once)模式。
9.MQTT 發布訊息的內容 Payload 大小為 5KB,若超過大小,平台將會捨棄訊息。
10.MQTT 在網路階層架構中屬於應用層,它產生訊息並交給下一層(TCP)處理, MQTT 本身並不清楚最底層的網路是否壅塞甚至斷線,因此 MQTT 不保證能百分之百交付訊息。

協定名稱
訂閱感測控制確認通知
Topic
/v1/device/${device_id}/sensor/${sensor_id}/ack
協定描述
訂閱感測控制確認通知,用於確認資料有無正確的傳輸到接收端。當平台接收到確認感測控制訊息時,系統將會發送控制資訊給訂閱感測控制確認通知的終端設備
模式

Subscribe

帳號與密碼
username: PROJECT_KEY or DEVICE_KEY
password: PROJECT_KEY or DEVICE_KEY
Response 說明
{ "id": "cin", "deviceId": "266148835", "time": "2017-03-28T07:09:05.699Z", "ack": "close" }
備註
1.device_id 為設備 ID,而 sensor_id 為指定設備 ID 下的sensor ID
2.project key 為專案的專屬金鑰,可以從專案管理 > 權限資料查詢得知
3.device key 為設備專屬的金鑰,可以從設備管理查詢得知
4.time 為感測控制資料系統接收時間,格式為 ISO 8601
5.ack 為控制確認訊息(使用者自行定義確認訊息),格式為字串。
6.MQTT QoS 傳輸品質目前支援 QoS 0 最多傳送一次(at most once)模式。
7.MQTT 訂閱通知訊息的反應時間會依據平台目前訊息量多寡而影響快慢,平均 3秒內可接收到通知訊息。
8.MQTT 在網路階層架構中屬於應用層,它產生訊息並交給下一層(TCP)處理, MQTT 本身並不清楚最底層的網路是否壅塞甚至斷線,因此 MQTT 不保證能百分之百交付訊息。

協定名稱
發佈感測控制確認資訊
Topic
/v1/device/${device_id}/ack
協定描述
發佈感測控制確認資訊,用於確認資料有無正確的傳輸到接收端
模式

Publish

帳號與密碼
username: PROJECT_KEY or DEVICE_KEY
password: PROJECT_KEY or DEVICE_KEY
Message 說明
[ { "id":"cin", "time": "2017-08-03T09:28:47.532Z", "save":true, "ack":"open" } ]
備註
1.device_id 為設備 ID,而 id 為指定設備 ID 下的sensor ID
2.lat 為緯度 (latitude) [optional]
3.lon 為經度 (longitude) [optional]
4.ack 為控制確認訊息(使用者自行定義確認訊息),格式為字串。
5.save true:永久儲存,可於歷史紀錄中查詢該筆控制指令;false:暫時儲存,會被之後的資料所取代,無法於歷史紀錄中查詢。預設為true[optional]
6.project key 為專案的專屬金鑰,可以從專案管理 > 權限資料查詢得知
7.device key 為設備專屬的金鑰,可以從設備管理查詢得知
8.MQTT QoS 傳輸品質目前支援 QoS 0 最多傳送一次(at most once)模式。
9.MQTT 發布訊息的內容 Payload 大小為 5KB,若超過大小,平台將會捨棄訊息。
10.MQTT 在網路階層架構中屬於應用層,它產生訊息並交給下一層(TCP)處理, MQTT 本身並不清楚最底層的網路是否壅塞甚至斷線,因此 MQTT 不保證能百分之百交付訊息。

自動化裝置納管

伺服器連線位址:iot.cht.com.tw,連接埠1883 與 8883 (TLS 加密連線)
協定名稱
訂閱裝置組態設定異動通知
Topic
/v1/registry/${product_code+serial_id}
協定描述
允許實體裝置(例如 Gateway )訂閱裝置組態設定異動通知。當用戶透過自動化裝置納管流程 Registry RESTful API時,實體裝置將會收到裝置組態資訊(例如存取協定的金鑰或裝置編號)
模式

Subscribe

帳號與密碼
username: "chtregistry"
password: "chtregistry"
Response 格式說明
回傳內容依據 RESTful 註冊協定 參數不同而有所不同。若op為Reconfigure,則回傳內容如下
{ "op": "Reconfigure", "ck": "aabbccdd" }
或op為SetDeviceId,則回傳內容如下
{ "op": "SetDeviceId", "ck": "aabbccdd", "deviceId": "7432" }
備註
1.product_code 為供應商裝置於IoT智慧聯網大平台註冊的產品代碼, serial_number 為供應商裝置出貨的流水號,每個裝置必須不同; 例如:產品代碼 (product_code) 為 pi,流水號 (serial_number) 為 00001,則 ${product_code+serial_number} 應為 pi00001
2.op 為裝置組態設定操作,兩種回傳資訊:Reconfigure/SetDeviceId; Reconfigure為要求裝置主動於平台建立組態資料時回傳之內容;SetDeviceId為要求裝置變更所屬的裝置編號
${product_code+serial_number} 3.ck 為IoT專案的專屬金鑰 Project Key 或裝置的專屬金鑰 Device Key(回傳哪一種金鑰類型可於 RESTful Registry 指令中指定)
4.deviceId 為裝置於IoT智慧聯網大平台建立的裝置唯一識別碼
5.MQTT QoS 傳輸品質目前支援 QoS 0 最多傳送一次(at most once)模式。
6.MQTT 訂閱通知訊息的反應時間會依據平台目前訊息量多寡而影響快慢,平均 3秒內可接收到通知訊息。
7.MQTT 在網路階層架構中屬於應用層,它產生訊息並交給下一層(TCP)處理, MQTT 本身並不清楚最底層的網路是否壅塞甚至斷線,因此 MQTT 不保證能百分之百交付訊息。
Web Socket

感測資料

協定名稱
訂閱感測資料變動通知
Topic
/iot/ws/rawdata
EX: ws://iot.cht.com.tw:80/iot/ws/rawdata or wss://iot.cht.com.tw:443/iot/ws/rawdata
協定描述
訂閱感測資料變動通知。當感測資料有變動時,系統將會發送變動資訊給訂閱感測資料變動的終端裝置
Request (Send Message)說明
{ "ck": "PROJECT_KEY or DEVICE_KEY", "resources": [ "/v1/device/${device_id}/sensor/${sensor_id}/rawdata" ] }
Response 說明
{ "id": "light0001", "deviceId": "7432", "time": "2016-03-30T08:28:47.532Z", "value":["1"] }
備註
1.device_id 為裝置 ID,而 sensor_id 為指定裝置 ID 下的sensor ID
2.project key 為專案的專屬金鑰,可以從專案管理 > 權限資料查詢得知
3.device key 為裝置專屬的金鑰,可以從裝置管理查詢得知