|
[{"id":"9765237e3099a326","type":"tab","label":"Flow 4","disabled":false,"info":"","env":[]},{"id":"ef2c0fa3aaf3f07d","type":"exec","z":"9765237e3099a326","command":"/home/pi/.node-red/my-data/getDates.sh","addpay":"","append":"","useSpawn":"false","timer":"","winHide":false,"oldrc":false,"name":"Get Bin Dates","x":820,"y":420,"wires":[[],[],["22250e27cd8d645e"]]},{"id":"9ebd5fdcf78affb3","type":"csv","z":"9765237e3099a326","name":"","sep":",","hdrin":"","hdrout":"none","multi":"mult","ret":"\\n","temp":"","skip":"0","strings":true,"include_empty_strings":"","include_null_values":"","x":1150,"y":420,"wires":[["e53e5fb6d90e2308"]]},{"id":"22250e27cd8d645e","type":"file in","z":"9765237e3099a326","name":"read dates","filename":"/home/pi/.node-red/my-data/dates.txt","format":"utf8","chunk":false,"sendError":false,"encoding":"none","allProps":false,"x":1010,"y":420,"wires":[["9ebd5fdcf78affb3"]]},{"id":"e53e5fb6d90e2308","type":"function","z":"9765237e3099a326","name":"Add Dates","func":"let binDates = []\n\nfor (let index = 0; index < msg.payload.length; index++) {\n let date = msg.payload[index].col3.split('/')\n date = Date.UTC(parseInt(\"20\" + date[2]), date[1] - 1, date[0])\n binDates.push({ timestamp: date, bin: msg.payload[index].col2, date: msg.payload[index].col3 })\n}\n\nbinDates.sort((b, a) => b.timestamp - a.timestamp); // b - a for reverse sort\n\nflow.set(\"binDates\", binDates)\n\nmsg.payload=binDates\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1290,"y":420,"wires":[["ab98afadfb47de29"]],"info":"let binDates = flow.get(\"binDates\") || {}\r\n\r\n\r\nfor (let index = 0; index < msg.payload.length; index++) {\r\n let date = msg.payload[index].col3.split('/')\r\n date = Date.UTC(parseInt(\"20\" + date[2]),date[1]-1,date[0])\r\n \r\n if (!binDates[date]) {\r\n binDates[date] = { bin: msg.payload[index].col2, date: msg.payload[index].col3}\r\n \r\n }\r\n \r\n}\r\n\r\nflow.set(\"binDates\",binDates)\r\n\r\n\r\nreturn msg;\r\n\r\n\r\n\r\n"},{"id":"1d522aa443d44106","type":"cronplus","z":"9765237e3099a326","name":"1st of Month","outputField":"payload","timeZone":"","persistDynamic":true,"commandResponseMsgOutput":"output1","outputs":1,"options":[{"name":"schedule1","topic":"topic1","payloadType":"default","payload":"","expressionType":"cron","expression":"0 5 0 1 * ? *","location":"","offset":"0","solarType":"all","solarEvents":"sunrise,sunset"}],"x":630,"y":420,"wires":[["ef2c0fa3aaf3f07d"]]},{"id":"2d88be0f46aaedc1","type":"ui_template","z":"9765237e3099a326","group":"acf0ac46b53c1e66","name":"Green","order":2,"width":"6","height":"5","format":"<style>\n .bin_green {\n border: 5px solid #00a550;\n border-radius: 12px;\n font-size: 25px;\n }\n</style>\n\n<table>\n <tr>\n <td>\n <img src=\"/images/{{msg.payload[0][0].bin}}.png\" style=\"width: 130px\" >\n </td>\n <td>\n <div ng-repeat=\"item in msg.payload[0]\">\n {{item.date}}\n </div>\n </td>\n </tr>\n</table>","storeOutMessages":false,"fwdInMessages":false,"resendOnRefresh":true,"templateScope":"local","className":"bin_green","x":1470,"y":360,"wires":[[]],"info":"<style>\r\n md-checkbox .md-label {\r\n top: unset;\r\n }\r\n</style>\r\n\r\n<form>\r\n <fieldset style=\"width:90%\">\r\n <legend>Select Zones</legend>\r\n <div layout=\"row\" layout-wrap flex>\r\n <div flex=\"45\" ng-repeat=\"item in msg.payload\">\r\n <md-checkbox ng-model=\"item.value\" aria-label=\"checkbox\"> {{item.name}}</md-checkbox>\r\n\r\n </div>\r\n </div>\r\n </fieldset>\r\n\r\n <fieldset style=\"width:90%\">\r\n <md-button ng-click=\"send(msg)\">\r\n Refresh\r\n </md-button>\r\n <md-button ng-click=\"send({select:'all'})\">\r\n All\r\n </md-button>\r\n <md-button ng-click=\"send({select:'none'})\">\r\n None\r\n </md-button>\r\n </fieldset>\r\n</form>"},{"id":"557f685755b061d2","type":"inject","z":"9765237e3099a326","name":"refresh","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":1170,"y":360,"wires":[["ab98afadfb47de29"]]},{"id":"4e7156631b569b51","type":"ui_template","z":"9765237e3099a326","group":"acf0ac46b53c1e66","name":"Brown","order":3,"width":"6","height":"5","format":"<style>\n .bin_brown {\n border: 5px solid #80612e;\n border-radius: 12px;\n font-size: 25px;\n }\n</style>\n\n\n<table>\n <tr>\n <td>\n <img src=\"/images/{{msg.payload[0][0].bin}}.png\" style=\"width: 130px\" >\n </td>\n <td>\n <div ng-repeat=\"item in msg.payload[0]\">\n {{item.date}}\n </div>\n </td>\n </tr>\n</table>\n","storeOutMessages":false,"fwdInMessages":false,"resendOnRefresh":true,"templateScope":"local","className":"bin_brown","x":1470,"y":320,"wires":[[]],"info":"<style>\r\n md-checkbox .md-label {\r\n top: unset;\r\n }\r\n</style>\r\n\r\n<form>\r\n <fieldset style=\"width:90%\">\r\n <legend>Select Zones</legend>\r\n <div layout=\"row\" layout-wrap flex>\r\n <div flex=\"45\" ng-repeat=\"item in msg.payload\">\r\n <md-checkbox ng-model=\"item.value\" aria-label=\"checkbox\"> {{item.name}}</md-checkbox>\r\n\r\n </div>\r\n </div>\r\n </fieldset>\r\n\r\n <fieldset style=\"width:90%\">\r\n <md-button ng-click=\"send(msg)\">\r\n Refresh\r\n </md-button>\r\n <md-button ng-click=\"send({select:'all'})\">\r\n All\r\n </md-button>\r\n <md-button ng-click=\"send({select:'none'})\">\r\n None\r\n </md-button>\r\n </fieldset>\r\n</form>"},{"id":"bc989aae29e34d4c","type":"ui_template","z":"9765237e3099a326","group":"acf0ac46b53c1e66","name":"Black","order":1,"width":"6","height":"5","format":"<style>\n .bin_black {\n border: 5px solid black;\n border-radius: 12px;\n font-size: 25px;\n }\n</style>\n\n<table>\n <tr>\n <td>\n <img src=\"/images/{{msg.payload[0][0].bin}}.png\" style=\"width: 130px\" >\n </td>\n <td>\n <div ng-repeat=\"item in msg.payload[0]\">\n {{item.date}}\n </div>\n </td>\n </tr>\n</table>","storeOutMessages":false,"fwdInMessages":false,"resendOnRefresh":true,"templateScope":"local","className":"bin_black","x":1470,"y":400,"wires":[[]],"info":"<style>\r\n md-checkbox .md-label {\r\n top: unset;\r\n }\r\n</style>\r\n\r\n<form>\r\n <fieldset style=\"width:90%\">\r\n <legend>Select Zones</legend>\r\n <div layout=\"row\" layout-wrap flex>\r\n <div flex=\"45\" ng-repeat=\"item in msg.payload\">\r\n <md-checkbox ng-model=\"item.value\" aria-label=\"checkbox\"> {{item.name}}</md-checkbox>\r\n\r\n </div>\r\n </div>\r\n </fieldset>\r\n\r\n <fieldset style=\"width:90%\">\r\n <md-button ng-click=\"send(msg)\">\r\n Refresh\r\n </md-button>\r\n <md-button ng-click=\"send({select:'all'})\">\r\n All\r\n </md-button>\r\n <md-button ng-click=\"send({select:'none'})\">\r\n None\r\n </md-button>\r\n </fieldset>\r\n</form>"},{"id":"ab98afadfb47de29","type":"function","z":"9765237e3099a326","name":"","func":"let binDates = flow.get(\"binDates\")\nvar brown = []\nvar green = []\nvar black = []\nbrown.push(binDates.filter(e => e.bin === \"BROWN\"))\ngreen.push(binDates.filter(e => e.bin === \"GREEN\"))\nblack.push(binDates.filter(e => e.bin === \"BLACK\"))\nlet msg1 = { payload: brown }\nlet msg2 = { payload: green }\nlet msg3 = { payload: black }\nreturn [msg1, msg2, msg3]","outputs":3,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1320,"y":360,"wires":[["4e7156631b569b51"],["2d88be0f46aaedc1"],["bc989aae29e34d4c","6544e0f202163bec"]]},{"id":"6544e0f202163bec","type":"debug","z":"9765237e3099a326","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1490,"y":440,"wires":[]},{"id":"acf0ac46b53c1e66","type":"ui_group","name":"Bins","tab":"6ef0f00b7932b858","order":1,"disp":false,"width":"6","collapse":false,"className":""},{"id":"6ef0f00b7932b858","type":"ui_tab","name":"Bins","icon":"iconify-fa-solid:trash-alt","order":20,"disabled":false,"hidden":false}] |