物模型其實就是云平臺對產品功能的數字化描述。以“燈”為例,最簡單的“燈”具有“開”和“關”屬性,只需要在平臺定義一個布爾量的數據點位,有些高級的“燈”還具有“亮度”、“色溫”、“顏色”等屬性,可以和簡單“燈”一樣定義多個屬性描述,也可以定義一個結構體,下圖就是基于阿里云“物聯網平臺”定義的兩種“燈具”舉例。
利用物模型規范數據傳輸的格式更好的整合和管理多樣化的產品數據,提高數據處理和交互的效率,方便將設備接入軟件即服務(SaaS)、平臺即服務(PaaS)等云服務類型,比如利用“云智能”通用模板“零代碼”開發手機應用以及利用“物聯網平臺”增值服務開發Web服務。
阿里云物模型使用
使用物模型需要對產品的功能進行定義,添加“燈”和“可控燈”兩個屬性,其中“燈”僅支持“開”“關”操作,而“可控燈”除了“開關”以外還可以進行“亮度”“色溫”“顏色”控制。
配置完成點擊“發布上線”即可,此時在進入設備界面的“物模型數據”下可以查看剛才添加的屬性。
根據阿里云物模型JSON規則配置的上傳數據格式:
{"id":"123","version":"1.0","params":{"light":1,"advanced_light":{"on":1,"luminance":500,"Temperature":1000,"colour":100}},"method":"thing.event.property.post"}
利用Node-RED推送JSON報文到阿里云規定的屬性上報窗口,就可以在設備窗口查詢到上報的屬性;
阿里云官方提供的實例演示地址:https://help.aliyun.com/zh/iot/getting-started/using-mqtt-fx-to-access-iot-platform?spm=a2c4g.11186623.0.0.12254df9kv2LCH
上述報文如何配置的都可以在此處查詢,除此之外,還需要了解平臺推送數據的方法。
阿里云和ONENET推送設置的格式基本一致,但ONENET平臺需要在收到數據后向指定地址推送接收成功的報文,講解ONENET時再展開說明;
還是以控制“燈”為例,了解平臺下發數據的報文,下述報文為平臺關閉“燈”并配置控制“可控燈”狀態的報文:
{"id":"2024306076","version":"1.0","params":{"light":0,"advanced_light":{"on":1,"luminance":500,"Temperature":1000,"colour":100}},"method":"thing.service.property.set"}
ONENET物模型使用
所有的云平臺物模型功能較為相似,ONENET和阿里云一樣描述為功能定義,除了UI有差異外其余基本一致。
報文上與阿里云也比較類似,與阿里云列舉相同案例:
{"id":"123","version":"1.0","params":{"light":{"value":0,"time":1524448722123}}}
相比阿里云增加了數據點位的時間戳功能;
設備屬性設置和阿里云相同,只是沒有“method”字段,最大的差異時平臺設置需要設備響應,否則服務器會返回錯誤。
DDSU666電表數據上報
《Node-RED實現電表數據上云》一文中使用Node-RED通過“MQTT節點”并利用“自定義topic”將透明報文數據傳輸至服務器實現了電表數據上云,通過自定義topic的方式連接服務器,無法使用平臺的其他開發工具,通過前面對阿里云與中移物聯網的物聯網平臺的物模型進行報文分析,接下來就手把手教大家使用物模型連接DDSU電表。
前文指路:
《Node-RED實現電表數據采集并上云》
下圖為《Node-RED實現電表數據上云》的系統框架,接下來就在此基礎上添加JSON報文解析和報文組合就可以實現物模型控制。
按照“阿里云物模型使用”提供方法在定義“正向有功總功率”“當前電壓”“當前電流”“當前功率”“查詢代碼”五條屬性(查詢代碼采用枚舉,其余需要使用浮點值),之后就是在“阿里云查詢”節點后添加兩個函數節點,分別用于提取平臺查詢代碼和查詢代碼保存(后續上報時需要用到)。
函數(提取查詢代碼)1:
msg.payload = msg.payload.params.Query_code;
return msg;
函數(保存查詢代碼)2:
var QueryCode=0;
flow.set("QueryCode", msg.payload);
return QueryCode;
以上步驟就可以完成阿里云平臺下發的配置指令解析,隨后和之前一樣,通過查詢碼,查詢電表數據。
待“電表解析”完成后,增加函數節點,組合JSON報文;
函數(ALIYUN報文配置)3:
var cache={"id":"123","version":"1.0","params":{},"method":"thing.event.property.post"};
cache.id = String(Date.parse(new Date())/1000);//將id數據用時間戳替換
var QueryCode=flow.get('QueryCode') || 0;
switch (QueryCode){
case 1:
cache.params.P = parseFloat(msg.payload);
break;
case 2:
cache.params.V = parseFloat(msg.payload);
break;
case 3:
cache.params.I = parseFloat(msg.payload);
break;
case 4:
cache.params.p = parseFloat(msg.payload);
break;
}
msg.payload=cache;
return msg;
調整“阿里云查詢”“阿里云上報”的地址:
阿里云查詢(屬性設置):/sys/a1iJTfIclao/DEV01/thing/service/property/set
阿里云上報(屬性上報):/sys/a1iJTfIclao/DEV01/thing/event/property/post
同阿里云一樣的方法定義五個屬性,分別為“正向有功總電能”“當前電壓”“當前電流”“當前功率”“查詢代碼”。
添加“mqtt in”節點、“函數”(返回報文)、“mqtt out”節點;
函數(返回報文),需要id一致:
var msg_cache = {"id":"1","code":200,"msg":"success"};
msg_cache.id=msg.payload.id;
msg.payload=msg_cache;
return msg;
解析過程與阿里云同步,調整函數(ONENET報文配置):
var cache={"id":"123","version":"1.0","params":{}};
cache.id = String(Date.parse(new Date())/1000);//將id數據用時間戳替換
var QueryCode=flow.get('QueryCode') || 0;
switch (QueryCode){
case 1:
cache.params.P={};
cache.params.P.value = parseFloat(msg.payload);
cache.params.P.time = Date.parse(new Date());//上傳時間錯
break;
case 2:
cache.params.V={};
cache.params.V.value = parseFloat(msg.payload);
cache.params.V.time = Date.parse(new Date());
break;
case 3:
cache.params.I={};
cache.params.V.value = parseFloat(msg.payload);
cache.params.I.time = Date.parse(new Date());
break;
case 4:
cache.params.p={};
cache.params.V.value = parseFloat(msg.payload);
cache.params.p.time = Date.parse(new Date());
break;
}
msg.payload=cache;
return msg;
ONENET查詢(屬性設置):$sys/QpUi02FdgF/220220069406/thing/property/set
返回接收成功(屬性設置響應):$sys/QpUi02FdgF/220220069406/thing/property/set_reply
ONENET上報(屬性上報):$sys/QpUi02FdgF/220220069406/thing/property/post
至此,就成功將DDSU666電表連接到阿里云與中移物聯網。
ONENET調試窗口查詢電表數據;
ALIYUN調試窗口查詢電表數據;
產品推薦
E870-G1邊緣計算網關是基于億佰特自行研發的通訊協議《億佰特云設備通訊協議》開發的以太網/4G邊緣采集云網關,可通過服務器下發指令到設備達到控制或采集功能;可采集500個邊緣數據點。設備上支持多種協議(TCP、UDP、MQTT)接入服務器,支持心跳包、注冊包設置;同時該產品支持多種配置方式,支持網頁平臺;采用工業級設計標準,保證設備的高可靠性。
-
物聯網
+關注
關注
2909文章
44557瀏覽量
372760 -
電表
+關注
關注
12文章
554瀏覽量
35320 -
云平臺
+關注
關注
1文章
1302瀏覽量
38942
發布評論請先 登錄
相關推薦
評論