Proposal of new LASS data format (under discussion)

 

Event 連結

Agenda

結論:表決通過 

緣由

  1. 目前的 MQTT message長度已經到達極限
  1. 有些資料似乎不需要一直傳(例如固定點的 gps 座標)

建議將固定式與移動式資料分離,以利於後台分析並增加測試區,於開發測試階段使用測試區,區分正式與測試資料

  1. 用sensor id 的方式很不直覺且不利於後端處理(例如 s_t0 s_t1 s_t2 都代表溫度)

提案

 

優點

  1. 可大幅減少資料傳輸量
  2. 不再需要一次將所有資料塞在一個 MQTT msg 中
  3. 若感測器太多,可用多個 mqtt msg 傳送
  4. 相同的物理性質(例如溫度)可用相同的代號(temperature),僅需要在 meta-data中敘明感測器型號即可

 

缺點

  1. 和既有的資料格式不相容
  2. 程式撰寫比較複雜,不同類別的資料要有所區別,且分別進行傳送

Q&A

Lanma Chiu 

Q1: 有人喜歡內文使用Json格式嗎?雖然長了點,但各式接收端好處理。

A1-1: 資料格以越簡單的方式表示,甚至 device 收到 MQTT 也容易實現 Paser, 個人不建議用 JSON

後端有轉 JASON API 的 service, 可參考 

Tzu-Te Wang

Q2:

我的建議是,

1. 所有資料都是即時更新,在MQTT協議裡叫做retain message

2. 不需要加上時間,服務器上就有時間了,最多就是紀錄最後更新的時間

3. GPS不要在MQTT裡傳送,採用device id (unique)對應至GPS-->寫進資料庫,隱私考量

4.

建議的Topic格式:

/國碼(例如886)/區碼(02)/LASS/device id(HEX)/感應器類別(例如T0)/資料數值(十六進制, IEEE754標準)

/國碼(例如886)/區碼(02)/LASSTEST/test device id(HEX)/感應器類別(例如T0)/資料數值(十六進制, IEEE754標準)

這樣當我要收集台灣區的溫度資料只要scubscribe "/886/#/T0" 就有了

我要收集台南市的空汙資料只要訂閱 "/886/06/#/PM2.5" 就有了

我要分析台南市的空汙及溫度濕度的關係只要訂閱 "/886/06/LASS/+"

我要收集美國的資料只要訂閱topic開頭是 "/1/+/LASS/+"

未來topic可以平行擴充,例如 "/886/02/EARTHQUAKE/+" 表示地震數據

因為資料是retain的,所以,我只需要將所有收到的數據加起來平均。

META用來發佈到服務器讓服務器去做資料登入資料庫

例如發布

/device id/GPS/LAT 訊息23.nnnn 代表讓服務器中的資料庫更改我的GPS座標

/device id/OWNER 訊息 "老王"(utf-8編碼的16進位數字) 資料庫中就能變更我的訊息

要做長期統計資料的話,向服務器訂閱就好了,需要的人自己去架服務器寫app