[{"id":"e61d2cba.e483a8","type":"tab","label":"AWS Modem Flow","disabled":true,"info":""},{"id":"6caf9afd.ad5fd4","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"e0a13198.a10008","type":"tls-config","z":"","name":"Onion_Gateway_Certs","cert":"/root/certs/client-cert.pem.crt","key":"/root/certs/private.pem.key","ca":"/root/certs/Root.pem","certname":"","keyname":"","caname":"","servername":"","verifyservercert":true},{"id":"fc18ba53.20517","type":"mqtt-broker","z":"","name":"Travis-AWS-Broker","broker":"a31wwnfq2ykjtn-ats.iot.us-east-2.amazonaws.com","port":"8883","tls":"e0a13198.a10008","clientid":"Onion_Gateway","usetls":true,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","closeTopic":"","closeQos":"0","closeRetain":"false","closePayload":"","willTopic":"","willQos":"0","willRetain":"false","willPayload":""},{"id":"837142ce.132b28","type":"ncd-gateway-config","z":"","name":"","comm_type":"serial","ip_address":"","tcp_port":"2101","port":"/dev/ttyS1","baudRate":"115200","pan_id":"7FFF","rssi":true},{"id":"8ee481d7.1587","type":"ui_tab","z":"","name":"Status","icon":"dashboard","disabled":false,"hidden":false},{"id":"33232132.9c903e","type":"ui_group","z":"","name":"Sensor Signal Strength","tab":"8ee481d7.1587","order":1,"disp":true,"width":"6","collapse":false},{"id":"92c96710.5ca3b8","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"}},"angularTheme":{"primary":"indigo","accents":"blue","warn":"red","background":"grey","palette":"light"}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","lockMenu":"false","allowTempTheme":"true","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"b372217f.513da","type":"ui_group","z":"","name":"Status","tab":"8ee481d7.1587","order":2,"disp":true,"width":"6","collapse":false},{"id":"fa5bf55b.501668","type":"ui_tab","z":"","name":"Demo","icon":"dashboard"},{"id":"31f7ff67.f7f3e","type":"ui_group","z":"","name":"Connected Devices","tab":"8ee481d7.1587","order":3,"disp":true,"width":"6","collapse":false},{"id":"3e529c01.b9dd84","type":"ncd-gateway-config","name":"","comm_type":"serial","ip_address":"","tcp_port":"2101","port":"/dev/ttymxc2","baudRate":"115200","pan_id":"7FFF","rssi":true},{"id":"e4fb4e7d.10904","type":"ui_group","z":"","name":"Freezer","tab":"14ff602a.99aa","order":1,"disp":true,"width":"6","collapse":false},{"id":"14ff602a.99aa","type":"ui_tab","name":"Home","icon":"dashboard","disabled":false,"hidden":false},{"id":"e4d37ac9.ece9e8","type":"remote-config","z":"","name":"Node-RED UI","host":"localhost","protocol":"http","port":"1880","baseurl":"/ui","instancehash":"ijakodtasb30h0puyvop3fo3r37vwt5qexme8qsq7tudrnst8v84yhiev0fr72ld","server":"nodered03.remote-red.com","region":"us"},{"id":"47d3519b.ebcd2","type":"ncd-gateway-node","z":"e61d2cba.e483a8","name":"","connection":"837142ce.132b28","unknown_devices":false,"outputs":1,"x":190,"y":360,"wires":[["1e97521b.5c3456","38774c40.69cedc","b175476b.097ff8","faee7dc6.c0e52"]]},{"id":"1e97521b.5c3456","type":"function","z":"e61d2cba.e483a8","name":"AWS_Modem_Parser","func":"var mac = msg.payload.original.mac;\nvar newmsg = {payload:{state:{reported:{nodes:{[mac]:{data:msg.payload.original.data}}}}}};\nreturn newmsg;","outputs":1,"noerr":0,"x":731,"y":659,"wires":[["4ab41132.2274c8"]]},{"id":"4ab41132.2274c8","type":"mqtt out","z":"e61d2cba.e483a8","name":"","topic":"$aws/things/Onion_Gateway/shadow/update","qos":"0","retain":"false","broker":"fc18ba53.20517","x":1038,"y":658,"wires":[]},{"id":"ef3c17f0.9fa978","type":"status","z":"e61d2cba.e483a8","name":"MQTT_Status_Event_Emmiter","scope":["4ab41132.2274c8"],"x":521,"y":775,"wires":[["38774c40.69cedc","300de8c3.10a338"]]},{"id":"38774c40.69cedc","type":"function","z":"e61d2cba.e483a8","name":"Log_File_Parser","func":"if(msg.hasOwnProperty(\"status\")){\n var mqttStatus = msg.status.text;\n if(mqttStatus.includes('connected')){\n var newmsg = {newData:{mqtt_status:'connected'}}\n return newmsg;\n }\n if(mqttStatus.includes('disconnected')){\n var newmsg = {newData:{mqtt_status:'disconnected'}}\n return newmsg;\n }\n}\nif(msg.hasOwnProperty(\"payload\")){\n var mP = msg.payload;\n if(mP.hasOwnProperty(\"counter\")&&mP.hasOwnProperty(\"sensor_name\")&&mP.hasOwnProperty(\"battery\")&&mP.hasOwnProperty(\"sensor_data\")&&mP.hasOwnProperty(\"addr\")&&mP.hasOwnProperty(\"received\")&&mP.hasOwnProperty(\"addr\")){\n var sensorAddress = mP.addr;\n var sensorData = {}\n sensorData[\"counter\"] = mP[\"counter\"];\n sensorData[\"battery\"] = mP[\"battery\"];\n sensorData[\"last_heard\"] = mP[\"received\"];\n sensorData[\"rssi\"] = mP[\"rssi\"]\n sensorData[\"data\"] = mP[\"sensor_data\"];\n sensorData[\"addr\"] = mP[\"addr\"];\n var newmsg = {newData:{[sensorAddress]:sensorData}};\n return newmsg;\n }\n}\n","outputs":1,"noerr":0,"x":828,"y":776,"wires":[["e66968ee.41749"]]},{"id":"e98553e3.ba47c8","type":"file","z":"e61d2cba.e483a8","name":"Log_File_Write","filename":"/root/gateway_status.txt","appendNewline":false,"createDir":false,"overwriteFile":"true","x":1728,"y":690,"wires":[[]]},{"id":"a9428d41.f7be3","type":"debug","z":"e61d2cba.e483a8","name":"Function_Parser_Log","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":1131,"y":876,"wires":[]},{"id":"94448d55.c858d","type":"debug","z":"e61d2cba.e483a8","name":"Template_Input_Debug","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":1062,"y":1030,"wires":[]},{"id":"b175476b.097ff8","type":"debug","z":"e61d2cba.e483a8","name":"Gateway_Output_Debug","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":734,"y":548,"wires":[]},{"id":"bf32da1f.e1d068","type":"function","z":"e61d2cba.e483a8","name":"Parse_Stored_Log_File_Function","func":"var currentFile;\ntry{\n currentFile = JSON.parse(msg.payload);\n}catch(e){\n currentFile = {};\n}\n\nvar newValue = msg.newData;\n\nvar result = {};\nlet key;\n\nfor (key in currentFile) {\n if(currentFile.hasOwnProperty(key)){\n result[key] = currentFile[key];\n }\n}\n\nfor (key in newValue) {\n if(newValue.hasOwnProperty(key)){\n result[key] = newValue[key];\n }\n}\n\nvar msg = {payload:{}};\n\nmsg.payload = result;\n\nreturn msg;","outputs":1,"noerr":0,"x":1342,"y":775,"wires":[["e98553e3.ba47c8"]]},{"id":"e66968ee.41749","type":"file in","z":"e61d2cba.e483a8","name":"Log_File_Read","filename":"/root/gateway_status.txt","format":"utf8","chunk":false,"sendError":false,"x":1071,"y":776,"wires":[["bf32da1f.e1d068"]]},{"id":"300de8c3.10a338","type":"function","z":"e61d2cba.e483a8","name":"","func":"if(msg.status.text == \"node-red:common.status.connected\"){\n var newMSG = {payload:{mqtt_status:\"Connected\"}};\n return newMSG;\n}\nif(msg.status.text == \"node-red:common.status.disconnected\"){\n var newMSG = {payload:{mqtt_status:\"Disconnected\"}};\n return newMSG;\n}","outputs":1,"noerr":0,"x":843,"y":950,"wires":[["ff4157b9.9ab9e8","e531c54e.4f8158"]]},{"id":"ff4157b9.9ab9e8","type":"debug","z":"e61d2cba.e483a8","name":"MQTT Status Debug","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":1077,"y":992,"wires":[]},{"id":"e531c54e.4f8158","type":"ui_template","z":"e61d2cba.e483a8","group":"b372217f.513da","name":"MQTT Status Widget","order":1,"width":0,"height":0,"format":"
MQTT : {{msg.payload.mqtt_status}}
","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":1098,"y":949,"wires":[[]]},{"id":"bf856f7c.6a50a","type":"template","z":"e61d2cba.e483a8","name":"html","field":"payload","fieldType":"msg","format":"html","syntax":"mustache","template":"\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n {{#payload}}\n \n \n \n \n {{/payload}}\n
{{topic}}
AddressRSSI
{{addr}}{{rssi}}
\n","output":"str","x":1684,"y":465,"wires":[["a636f79f.637ae8","4b03ea9a.e31ca4"]]},{"id":"a636f79f.637ae8","type":"ui_template","z":"e61d2cba.e483a8","group":"31f7ff67.f7f3e","name":"Status Table","order":0,"width":0,"height":0,"format":"
","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":1950,"y":417,"wires":[[]]},{"id":"faee7dc6.c0e52","type":"function","z":"e61d2cba.e483a8","name":"Cr/Upd msg_events","func":"var msg_obj = msg.payload ;\nvar arr_msgs = flow.get(\"sensor_display_status\");\n\nif (arr_msgs===undefined ) {\n // Create an empty array if it does not exist yet\n arr_msgs = {};\n}\narr_msgs[msg_obj.addr] = {'addr': msg_obj.addr, 'rssi': msg_obj.rssi};\nflow.set(\"sensor_display_status\", arr_msgs);\n \n \n\nmsg.payload = Object.values(arr_msgs);\n// msg.payload = arr_msgs;\nreturn msg;\n","outputs":1,"noerr":0,"x":1401,"y":480,"wires":[["bf856f7c.6a50a","17f9cf2.1b26f31"]]},{"id":"17f9cf2.1b26f31","type":"debug","z":"e61d2cba.e483a8","name":"Show me da way","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":1748,"y":594,"wires":[]},{"id":"4b03ea9a.e31ca4","type":"debug","z":"e61d2cba.e483a8","name":"html dump","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":1888,"y":517,"wires":[]},{"id":"52f0482c.c343f8","type":"ncd-gateway-node","z":"6caf9afd.ad5fd4","name":"","connection":"837142ce.132b28","unknown_devices":false,"outputs":1,"x":170,"y":480,"wires":[["85c793e6.560d"]]},{"id":"85c793e6.560d","type":"debug","z":"6caf9afd.ad5fd4","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":390,"y":480,"wires":[]}]