步驟1:REST JSON Http(s)協(xié)議
這部分是技術(shù)性的,但是請(qǐng)耐心等待。如果我沒有解釋這部分,那么您將難以理解我們將在節(jié)點(diǎn)RED中發(fā)送的json文件中的值。
適用于每個(gè)輸出(電源插座)的操作:
在所有M2M協(xié)議中,NETIO電源插座使用的動(dòng)作都可以應(yīng)用于單個(gè)輸出。例如,可以將“切換”或“短路”動(dòng)作寫入任何輸出。
但是,Action變量只能用于寫入值,而不能用于讀取當(dāng)前插座狀態(tài)。
這些是可以應(yīng)用于每個(gè)輸出的操作:
0 =關(guān)閉輸出(關(guān)閉)
1 =打開輸出(打開)
2 =短時(shí)間關(guān)閉輸出(短關(guān)閉)
3 =短時(shí)間關(guān)閉輸出(短打開)
4 =輸出從一關(guān)閉狀態(tài)到另一個(gè)(切換)
5 =輸出狀態(tài)不變(不變)
6 =忽略
示例– JSON文件切換輸出編號(hào)。 1:
{
“輸出”:[{
“ ID”:1,
“操作”:4
}]
}
ID-此數(shù)字表示我們將使用的輸出
操作-此部分是操作輸出將生成(例如1(打開輸出))
步驟2:流
現(xiàn)在是主要部分。這就是節(jié)點(diǎn)紅色環(huán)境的樣子。
我們已經(jīng)導(dǎo)入了URL API流(您看到的項(xiàng)目。稍后我將向您展示如何導(dǎo)入流和該項(xiàng)目)該項(xiàng)目包括兩部分:
NETIO AN30(JSON REST API)流程
儀表板(您可以通過其操作程序的圖形界面)
步驟3:儀表板
這是此可指導(dǎo)的node-RED中的儀表板的外觀。
此項(xiàng)目的儀表板分為四個(gè)部分:
設(shè)備狀態(tài)-顯示設(shè)備信息,例如型號(hào), mac地址或固件版本。
(POST)控制輸出1-包含5個(gè)控制輸出1的按鈕。每個(gè)按鈕執(zhí)行不同的操作
(GET)O1-O4輸出狀態(tài)-此部分顯示每個(gè)按鈕的當(dāng)前狀態(tài)從您的設(shè)備輸出。
設(shè)備管理-在這一部分中,您可以找到各種圖表,它們顯示了NETIO 4Aall設(shè)備中的當(dāng)前計(jì)量值
第4步:導(dǎo)入流(項(xiàng)目,腳本等)
在菜單(右上角)中,選擇“導(dǎo)入”,然后選擇“剪貼板”。
然后,將下面的文本復(fù)制到指定的字段,然后單擊“導(dǎo)入”。
安裝缺少的節(jié)點(diǎn)
節(jié)點(diǎn)已加載到選定的流程。可能會(huì)顯示一條錯(cuò)誤消息,其中包含正在導(dǎo)入但尚未安裝在Node-RED中的節(jié)點(diǎn)列表。在這種情況下,需要安裝缺少的節(jié)點(diǎn)。
如果缺少節(jié)點(diǎn),請(qǐng)?jiān)诓藛沃羞x擇“管理調(diào)色板”,單擊“安裝并查找并安裝您缺少的節(jié)點(diǎn)?!?/p>
導(dǎo)入文本:
[ {“ id”:“ 56b9510c.98c6f”,“ type”:“ tab”,“ label”:“ NETIO AN30(REST JSON)”,“ disabled”:false,“ info”:“”},{“ id” :“ 6a66b637.da1558”,“類型”:“ http請(qǐng)求”,“ z”:“ 56b9510c.98c6f”,“名稱”:“ HTTP請(qǐng)求(POST)”,“方法”:“ POST”,“ ret”:名為 “txt”, “URL”: “http://netio-4All.netio-products.com:8080/netio.json”, “TLS”: “”, “×”:430, “Y”:100,”電線 “:[[” 9cc48ba4.233128 “]]},{” ID “:” 9cc48ba4.233128“ , “類型”: “調(diào)試”, “Z”: “56b9510c.98c6f”, “姓名”: “”, “活性”:真 “tosidebar”:真 “控制臺(tái)”:假 “tostatus”:假, “完成”: “有效載荷”, “×”:630, “Y”:100, “線”:[] },{“ id”:“ aa32bf8.f83704”,“ type”:“ http request”,“ z”:“ 56b9510c.98c6f”,“ name”:“ HTTP Request(GET)”,“ method”:“ GET “ ”漚“: ”TXT“, ”URL“: ”http://netio-4All.netio-products.com:8080/netio.json“, ”TLS“: ”“, ”X“:520,” Y “:240,” 線 “:[[” 23bf436c.8d90bc “]]},{” ID “:” 23bf436c.8d90bc “ ”類型“: ”JSON“, ”Z“: ”56b9510c.98c6f“,” name“:” JSON Parse“,” pr operty “:” 有效載荷 “ ”動(dòng)作“: ”“, ”漂亮“:假, ”ד:710, ”Y“:240, ”線“:[[ ”3481543c.05cefc“]]},{” ID “:” 3481543c.05cefc“,”類型“:”功能“,” z“:” 56b9510c.98c6f“,”名稱“:”功能“,” func“:” msg.Model = msg.payload.Agent.Model ; \ nmsg.Version = msg.payload.Agent.Version; \ nmsg.Time = msg.payload.Agent.Time; \ nmsg.JSONVersion = msg.payload.Agent.JSONVer; \ nmsg.SerialNumber = msg.payload.Agent .SerialNumber; \ n \ ntry {msg.Voltage = msg.payload.GlobalMeasure.Voltage} \ n catch(err1){msg.Voltage = 0;} \ ntry {msg.Frequency = msg.payload.GlobalMeasure.Frequency} \ n catch(err2){msg.Frequency = 0;} \ ntry {msg.TotalCurrent = msg.payload.GlobalMeasure.TotalCurrent/1000} \ n catch(err3){msg.TotalCurrent = 0;} \ ntry {msg.OverallPowerFactor = msg.payload.GlobalMeasure.OverallPowerFactor} \ n catch(err4){msg.OverallPowerFactor = 0;} \ ntry {msg.TotalLoad = msg.payload.GlobalMeasure.TotalLoad} \ n catch(err5){msg.TotalLoad = 0 ;} \ n \ nmsg.O1_State = msg.payload.Outputs [0] .State; \ nmsg.O2_State = msg.payload.Outputs [1] .State; \ nms g.O3_State = msg.payload.Outputs [2] .State; \ nmsg.O4_State = msg.payload.Outputs [3] .State; \ n \ nif(msg.O1_State)msg.O1_Color = \“#09ef28 \” ; \ n其他msg.O1_Color = \“橙色\”; \ nif(msg.O2_State)msg.O2_Color = \“#09ef28 \”; \ n其他msg.O2_Color = \“橙色\”; \ nif(msg。 O3_State)msg.O3_Color = \“#09ef28 \”; \ n其他msg.O3_Color = \“ Orange \”; \ nif(msg.O4_State)msg.O4_Color = \“#09ef28 \”; \ n其他msg.O4_Color = \“橙色\”; \ n \ n返回msg;“,”輸出“:1,” noerr“:0,” x“:860,” y“:240,”電線“:[[”“ d764a23a.3c531” ]]},{ “ID”: “76fd06c4.0f36f8”, “類型”: “UI_TEXT”, “Z”: “56b9510c.98c6f”, “基團(tuán)”: “470e04a4.87c72c”, “命令”:1,”寬度“:0,”高度“:0,”名稱“:” NETIO模型“,”標(biāo)簽“:” NETIO模型:“,”格式“:” {{msg.Model}}“,”布局“:”行-center “ ”ד:660, ”Y“:360, ”線“:[]},{ ”ID“: ”8345c1eb.4a0e6“, ”類型“: ”UI_TEXT“, ”Z“:” 56b9510c。 98c6f“,” group“:” 470e04a4.87c72c“,” order“:2,” width“:0,” height“:0,” name“:”“,” label“:” Model Firmware“,” format“ : “{{msg.Version}}”, “布局”: “行中心”, “×”:660, “Y”:400, “線”:[]},{ “ID”:“7ed7e52e.27477c “ ”類型“:” ui_t ext“,” z“:” 56b9510c.98c6f“,” group“:” 470e04a4.87c72c“,” order“:3,” width“:0,” height“:0,” name“:”序列號(hào)“, “ label”:“序列號(hào)”,“格式”:“ {{msg.SerialNumber}}”,“ layout”:“ col-center”,“ x”:660,“ y”:440,“ wires”:[ ]},{ “ID”: “4852076c.3868e8”, “類型”: “UI_TEXT”, “Z”: “56b9510c.98c6f”, “基團(tuán)”: “470e04a4.87c72c”, “命令”:4“,寬度“:0,”高度“:0,”名稱“:” JSON版本“,”標(biāo)簽“:” JSON版本:“,”格式“:” {{msg.JSONVersion}}“,”布局“:”行-中心 “ ”ד:660, ”Y“:480, ”線“:[]},{ ”ID“: ”7472ee86.79bc3“, ”類型“: ”ui_gauge“, ”Z“:” 56b9510c.98c6f “,”名稱“:”當(dāng)前(設(shè)備)“,”組“:” a7539552.a04768“,”訂單“:4,”寬度“:0,”高度“:0,” gtype“:”量規(guī)“,” title“:” Current({{msg.Model}})“,” label“:” A“,” format“:” {{msg.TotalCurrent}}“,” min“:0,” max“:” 100 “ ”色彩“:[ ”#00b500“, ”#e6e600“, ”#ca3838“], ”SEG1“: ”“, ”SEG2“: ”“, ”ד:300, ”Y“:400,” wire“:[]},{” id“:” 3068d819.5ff718“,” type“:” ui_gauge“,” z“:” 56b9510c.98c6f“,” name“:”總體功率因數(shù)“,” group“: “ a7539552.a04768”,“順序”:3,“寬度”:0,“高度”:0,“ gtype”:“量規(guī)”,“標(biāo)題”:“總功率因數(shù)” “標(biāo)簽”: “”, “格式”: “{{msg.OverallPowerFactor}}”, “分鐘”:0, “最大”: “1”, “色彩”:[ “#00b500”, “#e6e600” , “#ca3838”], “SEG1”: “”, “SEG2”: “”, “×”:320, “Y”:440, “線”:[]},{ “ID”:“323990ed.14cf5 ”, “類型”: “ui_gauge”, “Z”: “56b9510c.98c6f”, “名稱”: “電壓”, “基團(tuán)”: “a7539552.a04768”, “命令”:6, “寬度”:0, “高度”:0, “GTYPE”: “計(jì)”, “標(biāo)題”: “電壓”, “標(biāo)簽”: “V”, “格式”: “{{msg.Voltage}}”, “分鐘”:0, “最大”: “500”, “色彩”:[ “#00b500”, “#e6e600”, “#ca3838”], “SEG1”: “”, “SEG2”: “”, “×”:280,” Y “:480,” 線 “:[]},{” ID “:” 3e88e47a.74d26c”, “類型”: “ui_gauge”, “Z”: “56b9510c.98c6f”, “姓名”: “頻率”, “基團(tuán)”: “a7539552.a04768”, “命令”:5 “寬度”:0, “高度”:0, “GTYPE”: “計(jì)”, “標(biāo)題”: “頻率”, “標(biāo)簽”:“赫茲”, “格式”: “{{msg.Frequency}}”, “分鐘”:0, “最大”: “100”, “色彩”:[ “#00b500”, “#e6e600”, “#ca3838”] “SEG1”: “”, “SEG2”: “”, “×”:290, “Y”:520, “線”:[]},{ “ID”: “9b0f772f.e0fc58”, “類型”: “ ui_chart”,“ z”:“ 56b9510c.98c6f”,“ name”:“當(dāng)前圖表(設(shè)備)”,“ group”:“ a7539552.a04768”,“ order”:2,“ width”:0,“ height “:0,”標(biāo)簽“:”當(dāng)前“,”圖表類型“:”行“,”傳奇“:” t蕓香”, “xformat”: “HH:MM”, “內(nèi)插”: “線性”, “無(wú)數(shù)據(jù)”: “”, “點(diǎn)”:假 “YMIN”: “0”, “YMAX”: “32”, “removeOlder”:1, “removeOlderPoints”: “”, “removeOlderUnit”: “60”, “切斷”:0, “useOneColor”:假, “色彩”:[ “#FF0000”, “#aec7e8”,“# ff7f0e”, “#2ca02c”, “#98df8a”, “#0000a0”, “#ff9896”, “#9467bd”, “#c5b0d5”], “useOldStyle”:假, “×”:320, “Y”: 360,“ wires”:[[],[]]},{“ id”:“ 51626bea.79f244”,“ type”:“ link in”,“ z”:“ 56b9510c.98c6f”,“ name”:“ ”, “鏈接”:[ “d764a23a.3c531”]中, “x”:75, “Y”:400, “線”:[[ “7472ee86.79bc3”, “3068d819.5ff718”, “323990ed.14cf5”, “ 3e88e47a.74d26c”,“ 3567a4c0.0ee3cc”,“ c3c29296.4505d”]]}},{“ id”:“ d764a23a.3c531”,“ type”:“ link out”,“ z”:“ 56b9510c.98c6f” , “姓名”: “鏈接”, “鏈接”:[ “51626bea.79f244”, “57f3c961.d9b3e8”, “bda11677.919808”]中, “x”:955, “Y”:240, “線”:[ ]},{“ id”:“ bda11677.919808”,“ type”:“ link in”,“ z”:“ 56b9510c.98c6f”,“ name”:“”,“ links”:[“ d764a23a.3c531” ]中, “x”:495, “Y”:440, “線”:[[ “76fd06c4.0f36f8”, “8345c1eb.4a0e6”, “7ed7e52e.27477c”, “4852076c.3868e8”]]},{“ID “:” 3567a4c0.0ee3cc “ ”類型“: ”功能“, ”Z“:” 56b9510c.98c6f “,”名稱“:”當(dāng)前圖表“,”功能“:” msg.payload = msg.TotalCurrent; \ nreturn msg;“,”輸出“:1,” noerr“:0,” x“:160,” y “:300,” 線 “:[[” 9b0f772f.e0fc58 “]]},{” ID “:” c3c29296.4505d “ ”類型“: ”ui_gauge“, ”Z“: ”56b9510c.98c6f“,” 名稱“:”“,” group“:” a7539552.a04768“,” order“:1,” width“:0,” height“:0,” gtype“:” gage“:” gage“,” title“:” Total Load“, “標(biāo)簽”: “W”, “格式”: “{{msg.TotalLoad}}”, “分鐘”:0, “最大值”: “10000”, “色彩”:[ “#00b500”, “#e6e600” , “#ca3838”], “SEG1”: “”, “SEG2”: “”, “×”:290, “Y”:560, “線”:[]},{ “ID”:“ded04c51.0b31e “,” type“:” inject“,” z“:” 56b9510c.98c6f“,” name“:” 1 Second Repeat“,” topic“:”“,” payload“:”“,” payloadType“:” date “ ”重復(fù)“: ”1“, ”crontab的“: ”“, ”一次“:假 ”onceDelay“: ”1“, ”ד:310, ”Y“:240, ”線“:[[” aa32bf8.f83704“]]}},{” id“:” 763762d6.d52dec“,” type“:” ui_button“,” z“:” 56b9510c.98c6f“,” name“:”輸出1 = ON“,”組“:” ab94b758.4be768“,”順序“:1,”寬度“:0,”高度“:0,” passthru“:false,”標(biāo)簽“:”輸出1 = ON“,”工具提示“:”“, “顏色”: “”, “BGCOLOR”: “”, “圖標(biāo)”: “”, “有效載荷”: “{\” 輸出\ “:[{\” ID \ “:1,\” 操作\“:1 }]}”, “載荷類型”: “JSON” , “主題”: “”, “×”:100, “Y”:40, “線”:[[ “6a66b637.da1558”]]},{ “ID”: “3930df24.761ab”, “類型”: “ ui_button”,“ z”:“ 56b9510c.98c6f”,“ name”:“輸出1 = OFF”,“ group”:“ ab94b758.4be768”,“ order”:2,“ width”:0,“ height” :0,“ passthru”:false,“ label”:“輸出1 = OFF”,“ tooltip”:“”,“ color”:“”,“ bgcolor”:“”,“ icon”:“”,“有效載荷“:”{\ “輸出\”:[{\ “ID \”:1,\ “操作\”:0}]}”, “載荷類型”: “JSON”, “主題”: “”, “×” :100, “Y”:80, “線”:[[ “6a66b637.da1558”]]},{ “ID”: “3f0ec8e0.d39668”, “類型”: “ui_button”, “Z”:“56b9510c。 98c6f“,” name“:”輸出1 =短ON“,” group“:” ab94b758.4be768“,” order“:3,” width“:0,” height“:0,” passthru“:false,” label“:”輸出1 =短ON“,” tooltip“:”“,” color“:”“,” bgcolor“:”“,” icon“:”“,”有效載荷“:” {\“ Outputs \” :[{\ “ID \”:1,\ “操作\”:3}]}”, “載荷類型”: “JSON”, “主題”: “”, “×”:120, “Y”:120, “線”:[[ “6a66b637.da1558”]]},{ “ID”: “26a70e42.0b8e12”, “類型”: “ui_button”, “Z”: “56b9510c.98c6f”, “姓名”:“輸出1 =短路關(guān)“,”組“:” ab94b758.4be768“,”順序“:4,”寬度“:0,”高度“:0,”通過“:false,”標(biāo)簽“:”輸出1 =短路關(guān)(雷斯塔RT)”, “提示”: “”, “色彩”: “”, “BGCOLOR”: “”, “圖標(biāo)”: “”, “有效載荷”: “{\” 輸出\ “:[{\” ID \ “:1,\” 操作\ “:4}]}”, “載荷類型”: “JSON”, “主題”: “”, “×”:120, “Y”:160, “線”:[[” 6a66b637.da1558“]]},{” id“:” 4b19bca6.15d3f4“,” type“:” ui_button“,” z“:” 56b9510c.98c6f“,” name“:”輸出1 =切換“,”組“:” ab94b758.4be768“,”訂單“:5,”寬度“:0,”高度“:0,” passthru“:false,”標(biāo)簽“:”輸出1 =切換“,”工具提示“:”“, “顏色”: “”, “BGCOLOR”: “”, “圖標(biāo)”: “”, “有效載荷”: “{\” 輸出\ “:[{\” ID \ “:1,\” 操作\“:2 }]} “ ”載荷類型“: ”JSON“, ”主題“: ”“, ”ד:110, ”Y“:200, ”線“:[[ ”6a66b637.da1558“]]},{” ID “:” 57f3c961.d9b3e8“,” type“:”鏈接輸入“,” z“:” 56b9510c.98c6f“,”名稱“:”“,”鏈接“:[” d764a23a.3c531“],” x“: 795, “Y”:420, “線”:[[ “33465792.5b26e8”, “26696a86.9322d6”, “7c1508d2.f869a8”, “c6c0aad.141fa58”]]},{ “ID”: “33465792.5b26e8”, “類型”: “UI_TEXT”, “Z”: “56b9510c.98c6f”, “基團(tuán)”: “a5e4e892.40d1b8”, “命令”:1, “寬度”: “0”, “高度”: “0” 時(shí), “ name”:“ O1狀態(tài)”,“ label”:“ O1 =”,“ format”:“ {{msg.O1_State}}”,“ layout”:“行中心”,“ x”:920,“ y “:360,” 線 “:[]},{” ID “:” 26 696a86.9322d6” , “類型”: “UI_TEXT”, “Z”: “56b9510c.98c6f”, “基團(tuán)”: “a5e4e892.40d1b8”, “命令”:2 “寬度”: “0”, “高度” :“ 0”,“名稱”:“ O2狀態(tài)”,“標(biāo)簽”:“ O2 =”,“格式”:“ {{msg.O2_State}}”,“布局”:“行中心”,“ x” :920, “Y”:400, “線”:[]},{ “ID”: “7c1508d2.f869a8”, “類型”: “UI_TEXT”, “Z”: “56b9510c.98c6f”, “基團(tuán)”: “ a5e4e892.40d1b8”,“訂單”:3,“寬度”:“ 0”,“高度”:“ 0”,“名稱”:“ O3狀態(tài)”,“標(biāo)簽”:“ O3 =”,“格式”: “ {{msg.O3_State}}”,“布局”:“行中心”,“ x”:920,“ y”:440,“電線”:[]},{“ id”:“ c6c0aad.141fa58” “類型”: “UI_TEXT”, “Z”: “56b9510c.98c6f”, “基團(tuán)”: “a5e4e892.40d1b8”, “命令”:4 “寬度”: “0”, “高度”: “0” ,“名稱”:“ O4狀態(tài)”,“標(biāo)簽”:“ O4 =”,“格式”:“ {{msg.O4_State}}”,“布局”:“行中心”,“ x”:920,“ y“:480,” wires“:[]},{” id“:” 470e04a4.87c72c“,” type“:” ui_group“,” z“:”“,” name“:”設(shè)備狀態(tài)“,”標(biāo)簽“:” 23994b37.39eb44“ , “訂單”:1, “DISP”:真, “寬度”: “6”, “崩潰”:假},{ “ID”: “a7539552.a04768”, “類型”: “ ui_group”,“ z”:“”,“名稱”:“設(shè)備管理”,“標(biāo)簽”:“ 23994b37.39eb44”,“訂單”:4,“顯示”:true,“寬度”:“ 6”, “崩潰”:假的},{“ id”:“ ab94b758.4be768”,“ type”:“ ui_group”,“ z”:“”,“ name”:“控制輸出1”,“ tab”:“ 23994b37.39eb44”,“ order “:2,” DISP “:真,” 寬度 “:” 6” , “崩潰”:假},{ “ID”: “a5e4e892.40d1b8”, “類型”: “ui_group”, “Z”: “” ,“名稱”:“ O1-O4輸出狀態(tài)”,“標(biāo)簽”:“ 23994b37.39eb44”,“訂單”:3,“顯示”:true,“寬度”:“ 6”,“折疊”:false}, {“ id”:“ 23994b37.39eb44”,“ type”:“ ui_tab”,“ z”:“”,“ name”:“ NETIO AN30(REST JSON)”,“ icon”:“ dashboard”,“ order” :2,“ disabled”:false,“ hidden”:false}]
第5步:它們?nèi)绾螀f(xié)同工作
該流程基本上分為兩部分:POST和GET。
POST:寫入O1
在儀表板中創(chuàng)建了五個(gè)按鈕流將顯示在儀表板中。
單擊儀表板中的Output 1 = ON按鈕后,有效負(fù)載將設(shè)置為netio.json文件,該文件指定輸出和操作(為每個(gè)按鈕定義)。
HTTP請(qǐng)求(POST)塊將netio.json文件作為請(qǐng)求發(fā)送到IP地址。
服務(wù)器響應(yīng)(狀態(tài))作為輸出返回。
Msg.payload塊顯示HTTP請(qǐng)求(POST)的結(jié)果。
GET:從O1 – O4讀取
“ 1秒重復(fù)”塊以一秒為周期激活HTTP請(qǐng)求(GET)塊,該塊隨后將netio.json作為GET請(qǐng)求發(fā)送,并返回具有套接字狀態(tài)的完整JSON文件如從服務(wù)器收到的。
JSON解析塊將JSON文件從HTTP請(qǐng)求(GET)塊轉(zhuǎn)換為JSON對(duì)象,以便可以操縱JSON文件中的屬性。
Function塊接受JSON對(duì)象的各個(gè)部分,并將其轉(zhuǎn)換為msg對(duì)象的屬性,以供以后使用。
“當(dāng)前圖表”塊將msg.payload設(shè)置為msg對(duì)象的msg.TotalCurrent屬性,因?yàn)楹罄m(xù)的“當(dāng)前圖表(設(shè)備)”塊只能顯示msg.payload值。
然后跟隨各種輸出節(jié)點(diǎn),以便在儀表板中顯示從JSON對(duì)象獲取的msg對(duì)象的選定屬性。
該msg對(duì)象和msg.payload
對(duì)于一個(gè)簡(jiǎn)單明了的說(shuō)明,請(qǐng)參見此處:
http://www.steves-internet-guide.com/node-red-mess 。..
步驟6:HTTP POST和GET
HTTP請(qǐng)求(POST)
此節(jié)點(diǎn)發(fā)送一個(gè)netio.json命令文件作為HTTP請(qǐng)求(POST),以控制NETIO 4All設(shè)備。
HTTP請(qǐng)求(GET)
此節(jié)點(diǎn)發(fā)送一個(gè)HTTP請(qǐng)求(GET)并返回狀態(tài)響應(yīng)。
預(yù)先填寫的地址指向NETIO 4All在線演示,您可以在其中測(cè)試連接而無(wú)需在桌面上安裝NETIO設(shè)備。
http://netio-4all.netio-products.com
可以在這些節(jié)點(diǎn)中設(shè)置自己的IP地址。但是,在HTTP請(qǐng)求節(jié)點(diǎn),POST和GET中都需要更改IP。
步驟7:按鈕節(jié)點(diǎn)
單擊按鈕節(jié)點(diǎn)會(huì)生成一條包含netio.json文件(右圖)的消息,然后通過http post節(jié)點(diǎn)將其發(fā)送到netio智能電源插座。
步驟8:功能節(jié)點(diǎn)
功能節(jié)點(diǎn)是一個(gè)特殊的節(jié)點(diǎn),可以編寫自定義JavaScript函數(shù)。
在此指令中,該函數(shù)從已解析的JSON文件(現(xiàn)在為JSON對(duì)象)中選擇值,并將其分配給msg對(duì)象的屬性。
代碼分為四個(gè)部分:
將值從JSON對(duì)象分配給msg對(duì)象的各個(gè)屬性
在聯(lián)網(wǎng)電源插座不支持全局測(cè)量的情況下的錯(cuò)誤處理
網(wǎng)絡(luò)電源插座不支持全局值的測(cè)量,Node-RED將顯示錯(cuò)誤,因?yàn)榇斯δ茈x子將找不到各自的特性,例如msg.payload.GlobalMeasure.Voltage,因?yàn)樗粫?huì)出現(xiàn)在JSON對(duì)象中。在這種情況下,味精對(duì)象的屬性,例如msg.Voltage設(shè)置為0,并且捕獲了錯(cuò)誤。
分配輸出狀態(tài)值
根據(jù)輸出狀態(tài)設(shè)置顯示的輸出狀態(tài)值的顏色
步驟9:JSON節(jié)點(diǎn)和注入節(jié)點(diǎn)
JSON節(jié)點(diǎn)
JSON節(jié)點(diǎn)解析JSON文件并將其轉(zhuǎn)換為JSON對(duì)象。/p》
作為服務(wù)器對(duì)GET請(qǐng)求的響應(yīng),HTTP Request節(jié)點(diǎn)返回一個(gè)JSON文件,其中包含NETIO 4x設(shè)備的當(dāng)前狀態(tài),但它只是一個(gè)文本文件,因此為了與數(shù)據(jù),則需要將JSON文件解析為JSON對(duì)象。
注入節(jié)點(diǎn)
每秒鐘,此節(jié)點(diǎn)都會(huì)激活HTTP請(qǐng)求節(jié)點(diǎn),該節(jié)點(diǎn)發(fā)送一個(gè)GET請(qǐng)求。
因此,儀表板中的值將以一秒鐘的時(shí)間更新
步驟10:文本節(jié)點(diǎn)和調(diào)試節(jié)點(diǎn)
文本節(jié)點(diǎn)
顯示一個(gè)儀表板中的文本字段。在此指令中,文本節(jié)點(diǎn)顯示電流,電壓,型號(hào),固件版本或JSON版本。
標(biāo)簽顯示在儀表板中,名稱是節(jié)點(diǎn)流中顯示的節(jié)點(diǎn)名稱。 -RED。
調(diào)試節(jié)點(diǎn)
顯示消息有效載荷。
步驟11:圖表節(jié)點(diǎn)
此節(jié)點(diǎn)根據(jù)有效載荷值在儀表板中繪制當(dāng)前圖表。
此節(jié)點(diǎn)可以
因此僅使用 繪制圖表。
因此,功能節(jié)點(diǎn)用于將msg.payload設(shè)置為需要顯示的值。
p》
msg.payload = msg.TotalCurrent;
步驟12:儀表節(jié)點(diǎn)和鏈接節(jié)點(diǎn)
儀表節(jié)點(diǎn)
此節(jié)點(diǎn)將儀表部件添加到儀表板。
在此指令中,每個(gè)儀表都可視化了味精對(duì)象的一個(gè)屬性:電壓[V],電流[A],頻率[Hz]和總真實(shí)功率因數(shù)(TPF)。
鏈接節(jié)點(diǎn)
鏈接入節(jié)點(diǎn)和鏈接出節(jié)點(diǎn)就像隧道一樣工作。 msg.payload到達(dá)鏈接輸入節(jié)點(diǎn),然后離開鏈接輸出節(jié)點(diǎn)。
我用它使流程更清晰,更易于閱讀。
-
HTTP
+關(guān)注
關(guān)注
0文章
510瀏覽量
31307 -
JSON
+關(guān)注
關(guān)注
0文章
119瀏覽量
6980
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論