[{"id":"12c96c62.0f1e94","type":"mongodb out","z":"11fb55cc.40056a","mongodb":"587d6aaa.b437d4","name":"insert device","collection":"device","payonly":true,"upsert":false,"multi":false,"operation":"insert","x":411,"y":577,"wires":[]},{"id":"28cce695.46556a","type":"ui_text_input","z":"11fb55cc.40056a","name":"name","label":"name","group":"c7ec7afd.4fa698","order":1,"width":0,"height":0,"passthru":true,"mode":"text","delay":"300","topic":"name","x":428,"y":105,"wires":[["8f39667d.167308","ba24856d.8d0f98"]]},{"id":"a4f0ab2a.4332a8","type":"ui_text_input","z":"11fb55cc.40056a","name":"type","label":"type","group":"c7ec7afd.4fa698","order":2,"width":0,"height":0,"passthru":true,"mode":"text","delay":"300","topic":"type","x":430,"y":142,"wires":[["ceb8eba.440cc18","ba24856d.8d0f98"]]},{"id":"50c01500.37eebc","type":"ui_dropdown","z":"11fb55cc.40056a","name":"floor","label":"floor","group":"c7ec7afd.4fa698","order":4,"width":0,"height":0,"passthru":true,"options":[{"label":"basement","value":"basement","type":"str"},{"label":"ground","value":"ground","type":"str"},{"label":"first","value":"first","type":"str"},{"label":"second","value":"second","type":"str"}],"payload":"","topic":"floor","x":431,"y":212,"wires":[["14eb9721.d47879","2bd8df4a.a5393","ba24856d.8d0f98"]]},{"id":"8f39667d.167308","type":"debug","z":"11fb55cc.40056a","name":"device name","active":true,"console":"false","complete":"true","x":711,"y":102,"wires":[]},{"id":"ceb8eba.440cc18","type":"debug","z":"11fb55cc.40056a","name":"device type","active":true,"console":"false","complete":"true","x":716,"y":137,"wires":[]},{"id":"14eb9721.d47879","type":"debug","z":"11fb55cc.40056a","name":"device floor","active":true,"console":"false","complete":"true","x":719,"y":206,"wires":[]},{"id":"1f8f6d45.0b79a3","type":"ui_button","z":"11fb55cc.40056a","name":"register device","group":"c7ec7afd.4fa698","order":7,"width":0,"height":0,"label":"register","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"","x":403,"y":366,"wires":[["54d3fdb.34b5104"]]},{"id":"70fd9b7b.806c34","type":"ui_dropdown","z":"11fb55cc.40056a","name":"","label":"room","group":"c7ec7afd.4fa698","order":5,"width":0,"height":0,"passthru":true,"options":[{"label":"","value":"","type":"str"}],"payload":"","topic":"room","x":432,"y":284,"wires":[["c69c2c6d.6281e","ba24856d.8d0f98"]]},{"id":"84e1d0fe.fc672","type":"ui_toast","z":"11fb55cc.40056a","position":"dialog","displayTime":"3","outputs":1,"ok":"OK","cancel":"","topic":"","name":"","x":707,"y":589,"wires":[[]]},{"id":"2bd8df4a.a5393","type":"function","z":"11fb55cc.40056a","name":"return rooms for floor","func":"switch(msg.payload){\n case \"basement\":\n msg.options = [ \"basement street\",\"basement garden\" ] ;\n break;\n case \"ground\":\n msg.options = [ \"hall\", \"garage\",\"kitchen\",\"living\", \"toilet\"] ;\n break;\n case \"first\":\n msg.options = [ \"aisle 1\",\"room parents\",\"room mirko\",\n \"bathroom 1\",\"bureau\"];\n break;\n case \"second\":\n msg.options = [ \"aisle 2\",\"room jade\",\"room sterre\",\n \"bathroom 2\"];\n break;\n default:\n msg.options = [ \"Specify a floor first\" ];\n}\n\nmsg.payload=\"\";\nreturn msg;","outputs":1,"noerr":0,"x":421,"y":250,"wires":[["70fd9b7b.806c34"]]},{"id":"c9cd5bdb.ef9698","type":"comment","z":"11fb55cc.40056a","name":"register device tab","info":"","x":448,"y":65,"wires":[]},{"id":"ba24856d.8d0f98","type":"function","z":"11fb55cc.40056a","name":"store device_request info in flow context","func":"var device=flow.get('device_request')||{};\n\ndevice[msg.topic]=msg.payload;\n\nflow.set('device_request',device);\n\nmsg.payload = flow.get('device_request');\nreturn msg;","outputs":1,"noerr":0,"x":779,"y":247,"wires":[["1e4d65dc.acc11a"]]},{"id":"c69c2c6d.6281e","type":"debug","z":"11fb55cc.40056a","name":"device room","active":true,"console":"false","complete":"true","x":720,"y":286,"wires":[]},{"id":"1ddf6205.2c06de","type":"inject","z":"11fb55cc.40056a","name":"make it empty at start","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":true,"x":195,"y":123,"wires":[["28cce695.46556a","a4f0ab2a.4332a8","d0d15202.2556e","5a72556b.c6bbcc"]]},{"id":"d0d15202.2556e","type":"ui_text_input","z":"11fb55cc.40056a","name":"","label":"description","group":"c7ec7afd.4fa698","order":3,"width":"4","height":"2","passthru":true,"mode":"text","delay":300,"topic":"description","x":412,"y":176,"wires":[["3e2ff467.5fd45c","ba24856d.8d0f98"]]},{"id":"3e2ff467.5fd45c","type":"debug","z":"11fb55cc.40056a","name":"device description","active":true,"console":"false","complete":"true","x":738,"y":171,"wires":[]},{"id":"f074633.8e866a","type":"ui_dropdown","z":"11fb55cc.40056a","name":"","label":"phase","group":"c7ec7afd.4fa698","order":6,"width":0,"height":0,"passthru":true,"options":[{"label":"1","value":"phase1","type":"str"},{"label":"2","value":"phase2","type":"str"},{"label":"3","value":"phase3","type":"str"},{"label":"unknown","value":"unknown","type":"str"}],"payload":"","topic":"phase","x":430,"y":321,"wires":[["1fe7b628.1bf18a","ba24856d.8d0f98"]]},{"id":"1fe7b628.1bf18a","type":"debug","z":"11fb55cc.40056a","name":"device phase","active":true,"console":"false","complete":"true","x":730,"y":325,"wires":[]},{"id":"1e4d65dc.acc11a","type":"debug","z":"11fb55cc.40056a","name":"msg_device flow context","active":true,"console":"false","complete":"true","x":1104,"y":246,"wires":[]},{"id":"5a72556b.c6bbcc","type":"function","z":"11fb55cc.40056a","name":"reset device flow context","func":"flow.set('device_request',{});\nreturn msg;","outputs":1,"noerr":0,"x":173,"y":179,"wires":[[]]},{"id":"685d0ff8.6bb8f","type":"inject","z":"11fb55cc.40056a","name":"set unknown","topic":"","payload":"-1","payloadType":"num","repeat":"","crontab":"","once":true,"x":172,"y":319,"wires":[["f074633.8e866a"]]},{"id":"1488d388.a1dfbc","type":"function","z":"11fb55cc.40056a","name":"validate device request","func":"var notificationMsg = {};\n\nif (msg.payload > 0){\n notificationMsg.payload=\"name is already used\";\n return [ null, notificationMsg ] ;\n}\n\nmsg.payload=flow.get(\"device_request\");\n\n// check if floor is specified\nif ((! msg.payload.floor) || \n ( typeof msg.payload.floor === 'number') ||\n (msg.payload.floor.length === 0)){\n notificationMsg.payload=\"floor must be specified\";\n return [ null, notificationMsg ] ;\n}\n\n// check if room is specified\nif ((! msg.payload.room) ||\n ( typeof msg.payload.room === 'number') ||\n (msg.payload.room === \"\")){\n notificationMsg.payload=\"room must be specified\";\n return [ null, notificationMsg ] ;\n}\n\nreturn [ msg, null];","outputs":"2","noerr":0,"x":414,"y":535,"wires":[["c169bdcd.fa3ee","12c96c62.0f1e94"],["7ce77f54.bfd51","84e1d0fe.fc672"]]},{"id":"c169bdcd.fa3ee","type":"debug","z":"11fb55cc.40056a","name":"device request","active":true,"console":"false","complete":"payload","x":717,"y":514,"wires":[]},{"id":"308b7ab5.54c806","type":"inject","z":"11fb55cc.40056a","name":"ground","topic":"","payload":"ground","payloadType":"str","repeat":"","crontab":"","once":true,"x":158,"y":216,"wires":[["50c01500.37eebc"]]},{"id":"7ce77f54.bfd51","type":"debug","z":"11fb55cc.40056a","name":"notificationMsg","active":true,"console":"false","complete":"true","x":718,"y":547,"wires":[]},{"id":"c8456050.1ddae","type":"mongodb in","z":"11fb55cc.40056a","mongodb":"587d6aaa.b437d4","name":"count devices","collection":"device","operation":"count","x":411,"y":485,"wires":[["79b642fc.be614c","1488d388.a1dfbc"]]},{"id":"c445bdae.0086a","type":"function","z":"11fb55cc.40056a","name":"query same name as device request","func":"\nmsg.payload = { \"name\": msg.payload };\nreturn msg;","outputs":1,"noerr":0,"x":434,"y":445,"wires":[["c8456050.1ddae","27b233d0.f7648c"]]},{"id":"79b642fc.be614c","type":"debug","z":"11fb55cc.40056a","name":"count same name","active":true,"console":"false","complete":"payload","x":711,"y":480,"wires":[]},{"id":"54d3fdb.34b5104","type":"function","z":"11fb55cc.40056a","name":"validate device name","func":"var notificationMsg = {};\nmsg.payload = flow.get(\"device_request\").name;\n\n// check if name is specified\nif ((! msg.payload) || \n (msg.payload.length ===0) ||\n (! msg.payload.trim()) ) {\n notificationMsg.payload=\"name must be specified\";\n return [ null, notificationMsg ] ;\n}\n\n\nreturn [ msg , null]","outputs":"2","noerr":0,"x":408,"y":408,"wires":[["c445bdae.0086a","726f2c29.62c764"],["84e1d0fe.fc672"]]},{"id":"726f2c29.62c764","type":"debug","z":"11fb55cc.40056a","name":"validated name","active":true,"console":"false","complete":"payload","x":714,"y":403,"wires":[]},{"id":"27b233d0.f7648c","type":"debug","z":"11fb55cc.40056a","name":"mongo name count query","active":true,"console":"false","complete":"payload","x":744,"y":443,"wires":[]},{"id":"587d6aaa.b437d4","type":"mongodb","z":"","hostname":"192.168.1.131","port":"27017","db":"power","name":"pi3one mongodb"},{"id":"c7ec7afd.4fa698","type":"ui_group","z":"","name":"register device","tab":"95a00f4.f8f80f","disp":true,"width":"6"},{"id":"95a00f4.f8f80f","type":"ui_tab","z":"","name":"register device","icon":"dashboard","order":2}]