IoTGateway/Device Tracking

From ESS-WIKI
Revision as of 04:01, 21 June 2016 by Fred.chang (talk | contribs) (Created page with " [{"id":"e4eae45f.44fe18","type":"mqtt-broker","z":"3d8b5061.ac304","broker":"172.22.12.193","port":"1883","clientid":"","usetls":false,"verifyservercert":true,"compatmode":tr...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
[{"id":"e4eae45f.44fe18","type":"mqtt-broker","z":"3d8b5061.ac304","broker":"172.22.12.193","port":"1883","clientid":"","usetls":false,"verifyservercert":true,"compatmode":true,"keepalive":"15","cleansession":true,"willTopic":"","willQos":"0","willRetain":null,"willPayload":"","birthTopic":"","birthQos":"0","birthRetain":null,"birthPayload":""},{"id":"efffc0ff.efc02","type":"mqtt in","z":"3d8b5061.ac304","name":"","topic":"/cagent/admin/+/deviceinfo","broker":"e4eae45f.44fe18","x":188,"y":128,"wires":"bcb067b8.af2618"},{"id":"87f6a6c7.f3fdf8","type":"debug","z":"3d8b5061.ac304","name":"","active":true,"console":"false","complete":"payload","x":599,"y":41,"wires":[]},{"id":"bcb067b8.af2618","type":"function","z":"3d8b5061.ac304","name":"Avilable list","func":"var mac = msg.topic.substring(18,30);\nvar size = global.get('size')||0;\nvar tag = \"list\";\nvar alive = \"alive\";\n\nif(size == 0) {\n    var itag = tag + 0;\n    var iAlive = alive + 0;\n    size++;\n    var device = global.get(itag);\n    device = mac;\n    global.set(itag,device);\n    global.set(iAlive,Date.now());\n    global.set('size',size);\n} else {\n    for(i = 0 ; i < size ; i++) {\n        var itag = tag + i;\n        var device = global.get(itag);\n        if(device === mac) {\n            var iAlive = alive + i;\n            global.set(iAlive,Date.now());\n            break;\n        }\n    }\n    msg.topic;\n    if(i == size) {\n        var itag = tag + size;\n        var iAlive = alive + size;\n        size++;\n        var device = global.get(itag);\n        device = mac;\n        global.set(itag,device);\n        global.set(iAlive,Date.now());\n        global.set('size',size);\n    }\n}\n\nreturn msg;","outputs":"1","noerr":0,"x":413,"y":128,"wires":[[]]},{"id":"b6817c24.6717a","type":"inject","z":"3d8b5061.ac304","name":"Timer","topic":"","payload":"","payloadType":"date","repeat":"10","crontab":"","once":true,"x":153,"y":93,"wires":"836f735b.94d9c"},{"id":"836f735b.94d9c","type":"function","z":"3d8b5061.ac304","name":"Check and print","func":"var last = global.get('last')||0;\nvar now = msg.payload||0;\nvar interval = (now-last);\nvar size = global.get('size')||0;\nvar tag = \"list\";\nvar alive = \"alive\";\n\nvar countin = 0;\nvar countout = 0;\nvar ininterval = \"\";\nvar outinterval = \"\";\nfor(i = 0 ; i < size ; i++) {\n    var itag = tag + i;\n    var iAlive = alive + i;\n    var device = global.get(itag);\n    var a = global.get(iAlive)||0;\n    if(now - a < interval) {\n        if(countin == 0) {\n            ininterval += device + \"(\" + new Date(a).toString() + \")\";\n        } else {\n            ininterval += \", \" + device + \"(\" + new Date(a).toString() + \")\";\n        }\n        countin++;\n    }  else {\n        if(countout == 0) {\n            outinterval += device + \"(\" + new Date(a).toString() + \")\";\n        } else {\n            outinterval += \", \" + device + \"(\" + new Date(a).toString() + \")\";\n        }\n        countout++;\n        \n    }\n}\nlast = now;\nglobal.set('last', last);\nvar result1 = \"Available: [ \" + ininterval + \" ]\";\nvar result2 = \"OverTime: [ \" + outinterval + \" ]\";\nvar msg1 = {payload:result1};\nvar msg2 = {payload:result2};\n\nreturn [msg1, msg2];","outputs":"2","noerr":0,"x":423,"y":93,"wires":[["87f6a6c7.f3fdf8"],["fb905b9f.84e1c8"]]},{"id":"fb905b9f.84e1c8","type":"debug","z":"3d8b5061.ac304","name":"","active":true,"console":"false","complete":"payload","x":599,"y":149,"wires":[]},{"id":"87e46619.54fc78","type":"inject","z":"3d8b5061.ac304","name":"Reset","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":155,"y":270,"wires":"41293137.f3da"},{"id":"41293137.f3da","type":"function","z":"3d8b5061.ac304","name":"Reset All","func":"var size = global.get('size')||0;\nvar tag = \"list\";\nvar alive = \"alive\";\n\nfor(i = 0 ; i < size ; i++) {\n    var itag = tag + i;\n    var iAlive = alive + i;\n    var a = global.get(iAlive)||0;\n    global.set(iAlive, 0);\n    global.set(itag, \"\");\n}\nglobal.set('size', 0);\nglobal.set('last', 0);\n\nreturn msg;","outputs":1,"noerr":0,"x":314,"y":270,"wires":[[]]},{"id":"a9e2e60d.c26178","type":"http in","z":"3d8b5061.ac304","name":"DeviceTracking","url":"/devicetracking","method":"get","swaggerDoc":"","x":157,"y":356,"wires":"b9e40669.f3b5c8"},{"id":"8f5a71e7.feae4","type":"debug","z":"3d8b5061.ac304","name":"","active":true,"console":"false","complete":"false","x":589,"y":352,"wires":[]},{"id":"80cef633.eb5378","type":"http response","z":"3d8b5061.ac304","name":"DeviceTracking","x":601,"y":445,"wires":[]},{"id":"b9e40669.f3b5c8","type":"function","z":"3d8b5061.ac304","name":"HTML","func":"var last = global.get('weblast')||0;\nvar now = Date.now()||0;\nvar interval = (now-last);\nvar size = global.get('size')||0;\nvar tag = \"list\";\nvar alive = \"alive\";\n\nvar countin = 0;\nvar countout = 0;\nvar ininterval = \"\";\nvar outinterval = \"\";\nfor(i = 0 ; i < size ; i++) {\n    var itag = tag + i;\n    var iAlive = alive + i;\n    var device = global.get(itag);\n    var a = global.get(iAlive)||0;\n    if(now - a < interval) {\n        if(countin == 0) {\n            ininterval += device + \"
*(\" + new Date(a).toString() + \")\";\n } else {\n ininterval += \"
\" + device + \"
*(\" + new Date(a).toString() + \")\";\n }\n countin++;\n } else {\n if(countout == 0) {\n outinterval += device + \"
*(\" + new Date(a).toString() + \")\";\n } else {\n outinterval += \"
\" + device + \"
*(\" + new Date(a).toString() + \")\";\n }\n countout++;\n \n }\n}\nlast = now;\nglobal.set('weblast', last);\n\n\nmsg.payload = {\"result\":ininterval, \"overtime\":outinterval};\nreturn msg;","outputs":1,"noerr":0,"x":311,"y":447,"wires":"80cef633.eb5378"}]