├── 00_Custom_Examples ├── 01_Hall_Sensor_kmh.json └── 02_Show_Hide_Group.json ├── 01_Common_Nodes ├── 01_Inject_and_Debug.json ├── 02_Complete.json └── 03_Link.json ├── 02_Function_Nodes ├── 01_Switch.json ├── 02_Change.json ├── 03_Range.json ├── 04_Delay.json └── 05_Rbe.json ├── 03_JavaScript_Functions ├── 01_Change_Payload.json ├── 02_Variables.json ├── 03_Array.json ├── 04_JSON.json ├── 05_Counter.json ├── 05_Counter_V2.json ├── 06_String.json ├── 07_Node_Methods.json ├── 08_CatchFunctionError.json └── 09_Context_Data.json ├── 04_Dashboard ├── 01_Inputs │ ├── 01_Button.json │ ├── 02_Dropdown.json │ ├── 03_Switch.json │ ├── 04_Slider.json │ ├── 05_Numeric.json │ ├── 06_Text_Input.json │ ├── 07_Date_Picker.json │ ├── 08_Colour_Picker.json │ ├── 09_Form.json │ └── 10_slider_runtime.json ├── 02_Outputs │ ├── 01_Text.json │ ├── 02_Gauge.json │ ├── 03_LineChart.json │ ├── 04_BarChart.json │ ├── 05_PieChart.json │ ├── 06_PolarChart.json │ ├── 07_RadarChart.json │ ├── 08_AudioOut.json │ ├── 09_Notifications.json │ ├── 10_gauge_runtime.json │ └── 11_Chart_DB_Data.json ├── 03_Other │ ├── 01_UIControl.json │ ├── 02_Template_Button.json │ ├── 03_Template_Dropdown.json │ ├── 04_Template_Switch.json │ ├── 05_Template_Slider.json │ ├── 06_Template_Numeric.json │ ├── 07_Template_Text.json │ ├── 08_Template_DatePicker.json │ ├── 09_Template_ColourPicker.json │ ├── 10_Template_Form.json │ ├── 11_Template_TextOutput.json │ ├── 12_Template_Gauge.json │ ├── 13_Template_Chart.json │ ├── 14_Template_Progressbar.json │ ├── 15_Template_iFrame.json │ ├── 16_Template_Indicator.json │ ├── 17_UIControl_Tabs.json │ ├── 18_Image_Upload.json │ ├── 19_Heatmap.json │ └── 20_toolbar_button.json ├── 04_UITable │ ├── 01_SimpleUITable.json │ ├── 02_UITable_HTML_Link.json │ ├── 03_UITable_Formats.json │ ├── 04_UITable_Commands.json │ └── 05_UITable_Filter.json └── 05_Styling │ └── 01_CustomDashboardStyle.json ├── 05_Communication ├── 01_SimpleTCP.json ├── 02_CatchTCPError.json ├── 03_OpenWeatherMap.json └── 04_Currency_API.json ├── 06_RPI ├── 01_CPU.json ├── 02_SenseHat_Input.json ├── 03_SenseHat_Output.json ├── 04_GPIO_Input.json └── 05_GPIO_Output.json ├── 07_External_Libraries └── 01_PDFLib.json ├── 08_SQL ├── 01_Basics.json ├── 02_CRUD.json ├── 03_Download.json └── 04_Upload.json └── README.md /00_Custom_Examples/01_Hall_Sensor_kmh.json: -------------------------------------------------------------------------------- 1 | [{"id":"cd9e0554.558c28","type":"group","z":"7bad5e70.f03c38","name":"Hall Sensor Pulses to km/h","style":{"label":true},"nodes":["718cb401.30f8bc","86ffe0e9.cc305","e31a7ab7.bc1c8"],"x":14,"y":2319,"w":892,"h":82},{"id":"718cb401.30f8bc","type":"inject","z":"7bad5e70.f03c38","g":"cd9e0554.558c28","name":"Hall Sensor Input Pulses","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":170,"y":2360,"wires":[["86ffe0e9.cc305"]]},{"id":"86ffe0e9.cc305","type":"function","z":"7bad5e70.f03c38","g":"cd9e0554.558c28","name":"Calculate km/h from Sensor Pulses","func":"// get current time and previously saved Time\nvar currTimestamp = new Date(msg.payload)\nvar prevTimestamp = new Date(flow.get(\"prevTimestamp\")) || Date.now()\n\n// Save current Time in prevTimestamp flow Variable\nflow.set(\"prevTimestamp\", currTimestamp)\n\n// calculate the difference between the timestamps -> time per Revolution\nvar diff = (currTimestamp.getTime() - prevTimestamp.getTime()) / 1000\n\n// calculate the revolutions per second\n// 1 second divided by the time it takes to do one revolution, multiplied by 1 revolution -> rule of three\nvar revolutionsPerSecond = 1/diff*1\n\n// get rpm from revolutionsPerSecond\nvar revolutionsPerMinute = revolutionsPerSecond * 60\n\n// Calculate the km/h based on the revolutions per minute and the radius of the wheel in meters\nvar radiusMM = 50\nvar velocity = (3/25) * Math.PI * (radiusMM / 1000) * revolutionsPerMinute\n\n// Set payload to velocity in km/h\nmsg.payload = velocity\n\n// return msg Object\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":500,"y":2360,"wires":[["e31a7ab7.bc1c8"]]},{"id":"e31a7ab7.bc1c8","type":"debug","z":"7bad5e70.f03c38","g":"cd9e0554.558c28","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":790,"y":2360,"wires":[]}] 2 | -------------------------------------------------------------------------------- /00_Custom_Examples/02_Show_Hide_Group.json: -------------------------------------------------------------------------------- 1 | [{"id":"9396693c.371108","type":"group","z":"ddfc4924.245f3","name":"Hide_Show","style":{"label":true},"nodes":["2513685e.e0ae8","e5a1a0e1.72b148","28cf83f5.defee4","dd218282.21d4","e8cff46c.77d948","b5e5829b.396ba8"],"x":54,"y":19,"w":812,"h":182},{"id":"2513685e.e0ae8","type":"ui_button","z":"ddfc4924.245f3","g":"9396693c.371108","name":"","group":"aae80889.582428","order":0,"width":0,"height":0,"passthru":false,"label":"button","tooltip":"","color":"","bgcolor":"","className":"","icon":"","payload":"","payloadType":"str","topic":"topic","topicType":"msg","x":130,"y":60,"wires":[[]]},{"id":"e5a1a0e1.72b148","type":"ui_dropdown","z":"ddfc4924.245f3","g":"9396693c.371108","name":"","label":"","tooltip":"","place":"Select option","group":"8f3028ba.83089","order":0,"width":0,"height":0,"passthru":true,"multiple":false,"options":[{"label":"Show","value":true,"type":"bool"},{"label":"Hide","value":false,"type":"bool"}],"payload":"","topic":"topic","topicType":"msg","className":"","x":150,"y":120,"wires":[["dd218282.21d4"]]},{"id":"28cf83f5.defee4","type":"ui_ui_control","z":"ddfc4924.245f3","g":"9396693c.371108","name":"","events":"all","x":780,"y":120,"wires":[[]]},{"id":"dd218282.21d4","type":"switch","z":"ddfc4924.245f3","g":"9396693c.371108","name":"","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":350,"y":120,"wires":[["e8cff46c.77d948"],["b5e5829b.396ba8"]]},{"id":"e8cff46c.77d948","type":"change","z":"ddfc4924.245f3","g":"9396693c.371108","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"group\":{\"show\":[\"Hide_Show_Function\"]}}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":560,"y":120,"wires":[["28cf83f5.defee4"]]},{"id":"b5e5829b.396ba8","type":"change","z":"ddfc4924.245f3","g":"9396693c.371108","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"group\":{\"hide\":[\"Hide_Show_Function\"]}}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":560,"y":160,"wires":[["28cf83f5.defee4"]]},{"id":"aae80889.582428","type":"ui_group","name":"Function","tab":"93384f10.9250e8","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"8f3028ba.83089","type":"ui_group","name":"Settings","tab":"93384f10.9250e8","order":2,"disp":true,"width":"6","collapse":false,"className":""},{"id":"93384f10.9250e8","type":"ui_tab","name":"Hide_Show","icon":"dashboard","order":10,"disabled":false,"hidden":false}] -------------------------------------------------------------------------------- /01_Common_Nodes/01_Inject_and_Debug.json: -------------------------------------------------------------------------------- 1 | [{"id":"77d1502c.e77018","type":"inject","z":"7bad5e70.f03c38","name":"Inject Integer","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"1","crontab":"","once":true,"onceDelay":0.1,"topic":"Integer","payload":"5","payloadType":"num","x":140,"y":160,"wires":[["b4fd5b73.5c7518","7ff012da.4a5234"]]},{"id":"b4fd5b73.5c7518","type":"debug","z":"7bad5e70.f03c38","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":370,"y":160,"wires":[]},{"id":"7ff012da.4a5234","type":"debug","z":"7bad5e70.f03c38","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":350,"y":200,"wires":[]}] -------------------------------------------------------------------------------- /01_Common_Nodes/02_Complete.json: -------------------------------------------------------------------------------- 1 | [{"id":"9ccf1cf0.149d58","type":"group","z":"7bad5e70.f03c38","name":"Complete","style":{"label":true},"nodes":["a48dd26c.edcd8","1bca1a2e.2c5db6","4f80bd9f.d0f6a4","e5fb935c.4cd51"],"x":14,"y":159,"w":412,"h":122},{"id":"a48dd26c.edcd8","type":"inject","z":"7bad5e70.f03c38","g":"9ccf1cf0.149d58","name":"Inject Integer","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"Integer","payload":"5","payloadType":"num","x":130,"y":200,"wires":[["1bca1a2e.2c5db6"]]},{"id":"1bca1a2e.2c5db6","type":"debug","z":"7bad5e70.f03c38","g":"9ccf1cf0.149d58","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":330,"y":200,"wires":[]},{"id":"4f80bd9f.d0f6a4","type":"complete","z":"7bad5e70.f03c38","g":"9ccf1cf0.149d58","name":"","scope":["a48dd26c.edcd8"],"uncaught":false,"x":130,"y":240,"wires":[["e5fb935c.4cd51"]]},{"id":"e5fb935c.4cd51","type":"debug","z":"7bad5e70.f03c38","g":"9ccf1cf0.149d58","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":330,"y":240,"wires":[]}] -------------------------------------------------------------------------------- /01_Common_Nodes/03_Link.json: -------------------------------------------------------------------------------- 1 | [{"id":"bec72561.cf42c8","type":"group","z":"7bad5e70.f03c38","name":"Link","style":{"label":true},"nodes":["9d7c52e.fae20b","2b9a3f1c.55a4a","5ab25b00.10dd24","db66138f.898db"],"x":14,"y":299,"w":632,"h":82},{"id":"9d7c52e.fae20b","type":"inject","z":"7bad5e70.f03c38","g":"bec72561.cf42c8","name":"Inject Integer","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"Integer","payload":"5","payloadType":"num","x":130,"y":340,"wires":[["2b9a3f1c.55a4a"]]},{"id":"2b9a3f1c.55a4a","type":"link out","z":"7bad5e70.f03c38","g":"bec72561.cf42c8","name":"INTEGER_OUT","links":["5ab25b00.10dd24"],"x":295,"y":340,"wires":[]},{"id":"5ab25b00.10dd24","type":"link in","z":"7bad5e70.f03c38","g":"bec72561.cf42c8","name":"INTEGER_IN","links":["2b9a3f1c.55a4a"],"x":415,"y":340,"wires":[["db66138f.898db"]]},{"id":"db66138f.898db","type":"debug","z":"7bad5e70.f03c38","g":"bec72561.cf42c8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":550,"y":340,"wires":[]}] -------------------------------------------------------------------------------- /02_Function_Nodes/01_Switch.json: -------------------------------------------------------------------------------- 1 | [{"id":"f3c4b7b7.2bc16","type":"group","z":"7bad5e70.f03c38","name":"Switch","style":{"label":true},"nodes":["54f99979.51b3c","8aa762f2.4c8908","7296ae01.4548c8","2e1e95b8.cde772","3a13d75e.852408"],"x":14,"y":399,"w":602,"h":122},{"id":"54f99979.51b3c","type":"inject","z":"7bad5e70.f03c38","g":"f3c4b7b7.2bc16","name":"Inject True","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":120,"y":440,"wires":[["7296ae01.4548c8"]]},{"id":"8aa762f2.4c8908","type":"inject","z":"7bad5e70.f03c38","g":"f3c4b7b7.2bc16","name":"Inject False","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"false","payloadType":"bool","x":130,"y":480,"wires":[["7296ae01.4548c8"]]},{"id":"7296ae01.4548c8","type":"switch","z":"7bad5e70.f03c38","g":"f3c4b7b7.2bc16","name":"","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":300,"y":440,"wires":[["2e1e95b8.cde772"],["3a13d75e.852408"]]},{"id":"2e1e95b8.cde772","type":"debug","z":"7bad5e70.f03c38","g":"f3c4b7b7.2bc16","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":500,"y":440,"wires":[]},{"id":"3a13d75e.852408","type":"debug","z":"7bad5e70.f03c38","g":"f3c4b7b7.2bc16","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":500,"y":480,"wires":[]}] -------------------------------------------------------------------------------- /02_Function_Nodes/02_Change.json: -------------------------------------------------------------------------------- 1 | [{"id":"f1bce16b.fba6c8","type":"group","z":"7bad5e70.f03c38","name":"Change","style":{"label":true},"nodes":["446e6f9f.a54368","579322c5.441a94","7e03d0f0.3e21c8","cf926deb.bf223"],"x":94,"y":659,"w":692,"h":122},{"id":"446e6f9f.a54368","type":"inject","z":"7bad5e70.f03c38","g":"f1bce16b.fba6c8","name":"Inject Integer","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"5","payloadType":"num","x":210,"y":700,"wires":[["7e03d0f0.3e21c8","579322c5.441a94"]]},{"id":"579322c5.441a94","type":"debug","z":"7bad5e70.f03c38","g":"f1bce16b.fba6c8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":430,"y":740,"wires":[]},{"id":"7e03d0f0.3e21c8","type":"change","z":"7bad5e70.f03c38","g":"f1bce16b.fba6c8","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"6","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":440,"y":700,"wires":[["cf926deb.bf223"]]},{"id":"cf926deb.bf223","type":"debug","z":"7bad5e70.f03c38","g":"f1bce16b.fba6c8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":670,"y":700,"wires":[]}] -------------------------------------------------------------------------------- /02_Function_Nodes/03_Range.json: -------------------------------------------------------------------------------- 1 | [{"id":"c0e06a4e.41d44","type":"group","z":"7bad5e70.f03c38","name":"Range","style":{"label":true},"nodes":["3475e2f1.a6ced6","99141637.4bd8d8","e1167b03.a3e02","50f401d8.5ea91","3b32c060.966c88","eaf8c93d.52f22"],"x":14,"y":679,"w":632,"h":202},{"id":"3475e2f1.a6ced6","type":"inject","z":"7bad5e70.f03c38","g":"c0e06a4e.41d44","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"1","payloadType":"num","x":110,"y":720,"wires":[["3b32c060.966c88"]]},{"id":"99141637.4bd8d8","type":"inject","z":"7bad5e70.f03c38","g":"c0e06a4e.41d44","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"5","payloadType":"str","x":110,"y":760,"wires":[["3b32c060.966c88"]]},{"id":"e1167b03.a3e02","type":"inject","z":"7bad5e70.f03c38","g":"c0e06a4e.41d44","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"10","payloadType":"num","x":110,"y":800,"wires":[["3b32c060.966c88"]]},{"id":"50f401d8.5ea91","type":"inject","z":"7bad5e70.f03c38","g":"c0e06a4e.41d44","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"20","payloadType":"num","x":110,"y":840,"wires":[["3b32c060.966c88"]]},{"id":"3b32c060.966c88","type":"range","z":"7bad5e70.f03c38","g":"c0e06a4e.41d44","minin":"0","maxin":"10","minout":"0","maxout":"20","action":"scale","round":false,"property":"payload","name":"Scale Integer","x":310,"y":720,"wires":[["eaf8c93d.52f22"]]},{"id":"eaf8c93d.52f22","type":"debug","z":"7bad5e70.f03c38","g":"c0e06a4e.41d44","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":530,"y":720,"wires":[]}] -------------------------------------------------------------------------------- /02_Function_Nodes/04_Delay.json: -------------------------------------------------------------------------------- 1 | [{"id":"c406a354.80a13","type":"group","z":"7bad5e70.f03c38","name":"Delay","style":{"label":true},"nodes":["b09ffffc.142b9","dcd679b3.84737","c5be413.068eec","f06e2d6b.513a98","fbc476.99d50388","fb0772eb.f41e8","748e478b.1d8b1","bbcb5c3f.814318","e7eb83a5.8e2458"],"x":14,"y":899,"w":692,"h":202},{"id":"b09ffffc.142b9","type":"inject","z":"7bad5e70.f03c38","g":"c406a354.80a13","name":"Inject Integer","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"5","payloadType":"num","x":130,"y":940,"wires":[["dcd679b3.84737"]]},{"id":"dcd679b3.84737","type":"delay","z":"7bad5e70.f03c38","g":"c406a354.80a13","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":340,"y":940,"wires":[["c5be413.068eec"]]},{"id":"c5be413.068eec","type":"debug","z":"7bad5e70.f03c38","g":"c406a354.80a13","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":550,"y":940,"wires":[]},{"id":"f06e2d6b.513a98","type":"inject","z":"7bad5e70.f03c38","g":"c406a354.80a13","name":"Inject Integer","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"2.5","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"5","payloadType":"num","x":140,"y":1000,"wires":[["fbc476.99d50388"]]},{"id":"fbc476.99d50388","type":"delay","z":"7bad5e70.f03c38","g":"c406a354.80a13","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":360,"y":1000,"wires":[["fb0772eb.f41e8"]]},{"id":"fb0772eb.f41e8","type":"debug","z":"7bad5e70.f03c38","g":"c406a354.80a13","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":570,"y":1000,"wires":[]},{"id":"748e478b.1d8b1","type":"inject","z":"7bad5e70.f03c38","g":"c406a354.80a13","name":"Inject Integer","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"2.5","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"5","payloadType":"num","x":140,"y":1060,"wires":[["bbcb5c3f.814318"]]},{"id":"bbcb5c3f.814318","type":"delay","z":"7bad5e70.f03c38","g":"c406a354.80a13","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":370,"y":1060,"wires":[["e7eb83a5.8e2458"]]},{"id":"e7eb83a5.8e2458","type":"debug","z":"7bad5e70.f03c38","g":"c406a354.80a13","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":590,"y":1060,"wires":[]}] -------------------------------------------------------------------------------- /02_Function_Nodes/05_Rbe.json: -------------------------------------------------------------------------------- 1 | [{"id":"fe4d67b9.8172f8","type":"group","z":"7bad5e70.f03c38","name":"Rbe","style":{"label":true},"nodes":["e81be489.ab3668","9a6a44aa.07984","db4eb468.714398","98fc4da7.110158"],"x":14,"y":1119,"w":632,"h":122},{"id":"e81be489.ab3668","type":"inject","z":"7bad5e70.f03c38","g":"fe4d67b9.8172f8","name":"Inject True","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":120,"y":1160,"wires":[["db4eb468.714398"]]},{"id":"9a6a44aa.07984","type":"inject","z":"7bad5e70.f03c38","g":"fe4d67b9.8172f8","name":"Inject False","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"false","payloadType":"bool","x":130,"y":1200,"wires":[["db4eb468.714398"]]},{"id":"db4eb468.714398","type":"rbe","z":"7bad5e70.f03c38","g":"fe4d67b9.8172f8","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":330,"y":1160,"wires":[["98fc4da7.110158"]]},{"id":"98fc4da7.110158","type":"debug","z":"7bad5e70.f03c38","g":"fe4d67b9.8172f8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":530,"y":1160,"wires":[]}] -------------------------------------------------------------------------------- /03_JavaScript_Functions/01_Change_Payload.json: -------------------------------------------------------------------------------- 1 | [{"id":"80f0c628.68092","type":"group","z":"7bad5e70.f03c38","name":"Change Payload","style":{"label":true},"nodes":["c7d2bdd9.a58f2","5dea81a0.7dfee8","c84f00d5.192b88","e8fa8f02.e40ce"],"x":14,"y":1259,"w":732,"h":122},{"id":"c7d2bdd9.a58f2","type":"inject","z":"7bad5e70.f03c38","g":"80f0c628.68092","name":"Inject Integer","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"5","payloadType":"num","x":130,"y":1300,"wires":[["c84f00d5.192b88","5dea81a0.7dfee8"]]},{"id":"5dea81a0.7dfee8","type":"debug","z":"7bad5e70.f03c38","g":"80f0c628.68092","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":350,"y":1340,"wires":[]},{"id":"c84f00d5.192b88","type":"function","z":"7bad5e70.f03c38","g":"80f0c628.68092","name":"Change msg.payload","func":"msg.payload = 6\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":380,"y":1300,"wires":[["e8fa8f02.e40ce"]]},{"id":"e8fa8f02.e40ce","type":"debug","z":"7bad5e70.f03c38","g":"80f0c628.68092","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":630,"y":1300,"wires":[]}] -------------------------------------------------------------------------------- /03_JavaScript_Functions/02_Variables.json: -------------------------------------------------------------------------------- 1 | [{"id":"1a69ef5d.fbf659","type":"group","z":"7bad5e70.f03c38","name":"Variables","style":{"label":true},"nodes":["57a04669.fc8eb","9af89c8.e034b6","78e966b8.4131a8","854334d1.c0735","b59a7eca.c0ec3","524df4a8.7d2e7c"],"x":14,"y":1399,"w":672,"h":162},{"id":"57a04669.fc8eb","type":"function","z":"7bad5e70.f03c38","g":"1a69ef5d.fbf659","name":"set flow and global variable","func":"// define variable\nvar value = 5\n\n// change value of variable\nvalue = 6\n\n// set flow variable\nflow.set(\"value\",value)\n\n// add 1 to variable\nvalue ++\n\n// set global variable\nglobal.set(\"value\", value)\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":380,"y":1440,"wires":[[]]},{"id":"9af89c8.e034b6","type":"function","z":"7bad5e70.f03c38","g":"1a69ef5d.fbf659","name":"get flow variable","func":"// get value from flow variable and check if it exists\n// if not set value to 0\nvar value = flow.get(\"value\") || 0\n\n// set msg.payload to flow variable\nmsg.payload = value\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":340,"y":1480,"wires":[["78e966b8.4131a8"]]},{"id":"78e966b8.4131a8","type":"debug","z":"7bad5e70.f03c38","g":"1a69ef5d.fbf659","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":570,"y":1480,"wires":[]},{"id":"854334d1.c0735","type":"debug","z":"7bad5e70.f03c38","g":"1a69ef5d.fbf659","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":570,"y":1520,"wires":[]},{"id":"b59a7eca.c0ec3","type":"function","z":"7bad5e70.f03c38","g":"1a69ef5d.fbf659","name":"get global variable","func":"// get value from global variable and check if it exists\n// if not set value to 0\nvar value = global.get(\"value\") || 0\n\n// set msg.payload to global variable\nmsg.payload = value\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":350,"y":1520,"wires":[["854334d1.c0735"]]},{"id":"524df4a8.7d2e7c","type":"inject","z":"7bad5e70.f03c38","g":"1a69ef5d.fbf659","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":120,"y":1440,"wires":[["57a04669.fc8eb","9af89c8.e034b6","b59a7eca.c0ec3"]]}] -------------------------------------------------------------------------------- /03_JavaScript_Functions/03_Array.json: -------------------------------------------------------------------------------- 1 | [{"id":"da91e543.404b88","type":"group","z":"7bad5e70.f03c38","name":"Array","style":{"label":true},"nodes":["7f1ddfc5.1c4e48","feea97cb.e0327","b51baef1.dd47b8","f2b21404.45fe18","488685dd.30a2b4","e04b601e.4777a8","81383807.a3903","174673c6.b161ec","a5122860.f851a"],"x":14,"y":1579,"w":1512,"h":122},{"id":"7f1ddfc5.1c4e48","type":"inject","z":"7bad5e70.f03c38","g":"da91e543.404b88","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":120,"y":1620,"wires":[["feea97cb.e0327"]]},{"id":"feea97cb.e0327","type":"function","z":"7bad5e70.f03c38","g":"da91e543.404b88","name":"basic array functions 1","func":"// define empty array as variable\nvar valueArray = []\n\n// add values to Array\nvalueArray.push(5)\nvalueArray.push(6)\nvalueArray.push(7)\n\n// return valueArray in msg.payload\nmsg.payload = valueArray\n\n// return length of valueArray in msg.arrayLength\nmsg.arrayLength = valueArray.length\n\n// return msg Object\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":360,"y":1620,"wires":[["b51baef1.dd47b8","f2b21404.45fe18"]]},{"id":"b51baef1.dd47b8","type":"debug","z":"7bad5e70.f03c38","g":"da91e543.404b88","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":590,"y":1660,"wires":[]},{"id":"f2b21404.45fe18","type":"function","z":"7bad5e70.f03c38","g":"da91e543.404b88","name":"basic array functions 2","func":"// define variable as msg.payload\nvar inp = msg.payload\n\n// change value of specific index\ninp[2] = 20\n\n// set msg.payload to inp array\nmsg.payload = inp\n\n// return msg Object\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":640,"y":1620,"wires":[["488685dd.30a2b4","e04b601e.4777a8"]]},{"id":"488685dd.30a2b4","type":"debug","z":"7bad5e70.f03c38","g":"da91e543.404b88","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":870,"y":1660,"wires":[]},{"id":"e04b601e.4777a8","type":"function","z":"7bad5e70.f03c38","g":"da91e543.404b88","name":"basic array functions 3","func":"// define variable as msg.payload\nvar inp = msg.payload\n\n// delete last indec of array\ninp.pop()\n\n// set msg.payload to inp array\nmsg.payload = inp\n\n// return msg Object\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":920,"y":1620,"wires":[["81383807.a3903","174673c6.b161ec"]]},{"id":"81383807.a3903","type":"debug","z":"7bad5e70.f03c38","g":"da91e543.404b88","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1150,"y":1660,"wires":[]},{"id":"174673c6.b161ec","type":"function","z":"7bad5e70.f03c38","g":"da91e543.404b88","name":"basic array functions 4","func":"// define variable as msg.payload\nvar inp = msg.payload\n\n// cut value between index\ninp.splice(0,1)\n\n// set msg.payload to inp array\nmsg.payload = inp\n\n// return msg Object\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1200,"y":1620,"wires":[["a5122860.f851a"]]},{"id":"a5122860.f851a","type":"debug","z":"7bad5e70.f03c38","g":"da91e543.404b88","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1430,"y":1620,"wires":[]}] -------------------------------------------------------------------------------- /03_JavaScript_Functions/04_JSON.json: -------------------------------------------------------------------------------- 1 | [{"id":"9d608ea3.5e90a","type":"group","z":"7bad5e70.f03c38","name":"JSON -Object","style":{"label":true},"nodes":["f772a438.afa248","bb4096b0.61f4e8","67638666.cb0458","c0e0382e.61a2a","f64522b1.24acc8"],"x":14,"y":1719,"w":972,"h":122},{"id":"f772a438.afa248","type":"inject","z":"7bad5e70.f03c38","g":"9d608ea3.5e90a","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":120,"y":1760,"wires":[["bb4096b0.61f4e8"]]},{"id":"bb4096b0.61f4e8","type":"function","z":"7bad5e70.f03c38","g":"9d608ea3.5e90a","name":"create JSON object","func":"// create new Object variable\nvar newObject = {}\n\n// create new Array to insert in Object\nvar valueArray = [\"Test\",\"Perfect\"]\n\n// Add Properties to newObject\nnewObject = {\n integer: 1,\n string: \"Tutorial\",\n array: valueArray\n}\n\n// set msg.payload to Object\nmsg.payload = newObject\n\n// return msg Object\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":350,"y":1760,"wires":[["67638666.cb0458","c0e0382e.61a2a"]]},{"id":"67638666.cb0458","type":"debug","z":"7bad5e70.f03c38","g":"9d608ea3.5e90a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":590,"y":1800,"wires":[]},{"id":"c0e0382e.61a2a","type":"function","z":"7bad5e70.f03c38","g":"9d608ea3.5e90a","name":"change JSON values","func":"// define const inp as msg.payload\nconst inp = msg.payload\n\n// change integer value of inp\ninp.integer = 2\n\n// change value at object array index 1\ninp.array[1] = \"seven\"\n\n// set msg.payload to inp\nmsg.payload = inp\n\n// return msg Object\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":620,"y":1760,"wires":[["f64522b1.24acc8"]]},{"id":"f64522b1.24acc8","type":"debug","z":"7bad5e70.f03c38","g":"9d608ea3.5e90a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":870,"y":1760,"wires":[]}] -------------------------------------------------------------------------------- /03_JavaScript_Functions/05_Counter.json: -------------------------------------------------------------------------------- 1 | [{"id":"ab3d4f4e.6dac4","type":"group","z":"7bad5e70.f03c38","name":"Counter V1","style":{"label":true},"nodes":["b34ab286.e2b01","1c0363fa.1e315c","274c50fc.67009","cba10fa3.af8478","c922a665.b68608"],"x":14,"y":1859,"w":632,"h":142},{"id":"b34ab286.e2b01","type":"inject","z":"7bad5e70.f03c38","g":"ab3d4f4e.6dac4","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":120,"y":1900,"wires":[["1c0363fa.1e315c"]]},{"id":"1c0363fa.1e315c","type":"function","z":"7bad5e70.f03c38","g":"ab3d4f4e.6dac4","name":"Counter","func":"// Define Variable and get stored flow value\n// if there is no stored value, then the value is 0\nvar counter = flow.get(\"counter\") || 0\n\n// add 1 to the counter value\ncounter ++\n\n// save the counter value in the flow variable\nflow.set(\"counter\", counter)\n\n// set msg.payload to counter value\nmsg.payload = counter\n\n// return msg Object\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":320,"y":1900,"wires":[["274c50fc.67009"]]},{"id":"274c50fc.67009","type":"debug","z":"7bad5e70.f03c38","g":"ab3d4f4e.6dac4","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":530,"y":1900,"wires":[]},{"id":"cba10fa3.af8478","type":"inject","z":"7bad5e70.f03c38","g":"ab3d4f4e.6dac4","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":120,"y":1960,"wires":[["c922a665.b68608"]]},{"id":"c922a665.b68608","type":"change","z":"7bad5e70.f03c38","g":"ab3d4f4e.6dac4","name":"","rules":[{"t":"set","p":"counter","pt":"flow","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":340,"y":1960,"wires":[["1c0363fa.1e315c"]]}] -------------------------------------------------------------------------------- /03_JavaScript_Functions/05_Counter_V2.json: -------------------------------------------------------------------------------- 1 | [{"id":"e51840eb.3aca48","type":"group","z":"7bad5e70.f03c38","name":"Counter V2","style":{"label":true},"nodes":["a1f40f2.8a0d0f","6a1aaf3e.110b78","66c5ab27.52ccc4","5f46583e.0a8bf8"],"x":14,"y":2019,"w":632,"h":142},{"id":"a1f40f2.8a0d0f","type":"inject","z":"7bad5e70.f03c38","g":"e51840eb.3aca48","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":120,"y":2060,"wires":[["66c5ab27.52ccc4"]]},{"id":"6a1aaf3e.110b78","type":"inject","z":"7bad5e70.f03c38","g":"e51840eb.3aca48","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"reset","payload":"","payloadType":"date","x":140,"y":2120,"wires":[["66c5ab27.52ccc4"]]},{"id":"66c5ab27.52ccc4","type":"function","z":"7bad5e70.f03c38","g":"e51840eb.3aca48","name":"Counter","func":"// Define Variable and get stored flow value\n// if there is no stored value, then the value is 0\nvar counter = flow.get(\"counter\") || 0\n\n// Check the msg.topic property\n// If the topic is equal to reset then set the counter to 0\n// else add 1 to the counter value\nif (msg.topic == \"reset\") {\n counter = 0\n} else {\n counter ++\n}\n\n// save the counter value in the flow variable\nflow.set(\"counter\", counter)\n\n// set msg.payload to counter value\nmsg.payload = counter\n\n// return msg Object\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":320,"y":2060,"wires":[["5f46583e.0a8bf8"]]},{"id":"5f46583e.0a8bf8","type":"debug","z":"7bad5e70.f03c38","g":"e51840eb.3aca48","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":530,"y":2060,"wires":[]}] -------------------------------------------------------------------------------- /03_JavaScript_Functions/06_String.json: -------------------------------------------------------------------------------- 1 | [{"id":"a6f3522b.39f4c","type":"group","z":"7bad5e70.f03c38","name":"String","style":{"label":true},"nodes":["7d6e52b6.153b04","5ff4e153.159b48","c27d14d9.82b938","d1194127.e63128","9973642a.1084c8","700738dd.4ea58","f5a11371.b5c6a8","fbdac651.35497","3d7684cf.6d3c5c"],"x":14,"y":2179,"w":1472,"h":122},{"id":"7d6e52b6.153b04","type":"inject","z":"7bad5e70.f03c38","g":"a6f3522b.39f4c","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":120,"y":2220,"wires":[["5ff4e153.159b48"]]},{"id":"5ff4e153.159b48","type":"function","z":"7bad5e70.f03c38","g":"a6f3522b.39f4c","name":"String Functions 1","func":"// create new String Variable\nvar newString = \"Hello\"\n\n// Add characters to String\nnewString += \" World\"\n\n// set msg-payload to String\nmsg.payload = newString\n\n// set msg.stringLength to length of newString\nmsg.stringLength = newString.length\n\n// return msg Object\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":350,"y":2220,"wires":[["c27d14d9.82b938","d1194127.e63128"]]},{"id":"c27d14d9.82b938","type":"debug","z":"7bad5e70.f03c38","g":"a6f3522b.39f4c","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":570,"y":2260,"wires":[]},{"id":"d1194127.e63128","type":"function","z":"7bad5e70.f03c38","g":"a6f3522b.39f4c","name":"String Functions 2","func":"// define msg.payload as constant\nconst inp = msg.payload\n\n// get index of specific character\nmsg.index = inp.indexOf(\"World\")\n\n// return msg Object\nreturn msg","outputs":1,"noerr":0,"initialize":"","finalize":"","x":610,"y":2220,"wires":[["9973642a.1084c8","700738dd.4ea58"]]},{"id":"9973642a.1084c8","type":"debug","z":"7bad5e70.f03c38","g":"a6f3522b.39f4c","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"index","targetType":"msg","statusVal":"","statusType":"auto","x":850,"y":2260,"wires":[]},{"id":"700738dd.4ea58","type":"function","z":"7bad5e70.f03c38","g":"a6f3522b.39f4c","name":"String Functions 3","func":"// define msg.payload as constant\nconst inp = msg.payload\n\n// get index of specific character\nindex = inp.indexOf(\"World\")\n\n// Cut World from String\nmsg.payload = inp.slice(index, inp.length)\n\n// return msg Object\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":870,"y":2220,"wires":[["f5a11371.b5c6a8","fbdac651.35497"]]},{"id":"f5a11371.b5c6a8","type":"debug","z":"7bad5e70.f03c38","g":"a6f3522b.39f4c","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1110,"y":2260,"wires":[]},{"id":"fbdac651.35497","type":"function","z":"7bad5e70.f03c38","g":"a6f3522b.39f4c","name":"String Functions 4","func":"// define new integer value\nconst integer = 5\n\n// set msg.integer to String of int\nmsg.integer = integer.toString()\n\n// return msg Object\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1130,"y":2220,"wires":[["3d7684cf.6d3c5c"]]},{"id":"3d7684cf.6d3c5c","type":"debug","z":"7bad5e70.f03c38","g":"a6f3522b.39f4c","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"integer","targetType":"msg","statusVal":"","statusType":"auto","x":1370,"y":2220,"wires":[]}] -------------------------------------------------------------------------------- /03_JavaScript_Functions/07_Node_Methods.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "000ae83670f4528c", 4 | "type": "tab", 5 | "label": "Flow 1", 6 | "disabled": false, 7 | "info": "", 8 | "env": [] 9 | }, 10 | { 11 | "id": "9036880343e24fe8", 12 | "type": "group", 13 | "z": "000ae83670f4528c", 14 | "name": "Warning and Error", 15 | "style": { 16 | "label": true 17 | }, 18 | "nodes": [ 19 | "c86900d576faa8b0", 20 | "fab7132d0358d4a9" 21 | ], 22 | "x": 54, 23 | "y": 39, 24 | "w": 432, 25 | "h": 82 26 | }, 27 | { 28 | "id": "ead83541fc543f27", 29 | "type": "group", 30 | "z": "000ae83670f4528c", 31 | "name": "Status", 32 | "style": { 33 | "label": true 34 | }, 35 | "nodes": [ 36 | "ed1bc0d97da0bdc5", 37 | "fa1c40fd4a0e6790", 38 | "6e5a8c6e0421df09", 39 | "0e279753f034628c" 40 | ], 41 | "x": 54, 42 | "y": 159, 43 | "w": 392, 44 | "h": 162 45 | }, 46 | { 47 | "id": "c86900d576faa8b0", 48 | "type": "function", 49 | "z": "000ae83670f4528c", 50 | "g": "9036880343e24fe8", 51 | "name": "WARN_ERROR", 52 | "func": "// Show warning in Debug Tab\nnode.warn(\"Warning\")\n\n// Show error in Debug Tab\nnode.error(\"Error\")", 53 | "outputs": 1, 54 | "noerr": 0, 55 | "initialize": "", 56 | "finalize": "", 57 | "libs": [], 58 | "x": 380, 59 | "y": 80, 60 | "wires": [ 61 | [] 62 | ] 63 | }, 64 | { 65 | "id": "fab7132d0358d4a9", 66 | "type": "inject", 67 | "z": "000ae83670f4528c", 68 | "g": "9036880343e24fe8", 69 | "name": "", 70 | "props": [ 71 | { 72 | "p": "payload" 73 | }, 74 | { 75 | "p": "topic", 76 | "vt": "str" 77 | } 78 | ], 79 | "repeat": "", 80 | "crontab": "", 81 | "once": false, 82 | "onceDelay": 0.1, 83 | "topic": "", 84 | "payload": "", 85 | "payloadType": "date", 86 | "x": 160, 87 | "y": 80, 88 | "wires": [ 89 | [ 90 | "c86900d576faa8b0" 91 | ] 92 | ] 93 | }, 94 | { 95 | "id": "ed1bc0d97da0bdc5", 96 | "type": "function", 97 | "z": "000ae83670f4528c", 98 | "g": "ead83541fc543f27", 99 | "name": "Status", 100 | "func": "// Set const topic to msg.topic\nconst topic = msg.topic;\n\nif (topic == \"Error\") {\n node.status({\n \"fill\" : \"red\",\n \"shape\" : \"dot\",\n \"text\" : topic\n })\n}\n\nif (topic == \"Warning\") {\n node.status({\n \"fill\" : \"yellow\",\n \"shape\" : \"ring\",\n \"text\" : topic\n })\n}\n\nif (topic == \"Clear\") {\n node.status({})\n}", 101 | "outputs": 1, 102 | "noerr": 0, 103 | "initialize": "", 104 | "finalize": "", 105 | "libs": [], 106 | "x": 370, 107 | "y": 200, 108 | "wires": [ 109 | [] 110 | ] 111 | }, 112 | { 113 | "id": "fa1c40fd4a0e6790", 114 | "type": "inject", 115 | "z": "000ae83670f4528c", 116 | "g": "ead83541fc543f27", 117 | "name": "Error", 118 | "props": [ 119 | { 120 | "p": "topic", 121 | "vt": "str" 122 | } 123 | ], 124 | "repeat": "", 125 | "crontab": "", 126 | "once": false, 127 | "onceDelay": 0.1, 128 | "topic": "Error", 129 | "x": 150, 130 | "y": 200, 131 | "wires": [ 132 | [ 133 | "ed1bc0d97da0bdc5" 134 | ] 135 | ] 136 | }, 137 | { 138 | "id": "6e5a8c6e0421df09", 139 | "type": "inject", 140 | "z": "000ae83670f4528c", 141 | "g": "ead83541fc543f27", 142 | "name": "Warning", 143 | "props": [ 144 | { 145 | "p": "topic", 146 | "vt": "str" 147 | } 148 | ], 149 | "repeat": "", 150 | "crontab": "", 151 | "once": false, 152 | "onceDelay": 0.1, 153 | "topic": "Warning", 154 | "x": 160, 155 | "y": 240, 156 | "wires": [ 157 | [ 158 | "ed1bc0d97da0bdc5" 159 | ] 160 | ] 161 | }, 162 | { 163 | "id": "0e279753f034628c", 164 | "type": "inject", 165 | "z": "000ae83670f4528c", 166 | "g": "ead83541fc543f27", 167 | "name": "Clear", 168 | "props": [ 169 | { 170 | "p": "topic", 171 | "vt": "str" 172 | } 173 | ], 174 | "repeat": "", 175 | "crontab": "", 176 | "once": false, 177 | "onceDelay": 0.1, 178 | "topic": "Clear", 179 | "x": 150, 180 | "y": 280, 181 | "wires": [ 182 | [ 183 | "ed1bc0d97da0bdc5" 184 | ] 185 | ] 186 | } 187 | ] -------------------------------------------------------------------------------- /03_JavaScript_Functions/08_CatchFunctionError.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "81eebbba42941173", 4 | "type": "function", 5 | "z": "ab7cdbcd4ebd23cc", 6 | "name": "ErrorFunction", 7 | "func": "\nnode.error(\"This is an error\", msg);\n\nreturn void 0;", 8 | "outputs": 1, 9 | "noerr": 0, 10 | "initialize": "", 11 | "finalize": "", 12 | "libs": [], 13 | "x": 440, 14 | "y": 180, 15 | "wires": [ 16 | [] 17 | ] 18 | }, 19 | { 20 | "id": "d618ace6284f3db3", 21 | "type": "catch", 22 | "z": "ab7cdbcd4ebd23cc", 23 | "name": "", 24 | "scope": [ 25 | "81eebbba42941173" 26 | ], 27 | "uncaught": false, 28 | "x": 170, 29 | "y": 320, 30 | "wires": [ 31 | [ 32 | "93fe9f6fa3f0d0f7" 33 | ] 34 | ] 35 | }, 36 | { 37 | "id": "ba73fd4ca41b1c37", 38 | "type": "inject", 39 | "z": "ab7cdbcd4ebd23cc", 40 | "name": "", 41 | "props": [ 42 | { 43 | "p": "payload" 44 | }, 45 | { 46 | "p": "topic", 47 | "vt": "str" 48 | } 49 | ], 50 | "repeat": "", 51 | "crontab": "", 52 | "once": false, 53 | "onceDelay": 0.1, 54 | "topic": "", 55 | "payload": "", 56 | "payloadType": "date", 57 | "x": 180, 58 | "y": 180, 59 | "wires": [ 60 | [ 61 | "81eebbba42941173" 62 | ] 63 | ] 64 | }, 65 | { 66 | "id": "93fe9f6fa3f0d0f7", 67 | "type": "debug", 68 | "z": "ab7cdbcd4ebd23cc", 69 | "name": "debug 1", 70 | "active": true, 71 | "tosidebar": true, 72 | "console": false, 73 | "tostatus": false, 74 | "complete": "true", 75 | "targetType": "full", 76 | "statusVal": "", 77 | "statusType": "auto", 78 | "x": 420, 79 | "y": 320, 80 | "wires": [] 81 | } 82 | ] 83 | -------------------------------------------------------------------------------- /03_JavaScript_Functions/09_Context_Data.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "000ae83670f4528c", 4 | "type": "tab", 5 | "label": "Flow 1", 6 | "disabled": false, 7 | "info": "", 8 | "env": [] 9 | }, 10 | { 11 | "id": "c09fa9a922e6cc18", 12 | "type": "group", 13 | "z": "000ae83670f4528c", 14 | "name": "Context Data", 15 | "style": { 16 | "label": true 17 | }, 18 | "nodes": [ 19 | "749299f551271584", 20 | "4ef13a72abcc017c", 21 | "9222cdd29632dac7", 22 | "eaecb7c26cb1c0cf" 23 | ], 24 | "x": 114, 25 | "y": 119, 26 | "w": 472, 27 | "h": 142 28 | }, 29 | { 30 | "id": "749299f551271584", 31 | "type": "inject", 32 | "z": "000ae83670f4528c", 33 | "g": "c09fa9a922e6cc18", 34 | "name": "", 35 | "props": [ 36 | { 37 | "p": "payload" 38 | }, 39 | { 40 | "p": "topic", 41 | "vt": "str" 42 | } 43 | ], 44 | "repeat": "", 45 | "crontab": "", 46 | "once": false, 47 | "onceDelay": 0.1, 48 | "topic": "", 49 | "payload": "", 50 | "payloadType": "date", 51 | "x": 220, 52 | "y": 160, 53 | "wires": [ 54 | [ 55 | "4ef13a72abcc017c" 56 | ] 57 | ] 58 | }, 59 | { 60 | "id": "4ef13a72abcc017c", 61 | "type": "function", 62 | "z": "000ae83670f4528c", 63 | "g": "c09fa9a922e6cc18", 64 | "name": "Context Data", 65 | "func": "// get value\nvar contextVar = context.get(\"value\") || 0;\nvar flowVar = flow.get(\"value\") || 0;\nvar globalVar = global.get(\"value\") || 0;\n\n// increase var\ncontextVar ++;\nflowVar ++;\nglobalVar ++;\n\n// write to context Data\ncontext.set(\"value\", contextVar);\nflow.set(\"value\", flowVar);\nglobal.set(\"value\", globalVar);", 66 | "outputs": 1, 67 | "noerr": 0, 68 | "initialize": "", 69 | "finalize": "", 70 | "libs": [], 71 | "x": 430, 72 | "y": 160, 73 | "wires": [ 74 | [] 75 | ] 76 | }, 77 | { 78 | "id": "9222cdd29632dac7", 79 | "type": "function", 80 | "z": "000ae83670f4528c", 81 | "g": "c09fa9a922e6cc18", 82 | "name": "Context Data Object", 83 | "func": "flow.set(\"sensors.sensor1.value\", 5)\nflow.set(\"sensors.sensor2.value\", 5)", 84 | "outputs": 1, 85 | "noerr": 0, 86 | "initialize": "", 87 | "finalize": "", 88 | "libs": [], 89 | "x": 460, 90 | "y": 220, 91 | "wires": [ 92 | [] 93 | ] 94 | }, 95 | { 96 | "id": "eaecb7c26cb1c0cf", 97 | "type": "inject", 98 | "z": "000ae83670f4528c", 99 | "g": "c09fa9a922e6cc18", 100 | "name": "", 101 | "props": [ 102 | { 103 | "p": "payload" 104 | }, 105 | { 106 | "p": "topic", 107 | "vt": "str" 108 | } 109 | ], 110 | "repeat": "", 111 | "crontab": "", 112 | "once": false, 113 | "onceDelay": 0.1, 114 | "topic": "", 115 | "payload": "", 116 | "payloadType": "date", 117 | "x": 220, 118 | "y": 220, 119 | "wires": [ 120 | [ 121 | "9222cdd29632dac7" 122 | ] 123 | ] 124 | } 125 | ] -------------------------------------------------------------------------------- /04_Dashboard/01_Inputs/01_Button.json: -------------------------------------------------------------------------------- 1 | [{"id":"ab637678.e2e6c8","type":"group","z":"1cba0249.ac9766","name":"Button","style":{"label":true},"nodes":["37a33350.d94954","f4062b8c.b487d","b5531fe0.6fbdc","ebfc509.bfea93","1f37025f.edb396"],"x":54,"y":39,"w":932,"h":122},{"id":"37a33350.d94954","type":"ui_button","z":"1cba0249.ac9766","g":"ab637678.e2e6c8","name":"","group":"afdcbfb4.5a2e9","order":1,"width":0,"height":0,"passthru":false,"label":"Test Button","tooltip":"","color":"","bgcolor":"","className":"","icon":"add_box","payload":"Button Pressed","payloadType":"str","topic":"topic","topicType":"msg","x":650,"y":80,"wires":[["f4062b8c.b487d"]]},{"id":"f4062b8c.b487d","type":"debug","z":"1cba0249.ac9766","g":"ab637678.e2e6c8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":870,"y":80,"wires":[]},{"id":"b5531fe0.6fbdc","type":"ui_button","z":"1cba0249.ac9766","g":"ab637678.e2e6c8","name":"","group":"bba557de.cde84","order":1,"width":6,"height":1,"passthru":false,"label":"Enable Button","tooltip":"","color":"green","bgcolor":"white","className":"","icon":"settings","payload":"true","payloadType":"bool","topic":"topic","topicType":"msg","x":160,"y":80,"wires":[["1f37025f.edb396"]]},{"id":"ebfc509.bfea93","type":"ui_button","z":"1cba0249.ac9766","g":"ab637678.e2e6c8","name":"","group":"bba557de.cde84","order":2,"width":6,"height":1,"passthru":false,"label":"Disable Button","tooltip":"","color":"red","bgcolor":"white","className":"","icon":"settings","payload":"false","payloadType":"bool","topic":"topic","topicType":"msg","x":160,"y":120,"wires":[["1f37025f.edb396"]]},{"id":"1f37025f.edb396","type":"change","z":"1cba0249.ac9766","g":"ab637678.e2e6c8","name":"","rules":[{"t":"set","p":"enabled","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":410,"y":80,"wires":[["37a33350.d94954"]]},{"id":"afdcbfb4.5a2e9","type":"ui_group","name":"Function","tab":"8a0d7ff4.015b48","order":2,"disp":true,"width":"6","collapse":false,"className":""},{"id":"bba557de.cde84","type":"ui_group","name":"Settings","tab":"8a0d7ff4.015b48","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"8a0d7ff4.015b48","type":"ui_tab","name":"Button","icon":"dashboard","order":1,"disabled":false,"hidden":false}] -------------------------------------------------------------------------------- /04_Dashboard/01_Inputs/02_Dropdown.json: -------------------------------------------------------------------------------- 1 | [{"id":"b7463dfb.ee23f8","type":"group","z":"1cba0249.ac9766","name":"Dropdown","style":{"label":true},"nodes":["5a5fe1cf.b9454","ef109f18.a359b","d352c59d.019b5","26cee49.46cea1c","b0e2090.6158ff8","2cac96f3.dc99a2","b159fb8.4c05208"],"x":14,"y":159,"w":892,"h":202},{"id":"5a5fe1cf.b9454","type":"ui_dropdown","z":"1cba0249.ac9766","g":"b7463dfb.ee23f8","name":"","label":"Select","tooltip":"","place":"Select option","group":"f0fda1e7.d1d76","order":0,"width":0,"height":0,"passthru":true,"multiple":false,"options":[{"label":"Topic 1","value":"Topic 1","type":"str"},{"label":"Topic 2","value":2,"type":"num"},{"label":"Topic 3","value":true,"type":"bool"}],"payload":"","topic":"topic","topicType":"msg","className":"","x":590,"y":200,"wires":[["ef109f18.a359b"]]},{"id":"ef109f18.a359b","type":"debug","z":"1cba0249.ac9766","g":"b7463dfb.ee23f8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":790,"y":200,"wires":[]},{"id":"d352c59d.019b5","type":"ui_button","z":"1cba0249.ac9766","g":"b7463dfb.ee23f8","name":"","group":"7d35b80.904b6c8","order":0,"width":0,"height":0,"passthru":false,"label":"Select 1","tooltip":"","color":"","bgcolor":"","className":"","icon":"","payload":"Topic 1","payloadType":"str","topic":"topic","topicType":"msg","x":100,"y":200,"wires":[["5a5fe1cf.b9454"]]},{"id":"26cee49.46cea1c","type":"ui_button","z":"1cba0249.ac9766","g":"b7463dfb.ee23f8","name":"","group":"7d35b80.904b6c8","order":0,"width":0,"height":0,"passthru":false,"label":"Select 2","tooltip":"","color":"","bgcolor":"","className":"","icon":"","payload":"2","payloadType":"num","topic":"topic","topicType":"msg","x":100,"y":240,"wires":[["5a5fe1cf.b9454"]]},{"id":"b0e2090.6158ff8","type":"ui_button","z":"1cba0249.ac9766","g":"b7463dfb.ee23f8","name":"","group":"7d35b80.904b6c8","order":0,"width":0,"height":0,"passthru":false,"label":"Select 3","tooltip":"","color":"","bgcolor":"","className":"","icon":"","payload":"true","payloadType":"bool","topic":"topic","topicType":"msg","x":100,"y":280,"wires":[["5a5fe1cf.b9454"]]},{"id":"2cac96f3.dc99a2","type":"ui_button","z":"1cba0249.ac9766","g":"b7463dfb.ee23f8","name":"","group":"7d35b80.904b6c8","order":3,"width":0,"height":0,"passthru":false,"label":"Change Selection","tooltip":"","color":"","bgcolor":"","className":"","icon":"","payload":"","payloadType":"str","topic":"topic","topicType":"msg","x":130,"y":320,"wires":[["b159fb8.4c05208"]]},{"id":"b159fb8.4c05208","type":"change","z":"1cba0249.ac9766","g":"b7463dfb.ee23f8","name":"","rules":[{"t":"set","p":"options","pt":"msg","to":"[\"Changed 1\",{\"Changed 3\":3}]","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":320,"wires":[["5a5fe1cf.b9454"]]},{"id":"f0fda1e7.d1d76","type":"ui_group","name":"Function","tab":"9737523.cc0223","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"7d35b80.904b6c8","type":"ui_group","name":"Settings","tab":"9737523.cc0223","order":2,"disp":true,"width":"6","collapse":false,"className":""},{"id":"9737523.cc0223","type":"ui_tab","name":"Dropdown","icon":"dashboard","order":2,"disabled":false,"hidden":false}] -------------------------------------------------------------------------------- /04_Dashboard/01_Inputs/03_Switch.json: -------------------------------------------------------------------------------- 1 | [{"id":"b6ced6d5.137c9","type":"group","z":"1cba0249.ac9766","name":"Switch","style":{"label":true},"nodes":["c0a3bab.5bd1e48","f04e5649.39e428","7345f52c.34feb4","36ee14c0.68effc","1d15c663.aca6c2","b5998821.972a18","c77a85c4.f51ad8"],"x":14,"y":379,"w":892,"h":162},{"id":"c0a3bab.5bd1e48","type":"ui_switch","z":"1cba0249.ac9766","g":"b6ced6d5.137c9","name":"","label":"Switch","tooltip":"","group":"41412b6a.6de50c","order":0,"width":0,"height":0,"passthru":true,"decouple":"false","topic":"topic","topicType":"msg","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","animate":false,"className":"","x":590,"y":420,"wires":[["f04e5649.39e428"]]},{"id":"f04e5649.39e428","type":"debug","z":"1cba0249.ac9766","g":"b6ced6d5.137c9","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":790,"y":420,"wires":[]},{"id":"7345f52c.34feb4","type":"ui_button","z":"1cba0249.ac9766","g":"b6ced6d5.137c9","name":"","group":"c3912b7d.aaa93","order":3,"width":6,"height":1,"passthru":false,"label":"Enable Button","tooltip":"","color":"green","bgcolor":"white","className":"","icon":"settings","payload":"true","payloadType":"bool","topic":"topic","topicType":"msg","x":120,"y":420,"wires":[["1d15c663.aca6c2"]]},{"id":"36ee14c0.68effc","type":"ui_button","z":"1cba0249.ac9766","g":"b6ced6d5.137c9","name":"","group":"c3912b7d.aaa93","order":4,"width":6,"height":1,"passthru":false,"label":"Disable Button","tooltip":"","color":"red","bgcolor":"white","className":"","icon":"settings","payload":"false","payloadType":"bool","topic":"topic","topicType":"msg","x":120,"y":460,"wires":[["1d15c663.aca6c2"]]},{"id":"1d15c663.aca6c2","type":"change","z":"1cba0249.ac9766","g":"b6ced6d5.137c9","name":"","rules":[{"t":"set","p":"enabled","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":370,"y":420,"wires":[["c0a3bab.5bd1e48"]]},{"id":"b5998821.972a18","type":"ui_button","z":"1cba0249.ac9766","g":"b6ced6d5.137c9","name":"","group":"c3912b7d.aaa93","order":1,"width":0,"height":0,"passthru":false,"label":"Set State True","tooltip":"","color":"","bgcolor":"","className":"","icon":"","payload":"true","payloadType":"bool","topic":"topic","topicType":"msg","x":360,"y":460,"wires":[["c0a3bab.5bd1e48"]]},{"id":"c77a85c4.f51ad8","type":"ui_button","z":"1cba0249.ac9766","g":"b6ced6d5.137c9","name":"","group":"c3912b7d.aaa93","order":2,"width":0,"height":0,"passthru":false,"label":"Set State False","tooltip":"","color":"","bgcolor":"","className":"","icon":"","payload":"false","payloadType":"bool","topic":"topic","topicType":"msg","x":360,"y":500,"wires":[["c0a3bab.5bd1e48"]]},{"id":"41412b6a.6de50c","type":"ui_group","name":"Function","tab":"b13ac5aa.7eca6","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"c3912b7d.aaa93","type":"ui_group","name":"Settings","tab":"b13ac5aa.7eca6","order":2,"disp":true,"width":"6","collapse":false,"className":""},{"id":"b13ac5aa.7eca6","type":"ui_tab","name":"Switch","icon":"dashboard","order":3,"disabled":false,"hidden":false}] -------------------------------------------------------------------------------- /04_Dashboard/01_Inputs/04_Slider.json: -------------------------------------------------------------------------------- 1 | [{"id":"c75f2ecc.891a7","type":"group","z":"1cba0249.ac9766","name":"Slider","style":{"label":true},"nodes":["9bc2d1c8.edf3b8","75bb313c.ffe178","3e3c98fb.c0b6e","60c30536.c47a9c","a0ad5815.cebe7","ec8c78fb.2b6b3"],"x":14,"y":559,"w":932,"h":122},{"id":"9bc2d1c8.edf3b8","type":"ui_slider","z":"1cba0249.ac9766","g":"c75f2ecc.891a7","name":"","label":"Volume %","tooltip":"","group":"7aa6809f.7abf28","order":0,"width":0,"height":0,"passthru":true,"outs":"end","topic":"topic","topicType":"msg","min":0,"max":"100","step":1,"className":"","x":610,"y":600,"wires":[["75bb313c.ffe178"]]},{"id":"75bb313c.ffe178","type":"debug","z":"1cba0249.ac9766","g":"c75f2ecc.891a7","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":830,"y":600,"wires":[]},{"id":"3e3c98fb.c0b6e","type":"ui_button","z":"1cba0249.ac9766","g":"c75f2ecc.891a7","name":"","group":"3055cfc4.b66258","order":2,"width":6,"height":1,"passthru":false,"label":"Enable Button","tooltip":"","color":"green","bgcolor":"white","className":"","icon":"settings","payload":"true","payloadType":"bool","topic":"topic","topicType":"msg","x":120,"y":600,"wires":[["a0ad5815.cebe7"]]},{"id":"60c30536.c47a9c","type":"ui_button","z":"1cba0249.ac9766","g":"c75f2ecc.891a7","name":"","group":"3055cfc4.b66258","order":3,"width":6,"height":1,"passthru":false,"label":"Disable Button","tooltip":"","color":"red","bgcolor":"white","className":"","icon":"settings","payload":"false","payloadType":"bool","topic":"topic","topicType":"msg","x":120,"y":640,"wires":[["a0ad5815.cebe7"]]},{"id":"a0ad5815.cebe7","type":"change","z":"1cba0249.ac9766","g":"c75f2ecc.891a7","name":"","rules":[{"t":"set","p":"enabled","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":370,"y":600,"wires":[["9bc2d1c8.edf3b8"]]},{"id":"ec8c78fb.2b6b3","type":"ui_button","z":"1cba0249.ac9766","g":"c75f2ecc.891a7","name":"","group":"3055cfc4.b66258","order":1,"width":0,"height":0,"passthru":false,"label":"Set 10","tooltip":"","color":"","bgcolor":"","className":"","icon":"","payload":"10","payloadType":"num","topic":"topic","topicType":"msg","x":330,"y":640,"wires":[["9bc2d1c8.edf3b8"]]},{"id":"7aa6809f.7abf28","type":"ui_group","name":"Function","tab":"d17b9cfa.91d5a","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"3055cfc4.b66258","type":"ui_group","name":"Settings","tab":"d17b9cfa.91d5a","order":2,"disp":true,"width":"6","collapse":false,"className":""},{"id":"d17b9cfa.91d5a","type":"ui_tab","name":"Slider","icon":"dashboard","order":4,"disabled":false,"hidden":false}] -------------------------------------------------------------------------------- /04_Dashboard/01_Inputs/05_Numeric.json: -------------------------------------------------------------------------------- 1 | [{"id":"9f717f23.704ed","type":"group","z":"1cba0249.ac9766","name":"Numeric","style":{"label":true},"nodes":["707c584b.93a6","94de1232.7d9ec8","7398240b.197954","ec5ae14e.408108","74653252.9189b4","822d9385.b10cb"],"x":14,"y":699,"w":892,"h":122},{"id":"707c584b.93a6","type":"ui_numeric","z":"1cba0249.ac9766","g":"9f717f23.704ed","name":"","label":"Value","tooltip":"","group":"ecfc12f.f020e7","order":0,"width":0,"height":0,"wrap":false,"passthru":true,"topic":"topic","topicType":"msg","format":"{{value}} %","min":0,"max":"5","step":1,"className":"","x":590,"y":740,"wires":[["94de1232.7d9ec8"]]},{"id":"94de1232.7d9ec8","type":"debug","z":"1cba0249.ac9766","g":"9f717f23.704ed","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":790,"y":740,"wires":[]},{"id":"7398240b.197954","type":"ui_button","z":"1cba0249.ac9766","g":"9f717f23.704ed","name":"","group":"fa11ec7.ce08c9","order":2,"width":6,"height":1,"passthru":false,"label":"Enable Button","tooltip":"","color":"green","bgcolor":"white","className":"","icon":"settings","payload":"true","payloadType":"bool","topic":"topic","topicType":"msg","x":120,"y":740,"wires":[["74653252.9189b4"]]},{"id":"ec5ae14e.408108","type":"ui_button","z":"1cba0249.ac9766","g":"9f717f23.704ed","name":"","group":"fa11ec7.ce08c9","order":3,"width":6,"height":1,"passthru":false,"label":"Disable Button","tooltip":"","color":"red","bgcolor":"white","className":"","icon":"settings","payload":"false","payloadType":"bool","topic":"topic","topicType":"msg","x":120,"y":780,"wires":[["74653252.9189b4"]]},{"id":"74653252.9189b4","type":"change","z":"1cba0249.ac9766","g":"9f717f23.704ed","name":"","rules":[{"t":"set","p":"enabled","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":370,"y":740,"wires":[["707c584b.93a6"]]},{"id":"822d9385.b10cb","type":"ui_button","z":"1cba0249.ac9766","g":"9f717f23.704ed","name":"","group":"fa11ec7.ce08c9","order":1,"width":0,"height":0,"passthru":false,"label":"Set 3","tooltip":"","color":"","bgcolor":"","className":"","icon":"","payload":"3","payloadType":"num","topic":"topic","topicType":"msg","x":330,"y":780,"wires":[["707c584b.93a6"]]},{"id":"ecfc12f.f020e7","type":"ui_group","name":"Function","tab":"29a77bcb.246f54","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"fa11ec7.ce08c9","type":"ui_group","name":"Settings","tab":"29a77bcb.246f54","order":2,"disp":true,"width":"6","collapse":false,"className":""},{"id":"29a77bcb.246f54","type":"ui_tab","name":"Numeric","icon":"dashboard","order":5,"disabled":false,"hidden":false}] -------------------------------------------------------------------------------- /04_Dashboard/01_Inputs/06_Text_Input.json: -------------------------------------------------------------------------------- 1 | [{"id":"b45668eb.02d4a8","type":"group","z":"1cba0249.ac9766","name":"Text Input","style":{"label":true},"nodes":["716d502f.8ba8e8","29dd2ee7.67e412","2ef70b6f.e1ba54","3f3d5aa8.5f629e","485a5390.a680b4"],"x":14,"y":839,"w":892,"h":122},{"id":"716d502f.8ba8e8","type":"ui_text_input","z":"1cba0249.ac9766","g":"b45668eb.02d4a8","name":"","label":"Text","tooltip":"","group":"6a24b0d9.475068","order":0,"width":0,"height":0,"passthru":true,"mode":"text","delay":300,"topic":"topic","sendOnBlur":true,"topicType":"msg","x":590,"y":880,"wires":[["29dd2ee7.67e412"]]},{"id":"29dd2ee7.67e412","type":"debug","z":"1cba0249.ac9766","g":"b45668eb.02d4a8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":790,"y":880,"wires":[]},{"id":"2ef70b6f.e1ba54","type":"ui_button","z":"1cba0249.ac9766","g":"b45668eb.02d4a8","name":"","group":"f4c7b5a.feedac8","order":2,"width":6,"height":1,"passthru":false,"label":"Enable Button","tooltip":"","color":"green","bgcolor":"white","className":"","icon":"settings","payload":"true","payloadType":"bool","topic":"topic","topicType":"msg","x":120,"y":880,"wires":[["485a5390.a680b4"]]},{"id":"3f3d5aa8.5f629e","type":"ui_button","z":"1cba0249.ac9766","g":"b45668eb.02d4a8","name":"","group":"f4c7b5a.feedac8","order":3,"width":6,"height":1,"passthru":false,"label":"Disable Button","tooltip":"","color":"red","bgcolor":"white","className":"","icon":"settings","payload":"false","payloadType":"bool","topic":"topic","topicType":"msg","x":120,"y":920,"wires":[["485a5390.a680b4"]]},{"id":"485a5390.a680b4","type":"change","z":"1cba0249.ac9766","g":"b45668eb.02d4a8","name":"","rules":[{"t":"set","p":"enabled","pt":"msg","to":"payload","tot":"msg"},{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":360,"y":880,"wires":[["716d502f.8ba8e8"]]},{"id":"6a24b0d9.475068","type":"ui_group","name":"Function","tab":"29441159.71621e","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"f4c7b5a.feedac8","type":"ui_group","name":"Settings","tab":"29441159.71621e","order":2,"disp":true,"width":"6","collapse":false,"className":""},{"id":"29441159.71621e","type":"ui_tab","name":"Text Input","icon":"dashboard","order":6,"disabled":false,"hidden":false}] -------------------------------------------------------------------------------- /04_Dashboard/01_Inputs/07_Date_Picker.json: -------------------------------------------------------------------------------- 1 | [{"id":"f8016950.9aa06","type":"group","z":"1cba0249.ac9766","name":"Date Picker","style":{"label":true},"nodes":["afd2b0ea.a2b2","129f32bc.85a52d","5711fbc.9c2ec04","b6e8214d.1751","f82479c.3b3af08"],"x":14,"y":979,"w":862,"h":122},{"id":"afd2b0ea.a2b2","type":"ui_date_picker","z":"1cba0249.ac9766","g":"f8016950.9aa06","name":"","label":"Birthday","group":"f5d3be41.2e7f7","order":0,"width":0,"height":0,"passthru":true,"topic":"topic","topicType":"msg","className":"","x":580,"y":1020,"wires":[["129f32bc.85a52d"]]},{"id":"129f32bc.85a52d","type":"debug","z":"1cba0249.ac9766","g":"f8016950.9aa06","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":760,"y":1020,"wires":[]},{"id":"5711fbc.9c2ec04","type":"ui_button","z":"1cba0249.ac9766","g":"f8016950.9aa06","name":"","group":"2217bbc8.099fa4","order":2,"width":6,"height":1,"passthru":false,"label":"Enable Button","tooltip":"","color":"green","bgcolor":"white","className":"","icon":"settings","payload":"true","payloadType":"bool","topic":"topic","topicType":"msg","x":120,"y":1020,"wires":[["f82479c.3b3af08"]]},{"id":"b6e8214d.1751","type":"ui_button","z":"1cba0249.ac9766","g":"f8016950.9aa06","name":"","group":"2217bbc8.099fa4","order":3,"width":6,"height":1,"passthru":false,"label":"Disable Button","tooltip":"","color":"red","bgcolor":"white","className":"","icon":"settings","payload":"false","payloadType":"bool","topic":"topic","topicType":"msg","x":120,"y":1060,"wires":[["f82479c.3b3af08"]]},{"id":"f82479c.3b3af08","type":"change","z":"1cba0249.ac9766","g":"f8016950.9aa06","name":"","rules":[{"t":"set","p":"enabled","pt":"msg","to":"payload","tot":"msg"},{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":360,"y":1020,"wires":[["afd2b0ea.a2b2"]]},{"id":"f5d3be41.2e7f7","type":"ui_group","name":"Function","tab":"940e745.140c088","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"2217bbc8.099fa4","type":"ui_group","name":"Settings","tab":"940e745.140c088","order":2,"disp":true,"width":"6","collapse":false,"className":""},{"id":"940e745.140c088","type":"ui_tab","name":"Date Picker","icon":"dashboard","order":7,"disabled":false,"hidden":false}] -------------------------------------------------------------------------------- /04_Dashboard/01_Inputs/08_Colour_Picker.json: -------------------------------------------------------------------------------- 1 | [{"id":"b81aa193.aba468","type":"group","z":"1cba0249.ac9766","name":"Colour Picker","style":{"label":true},"nodes":["b49fd016.17cdf8","57ce22f4.cd8a6c","ac9114b6.25e298","6b26b377.bc363c","9e54ac08.f2c44","12dad50b.23563b"],"x":14,"y":1119,"w":932,"h":122},{"id":"b49fd016.17cdf8","type":"ui_colour_picker","z":"1cba0249.ac9766","g":"b81aa193.aba468","name":"","label":"Favorite Colour","group":"84460f25.4c8c7","format":"rgb","outformat":"object","showSwatch":true,"showPicker":false,"showValue":false,"showHue":false,"showAlpha":false,"showLightness":true,"square":"false","dynOutput":"false","order":0,"width":0,"height":0,"passthru":true,"topic":"topic","topicType":"msg","className":"","x":600,"y":1160,"wires":[["57ce22f4.cd8a6c"]]},{"id":"57ce22f4.cd8a6c","type":"debug","z":"1cba0249.ac9766","g":"b81aa193.aba468","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":830,"y":1160,"wires":[]},{"id":"ac9114b6.25e298","type":"ui_button","z":"1cba0249.ac9766","g":"b81aa193.aba468","name":"","group":"35debc0f.52670c","order":2,"width":6,"height":1,"passthru":false,"label":"Enable Button","tooltip":"","color":"green","bgcolor":"white","className":"","icon":"settings","payload":"true","payloadType":"bool","topic":"topic","topicType":"msg","x":120,"y":1160,"wires":[["9e54ac08.f2c44"]]},{"id":"6b26b377.bc363c","type":"ui_button","z":"1cba0249.ac9766","g":"b81aa193.aba468","name":"","group":"35debc0f.52670c","order":3,"width":6,"height":1,"passthru":false,"label":"Disable Button","tooltip":"","color":"red","bgcolor":"white","className":"","icon":"settings","payload":"false","payloadType":"bool","topic":"topic","topicType":"msg","x":120,"y":1200,"wires":[["9e54ac08.f2c44"]]},{"id":"9e54ac08.f2c44","type":"change","z":"1cba0249.ac9766","g":"b81aa193.aba468","name":"","rules":[{"t":"set","p":"enabled","pt":"msg","to":"payload","tot":"msg"},{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":360,"y":1160,"wires":[["b49fd016.17cdf8"]]},{"id":"12dad50b.23563b","type":"ui_button","z":"1cba0249.ac9766","g":"b81aa193.aba468","name":"","group":"35debc0f.52670c","order":1,"width":0,"height":0,"passthru":false,"label":"Set Green","tooltip":"","color":"","bgcolor":"","className":"","icon":"","payload":"{\"r\":0,\"g\":255,\"b\":0,\"a\":1}","payloadType":"json","topic":"topic","topicType":"msg","x":340,"y":1200,"wires":[["b49fd016.17cdf8"]]},{"id":"84460f25.4c8c7","type":"ui_group","name":"Function","tab":"66adedb0.125b54","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"35debc0f.52670c","type":"ui_group","name":"Settings","tab":"66adedb0.125b54","order":2,"disp":true,"width":"6","collapse":false,"className":""},{"id":"66adedb0.125b54","type":"ui_tab","name":"Colour Picker","icon":"dashboard","order":8,"disabled":false,"hidden":false}] -------------------------------------------------------------------------------- /04_Dashboard/01_Inputs/09_Form.json: -------------------------------------------------------------------------------- 1 | [{"id":"dbd5030a.21e278","type":"group","z":"1cba0249.ac9766","name":"Form","style":{"label":true},"nodes":["67cedb92.fe9e14","76476c39.cfc1d4","7603ea43.f21974","fb581e50.64b48","a8dd058e.5de67"],"x":14,"y":1259,"w":872,"h":122},{"id":"67cedb92.fe9e14","type":"ui_form","z":"1cba0249.ac9766","g":"dbd5030a.21e278","name":"","label":"","group":"c1eacbac.9c51c8","order":0,"width":0,"height":0,"options":[{"label":"Name","value":"Obj_Name","type":"text","required":true,"rows":null},{"label":"Postalcode","value":"Obj_Postalcode","type":"number","required":false,"rows":null}],"formValue":{"Obj_Name":"","Obj_Postalcode":""},"payload":"","submit":"submit","cancel":"","topic":"topic","topicType":"msg","splitLayout":"","className":"","x":570,"y":1300,"wires":[["76476c39.cfc1d4"]]},{"id":"76476c39.cfc1d4","type":"debug","z":"1cba0249.ac9766","g":"dbd5030a.21e278","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":770,"y":1300,"wires":[]},{"id":"7603ea43.f21974","type":"ui_button","z":"1cba0249.ac9766","g":"dbd5030a.21e278","name":"","group":"d8425e94.2f162","order":2,"width":6,"height":1,"passthru":false,"label":"Enable Button","tooltip":"","color":"green","bgcolor":"white","className":"","icon":"settings","payload":"true","payloadType":"bool","topic":"topic","topicType":"msg","x":120,"y":1300,"wires":[["a8dd058e.5de67"]]},{"id":"fb581e50.64b48","type":"ui_button","z":"1cba0249.ac9766","g":"dbd5030a.21e278","name":"","group":"d8425e94.2f162","order":3,"width":6,"height":1,"passthru":false,"label":"Disable Button","tooltip":"","color":"red","bgcolor":"white","className":"","icon":"settings","payload":"false","payloadType":"bool","topic":"topic","topicType":"msg","x":120,"y":1340,"wires":[["a8dd058e.5de67"]]},{"id":"a8dd058e.5de67","type":"change","z":"1cba0249.ac9766","g":"dbd5030a.21e278","name":"","rules":[{"t":"set","p":"enabled","pt":"msg","to":"payload","tot":"msg"},{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":360,"y":1300,"wires":[["67cedb92.fe9e14"]]},{"id":"c1eacbac.9c51c8","type":"ui_group","name":"Function","tab":"5e5a3cf2.fbf064","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"d8425e94.2f162","type":"ui_group","name":"Settings","tab":"5e5a3cf2.fbf064","order":2,"disp":true,"width":"6","collapse":false,"className":""},{"id":"5e5a3cf2.fbf064","type":"ui_tab","name":"Form","icon":"dashboard","order":9,"disabled":false,"hidden":false}] -------------------------------------------------------------------------------- /04_Dashboard/01_Inputs/10_slider_runtime.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "5c776d97a707b983", 4 | "type": "group", 5 | "z": "6bf32ac4d2d2f3e7", 6 | "name": "Custom Slider on Runtime", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "a77f34ebcfb195e4", 12 | "980c4cab4d55a1cb", 13 | "5e3ae18360646d76", 14 | "8b50dcbcb5c8014e", 15 | "b1279d683002d2ba" 16 | ], 17 | "x": 114, 18 | "y": 559, 19 | "w": 772, 20 | "h": 122 21 | }, 22 | { 23 | "id": "a77f34ebcfb195e4", 24 | "type": "ui_slider", 25 | "z": "6bf32ac4d2d2f3e7", 26 | "g": "5c776d97a707b983", 27 | "name": "", 28 | "label": "slider", 29 | "tooltip": "", 30 | "group": "05bb3b04e392eb55", 31 | "order": 0, 32 | "width": 0, 33 | "height": 0, 34 | "passthru": true, 35 | "outs": "end", 36 | "topic": "topic", 37 | "topicType": "msg", 38 | "min": 0, 39 | "max": "100", 40 | "step": "10", 41 | "className": "", 42 | "x": 590, 43 | "y": 640, 44 | "wires": [ 45 | [ 46 | "980c4cab4d55a1cb" 47 | ] 48 | ] 49 | }, 50 | { 51 | "id": "980c4cab4d55a1cb", 52 | "type": "debug", 53 | "z": "6bf32ac4d2d2f3e7", 54 | "g": "5c776d97a707b983", 55 | "name": "debug 1", 56 | "active": true, 57 | "tosidebar": true, 58 | "console": false, 59 | "tostatus": false, 60 | "complete": "false", 61 | "statusVal": "", 62 | "statusType": "auto", 63 | "x": 780, 64 | "y": 640, 65 | "wires": [] 66 | }, 67 | { 68 | "id": "5e3ae18360646d76", 69 | "type": "function", 70 | "z": "6bf32ac4d2d2f3e7", 71 | "g": "5c776d97a707b983", 72 | "name": "function 1", 73 | "func": "const minimum = msg.payload\n\n\nmsg = {\n ui_control: {\n min: minimum,\n max: 1000,\n step: 1\n },\n payload: 500\n}\n\nreturn msg;", 74 | "outputs": 1, 75 | "noerr": 0, 76 | "initialize": "", 77 | "finalize": "", 78 | "libs": [], 79 | "x": 400, 80 | "y": 640, 81 | "wires": [ 82 | [ 83 | "a77f34ebcfb195e4", 84 | "b1279d683002d2ba" 85 | ] 86 | ] 87 | }, 88 | { 89 | "id": "8b50dcbcb5c8014e", 90 | "type": "inject", 91 | "z": "6bf32ac4d2d2f3e7", 92 | "g": "5c776d97a707b983", 93 | "name": "", 94 | "props": [ 95 | { 96 | "p": "payload" 97 | }, 98 | { 99 | "p": "topic", 100 | "vt": "str" 101 | } 102 | ], 103 | "repeat": "", 104 | "crontab": "", 105 | "once": false, 106 | "onceDelay": 0.1, 107 | "topic": "", 108 | "payload": "-20", 109 | "payloadType": "num", 110 | "x": 210, 111 | "y": 640, 112 | "wires": [ 113 | [ 114 | "5e3ae18360646d76" 115 | ] 116 | ] 117 | }, 118 | { 119 | "id": "b1279d683002d2ba", 120 | "type": "debug", 121 | "z": "6bf32ac4d2d2f3e7", 122 | "g": "5c776d97a707b983", 123 | "name": "debug 2", 124 | "active": true, 125 | "tosidebar": true, 126 | "console": false, 127 | "tostatus": false, 128 | "complete": "true", 129 | "targetType": "full", 130 | "statusVal": "", 131 | "statusType": "auto", 132 | "x": 600, 133 | "y": 600, 134 | "wires": [] 135 | }, 136 | { 137 | "id": "05bb3b04e392eb55", 138 | "type": "ui_group", 139 | "name": "Default", 140 | "tab": "0a5db54aed9dcfcd", 141 | "order": 1, 142 | "disp": true, 143 | "width": "6", 144 | "collapse": false, 145 | "className": "" 146 | }, 147 | { 148 | "id": "0a5db54aed9dcfcd", 149 | "type": "ui_tab", 150 | "name": "Home", 151 | "icon": "dashboard", 152 | "disabled": false, 153 | "hidden": false 154 | } 155 | ] -------------------------------------------------------------------------------- /04_Dashboard/02_Outputs/01_Text.json: -------------------------------------------------------------------------------- 1 | [{"id":"4a7df0c1065e53b2","type":"group","z":"f1988a2794fd0fbf","name":"Text","style":{"label":true},"nodes":["812304460a412a6a","7535e115314c8cce"],"x":34,"y":39,"w":412,"h":82},{"id":"812304460a412a6a","type":"ui_text","z":"f1988a2794fd0fbf","g":"4a7df0c1065e53b2","group":"b007859f7b041949","order":0,"width":0,"height":0,"name":"","label":"Temperature","format":"{{msg.payload.toFixed(2) + \" °C\"}}","layout":"row-spread","x":350,"y":80,"wires":[]},{"id":"7535e115314c8cce","type":"inject","z":"f1988a2794fd0fbf","g":"4a7df0c1065e53b2","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"5.12345","payloadType":"num","x":140,"y":80,"wires":[["812304460a412a6a"]]},{"id":"b007859f7b041949","type":"ui_group","name":"Function","tab":"c16b14bf1dceba15","order":1,"disp":true,"width":"6","collapse":false},{"id":"c16b14bf1dceba15","type":"ui_tab","name":"Text","icon":"dashboard","order":1,"disabled":false,"hidden":false}] -------------------------------------------------------------------------------- /04_Dashboard/02_Outputs/02_Gauge.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "65d30004c1496c92", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Gauge", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "1e9fad082b03aa16", 12 | "1408888d0f303782", 13 | "2ebefc4fa9cc5665" 14 | ], 15 | "x": 34, 16 | "y": 19, 17 | "w": 752, 18 | "h": 82 19 | }, 20 | { 21 | "id": "1e9fad082b03aa16", 22 | "type": "ui_gauge", 23 | "z": "f6f2187d.f17ca8", 24 | "g": "65d30004c1496c92", 25 | "name": "", 26 | "group": "a284fdaa38c18f81", 27 | "order": 0, 28 | "width": 0, 29 | "height": 0, 30 | "gtype": "gage", 31 | "title": "Temperature", 32 | "label": "°C", 33 | "format": "{{value | number:2}}°C", 34 | "min": 0, 35 | "max": "20", 36 | "colors": [ 37 | "#00b500", 38 | "#e6e600", 39 | "#ca3838" 40 | ], 41 | "seg1": "10", 42 | "seg2": "20", 43 | "className": "", 44 | "x": 690, 45 | "y": 60, 46 | "wires": [] 47 | }, 48 | { 49 | "id": "1408888d0f303782", 50 | "type": "inject", 51 | "z": "f6f2187d.f17ca8", 52 | "g": "65d30004c1496c92", 53 | "name": "", 54 | "props": [ 55 | { 56 | "p": "payload" 57 | }, 58 | { 59 | "p": "topic", 60 | "vt": "str" 61 | } 62 | ], 63 | "repeat": "1", 64 | "crontab": "", 65 | "once": true, 66 | "onceDelay": 0.1, 67 | "topic": "", 68 | "payload": "", 69 | "payloadType": "date", 70 | "x": 150, 71 | "y": 60, 72 | "wires": [ 73 | [ 74 | "2ebefc4fa9cc5665" 75 | ] 76 | ] 77 | }, 78 | { 79 | "id": "2ebefc4fa9cc5665", 80 | "type": "function", 81 | "z": "f6f2187d.f17ca8", 82 | "g": "65d30004c1496c92", 83 | "name": "Random Temperature Value", 84 | "func": "// Create random Temperature value between 0 and 30 °C\nmsg.payload = Math.random() * 30\nreturn msg;", 85 | "outputs": 1, 86 | "noerr": 0, 87 | "initialize": "", 88 | "finalize": "", 89 | "libs": [], 90 | "x": 420, 91 | "y": 60, 92 | "wires": [ 93 | [ 94 | "1e9fad082b03aa16" 95 | ] 96 | ] 97 | }, 98 | { 99 | "id": "a284fdaa38c18f81", 100 | "type": "ui_group", 101 | "name": "Function", 102 | "tab": "424609d3f59a5919", 103 | "order": 1, 104 | "disp": true, 105 | "width": "6", 106 | "collapse": false, 107 | "className": "" 108 | }, 109 | { 110 | "id": "424609d3f59a5919", 111 | "type": "ui_tab", 112 | "name": "Gauge", 113 | "icon": "dashboard", 114 | "order": 1, 115 | "disabled": false, 116 | "hidden": false 117 | } 118 | ] -------------------------------------------------------------------------------- /04_Dashboard/02_Outputs/03_LineChart.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "1f9bcff40567d4d4", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Chart", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "2057c92dc2a09d3f", 12 | "c6f31a34f968c652", 13 | "e0cd5049e3a7a6e7", 14 | "525a30eeffaf4a1b", 15 | "bb5f35b842352718" 16 | ], 17 | "x": 34, 18 | "y": 119, 19 | "w": 772, 20 | "h": 162 21 | }, 22 | { 23 | "id": "2057c92dc2a09d3f", 24 | "type": "ui_chart", 25 | "z": "f6f2187d.f17ca8", 26 | "g": "1f9bcff40567d4d4", 27 | "name": "", 28 | "group": "641235355f36f5d7", 29 | "order": 1, 30 | "width": 10, 31 | "height": 6, 32 | "label": "Temperatures", 33 | "chartType": "line", 34 | "legend": "true", 35 | "xformat": "HH:mm:ss", 36 | "interpolate": "cubic", 37 | "nodata": "", 38 | "dot": true, 39 | "ymin": "0", 40 | "ymax": "100", 41 | "removeOlder": "30", 42 | "removeOlderPoints": "", 43 | "removeOlderUnit": "1", 44 | "cutout": 0, 45 | "useOneColor": false, 46 | "useUTC": false, 47 | "colors": [ 48 | "#1f77b4", 49 | "#aec7e8", 50 | "#ff7f0e", 51 | "#2ca02c", 52 | "#98df8a", 53 | "#d62728", 54 | "#ff9896", 55 | "#9467bd", 56 | "#c5b0d5" 57 | ], 58 | "outputs": 1, 59 | "useDifferentColor": false, 60 | "className": "", 61 | "x": 700, 62 | "y": 160, 63 | "wires": [ 64 | [] 65 | ] 66 | }, 67 | { 68 | "id": "c6f31a34f968c652", 69 | "type": "inject", 70 | "z": "f6f2187d.f17ca8", 71 | "g": "1f9bcff40567d4d4", 72 | "name": "", 73 | "props": [ 74 | { 75 | "p": "payload" 76 | }, 77 | { 78 | "p": "topic", 79 | "vt": "str" 80 | } 81 | ], 82 | "repeat": "1", 83 | "crontab": "", 84 | "once": true, 85 | "onceDelay": 0.1, 86 | "topic": "", 87 | "payload": "", 88 | "payloadType": "date", 89 | "x": 150, 90 | "y": 160, 91 | "wires": [ 92 | [ 93 | "e0cd5049e3a7a6e7", 94 | "bb5f35b842352718" 95 | ] 96 | ] 97 | }, 98 | { 99 | "id": "e0cd5049e3a7a6e7", 100 | "type": "function", 101 | "z": "f6f2187d.f17ca8", 102 | "g": "1f9bcff40567d4d4", 103 | "name": "Random Temperature Values", 104 | "func": "msg.payload = Math.random() * 100\nmsg.topic = \"Temp 1\"\nreturn msg;", 105 | "outputs": 1, 106 | "noerr": 0, 107 | "initialize": "", 108 | "finalize": "", 109 | "libs": [], 110 | "x": 420, 111 | "y": 160, 112 | "wires": [ 113 | [ 114 | "2057c92dc2a09d3f" 115 | ] 116 | ] 117 | }, 118 | { 119 | "id": "525a30eeffaf4a1b", 120 | "type": "ui_button", 121 | "z": "f6f2187d.f17ca8", 122 | "g": "1f9bcff40567d4d4", 123 | "name": "", 124 | "group": "641235355f36f5d7", 125 | "order": 3, 126 | "width": 8, 127 | "height": 1, 128 | "passthru": false, 129 | "label": "Clear Chart", 130 | "tooltip": "", 131 | "color": "", 132 | "bgcolor": "", 133 | "className": "", 134 | "icon": "", 135 | "payload": "[]", 136 | "payloadType": "json", 137 | "topic": "topic", 138 | "topicType": "msg", 139 | "x": 470, 140 | "y": 240, 141 | "wires": [ 142 | [ 143 | "2057c92dc2a09d3f" 144 | ] 145 | ] 146 | }, 147 | { 148 | "id": "bb5f35b842352718", 149 | "type": "function", 150 | "z": "f6f2187d.f17ca8", 151 | "g": "1f9bcff40567d4d4", 152 | "name": "Random Temperature Values", 153 | "func": "msg.payload = Math.random() * 100\nmsg.topic = \"Temp 2\"\nreturn msg;", 154 | "outputs": 1, 155 | "noerr": 0, 156 | "initialize": "", 157 | "finalize": "", 158 | "libs": [], 159 | "x": 420, 160 | "y": 200, 161 | "wires": [ 162 | [ 163 | "2057c92dc2a09d3f" 164 | ] 165 | ] 166 | }, 167 | { 168 | "id": "641235355f36f5d7", 169 | "type": "ui_group", 170 | "name": "Function", 171 | "tab": "864b451c064548f3", 172 | "order": 1, 173 | "disp": true, 174 | "width": 10, 175 | "collapse": false, 176 | "className": "" 177 | }, 178 | { 179 | "id": "864b451c064548f3", 180 | "type": "ui_tab", 181 | "name": "Chart", 182 | "icon": "dashboard", 183 | "order": 2, 184 | "disabled": false, 185 | "hidden": false 186 | } 187 | ] 188 | -------------------------------------------------------------------------------- /04_Dashboard/02_Outputs/04_BarChart.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "16f88025b63dd8ef", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Bar Chart", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "41a56987ad99a59f", 12 | "565733d9a196ea1b", 13 | "4da195ee24501131", 14 | "b44af45c4bedc7b3", 15 | "88a33b85cac5eaae", 16 | "f3b6d612787eae4c" 17 | ], 18 | "x": 34, 19 | "y": 19, 20 | "w": 1232, 21 | "h": 122 22 | }, 23 | { 24 | "id": "41a56987ad99a59f", 25 | "type": "ui_chart", 26 | "z": "f6f2187d.f17ca8", 27 | "g": "16f88025b63dd8ef", 28 | "name": "", 29 | "group": "93fae4f98fb26898", 30 | "order": 1, 31 | "width": 10, 32 | "height": 6, 33 | "label": "12-Month Temperatures", 34 | "chartType": "horizontalBar", 35 | "legend": "false", 36 | "xformat": "HH:mm:ss", 37 | "interpolate": "linear", 38 | "nodata": "", 39 | "dot": false, 40 | "ymin": "0", 41 | "ymax": "50", 42 | "removeOlder": 1, 43 | "removeOlderPoints": "", 44 | "removeOlderUnit": "3600", 45 | "cutout": 0, 46 | "useOneColor": true, 47 | "useUTC": false, 48 | "colors": [ 49 | "#1f77b4", 50 | "#aec7e8", 51 | "#ff7f0e", 52 | "#2ca02c", 53 | "#98df8a", 54 | "#d62728", 55 | "#ff9896", 56 | "#9467bd", 57 | "#c5b0d5" 58 | ], 59 | "outputs": 1, 60 | "useDifferentColor": false, 61 | "className": "", 62 | "x": 1130, 63 | "y": 60, 64 | "wires": [ 65 | [] 66 | ] 67 | }, 68 | { 69 | "id": "565733d9a196ea1b", 70 | "type": "function", 71 | "z": "f6f2187d.f17ca8", 72 | "g": "16f88025b63dd8ef", 73 | "name": "12-Month Temperature Data", 74 | "func": "var tempData = []\n\nconst months = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n]\n\nfor (i = 0; i < months.length; i++) {\n const dataSet = {\n \"temp\" : Math.random() * 30,\n \"month\" : months[i]\n }\n tempData.push(dataSet)\n}\n\nmsg.payload = tempData\n\nreturn msg;", 75 | "outputs": 1, 76 | "noerr": 0, 77 | "initialize": "", 78 | "finalize": "", 79 | "libs": [], 80 | "x": 400, 81 | "y": 60, 82 | "wires": [ 83 | [ 84 | "4da195ee24501131" 85 | ] 86 | ] 87 | }, 88 | { 89 | "id": "4da195ee24501131", 90 | "type": "split", 91 | "z": "f6f2187d.f17ca8", 92 | "g": "16f88025b63dd8ef", 93 | "name": "", 94 | "splt": "\\n", 95 | "spltType": "str", 96 | "arraySplt": 1, 97 | "arraySpltType": "len", 98 | "stream": false, 99 | "addname": "", 100 | "x": 650, 101 | "y": 60, 102 | "wires": [ 103 | [ 104 | "b44af45c4bedc7b3" 105 | ] 106 | ] 107 | }, 108 | { 109 | "id": "b44af45c4bedc7b3", 110 | "type": "change", 111 | "z": "f6f2187d.f17ca8", 112 | "g": "16f88025b63dd8ef", 113 | "name": "", 114 | "rules": [ 115 | { 116 | "t": "set", 117 | "p": "topic", 118 | "pt": "msg", 119 | "to": "payload.month", 120 | "tot": "msg" 121 | }, 122 | { 123 | "t": "set", 124 | "p": "payload", 125 | "pt": "msg", 126 | "to": "payload.temp", 127 | "tot": "msg" 128 | } 129 | ], 130 | "action": "", 131 | "property": "", 132 | "from": "", 133 | "to": "", 134 | "reg": false, 135 | "x": 860, 136 | "y": 60, 137 | "wires": [ 138 | [ 139 | "41a56987ad99a59f" 140 | ] 141 | ] 142 | }, 143 | { 144 | "id": "88a33b85cac5eaae", 145 | "type": "ui_button", 146 | "z": "f6f2187d.f17ca8", 147 | "g": "16f88025b63dd8ef", 148 | "name": "", 149 | "group": "93fae4f98fb26898", 150 | "order": 3, 151 | "width": 5, 152 | "height": 1, 153 | "passthru": false, 154 | "label": "Show Data", 155 | "tooltip": "", 156 | "color": "", 157 | "bgcolor": "", 158 | "className": "", 159 | "icon": "", 160 | "payload": "", 161 | "payloadType": "str", 162 | "topic": "topic", 163 | "topicType": "msg", 164 | "x": 130, 165 | "y": 60, 166 | "wires": [ 167 | [ 168 | "565733d9a196ea1b" 169 | ] 170 | ] 171 | }, 172 | { 173 | "id": "f3b6d612787eae4c", 174 | "type": "ui_button", 175 | "z": "f6f2187d.f17ca8", 176 | "g": "16f88025b63dd8ef", 177 | "name": "", 178 | "group": "93fae4f98fb26898", 179 | "order": 2, 180 | "width": 5, 181 | "height": 1, 182 | "passthru": false, 183 | "label": "Clear Data", 184 | "tooltip": "", 185 | "color": "", 186 | "bgcolor": "red", 187 | "className": "", 188 | "icon": "", 189 | "payload": "[]", 190 | "payloadType": "json", 191 | "topic": "topic", 192 | "topicType": "msg", 193 | "x": 870, 194 | "y": 100, 195 | "wires": [ 196 | [ 197 | "41a56987ad99a59f" 198 | ] 199 | ] 200 | }, 201 | { 202 | "id": "93fae4f98fb26898", 203 | "type": "ui_group", 204 | "name": "Function", 205 | "tab": "a07e435a3a0251e7", 206 | "order": 1, 207 | "disp": true, 208 | "width": 10, 209 | "collapse": false, 210 | "className": "" 211 | }, 212 | { 213 | "id": "a07e435a3a0251e7", 214 | "type": "ui_tab", 215 | "name": "Chart", 216 | "icon": "dashboard", 217 | "order": 1, 218 | "disabled": false, 219 | "hidden": false 220 | } 221 | ] -------------------------------------------------------------------------------- /04_Dashboard/02_Outputs/05_PieChart.json: -------------------------------------------------------------------------------- 1 | [{"id":"f697deb347549f7d","type":"group","z":"f1988a2794fd0fbf","name":"Pie Chart","style":{"label":true},"nodes":["ed37225d3ec5916f","fcef724ad3a906c3","1baa1f3dede4e3fb","339045e2a702d164","681a7f8089812238","b8bde0a7d7ae6667"],"x":34,"y":19,"w":592,"h":202},{"id":"ed37225d3ec5916f","type":"ui_chart","z":"f1988a2794fd0fbf","g":"f697deb347549f7d","name":"","group":"dd885df6ad54c298","order":1,"width":10,"height":6,"label":"Sales","chartType":"pie","legend":"true","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"3600","cutout":"75","useOneColor":false,"useUTC":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"outputs":1,"x":550,"y":60,"wires":[[]]},{"id":"fcef724ad3a906c3","type":"function","z":"f1988a2794fd0fbf","g":"f697deb347549f7d","name":"Phone Sales","func":"msg.payload = Math.random() * 100\nmsg.topic = \"Phones\"\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":350,"y":60,"wires":[["ed37225d3ec5916f"]]},{"id":"1baa1f3dede4e3fb","type":"function","z":"f1988a2794fd0fbf","g":"f697deb347549f7d","name":"Laptop Sales","func":"msg.payload = Math.random() * 100\nmsg.topic = \"Laptops\"\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":350,"y":100,"wires":[["ed37225d3ec5916f"]]},{"id":"339045e2a702d164","type":"function","z":"f1988a2794fd0fbf","g":"f697deb347549f7d","name":"Tablet Sales","func":"msg.payload = Math.random() * 100\nmsg.topic = \"Tablets\"\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":350,"y":140,"wires":[["ed37225d3ec5916f"]]},{"id":"681a7f8089812238","type":"ui_button","z":"f1988a2794fd0fbf","g":"f697deb347549f7d","name":"","group":"dd885df6ad54c298","order":2,"width":5,"height":1,"passthru":false,"label":"Clear Data","tooltip":"","color":"","bgcolor":"red","icon":"","payload":"[]","payloadType":"json","topic":"","x":350,"y":180,"wires":[["ed37225d3ec5916f"]]},{"id":"b8bde0a7d7ae6667","type":"ui_button","z":"f1988a2794fd0fbf","g":"f697deb347549f7d","name":"","group":"dd885df6ad54c298","order":3,"width":5,"height":1,"passthru":false,"label":"Show Data","tooltip":"","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"","x":130,"y":60,"wires":[["fcef724ad3a906c3","1baa1f3dede4e3fb","339045e2a702d164"]]},{"id":"dd885df6ad54c298","type":"ui_group","name":"Function","tab":"7da32361575dc2ea","order":1,"disp":true,"width":10,"collapse":false},{"id":"7da32361575dc2ea","type":"ui_tab","name":"Chart","icon":"dashboard","order":1,"disabled":false,"hidden":false}] -------------------------------------------------------------------------------- /04_Dashboard/02_Outputs/06_PolarChart.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "b4cb35f407c6fd3f", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Polar Chart", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "7bfd97bedf75e679", 12 | "06a7ab11ddecdac5", 13 | "b129cea19422be95", 14 | "83e6578f817b02be", 15 | "6c69bc5d55e2dc56", 16 | "e71b6d096dc9018e" 17 | ], 18 | "x": 34, 19 | "y": 19, 20 | "w": 572, 21 | "h": 202 22 | }, 23 | { 24 | "id": "7bfd97bedf75e679", 25 | "type": "ui_chart", 26 | "z": "f6f2187d.f17ca8", 27 | "g": "b4cb35f407c6fd3f", 28 | "name": "", 29 | "group": "c99b4d50d24216dc", 30 | "order": 1, 31 | "width": 10, 32 | "height": 6, 33 | "label": "Sales", 34 | "chartType": "polar-area", 35 | "legend": "true", 36 | "xformat": "HH:mm:ss", 37 | "interpolate": "linear", 38 | "nodata": "No Data Available", 39 | "dot": false, 40 | "ymin": "0", 41 | "ymax": "100", 42 | "removeOlder": 1, 43 | "removeOlderPoints": "", 44 | "removeOlderUnit": "3600", 45 | "cutout": 0, 46 | "useOneColor": false, 47 | "useUTC": false, 48 | "colors": [ 49 | "#1f77b4", 50 | "#aec7e8", 51 | "#ff7f0e", 52 | "#2ca02c", 53 | "#98df8a", 54 | "#d62728", 55 | "#ff9896", 56 | "#9467bd", 57 | "#c5b0d5" 58 | ], 59 | "outputs": 1, 60 | "useDifferentColor": false, 61 | "className": "", 62 | "x": 530, 63 | "y": 60, 64 | "wires": [ 65 | [] 66 | ] 67 | }, 68 | { 69 | "id": "06a7ab11ddecdac5", 70 | "type": "ui_button", 71 | "z": "f6f2187d.f17ca8", 72 | "g": "b4cb35f407c6fd3f", 73 | "name": "", 74 | "group": "c99b4d50d24216dc", 75 | "order": 3, 76 | "width": 5, 77 | "height": 1, 78 | "passthru": false, 79 | "label": "Show Data", 80 | "tooltip": "", 81 | "color": "", 82 | "bgcolor": "", 83 | "className": "", 84 | "icon": "", 85 | "payload": "", 86 | "payloadType": "str", 87 | "topic": "topic", 88 | "topicType": "msg", 89 | "x": 130, 90 | "y": 60, 91 | "wires": [ 92 | [ 93 | "83e6578f817b02be", 94 | "6c69bc5d55e2dc56", 95 | "e71b6d096dc9018e" 96 | ] 97 | ] 98 | }, 99 | { 100 | "id": "b129cea19422be95", 101 | "type": "ui_button", 102 | "z": "f6f2187d.f17ca8", 103 | "g": "b4cb35f407c6fd3f", 104 | "name": "", 105 | "group": "c99b4d50d24216dc", 106 | "order": 2, 107 | "width": 5, 108 | "height": 1, 109 | "passthru": false, 110 | "label": "Clear Data", 111 | "tooltip": "", 112 | "color": "", 113 | "bgcolor": "red", 114 | "className": "", 115 | "icon": "", 116 | "payload": "[]", 117 | "payloadType": "json", 118 | "topic": "topic", 119 | "topicType": "msg", 120 | "x": 330, 121 | "y": 180, 122 | "wires": [ 123 | [ 124 | "7bfd97bedf75e679" 125 | ] 126 | ] 127 | }, 128 | { 129 | "id": "83e6578f817b02be", 130 | "type": "function", 131 | "z": "f6f2187d.f17ca8", 132 | "g": "b4cb35f407c6fd3f", 133 | "name": "Phone Sales", 134 | "func": "msg.payload = Math.random()* 100\nmsg.topic = \"Phones\"\nreturn msg;", 135 | "outputs": 1, 136 | "noerr": 0, 137 | "initialize": "", 138 | "finalize": "", 139 | "libs": [], 140 | "x": 330, 141 | "y": 60, 142 | "wires": [ 143 | [ 144 | "7bfd97bedf75e679" 145 | ] 146 | ] 147 | }, 148 | { 149 | "id": "6c69bc5d55e2dc56", 150 | "type": "function", 151 | "z": "f6f2187d.f17ca8", 152 | "g": "b4cb35f407c6fd3f", 153 | "name": "Laptop Sales", 154 | "func": "msg.payload = Math.random()* 100\nmsg.topic = \"Laptops\"\nreturn msg;", 155 | "outputs": 1, 156 | "noerr": 0, 157 | "initialize": "", 158 | "finalize": "", 159 | "libs": [], 160 | "x": 330, 161 | "y": 100, 162 | "wires": [ 163 | [ 164 | "7bfd97bedf75e679" 165 | ] 166 | ] 167 | }, 168 | { 169 | "id": "e71b6d096dc9018e", 170 | "type": "function", 171 | "z": "f6f2187d.f17ca8", 172 | "g": "b4cb35f407c6fd3f", 173 | "name": "Tablet Sales", 174 | "func": "msg.payload = Math.random()* 100\nmsg.topic = \"Tablets\"\nreturn msg;", 175 | "outputs": 1, 176 | "noerr": 0, 177 | "initialize": "", 178 | "finalize": "", 179 | "libs": [], 180 | "x": 330, 181 | "y": 140, 182 | "wires": [ 183 | [ 184 | "7bfd97bedf75e679" 185 | ] 186 | ] 187 | }, 188 | { 189 | "id": "c99b4d50d24216dc", 190 | "type": "ui_group", 191 | "name": "Function", 192 | "tab": "780fcd06a36f8f80", 193 | "order": 1, 194 | "disp": true, 195 | "width": 10, 196 | "collapse": false, 197 | "className": "" 198 | }, 199 | { 200 | "id": "780fcd06a36f8f80", 201 | "type": "ui_tab", 202 | "name": "Chart", 203 | "icon": "dashboard", 204 | "order": 1, 205 | "disabled": false, 206 | "hidden": false 207 | } 208 | ] -------------------------------------------------------------------------------- /04_Dashboard/02_Outputs/07_RadarChart.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "72b95070f63bc0fc", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Radar Chart", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "b05637431845096b", 12 | "128ddba784e535d5", 13 | "29042ad2a54642ef", 14 | "80b933406ebaca96" 15 | ], 16 | "x": 174, 17 | "y": 79, 18 | "w": 592, 19 | "h": 122 20 | }, 21 | { 22 | "id": "b05637431845096b", 23 | "type": "ui_chart", 24 | "z": "f6f2187d.f17ca8", 25 | "g": "72b95070f63bc0fc", 26 | "name": "", 27 | "group": "d28ce36e84a59828", 28 | "order": 1, 29 | "width": 10, 30 | "height": 6, 31 | "label": "Budget", 32 | "chartType": "radar", 33 | "legend": "true", 34 | "xformat": "HH:mm:ss", 35 | "interpolate": "linear", 36 | "nodata": "No Data Available", 37 | "dot": false, 38 | "ymin": "0", 39 | "ymax": "100", 40 | "removeOlder": 1, 41 | "removeOlderPoints": "", 42 | "removeOlderUnit": "3600", 43 | "cutout": 0, 44 | "useOneColor": false, 45 | "useUTC": false, 46 | "colors": [ 47 | "#1f77b4", 48 | "#aec7e8", 49 | "#ff7f0e", 50 | "#2ca02c", 51 | "#98df8a", 52 | "#d62728", 53 | "#ff9896", 54 | "#9467bd", 55 | "#c5b0d5" 56 | ], 57 | "outputs": 1, 58 | "useDifferentColor": false, 59 | "className": "", 60 | "x": 680, 61 | "y": 120, 62 | "wires": [ 63 | [] 64 | ] 65 | }, 66 | { 67 | "id": "128ddba784e535d5", 68 | "type": "ui_button", 69 | "z": "f6f2187d.f17ca8", 70 | "g": "72b95070f63bc0fc", 71 | "name": "", 72 | "group": "d28ce36e84a59828", 73 | "order": 2, 74 | "width": 5, 75 | "height": 1, 76 | "passthru": false, 77 | "label": "Clear Data", 78 | "tooltip": "Clear data on Chart", 79 | "color": "", 80 | "bgcolor": "red", 81 | "className": "", 82 | "icon": "", 83 | "payload": "[]", 84 | "payloadType": "json", 85 | "topic": "topic", 86 | "topicType": "msg", 87 | "x": 470, 88 | "y": 160, 89 | "wires": [ 90 | [ 91 | "b05637431845096b" 92 | ] 93 | ] 94 | }, 95 | { 96 | "id": "29042ad2a54642ef", 97 | "type": "ui_button", 98 | "z": "f6f2187d.f17ca8", 99 | "g": "72b95070f63bc0fc", 100 | "name": "", 101 | "group": "d28ce36e84a59828", 102 | "order": 3, 103 | "width": 5, 104 | "height": 1, 105 | "passthru": false, 106 | "label": "Show Data", 107 | "tooltip": "Show data on Chart", 108 | "color": "", 109 | "bgcolor": "", 110 | "className": "", 111 | "icon": "", 112 | "payload": "", 113 | "payloadType": "str", 114 | "topic": "topic", 115 | "topicType": "msg", 116 | "x": 270, 117 | "y": 120, 118 | "wires": [ 119 | [ 120 | "80b933406ebaca96" 121 | ] 122 | ] 123 | }, 124 | { 125 | "id": "80b933406ebaca96", 126 | "type": "function", 127 | "z": "f6f2187d.f17ca8", 128 | "g": "72b95070f63bc0fc", 129 | "name": "Budget", 130 | "func": "// Create random budget for allocated budget and acutal spending\n// Creates array with 3 random numbers ranging from 0 to 100\nconst allocated_budget = Array.from({length: 3}, () => Math.random() * 100)\nconst actual_spending = Array.from({length: 3}, () => Math.random() * 100)\n\n// Create data Object\nconst data = {\n \"series\" : [\"actual\",\"allocated\"],\n \"data\" : [actual_spending,allocated_budget],\n \"labels\" : [\"Phones\",\"Laptops\",\"Tablets\"]\n}\n\n// write data to msg.payload\nmsg.payload = [data]\n\n// return data object\nreturn msg;", 131 | "outputs": 1, 132 | "noerr": 0, 133 | "initialize": "", 134 | "finalize": "", 135 | "libs": [], 136 | "x": 480, 137 | "y": 120, 138 | "wires": [ 139 | [ 140 | "b05637431845096b" 141 | ] 142 | ] 143 | }, 144 | { 145 | "id": "d28ce36e84a59828", 146 | "type": "ui_group", 147 | "name": "Function", 148 | "tab": "ad35f079cc3fbe09", 149 | "order": 1, 150 | "disp": true, 151 | "width": 10, 152 | "collapse": false, 153 | "className": "" 154 | }, 155 | { 156 | "id": "ad35f079cc3fbe09", 157 | "type": "ui_tab", 158 | "name": "Chart", 159 | "icon": "dashboard", 160 | "order": 1, 161 | "disabled": false, 162 | "hidden": false 163 | } 164 | ] -------------------------------------------------------------------------------- /04_Dashboard/02_Outputs/08_AudioOut.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "fd0dfb107c0e767e", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Audio Out", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "cff12b04bc4c6a83", 12 | "c2828b16f50cc7b0", 13 | "c6e07c149fd9523b", 14 | "32416ac4cacb531c", 15 | "d1f0f3ebc9d096e1", 16 | "84c059b9a3be577c", 17 | "7c326d74c0a9fab1" 18 | ], 19 | "x": 274, 20 | "y": 79, 21 | "w": 612, 22 | "h": 162 23 | }, 24 | { 25 | "id": "cff12b04bc4c6a83", 26 | "type": "ui_audio", 27 | "z": "f6f2187d.f17ca8", 28 | "g": "fd0dfb107c0e767e", 29 | "name": "", 30 | "group": "e169516c809e1bb3", 31 | "voice": "com.apple.speech.synthesis.voice.daniel", 32 | "always": "", 33 | "x": 800, 34 | "y": 120, 35 | "wires": [] 36 | }, 37 | { 38 | "id": "c2828b16f50cc7b0", 39 | "type": "ui_button", 40 | "z": "f6f2187d.f17ca8", 41 | "g": "fd0dfb107c0e767e", 42 | "name": "", 43 | "group": "e169516c809e1bb3", 44 | "order": 3, 45 | "width": 5, 46 | "height": 1, 47 | "passthru": false, 48 | "label": "Speech", 49 | "tooltip": "Speech Text", 50 | "color": "", 51 | "bgcolor": "", 52 | "className": "", 53 | "icon": "", 54 | "payload": "This is my text", 55 | "payloadType": "str", 56 | "topic": "topic", 57 | "topicType": "msg", 58 | "x": 360, 59 | "y": 120, 60 | "wires": [ 61 | [ 62 | "d1f0f3ebc9d096e1" 63 | ] 64 | ] 65 | }, 66 | { 67 | "id": "c6e07c149fd9523b", 68 | "type": "ui_text_input", 69 | "z": "f6f2187d.f17ca8", 70 | "g": "fd0dfb107c0e767e", 71 | "name": "", 72 | "label": "Text To Speech", 73 | "tooltip": "Enter the text you want to be read", 74 | "group": "e169516c809e1bb3", 75 | "order": 1, 76 | "width": 10, 77 | "height": 1, 78 | "passthru": true, 79 | "mode": "text", 80 | "delay": 300, 81 | "topic": "topic", 82 | "sendOnBlur": true, 83 | "className": "", 84 | "topicType": "msg", 85 | "x": 380, 86 | "y": 160, 87 | "wires": [ 88 | [ 89 | "32416ac4cacb531c" 90 | ] 91 | ] 92 | }, 93 | { 94 | "id": "32416ac4cacb531c", 95 | "type": "change", 96 | "z": "f6f2187d.f17ca8", 97 | "g": "fd0dfb107c0e767e", 98 | "name": "", 99 | "rules": [ 100 | { 101 | "t": "set", 102 | "p": "Text", 103 | "pt": "flow", 104 | "to": "payload", 105 | "tot": "msg" 106 | } 107 | ], 108 | "action": "", 109 | "property": "", 110 | "from": "", 111 | "to": "", 112 | "reg": false, 113 | "x": 610, 114 | "y": 160, 115 | "wires": [ 116 | [] 117 | ] 118 | }, 119 | { 120 | "id": "d1f0f3ebc9d096e1", 121 | "type": "change", 122 | "z": "f6f2187d.f17ca8", 123 | "g": "fd0dfb107c0e767e", 124 | "name": "", 125 | "rules": [ 126 | { 127 | "t": "set", 128 | "p": "payload", 129 | "pt": "msg", 130 | "to": "Text", 131 | "tot": "flow" 132 | }, 133 | { 134 | "t": "set", 135 | "p": "level", 136 | "pt": "msg", 137 | "to": "Volume", 138 | "tot": "flow" 139 | } 140 | ], 141 | "action": "", 142 | "property": "", 143 | "from": "", 144 | "to": "", 145 | "reg": false, 146 | "x": 580, 147 | "y": 120, 148 | "wires": [ 149 | [ 150 | "cff12b04bc4c6a83" 151 | ] 152 | ] 153 | }, 154 | { 155 | "id": "84c059b9a3be577c", 156 | "type": "ui_slider", 157 | "z": "f6f2187d.f17ca8", 158 | "g": "fd0dfb107c0e767e", 159 | "name": "", 160 | "label": "Volume", 161 | "tooltip": "", 162 | "group": "e169516c809e1bb3", 163 | "order": 2, 164 | "width": 5, 165 | "height": 1, 166 | "passthru": true, 167 | "outs": "end", 168 | "topic": "topic", 169 | "topicType": "msg", 170 | "min": "20", 171 | "max": "100", 172 | "step": 1, 173 | "className": "", 174 | "x": 360, 175 | "y": 200, 176 | "wires": [ 177 | [ 178 | "7c326d74c0a9fab1" 179 | ] 180 | ] 181 | }, 182 | { 183 | "id": "7c326d74c0a9fab1", 184 | "type": "change", 185 | "z": "f6f2187d.f17ca8", 186 | "g": "fd0dfb107c0e767e", 187 | "name": "", 188 | "rules": [ 189 | { 190 | "t": "set", 191 | "p": "Volume", 192 | "pt": "flow", 193 | "to": "payload", 194 | "tot": "msg" 195 | } 196 | ], 197 | "action": "", 198 | "property": "", 199 | "from": "", 200 | "to": "", 201 | "reg": false, 202 | "x": 580, 203 | "y": 200, 204 | "wires": [ 205 | [] 206 | ] 207 | }, 208 | { 209 | "id": "e169516c809e1bb3", 210 | "type": "ui_group", 211 | "name": "Function", 212 | "tab": "f19a4278c19306dc", 213 | "order": 1, 214 | "disp": true, 215 | "width": 10, 216 | "collapse": false, 217 | "className": "" 218 | }, 219 | { 220 | "id": "f19a4278c19306dc", 221 | "type": "ui_tab", 222 | "name": "Audio", 223 | "icon": "dashboard", 224 | "order": 1, 225 | "disabled": false, 226 | "hidden": false 227 | } 228 | ] -------------------------------------------------------------------------------- /04_Dashboard/02_Outputs/10_gauge_runtime.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "8a2548731aa9b535", 4 | "type": "ui_gauge", 5 | "z": "ab7cdbcd4ebd23cc", 6 | "name": "", 7 | "group": "32738da6e41cefae", 8 | "order": 0, 9 | "width": 0, 10 | "height": 0, 11 | "gtype": "donut", 12 | "title": "gauge", 13 | "label": "units", 14 | "format": "{{value}}", 15 | "min": 0, 16 | "max": 10, 17 | "colors": [ 18 | "#00b500", 19 | "#e6e600", 20 | "#ca3838" 21 | ], 22 | "seg1": "1", 23 | "seg2": "4", 24 | "diff": false, 25 | "className": "", 26 | "x": 610, 27 | "y": 320, 28 | "wires": [] 29 | }, 30 | { 31 | "id": "277fc8f7a2d46e40", 32 | "type": "inject", 33 | "z": "ab7cdbcd4ebd23cc", 34 | "name": "", 35 | "props": [ 36 | { 37 | "p": "payload" 38 | }, 39 | { 40 | "p": "topic", 41 | "vt": "str" 42 | } 43 | ], 44 | "repeat": "", 45 | "crontab": "", 46 | "once": false, 47 | "onceDelay": 0.1, 48 | "topic": "", 49 | "payload": "-1", 50 | "payloadType": "num", 51 | "x": 210, 52 | "y": 320, 53 | "wires": [ 54 | [ 55 | "c6c9865e4245a9ec" 56 | ] 57 | ] 58 | }, 59 | { 60 | "id": "c6c9865e4245a9ec", 61 | "type": "function", 62 | "z": "ab7cdbcd4ebd23cc", 63 | "name": "function 1", 64 | "func": "const value = msg.payload\n\n\nmsg = {\n ui_control:{\n gtype: \"gage\",\n min: -10,\n max: 100,\n colors: [\"blue\", \"red\", \"green\"],\n seg1: 10,\n seg2: 60\n }, \n payload: value\n}\n\nreturn msg;", 65 | "outputs": 1, 66 | "noerr": 0, 67 | "initialize": "", 68 | "finalize": "", 69 | "libs": [], 70 | "x": 420, 71 | "y": 320, 72 | "wires": [ 73 | [ 74 | "8a2548731aa9b535" 75 | ] 76 | ] 77 | }, 78 | { 79 | "id": "32738da6e41cefae", 80 | "type": "ui_group", 81 | "name": "Default", 82 | "tab": "2ccfa150d6fb4300", 83 | "order": 1, 84 | "disp": true, 85 | "width": "6", 86 | "collapse": false, 87 | "className": "" 88 | }, 89 | { 90 | "id": "2ccfa150d6fb4300", 91 | "type": "ui_tab", 92 | "name": "Home", 93 | "icon": "dashboard", 94 | "disabled": false, 95 | "hidden": false 96 | } 97 | ] -------------------------------------------------------------------------------- /04_Dashboard/02_Outputs/11_Chart_DB_Data.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "f6f2187d.f17ca8", 4 | "type": "tab", 5 | "label": "Flow 1", 6 | "disabled": false, 7 | "info": "" 8 | }, 9 | { 10 | "id": "8b3364bd4e745821", 11 | "type": "ui_button", 12 | "z": "f6f2187d.f17ca8", 13 | "name": "", 14 | "group": "780d3622f86e7d7c", 15 | "order": 2, 16 | "width": 5, 17 | "height": 1, 18 | "passthru": false, 19 | "label": "Refresh Data", 20 | "tooltip": "Load Data from Database", 21 | "color": "", 22 | "bgcolor": "", 23 | "className": "", 24 | "icon": "fa-refresh", 25 | "payload": "", 26 | "payloadType": "str", 27 | "topic": "topic", 28 | "topicType": "msg", 29 | "x": 240, 30 | "y": 200, 31 | "wires": [ 32 | [ 33 | "49dc340bd4d63a8c" 34 | ] 35 | ] 36 | }, 37 | { 38 | "id": "49dc340bd4d63a8c", 39 | "type": "function", 40 | "z": "f6f2187d.f17ca8", 41 | "name": "Get Sensor Values", 42 | "func": "msg.topic = \"SELECT * FROM sensor_values;\";\nreturn msg;", 43 | "outputs": 1, 44 | "timeout": 0, 45 | "noerr": 0, 46 | "initialize": "", 47 | "finalize": "", 48 | "libs": [], 49 | "x": 490, 50 | "y": 200, 51 | "wires": [ 52 | [ 53 | "e8382d6a1b857b0d" 54 | ] 55 | ] 56 | }, 57 | { 58 | "id": "e8382d6a1b857b0d", 59 | "type": "mysql", 60 | "z": "f6f2187d.f17ca8", 61 | "mydb": "0d1c8d3322f61aa7", 62 | "name": "", 63 | "x": 730, 64 | "y": 200, 65 | "wires": [ 66 | [ 67 | "178f15e897844867", 68 | "da3cae2058f3328b" 69 | ] 70 | ] 71 | }, 72 | { 73 | "id": "178f15e897844867", 74 | "type": "debug", 75 | "z": "f6f2187d.f17ca8", 76 | "name": "debug 1", 77 | "active": true, 78 | "tosidebar": true, 79 | "console": false, 80 | "tostatus": false, 81 | "complete": "false", 82 | "statusVal": "", 83 | "statusType": "auto", 84 | "x": 940, 85 | "y": 260, 86 | "wires": [] 87 | }, 88 | { 89 | "id": "2a29e091c298434b", 90 | "type": "ui_chart", 91 | "z": "f6f2187d.f17ca8", 92 | "name": "", 93 | "group": "780d3622f86e7d7c", 94 | "order": 1, 95 | "width": 10, 96 | "height": 6, 97 | "label": "Values", 98 | "chartType": "line", 99 | "legend": "true", 100 | "xformat": "HH:mm", 101 | "interpolate": "linear", 102 | "nodata": "No Data Available", 103 | "dot": false, 104 | "ymin": "", 105 | "ymax": "", 106 | "removeOlder": 1, 107 | "removeOlderPoints": "", 108 | "removeOlderUnit": "3600", 109 | "cutout": 0, 110 | "useOneColor": false, 111 | "useUTC": false, 112 | "colors": [ 113 | "#1f77b4", 114 | "#aec7e8", 115 | "#ff7f0e", 116 | "#2ca02c", 117 | "#98df8a", 118 | "#d62728", 119 | "#ff9896", 120 | "#9467bd", 121 | "#c5b0d5" 122 | ], 123 | "outputs": 1, 124 | "useDifferentColor": false, 125 | "className": "", 126 | "x": 1150, 127 | "y": 200, 128 | "wires": [ 129 | [] 130 | ] 131 | }, 132 | { 133 | "id": "e01f5c662f4017ad", 134 | "type": "ui_button", 135 | "z": "f6f2187d.f17ca8", 136 | "name": "", 137 | "group": "780d3622f86e7d7c", 138 | "order": 3, 139 | "width": 5, 140 | "height": 1, 141 | "passthru": false, 142 | "label": "Delete Chart Data", 143 | "tooltip": "Deletes Data in Chart", 144 | "color": "", 145 | "bgcolor": "red", 146 | "className": "", 147 | "icon": "fa-trash", 148 | "payload": "[]", 149 | "payloadType": "json", 150 | "topic": "topic", 151 | "topicType": "msg", 152 | "x": 870, 153 | "y": 140, 154 | "wires": [ 155 | [ 156 | "2a29e091c298434b" 157 | ] 158 | ] 159 | }, 160 | { 161 | "id": "da3cae2058f3328b", 162 | "type": "function", 163 | "z": "f6f2187d.f17ca8", 164 | "name": "Plot DB Data", 165 | "func": "const inp = msg.payload;\n\n// Create empty chart object\nvar outObj = [{\n series: [\"Sensor Values\"],\n data: [[]],\n lables: [\"\"]\n}]\n\n// Fill chart Object with Data\nfor (let item of inp) {\n outObj[0].data[0].push({\n x: item.timestamp,\n y: item.values\n })\n}\n\nmsg.payload = outObj;\n\nreturn msg;", 166 | "outputs": 1, 167 | "timeout": 0, 168 | "noerr": 0, 169 | "initialize": "", 170 | "finalize": "", 171 | "libs": [], 172 | "x": 950, 173 | "y": 200, 174 | "wires": [ 175 | [ 176 | "2a29e091c298434b" 177 | ] 178 | ] 179 | }, 180 | { 181 | "id": "780d3622f86e7d7c", 182 | "type": "ui_group", 183 | "name": "Sensor Values", 184 | "tab": "6d0b5357286648fe", 185 | "order": 1, 186 | "disp": true, 187 | "width": 10, 188 | "collapse": false, 189 | "className": "" 190 | }, 191 | { 192 | "id": "0d1c8d3322f61aa7", 193 | "type": "MySQLdatabase", 194 | "name": "", 195 | "host": "my_sql", 196 | "port": "3306", 197 | "db": "development", 198 | "tz": "", 199 | "charset": "UTF8" 200 | }, 201 | { 202 | "id": "6d0b5357286648fe", 203 | "type": "ui_tab", 204 | "name": "DB", 205 | "icon": "dashboard", 206 | "order": 1, 207 | "disabled": false, 208 | "hidden": false 209 | } 210 | ] -------------------------------------------------------------------------------- /04_Dashboard/03_Other/02_Template_Button.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "b0d3da3bfcc77ee6", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Template Button Style", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "844ca1fd94120d73", 12 | "4358dd94da0d2d11", 13 | "bf905065df6589d7" 14 | ], 15 | "x": 34, 16 | "y": 19, 17 | "w": 412, 18 | "h": 142 19 | }, 20 | { 21 | "id": "844ca1fd94120d73", 22 | "type": "ui_button", 23 | "z": "f6f2187d.f17ca8", 24 | "g": "b0d3da3bfcc77ee6", 25 | "name": "", 26 | "group": "7d09ae53b0d3d684", 27 | "order": 0, 28 | "width": 0, 29 | "height": 0, 30 | "passthru": false, 31 | "label": "button", 32 | "tooltip": "", 33 | "color": "", 34 | "bgcolor": "", 35 | "className": "btn1", 36 | "icon": "", 37 | "payload": "Button pressed", 38 | "payloadType": "str", 39 | "topic": "topic", 40 | "topicType": "msg", 41 | "x": 110, 42 | "y": 60, 43 | "wires": [ 44 | [ 45 | "4358dd94da0d2d11" 46 | ] 47 | ] 48 | }, 49 | { 50 | "id": "4358dd94da0d2d11", 51 | "type": "ui_toast", 52 | "z": "f6f2187d.f17ca8", 53 | "g": "b0d3da3bfcc77ee6", 54 | "position": "top right", 55 | "displayTime": "3", 56 | "highlight": "green", 57 | "sendall": true, 58 | "outputs": 0, 59 | "ok": "OK", 60 | "cancel": "", 61 | "raw": false, 62 | "className": "", 63 | "topic": "Action", 64 | "name": "", 65 | "x": 330, 66 | "y": 60, 67 | "wires": [] 68 | }, 69 | { 70 | "id": "bf905065df6589d7", 71 | "type": "ui_template", 72 | "z": "f6f2187d.f17ca8", 73 | "g": "b0d3da3bfcc77ee6", 74 | "group": "7d09ae53b0d3d684", 75 | "name": "btn1 Style", 76 | "order": 1, 77 | "width": 0, 78 | "height": 0, 79 | "format": "", 80 | "storeOutMessages": true, 81 | "fwdInMessages": true, 82 | "resendOnRefresh": true, 83 | "templateScope": "local", 84 | "className": "", 85 | "x": 120, 86 | "y": 120, 87 | "wires": [ 88 | [] 89 | ] 90 | }, 91 | { 92 | "id": "7d09ae53b0d3d684", 93 | "type": "ui_group", 94 | "name": "Style", 95 | "tab": "040b9f517e659560", 96 | "order": 1, 97 | "disp": true, 98 | "width": "6", 99 | "collapse": false, 100 | "className": "" 101 | }, 102 | { 103 | "id": "040b9f517e659560", 104 | "type": "ui_tab", 105 | "name": "Template", 106 | "icon": "dashboard", 107 | "order": 1, 108 | "disabled": false, 109 | "hidden": false 110 | } 111 | ] -------------------------------------------------------------------------------- /04_Dashboard/03_Other/03_Template_Dropdown.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "f13c49dcd9ef2f2d", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Template Dropdown Style", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "9833f685fdd98c8f", 12 | "0ce948dd95516b5f", 13 | "db7e747ce7a157b3" 14 | ], 15 | "x": 134, 16 | "y": 19, 17 | "w": 492, 18 | "h": 142 19 | }, 20 | { 21 | "id": "9833f685fdd98c8f", 22 | "type": "ui_dropdown", 23 | "z": "f6f2187d.f17ca8", 24 | "g": "f13c49dcd9ef2f2d", 25 | "name": "", 26 | "label": "Select Topic", 27 | "tooltip": "Select the Topic", 28 | "place": "Select option", 29 | "group": "fd0c596d80b9d863", 30 | "order": 0, 31 | "width": 0, 32 | "height": 0, 33 | "passthru": true, 34 | "multiple": false, 35 | "options": [ 36 | { 37 | "label": "Topic1", 38 | "value": "Topic 1", 39 | "type": "str" 40 | }, 41 | { 42 | "label": "Topic2", 43 | "value": "Topic 2", 44 | "type": "str" 45 | } 46 | ], 47 | "payload": "", 48 | "topic": "topic", 49 | "topicType": "msg", 50 | "className": "drop1", 51 | "x": 230, 52 | "y": 60, 53 | "wires": [ 54 | [ 55 | "0ce948dd95516b5f" 56 | ] 57 | ] 58 | }, 59 | { 60 | "id": "0ce948dd95516b5f", 61 | "type": "ui_toast", 62 | "z": "f6f2187d.f17ca8", 63 | "g": "f13c49dcd9ef2f2d", 64 | "position": "top right", 65 | "displayTime": "3", 66 | "highlight": "green", 67 | "sendall": true, 68 | "outputs": 0, 69 | "ok": "OK", 70 | "cancel": "", 71 | "raw": false, 72 | "className": "", 73 | "topic": "Action", 74 | "name": "", 75 | "x": 510, 76 | "y": 60, 77 | "wires": [] 78 | }, 79 | { 80 | "id": "db7e747ce7a157b3", 81 | "type": "ui_template", 82 | "z": "f6f2187d.f17ca8", 83 | "g": "f13c49dcd9ef2f2d", 84 | "group": "fd0c596d80b9d863", 85 | "name": "", 86 | "order": 1, 87 | "width": 0, 88 | "height": 0, 89 | "format": "", 90 | "storeOutMessages": true, 91 | "fwdInMessages": true, 92 | "resendOnRefresh": true, 93 | "templateScope": "local", 94 | "className": "", 95 | "x": 220, 96 | "y": 120, 97 | "wires": [ 98 | [] 99 | ] 100 | }, 101 | { 102 | "id": "fd0c596d80b9d863", 103 | "type": "ui_group", 104 | "name": "Style", 105 | "tab": "0a81ed89a23a4995", 106 | "order": 1, 107 | "disp": true, 108 | "width": "6", 109 | "collapse": false, 110 | "className": "" 111 | }, 112 | { 113 | "id": "0a81ed89a23a4995", 114 | "type": "ui_tab", 115 | "name": "Template", 116 | "icon": "dashboard", 117 | "order": 1, 118 | "disabled": false, 119 | "hidden": false 120 | } 121 | ] -------------------------------------------------------------------------------- /04_Dashboard/03_Other/04_Template_Switch.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "3a30d8c805b531b3", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Template Switch Style", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "18a14d2495dfa954", 12 | "b7ca859dda1a4f6c", 13 | "81517dc5ee5f03e8" 14 | ], 15 | "x": 74, 16 | "y": 39, 17 | "w": 392, 18 | "h": 142 19 | }, 20 | { 21 | "id": "18a14d2495dfa954", 22 | "type": "ui_switch", 23 | "z": "f6f2187d.f17ca8", 24 | "g": "3a30d8c805b531b3", 25 | "name": "", 26 | "label": "switch", 27 | "tooltip": "", 28 | "group": "69181bb2f8f4e49c", 29 | "order": 0, 30 | "width": 0, 31 | "height": 0, 32 | "passthru": true, 33 | "decouple": "false", 34 | "topic": "topic", 35 | "topicType": "msg", 36 | "style": "", 37 | "onvalue": "true", 38 | "onvalueType": "bool", 39 | "onicon": "", 40 | "oncolor": "", 41 | "offvalue": "false", 42 | "offvalueType": "bool", 43 | "officon": "", 44 | "offcolor": "", 45 | "animate": false, 46 | "className": "sw1", 47 | "x": 150, 48 | "y": 80, 49 | "wires": [ 50 | [ 51 | "81517dc5ee5f03e8" 52 | ] 53 | ] 54 | }, 55 | { 56 | "id": "b7ca859dda1a4f6c", 57 | "type": "ui_template", 58 | "z": "f6f2187d.f17ca8", 59 | "g": "3a30d8c805b531b3", 60 | "group": "69181bb2f8f4e49c", 61 | "name": "", 62 | "order": 1, 63 | "width": 0, 64 | "height": 0, 65 | "format": "", 66 | "storeOutMessages": true, 67 | "fwdInMessages": true, 68 | "resendOnRefresh": true, 69 | "templateScope": "local", 70 | "className": "", 71 | "x": 160, 72 | "y": 140, 73 | "wires": [ 74 | [] 75 | ] 76 | }, 77 | { 78 | "id": "81517dc5ee5f03e8", 79 | "type": "ui_toast", 80 | "z": "f6f2187d.f17ca8", 81 | "g": "3a30d8c805b531b3", 82 | "position": "top right", 83 | "displayTime": "3", 84 | "highlight": "green", 85 | "sendall": true, 86 | "outputs": 0, 87 | "ok": "OK", 88 | "cancel": "", 89 | "raw": false, 90 | "className": "", 91 | "topic": "Action", 92 | "name": "", 93 | "x": 350, 94 | "y": 80, 95 | "wires": [] 96 | }, 97 | { 98 | "id": "69181bb2f8f4e49c", 99 | "type": "ui_group", 100 | "name": "Style", 101 | "tab": "b18e89da76b8c5a1", 102 | "order": 1, 103 | "disp": true, 104 | "width": "6", 105 | "collapse": false, 106 | "className": "" 107 | }, 108 | { 109 | "id": "b18e89da76b8c5a1", 110 | "type": "ui_tab", 111 | "name": "Template", 112 | "icon": "dashboard", 113 | "order": 1, 114 | "disabled": false, 115 | "hidden": false 116 | } 117 | ] -------------------------------------------------------------------------------- /04_Dashboard/03_Other/05_Template_Slider.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "8b6a55fae82e4556", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Template Slider Style", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "1d3be2d7e5dbc7b0", 12 | "477a49036fc81304", 13 | "228b7aa88f895b44" 14 | ], 15 | "x": 54, 16 | "y": 39, 17 | "w": 412, 18 | "h": 142 19 | }, 20 | { 21 | "id": "1d3be2d7e5dbc7b0", 22 | "type": "ui_slider", 23 | "z": "f6f2187d.f17ca8", 24 | "g": "8b6a55fae82e4556", 25 | "name": "", 26 | "label": "slider", 27 | "tooltip": "", 28 | "group": "d801ae58e8cf849c", 29 | "order": 0, 30 | "width": 0, 31 | "height": 0, 32 | "passthru": true, 33 | "outs": "end", 34 | "topic": "topic", 35 | "topicType": "msg", 36 | "min": 0, 37 | "max": 10, 38 | "step": 1, 39 | "className": "sl1", 40 | "x": 130, 41 | "y": 80, 42 | "wires": [ 43 | [ 44 | "228b7aa88f895b44" 45 | ] 46 | ] 47 | }, 48 | { 49 | "id": "477a49036fc81304", 50 | "type": "ui_template", 51 | "z": "f6f2187d.f17ca8", 52 | "g": "8b6a55fae82e4556", 53 | "group": "d801ae58e8cf849c", 54 | "name": "", 55 | "order": 1, 56 | "width": 0, 57 | "height": 0, 58 | "format": "", 59 | "storeOutMessages": true, 60 | "fwdInMessages": true, 61 | "resendOnRefresh": true, 62 | "templateScope": "local", 63 | "className": "", 64 | "x": 140, 65 | "y": 140, 66 | "wires": [ 67 | [] 68 | ] 69 | }, 70 | { 71 | "id": "228b7aa88f895b44", 72 | "type": "ui_toast", 73 | "z": "f6f2187d.f17ca8", 74 | "g": "8b6a55fae82e4556", 75 | "position": "top right", 76 | "displayTime": "3", 77 | "highlight": "green", 78 | "sendall": true, 79 | "outputs": 0, 80 | "ok": "OK", 81 | "cancel": "", 82 | "raw": false, 83 | "className": "", 84 | "topic": "Action", 85 | "name": "", 86 | "x": 350, 87 | "y": 80, 88 | "wires": [] 89 | }, 90 | { 91 | "id": "d801ae58e8cf849c", 92 | "type": "ui_group", 93 | "name": "Style", 94 | "tab": "14edd01037118f68", 95 | "order": 1, 96 | "disp": true, 97 | "width": "6", 98 | "collapse": false, 99 | "className": "" 100 | }, 101 | { 102 | "id": "14edd01037118f68", 103 | "type": "ui_tab", 104 | "name": "Template", 105 | "icon": "dashboard", 106 | "order": 1, 107 | "disabled": false, 108 | "hidden": false 109 | } 110 | ] -------------------------------------------------------------------------------- /04_Dashboard/03_Other/06_Template_Numeric.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "1732b3967af3dfd9", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Template Numeric Style", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "e49d3c4eb47a67f6", 12 | "aec22b8d6faec5b5", 13 | "1e25fc5e1e871cfd" 14 | ], 15 | "x": 74, 16 | "y": 119, 17 | "w": 432, 18 | "h": 142 19 | }, 20 | { 21 | "id": "e49d3c4eb47a67f6", 22 | "type": "ui_numeric", 23 | "z": "f6f2187d.f17ca8", 24 | "g": "1732b3967af3dfd9", 25 | "name": "", 26 | "label": "Number", 27 | "tooltip": "", 28 | "group": "488f572878e094b5", 29 | "order": 0, 30 | "width": 0, 31 | "height": 0, 32 | "wrap": false, 33 | "passthru": true, 34 | "topic": "topic", 35 | "topicType": "msg", 36 | "format": "{{value}}", 37 | "min": 0, 38 | "max": 10, 39 | "step": 1, 40 | "className": "num1", 41 | "x": 160, 42 | "y": 160, 43 | "wires": [ 44 | [ 45 | "1e25fc5e1e871cfd" 46 | ] 47 | ] 48 | }, 49 | { 50 | "id": "aec22b8d6faec5b5", 51 | "type": "ui_template", 52 | "z": "f6f2187d.f17ca8", 53 | "g": "1732b3967af3dfd9", 54 | "group": "488f572878e094b5", 55 | "name": "", 56 | "order": 1, 57 | "width": 0, 58 | "height": 0, 59 | "format": "", 60 | "storeOutMessages": true, 61 | "fwdInMessages": true, 62 | "resendOnRefresh": true, 63 | "templateScope": "local", 64 | "className": "", 65 | "x": 160, 66 | "y": 220, 67 | "wires": [ 68 | [] 69 | ] 70 | }, 71 | { 72 | "id": "1e25fc5e1e871cfd", 73 | "type": "ui_toast", 74 | "z": "f6f2187d.f17ca8", 75 | "g": "1732b3967af3dfd9", 76 | "position": "top right", 77 | "displayTime": "3", 78 | "highlight": "green", 79 | "sendall": true, 80 | "outputs": 0, 81 | "ok": "OK", 82 | "cancel": "", 83 | "raw": false, 84 | "className": "", 85 | "topic": "Action", 86 | "name": "", 87 | "x": 390, 88 | "y": 160, 89 | "wires": [] 90 | }, 91 | { 92 | "id": "488f572878e094b5", 93 | "type": "ui_group", 94 | "name": "Style", 95 | "tab": "a4c5e38ea0511931", 96 | "order": 1, 97 | "disp": true, 98 | "width": "6", 99 | "collapse": false, 100 | "className": "" 101 | }, 102 | { 103 | "id": "a4c5e38ea0511931", 104 | "type": "ui_tab", 105 | "name": "Template", 106 | "icon": "dashboard", 107 | "order": 1, 108 | "disabled": false, 109 | "hidden": false 110 | } 111 | ] -------------------------------------------------------------------------------- /04_Dashboard/03_Other/07_Template_Text.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "69e8330262c9c07b", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Template Text Style", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "7899946cb69f2c03", 12 | "959ced806714e364", 13 | "76dc312828fc37d0" 14 | ], 15 | "x": 254, 16 | "y": 199, 17 | "w": 412, 18 | "h": 142 19 | }, 20 | { 21 | "id": "7899946cb69f2c03", 22 | "type": "ui_text_input", 23 | "z": "f6f2187d.f17ca8", 24 | "g": "69e8330262c9c07b", 25 | "name": "", 26 | "label": "Text", 27 | "tooltip": "", 28 | "group": "0c91957f4d140162", 29 | "order": 0, 30 | "width": 0, 31 | "height": 0, 32 | "passthru": true, 33 | "mode": "text", 34 | "delay": 300, 35 | "topic": "topic", 36 | "sendOnBlur": true, 37 | "className": "text1", 38 | "topicType": "msg", 39 | "x": 330, 40 | "y": 240, 41 | "wires": [ 42 | [ 43 | "959ced806714e364" 44 | ] 45 | ] 46 | }, 47 | { 48 | "id": "959ced806714e364", 49 | "type": "ui_toast", 50 | "z": "f6f2187d.f17ca8", 51 | "g": "69e8330262c9c07b", 52 | "position": "top right", 53 | "displayTime": "3", 54 | "highlight": "green", 55 | "sendall": true, 56 | "outputs": 0, 57 | "ok": "OK", 58 | "cancel": "", 59 | "raw": false, 60 | "className": "", 61 | "topic": "Action", 62 | "name": "", 63 | "x": 550, 64 | "y": 240, 65 | "wires": [] 66 | }, 67 | { 68 | "id": "76dc312828fc37d0", 69 | "type": "ui_template", 70 | "z": "f6f2187d.f17ca8", 71 | "g": "69e8330262c9c07b", 72 | "group": "0c91957f4d140162", 73 | "name": "", 74 | "order": 1, 75 | "width": 0, 76 | "height": 0, 77 | "format": "", 78 | "storeOutMessages": true, 79 | "fwdInMessages": true, 80 | "resendOnRefresh": true, 81 | "templateScope": "local", 82 | "className": "", 83 | "x": 340, 84 | "y": 300, 85 | "wires": [ 86 | [] 87 | ] 88 | }, 89 | { 90 | "id": "0c91957f4d140162", 91 | "type": "ui_group", 92 | "name": "Style", 93 | "tab": "d18434770fb45bf1", 94 | "order": 1, 95 | "disp": true, 96 | "width": "6", 97 | "collapse": false, 98 | "className": "" 99 | }, 100 | { 101 | "id": "d18434770fb45bf1", 102 | "type": "ui_tab", 103 | "name": "Template", 104 | "icon": "dashboard", 105 | "order": 1, 106 | "disabled": false, 107 | "hidden": false 108 | } 109 | ] -------------------------------------------------------------------------------- /04_Dashboard/03_Other/08_Template_DatePicker.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "d573a12d1f938889", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Template Date Picker Style", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "253ca60171119b5c", 12 | "9ae3a68d293649f5", 13 | "4cddbdd25ce66ea4" 14 | ], 15 | "x": 314, 16 | "y": 179, 17 | "w": 412, 18 | "h": 142 19 | }, 20 | { 21 | "id": "253ca60171119b5c", 22 | "type": "ui_date_picker", 23 | "z": "f6f2187d.f17ca8", 24 | "g": "d573a12d1f938889", 25 | "name": "", 26 | "label": "Date", 27 | "group": "4cd83cf3cf80a317", 28 | "order": 0, 29 | "width": 0, 30 | "height": 0, 31 | "passthru": true, 32 | "topic": "topic", 33 | "topicType": "msg", 34 | "className": "date1", 35 | "x": 390, 36 | "y": 220, 37 | "wires": [ 38 | [ 39 | "9ae3a68d293649f5" 40 | ] 41 | ] 42 | }, 43 | { 44 | "id": "9ae3a68d293649f5", 45 | "type": "ui_toast", 46 | "z": "f6f2187d.f17ca8", 47 | "g": "d573a12d1f938889", 48 | "position": "top right", 49 | "displayTime": "3", 50 | "highlight": "green", 51 | "sendall": true, 52 | "outputs": 0, 53 | "ok": "OK", 54 | "cancel": "", 55 | "raw": false, 56 | "className": "", 57 | "topic": "Action", 58 | "name": "", 59 | "x": 610, 60 | "y": 220, 61 | "wires": [] 62 | }, 63 | { 64 | "id": "4cddbdd25ce66ea4", 65 | "type": "ui_template", 66 | "z": "f6f2187d.f17ca8", 67 | "g": "d573a12d1f938889", 68 | "group": "4cd83cf3cf80a317", 69 | "name": "", 70 | "order": 1, 71 | "width": 0, 72 | "height": 0, 73 | "format": "", 74 | "storeOutMessages": true, 75 | "fwdInMessages": true, 76 | "resendOnRefresh": true, 77 | "templateScope": "local", 78 | "className": "", 79 | "x": 400, 80 | "y": 280, 81 | "wires": [ 82 | [] 83 | ] 84 | }, 85 | { 86 | "id": "4cd83cf3cf80a317", 87 | "type": "ui_group", 88 | "name": "Style", 89 | "tab": "1feeefd2ea4167ca", 90 | "order": 1, 91 | "disp": true, 92 | "width": "6", 93 | "collapse": false, 94 | "className": "" 95 | }, 96 | { 97 | "id": "1feeefd2ea4167ca", 98 | "type": "ui_tab", 99 | "name": "Template", 100 | "icon": "dashboard", 101 | "order": 1, 102 | "disabled": false, 103 | "hidden": false 104 | } 105 | ] -------------------------------------------------------------------------------- /04_Dashboard/03_Other/09_Template_ColourPicker.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "bf8443d0dc19cfd4", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Template Colour Picker Style", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "e86c671200ea47f6", 12 | "fd6161f5e6a6142a", 13 | "2935cce59e75f2bf" 14 | ], 15 | "x": 174, 16 | "y": 199, 17 | "w": 412, 18 | "h": 142 19 | }, 20 | { 21 | "id": "e86c671200ea47f6", 22 | "type": "ui_colour_picker", 23 | "z": "f6f2187d.f17ca8", 24 | "g": "bf8443d0dc19cfd4", 25 | "name": "", 26 | "label": "Color", 27 | "group": "a0f142f88182ae57", 28 | "format": "hex", 29 | "outformat": "string", 30 | "showSwatch": true, 31 | "showPicker": false, 32 | "showValue": false, 33 | "showHue": false, 34 | "showAlpha": false, 35 | "showLightness": true, 36 | "square": "false", 37 | "dynOutput": "false", 38 | "order": 0, 39 | "width": 0, 40 | "height": 0, 41 | "passthru": true, 42 | "topic": "topic", 43 | "topicType": "msg", 44 | "className": "col1", 45 | "x": 250, 46 | "y": 240, 47 | "wires": [ 48 | [ 49 | "fd6161f5e6a6142a" 50 | ] 51 | ] 52 | }, 53 | { 54 | "id": "fd6161f5e6a6142a", 55 | "type": "ui_toast", 56 | "z": "f6f2187d.f17ca8", 57 | "g": "bf8443d0dc19cfd4", 58 | "position": "top right", 59 | "displayTime": "3", 60 | "highlight": "green", 61 | "sendall": true, 62 | "outputs": 0, 63 | "ok": "OK", 64 | "cancel": "", 65 | "raw": false, 66 | "className": "", 67 | "topic": "Action", 68 | "name": "", 69 | "x": 470, 70 | "y": 240, 71 | "wires": [] 72 | }, 73 | { 74 | "id": "2935cce59e75f2bf", 75 | "type": "ui_template", 76 | "z": "f6f2187d.f17ca8", 77 | "g": "bf8443d0dc19cfd4", 78 | "group": "a0f142f88182ae57", 79 | "name": "", 80 | "order": 1, 81 | "width": 0, 82 | "height": 0, 83 | "format": "", 84 | "storeOutMessages": true, 85 | "fwdInMessages": true, 86 | "resendOnRefresh": true, 87 | "templateScope": "local", 88 | "className": "", 89 | "x": 260, 90 | "y": 300, 91 | "wires": [ 92 | [] 93 | ] 94 | }, 95 | { 96 | "id": "a0f142f88182ae57", 97 | "type": "ui_group", 98 | "name": "Style", 99 | "tab": "cf5df89b72624579", 100 | "order": 1, 101 | "disp": true, 102 | "width": "6", 103 | "collapse": false, 104 | "className": "" 105 | }, 106 | { 107 | "id": "cf5df89b72624579", 108 | "type": "ui_tab", 109 | "name": "Template", 110 | "icon": "dashboard", 111 | "order": 1, 112 | "disabled": false, 113 | "hidden": false 114 | } 115 | ] -------------------------------------------------------------------------------- /04_Dashboard/03_Other/10_Template_Form.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "2955089a8ccec31b", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Template Form Style", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "6025302fda275191", 12 | "5750c77dd790ab3d", 13 | "6e2c4b26d3eaf42f" 14 | ], 15 | "x": 474, 16 | "y": 159, 17 | "w": 432, 18 | "h": 142 19 | }, 20 | { 21 | "id": "6025302fda275191", 22 | "type": "ui_form", 23 | "z": "f6f2187d.f17ca8", 24 | "g": "2955089a8ccec31b", 25 | "name": "", 26 | "label": "", 27 | "group": "4a70a8f24014668d", 28 | "order": 0, 29 | "width": 0, 30 | "height": 0, 31 | "options": [ 32 | { 33 | "label": "Text", 34 | "value": "Text", 35 | "type": "text", 36 | "required": true, 37 | "rows": null 38 | }, 39 | { 40 | "label": "Number", 41 | "value": "Number", 42 | "type": "number", 43 | "required": false, 44 | "rows": null 45 | } 46 | ], 47 | "formValue": { 48 | "Text": "", 49 | "Number": "" 50 | }, 51 | "payload": "", 52 | "submit": "submit", 53 | "cancel": "cancel", 54 | "topic": "topic", 55 | "topicType": "msg", 56 | "splitLayout": "", 57 | "className": "form1", 58 | "x": 550, 59 | "y": 200, 60 | "wires": [ 61 | [ 62 | "5750c77dd790ab3d" 63 | ] 64 | ] 65 | }, 66 | { 67 | "id": "5750c77dd790ab3d", 68 | "type": "ui_toast", 69 | "z": "f6f2187d.f17ca8", 70 | "g": "2955089a8ccec31b", 71 | "position": "top right", 72 | "displayTime": "3", 73 | "highlight": "green", 74 | "sendall": true, 75 | "outputs": 0, 76 | "ok": "OK", 77 | "cancel": "", 78 | "raw": false, 79 | "className": "", 80 | "topic": "Action", 81 | "name": "", 82 | "x": 790, 83 | "y": 200, 84 | "wires": [] 85 | }, 86 | { 87 | "id": "6e2c4b26d3eaf42f", 88 | "type": "ui_template", 89 | "z": "f6f2187d.f17ca8", 90 | "g": "2955089a8ccec31b", 91 | "group": "4a70a8f24014668d", 92 | "name": "", 93 | "order": 1, 94 | "width": 0, 95 | "height": 0, 96 | "format": "", 97 | "storeOutMessages": true, 98 | "fwdInMessages": true, 99 | "resendOnRefresh": true, 100 | "templateScope": "local", 101 | "className": "", 102 | "x": 560, 103 | "y": 260, 104 | "wires": [ 105 | [] 106 | ] 107 | }, 108 | { 109 | "id": "4a70a8f24014668d", 110 | "type": "ui_group", 111 | "name": "Style", 112 | "tab": "a46fd0520f502dce", 113 | "order": 1, 114 | "disp": true, 115 | "width": "6", 116 | "collapse": false, 117 | "className": "" 118 | }, 119 | { 120 | "id": "a46fd0520f502dce", 121 | "type": "ui_tab", 122 | "name": "Template", 123 | "icon": "dashboard", 124 | "order": 1, 125 | "disabled": false, 126 | "hidden": false 127 | } 128 | ] 129 | -------------------------------------------------------------------------------- /04_Dashboard/03_Other/11_Template_TextOutput.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "6803e08dc7dc82d0", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Template Text Style", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "7c78c8eef53c2352", 12 | "9f168ea2ac4f1778", 13 | "1e93a4f8f6f38667", 14 | "182f7438481c03ce" 15 | ], 16 | "x": 274, 17 | "y": 239, 18 | "w": 752, 19 | "h": 142 20 | }, 21 | { 22 | "id": "7c78c8eef53c2352", 23 | "type": "ui_text", 24 | "z": "f6f2187d.f17ca8", 25 | "g": "6803e08dc7dc82d0", 26 | "group": "b7a2a25b481c8148", 27 | "order": 0, 28 | "width": 0, 29 | "height": 0, 30 | "name": "", 31 | "label": "Random Number", 32 | "format": "{{msg.payload}}", 33 | "layout": "row-spread", 34 | "className": "num1", 35 | "x": 910, 36 | "y": 280, 37 | "wires": [] 38 | }, 39 | { 40 | "id": "9f168ea2ac4f1778", 41 | "type": "inject", 42 | "z": "f6f2187d.f17ca8", 43 | "g": "6803e08dc7dc82d0", 44 | "name": "", 45 | "props": [ 46 | { 47 | "p": "payload" 48 | }, 49 | { 50 | "p": "topic", 51 | "vt": "str" 52 | } 53 | ], 54 | "repeat": "1", 55 | "crontab": "", 56 | "once": true, 57 | "onceDelay": 0.1, 58 | "topic": "", 59 | "payload": "", 60 | "payloadType": "date", 61 | "x": 390, 62 | "y": 280, 63 | "wires": [ 64 | [ 65 | "1e93a4f8f6f38667" 66 | ] 67 | ] 68 | }, 69 | { 70 | "id": "1e93a4f8f6f38667", 71 | "type": "function", 72 | "z": "f6f2187d.f17ca8", 73 | "g": "6803e08dc7dc82d0", 74 | "name": "RANDOM_NUMBER", 75 | "func": "// Generate random Integer between 0 and 10\nmsg.payload = parseInt(Math.random() * 10);\nreturn msg;", 76 | "outputs": 1, 77 | "noerr": 0, 78 | "initialize": "", 79 | "finalize": "", 80 | "libs": [], 81 | "x": 640, 82 | "y": 280, 83 | "wires": [ 84 | [ 85 | "7c78c8eef53c2352" 86 | ] 87 | ] 88 | }, 89 | { 90 | "id": "182f7438481c03ce", 91 | "type": "ui_template", 92 | "z": "f6f2187d.f17ca8", 93 | "g": "6803e08dc7dc82d0", 94 | "group": "b7a2a25b481c8148", 95 | "name": "", 96 | "order": 1, 97 | "width": 0, 98 | "height": 0, 99 | "format": "", 100 | "storeOutMessages": true, 101 | "fwdInMessages": true, 102 | "resendOnRefresh": true, 103 | "templateScope": "local", 104 | "className": "", 105 | "x": 880, 106 | "y": 340, 107 | "wires": [ 108 | [] 109 | ] 110 | }, 111 | { 112 | "id": "b7a2a25b481c8148", 113 | "type": "ui_group", 114 | "name": "Style", 115 | "tab": "c335e222d86aefe4", 116 | "order": 1, 117 | "disp": true, 118 | "width": "6", 119 | "collapse": false, 120 | "className": "" 121 | }, 122 | { 123 | "id": "c335e222d86aefe4", 124 | "type": "ui_tab", 125 | "name": "Template", 126 | "icon": "dashboard", 127 | "order": 1, 128 | "disabled": false, 129 | "hidden": false 130 | } 131 | ] -------------------------------------------------------------------------------- /04_Dashboard/03_Other/12_Template_Gauge.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "dfa0afc1dc0e6f8f", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Template Gauge Style", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "6e958abc1c805991", 12 | "7e51954c7321f672", 13 | "c83a85730fa33205", 14 | "202c51c924a6b999" 15 | ], 16 | "x": 44, 17 | "y": 39, 18 | "w": 762, 19 | "h": 142 20 | }, 21 | { 22 | "id": "6e958abc1c805991", 23 | "type": "ui_gauge", 24 | "z": "f6f2187d.f17ca8", 25 | "g": "dfa0afc1dc0e6f8f", 26 | "name": "", 27 | "group": "b2ac0a0dc4039433", 28 | "order": 0, 29 | "width": 0, 30 | "height": 0, 31 | "gtype": "gage", 32 | "title": "Random Number", 33 | "label": "units", 34 | "format": "{{value}}", 35 | "min": 0, 36 | "max": 10, 37 | "colors": [ 38 | "#00b500", 39 | "#e6e600", 40 | "#ca3838" 41 | ], 42 | "seg1": "", 43 | "seg2": "", 44 | "className": "gauge1", 45 | "x": 690, 46 | "y": 80, 47 | "wires": [] 48 | }, 49 | { 50 | "id": "7e51954c7321f672", 51 | "type": "inject", 52 | "z": "f6f2187d.f17ca8", 53 | "g": "dfa0afc1dc0e6f8f", 54 | "name": "", 55 | "props": [ 56 | { 57 | "p": "payload" 58 | }, 59 | { 60 | "p": "topic", 61 | "vt": "str" 62 | } 63 | ], 64 | "repeat": "1", 65 | "crontab": "", 66 | "once": true, 67 | "onceDelay": 0.1, 68 | "topic": "", 69 | "payload": "", 70 | "payloadType": "date", 71 | "x": 160, 72 | "y": 80, 73 | "wires": [ 74 | [ 75 | "c83a85730fa33205" 76 | ] 77 | ] 78 | }, 79 | { 80 | "id": "c83a85730fa33205", 81 | "type": "function", 82 | "z": "f6f2187d.f17ca8", 83 | "g": "dfa0afc1dc0e6f8f", 84 | "name": "RANDOM_NUMBER", 85 | "func": "// Generate random Integer between 0 and 10\nmsg.payload = parseInt(Math.random() * 10);\nreturn msg;", 86 | "outputs": 1, 87 | "noerr": 0, 88 | "initialize": "", 89 | "finalize": "", 90 | "libs": [], 91 | "x": 420, 92 | "y": 80, 93 | "wires": [ 94 | [ 95 | "6e958abc1c805991" 96 | ] 97 | ] 98 | }, 99 | { 100 | "id": "202c51c924a6b999", 101 | "type": "ui_template", 102 | "z": "f6f2187d.f17ca8", 103 | "g": "dfa0afc1dc0e6f8f", 104 | "group": "b2ac0a0dc4039433", 105 | "name": "", 106 | "order": 1, 107 | "width": 0, 108 | "height": 0, 109 | "format": "", 110 | "storeOutMessages": true, 111 | "fwdInMessages": true, 112 | "resendOnRefresh": true, 113 | "templateScope": "local", 114 | "className": "", 115 | "x": 660, 116 | "y": 140, 117 | "wires": [ 118 | [] 119 | ] 120 | }, 121 | { 122 | "id": "b2ac0a0dc4039433", 123 | "type": "ui_group", 124 | "name": "Style", 125 | "tab": "62ee0d0d555f1ad5", 126 | "order": 1, 127 | "disp": true, 128 | "width": "6", 129 | "collapse": false, 130 | "className": "" 131 | }, 132 | { 133 | "id": "62ee0d0d555f1ad5", 134 | "type": "ui_tab", 135 | "name": "Template", 136 | "icon": "dashboard", 137 | "order": 1, 138 | "disabled": false, 139 | "hidden": false 140 | } 141 | ] -------------------------------------------------------------------------------- /04_Dashboard/03_Other/13_Template_Chart.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "ef07d7d8fe1e01e5", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Template Chart Style", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "29db325810bc3696", 12 | "6c1abb719ac5633c", 13 | "72b6072939d1e686", 14 | "1733917950399d00" 15 | ], 16 | "x": 54, 17 | "y": 39, 18 | "w": 752, 19 | "h": 122 20 | }, 21 | { 22 | "id": "29db325810bc3696", 23 | "type": "ui_chart", 24 | "z": "f6f2187d.f17ca8", 25 | "g": "ef07d7d8fe1e01e5", 26 | "name": "", 27 | "group": "7fb8635312a768b5", 28 | "order": 0, 29 | "width": 0, 30 | "height": 0, 31 | "label": "Random Number", 32 | "chartType": "line", 33 | "legend": "false", 34 | "xformat": "HH:mm:ss", 35 | "interpolate": "linear", 36 | "nodata": "", 37 | "dot": false, 38 | "ymin": "", 39 | "ymax": "", 40 | "removeOlder": "10", 41 | "removeOlderPoints": "", 42 | "removeOlderUnit": "1", 43 | "cutout": 0, 44 | "useOneColor": false, 45 | "useUTC": false, 46 | "colors": [ 47 | "#1f77b4", 48 | "#aec7e8", 49 | "#ff7f0e", 50 | "#2ca02c", 51 | "#98df8a", 52 | "#d62728", 53 | "#ff9896", 54 | "#9467bd", 55 | "#c5b0d5" 56 | ], 57 | "outputs": 1, 58 | "useDifferentColor": false, 59 | "className": "chart1", 60 | "x": 690, 61 | "y": 80, 62 | "wires": [ 63 | [] 64 | ] 65 | }, 66 | { 67 | "id": "6c1abb719ac5633c", 68 | "type": "inject", 69 | "z": "f6f2187d.f17ca8", 70 | "g": "ef07d7d8fe1e01e5", 71 | "name": "", 72 | "props": [ 73 | { 74 | "p": "payload" 75 | }, 76 | { 77 | "p": "topic", 78 | "vt": "str" 79 | } 80 | ], 81 | "repeat": "1", 82 | "crontab": "", 83 | "once": true, 84 | "onceDelay": 0.1, 85 | "topic": "", 86 | "payload": "", 87 | "payloadType": "date", 88 | "x": 170, 89 | "y": 80, 90 | "wires": [ 91 | [ 92 | "72b6072939d1e686" 93 | ] 94 | ] 95 | }, 96 | { 97 | "id": "72b6072939d1e686", 98 | "type": "function", 99 | "z": "f6f2187d.f17ca8", 100 | "g": "ef07d7d8fe1e01e5", 101 | "name": "RANDOM_NUMBER", 102 | "func": "// Generate random Integer between 0 and 10\nmsg.payload = parseInt(Math.random() * 10);\nreturn msg;", 103 | "outputs": 1, 104 | "noerr": 0, 105 | "initialize": "", 106 | "finalize": "", 107 | "libs": [], 108 | "x": 420, 109 | "y": 80, 110 | "wires": [ 111 | [ 112 | "29db325810bc3696" 113 | ] 114 | ] 115 | }, 116 | { 117 | "id": "1733917950399d00", 118 | "type": "ui_template", 119 | "z": "f6f2187d.f17ca8", 120 | "g": "ef07d7d8fe1e01e5", 121 | "group": "7fb8635312a768b5", 122 | "name": "", 123 | "order": 1, 124 | "width": 0, 125 | "height": 0, 126 | "format": "", 127 | "storeOutMessages": true, 128 | "fwdInMessages": true, 129 | "resendOnRefresh": true, 130 | "templateScope": "local", 131 | "className": "", 132 | "x": 660, 133 | "y": 120, 134 | "wires": [ 135 | [] 136 | ] 137 | }, 138 | { 139 | "id": "7fb8635312a768b5", 140 | "type": "ui_group", 141 | "name": "Style", 142 | "tab": "723ad51699cf1c01", 143 | "order": 1, 144 | "disp": true, 145 | "width": "6", 146 | "collapse": false, 147 | "className": "" 148 | }, 149 | { 150 | "id": "723ad51699cf1c01", 151 | "type": "ui_tab", 152 | "name": "Template", 153 | "icon": "dashboard", 154 | "order": 1, 155 | "disabled": false, 156 | "hidden": false 157 | } 158 | ] -------------------------------------------------------------------------------- /04_Dashboard/03_Other/14_Template_Progressbar.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "940a9155d1a6dabe", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Template Progressbar", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "e6aab5a2b71b07af", 12 | "9e864763a1ed347c", 13 | "c996ddbe276ace1e" 14 | ], 15 | "x": 54, 16 | "y": 59, 17 | "w": 612, 18 | "h": 82 19 | }, 20 | { 21 | "id": "e6aab5a2b71b07af", 22 | "type": "inject", 23 | "z": "f6f2187d.f17ca8", 24 | "g": "940a9155d1a6dabe", 25 | "name": "", 26 | "props": [ 27 | { 28 | "p": "payload" 29 | }, 30 | { 31 | "p": "topic", 32 | "vt": "str" 33 | } 34 | ], 35 | "repeat": "0.1", 36 | "crontab": "", 37 | "once": true, 38 | "onceDelay": 0.1, 39 | "topic": "", 40 | "payload": "", 41 | "payloadType": "date", 42 | "x": 170, 43 | "y": 100, 44 | "wires": [ 45 | [ 46 | "9e864763a1ed347c" 47 | ] 48 | ] 49 | }, 50 | { 51 | "id": "9e864763a1ed347c", 52 | "type": "function", 53 | "z": "f6f2187d.f17ca8", 54 | "g": "940a9155d1a6dabe", 55 | "name": "Counter", 56 | "func": "// get context variable => default to 0\ncounter = context.get(\"counter\") || 0;\n\n// check if counter value is smaller than 100\nif (counter < 100) {\n // increase counter value by 1\n counter ++\n} else {\n // reset counter to 0\n counter = 0\n}\n\n// set msg.payload to counter value\nmsg.payload = counter\n\n// set context variable to counter value\ncontext.set(\"counter\", counter)\n\n// return msg object\nreturn msg;", 57 | "outputs": 1, 58 | "noerr": 0, 59 | "initialize": "", 60 | "finalize": "", 61 | "libs": [], 62 | "x": 380, 63 | "y": 100, 64 | "wires": [ 65 | [ 66 | "c996ddbe276ace1e" 67 | ] 68 | ] 69 | }, 70 | { 71 | "id": "c996ddbe276ace1e", 72 | "type": "ui_template", 73 | "z": "f6f2187d.f17ca8", 74 | "g": "940a9155d1a6dabe", 75 | "group": "d7778f42ba863dd6", 76 | "name": "", 77 | "order": 0, 78 | "width": 0, 79 | "height": 0, 80 | "format": "\n\n\n", 81 | "storeOutMessages": true, 82 | "fwdInMessages": true, 83 | "resendOnRefresh": true, 84 | "templateScope": "local", 85 | "className": "", 86 | "x": 580, 87 | "y": 100, 88 | "wires": [ 89 | [] 90 | ] 91 | }, 92 | { 93 | "id": "d7778f42ba863dd6", 94 | "type": "ui_group", 95 | "name": "Progressbar", 96 | "tab": "5017c370d13b1753", 97 | "order": 1, 98 | "disp": true, 99 | "width": "6", 100 | "collapse": false, 101 | "className": "" 102 | }, 103 | { 104 | "id": "5017c370d13b1753", 105 | "type": "ui_tab", 106 | "name": "Template", 107 | "icon": "dashboard", 108 | "order": 1, 109 | "disabled": false, 110 | "hidden": false 111 | } 112 | ] -------------------------------------------------------------------------------- /04_Dashboard/03_Other/15_Template_iFrame.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "c6b7fbbd0c955789", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Template iFrame", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "bfc292cde4444698", 12 | "5172d809d9477339", 13 | "e0e6ac3d50ca467e", 14 | "cb7111e0f4b674e1" 15 | ], 16 | "x": 254, 17 | "y": 159, 18 | "w": 452, 19 | "h": 202 20 | }, 21 | { 22 | "id": "bfc292cde4444698", 23 | "type": "ui_text", 24 | "z": "f6f2187d.f17ca8", 25 | "g": "c6b7fbbd0c955789", 26 | "group": "3207bcb0bada7083", 27 | "order": 1, 28 | "width": 0, 29 | "height": 0, 30 | "name": "", 31 | "label": "Tab 2", 32 | "format": "{{msg.payload}}", 33 | "layout": "row-spread", 34 | "className": "", 35 | "x": 330, 36 | "y": 200, 37 | "wires": [] 38 | }, 39 | { 40 | "id": "5172d809d9477339", 41 | "type": "ui_button", 42 | "z": "f6f2187d.f17ca8", 43 | "g": "c6b7fbbd0c955789", 44 | "name": "", 45 | "group": "3207bcb0bada7083", 46 | "order": 2, 47 | "width": 0, 48 | "height": 0, 49 | "passthru": false, 50 | "label": "Test Button", 51 | "tooltip": "", 52 | "color": "", 53 | "bgcolor": "", 54 | "className": "", 55 | "icon": "", 56 | "payload": "The Test Button has been pressed", 57 | "payloadType": "str", 58 | "topic": "topic", 59 | "topicType": "msg", 60 | "x": 350, 61 | "y": 260, 62 | "wires": [ 63 | [ 64 | "e0e6ac3d50ca467e" 65 | ] 66 | ] 67 | }, 68 | { 69 | "id": "e0e6ac3d50ca467e", 70 | "type": "ui_toast", 71 | "z": "f6f2187d.f17ca8", 72 | "g": "c6b7fbbd0c955789", 73 | "position": "top right", 74 | "displayTime": "3", 75 | "highlight": "red", 76 | "sendall": true, 77 | "outputs": 0, 78 | "ok": "OK", 79 | "cancel": "", 80 | "raw": false, 81 | "className": "", 82 | "topic": "", 83 | "name": "", 84 | "x": 590, 85 | "y": 260, 86 | "wires": [] 87 | }, 88 | { 89 | "id": "cb7111e0f4b674e1", 90 | "type": "ui_template", 91 | "z": "f6f2187d.f17ca8", 92 | "g": "c6b7fbbd0c955789", 93 | "group": "46239f251cb02044", 94 | "name": "", 95 | "order": 1, 96 | "width": 0, 97 | "height": 0, 98 | "format": "", 99 | "storeOutMessages": true, 100 | "fwdInMessages": true, 101 | "resendOnRefresh": true, 102 | "templateScope": "local", 103 | "className": "", 104 | "x": 340, 105 | "y": 320, 106 | "wires": [ 107 | [] 108 | ] 109 | }, 110 | { 111 | "id": "3207bcb0bada7083", 112 | "type": "ui_group", 113 | "name": "Group 1", 114 | "tab": "52b1918135cd58fd", 115 | "order": 1, 116 | "disp": true, 117 | "width": 6 118 | }, 119 | { 120 | "id": "46239f251cb02044", 121 | "type": "ui_group", 122 | "name": "Group 1", 123 | "tab": "af035ff7e6ed0984", 124 | "order": 1, 125 | "disp": true, 126 | "width": 10 127 | }, 128 | { 129 | "id": "52b1918135cd58fd", 130 | "type": "ui_tab", 131 | "name": "Tab 2", 132 | "icon": "dashboard", 133 | "order": 2 134 | }, 135 | { 136 | "id": "af035ff7e6ed0984", 137 | "type": "ui_tab", 138 | "name": "iFrame", 139 | "icon": "dashboard", 140 | "order": 1, 141 | "disabled": false, 142 | "hidden": false 143 | } 144 | ] -------------------------------------------------------------------------------- /04_Dashboard/03_Other/16_Template_Indicator.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "9b9ea8e2bb513e1d", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Template Indicator", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "af2e3369150364b3", 12 | "6da8884428c67fe1", 13 | "2567f91e72ee48b9", 14 | "fd04b13c193d51b5", 15 | "e7326a98a62038e2" 16 | ], 17 | "x": 154, 18 | "y": 339, 19 | "w": 992, 20 | "h": 122 21 | }, 22 | { 23 | "id": "af2e3369150364b3", 24 | "type": "ui_template", 25 | "z": "f6f2187d.f17ca8", 26 | "g": "9b9ea8e2bb513e1d", 27 | "group": "5e88d4e9578032ea", 28 | "name": "", 29 | "order": 2, 30 | "width": 2, 31 | "height": 2, 32 | "format": "
\n\n", 33 | "storeOutMessages": true, 34 | "fwdInMessages": true, 35 | "resendOnRefresh": true, 36 | "templateScope": "local", 37 | "className": "", 38 | "x": 1060, 39 | "y": 380, 40 | "wires": [ 41 | [] 42 | ] 43 | }, 44 | { 45 | "id": "6da8884428c67fe1", 46 | "type": "inject", 47 | "z": "f6f2187d.f17ca8", 48 | "g": "9b9ea8e2bb513e1d", 49 | "name": "2 Second Intervall", 50 | "props": [ 51 | { 52 | "p": "payload" 53 | }, 54 | { 55 | "p": "topic", 56 | "vt": "str" 57 | } 58 | ], 59 | "repeat": "2", 60 | "crontab": "", 61 | "once": false, 62 | "onceDelay": 0.1, 63 | "topic": "", 64 | "payload": "", 65 | "payloadType": "date", 66 | "x": 290, 67 | "y": 380, 68 | "wires": [ 69 | [ 70 | "2567f91e72ee48b9", 71 | "e7326a98a62038e2" 72 | ] 73 | ] 74 | }, 75 | { 76 | "id": "2567f91e72ee48b9", 77 | "type": "change", 78 | "z": "f6f2187d.f17ca8", 79 | "g": "9b9ea8e2bb513e1d", 80 | "name": "", 81 | "rules": [ 82 | { 83 | "t": "set", 84 | "p": "payload", 85 | "pt": "msg", 86 | "to": "green", 87 | "tot": "str" 88 | }, 89 | { 90 | "t": "set", 91 | "p": "scale", 92 | "pt": "msg", 93 | "to": "75px", 94 | "tot": "str" 95 | } 96 | ], 97 | "action": "", 98 | "property": "", 99 | "from": "", 100 | "to": "", 101 | "reg": false, 102 | "x": 540, 103 | "y": 380, 104 | "wires": [ 105 | [ 106 | "af2e3369150364b3" 107 | ] 108 | ] 109 | }, 110 | { 111 | "id": "fd04b13c193d51b5", 112 | "type": "change", 113 | "z": "f6f2187d.f17ca8", 114 | "g": "9b9ea8e2bb513e1d", 115 | "name": "", 116 | "rules": [ 117 | { 118 | "t": "set", 119 | "p": "payload", 120 | "pt": "msg", 121 | "to": "red", 122 | "tot": "str" 123 | }, 124 | { 125 | "t": "set", 126 | "p": "scale", 127 | "pt": "msg", 128 | "to": "50px", 129 | "tot": "str" 130 | } 131 | ], 132 | "action": "", 133 | "property": "", 134 | "from": "", 135 | "to": "", 136 | "reg": false, 137 | "x": 820, 138 | "y": 420, 139 | "wires": [ 140 | [ 141 | "af2e3369150364b3" 142 | ] 143 | ] 144 | }, 145 | { 146 | "id": "e7326a98a62038e2", 147 | "type": "trigger", 148 | "z": "f6f2187d.f17ca8", 149 | "g": "9b9ea8e2bb513e1d", 150 | "name": "1 Second Trigger", 151 | "op1": "", 152 | "op2": "", 153 | "op1type": "nul", 154 | "op2type": "pay", 155 | "duration": "1", 156 | "extend": false, 157 | "overrideDelay": false, 158 | "units": "s", 159 | "reset": "", 160 | "bytopic": "all", 161 | "topic": "topic", 162 | "outputs": 1, 163 | "x": 550, 164 | "y": 420, 165 | "wires": [ 166 | [ 167 | "fd04b13c193d51b5" 168 | ] 169 | ] 170 | }, 171 | { 172 | "id": "5e88d4e9578032ea", 173 | "type": "ui_group", 174 | "name": "Indicator", 175 | "tab": "33f8f7db6b9d41f0", 176 | "order": 1, 177 | "disp": true, 178 | "width": 6, 179 | "collapse": false, 180 | "className": "" 181 | }, 182 | { 183 | "id": "33f8f7db6b9d41f0", 184 | "type": "ui_tab", 185 | "name": "Template", 186 | "icon": "dashboard", 187 | "order": 1, 188 | "disabled": false, 189 | "hidden": false 190 | } 191 | ] -------------------------------------------------------------------------------- /04_Dashboard/03_Other/18_Image_Upload.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "7b67268b8d056df3", 4 | "type": "ui_upload", 5 | "z": "aa4ed42c901d08f1", 6 | "group": "f550f4fc8cbb223a", 7 | "title": "upload", 8 | "name": "", 9 | "order": 1, 10 | "width": 0, 11 | "height": 5, 12 | "chunk": 256, 13 | "transfer": "binary", 14 | "x": 210, 15 | "y": 180, 16 | "wires": [ 17 | [ 18 | "b1febd3fab24a25a" 19 | ] 20 | ] 21 | }, 22 | { 23 | "id": "b1febd3fab24a25a", 24 | "type": "join", 25 | "z": "aa4ed42c901d08f1", 26 | "name": "", 27 | "mode": "custom", 28 | "build": "buffer", 29 | "property": "payload", 30 | "propertyType": "msg", 31 | "key": "topic", 32 | "joiner": "", 33 | "joinerType": "str", 34 | "accumulate": false, 35 | "timeout": "", 36 | "count": "", 37 | "reduceRight": false, 38 | "reduceExp": "", 39 | "reduceInit": "", 40 | "reduceInitType": "", 41 | "reduceFixup": "", 42 | "x": 390, 43 | "y": 180, 44 | "wires": [ 45 | [ 46 | "a187cde19b2a6884" 47 | ] 48 | ] 49 | }, 50 | { 51 | "id": "a187cde19b2a6884", 52 | "type": "function", 53 | "z": "aa4ed42c901d08f1", 54 | "name": "toBase64", 55 | "func": "msg.payload = msg.payload.toString(\"base64\")\nreturn msg;", 56 | "outputs": 1, 57 | "noerr": 0, 58 | "initialize": "", 59 | "finalize": "", 60 | "libs": [], 61 | "x": 580, 62 | "y": 180, 63 | "wires": [ 64 | [ 65 | "34297cdba7db8bfc" 66 | ] 67 | ] 68 | }, 69 | { 70 | "id": "34297cdba7db8bfc", 71 | "type": "file", 72 | "z": "aa4ed42c901d08f1", 73 | "name": "", 74 | "filename": "/Users/yunus/Documents/Gleich wieder löschen/test.txt", 75 | "filenameType": "str", 76 | "appendNewline": false, 77 | "createDir": false, 78 | "overwriteFile": "true", 79 | "encoding": "none", 80 | "x": 950, 81 | "y": 180, 82 | "wires": [ 83 | [] 84 | ] 85 | }, 86 | { 87 | "id": "17743cbeb2f85f6c", 88 | "type": "file in", 89 | "z": "aa4ed42c901d08f1", 90 | "name": "", 91 | "filename": "/Users/yunus/Documents/Gleich wieder löschen/test.txt", 92 | "filenameType": "str", 93 | "format": "utf8", 94 | "chunk": false, 95 | "sendError": false, 96 | "encoding": "none", 97 | "allProps": false, 98 | "x": 550, 99 | "y": 300, 100 | "wires": [ 101 | [ 102 | "b8bad35203bf1be6" 103 | ] 104 | ] 105 | }, 106 | { 107 | "id": "58191d8ed19cb5a8", 108 | "type": "inject", 109 | "z": "aa4ed42c901d08f1", 110 | "name": "", 111 | "props": [ 112 | { 113 | "p": "payload" 114 | }, 115 | { 116 | "p": "topic", 117 | "vt": "str" 118 | } 119 | ], 120 | "repeat": "", 121 | "crontab": "", 122 | "once": false, 123 | "onceDelay": 0.1, 124 | "topic": "", 125 | "payload": "", 126 | "payloadType": "date", 127 | "x": 200, 128 | "y": 300, 129 | "wires": [ 130 | [ 131 | "17743cbeb2f85f6c" 132 | ] 133 | ] 134 | }, 135 | { 136 | "id": "b8bad35203bf1be6", 137 | "type": "function", 138 | "z": "aa4ed42c901d08f1", 139 | "name": "toBuffer", 140 | "func": "msg.payload = Buffer.from(msg.payload, \"base64\")\nreturn msg;", 141 | "outputs": 1, 142 | "noerr": 0, 143 | "initialize": "", 144 | "finalize": "", 145 | "libs": [], 146 | "x": 880, 147 | "y": 300, 148 | "wires": [ 149 | [ 150 | "15093aea7f36a95d" 151 | ] 152 | ] 153 | }, 154 | { 155 | "id": "15093aea7f36a95d", 156 | "type": "file", 157 | "z": "aa4ed42c901d08f1", 158 | "name": "", 159 | "filename": "/Users/yunus/Documents/Gleich wieder löschen/test.jpg", 160 | "filenameType": "str", 161 | "appendNewline": false, 162 | "createDir": false, 163 | "overwriteFile": "true", 164 | "encoding": "none", 165 | "x": 1250, 166 | "y": 300, 167 | "wires": [ 168 | [] 169 | ] 170 | }, 171 | { 172 | "id": "f550f4fc8cbb223a", 173 | "type": "ui_group", 174 | "name": "Default", 175 | "tab": "11130b2099b2c68d", 176 | "order": 1, 177 | "disp": true, 178 | "width": "6", 179 | "collapse": false, 180 | "className": "" 181 | }, 182 | { 183 | "id": "11130b2099b2c68d", 184 | "type": "ui_tab", 185 | "name": "Home", 186 | "icon": "dashboard", 187 | "disabled": false, 188 | "hidden": false 189 | } 190 | ] -------------------------------------------------------------------------------- /04_Dashboard/03_Other/20_toolbar_button.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "30bd611b7801b225", 4 | "type": "ui_template", 5 | "z": "ab7cdbcd4ebd23cc", 6 | "group": "272a3499f4923c2d", 7 | "name": "", 8 | "order": 2, 9 | "width": 0, 10 | "height": 0, 11 | "format": "", 12 | "storeOutMessages": true, 13 | "fwdInMessages": true, 14 | "resendOnRefresh": true, 15 | "templateScope": "local", 16 | "className": "", 17 | "x": 400, 18 | "y": 360, 19 | "wires": [ 20 | [ 21 | "81e7a2032e985f82" 22 | ] 23 | ] 24 | }, 25 | { 26 | "id": "272a3499f4923c2d", 27 | "type": "ui_group", 28 | "name": "Default", 29 | "tab": "e6990231ea48c64c", 30 | "order": 1, 31 | "disp": true, 32 | "width": "6", 33 | "collapse": false, 34 | "className": "" 35 | }, 36 | { 37 | "id": "e6990231ea48c64c", 38 | "type": "ui_tab", 39 | "name": "Home", 40 | "icon": "dashboard", 41 | "disabled": false, 42 | "hidden": false 43 | } 44 | ] -------------------------------------------------------------------------------- /04_Dashboard/04_UITable/01_SimpleUITable.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "31c9e72826f10c17", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Simple UI-Table", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "2fea86a0b292ee74", 12 | "4aa0d3602ccebde6", 13 | "00de96436b607bb7" 14 | ], 15 | "x": 174, 16 | "y": 159, 17 | "w": 592, 18 | "h": 82 19 | }, 20 | { 21 | "id": "2fea86a0b292ee74", 22 | "type": "ui_table", 23 | "z": "f6f2187d.f17ca8", 24 | "g": "31c9e72826f10c17", 25 | "group": "9ea5b1211ce1f538", 26 | "name": "", 27 | "order": 1, 28 | "width": 10, 29 | "height": 4, 30 | "columns": [ 31 | { 32 | "field": "name", 33 | "title": "Name", 34 | "width": "", 35 | "align": "left", 36 | "formatter": "plaintext", 37 | "formatterParams": { 38 | "target": "_blank" 39 | } 40 | }, 41 | { 42 | "field": "age", 43 | "title": "Age", 44 | "width": "25%", 45 | "align": "center", 46 | "formatter": "plaintext", 47 | "formatterParams": { 48 | "target": "_blank" 49 | } 50 | } 51 | ], 52 | "outputs": 1, 53 | "cts": true, 54 | "x": 450, 55 | "y": 200, 56 | "wires": [ 57 | [ 58 | "00de96436b607bb7" 59 | ] 60 | ] 61 | }, 62 | { 63 | "id": "4aa0d3602ccebde6", 64 | "type": "inject", 65 | "z": "f6f2187d.f17ca8", 66 | "g": "31c9e72826f10c17", 67 | "name": "", 68 | "props": [ 69 | { 70 | "p": "payload" 71 | } 72 | ], 73 | "repeat": "", 74 | "crontab": "", 75 | "once": false, 76 | "onceDelay": 0.1, 77 | "topic": "", 78 | "payload": "[{\"name\":\"my_name\",\"age\":26},{\"name\":\"my_new_name\",\"age\":32}]", 79 | "payloadType": "json", 80 | "x": 270, 81 | "y": 200, 82 | "wires": [ 83 | [ 84 | "2fea86a0b292ee74" 85 | ] 86 | ] 87 | }, 88 | { 89 | "id": "00de96436b607bb7", 90 | "type": "debug", 91 | "z": "f6f2187d.f17ca8", 92 | "g": "31c9e72826f10c17", 93 | "name": "", 94 | "active": true, 95 | "tosidebar": true, 96 | "console": false, 97 | "tostatus": false, 98 | "complete": "false", 99 | "statusVal": "", 100 | "statusType": "auto", 101 | "x": 650, 102 | "y": 200, 103 | "wires": [] 104 | }, 105 | { 106 | "id": "9ea5b1211ce1f538", 107 | "type": "ui_group", 108 | "name": "Table", 109 | "tab": "b840f930a6c2e677", 110 | "order": 1, 111 | "disp": true, 112 | "width": 10, 113 | "collapse": false, 114 | "className": "" 115 | }, 116 | { 117 | "id": "b840f930a6c2e677", 118 | "type": "ui_tab", 119 | "name": "Dashboard", 120 | "icon": "dashboard", 121 | "order": 1, 122 | "disabled": false, 123 | "hidden": false 124 | } 125 | ] -------------------------------------------------------------------------------- /04_Dashboard/04_UITable/02_UITable_HTML_Link.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "079559ea1fbafa2e", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Richer Table Html and Link", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "74c59ad94870e309", 12 | "4067f486c627e18a" 13 | ], 14 | "x": 214, 15 | "y": 279, 16 | "w": 352, 17 | "h": 82 18 | }, 19 | { 20 | "id": "74c59ad94870e309", 21 | "type": "ui_table", 22 | "z": "f6f2187d.f17ca8", 23 | "g": "079559ea1fbafa2e", 24 | "group": "7b928250b3553fdd", 25 | "name": "", 26 | "order": 1, 27 | "width": 10, 28 | "height": 4, 29 | "columns": [ 30 | { 31 | "field": "name", 32 | "title": "Name", 33 | "width": "", 34 | "align": "left", 35 | "formatter": "html", 36 | "formatterParams": { 37 | "target": "_blank" 38 | } 39 | }, 40 | { 41 | "field": "url", 42 | "title": "Url", 43 | "width": "60%", 44 | "align": "center", 45 | "formatter": "link", 46 | "formatterParams": { 47 | "target": "_blank" 48 | } 49 | } 50 | ], 51 | "outputs": 0, 52 | "cts": false, 53 | "x": 490, 54 | "y": 320, 55 | "wires": [] 56 | }, 57 | { 58 | "id": "4067f486c627e18a", 59 | "type": "inject", 60 | "z": "f6f2187d.f17ca8", 61 | "g": "079559ea1fbafa2e", 62 | "name": "", 63 | "props": [ 64 | { 65 | "p": "payload" 66 | } 67 | ], 68 | "repeat": "", 69 | "crontab": "", 70 | "once": false, 71 | "onceDelay": 0.1, 72 | "topic": "", 73 | "payload": "[{\"name\":\"my_name\"},{\"name\":\"my_bold_name\"},{\"name\":\"my_italic_name\"},{\"name\":\"my_red_name\",\"url\":\"https://github.com/Node-Red-Tutorials/YT-Examples\"},{\"name\":\"my_uppercase_name\"}]", 74 | "payloadType": "json", 75 | "x": 310, 76 | "y": 320, 77 | "wires": [ 78 | [ 79 | "74c59ad94870e309" 80 | ] 81 | ] 82 | }, 83 | { 84 | "id": "7b928250b3553fdd", 85 | "type": "ui_group", 86 | "name": "Table", 87 | "tab": "e18f7baab35eb2e5", 88 | "order": 1, 89 | "disp": true, 90 | "width": 10, 91 | "collapse": false, 92 | "className": "" 93 | }, 94 | { 95 | "id": "e18f7baab35eb2e5", 96 | "type": "ui_tab", 97 | "name": "Dashboard", 98 | "icon": "dashboard", 99 | "order": 1, 100 | "disabled": false, 101 | "hidden": false 102 | } 103 | ] -------------------------------------------------------------------------------- /04_Dashboard/04_UITable/03_UITable_Formats.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "ea21797d3379af7e", 4 | "type": "group", 5 | "z": "f6f2187d.f17ca8", 6 | "name": "Table Formats", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "90893dbd6d2fd3e3", 12 | "2793c88f65d81947", 13 | "ba579a87b26b7fe6", 14 | "da80efb16fb58b52" 15 | ], 16 | "x": 254, 17 | "y": 319, 18 | "w": 612, 19 | "h": 142 20 | }, 21 | { 22 | "id": "90893dbd6d2fd3e3", 23 | "type": "ui_table", 24 | "z": "f6f2187d.f17ca8", 25 | "g": "ea21797d3379af7e", 26 | "group": "6b800beeb703abcb", 27 | "name": "", 28 | "order": 1, 29 | "width": 20, 30 | "height": 4, 31 | "columns": [ 32 | { 33 | "field": "img", 34 | "title": "Image", 35 | "width": "", 36 | "align": "center", 37 | "formatter": "image", 38 | "formatterParams": { 39 | "target": "_blank" 40 | } 41 | }, 42 | { 43 | "field": "prog", 44 | "title": "Progress", 45 | "width": "", 46 | "align": "left", 47 | "formatter": "progress", 48 | "formatterParams": { 49 | "target": "_blank" 50 | } 51 | }, 52 | { 53 | "field": "traffic", 54 | "title": "Traffic", 55 | "width": "", 56 | "align": "left", 57 | "formatter": "traffic", 58 | "formatterParams": { 59 | "target": "_blank" 60 | } 61 | }, 62 | { 63 | "field": "color", 64 | "title": "Color", 65 | "width": "", 66 | "align": "left", 67 | "formatter": "color", 68 | "formatterParams": { 69 | "target": "_blank" 70 | } 71 | }, 72 | { 73 | "field": "tick", 74 | "title": "Tick", 75 | "width": "", 76 | "align": "left", 77 | "formatter": "tickCross", 78 | "formatterParams": { 79 | "target": "_blank" 80 | } 81 | }, 82 | { 83 | "field": "star", 84 | "title": "Star", 85 | "width": "", 86 | "align": "left", 87 | "formatter": "star", 88 | "formatterParams": { 89 | "target": "_blank" 90 | } 91 | }, 92 | { 93 | "field": "", 94 | "title": "Row number", 95 | "width": "", 96 | "align": "left", 97 | "formatter": "rownum", 98 | "formatterParams": { 99 | "target": "_blank" 100 | } 101 | } 102 | ], 103 | "outputs": 0, 104 | "cts": false, 105 | "x": 770, 106 | "y": 360, 107 | "wires": [] 108 | }, 109 | { 110 | "id": "2793c88f65d81947", 111 | "type": "inject", 112 | "z": "f6f2187d.f17ca8", 113 | "g": "ea21797d3379af7e", 114 | "name": "", 115 | "props": [ 116 | { 117 | "p": "payload" 118 | }, 119 | { 120 | "p": "topic", 121 | "vt": "str" 122 | } 123 | ], 124 | "repeat": "2", 125 | "crontab": "", 126 | "once": false, 127 | "onceDelay": 0.1, 128 | "topic": "", 129 | "payload": "", 130 | "payloadType": "date", 131 | "x": 370, 132 | "y": 360, 133 | "wires": [ 134 | [ 135 | "ba579a87b26b7fe6" 136 | ] 137 | ] 138 | }, 139 | { 140 | "id": "ba579a87b26b7fe6", 141 | "type": "function", 142 | "z": "f6f2187d.f17ca8", 143 | "g": "ea21797d3379af7e", 144 | "name": "", 145 | "func": "msg.payload = [\n {\n \"img\" : \"https://yt3.ggpht.com/Gh5FTdP_rWhnNs2gvNg7-kLzn0vaDkmKgnyg1ditMH8jJMt_rMIOEPqTnSJTZUUMVi6vqDMJ_w=s176-c-k-c0x00ffffff-no-rj\",\n \"prog\" : Math.random() * 100,\n \"traffic\" : Math.random() * 100,\n \"color\" : \"#8f0000\",\n \"tick\" : true,\n \"star\" : Math.round(4.9)\n },\n {\n \"img\" : \"https://yt3.ggpht.com/Gh5FTdP_rWhnNs2gvNg7-kLzn0vaDkmKgnyg1ditMH8jJMt_rMIOEPqTnSJTZUUMVi6vqDMJ_w=s176-c-k-c0x00ffffff-no-rj\",\n \"prog\" : Math.random() * 100,\n \"traffic\" : Math.random() * 100,\n \"color\" : \"green\",\n \"tick\" : false,\n \"star\" : 1\n }\n]\nreturn msg;", 146 | "outputs": 1, 147 | "noerr": 0, 148 | "initialize": "", 149 | "finalize": "", 150 | "libs": [], 151 | "x": 580, 152 | "y": 360, 153 | "wires": [ 154 | [ 155 | "90893dbd6d2fd3e3" 156 | ] 157 | ] 158 | }, 159 | { 160 | "id": "da80efb16fb58b52", 161 | "type": "ui_template", 162 | "z": "f6f2187d.f17ca8", 163 | "g": "ea21797d3379af7e", 164 | "group": "6b800beeb703abcb", 165 | "name": "", 166 | "order": 2, 167 | "width": 0, 168 | "height": 0, 169 | "format": "", 170 | "storeOutMessages": true, 171 | "fwdInMessages": true, 172 | "resendOnRefresh": true, 173 | "templateScope": "local", 174 | "className": "", 175 | "x": 780, 176 | "y": 420, 177 | "wires": [ 178 | [] 179 | ] 180 | }, 181 | { 182 | "id": "6b800beeb703abcb", 183 | "type": "ui_group", 184 | "name": "Table", 185 | "tab": "9326f74d2ff7fe25", 186 | "order": 1, 187 | "disp": true, 188 | "width": 20, 189 | "collapse": false, 190 | "className": "" 191 | }, 192 | { 193 | "id": "9326f74d2ff7fe25", 194 | "type": "ui_tab", 195 | "name": "Dashboard", 196 | "icon": "dashboard", 197 | "order": 1, 198 | "disabled": false, 199 | "hidden": false 200 | } 201 | ] -------------------------------------------------------------------------------- /05_Communication/02_CatchTCPError.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "e93664398ff10280", 4 | "type": "inject", 5 | "z": "ab7cdbcd4ebd23cc", 6 | "name": "", 7 | "props": [ 8 | { 9 | "p": "payload" 10 | }, 11 | { 12 | "p": "topic", 13 | "vt": "str" 14 | } 15 | ], 16 | "repeat": "1", 17 | "crontab": "", 18 | "once": false, 19 | "onceDelay": 0.1, 20 | "topic": "", 21 | "payload": "connected", 22 | "payloadType": "flow", 23 | "x": 280, 24 | "y": 140, 25 | "wires": [ 26 | [ 27 | "76af247113b49eaa", 28 | "9de541e55d1d8bec" 29 | ] 30 | ] 31 | }, 32 | { 33 | "id": "76af247113b49eaa", 34 | "type": "tcp request", 35 | "z": "ab7cdbcd4ebd23cc", 36 | "name": "", 37 | "server": "localhost", 38 | "port": "24", 39 | "out": "time", 40 | "ret": "buffer", 41 | "splitc": "0", 42 | "newline": "", 43 | "trim": false, 44 | "tls": "", 45 | "x": 560, 46 | "y": 140, 47 | "wires": [ 48 | [ 49 | "e9c44992b3aea8f2" 50 | ] 51 | ] 52 | }, 53 | { 54 | "id": "fd4422d2dc38a594", 55 | "type": "catch", 56 | "z": "ab7cdbcd4ebd23cc", 57 | "name": "", 58 | "scope": [ 59 | "76af247113b49eaa" 60 | ], 61 | "uncaught": false, 62 | "x": 250, 63 | "y": 260, 64 | "wires": [ 65 | [ 66 | "ff29945b6aa1ae03" 67 | ] 68 | ] 69 | }, 70 | { 71 | "id": "e9c44992b3aea8f2", 72 | "type": "change", 73 | "z": "ab7cdbcd4ebd23cc", 74 | "name": "", 75 | "rules": [ 76 | { 77 | "t": "set", 78 | "p": "connected", 79 | "pt": "flow", 80 | "to": "true", 81 | "tot": "bool" 82 | } 83 | ], 84 | "action": "", 85 | "property": "", 86 | "from": "", 87 | "to": "", 88 | "reg": false, 89 | "x": 830, 90 | "y": 140, 91 | "wires": [ 92 | [] 93 | ] 94 | }, 95 | { 96 | "id": "ff29945b6aa1ae03", 97 | "type": "change", 98 | "z": "ab7cdbcd4ebd23cc", 99 | "name": "", 100 | "rules": [ 101 | { 102 | "t": "set", 103 | "p": "connected", 104 | "pt": "flow", 105 | "to": "false", 106 | "tot": "bool" 107 | } 108 | ], 109 | "action": "", 110 | "property": "", 111 | "from": "", 112 | "to": "", 113 | "reg": false, 114 | "x": 570, 115 | "y": 260, 116 | "wires": [ 117 | [] 118 | ] 119 | }, 120 | { 121 | "id": "9de541e55d1d8bec", 122 | "type": "debug", 123 | "z": "ab7cdbcd4ebd23cc", 124 | "name": "debug 1", 125 | "active": true, 126 | "tosidebar": true, 127 | "console": false, 128 | "tostatus": false, 129 | "complete": "false", 130 | "statusVal": "", 131 | "statusType": "auto", 132 | "x": 540, 133 | "y": 80, 134 | "wires": [] 135 | } 136 | ] -------------------------------------------------------------------------------- /05_Communication/04_Currency_API.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "d0647661e308d65c", 4 | "type": "http request", 5 | "z": "aa4ed42c901d08f1", 6 | "name": "", 7 | "method": "GET", 8 | "ret": "obj", 9 | "paytoqs": "ignore", 10 | "url": "", 11 | "tls": "", 12 | "persist": false, 13 | "proxy": "", 14 | "insecureHTTPParser": false, 15 | "authType": "", 16 | "senderr": false, 17 | "headers": [], 18 | "x": 470, 19 | "y": 220, 20 | "wires": [ 21 | [ 22 | "696a689c800a61b2" 23 | ] 24 | ] 25 | }, 26 | { 27 | "id": "84086f99f6133ef7", 28 | "type": "change", 29 | "z": "aa4ed42c901d08f1", 30 | "name": "", 31 | "rules": [ 32 | { 33 | "t": "set", 34 | "p": "payload", 35 | "pt": "msg", 36 | "to": "payload.eur.usd", 37 | "tot": "msg" 38 | } 39 | ], 40 | "action": "", 41 | "property": "", 42 | "from": "", 43 | "to": "", 44 | "reg": false, 45 | "x": 890, 46 | "y": 200, 47 | "wires": [ 48 | [ 49 | "a8c987787ce6a367" 50 | ] 51 | ] 52 | }, 53 | { 54 | "id": "a8c987787ce6a367", 55 | "type": "ui_text", 56 | "z": "aa4ed42c901d08f1", 57 | "group": "f550f4fc8cbb223a", 58 | "order": 2, 59 | "width": 0, 60 | "height": 0, 61 | "name": "", 62 | "label": "EUR to USD", 63 | "format": "{{msg.payload}}", 64 | "layout": "row-spread", 65 | "className": "", 66 | "x": 1110, 67 | "y": 220, 68 | "wires": [] 69 | }, 70 | { 71 | "id": "cd6afe9c42597ae2", 72 | "type": "function", 73 | "z": "aa4ed42c901d08f1", 74 | "name": "urlGenerator", 75 | "func": "// Says either \"USD\" or \"EUR\"\nconst inp = msg.payload\n\nvar url = 'https://cdn.jsdelivr.net/gh/fawazahmed0/currency-api@1/latest/currencies/eur.json'\n\nif(inp == \"USD\"){\n url = 'https://cdn.jsdelivr.net/gh/fawazahmed0/currency-api@1/latest/currencies/usd.json'\n}\n\nmsg = {\n url: url\n}\n\nreturn msg;", 76 | "outputs": 1, 77 | "noerr": 0, 78 | "initialize": "", 79 | "finalize": "", 80 | "libs": [], 81 | "x": 290, 82 | "y": 220, 83 | "wires": [ 84 | [ 85 | "d0647661e308d65c" 86 | ] 87 | ] 88 | }, 89 | { 90 | "id": "3f3ccf732bdf481c", 91 | "type": "ui_text_input", 92 | "z": "aa4ed42c901d08f1", 93 | "name": "", 94 | "label": "USD or EUR", 95 | "tooltip": "", 96 | "group": "f550f4fc8cbb223a", 97 | "order": 1, 98 | "width": 0, 99 | "height": 0, 100 | "passthru": true, 101 | "mode": "text", 102 | "delay": 300, 103 | "topic": "topic", 104 | "sendOnBlur": true, 105 | "className": "", 106 | "topicType": "msg", 107 | "x": 110, 108 | "y": 220, 109 | "wires": [ 110 | [ 111 | "cd6afe9c42597ae2" 112 | ] 113 | ] 114 | }, 115 | { 116 | "id": "696a689c800a61b2", 117 | "type": "switch", 118 | "z": "aa4ed42c901d08f1", 119 | "name": "", 120 | "property": "payload", 121 | "propertyType": "msg", 122 | "rules": [ 123 | { 124 | "t": "hask", 125 | "v": "eur", 126 | "vt": "str" 127 | }, 128 | { 129 | "t": "else" 130 | } 131 | ], 132 | "checkall": "true", 133 | "repair": false, 134 | "outputs": 2, 135 | "x": 690, 136 | "y": 220, 137 | "wires": [ 138 | [ 139 | "84086f99f6133ef7" 140 | ], 141 | [ 142 | "c08af642ea9986b2" 143 | ] 144 | ] 145 | }, 146 | { 147 | "id": "c08af642ea9986b2", 148 | "type": "change", 149 | "z": "aa4ed42c901d08f1", 150 | "name": "", 151 | "rules": [ 152 | { 153 | "t": "set", 154 | "p": "payload", 155 | "pt": "msg", 156 | "to": "payload.usd.eur", 157 | "tot": "msg" 158 | } 159 | ], 160 | "action": "", 161 | "property": "", 162 | "from": "", 163 | "to": "", 164 | "reg": false, 165 | "x": 890, 166 | "y": 240, 167 | "wires": [ 168 | [ 169 | "a8c987787ce6a367" 170 | ] 171 | ] 172 | }, 173 | { 174 | "id": "f550f4fc8cbb223a", 175 | "type": "ui_group", 176 | "name": "Default", 177 | "tab": "11130b2099b2c68d", 178 | "order": 1, 179 | "disp": true, 180 | "width": "6", 181 | "collapse": false, 182 | "className": "" 183 | }, 184 | { 185 | "id": "11130b2099b2c68d", 186 | "type": "ui_tab", 187 | "name": "Home", 188 | "icon": "dashboard", 189 | "disabled": false, 190 | "hidden": false 191 | } 192 | ] -------------------------------------------------------------------------------- /06_RPI/03_SenseHat_Output.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "4fbed19da6c98659", 4 | "type": "group", 5 | "z": "1e15dd8f24dbe1c4", 6 | "name": "Sense Hat Output", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "c8026db90dab7f59", 12 | "0eb91c9dabb98dc5", 13 | "7c09d895db31c232", 14 | "278993634e801f94", 15 | "9f2f68e0af513601", 16 | "d7bfeb9cbc82e967", 17 | "3f841e838377f78d" 18 | ], 19 | "x": 334, 20 | "y": 219, 21 | "w": 472, 22 | "h": 282 23 | }, 24 | { 25 | "id": "c8026db90dab7f59", 26 | "type": "rpi-sensehat out", 27 | "z": "1e15dd8f24dbe1c4", 28 | "g": "4fbed19da6c98659", 29 | "name": "", 30 | "x": 710, 31 | "y": 260, 32 | "wires": [] 33 | }, 34 | { 35 | "id": "0eb91c9dabb98dc5", 36 | "type": "inject", 37 | "z": "1e15dd8f24dbe1c4", 38 | "g": "4fbed19da6c98659", 39 | "name": "", 40 | "props": [ 41 | { 42 | "p": "payload" 43 | } 44 | ], 45 | "repeat": "", 46 | "crontab": "", 47 | "once": false, 48 | "onceDelay": 0.1, 49 | "topic": "", 50 | "payload": "4,4,red", 51 | "payloadType": "str", 52 | "x": 510, 53 | "y": 300, 54 | "wires": [ 55 | [ 56 | "c8026db90dab7f59" 57 | ] 58 | ] 59 | }, 60 | { 61 | "id": "7c09d895db31c232", 62 | "type": "inject", 63 | "z": "1e15dd8f24dbe1c4", 64 | "g": "4fbed19da6c98659", 65 | "name": "", 66 | "props": [ 67 | { 68 | "p": "payload" 69 | } 70 | ], 71 | "repeat": "", 72 | "crontab": "", 73 | "once": false, 74 | "onceDelay": 0.1, 75 | "topic": "", 76 | "payload": "0,0,blue", 77 | "payloadType": "str", 78 | "x": 510, 79 | "y": 340, 80 | "wires": [ 81 | [ 82 | "c8026db90dab7f59" 83 | ] 84 | ] 85 | }, 86 | { 87 | "id": "278993634e801f94", 88 | "type": "inject", 89 | "z": "1e15dd8f24dbe1c4", 90 | "g": "4fbed19da6c98659", 91 | "name": "", 92 | "props": [ 93 | { 94 | "p": "payload" 95 | } 96 | ], 97 | "repeat": "", 98 | "crontab": "", 99 | "once": false, 100 | "onceDelay": 0.1, 101 | "topic": "", 102 | "payload": "*,*,off", 103 | "payloadType": "str", 104 | "x": 510, 105 | "y": 260, 106 | "wires": [ 107 | [ 108 | "c8026db90dab7f59" 109 | ] 110 | ] 111 | }, 112 | { 113 | "id": "9f2f68e0af513601", 114 | "type": "inject", 115 | "z": "1e15dd8f24dbe1c4", 116 | "g": "4fbed19da6c98659", 117 | "name": "", 118 | "props": [ 119 | { 120 | "p": "payload" 121 | } 122 | ], 123 | "repeat": "", 124 | "crontab": "", 125 | "once": false, 126 | "onceDelay": 0.1, 127 | "topic": "", 128 | "payload": "4,*,blue", 129 | "payloadType": "str", 130 | "x": 510, 131 | "y": 380, 132 | "wires": [ 133 | [ 134 | "c8026db90dab7f59" 135 | ] 136 | ] 137 | }, 138 | { 139 | "id": "d7bfeb9cbc82e967", 140 | "type": "inject", 141 | "z": "1e15dd8f24dbe1c4", 142 | "g": "4fbed19da6c98659", 143 | "name": "", 144 | "props": [ 145 | { 146 | "p": "payload" 147 | } 148 | ], 149 | "repeat": "", 150 | "crontab": "", 151 | "once": false, 152 | "onceDelay": 0.1, 153 | "topic": "", 154 | "payload": "3-4,3-4,green", 155 | "payloadType": "str", 156 | "x": 490, 157 | "y": 420, 158 | "wires": [ 159 | [ 160 | "c8026db90dab7f59" 161 | ] 162 | ] 163 | }, 164 | { 165 | "id": "3f841e838377f78d", 166 | "type": "inject", 167 | "z": "1e15dd8f24dbe1c4", 168 | "g": "4fbed19da6c98659", 169 | "name": "", 170 | "props": [ 171 | { 172 | "p": "payload" 173 | }, 174 | { 175 | "p": "color", 176 | "v": "#8f0100", 177 | "vt": "str" 178 | } 179 | ], 180 | "repeat": "", 181 | "crontab": "", 182 | "once": false, 183 | "onceDelay": 0.1, 184 | "topic": "", 185 | "payload": "Node-Red Tutorials", 186 | "payloadType": "str", 187 | "x": 470, 188 | "y": 460, 189 | "wires": [ 190 | [ 191 | "c8026db90dab7f59" 192 | ] 193 | ] 194 | } 195 | ] -------------------------------------------------------------------------------- /06_RPI/04_GPIO_Input.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "ed35045ff9965409", 4 | "type": "group", 5 | "z": "1e15dd8f24dbe1c4", 6 | "style": { 7 | "stroke": "#999999", 8 | "stroke-opacity": "1", 9 | "fill": "none", 10 | "fill-opacity": "1", 11 | "label": true, 12 | "label-position": "nw", 13 | "color": "#a4a4a4" 14 | }, 15 | "nodes": [ 16 | "c5c67626b4466ff8", 17 | "af2e3369150364b3", 18 | "2567f91e72ee48b9", 19 | "fd04b13c193d51b5", 20 | "b9d02d954796887a", 21 | "b8c58ddb569bfdaf" 22 | ], 23 | "x": 314, 24 | "y": 159, 25 | "w": 792, 26 | "h": 142 27 | }, 28 | { 29 | "id": "c5c67626b4466ff8", 30 | "type": "rpi-gpio in", 31 | "z": "1e15dd8f24dbe1c4", 32 | "g": "ed35045ff9965409", 33 | "name": "", 34 | "pin": "17", 35 | "intype": "down", 36 | "debounce": "25", 37 | "read": false, 38 | "bcm": true, 39 | "x": 400, 40 | "y": 220, 41 | "wires": [ 42 | [ 43 | "b9d02d954796887a" 44 | ] 45 | ] 46 | }, 47 | { 48 | "id": "af2e3369150364b3", 49 | "type": "ui_template", 50 | "z": "1e15dd8f24dbe1c4", 51 | "g": "ed35045ff9965409", 52 | "group": "5e88d4e9578032ea", 53 | "name": "", 54 | "order": 2, 55 | "width": 2, 56 | "height": 2, 57 | "format": "\n\n", 58 | "storeOutMessages": true, 59 | "fwdInMessages": true, 60 | "resendOnRefresh": true, 61 | "templateScope": "local", 62 | "className": "", 63 | "x": 1020, 64 | "y": 220, 65 | "wires": [ 66 | [] 67 | ] 68 | }, 69 | { 70 | "id": "2567f91e72ee48b9", 71 | "type": "change", 72 | "z": "1e15dd8f24dbe1c4", 73 | "g": "ed35045ff9965409", 74 | "name": "", 75 | "rules": [ 76 | { 77 | "t": "set", 78 | "p": "payload", 79 | "pt": "msg", 80 | "to": "green", 81 | "tot": "str" 82 | } 83 | ], 84 | "action": "", 85 | "property": "", 86 | "from": "", 87 | "to": "", 88 | "reg": false, 89 | "x": 800, 90 | "y": 200, 91 | "wires": [ 92 | [ 93 | "af2e3369150364b3" 94 | ] 95 | ] 96 | }, 97 | { 98 | "id": "fd04b13c193d51b5", 99 | "type": "change", 100 | "z": "1e15dd8f24dbe1c4", 101 | "g": "ed35045ff9965409", 102 | "name": "", 103 | "rules": [ 104 | { 105 | "t": "set", 106 | "p": "payload", 107 | "pt": "msg", 108 | "to": "red", 109 | "tot": "str" 110 | } 111 | ], 112 | "action": "", 113 | "property": "", 114 | "from": "", 115 | "to": "", 116 | "reg": false, 117 | "x": 800, 118 | "y": 240, 119 | "wires": [ 120 | [ 121 | "af2e3369150364b3" 122 | ] 123 | ] 124 | }, 125 | { 126 | "id": "b9d02d954796887a", 127 | "type": "switch", 128 | "z": "1e15dd8f24dbe1c4", 129 | "g": "ed35045ff9965409", 130 | "name": "", 131 | "property": "payload", 132 | "propertyType": "msg", 133 | "rules": [ 134 | { 135 | "t": "eq", 136 | "v": "1", 137 | "vt": "num" 138 | }, 139 | { 140 | "t": "else" 141 | } 142 | ], 143 | "checkall": "true", 144 | "repair": false, 145 | "outputs": 2, 146 | "x": 590, 147 | "y": 220, 148 | "wires": [ 149 | [ 150 | "2567f91e72ee48b9" 151 | ], 152 | [ 153 | "fd04b13c193d51b5" 154 | ] 155 | ] 156 | }, 157 | { 158 | "id": "b8c58ddb569bfdaf", 159 | "type": "inject", 160 | "z": "1e15dd8f24dbe1c4", 161 | "g": "ed35045ff9965409", 162 | "name": "", 163 | "props": [ 164 | { 165 | "p": "payload" 166 | } 167 | ], 168 | "repeat": "", 169 | "crontab": "", 170 | "once": true, 171 | "onceDelay": 0.1, 172 | "topic": "", 173 | "payload": "", 174 | "payloadType": "date", 175 | "x": 570, 176 | "y": 260, 177 | "wires": [ 178 | [ 179 | "fd04b13c193d51b5" 180 | ] 181 | ] 182 | }, 183 | { 184 | "id": "5e88d4e9578032ea", 185 | "type": "ui_group", 186 | "name": "GPIO Input", 187 | "tab": "33f8f7db6b9d41f0", 188 | "order": 1, 189 | "disp": true, 190 | "width": "6", 191 | "collapse": false, 192 | "className": "" 193 | }, 194 | { 195 | "id": "33f8f7db6b9d41f0", 196 | "type": "ui_tab", 197 | "name": "RPI", 198 | "icon": "dashboard", 199 | "order": 1, 200 | "disabled": false, 201 | "hidden": false 202 | } 203 | ] -------------------------------------------------------------------------------- /06_RPI/05_GPIO_Output.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "9d0f1686a4db168d", 4 | "type": "group", 5 | "z": "1e15dd8f24dbe1c4", 6 | "name": "GPIO Output", 7 | "style": { 8 | "label": true 9 | }, 10 | "nodes": [ 11 | "23ba7bb1f67c6127", 12 | "12fe4224965a35e1" 13 | ], 14 | "x": 414, 15 | "y": 259, 16 | "w": 352, 17 | "h": 82 18 | }, 19 | { 20 | "id": "23ba7bb1f67c6127", 21 | "type": "rpi-gpio out", 22 | "z": "1e15dd8f24dbe1c4", 23 | "g": "9d0f1686a4db168d", 24 | "name": "", 25 | "pin": "23", 26 | "set": true, 27 | "level": "0", 28 | "freq": "", 29 | "out": "out", 30 | "bcm": true, 31 | "x": 680, 32 | "y": 300, 33 | "wires": [] 34 | }, 35 | { 36 | "id": "12fe4224965a35e1", 37 | "type": "ui_switch", 38 | "z": "1e15dd8f24dbe1c4", 39 | "g": "9d0f1686a4db168d", 40 | "name": "", 41 | "label": "LED", 42 | "tooltip": "Activates the attached LED", 43 | "group": "2868bfbda415dbf3", 44 | "order": 0, 45 | "width": 0, 46 | "height": 0, 47 | "passthru": true, 48 | "decouple": "false", 49 | "topic": "topic", 50 | "topicType": "msg", 51 | "style": "", 52 | "onvalue": "true", 53 | "onvalueType": "bool", 54 | "onicon": "", 55 | "oncolor": "", 56 | "offvalue": "false", 57 | "offvalueType": "bool", 58 | "officon": "", 59 | "offcolor": "", 60 | "animate": false, 61 | "className": "", 62 | "x": 490, 63 | "y": 300, 64 | "wires": [ 65 | [ 66 | "23ba7bb1f67c6127" 67 | ] 68 | ] 69 | }, 70 | { 71 | "id": "2868bfbda415dbf3", 72 | "type": "ui_group", 73 | "name": "GPIO Output", 74 | "tab": "ce609bbfb55a19dd", 75 | "order": 1, 76 | "disp": true, 77 | "width": "6", 78 | "collapse": false, 79 | "className": "" 80 | }, 81 | { 82 | "id": "ce609bbfb55a19dd", 83 | "type": "ui_tab", 84 | "name": "RPI", 85 | "icon": "dashboard", 86 | "order": 1, 87 | "disabled": false, 88 | "hidden": false 89 | } 90 | ] -------------------------------------------------------------------------------- /07_External_Libraries/01_PDFLib.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "d29622ee08e06572", 4 | "type": "function", 5 | "z": "aa4ed42c901d08f1", 6 | "name": "EditPDF", 7 | "func": "let pdfBytes = msg.payload\nconst signatureBytes = flow.get(\"signature\")\n\nconst pdfDoc = await pdfLib.PDFDocument.load(pdfBytes)\n\nfor (let [index, page] of pdfDoc.getPages().entries()) {\n\n const pdfImage = await pdfDoc.embedPng(signatureBytes)\n\n /*\n The image position is measured using GIMP with the ruler set to the mode \"pt\".\n Bc the origin in GIMP is in the top left corner and the origin of pdf-lib is in the bottom left corner, the measure-\n ments are subtracted from the total height (WIDTH (x) DOESENT NEED TO BE CHANGED)\n\n ^ <-total-height | <- subtracted height\n | |\n | |\n |\n |\n */\n\n //Signature add\n page.drawImage(pdfImage, {\n x: 140,\n y: page.getHeight() - 510,\n width: 100,\n height: 40\n })\n\n //TEXT\n page.drawText(\"Max Test\", {\n x: 130,\n y: page.getHeight() - 333\n })\n\n page.drawText(\"Teststreet 1\", {\n x: 130,\n y: page.getHeight() - 378\n })\n\n page.drawText(new Date().toLocaleDateString(\"de-DE\"), {\n x: 130,\n y: page.getHeight() - 424\n })\n}\n\npdfBytes = await pdfDoc.save()\n\nmsg.payload = new Buffer(pdfBytes)\n\nreturn msg;", 8 | "outputs": 1, 9 | "noerr": 0, 10 | "initialize": "", 11 | "finalize": "", 12 | "libs": [ 13 | { 14 | "var": "pdfLib", 15 | "module": "pdf-lib" 16 | } 17 | ], 18 | "x": 500, 19 | "y": 280, 20 | "wires": [ 21 | [ 22 | "736e1626192493b8", 23 | "270aee11c2643501" 24 | ] 25 | ] 26 | }, 27 | { 28 | "id": "68689dd480553eec", 29 | "type": "file in", 30 | "z": "aa4ed42c901d08f1", 31 | "name": "UneditedPDF", 32 | "filename": "", 33 | "filenameType": "str", 34 | "format": "", 35 | "chunk": false, 36 | "sendError": false, 37 | "encoding": "none", 38 | "allProps": false, 39 | "x": 320, 40 | "y": 280, 41 | "wires": [ 42 | [ 43 | "d29622ee08e06572" 44 | ] 45 | ] 46 | }, 47 | { 48 | "id": "6aa416d19f94a203", 49 | "type": "file in", 50 | "z": "aa4ed42c901d08f1", 51 | "name": "SignatureImage", 52 | "filename": "", 53 | "filenameType": "str", 54 | "format": "", 55 | "chunk": false, 56 | "sendError": false, 57 | "encoding": "none", 58 | "allProps": false, 59 | "x": 320, 60 | "y": 220, 61 | "wires": [ 62 | [ 63 | "4398aabfd8256a96" 64 | ] 65 | ] 66 | }, 67 | { 68 | "id": "4398aabfd8256a96", 69 | "type": "change", 70 | "z": "aa4ed42c901d08f1", 71 | "name": "", 72 | "rules": [ 73 | { 74 | "t": "set", 75 | "p": "signature", 76 | "pt": "flow", 77 | "to": "payload", 78 | "tot": "msg" 79 | } 80 | ], 81 | "action": "", 82 | "property": "", 83 | "from": "", 84 | "to": "", 85 | "reg": false, 86 | "x": 840, 87 | "y": 220, 88 | "wires": [ 89 | [] 90 | ] 91 | }, 92 | { 93 | "id": "508907b5bec8ef8d", 94 | "type": "inject", 95 | "z": "aa4ed42c901d08f1", 96 | "name": "", 97 | "props": [ 98 | { 99 | "p": "payload" 100 | }, 101 | { 102 | "p": "topic", 103 | "vt": "str" 104 | } 105 | ], 106 | "repeat": "", 107 | "crontab": "", 108 | "once": false, 109 | "onceDelay": 0.1, 110 | "topic": "", 111 | "payload": "", 112 | "payloadType": "date", 113 | "x": 100, 114 | "y": 220, 115 | "wires": [ 116 | [ 117 | "6aa416d19f94a203" 118 | ] 119 | ] 120 | }, 121 | { 122 | "id": "736e1626192493b8", 123 | "type": "file", 124 | "z": "aa4ed42c901d08f1", 125 | "name": "EditedPDF", 126 | "filename": "", 127 | "filenameType": "str", 128 | "appendNewline": false, 129 | "createDir": false, 130 | "overwriteFile": "true", 131 | "encoding": "none", 132 | "x": 830, 133 | "y": 280, 134 | "wires": [ 135 | [] 136 | ] 137 | }, 138 | { 139 | "id": "3f0d58aaa6f00612", 140 | "type": "inject", 141 | "z": "aa4ed42c901d08f1", 142 | "name": "", 143 | "props": [ 144 | { 145 | "p": "payload" 146 | }, 147 | { 148 | "p": "topic", 149 | "vt": "str" 150 | } 151 | ], 152 | "repeat": "", 153 | "crontab": "", 154 | "once": false, 155 | "onceDelay": 0.1, 156 | "topic": "", 157 | "payload": "", 158 | "payloadType": "date", 159 | "x": 100, 160 | "y": 280, 161 | "wires": [ 162 | [ 163 | "68689dd480553eec" 164 | ] 165 | ] 166 | }, 167 | { 168 | "id": "270aee11c2643501", 169 | "type": "debug", 170 | "z": "aa4ed42c901d08f1", 171 | "name": "debug 13", 172 | "active": true, 173 | "tosidebar": true, 174 | "console": false, 175 | "tostatus": false, 176 | "complete": "false", 177 | "statusVal": "", 178 | "statusType": "auto", 179 | "x": 820, 180 | "y": 340, 181 | "wires": [] 182 | } 183 | ] -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [](https://www.buymeacoffee.com/NodeRedTutorial) 2 | 3 | # YT-Examples 4 | Code Examples for the Node-Red-Tutorials YouTube Channel. 5 | 6 | # Instructions 7 | To use this code go to your Node-Red editor. Press in the top right corner on the Menu icon. 8 | Go to import and select the `.json` file you want to import. 9 | 10 | # Repository Structure 11 | The Repository is structured using the following folders. 12 | 13 | ## Custom Examples 14 | In the folder `00_Custom_Examples` you can find some tutorials i made based on follower requests. 15 | 16 | ## Common Nodes 17 | In the folder `01_Common_Nodes` you find tutorials about all the common nodes of Node-Red. 18 | Including the `Inject` and `Debug` node, which are in my opinion the most used node in Node-Red. 19 | 20 | ## Function Nodes 21 | In the folder `02_Function_Nodes` you find tutorials about the widely used `switch` and `change` node. 22 | 23 | ## JavaScript Functions 24 | In the folder `03_JavaScript_Nodes` there are some basic flows using the `function` node, which lets the user define custom JavaScript functions. 25 | Making this node incredibly powerful. 26 | 27 | ## Dashboard 28 | Next the `04_Dashboard` folder. It includes a tutorial for every normal node in the Node-Red Dashboard. Including the `template` and `ui control` node. Further extending the basic functionality using the `table` node. 29 | 30 | ## Communication 31 | Next the `05_Communication` folder. In here we teach you how to communicate with the world in different ways. For example TCP. 32 | 33 | ## RPI 34 | In the `06_RPI` folder, you will find node-red code based on a raspberry pi. 35 | 36 | ## External Libraries 37 | In the `07_External_Libraries` you'll find Examples on how to import npm modules into your node-red. 38 | 39 | # Contact 40 | If you want to contact us, weather you have a problem with your Node-Red or you have a Video recomendation, either write a Comment on my YouTube Channel linked below or use the following email: noderedtutorials@gmail.com 41 | 42 | # Links 43 | [YouTube](https://www.youtube.com/@node-red-tutorials) 44 | 45 | [Instagram](https://www.instagram.com/node_red_tutorials/) 46 | --------------------------------------------------------------------------------