Hardware components | ||||||
![]() |
| × | 1 | |||
| × | 1 | ||||
![]() |
| × | 1 | |||
Software apps and online services | ||||||
|
This project is done by Aeris (project leader), Shreya, Kieren and Jun from Nanyang Polytechnic's School of Engineering Common Engineering Programme. This project is under the module Engineering Exploration Project, and we are in our first year second semester.
People with asthma often struggle to sleep because of dry air and changing temperatures. A simple humidifier or air purifier helps, but they don’t adjust in real-time. That’s why the Smart Home Assistant, built with an M5Stack Fire, was created. It uses sensors to check air quality, humidity (ENVII), automatically making changes to keep the room comfortable and safe for breathing.
Referenced Article: “Can Smart Home Technologies Help Older Adults Manage Their Chronic Condition? A Systematic Literature Review” by Gabriella Facchinetti, Giorgia Petrucci, Beatrice Albanesi, Maria Grazia De Marinis & Michela Piredda
https://pmc.ncbi.nlm.nih.gov/articles/PMC9859495/
By using a weather API (credits to https://open-meteo.com/), we are able to track the weather condition in Singapore. The light sensor keeps the room dim, making it easier to sleep peacefully.
For people with asthma, this system can make a big difference. Instead of waking up coughing or struggling to breathe, they wake up feeling rested. On dry nights, the assistant adds moisture to the air before problems even start (you can link a relay unit to the M5Stack and a moisturiser, really sorry but users might have to code and acquire the hardware components for this part themselves due to project time constraints). By working in the background, it helps people sleep better and stay healthier.
We have decided not to use a ToF sensor as Jun, who was doing the testing and troubleshooting of our codes felt that it was unnecessary.
More information about our Smart Home Assistant can be found here:
Google Slides link (view-only). We submitted our slides in PowerPoint, which was recommended.
M5Stack Fire Final Code
Python{"components":[{"id":"____screen","createTime":1583843090864,"name":"screen","x":0,"y":0,"width":320,"height":240,"backgroundColor":"#403f3f","backgroundImage":"","size":0,"screenType":"default","type":"screen"},{"id":"____buttonA","createTime":1583843090864,"name":"ButtonA","buttonIndex":0,"x":44,"y":274,"width":64,"height":24,"text":"ButtonA","visibility":false,"type":"button"},{"id":"____buttonB","createTime":1583843090864,"name":"ButtonB","buttonIndex":1,"x":158,"y":274,"width":64,"height":24,"text":"ButtonB","visibility":false,"type":"button"},{"id":"____buttonC","createTime":1583843090864,"name":"ButtonC","buttonIndex":2,"x":273,"y":274,"width":64,"height":24,"text":"ButtonC","visibility":false,"type":"button"},{"id":"e^HEb8SigV6QFoZ1","createTime":1739274202053,"isCoreTwo":false,"isPaper":false,"name":"latitude","x":33,"y":0,"color":"#FFFFFF","text":"latitude","font":"lcd.FONT_Default","rotation":0,"screenType":"default","type":"label","layer":15},{"id":"Wvx7tNUCSxQPUjD_","createTime":1739274362216,"isCoreTwo":false,"name":"line0","x":0,"y":49,"x1":0,"y1":49,"x2":319,"y2":49,"width":50,"color":"#ffffff","lineWidth":1,"screenType":"default","type":"line","layer":17},{"id":"*Q8_fAzp$0_GvlBq","createTime":1739371265840,"isCoreTwo":false,"isPaper":false,"name":"TimezoneCountry","x":125,"y":12,"color":"#f28f00","text":"Singapore","font":"lcd.FONT_DejaVu24","rotation":0,"screenType":"default","type":"label","layer":10},{"id":"K3%^9&eY8Es4*0jS","createTime":1739371355449,"isCoreTwo":false,"isPaper":false,"name":"longitude","x":43,"y":12,"color":"#FFFFFF","text":"longitude","font":"lcd.FONT_Default","rotation":0,"screenType":"default","type":"label","layer":13},{"id":"@F0qirEnI$$YtA-R","createTime":1739371885622,"isCoreTwo":false,"isPaper":false,"name":"lat","x":0,"y":0,"color":"#15ff00","text":"lat:","font":"lcd.FONT_Default","rotation":0,"screenType":"default","type":"label","layer":15},{"id":"r7ISpQ-_6Q@#L3nQ","createTime":1739371935152,"isCoreTwo":false,"isPaper":false,"name":"long","x":0,"y":12,"color":"#31e900","text":"long:","font":"lcd.FONT_Default","rotation":0,"screenType":"default","type":"label","layer":17},{"id":"_%OtmSYFUE0wKuc^","createTime":1739373018471,"isCoreTwo":false,"isPaper":false,"name":"temperature","x":165,"y":58,"color":"#FFFFFF","text":"temp","font":"lcd.FONT_DejaVu40","rotation":0,"screenType":"default","type":"label","layer":19},{"id":"55_WulSMtV+_7!M4","createTime":1739374494000,"isCoreTwo":false,"name":"line1","x":141,"y":51,"x1":141,"y1":51,"x2":140,"y2":180,"width":50,"color":"#ededed","lineWidth":1,"screenType":"default","type":"line","layer":20},{"id":"%&T4NwsumTP+#A2m","createTime":1739374968322,"isCoreTwo":false,"name":"line2","x":0,"y":180,"x1":0,"y1":180,"x2":319,"y2":180,"width":50,"color":"#ffffff","lineWidth":1,"screenType":"default","type":"line","layer":25},{"id":"xD%a3rFlPRglGu$W","createTime":1739375380968,"isCoreTwo":false,"isPaper":false,"name":"humidity","x":161,"y":109,"color":"#25dae9","text":"Hum:","font":"lcd.FONT_DejaVu18","rotation":0,"screenType":"default","type":"label","layer":33},{"id":"kEw=TBP!%bfqc_^1","createTime":1739375410838,"isCoreTwo":false,"isPaper":false,"name":"WindSpeed","x":160,"y":131,"color":"#e5f400","text":"Wind:","font":"lcd.FONT_DejaVu18","rotation":0,"screenType":"default","type":"label","layer":35},{"id":"#7H&z@_R`1qwH+5U","createTime":1739375961055,"isCoreTwo":false,"isPaper":false,"name":"Max_temp","x":154,"y":157,"color":"#955de5","text":"Max:","font":"lcd.FONT_Default","rotation":0,"screenType":"default","type":"label","layer":37},{"id":"_h&mi!ZAT&X0z@h7","createTime":1739375987814,"isCoreTwo":false,"isPaper":false,"name":"Min_temp","x":237,"y":157,"color":"#b158e9","text":"Min:","font":"lcd.FONT_Default","rotation":0,"screenType":"default","type":"label","layer":39},{"id":"Vbg7M9yAP6upFg6E","createTime":1739376579186,"isCoreTwo":false,"isPaper":false,"name":"input_hum","x":229,"y":109,"color":"#55e8ed","text":"hum","font":"lcd.FONT_DejaVu18","rotation":0,"screenType":"default","type":"label","layer":41},{"id":"gjUEwbfAnxNG8aOQ","createTime":1739376600204,"isCoreTwo":false,"isPaper":false,"name":"input_wind","x":226,"y":131,"color":"#d8e947","text":"wind","font":"lcd.FONT_DejaVu18","rotation":0,"screenType":"default","type":"label","layer":43},{"id":"h!k^dH9M0yn^pfI^","createTime":1739376629344,"isCoreTwo":false,"isPaper":false,"name":"input_max","x":189,"y":157,"color":"#ca59e0","text":"Max","font":"lcd.FONT_Default","rotation":0,"screenType":"default","type":"label","layer":45},{"id":"cj+LvkE4ROTfgL40","createTime":1739376744553,"isCoreTwo":false,"isPaper":false,"name":"input_min","x":271,"y":157,"color":"#b651d9","text":"Min","font":"lcd.FONT_Default","rotation":0,"screenType":"default","type":"label","layer":47},{"id":"Ad8`U@C@sJwPver+","createTime":1739377918691,"isCoreTwo":false,"isPaper":false,"name":"status","x":0,"y":27,"color":"#65e823","text":"status:","font":"lcd.FONT_Default","rotation":0,"screenType":"default","type":"label","layer":49},{"id":"BS-oR+TDi!5n98!f","createTime":1739377938624,"isCoreTwo":false,"isPaper":false,"name":"input_status","x":64,"y":26,"color":"#FFFFFF","text":"status","font":"lcd.FONT_Default","rotation":0,"screenType":"default","type":"label","layer":51},{"id":"WEl&p$ovS8DSRZ-V","createTime":1739380786313,"isCoreTwo":false,"isPaper":false,"name":"weather_status","x":33,"y":157,"color":"#FFFFFF","text":"weather","font":"lcd.FONT_Default","rotation":0,"screenType":"default","type":"label","layer":54},{"id":"2r@F@scn#^BjF1`t","createTime":1739473689992,"isCoreTwo":false,"isPaper":false,"name":"Room_temp","x":107,"y":187,"color":"#3ce686","text":"Room condition","font":"lcd.FONT_Default","rotation":0,"screenType":"default","type":"label","layer":27},{"id":"Sj+h`P_s`azUVq^D","createTime":1739474441684,"isCoreTwo":false,"isPaper":false,"name":"room_temp","x":30,"y":195,"color":"#bfe030","text":"<temp>","font":"lcd.FONT_Default","rotation":0,"screenType":"default","type":"label","layer":29},{"id":"z8E0M9nW3m%1Hm&H","createTime":1739474481322,"isCoreTwo":false,"isPaper":false,"name":"room_humidity","x":136,"y":200,"color":"#59b5ec","text":"<hum>","font":"lcd.FONT_Default","rotation":0,"screenType":"default","type":"label","layer":31},{"id":"P`zBcN$mJZbD*bV`","createTime":1739474648021,"isCoreTwo":false,"isPaper":false,"name":"label0","x":229,"y":195,"color":"#e03434","text":"<pressure>","font":"lcd.FONT_Default","rotation":0,"screenType":"default","type":"label","layer":33},{"id":"QBXkW!0j0aw=Jomz","createTime":1739474737433,"isCoreTwo":false,"isPaper":false,"name":"room_temp_input","x":30,"y":219,"color":"#d4cb4b","text":"press A","font":"lcd.FONT_Default","rotation":0,"screenType":"default","type":"label","layer":35},{"id":"-1v^DdRT-VY8VQke","createTime":1739474737433,"isCoreTwo":false,"isPaper":false,"name":"room_hum_input","x":134,"y":219,"color":"#5db2e6","text":"press A","font":"lcd.FONT_Default","rotation":0,"screenType":"default","type":"label","layer":36},{"id":"fLn6EoH%wGWbm^K^","createTime":1739474737433,"isCoreTwo":false,"isPaper":false,"name":"room_press_input","x":237,"y":219,"color":"#e03737","text":"press A","font":"lcd.FONT_Default","rotation":0,"screenType":"default","type":"label","layer":37},{"id":"eLlSb-C+$hntxm02","createTime":1739478952208,"name":"circle0","x":35,"y":120,"radius":15,"borderColor":"#FFFFFF","backgroundColor":"#FFFFFF","screenType":"default","type":"circle","layer":7},{"id":"Z^jC=-K5`g0WkVRn","createTime":1739478966478,"name":"circle1","x":48,"y":114,"radius":15,"borderColor":"#0b0a0a","backgroundColor":"#403f3f","screenType":"default","type":"circle","layer":80},{"id":"m^gH`ukZRV#N#Kr%","createTime":1739481397150,"name":"circle2","x":89,"y":120,"radius":15,"borderColor":"#FFFFFF","backgroundColor":"#FFFFFF","screenType":"default","type":"circle","layer":41}],"type":"core","versions":"Beta","units":[{"id":"ardJZuDgR+CN9sQG","createTime":1739523365089,"hidden":false,"type":"env2","name":"env2_0","port":"A","default":["A","E","PAHUB","Custom"],"pb_port":[0,1,2,3,4,5],"new_pb_port":"0","user_port":["21","22"],"icon":"env2.png","hasPnP":true,"url":"https://docs.m5stack.com/en/products/sku/U001-B"},{"id":"p`sn69jyT$#bFImD","createTime":1739523365089,"stickType":"stick","type":"light","name":"light_0","port":"B","default":["A","B","C","D","Custom"],"user_port":["21","22"],"icon":"light.png","url":"https://docs.m5stack.com/en/products/sku/U021"}],"hats":[],"stamps":[],"blockly":"<variables><variable id=\"F9^9,pSc@qSa#W0[g+(#\">Packet</variable><variable id=\"X1iAMXPl7#eW=UX7m=v;\">Decoded_weathercode</variable><variable id=\",Pj7w_O!CZ6q{V+RzM`!\">Decoded_Packet</variable><variable id=\"+k:h#tocAj-:POx2uh./\">Decoded_timezone</variable><variable id=\"Z*n?Byw()yp%FFK_D~SB\">Decoded_latitude</variable><variable id=\"0p1Z(9rM{|p)]Lv)GIgS\">Decoded_longitude</variable><variable id=\"A5i2h!_C/(:Te|fr^oQm\">Decoded_temperature</variable><variable id=\"K@t!oCHwv^-WzFe*{0OS\">Decoded_Humidity</variable><variable id=\"R=l0VJq|?_#Q,^9v*%2R\">Decoded_Wind</variable><variable id=\"t%k%)0j2IwXf+ZHoMauH\">Decoded_Maxtemp</variable><variable id=\"^_h7-BSlHy:?5G]ZP^P?\">Decoded_Mintemp</variable></variables><block type=\"button_callback\" id=\")_77)X/}):u|VR|9bGDP\" x=\"30\" y=\"-1710\"><mutation buttonValue=\"A\" eventValue=\"wasPressed\"></mutation><field name=\"BUTTON\">A</field><field name=\"EVENT\">wasPressed</field><statement name=\"FUNC\"><block type=\"basic_on_loop\" id=\"CUj+s}Y=K|^3g9b!tga~\"><statement name=\"LOOP\"><block type=\"label_set_text\" id=\"9;:q=Yl1ME|XFgBeX#bh\"><field name=\"COMPONENT\">room_temp_input</field><value name=\"TEXT\"><shadow type=\"text\" id=\"RDx}A$$]Ozo2?,?i}fj$\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"dht12_get_temperature\" id=\"##SdXEyy2*@V/QW,#5D)\"><field name=\"VARNAME\">env2_0</field></block></value><next><block type=\"label_set_text\" id=\";sQ[@oe/geO!cLQ4;Df0\"><field name=\"COMPONENT\">room_hum_input</field><value name=\"TEXT\"><shadow type=\"text\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"dht12_get_humidity\" id=\"4]+ZN~h10AQx}z[r`9?U\"><field name=\"VARNAME\">env2_0</field></block></value><next><block type=\"label_set_text\" id=\"60EE:gSCk_z%=w:IC-Gi\"><field name=\"COMPONENT\">room_press_input</field><value name=\"TEXT\"><shadow type=\"text\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"dht12_pressure\" id=\"zSJNY!bv/OD7Du^Lean4\"><field name=\"VARNAME\">env2_0</field></block></value><next><block type=\"timer_delay_ms\" id=\"q4G=)%ucsGGX_AO-2(G#\"><value name=\"DELAY\"><shadow type=\"math_number\" id=\"{-Jh4,}]v%f=?$923A]q\"><field name=\"NUM\">100</field></shadow></value><next><block type=\"controls_ifelse\" id=\"q^,$_FNKFKnM(W29!Vqp\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"__ES,Fpiso/Pn{-wSIuB\"><field name=\"OP\">GT</field><value name=\"A\"><block type=\"dht12_get_humidity\" id=\"$HZP!EjJs+.76q.8NJ{G\"><field name=\"VARNAME\">env2_0</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"f;:^m#lG5,#xT9KIE;^^\"><field name=\"NUM\">50</field></block></value></block></value><statement name=\"DO0\"><block type=\"controls_ifelse\" id=\"B;Tr[cvCgo`U}Q^]xKFs\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"Y8ve%sYjV~452kD)8IxH\"><field name=\"OP\">GT</field><value name=\"A\"><block type=\"dht12_get_humidity\" id=\"uL!zY^oiHVMagJd:s3;_\"><field name=\"VARNAME\">env2_0</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"3/8QDrlP[LGa!C!}0|_F\"><field name=\"NUM\">80</field></block></value></block></value><statement name=\"DO0\"><block type=\"rgb_set_all\" id=\"r57w]VU+zr.ru;3=#(w7\"><field name=\"COLOR\">#00cccc</field><next><block type=\"speaker_tone\" id=\"T~6gLWv=2uQ]OqLn:`FP\"><value name=\"FREQ\"><shadow type=\"math_number\" id=\"N4Q%ZD~xC^j^l()^=dUc\"><field name=\"NUM\">2000</field></shadow></value><value name=\"TIMEOUT\"><shadow type=\"math_number\" id=\"Y2Z818fm;JMQc#xd{!Zf\"><field name=\"NUM\">200</field></shadow></value></block></next></block></statement><statement name=\"ELSE\"><block type=\"rgb_set_all\" id=\"EAw{N~x@y3!(|zd24X}#\"><field name=\"COLOR\">#00cccc</field></block></statement></block></statement><statement name=\"ELSE\"><block type=\"controls_ifelse\" id=\"]n}arJ=4Eksh+pQ%eFuV\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"t^lptSK-NsL-!;K{A2qQ\"><field name=\"OP\">LT</field><value name=\"A\"><block type=\"dht12_get_humidity\" id=\"mT_I_AH:I1shI1NGU:c_\"><field name=\"VARNAME\">env2_0</field></block></value><value name=\"B\"><block type=\"math_number\" id=\")%|2-.v}x77@ENSf;-iI\"><field name=\"NUM\">30</field></block></value></block></value><statement name=\"DO0\"><block type=\"controls_ifelse\" id=\"eO;YYt(PD*eQ+TDm^d^p\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"?.`XJJ:VA:R`L.L8jeA:\"><field name=\"OP\">LT</field><value name=\"A\"><block type=\"dht12_get_humidity\" id=\"V*i??S6$_ns*ka({O?=,\"><field name=\"VARNAME\">env2_0</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"~5!X=.p@g~M9m2@,NDy$\"><field name=\"NUM\">25</field></block></value></block></value><statement name=\"DO0\"><block type=\"speaker_tone\" id=\"VKXbz)r?d$#yPDCF(p?)\"><value name=\"FREQ\"><shadow type=\"math_number\" id=\"bxpTuU]zpt@l+|eRAXb4\"><field name=\"NUM\">2000</field></shadow></value><value name=\"TIMEOUT\"><shadow type=\"math_number\" id=\"Msx|RW,6hV=[_Grp*L8$\"><field name=\"NUM\">200</field></shadow></value><next><block type=\"rgb_set_all\" id=\"hNNM1$i/~5h)#brOfJ*N\"><field name=\"COLOR\">#00cccc</field></block></next></block></statement><statement name=\"ELSE\"><block type=\"rgb_set_all\" id=\".pkhy@CNW-d@#.f~vzNw\"><field name=\"COLOR\">#00cccc</field></block></statement></block></statement><statement name=\"ELSE\"><block type=\"rgb_set_all\" id=\"^e2W2712jPfM$u{uH/qu\"><field name=\"COLOR\">#33ff33</field></block></statement></block></statement><next><block type=\"controls_ifelse\" id=\"3,_X;FI~fatg,YsD;W;|\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"stzpfG-Q,;(8HBl5_Ov!\"><field name=\"OP\">GT</field><value name=\"A\"><block type=\"dht12_get_temperature\" id=\"J3$gq.FQO%:uo@?Hu|h*\"><field name=\"VARNAME\">env2_0</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"g*[ualKzM6WYut!Zr2^%\"><field name=\"NUM\">24</field></block></value></block></value><statement name=\"DO0\"><block type=\"controls_ifelse\" id=\"S[DQskCL$ZBji0:M4*28\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"}bIIdefO?2D7WpE;.iT@\"><field name=\"OP\">GT</field><value name=\"A\"><block type=\"dht12_get_temperature\" id=\"z2ja.AJ.d$8ERlh)]6FX\"><field name=\"VARNAME\">env2_0</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"UoHL*zxJ7n%CF={*OuD1\"><field name=\"NUM\">30</field></block></value></block></value><statement name=\"DO0\"><block type=\"rgb_set_all\" id=\":h+KNqL1HXm9d~-xe^^%\"><field name=\"COLOR\">#ffcc00</field><next><block type=\"speaker_tone\" id=\"`lK|TcEEl$$-Iu)/{R)d\"><value name=\"FREQ\"><shadow type=\"math_number\" id=\"P[|xN6R^hQs3d05h9/l0\"><field name=\"NUM\">2000</field></shadow></value><value name=\"TIMEOUT\"><shadow type=\"math_number\" id=\")B^tsn,@e{P`)eJ,G7:c\"><field name=\"NUM\">200</field></shadow></value></block></next></block></statement><statement name=\"ELSE\"><block type=\"rgb_set_all\" id=\"B)W[JW}7teEP@hpx6#g@\"><field name=\"COLOR\">#ffcc00</field></block></statement></block></statement><statement name=\"ELSE\"><block type=\"controls_ifelse\" id=\"k}hpT@I$oc!zk]w1si.S\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"5RGL?uMVqotY]YtyAd5c\"><field name=\"OP\">LT</field><value name=\"A\"><block type=\"dht12_get_temperature\" id=\"^oA_+xggG_@Kuw0^t47]\"><field name=\"VARNAME\">env2_0</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"|ss~Oea-b99:=t,zri[i\"><field name=\"NUM\">20</field></block></value></block></value><statement name=\"DO0\"><block type=\"controls_ifelse\" id=\"y2MQkc{3B5F^`Hb98I]:\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"U5d?(Lh$GcR_xKZpJ*5h\"><field name=\"OP\">LT</field><value name=\"A\"><block type=\"dht12_get_temperature\" id=\"5SQ+(aM5-Rw|_=`%`DBa\"><field name=\"VARNAME\">env2_0</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"Sxk?H0)0A.^?+3WP:d8y\"><field name=\"NUM\">10</field></block></value></block></value><statement name=\"DO0\"><block type=\"rgb_set_all\" id=\"fwaLbtkv[Nc2D[;kZhex\"><field name=\"COLOR\">#ffcc00</field><next><block type=\"speaker_tone\" id=\"kHjO!FPvLAtW1I?D55i/\"><value name=\"FREQ\"><shadow type=\"math_number\" id=\"/t%Y#@b=_0a]tdg-K`k5\"><field name=\"NUM\">2000</field></shadow></value><value name=\"TIMEOUT\"><shadow type=\"math_number\" id=\"_tx{5VOab!|)V%5$|=LR\"><field name=\"NUM\">200</field></shadow></value></block></next></block></statement><statement name=\"ELSE\"><block type=\"rgb_set_all\" id=\"Tgu}QW%5Vb~:F8,BV0eK\"><field name=\"COLOR\">#ffcc00</field></block></statement><next><block type=\"rgb_set_all\" id=\"6dj?CFAS2U53$5I|KLNr\"><field name=\"COLOR\">#ffcc00</field></block></next></block></statement><statement name=\"ELSE\"><block type=\"rgb_set_all\" id=\"-JB9h{o9B2j2jUiDGuUm\"><field name=\"COLOR\">#33ff33</field></block></statement></block></statement><next><block type=\"controls_ifelse\" id=\"hZ6e,ywCWk+Hpmj$G8u]\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"Rry,OMYCN)eJHwPFzIB?\"><field name=\"OP\">GT</field><value name=\"A\"><block type=\"dht12_pressure\" id=\"?;l;yS)8HW)6hWw4$/`@\"><field name=\"VARNAME\">env2_0</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"%_fZeiDLsZ~?w%|G57ry\"><field name=\"NUM\">1025</field></block></value></block></value><statement name=\"DO0\"><block type=\"controls_ifelse\" id=\"TK7$}xXl?=XTxbA+jOI)\"><value name=\"IF0\"><block type=\"logic_compare\" id=\")=@XEg$2Vt#D/OYfpJ/p\"><field name=\"OP\">GT</field><value name=\"A\"><block type=\"dht12_pressure\" id=\"s[1^8P*^]|d.j3[52i1?\"><field name=\"VARNAME\">env2_0</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"LS9vMo9_O,6zCze^6:y.\"><field name=\"NUM\">1040</field></block></value></block></value><statement name=\"DO0\"><block type=\"rgb_set_all\" id=\"%hvf6FYtTOoATXvB@CC4\"><field name=\"COLOR\">#ff0000</field><next><block type=\"speaker_tone\" id=\"o*%5Edz8qTC:V{^kpAr@\"><value name=\"FREQ\"><shadow type=\"math_number\" id=\"xz8z894Z[L~YgvqNVwsm\"><field name=\"NUM\">2000</field></shadow></value><value name=\"TIMEOUT\"><shadow type=\"math_number\" id=\".7p|=U8f#6`Aj!E+E8Zp\"><field name=\"NUM\">200</field></shadow></value></block></next></block></statement><statement name=\"ELSE\"><block type=\"rgb_set_all\" id=\"-Oo}W8!dl+vm+~fl,2JQ\"><field name=\"COLOR\">#ff0000</field></block></statement></block></statement><statement name=\"ELSE\"><block type=\"controls_ifelse\" id=\"l0Pmc.3`_5SA6mP*G}q*\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"~D[u(6d~|sxDa~ACd8$Q\"><field name=\"OP\">LT</field><value name=\"A\"><block type=\"dht12_pressure\" id=\"~/_K^S!O`E7G9;$%RZW:\"><field name=\"VARNAME\">env2_0</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"s7sEdrc~o;Fm_44es_3?\"><field name=\"NUM\">1010</field></block></value></block></value><statement name=\"DO0\"><block type=\"controls_ifelse\" id=\"Y1oH1[sYu9TL.d?ohui2\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"XeN(;.D}:wn]aWF??P!P\"><field name=\"OP\">LT</field><value name=\"A\"><block type=\"dht12_pressure\" id=\"2afZXB]vRtDl;s=@4LI7\"><field name=\"VARNAME\">env2_0</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"eYG1aW}A6%`.^hN?fc{9\"><field name=\"NUM\">980</field></block></value></block></value><statement name=\"DO0\"><block type=\"rgb_set_all\" id=\"9W_Gn)$18@=KXax:B$QH\"><field name=\"COLOR\">#ff0000</field><next><block type=\"speaker_tone\" id=\"(T}b3NTs4D;!IJsy%CRu\"><value name=\"FREQ\"><shadow type=\"math_number\" id=\"6|82#=$m`nZ/e.Y.$#Ej\"><field name=\"NUM\">2000</field></shadow></value><value name=\"TIMEOUT\"><shadow type=\"math_number\" id=\"O[Z1(@ECJT4}yxKONr~]\"><field name=\"NUM\">200</field></shadow></value></block></next></block></statement><statement name=\"ELSE\"><block type=\"rgb_set_all\" id=\"bZxq}w/7~}YnOwCmjd9y\"><field name=\"COLOR\">#ff0000</field></block></statement></block></statement><statement name=\"ELSE\"><block type=\"rgb_set_all\" id=\".E_G(IZc{K,A[NzOz#*/\"><field name=\"COLOR\">#33ff33</field></block></statement></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></statement></block><block type=\"button_callback\" id=\"sm-kbbJU_FkH/$t!j//1\" x=\"990\" y=\"-1730\"><mutation buttonValue=\"B\" eventValue=\"wasPressed\"></mutation><field name=\"BUTTON\">B</field><field name=\"EVENT\">wasPressed</field><statement name=\"FUNC\"><block type=\"circle_set_mode\" id=\"IrcC:qH9T)yzNXyUY%N4\"><field name=\"COMPONENT\">circle1</field><field name=\"MODE\">show</field><next><block type=\"circle_set_mode\" id=\"RfJBRwXS7dO1Yv#X:LOf\"><field name=\"COMPONENT\">circle0</field><field name=\"MODE\">show</field><next><block type=\"basic_on_loop\" id=\"Mw,rR1#p62~Sr?Jy}Njr\"><statement name=\"LOOP\"><block type=\"controls_ifelse\" id=\"wt|,#sHjN9.(QbWA1QSy\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"[~LOj`avXTlTg.DDC5hE\"><field name=\"OP\">GT</field><value name=\"A\"><block type=\"light_a_read\" id=\"QLAD9L|E^|^`WiB{s%Xq\"><field name=\"VARNAME\">light_0</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"*tt6oX}}uRPF6oo3(=Qm\"><field name=\"NUM\">300</field></block></value></block></value><statement name=\"DO0\"><block type=\"circle_set_mode\" id=\"kklb9^/pi!kfdkUYmuJ8\"><field name=\"COMPONENT\">circle2</field><field name=\"MODE\">show</field><next><block type=\"circle_set_mode\" id=\"ah}G3=fRv,{0RWHcOa/.\"><field name=\"COMPONENT\">circle1</field><field name=\"MODE\">hide</field><next><block type=\"circle_set_mode\" id=\"PnjAN0:QU~/eTW!*lfAa\"><field name=\"COMPONENT\">circle0</field><field name=\"MODE\">hide</field></block></next></block></next></block></statement><statement name=\"ELSE\"><block type=\"circle_set_mode\" id=\"~3-L:]Q5s-O,alS{Cl0+\"><field name=\"COMPONENT\">circle2</field><field name=\"MODE\">hide</field><next><block type=\"circle_set_mode\" id=\"NE=Yd6uy=Q8cDE1LPA7K\"><field name=\"COMPONENT\">circle1</field><field name=\"MODE\">show</field><next><block type=\"circle_set_mode\" id=\"R-95P]+]P{o!u)6UOS(m\"><field name=\"COMPONENT\">circle0</field><field name=\"MODE\">show</field></block></next></block></next></block></statement><next><block type=\"timer_delay\" id=\"gB0F{@JAgKwQIoA(d|_7\"><value name=\"DELAY\"><shadow type=\"math_number\" id=\"b|GGUa4C5I;o`lN?]F5*\"><field name=\"NUM\">1</field></shadow></value></block></next></block></statement></block></next></block></next></block></statement></block><block type=\"basic_on_setup\" id=\"setup_block\" deletable=\"false\" x=\"-550\" y=\"-790\"><next><block type=\"controls_whileUntil\" id=\"jfjJ2hI$)@jUaQr{OSiQ\"><field name=\"MODE\">WHILE</field><value name=\"BOOL\"><block type=\"logic_boolean\" id=\"4?lAbxjcx4w4[[Q6MUm^\"><field name=\"BOOL\">TRUE</field></block></value><statement name=\"DO\"><block type=\"procedures_callnoreturn\" id=\"AAja}tKU%l{}cQ;!eEfe\"><mutation name=\"Weather\"></mutation><next><block type=\"timer_delay\" id=\"4T=eMq}h/)tAM^@-w,NC\"><value name=\"DELAY\"><shadow type=\"math_number\" id=\"I3jrPYbHpqlDF}lAZ52`\"><field name=\"NUM\">1800</field></shadow></value></block></next></block></statement></block></next></block><block type=\"procedures_defnoreturn\" id=\"V6,j?tolZ$,{X(84k/U8\" x=\"-1510\" y=\"-290\"><field name=\"NAME\">Weather</field><comment pinned=\"false\" h=\"80\" w=\"160\">Describe this function...</comment><statement name=\"STACK\"><block type=\"http_request\" id=\"tzpkW=CNl75RHv;*$^@W\"><field name=\"method\">GET</field><value name=\"url\"><shadow type=\"text\" id=\"}i+ha!+aVRUkZ9s.1@`j\"><field name=\"TEXT\">https://api.open-meteo.com/v1/forecast?latitude=1.3369344&longitude=103.8548992&current=temperature_2m,relative_humidity_2m,weather_code,wind_speed_10m&daily=temperature_2m_max,temperature_2m_min&timezone=Asia%2FSingapore&forecast_days=1</field></shadow></value><value name=\"headers\"><block type=\"map_on_loop\" id=\"{IFcFYmJG7K|iSPR-i4F\"><statement name=\"LOOP\"><block type=\"create_map_key\" id=\"pvObaaRo0odEy)(j]{ay\"><value name=\"key\"><block type=\"text\" id=\"^3xEG4cB!z]e(6t-$WEC\"><field name=\"TEXT\">Content-Type</field></block></value><value name=\"value\"><block type=\"text\" id=\":3QV^U!84u$h9Ue/U+p1\"><field name=\"TEXT\">text/html</field></block></value></block></statement></block></value><value name=\"data\"><block type=\"map_on_loop\" id=\"YS3|A?==r`/HsP$I?r;]\"></block></value><statement name=\"success\"><block type=\"variables_set\" id=\"L1b1IPhW93%Ov/8:t0jb\"><field name=\"VAR\" id=\"F9^9,pSc@qSa#W0[g+(#\">Packet</field><value name=\"VALUE\"><block type=\"get_data\" id=\"=Bm_-SZ!z?l:7,*bRUaD\"></block></value><next><block type=\"variables_set\" id=\"A^4/IB{_Tt!tSVG/#VW%\"><field name=\"VAR\" id=\",Pj7w_O!CZ6q{V+RzM`!\">Decoded_Packet</field><value name=\"VALUE\"><block type=\"loads_json\" id=\"A}(p-.{^G8.5/}%me5np\"><value name=\"JSON_VAR\"><shadow type=\"text\" id=\":7a$KxL93ss7C26^gm:c\"><field name=\"TEXT\"></field></shadow><block type=\"variables_get\" id=\"x6heH+]|9^(Ro.WO,Rl$\"><field name=\"VAR\" id=\"F9^9,pSc@qSa#W0[g+(#\">Packet</field></block></value></block></value><next><block type=\"variables_set\" id=\"%Wi(%-Ht-gA/vJ1oDc_+\"><field name=\"VAR\" id=\"+k:h#tocAj-:POx2uh./\">Decoded_timezone</field><value name=\"VALUE\"><block type=\"get_map_key\" id=\"9v#xS3ZerU7xxw=78YF}\"><value name=\"key\"><block type=\"text\" id=\"w]7smk^XSGJ:,)BbeV$F\"><field name=\"TEXT\">timezone</field></block></value><value name=\"map\"><block type=\"variables_get\" id=\"WG)^q!s.TL{EAHfxT;{R\"><field name=\"VAR\" id=\",Pj7w_O!CZ6q{V+RzM`!\">Decoded_Packet</field></block></value></block></value><next><block type=\"variables_set\" id=\"[sj!UMYG4_lbGOZV!GMv\"><field name=\"VAR\" id=\"Z*n?Byw()yp%FFK_D~SB\">Decoded_latitude</field><value name=\"VALUE\"><block type=\"get_map_key\" id=\"XXIPpwSS`OqhG[/{qG}v\"><value name=\"key\"><block type=\"text\" id=\"_^nQ#m0zu#6MNZT/5w%U\"><field name=\"TEXT\">latitude</field></block></value><value name=\"map\"><block type=\"variables_get\" id=\"e)~U}4b#F4zqL*CDz5%R\"><field name=\"VAR\" id=\",Pj7w_O!CZ6q{V+RzM`!\">Decoded_Packet</field></block></value></block></value><next><block type=\"variables_set\" id=\"4Kpv~[L+3r0D_0RjD6vT\"><field name=\"VAR\" id=\"0p1Z(9rM{|p)]Lv)GIgS\">Decoded_longitude</field><value name=\"VALUE\"><block type=\"get_map_key\" id=\")h*O#9UT]#0^Gk-DMP|.\"><value name=\"key\"><block type=\"text\" id=\"jd-4CI`oWG=y{Mk`[H^A\"><field name=\"TEXT\">longitude</field></block></value><value name=\"map\"><block type=\"variables_get\" id=\"Wk,@{PpL||$R$zIvlImx\"><field name=\"VAR\" id=\",Pj7w_O!CZ6q{V+RzM`!\">Decoded_Packet</field></block></value></block></value><next><block type=\"variables_set\" id=\"Ku7hRdaT!o6l@^ogY(c0\"><field name=\"VAR\" id=\"A5i2h!_C/(:Te|fr^oQm\">Decoded_temperature</field><value name=\"VALUE\"><block type=\"get_map_key\" id=\"o+B%gnKx3;Rn2Gact!Oq\"><value name=\"key\"><block type=\"text\" id=\"Pz})iB]L$=Fyb@u@O!*Y\"><field name=\"TEXT\">temperature_2m</field></block></value><value name=\"map\"><block type=\"get_map_key\" id=\"XhyLu.q7oUN56H8S~KA9\"><value name=\"key\"><block type=\"text\" id=\"x/S+D$I=+,^x!aW+X0k0\"><field name=\"TEXT\">current</field></block></value><value name=\"map\"><block type=\"variables_get\" id=\"9pv5kqk+pQy$(FJ:.K0K\"><field name=\"VAR\" id=\",Pj7w_O!CZ6q{V+RzM`!\">Decoded_Packet</field></block></value></block></value></block></value><next><block type=\"variables_set\" id=\"eswTqm/)CGy@/X6zD0O=\"><field name=\"VAR\" id=\"K@t!oCHwv^-WzFe*{0OS\">Decoded_Humidity</field><value name=\"VALUE\"><block type=\"get_map_key\" id=\"%z=o*it|inA`!Z[K_~FV\"><value name=\"key\"><block type=\"text\" id=\"tX^|:_l#S|3]lLtue;kS\"><field name=\"TEXT\">relative_humidity_2m</field></block></value><value name=\"map\"><block type=\"get_map_key\" id=\"5,,s}TGqWd|Bl;)5t.67\"><value name=\"key\"><block type=\"text\" id=\"G2/D8#FxEy3BnKN!v7IK\"><field name=\"TEXT\">current</field></block></value><value name=\"map\"><block type=\"variables_get\" id=\"WB[kk|Ga#Y.Vm0)^)X[q\"><field name=\"VAR\" id=\",Pj7w_O!CZ6q{V+RzM`!\">Decoded_Packet</field></block></value></block></value></block></value><next><block type=\"variables_set\" id=\"Q^6Qh_pAYAx{fyKl~ZH@\"><field name=\"VAR\" id=\"R=l0VJq|?_#Q,^9v*%2R\">Decoded_Wind</field><value name=\"VALUE\"><block type=\"get_map_key\" id=\"Q.{MqN#pg;%24We(MKOO\"><value name=\"key\"><block type=\"text\" id=\"_`Gn+%9jc.tuuO.WRAEy\"><field name=\"TEXT\">wind_speed_10m</field></block></value><value name=\"map\"><block type=\"get_map_key\" id=\"i-r29SxJU!SHj5bJlUVC\"><value name=\"key\"><block type=\"text\" id=\"Zx:sjgSnnpn?^qIP)VID\"><field name=\"TEXT\">current</field></block></value><value name=\"map\"><block type=\"variables_get\" id=\"Mn02~Dfr_AkpI-,zTCbC\"><field name=\"VAR\" id=\",Pj7w_O!CZ6q{V+RzM`!\">Decoded_Packet</field></block></value></block></value></block></value><next><block type=\"variables_set\" id=\"brv17=~gg0Xqbvp3ECTV\"><field name=\"VAR\" id=\"t%k%)0j2IwXf+ZHoMauH\">Decoded_Maxtemp</field><value name=\"VALUE\"><block type=\"lists_getIndex\" id=\"2o#NfdeJ?E?ZRvu;Ji5X\"><mutation statement=\"false\" at=\"false\"></mutation><field name=\"MODE\">GET</field><field name=\"WHERE\">FIRST</field><value name=\"VALUE\"><block type=\"get_map_key\" id=\"XI3Txg:1qwR{~#O.#lhr\"><value name=\"key\"><block type=\"text\" id=\"Q@sL@Rr_xjad|EsVaZZP\"><field name=\"TEXT\">temperature_2m_max</field></block></value><value name=\"map\"><block type=\"get_map_key\" id=\"43=4a#:+ON~N$PcR;+?H\"><value name=\"key\"><block type=\"text\" id=\"uM[@yNV`SUe!zaA-Pa%!\"><field name=\"TEXT\">daily</field></block></value><value name=\"map\"><block type=\"variables_get\" id=\"SZ7S`c$4axTCSG+LQSs]\"><field name=\"VAR\" id=\",Pj7w_O!CZ6q{V+RzM`!\">Decoded_Packet</field></block></value></block></value></block></value></block></value><next><block type=\"variables_set\" id=\"q_/caOP75P5=L{#K0BLT\"><field name=\"VAR\" id=\"^_h7-BSlHy:?5G]ZP^P?\">Decoded_Mintemp</field><value name=\"VALUE\"><block type=\"lists_getIndex\" id=\"_!oG,!DP%i`V#Py,UMB`\"><mutation statement=\"false\" at=\"false\"></mutation><field name=\"MODE\">GET</field><field name=\"WHERE\">FIRST</field><value name=\"VALUE\"><block type=\"get_map_key\" id=\"`z4?Xvp~a%(/@D#`8Jk#\"><value name=\"key\"><block type=\"text\" id=\"wN5%Qd8s=S,#QV$,b8n^\"><field name=\"TEXT\">temperature_2m_min</field></block></value><value name=\"map\"><block type=\"get_map_key\" id=\"?$l|.WgX5XE}(!tK|EK!\"><value name=\"key\"><block type=\"text\" id=\"bwYs7_ZwUxQ1|Ta8J`$_\"><field name=\"TEXT\">daily</field></block></value><value name=\"map\"><block type=\"variables_get\" id=\"+5`f$mgOejO|*pEi1lIK\"><field name=\"VAR\" id=\",Pj7w_O!CZ6q{V+RzM`!\">Decoded_Packet</field></block></value></block></value></block></value></block></value><next><block type=\"variables_set\" id=\"OemLb63+aigLCDJiIYe3\"><field name=\"VAR\" id=\"X1iAMXPl7#eW=UX7m=v;\">Decoded_weathercode</field><value name=\"VALUE\"><block type=\"convent_int\" id=\"G3B!w=,1x:;8IZ81tvOB\"><value name=\"VALUE\"><block type=\"get_map_key\" id=\"F{dSxEK/BY~Q4a-=;GY(\"><value name=\"key\"><block type=\"text\" id=\"wEvx|PM{$l{;R)yZ(0{w\"><field name=\"TEXT\">weather_code</field></block></value><value name=\"map\"><block type=\"get_map_key\" id=\".ANS}6;N5]=Viaq-KS?W\"><value name=\"key\"><block type=\"text\" id=\"%;95kF9}qB#CgYb$/uhG\"><field name=\"TEXT\">current</field></block></value><value name=\"map\"><block type=\"variables_get\" id=\"YYhUW5*~*ny=A6(Jm6.d\"><field name=\"VAR\" id=\",Pj7w_O!CZ6q{V+RzM`!\">Decoded_Packet</field></block></value></block></value></block></value></block></value><next><block type=\"label_set_text\" id=\"MpDzB_5cW;-enkxYqc#A\"><field name=\"COMPONENT\">input_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"*[U*V(StY{:dXB6j+aX{\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"text\" id=\"R+N#WT.7C/uv9?y151)H\"><field name=\"TEXT\">ONLINE</field></block></value><next><block type=\"label_set_text\" id=\"0;NIfoe6T(:g]9t,OJ{0\"><field name=\"COMPONENT\">TimezoneCountry</field><value name=\"TEXT\"><shadow type=\"text\" id=\"I)NJE!B]Mxk#DgWe)7#D\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"variables_get\" id=\"8830JFMg.(}@7?(1.!se\"><field name=\"VAR\" id=\"+k:h#tocAj-:POx2uh./\">Decoded_timezone</field></block></value><next><block type=\"label_set_text\" id=\"hc*v`[r`(+Cy3ohLFZ1;\"><field name=\"COMPONENT\">temperature</field><value name=\"TEXT\"><shadow type=\"text\" id=\"!V(*#1glgz}_2o[;6O)W\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"text_add\" id=\"yb|Mj(K,x8pcOr7/4nvj\"><value name=\"arg0\"><shadow type=\"text\" id=\"*~cxCZE%,C)Js=}:2DI6\"><field name=\"TEXT\"></field></shadow><block type=\"variables_get\" id=\"5ctc;#;2Q)pT;~Bs,g7D\"><field name=\"VAR\" id=\"A5i2h!_C/(:Te|fr^oQm\">Decoded_temperature</field></block></value><value name=\"arg1\"><block type=\"text\" id=\"FXAIN!bjeRz[Pm@0dO`K\"><field name=\"TEXT\">C</field></block></value></block></value><next><block type=\"label_set_text\" id=\"pkB!QHY#Hvl[gy$x=ri#\"><field name=\"COMPONENT\">latitude</field><value name=\"TEXT\"><shadow type=\"text\" id=\"|:f?+iAC2I=QJqamakvz\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"variables_get\" id=\"I3aL2nUpe%)PdEAX:7zq\"><field name=\"VAR\" id=\"A5i2h!_C/(:Te|fr^oQm\">Decoded_temperature</field></block></value><next><block type=\"label_set_text\" id=\"LM,0=B/1-,D@4u7.eS9F\"><field name=\"COMPONENT\">longitude</field><value name=\"TEXT\"><shadow type=\"text\" id=\"+Jq}/ORW~)ekJ^5KCt+g\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"variables_get\" id=\"907.%MJ.kH-b/{!=v=`c\"><field name=\"VAR\" id=\"0p1Z(9rM{|p)]Lv)GIgS\">Decoded_longitude</field></block></value><next><block type=\"label_set_text\" id=\"pOx.(7{y!|IaJcD;_T+-\"><field name=\"COMPONENT\">input_hum</field><value name=\"TEXT\"><shadow type=\"text\" id=\"j#3^FH)QU4j)G7RGy@~;\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"text_add\" id=\"|2NzXk,3ZlP}qDy(,Bk{\"><value name=\"arg0\"><shadow type=\"text\" id=\"mP*}b@!g00N)$0Grxi$W\"><field name=\"TEXT\"></field></shadow><block type=\"variables_get\" id=\"sNqM@KSNgV6_cpgTpA{F\"><field name=\"VAR\" id=\"K@t!oCHwv^-WzFe*{0OS\">Decoded_Humidity</field></block></value><value name=\"arg1\"><block type=\"text\" id=\"KZL9z+%]/{zV2KuNBg;P\"><field name=\"TEXT\">%</field></block></value></block></value><next><block type=\"label_set_text\" id=\"$]AlcHqW+9X-5H@AvS=y\"><field name=\"COMPONENT\">input_wind</field><value name=\"TEXT\"><shadow type=\"text\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"text_add\" id=\"3G]qeKzAJ~BHg$aB9gOE\"><value name=\"arg0\"><shadow type=\"text\" id=\"#T4GorvU-v1jCuRMslX#\"><field name=\"TEXT\"></field></shadow><block type=\"variables_get\" id=\"Z3BX[8,`@-Uu@Rm|RC([\"><field name=\"VAR\" id=\"R=l0VJq|?_#Q,^9v*%2R\">Decoded_Wind</field></block></value><value name=\"arg1\"><block type=\"text\" id=\";FB?kQWDz0M;Jx@%G{#-\"><field name=\"TEXT\">km/h</field></block></value></block></value><next><block type=\"label_set_text\" id=\"}YBNOa,O_c^o9[,-o6v{\"><field name=\"COMPONENT\">input_max</field><value name=\"TEXT\"><shadow type=\"text\" id=\".3f1fHtr;1te-IouNlN^\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"text_add\" id=\"Nw8/#?%xg62y5)gZs2_L\"><value name=\"arg0\"><shadow type=\"text\" id=\"ZYXAD_(V#J;Np:M7#%=g\"><field name=\"TEXT\"></field></shadow><block type=\"variables_get\" id=\"RIXOv|!s.2C1}5Qb*fd)\"><field name=\"VAR\" id=\"t%k%)0j2IwXf+ZHoMauH\">Decoded_Maxtemp</field></block></value><value name=\"arg1\"><block type=\"text\" id=\"gxBN4*M#/tjfm3.ZV,IW\"><field name=\"TEXT\">C</field></block></value></block></value><next><block type=\"label_set_text\" id=\",ZWU(P(vhik63jD4.M3`\"><field name=\"COMPONENT\">input_min</field><value name=\"TEXT\"><shadow type=\"text\" id=\"jrYL2Sp5(IdUbh}q:;2a\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"text_add\" id=\"*Ue7KiD?S_g7Ga93QdS*\"><value name=\"arg0\"><shadow type=\"text\" id=\"/,/LHw%T9-,Ol7h(!FP,\"><field name=\"TEXT\"></field></shadow><block type=\"variables_get\" id=\"!;NkT@WQCTpY-HOR4kb6\"><field name=\"VAR\" id=\"^_h7-BSlHy:?5G]ZP^P?\">Decoded_Mintemp</field></block></value><value name=\"arg1\"><block type=\"text\" id=\"[zG{1`oJbr)99@u}0hM`\"><field name=\"TEXT\">C</field></block></value></block></value><next><block type=\"procedures_callnoreturn\" id=\"P6oR1RcA*+*q[~80x![)\"><mutation name=\"WeatherCodeHandler\"></mutation></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement><statement name=\"fail\"><block type=\"label_set_text\" id=\"T#g]8d8iMb^yFN@W*XR7\"><field name=\"COMPONENT\">input_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"4!UzsZ3ii/.-VlHFH^oU\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"text\" id=\"slgN.L/20T.wd1ufXc$)\"><field name=\"TEXT\">OFFLINE</field></block></value></block></statement></block></statement></block><block type=\"procedures_defnoreturn\" id=\"gl]-UjS~q80Z5o9bwl@6\" x=\"1290\" y=\"190\"><field name=\"NAME\">WeatherCodeHandler</field><comment pinned=\"false\" h=\"80\" w=\"160\">Describe this function...</comment><statement name=\"STACK\"><block type=\"logic_switch\" id=\"Lg,ey)??=%CihD|hL;YE\"><mutation items=\"19\"></mutation><value name=\"SWITCH\"><block type=\"variables_get\" id=\"/9_/d][e,y/dMSEL;i2j\"><field name=\"VAR\" id=\"X1iAMXPl7#eW=UX7m=v;\">Decoded_weathercode</field></block></value><value name=\"CASE0\"><block type=\"math_number\" id=\":)^t8q:G=KntzEaMI|u~\"><field name=\"NUM\">0</field></block></value><statement name=\"DO0\"><block type=\"label_set_text\" id=\"oJIr$.n_]mAX@x`7n9}F\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"W9X2[mY-Qo6f.!|!.MCg\"><field name=\"TEXT\">Clear Sky</field></shadow></value></block></statement><value name=\"CASE1\"><block type=\"math_number\" id=\"fwLi$NJ/_8qKs?;7kGLL\"><field name=\"NUM\">1</field></block></value><statement name=\"DO1\"><block type=\"label_set_text\" id=\"J53+yk#*m_db/}0ee0lR\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"t!7ub3wiL%^HOGHaN.=q\"><field name=\"TEXT\">Mainly Clear</field></shadow></value></block></statement><value name=\"CASE2\"><block type=\"math_number\" id=\"z4cl.}K1o,xQF]T0txA`\"><field name=\"NUM\">2</field></block></value><statement name=\"DO2\"><block type=\"label_set_text\" id=\"gci]^%_,)x]bA]6PjPb.\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"jCPb}9uh-t+5RMdf8(o!\"><field name=\"TEXT\">Partly Cloudy</field></shadow></value></block></statement><value name=\"CASE3\"><block type=\"math_number\" id=\".$`,RofbD`!.1X#LQOo`\"><field name=\"NUM\">3</field></block></value><statement name=\"DO3\"><block type=\"label_set_text\" id=\"hZJ+ZEW~%EW+uGTIZB`L\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\";OiG9C3sAF-_-jpv^i#o\"><field name=\"TEXT\">Overcast</field></shadow></value></block></statement><value name=\"CASE4\"><block type=\"math_number\" id=\"t-5^XVVo=/@=G9*(W-`j\"><field name=\"NUM\">4</field></block></value><statement name=\"DO4\"><block type=\"label_set_text\" id=\"8=RGhEnepGL^C77L3Qep\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\";jKfE2:4vBPeU6M3f_Gq\"><field name=\"TEXT\">Smoke</field></shadow></value></block></statement><value name=\"CASE5\"><block type=\"math_number\" id=\"(OKgg-=_DYVaMF1*AF$x\"><field name=\"NUM\">5</field></block></value><statement name=\"DO5\"><block type=\"label_set_text\" id=\"TACQ1WA5O!8Vg;uz3}^l\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"Iu~OL(mE4bB1bnQt%uMu\"><field name=\"TEXT\">Haze</field></shadow></value></block></statement><value name=\"CASE6\"><block type=\"math_number\" id=\"SyDqPRzZ.,g_{r!Jqa/P\"><field name=\"NUM\">6</field></block></value><statement name=\"DO6\"><block type=\"label_set_text\" id=\"F#S:_!L1qGm[CGf7+r,p\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"S!ICf@QkMgrJ.6O,P#/(\"><field name=\"TEXT\">Dust in air</field></shadow></value></block></statement><value name=\"CASE7\"><block type=\"math_number\" id=\"KH+|}?]Tw/.To/i?Rm2m\"><field name=\"NUM\">7</field></block></value><statement name=\"DO7\"><block type=\"label_set_text\" id=\"#B#2`et_oS~*e65{Ev|B\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"_fb^6k:DbR}BR`^VDCG,\"><field name=\"TEXT\">Dust by wind</field></shadow></value></block></statement><value name=\"CASE8\"><block type=\"math_number\" id=\"lM!gK):iW,G4VkbUGT2z\"><field name=\"NUM\">8</field></block></value><statement name=\"DO8\"><block type=\"label_set_text\" id=\"tgwv1w#k:mOwhQ2CJy}[\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"YSbtJ9{olO{45@yN6k@|\"><field name=\"TEXT\">Sand whirls</field></shadow></value></block></statement><value name=\"CASE9\"><block type=\"math_number\" id=\"un]Qm.!]4drl2I0UZ[5l\"><field name=\"NUM\">9</field></block></value><statement name=\"DO9\"><block type=\"label_set_text\" id=\"JE3bnM`F04j+6SqCQ]3c\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"j^8_9BQ;`ksz{B=bGjRZ\"><field name=\"TEXT\">Sand storm</field></shadow></value></block></statement><value name=\"CASE10\"><block type=\"math_number\" id=\"pK}u?+2Ui46]I,._pJx#\"><field name=\"NUM\">10</field></block></value><statement name=\"DO10\"><block type=\"label_set_text\" id=\"82GTMf9*Uhz,ir?1V6b0\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"EN84y|M?X.PdzK/Xv0ca\"><field name=\"TEXT\">Mist</field></shadow></value></block></statement><value name=\"CASE11\"><block type=\"math_number\" id=\"7G.k45:CQUg[{N/G1veo\"><field name=\"NUM\">11</field></block></value><statement name=\"DO11\"><block type=\"label_set_text\" id=\"]9G=)6==0HHcoP.fiC3,\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"xU:yZp`Pq}($o80(e9tc\"><field name=\"TEXT\">Fog patches</field></shadow></value></block></statement><value name=\"CASE12\"><block type=\"math_number\" id=\"/dwNV/,nOKcRb=NkF(x5\"><field name=\"NUM\">12</field></block></value><statement name=\"DO12\"><block type=\"label_set_text\" id=\"ys=T3qIBHBIXKf}|*b@G\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"(=9*6xIUZ/22BE:TB_+~\"><field name=\"TEXT\">Continuous fog</field></shadow></value></block></statement><value name=\"CASE13\"><block type=\"math_number\" id=\"h|VA%OMh7}G6`Tp29fjI\"><field name=\"NUM\">13</field></block></value><statement name=\"DO13\"><block type=\"label_set_text\" id=\"VI8p~!ZjIyGC4=~I#asV\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"RLDR$[]57[csoB.jqY^v\"><field name=\"TEXT\">Lightning visible</field></shadow></value></block></statement><value name=\"CASE14\"><block type=\"math_number\" id=\"w9V(rKc;dL/=-QKVMxf[\"><field name=\"NUM\">14</field></block></value><statement name=\"DO14\"><block type=\"label_set_text\" id=\"XPNr~qTyR9g!jmVlWFha\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"aNZD$unCuKjWw@3fC9`B\"><field name=\"TEXT\">Precipiration</field></shadow></value></block></statement><value name=\"CASE15\"><block type=\"math_number\" id=\"Sel%t^rPfaXbn:=ikOF|\"><field name=\"NUM\">15</field></block></value><statement name=\"DO15\"><block type=\"label_set_text\" id=\"L09oF*bCTO[7rxy5]@b~\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"!W=zJSXhsu?{3W3TC(ou\"><field name=\"TEXT\">Precipiration, no reach ground</field></shadow></value></block></statement><value name=\"CASE16\"><block type=\"math_number\" id=\"@=ztZ9Sm*lgJ()s,zEuR\"><field name=\"NUM\">16</field></block></value><statement name=\"DO16\"><block type=\"label_set_text\" id=\"Lv3ajMm_pLjr;=2(6:$Y\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"/I13-`%ynWDp7^)Vcz:/\"><field name=\"TEXT\">Precipiration, reach ground</field></shadow></value></block></statement><value name=\"CASE17\"><block type=\"math_number\" id=\"j{{*L9iH2B:DC0]5dGBw\"><field name=\"NUM\">17</field></block></value><statement name=\"DO17\"><block type=\"label_set_text\" id=\"Cbbl~UAc]gLH/e%C4|Jd\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"=;Deis%JOA+1bfKe%5Lv\"><field name=\"TEXT\">Thunder, no precipitation</field></shadow></value></block></statement><value name=\"CASE18\"><block type=\"math_number\" id=\"W1o/lH44I3#`w]FHx+n{\"><field name=\"NUM\">18</field></block></value><statement name=\"DO18\"><block type=\"label_set_text\" id=\"ebVyO=r:b-TZ8~Op_E((\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"YZ^(Q~@T/1cyv8//nuy]\"><field name=\"TEXT\">Squalls</field></shadow></value></block></statement><value name=\"CASE19\"><block type=\"math_number\" id=\"F1TuSp`F{,DYNL,(dUEb\"><field name=\"NUM\">19</field></block></value><statement name=\"DO19\"><block type=\"label_set_text\" id=\"J%D4k)V}/P%jzF*^5*XB\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"+-^hNX]}kPvzn-|rdqpL\"><field name=\"TEXT\">Funnel cloud(s)</field></shadow></value></block></statement><statement name=\"DEFAULT\"><block type=\"controls_ifelse\" id=\"sk+WJ4UE(+%4~rA_+Cq6\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"cjI`B2/fNqf)7/Hc`~JK\"><field name=\"OP\">LT</field><value name=\"A\"><block type=\"variables_get\" id=\"{7,G)x?)bS/SovPR_~S!\"><field name=\"VAR\" id=\"X1iAMXPl7#eW=UX7m=v;\">Decoded_weathercode</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"7bz,Q4,XZM-l|SHf!LBB\"><field name=\"NUM\">30</field></block></value></block></value><statement name=\"DO0\"><block type=\"label_set_text\" id=\"ATDd?I0=EdM=71[nKstc\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"SU`S,_63ldrv}ytU-Ws^\"><field name=\"TEXT\">Drizzle</field></shadow></value></block></statement><statement name=\"ELSE\"><block type=\"controls_ifelse\" id=\"THg{sT{q6D*aIXQn3|D8\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"rkVlbWP}m[Yq@c|D`sCF\"><field name=\"OP\">LT</field><value name=\"A\"><block type=\"variables_get\" id=\"N|~EB/lt6!iW,_?4wTKE\"><field name=\"VAR\" id=\"X1iAMXPl7#eW=UX7m=v;\">Decoded_weathercode</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"!rP):`^sBrB9xqs(P5Jx\"><field name=\"NUM\">40</field></block></value></block></value><statement name=\"DO0\"><block type=\"label_set_text\" id=\"N9[f)W}eMzCg;Mp)YGxb\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"^hKiJ_eJq:H0$b6fjCX6\"><field name=\"TEXT\">Fog</field></shadow></value></block></statement><statement name=\"ELSE\"><block type=\"controls_ifelse\" id=\"yi1T(c3K[;zyuK2K{SE6\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"ajf~Wh,?k,DIwmW[ti0I\"><field name=\"OP\">LT</field><value name=\"A\"><block type=\"variables_get\" id=\"X8YXGmXGM3Kv*yE%wdpY\"><field name=\"VAR\" id=\"X1iAMXPl7#eW=UX7m=v;\">Decoded_weathercode</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"nV~a86`d:G`]n$u/Sxy|\"><field name=\"NUM\">50</field></block></value></block></value><statement name=\"DO0\"><block type=\"label_set_text\" id=\";=dTKG7RM8A[H`5ynI[w\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"xkTGg,GSUasEursz,$Hf\"><field name=\"TEXT\">Rain</field></shadow></value></block></statement><statement name=\"ELSE\"><block type=\"controls_ifelse\" id=\"r}$q2.:vmA0U@$sgI:d*\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"TDqfW5y7o+[e8@6[1|S6\"><field name=\"OP\">LT</field><value name=\"A\"><block type=\"variables_get\" id=\"N.,FURoK7=9jXI61=X-%\"><field name=\"VAR\" id=\"X1iAMXPl7#eW=UX7m=v;\">Decoded_weathercode</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"oS[;3BP$I7FrS6j$+/Wq\"><field name=\"NUM\">60</field></block></value></block></value><statement name=\"DO0\"><block type=\"label_set_text\" id=\"c~T@p*I.ySh5U(($YTz7\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"!I4M{I2~Qr1f.X^DuF3u\"><field name=\"TEXT\">Drizzle</field></shadow></value></block></statement><statement name=\"ELSE\"><block type=\"controls_ifelse\" id=\"tVlU3^qpibsr[y@q1k;u\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"KPI1Wwh5/DG+1l_[i{Ao\"><field name=\"OP\">LT</field><value name=\"A\"><block type=\"variables_get\" id=\"71JSZ`GAo?6m+t_apIn$\"><field name=\"VAR\" id=\"X1iAMXPl7#eW=UX7m=v;\">Decoded_weathercode</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"/IQ5w`MQnl?%||uMdc-X\"><field name=\"NUM\">70</field></block></value></block></value><statement name=\"DO0\"><block type=\"label_set_text\" id=\"Jjza!1-6ufrn,N1RX*CI\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"HTfV97?TNbQG-2px18o3\"><field name=\"TEXT\">Rain</field></shadow></value></block></statement><statement name=\"ELSE\"><block type=\"controls_ifelse\" id=\"{yDRF..=e7:YNPF1m3SO\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"3LsE@3}nn=umgKWgadKN\"><field name=\"OP\">LT</field><value name=\"A\"><block type=\"variables_get\" id=\";R](H5ZaYXxQGglIN8_O\"><field name=\"VAR\" id=\"X1iAMXPl7#eW=UX7m=v;\">Decoded_weathercode</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"/DbsXR~JnSfIHkxn9m^b\"><field name=\"NUM\">80</field></block></value></block></value><statement name=\"DO0\"><block type=\"label_set_text\" id=\"0h)r#Nh78Jz1oqy*:y7c\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"yakFF/FgwXXd?4;^v7Vg\"><field name=\"TEXT\">Solid precipitation</field></shadow></value></block></statement><statement name=\"ELSE\"><block type=\"controls_ifelse\" id=\"F16ylg=%@6pq|$Y3GUuB\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"@kvCNKdf}ZwEt2O]8n!D\"><field name=\"OP\">LT</field><value name=\"A\"><block type=\"variables_get\" id=\"NY/1*Er+)t#/x2.q1JkV\"><field name=\"VAR\" id=\"X1iAMXPl7#eW=UX7m=v;\">Decoded_weathercode</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"f1VIyp68F;|7y(%u-]_}\"><field name=\"NUM\">90</field></block></value></block></value><statement name=\"DO0\"><block type=\"label_set_text\" id=\"!.,~[M*b$rrY..wyoN:S\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"}s#$%UN_J.P`7$}9{$lR\"><field name=\"TEXT\">Shower</field></shadow></value></block></statement><statement name=\"ELSE\"><block type=\"controls_ifelse\" id=\"RH^~P+;@k^#vPr1z3#OQ\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"U2qXaI(dw:,0f.u]gzG9\"><field name=\"OP\">LT</field><value name=\"A\"><block type=\"variables_get\" id=\"+4TY,]z)5-YzIjekxaT^\"><field name=\"VAR\" id=\"X1iAMXPl7#eW=UX7m=v;\">Decoded_weathercode</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"0*oa]RPmev7Jn%U.hoyp\"><field name=\"NUM\">100</field></block></value></block></value><statement name=\"DO0\"><block type=\"label_set_text\" id=\"Cz[W$_?*{N[j%R3kk{r$\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"(enM=-QH7Hc=kX33-M`p\"><field name=\"TEXT\">Heavy weather</field></shadow></value></block></statement><statement name=\"ELSE\"><block type=\"label_set_text\" id=\",i[zQ~uE9.i#.8D%wx$u\"><field name=\"COMPONENT\">weather_status</field><value name=\"TEXT\"><shadow type=\"text\" id=\"]QZR{7XGyOBqp(Gcm77Q\"><field name=\"TEXT\">Unknown</field></shadow></value></block></statement></block></statement></block></statement></block></statement></block></statement></block></statement></block></statement></block></statement></block></statement></block></statement></block>","Blockly.Remotes":[],"Blockly.RemotePlus":[{"id":"__title","blockId":"","createTime":1739523365089,"name":"M5RemoteTitle","dragAndDrop":false,"resizable":false,"options":{"minWidth":1,"minHeight":1,"maxWidth":6,"maxHeight":10,"defaultWidth":2,"defaultHeight":1},"w":2,"h":1,"bgColor":"#0080FF","color":"#fff","fontsize":"M","label":"M5Remote","interval":3000,"code":"","event":"","dataSource":"none","ezdataToken":"lZwOxZoECDQMrscewFh77h3Be0uNFyss","topic":"","needShadow":false,"type":"title","x":null,"y":null}],"modules":["rgb"],"cbIdList_":[],"eventCBIdList_":[],"apikey":"69EFC20D","uuid":"277daff5-eb80-4027-accd-ee5a293278f5"}
Comments
Please log in or sign up to comment.