-
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 2 pages, one main page showing the most interesting data but also a second page with raw data from the RazorBoard. You can text whatever message in the text input dialog to get the information you are in need of.
NOTE: The dashboard is optimized for a 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": "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": "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" ] ] } ]