-
Notifications
You must be signed in to change notification settings - Fork 2
03. Node RED dashboard
Integration with Node-RED solution using a Raspberry PI Zero W showing RazorBoard status on phone, computer and tablet. You can decide to connect only via the local network or via internet. Follow the instructions and the security tips described within Node-RED guidelines, linked further down.
The dashboard can be configured to fit to your needs and screen size. For the moment there are 3 pages.
- Status - showing the most interesting data
- Terminal - showing raw debug data from the RazorBoard. You can text whatever message in the text input dialog to get the information you are in need of.
-
Software Update - Initiate software update by first adding the
Razorboard.bin
file to the Raspberry PI location /home/pi. Make sure you have installed the stm32flash application on the Raspberry PI - see Guideline
NOTE: The dashboard is optimized for iPhone XR screen size
Follow this guideline how to install Node-RED on Raspberry PI - https://nodered.org/docs/getting-started/raspberrypi
Once the Node-RED application is up and running you need to install the following nodes via the Manage Palette
Import the flows using this guideline importing Flows
[ { "id": "bf90aa45f96e1b46", "type": "tab", "label": "Main", "disabled": false, "info": "" }, { "id": "442c1b4650fae238", "type": "tab", "label": "CSS - Styling", "disabled": false, "info": "" }, { "id": "8d33297f4dead0db", "type": "tab", "label": "Install software", "disabled": false, "info": "" }, { "id": "80de1f19074252c9", "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", "bin": "false", "out": "char", "addchar": "\\r\\n", "responsetimeout": "10000" }, { "id": "2c2f7ae0e7616174", "type": "ui_base", "theme": { "name": "theme-dark", "lightTheme": { "default": "#0094CE", "baseColor": "#0094CE", "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif", "edited": true, "reset": false }, "darkTheme": { "default": "#097479", "baseColor": "#097479", "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif", "edited": true, "reset": false }, "customTheme": { "name": "Untitled Theme 1", "default": "#4B7930", "baseColor": "#4B7930", "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif", "reset": false }, "themeState": { "base-color": { "default": "#097479", "value": "#097479", "edited": false }, "page-titlebar-backgroundColor": { "value": "#097479", "edited": false }, "page-backgroundColor": { "value": "#111111", "edited": false }, "page-sidebar-backgroundColor": { "value": "#333333", "edited": false }, "group-textColor": { "value": "#0eb8c0", "edited": false }, "group-borderColor": { "value": "#555555", "edited": false }, "group-backgroundColor": { "value": "#333333", "edited": false }, "widget-textColor": { "value": "#eeeeee", "edited": false }, "widget-backgroundColor": { "value": "#097479", "edited": false }, "widget-borderColor": { "value": "#333333", "edited": false }, "base-font": { "value": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif" } }, "angularTheme": { "primary": "indigo", "accents": "blue", "warn": "red", "background": "grey", "palette": "light" } }, "site": { "name": "Node-RED Dashboard", "hideToolbar": "false", "allowSwipe": "false", "lockMenu": "false", "allowTempTheme": "true", "dateFormat": "DD/MM/YYYY", "sizes": { "sx": 20, "sy": 20, "gx": 6, "gy": 6, "cx": 4, "cy": 4, "px": 0, "py": 0 } } }, { "id": "f6e1dfe98f6517f4", "type": "ui_tab", "name": "RazorBoard", "icon": "dashboard", "order": 1, "disabled": false, "hidden": false }, { "id": "a25ccbeea0e373a9", "type": "ui_group", "name": "Power", "tab": "f6e1dfe98f6517f4", "order": 3, "disp": true, "width": 17, "collapse": false }, { "id": "bebcfcfc845958ca", "type": "ui_group", "name": "Status", "tab": "f6e1dfe98f6517f4", "order": 2, "disp": true, "width": 17, "collapse": false }, { "id": "898d05667b8470a6", "type": "ui_group", "name": "BWF Sensors", "tab": "f6e1dfe98f6517f4", "order": 4, "disp": true, "width": 17, "collapse": false }, { "id": "1ebe6305.3aa6ad", "type": "ui_group", "name": "Terminal Window", "tab": "2d3c18ea.7ea3d8", "order": 1, "disp": true, "width": 17, "collapse": false }, { "id": "2d3c18ea.7ea3d8", "type": "ui_tab", "name": "Terminal", "icon": "dashboard", "disabled": false, "hidden": false }, { "id": "5e7fb4efbdba2f67", "type": "ui_group", "name": "Input", "tab": "2d3c18ea.7ea3d8", "order": 2, "disp": true, "width": 17, "collapse": false }, { "id": "d9865ddfecb5ab0b", "type": "ui_group", "name": "Button", "tab": "f6e1dfe98f6517f4", "order": 1, "disp": false, "width": 17, "collapse": false }, { "id": "a7c92e12b1b2ded6", "type": "ui_group", "name": "Charging", "tab": "f6e1dfe98f6517f4", "order": 5, "disp": true, "width": 17, "collapse": false }, { "id": "356e0d229cfde300", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "d9865ddfecb5ab0b", "order": 1, "width": 17, "height": 1 }, { "id": "35354072b0d3b2e5", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "d9865ddfecb5ab0b", "order": 2, "width": 2, "height": 1 }, { "id": "0742b650083cb2ff", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "d9865ddfecb5ab0b", "order": 4, "width": 2, "height": 1 }, { "id": "7a67b75cb522bfbf", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "d9865ddfecb5ab0b", "order": 5, "width": 2, "height": 1 }, { "id": "de33e52b65fa31cc", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "d9865ddfecb5ab0b", "order": 6, "width": 2, "height": 1 }, { "id": "cafcb61a5d010804", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "d9865ddfecb5ab0b", "order": 7, "width": 2, "height": 1 }, { "id": "2a1098c3a3ba5b1d", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "d9865ddfecb5ab0b", "order": 10, "width": 2, "height": 1 }, { "id": "8545f50cbd6cff71", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "d9865ddfecb5ab0b", "order": 11, "width": 2, "height": 1 }, { "id": "b1b9535cae5a4a44", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "d9865ddfecb5ab0b", "order": 12, "width": "17", "height": "1" }, { "id": "5c5c0607129cc3d9", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "bebcfcfc845958ca", "order": 3, "width": 1, "height": 1 }, { "id": "89da13a7ce3eb957", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "bebcfcfc845958ca", "order": 4, "width": 1, "height": 1 }, { "id": "1848b17ba2396acc", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "bebcfcfc845958ca", "order": 7, "width": 1, "height": 1 }, { "id": "45bdf365eeabc587", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "bebcfcfc845958ca", "order": 8, "width": 1, "height": 1 }, { "id": "8a12bef7f220f64e", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "bebcfcfc845958ca", "order": 9, "width": 17, "height": 1 }, { "id": "e60e8982b767f262", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "a25ccbeea0e373a9", "order": 3, "width": 1, "height": 1 }, { "id": "aecad01852cae06b", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "a25ccbeea0e373a9", "order": 5, "width": 1, "height": 1 }, { "id": "51475a30b1dc8ba8", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "a25ccbeea0e373a9", "order": 7, "width": "17", "height": 1 }, { "id": "ca83ba37ac213877", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "898d05667b8470a6", "order": 12, "width": "17", "height": 1 }, { "id": "877e3a8b0eb20ea6", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "a7c92e12b1b2ded6", "order": 3, "width": "17", "height": 1 }, { "id": "83731c60f4cd4770", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "5e7fb4efbdba2f67", "order": 2, "width": 17, "height": 1 }, { "id": "d1cbacaf15c4f445", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "5e7fb4efbdba2f67", "order": 3, "width": 1, "height": 1 }, { "id": "2c092854f2a883f8", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "5e7fb4efbdba2f67", "order": 7, "width": 1, "height": 1 }, { "id": "bd3f9758f5c9b7af", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "5e7fb4efbdba2f67", "order": 8, "width": 1, "height": 1 }, { "id": "d796ac36fd596c6c", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "5e7fb4efbdba2f67", "order": 9, "width": 1, "height": 1 }, { "id": "87a4f3b0586b8980", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "5e7fb4efbdba2f67", "order": 10, "width": 1, "height": 1 }, { "id": "b3f40824495ccd06", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "5e7fb4efbdba2f67", "order": 13, "width": 6, "height": 1 }, { "id": "0e22b704269e13bf", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "5e7fb4efbdba2f67", "order": 14, "width": 1, "height": 1 }, { "id": "410362f793607562", "type": "ui_spacer", "z": "bf90aa45f96e1b46", "name": "spacer", "group": "5e7fb4efbdba2f67", "order": 15, "width": "17", "height": 1 }, { "id": "06a1ecbb73a7050d", "type": "ui_tab", "name": "Software Update", "icon": "dashboard", "order": 3, "disabled": false, "hidden": false }, { "id": "260b157af120119d", "type": "ui_group", "name": "Sofware Update", "tab": "06a1ecbb73a7050d", "order": 1, "disp": true, "width": "16", "collapse": false }, { "id": "be9864f3cdae29c3", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 1, "width": 1, "height": 1 }, { "id": "4027849ba0be5173", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 3, "width": 1, "height": 1 }, { "id": "05786f68a3088b0e", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 4, "width": 1, "height": 1 }, { "id": "0b154a18af848e63", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 5, "width": 1, "height": 1 }, { "id": "572e150111114a27", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 6, "width": 1, "height": 1 }, { "id": "8f8f774cdd711dc1", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 7, "width": 1, "height": 1 }, { "id": "631e1ed70849cd19", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 8, "width": 1, "height": 1 }, { "id": "98831a7ed70f199e", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 9, "width": 1, "height": 1 }, { "id": "c1a8e01129b37601", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 10, "width": 1, "height": 1 }, { "id": "6ffdd34281ca9f83", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 11, "width": 1, "height": 1 }, { "id": "16e72e60b525b07d", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 12, "width": 1, "height": 1 }, { "id": "d558126a7829cab4", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 13, "width": 1, "height": 1 }, { "id": "3a2ba8ec7404e95f", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 14, "width": 1, "height": 1 }, { "id": "216a2255ca0c1b22", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 15, "width": 1, "height": 1 }, { "id": "a5612671c5888743", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 16, "width": 2, "height": 1 }, { "id": "dcc935f0e083bac9", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 18, "width": 2, "height": 1 }, { "id": "4d792ef0319df6ea", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 19, "width": 2, "height": 1 }, { "id": "830e413da4e70fbd", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 20, "width": 2, "height": 1 }, { "id": "f0e2f874a12120b9", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 21, "width": 2, "height": 1 }, { "id": "a1c0bc07ea4117c9", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 22, "width": 2, "height": 1 }, { "id": "6bace00b5dea3f33", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 23, "width": 2, "height": 1 }, { "id": "b83c987420543d66", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 24, "width": 2, "height": 1 }, { "id": "b5bd69b35f94e6f8", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 25, "width": 2, "height": 1 }, { "id": "c9ea40b89c3b46fb", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 27, "width": 2, "height": 1 }, { "id": "1abb341f0cffddbc", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 28, "width": 2, "height": 1 }, { "id": "f0c4e2c2692f48c7", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 29, "width": 2, "height": 1 }, { "id": "8bef320bd17daa8d", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 30, "width": 2, "height": 1 }, { "id": "e9e25dc4984b7e22", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 31, "width": 2, "height": 1 }, { "id": "d0e4014dc53d4862", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 32, "width": 2, "height": 1 }, { "id": "7e197e6be8316769", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 33, "width": 2, "height": 1 }, { "id": "ba66cf1d29a534be", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 34, "width": 2, "height": 1 }, { "id": "86435028cca0c4da", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 35, "width": 2, "height": 1 }, { "id": "08cfd0402ccdfe0e", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 36, "width": 2, "height": 1 }, { "id": "ecb3daf6d0ba3dd1", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 37, "width": 2, "height": 1 }, { "id": "f77ecf5d24debbcc", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 38, "width": 2, "height": 1 }, { "id": "75eae89174e1507b", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 39, "width": 2, "height": 1 }, { "id": "d15a44f6859a4596", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 40, "width": 2, "height": 1 }, { "id": "1ab88db2d0e0f428", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 41, "width": 2, "height": 1 }, { "id": "a961d40d4b836b7c", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 42, "width": 2, "height": 1 }, { "id": "bb6a78f94ab40fc8", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 43, "width": 2, "height": 1 }, { "id": "ee4a20e3806c49a6", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 44, "width": 2, "height": 1 }, { "id": "5ac8aa991f20e6eb", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 45, "width": 2, "height": 1 }, { "id": "6207b08e1ada6226", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 46, "width": 1, "height": 1 }, { "id": "9d24752c1afac144", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 48, "width": 1, "height": 1 }, { "id": "90da85684baf2ff8", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 49, "width": 1, "height": 1 }, { "id": "fec950fcd1e7852d", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 50, "width": 1, "height": 1 }, { "id": "c69261d087efa8ee", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 51, "width": 1, "height": 1 }, { "id": "93ec448d1e919643", "type": "ui_spacer", "z": "8d33297f4dead0db", "name": "spacer", "group": "260b157af120119d", "order": 52, "width": 1, "height": 1 }, { "id": "d3397369b6db58e7", "type": "serial in", "z": "bf90aa45f96e1b46", "name": "RazorBoard_IN", "serial": "80de1f19074252c9", "x": 120, "y": 400, "wires": [ [ "a63737a3096bef04", "a32913e9a6454574" ] ] }, { "id": "230429cd5e4165a0", "type": "serial out", "z": "bf90aa45f96e1b46", "name": "RazorBoard_OUT", "serial": "80de1f19074252c9", "x": 930, "y": 1480, "wires": [] }, { "id": "c687c2bdc61ad368", "type": "inject", "z": "bf90aa45f96e1b46", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": true, "onceDelay": "1", "topic": "", "payload": "debug on", "payloadType": "str", "x": 400, "y": 1280, "wires": [ [ "230429cd5e4165a0" ] ] }, { "id": "a63737a3096bef04", "type": "switch", "z": "bf90aa45f96e1b46", "name": "", "property": "payload", "propertyType": "msg", "rules": [ { "t": "cont", "v": "V1:", "vt": "str" }, { "t": "cont", "v": "M1:", "vt": "str" }, { "t": "cont", "v": "M2:", "vt": "str" }, { "t": "cont", "v": "C1:", "vt": "str" }, { "t": "cont", "v": "IN->", "vt": "str" }, { "t": "cont", "v": "OUT->", "vt": "str" }, { "t": "cont", "v": "Movement:", "vt": "str" }, { "t": "cont", "v": "Movement Verdict:", "vt": "str" }, { "t": "cont", "v": "Magnitude", "vt": "str" }, { "t": "cont", "v": "SECURITY", "vt": "str" }, { "t": "cont", "v": "STATE", "vt": "str" }, { "t": "cont", "v": "Board_Revision:", "vt": "str" }, { "t": "cont", "v": "Charger Connected:", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 13, "x": 350, "y": 400, "wires": [ [ "be2b1b5830313490" ], [ "4ed8f726133a9dcf" ], [ "1f1f5009d73316e1" ], [ "d9169e68e6e42203" ], [ "8bbc34ed1f76984f" ], [ "ee3684ed090a23f3" ], [ "62814b979c2061f1" ], [ "7d8eba81ccfce406" ], [ "df44cda06d9daf62" ], [ "2c474f89cee1c5ca" ], [], [], [ "8cd36d435583d892" ] ] }, { "id": "27b481bd2af07909", "type": "comment", "z": "bf90aa45f96e1b46", "name": "send \"debug on\" once at start-up", "info": "", "x": 450, "y": 1240, "wires": [] }, { "id": "3e8510a24430c14e", "type": "ui_text", "z": "bf90aa45f96e1b46", "group": "bebcfcfc845958ca", "order": 5, "width": 8, "height": 2, "name": "Movement", "label": "Movement", "format": "{{msg.payload}}", "layout": "col-center", "x": 1570, "y": 580, "wires": [] }, { "id": "dde8251d0d10e293", "type": "ui_text", "z": "bf90aa45f96e1b46", "group": "a25ccbeea0e373a9", "order": 6, "width": 5, "height": 1, "name": "Battery Voltage", "label": "Voltage", "format": "{{msg.payload}}", "layout": "row-spread", "x": 1580, "y": 40, "wires": [] }, { "id": "62814b979c2061f1", "type": "change", "z": "bf90aa45f96e1b46", "name": "Change string", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "Movement: ", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 560, "y": 580, "wires": [ [ "8ae65ab7a35dc621" ] ] }, { "id": "8ae65ab7a35dc621", "type": "function", "z": "bf90aa45f96e1b46", "name": "Convert to number", "func": "msg.payload = Number(msg.payload);\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 790, "y": 580, "wires": [ [ "3e8510a24430c14e" ] ] }, { "id": "be2b1b5830313490", "type": "change", "z": "bf90aa45f96e1b46", "name": "Change string", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "V1: ", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 560, "y": 40, "wires": [ [ "720f31dbb37a8749" ] ] }, { "id": "720f31dbb37a8749", "type": "function", "z": "bf90aa45f96e1b46", "name": "Convert to number", "func": "msg.payload = Number(msg.payload);\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 790, "y": 40, "wires": [ [ "dde8251d0d10e293" ] ] }, { "id": "1024424e3e8cc319", "type": "ui_text", "z": "bf90aa45f96e1b46", "group": "a25ccbeea0e373a9", "order": 1, "width": 5, "height": 1, "name": "Left motor power (M1)", "label": "Left", "format": "{{msg.payload}}", "layout": "row-spread", "x": 1600, "y": 100, "wires": [] }, { "id": "4ed8f726133a9dcf", "type": "change", "z": "bf90aa45f96e1b46", "name": "Change string", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "M1: ", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 560, "y": 100, "wires": [ [ "20868ac91524e96a" ] ] }, { "id": "20868ac91524e96a", "type": "function", "z": "bf90aa45f96e1b46", "name": "Convert to number", "func": "msg.payload = Number(msg.payload);\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 790, "y": 100, "wires": [ [ "1024424e3e8cc319" ] ] }, { "id": "7e7e50f53d897812", "type": "ui_text", "z": "bf90aa45f96e1b46", "group": "a25ccbeea0e373a9", "order": 2, "width": 5, "height": 1, "name": "Right motor power (M2)", "label": "Right", "format": "{{msg.payload}}", "layout": "row-spread", "x": 1610, "y": 160, "wires": [] }, { "id": "1f1f5009d73316e1", "type": "change", "z": "bf90aa45f96e1b46", "name": "Change string", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "M2: ", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 560, "y": 160, "wires": [ [ "4f5e35ff6910d09c" ] ] }, { "id": "4f5e35ff6910d09c", "type": "function", "z": "bf90aa45f96e1b46", "name": "Convert to number", "func": "msg.payload = Number(msg.payload);\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 790, "y": 160, "wires": [ [ "7e7e50f53d897812" ] ] }, { "id": "97aa8bc5f9288310", "type": "ui_text", "z": "bf90aa45f96e1b46", "group": "a25ccbeea0e373a9", "order": 4, "width": 5, "height": 1, "name": "Cutter motor power (C1)", "label": "Cutter", "format": "{{msg.payload}}", "layout": "row-spread", "x": 1610, "y": 220, "wires": [] }, { "id": "d9169e68e6e42203", "type": "change", "z": "bf90aa45f96e1b46", "name": "Change string", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "C1: ", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 560, "y": 220, "wires": [ [ "7ff78dd005efdbf1" ] ] }, { "id": "7ff78dd005efdbf1", "type": "function", "z": "bf90aa45f96e1b46", "name": "Convert to number", "func": "msg.payload = Number(msg.payload);\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 790, "y": 220, "wires": [ [ "97aa8bc5f9288310" ] ] }, { "id": "8bbc34ed1f76984f", "type": "change", "z": "bf90aa45f96e1b46", "name": "Change string", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "IN-> ", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 560, "y": 320, "wires": [ [ "45fe6677ec7f7df1" ] ] }, { "id": "45fe6677ec7f7df1", "type": "split", "z": "bf90aa45f96e1b46", "name": "Split string", "splt": " BWF", "spltType": "str", "arraySplt": "1", "arraySpltType": "len", "stream": false, "addname": "", "x": 770, "y": 320, "wires": [ [ "41b6e1b886d16cdd" ] ] }, { "id": "975ea060ea216eda", "type": "ui_text", "z": "bf90aa45f96e1b46", "group": "bebcfcfc845958ca", "order": 1, "width": 8, "height": 2, "name": "Security", "label": "Security", "format": "{{msg.payload}} ", "layout": "col-center", "x": 1560, "y": 800, "wires": [] }, { "id": "15996655333558fa", "type": "ui_text", "z": "bf90aa45f96e1b46", "group": "bebcfcfc845958ca", "order": 2, "width": 8, "height": 2, "name": "State", "label": "State", "format": "{{msg.payload}}", "layout": "col-center", "x": 1550, "y": 840, "wires": [] }, { "id": "cfaf5ac6d7d499b7", "type": "change", "z": "bf90aa45f96e1b46", "name": "Change string", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "SECURITY_", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 840, "y": 800, "wires": [ [ "975ea060ea216eda" ] ] }, { "id": "8cd36d435583d892", "type": "change", "z": "bf90aa45f96e1b46", "name": "Change string", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "Charger Connected: ", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 560, "y": 900, "wires": [ [ "3cd2f91ef2197f1b" ] ] }, { "id": "3cd2f91ef2197f1b", "type": "function", "z": "bf90aa45f96e1b46", "name": "Convert to number", "func": "msg.payload = Number(msg.payload);\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 790, "y": 900, "wires": [ [ "cf20f37c350a10d4" ] ] }, { "id": "2c474f89cee1c5ca", "type": "split", "z": "bf90aa45f96e1b46", "name": "", "splt": ",", "spltType": "str", "arraySplt": "1", "arraySpltType": "len", "stream": false, "addname": "", "x": 530, "y": 820, "wires": [ [ "b9f19d08a08f6ebd" ] ] }, { "id": "b9f19d08a08f6ebd", "type": "switch", "z": "bf90aa45f96e1b46", "name": "", "property": "parts.index", "propertyType": "msg", "rules": [ { "t": "eq", "v": "0", "vt": "num" }, { "t": "eq", "v": "1", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 670, "y": 820, "wires": [ [ "cfaf5ac6d7d499b7" ], [ "8206307171ebc13b" ] ] }, { "id": "8206307171ebc13b", "type": "change", "z": "bf90aa45f96e1b46", "name": "Change string", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "STATE_", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 840, "y": 840, "wires": [ [ "15996655333558fa" ] ] }, { "id": "1a6205f430e07065", "type": "split", "z": "bf90aa45f96e1b46", "name": "", "splt": "BWF2: ", "spltType": "str", "arraySplt": "1", "arraySpltType": "len", "stream": false, "addname": "", "x": 750, "y": 720, "wires": [ [ "b946b706933928b5" ] ] }, { "id": "321465529d1edcc4", "type": "ui_text", "z": "bf90aa45f96e1b46", "group": "898d05667b8470a6", "order": 8, "width": 5, "height": 1, "name": "Magnitude BWF2", "label": "Mag", "format": "{{msg.payload}}", "layout": "row-spread", "x": 1590, "y": 740, "wires": [] }, { "id": "b894177608bf3546", "type": "ui_text", "z": "bf90aa45f96e1b46", "group": "898d05667b8470a6", "order": 4, "width": 5, "height": 1, "name": "Magnitude BWF1", "label": "Mag", "format": "{{msg.payload}}", "layout": "row-spread", "x": 1590, "y": 700, "wires": [] }, { "id": "b946b706933928b5", "type": "switch", "z": "bf90aa45f96e1b46", "name": "", "property": "parts.index", "propertyType": "msg", "rules": [ { "t": "eq", "v": "0", "vt": "num" }, { "t": "eq", "v": "1", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 870, "y": 720, "wires": [ [ "49a6d8ef021e7657" ], [ "8c40622d1db5498f" ] ] }, { "id": "8c40622d1db5498f", "type": "function", "z": "bf90aa45f96e1b46", "name": "Convert to number", "func": "msg.payload = Number(msg.payload);\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1050, "y": 740, "wires": [ [ "321465529d1edcc4" ] ] }, { "id": "49a6d8ef021e7657", "type": "change", "z": "bf90aa45f96e1b46", "name": "Change string", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "BWF1: ", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1040, "y": 700, "wires": [ [ "55966d2eff0d82d9" ] ] }, { "id": "55966d2eff0d82d9", "type": "function", "z": "bf90aa45f96e1b46", "name": "Convert to number", "func": "msg.payload = Number(msg.payload);\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1250, "y": 700, "wires": [ [ "b894177608bf3546" ] ] }, { "id": "df44cda06d9daf62", "type": "change", "z": "bf90aa45f96e1b46", "name": "Change string", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "Magnitude ->", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 560, "y": 720, "wires": [ [ "1a6205f430e07065" ] ] }, { "id": "41b6e1b886d16cdd", "type": "switch", "z": "bf90aa45f96e1b46", "name": "", "property": "parts.index", "propertyType": "msg", "rules": [ { "t": "eq", "v": "0", "vt": "num" }, { "t": "eq", "v": "1", "vt": "str" }, { "t": "eq", "v": "2", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 3, "x": 950, "y": 320, "wires": [ [ "e2e9dfa0593e50ad" ], [ "e6c41536402be0f3" ], [ "399378e66b93fc0b" ] ] }, { "id": "e2e9dfa0593e50ad", "type": "change", "z": "bf90aa45f96e1b46", "name": "Change string", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "BWF1: ", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1140, "y": 280, "wires": [ [ "3c739d670c6ff936" ] ] }, { "id": "e6c41536402be0f3", "type": "change", "z": "bf90aa45f96e1b46", "name": "Change string", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "2: ", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1140, "y": 320, "wires": [ [ "3779a76632a1b854" ] ] }, { "id": "399378e66b93fc0b", "type": "change", "z": "bf90aa45f96e1b46", "name": "Change string", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "3: ", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1140, "y": 360, "wires": [ [ "e6869f840ab0b451" ] ] }, { "id": "3c739d670c6ff936", "type": "function", "z": "bf90aa45f96e1b46", "name": "Convert to number", "func": "msg.payload = Number(msg.payload);\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1350, "y": 280, "wires": [ [ "f17046e4d66d2a50" ] ] }, { "id": "3779a76632a1b854", "type": "function", "z": "bf90aa45f96e1b46", "name": "Convert to number", "func": "msg.payload = Number(msg.payload);\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1350, "y": 320, "wires": [ [ "137c57d8a02e3c20" ] ] }, { "id": "e6869f840ab0b451", "type": "function", "z": "bf90aa45f96e1b46", "name": "Convert to number", "func": "msg.payload = Number(msg.payload);\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1350, "y": 360, "wires": [ [ "6a07395c58448ef9" ] ] }, { "id": "f17046e4d66d2a50", "type": "ui_text", "z": "bf90aa45f96e1b46", "group": "898d05667b8470a6", "order": 2, "width": 4, "height": 1, "name": "BWF1 - IN", "label": "IN", "format": "{{msg.payload}}", "layout": "row-spread", "x": 1570, "y": 280, "wires": [] }, { "id": "137c57d8a02e3c20", "type": "ui_text", "z": "bf90aa45f96e1b46", "group": "898d05667b8470a6", "order": 6, "width": 4, "height": 1, "name": "BWF2 - IN", "label": "IN", "format": "{{msg.payload}}", "layout": "row-spread", "x": 1570, "y": 320, "wires": [] }, { "id": "6a07395c58448ef9", "type": "ui_text", "z": "bf90aa45f96e1b46", "group": "898d05667b8470a6", "order": 10, "width": 4, "height": 1, "name": "BWF3 - IN", "label": "IN", "format": "{{msg.payload}}", "layout": "row-spread", "x": 1570, "y": 360, "wires": [] }, { "id": "c72b2d64a57b9211", "type": "ui_template", "z": "bf90aa45f96e1b46", "group": "1ebe6305.3aa6ad", "name": "SVG based template", "order": 1, "width": 17, "height": 21, "format": "<style>\n\n #tex1 {\n font-weight:normal;\n font-size: small;\n letter-spacing: 1px;\n fill: white;\n }\n \n</style>\n\n\n<svg height=\"800\" width=\"400\" > <text id=\"tex1\" ng-repeat=\"line in msg.payload track by $index\" x=\"10\" ng:attr:y=\"{{($index * 15)+15}}\" > {{line}} </text> </svg>\n\n\n\n", "storeOutMessages": false, "fwdInMessages": false, "resendOnRefresh": false, "templateScope": "local", "x": 780, "y": 1120, "wires": [ [] ] }, { "id": "8d9455234d534530", "type": "function", "z": "bf90aa45f96e1b46", "name": "Create table in context", "func": "let sctab = [];\nflow.set(\"sctab\", sctab);\nreturn msg;", "outputs": "1", "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 560, "y": 1060, "wires": [ [] ] }, { "id": "363995fa91951f58", "type": "inject", "z": "bf90aa45f96e1b46", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": true, "onceDelay": "5", "topic": "", "payload": "Start", "payloadType": "str", "x": 390, "y": 1060, "wires": [ [ "8d9455234d534530" ] ] }, { "id": "a32913e9a6454574", "type": "function", "z": "bf90aa45f96e1b46", "name": "Add word to scrolling table", "func": "let pay = msg.payload;\n\n// Read scrolling table from context\nlet sctab = flow.get(\"sctab\");\n\n// Modify scrolling table by adding msg.payload as first element\nlet size = sctab.unshift(pay);\n\n// Remove last element from scrolling table\nif (size > 30) sctab.pop();\n\n// Update context for scrolling text\nflow.set(\"sctab\",sctab);\n\n// Shalow copy updated scrolling table to msg.payload\nmsg.payload = [...sctab];\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 440, "y": 1120, "wires": [ [ "c72b2d64a57b9211" ] ] }, { "id": "3a90cbc55e0c0d9d", "type": "ui_text", "z": "bf90aa45f96e1b46", "group": "bebcfcfc845958ca", "order": 6, "width": 8, "height": 2, "name": "Movement Verdict", "label": "Verdict", "format": "{{msg.payload}}", "layout": "col-center", "x": 1590, "y": 640, "wires": [] }, { "id": "7d8eba81ccfce406", "type": "change", "z": "bf90aa45f96e1b46", "name": "Change string", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "Movement Verdict: ", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 560, "y": 640, "wires": [ [ "3a90cbc55e0c0d9d" ] ] }, { "id": "d8fc5c7a1204f4ea", "type": "ui_text", "z": "bf90aa45f96e1b46", "group": "898d05667b8470a6", "order": 1, "width": 3, "height": 1, "name": "BWF1", "label": "BWF1", "format": "{{msg.payload}}", "layout": "row-spread", "x": 1730, "y": 280, "wires": [] }, { "id": "6867ecbeb16dace1", "type": "ui_text", "z": "bf90aa45f96e1b46", "group": "898d05667b8470a6", "order": 5, "width": 3, "height": 1, "name": "BWF2", "label": "BWF2", "format": "{{msg.payload}}", "layout": "row-spread", "x": 1730, "y": 320, "wires": [] }, { "id": "d5430e164784fd27", "type": "ui_text", "z": "bf90aa45f96e1b46", "group": "898d05667b8470a6", "order": 9, "width": 3, "height": 1, "name": "BWF3", "label": "BWF3", "format": "{{msg.payload}}", "layout": "row-spread", "x": 1730, "y": 360, "wires": [] }, { "id": "ee3684ed090a23f3", "type": "change", "z": "bf90aa45f96e1b46", "name": "Change string", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "OUT-> ", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 560, "y": 460, "wires": [ [ "bf76966ae01d4736" ] ] }, { "id": "bf76966ae01d4736", "type": "split", "z": "bf90aa45f96e1b46", "name": "Split string", "splt": " BWF", "spltType": "str", "arraySplt": "1", "arraySpltType": "len", "stream": false, "addname": "", "x": 770, "y": 460, "wires": [ [ "3c5436f34245ed0f" ] ] }, { "id": "3c5436f34245ed0f", "type": "switch", "z": "bf90aa45f96e1b46", "name": "", "property": "parts.index", "propertyType": "msg", "rules": [ { "t": "eq", "v": "0", "vt": "num" }, { "t": "eq", "v": "1", "vt": "str" }, { "t": "eq", "v": "2", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 3, "x": 950, "y": 460, "wires": [ [ "76613fbca8a28578" ], [ "ba0ec78683b16294" ], [ "154cae71d09102b6" ] ] }, { "id": "76613fbca8a28578", "type": "change", "z": "bf90aa45f96e1b46", "name": "Change string", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "BWF1: ", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1140, "y": 420, "wires": [ [ "7b96940da381cd2d" ] ] }, { "id": "ba0ec78683b16294", "type": "change", "z": "bf90aa45f96e1b46", "name": "Change string", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "2: ", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1140, "y": 460, "wires": [ [ "0d8369609fbe587b" ] ] }, { "id": "154cae71d09102b6", "type": "change", "z": "bf90aa45f96e1b46", "name": "Change string", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "3: ", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1140, "y": 500, "wires": [ [ "391bceb17a4b82fa" ] ] }, { "id": "7b96940da381cd2d", "type": "function", "z": "bf90aa45f96e1b46", "name": "Convert to number", "func": "msg.payload = Number(msg.payload);\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1350, "y": 420, "wires": [ [ "80b96d639da44e38" ] ] }, { "id": "0d8369609fbe587b", "type": "function", "z": "bf90aa45f96e1b46", "name": "Convert to number", "func": "msg.payload = Number(msg.payload);\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1350, "y": 460, "wires": [ [ "4ab9d1e6d3da566a" ] ] }, { "id": "391bceb17a4b82fa", "type": "function", "z": "bf90aa45f96e1b46", "name": "Convert to number", "func": "msg.payload = Number(msg.payload);\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1350, "y": 500, "wires": [ [ "83606edd48af0cfe" ] ] }, { "id": "80b96d639da44e38", "type": "ui_text", "z": "bf90aa45f96e1b46", "group": "898d05667b8470a6", "order": 3, "width": 5, "height": 1, "name": "BWF1 - OUT", "label": "OUT", "format": "{{msg.payload}}", "layout": "row-spread", "x": 1570, "y": 420, "wires": [] }, { "id": "4ab9d1e6d3da566a", "type": "ui_text", "z": "bf90aa45f96e1b46", "group": "898d05667b8470a6", "order": 7, "width": 5, "height": 1, "name": "BWF2 - OUT", "label": "OUT", "format": "{{msg.payload}}", "layout": "row-spread", "x": 1570, "y": 460, "wires": [] }, { "id": "83606edd48af0cfe", "type": "ui_text", "z": "bf90aa45f96e1b46", "group": "898d05667b8470a6", "order": 11, "width": 5, "height": 1, "name": "BWF3 - OUT", "label": "OUT", "format": "{{msg.payload}}", "layout": "row-spread", "x": 1570, "y": 500, "wires": [] }, { "id": "986dc4d562ccd284", "type": "ui_button", "z": "bf90aa45f96e1b46", "name": "", "group": "d9865ddfecb5ab0b", "order": 3, "width": 13, "height": 2, "passthru": false, "label": "Stop", "tooltip": "", "color": "", "bgcolor": "#f94144", "icon": "", "payload": "disable", "payloadType": "str", "topic": "topic", "topicType": "msg", "x": 370, "y": 1380, "wires": [ [ "230429cd5e4165a0" ] ] }, { "id": "2ce975790c819a78", "type": "ui_button", "z": "bf90aa45f96e1b46", "name": "", "group": "d9865ddfecb5ab0b", "order": 8, "width": 7, "height": 2, "passthru": false, "label": "Start", "tooltip": "", "color": "", "bgcolor": "", "icon": "", "payload": "enable", "payloadType": "str", "topic": "topic", "topicType": "msg", "x": 370, "y": 1420, "wires": [ [ "230429cd5e4165a0" ] ] }, { "id": "f5f7b17700628bc4", "type": "ui_button", "z": "bf90aa45f96e1b46", "name": "", "group": "d9865ddfecb5ab0b", "order": 9, "width": 6, "height": 2, "passthru": false, "label": "Go Home", "tooltip": "", "color": "", "bgcolor": "", "icon": "", "payload": "track perimeter", "payloadType": "str", "topic": "topic", "topicType": "msg", "x": 380, "y": 1460, "wires": [ [ "230429cd5e4165a0" ] ] }, { "id": "8fb8590e89a203e9", "type": "ui_button", "z": "bf90aa45f96e1b46", "name": "", "group": "5e7fb4efbdba2f67", "order": 5, "width": 5, "height": 2, "passthru": false, "label": "debug on", "tooltip": "", "color": "", "bgcolor": "", "icon": "", "payload": "debug on", "payloadType": "str", "topic": "topic", "topicType": "msg", "x": 380, "y": 1600, "wires": [ [ "230429cd5e4165a0" ] ] }, { "id": "dbc72578e0bc536f", "type": "ui_text_input", "z": "bf90aa45f96e1b46", "name": "", "label": "", "tooltip": "Type your input", "group": "5e7fb4efbdba2f67", "order": 1, "width": 17, "height": 1, "passthru": true, "mode": "text", "delay": "0", "topic": "topic", "topicType": "msg", "x": 380, "y": 1560, "wires": [ [ "230429cd5e4165a0" ] ] }, { "id": "06757f04df5a9d10", "type": "ui_button", "z": "bf90aa45f96e1b46", "name": "", "group": "5e7fb4efbdba2f67", "order": 6, "width": 5, "height": 2, "passthru": false, "label": "debug off", "tooltip": "", "color": "", "bgcolor": "", "icon": "", "payload": "debug off", "payloadType": "str", "topic": "topic", "topicType": "msg", "x": 380, "y": 1640, "wires": [ [ "230429cd5e4165a0" ] ] }, { "id": "169b6240ba59a3e7", "type": "ui_button", "z": "bf90aa45f96e1b46", "name": "", "group": "5e7fb4efbdba2f67", "order": 4, "width": 5, "height": 2, "passthru": false, "label": "help", "tooltip": "", "color": "", "bgcolor": "", "icon": "", "payload": "help", "payloadType": "str", "topic": "topic", "topicType": "msg", "x": 370, "y": 1760, "wires": [ [ "230429cd5e4165a0" ] ] }, { "id": "e9acc8ed49132cf6", "type": "comment", "z": "bf90aa45f96e1b46", "name": "Terminal Tab", "info": "", "x": 390, "y": 1520, "wires": [] }, { "id": "5db9a95365a5d9c8", "type": "comment", "z": "bf90aa45f96e1b46", "name": "RazorBoard Tab", "info": "", "x": 400, "y": 1340, "wires": [] }, { "id": "f3a76c9f864ad9e2", "type": "ui_template", "z": "442c1b4650fae238", "group": "bebcfcfc845958ca", "name": "Dashboard Custom CSS", "order": 10, "width": 0, "height": 0, "format": "<style>\n\n\n\n.md-button {\n border-radius: 10px; !important;\n}\n\nui-card-panel {\n \n border-radius: 10px !important;\n}\n\n\n.md-card.md-default-theme, md-card {\n border-radius: 10px; !important;\n}\n\n\n\n</style>\n\n", "storeOutMessages": true, "fwdInMessages": true, "resendOnRefresh": true, "templateScope": "global", "x": 430, "y": 420, "wires": [ [] ] }, { "id": "6527dd9fe8e1efd5", "type": "comment", "z": "bf90aa45f96e1b46", "name": "Populate Terminal window with data", "info": "", "x": 460, "y": 1020, "wires": [] }, { "id": "cf20f37c350a10d4", "type": "switch", "z": "bf90aa45f96e1b46", "name": "", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "0", "vt": "num" }, { "t": "eq", "v": "1", "vt": "num" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 1010, "y": 900, "wires": [ [ "ef23509ab132b4fe" ], [ "bde2b02fc340c917" ] ] }, { "id": "ef23509ab132b4fe", "type": "change", "z": "bf90aa45f96e1b46", "name": "", "rules": [ { "t": "set", "p": "lable", "pt": "msg", "to": "NO", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1210, "y": 880, "wires": [ [ "75ca31f2f64d2f4b" ] ] }, { "id": "bde2b02fc340c917", "type": "change", "z": "bf90aa45f96e1b46", "name": "", "rules": [ { "t": "set", "p": "lable", "pt": "msg", "to": "YES", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1210, "y": 920, "wires": [ [ "75ca31f2f64d2f4b" ] ] }, { "id": "6e3f8b307f95b347", "type": "ui_text", "z": "bf90aa45f96e1b46", "group": "a7c92e12b1b2ded6", "order": 1, "width": 5, "height": 1, "name": "Charging", "label": "Charging", "format": "{{msg.payload}}", "layout": "row-spread", "x": 1620, "y": 900, "wires": [] }, { "id": "75ca31f2f64d2f4b", "type": "ui_text", "z": "bf90aa45f96e1b46", "group": "a7c92e12b1b2ded6", "order": 2, "width": 5, "height": 1, "name": "", "label": "{{lable}}", "format": "", "layout": "row-spread", "x": 1515, "y": 900, "wires": [], "l": false }, { "id": "e4a6d5d1229c0382", "type": "ui_button", "z": "bf90aa45f96e1b46", "name": "", "group": "5e7fb4efbdba2f67", "order": 11, "width": 5, "height": 2, "passthru": false, "label": "show errors", "tooltip": "", "color": "", "bgcolor": "", "icon": "", "payload": "show errors", "payloadType": "str", "topic": "topic", "topicType": "msg", "x": 390, "y": 1680, "wires": [ [ "230429cd5e4165a0" ] ] }, { "id": "8c2c25c02a5ee1a6", "type": "ui_button", "z": "bf90aa45f96e1b46", "name": "", "group": "5e7fb4efbdba2f67", "order": 12, "width": 5, "height": 2, "passthru": false, "label": "show config", "tooltip": "", "color": "", "bgcolor": "", "icon": "", "payload": "show config", "payloadType": "str", "topic": "topic", "topicType": "msg", "x": 390, "y": 1720, "wires": [ [ "230429cd5e4165a0" ] ] }, { "id": "30141c285fe48671", "type": "comment", "z": "8d33297f4dead0db", "name": "Send SSH command to start software update", "info": "", "x": 470, "y": 820, "wires": [] }, { "id": "d52b0cd0f018b865", "type": "exec", "z": "8d33297f4dead0db", "command": "stm32flash -w Razorboard.bin -g 0x0 /dev/ttyUSB0", "addpay": "", "append": "", "useSpawn": "true", "timer": "", "winHide": false, "oldrc": false, "name": "", "x": 650, "y": 880, "wires": [ [ "9bc31d43f7fc5936" ], [ "a3aeba1312a8c48c", "14a1c1994fb4b3c4" ], [ "11b837c6e76f9971", "f1810f85c9f20cce" ] ] }, { "id": "a3aeba1312a8c48c", "type": "debug", "z": "8d33297f4dead0db", "name": "Error", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 950, "y": 1040, "wires": [] }, { "id": "11b837c6e76f9971", "type": "debug", "z": "8d33297f4dead0db", "name": "Return Code", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 970, "y": 1100, "wires": [] }, { "id": "6c7d0437876c1e62", "type": "comment", "z": "8d33297f4dead0db", "name": "Output code == 0 Success, > 0 Failed ", "info": "", "x": 890, "y": 960, "wires": [] }, { "id": "66287ce113986ef7", "type": "serial out", "z": "8d33297f4dead0db", "name": "RazorBoard_OUT", "serial": "80de1f19074252c9", "x": 410, "y": 560, "wires": [] }, { "id": "ac678dba8593d016", "type": "ui_text", "z": "8d33297f4dead0db", "group": "260b157af120119d", "order": 2, "width": 14, "height": 7, "name": "", "label": "", "format": "{{msg.payload}}", "layout": "row-spread", "x": 495, "y": 220, "wires": [], "l": false }, { "id": "49d39f7361747ae4", "type": "template", "z": "8d33297f4dead0db", "name": "", "field": "payload", "fieldType": "msg", "format": "html", "syntax": "plain", "template": "Make sure you have uploaded the <br>\nRazorboard.bin file to the following <br>\ndirectory /home/pi on our Raspberry Pi <br>\n<br>\nPress the update button and wait until completed\n<br>", "output": "str", "x": 300, "y": 220, "wires": [ [ "ac678dba8593d016" ] ] }, { "id": "ff17e6ab581af39c", "type": "inject", "z": "8d33297f4dead0db", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": true, "onceDelay": 0.1, "topic": "", "payload": "true", "payloadType": "bool", "x": 110, "y": 220, "wires": [ [ "49d39f7361747ae4" ] ] }, { "id": "cf778df6d887376b", "type": "ui_button", "z": "8d33297f4dead0db", "name": "", "group": "260b157af120119d", "order": 17, "width": 12, "height": 4, "passthru": false, "label": "Start Software Update", "tooltip": "", "color": "", "bgcolor": "", "icon": "", "payload": "Upgrade", "payloadType": "str", "topic": "topic", "topicType": "msg", "x": 120, "y": 780, "wires": [ [ "66287ce113986ef7", "fea6bf5f21565cc8" ] ] }, { "id": "fea6bf5f21565cc8", "type": "trigger", "z": "8d33297f4dead0db", "name": "", "op1": "", "op2": "true", "op1type": "nul", "op2type": "bool", "duration": "3", "extend": false, "overrideDelay": false, "units": "s", "reset": "", "bytopic": "all", "topic": "topic", "outputs": 1, "x": 360, "y": 880, "wires": [ [ "d52b0cd0f018b865" ] ] }, { "id": "9bc31d43f7fc5936", "type": "switch", "z": "8d33297f4dead0db", "name": "", "property": "payload", "propertyType": "msg", "rules": [ { "t": "cont", "v": "Wrote address", "vt": "str" }, { "t": "cont", "v": "Done", "vt": "str" }, { "t": "cont", "v": "Erase", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 3, "x": 990, "y": 740, "wires": [ [ "dec83556187ccba4", "56db865ef7c3da86" ], [ "ce27bded5b23834e" ], [ "9382478222aa5485" ] ] }, { "id": "0f4080029f52fb48", "type": "change", "z": "8d33297f4dead0db", "name": "", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": ") ", "fromt": "str", "to": "", "tot": "str" }, { "t": "change", "p": "payload", "pt": "msg", "from": "%", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1500, "y": 660, "wires": [ [ "156c93a2d0636eea" ] ] }, { "id": "dec83556187ccba4", "type": "split", "z": "8d33297f4dead0db", "name": "", "splt": "(", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "", "x": 1190, "y": 660, "wires": [ [ "f4276f6dfaea0cef" ] ] }, { "id": "156c93a2d0636eea", "type": "function", "z": "8d33297f4dead0db", "name": "Convert to number", "func": "msg.payload = Number(msg.payload);\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1710, "y": 660, "wires": [ [ "7be42bbfce04ef81" ] ] }, { "id": "f4276f6dfaea0cef", "type": "switch", "z": "8d33297f4dead0db", "name": "", "property": "parts.index", "propertyType": "msg", "rules": [ { "t": "eq", "v": "1", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 1330, "y": 660, "wires": [ [ "0f4080029f52fb48" ] ] }, { "id": "7be42bbfce04ef81", "type": "ui_gauge", "z": "8d33297f4dead0db", "name": "", "group": "260b157af120119d", "order": 26, "width": 12, "height": 10, "gtype": "donut", "title": "", "label": "%", "format": "{{value}}", "min": 0, "max": "100", "colors": [ "#097479", "#097479", "#097479" ], "seg1": "", "seg2": "", "x": 1930, "y": 700, "wires": [] }, { "id": "6bb52f569f23591f", "type": "ui_text", "z": "8d33297f4dead0db", "group": "260b157af120119d", "order": 47, "width": 14, "height": 3, "name": "Staus", "label": "", "format": "{{msg.payload}}", "layout": "row-center", "x": 1515, "y": 880, "wires": [], "l": false }, { "id": "f1810f85c9f20cce", "type": "switch", "z": "8d33297f4dead0db", "name": "", "property": "payload.code", "propertyType": "msg", "rules": [ { "t": "eq", "v": "0", "vt": "num" }, { "t": "gte", "v": "1", "vt": "num" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 970, "y": 920, "wires": [ [ "cfc0576c880eac96" ], [] ] }, { "id": "ce27bded5b23834e", "type": "function", "z": "8d33297f4dead0db", "name": "100% completed", "func": "msg.payload = 100;\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1710, "y": 740, "wires": [ [ "7be42bbfce04ef81" ] ] }, { "id": "9382478222aa5485", "type": "function", "z": "8d33297f4dead0db", "name": "Erasing", "func": "msg.payload = \"Erasing data...\";\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1340, "y": 840, "wires": [ [ "6bb52f569f23591f" ] ] }, { "id": "56db865ef7c3da86", "type": "function", "z": "8d33297f4dead0db", "name": "Writing", "func": "msg.payload = \"Writing data...\";\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1330, "y": 800, "wires": [ [ "6bb52f569f23591f" ] ] }, { "id": "cfc0576c880eac96", "type": "function", "z": "8d33297f4dead0db", "name": "Finished", "func": "msg.payload = \"Succesfull software update\";\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1340, "y": 920, "wires": [ [ "6bb52f569f23591f" ] ] }, { "id": "14a1c1994fb4b3c4", "type": "function", "z": "8d33297f4dead0db", "name": "Failed", "func": "msg.payload = \"Failed\" + msg.payload;\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1330, "y": 880, "wires": [ [ "6bb52f569f23591f" ] ] }, { "id": "801bb12fbb39f50b", "type": "function", "z": "8d33297f4dead0db", "name": "Waiting", "func": "msg.payload = \"Waiting for start software update...\";\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1340, "y": 960, "wires": [ [ "6bb52f569f23591f" ] ] }, { "id": "11c04c045b5c19fe", "type": "ui_ui_control", "z": "8d33297f4dead0db", "name": "", "events": "change", "x": 1160, "y": 960, "wires": [ [ "801bb12fbb39f50b" ] ] }, { "id": "992cd1f425e786ec", "type": "comment", "z": "8d33297f4dead0db", "name": "Send Boot command to Razorboard ", "info": "", "x": 460, "y": 500, "wires": [] }, { "id": "5280d3b2334864f9", "type": "comment", "z": "8d33297f4dead0db", "name": "Status Text", "info": "", "x": 1540, "y": 840, "wires": [] } ]