Guest User

test

a guest
Mar 17th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 63.96 KB | None | 0 0
  1. [{"id":"a7591472.60d248","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"9aa87302.98ba","type":"twilio-api","z":"","sid":"ACf679afd88c8ca97115007bc5c6b5d8a7","from":"2096617264","name":"Twilio CWF"},{"id":"4e9f7382.453e1c","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#0094CE","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","edited":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif"},"themeState":{"base-color":{"default":"#0094CE","value":"#0094CE","edited":false},"page-titlebar-backgroundColor":{"value":"#0094CE","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#ffffff","edited":false},"group-textColor":{"value":"#1bbfff","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#0094ce","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif"}}},"site":{"name":"CautionWetFloor","hideToolbar":"false","allowSwipe":"false","dateFormat":"DD/MM/YYYY","sizes":{"sx":50,"sy":50,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"7abd36d9.ecdd28","type":"ui_tab","z":"","name":"CP","icon":"settings","order":5},{"id":"d4f0fc7c.813ea","type":"ui_group","z":"","name":"Management","tab":"7abd36d9.ecdd28","order":1,"disp":false,"width":"6","collapse":false},{"id":"b3dbee1a.2da1b","type":"ui_tab","z":"","name":"Today's Usage","icon":"today","order":1},{"id":"c7a246ee.62e738","type":"ui_tab","z":"","name":"Overall Water Usage","icon":"bubble_chart","order":2},{"id":"5cfb2759.a41618","type":"ui_tab","z":"","name":"Alerts","icon":"warning","order":3},{"id":"24f54499.95ac4c","type":"ui_group","z":"","name":"Today's Water Usage","tab":"b3dbee1a.2da1b","disp":false,"width":"6","collapse":false},{"id":"cc6477f0.54cb38","type":"ui_group","z":"","name":"Overall Water Usage","tab":"c7a246ee.62e738","order":1,"disp":true,"width":"6","collapse":false},{"id":"e8dfdc01.62403","type":"ui_group","z":"","name":"Warnings","tab":"5cfb2759.a41618","disp":false,"width":"6","collapse":false},{"id":"f686c8b3.3663c8","type":"ui_tab","z":"","name":"Rewards","icon":"attach_money","order":4},{"id":"960b2a3f.9063b8","type":"ui_group","z":"","name":"Rewards","tab":"f686c8b3.3663c8","disp":false,"width":"6","collapse":false},{"id":"137174b4.65678b","type":"twilio out","z":"a7591472.60d248","service":"_ext_","twilio":"9aa87302.98ba","from":"","number":"","name":"Send Text","x":500,"y":240,"wires":[]},{"id":"dbad6fdc.32b1d","type":"change","z":"a7591472.60d248","name":"","rules":[{"t":"set","p":"recipient","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":290,"y":80,"wires":[[]]},{"id":"4ad87557.b9ddac","type":"comment","z":"a7591472.60d248","name":"Set Phone Number","info":"","x":330,"y":20,"wires":[]},{"id":"a7016f8e.b4157","type":"ui_button","z":"a7591472.60d248","name":"Reset Warnings","group":"d4f0fc7c.813ea","order":6,"width":0,"height":0,"passthru":false,"label":"Reset Warnings","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"","x":120,"y":160,"wires":[["7fa2b37d.0ec25c"]]},{"id":"225c1990.428256","type":"comment","z":"a7591472.60d248","name":"Reset warnings","info":"","x":220,"y":120,"wires":[]},{"id":"58ccea51.8eaf44","type":"change","z":"a7591472.60d248","name":"","rules":[{"t":"set","p":"dailyUsage","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1040,"y":240,"wires":[[]]},{"id":"3e61e733.995138","type":"inject","z":"a7591472.60d248","name":"","topic":"","payload":"","payloadType":"str","repeat":"5","crontab":"","once":false,"onceDelay":0.1,"x":90,"y":240,"wires":[["fc82fa7.183ba08"]]},{"id":"9a2937e9.085278","type":"switch","z":"a7591472.60d248","name":"is not null","property":"payload","propertyType":"msg","rules":[{"t":"nnull"}],"checkall":"true","repair":false,"outputs":1,"x":360,"y":240,"wires":[["137174b4.65678b"]]},{"id":"4c835ab.6572ba4","type":"comment","z":"a7591472.60d248","name":"Send Alerts","info":"","x":230,"y":200,"wires":[]},{"id":"2f1c71a2.09956e","type":"ui_gauge","z":"a7591472.60d248","name":"DailyUsage","group":"24f54499.95ac4c","order":2,"width":0,"height":0,"gtype":"wave","title":"","label":" gal.","format":"{{value}}","min":0,"max":"13","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":1010,"y":280,"wires":[]},{"id":"fc82fa7.183ba08","type":"function","z":"a7591472.60d248","name":"","func":"var twilioInfo = { topic: global.get(\"recipient\") };\nvar du = parseInt(global.get(\"dailyUsage\"));\nvar warnings = global.get(\"warnings\");\n\nvar msg = \"You've used <x>% of your daily water usage!\";\n\nvar dailyTotal = global.get(\"dailyGoal\");\n\nvar percentage = (du/dailyTotal)*100;\n\nfor (var key in warnings) {\n if (!warnings[key]) {\n if (percentage >= parseInt(key)) {\n warnings[key] = true;\n twilioInfo[\"payload\"] = msg.replace(\"<x>\", key);\n }\n }\n}\n\nreturn twilioInfo;","outputs":1,"noerr":0,"x":210,"y":240,"wires":[["9a2937e9.085278"]]},{"id":"c4d24d32.693ad","type":"ui_template","z":"a7591472.60d248","group":"cc6477f0.54cb38","name":"","order":2,"width":0,"height":0,"format":"<style>\n li {\n float:left;\n width: 25%;\n }\n \n .center {\n background-color:#C0C0C0;\n text-align: center;\n color:white;\n font-weight: bold;\n text-transform: uppercase;\n height: 30px;\n vertical-align: middle;\n line-height: 2;\n }\n \n .navcontainer {\n margin-left: auto;\n margin-right: auto;\n background-color: #fff;\n height: 30px;\n }\n \n .navbar {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n \n .navgraphs {\n background-color: #008CBA;\n border: none;\n color: white;\n text-align: center;\n font-weight: bold;\n transition: all 0.3s ease 0s;\n height: 30px;\n cursor: pointer;\n display: block;\n padding: 5px 5px 5px 0.5em;\n width: 100%;\n }\n \n .navgraphs:hover {\n background-color: #007094;\n outline: none;\n }\n \n .selectedNavGraphs {\n background-color: #686868;\n }\n \n .newMain {\n height: 200px !important;\n }\n \n .newGraph {\n top: 108px !important;\n }\n \n .hideGraph {\n display:none;\n }\n</style>\n\n<script>\n\n window.onload = setTimeout(function(){\n // Resize main bar\n let main = document.getElementById(\"Overall_Water_Usage_Overall_Water_Usage_cards\");\n main.classList.add(\"newMain\");\n \n //Reposition graphs\n let graphs = document.getElementsByTagName(\"md-card\");\n for (var i=2;i<5;i++) {\n graphs[i].classList.add(\"newGraph\");\n graphs[i].classList.add(\"hideGraph\");\n }\n }, 100);\n\n function changeGraph(graph, button) {\n var nav = document.getElementsByClassName(\"navgraphs\");\n var viewBar = document.getElementById(\"viewBar\");\n \n\tfor (var i=0;i<nav.length;i++) {\n \tnav[i].classList.remove(\"selectedNavGraphs\");\n }\n \n button.classList.add(\"selectedNavGraphs\");\n viewBar.innerHTML = \"Currently Viewing: \" + graph;\n \n var graphs = document.getElementsByTagName(\"md-card\");\n \n for (var i=1;i<5;i++) {\n graphs[i].classList.add(\"hideGraph\");\n }\n \n let [day, week, month, year] = [graphs[1], graphs[2], graphs[3], graphs[4]];\n \n switch(graph) {\n case \"day\":\n day.classList.remove(\"hideGraph\");\n break;\n case \"week\":\n week.classList.remove(\"hideGraph\");\n break;\n case \"month\":\n month.classList.remove(\"hideGraph\");\n break;\n case \"year\":\n year.classList.remove(\"hideGraph\");\n break;\n }\n }\n</script>\n<div id=\"top\" class=\"hoverNavOpen\">\n <div id=\"viewBar\" class=\"center\">CURRENTLY VIEWING: DAY</div>\n <div class=\"navcontainer\" style=\"overflow:hidden;\">\n <ul class=\"navbar\">\n <li><button class=\"navgraphs selectedNavGraphs\" onclick=\"changeGraph('day', this)\">Day</button></li>\n <li><button class=\"navgraphs\" onclick=\"changeGraph('week', this)\">Week</button></li>\n <li><button class=\"navgraphs\" onclick=\"changeGraph('month', this)\">Month</button></li>\n <li><button class=\"navgraphs\" onclick=\"changeGraph('year', this)\">Year</button></li>\n </ul>\n </div>\n</div>","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":840,"y":480,"wires":[[]]},{"id":"2c8bf182.f002be","type":"ui_gauge","z":"a7591472.60d248","name":"Day","group":"cc6477f0.54cb38","order":3,"width":0,"height":0,"gtype":"gage","title":"Day Usage","label":"units","format":"{{value}}","min":0,"max":10,"colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":970,"y":480,"wires":[]},{"id":"5fa0c2ac.2e8ffc","type":"comment","z":"a7591472.60d248","name":"Switch Between Graphs on Overall Page","info":"","x":969,"y":421,"wires":[]},{"id":"f3c2520a.0d55e","type":"ui_gauge","z":"a7591472.60d248","name":"Week","group":"cc6477f0.54cb38","order":3,"width":0,"height":0,"gtype":"gage","title":"Week Usage","label":"units","format":"{{value}}","min":0,"max":10,"colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":1090,"y":480,"wires":[]},{"id":"f5144d60.076f2","type":"ui_gauge","z":"a7591472.60d248","name":"Month","group":"cc6477f0.54cb38","order":3,"width":0,"height":0,"gtype":"gage","title":"Month Usage","label":"units","format":"{{value}}","min":0,"max":10,"colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":1210,"y":480,"wires":[]},{"id":"c011ea6.e0ffd18","type":"ui_text","z":"a7591472.60d248","group":"24f54499.95ac4c","order":5,"width":"3","height":"1","name":"Overall Daily","label":"Water Used Today","format":"{{msg.payload}} Gallons","layout":"col-center","x":1010,"y":360,"wires":[]},{"id":"b50ea160.8ad07","type":"ui_text_input","z":"a7591472.60d248","name":"Bathroom Water Usage Controller","label":"Bathroom Water Usage","group":"d4f0fc7c.813ea","order":3,"width":0,"height":0,"passthru":true,"mode":"text","delay":300,"topic":"","x":760,"y":80,"wires":[["a48fe2b9.2a6ba"]]},{"id":"2c395e3c.d14032","type":"ui_text_input","z":"a7591472.60d248","name":"Water Fountain Usage Controller","label":"Water Fountain Usage","group":"d4f0fc7c.813ea","order":4,"width":0,"height":0,"passthru":true,"mode":"text","delay":300,"topic":"","x":760,"y":120,"wires":[["b8790e57.e098c"]]},{"id":"b40d26ae.f0c898","type":"ui_text_input","z":"a7591472.60d248","name":"Sprinker Water Usage Controller","label":"Sprinker Water Usage","group":"d4f0fc7c.813ea","order":5,"width":0,"height":0,"passthru":true,"mode":"text","delay":300,"topic":"","x":770,"y":160,"wires":[["7778ab6b.03fe24"]]},{"id":"a48fe2b9.2a6ba","type":"change","z":"a7591472.60d248","name":"","rules":[{"t":"set","p":"dailyBathroomUsage","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1050,"y":80,"wires":[[]]},{"id":"b8790e57.e098c","type":"change","z":"a7591472.60d248","name":"","rules":[{"t":"set","p":"dailyWaterFountainUsage","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1070,"y":120,"wires":[[]]},{"id":"7778ab6b.03fe24","type":"change","z":"a7591472.60d248","name":"","rules":[{"t":"set","p":"dailySprinklerUsage","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1050,"y":160,"wires":[[]]},{"id":"e42c562d.129b08","type":"inject","z":"a7591472.60d248","name":"","topic":"","payload":"","payloadType":"str","repeat":"1","crontab":"","once":false,"onceDelay":0.1,"x":710,"y":240,"wires":[["c0113d56.017b2"]]},{"id":"c0113d56.017b2","type":"function","z":"a7591472.60d248","name":"SumUsages","func":"let [br, wf, s, c] = [\n parseInt(global.get(\"dailyBathroomUsage\")),\n parseInt(global.get(\"dailyWaterFountainUsage\")),\n parseInt(global.get(\"dailySprinklerUsage\")),\n parseInt(global.get(\"dailyClassroomUsage\"))\n ];\n \nlet daily = global.get(\"dailyGoal\");\n \nreturn { payload: (br + wf + s + c), percentage: Math.round(((br+wf+s+c)/daily)*100) };","outputs":1,"noerr":0,"x":850,"y":240,"wires":[["c011ea6.e0ffd18","2f1c71a2.09956e","58ccea51.8eaf44","93a024ed.8dbd18"]]},{"id":"c09723aa.db40c","type":"comment","z":"a7591472.60d248","name":"Control Water Simulator","info":"","x":927.5,"y":40,"wires":[]},{"id":"5b4e58a6.b119b8","type":"ui_template","z":"a7591472.60d248","group":"24f54499.95ac4c","name":"Detailed Usage Header","order":6,"width":0,"height":0,"format":"\n<style>\n .container {\n height: 20px;\n }\n .seperator {\n height:2px;\n background-color: gray;\n margin-bottom: 10px;\n }\n .detailedUsageTitle {\n text-align: center;\n color: #1bbfff;\n font-weight: 500;\n font-size: 1.2em;\n line-height: 0.9;\n }\n</style>\n<div class=\"container\">\n <div class=\"seperator\"></div>\n <p class=\"detailedUsageTitle\">Detailed Usage</p>\n</div>","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":150,"y":560,"wires":[[]]},{"id":"7eb7cab8.2c7f94","type":"ui_template","z":"a7591472.60d248","group":"24f54499.95ac4c","name":"Today Overall Usage","order":1,"width":"0","height":"0","format":"\n<style>\n .overallUsageTitle {\n text-align: center;\n color: #1bbfff;\n font-weight: 500;\n font-size: 1.2em;\n line-height: 0.95;\n }\n</style>\n\n<p class=\"overallUsageTitle\">Today's Overall Usage</p>\n","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":140,"y":520,"wires":[[]]},{"id":"3f51d253.0304fe","type":"comment","z":"a7591472.60d248","name":"Today Usage Page","info":"","x":130,"y":480,"wires":[]},{"id":"3ea3b8c1.e41e28","type":"ui_template","z":"a7591472.60d248","group":"24f54499.95ac4c","name":"Detailed Usage Menu","order":7,"width":0,"height":0,"format":"<style>\n li {\n float:left;\n width: 25%;\n }\n \n .center {\n background-color:#C0C0C0;\n text-align: center;\n color:white;\n font-weight: bold;\n text-transform: uppercase;\n height: 30px;\n vertical-align: middle;\n line-height: 2.2;\n font-size: 14px;\n }\n \n .navcontainer {\n margin-left: auto;\n margin-right: auto;\n background-color: #fff;\n height: 30px;\n }\n \n .navbar {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n \n .navgraphs {\n background-color: #008CBA;\n border: none;\n color: white;\n text-align: center;\n font-weight: bold;\n transition: all 0.3s ease 0s;\n height: 30px;\n cursor: pointer;\n display: block;\n padding: 5px 5px 5px 0.5em;\n width: 100%;\n font-size: 10px;\n }\n \n .navgraphs:hover {\n background-color: #007094;\n outline: none;\n }\n \n .selectedNavGraphs {\n background-color: #686868;\n }\n \n .newMain {\n height: 200px !important;\n }\n \n .newGraph {\n top: 108px !important;\n }\n \n .hideGraph {\n display:none;\n }\n</style>\n<div id=\"storedPayload\" style=\"visibility: hidden;display: none;\">{{msg.payload}}</div>\n<div id=\"top\" class=\"hoverNavOpen\">\n <div id=\"viewBar\" class=\"center\">CURRENTLY VIEWING: BATHROOM</div>\n <div class=\"navcontainer\" style=\"overflow:hidden;\">\n <ul class=\"navbar\">\n <li><button id=\"bathroom\" class=\"navgraphs selectedNavGraphs\" ng-click=\"send({payload:action('bathroom', $event)})\">Bathroom</button></li>\n <li><button id=\"water_fountain\" class=\"navgraphs\" ng-click=\"send({payload:action('water_fountain', $event)})\">Water Fountain</button></li>\n <li><button id=\"sprinklers\" class=\"navgraphs\" ng-click=\"send({payload:action('sprinklers', $event)})\">Sprinklers</button></li>\n <li><button id=\"classrooms\" class=\"navgraphs\" ng-click=\"send({payload:action('classrooms', $event)})\">Classrooms</button></li>\n </ul>\n </div>\n</div>\n\n<script>\n window.onload = setTimeout(function() {\n var detail = document.getElementById(\"storedPayload\").innerHTML;\n if (detail === null) { return; }\n var nav = document.getElementsByClassName(\"navgraphs\");\n var viewBar = document.getElementById(\"viewBar\");\n \n \tfor (var i=0;i<nav.length;i++) {\n \tnav[i].classList.remove(\"selectedNavGraphs\");\n }\n \n document.getElementById(detail).classList.add(\"selectedNavGraphs\");\n \n viewBar.innerHTML = \"Currently Viewing: \" + detail.replace(\"_\", \" \");\n }, 100);\n \n this.scope.action = function(detail, $event) {\n var nav = document.getElementsByClassName(\"navgraphs\");\n var viewBar = document.getElementById(\"viewBar\");\n \n \tfor (var i=0;i<nav.length;i++) {\n \tnav[i].classList.remove(\"selectedNavGraphs\");\n }\n \n $event.currentTarget.classList.add(\"selectedNavGraphs\");\n viewBar.innerHTML = \"Currently Viewing: \" + detail.replace(\"_\", \" \");\n \n return detail;\n }\n</script>","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":280,"y":620,"wires":[["64f5793f.164d48"]]},{"id":"f4dcb112.7c6c2","type":"ui_gauge","z":"a7591472.60d248","name":"Detailed Usage","group":"24f54499.95ac4c","order":8,"width":0,"height":0,"gtype":"wave","title":"","label":" gal.","format":"{{value}}","min":0,"max":"13","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":380,"y":680,"wires":[]},{"id":"77b17369.27eedc","type":"ui_text_input","z":"a7591472.60d248","name":"Class Water Usage Controller","label":"Class Water Usage","group":"d4f0fc7c.813ea","order":5,"width":0,"height":0,"passthru":true,"mode":"text","delay":300,"topic":"","x":770,"y":200,"wires":[["a4145d5e.009ec"]]},{"id":"a4145d5e.009ec","type":"change","z":"a7591472.60d248","name":"","rules":[{"t":"set","p":"dailyClassroomUsage","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1050,"y":200,"wires":[[]]},{"id":"b7581cfc.abcf4","type":"function","z":"a7591472.60d248","name":"","func":"let detail = {};\nlet [br, wf, s, c] = [\n parseInt(global.get(\"dailyBathroomUsage\")),\n parseInt(global.get(\"dailyWaterFountainUsage\")),\n parseInt(global.get(\"dailySprinklerUsage\")),\n parseInt(global.get(\"dailyClassroomUsage\"))\n ];\nlet total = br+wf+s+c;\n\nswitch(msg.payload) {\n case \"bathroom\":\n detail = { payload: br, percentage: Math.round((br/total)*100), total: total };\n break;\n case \"water_fountain\":\n detail = { payload: wf, percentage: Math.round((wf/total)*100), total: total };\n break;\n case \"sprinklers\":\n detail = { payload: s, percentage: Math.round((s/total)*100), total: total };\n break;\n case \"classrooms\":\n detail = { payload: c, percentage: Math.round((c/total)*100), total: total };\n break;\n}\nreturn detail;","outputs":1,"noerr":0,"x":230,"y":680,"wires":[["f4dcb112.7c6c2","dc5c8c10.97028","e639e0d1.84b76"]]},{"id":"8fd4caae.84c248","type":"comment","z":"a7591472.60d248","name":"Detailed Usage","info":"","x":380,"y":580,"wires":[]},{"id":"64f5793f.164d48","type":"change","z":"a7591472.60d248","name":"","rules":[{"t":"set","p":"dailySelectedDetail","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":520,"y":620,"wires":[[]]},{"id":"46aa9977.9c7dd8","type":"inject","z":"a7591472.60d248","name":"","topic":"","payload":"dailySelectedDetail","payloadType":"global","repeat":"0.5","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":680,"wires":[["b7581cfc.abcf4"]]},{"id":"dc5c8c10.97028","type":"ui_text","z":"a7591472.60d248","group":"24f54499.95ac4c","order":9,"width":"3","height":"1","name":"% of Used","label":"Percent of Used","format":"{{msg.percentage}}%","layout":"col-center","x":370,"y":720,"wires":[]},{"id":"e639e0d1.84b76","type":"ui_text","z":"a7591472.60d248","group":"24f54499.95ac4c","order":10,"width":"3","height":"1","name":"Detail out of total","label":"Usage","format":"{{msg.payload}}/{{msg.total}} Gallons","layout":"col-center","x":390,"y":760,"wires":[]},{"id":"d227b287.b3de4","type":"inject","z":"a7591472.60d248","name":"","topic":"","payload":"dailySelectedDetail","payloadType":"global","repeat":"1","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":620,"wires":[["3ea3b8c1.e41e28"]]},{"id":"c229335e.2dbb3","type":"function","z":"a7591472.60d248","name":"editWarnings","func":"let warnings = global.get(\"warnings\");\n\nif (msg.delete) {\n delete warnings[msg.delete];\n} else {\n if (msg.payload === null) { return; }\n if (!(msg.payload in warnings)) {\n warnings[msg.payload] = false;\n }\n}\nglobal.set(\"warnings\", warnings);","outputs":1,"noerr":0,"x":490,"y":360,"wires":[[]]},{"id":"e4b98b94.699dc8","type":"inject","z":"a7591472.60d248","name":"","topic":"","payload":"warnings","payloadType":"global","repeat":"1","crontab":"","once":false,"onceDelay":0.1,"x":130,"y":380,"wires":[["d3d63995.833d78","84861adc.8534f8"]]},{"id":"d3d63995.833d78","type":"debug","z":"a7591472.60d248","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":310,"y":400,"wires":[]},{"id":"84861adc.8534f8","type":"ui_template","z":"a7591472.60d248","group":"e8dfdc01.62403","name":"Warnings List","order":0,"width":0,"height":0,"format":"<style>\n\n /* \n CSS Style for Warnings.\n */ \n \n .warningsContainer {\n height: 450px;\n background-color: #D3D3D3;\n position: relative;\n }\n \n .warningsHeader {\n height: 10%;\n background-color: #0094ce;\n box-shadow: 0px 3px 5px #404040;\n text-align: center;\n color: white;\n font-weight: bold;\n font-size: 25px;\n line-height: 1.6;\n z-index: 20;\n position: relative;\n }\n \n .createWarningContainer {\n width: 100%;\n }\n \n .deleteWarningContainer {\n width: 100%;\n }\n \n \n #createWarningInput {\n height: 100%;\n width: 70%;\n float: left;\n\t \tbox-sizing: border-box;\n border: none;\n }\n \n .createWarningButton {\n width: 30%;\n background-color: #0094ce;\n outline: none;\n border: none;\n color: white;\n transition: all 0.3s ease 0s;\n font-weight: bold;\n float: left;\n margin-top: 0.5px;\n margin-bottom: 0.5px;\n }\n \n .createWarningButton:hover {\n background-color: #0076A4;\n }\n \n #selectDeleteWarning {\n height: 100%;\n width: 70%;\n box-sizing: border-box;\n float: left;\n }\n \n #warningList {\n width: 100%;\n height: 362px;\n overflow: auto;\n }\n \n .warning {\n width: 100%;\n text-align: center;\n background-color: gray;\n border-bottom: 1px solid black;\n color: white;\n z-index: 1;\n transition: all 0.3s cubic-bezier(0.75, 0.26, 0, 1.11) 0s;\n }\n \n #removeWarning {\n outline: none;\n border: none;\n margin-top: 1px;\n }\n \n #warningData {\n visibility: hidden;\n display: none;\n }\n \n #notify {\n width: 100%;\n color: #ff0808;\n font-weight: bold;\n font-size: 20px;\n text-transform: uppercase;\n text-align: center;\n display: none;\n }\n \n .notifyShow {\n display: block;\n }\n \n /* End CSS style for Warnings. */ \n \n</style>\n\n<!-- \n\n HTML for warnings.\n\n-->\n\n<div id=\"warningData\" data-warning=\"{{msg.payload}}\"></div>\n<div id=\"warningsContainer\" class=\"warningsContainer\">\n <div class=\"warningsHeader tooltip\">Your Alerts</div>\n <div id=\"warningList\">\n\n </div>\n <div class=\"createWarningContainer\">\n <input id=\"createWarningInput\" type=\"number\" placeholder=50 min=0 />\n <button ng-click=\"send({payload:createWarning()})\" class=\"createWarningButton\">Add Alert</button>\n </div>\n <div class=\"deleteWarningContainer\">\n <select id=\"selectDeleteWarning\">\n <option value=\"\" disabled selected hidden>Choose an Alert</option>\n </select>\n <button id= \"deleteButton\" ng-click=\"send({delete:deleteWarning()})\" class=\"createWarningButton\">Delete</button>\n </div>\n\n</div>\n<div id=\"notify\"></div>\n\n<!--\n\n End HTML for warnings.\n\n-->\n\n<script>\n\n /*\n JavaScript\n */\n \n window.onload = setTimeout(function() {\n let warningData = JSON.parse(document.getElementById(\"warningData\").getAttribute(\"data-warning\"));\n console.log(\"Successfully loaded warning data!\");\n console.log(warningData);\n for (var w in warningData) {\n createWarningElement(w);\n createDeleteOption(w);\n }\n }, 100);\n \n this.scope.createWarning = function() {\n let warningData = JSON.parse(document.getElementById(\"warningData\").getAttribute(\"data-warning\"));\n let val = document.getElementById('createWarningInput').value;\n \n if (val == \"\" || val === null || val <= 0) {\n return null;\n }\n \n if (val in warningData) {\n let errInfo = document.getElementById(\"notify\");\n errInfo.innerHTML = \"Already Exists!\";\n errInfo.classList.add(\"notifyShow\");\n setTimeout(() => {\n errInfo.classList.remove(\"notifyShow\");\n }, 500);\n return null;\n }\n \n document.getElementById('createWarningInput').value = \"\";\n \n createWarningElement(val);\n createDeleteOption(val);\n \n return val;\n };\n \n this.scope.deleteWarning = function() {\n let wVal = document.getElementById(\"selectDeleteWarning\").value;\n \n deleteWarningElement(\"warning-\" + wVal);\n deleteDeleteOption(wVal);\n \n return wVal;\n };\n \n function createWarningElement(v) {\n \n let w = document.createElement(\"div\");\n w.classList.add(\"wButton\");\n w.classList.add(\"warning\");\n w.innerHTML = v + \"%\";\n w.setAttribute(\"id\", \"warning-\" + v);\n \n document.getElementById(\"warningList\").append(w);\n };\n \n function deleteWarningElement(e) {\n document.getElementById(e).remove();\n };\n \n function createDeleteOption(e) {\n let opts = document.getElementById(\"selectDeleteWarning\");\n let newOpt = document.createElement(\"option\");\n newOpt.text = e;\n newOpt.value = e;\n opts.add(newOpt);\n };\n\n function deleteDeleteOption(e) {\n let opts = document.getElementById(\"selectDeleteWarning\");\n opts.remove(opts.selectedIndex);\n }\n \n /* End JS */\n \n /*\n JQuery\n */\n \n try {\n let original;\n } catch (e) {\n console.log(e);\n }\n \n // Warning buttons event handlers\n $(\"#warningList\").on(\"click\", \".wButton\", (e) => {\n $(\"#selectDeleteWarning\").val(e.currentTarget.id.replace(\"warning-\", \"\"));\n original = $(\"#selectDeleteWarning\").val();\n let c = e.currentTarget.style.backgroundColor;\n e.currentTarget.style.backgroundColor = \"#D0D0D0\";\n setTimeout(() => {\n e.currentTarget.style.backgroundColor = c;\n $(\"#deleteButton\").click();\n }, 150)\n })\n .on(\"mouseenter\", \".wButton\", (e) => {\n $('html,body').css('cursor','pointer');\n e.currentTarget.style.color = \"red\";\n original = $(\"#selectDeleteWarning\").val();\n $(\"#selectDeleteWarning\").val(e.currentTarget.id.replace(\"warning-\", \"\"));\n })\n .on(\"mouseleave\", \".wButton\", (e) => {\n $('html,body').css('cursor','auto');\n e.currentTarget.style.color = \"\";\n $(\"#selectDeleteWarning\").val(original);\n original = null;\n });\n \n // Block using - in % input\n $(\"#createWarningInput\").keypress((e) => {\n if (e.which == 45) {\n e.preventDefault();\n }\n });\n \n \n /* End JQuery */\n</script>","storeOutMessages":true,"fwdInMessages":false,"templateScope":"local","x":320,"y":360,"wires":[["c229335e.2dbb3"]]},{"id":"37ac67f2.0947c8","type":"comment","z":"a7591472.60d248","name":"Warning UI","info":"","x":300,"y":320,"wires":[]},{"id":"d09c2164.0cce5","type":"ui_template","z":"a7591472.60d248","group":"24f54499.95ac4c","name":"Remove CP Tab","order":11,"width":0,"height":0,"format":"<script>\n window.onload = setTimeout(() => {\n let tabs = document.querySelectorAll(\"button[aria-label='CP']\");\n let t = tabs[0].parentNode.parentNode;\n t.parentNode.removeChild(t);\n }, 500);\n</script>","storeOutMessages":true,"fwdInMessages":true,"templateScope":"global","x":280,"y":980,"wires":[[]]},{"id":"154f31c7.922d1e","type":"http in","z":"a7591472.60d248","name":"controlpanel","url":"/controlpanel","method":"get","upload":false,"swaggerDoc":"","x":110,"y":940,"wires":[["228bfbc9.414f34"]]},{"id":"228bfbc9.414f34","type":"template","z":"a7591472.60d248","name":"redirect","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"<script>\n window.location.replace(\"https://cwfs.mybluemix.net/ui/#/4\");\n</script>","output":"str","x":280,"y":920,"wires":[["3fcb0fa0.2fa1d"]]},{"id":"3fcb0fa0.2fa1d","type":"http response","z":"a7591472.60d248","name":"","statusCode":"","headers":{},"x":410,"y":920,"wires":[]},{"id":"ddea3fe2.ac65e","type":"http in","z":"a7591472.60d248","name":"cp","url":"/cp","method":"get","upload":false,"swaggerDoc":"","x":120,"y":900,"wires":[["228bfbc9.414f34"]]},{"id":"e7f898a6.f16ef8","type":"comment","z":"a7591472.60d248","name":"Control Panel Redirect and Tab Remove","info":"","x":240,"y":860,"wires":[]},{"id":"7fa2b37d.0ec25c","type":"function","z":"a7591472.60d248","name":"reset warnings","func":"let warnings = global.get(\"warnings\");\n\nfor (var key in warnings) {\n warnings[key] = false;\n}","outputs":1,"noerr":0,"x":320,"y":160,"wires":[[]]},{"id":"93a024ed.8dbd18","type":"ui_text","z":"a7591472.60d248","group":"24f54499.95ac4c","order":4,"width":"3","height":"1","name":"% Used Today","label":"% Used Today","format":"{{msg.percentage}}%","layout":"col-center","x":1020,"y":320,"wires":[]},{"id":"1c56aa6a.937516","type":"ui_template","z":"a7591472.60d248","group":"960b2a3f.9063b8","name":"RewardMain","order":0,"width":"6","height":"8","format":"<!-- \n Style Sheet\n-->\n\n<style>\n #reward-container {\n width: 100%;\n height: 100%;\n background-color: #D3D3D3;\n position: relative;\n }\n \n #reward-header {\n width: 100%;\n height: 10%;\n text-align: center;\n line-height: 1.4;\n font-size: 30px;\n color: white;\n background-color: #0094ce;\n font-weight: bold;\n box-shadow: 0px 3px 5px #404040;\n position: relative;\n z-index: 3;\n }\n \n #nav {\n list-style: none;\n height: 30px;\n width: 100%;\n position: relative;\n z-index: 2;\n text-align: center;\n }\n \n #nav ul {\n list-style: none;\n display: inline-block;\n margin: 0;\n padding: 0;\n height: 100%;\n }\n \n #categories {\n height: 30px;\n width: 100%;\n margin: 0;\n padding: 0;\n display: inline-block;\n }\n \n #nav ul li {\n float: left;\n width: 72.5px;\n margin: 0;\n height: 100%;\n }\n \n #nav ul li button {\n height: 100%;\n width: 100%;\n outline: none;\n border: none;\n color: white;\n transition: all 0.3s ease 0s;\n }\n \n #nav, #nav ul li button {\n background-color: #939393;\n }\n \n #nav ul li button:hover {\n background-color: #d3d3d3;\n color: black;\n cursor: pointer;\n }\n \n .navselected {\n background-color: whitesmoke !important;\n color: black !important;\n }\n \n #stats {\n height: 300px;\n width: 100%;\n }\n \n #hint {\n width: 100%;\n height: 23px;\n background-color: #a8a8a8;\n text-align: center;\n color: white;\n line-height: 1.5;\n position: relative;\n z-index: 1;\n }\n \n .stat-container {\n width: 100%;\n height: 100%;\n display: none;\n }\n \n .stat-container-show {\n display: block;\n }\n \n .student {\n width: 100%;\n height: 20px;\n background-color: whitesmoke;\n text-align: center;\n }\n \n #timer {\n background-color: red;\n color: white;\n font-weight: bold;\n font-size: 16px;\n text-align: center;\n margin-top: 10px;\n }\n</style>\n\n<!-- \n HTML\n-->\n\n<div id=\"userData\" style=\"display:none; visibility:hidden;\" data-users=\"{{msg.payload}}\"></div>\n\n<div id=\"reward-container\">\n <div id=\"reward-header\">Water Wars</div>\n <div id=\"hint\">\n View the rankings per category.\n </div>\n <div id=\"nav\">\n <ul>\n <li>\n <button class=\"navselected\" id=\"students\" onclick=\"changeTab(this)\">Students</button>\n </li>\n \n <li>\n <button id=\"classes\" onclick=\"changeTab(this)\">Classes</button>\n </li>\n \n <li>\n <button id=\"staff\" onclick=\"changeTab(this)\">Staff</button>\n </li>\n \n <li>\n <button id=\"schools\" onclick=\"changeTab(this)\">Schools</button>\n </li>\n </ul>\n </div>\n <div id=\"stats\">\n <div id=\"stats-student\" class=\"stat-container stat-container-show\">\n\n </div>\n <div id=\"stats-classes\" class=\"stat-container\">\n \n </div>\n <div id=\"stats-staff\" class=\"stat-container\">\n \n </div>\n <div id=\"stats-school\" class=\"stat-container\">\n \n </div>\n </div>\n <div id=\"timer\">\n Competition ends in ...\n </div>\n</div>\n\n\n\n\n<!-- \n JS and JQuery\n-->\n\n<script>\n // LOAD DATA\n try {\n let data;\n } catch (e) {\n throw e;\n }\n \n window.onload = setTimeout(() => {\n data = JSON.parse(eById(\"userData\").getAttribute(\"data-users\"));\n \n let [students, classes, staff, schools] = [data[\"students\"], data[\"classes\"], data[\"staff\"], data[\"schools\"]];\n \n let rankings = [];\n \n for (var student in students) {\n let points = students[student][\"points\"];\n rankings.push([student, points]);\n }\n \n rankings.sort(function(a, b) {\n return b[1] - a[1];\n });\n \n for (var p in rankings) {\n let user = getStudentById(rankings[p]);\n let person = document.createElement(\"div\");\n person.setAttribute(\"id\", \"student-\" + rankings[p][0]);\n person.classList.add(\"student\");\n person.innerHTML = \"#\" + (parseInt(p)+1) + \" | \" + user[\"firstname\"] + \" \" + user[\"lastname\"] + \" | \" + user[\"points\"] + \" pts.\"; \n \n eById(\"stats-student\").append(person);\n }\n \n rankings = [];\n \n for (var c in classes) {\n let points = classes[c][\"points\"];\n rankings.push([c, points]);\n }\n \n rankings.sort(function(a, b) {\n return b[1] - a[1];\n });\n \n for (var c in rankings) {\n let cl = getClassById(rankings[c]);\n let classElement = document.createElement(\"div\");\n classElement.setAttribute(\"id\", \"class-\" + rankings[c][0]);\n classElement.classList.add(\"student\");\n classElement.innerHTML = \"#\" + (parseInt(c) + 1) + \" | \" + cl[\"name\"] + \" | \" + cl[\"points\"] + \" pts.\";\n \n eById(\"stats-classes\").append(classElement);\n }\n \n rankings = [];\n \n for (var s in staff) {\n let points = staff[s][\"points\"];\n rankings.push([s, points]);\n }\n \n rankings.sort(function(a, b) {\n return b[1] - a[1];\n });\n \n for (var s in rankings) {\n let st = getStaffById(rankings[s]);\n let staffElement = document.createElement(\"div\");\n staffElement.setAttribute(\"id\", \"class-\" + rankings[s][0]);\n staffElement.classList.add(\"student\");\n staffElement.innerHTML = \"#\" + (parseInt(s) + 1) + \" | \" + st[\"firstname\"] + \" \" + st[\"lastname\"] + \" | \" + st[\"points\"] + \" pts.\";\n \n eById(\"stats-staff\").append(staffElement);\n }\n \n // sort schools\n rankings = [];\n \n for (var s in schools) {\n let points = schools[s][\"points\"];\n rankings.push([s, points]);\n }\n \n rankings.sort(function(a, b) {\n return b[1] - a[1];\n });\n \n for (var s in rankings) {\n let sc = getSchoolById(rankings[s]);\n let schoolElement = document.createElement(\"div\");\n schoolElement.setAttribute(\"id\", \"school-\" + rankings[s][0]);\n schoolElement.classList.add(\"student\");\n schoolElement.innerHTML = \"#\" + (parseInt(s) + 1) + \" | \" + sc[\"name\"] + \" | \" + sc[\"points\"] + \" pts.\";\n \n eById(\"stats-school\").append(schoolElement);\n }\n }, 250);\n\n function getStudentById(iden) {\n let students = data[\"students\"];\n for (var student in students) {\n if (iden.includes(student)) {\n return students[student];\n }\n }\n return null;\n }\n \n function getClassById(iden) {\n let classes = data[\"classes\"];\n for (var c in classes) {\n if (iden.includes(c)) {\n return classes[c];\n }\n }\n return null;\n }\n\n function getStaffById(iden) {\n let staff = data[\"staff\"];\n for (var s in staff) {\n if (iden.includes(s)) {\n return staff[s];\n }\n }\n return null;\n }\n\n function getSchoolById(iden) {\n let schools = data[\"schools\"];\n for (var s in schools) {\n if (iden.includes(s)) {\n return schools[s];\n }\n }\n return null;\n }\n\n\n function eById(i) {\n return document.getElementById(i);\n }\n \n function rc(e, c) {\n e.classList.remove(c);\n }\n \n function changeTab(tab) {\n let [s, c, sf, sc] = [eById(\"students\"), eById(\"classes\"), eById(\"staff\"), eById(\"schools\")];\n let [st, ct, sft, sct] = [eById(\"stats-student\"), eById(\"stats-classes\"), eById(\"stats-staff\"), eById(\"stats-school\")];\n \n if (tab.classList.contains(\"navselected\")) {\n return;\n }\n \n //student tab\n rc(s, \"navselected\");\n rc(st, \"stat-container-show\");\n \n //class tab\n rc(c, \"navselected\");\n rc(ct, \"stat-container-show\");\n \n //staff tab\n rc(sf, \"navselected\");\n rc(sft, \"stat-container-show\");\n \n rc(sc, \"navselected\");\n rc(sct, \"stat-container-show\");\n \n switch (tab) {\n case s:\n st.classList.add(\"stat-container-show\");\n break;\n case c:\n ct.classList.add(\"stat-container-show\");\n break;\n case sf:\n sft.classList.add(\"stat-container-show\");\n break;\n case sc:\n sct.classList.add(\"stat-container-show\");\n break;\n }\n \n tab.classList.add(\"navselected\");\n }\n \n // COUNTDOWN CLOCK\n \n var endDate = new Date(\"March 31, 2018 23:59:59\").getTime();\n \n var cd = setInterval(() => {\n var current = new Date().getTime();\n \n var dist = endDate - current;\n \n var d = Math.floor(dist / (1000 * 60 * 60 * 24));\n var h = Math.floor((dist % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\n var m = Math.floor((dist % (1000 * 60 * 60)) / (1000 * 60));\n var s = Math.floor((dist % (1000 * 60)) / 1000);\n \n eById(\"timer\").innerHTML = \" Competition ends in \" + d + \"d \" + h + \"h \" + m + \"m \" + s + \"s!\"; \n \n }, 1000);\n \n</script>","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":850,"y":940,"wires":[[]]},{"id":"c2038ca0.e939d","type":"inject","z":"a7591472.60d248","name":"","topic":"","payload":"13","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":790,"y":600,"wires":[["a5e48691.125058"]]},{"id":"a5e48691.125058","type":"change","z":"a7591472.60d248","name":"","rules":[{"t":"set","p":"dailyGoal","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":990,"y":600,"wires":[[]]},{"id":"17b424c6.ead06b","type":"ui_text","z":"a7591472.60d248","group":"24f54499.95ac4c","order":3,"width":0,"height":0,"name":"Goal","label":"Goal","format":"{{msg.payload}} Gallons","layout":"col-center","x":1010,"y":660,"wires":[]},{"id":"ab4c1037.12026","type":"inject","z":"a7591472.60d248","name":"","topic":"","payload":"dailyGoal","payloadType":"global","repeat":"1","crontab":"","once":false,"onceDelay":0.1,"x":810,"y":660,"wires":[["17b424c6.ead06b"]]},{"id":"2425ee2a.fe5d22","type":"comment","z":"a7591472.60d248","name":"Set Daily Goal","info":"","x":920,"y":560,"wires":[]},{"id":"9fd06f36.e1dd8","type":"change","z":"a7591472.60d248","name":"","rules":[{"t":"set","p":"users","pt":"global","to":"{\"students\":{\"1234\":{\"firstname\":\"Albert\",\"lastname\":\"Brandt\",\"points\":100},\"2345\":{\"firstname\":\"Cooper\",\"lastname\":\"Gaines\",\"points\":75},\"3456\":{\"firstname\":\"Donathan\",\"lastname\":\"Guzman\",\"points\":40},\"4567\":{\"firstname\":\"Jasmien\",\"lastname\":\"Sihota\",\"points\":50}},\"classes\":{\"01\":{\"name\":\"Class One\",\"points\":1000},\"02\":{\"name\":\"Class Two\",\"points\":1250}},\"staff\":{\"4321\":{\"firstname\":\"Tim\",\"lastname\":\"Welsh\",\"role\":\"Teacher\",\"points\":50},\"5432\":{\"firstname\":\"Samuel\",\"lastname\":\"Wright\",\"role\":\"Teacher\",\"points\":25},\"6543\":{\"firstname\":\"Holly\",\"lastname\":\"Johnson\",\"role\":\"Teacher\",\"points\":75}},\"schools\":{\"0001\":{\"name\":\"East High School\",\"points\":10000},\"0002\":{\"name\":\"Oxford Academy\",\"points\":8000},\"0003\":{\"name\":\"Dublin High\",\"points\":5000},\"0004\":{\"name\":\"San Jose High\",\"points\":1000}}}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":860,"y":820,"wires":[[]]},{"id":"f0d168e2.44fe18","type":"inject","z":"a7591472.60d248","name":"","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":690,"y":820,"wires":[["9fd06f36.e1dd8"]]},{"id":"357717f8.a403f8","type":"inject","z":"a7591472.60d248","name":"","topic":"","payload":"users","payloadType":"global","repeat":"1","crontab":"","once":false,"onceDelay":0.1,"x":670,"y":940,"wires":[["1c56aa6a.937516"]]},{"id":"d490c729.ade8f8","type":"comment","z":"a7591472.60d248","name":"Rewards","info":"","x":770,"y":900,"wires":[]},{"id":"f6846ff6.67a6e","type":"comment","z":"a7591472.60d248","name":"Data","info":"","x":770,"y":760,"wires":[]},{"id":"8b87be25.41c34","type":"ui_dropdown","z":"a7591472.60d248","name":"","label":"Phone Input","place":"Select option","group":"d4f0fc7c.813ea","order":0,"width":0,"height":0,"passthru":true,"options":[{"label":"Diego","value":3109167516,"type":"num"},{"label":"Barbara","value":2094792053,"type":"num"},{"label":"Albert","value":2094844933,"type":"num"},{"label":"Jasmine","value":"2099546884","type":"str"}],"payload":"","topic":"","x":110,"y":80,"wires":[["dbad6fdc.32b1d"]]},{"id":"ee28620b.16a1f","type":"inject","z":"a7591472.60d248","name":"","topic":"","payload":"recipient","payloadType":"global","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":1360,"y":140,"wires":[["28a50a95.9e5336"]]},{"id":"28a50a95.9e5336","type":"debug","z":"a7591472.60d248","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":1530,"y":140,"wires":[]},{"id":"d33caed.5a37e5","type":"comment","z":"a7591472.60d248","name":"","info":"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQuF6BgYx2_UwABaYtHLfXDVEkkFVCMDkIbr9LiJzmoss_flKpm\ndata:image/jpeg;base64,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","x":1330,"y":840,"wires":[]},{"id":"76460517.c6403c","type":"ui_gauge","z":"a7591472.60d248","name":"Year","group":"cc6477f0.54cb38","order":3,"width":0,"height":0,"gtype":"gage","title":"Year Usage","label":"units","format":"{{value}}","min":0,"max":10,"colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":1330,"y":480,"wires":[]}]
Add Comment
Please, Sign In to add comment