2021年1月2日 星期六

Node-Red Bar 條狀圖 Pie 餅狀圖

Node-Red Bar 條狀圖 Pie 餅狀圖

 



[{"id":"78a8fbd8.b9fe14","type":"inject","z":"8929f3b6.359b7","name":"2秒鐘 Timer","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"2","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":130,"y":640,"wires":[["66fcc9a3.36cac8"]]},{"id":"6e1e1a6d.2168f4","type":"inject","z":"8929f3b6.359b7","name":"2秒鐘 Timer","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"2","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":130,"y":700,"wires":[["dbe18b3f.b53328"]]},{"id":"e97c198d.85a558","type":"ui_slider","z":"8929f3b6.359b7","name":"","label":"slider1 滑桿","tooltip":"","group":"197e02a3.68fcdd","order":6,"width":0,"height":0,"passthru":true,"outs":"end","topic":"","min":0,"max":"100","step":1,"x":140,"y":460,"wires":[["fe3a9bfb.69d5c8"]]},{"id":"44b2e7d8.f1aa38","type":"ui_slider","z":"8929f3b6.359b7","name":"","label":"slider2 滑桿","tooltip":"","group":"197e02a3.68fcdd","order":7,"width":0,"height":0,"passthru":true,"outs":"end","topic":"","min":0,"max":"100","step":1,"x":138,"y":509,"wires":[["d3b8fbb8.a17568"]]},{"id":"f23662bf.ff5dd","type":"ui_slider","z":"8929f3b6.359b7","name":"","label":"slider3 滑桿","tooltip":"","group":"197e02a3.68fcdd","order":8,"width":0,"height":0,"passthru":true,"outs":"end","topic":"","min":0,"max":"100","step":1,"x":140,"y":560,"wires":[["95679b72.3673e8"]]},{"id":"fe3a9bfb.69d5c8","type":"function","z":"8929f3b6.359b7","name":"data1","func":"var data1= parseInt(msg.payload);\nglobal.set(\"data1\",data1);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":280,"y":460,"wires":[[]]},{"id":"d3b8fbb8.a17568","type":"function","z":"8929f3b6.359b7","name":"data2","func":"var data2= parseInt(msg.payload);\nglobal.set(\"data2\",data2);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":280,"y":509,"wires":[[]]},{"id":"95679b72.3673e8","type":"function","z":"8929f3b6.359b7","name":"data3","func":"var data3= parseInt(msg.payload);\nglobal.set(\"data3\",data3);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":282,"y":560,"wires":[[]]},{"id":"66fcc9a3.36cac8","type":"function","z":"8929f3b6.359b7","name":"資料陣列","func":"var msg1={};\nvar msg2={};\nvar msg3={};\n\nmsg1.topic=\"data1\";\nmsg1.payload=global.get(\"data1\") ||0;\n\nmsg2.topic=\"data2\";\nmsg2.payload=global.get(\"data2\") ||0;\n\nmsg3.topic=\"data3\";\nmsg3.payload=global.get(\"data3\") ||0;\n\nreturn [msg1,msg2,msg3];","outputs":3,"noerr":0,"initialize":"","finalize":"","x":280,"y":640,"wires":[["d19a81aa.7447c","8619b08a.d8e2"],["d19a81aa.7447c","8619b08a.d8e2"],["d19a81aa.7447c","8619b08a.d8e2"]]},{"id":"dbe18b3f.b53328","type":"function","z":"8929f3b6.359b7","name":"","func":"var data1 =global.get(\"data1\") ||0;\nvar data2 =global.get(\"data2\") ||0;\nvar data3 =global.get(\"data3\") ||0;\nvar total =data1+data2+data3;\nvar p1=Math.round(data1/total*10000)/100;\nvar p2=Math.round(data2/total*10000)/100;\nvar p3=Math.round(data3/total*10000)/100;\nmsg.payload= {\n    p1:p1+\"%\",\n    p2:p2+\"%\",\n    p3:p3+\"%\",\n};\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":270,"y":700,"wires":[["12ac2d52.e26793"]]},{"id":"12ac2d52.e26793","type":"ui_template","z":"8929f3b6.359b7","group":"cd687a95.00e108","name":"條狀百分比","order":11,"width":0,"height":0,"format":"<div layout=\"row\" layout-align=\"center\">\n    <h2>\n        Bar Chart 條狀百分比\n    </h2>\n</div>\n\n<div layout=\"row\" layout-align=\"center\">\n    <span flex>data1 </span>\n    <span flex>data2 </span>\n    <span flex>data3 </span>\n</div>\n\n<div layout=\"row\" layout-align=\"center\">\n    <span flex style=\"border-top: 1px solid\"></span>\n</div>\n\n<div layout=\"row\" layout-align=\"center\">\n    <span flex style=\"color: red\"> {{msg.payload.p1}}</span>\n    <span flex style=\"color: red\"> {{msg.payload.p2}}</span>\n    <span flex style=\"color: red\"> {{msg.payload.p3}}</span>\n</div>\n\n\n","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":true,"templateScope":"local","x":490,"y":700,"wires":[[]]},{"id":"d19a81aa.7447c","type":"ui_chart","z":"8929f3b6.359b7","name":"","group":"197e02a3.68fcdd","order":9,"width":0,"height":0,"label":"Bar chart 條狀圖","chartType":"bar","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"0","ymax":"100","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"x":500,"y":620,"wires":[[]]},{"id":"8619b08a.d8e2","type":"ui_chart","z":"8929f3b6.359b7","name":"","group":"197e02a3.68fcdd","order":10,"width":0,"height":0,"label":"Pie chart 餅狀圖","chartType":"pie","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"x":500,"y":660,"wires":[[]]},{"id":"197e02a3.68fcdd","type":"ui_group","name":"Default","tab":"e90ac9ed.e11878","order":2,"disp":true,"width":"6","collapse":false},{"id":"cd687a95.00e108","type":"ui_group","name":"Percent","tab":"e90ac9ed.e11878","order":1,"disp":true,"width":"6","collapse":false},{"id":"e90ac9ed.e11878","type":"ui_tab","name":"BAR","icon":"dashboard","disabled":false,"hidden":false}]

Node-Red Slider(滑桿)與Gauge(儀表)

 Node-Red Slider(滑桿)與Gauge(儀表)



[{"id":"3ff855e8.b02a5a","type":"ui_slider","z":"8929f3b6.359b7","name":"","label":"slider 滑桿","tooltip":"","group":"6c9116b.b62d4e8","order":2,"width":0,"height":0,"passthru":true,"outs":"all","topic":"","min":0,"max":10,"step":1,"x":300,"y":540,"wires":[["10000d1b.4de743"]]},{"id":"10000d1b.4de743","type":"ui_gauge","z":"8929f3b6.359b7","name":"","group":"6c9116b.b62d4e8","order":5,"width":0,"height":0,"gtype":"gage","title":"gauge儀表","label":"units","format":"{{value}}","min":0,"max":10,"colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":500,"y":540,"wires":[]},{"id":"fa0a3691.bf03d8","type":"ui_button","z":"8929f3b6.359b7","name":"","group":"6c9116b.b62d4e8","order":7,"width":0,"height":0,"passthru":false,"label":"ON","tooltip":"","color":"","bgcolor":"","icon":"","payload":"LED ON","payloadType":"str","topic":"","x":280,"y":600,"wires":[["99a76b2.24c8898"]]},{"id":"807b50d5.61c17","type":"ui_button","z":"8929f3b6.359b7","name":"","group":"6c9116b.b62d4e8","order":8,"width":0,"height":0,"passthru":false,"label":"OFF","tooltip":"","color":"","bgcolor":"","icon":"","payload":"LED OFF","payloadType":"str","topic":"","x":290,"y":660,"wires":[["99a76b2.24c8898"]]},{"id":"99a76b2.24c8898","type":"ui_text","z":"8929f3b6.359b7","group":"6c9116b.b62d4e8","order":6,"width":0,"height":0,"name":"","label":"LED狀態","format":"{{msg.payload}}","layout":"row-spread","x":480,"y":620,"wires":[]},{"id":"6c9116b.b62d4e8","type":"ui_group","name":"LED","tab":"53b8c8f9.cfbe48","order":1,"disp":true,"width":"6","collapse":false},{"id":"53b8c8f9.cfbe48","type":"ui_tab","name":"Home","icon":"dashboard","order":2,"disabled":false,"hidden":false}]

Node-Red 亂數折線圖 與 正弦函數(sin)、餘弦函數(cos)

 Node-Red 亂數折線圖 與 正弦函數(sin)、餘弦函數(cos)




0~100亂數產生器

High =100;

Low =0 ;

msg.payload= Math.floor(Math.random() * (1 + High - Low)) + Low ;

return msg;

正弦函數

var t=context.get("t") || 0;

t+=1;

if (t>=30) t=0;

context.set("t",t);

msg.payload=Math.sin(2*3.14*t/30)*2

msg.topic="正弦函數(SIN)"

return msg;


Node-Red 程式1

[{"id":"8641eeea.a88db","type":"function","z":"8929f3b6.359b7","name":"正弦函數","func":"var t=context.get(\"t\") || 0;\nt+=1;\nif (t>=30) t=0;\n\ncontext.set(\"t\",t);\nmsg.payload=Math.sin(2*3.14*t/30)*2\nmsg.topic=\"正弦函數(SIN)\"\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":400,"y":200,"wires":[["53922be0.0de314"]]},{"id":"53922be0.0de314","type":"ui_chart","z":"8929f3b6.359b7","name":"","group":"b0cdcace.9d4b08","order":63,"width":0,"height":0,"label":"chart","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"-2","ymax":"2","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"x":600,"y":200,"wires":[[]]},{"id":"95ea2c5a.b1971","type":"inject","z":"8929f3b6.359b7","name":"1秒鐘 Timer","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"1","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":240,"y":220,"wires":[["8641eeea.a88db","db4f7a11.756e38"]]},{"id":"db4f7a11.756e38","type":"function","z":"8929f3b6.359b7","name":"餘弦函數 ","func":"var t=context.get(\"t\") || 0;\nt+=1;\nif (t>=30) t=0;\n\ncontext.set(\"t\",t);\nmsg.payload=Math.cos(2*3.14*t/30)*2\nmsg.topic=\"ˊ餘弦函數(COS)\"\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":400,"y":260,"wires":[["53922be0.0de314"]]},{"id":"f6c41572.0eac18","type":"inject","z":"8929f3b6.359b7","name":"清除","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":210,"y":320,"wires":[["83e16076.d60d"]]},{"id":"4e09de45.263e7","type":"ui_button","z":"8929f3b6.359b7","name":"","group":"b0cdcace.9d4b08","order":62,"width":0,"height":0,"passthru":false,"label":"清除","tooltip":"","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"","x":210,"y":360,"wires":[["83e16076.d60d"]]},{"id":"83e16076.d60d","type":"function","z":"8929f3b6.359b7","name":"","func":"msg.payload=[];\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":420,"y":320,"wires":[["53922be0.0de314"]]},{"id":"b0cdcace.9d4b08","type":"ui_group","name":"Num","tab":"53b8c8f9.cfbe48","order":6,"disp":true,"width":"6","collapse":false},{"id":"53b8c8f9.cfbe48","type":"ui_tab","name":"Home","icon":"dashboard","order":2,"disabled":false,"hidden":false}]


Node-Red 程式2

[{"id":"9ddd46f4.de3678","type":"function","z":"8bd90afd.137db8","name":"0~100亂數產生器","func":"High =100;\nLow =0 ;\nmsg.payload= Math.floor(Math.random() * (1 + High - Low)) + Low ;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":390,"y":180,"wires":[["5cc339e6.103f08","3401eeb6.c22022"]]},{"id":"5c26f043.9e928","type":"inject","z":"8bd90afd.137db8","name":"5秒鐘 Timer","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"5","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":170,"y":180,"wires":[["9ddd46f4.de3678"]]},{"id":"31676d8e.5aa592","type":"inject","z":"8bd90afd.137db8","name":"清除","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":150,"y":260,"wires":[["b978b1dc.17eb7"]]},{"id":"b978b1dc.17eb7","type":"function","z":"8bd90afd.137db8","name":"","func":"msg.payload=[];\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":360,"y":260,"wires":[["3401eeb6.c22022"]]},{"id":"5cc339e6.103f08","type":"debug","z":"8bd90afd.137db8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":610,"y":180,"wires":[]},{"id":"3401eeb6.c22022","type":"ui_chart","z":"8bd90afd.137db8","name":"","group":"4bd6d6a5.234c38","order":61,"width":0,"height":0,"label":"折線圖","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"0","ymax":"100","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"60","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"x":550,"y":240,"wires":[[]]},{"id":"f9417d5a.c4b1c","type":"ui_button","z":"8bd90afd.137db8","name":"","group":"4bd6d6a5.234c38","order":61,"width":"0","height":"0","passthru":false,"label":"清除折線圖","tooltip":"","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"","x":160,"y":320,"wires":[["b978b1dc.17eb7"]]},{"id":"4bd6d6a5.234c38","type":"ui_group","name":"Default","tab":"53b8c8f9.cfbe48","order":5,"disp":true,"width":"6","collapse":true},{"id":"53b8c8f9.cfbe48","type":"ui_tab","name":"Home","icon":"dashboard","order":2,"disabled":false,"hidden":false}]

Node-Red Dashboard 產生一個折線圖

Node-Red Dashboard 產生一個折線圖 




0-100亂數產生器函數

High =100;

Low =0 ;

msg.payload= Math.floor(Math.random() * (1 + High - Low)) + Low ;

return msg;

清除函數 

msg.payload=[];

return msg;

Node-Red程式

[{"id":"9ddd46f4.de3678","type":"function","z":"8bd90afd.137db8","name":"0~100亂數產生器","func":"High =100;\nLow =0 ;\nmsg.payload= Math.floor(Math.random() * (1 + High - Low)) + Low ;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":390,"y":180,"wires":[["5cc339e6.103f08","3401eeb6.c22022"]]},{"id":"5c26f043.9e928","type":"inject","z":"8bd90afd.137db8","name":"5秒鐘 Timer","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"5","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":170,"y":180,"wires":[["9ddd46f4.de3678"]]},{"id":"31676d8e.5aa592","type":"inject","z":"8bd90afd.137db8","name":"清除","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":150,"y":260,"wires":[["b978b1dc.17eb7"]]},{"id":"b978b1dc.17eb7","type":"function","z":"8bd90afd.137db8","name":"","func":"msg.payload=[];\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":360,"y":260,"wires":[["3401eeb6.c22022"]]},{"id":"5cc339e6.103f08","type":"debug","z":"8bd90afd.137db8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":610,"y":180,"wires":[]},{"id":"3401eeb6.c22022","type":"ui_chart","z":"8bd90afd.137db8","name":"","group":"ac0f1141.eb50e","order":61,"width":0,"height":0,"label":"折線圖","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"0","ymax":"100","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"60","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"x":550,"y":240,"wires":[[]]},{"id":"9cdc2525.961b18","type":"ui_button","z":"8bd90afd.137db8","name":"","group":"ac0f1141.eb50e","order":62,"width":0,"height":0,"passthru":false,"label":"清除","tooltip":"","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"","x":150,"y":300,"wires":[["b978b1dc.17eb7"]]},{"id":"ac0f1141.eb50e","type":"ui_group","name":"Num","tab":"53b8c8f9.cfbe48","order":1,"disp":true,"width":"15","collapse":true},{"id":"53b8c8f9.cfbe48","type":"ui_tab","name":"Home","icon":"dashboard","order":2,"disabled":false,"hidden":false}]

Node-Red 讀取opendata PM2.5

 Node-Red 讀取opendata


1)  https://data.gov.tw/dataset/34827 選json 檔案




https://data.epa.gov.tw/api/v1/aqx_p_02?limit=1000&api_key=9be7b239-557b-4c10-9775-78cadfc555e9&format=json


2)  選擇地點 例如 大里



        https://www.ntepb.gov.tw/sub/content/index.aspx?Parser=1,17,511,494,496

3) Node-Red 的 flow



GET

https://data.epa.gov.tw/api/v1/aqx_p_02?limit=1000&api_key=9be7b239-557b-4c10-9775-78cadfc555e9&format=json

a) 先找出JSON  object 資料

2021/1/2 下午3:47:59node: 560857db.b58bc8msg.payload : Object

object

2) 擷取 records 欄位



var PM25=msg.payload.records;

msg.payload=PM25;

return msg;


msg.payload : array[83]

array[83]

[20 … 29]

3) 擷取 大里區的 PM25 , DataCreationDate 欄位

var PM25=msg.payload;

//Array.from(PM25).forEach(function(e,i){

PM25.forEach(function(e,i){

    if(e['Site']=='大里'){        

        msg.PM25 = e['PM25'];                    

        msg.PublishTime=e['DataCreationDate'];       

}

});

return msg;


4) 擷取 大里區的 PM25

msg.payload=msg.PM25;

return msg;

2021/1/2 下午3:48:01node: 929873be.36b22msg.PM25 : string[2]

"14"

5) 擷取 大里區的 PublishTime

msg.payload=msg.PublishTime;

return msg;


2021/1/2 下午3:48:02node: 582734d2.8e4bacmsg.PublishTime : string[16]
"2021-01-02 15:00"




Node-Red程式

[{"id":"78e9c974.cd5fc8","type":"inject","z":"b8a8c5f1.0e8598","name":"Click","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":90,"y":100,"wires":[["12dac5f.924a13a"]]},{"id":"f8ca9503.f81d98","type":"debug","z":"b8a8c5f1.0e8598","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":670,"y":100,"wires":[]},{"id":"96cc082e.475cd8","type":"ui_switch","z":"b8a8c5f1.0e8598","name":"","label":"啟動開關","tooltip":"","group":"9d7c6798.9fc5e8","order":61,"width":0,"height":0,"passthru":true,"decouple":"false","topic":"","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":100,"y":180,"wires":[["12dac5f.924a13a"]]},{"id":"c4678954.fddf28","type":"ui_gauge","z":"b8a8c5f1.0e8598","name":"PM2.5","group":"9d7c6798.9fc5e8","order":62,"width":0,"height":0,"gtype":"gage","title":"大里區 細懸浮微粒(PM2.5)指標","label":"units","format":"{{value}}","min":0,"max":"71","colors":["#00b500","#e6e600","#ca3838"],"seg1":"35","seg2":"59","x":870,"y":220,"wires":[]},{"id":"e7d0696b.0fb278","type":"ui_text","z":"b8a8c5f1.0e8598","group":"9d7c6798.9fc5e8","order":63,"width":0,"height":0,"name":"PM2.5","label":"發行時間","format":"{{msg.payload}}","layout":"row-spread","x":870,"y":300,"wires":[]},{"id":"c9b469d4.3d7ba8","type":"function","z":"b8a8c5f1.0e8598","name":"擷取欄位 records","func":"var PM25=msg.payload.records;\nmsg.payload=PM25;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":410,"y":140,"wires":[["f8ca9503.f81d98","64596b23.9fa034"]]},{"id":"12dac5f.924a13a","type":"http request","z":"b8a8c5f1.0e8598","name":"","method":"GET","ret":"obj","paytoqs":"ignore","url":"https://data.epa.gov.tw/api/v1/aqx_p_02?limit=1000&api_key=9be7b239-557b-4c10-9775-78cadfc555e9&format=json","tls":"","persist":false,"proxy":"","authType":"","x":240,"y":140,"wires":[["c9b469d4.3d7ba8","560857db.b58bc8"]]},{"id":"560857db.b58bc8","type":"debug","z":"b8a8c5f1.0e8598","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":390,"y":80,"wires":[]},{"id":"64596b23.9fa034","type":"function","z":"b8a8c5f1.0e8598","name":"找出大里地區 PM2.5  , PublishTime","func":"var PM25=msg.payload;\n//Array.from(PM25).forEach(function(e,i){\nPM25.forEach(function(e,i){\n    if(e['Site']=='大里'){        \n        msg.PM25 = e['PM25'];                    \n        msg.PublishTime=e['DataCreationDate'];       \n}\n});\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":420,"y":260,"wires":[["929873be.36b22","582734d2.8e4bac","b886630d.9faa","423bd5cc.ae74bc"]]},{"id":"929873be.36b22","type":"debug","z":"b8a8c5f1.0e8598","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"PM25","targetType":"msg","statusVal":"","statusType":"auto","x":690,"y":160,"wires":[]},{"id":"582734d2.8e4bac","type":"debug","z":"b8a8c5f1.0e8598","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"PublishTime","targetType":"msg","statusVal":"","statusType":"auto","x":710,"y":380,"wires":[]},{"id":"b886630d.9faa","type":"function","z":"b8a8c5f1.0e8598","name":"PM2.5資料","func":"msg.payload=msg.PM25;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":690,"y":220,"wires":[["c4678954.fddf28","e879232.a0938e"]]},{"id":"423bd5cc.ae74bc","type":"function","z":"b8a8c5f1.0e8598","name":"發行時間","func":"msg.payload=msg.PublishTime;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":700,"y":300,"wires":[["e7d0696b.0fb278","82709722.643368"]]},{"id":"e879232.a0938e","type":"debug","z":"b8a8c5f1.0e8598","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":890,"y":260,"wires":[]},{"id":"82709722.643368","type":"debug","z":"b8a8c5f1.0e8598","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":910,"y":340,"wires":[]},{"id":"9d7c6798.9fc5e8","type":"ui_group","name":"Main","tab":"89e51ea1.a64af","order":1,"disp":true,"width":"6","collapse":false},{"id":"89e51ea1.a64af","type":"ui_tab","name":"Dashboard","icon":"dashboard"}]

  清除項目編譯快取 執行 flutter clean 重新取得套件依賴 執行 flutter pub get 完整重新編譯並執行 flutter run 1. 新增專案套件 (pubspec.yaml) 在 Flutter 專案根目錄下的 pubspec.yaml 中,新增 ...