# Farmbot Node-red 控制 demo
Farmbot arduino code 有特定的G code, 與Marlin G code 有些微的差異, 應該算是精簡了部份G code, 也增加了一些特定功能, 可以參考以下連結 .
https://github.com/FarmBot/farmbot-arduino-firmware
## Node-red on Raspberry Pi OS:
一般來說, RaspberryPi OS 都有內建Node-red, 如果沒有的話, 可以在 Recommander software 去安裝.

Node-red 的code 可以用Json 格式import/export , 所以非常方便使用.
## Farmbot node-red 使用說明
1. 請先安裝 node-red-node-serialport
2. 把serial port 改成farmbot 的,ex:\dev\ttyUSB0
並照以下的serial port 節點編輯

## Sample code
#### 範例1 : 可以直接匯入以下的sample 來修改 (複制再import 到Node-red)
```
[{"id":"30d1ca6067fabb8d","type":"tab","label":"移動farmbot 教學","disabled":false,"info":"","env":[]},{"id":"fcd04751.620598","type":"debug","z":"30d1ca6067fabb8d","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":590,"y":180,"wires":[]},{"id":"53ae408446342a39","type":"serial in","z":"30d1ca6067fabb8d","name":"","serial":"a94ce253.ff6bd","x":230,"y":180,"wires":[["fcd04751.620598"]]},{"id":"da3307457400ec4f","type":"serial out","z":"30d1ca6067fabb8d","name":"","serial":"a94ce253.ff6bd","x":630,"y":100,"wires":[]},{"id":"2d87469728f9b553","type":"function","z":"30d1ca6067fabb8d","name":"移動到指定位置","func":"node.warn(\"debug:\" +msg.payload);\nmsg.payload =\"G00 X0 Y0 Z100\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":420,"y":100,"wires":[["da3307457400ec4f"]]},{"id":"739214ece415d3e4","type":"inject","z":"30d1ca6067fabb8d","name":"Start","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payloadType":"date","x":210,"y":100,"wires":[["2d87469728f9b553"]]},{"id":"a94ce253.ff6bd","type":"serial-port","serialport":"/dev/ttyUSB0","serialbaud":"115200","databits":"8","parity":"none","stopbits":"1","waitfor":"","dtr":"none","rts":"none","cts":"none","dsr":"none","newline":"\\n\\r","bin":"false","out":"char","addchar":"\\n\\r","responsetimeout":"10000"}]
```

#### 範例2 :用delay 的方式來執行多個farmbot command.
```
[{"id":"9d824ba9.ed18e8","type":"tab","label":"Mini-farmbot 初使化","disabled":false,"info":""},{"id":"6f6c5b29.e62884","type":"debug","z":"9d824ba9.ed18e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":788,"y":312,"wires":[]},{"id":"84dbf399.1e745","type":"serial in","z":"9d824ba9.ed18e8","name":"","serial":"27e624cd.6129cc","x":610,"y":312,"wires":[["6f6c5b29.e62884"]]},{"id":"3b70d3a2.52acfc","type":"serial out","z":"9d824ba9.ed18e8","name":"","serial":"27e624cd.6129cc","x":759,"y":203,"wires":[]},{"id":"59d13bcd.9ab714","type":"function","z":"9d824ba9.ed18e8","name":"X 軸前移1cm","func":"node.warn(\"debug:\" +msg.payload);\nmsg.payload =\"G00 X10 Y0 Z0\";\nreturn msg;","outputs":1,"noerr":0,"x":347,"y":95,"wires":[["e75dd5f1.90c718"]]},{"id":"55db3e6f.9ff34","type":"inject","z":"9d824ba9.ed18e8","name":"啟動 mini-farmbot","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":149,"y":91,"wires":[["59d13bcd.9ab714"]]},{"id":"8dcb4057.c2c9e","type":"function","z":"9d824ba9.ed18e8","name":"校準 X 軸","func":"node.warn(\"debug:\" +msg.payload);\nmsg.payload =\"F14\";\nreturn msg;","outputs":1,"noerr":0,"x":346,"y":144,"wires":[["fe74435.ed071c"]]},{"id":"fe74435.ed071c","type":"link out","z":"9d824ba9.ed18e8","name":"","links":["8eb50c66.5879f","e25e9cbe.10ee8"],"x":469.5,"y":143,"wires":[]},{"id":"8eb50c66.5879f","type":"link in","z":"9d824ba9.ed18e8","name":"","links":["fe74435.ed071c","e75dd5f1.90c718","ed577d0b.427b4","98616812.83f028","f9ea99cd.fde568","af081030.b84be","1e71a9f3.69bfb6","dfc136b0.afae08"],"x":617.5,"y":203,"wires":[["3b70d3a2.52acfc"]]},{"id":"e75dd5f1.90c718","type":"link out","z":"9d824ba9.ed18e8","name":"","links":["53a7199c.20ccf8","8eb50c66.5879f"],"x":470,"y":96,"wires":[]},{"id":"53a7199c.20ccf8","type":"link in","z":"9d824ba9.ed18e8","name":"","links":["e75dd5f1.90c718"],"x":66,"y":147,"wires":[["2574b143.e0737e"]]},{"id":"51f0194d.0c6758","type":"function","z":"9d824ba9.ed18e8","name":"Y 軸前移1cm","func":"node.warn(\"debug:\" +msg.payload);\nmsg.payload =\"G00 X0 Y10 Z0\";\nreturn msg;","outputs":1,"noerr":0,"x":357,"y":195,"wires":[["ed577d0b.427b4"]]},{"id":"ed577d0b.427b4","type":"link out","z":"9d824ba9.ed18e8","name":"","links":["5b7ac913.b29098","8eb50c66.5879f"],"x":475.5,"y":196,"wires":[]},{"id":"e25e9cbe.10ee8","type":"link in","z":"9d824ba9.ed18e8","name":"","links":["fe74435.ed071c"],"x":65,"y":196,"wires":[["652fba38.a01354"]]},{"id":"2574b143.e0737e","type":"delay","z":"9d824ba9.ed18e8","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":181,"y":146,"wires":[["8dcb4057.c2c9e"]]},{"id":"652fba38.a01354","type":"delay","z":"9d824ba9.ed18e8","name":"","pauseType":"delay","timeout":"20","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":183,"y":194,"wires":[["51f0194d.0c6758"]]},{"id":"4a9ccded.b33724","type":"function","z":"9d824ba9.ed18e8","name":"校準 Y 軸","func":"node.warn(\"debug:\" +msg.payload);\nmsg.payload =\"F15\";\nreturn msg;","outputs":1,"noerr":0,"x":341,"y":244,"wires":[["98616812.83f028"]]},{"id":"98616812.83f028","type":"link out","z":"9d824ba9.ed18e8","name":"","links":["685a39e2.90c168","8eb50c66.5879f"],"x":473.5,"y":245,"wires":[]},{"id":"5b7ac913.b29098","type":"link in","z":"9d824ba9.ed18e8","name":"","links":["ed577d0b.427b4"],"x":64,"y":247,"wires":[["e408924e.429d1"]]},{"id":"e408924e.429d1","type":"delay","z":"9d824ba9.ed18e8","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":176,"y":246,"wires":[["4a9ccded.b33724"]]},{"id":"614c6196.04aaa","type":"function","z":"9d824ba9.ed18e8","name":"Z 軸前移1cm","func":"node.warn(\"debug:\" +msg.payload);\nmsg.payload =\"G00 X0 Y0 Z10\";\nreturn msg;","outputs":1,"noerr":0,"x":347,"y":301,"wires":[["f9ea99cd.fde568"]]},{"id":"f9ea99cd.fde568","type":"link out","z":"9d824ba9.ed18e8","name":"","links":["2b898dc4.4be212","8eb50c66.5879f"],"x":470.5,"y":303,"wires":[]},{"id":"685a39e2.90c168","type":"link in","z":"9d824ba9.ed18e8","name":"","links":["98616812.83f028"],"x":63,"y":300,"wires":[["5c9c319a.fd16b"]]},{"id":"5c9c319a.fd16b","type":"delay","z":"9d824ba9.ed18e8","name":"","pauseType":"delay","timeout":"20","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":179,"y":302,"wires":[["614c6196.04aaa"]]},{"id":"653a4d17.68fc14","type":"function","z":"9d824ba9.ed18e8","name":"校準 Z 軸","func":"node.warn(\"debug:\" +msg.payload);\nmsg.payload =\"F16\";\nreturn msg;","outputs":1,"noerr":0,"x":342,"y":354,"wires":[["af081030.b84be"]]},{"id":"af081030.b84be","type":"link out","z":"9d824ba9.ed18e8","name":"","links":["6bb774c8.356aec","8eb50c66.5879f"],"x":468.5,"y":355,"wires":[]},{"id":"2b898dc4.4be212","type":"link in","z":"9d824ba9.ed18e8","name":"","links":["f9ea99cd.fde568"],"x":62,"y":354,"wires":[["b2cb9c6c.e1bc"]]},{"id":"b2cb9c6c.e1bc","type":"delay","z":"9d824ba9.ed18e8","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":177,"y":356,"wires":[["653a4d17.68fc14"]]},{"id":"1e71a9f3.69bfb6","type":"link out","z":"9d824ba9.ed18e8","name":"","links":["8d468ca.c58ca7","8eb50c66.5879f"],"x":471.5,"y":406,"wires":[]},{"id":"6bb774c8.356aec","type":"link in","z":"9d824ba9.ed18e8","name":"","links":["af081030.b84be"],"x":62,"y":403,"wires":[["8983f3f9.00a47"]]},{"id":"8983f3f9.00a47","type":"delay","z":"9d824ba9.ed18e8","name":"","pauseType":"delay","timeout":"20","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":185,"y":409,"wires":[["64b71eaa.213cc"]]},{"id":"64b71eaa.213cc","type":"function","z":"9d824ba9.ed18e8","name":"開燈","func":"node.warn(\"debug:\" +msg.payload);\nmsg.payload =\"F41 P10 V1\";\nreturn msg;","outputs":1,"noerr":0,"x":346,"y":407,"wires":[["1e71a9f3.69bfb6"]]},{"id":"dfc136b0.afae08","type":"link out","z":"9d824ba9.ed18e8","name":"","links":["8eb50c66.5879f"],"x":477,"y":456,"wires":[]},{"id":"8d468ca.c58ca7","type":"link in","z":"9d824ba9.ed18e8","name":"","links":["1e71a9f3.69bfb6"],"x":62.5,"y":454,"wires":[["92303bd.63498c8"]]},{"id":"92303bd.63498c8","type":"delay","z":"9d824ba9.ed18e8","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":190.5,"y":456,"wires":[["16b46e2f.6f56d2"]]},{"id":"16b46e2f.6f56d2","type":"function","z":"9d824ba9.ed18e8","name":"關燈","func":"node.warn(\"debug:\" +msg.payload);\nmsg.payload =\"F41 P10 V0\";\nreturn msg;","outputs":1,"noerr":0,"x":350.5,"y":455,"wires":[["dfc136b0.afae08"]]},{"id":"27e624cd.6129cc","type":"serial-port","z":"","serialport":"/dev/ttyACM0","serialbaud":"115200","databits":"8","parity":"none","stopbits":"1","waitfor":"","newline":"\\n\\r","bin":"false","out":"char","addchar":"\\n\\r","responsetimeout":"10000"}]
```

#### 範例3 :判斷 R00 status 的方式來執行多個farmbot command.
```
[{"id":"fdfcb32eade8112c","type":"debug","z":"08d183f7f2038af8","name":"debug message","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"{\t \"Second message\": msg.payload\t}","targetType":"jsonata","statusVal":"","statusType":"auto","x":800,"y":860,"wires":[]},{"id":"07231538ae1bdb52","type":"debug","z":"08d183f7f2038af8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":530,"y":940,"wires":[]},{"id":"5eb91ebcc5dc050a","type":"debug","z":"08d183f7f2038af8","name":"debug message","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"{\t \"3rd message\": msg.payload\t}","targetType":"jsonata","statusVal":"","statusType":"auto","x":500,"y":840,"wires":[]},{"id":"da371cf0fb58d823","type":"debug","z":"08d183f7f2038af8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":290,"y":920,"wires":[]},{"id":"e88e30b9f260aac6","type":"debug","z":"08d183f7f2038af8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":350,"y":1200,"wires":[]},{"id":"08d183f7f2038af8","type":"tab","label":"1209_farmbot_testflow","disabled":false,"info":""},{"id":"36da4bbb8aa411e1","type":"inject","z":"08d183f7f2038af8","name":"初始化","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":110,"y":800,"wires":[["1f5c68c31b9a8243"]]},{"id":"1f5c68c31b9a8243","type":"function","z":"08d183f7f2038af8","name":"Initialize","func":"//global.set(\"StartZero\", 0);\nglobal.set(\"seed\", 0);\n//global.set(\"water\", 0);\nglobal.set(\"NextProcess\", 0);\n//global.set(\"NextZeroProcess\", 0);\n//msg.payload = global.get(\"StartZero\");\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":300,"y":800,"wires":[["5eb91ebcc5dc050a"]]},{"id":"3e247d21381b085c","type":"function","z":"08d183f7f2038af8","name":"seed","func":"global.set(\"seed\", 1);\nglobal.set(\"NextProcess\", 1);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":290,"y":860,"wires":[["5eb91ebcc5dc050a"]]},{"id":"0e9fb739eb361c2e","type":"inject","z":"08d183f7f2038af8","name":"種植","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payloadType":"date","x":110,"y":860,"wires":[["3e247d21381b085c"]]},{"id":"08534d93e778e236","type":"function","z":"08d183f7f2038af8","name":"Command success: R00 Q0","func":"var a = msg.payload;\nif (a.match(\"R00 Q0\") && (global.get(\"NextProcess\") == 1)) {\n node.warn(\"seed:\" + global.get(\"seed\"));\n global.set(\"NextProcess\", 0);\n msg.payload = 1;\n return msg;\n}\n\n// No task or not finish\nmsg.payload = 0;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":300,"y":1000,"wires":[["f5f9206e3e0f6e66","07231538ae1bdb52"]]},{"id":"b27cc58b9999cca2","type":"serial in","z":"08d183f7f2038af8","name":"","serial":"7e7fae93.e55e7","x":90,"y":920,"wires":[["08534d93e778e236","da371cf0fb58d823"]]},{"id":"3afc81b74a88f692","type":"serial out","z":"08d183f7f2038af8","name":"","serial":"7e7fae93.e55e7","x":1050,"y":1040,"wires":[]},{"id":"6c0d1afbfd89b3a1","type":"switch","z":"08d183f7f2038af8","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"},{"t":"eq","v":"1","vt":"num"},{"t":"eq","v":"2","vt":"num"},{"t":"eq","v":"3","vt":"num"},{"t":"eq","v":"4","vt":"num"},{"t":"eq","v":"5","vt":"num"},{"t":"eq","v":"6","vt":"num"},{"t":"eq","v":"7","vt":"num"},{"t":"eq","v":"8","vt":"num"},{"t":"eq","v":"9","vt":"num"}],"checkall":"true","repair":false,"outputs":10,"x":530,"y":1100,"wires":[["fdfcb32eade8112c"],["f5bfb4f99a7097a8"],["49dbc2ce43bfd20c"],["19b011a208b70b4e"],["0eed84f8d4a2e084"],["45c1726a260eb609"],["92bbfe279760bea5"],["44b64dee86ee2fde"],["21ce7152a4fcd4fb"],["43d495ca0ee79f14"]]},{"id":"ea39bc4ccf2f4b2b","type":"function","z":"08d183f7f2038af8","name":"Seed Process","func":"msg.payload = global.get(\"seed\");\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":320,"y":1120,"wires":[["6c0d1afbfd89b3a1","e88e30b9f260aac6"]]},{"id":"49dbc2ce43bfd20c","type":"function","z":"08d183f7f2038af8","name":"G code 2","func":"//if (global.get(\"NextProcess\") == 1) {\n node.warn(\"G00 X100 Y253 Z124:\" +msg.payload); \n// msg.payload = \"G00 X100 Y253 Z124\";\n msg.payload = \"G00 X50 Y0 Z0\"; \n global.set(\"NextProcess\", 1);\n global.set(\"seed\", global.get(\"seed\")+1);\n//}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":760,"y":960,"wires":[["3afc81b74a88f692"]]},{"id":"92bbfe279760bea5","type":"function","z":"08d183f7f2038af8","name":"G code 6","func":"//if (global.get(\"NextProcess\") == 1) {\n node.warn(\"F41 P10 V1:\" +msg.payload);\n msg.payload = \"F41 P10 V1\";\n global.set(\"NextProcess\", 1);\n global.set(\"seed\", global.get(\"seed\")+1);\n//}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":760,"y":1120,"wires":[["3afc81b74a88f692"]]},{"id":"43d495ca0ee79f14","type":"function","z":"08d183f7f2038af8","name":"G code 9","func":"//if (global.get(\"NextProcess\") == 1) {\n node.warn(\"F41 P10 V0:\" +msg.payload);\n msg.payload = \"F41 P10 V0\";\n global.set(\"NextProcess\", 1);\n global.set(\"seed\", global.get(\"seed\")+1);\n//}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":760,"y":1240,"wires":[["3afc81b74a88f692"]]},{"id":"19b011a208b70b4e","type":"function","z":"08d183f7f2038af8","name":"G code 3","func":"//if (global.get(\"NextProcess\") == 1) {\n node.warn(\"G00 X100 Y253 Z0:\" +msg.payload);\n// msg.payload = \"G00 X100 Y253 Z0\"; \n msg.payload = \"G00 X70 Y0 Z0\"; \n global.set(\"NextProcess\", 1);\n global.set(\"seed\", global.get(\"seed\")+1);\n//}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":760,"y":1000,"wires":[["3afc81b74a88f692"]]},{"id":"f5bfb4f99a7097a8","type":"function","z":"08d183f7f2038af8","name":"G code 1","func":"//if (global.get(\"NextProcess\") == 1) {\n node.warn(\"G00 X30 Y253 Z124:\" + msg.payload);\n// msg.payload = \"G00 X30 Y253 Z124\"; \n msg.payload = \"G00 X30 Y0 Z0\"; \n global.set(\"seed\", global.get(\"seed\")+1);\n global.set(\"NextProcess\", 1);\n//}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":760,"y":920,"wires":[["3afc81b74a88f692"]]},{"id":"0eed84f8d4a2e084","type":"function","z":"08d183f7f2038af8","name":"G code 4","func":"//if (global.get(\"NextProcess\") == 1) {\n node.warn(\"G00 X15 Y185 Z0:\" +msg.payload);\n// msg.payload = \"G00 X15 Y185 Z0\";\n msg.payload = \"G00 X150 Y0 Z0\"; \n global.set(\"NextProcess\", 1);\n global.set(\"seed\", global.get(\"seed\")+1);\n//}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":760,"y":1040,"wires":[["3afc81b74a88f692"]]},{"id":"45c1726a260eb609","type":"function","z":"08d183f7f2038af8","name":"G code 5","func":"//if (global.get(\"NextProcess\") == 1) {\n node.warn(\"G00 X15 Y185 Z90:\" +msg.payload);\n// msg.payload = \"G00 X15 Y185 Z90\";\n msg.payload = \"G00 X100 Y0 Z0\"; \n global.set(\"NextProcess\", 1);\n global.set(\"seed\", global.get(\"seed\")+1);\n//}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":763.0000915527344,"y":1082.0000863075256,"wires":[["3afc81b74a88f692"]]},{"id":"44b64dee86ee2fde","type":"function","z":"08d183f7f2038af8","name":"G code 7","func":"//if (global.get(\"NextProcess\") == 1) {\n node.warn(\"G00 X15 Y185 Z40:\" +msg.payload);\n// msg.payload = \"G00 X15 Y185 Z40\";\n msg.payload = \"G00 X200 Y0 Z0\"; \n global.set(\"NextProcess\", 1);\n global.set(\"seed\", global.get(\"seed\")+1);\n//}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":760,"y":1160,"wires":[["3afc81b74a88f692"]]},{"id":"21ce7152a4fcd4fb","type":"function","z":"08d183f7f2038af8","name":"G code 8","func":"//if (global.get(\"NextProcess\") == 1) {\n node.warn(\"G00 X200 Y43 Z130:\" +msg.payload);\n// msg.payload = \"G00 X200 Y43 Z130\"\n msg.payload = \"G00 X0 Y0 Z0\"; \n global.set(\"NextProcess\", 1);\n global.set(\"seed\", global.get(\"seed\")+1);\n//}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":760,"y":1200,"wires":[["3afc81b74a88f692"]]},{"id":"f5f9206e3e0f6e66","type":"switch","z":"08d183f7f2038af8","name":"Check Nexit task","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"},{"t":"eq","v":"1","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":310,"y":1060,"wires":[["07231538ae1bdb52"],["ea39bc4ccf2f4b2b"]]},{"id":"7e7fae93.e55e7","type":"serial-port","serialport":"COM5","serialbaud":"115200","databits":"8","parity":"none","stopbits":"1","waitfor":"","dtr":"none","rts":"none","cts":"none","dsr":"none","newline":"\\n\\r","bin":"false","out":"char","addchar":"\\n\\r","responsetimeout":"10000"}]
```
