node-red

[官網(wǎng)][]有安裝教程和使用教程
[官網(wǎng)]:http://nodered.org/docs/
啟動方式:
命令行中輸入 node-red,瀏覽器訪問http://localhost:1880,就可以使用了
1.第一條流
3個模塊。

  • inject(輸入 可以設(shè)置多久發(fā)一次)
  • function(輸入的處理,比如輸入發(fā)時間戳,可以處理成可讀性強的date形式)
  • debug(顯示)

部署后就會生成一個關(guān)于這條流的json文件

//每條包括 id編號,類型,名字,(各自特征的一些信息),坐標(biāo)xy,連線,只記錄自己的輸出連向誰。
[{"id":"58ffae9d.a7005","type":"debug","name":"","active":true,"complete":false,"x":640,"y":200,"wires":[]},
{"id":"17626462.e89d9c","type":"inject","name":"","topic":"","payload":"","repeat":"","once":false,"x":240,"y":200,"wires":[["2921667d.d6de9a"]]},
{"id":"2921667d.d6de9a","type":"function","name":"Format timestamp","func":"http:// Create a Date object from the payload\nvar date = new Date(msg.payload);\n// Change the payload to be a formatted Date string\nmsg.payload = date.toString();\n// Return the message so it can be sent on\nreturn msg;","outputs":1,"x":440,"y":200,"wires":[["58ffae9d.a7005"]]}]

把上面這個代碼直接導(dǎo)入就可以自動生成流。But。。inject對象沒選擇repeat 導(dǎo)致看不到結(jié)果,可以選擇重復(fù),或則開始的時候注入一次。

2.第二條流

從外部抓取數(shù)據(jù),轉(zhuǎn)換為有用的格式,輸出json格式以備后用或者輸出布爾值來表征開和關(guān)

直接導(dǎo)入下面代碼

[{"id":"11b032a3.ee4fcd","type":"inject","name":"Tick","topic":"","payload":"","repeat":"","crontab":"*/5 * * * *","once":false,"x":161,"y":828,"z":"6480e14.f9b7f2","wires":[["a2b3542e.5d4ca8"]]},
{"id":"a2b3542e.5d4ca8","type":"http request","name":"UK Power","method":"GET","url":"http://realtimeweb-prod.nationalgrid.com/SystemData.aspx","x":301,"y":828,"z":"6480e14.f9b7f2","wires":[["2631e2da.d9ce1e"]]},
{"id":"2631e2da.d9ce1e","type":"function","name":"UK Power Demand","func":"http:// does a simple text extract parse of the http output to provide an\n// object containing the uk power demand, frequency and time\n\nif (~msg.payload.indexOf('<span')) {\n    var dem = msg.payload.split('Demand:')[1].split(\"MW\")[0];\n    var fre = msg.payload.split('Frequency:')[1].split(\"Hz\")[0];\n\n    msg.payload = {};\n    msg.payload.demand = parseInt(dem.split(\">\")[1].split(\"<\")[0]);\n    msg.payload.frequency = parseFloat(fre.split(\">\")[1].split(\"<\")[0]);\n    \n    msg2 = {};\n    msg2.payload = (msg.payload.frequency >= 50) ? true : false;\n\n    return [msg,msg2];\n}\n\nreturn null;","outputs":"2","valid":true,"x":478,"y":828,"z":"6480e14.f9b7f2","wires":[["8e56f4d3.71a908"],["cd84371b.327bc8"]]},
{"id":"8e56f4d3.71a908","type":"debug","name":"","active":true,"complete":false,"x":678,"y":798,"z":"6480e14.f9b7f2","wires":[]},
{"id":"cd84371b.327bc8","type":"debug","name":"","active":true,"complete":false,"x":679,"y":869,"z":"6480e14.f9b7f2","wires":[]}]

自己做得話,有幾個點容易忽略

  • function的輸出設(shè)置成2個,圖標(biāo)上有2個輸出點,各自連一個debug節(jié)點
  • http httprequest httpresponse三者有區(qū)別,不要拖錯模塊
  • inject時間的設(shè)置
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容