├── Images ├── 1Home.png ├── 2Cameras.png ├── 3Media.png ├── 4Thermostat.png ├── 5SmokeDetectors.png ├── 6Automation.png └── 7System.png ├── README.md ├── automation ├── lights.yaml ├── notifications.yaml ├── plex.yaml └── security.yaml ├── cameras.yaml ├── configuration.yaml ├── groups.yaml ├── panels.yaml ├── plex.conf ├── scripts.yaml ├── sensors.yaml └── switches.yaml /Images/1Home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottocs11/Home-Assistant-Config/db9e03ca14d0e1cc63ead0d8eee14482cebff228/Images/1Home.png -------------------------------------------------------------------------------- /Images/2Cameras.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottocs11/Home-Assistant-Config/db9e03ca14d0e1cc63ead0d8eee14482cebff228/Images/2Cameras.png -------------------------------------------------------------------------------- /Images/3Media.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottocs11/Home-Assistant-Config/db9e03ca14d0e1cc63ead0d8eee14482cebff228/Images/3Media.png -------------------------------------------------------------------------------- /Images/4Thermostat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottocs11/Home-Assistant-Config/db9e03ca14d0e1cc63ead0d8eee14482cebff228/Images/4Thermostat.png -------------------------------------------------------------------------------- /Images/5SmokeDetectors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottocs11/Home-Assistant-Config/db9e03ca14d0e1cc63ead0d8eee14482cebff228/Images/5SmokeDetectors.png -------------------------------------------------------------------------------- /Images/6Automation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottocs11/Home-Assistant-Config/db9e03ca14d0e1cc63ead0d8eee14482cebff228/Images/6Automation.png -------------------------------------------------------------------------------- /Images/7System.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottocs11/Home-Assistant-Config/db9e03ca14d0e1cc63ead0d8eee14482cebff228/Images/7System.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # My [Home Assistant](https://home-assistant.io/) Configuration Files 2 | 3 | ## Devices 4 | 5 | - Raspberry Pi running [Home Assistant](https://home-assistant.io/) and [PlexPy](https://github.com/JonnyWong16/plexpy) 6 | - Lutron Caseta Hub 7 | - Lutron Caseta In-Wall Dimmers 8 | - MyQ Garage Door Opener 9 | - [Plex Media Server](https://www.plex.tv/) 10 | - Raspberry Pi with [OpenPHT](https://github.com/RasPlex/OpenPHT/releases) 11 | - [Amcrest 1080P POE Cameras](https://www.amazon.com/s/ref=nb_sb_noss/185-6939966-2857643?url=search-alias%3Daps&field-keywords=amcrest+poe+1080p&x=0&y=0) 12 | - Asus RT-AC68R Router which uses [ASUSWRT](https://home-assistant.io/components/device_tracker.asuswrt/) 13 | - Chromecast 14 | - GoControl Z-Wave and Zigbee QuickStick Combo [HUSBZB-1](http://www.ebay.com/sch/i.html?_from=R40&_trksid=p5197.m570.l1313&_nkw=HUSBZB-1&_sacat=See-All-Categories) 15 | - Zigbee Open/Close Sensors 16 | - Z-Wave Smoke/Carbon Monoxide Detectors (First Alert) 17 | - Z-Wave Motion Sensors 18 | - Zigbee Motion Sensors 19 | - Z-Wave Thermostat (2Gig CT100) 20 | 21 | ![Home](https://raw.githubusercontent.com/scottocs11/Home-Assistant-Config/master/Images/1Home.png) 22 | 23 | ![Home](https://raw.githubusercontent.com/scottocs11/Home-Assistant-Config/master/Images/2Cameras.png) 24 | 25 | ![Home](https://raw.githubusercontent.com/scottocs11/Home-Assistant-Config/master/Images/3Media.png) 26 | 27 | ![Home](https://raw.githubusercontent.com/scottocs11/Home-Assistant-Config/master/Images/4Thermostat.png) 28 | 29 | ![Home](https://raw.githubusercontent.com/scottocs11/Home-Assistant-Config/master/Images/5SmokeDetectors.png) 30 | 31 | ![Home](https://raw.githubusercontent.com/scottocs11/Home-Assistant-Config/master/Images/6Automation.png) 32 | 33 | ![Home](https://raw.githubusercontent.com/scottocs11/Home-Assistant-Config/master/Images/7System.png) -------------------------------------------------------------------------------- /automation/lights.yaml: -------------------------------------------------------------------------------- 1 | #Lights Automation 2 | - id: 7amBedroom 3 | alias: Bedroom Light on and Noise Machine off at 7am 4 | trigger: 5 | platform: time 6 | at: '07:00:00' 7 | condition: 8 | condition: and 9 | conditions: 10 | - condition: time 11 | weekday: 12 | - mon 13 | - tue 14 | - wed 15 | - thu 16 | - fri 17 | - condition: state 18 | entity_id: device_tracker.scott 19 | state: 'home' 20 | - condition: state 21 | entity_id: input_boolean.alarm_set 22 | state: 'on' 23 | action: 24 | service: script.morning_alarm 25 | 26 | - id: LightstripOffAtMidnight 27 | alias: Lightstrip off at midnight if Plex idle 28 | trigger: 29 | platform: time 30 | at: '00:00:01' 31 | condition: 32 | condition: state 33 | entity_id: media_player.scottsplex 34 | state: 'idle' 35 | action: 36 | service: light.turn_off 37 | entity_id: light.lightstrip 38 | 39 | - id: GarageLightsOnWhenDoorOpens 40 | alias: Garage Lights On When Door Opens 41 | trigger: 42 | platform: state 43 | entity_id: sensor.central_door, cover.garage_door 44 | to: 'open' 45 | condition: 46 | condition: state 47 | entity_id: light.garage_light 48 | state: 'off' 49 | action: 50 | service: homeassistant.turn_on 51 | entity_id: light.garage_light 52 | data: 53 | brightness: 255 54 | 55 | - id: GarageLightOnWithMotion 56 | alias: Garage Light On With Motion 57 | trigger: 58 | platform: state 59 | entity_id: sensor.garage_motion 60 | to: 'motion' 61 | condition: 62 | condition: state 63 | entity_id: light.garage_light 64 | state: 'off' 65 | action: 66 | service: homeassistant.turn_on 67 | entity_id: light.garage_light 68 | data: 69 | brightness: 255 70 | 71 | - id: GarageLightOffAfter5Mins 72 | alias: Garage Light Off after 5 Minutes 73 | trigger: 74 | platform: state 75 | entity_id: sensor.garage_motion 76 | to: 'clear' 77 | for: 78 | minutes: 5 79 | condition: 80 | condition: state 81 | entity_id: light.garage_light 82 | state: 'on' 83 | action: 84 | service: homeassistant.turn_off 85 | entity_id: light.garage_light 86 | 87 | - id: HallwayLightOnWithMotion-Night 88 | alias: Hallway Light On At Night With Motion 89 | trigger: 90 | platform: state 91 | entity_id: sensor.hallway_motion 92 | to: 'motion' 93 | condition: 94 | condition: and 95 | conditions: 96 | - condition: time 97 | after: '21:00:01' 98 | before: '06:00:00' 99 | - condition: state 100 | entity_id: light.hallway_light 101 | state: 'off' 102 | action: 103 | service: homeassistant.turn_on 104 | entity_id: light.hallway_light 105 | data: 106 | brightness: 50 107 | 108 | - id: HallwayLightOnWithMotion-Day 109 | alias: Hallway Light On During The Day With Motion 110 | trigger: 111 | platform: state 112 | entity_id: sensor.hallway_motion 113 | to: 'motion' 114 | condition: 115 | condition: and 116 | conditions: 117 | - condition: time 118 | after: '06:00:01' 119 | before: '21:00:00' 120 | - condition: state 121 | entity_id: light.hallway_light 122 | state: 'off' 123 | action: 124 | service: homeassistant.turn_on 125 | entity_id: light.hallway_light 126 | data: 127 | brightness: 255 128 | 129 | - id: HallwayLightOffNoMotion 130 | alias: Hallway Light Off after No Motion 131 | trigger: 132 | platform: state 133 | entity_id: sensor.hallway_motion 134 | to: 'clear' 135 | for: 136 | seconds: 5 137 | condition: 138 | condition: state 139 | entity_id: light.hallway_light 140 | state: 'on' 141 | action: 142 | service: homeassistant.turn_off 143 | entity_id: light.hallway_light 144 | 145 | - id: KitchenLightOnWithMotion 146 | alias: Kitchen Light On With Motion 147 | trigger: 148 | platform: state 149 | entity_id: sensor.kitchen_motion 150 | to: 'motion' 151 | condition: 152 | condition: state 153 | entity_id: light.kitchen_light 154 | state: 'off' 155 | action: 156 | service: homeassistant.turn_on 157 | entity_id: light.kitchen_light 158 | data: 159 | brightness: 255 160 | 161 | - id: ComingHomeLightsOn 162 | alias: Coming Home Lights On 163 | trigger: 164 | platform: state 165 | entity_id: sensor.front_door, sensor.central_door 166 | to: 'open' 167 | condition: 168 | condition: state 169 | entity_id: input_boolean.entry_lights 170 | state: 'off' 171 | action: 172 | - service: homeassistant.turn_on 173 | entity_id: group.insidelights 174 | data: 175 | brightness: 255 176 | - service: input_boolean.turn_on 177 | entity_id: input_boolean.entry_lights 178 | 179 | - id: ResetMorningLightsBoolean5am 180 | alias: Reset Morning Lights Boolean 5am 181 | trigger: 182 | platform: time 183 | at: '05:00:00' 184 | action: 185 | - service: input_boolean.turn_off 186 | entity_id: input_boolean.morning_lights 187 | 188 | - alias: Reset Morning Lights Boolean 7am 189 | trigger: 190 | platform: time 191 | at: '07:00:00' 192 | action: 193 | - service: input_boolean.turn_off 194 | entity_id: input_boolean.morning_lights -------------------------------------------------------------------------------- /automation/notifications.yaml: -------------------------------------------------------------------------------- 1 | #Notifications Automation 2 | - id: NotifyWhenDoorOpens 3 | alias: Notify When Door Opens If No One Is Home 4 | trigger: 5 | platform: state 6 | entity_id: sensor.kitchen_door, sensor.central_door, sensor.front_door, sensor.back_garage_door, cover.garage_door 7 | to: 'open' 8 | condition: 9 | condition: state 10 | entity_id: input_boolean.door_notifications 11 | state: 'on' 12 | action: 13 | service: notify.notify 14 | data_template: 15 | message: > 16 | {{ trigger.to_state.attributes.friendly_name }} Opened 17 | 18 | - id: NotifyWhenCloudIsHome 19 | alias: Notify when Cloud is at back door 20 | trigger: 21 | platform: state 22 | entity_id: sensor.porch_motion 23 | to: 'motion' 24 | condition: 25 | condition: and 26 | conditions: 27 | - condition: state 28 | entity_id: device_tracker.scott 29 | state: 'home' 30 | - condition: state 31 | entity_id: input_boolean.cloud_timer 32 | state: 'off' 33 | action: 34 | - service: notify.notify 35 | data_template: 36 | message: "Cloud is Home." 37 | - service: input_boolean.turn_on 38 | entity_id: input_boolean.cloud_timer 39 | 40 | - id: ResetCloudTimerAfter5Mins 41 | alias: Reset Cloud Timer after 5 Minutes 42 | trigger: 43 | platform: state 44 | entity_id: sensor.porch_motion 45 | to: 'clear' 46 | for: 47 | minutes: 5 48 | action: 49 | service: input_boolean.turn_off 50 | entity_id: input_boolean.cloud_timer 51 | 52 | - id: NotifyWhenSmokeDetectorDetectsSmoke 53 | alias: Notify When Smoke Detector Detects Smoke 54 | trigger: 55 | platform: state 56 | entity_id: sensor.kitchen_smoke_detector, sensor.garage_smoke_detector, sensor.hallway_smoke_detector 57 | to: 'Fire Detected' 58 | action: 59 | service: notify.notify 60 | data_template: 61 | message: > 62 | {{ trigger.to_state.attributes.friendly_name }} Smoke Detected 63 | 64 | - id: NotifyWhenSmokeDetectorDetectsCarbon 65 | alias: Notify When Smoke Detector Detects Carbon Monoxide 66 | trigger: 67 | platform: state 68 | entity_id: sensor.kitchen_smoke_detector, sensor.garage_smoke_detector, sensor.hallway_smoke_detector 69 | to: 'Carbon Monoxide Detected' 70 | action: 71 | service: notify.notify 72 | data_template: 73 | message: > 74 | {{ trigger.to_state.attributes.friendly_name }} Carbon Monoxide Detected 75 | 76 | - id: NotifyWhenGarageIsOpenAfter10PM 77 | alias: Notify When Garage Is Open after 10pm 78 | trigger: 79 | platform: state 80 | entity_id: cover.garage_door 81 | to: 'open' 82 | condition: 83 | condition: time 84 | after: '22:00:00' 85 | before: '23:59:59' 86 | action: 87 | service: notify.notify 88 | data: 89 | message: "Garage Door is still open." 90 | 91 | - id: NotifyWhenGarageIsOpenFor30Mins 92 | alias: Notify When Garage Is Open For 30 minutes 93 | trigger: 94 | platform: state 95 | entity_id: cover.garage_door 96 | to: 'open' 97 | for: 98 | minutes: 30 99 | action: 100 | service: notify.notify 101 | data: 102 | message: "Garage Door has been open 30 minutes." 103 | 104 | - id: NotifyWhenDiskUseis95 105 | alias: Notify When Disk Use is >95% 106 | trigger: 107 | platform: numeric_state 108 | entity_id: sensor.disk_use_ 109 | above: '95' 110 | action: 111 | service: notify.notify 112 | data: 113 | message: "HASS disk use is 95% full." 114 | 115 | - id: NotifyWhenUpdateAvailable 116 | alias: Notify When Home-Assistant Has An Update 117 | trigger: 118 | - platform: state 119 | entity_id: updater.updater 120 | action: 121 | service: notify.notify 122 | data: 123 | message: "Home-Assistant has an update." 124 | 125 | - id: NotifyWhenSmokeDetectorBatteryLow 126 | alias: Notify When Smoke Detector Battery Low 127 | trigger: 128 | platform: numeric_state 129 | entity_id: sensor.kitchen_smoke_detector_battery, sensor.hallway_smoke_detector_battery, sensor.garage_smoke_detector_battery, sensor.thermostat_battery 130 | below: '7' 131 | action: 132 | service: notify.notify 133 | data_template: 134 | message: > 135 | {{ trigger.to_state.attributes.friendly_name }} Has Low Battery -------------------------------------------------------------------------------- /automation/plex.yaml: -------------------------------------------------------------------------------- 1 | #Plex Automation 2 | - id: PlexPlaying 3 | alias: Plex Playing 4 | trigger: 5 | - platform: state 6 | entity_id: media_player.scottsplex 7 | to: 'playing' 8 | action: 9 | - service: homeassistant.turn_off 10 | entity_id: light.living_room_light, light.dining_light, light.hallway_light 11 | - service: script.lightstrip_plex 12 | 13 | - id: PlexPaused 14 | alias: Plex Paused 15 | trigger: 16 | - platform: state 17 | entity_id: media_player.scottsplex 18 | to: 'paused' 19 | for: 20 | seconds: 5 21 | action: 22 | - service: light.turn_on 23 | data: 24 | entity_id: light.lightstrip 25 | effect: Slowdown 26 | 27 | - id: PlexStopped 28 | alias: Plex Stopped 29 | trigger: 30 | - platform: state 31 | entity_id: media_player.scottsplex 32 | to: 'idle' 33 | action: 34 | - service: light.turn_on 35 | data: 36 | entity_id: light.lightstrip 37 | effect: Slowdown -------------------------------------------------------------------------------- /automation/security.yaml: -------------------------------------------------------------------------------- 1 | #Security Automation 2 | - id: MorningAutomation 3 | alias: Morning Automation 4 | trigger: 5 | platform: state 6 | entity_id: sensor.hallway_motion 7 | to: 'motion' 8 | condition: 9 | condition: and 10 | conditions: 11 | - condition: time 12 | after: '05:00:00' 13 | - condition: state 14 | entity_id: input_boolean.morning_lights 15 | state: 'off' 16 | action: 17 | - service: homeassistant.turn_on 18 | entity_id: group.insidelights 19 | data: 20 | brightness: 255 21 | - service: input_boolean.turn_on 22 | entity_id: input_boolean.morning_lights 23 | - service: script.inside_cameras_off 24 | 25 | - id: InsideCamerasAndDoorNotificationsOnAtMidnight 26 | alias: Inside Cameras And Door Notifications On At Midnight 27 | trigger: 28 | platform: time 29 | at: '00:00:01' 30 | action: 31 | - service: script.inside_cameras_on 32 | - service: input_boolean.turn_on 33 | entity_id: input_boolean.door_notifications 34 | 35 | - id: ActionsWhenEveryoneLeaves 36 | alias: Actions When Everyone Leaves 37 | trigger: 38 | platform: state 39 | entity_id: group.all_devices 40 | to: 'not_home' 41 | for: 42 | minutes: 10 43 | action: 44 | - service: homeassistant.turn_off 45 | entity_id: group.all_lights 46 | - service: input_boolean.turn_off 47 | entity_id: input_boolean.entry_lights 48 | - service: script.inside_cameras_on 49 | - service: input_boolean.turn_on 50 | entity_id: input_boolean.door_notifications 51 | 52 | - id: InsideCamerasOffWhenSomeoneArrivesHome 53 | alias: Inside Cameras Off When Someone Arrives Home 54 | trigger: 55 | platform: state 56 | entity_id: device_tracker.scott, device_tracker.gabe, device_tracker.mathia 57 | to: 'home' 58 | condition: 59 | condition: and 60 | conditions: 61 | - condition: state 62 | entity_id: switch.amcrestlrmotion 63 | state: 'on' 64 | - condition: time 65 | after: '05:00:00' 66 | before: '00:00:01' 67 | action: 68 | - service: script.inside_cameras_off 69 | - service: input_boolean.turn_off 70 | entity_id: input_boolean.door_notifications 71 | 72 | - id: DoorNotificationsOffWhenSomeoneArrivesHome 73 | alias: Door Notifications Off When Someone Arrives Home 74 | trigger: 75 | platform: state 76 | entity_id: device_tracker.scott, device_tracker.gabe, device_tracker.mathia 77 | to: 'home' 78 | condition: 79 | condition: and 80 | conditions: 81 | - condition: state 82 | entity_id: input_boolean.door_notifications 83 | state: 'on' 84 | - condition: time 85 | after: '05:00:00' 86 | before: '00:00:01' 87 | action: 88 | - service: input_boolean.turn_off 89 | entity_id: input_boolean.door_notifications 90 | 91 | - id: OutsideCamerasOnWhenStopsRaining 92 | alias: Outside Cameras On When Stops Raining 93 | trigger: 94 | platform: state 95 | entity_id: sensor.dark_sky_precip_intensity 96 | to: '0' 97 | for: 98 | minutes: 10 99 | condition: 100 | condition: or 101 | conditions: 102 | - condition: time 103 | after: '00:00:01' 104 | before: '06:00:00' 105 | - condition: state 106 | entity_id: group.all_devices 107 | state: not_home 108 | action: 109 | - service: script.outside_inside_cameras_on 110 | 111 | - id: OutsideCamerasOffWhenStartsRaining 112 | alias: Outside Cameras Off When Starts Raining 113 | trigger: 114 | platform: state 115 | entity_id: sensor.dark_sky_precip_intensity 116 | from: '0' 117 | action: 118 | - service: script.outside_inside_cameras_off -------------------------------------------------------------------------------- /cameras.yaml: -------------------------------------------------------------------------------- 1 | #Amcrest Cameras 2 | - host: 192.168.1.7 3 | username: admin 4 | password: !secret common_password 5 | stream_source: snapshot 6 | name: Living Room 7 | 8 | - host: 192.168.1.8 9 | username: admin 10 | password: !secret common_password 11 | stream_source: snapshot 12 | name: Garage 13 | 14 | - host: 192.168.1.9 15 | username: admin 16 | password: !secret common_password 17 | stream_source: snapshot 18 | name: Back Yard 19 | 20 | - host: 192.168.1.10 21 | username: admin 22 | password: !secret common_password 23 | stream_source: snapshot 24 | name: Front Yard -------------------------------------------------------------------------------- /configuration.yaml: -------------------------------------------------------------------------------- 1 | homeassistant: 2 | name: Home 3 | latitude: !secret latitude 4 | longitude: !secret longitude 5 | elevation: 710 6 | unit_system: imperial 7 | time_zone: America/New_York 8 | customize: 9 | switch.amcrestbackyardmotion: 10 | emulated_hue: false 11 | switch.amcrestfrontyardmotion: 12 | emulated_hue: false 13 | switch.amcrestgaragemotion: 14 | emulated_hue: false 15 | switch.amcrestlrmotion: 16 | emulated_hue: false 17 | switch.bedroom_receptacle_switch_13_0: 18 | emulated_hue: false 19 | climate.thermostat_cooling_1_12_2: 20 | friendly_name: Thermostat Cooling 21 | climate.thermostat_heating_1_12_1: 22 | friendly_name: Thermostat Heating 23 | binary_sensor.centralite_3305s_0405562d_1: 24 | friendly_name: Hallway Motion Sensor Zigbee 25 | binary_sensor.visonic_mct340_e_0b1219c2_1: 26 | friendly_name: Front Door Zigbee 27 | binary_sensor.visonic_mct340_e_0b3ba6c3_1: 28 | friendly_name: Central Door Zigbee 29 | binary_sensor.visonic_mct340_e_0b110e25_1: 30 | friendly_name: Kitchen Door Zigbee 31 | binary_sensor.visonic_mct340_e_0b112478_1: 32 | friendly_name: Back Garage Door Zigbee 33 | 34 | config: 35 | frontend: 36 | logbook: 37 | updater: 38 | hassio: 39 | #sun: 40 | #discovery: 41 | history: 42 | panel_iframe: !include panels.yaml 43 | switch: !include switches.yaml 44 | sensor: !include sensors.yaml 45 | group: !include groups.yaml 46 | automation: !include_dir_merge_list automation/ 47 | amcrest: !include cameras.yaml 48 | script: !include scripts.yaml 49 | zwave: 50 | usb_path: /dev/ttyUSB0 51 | new_entity_ids: true 52 | recorder: 53 | purge_days: 3 54 | climate: 55 | platform: zwave 56 | logger: 57 | default: error 58 | logs: 59 | homeassistant.components.switch.template: fatal 60 | homeassistant.components.sensor.template: error 61 | camera: 62 | platform: amcrest 63 | 64 | zha: 65 | usb_path: /dev/ttyUSB1 66 | database_path: /config/zigbee.db 67 | 68 | notify: 69 | platform: pushover 70 | api_key: !secret pushover_api_key 71 | user_key: !secret pushover_user_key 72 | 73 | http: 74 | api_password: !secret common_password 75 | ip_ban_enabled: True 76 | login_attempts_threshold: 5 77 | 78 | emulated_hue: 79 | host_ip: 192.168.1.3 80 | listen_port: 80 81 | expose_by_default: true 82 | exposed_domains: 83 | - light 84 | - switch 85 | - fan 86 | 87 | lutron_caseta: 88 | host: 192.168.1.5 89 | 90 | device_tracker: 91 | platform: asuswrt 92 | host: 192.168.1.1 93 | username: admin 94 | password: !secret common_password 95 | track_new_devices: no 96 | interval_seconds: 30 97 | consider_home: 30 98 | 99 | cover: 100 | platform: myq 101 | username: !secret myq_username 102 | password: !secret myq_password 103 | type: chamberlain 104 | 105 | ifttt: 106 | key: !secret ifttt_key 107 | 108 | media_player: 109 | - platform: plex 110 | include_non_clients: true 111 | scan_interval: 5 112 | show_all_controls: true 113 | use_custom_entity_ids: false 114 | use_episode_art: true 115 | - platform: spotify 116 | client_id: !secret spotify_id 117 | client_secret: !secret spotify_secret 118 | - platform: cast 119 | host: 192.168.1.12 120 | 121 | input_boolean: 122 | entry_lights: 123 | name: Entry Lights 124 | initial: on 125 | door_notifications: 126 | name: Door Notifications 127 | initial: on 128 | morning_lights: 129 | name: Morning Lights 130 | initial: on 131 | alarm_set: 132 | name: Alarm Set 133 | initial: on 134 | cloud_timer: 135 | name: Cloud Timer 136 | initial: off 137 | 138 | light: 139 | - platform: yeelight 140 | devices: 141 | 192.168.1.21: 142 | name: Lightstrip 143 | transition: 1000 144 | use_music_mode: True -------------------------------------------------------------------------------- /groups.yaml: -------------------------------------------------------------------------------- 1 | #Groups 2 | AllLights: 3 | name: All Lights 4 | view: no 5 | entities: 6 | - light.bedroom_light 7 | - light.dining_light 8 | - light.hallway_light 9 | - light.kitchen_light 10 | - light.living_room_light 11 | - light.garage_light 12 | - light.lightstrip 13 | 14 | InsideLights: 15 | name: Inside Lights 16 | view: no 17 | entities: 18 | - light.dining_light 19 | - light.kitchen_light 20 | - light.living_room_light 21 | - light.hallway_light 22 | - light.lightstrip 23 | 24 | Automation: 25 | name: Automation 26 | entities: 27 | - switch.amcrestlrmotion 28 | - switch.amcrestgaragemotion 29 | - switch.amcrestbackyardmotion 30 | - switch.amcrestfrontyardmotion 31 | 32 | Doors: 33 | name: Doors 34 | entities: 35 | - sensor.kitchen_door 36 | - sensor.central_door 37 | - sensor.front_door 38 | - sensor.back_garage_door 39 | - cover.garage_door 40 | 41 | MotionSensors: 42 | name: Motion Sensors 43 | entities: 44 | - sensor.hallway_motion 45 | - sensor.garage_motion 46 | - sensor.kitchen_motion 47 | - sensor.porch_motion 48 | 49 | Cameras: 50 | name: Cameras 51 | entities: 52 | - camera.living_room 53 | - camera.garage 54 | - camera.back_yard 55 | - camera.front_yard 56 | 57 | MediaPlayers: 58 | name: Media Players 59 | entities: 60 | - media_player.scottsplex 61 | - sensor.plex 62 | - media_player.spotify 63 | - media_player.scotts_chromecast 64 | 65 | System: 66 | name: System 67 | entities: 68 | - sensor.cpu_use 69 | - sensor.disk_use_ 70 | - sensor.ram_free 71 | - sensor.received_eth0 72 | - sensor.sent_eth0 73 | - sensor.last_boot 74 | 75 | InputBooleans: 76 | name: Input Booleans 77 | entities: 78 | - input_boolean.entry_lights 79 | - input_boolean.door_notifications 80 | - input_boolean.morning_lights 81 | - input_boolean.alarm_set 82 | 83 | Thermostat: 84 | name: Thermostat 85 | entities: 86 | - climate.thermostat_cooling_1 87 | - climate.thermostat_heating_1 88 | - sensor.thermostat_battery 89 | 90 | SmokeDetectors: 91 | name: Smoke Detectors 92 | entities: 93 | - sensor.kitchen_smoke_detector 94 | - sensor.kitchen_smoke_detector_battery 95 | - sensor.garage_smoke_detector 96 | - sensor.garage_smoke_detector_battery 97 | - sensor.hallway_smoke_detector 98 | - sensor.hallway_smoke_detector_battery 99 | 100 | #Tabs 101 | default_view: 102 | view: yes 103 | entities: 104 | - group.alllights 105 | - group.doors 106 | - device_tracker.scott 107 | - device_tracker.gabe 108 | - device_tracker.mathia 109 | - updater.updater 110 | - group.motionsensors 111 | - switch.noise_machine 112 | - switch.vacuum 113 | - sensor.hass_update_available 114 | 115 | CameraView: 116 | name: Cameras 117 | view: yes 118 | entities: 119 | - group.cameras 120 | 121 | MediaView: 122 | name: Media 123 | view: yes 124 | entities: 125 | - group.mediaplayers 126 | 127 | ThermostatView: 128 | name: Thermostat 129 | view: yes 130 | entities: 131 | - group.thermostat 132 | 133 | SmokeDetectorView: 134 | name: Smoke Detectors 135 | view: yes 136 | entities: 137 | - group.smokedetectors 138 | 139 | AutomationView: 140 | name: Automation 141 | view: yes 142 | entities: 143 | - group.automation 144 | - group.inputbooleans 145 | - script.morning_alarm 146 | 147 | SystemView: 148 | name: System 149 | view: yes 150 | entities: 151 | - group.system -------------------------------------------------------------------------------- /panels.yaml: -------------------------------------------------------------------------------- 1 | #Panels 2 | yamleditor: 3 | title: 'YAML Editor' 4 | icon: mdi:wrench 5 | url: 'http://REDACTED.duckdns.org:3218' 6 | radarr: 7 | title: 'Radarr' 8 | icon: mdi:movie 9 | url: 'http://REDACTED.duckdns.org:7878' 10 | sonarr: 11 | title: 'Sonarr' 12 | icon: mdi:television 13 | url: 'http://REDACTED.duckdns.org:8989' 14 | nzbget: 15 | title: 'NZBGet' 16 | icon: mdi:download 17 | url: 'http://REDACTED.duckdns.org:6789' 18 | plexpy: 19 | title: 'PlexPy' 20 | icon: mdi:database 21 | url: 'http://REDACTED.duckdns.org:8181' 22 | trakt: 23 | title: 'Trakt' 24 | url: 'http://trakt-for-plex.github.io/configuration' -------------------------------------------------------------------------------- /plex.conf: -------------------------------------------------------------------------------- 1 | {"192.168.1.2:32400": {"token": null, "ssl": false, "verify": true}} -------------------------------------------------------------------------------- /scripts.yaml: -------------------------------------------------------------------------------- 1 | #Scripts 2 | inside_cameras_off: 3 | sequence: 4 | - service: switch.turn_off 5 | data: 6 | entity_id: switch.amcrestlrmotion 7 | - service: switch.turn_off 8 | data: 9 | entity_id: switch.amcrestgaragemotion 10 | inside_cameras_on: 11 | sequence: 12 | - service: switch.turn_on 13 | data: 14 | entity_id: switch.amcrestlrmotion 15 | - service: switch.turn_on 16 | data: 17 | entity_id: switch.amcrestgaragemotion 18 | outside_cameras_off: 19 | sequence: 20 | - service: switch.turn_off 21 | data: 22 | entity_id: switch.amcrestbackyardmotion 23 | - service: switch.turn_off 24 | data: 25 | entity_id: switch.amcrestfrontyardmotion 26 | outside_cameras_on: 27 | sequence: 28 | - service: switch.turn_on 29 | data: 30 | entity_id: switch.amcrestbackyardmotion 31 | - service: switch.turn_on 32 | data: 33 | entity_id: switch.amcrestfrontyardmotion 34 | morning_alarm: 35 | sequence: 36 | - service: homeassistant.turn_on 37 | entity_id: light.bedroom_light 38 | data: 39 | brightness: 100 40 | - service: homeassistant.turn_off 41 | entity_id: switch.noise_machine 42 | - service: media_player.select_source 43 | data: 44 | entity_id: media_player.spotify 45 | source: Bedroom Dot 46 | - service: media_player.play_media 47 | data: 48 | entity_id: media_player.spotify 49 | media_content_id: spotify:user:spotify:playlist:37i9dQZEVXcUMSdfp9xj29 50 | media_content_type: playlist 51 | - service: media_player.shuffle_set 52 | data: 53 | entity_id: media_player.spotify 54 | shuffle: true 55 | - service: media_player.media_next_track 56 | data: 57 | entity_id: media_player.spotify 58 | lightstrip_plex: 59 | sequence: 60 | - service: light.turn_on 61 | data: 62 | entity_id: light.lightstrip 63 | rgb_color: [255,255,255] 64 | brightness: 3 65 | - service: light.turn_on 66 | data: 67 | entity_id: light.lightstrip 68 | color_temp: 154 -------------------------------------------------------------------------------- /sensors.yaml: -------------------------------------------------------------------------------- 1 | #Sensors 2 | - platform: plex 3 | host: 192.168.1.2 4 | username: !secret plex_user 5 | password: !secret plex_pass 6 | 7 | - platform: darksky 8 | api_key: 433e7bcdee176830d6af6a63bca5dcf6 9 | latitude: 35.1166232 10 | longitude: -85.1380908 11 | monitored_conditions: 12 | - precip_intensity 13 | 14 | - platform: systemmonitor 15 | resources: 16 | - type: disk_use_percent 17 | arg: / 18 | - type: memory_free 19 | - type: processor_use 20 | - type: network_in 21 | arg: eth0 22 | - type: network_out 23 | arg: eth0 24 | - type: last_boot 25 | 26 | - platform: template 27 | sensors: 28 | hallway_motion: 29 | friendly_name: "Hallway Motion" 30 | value_template: '{% if is_state("binary_sensor.centralite_3305s_0405562d_1", "on") %} motion {% elif is_state("binary_sensor.centralite_3305s_0405562d_1", "off") %} clear {% else %} failed {% endif %}' 31 | porch_motion: 32 | friendly_name: "Porch Motion" 33 | value_template: '{% if is_state("binary_sensor.hallway_motion_sensor", "on") %} motion {% elif is_state("binary_sensor.hallway_motion_sensor", "off") %} clear {% else %} failed {% endif %}' 34 | garage_motion: 35 | friendly_name: "Garage Motion" 36 | value_template: '{% if is_state("binary_sensor.garage_motion_sensor", "on") %} motion {% elif is_state("binary_sensor.garage_motion_sensor", "off") %} clear {% else %} failed {% endif %}' 37 | kitchen_motion: 38 | friendly_name: "Kitchen Motion" 39 | value_template: '{% if is_state("binary_sensor.kitchen_motion_sensor", "on") %} motion {% elif is_state("binary_sensor.kitchen_motion_sensor", "off") %} clear {% else %} failed {% endif %}' 40 | front_door: 41 | friendly_name: "Front Door" 42 | value_template: '{% if is_state("binary_sensor.visonic_mct340_e_0b1219c2_1", "on") %} open {% elif is_state("binary_sensor.visonic_mct340_e_0b1219c2_1", "off") %} closed {% else %} failed {% endif %}' 43 | kitchen_door: 44 | friendly_name: "Kitchen Door" 45 | value_template: '{% if is_state("binary_sensor.visonic_mct340_e_0b110e25_1", "on") %} open {% elif is_state("binary_sensor.visonic_mct340_e_0b110e25_1", "off") %} closed {% else %} failed {% endif %}' 46 | back_garage_door: 47 | friendly_name: "Back Garage Door" 48 | value_template: '{% if is_state("binary_sensor.visonic_mct340_e_0b112478_1", "on") %} open {% elif is_state("binary_sensor.visonic_mct340_e_0b112478_1", "off") %} closed {% else %} failed {% endif %}' 49 | central_door: 50 | friendly_name: "Central Door" 51 | value_template: '{% if is_state("binary_sensor.visonic_mct340_e_0b3ba6c3_1", "on") %} open {% elif is_state("binary_sensor.visonic_mct340_e_0b3ba6c3_1", "off") %} closed {% else %} failed {% endif %}' 52 | kitchen_smoke_detector: 53 | value_template: >- 54 | {%- if is_state("sensor.kitchen_smoke_detector_alarm_type", "13") %} 55 | Idle 56 | {%- elif is_state("sensor.kitchen_smoke_detector_alarm_type", "1") %} 57 | Fire Detected 58 | {%- elif is_state("sensor.kitchen_smoke_detector_alarm_type", "2") %} 59 | Carbon Monoxide Detected 60 | {%- elif is_state("sensor.kitchen_smoke_detector_alarm_type", "12") %} 61 | Alarm Testing 62 | {% else %} 63 | Unknown 64 | {%- endif %} 65 | friendly_name: "Kitchen Smoke Detector" 66 | hallway_smoke_detector: 67 | value_template: >- 68 | {%- if is_state("sensor.hallway_smoke_detector_alarm_type", "13") %} 69 | Idle 70 | {%- elif is_state("sensor.hallway_smoke_detector_alarm_type", "1") %} 71 | Fire Detected 72 | {%- elif is_state("sensor.hallway_smoke_detector_alarm_type", "2") %} 73 | Carbon Monoxide Detected 74 | {%- elif is_state("sensor.hallway_smoke_detector_alarm_type", "12") %} 75 | Alarm Testing 76 | {% else %} 77 | Unknown 78 | {%- endif %} 79 | friendly_name: "Hallway Smoke Detector" 80 | garage_smoke_detector: 81 | value_template: >- 82 | {%- if is_state("sensor.garage_smoke_detector_alarm_type", "13") %} 83 | Idle 84 | {%- elif is_state("sensor.garage_smoke_detector_alarm_type", "1") %} 85 | Fire Detected 86 | {%- elif is_state("sensor.garage_smoke_detector_alarm_type", "2") %} 87 | Carbon Monoxide Detected 88 | {%- elif is_state("sensor.garage_smoke_detector_alarm_type", "12") %} 89 | Alarm Testing 90 | {% else %} 91 | Unknown 92 | {%- endif %} 93 | friendly_name: "Garage Smoke Detector" 94 | garage_smoke_detector_battery: 95 | friendly_name: 'Garage Smoke Detector Battery' 96 | value_template: '{{ states.zwave.garage_smoke_detector.attributes.battery_level }}' 97 | unit_of_measurement: '%' 98 | hallway_smoke_detector_battery: 99 | friendly_name: 'Hallway Smoke Detector Battery' 100 | value_template: '{{ states.zwave.hallway_smoke_detector.attributes.battery_level }}' 101 | unit_of_measurement: '%' 102 | kitchen_smoke_detector_battery: 103 | friendly_name: 'Kitchen Smoke Detector Battery' 104 | value_template: '{{ states.zwave.kitchen_smoke_detector.attributes.battery_level }}' 105 | unit_of_measurement: '%' 106 | thermostat_battery: 107 | friendly_name: 'Thermostat Battery' 108 | value_template: '{{ states.zwave.thermostat.attributes.battery_level }}' 109 | unit_of_measurement: '%' -------------------------------------------------------------------------------- /switches.yaml: -------------------------------------------------------------------------------- 1 | #Switches 2 | - platform: command_line 3 | switches: 4 | amcrestlrmotion: 5 | command_on: 'curl -k -u admin:REDACTED "http://192.168.1.7/cgi-bin/configManager.cgi?action=setConfig&MotionDetect\[0\].Enable=true"' 6 | command_off: 'curl -k -u admin:REDACTED "http://192.168.1.7/cgi-bin/configManager.cgi?action=setConfig&MotionDetect\[0\].Enable=false"' 7 | command_state: 'curl -k --silent -u admin:REDACTED "http://192.168.1.7/cgi-bin/configManager.cgi?action=getConfig&name=MotionDetect\[0\].Enable" | sed "s/^.*\(.\{5\}\)$/\1/"' 8 | value_template: '{{ value == "true" }}' 9 | friendly_name: Living Room Motion Detection 10 | amcrestgaragemotion: 11 | command_on: 'curl -k -u admin:REDACTED "http://192.168.1.8/cgi-bin/configManager.cgi?action=setConfig&MotionDetect\[0\].Enable=true"' 12 | command_off: 'curl -k -u admin:REDACTED "http://192.168.1.8/cgi-bin/configManager.cgi?action=setConfig&MotionDetect\[0\].Enable=false"' 13 | command_state: 'curl -k --silent -u admin:REDACTED "http://192.168.1.8/cgi-bin/configManager.cgi?action=getConfig&name=MotionDetect\[0\].Enable" | sed "s/^.*\(.\{5\}\)$/\1/"' 14 | value_template: '{{ value == "true" }}' 15 | friendly_name: Garage Motion Dection 16 | amcrestbackyardmotion: 17 | command_on: 'curl -k -u admin:REDACTED "http://192.168.1.9/cgi-bin/configManager.cgi?action=setConfig&MotionDetect\[0\].Enable=true"' 18 | command_off: 'curl -k -u admin:REDACTED "http://192.168.1.9/cgi-bin/configManager.cgi?action=setConfig&MotionDetect\[0\].Enable=false"' 19 | command_state: 'curl -k --silent -u admin:REDACTED "http://192.168.1.9/cgi-bin/configManager.cgi?action=getConfig&name=MotionDetect\[0\].Enable" | sed "s/^.*\(.\{5\}\)$/\1/"' 20 | value_template: '{{ value == "true" }}' 21 | friendly_name: Back Yard Motion Detection 22 | amcrestfrontyardmotion: 23 | command_on: 'curl -k -u admin:REDACTED "http://192.168.1.10/cgi-bin/configManager.cgi?action=setConfig&MotionDetect\[0\].Enable=true"' 24 | command_off: 'curl -k -u admin:REDACTED "http://192.168.1.10/cgi-bin/configManager.cgi?action=setConfig&MotionDetect\[0\].Enable=false"' 25 | command_state: 'curl -k --silent -u admin:REDACTED "http://192.168.1.10/cgi-bin/configManager.cgi?action=getConfig&name=MotionDetect\[0\].Enable" | sed "s/^.*\(.\{5\}\)$/\1/"' 26 | value_template: '{{ value == "true" }}' 27 | friendly_name: Front Yard Motion Detection 28 | 29 | - platform: template 30 | switches: 31 | noise_machine: 32 | value_template: '{% if is_state("switch.bedroom_receptacle_switch", "on") %} on {% elif is_state("switch.bedroom_receptacle_switch", "off") %} off {% else %} failed {% endif %}' 33 | friendly_name: "Noise Machine" 34 | turn_on: 35 | service: switch.turn_on 36 | entity_id: switch.bedroom_receptacle_switch 37 | turn_off: 38 | service: switch.turn_off 39 | entity_id: switch.bedroom_receptacle_switch 40 | 41 | - platform: xiaomi_vacuum 42 | name: 'Vacuum' 43 | host: 192.168.1.22 44 | token: !secret vacuum_token --------------------------------------------------------------------------------