[{"id":"57d9f343.9e0bfc","type":"tab","label":"Alarm Recording Outdoor","disabled":false,"info":""},{"id":"8da6faa3.51d618","type":"ui_form","z":"57d9f343.9e0bfc","name":"Camera Address","label":"Change Address","group":"7fdecea.c56473","order":0,"width":0,"height":0,"options":[{"label":"IP Address","value":"ip","type":"text","required":true},{"label":"Username","value":"user","type":"text","required":true},{"label":"Password","value":"password","type":"password","required":true}],"formValue":{"ip":"","user":"","password":""},"payload":"","submit":"Submit","cancel":"Cancel","topic":"user_set","x":90,"y":80,"wires":[["7d4b3b32.98edf4"]]},{"id":"372b92fe.aa358e","type":"comment","z":"57d9f343.9e0bfc","name":"Set Login Global","info":"","x":90,"y":37,"wires":[]},{"id":"7d4b3b32.98edf4","type":"change","z":"57d9f343.9e0bfc","name":"Set Camera Login for this Flow","rules":[{"t":"set","p":"ip","pt":"flow","to":"payload.ip","tot":"msg"},{"t":"set","p":"password","pt":"flow","to":"payload.password","tot":"msg"},{"t":"set","p":"user","pt":"flow","to":"payload.user","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":290,"y":80,"wires":[["87af558d.93c6d8"]]},{"id":"87af558d.93c6d8","type":"mqtt out","z":"57d9f343.9e0bfc","name":"","topic":"ipcam/login/outdoor","qos":"1","retain":"true","broker":"40415d07.67dd94","x":550,"y":80,"wires":[]},{"id":"dbfe4e26.5d03b","type":"ui_template","z":"57d9f343.9e0bfc","group":"7fdecea.c56473","name":"Set Address","order":2,"width":"6","height":"2","format":"
Current Outdoor Camera Login
\n\n \n IP | \n User | \n Password | \n
\n \n {{msg.payload.ip}} | \n {{msg.payload.user}} | \n {{msg.payload.password}} | \n
\n
","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":380,"y":128,"wires":[[]]},{"id":"3f24aaa1.866f96","type":"json","z":"57d9f343.9e0bfc","name":"","property":"payload","action":"","pretty":false,"x":250,"y":128,"wires":[["dbfe4e26.5d03b"]]},{"id":"79447de4.92a4f4","type":"mqtt in","z":"57d9f343.9e0bfc","name":"","topic":"ipcam/login/outdoor","qos":"1","broker":"40415d07.67dd94","x":100,"y":128,"wires":[["3f24aaa1.866f96"]]},{"id":"8802aea1.75381","type":"ui_form","z":"57d9f343.9e0bfc","name":"Change Server Address","label":"Change Server Address","group":"b8f4206.8bfbae","order":2,"width":0,"height":0,"options":[{"label":"Server IP","value":"ftpip","type":"text","required":true},{"label":"Server Port","value":"ftpport","type":"text","required":true},{"label":"Username","value":"ftpuser","type":"text","required":true},{"label":"Password","value":"ftppass","type":"password","required":true},{"label":"Upload Directory","value":"ftpdir","type":"text","required":true}],"formValue":{"ftpip":"","ftpport":"","ftpuser":"","ftppass":"","ftpdir":""},"payload":"","submit":"Submit","cancel":"Cancel","topic":"ftpserver","x":102,"y":481.00000762939453,"wires":[["6944f73b.a05028","7a9d483c.d379a8"]]},{"id":"6944f73b.a05028","type":"change","z":"57d9f343.9e0bfc","name":"Set Flow FTP Server","rules":[{"t":"set","p":"ftpip","pt":"flow","to":"payload.ftpip","tot":"msg"},{"t":"set","p":"ftppass","pt":"flow","to":"payload.ftppass","tot":"msg"},{"t":"set","p":"ftpuser","pt":"flow","to":"payload.ftpuser","tot":"msg"},{"t":"set","p":"ftpport","pt":"flow","to":"payload.ftpport","tot":"msg"},{"t":"set","p":"ftpdir","pt":"flow","to":"payload.ftpdir","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":339,"y":482.00000762939453,"wires":[["6039a8ba.6ea518"]]},{"id":"7eebd10b.6a9cb","type":"json","z":"57d9f343.9e0bfc","name":"","property":"payload","action":"","pretty":false,"x":848,"y":526.0000076293945,"wires":[["e69ed855.2f4ce8"]]},{"id":"e69ed855.2f4ce8","type":"ui_text","z":"57d9f343.9e0bfc","group":"b8f4206.8bfbae","order":3,"width":"6","height":"2","name":"Set FTP Server","label":"Set FTP Server","format":"{{msg.payload.setftp}}","layout":"row-spread","x":988,"y":526.0000076293945,"wires":[]},{"id":"7a9d483c.d379a8","type":"function","z":"57d9f343.9e0bfc","name":"Set FTP Server","func":"var ip = flow.get(\"ip\");\nvar user = flow.get(\"user\");\nvar password = flow.get(\"password\");\n\nvar ftpip = msg.payload.ftpip;\nvar ftpport = msg.payload.ftpport;\nvar ftpuser = msg.payload.ftpuser;\nvar ftppass = msg.payload.ftppass;\nvar ftpdir = msg.payload.ftpdir;\n\n// Update the status with current timestamp\nvar now = new Date();\nvar yyyy = now.getFullYear();\nvar mm = now.getMonth() < 9 ? \"0\" + (now.getMonth() + 1) : (now.getMonth() + 1); // getMonth() is zero-based\nvar dd = now.getDate() < 10 ? \"0\" + now.getDate() : now.getDate();\nvar hh = now.getHours() < 10 ? \"0\" + now.getHours() : now.getHours();\nvar mmm = now.getMinutes() < 10 ? \"0\" + now.getMinutes() : now.getMinutes();\nvar ss = now.getSeconds() < 10 ? \"0\" + now.getSeconds() : now.getSeconds();\nvar currenttime= hh + \":\" + mmm + \":\" + ss;\nvar currentdate= dd + \".\" + mm + \".\" + yyyy;\n\nnode.status({fill:\"blue\",shape:\"ring\",text:\"Last update: \" + currentdate + \" - \" + currenttime});\n\nmsg.topic = \"setftp\";\nmsg.payload = ip+\"/param.cgi?cmd=set_instar_admin&-index=31&-value=\"+ftpip+\"%3B\"+ftpport+\"%3B\"+ftpuser+\"%3B\"+ftppass+\"%3B1%3B\"+ftpdir+\"%3B1%3B1%3B0&-usr=\"+user+\"&-pwd=\"+password;\nreturn msg;","outputs":1,"noerr":0,"x":348,"y":526.0000076293945,"wires":[["e223dd6c.d39b7"]]},{"id":"e223dd6c.d39b7","type":"change","z":"57d9f343.9e0bfc","name":"Set URL","rules":[{"t":"set","p":"url","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":485,"y":526.0000076293945,"wires":[["afb00cd6.449ce"]]},{"id":"afb00cd6.449ce","type":"http request","z":"57d9f343.9e0bfc","name":"setftp","method":"GET","ret":"txt","url":"","tls":"","x":605,"y":526.0000076293945,"wires":[["154ee4ad.cb009b"]]},{"id":"154ee4ad.cb009b","type":"string","z":"57d9f343.9e0bfc","name":"toJSON","methods":[{"name":"replaceAll","params":[{"type":"str","value":"[Succeed]set ok."},{"type":"str","value":"{ \"setftp\": \"successful\" }"}]},{"name":"replaceAll","params":[{"type":"str","value":"[Error]Param error."},{"type":"str","value":"{ \"setftp\": \"Error\" }"}]}],"prop":"payload","propout":"payload","object":"msg","objectout":"msg","x":728,"y":526.0000076293945,"wires":[["7eebd10b.6a9cb"]]},{"id":"378f69dc.43aea6","type":"http request","z":"57d9f343.9e0bfc","name":"index=31","method":"GET","ret":"txt","url":"","tls":"","x":650,"y":587.0000076293945,"wires":[["f1edf862.e77bf8"]]},{"id":"f1edf862.e77bf8","type":"string","z":"57d9f343.9e0bfc","name":"toJSON","methods":[{"name":"delRightMost","params":[{"type":"str","value":"\";"}]},{"name":"replaceAll","params":[{"type":"str","value":"admin_value31=\""},{"type":"str","value":""}]},{"name":"replaceAll","params":[{"type":"str","value":";"},{"type":"str","value":","}]},{"name":"parseCSV","params":[{"type":"str","value":","},{"type":"str","value":""},{"type":"str","value":""},{"type":"str","value":""}]}],"prop":"payload","propout":"payload","object":"msg","objectout":"msg","x":780,"y":587.0000076293945,"wires":[["cecfd733.5b28c8"]]},{"id":"543b34df.16bdfc","type":"function","z":"57d9f343.9e0bfc","name":"index=31","func":"var ip = msg.payload.ip;\nvar user = msg.payload.user;\nvar password = msg.payload.password;\n\n// Update the status with current timestamp\nvar now = new Date();\nvar yyyy = now.getFullYear();\nvar mm = now.getMonth() < 9 ? \"0\" + (now.getMonth() + 1) : (now.getMonth() + 1); // getMonth() is zero-based\nvar dd = now.getDate() < 10 ? \"0\" + now.getDate() : now.getDate();\nvar hh = now.getHours() < 10 ? \"0\" + now.getHours() : now.getHours();\nvar mmm = now.getMinutes() < 10 ? \"0\" + now.getMinutes() : now.getMinutes();\nvar ss = now.getSeconds() < 10 ? \"0\" + now.getSeconds() : now.getSeconds();\nvar currenttime= hh + \":\" + mmm + \":\" + ss;\nvar currentdate= dd + \".\" + mm + \".\" + yyyy;\n\nnode.status({fill:\"blue\",shape:\"ring\",text:\"Last update: \" + currentdate + \" - \" + currenttime});\n\nmsg.topic = \"index=31\";\nmsg.payload = ip+\"/param.cgi?cmd=get_instar_admin&-index=31&-usr=\"+user+\"&-pwd=\"+password;\nreturn msg;","outputs":1,"noerr":0,"x":370,"y":587.0000076293945,"wires":[["4f90171.2078be8"]]},{"id":"91434d6c.8d9f7","type":"mqtt in","z":"57d9f343.9e0bfc","name":"","topic":"ipcam/login/outdoor","qos":"1","broker":"40415d07.67dd94","x":91,"y":587.0000076293945,"wires":[["cb37a819.541d18"]]},{"id":"4f90171.2078be8","type":"change","z":"57d9f343.9e0bfc","name":"","rules":[{"t":"set","p":"url","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":510,"y":587.0000076293945,"wires":[["378f69dc.43aea6"]]},{"id":"cecfd733.5b28c8","type":"function","z":"57d9f343.9e0bfc","name":"getftpip","func":"var getftp = msg.payload[0];\nvar getftpip = getftp[0];\n\nmsg.topic = \"index=31\";\nmsg.payload = getftp;\nreturn msg;\n\n// var getftp = msg.payload[0];\n// var getftpip = getftp[0];\n\n// msg.topic = \"index=31\";\n// msg.payload = getftpip;\n// return msg;","outputs":1,"noerr":0,"x":900,"y":587.0000076293945,"wires":[["7d8a0f6c.b20ac"]]},{"id":"7d8a0f6c.b20ac","type":"ui_template","z":"57d9f343.9e0bfc","group":"b8f4206.8bfbae","name":"Current FTP Server Settings","order":1,"width":"6","height":"4","format":"Current FTP Server Settings
\n\n \n FTP Server IP | \n {{msg.payload[0]}} | \n
\n \n FTP Server Port | \n {{msg.payload[1]}} | \n
\n \n FTP User | \n {{msg.payload[2]}} | \n
\n \n FTP Password | \n {{msg.payload[3]}} | \n
\n \n FTP Directory | \n {{msg.payload[5]}} | \n
\n
","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":1093,"y":606.0000076293945,"wires":[[]]},{"id":"6039a8ba.6ea518","type":"mqtt out","z":"57d9f343.9e0bfc","name":"Refresh FTP Datat","topic":"ipcam/outdoor/alarm/features/ftpset","qos":"1","retain":"false","broker":"40415d07.67dd94","x":529,"y":482.00000762939453,"wires":[]},{"id":"49e4aabd.3f11e4","type":"mqtt in","z":"57d9f343.9e0bfc","name":"Refresh FTP Datat","topic":"ipcam/outdoor/alarm/features/ftpset","qos":"1","broker":"40415d07.67dd94","x":91,"y":637.0000076293945,"wires":[["a9e2dbc.1ca3128"]]},{"id":"3d8b5a29.eab4b6","type":"http request","z":"57d9f343.9e0bfc","name":"index=31","method":"GET","ret":"txt","url":"","tls":"","x":651,"y":637.0000076293945,"wires":[["e742a119.4d468"]]},{"id":"e742a119.4d468","type":"string","z":"57d9f343.9e0bfc","name":"toJSON","methods":[{"name":"delRightMost","params":[{"type":"str","value":"\";"}]},{"name":"replaceAll","params":[{"type":"str","value":"admin_value31=\""},{"type":"str","value":""}]},{"name":"replaceAll","params":[{"type":"str","value":";"},{"type":"str","value":","}]},{"name":"parseCSV","params":[{"type":"str","value":","},{"type":"str","value":""},{"type":"str","value":""},{"type":"str","value":""}]}],"prop":"payload","propout":"payload","object":"msg","objectout":"msg","x":798,"y":637.0000076293945,"wires":[["b449584f.0de758"]]},{"id":"2cf16ed7.a059f2","type":"function","z":"57d9f343.9e0bfc","name":"index=31","func":"var ip = flow.get(\"ip\");\nvar user = flow.get(\"user\");\nvar password = flow.get(\"password\");\n\n// Update the status with current timestamp\nvar now = new Date();\nvar yyyy = now.getFullYear();\nvar mm = now.getMonth() < 9 ? \"0\" + (now.getMonth() + 1) : (now.getMonth() + 1); // getMonth() is zero-based\nvar dd = now.getDate() < 10 ? \"0\" + now.getDate() : now.getDate();\nvar hh = now.getHours() < 10 ? \"0\" + now.getHours() : now.getHours();\nvar mmm = now.getMinutes() < 10 ? \"0\" + now.getMinutes() : now.getMinutes();\nvar ss = now.getSeconds() < 10 ? \"0\" + now.getSeconds() : now.getSeconds();\nvar currenttime= hh + \":\" + mmm + \":\" + ss;\nvar currentdate= dd + \".\" + mm + \".\" + yyyy;\n\nnode.status({fill:\"blue\",shape:\"ring\",text:\"Last update: \" + currentdate + \" - \" + currenttime});\n\nmsg.topic = \"index=31\";\nmsg.payload = ip+\"/param.cgi?cmd=get_instar_admin&-index=31&-usr=\"+user+\"&-pwd=\"+password;\nreturn msg;","outputs":1,"noerr":0,"x":371,"y":637.0000076293945,"wires":[["f8c4985e.6dc5b8"]]},{"id":"f8c4985e.6dc5b8","type":"change","z":"57d9f343.9e0bfc","name":"","rules":[{"t":"set","p":"url","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":511,"y":637.0000076293945,"wires":[["3d8b5a29.eab4b6"]]},{"id":"b449584f.0de758","type":"function","z":"57d9f343.9e0bfc","name":"getftpip","func":"var getftp = msg.payload[0];\nvar getftpip = getftp[0];\n\nmsg.topic = \"index=31\";\nmsg.payload = getftp;\nreturn msg;\n\n// var getftp = msg.payload[0];\n// var getftpip = getftp[0];\n\n// msg.topic = \"index=31\";\n// msg.payload = getftpip;\n// return msg;","outputs":1,"noerr":0,"x":918,"y":637.0000076293945,"wires":[["7d8a0f6c.b20ac"]]},{"id":"cb37a819.541d18","type":"json","z":"57d9f343.9e0bfc","name":"","property":"payload","action":"","pretty":false,"x":240,"y":587.0000076293945,"wires":[["543b34df.16bdfc"]]},{"id":"a9e2dbc.1ca3128","type":"delay","z":"57d9f343.9e0bfc","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":241,"y":637.0000076293945,"wires":[["2cf16ed7.a059f2"]]},{"id":"de767392.9d96f","type":"comment","z":"57d9f343.9e0bfc","name":"Set FTP Server","info":"","x":82,"y":435.00000762939453,"wires":[]},{"id":"c4544223.0fba3","type":"comment","z":"57d9f343.9e0bfc","name":"Get FTP Server","info":"","x":83,"y":545.0000076293945,"wires":[]},{"id":"65701900.02ca28","type":"mqtt in","z":"57d9f343.9e0bfc","name":"Trigger FTP Snap","topic":"ipcam/outdoor/alarm/features/testftp","qos":"1","broker":"40415d07.67dd94","x":83,"y":781.0000076293945,"wires":[["e95ce950.95bf88"]]},{"id":"fc8a62b7.2cd64","type":"json","z":"57d9f343.9e0bfc","name":"","property":"payload","action":"","pretty":false,"x":735,"y":781.0000076293945,"wires":[["71fc4a4d.60fd94","b5559514.701ba8","3f5113e2.64917c"]]},{"id":"71fc4a4d.60fd94","type":"ui_text","z":"57d9f343.9e0bfc","group":"32d3136c.be9b8c","order":5,"width":0,"height":0,"name":"FTP Snapshot","label":"FTP Snapshot","format":"{{msg.payload.ftpsnap}}","layout":"row-spread","x":922,"y":762.0000076293945,"wires":[]},{"id":"e95ce950.95bf88","type":"function","z":"57d9f343.9e0bfc","name":"Test FRP","func":"var ip = flow.get(\"ip\");\nvar user = flow.get(\"user\");\nvar password = flow.get(\"password\");\n\n// Update the status with current timestamp\nvar now = new Date();\nvar yyyy = now.getFullYear();\nvar mm = now.getMonth() < 9 ? \"0\" + (now.getMonth() + 1) : (now.getMonth() + 1); // getMonth() is zero-based\nvar dd = now.getDate() < 10 ? \"0\" + now.getDate() : now.getDate();\nvar hh = now.getHours() < 10 ? \"0\" + now.getHours() : now.getHours();\nvar mmm = now.getMinutes() < 10 ? \"0\" + now.getMinutes() : now.getMinutes();\nvar ss = now.getSeconds() < 10 ? \"0\" + now.getSeconds() : now.getSeconds();\nvar currenttime= hh + \":\" + mmm + \":\" + ss;\nvar currentdate= dd + \".\" + mm + \".\" + yyyy;\n\nnode.status({fill:\"blue\",shape:\"ring\",text:\"Last update: \" + currentdate + \" - \" + currenttime});\n\nmsg.topic = \"testftp\";\nmsg.payload = ip+\"/param.cgi?cmd=testftp&-usr=\"+user+\"&-pwd=\"+password;\nreturn msg;","outputs":1,"noerr":0,"x":244,"y":781.0000076293945,"wires":[["6387d826.aefc68"]]},{"id":"6387d826.aefc68","type":"change","z":"57d9f343.9e0bfc","name":"Set URL","rules":[{"t":"set","p":"url","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":371,"y":781.0000076293945,"wires":[["d90236a.c3436c8"]]},{"id":"d90236a.c3436c8","type":"http request","z":"57d9f343.9e0bfc","name":"ftpsnap","method":"GET","ret":"txt","url":"","tls":"","x":491,"y":781.0000076293945,"wires":[["162cefe7.42a9a"]]},{"id":"162cefe7.42a9a","type":"string","z":"57d9f343.9e0bfc","name":"toJSON","methods":[{"name":"replaceAll","params":[{"type":"str","value":"var result=\"0\";"},{"type":"str","value":"{ \"ftpsnap\": \"Upload Successful\" }"}]},{"name":"replaceAll","params":[{"type":"str","value":"var result=\"-1\";"},{"type":"str","value":"{ \"ftpsnap\": \"Unknown Error\" }"}]},{"name":"replaceAll","params":[{"type":"str","value":"var result=\"-2\";"},{"type":"str","value":"{ \"ftpsnap\": \"No Connection\" }"}]},{"name":"replaceAll","params":[{"type":"str","value":"var result=\"-3\";"},{"type":"str","value":"{ \"ftpsnap\": \"Wrong User or Password\" }"}]},{"name":"replaceAll","params":[{"type":"str","value":"var result=\"-4\";"},{"type":"str","value":"{ \"ftpsnap\": \"Wrong Directory\" }"}]},{"name":"replaceAll","params":[{"type":"str","value":"var result=\"-5\";"},{"type":"str","value":"{ \"ftpsnap\": \"No Connection\" }"}]},{"name":"replaceAll","params":[{"type":"str","value":"[Error]Param error."},{"type":"str","value":"{ \"ftpsnap\": \"ParamError\" }"}]}],"prop":"payload","propout":"payload","object":"msg","objectout":"msg","x":613,"y":781.0000076293945,"wires":[["fc8a62b7.2cd64"]]},{"id":"e74ac8ca.979728","type":"ui_button","z":"57d9f343.9e0bfc","name":"Trigger FTP Snap","group":"32d3136c.be9b8c","order":4,"width":0,"height":0,"passthru":false,"label":"Trigger FTP Snap","color":"#ffffff","bgcolor":"#f3100b","icon":"fa-bell","payload":"{ \"val\" : \"send2ftp\"}","payloadType":"json","topic":"ftpsnap","x":264,"y":739.0000076293945,"wires":[["ab3677bb.43ab88"]]},{"id":"ab3677bb.43ab88","type":"mqtt out","z":"57d9f343.9e0bfc","name":"Trigger FTP Snap","topic":"ipcam/outdoor/alarm/features/testftp","qos":"1","retain":"false","broker":"40415d07.67dd94","x":440,"y":740,"wires":[]},{"id":"b5559514.701ba8","type":"delay","z":"57d9f343.9e0bfc","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":751,"y":720.0000076293945,"wires":[["ca0857d2.7fa528"]]},{"id":"ca0857d2.7fa528","type":"change","z":"57d9f343.9e0bfc","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"ftpsnap\" : \"\"}","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":917,"y":715.0000076293945,"wires":[["71fc4a4d.60fd94"]]},{"id":"3f5113e2.64917c","type":"change","z":"57d9f343.9e0bfc","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"ftpsnap\" : \"Upload Successful\"}","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":911,"y":803.0000076293945,"wires":[[]]},{"id":"1c778253.794f9e","type":"comment","z":"57d9f343.9e0bfc","name":"Upload Snapshot","info":"","x":82,"y":694.0000076293945,"wires":[]},{"id":"a7773dec.b3a8b","type":"ui_template","z":"57d9f343.9e0bfc","group":"32d3136c.be9b8c","name":"Display Image","order":0,"width":"6","height":"4","format":"","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":455,"y":879,"wires":[[]]},{"id":"d2c73889.e2cd68","type":"string","z":"57d9f343.9e0bfc","name":"Create URL","methods":[{"name":"replaceAll","params":[{"type":"str","value":"/home/ftpuser/outdoorcam/"},{"type":"str","value":"/outdoorcam/"}]}],"prop":"payload","propout":"payload","object":"msg","objectout":"msg","x":300,"y":879,"wires":[["a7773dec.b3a8b"]]},{"id":"1055c3e3.73d22c","type":"comment","z":"57d9f343.9e0bfc","name":"Show Snapshot","info":"","x":83,"y":837.0000076293945,"wires":[]},{"id":"5be0b025.53dd1","type":"mqtt in","z":"57d9f343.9e0bfc","name":"Push Man Rec","topic":"ipcam/outdoor/alarm/manrec","qos":"1","broker":"40415d07.67dd94","x":87,"y":1413.0000076293945,"wires":[["3f31e0d0.b29c8"]]},{"id":"3f31e0d0.b29c8","type":"function","z":"57d9f343.9e0bfc","name":"process value","func":"msg.payload = JSON.parse(msg.payload).val;\nreturn msg;","outputs":1,"noerr":0,"x":353,"y":1413.0000076293945,"wires":[["573b591f.cc6ed8"]]},{"id":"573b591f.cc6ed8","type":"switch","z":"57d9f343.9e0bfc","name":"Push","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"alarm","vt":"str"}],"checkall":"false","repair":false,"outputs":1,"x":524,"y":1362.0000076293945,"wires":[["23d75c11.985da4","2f9abf39.64c5f"]]},{"id":"23d75c11.985da4","type":"function","z":"57d9f343.9e0bfc","name":"Man REC","func":"var ip = flow.get(\"ip\");\nvar user = flow.get(\"user\");\nvar password = flow.get(\"password\");\n\n// Update the status with current timestamp\nvar now = new Date();\nvar yyyy = now.getFullYear();\nvar mm = now.getMonth() < 9 ? \"0\" + (now.getMonth() + 1) : (now.getMonth() + 1); // getMonth() is zero-based\nvar dd = now.getDate() < 10 ? \"0\" + now.getDate() : now.getDate();\nvar hh = now.getHours() < 10 ? \"0\" + now.getHours() : now.getHours();\nvar mmm = now.getMinutes() < 10 ? \"0\" + now.getMinutes() : now.getMinutes();\nvar ss = now.getSeconds() < 10 ? \"0\" + now.getSeconds() : now.getSeconds();\nvar currenttime= hh + \":\" + mmm + \":\" + ss;\nvar currentdate= dd + \".\" + mm + \".\" + yyyy;\n\nnode.status({fill:\"blue\",shape:\"ring\",text:\"Last update: \" + currentdate + \" - \" + currenttime});\n\nmsg.topic = \"three\";\nmsg.payload = ip+\"/param.cgi?cmd=manualrec&-act=on&-time=60&-usr=\"+user+\"&-pwd=\"+password;\nreturn msg;","outputs":1,"noerr":0,"x":524,"y":1414.0000076293945,"wires":[["54175918.86bc48"]]},{"id":"290ef4cd.7c91cc","type":"string","z":"57d9f343.9e0bfc","name":"toJSON","methods":[{"name":"replaceAll","params":[{"type":"str","value":"[Succeed]record(manual) succeed."},{"type":"str","value":"{ \"manrec\": \"25s recording started\" }"}]},{"name":"replaceAll","params":[{"type":"str","value":"[Error]Param error."},{"type":"str","value":"{ \"manrec\": \"Param Error\" }"}]},{"name":"replaceAll","params":[{"type":"str","value":"[Error]record(manual) failed."},{"type":"str","value":"{ \"manrec\": \"Rec Failed\" }"}]}],"prop":"payload","propout":"payload","object":"msg","objectout":"msg","x":841,"y":1331.0000076293945,"wires":[["23f85847.beda68"]]},{"id":"23f85847.beda68","type":"json","z":"57d9f343.9e0bfc","name":"","property":"payload","action":"","pretty":false,"x":876,"y":1373.0000076293945,"wires":[["fe0f4e09.8ec7a","9236da8e.c7d378","a9e5076a.08d168"]]},{"id":"fe0f4e09.8ec7a","type":"ui_text","z":"57d9f343.9e0bfc","group":"d0f99761.e4f888","order":2,"width":0,"height":0,"name":"UI Alarm","label":"Manual Recording","format":"{{msg.payload.manrec}}","layout":"row-spread","x":1017,"y":1315.0000076293945,"wires":[]},{"id":"54175918.86bc48","type":"change","z":"57d9f343.9e0bfc","name":"Set URL","rules":[{"t":"set","p":"url","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":678,"y":1363.0000076293945,"wires":[["663418a1.4761c8"]]},{"id":"663418a1.4761c8","type":"http request","z":"57d9f343.9e0bfc","name":"pushhostalarm","method":"GET","ret":"txt","url":"","tls":"","x":700,"y":1420.0000076293945,"wires":[["290ef4cd.7c91cc"]]},{"id":"cb63c08e.dd0de","type":"mqtt out","z":"57d9f343.9e0bfc","name":"Push Man Rec","topic":"ipcam/outdoor/alarm/manrec","qos":"1","retain":"false","broker":"40415d07.67dd94","x":374,"y":1365.0000076293945,"wires":[]},{"id":"8e5d2f4b.f7569","type":"ui_button","z":"57d9f343.9e0bfc","name":"Trigger Man REC","group":"d0f99761.e4f888","order":0,"width":0,"height":0,"passthru":true,"label":"Trigger Man REC","color":"#ffffff","bgcolor":"#f3100b","icon":"fa-bell","payload":"{\"val\" : \"alarm\"}","payloadType":"json","topic":"pushalarm","x":202,"y":1366.0000076293945,"wires":[["cb63c08e.dd0de"]]},{"id":"9236da8e.c7d378","type":"change","z":"57d9f343.9e0bfc","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"manrec\" : \"25s video recording started\"}","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1056,"y":1373.0000076293945,"wires":[["a5c34bda.2a9f08"]]},{"id":"a9e5076a.08d168","type":"delay","z":"57d9f343.9e0bfc","name":"","pauseType":"delay","timeout":"25","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":874,"y":1421.0000076293945,"wires":[["9f421953.fde9f8"]]},{"id":"9f421953.fde9f8","type":"change","z":"57d9f343.9e0bfc","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"manrec\" : \"\"}","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1058,"y":1419.0000076293945,"wires":[["a5c34bda.2a9f08"]]},{"id":"15ab124c.793fee","type":"function","z":"57d9f343.9e0bfc","name":"Man REC","func":"var ip = flow.get(\"ip\");\nvar user = flow.get(\"user\");\nvar password = flow.get(\"password\");\n\n// Update the status with current timestamp\nvar now = new Date();\nvar yyyy = now.getFullYear();\nvar mm = now.getMonth() < 9 ? \"0\" + (now.getMonth() + 1) : (now.getMonth() + 1); // getMonth() is zero-based\nvar dd = now.getDate() < 10 ? \"0\" + now.getDate() : now.getDate();\nvar hh = now.getHours() < 10 ? \"0\" + now.getHours() : now.getHours();\nvar mmm = now.getMinutes() < 10 ? \"0\" + now.getMinutes() : now.getMinutes();\nvar ss = now.getSeconds() < 10 ? \"0\" + now.getSeconds() : now.getSeconds();\nvar currenttime= hh + \":\" + mmm + \":\" + ss;\nvar currentdate= dd + \".\" + mm + \".\" + yyyy;\n\nnode.status({fill:\"blue\",shape:\"ring\",text:\"Last update: \" + currentdate + \" - \" + currenttime});\n\nmsg.topic = \"three\";\nmsg.payload = ip+\"/param.cgi?/cmd=manualrec&-act=off&-usr=\"+user+\"&-pwd=\"+password;\nreturn msg;","outputs":1,"noerr":0,"x":536,"y":1318.0000076293945,"wires":[["54175918.86bc48"]]},{"id":"2f9abf39.64c5f","type":"delay","z":"57d9f343.9e0bfc","name":"","pauseType":"delay","timeout":"25","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":400,"y":1318.0000076293945,"wires":[["15ab124c.793fee"]]},{"id":"418c302.dcd2ed","type":"comment","z":"57d9f343.9e0bfc","name":"Manual Recording","info":"","x":97,"y":1324.0000076293945,"wires":[]},{"id":"867144fc.052768","type":"function","z":"57d9f343.9e0bfc","name":"IR Enabled","func":"var ip = flow.get(\"ip\");\nvar user = flow.get(\"user\");\nvar password = flow.get(\"password\");\n\n// Update the status with current timestamp\nvar now = new Date();\nvar yyyy = now.getFullYear();\nvar mm = now.getMonth() < 9 ? \"0\" + (now.getMonth() + 1) : (now.getMonth() + 1); // getMonth() is zero-based\nvar dd = now.getDate() < 10 ? \"0\" + now.getDate() : now.getDate();\nvar hh = now.getHours() < 10 ? \"0\" + now.getHours() : now.getHours();\nvar mmm = now.getMinutes() < 10 ? \"0\" + now.getMinutes() : now.getMinutes();\nvar ss = now.getSeconds() < 10 ? \"0\" + now.getSeconds() : now.getSeconds();\nvar currenttime= hh + \":\" + mmm + \":\" + ss;\nvar currentdate= dd + \".\" + mm + \".\" + yyyy;\n\nnode.status({fill:\"blue\",shape:\"ring\",text:\"Last update: \" + currentdate + \" - \" + currenttime});\n\nmsg.topic = \"nightvision\";\nmsg.payload = ip+\"/param.cgi?cmd=setinfrared&-infraredstat=auto&-usr=\"+user+\"&-pwd=\"+password;\nreturn msg;","outputs":1,"noerr":0,"x":490,"y":1585.0000076293945,"wires":[["40dfd4cb.1e723c"]]},{"id":"8d8b05dc.4b1eb8","type":"string","z":"57d9f343.9e0bfc","name":"toJSON","methods":[{"name":"replaceAll","params":[{"type":"str","value":"[Succeed]set ok."},{"type":"str","value":"{\"val\" : \"ON\"}"}]},{"name":"replaceAll","params":[{"type":"str","value":"[Error]Param error."},{"type":"str","value":"{ \"val\": \"Error\" }"}]}],"prop":"payload","propout":"payload","object":"msg","objectout":"msg","x":878,"y":1585.0000076293945,"wires":[["a4708740.135de8"]]},{"id":"a4708740.135de8","type":"json","z":"57d9f343.9e0bfc","name":"","property":"payload","action":"","pretty":false,"x":1005,"y":1603.0000076293945,"wires":[["8cbfa2ed.12177"]]},{"id":"8cbfa2ed.12177","type":"ui_text","z":"57d9f343.9e0bfc","group":"c554c164.b83dc","order":2,"width":0,"height":0,"name":"Activate Nightvision","label":"Activate Nightvision","format":"{{msg.payload.val}}","layout":"row-spread","x":1155,"y":1603.0000076293945,"wires":[]},{"id":"40dfd4cb.1e723c","type":"change","z":"57d9f343.9e0bfc","name":"Set URL","rules":[{"t":"set","p":"url","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":618,"y":1585.0000076293945,"wires":[["8ed97940.9fbf88"]]},{"id":"8ed97940.9fbf88","type":"http request","z":"57d9f343.9e0bfc","name":"nightvision","method":"GET","ret":"txt","url":"","tls":"","x":748,"y":1585.0000076293945,"wires":[["8d8b05dc.4b1eb8"]]},{"id":"2649880b.dcb7d8","type":"function","z":"57d9f343.9e0bfc","name":"IR Disabled","func":"var ip = flow.get(\"ip\");\nvar user = flow.get(\"user\");\nvar password = flow.get(\"password\");\n\n// Update the status with current timestamp\nvar now = new Date();\nvar yyyy = now.getFullYear();\nvar mm = now.getMonth() < 9 ? \"0\" + (now.getMonth() + 1) : (now.getMonth() + 1); // getMonth() is zero-based\nvar dd = now.getDate() < 10 ? \"0\" + now.getDate() : now.getDate();\nvar hh = now.getHours() < 10 ? \"0\" + now.getHours() : now.getHours();\nvar mmm = now.getMinutes() < 10 ? \"0\" + now.getMinutes() : now.getMinutes();\nvar ss = now.getSeconds() < 10 ? \"0\" + now.getSeconds() : now.getSeconds();\nvar currenttime= hh + \":\" + mmm + \":\" + ss;\nvar currentdate= dd + \".\" + mm + \".\" + yyyy;\n\nnode.status({fill:\"blue\",shape:\"ring\",text:\"Last update: \" + currentdate + \" - \" + currenttime});\n\nmsg.topic = \"emailsnap\";\nmsg.payload = ip+\"/param.cgi?cmd=setinfrared&-infraredstat=close&-usr=\"+user+\"&-pwd=\"+password;\nreturn msg;","outputs":1,"noerr":0,"x":492,"y":1625.0000076293945,"wires":[["922b87e4.125658"]]},{"id":"922b87e4.125658","type":"change","z":"57d9f343.9e0bfc","name":"Set URL","rules":[{"t":"set","p":"url","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":620,"y":1625.0000076293945,"wires":[["3c43369a.fe9a6a"]]},{"id":"3c43369a.fe9a6a","type":"http request","z":"57d9f343.9e0bfc","name":"nightvision","method":"GET","ret":"txt","url":"","tls":"","x":750,"y":1625.0000076293945,"wires":[["675b0188.6c5dd"]]},{"id":"675b0188.6c5dd","type":"string","z":"57d9f343.9e0bfc","name":"toJSON","methods":[{"name":"replaceAll","params":[{"type":"str","value":"[Succeed]set ok."},{"type":"str","value":"{\"val\" : \"OFF\"}"}]},{"name":"replaceAll","params":[{"type":"str","value":"[Error]Param error."},{"type":"str","value":"{ \"val\": \"Error\" }"}]}],"prop":"payload","propout":"payload","object":"msg","objectout":"msg","x":879,"y":1625.0000076293945,"wires":[["a4708740.135de8"]]},{"id":"8263dcf3.7bf62","type":"comment","z":"57d9f343.9e0bfc","name":"Activate IR","info":"","x":1180,"y":1555,"wires":[]},{"id":"f5a82c54.7412d","type":"delay","z":"57d9f343.9e0bfc","name":"","pauseType":"delay","timeout":"30","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":102,"y":1655.0000076293945,"wires":[["16e36d8f.dfb992"]]},{"id":"fb1b4507.de2c58","type":"change","z":"57d9f343.9e0bfc","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"val\" : \"alarm\"}","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":297,"y":1463.0000076293945,"wires":[["3f31e0d0.b29c8"]]},{"id":"739d7f17.f35dd","type":"mqtt out","z":"57d9f343.9e0bfc","name":"Set IR","topic":"ipcam/outdoor/features/nightvision/enable/set","qos":"1","retain":"false","broker":"40415d07.67dd94","x":652,"y":1490.0000076293945,"wires":[]},{"id":"9072d031.6b366","type":"ui_button","z":"57d9f343.9e0bfc","name":"Enable IR","group":"c554c164.b83dc","order":0,"width":0,"height":0,"passthru":true,"label":"Enable IR","color":"#ffffff","bgcolor":"#f17c35","icon":"fa-bell","payload":"{\"val\" : \"ON\"}","payloadType":"json","topic":"nightvision","x":494,"y":1470.0000076293945,"wires":[["739d7f17.f35dd"]]},{"id":"f38bc692.1420c8","type":"ui_button","z":"57d9f343.9e0bfc","name":"Disable IR","group":"c554c164.b83dc","order":0,"width":0,"height":0,"passthru":true,"label":"Disable IR","color":"#000000","bgcolor":"#dddddd","icon":"fa-bell","payload":"{\"val\" : \"OFF\"}","payloadType":"json","topic":"nightvision","x":494,"y":1510.0000076293945,"wires":[["739d7f17.f35dd"]]},{"id":"4eff00e1.4a2dd","type":"mqtt in","z":"57d9f343.9e0bfc","name":"Set IR","topic":"ipcam/outdoor/features/nightvision/enable/set","qos":"1","broker":"40415d07.67dd94","x":107,"y":1607.0000076293945,"wires":[["855a1591.3097d8"]]},{"id":"e144104c.576a9","type":"switch","z":"57d9f343.9e0bfc","name":"Push","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"ON","vt":"str"},{"t":"eq","v":"OFF","vt":"str"}],"checkall":"false","repair":false,"outputs":2,"x":359,"y":1607.0000076293945,"wires":[["867144fc.052768"],["2649880b.dcb7d8"]]},{"id":"855a1591.3097d8","type":"function","z":"57d9f343.9e0bfc","name":"set val","func":"msg.payload = JSON.parse(msg.payload).val;\nreturn msg;","outputs":1,"noerr":0,"x":243,"y":1607.0000076293945,"wires":[["e144104c.576a9"]]},{"id":"612c667c.af2be8","type":"change","z":"57d9f343.9e0bfc","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"val\" : \"ON\"}","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":300,"y":1503,"wires":[["855a1591.3097d8"]]},{"id":"16e36d8f.dfb992","type":"change","z":"57d9f343.9e0bfc","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"val\" : \"OFF\"}","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":285,"y":1655.0000076293945,"wires":[["855a1591.3097d8"]]},{"id":"a5c34bda.2a9f08","type":"json","z":"57d9f343.9e0bfc","name":"","property":"payload","action":"","pretty":false,"x":1215,"y":1392,"wires":[["fe0f4e09.8ec7a"]]},{"id":"5052ff7c.24dd7","type":"mqtt in","z":"57d9f343.9e0bfc","name":"Push Alarm","topic":"ipcam/outdoor/alarm/pushalarm","qos":"1","broker":"40415d07.67dd94","x":77,"y":1184.0000076293945,"wires":[["12230d41.d52b63"]]},{"id":"12230d41.d52b63","type":"function","z":"57d9f343.9e0bfc","name":"process value","func":"msg.payload = JSON.parse(msg.payload).pushalarm;\nreturn msg;","outputs":1,"noerr":0,"x":256,"y":1184.0000076293945,"wires":[["1edf8950.f69b57"]]},{"id":"1edf8950.f69b57","type":"switch","z":"57d9f343.9e0bfc","name":"Push","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"triggered","vt":"str"}],"checkall":"false","repair":false,"outputs":1,"x":445,"y":1133.0000076293945,"wires":[["cdeac37d.551f3"]]},{"id":"cdeac37d.551f3","type":"function","z":"57d9f343.9e0bfc","name":"Alarm","func":"var ip = flow.get(\"ip\");\nvar user = flow.get(\"user\");\nvar password = flow.get(\"password\");\n\n// Update the status with current timestamp\nvar now = new Date();\nvar yyyy = now.getFullYear();\nvar mm = now.getMonth() < 9 ? \"0\" + (now.getMonth() + 1) : (now.getMonth() + 1); // getMonth() is zero-based\nvar dd = now.getDate() < 10 ? \"0\" + now.getDate() : now.getDate();\nvar hh = now.getHours() < 10 ? \"0\" + now.getHours() : now.getHours();\nvar mmm = now.getMinutes() < 10 ? \"0\" + now.getMinutes() : now.getMinutes();\nvar ss = now.getSeconds() < 10 ? \"0\" + now.getSeconds() : now.getSeconds();\nvar currenttime= hh + \":\" + mmm + \":\" + ss;\nvar currentdate= dd + \".\" + mm + \".\" + yyyy;\n\nnode.status({fill:\"blue\",shape:\"ring\",text:\"Last update: \" + currentdate + \" - \" + currenttime});\n\nmsg.topic = \"pushalarm\";\nmsg.payload = ip+\"/param.cgi?cmd=pushhostalarm&-usr=\"+user+\"&-pwd=\"+password;\nreturn msg;","outputs":1,"noerr":0,"x":444,"y":1185.0000076293945,"wires":[["76a16c94.c44504"]]},{"id":"4974d032.80442","type":"string","z":"57d9f343.9e0bfc","name":"toJSON","methods":[{"name":"replaceAll","params":[{"type":"str","value":"[Succeed]set ok."},{"type":"str","value":"{ \"pushalarm\": \"triggered\" }"}]},{"name":"replaceAll","params":[{"type":"str","value":"[Error]Param error."},{"type":"str","value":"{ \"pushalarm\": \"Error\" }"}]}],"prop":"payload","propout":"payload","object":"msg","objectout":"msg","x":774,"y":1137.0000076293945,"wires":[["87969514.eb8418"]]},{"id":"87969514.eb8418","type":"json","z":"57d9f343.9e0bfc","name":"","property":"payload","action":"","pretty":false,"x":806,"y":1187.0000076293945,"wires":[["562db635.64f358","65ab8ac.5b08074","566a4c81.a52e94"]]},{"id":"562db635.64f358","type":"ui_text","z":"57d9f343.9e0bfc","group":"72ff04f9.aff27c","order":2,"width":0,"height":0,"name":"UI Alarm","label":"Alarm Push","format":"{{msg.payload.pushalarm}}","layout":"row-spread","x":1071,"y":1136,"wires":[]},{"id":"76a16c94.c44504","type":"change","z":"57d9f343.9e0bfc","name":"Set URL","rules":[{"t":"set","p":"url","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":611,"y":1134.0000076293945,"wires":[["380be9bb.93ba06"]]},{"id":"380be9bb.93ba06","type":"http request","z":"57d9f343.9e0bfc","name":"pushhostalarm","method":"GET","ret":"txt","url":"","tls":"","x":630,"y":1191.0000076293945,"wires":[["4974d032.80442"]]},{"id":"c23e9c09.8c5c8","type":"mqtt out","z":"57d9f343.9e0bfc","name":"Push Alarm","topic":"ipcam/outdoor/alarm/pushalarm","qos":"1","retain":"false","broker":"40415d07.67dd94","x":240,"y":1020,"wires":[]},{"id":"c6539a8d.a38e58","type":"ui_button","z":"57d9f343.9e0bfc","name":"Alarm","group":"72ff04f9.aff27c","order":0,"width":0,"height":0,"passthru":true,"label":"Trigger Alarm!","color":"#ffffff","bgcolor":"#f3100b","icon":"fa-bell","payload":"{\"pushalarm\" : \"triggered\"}","payloadType":"json","topic":"pushalarm","x":111,"y":1046,"wires":[["c23e9c09.8c5c8","364859b1.a8da66"]]},{"id":"65ab8ac.5b08074","type":"delay","z":"57d9f343.9e0bfc","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":794,"y":1237.0000076293945,"wires":[["276c8dc1.0accf2"]]},{"id":"276c8dc1.0accf2","type":"change","z":"57d9f343.9e0bfc","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"pushalarm\" : \"\"}","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":964,"y":1237.0000076293945,"wires":[["4e88186c.726928"]]},{"id":"3d6f3834.6cb7e8","type":"comment","z":"57d9f343.9e0bfc","name":"Trigger an Alarm","info":"","x":83,"y":942.0000076293945,"wires":[]},{"id":"566a4c81.a52e94","type":"change","z":"57d9f343.9e0bfc","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"pushalarm\" : \"triggered\"}","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":979,"y":1193.0000076293945,"wires":[["4e88186c.726928"]]},{"id":"4e88186c.726928","type":"json","z":"57d9f343.9e0bfc","name":"","property":"payload","action":"","pretty":false,"x":1134,"y":1206.0000076293945,"wires":[["562db635.64f358"]]},{"id":"dc9ed347.95fca","type":"watch","z":"57d9f343.9e0bfc","name":"","files":"/home/ftpuser/outdoorcam/","recursive":false,"x":114,"y":879.0000076293945,"wires":[["d2c73889.e2cd68"]]},{"id":"3dd30f4f.8f3ab","type":"inject","z":"57d9f343.9e0bfc","name":"Start Consumer","topic":"","payload":"start","payloadType":"str","repeat":"","crontab":"","once":true,"x":108.66666793823242,"y":248.33334350585938,"wires":[["ce29e7ef.d7b788"]]},{"id":"e498451a.07ba48","type":"inject","z":"57d9f343.9e0bfc","name":"Stop Consumer","topic":"","payload":"stop","payloadType":"str","repeat":"","crontab":"","once":false,"x":106.66666793823242,"y":356.3333396911621,"wires":[["ce29e7ef.d7b788"]]},{"id":"fdd3c35a.ac2cb","type":"file","z":"57d9f343.9e0bfc","name":"Camera Capture","filename":"/home/ftpuser/outdoorcam/jpgstream/352snap.jpg","appendNewline":false,"createDir":true,"overwriteFile":"true","x":335,"y":301.00000762939453,"wires":[[]]},{"id":"280be718.be4ae8","type":"ui_template","z":"57d9f343.9e0bfc","group":"68556ac6.22e104","name":"352p Stream","order":2,"width":"6","height":"5","format":"\n
352p Stream
\n
\n
","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":803,"y":301.00000762939453,"wires":[[]]},{"id":"9e683c5.35482c","type":"watch","z":"57d9f343.9e0bfc","name":"watch for pic","files":"/home/ftpuser/outdoorcam/jpgstream/352snap.jpg","recursive":"","x":516,"y":301,"wires":[["b48555ad.89d5f8"]]},{"id":"b48555ad.89d5f8","type":"function","z":"57d9f343.9e0bfc","name":"timestamp","func":"var d = new Date();\nvar n = d.getTime();\nmsg.payload = \"/outdoorcam/jpgstream/352snap.jpg?ts=\" + n;\nreturn msg;","outputs":1,"noerr":0,"x":653,"y":301.00000762939453,"wires":[["280be718.be4ae8"]]},{"id":"ce29e7ef.d7b788","type":"mjpg-consumer","z":"57d9f343.9e0bfc","name":"352p mjpeg","stream":"http://192.168.2.116/mjpegstream.cgi?-chn=12&-usr=admin&-pwd=1234567890","interval":"20","x":175,"y":301.00000762939453,"wires":[["fdd3c35a.ac2cb"]]},{"id":"47ca688e.965cc8","type":"comment","z":"57d9f343.9e0bfc","name":"Create JPG Videostream","info":"","x":112,"y":196,"wires":[]},{"id":"e3964a25.27ded8","type":"mqtt out","z":"57d9f343.9e0bfc","name":"Push Man Rec","topic":"ipcam/outdoor/alarm/manrec","qos":"1","retain":"false","broker":"40415d07.67dd94","x":428,"y":1067.9999923706055,"wires":[]},{"id":"364859b1.a8da66","type":"change","z":"57d9f343.9e0bfc","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\"val\" : \"alarm\"}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":257,"y":1067.9999923706055,"wires":[["e3964a25.27ded8"]]},{"id":"e2b1e5af.611c08","type":"mqtt in","z":"57d9f343.9e0bfc","name":"Push Alarm","topic":"ipcam/outdoor/alarm/pushalarm","qos":"1","broker":"40415d07.67dd94","x":80,"y":1483,"wires":[["fb1b4507.de2c58","612c667c.af2be8","f5a82c54.7412d"]]},{"id":"7fdecea.c56473","type":"ui_group","z":"","name":"Global Login","tab":"d4e8bd8e.264c6","order":1,"disp":true,"width":"6","collapse":false},{"id":"40415d07.67dd94","type":"mqtt-broker","z":"","name":"Debian Mosquitto","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"b8f4206.8bfbae","type":"ui_group","z":"","name":"FTP Server","tab":"d4e8bd8e.264c6","order":3,"disp":true,"width":"6","collapse":false},{"id":"32d3136c.be9b8c","type":"ui_group","z":"","name":"FTP Snapshot","tab":"d4e8bd8e.264c6","order":4,"disp":true,"width":"6","collapse":false},{"id":"d0f99761.e4f888","type":"ui_group","z":"","name":"Trigger Recording","tab":"d4e8bd8e.264c6","order":5,"disp":true,"width":"6","collapse":false},{"id":"c554c164.b83dc","type":"ui_group","z":"","name":"Switch Nightvision","tab":"d4e8bd8e.264c6","order":6,"disp":true,"width":"6","collapse":false},{"id":"72ff04f9.aff27c","type":"ui_group","z":"","name":"Trigger Alarm","tab":"d4e8bd8e.264c6","order":7,"disp":true,"width":"6","collapse":false},{"id":"68556ac6.22e104","type":"ui_group","z":"","name":"352p MJPEG Stream","tab":"d4e8bd8e.264c6","order":2,"disp":true,"width":"6","collapse":false},{"id":"d4e8bd8e.264c6","type":"ui_tab","z":"","name":"Alarm Recording","icon":"fa-gg","order":29}]