-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathflows_raspberrypi.json
1 lines (1 loc) · 51.4 KB
/
flows_raspberrypi.json
1
[{"id":"3c0a0ed2.d43312","type":"tab","label":"Lights","disabled":false,"info":""},{"id":"a71e4d07.0e8c","type":"tab","label":"Notifications","disabled":false,"info":""},{"id":"ccfd95df.3a33c8","type":"tab","label":"Voice","disabled":false,"info":""},{"id":"e9ffb111.cdcf5","type":"tab","label":"Google Home Assistant","disabled":false,"info":""},{"id":"7d23dd0.f7bff24","type":"tab","label":"Dashboard","disabled":false,"info":""},{"id":"abbf62a1.09674","type":"subflow","name":"day active time","info":"See if today is:\n- vacation day : betwen 12pm - 1am (next day)\n- weekday: between 8am - 9pm\n- Friday: between 8am - 1am (next day)\n- Saturday: between 12pm - 1am (next day)\n- Sunday: between 12pm - 9pm","in":[{"x":25,"y":105,"wires":[{"id":"1e4c832c.ddc76d"}]}],"out":[{"x":605,"y":15,"wires":[{"id":"65c4fa65.ba27f4","port":0}]},{"x":740,"y":90,"wires":[{"id":"29e7559f.af7baa","port":0}]},{"x":845,"y":150,"wires":[{"id":"127ae43c.742d0c","port":0}]},{"x":965,"y":225,"wires":[{"id":"faf843d8.02bc5","port":0}]}]},{"id":"33fde3ca.ede9cc","type":"server","z":"","name":"Home Assistant","url":"https://nguyenha.duckdns.org:8123","pass":"h0m3@ss"},{"id":"e123e380.21ba3","type":"ui_base","theme":{"name":"theme-dark","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":true,"reset":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":"#097479","value":"#097479","edited":false},"page-titlebar-backgroundColor":{"value":"#097479","edited":false},"page-backgroundColor":{"value":"#111111","edited":false},"page-sidebar-backgroundColor":{"value":"#000000","edited":false},"group-textColor":{"value":"#0eb8c0","edited":false},"group-borderColor":{"value":"#555555","edited":false},"group-backgroundColor":{"value":"#333333","edited":false},"widget-textColor":{"value":"#eeeeee","edited":false},"widget-backgroundColor":{"value":"#097479","edited":false},"widget-borderColor":{"value":"#333333","edited":false},"base-font":{"value":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif"}}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"86e710c7.16a08","type":"ui_tab","z":"","name":"Home","icon":"dashboard"},{"id":"7d2e627c.1838ec","type":"googlehome-config-node","z":"","ipaddress":"192.168.1.103","language":"en"},{"id":"392e22a6.2efd5e","type":"googlehome-config-node","z":"","ipaddress":"192.168.1.150","language":"en"},{"id":"93fbe4db.52e108","type":"googlehome-config-node","z":"","ipaddress":"192.168.1.156","language":"en"},{"id":"3459cfba.c5eed","type":"googlehome-config-node","z":"","ipaddress":"192.168.1.145","language":"en"},{"id":"f01b88d3.47c748","type":"googlehome-config-node","z":"","ipaddress":"192.168.1.102","language":"en"},{"id":"c82274.f40cbd9","type":"googlehome-config-node","z":"","ipaddress":"192.168.1.116","language":"en"},{"id":"fe79a800.b592e8","type":"mqtt-broker","z":"","name":"","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"69adf124.aa6e2","type":"ui_group","z":"","name":"HOME ASSISTANT","tab":"86e710c7.16a08","order":1,"disp":true,"width":"6","collapse":false},{"id":"87c51ba7.485358","type":"ui_group","z":"","name":"Weather","tab":"86e710c7.16a08","disp":true,"width":"6","collapse":false},{"id":"56f81298.70884c","type":"ui_group","z":"","name":"Switch","tab":"86e710c7.16a08","disp":true,"width":"6","collapse":false},{"id":"1d28dcb6.541c33","type":"ui_group","z":"","name":"Thermostat (Upstair)","tab":"86e710c7.16a08","order":6,"disp":true,"width":"6","collapse":false},{"id":"4552ab7e.6e46d4","type":"google-credentials","z":"","displayName":"Duyen Le"},{"id":"eeee9c9f.3c5ee","type":"google-credentials","z":"","displayName":"Vu Nguyen (Blue Light Pictures)"},{"id":"a8c579a7.9206b8","type":"server-state-changed","z":"3c0a0ed2.d43312","name":"Hallway downstair","server":"33fde3ca.ede9cc","entityidfilter":"sensor.hallwaydownstair_motion_sensor","entityidfiltertype":"exact","haltifstate":"","x":106,"y":66,"wires":[["6c73eda8.f29d24"]]},{"id":"6c73eda8.f29d24","type":"switch","z":"3c0a0ed2.d43312","name":"detects motion","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"inactive","vt":"str"},{"t":"eq","v":"active","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":297,"y":64,"wires":[["408d1e80.fdfc2"],["17b9a4be.13651b"]]},{"id":"b9877d6c.07b89","type":"api-call-service","z":"3c0a0ed2.d43312","name":"Turns Hallway To Garage Light ON","server":"33fde3ca.ede9cc","service_domain":"light","service":"turn_on","data":"{ \"entity_id\": \"light.mqtt_hallway_to_garage_light\" }","mergecontext":"","x":600,"y":100,"wires":[[]]},{"id":"68c313d9.cfd92c","type":"api-call-service","z":"3c0a0ed2.d43312","name":"Hallway to Garage Light OFF","server":"33fde3ca.ede9cc","service_domain":"light","service":"turn_off","data":"{ \"entity_id\" : \"light.mqtt_hallway_to_garage_light\" }","mergecontext":"","x":1120,"y":140,"wires":[["c9026be3.fef0a8"]]},{"id":"48613679.6d82b8","type":"server-state-changed","z":"3c0a0ed2.d43312","name":"Door to Garage","server":"33fde3ca.ede9cc","entityidfilter":"sensor.door_to_garage","entityidfiltertype":"exact","haltifstate":"","x":95,"y":121,"wires":[["ed35a0a6.20c1a"]]},{"id":"ed35a0a6.20c1a","type":"switch","z":"3c0a0ed2.d43312","name":"opens or closes","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"open","vt":"str"},{"t":"eq","v":"closed","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":298,"y":122,"wires":[["17b9a4be.13651b"],["6ed09a59.8c7e34"]]},{"id":"a34842b3.c8894","type":"server-state-changed","z":"3c0a0ed2.d43312","name":"Theater Room Sensor","server":"33fde3ca.ede9cc","entityidfilter":"sensor.theater_room_motion_sensor","entityidfiltertype":"exact","haltifstate":"","x":114,"y":255,"wires":[["975f16cc.04f208"]]},{"id":"975f16cc.04f208","type":"switch","z":"3c0a0ed2.d43312","name":"motion","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"active","vt":"str"},{"t":"eq","v":"inactive","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":279,"y":255,"wires":[["7a26c89d.4f9ab8"],["15e6c0f0.5f57df"]]},{"id":"7a26c89d.4f9ab8","type":"api-current-state","z":"3c0a0ed2.d43312","name":"if Light OFF?","server":"33fde3ca.ede9cc","halt_if":"on","entity_id":"light.mqtt_theater_room_light","x":418,"y":202,"wires":[["bc5c2105.32619"]]},{"id":"bc5c2105.32619","type":"api-current-state","z":"3c0a0ed2.d43312","name":"if not watching","server":"33fde3ca.ede9cc","halt_if":"Watch movie","entity_id":"sensor.theater_room","x":585,"y":202,"wires":[["de0c1e88.1e4ae"]]},{"id":"65c4fa65.ba27f4","type":"time-range-switch","z":"abbf62a1.09674","name":"","lat":"32.98935","lon":"-96.59443","startTime":"12:00:00","endTime":"25:00:00","startOffset":0,"endOffset":0,"x":420,"y":30,"wires":[[],[]],"outputLabels":["true","false"]},{"id":"2506f516.30f18a","type":"switch","z":"abbf62a1.09674","name":"vacation day","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":205,"y":105,"wires":[["65c4fa65.ba27f4"],["6f13dadc.cb0d74"]]},{"id":"6f13dadc.cb0d74","type":"weekday","z":"abbf62a1.09674","name":"weekday","sun":false,"mon":true,"tue":true,"wed":true,"thu":true,"fri":false,"sat":false,"x":330,"y":315,"wires":[["29e7559f.af7baa"],["136cb79f.465af8"]]},{"id":"29e7559f.af7baa","type":"time-range-switch","z":"abbf62a1.09674","name":"","lat":"32.98935","lon":"-96.59443","startTime":"08:00:00","endTime":"21:00:00","startOffset":0,"endOffset":0,"x":510,"y":105,"wires":[[],[]]},{"id":"aebb45e.b0cb0b8","type":"api-call-service","z":"3c0a0ed2.d43312","name":"Turn Light ON","server":"33fde3ca.ede9cc","service_domain":"light","service":"turn_on","data":"{ \"entity_id\": \"light.mqtt_theater_room_light\",\"brightness_pct\": \"100\" }","mergecontext":"","x":1263,"y":199,"wires":[[]]},{"id":"c6268f7a.1e162","type":"api-current-state","z":"3c0a0ed2.d43312","name":"if Light currently ON","server":"33fde3ca.ede9cc","halt_if":"off","entity_id":"light.mqtt_theater_room_light","x":460,"y":370,"wires":[["cfe0152a.b52898"]]},{"id":"cfe0152a.b52898","type":"api-call-service","z":"3c0a0ed2.d43312","name":"Turn Light OFF","server":"33fde3ca.ede9cc","service_domain":"light","service":"turn_off","data":"{ \"entity_id\":\"light.mqtt_theater_room_light\" }","mergecontext":"","x":1117,"y":367,"wires":[[]]},{"id":"136cb79f.465af8","type":"weekday","z":"abbf62a1.09674","name":"Saturday","sun":false,"mon":false,"tue":false,"wed":false,"thu":false,"fri":false,"sat":true,"x":495,"y":345,"wires":[["65c4fa65.ba27f4"],["e578b9ac.bedbd8"]]},{"id":"e578b9ac.bedbd8","type":"weekday","z":"abbf62a1.09674","name":"Friday","sun":false,"mon":false,"tue":false,"wed":false,"thu":false,"fri":true,"sat":false,"x":650,"y":360,"wires":[["127ae43c.742d0c"],["f3dde7a9.f64458"]]},{"id":"127ae43c.742d0c","type":"time-range-switch","z":"abbf62a1.09674","name":"","lat":"32.98935","lon":"-96.59443","startTime":"08:00:00","endTime":"25:00:00","startOffset":0,"endOffset":0,"x":615,"y":165,"wires":[[],[]]},{"id":"f3dde7a9.f64458","type":"weekday","z":"abbf62a1.09674","name":"Sunday","sun":true,"mon":false,"tue":false,"wed":false,"thu":false,"fri":false,"sat":false,"x":810,"y":390,"wires":[["faf843d8.02bc5"],[]]},{"id":"faf843d8.02bc5","type":"time-range-switch","z":"abbf62a1.09674","name":"","lat":"32.98935","lon":"-96.59443","startTime":"12:00:00","endTime":"21:00:00","startOffset":0,"endOffset":0,"x":765,"y":225,"wires":[[],[]]},{"id":"56d800aa.db05e","type":"server-state-changed","z":"a71e4d07.0e8c","name":"when Dustin","server":"33fde3ca.ede9cc","entityidfilter":"device_tracker.dustin972_dustingalaxy7","entityidfiltertype":"exact","haltifstate":"","x":88,"y":29,"wires":[["c4ff5441.e2ae38","85645c6d.0f345"]]},{"id":"c4ff5441.e2ae38","type":"switch","z":"a71e4d07.0e8c","name":"is HOME","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"home","vt":"str"}],"checkall":"false","repair":false,"outputs":1,"x":691,"y":95,"wires":[["6274ceaa.c3dfc"]]},{"id":"cc943ae.87c9ac8","type":"server-state-changed","z":"a71e4d07.0e8c","name":"If Trash Day is in","server":"33fde3ca.ede9cc","entityidfilter":"sensor.until_trash_day","entityidfiltertype":"substring","haltifstate":"","x":100,"y":356,"wires":[["9bde61e9.56de8"]]},{"id":"24a2bffd.96629","type":"looptimer","z":"a71e4d07.0e8c","duration":"30","units":"Minute","maxloops":"6","maxtimeout":"1","maxtimeoutunits":"Minute","name":"","x":617,"y":319,"wires":[["627121ad.67ac5"],[]]},{"id":"9bde61e9.56de8","type":"switch","z":"a71e4d07.0e8c","name":"1 day","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"str"}],"checkall":"false","repair":false,"outputs":1,"x":262,"y":360,"wires":[["3a90a572.055eca"]]},{"id":"6274ceaa.c3dfc","type":"stoptimer","z":"a71e4d07.0e8c","duration":"30","units":"Second","payloadtype":"str","payloadval":"","name":"wait for 30 sec","x":867,"y":92,"wires":[["d4bbed2.d96471"],[]]},{"id":"b2da11c1.1e71c","type":"change","z":"a71e4d07.0e8c","name":"Send a reminder to bring out the trash to","rules":[{"t":"set","p":"merge2data","pt":"flow","to":"{\"message\":\"Trash day is tomorrow. Bring out the trash can!\"}","tot":"json"},{"t":"set","p":"payload","pt":"msg","to":"Trash day is tomorrow. Bring out the trash can!","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":925,"y":320,"wires":[["5abd3177.713eb"]]},{"id":"5d02def3.1612a","type":"inject","z":"a71e4d07.0e8c","name":"Test \"welcome home\"","topic":"","payload":"Home","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":509,"y":21,"wires":[["c4ff5441.e2ae38"]]},{"id":"b8e19ff7.ae46e","type":"inject","z":"a71e4d07.0e8c","name":"Test \"Trash Day Reminder\"","topic":"","payload":"1","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":153,"y":423,"wires":[["9bde61e9.56de8"]]},{"id":"d7ceaea1.ee1c1","type":"api-call-service","z":"3c0a0ed2.d43312","name":"Turn Light On DIMMED","server":"33fde3ca.ede9cc","service_domain":"light","service":"turn_on","data":"{ \"entity_id\":\"light.mqtt_theater_room_light\", \"transition\":\"40\", \"brightness\":\"5\" }","mergecontext":"","x":794,"y":435,"wires":[[]]},{"id":"57d75ffc.0ee76","type":"api-current-state","z":"a71e4d07.0e8c","name":"check if door to garage has been open","server":"33fde3ca.ede9cc","halt_if":"","entity_id":"sensor.door_to_garage","x":468,"y":574,"wires":[["20cf76a.4d95a8a"]]},{"id":"20cf76a.4d95a8a","type":"function","z":"a71e4d07.0e8c","name":"more than 5 minutes? Then send a msg to","func":"var newMsg;\nif (msg.payload == 'open') {\n var date = Math.round((new Date().getTime())/1000);\n var changed = Math.round((new Date(msg.data.last_changed).getTime())/1000);\n if (date - changed > 300) {\n newMsg = {payload: \"Door to the Garage has been opened for over 5 minutes. Please close it!\"}\n }\n}\nreturn newMsg;","outputs":1,"noerr":0,"x":931,"y":572,"wires":[["5abd3177.713eb"]]},{"id":"83b3e43.fc9bf18","type":"inject","z":"a71e4d07.0e8c","name":"Every minute","topic":"","payload":"Checking Door to Garage","payloadType":"str","repeat":"60","crontab":"","once":true,"onceDelay":"15","x":128,"y":574,"wires":[["57d75ffc.0ee76"]]},{"id":"a3453dc0.6d7b3","type":"server-state-changed","z":"a71e4d07.0e8c","name":"","server":"33fde3ca.ede9cc","entityidfilter":"cover.main_garage","entityidfiltertype":"exact","haltifstate":"","x":157,"y":628,"wires":[["ed32e20b.cbf4b"]]},{"id":"ba3254c1.502668","type":"function","z":"a71e4d07.0e8c","name":"send announcement of garage's state to","func":"var newMsg;\nif (msg.payload == 'open') {\n newMsg = {payload: \"Garage is open\"};\n node.status({fill:\"green\",shape:\"dot\",\n text:msg.payload + \" - \" + new Date()})\n} else {\n newMsg = {payload: \"Garage is closed\"};\n node.status({fill:\"red\",shape:\"dot\",\n text:msg.payload + \" - \" + new Date()})\n}\nreturn newMsg;","outputs":1,"noerr":0,"x":931,"y":621,"wires":[["5abd3177.713eb"]]},{"id":"d0c2ec3c.3f449","type":"http in","z":"ccfd95df.3a33c8","name":"Ask Google Assistant: Check my garage","url":"/checkgarage","method":"post","upload":false,"swaggerDoc":"","x":173,"y":74,"wires":[["b98cfaf.44d6d08"]]},{"id":"b98cfaf.44d6d08","type":"api-current-state","z":"ccfd95df.3a33c8","name":"get current state of Garage Door","server":"33fde3ca.ede9cc","halt_if":"","entity_id":"cover.garage_door","x":484,"y":75,"wires":[["b5949d3c.00a6"]]},{"id":"b5949d3c.00a6","type":"function","z":"ccfd95df.3a33c8","name":"Send \"Garage is Open\" or \"Garage is Closed\" message to","func":"if (msg.payload == \"open\") {\n msg.payload = \"Garage is open\";\n} else {\n msg.payload = \"Garage is closed\";\n}\nreturn msg;","outputs":1,"noerr":0,"x":944,"y":75,"wires":[["a06092b9.0a09b"]]},{"id":"2bce5f91.14ee3","type":"comment","z":"ccfd95df.3a33c8","name":"IFTTT -> Google Assistant -> Node-Red -> HA -> Google Home","info":"Phrase: Check my garage\nResponse: Ok Checking","x":243,"y":28,"wires":[]},{"id":"a6c057fd.b3c028","type":"http in","z":"ccfd95df.3a33c8","name":"Ask Google Assistant: Where's my Dustin?","url":"finddustin","method":"post","upload":false,"swaggerDoc":"","x":174,"y":119,"wires":[["6bb40d83.c03104"]]},{"id":"7109d3f4.4504dc","type":"api-current-state","z":"ccfd95df.3a33c8","name":"check location sensor in Home Assistant","server":"33fde3ca.ede9cc","halt_if":"","entity_id":"sensor.person","x":815,"y":168,"wires":[["bc7bdf0c.8f262"]]},{"id":"6bb40d83.c03104","type":"function","z":"ccfd95df.3a33c8","name":"retrieving location sensor","func":"msg.payload.entity_id = \"sensor.\" + msg.payload.person;\nreturn msg;","outputs":1,"noerr":0,"x":515,"y":168,"wires":[["1545de8e.eef771","7109d3f4.4504dc"]]},{"id":"bc7bdf0c.8f262","type":"function","z":"ccfd95df.3a33c8","name":"Send result to ","func":"var person = flow.get(\"person\");\nvar who = \"he\";\nif (person == 'duyen') {\n who = \"she\";\n}\n\nvar now = Math.round((new Date().getTime())/1000);\nvar past = Math.round((new Date(msg.data.last_changed).getTime())/1000);\nvar seconds = now - past;\nvar days = Math.floor(seconds / (24*60*60));\n seconds -= days * (24*60*60);\n var hours = Math.floor(seconds / (60*60));\n seconds -= hours * (60*60);\n var minutes = Math.floor(seconds / (60));\n seconds -= minutes * (60);\nvar sinceWhen = ((0<days)?(days+\" day, \"):\"\")+hours+\" hours, \"+minutes+\" minutes and \"+seconds+\" seconds\";\nmsg.payload = \"I found \" + person +\". \"+ who +\" is at \" + msg.payload + \" for about \" + sinceWhen;\nreturn msg;","outputs":1,"noerr":0,"x":1072,"y":169,"wires":[["a06092b9.0a09b"]]},{"id":"6ed09a59.8c7e34","type":"stoptimer","z":"3c0a0ed2.d43312","duration":"30","units":"Second","payloadtype":"num","payloadval":"0","name":"","x":570,"y":160,"wires":[["30a2294.14735d6"],[]]},{"id":"aa30e060.0c89e","type":"http in","z":"ccfd95df.3a33c8","name":"Ask Google Assistant: where's my wife?","url":"findwife","method":"post","upload":false,"swaggerDoc":"","x":162,"y":162,"wires":[["6bb40d83.c03104"]]},{"id":"1545de8e.eef771","type":"function","z":"ccfd95df.3a33c8","name":"Save person value in flow property","func":"if (msg.payload.person == \"duyen\") {\n flow.set(\"person\",\"yien lee\");\n} else {\n flow.set(\"person\",msg.payload.person + \" nguyen\");\n}\nreturn msg;","outputs":1,"noerr":0,"x":801,"y":241,"wires":[[]]},{"id":"59cd8fb2.3ed5a","type":"http in","z":"ccfd95df.3a33c8","name":"Ask Google Assistant: Where's my dillion?","url":"finddillion","method":"post","upload":false,"swaggerDoc":"","x":175,"y":207,"wires":[["6bb40d83.c03104"]]},{"id":"d7802ab5.f53688","type":"http in","z":"ccfd95df.3a33c8","name":"Ask Google Assistant: where's daddy, where's Vu","url":"findperson","method":"post","upload":false,"swaggerDoc":"","x":195,"y":252,"wires":[["6bb40d83.c03104"]]},{"id":"6538e076.ec41f","type":"switch","z":"3c0a0ed2.d43312","name":"No","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1114,"y":199,"wires":[["aebb45e.b0cb0b8"]]},{"id":"4611b2fe.9d47dc","type":"googlehome-notify","z":"e9ffb111.cdcf5","server":"7d2e627c.1838ec","name":"Google Home Kitchen Notifier","x":531,"y":76,"wires":[]},{"id":"4aa5be7a.0b5cf","type":"googlehome-notify","z":"e9ffb111.cdcf5","server":"392e22a6.2efd5e","name":"Office Google Home","x":501,"y":147,"wires":[]},{"id":"941ae721.2d3fd8","type":"googlehome-notify","z":"e9ffb111.cdcf5","server":"93fbe4db.52e108","name":"Master Bedroom Google Home","x":535,"y":210,"wires":[]},{"id":"51e85e12.8ac29","type":"googlehome-notify","z":"e9ffb111.cdcf5","server":"3459cfba.c5eed","name":"Dillion Room Google Home","x":525,"y":285,"wires":[]},{"id":"1639fc95.d466f3","type":"googlehome-notify","z":"e9ffb111.cdcf5","server":"f01b88d3.47c748","name":"Theater Room Google Home","x":528,"y":352,"wires":[]},{"id":"c1e39a00.6e8528","type":"googlehome-notify","z":"e9ffb111.cdcf5","server":"c82274.f40cbd9","name":"Dustin Room Google Home","x":527,"y":420,"wires":[]},{"id":"50810e59.e6e68","type":"link in","z":"e9ffb111.cdcf5","name":"Google Home Notifier","links":["a06092b9.0a09b","5abd3177.713eb","4ae81ef9.96d9e","6db6b655.dfe7d8","a9078012.26523","7536bde6.512634","495d580e.ffcff8"],"x":180,"y":285,"wires":[["4611b2fe.9d47dc","4aa5be7a.0b5cf","941ae721.2d3fd8","51e85e12.8ac29","1639fc95.d466f3","c1e39a00.6e8528"]]},{"id":"a06092b9.0a09b","type":"link out","z":"ccfd95df.3a33c8","name":"","links":["50810e59.e6e68"],"x":1210,"y":121,"wires":[]},{"id":"5abd3177.713eb","type":"link out","z":"a71e4d07.0e8c","name":"Google Home Assistant","links":["50810e59.e6e68"],"x":1243,"y":319,"wires":[]},{"id":"e3f58172.59a67","type":"server-state-changed","z":"a71e4d07.0e8c","name":"When back door","server":"33fde3ca.ede9cc","entityidfilter":"sensor.back_door","entityidfiltertype":"substring","haltifstate":"","x":100,"y":469,"wires":[["20108709.3d1b78"]]},{"id":"2e628ba4.a3f974","type":"stoptimer","z":"a71e4d07.0e8c","duration":"10","units":"Second","payloadtype":"num","payloadval":"0","name":"wait for 10 seconds","x":631,"y":490,"wires":[["c03bc531.d9bec8"],[]]},{"id":"c03bc531.d9bec8","type":"function","z":"a71e4d07.0e8c","name":"send notification to","func":"var newMsg;\nvar door;\nif (msg.data.entity_id == \"sensor.back_door\") {\n door = \"Back Door\";\n} else if (msg.data.entity_id == \"sensor.front_door\") {\n door = \"Front Door\";\n}\nnewMsg = {payload: door + \" is \" + msg.payload};\n\nreturn newMsg;","outputs":1,"noerr":0,"x":920.6667022705078,"y":483.22221755981445,"wires":[["5abd3177.713eb"]]},{"id":"50b9a87d.804068","type":"server-state-changed","z":"a71e4d07.0e8c","name":"When front door","server":"33fde3ca.ede9cc","entityidfilter":"sensor.front_door","entityidfiltertype":"substring","haltifstate":"","x":99,"y":522,"wires":[["20108709.3d1b78"]]},{"id":"ed32e20b.cbf4b","type":"stoptimer","z":"a71e4d07.0e8c","duration":"2","units":"Second","payloadtype":"num","payloadval":"0","name":"","x":415.22222900390625,"y":614.5555400848389,"wires":[["a5339ea7.4b3c7"],[]]},{"id":"a5339ea7.4b3c7","type":"api-current-state","z":"a71e4d07.0e8c","name":"Check Garage state","server":"33fde3ca.ede9cc","halt_if":"","entity_id":"cover.main_garage","x":630,"y":622,"wires":[["ba3254c1.502668"]]},{"id":"de0c1e88.1e4ae","type":"subflow:abbf62a1.09674","z":"3c0a0ed2.d43312","name":"during active time","x":772,"y":201,"wires":[["ea77837.5018a8"],["ea77837.5018a8"],["ea77837.5018a8"],["ea77837.5018a8"]]},{"id":"20108709.3d1b78","type":"switch","z":"a71e4d07.0e8c","name":"detects motion","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"open","vt":"str"},{"t":"eq","v":"closed","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":300,"y":480,"wires":[["ad2095c6.742848"],[]]},{"id":"4d0125a.41de5dc","type":"inject","z":"a71e4d07.0e8c","name":"Swim class reminder (Tue)","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"*/10 17 * * 2","once":false,"onceDelay":0.1,"x":159,"y":708,"wires":[["33b54b0.1aa74b6"]]},{"id":"fb1c891d.c24d98","type":"change","z":"a71e4d07.0e8c","name":"send a msg to","rules":[{"t":"set","p":"payload","pt":"msg","to":"Dillion's swim class starts at 6pm today! Please get ready!","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":955,"y":729,"wires":[["5abd3177.713eb"]]},{"id":"408d1e80.fdfc2","type":"stoptimer","z":"3c0a0ed2.d43312","duration":"30","units":"Second","payloadtype":"num","payloadval":"0","name":"","x":890,"y":40,"wires":[["30a2294.14735d6"],[]]},{"id":"eaa95099.be36","type":"mqtt in","z":"3c0a0ed2.d43312","name":"Received Plex mqtt","topic":"tautulli/plex","qos":"2","broker":"fe79a800.b592e8","x":109,"y":529,"wires":[["810f5845.1aa178"]]},{"id":"810f5845.1aa178","type":"json","z":"3c0a0ed2.d43312","name":"","property":"payload","action":"","pretty":false,"x":149,"y":473,"wires":[["ba5f07b1.606758"]]},{"id":"ba5f07b1.606758","type":"function","z":"3c0a0ed2.d43312","name":"Extract \"action\"","func":"var newMsg = {payload: msg.payload.body};\nreturn newMsg;","outputs":1,"noerr":0,"x":121,"y":422,"wires":[["cc7f44db.30c4b8"]]},{"id":"cc7f44db.30c4b8","type":"switch","z":"3c0a0ed2.d43312","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"play","vt":"str"},{"t":"eq","v":"resume","vt":"str"},{"t":"eq","v":"pause","vt":"str"}],"checkall":"false","repair":false,"outputs":3,"x":274,"y":423,"wires":[["c6268f7a.1e162"],["c6268f7a.1e162"],["d7ceaea1.ee1c1"]]},{"id":"ea77837.5018a8","type":"api-current-state","z":"3c0a0ed2.d43312","name":"is it nap time?","server":"33fde3ca.ede9cc","halt_if":"","entity_id":"input_boolean.nap_time","x":967,"y":199,"wires":[["6538e076.ec41f"]]},{"id":"627121ad.67ac5","type":"subflow:abbf62a1.09674","z":"a71e4d07.0e8c","name":"during active time","x":734,"y":407,"wires":[["b2da11c1.1e71c"],["b2da11c1.1e71c"],["b2da11c1.1e71c"],["b2da11c1.1e71c"]]},{"id":"236a264f.7f3fca","type":"function","z":"7d23dd0.f7bff24","name":"Current Date/Time","func":"msg = {payload: new Date(msg.payload)};\n\nreturn msg;","outputs":1,"noerr":0,"x":263,"y":88,"wires":[["68e507ba.599678","c83cf556.b2f938","9548bd.5d78474"]]},{"id":"2de07d8.6cddd82","type":"inject","z":"7d23dd0.f7bff24","name":"init","topic":"","payload":"","payloadType":"date","repeat":"60","crontab":"","once":true,"onceDelay":"10","x":103,"y":88,"wires":[["236a264f.7f3fca"]]},{"id":"c83cf556.b2f938","type":"ui_text","z":"7d23dd0.f7bff24","group":"69adf124.aa6e2","order":0,"width":"6","height":"1","name":"","label":"Time:","format":"{{msg.payload | date:\"shortTime\"}}","layout":"row-spread","x":433,"y":43,"wires":[]},{"id":"68e507ba.599678","type":"ui_text","z":"7d23dd0.f7bff24","group":"69adf124.aa6e2","order":0,"width":"6","height":"1","name":"","label":"Date:","format":"{{msg.payload | date}}","layout":"row-spread","x":433,"y":133,"wires":[]},{"id":"9548bd.5d78474","type":"api-current-state","z":"7d23dd0.f7bff24","name":"","server":"33fde3ca.ede9cc","halt_if":"","entity_id":"sensor.dark_sky_daily_summary","x":563,"y":88,"wires":[["4f2ea3fc.0eda5c"]]},{"id":"4f2ea3fc.0eda5c","type":"ui_text","z":"7d23dd0.f7bff24","group":"87c51ba7.485358","order":0,"width":"6","height":"2","name":"Weather Summary","label":"Summary","format":"{{msg.payload}}","layout":"col-center","x":848,"y":88,"wires":[]},{"id":"da5d0182.b539b","type":"ui_switch","z":"7d23dd0.f7bff24","name":"","label":"Nap Time","group":"56f81298.70884c","order":0,"width":"6","height":"1","passthru":true,"decouple":"false","topic":"","style":"","onvalue":"on","onvalueType":"str","onicon":"","oncolor":"","offvalue":"off","offvalueType":"str","officon":"","offcolor":"","x":390,"y":230,"wires":[["7f8ef890.7c3b18"]]},{"id":"2c5a9159.43815e","type":"api-call-service","z":"7d23dd0.f7bff24","name":"","server":"33fde3ca.ede9cc","service_domain":"input_boolean","service":"turn_off","data":"{\"entity_id\":\"input_boolean.nap_time\"}","mergecontext":"","x":749,"y":254,"wires":[[]]},{"id":"7f8ef890.7c3b18","type":"switch","z":"7d23dd0.f7bff24","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":521,"y":230,"wires":[["faeacbcb.27deb8"],["2c5a9159.43815e"]]},{"id":"1e4c832c.ddc76d","type":"api-current-state","z":"abbf62a1.09674","name":"IS this during vacation","server":"33fde3ca.ede9cc","halt_if":"","entity_id":"input_boolean.vacation_time_mode","x":130,"y":180,"wires":[["2506f516.30f18a"]]},{"id":"dd80ef0.290481","type":"server-state-changed","z":"a71e4d07.0e8c","name":"when Dillion","server":"33fde3ca.ede9cc","entityidfilter":"device_tracker.dillion972_hungsamsung","entityidfiltertype":"exact","haltifstate":"","x":82,"y":115,"wires":[["c4ff5441.e2ae38","5ab543c3.30c9dc"]]},{"id":"a966139f.c37a1","type":"looptimer","z":"a71e4d07.0e8c","duration":"15","units":"Minute","maxloops":"2","maxtimeout":"1","maxtimeoutunits":"Minute","name":"","x":675,"y":735,"wires":[["fb1c891d.c24d98"],[]]},{"id":"33b54b0.1aa74b6","type":"time-range-switch","z":"a71e4d07.0e8c","name":"","lat":"32.98935","lon":"-96.59443","startTime":"17:15","endTime":"17:45","startOffset":0,"endOffset":0,"x":401,"y":708,"wires":[["a966139f.c37a1"],[]],"outputLabels":["true","false"]},{"id":"1c0e4d8e.dd6a62","type":"inject","z":"3c0a0ed2.d43312","name":"Everyday","topic":"","payload":"Checking livingroom_lights","payloadType":"str","repeat":"600","crontab":"","once":true,"onceDelay":"10","x":118,"y":724,"wires":[["a8923bd2.84c678"]]},{"id":"14e7438e.e74ecc","type":"switch","z":"3c0a0ed2.d43312","name":"is OFF","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"off","vt":"str"}],"checkall":"false","repair":false,"outputs":1,"x":1108,"y":658,"wires":[["15578e0d.119862"]]},{"id":"15578e0d.119862","type":"api-call-service","z":"3c0a0ed2.d43312","name":"then turn them ON","server":"33fde3ca.ede9cc","service_domain":"light","service":"turn_on","data":"{\"entity_id\":\"light.living_room_lights\", \"brightness\":\"20\"}","mergecontext":"","x":1306,"y":659,"wires":[[]]},{"id":"363aa32a.e2a7dc","type":"api-call-service","z":"3c0a0ed2.d43312","name":"then turn them OFF","server":"33fde3ca.ede9cc","service_domain":"light","service":"turn_off","data":"{\"entity_id\":\"light.living_room_lights\"}","mergecontext":"","x":1302,"y":711,"wires":[[]]},{"id":"6847aac7.82d514","type":"comment","z":"3c0a0ed2.d43312","name":"Livingroom Lights","info":"","x":104,"y":663,"wires":[]},{"id":"727e36b3.a414d8","type":"comment","z":"3c0a0ed2.d43312","name":"Theater Room Light","info":"","x":106,"y":209,"wires":[]},{"id":"2610038e.a21f4c","type":"time-range-switch","z":"3c0a0ed2.d43312","name":"","lat":"32.98935","lon":"-96.59441","startTime":"20:00","endTime":"22:00","startOffset":0,"endOffset":0,"x":673,"y":597,"wires":[["7d430dc6.3de9f4"],["27249924.0674a6"]]},{"id":"27249924.0674a6","type":"api-current-state","z":"3c0a0ed2.d43312","name":"if Living Room Lights","server":"33fde3ca.ede9cc","halt_if":"","entity_id":"light.living_room_lights","x":943,"y":711,"wires":[["83f5cc09.9318"]]},{"id":"83f5cc09.9318","type":"switch","z":"3c0a0ed2.d43312","name":"is ON","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"}],"checkall":"false","repair":false,"outputs":1,"x":1112,"y":710,"wires":[["363aa32a.e2a7dc"]]},{"id":"a8923bd2.84c678","type":"api-current-state","z":"3c0a0ed2.d43312","name":"","server":"33fde3ca.ede9cc","halt_if":"","entity_id":"input_boolean.living_room_light_automation","x":290,"y":824,"wires":[["6d7b4566.d811fc","8305d307.fec17"]]},{"id":"6d7b4566.d811fc","type":"switch","z":"3c0a0ed2.d43312","name":"on","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":597,"y":915,"wires":[["ef6aebf3.7d4548","559d4747.40f618"]]},{"id":"8305d307.fec17","type":"debug","z":"3c0a0ed2.d43312","name":"","active":false,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","x":377,"y":747,"wires":[]},{"id":"710dc990.364048","type":"api-current-state","z":"7d23dd0.f7bff24","name":"Nap Time","server":"33fde3ca.ede9cc","halt_if":"","entity_id":"input_boolean.nap_time","x":240,"y":230,"wires":[["da5d0182.b539b"]]},{"id":"ef94e3d4.73453","type":"inject","z":"7d23dd0.f7bff24","name":"init","topic":"","payload":"","payloadType":"date","repeat":"60","crontab":"","once":true,"onceDelay":"10","x":103,"y":212,"wires":[["710dc990.364048"]]},{"id":"3dfb7ef8.fb1482","type":"server-state-changed","z":"7d23dd0.f7bff24","name":"input","server":"33fde3ca.ede9cc","entityidfilter":"input_boolean.nap_time","entityidfiltertype":"exact","haltifstate":"","x":103,"y":246,"wires":[["710dc990.364048"]]},{"id":"779aad77.557504","type":"ui_gauge","z":"7d23dd0.f7bff24","name":"Upstair","group":"1d28dcb6.541c33","order":0,"width":"6","height":"4","gtype":"gage","title":"Current Temperature","label":"{{msg.unit}}","format":"{{value}}","min":"65","max":"85","colors":["#00b500","#e6e600","#ca3838"],"seg1":"73","seg2":"75","x":990,"y":495,"wires":[]},{"id":"a35ad920.ed72f8","type":"server-state-changed","z":"7d23dd0.f7bff24","name":"state","server":"33fde3ca.ede9cc","entityidfilter":"climate.upstairs","entityidfiltertype":"exact","haltifstate":"","x":103,"y":578,"wires":[["15e65160.de1eef"]]},{"id":"15e65160.de1eef","type":"api-current-state","z":"7d23dd0.f7bff24","name":"climate upstairs","server":"33fde3ca.ede9cc","halt_if":"","entity_id":"climate.upstairs","x":250,"y":561,"wires":[["e67960d7.c668f","e0097f1f.a0109"]]},{"id":"e67960d7.c668f","type":"function","z":"7d23dd0.f7bff24","name":"store data and currentMode on \"flow\"","func":"flow.set(\"data\", msg.data);\nnewMsg = { payload: msg.data.attributes.operation_mode };\nif (msg.data.attributes.operation_mode == 'auto') {\n flow.set(\"currentMode\", \"autoOn\");\n} else {\n flow.set(\"currentMode\", msg.data.attributes.operation_mode);\n}\nreturn newMsg;","outputs":1,"noerr":0,"x":489,"y":505,"wires":[["9613f92.d500908"]]},{"id":"9613f92.d500908","type":"switch","z":"7d23dd0.f7bff24","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"cool","vt":"str"},{"t":"eq","v":"heat","vt":"str"},{"t":"eq","v":"auto","vt":"str"}],"checkall":"true","repair":false,"outputs":3,"x":603.8888702392578,"y":626.4444389343262,"wires":[["75cb5fea.1202b","4cab94e8.fbd60c"],["75cb5fea.1202b","4cab94e8.fbd60c"],["b0ee7574.306af8","75cb5fea.1202b","381815da.8ba4da"]]},{"id":"8989d1f9.30e67","type":"inject","z":"7d23dd0.f7bff24","name":"init","topic":"","payload":"","payloadType":"date","repeat":"60","crontab":"","once":true,"onceDelay":"10","x":104,"y":541,"wires":[["15e65160.de1eef"]]},{"id":"b0ee7574.306af8","type":"function","z":"7d23dd0.f7bff24","name":"disable","func":"msg.enabled = false;\nreturn msg;","outputs":1,"noerr":0,"x":794.1110916137695,"y":647.1111125946045,"wires":[["779aad77.557504","f0c04143.35b79"]]},{"id":"c8bd7a5b.543d98","type":"ui_gauge","z":"7d23dd0.f7bff24","name":"","group":"1d28dcb6.541c33","order":0,"width":0,"height":0,"gtype":"gage","title":"Target Temperature","label":"{{msg.unit}}","format":"{{value}}","min":"0","max":"90","colors":["#00b500","#e6e600","#ca3838"],"seg1":"70","seg2":"80","x":1409,"y":635,"wires":[]},{"id":"6b928f4b.e639d","type":"ui_slider","z":"7d23dd0.f7bff24","name":"","label":"Max","group":"1d28dcb6.541c33","order":0,"width":"6","height":"1","passthru":true,"topic":"","min":"60","max":"90","step":1,"x":1081,"y":763,"wires":[["4e1a10b.b9c6ff"]]},{"id":"c5f08d82.1b92f","type":"api-call-service","z":"7d23dd0.f7bff24","name":"set thermostat temp.","server":"33fde3ca.ede9cc","service_domain":"climate","service":"set_temperature","data":"{ \"entity_id\":\"climate.upstairs\"}","mergecontext":"thermo_option","x":1658,"y":761,"wires":[[]]},{"id":"381815da.8ba4da","type":"function","z":"7d23dd0.f7bff24","name":"Store 'min' and 'max' on flow props","func":"var data = flow.get(\"data\");\nflow.set(\"min\", data.attributes.target_temp_low);\nflow.set(\"max\", data.attributes.target_temp_high);\nreturn msg;","outputs":1,"noerr":0,"x":754,"y":766,"wires":[["4224fe.2e387b04","117d3791.ae8878"]]},{"id":"613d3d65.145e24","type":"comment","z":"7d23dd0.f7bff24","name":"HOME ASSISTANT","info":"","x":117,"y":37,"wires":[]},{"id":"38627f67.6f20a","type":"comment","z":"7d23dd0.f7bff24","name":"Switch (Input)","info":"","x":100,"y":162,"wires":[]},{"id":"3a40edfd.7c8212","type":"comment","z":"7d23dd0.f7bff24","name":"Thermostat","info":"","x":101,"y":502,"wires":[]},{"id":"21493f8f.0cb9c","type":"comment","z":"7d23dd0.f7bff24","name":"Weather","info":"","x":817,"y":40,"wires":[]},{"id":"1bc49ce7.42f4f3","type":"ui_switch","z":"7d23dd0.f7bff24","name":"","label":"On Vacation","group":"56f81298.70884c","order":0,"width":"6","height":"1","passthru":true,"decouple":"false","topic":"","style":"","onvalue":"on","onvalueType":"str","onicon":"","oncolor":"","offvalue":"off","offvalueType":"str","officon":"","offcolor":"","x":401,"y":329,"wires":[["4d8867b7.5aa8e8"]]},{"id":"31990cea.613154","type":"api-call-service","z":"7d23dd0.f7bff24","name":"","server":"33fde3ca.ede9cc","service_domain":"input_boolean","service":"turn_on","data":"{\"entity_id\":\"input_boolean.vacation\"}","mergecontext":"","x":813,"y":310,"wires":[[]]},{"id":"4d8867b7.5aa8e8","type":"switch","z":"7d23dd0.f7bff24","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"True","vt":"str"},{"t":"eq","v":"False","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":540,"y":329,"wires":[["31990cea.613154"],["b7200e0b.58d53"]]},{"id":"30e3e360.92092c","type":"api-current-state","z":"7d23dd0.f7bff24","name":"On Vacation","server":"33fde3ca.ede9cc","halt_if":"","entity_id":"input_boolean.vacation_time_mode","x":245,"y":328,"wires":[["1bc49ce7.42f4f3"]]},{"id":"20bb587d.2af968","type":"inject","z":"7d23dd0.f7bff24","name":"init","topic":"","payload":"","payloadType":"date","repeat":"60","crontab":"","once":true,"onceDelay":"10","x":104,"y":311,"wires":[["30e3e360.92092c"]]},{"id":"f77359e5.cd7a38","type":"server-state-changed","z":"7d23dd0.f7bff24","name":"input","server":"33fde3ca.ede9cc","entityidfilter":"input_select.vacation","entityidfiltertype":"exact","haltifstate":"","x":104,"y":345,"wires":[["30e3e360.92092c"]]},{"id":"7d430dc6.3de9f4","type":"api-current-state","z":"3c0a0ed2.d43312","name":"if Living Room Lights","server":"33fde3ca.ede9cc","halt_if":"","entity_id":"light.living_room_lights","x":940,"y":658,"wires":[["14e7438e.e74ecc"]]},{"id":"18bbc899.185ff7","type":"google calendar in","z":"a71e4d07.0e8c","google":"eeee9c9f.3c5ee","name":"Team Snap Event Notifier 2 days before","calendar":"[email protected]","offsetType":"before","offsetFrom":"start","offset":"2","offsetUnits":"days","x":155,"y":960,"wires":[["40755b60.5568c4"]]},{"id":"40755b60.5568c4","type":"looptimer","z":"a71e4d07.0e8c","duration":"4","units":"Hour","maxloops":"4","maxtimeout":"1","maxtimeoutunits":"Minute","name":"","x":473,"y":889,"wires":[["16775dc0.132ed2","a9f2b6ff.d48d88"],[]]},{"id":"a9f2b6ff.d48d88","type":"subflow:abbf62a1.09674","z":"a71e4d07.0e8c","name":"during active time","x":742,"y":917,"wires":[["db1cbaf6.1d46e8"],["db1cbaf6.1d46e8"],["db1cbaf6.1d46e8"],["db1cbaf6.1d46e8"]]},{"id":"db1cbaf6.1d46e8","type":"function","z":"a71e4d07.0e8c","name":"send notification to","func":"var days = [\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"];\nvar months = ['January', 'February','March','April','May','June','July','August','September','October','November','December'];\nvar data = flow.get(\"teamsnap\");\nif (data != null) {\n //node.log(\"here 1\");\n if (data.payload != null) {\n //node.log(\"here2\");\n var date = new Date(data.payload.start);\n var day = days[date.getDay()];\n var month = months[date.getMonth()];\n var year = date.getFullYear();\n var message = \"Dustin Soccer: \" + \n data.payload.title + \" on \" + \n day + \", \" + month + \" \" + \n date.getDate() + \" \" + year +\n data.payload.description;\n if (message.length >= 100) {\n message = message.substring(0,200);\n }\n //node.log(\"here 3\");\n msg = {payload: message};\n }\n}\nreturn msg;","outputs":1,"noerr":0,"x":987,"y":916,"wires":[["5abd3177.713eb"]]},{"id":"16775dc0.132ed2","type":"function","z":"a71e4d07.0e8c","name":"Save data to flow variable","func":"flow.set(\"teamsnap\", msg);\nreturn msg;","outputs":1,"noerr":0,"x":762,"y":851,"wires":[["5993574e.6fdf68"]]},{"id":"8e5dd6f2.121ef8","type":"google calendar in","z":"a71e4d07.0e8c","google":"4552ab7e.6e46d4","name":"Duyen Calendar Notifier 2 days before","calendar":"[email protected]","offsetType":"before","offsetFrom":"start","offset":"2","offsetUnits":"days","x":155,"y":872,"wires":[["40755b60.5568c4"]]},{"id":"3a90a572.055eca","type":"time-range-switch","z":"a71e4d07.0e8c","name":"","lat":"32.98935","lon":"-96.59443","startTime":"16:10","endTime":"19:45","startOffset":0,"endOffset":0,"x":417,"y":360,"wires":[["24a2bffd.96629"],[]],"outputLabels":["true","false"]},{"id":"5993574e.6fdf68","type":"debug","z":"a71e4d07.0e8c","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":980,"y":852,"wires":[]},{"id":"79eeae80.a96b3","type":"inject","z":"7d23dd0.f7bff24","name":"","topic":"press","payload":"<i class=\"fa fa-lightbulb-o fa-2x nr-dashboard-warning\"></i>","payloadType":"str","repeat":"","crontab":"","once":true,"x":114,"y":708,"wires":[["a2a89eb1.a649e"]]},{"id":"a2a89eb1.a649e","type":"ui_text","z":"7d23dd0.f7bff24","group":"69adf124.aa6e2","order":1,"width":"1","height":"1","name":"default","label":"","format":"{{msg.payload}}","layout":"row-center","x":254,"y":708,"wires":[]},{"id":"cee4964b.c44058","type":"google calendar in","z":"a71e4d07.0e8c","google":"eeee9c9f.3c5ee","name":"Team Snap Event Notifier 1 days before","calendar":"[email protected]","offsetType":"before","offsetFrom":"start","offset":"1","offsetUnits":"days","x":157,"y":998,"wires":[["40755b60.5568c4"]]},{"id":"297068c3.405688","type":"google calendar in","z":"a71e4d07.0e8c","google":"4552ab7e.6e46d4","name":"Duyen Calendar Notifier 1 days before","calendar":"[email protected]","offsetType":"before","offsetFrom":"start","offset":"1","offsetUnits":"days","x":156,"y":915,"wires":[["40755b60.5568c4"]]},{"id":"85645c6d.0f345","type":"change","z":"a71e4d07.0e8c","name":"","rules":[{"t":"set","p":"person","pt":"flow","to":"Dustin","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":240,"y":80,"wires":[[]]},{"id":"d4bbed2.d96471","type":"function","z":"a71e4d07.0e8c","name":"Send a welcome msg to","func":"var person = flow.get(\"person\");\nmsg = {payload: \"Welcome home \" + person};\nreturn msg;","outputs":1,"noerr":0,"x":1017,"y":192,"wires":[["5abd3177.713eb"]]},{"id":"5ab543c3.30c9dc","type":"change","z":"a71e4d07.0e8c","name":"","rules":[{"t":"set","p":"person","pt":"flow","to":"Dillion","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":244,"y":147,"wires":[[]]},{"id":"76d4c3ec.74d83c","type":"server-state-changed","z":"a71e4d07.0e8c","name":"when Duyen","server":"33fde3ca.ede9cc","entityidfilter":"device_tracker.duyen972_duyengalaxys7","entityidfiltertype":"exact","haltifstate":"","x":422,"y":146,"wires":[["e7e48f5f.3490f","c4ff5441.e2ae38"]]},{"id":"ed4ff312.afd5f","type":"server-state-changed","z":"a71e4d07.0e8c","name":"when Vu","server":"33fde3ca.ede9cc","entityidfilter":"device_tracker.vnguyen972_vugalaxy7","entityidfiltertype":"exact","haltifstate":"","x":622,"y":171,"wires":[["81f91705.569b88","c4ff5441.e2ae38"]]},{"id":"e7e48f5f.3490f","type":"change","z":"a71e4d07.0e8c","name":"","rules":[{"t":"set","p":"person","pt":"flow","to":"Yuen","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":615,"y":240,"wires":[[]]},{"id":"81f91705.569b88","type":"change","z":"a71e4d07.0e8c","name":"","rules":[{"t":"set","p":"person","pt":"flow","to":"Daddy","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":815,"y":234,"wires":[[]]},{"id":"ef6aebf3.7d4548","type":"weekday","z":"3c0a0ed2.d43312","name":"","sun":true,"mon":true,"tue":false,"wed":true,"thu":true,"fri":false,"sat":true,"x":494,"y":601,"wires":[["2610038e.a21f4c"],[]]},{"id":"559d4747.40f618","type":"weekday","z":"3c0a0ed2.d43312","name":"Workout days","sun":false,"mon":false,"tue":true,"wed":false,"thu":false,"fri":false,"sat":false,"x":637,"y":688,"wires":[["1ea0d4be.c1ebbb"],[]]},{"id":"1ea0d4be.c1ebbb","type":"time-range-switch","z":"3c0a0ed2.d43312","name":"","lat":"32.98935","lon":"-96.59441","startTime":"20:00","endTime":"23:00","startOffset":0,"endOffset":0,"x":727,"y":767,"wires":[["7d430dc6.3de9f4"],["27249924.0674a6"]]},{"id":"775cc446.19509c","type":"stoptimer","z":"3c0a0ed2.d43312","duration":"10","units":"Minute","payloadtype":"num","payloadval":"0","name":"","x":652,"y":308,"wires":[["e7f8631b.1201e"],[]]},{"id":"e7f8631b.1201e","type":"api-current-state","z":"3c0a0ed2.d43312","name":"if still no motion in the room","server":"33fde3ca.ede9cc","halt_if":"active","entity_id":"sensor.theater_room_motion_sensor","x":871,"y":302,"wires":[["cfe0152a.b52898"]]},{"id":"30a2294.14735d6","type":"api-current-state","z":"3c0a0ed2.d43312","name":"if still no motion","server":"33fde3ca.ede9cc","halt_if":"active","entity_id":"sensor.hallwaydownstair_motion_sensor","x":880,"y":140,"wires":[["68c313d9.cfd92c"]]},{"id":"15e6c0f0.5f57df","type":"api-current-state","z":"3c0a0ed2.d43312","name":"if Light currently ON","server":"33fde3ca.ede9cc","halt_if":"off","entity_id":"light.mqtt_theater_room_light","x":455,"y":308,"wires":[["775cc446.19509c"]]},{"id":"faeacbcb.27deb8","type":"api-call-service","z":"7d23dd0.f7bff24","name":"","server":"33fde3ca.ede9cc","service_domain":"input_boolean","service":"turn_on","data":"{\"entity_id\":\"input_boolean.nap_time\"}","mergecontext":"","x":753,"y":199,"wires":[[]]},{"id":"b7200e0b.58d53","type":"api-call-service","z":"7d23dd0.f7bff24","name":"","server":"33fde3ca.ede9cc","service_domain":"input_boolean","service":"turn_off","data":"{\"entity_id\":\"input_boolean.vacation\"}","mergecontext":"","x":814,"y":359,"wires":[[]]},{"id":"7598bcdf.dace84","type":"ui_slider","z":"7d23dd0.f7bff24","name":"","label":"Min","group":"1d28dcb6.541c33","order":0,"width":"6","height":"1","passthru":true,"topic":"","min":"60","max":"90","step":1,"x":1079,"y":868,"wires":[["6fa89d8e.1b2bf4"]]},{"id":"6fa89d8e.1b2bf4","type":"function","z":"7d23dd0.f7bff24","name":"update Gauge's min and update Ecobee","func":"var min = msg.payload;\nvar max = flow.get(\"max\");\nif (min < max) {\n flow.set(\"min\", min);\n \n // update Gauge with data from the slider\n var data = flow.get(\"data\");\n var newMsg = { payload: data.attributes.current_temperature,\n unit: data.attributes.unit_of_measurement\n }\n newMsg.ui_control = {\"min\": flow.get(\"min\"), \"max\": flow.get(\"max\")};\n \n // store options on \"flow\" properties\n var option = {\"target_temp_low\": flow.get(\"min\"), \n \"target_temp_high\": flow.get(\"max\")};\n flow.set(\"thermo_option\", option);\n \n return newMsg;\n}\n","outputs":1,"noerr":0,"x":1316,"y":870,"wires":[["c8bd7a5b.543d98","c5f08d82.1b92f"]]},{"id":"4e1a10b.b9c6ff","type":"function","z":"7d23dd0.f7bff24","name":"update Gauge's max and update Ecobee","func":"var max = msg.payload;\nvar min = flow.get(\"min\");\nif (max > min) {\n flow.set(\"max\", max);\n \n // update the Gauge with data from the slider\n var data = flow.get(\"data\");\n var newMsg = { payload: data.attributes.current_temperature,\n unit: data.attributes.unit_of_measurement\n }\n newMsg.ui_control = {\"min\": flow.get(\"min\"), \"max\": flow.get(\"max\")};\n \n // store the options on \"flow\" property for themorstat service call\n var option = {\"target_temp_low\": flow.get(\"min\"), \n \"target_temp_high\": flow.get(\"max\")};\n flow.set(\"thermo_option\", option);\n return newMsg;\n \n}","outputs":1,"noerr":0,"x":1311,"y":762,"wires":[["c8bd7a5b.543d98","c5f08d82.1b92f"]]},{"id":"4224fe.2e387b04","type":"function","z":"7d23dd0.f7bff24","name":"output 1: slider, output 2: gauge","func":"// output 1\nmsg.payload = flow.get(\"max\");\nmsg.topic = \"Max\";\nvar data = flow.get(\"data\");\n// output 2\nvar newMsg = { payload: data.attributes.current_temperature,\n unit: data.attributes.unit_of_measurement\n }\nnewMsg.ui_control = {\"min\": flow.get(\"min\"), \"max\": flow.get(\"max\")};\n\nreturn [msg, newMsg];","outputs":2,"noerr":0,"x":821,"y":812,"wires":[["6b928f4b.e639d"],["c8bd7a5b.543d98"]]},{"id":"117d3791.ae8878","type":"function","z":"7d23dd0.f7bff24","name":"output 1: slider; output 2: gauge","func":"// output 1\nmsg.payload = flow.get(\"min\");\nmsg.topic = \"Min\";\nvar data = flow.get(\"data\");\n\n// output 2\nvar newMsg = { payload: data.attributes.current_temperature,\n unit: data.attributes.unit_of_measurement\n }\nnewMsg.ui_control = {\"min\": flow.get(\"min\"), \"max\": flow.get(\"max\")};\n\nreturn [msg, newMsg];","outputs":2,"noerr":0,"x":816,"y":855,"wires":[["7598bcdf.dace84"],["c8bd7a5b.543d98"]]},{"id":"e0097f1f.a0109","type":"debug","z":"7d23dd0.f7bff24","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":419,"y":633,"wires":[]},{"id":"75cb5fea.1202b","type":"ui_dropdown","z":"7d23dd0.f7bff24","name":"","label":"Mode","place":"Select option","group":"1d28dcb6.541c33","order":0,"width":"3","height":"1","passthru":true,"options":[{"label":"Auto","value":"auto","type":"str"},{"label":"Cool","value":"cool","type":"str"},{"label":"Heat","value":"heat","type":"str"}],"payload":"","topic":"","x":772.4444274902344,"y":538.1111030578613,"wires":[[]]},{"id":"f0c04143.35b79","type":"ui_slider","z":"7d23dd0.f7bff24","name":"","label":"Temperature","group":"1d28dcb6.541c33","order":0,"width":"6","height":"1","passthru":true,"topic":"","min":"60","max":"90","step":1,"x":998,"y":537,"wires":[[]]},{"id":"4cab94e8.fbd60c","type":"function","z":"7d23dd0.f7bff24","name":"disable","func":"msg.enabled = false;\nreturn msg;","outputs":1,"noerr":0,"x":796.1110916137695,"y":610.1111125946045,"wires":[["6b928f4b.e639d","7598bcdf.dace84","c8bd7a5b.543d98"]]},{"id":"50299bbb.bb52f4","type":"comment","z":"3c0a0ed2.d43312","name":"Hallway to Garage Lights Control","info":"","x":148,"y":22,"wires":[]},{"id":"fb765cc7.451b5","type":"comment","z":"3c0a0ed2.d43312","name":"Plex Light Control","info":"","x":112,"y":369,"wires":[]},{"id":"35f733ff.912bbc","type":"inject","z":"a71e4d07.0e8c","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":415.5555725097656,"y":656.6666660308838,"wires":[["a5339ea7.4b3c7"]]},{"id":"f6089906.fa3cc8","type":"inject","z":"3c0a0ed2.d43312","name":"Turn off","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":1089,"y":785,"wires":[["363aa32a.e2a7dc"]]},{"id":"370c43e1.7c780c","type":"inject","z":"3c0a0ed2.d43312","name":"Turn on","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":1090,"y":585,"wires":[["15578e0d.119862"]]},{"id":"13b302f3.bf6c9d","type":"inject","z":"a71e4d07.0e8c","name":"Swim class reminder (Thu)","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"*/10 15-16 * * 4","once":false,"onceDelay":0.1,"x":161,"y":780,"wires":[["35de4248.6fa50e"]]},{"id":"35de4248.6fa50e","type":"time-range-switch","z":"a71e4d07.0e8c","name":"","lat":"32.98935","lon":"-96.59443","startTime":"17:15","endTime":"17:45","startOffset":0,"endOffset":0,"x":402,"y":785,"wires":[["a966139f.c37a1"],[]],"outputLabels":["true","false"]},{"id":"ad2095c6.742848","type":"time-range-switch","z":"a71e4d07.0e8c","name":"","lat":"32.98935","lon":"-96.59443","startTime":"08:00","endTime":"23:55","startOffset":0,"endOffset":0,"x":470,"y":440,"wires":[["2e628ba4.a3f974"],["2e628ba4.a3f974"]]},{"id":"c9026be3.fef0a8","type":"change","z":"3c0a0ed2.d43312","name":"","rules":[{"t":"set","p":"timeoff","pt":"flow","to":"","tot":"date"}],"action":"","property":"","from":"","to":"","reg":false,"x":1180,"y":80,"wires":[[]]},{"id":"17b9a4be.13651b","type":"function","z":"3c0a0ed2.d43312","name":"Check time-off","func":"var now = new Date().getTime();\nvar msg1 = msg;\nvar timeoff = flow.get(\"timeoff\");\nif (timeoff) {\n //node.warn(\"timeoff = \" + timeoff);\n //node.warn(\"now = \" + now);\n var duration = Math.floor((now - timeoff) / 1000);\n //node.warn(\"duration = \" + duration);\n if (duration > 10) {\n //node.warn(\"More than 10 seconds?\");\n msg1.payload = \"OK\";\n } else {\n //node.warn(\"Less than 10 seconds?\");\n msg1.payload = \"Not OK\";\n }\n} else {\n //node.warn(\"No timeoff!\");\n msg1.payload = \"OK\";\n}\nreturn msg1;","outputs":1,"noerr":0,"x":520,"y":20,"wires":[["db60f16d.e1988"]]},{"id":"db60f16d.e1988","type":"switch","z":"3c0a0ed2.d43312","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"OK","vt":"str"},{"t":"eq","v":"Not OK","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":690,"y":20,"wires":[["b9877d6c.07b89"],[]]}]