天天看點

IoT平台裝置标簽功能和規則引擎組合最佳實踐

前言

在物聯網場景中,裝置會部署在不同的位置,而在施工前又很難确定裝置位置,後續業務又需要根據裝置資訊做管理。這種場景我們可以通過IoT物聯網平台提供的裝置動态打标簽功能,讓程式實作,避免人工錄入錯誤。

我們以智能自動售貨櫃管理為例,給大家展示裝置标簽功能。

西湖景區自動售賣機分布情況

IoT平台裝置标簽功能和規則引擎組合最佳實踐

技術方案

每個裝置線上後,通過發送資料(publish)到IoT平台的标簽更新的Topic來實作真實坐标更新。

裝置标簽請求Topic

       /sys/{productKey}/{deviceName}/thing/deviceinfo/update

裝置标簽資料Payload

{
  "id": 1570605202,
  "version": "1.0",
  "params": [
    {
      "attrKey": "coordinate",//标簽(坐标key為coordinate,其他标簽可自定義key)
      "attrValue": "120.14915:30.230687"//标簽值
    },
    {
      "attrKey": "city",//标簽
      "attrValue": "杭州"//标簽值
    }
  ],
  "method": "thing.deviceinfo.update"
}           

智能售貨機裝置本身有GPS子產品,我們可以擷取到對應的經緯度,通過高德地圖解析服務,可以擷取到目前所在城市。有了以上資訊後,我們發送Payload資料到指定topic,給我們裝置打上獨特的标簽。

IoT平台裝置标簽功能和規則引擎組合最佳實踐

通過雲端API給裝置打标簽

IoT平台裝置标簽功能和規則引擎組合最佳實踐
API清單

日志服務

通過日志服務,我們可以排查具體裝置動态打标簽的過程。

進入日志服務,選擇對應産品,輸入要查詢的裝置deviceName,在關鍵詞裡輸入deviceinfo,點選搜尋,就可以篩選出來更新裝置标簽的消息記錄。

IoT平台裝置标簽功能和規則引擎組合最佳實踐

點選messageID,我們可以看到這條消息的詳情資訊,包括上報的topic和2個裝置标簽資料。

IoT平台裝置标簽功能和規則引擎組合最佳實踐

擴充場景

篩選裝置

當裝置更新标簽後,我們可以按照标簽搜尋符合條件的裝置。

IoT平台裝置标簽功能和規則引擎組合最佳實踐

規則引擎資料流轉攜帶标簽資訊

規則引擎資料處理SQL也支援通過attribute(key)函數擷取key所對應的裝置标簽值。比如attribute('city')可以擷取到值 "杭州"。

使用attribute函數的SQL參考:

SELECT 
deviceName() as deviceName,
timestamp('yyyy-MM-dd HH:mm:ss') as time,
attribute('city') as city,
price, 
userId 
FROM 
"/a8*****i3B/+/user/order/data"           

附錄

IoT平台裝置标簽功能和規則引擎組合最佳實踐