diff --git a/README.md b/README.md index c01f85a..714d3df 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # Home-Assistant Config by [@thejeffreystone](http://www.twitter.com/thejeffreystone) [Home Assistant](https://home-assistant.io/) configuration files (YAMLs) -This is my Home Assistant Configuration and it is a work in progress. So much to add and so little time. +This is version 2 of my Home Assistant Configuration and it is a work in progress. -Currently I am running HA on a Dell Optiplex running Ubuntu 16.04. +Currently I am running HA on a Raspberry Pi 3. **Devices I have :** * Apple Devices (Macbooks, Mac Mini, iPhones, iPads) @@ -16,10 +16,16 @@ Currently I am running HA on a Dell Optiplex running Ubuntu 16.04. * [GoControl Z-Wave Bulbs](http://a.co/ajfXdIS) * [Cree Connect Bulbs](http://a.co/91ddysL) * [Foscam FI8918W](http://a.co/cExSWZ7) -* [ASUS RT-N66U](http://a.co/cCDuNkI) * [GoControl Z-Wave Garage Door Opener](http://a.co/iw3H4zQ) +* [ZWave Door Sensor]( http://a.co/4Uj8d5r) +* [Sonoff WiFi Wireless Smart Switch ]( http://a.co/9v8KnBT) +* Levitron Plug in ZWave Dimmer +* Levitron ZWave Switch +* Dome Motion Sensor +* Dome Door Window Sensor * AppleTv * ChromeCast +* Roku Streaming Stick **App Integrations** * Amazon Echo Skill @@ -28,36 +34,13 @@ Currently I am running HA on a Dell Optiplex running Ubuntu 16.04. * MQTT (For Smartthings and Owntracks) * Google Maps (For Traffic/Travel Times) * [Smartthings-MQTT-Bridge](https://github.com/stjohnjohnson/smartthings-mqtt-bridge) -* [Homebridge](https://github.com/nfarina/homebridge) -**Automations:** -``` -LOCATION AWARENESS: - Send notifications based on arrival and departure of zones as well as integration with Echo so Alexa can provide location when asked. - -SUNSET: - Turn on Outside lights and Living Room Lamp (100%) - -SUNRISE: - Turn off all lights - -SECURITY - When smoke is detected all lights turn on - -``` **Todo List** -* Move HA to RasberryPi 3. -* Move Automations currently handled by Smartthings to HA. -* Add LED Strips to stairs, kitchen cabinets. -* Add Slack notifications. -* ~~Add GoControl Z-Wave Garage Door Opener~~ +* Add LED Strips to stairs * Put Door Sensor in Mailbox -* Add scenes for various daily events and to streamline automation * Add RGB LED Bulbs to the lamps in the bedrooms and living areas * Add Motion detectors -* Add door sensors -* ~~Integrate with Google Maps to provide traffic and ETA for daily driving routes~~ * Add Smart locks to ensure all doors are locked. * Replace other Smoke Detectors with Z-Wave Detectors. diff --git a/configuration.yaml b/configuration.yaml index 9c53fb0..1c05e39 100755 --- a/configuration.yaml +++ b/configuration.yaml @@ -6,143 +6,135 @@ homeassistant: unit_system: imperial time_zone: America/New_York customize: !include customize.yaml -group: !include groups.yaml -automation: !include automation.yaml -sensor: !include_dir_merge_list sensors -light: !include_dir_merge_list lights -switch: !include_dir_merge_list switches -script: !include scripts.yaml -alexa: !include alexa/intents.yaml -input_select: !include input_select.yaml -scene: !include scenes.yaml + +frontend: + themes: + blue: + primary-color: "#356AA0" http: api_password: !secret MY_API_PASS - ssl_certificate: !secret SSL_CERT - ssl_key: !secret SSL_KEY + #ssl_certificate: !secret SSL_CERT + #ssl_key: !secret SSL_KEY + #base_url: !secret BASEURL + cors_allowed_origins: + - https://google.com + - https://home-assistant.io + use_x_forwarded_for: True + trusted_networks: + - 127.0.0.1 + - 192.168.7.0/24 + ip_ban_enabled: True + login_attempts_threshold: 5 -zone: - name: Home - latitude: !secret MY_LATITUDE - longitude: !secret MY_LONGITUDE - radius: 100 - icon: mdi:account-multiple +config: -zone 2: - name: Manheim - latitude: !secret WORK_LATITUDE - longitude: !secret WORK_LONGITUDE - radius: 500 - icon: mdi:office +conversation: -zone 3: - name: Zoo Atlanta - latitude: 33.7321545 - longitude: -84.3734925 - radius: 350 - icon: mdi:paw +device_tracker: + - platform: nmap_tracker + hosts: 192.168.7.1/24 + track_new_devices: yes + - platform: icloud + username: !secret ICLOUD_USER + password: !secret ICLOUD_PASS + track_new_devices: yes + - platform: geofency + - platform: owntracks + track_new_devices: yes + #- platform: bluetooth_tracker -zone 4: - name: Gump - latitude: 33.89261183797744 - longitude: -83.96071630537878 - radius: 200 - icon: mdi:school +discovery: -zone 5: - name: Pottery - latitude: 33.987571 - longitude: -84.0951167 - radius: 100 - icon: mdi:palette +updater: + #include_used_components: true -zone 6: - name: The Learning Gym - latitude: 33.8992118 - longitude: -84.0054688 - radius: 100 - icon: mdi:dumbbell +sun: -zone 7: - name: Gwinnett Swim - latitude: 34.1414549 - longitude: -83.9602195 - radius: 100 - icon: mdi:swim +#https://home-assistant.io/components/recorder/ +recorder: + purge_interval: 1 + purge_keep_days: 3 -zone 8: - name: Summit - latitude: !secret SUMMIT_LATITUDE - longitude: !secret SUMMIT_LONGITUDE - radius: 500 - icon: mdi:office +#https://home-assistant.io/components/logger/ +logger: + default: error + logs: + homeassistant.components.sensor.template: critical + homeassistant.components.cover: critical +history: + +#zwave: +# usb_path: /dev/ttyACM0 + +media_player: + - platform: cast + - platform: apple_tv + host: 192.168.7.23 + login_id: !secret apple_tv_login + - platform: roku + host: 192.168.7.52 + name: roku living room + - platform: vlc + name: hass_speaker + arguments: '--alsa-audio-device=hw:0,0' + +tts: + - platform: google + cache: true + cache_dir: /tmp/tts + time_memory: 300 + +notify: + - platform: ios + - name: all_ios + platform: group + services: + - service: ios_jeffreystonesiphone + - service: ios_jeffreystonesipad + - service: ios_katherinestonesiphone + - name: jeff_ios + platform: group + services: + - service: ios_jeffreystonesiphone + - service: ios_jeffreystonesipad + mqtt: - broker: 192.168.1.20 + broker: 192.168.7.24 port: 1883 username: !secret MQTT_USER password: !secret MQTT_PASS -# View all events in a logbook -logbook: -# Enables support for tracking state changes over time. -history: +### Includes ### +alert: !include_dir_merge_named alerts/ +group: !include groups.yaml +automation: !include_dir_merge_list automation +sensor: !include_dir_merge_list sensors +binary_sensor: !include_dir_merge_list binary_sensors +light: !include_dir_merge_list lights +switch: !include_dir_merge_list switches +script: !include_dir_merge_named scripts/ +intent_script: !include intents/intents.yaml +scene: !include scenes.yaml +input_select: !include input_select.yaml +input_boolean: !include input_boolean.yaml +zone: !include zones.yaml +ios: !include ios.yaml -# Enables the frontend -frontend: - -# Allows you to issue voice commands from the frontend -conversation: - -#camera: -# platform: mjpeg -# mjpeg_url: !secret CAMERA -# name: Skylars Room - -climate: - platform: honeywell - username: !secret HONEYWELL_USER - password: !secret HONEYWELL_PASS - name: First Floor - region: us - -device_tracker: - - platform: asuswrt - host: 192.168.1.1 - protocol: telnet - mode: router - username: !secret ROUTER_USER - password: !secret ROUTER_PASS - interval_seconds: 60 - consider_home: 180 - - platform: icloud - username: !secret ICLOUD_USER - password: !secret ICLOUD_PASS - interval_seconds: 60 - consider_home: 180 - - platform: bluetooth_tracker +duckdns: + domain: !secret duckdns_domain + access_token: !secret duckdns_token -notify: -# platform: googlevoice -# username: !secret GV_USER -# password: !secret GV_PASS -# name: googlevoice -# - platform: pushbullet -# api_key: !secret pushbullet_api - platform: ios +python_script: + +### Devices and Services ifttt: key: !secret IFTTT_API_KEY -media_player: - - platform: cast - host: 192.168.1.219 - - platform: apple_tv - host: 192.168.1.12 - login_id: !secret apple_tv_login - cover: - platform: mqtt name: "Garage Door" @@ -155,14 +147,23 @@ cover: retain: true optimistic: true -# Discover some devices automatically -discovery: +climate: + platform: honeywell + username: !secret HONEYWELL_USER + password: !secret HONEYWELL_PASS + name: First Floor + region: us + scan_interval: 600 -# Checks for available updates -updater: +alexa: -# Track the sun -sun: +map: + +### Custom Commands -# iOS -ios: +shell_command: + alarm_off: pkill mpg123 + tornado_alarm: mpg123 /media/audio/Tornado_Siren.mp3 + door_chime: mpg123 /media/audio/Store_Door_Chime.mp3 + security_alarm: mpg123 /media/audio/security_siren.mp3 + security_alarm_intro: mpg123 /media/audio/Siren_Noise.mp3 diff --git a/customize.yaml b/customize.yaml index c2de5fa..1455fd6 100755 --- a/customize.yaml +++ b/customize.yaml @@ -87,14 +87,25 @@ sensor.dark_sky_daily_max_precip_intensity: # Devices # -device_tracker.owntracks_jeffreysphone: +device_tracker.owntracks_jeffreystonesiphone: #icon: mdi:human-male entity_picture: !secret JEFF_ICON friendly_name: Jeff + +sensor.jeffrey_location: + #icon: mdi:human-male + entity_picture: !secret JEFF_ICON + friendly_name: Jeff + +sensor.jeff_destination: + icon: mdi:google-maps + name: "Jeffs Destination" + device_tracker.jeffreystonesiphone: #icon: mdi:human-male entity_picture: !secret JEFF_ICON friendly_name: Jeff + sensor.jeff_phone_battery: icon: mdi:battery-30 friendly_name: "Jeff's iPhone Battery" @@ -156,6 +167,9 @@ sensor.kat_ipad: sensor.appletv: icon: mdi:apple +sensor.roku: + icon: mdi:television + sensor.xboxone: icon: mdi:xbox @@ -196,22 +210,18 @@ switch.tower_lamp: switch.driveway_light: icon: mdi:lightbulb -switch.side_door_light: +switch.side_door: icon: mdi:lightbulb -switch.front_porch_left: +switch.front_porch: icon: mdi:lightbulb -switch.front_porch_right: +switch.front_lamp: icon: mdi:lightbulb -switch.rail_lights: +switch.loft_lamp: icon: mdi:lightbulb -sensor.garage_door: - - friendly_name: Garage Door - cover.garage_door: device_class: garage friendly_name: Garage Door @@ -227,3 +237,131 @@ sensor.home_to_zoo: sensor.pws_alerts: friendly_name: "Weather Alerts" icon: mdi:alert + +switch.master_fan: + friendly_name: "Master Box Fan" + icon: mdi:power-plug + +switch.house_secured: + name: House Secured + icon: mdi:lock + +switch.vacation_mode: + name: Vacation Mode + icon: mdi:airplane-takeoff + +switch.guest_mode: + name: Guest Mode + icon: mdi:account-multiple + +switch.notifications_to_kat: + name: Notify Katherine + icon: mdi:telegram + +switch.notifications_to_jeff: + name: Notify Jeff + icon: mdi:telegram + +switch.automations: + name: automations + icon: mdi:home-automation + +sensor.kitchen_fire: + name: Kitchen Smoke Detector + icon: mdi:tower-fire + +switch.garage_alarm: + name: Garage Door Alarm + icon: mdi:alert + +input_select.trash_pickup: + name: Trash Pickup + icon: mdi:delete-variant + +input_select.recycle_pickup: + name: Recycle Pickup + icon: mdi:delete-variant + +switch.trash_notification: + name: Trash Notifications + icon: mdi:telegram + +sensor.eero_loft: + icon: mdi:router-wireless + +sensor.eero_livingroom: + icon: mdi:router-wireless + +sensor.smoke_kitchen: + icon: mdi:fire + +sensor.family_status: + icon: mdi:home + name: Family Status + +sensor.ha_uptime: + friendly_name: HA Uptime + icon: mdi:clock-start + +sensor.installed_version: + friendly_name: Installed + icon: mdi:folder-download + +sensor.lets_encrypt_expiration: + friendly_name: Lets Encrypt Expiration + icon: mdi:timelapse + +sensor.current_ha_version: + friendly_name: Latest Release + icon: mdi:github-circle + +sensor.connected_clients: + friendly_name: Connections + icon: mdi:lan-connect + +zwave.aeotec_zw090_zstick_gen5_us: + friendly_name: Zwave USB Hub + +sensor.ha_v2db: + friendly_name: HA Database + icon: mdi:file + +sensor.ha_log: + friendly_name: HA Log + icon: mdi:file + +media_player.roku_5s6719003683: + friendly_name: Roku Living Room + icon: mdi:youtube-tv + +switch.kitchen_cabinets: + icon: mdi:lightbulb +switch.kitchen_light_strip: + icon: mdi:lightbulb +sensor.accurite_back_porch_temperature: + friendly_name: Back Porch Temp + icon: mdi:thermometer + unit_of_measurement: '°F' +sensor.accurite_back_porch_humidity: + friendly_name: Back Porch Humidity + icon: mdi:water-percent + unit_of_measurement: '%' +sensor.accurite_garage_temperature: + friendly_name: Garage Temp + icon: mdi:thermometer + unit_of_measurement: '°F' +sensor.accurite_garage_humidity: + friendly_name: Garage Humidity + icon: mdi:water-percent + unit_of_measurement: '%' +binary_sensor.garage_dome_sensor: + friendly_name: Garage Motion + +sensor.washer_power: + friendly_name: Washer Power + icon: mdi:power-plug + unit_of_measurement: 'w' +sensor.washer: + icon: mdi:power-plug +###### Groups ####### + diff --git a/groups.yaml b/groups.yaml index 094c6ce..8bac458 100755 --- a/groups.yaml +++ b/groups.yaml @@ -1,13 +1,40 @@ -### GROUPS ### +### Views ### default_view: name: Home view: yes icon: mdi:home entities: - - group.notices - - group.family - - group.weather_summary - - group.travel_times + - persistent_notification.wxalert + - group.house + - group.thermostat + - group.garage + - group.appliances + - group.pollen_forecast + - group.outside_temp + +security: + name: Security + view: yes + icon: mdi:security + entities: + - group.security_system + - group.security_alerts + - group.doors + - group.motion_sensors + - group.fire + +lights: + name: Lights + view: yes + icon: mdi:lightbulb + entities: + - group.living_room + - group.master_bedroom + - group.loft + - group.driveway + - group.front_porch + - group.kitchen + - group.scenes people: name: People @@ -16,73 +43,146 @@ people: entities: - group.jeffrey - group.katherine + - group.travel_times -living: - name: Living +media: + name: media view: yes - icon: mdi:sofa + icon: mdi:theater entities: - - group.living_lights - - group.living_scenes - - group.living_tv - - group.living_gaming + - group.tvs + - group.gaming - media_player.apple_tv - - media_player.chromecast_lr + - media_player.living_room_tv + - media_player.roku_5s6719003683 + - media_player.guest_tv -outdoors: - name: Outdoors +power: + name: power usage + view: yes + icon: mdi:power-plug + entities: + - group.laundry_room + +weather: + name: weather view: yes icon: mdi:tree entities: - - group.outside_lights + - group.weather_summary + - group.weather_alerts + - group.sun_and_moon + - group.weather_forecast + - group.pollen_forecast + - group.precipitation + - group.wind + - group.daily_stats -garage: - name: Garage - view: yes - icon: mdi:car - entities: - - group.garage_door -network: - name: Network +homeassistant: + name: HA view: yes - icon: mdi:network + icon: mdi:home-automation entities: + - group.ha_system_monitor + - group.ha_version_info + - group.file_size - group.internet - group.computers - group.home_automation - - group.servers -weather: - name: Weather +chores: + name: Chores view: yes - icon: mdi:weather-partlycloudy + icon: mdi:calendar entities: - - group.temperature - - group.precipitation - - group.wind - - group.daily_stats + - group.trash_schedule + +settings: + name: Settings + view: yes + icon: mdi:settings + entities: + - group.automations + - group.notifications ################################################################################# ### Grops ### -Notices: - - sensor.pws_alerts +Security Status: - sensor.garage_door + - binary_sensor.back_door + - binary_sensor.front_door + - binary_sensor.laundry_room_door + - binary_sensor.attic_door + - binary_sensor.garage_dome_sensor + - binary_sensor.garage_door + - sensor.smoke_kitchen + - sensor.attic_door + +Security Alerts: + control: hidden + entities: + - input_boolean.garage_issue + - input_boolean.security_alarm + - input_boolean.tornado_alarm + +Security System: + control: hidden + entities: + - sensor.security_status + - input_boolean.secure_mode + - input_boolean.vacation_mode + +House: + control: hidden + entities: + - sensor.house_status + - input_boolean.audible_notifications + - input_boolean.guest_mode + +Motion Sensors: + - binary_sensor.garage_dome_sensor + +Doors: + - binary_sensor.back_door + - binary_sensor.front_door + - binary_sensor.laundry_room_door + - binary_sensor.attic_door + - binary_sensor.garage_door + +Attic: + - binary_sensor.attic_door Family: - device_tracker.jeffreystonesiphone + - device_tracker.owntracks_jeffreystonesiphone - device_tracker.katherinestonesiphone Jeffrey: - - device_tracker.jeffreystonesiphone + control: hidden + entities: + - device_tracker.owntracks_jeffreystonesiphone + - sensor.jeff_lstatus + - sensor.jeff_destination - sensor.jeff_iphone_batt - sensor.jeff_ett_home - - input_select.jeff_status + - input_boolean.jeff_heading_home + - input_boolean.text_notify_jeff +Jeffrey Location: + control: hidden + entities: + - device_tracker.owntracks_jeffreystonesiphone + - device_tracker.jeffreystonesiphone + Katherine: + control: hidden + entities: - device_tracker.katherinestonesiphone - sensor.kat_iphone_batt - sensor.kat_ett_home + - input_boolean.kat_heading_home + - input_boolean.text_notify_kat Travel Times: - sensor.home_to_summit @@ -90,43 +190,77 @@ Travel Times: - sensor.jeff_ett_home - sensor.kat_ett_home - -Living Lights: +Living Room: - switch.fireplace_lights - light.tower_lamp - - switch.rail_lights + - light.front_lamp -Living Scenes: +Loft: + - light.loft_lamp + +Master Bedroom: + - switch.master_fan + +Laundry Room: + #- switch.washer + - sensor.washer_power + +Kitchen: + - light.kitchen_cabinets + - light.kitchen_light_strip + +Appliances: + - sensor.washer_status + +Scenes: - scene.livingroom_dim - scene.livingroom_night - scene.livingroom_normal + - scene.movie_time + - scene.dim_kitchen + - scene.normal_kitchen Outside Lights: - switch.driveway_light - - switch.side_door_light - - switch.front_porch_left - - switch.front_porch_right + - switch.side_door + - switch.front_porch + +Driveway: + - switch.driveway_light + - switch.side_door + +Front Porch: + - switch.front_porch Thermostat: - climate.first_floor Sun and Moon: - sun.sun + - sun.next_rising + - sun.next_setting - sensor.moon Weather Summary: - sensor.dark_sky_summary - sensor.dark_sky_apparent_temperature - sensor.dark_sky_humidity + - sensor.dark_sky_dew_point + - sensor.accurite_back_porch_temperature + - sensor.accurite_back_porch_humidity + + +Weather Forecast: - sensor.dark_sky_minutely_summary - sensor.dark_sky_hourly_summary - sensor.dark_sky_daily_summary -Temperature: - - sensor.dark_sky_temperature +Outside Temp: - sensor.dark_sky_apparent_temperature - sensor.dark_sky_humidity - sensor.dark_sky_dew_point + - sensor.accurite_back_porch_temperature + - sensor.accurite_back_porch_humidity Precipitation: - sensor.dark_sky_nearest_storm_distance @@ -151,24 +285,18 @@ Internet: - sensor.speedtest_download - sensor.speedtest_upload -#HVAC: -# - device_tracker.gateway2f3bca - Home Automation: - sensor.smartthings - sensor.amazon_dot_lr - sensor.amazon_dot_kn - sensor.honeywell + - sensor.eero_loft + - sensor.eero_livingroom #Cameras: # - device_tracker.ipcam_00626e46eb09_1 TVs: - sensor.samsungtv - -Living TV: - - sensor.samsungtv - -Living Gaming: - sensor.xboxone Computers: @@ -178,9 +306,73 @@ Computers: - sensor.kat_ipad - sensor.kat_mini -Servers: - - sensor.tycho - - sensor.tightbeam - Garage Door: - cover.garage_door + +Modes: + control: hidden + entities: + - input_boolean.secure_mode + - input_boolean.vacation_mode + - input_boolean.guest_mode + +Automation: + - input_boolean.automations + +Zones: + - binary_sensor.zone_3 + +Garage: + - cover.garage_door + - binary_sensor.garage_dome_sensor + - sensor.accurite_garage_temperature + - sensor.accurite_garage_humidity + +Fire: + - sensor.smoke_kitchen + +HA System Monitor: + - sensor.cpu + - sensor.disk_use_percent_ + - sensor.memory_use_percent + - sensor.network_in_eth0 + - sensor.network_out_eth0 + - sensor.last_boot + - sensor.ha_uptime + - sensor.lets_encrypt_expiration + +HA Version Info: + - sensor.installed_version + - sensor.current_ha_version + +File Size: + control: hidden + entities: + - sensor.ha_v2db + - sensor.ha_log + +#Zwave: +# - zwave.aeotec_zw090_zstick_gen5_us + +Weather Alerts: + control: hidden + entities: + - sensor.pws_alerts + - sensor.storm_statement + - sensor.tstorm_warning + - sensor.tornado_watch + - sensor.tornado_warning + +Pollen Alerts: + control: hidden + entities: + - sensor.allergy_index_average_forecasted + - sensor.allergy_index_average_historical + - sensor.allergy_index_today + - sensor.allergy_index_tomorrow + - sensor.cold__flu_forecasted_average + +Trash Schedule: + - input_select.trash_pickup + - input_select.recycle_pickup + - input_boolean.trash_notification diff --git a/input_boolean.yaml b/input_boolean.yaml new file mode 100644 index 0000000..478e326 --- /dev/null +++ b/input_boolean.yaml @@ -0,0 +1,77 @@ +secure_mode: + name: Secure Mode + icon: mdi:security +vacation_mode: + name: Vacation Mode + icon: mdi:airplane-takeoff +guest_mode: + name: Guest Mode + icon: mdi:account-multiple +automations: + name: Automations + icon: mdi:home-automation +trash_notification: + name: Trash Notification + icon: mdi:telegram +notifications_kat: + name: Notifications to Kat + icon: mdi:telegram +notifications_jeff: + name: Notifications to Jeff + icon: mdi:telegram +welcome_greeting: + name: Welcome Greeting + icon: mdi:speaker-wireless +lockdown_notification: + name: Lockdown Notifications + icon: mdi:speaker-wireless +garage_notifications: + name: Garage Notifications + icon: mdi:speaker-wireless +tornado_alarm: + name: Tornado Alarm + icon: mdi:speaker-wireless +tstorm_alarm: + name: T-Storm Alarm + icon: mdi:speaker-wireless +security_alarm: + name: Security Alarm + icon: mdi:speaker-wireless +fire_alarm: + name: Fire Alarm + icon: mdi:speaker-wireless +text_notify_jeff: + name: Send Jeff Texts + icon: mdi:telegram +text_notify_kat: + name: Send Kat Texts + icon: mdi:telegram +audible_notifications: + name: Audible Notifications + icon: mdi:speaker-wireless +presence_notifications_jeff: + name: Send Jeff Presence Texts + icon: mdi:telegram +presence_notifications_kat: + name: Send Kat Presence Texts + icon: mdi:telegram +garage_issue: + name: Garage Issue + icon: mdi:alert +security_issue: + name: Security Issue +kat_heading_home: + name: Kat Heading Home + icon: mdi:car +jeff_heading_home: + name: Jeff Heading Home + icon: mdi:car +washer_notification: + name: Washer Notification + icon: mdi:speaker-wireless +washer_running: + name: Washer Running + icon: mdi:speaker-wireless +skylar_notifications: + name: Skylar Audible Notifications + icon: mdi:speaker-wireless \ No newline at end of file diff --git a/input_select.yaml b/input_select.yaml index cb9d406..f27f22d 100755 --- a/input_select.yaml +++ b/input_select.yaml @@ -1,14 +1,26 @@ -jeff_status: - name: Jeff Status +alarm_mode: + name: alarm mode options: - - stationary - - moving - - unknown - initial: unknown -kat_status: - name: Kat Status + - home_armed + - away_armed + - disarmed +trash_pickup: + name: Trash Pickup options: - - stationary - - moving - - unknown - initial: unknown + - Monday + - Tuesday + - Wednesday + - Thursday + - Friday + initial: Tuesday + icon: mdi:delete-variant +recycle_pickup: + name: Recycle Pickup + options: + - Monday + - Tuesday + - Wednesday + - Thursday + - Friday + initial: Tuesday + icon: mdi:delete-variant \ No newline at end of file diff --git a/ios.yaml b/ios.yaml new file mode 100644 index 0000000..63e817a --- /dev/null +++ b/ios.yaml @@ -0,0 +1,50 @@ +push: + categories: + - name: Lamps Off + identifier: 'Lamps' + actions: + - identifier: 'LAMPS_OFF' + title: 'Lamps Off' + activationMode: 'background' + authenticationRequired: yes + destructive: yes + behavior: 'default' + - identifier: 'DISMISS' + title: 'Dismiss' + activationMode: 'background' + authenticationRequired: yes + destructive: no + behavior: 'default' + + - name: Htpc Off + identifier: 'Htpc' + actions: + - identifier: 'HTPC_OFF' + title: 'Htpc Off' + activationMode: 'background' + authenticationRequired: yes + destructive: yes + behavior: 'default' + - identifier: 'DISMISS' + title: 'Dismiss' + activationMode: 'background' + authenticationRequired: yes + destructive: no + behavior: 'default' + + - name: Dektop Off + identifier: 'Desktop' + actions: + - identifier: 'DESKTOP_OFF' + title: 'Desktop Off' + activationMode: 'background' + authenticationRequired: yes + destructive: yes + behavior: 'default' + - identifier: 'DISMISS' + title: 'Dismiss' + activationMode: 'background' + authenticationRequired: yes + destructive: no + behavior: 'default' + diff --git a/lights/kitchen.yaml b/lights/kitchen.yaml new file mode 100644 index 0000000..0198e30 --- /dev/null +++ b/lights/kitchen.yaml @@ -0,0 +1,19 @@ +- platform: mqtt + name: "Kitchen Cabinets" + state_topic: "smartthings/Kitchen Cabinets/switch" + command_topic: "smartthings/Kitchen Cabinets/switch" + brightness_state_topic: "smartthings/Kitchen Cabinets/level" + brightness_command_topic: "smartthings/Kitchen Cabinets/level" + brightness_scale: 101 + payload_on: "on" + payload_off: "off" + retain: true +- platform: mqtt + name: "Kitchen Light Strip" + state_topic: "smartthings/Kitchen Light Strip/switch" + command_topic: "smartthings/Kitchen Light Strip/switch" + brightness_state_topic: "smartthings/Kitchen Light Strip/level" + brightness_command_topic: "smartthings/Kitchen Light Strip/level" + payload_on: "on" + payload_off: "off" + retain: true diff --git a/lights/living_room.yaml b/lights/living_room.yaml index e99a71a..6f0dcd7 100755 --- a/lights/living_room.yaml +++ b/lights/living_room.yaml @@ -4,6 +4,17 @@ command_topic: "smartthings/Tower Lamp/switch" brightness_state_topic: "smartthings/Tower Lamp/level" brightness_command_topic: "smartthings/Tower Lamp/level" + brightness_scale: 101 + payload_on: "on" + payload_off: "off" + retain: true +- platform: mqtt + name: "Front Lamp" + state_topic: "smartthings/Front Lamp/switch" + command_topic: "smartthings/Front Lamp/switch" + brightness_state_topic: "smartthings/Front Lamp/level" + brightness_command_topic: "smartthings/Front Lamp/level" + brightness_scale: 101 payload_on: "on" payload_off: "off" retain: true \ No newline at end of file diff --git a/lights/loft.yaml b/lights/loft.yaml new file mode 100644 index 0000000..68fdb28 --- /dev/null +++ b/lights/loft.yaml @@ -0,0 +1,10 @@ +- platform: mqtt + name: "Loft Lamp" + state_topic: "smartthings/Loft Lamp/switch" + command_topic: "smartthings/Loft Lamp/switch" + brightness_state_topic: "smartthings/Loft Lamp/level" + brightness_command_topic: "smartthings/Loft Lamp/level" + brightness_scale: 101 + payload_on: "on" + payload_off: "off" + retain: true diff --git a/scenes.yaml b/scenes.yaml index a264188..bf655bd 100755 --- a/scenes.yaml +++ b/scenes.yaml @@ -3,14 +3,37 @@ light.tower_lamp: state: on brightness: 100 + light.front_lamp: + state: on + brightness: 100 - name: livingroom dim entities: light.tower_lamp: state: on brightness: 40 + light.front_lamp: + state: on + brightness: 40 - name: livingroom night entities: light.tower_lamp: state: on brightness: 10 - + light.front_lamp: + state: off +- name: movie time + entities: + light.tower_lamp: + state: off + light.front_lamp: + state: off +- name: dim kitchen + entities: + light.kitchen_cabinets: + state: on + brightness: 40 +- name: normal kitchen + entities: + light.kitchen_cabinets: + state: on + brightness: 100 \ No newline at end of file diff --git a/scripts/appliances_off.yaml b/scripts/appliances_off.yaml new file mode 100644 index 0000000..9793a3b --- /dev/null +++ b/scripts/appliances_off.yaml @@ -0,0 +1,5 @@ +appliances_off: + sequence: + - service: switch.turn_off + data: + entity_id: switch.master_fan diff --git a/scripts/appliances_on.yaml b/scripts/appliances_on.yaml new file mode 100644 index 0000000..112e593 --- /dev/null +++ b/scripts/appliances_on.yaml @@ -0,0 +1,5 @@ +appliances_on: + sequence: + - service: switch.turn_on + data: + entity_id: switch.master_fan diff --git a/scripts/driveway_off.yaml b/scripts/driveway_off.yaml new file mode 100644 index 0000000..e970fa1 --- /dev/null +++ b/scripts/driveway_off.yaml @@ -0,0 +1,12 @@ +# Turn off Driveway lights after 10 minute delay +driveway_off: + sequence: + - delay: + minutes: 10 + - service: switch.turn_off + data: + entity_id: switch.driveway_light + - service: switch.turn_off + data: + entity_id: switch.side_door + diff --git a/scripts/driveway_on.yaml b/scripts/driveway_on.yaml new file mode 100644 index 0000000..7ea7e71 --- /dev/null +++ b/scripts/driveway_on.yaml @@ -0,0 +1,12 @@ +driveway_on: + sequence: + - condition: state + entity_id: sun.sun + state: 'below_horizon' + - service: switch.turn_on + data: + entity_id: switch.driveway_light + - service: switch.turn_on + data: + entity_id: switch.side_door + diff --git a/scripts/family_is_away.yaml b/scripts/family_is_away.yaml new file mode 100644 index 0000000..3c51544 --- /dev/null +++ b/scripts/family_is_away.yaml @@ -0,0 +1,6 @@ +family_is_away: + sequence: + - service: mqtt.publish + data: + topic: "house/family/status" + payload_template: "away" diff --git a/scripts/family_is_home.yaml b/scripts/family_is_home.yaml new file mode 100644 index 0000000..0ae7fcb --- /dev/null +++ b/scripts/family_is_home.yaml @@ -0,0 +1,6 @@ +family_is_home: + sequence: + - service: mqtt.publish + data: + topic: "house/family/status" + payload_template: "home" diff --git a/scripts/fire_alarm_kitchen.yaml b/scripts/fire_alarm_kitchen.yaml new file mode 100644 index 0000000..60d4229 --- /dev/null +++ b/scripts/fire_alarm_kitchen.yaml @@ -0,0 +1,15 @@ +fire_alarm_kitchen: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "Smoke Detected: Kitchen" + - delay: + minutes: 1 + - service: notify.jeff_ios + data: + message: 'Smoke Detected in Kitchen.' + - service: tts.google_say + data: + entity_id: media_player.hass_speaker + message: Attention. Smoke detected in the kitchen. diff --git a/scripts/garage_abort_lockdown.yaml b/scripts/garage_abort_lockdown.yaml new file mode 100644 index 0000000..7693ffb --- /dev/null +++ b/scripts/garage_abort_lockdown.yaml @@ -0,0 +1,16 @@ +garage_abort_lockdown: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "SECURITY: Aborting Lockdown - Garage Could Not Close" + - condition: state + entity_id: input_boolean.secure_mode + state: "on" + - service: tts.google_say + data: + entity_id: media_player.hass_speaker + message: Garage was unable to close. + - service: input_boolean.turn_off + data: + entity_id: input_boolean.secure_mode diff --git a/scripts/garage_close.yaml b/scripts/garage_close.yaml new file mode 100644 index 0000000..b0acf61 --- /dev/null +++ b/scripts/garage_close.yaml @@ -0,0 +1,11 @@ +close_garage: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "HASS: Closing Garage" + - condition: state + entity_id: cover.garage_door + state: "open" + - service: cover.close_cover + entity_id: cover.garage_door \ No newline at end of file diff --git a/scripts/garage_closing.yaml b/scripts/garage_closing.yaml new file mode 100644 index 0000000..9d93b8b --- /dev/null +++ b/scripts/garage_closing.yaml @@ -0,0 +1,11 @@ +garage_closing: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "INFO: Garage Closing" + - service: tts.google_say + data: + entity_id: media_player.hass_speaker + message: Garage is Closing + diff --git a/scripts/garage_failed_to_close.yaml b/scripts/garage_failed_to_close.yaml new file mode 100644 index 0000000..397f896 --- /dev/null +++ b/scripts/garage_failed_to_close.yaml @@ -0,0 +1,13 @@ +garage_failed_to_close: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "WARN: Garage Could Not Close" + - condition: state + entity_id: sensor.garage_door_contact + state: "open" + - service: tts.google_say + data: + entity_id: media_player.hass_speaker + message: Garage was unable to close. diff --git a/scripts/garage_now_closed.yaml b/scripts/garage_now_closed.yaml new file mode 100644 index 0000000..36fde3a --- /dev/null +++ b/scripts/garage_now_closed.yaml @@ -0,0 +1,16 @@ +#garage_now_closed: +# sequence: +# - event: LOGBOOK_ENTRY +# event_data: +# name: EVENT +# message: "SUCCESS: Garage Now Closed" +# - condition: state +# entity_id: sensor.garage_door_contact +# state: "closed" + #- service: notify.jeff_ios + # data: + # message: 'SUCCESS: Garage Now Closed' + #- service: tts.google_say + # data: + # entity_id: media_player.hass_speaker + # message: Garage has been Closed. diff --git a/scripts/garage_open.yaml b/scripts/garage_open.yaml new file mode 100644 index 0000000..294fe74 --- /dev/null +++ b/scripts/garage_open.yaml @@ -0,0 +1,11 @@ +open_garage: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "opening the garage" + - condition: state + entity_id: cover.garage_door + state: "closed" + - service: cover.open_cover + entity_id: cover.garage_door diff --git a/scripts/inside_all_off.yaml b/scripts/inside_all_off.yaml index 5567941..bed85e0 100755 --- a/scripts/inside_all_off.yaml +++ b/scripts/inside_all_off.yaml @@ -1,8 +1,12 @@ -sequence: -- event: LOGBOOK_ENTRY - event_data: - name: EVENT - message: "Turning inside lights off." -- service: switch.turn_off - data: - entity_id: switch.tower_lamp +inside_all_off: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "Turning inside lights off" + - service: light.turn_off + data: + entity_id: light.tower_lamp + - service: light.turn_off + data: + entity_id: light.front_lamp diff --git a/scripts/inside_all_on.yaml b/scripts/inside_all_on.yaml index 30e4389..696a4b7 100755 --- a/scripts/inside_all_on.yaml +++ b/scripts/inside_all_on.yaml @@ -1,11 +1,15 @@ -sequence: -- event: LOGBOOK_ENTRY - event_data: - name: EVENT - message: "Turning inside lights on." -- service: switch.turn_on - data: - entity_id: switch.tower_lamp -- service: scene.turn_on - data: - entity_id: scene.livingroom_normal +inside_all_on: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "Turning inside lights on." + - service: light.turn_on + data: + entity_id: light.tower_lamp + - service: light.turn_on + data: + entity_id: light.front_lamp + - service: scene.turn_on + data: + entity_id: scene.livingroom_normal diff --git a/scripts/jeff_at_work_notification.yaml b/scripts/jeff_at_work_notification.yaml new file mode 100644 index 0000000..655a7f9 --- /dev/null +++ b/scripts/jeff_at_work_notification.yaml @@ -0,0 +1,8 @@ +jeff_at_work_notification: + sequence: + - condition: state + entity_id: input_boolean.text_notify_kat + state: "on" + - service: notify.ios_katherinestonesiphone + data: + message: Jeff has arrived at Summit diff --git a/scripts/jeff_destination_arrived.yaml b/scripts/jeff_destination_arrived.yaml new file mode 100644 index 0000000..d463025 --- /dev/null +++ b/scripts/jeff_destination_arrived.yaml @@ -0,0 +1,7 @@ +jeff_destination_arrived: + sequence: + - service: mqtt.publish + data: + topic: "jeff/driving/destination" + payload: "Arrived" + retain: true diff --git a/scripts/jeff_destination_harbins.yaml b/scripts/jeff_destination_harbins.yaml new file mode 100644 index 0000000..c782c7b --- /dev/null +++ b/scripts/jeff_destination_harbins.yaml @@ -0,0 +1,7 @@ +jeff_destination_harbins: + sequence: + - service: mqtt.publish + data: + topic: "jeff/driving/destination" + payload: "Harbins" + retain: true diff --git a/scripts/jeff_destination_home.yaml b/scripts/jeff_destination_home.yaml new file mode 100644 index 0000000..832bd27 --- /dev/null +++ b/scripts/jeff_destination_home.yaml @@ -0,0 +1,7 @@ +jeff_destination_home: + sequence: + - service: mqtt.publish + data: + topic: "jeff/driving/destination" + payload: "Home" + retain: true diff --git a/scripts/jeff_destination_na.yaml b/scripts/jeff_destination_na.yaml new file mode 100644 index 0000000..a42ea1d --- /dev/null +++ b/scripts/jeff_destination_na.yaml @@ -0,0 +1,7 @@ +jeff_destination_na: + sequence: + - service: mqtt.publish + data: + topic: "jeff/driving/destination" + payload: "na" + retain: true diff --git a/scripts/jeff_destination_none.yaml b/scripts/jeff_destination_none.yaml new file mode 100644 index 0000000..9788813 --- /dev/null +++ b/scripts/jeff_destination_none.yaml @@ -0,0 +1,7 @@ +jeff_destination_none: + sequence: + - service: mqtt.publish + data: + topic: "jeff/driving/destination" + payload: "none" + retain: true diff --git a/scripts/jeff_destination_summit.yaml b/scripts/jeff_destination_summit.yaml new file mode 100644 index 0000000..409b994 --- /dev/null +++ b/scripts/jeff_destination_summit.yaml @@ -0,0 +1,7 @@ +jeff_destination_summit: + sequence: + - service: mqtt.publish + data: + topic: "jeff/driving/destination" + payload: "Summit" + retain: true diff --git a/scripts/jeff_destination_zoo.yaml b/scripts/jeff_destination_zoo.yaml new file mode 100644 index 0000000..97c8b70 --- /dev/null +++ b/scripts/jeff_destination_zoo.yaml @@ -0,0 +1,7 @@ +jeff_destination_zoo: + sequence: + - service: mqtt.publish + data: + topic: "jeff/driving/destination" + payload: "Zoo" + retain: true diff --git a/scripts/jeff_is_home_audible.yaml b/scripts/jeff_is_home_audible.yaml new file mode 100644 index 0000000..95af1f8 --- /dev/null +++ b/scripts/jeff_is_home_audible.yaml @@ -0,0 +1,9 @@ +jeff_is_home_audible: + sequence: + - condition: state + entity_id: input_boolean.audible_notifications + state: "on" + - service: tts.google_say + data: + entity_id: media_player.hass_speaker + message: Jeffrey is home diff --git a/scripts/jeff_is_moving.yaml b/scripts/jeff_is_moving.yaml index 55c2147..0017dee 100755 --- a/scripts/jeff_is_moving.yaml +++ b/scripts/jeff_is_moving.yaml @@ -1,9 +1,7 @@ -sequence: -- event: LOGBOOK_ENTRY - event_data: - name: EVENT - message: "Jeff is Moving" -- service: input_select.select_option - data: - entity_id: input_select.jeff_status - option: moving +jeff_is_moving: + sequence: + - service: mqtt.publish + data: + topic: "jeff/location/status" + payload: "moving" + retain: true diff --git a/scripts/jeff_is_stationary.yaml b/scripts/jeff_is_stationary.yaml index 85ec446..07cbc30 100755 --- a/scripts/jeff_is_stationary.yaml +++ b/scripts/jeff_is_stationary.yaml @@ -1,9 +1,7 @@ -sequence: -- event: LOGBOOK_ENTRY - event_data: - name: EVENT - message: "Jeff is Stationary" -- service: input_select.select_option - data: - entity_id: input_select.jeff_status - option: stationary +jeff_is_stationary: + sequence: + - service: mqtt.publish + data: + topic: "jeff/location/status" + payload: "stationary" + retain: true diff --git a/scripts/kat_is_home_audible.yaml b/scripts/kat_is_home_audible.yaml new file mode 100644 index 0000000..5a86c41 --- /dev/null +++ b/scripts/kat_is_home_audible.yaml @@ -0,0 +1,9 @@ +kat_is_home_audible: + sequence: + - condition: state + entity_id: input_boolean.audible_notifications + state: "on" + - service: tts.google_say + data: + entity_id: media_player.hass_speaker + message: Katherine is home diff --git a/scripts/kill_audible_alarm.yaml b/scripts/kill_audible_alarm.yaml new file mode 100644 index 0000000..873a37b --- /dev/null +++ b/scripts/kill_audible_alarm.yaml @@ -0,0 +1,7 @@ +kill_audible_alarm: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "Silence Alarm" + - service: shell_command.alarm_off \ No newline at end of file diff --git a/scripts/lockdown.yaml b/scripts/lockdown.yaml new file mode 100644 index 0000000..db42fa9 --- /dev/null +++ b/scripts/lockdown.yaml @@ -0,0 +1,9 @@ +lockdown: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "SECURITY: Executing Lockdown procedures" + - service: input_boolean.turn_on + data: + entity_id: input_boolean.secure_mode diff --git a/scripts/lockdown_delay.yaml b/scripts/lockdown_delay.yaml new file mode 100644 index 0000000..79a5958 --- /dev/null +++ b/scripts/lockdown_delay.yaml @@ -0,0 +1,11 @@ +lockdown: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "SECURITY: Executing Lockdown in 5 mins" + - delay: + minutes: 5 + - service: input_boolean.turn_on + data: + entity_id: input_boolean.secure_mode diff --git a/scripts/outside_all_off.yaml b/scripts/outside_all_off.yaml index f77bbeb..d55cdd9 100755 --- a/scripts/outside_all_off.yaml +++ b/scripts/outside_all_off.yaml @@ -1,17 +1,15 @@ -sequence: -- event: LOGBOOK_ENTRY - event_data: - name: EVENT - message: "Turning outside lights off." -- service: switch.turn_off - data: - entity_id: switch.driveway_light -- service: switch.turn_off - data: - entity_id: switch.side_door_light -- service: switch.turn_off - data: - entity_id: switch.front_porch_left -- service: switch.turn_off - data: - entity_id: switch.front_porch_right +outside_all_off: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "Turning outside lights off." + - service: switch.turn_off + data: + entity_id: switch.driveway_light + - service: switch.turn_off + data: + entity_id: switch.side_door_light + - service: switch.turn_off + data: + entity_id: switch.front_porch diff --git a/scripts/outside_all_on.yaml b/scripts/outside_all_on.yaml index f6faf44..067d0d8 100755 --- a/scripts/outside_all_on.yaml +++ b/scripts/outside_all_on.yaml @@ -1,17 +1,16 @@ -sequence: -- event: LOGBOOK_ENTRY - event_data: - name: EVENT - message: "Turning outside lights on." -- service: switch.turn_on - data: - entity_id: switch.driveway_light -- service: switch.turn_on - data: - entity_id: switch.side_door_light -- service: switch.turn_on - data: - entity_id: switch.front_porch_left -- service: switch.turn_on - data: - entity_id: switch.front_porch_right +outside_all_on: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "Turning outside lights on." + - service: switch.turn_on + data: + entity_id: switch.driveway_light + - service: switch.turn_on + data: + entity_id: switch.side_door_light + - service: switch.turn_on + data: + entity_id: switch.front_porch + diff --git a/scripts/security_access_authorized.yaml b/scripts/security_access_authorized.yaml new file mode 100644 index 0000000..b90e666 --- /dev/null +++ b/scripts/security_access_authorized.yaml @@ -0,0 +1,13 @@ +security_access_authorized: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "Access Authorized: Security Measures Standing Down" + #- service: notify.jeff_ios + # data: + # message: 'Access Authorized: Security Measures Standing Down' + - service: tts.google_say + data: + entity_id: media_player.hass_speaker + message: Access Authorized. Security response has been canceled diff --git a/scripts/security_check_garage.yaml b/scripts/security_check_garage.yaml new file mode 100644 index 0000000..cc1f4f5 --- /dev/null +++ b/scripts/security_check_garage.yaml @@ -0,0 +1,18 @@ +security_check_garage: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "SECURITY: Performing Security check - Garage" + - condition: state + #entity_id: sensor.garage_door_contact + entity_id: cover.garage_door + state: "open" + - delay: + minutes: 1 + - service: input_boolean.turn_on + data: + entity_id: input_boolean.garage_issue + - service: input_boolean.turn_off + data: + entity_id: input_boolean.secure_mode diff --git a/scripts/security_check_verified.yaml b/scripts/security_check_verified.yaml new file mode 100644 index 0000000..1840e51 --- /dev/null +++ b/scripts/security_check_verified.yaml @@ -0,0 +1,16 @@ +security_check_verified: + sequence: + - condition: state + #entity_id: sensor.garage_door_contact + entity_id: cover.garage_door + state: "closed" + - condition: state + entity_id: group.doors + state: "closed" + - service: notify.jeff_ios + data: + message: "SECURITY: Lockdown procedures Complete" + - service: homeassistant.turn_off + entity_id: script.security_check_zones + - service: homeassistant.turn_off + entity_id: script.security_check_garage diff --git a/scripts/security_check_zones.yaml b/scripts/security_check_zones.yaml new file mode 100644 index 0000000..83631b1 --- /dev/null +++ b/scripts/security_check_zones.yaml @@ -0,0 +1,17 @@ +security_check_zones: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "SECURITY: Performing Security check - Zones" + - condition: state + entity_id: group.doors + state: "Open" + - delay: + seconds: 20 + - service: input_boolean.turn_off + data: + entity_id: input_boolean.secure_mode + - service: input_boolean.turn_on + data: + entity_id: input_boolean.security_issue diff --git a/scripts/security_report.yaml b/scripts/security_report.yaml new file mode 100644 index 0000000..f3ec4fc --- /dev/null +++ b/scripts/security_report.yaml @@ -0,0 +1,31 @@ +security_report: + sequence: + - delay: + seconds: 9 + - service: tts.google_say + data_template: + entity_id: media_player.hass_speaker + message: > + {%- if is_state("input_boolean.security_alarm", "on") %} + {%- if is_state("binary_sensor.front_door", "on") %} + Front door is open + {%- endif %} + {%- if is_state("binary_sensor.back_door", "on") %} + Back door is open + {%- endif %} + {%- if is_state("binary_sensor.laundry_room_door", "on") %} + Laundry door is open + {%- endif %} + {%- if is_state("binary_sensor.attic_door", "on") %} + Attic door is open + {%- endif %} + {%- if is_state("binary_sensor.garage_door", "on") %} + Garage door is open + {%- endif %} + {%- if is_state("binary_sensor.garage_motion", "on") %} + Motion in garage + {%- endif %} + {% else %} + House is secure + {%- endif %} + \ No newline at end of file diff --git a/scripts/security_sound_alarm.yaml b/scripts/security_sound_alarm.yaml new file mode 100644 index 0000000..00bec31 --- /dev/null +++ b/scripts/security_sound_alarm.yaml @@ -0,0 +1,9 @@ +security_sound_alarm: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "Sounding Security Alarm" + - delay: + seconds: 80 + - service: shell_command.security_alarm diff --git a/scripts/security_sound_alarm_intro.yaml b/scripts/security_sound_alarm_intro.yaml new file mode 100644 index 0000000..d2bc2c9 --- /dev/null +++ b/scripts/security_sound_alarm_intro.yaml @@ -0,0 +1,10 @@ +security_sound_alarm_intro: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "Sounding Security Alarm Intro" + - condition: state + entity_id: sensor.family_status + state: home + - service: shell_command.security_alarm_intro diff --git a/scripts/security_warning_back_door.yaml b/scripts/security_warning_back_door.yaml new file mode 100644 index 0000000..a8e397d --- /dev/null +++ b/scripts/security_warning_back_door.yaml @@ -0,0 +1,12 @@ +security_warning_back_door: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "Warning: Back door open" + - delay: + seconds: 5 + - service: tts.google_say + data: + entity_id: media_player.hass_speaker + message: Back door open diff --git a/scripts/security_warning_front_door.yaml b/scripts/security_warning_front_door.yaml new file mode 100644 index 0000000..b4ee072 --- /dev/null +++ b/scripts/security_warning_front_door.yaml @@ -0,0 +1,12 @@ +security_warning_front_door: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "Warning: Front door open" + - delay: + seconds: 5 + - service: tts.google_say + data: + entity_id: media_player.hass_speaker + message: front door open diff --git a/scripts/security_warning_garage_door.yaml b/scripts/security_warning_garage_door.yaml new file mode 100644 index 0000000..bc693f9 --- /dev/null +++ b/scripts/security_warning_garage_door.yaml @@ -0,0 +1,12 @@ +security_warning_garage_door: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "Warning: Front door open" + - delay: + seconds: 5 + - service: tts.google_say + data: + entity_id: media_player.hass_speaker + message: Garage is open diff --git a/scripts/security_warning_garage_motion.yaml b/scripts/security_warning_garage_motion.yaml new file mode 100644 index 0000000..34091db --- /dev/null +++ b/scripts/security_warning_garage_motion.yaml @@ -0,0 +1,12 @@ +security_warning_garage_motion: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "Warning: Motion in Garage" + - delay: + seconds: 5 + - service: tts.google_say + data: + entity_id: media_player.hass_speaker + message: Motion in Garage diff --git a/scripts/security_warning_laundry_door.yaml b/scripts/security_warning_laundry_door.yaml new file mode 100644 index 0000000..2661012 --- /dev/null +++ b/scripts/security_warning_laundry_door.yaml @@ -0,0 +1,12 @@ +security_warning_front_door: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "Warning: Laundry room door open" + - delay: + seconds: 5 + - service: tts.google_say + data: + entity_id: media_player.hass_speaker + message: Laundry Room door open \ No newline at end of file diff --git a/scripts/skylar_dressed_notifications.yaml b/scripts/skylar_dressed_notifications.yaml new file mode 100644 index 0000000..3cba9bb --- /dev/null +++ b/scripts/skylar_dressed_notifications.yaml @@ -0,0 +1,9 @@ +skylar_dressed_notifications: + sequence: + - condition: state + entity_id: sensor.family_status + state: home + - service: tts.google_say + data: + entity_id: media_player.hass_speaker + message: Skylar it is time to get dressed diff --git a/scripts/standby.yaml b/scripts/standby.yaml new file mode 100644 index 0000000..ca27095 --- /dev/null +++ b/scripts/standby.yaml @@ -0,0 +1,12 @@ +standby: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "Security standing down" + - service: input_boolean.turn_off + data: + entity_id: input_boolean.secure_mode + - service: notify.jeff_ios + data: + message: Anchorage House in Standby diff --git a/scripts/status_report.yaml b/scripts/status_report.yaml new file mode 100644 index 0000000..20b2b7f --- /dev/null +++ b/scripts/status_report.yaml @@ -0,0 +1,17 @@ +status_report: + sequence: + - service: tts.google_say + data_template: + entity_id: media_player.hass_speaker + message: > + {% if now().strftime("%H")|int < 12 %} + Good morning + {% elif now().strftime("%H")|int < 18 %} + Good afternoon + {% else %} + Good evening + {% endif %} + It's {{now().strftime("%H%M")}} + It's currently {{states.sensor.dark_sky_summary.state}} and {{states.sensor.dark_sky_temperature.state|round}} + degrees in Grayson. Today will be {{states.sensor.dark_sky_hourly_summary.state|replace(".", "")}}, with a high of + {{states.sensor.dark_sky_daily_high_temperature.state|round}} degrees. diff --git a/scripts/test_tts.yaml b/scripts/test_tts.yaml new file mode 100644 index 0000000..b2ad174 --- /dev/null +++ b/scripts/test_tts.yaml @@ -0,0 +1,14 @@ +test_tts: + sequence: + - service: tts.google_say + data_template: + entity_id: media_player.hass_speaker + message: > + {% if now().strftime("%H")|int < 12 %} + Good morning + {% elif now().strftime("%H")|int < 18 %} + Good afternoon + {% else %} + Good evening + {% endif %} + This is simply a test of google's text to speech platform diff --git a/scripts/tornado_alarm.yaml b/scripts/tornado_alarm.yaml new file mode 100644 index 0000000..72149c3 --- /dev/null +++ b/scripts/tornado_alarm.yaml @@ -0,0 +1,12 @@ +tornado_alarm: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "Sounding Tornado Alarm" + - delay: + seconds: 15 + - service: shell_command.tornado_alarm + + + \ No newline at end of file diff --git a/scripts/tornado_warning.yaml b/scripts/tornado_warning.yaml new file mode 100644 index 0000000..79120bb --- /dev/null +++ b/scripts/tornado_warning.yaml @@ -0,0 +1,13 @@ +tornado_warning: + sequence: + - event: LOGBOOK_ENTRY + event_data: + name: EVENT + message: "Tornado Warning" + #- service: notify.jeff_ios + # data: + # message: 'Tornado Warning Issued for Anchorage House.' + - service: tts.google_say + data: + entity_id: media_player.hass_speaker + message: Atention. Severe Weather Alert. A Tornado Warning has been issued for this area. Repeat. A Tornado Warning has been issued for this area. Sounding Alarm. diff --git a/scripts/vacation_canceled.yaml b/scripts/vacation_canceled.yaml new file mode 100644 index 0000000..8e7488d --- /dev/null +++ b/scripts/vacation_canceled.yaml @@ -0,0 +1,8 @@ +vacation_canceled: + sequence: + - condition: state + entity_id: input_boolean.vacation_mode + state: "on" + - service: input_boolean.turn_off + data: + entity_id: input_boolean.vacation_mode diff --git a/scripts/washer_finished_notification.yaml b/scripts/washer_finished_notification.yaml new file mode 100644 index 0000000..2f0b214 --- /dev/null +++ b/scripts/washer_finished_notification.yaml @@ -0,0 +1,14 @@ +washer_finished_notification: + sequence: + - condition: state + entity_id: input_boolean.washer_notification + state: 'on' + - delay: + minutes: 3 + - service: notify.all_ios + data: + message: "Washer is done" + - service: input_boolean.turn_off + data: + entity_id: input_boolean.washer_notification + - service: script.washer_notification_audible diff --git a/scripts/washer_notification_audible.yaml b/scripts/washer_notification_audible.yaml new file mode 100644 index 0000000..80ab5c7 --- /dev/null +++ b/scripts/washer_notification_audible.yaml @@ -0,0 +1,10 @@ +washer_notification_audible: + sequence: + - condition: state + entity_id: input_boolean.audible_notifications + state: "on" + - service: tts.google_say + data: + entity_id: media_player.hass_speaker + message: The Washing Machine has stopped + diff --git a/scripts/wxalert_tile.yaml b/scripts/wxalert_tile.yaml new file mode 100644 index 0000000..fb4c440 --- /dev/null +++ b/scripts/wxalert_tile.yaml @@ -0,0 +1,17 @@ +wxalert_tile: + sequence: + ## Dismiss any current alert so the UI isn't filled + ## up with these if there are more then one. + ## Only show the latest alert + - service: persistent_notification.dismiss + data: + notification_id: "wxalert" + ## Create a new persistant notification in the UI for a new alert + - service_template: > + {% if states.sensor.pws_alerts.attributes.Message %} + persistent_notification.create + {% endif %} + data_template: + notification_id: "wxalert" + message: '{{ states.sensor.pws_alerts.attributes.Message }}' + title: '{{ states.sensor.pws_alerts.attributes.Description }}' \ No newline at end of file diff --git a/sensors/batteries.yaml b/sensors/batteries.yaml new file mode 100644 index 0000000..9317088 --- /dev/null +++ b/sensors/batteries.yaml @@ -0,0 +1,32 @@ +- platform: mqtt + name: "Front Door Battery" + state_topic: "smartthings/Front Door/battery" +- platform: mqtt + name: "Laundry Door Battery" + state_topic: "smartthings/Laundry Room Door/battery" +- platform: mqtt + name: "Kitchen Smoke Battery" + state_topic: "smartthings/Kitchen Smoke/battery" +- platform: mqtt + name: "Back Door Battery" + state_topic: "smartthings/Back Door/battery" +- platform: template + sensors: + jeff_iphone_batt: + unit_of_measurement: '%' + value_template: >- + {%- if states.device_tracker.jeffreystonesiphone.attributes.battery %} + {{ states.device_tracker.jeffreystonesiphone.attributes.battery | round(1) }} + {% else %} + {{ states.sensor.jeff_iphone_batt.state }} + {%- endif %} + icon_template: '{%- if is_state("sensor.jeff_iphone_batt", "unknown") %}mdi:battery-unknown{%- elif is_state_attr("device_tracker.jeffreystonesiphone", "battery_status", "Charging") %}mdi:battery-charging{%- elif states.device_tracker.jeffreystonesiphone.attributes.battery <= 5 %}mdi:battery-outline{%- elif states.device_tracker.jeffreystonesiphone.attributes.battery >= 95 %}mdi:battery{% else %}mdi:battery-{{(states.device_tracker.jeffreystonesiphone.attributes.battery|float / 10)|round*10}}{%- endif %}' + kat_iphone_batt: + unit_of_measurement: '%' + value_template: >- + {%- if states.device_tracker.katherinestonesiphone.attributes.battery %} + {{ states.device_tracker.katherinestonesiphone.attributes.battery | round(1) }} + {% else %} + {{ states.sensor.kat_iphone_batt.state }} + {%- endif %} + icon_template: '{%- if is_state("sensor.kat_iphone_batt", "unknown") %}mdi:battery-unknown{%- elif is_state_attr("device_tracker.katherinestonesiphone", "battery_status", "Charging") %}mdi:battery-charging{%- elif states.device_tracker.katherinestonesiphone.attributes.battery <= 5 %}mdi:battery-outline{%- elif states.device_tracker.katherinestonesiphone.attributes.battery >= 95 %}mdi:battery{% else %}mdi:battery-{{(states.device_tracker.katherinestonesiphone.attributes.battery|float / 10)|round*10}}{%- endif %}' diff --git a/sensors/devices.yaml b/sensors/devices.yaml index 97b4331..79036d9 100755 --- a/sensors/devices.yaml +++ b/sensors/devices.yaml @@ -2,15 +2,11 @@ sensors: amazon_dot_lr: friendly_name: 'Amazon Dot LR' - value_template: "{{ 'Online' if is_state('device_tracker.kindlecdf98981f', 'home') else 'Offline' }}" + value_template: "{{ 'Online' if is_state('device_tracker.dot_livingroom', 'home') else 'Offline' }}" amazon_dot_kn: friendly_name: 'Amazon Dot KN' - value_template: "{{ 'Online' if is_state('device_tracker.kindle23d7b37a0', 'home') else 'Offline' }}" - - circle: - friendly_name: 'Disney Circle' - value_template: "{{ 'Online' if is_state('device_tracker.circle', 'home') else 'Offline' }}" + value_template: "{{ 'Online' if is_state('device_tracker.dot_kitchen', 'home') else 'Offline' }}" tycho: friendly_name: 'tycho' @@ -28,9 +24,9 @@ friendly_name: 'xboxone' value_template: "{{ 'Online' if is_state('device_tracker.xboxone', 'home') else 'Offline' }}" - chromecast: - friendly_name: 'Chromecast' - value_template: "{{ 'On' if is_state('media_player.chromecast_lr', 'on') else 'Off' }}" + chromecast_livingroom: + friendly_name: 'Chromecast - Living Room' + value_template: "{{ 'On' if is_state('media_player.chromecast_livingroom', 'on') else 'Off' }}" smartthings: friendly_name: 'SmartThings' @@ -44,10 +40,6 @@ friendly_name: 'Honeywell' value_template: "{{ 'Online' if is_state('device_tracker.gateway2f3bca', 'home') else 'Offline' }}" - router: - friendly_name: 'Asus Router' - value_template: "{{ 'Online' if is_state('device_tracker.routerasuscom', 'home') else 'Offline' }}" - kat_mini: friendly_name: "Kat's Mini" value_template: "{{ 'Online' if is_state('device_tracker.katherinesmini', 'home') else 'Offline' }}" @@ -68,22 +60,36 @@ friendly_name: "Kat's iPad" value_template: "{{ 'Online' if is_state('device_tracker.katherinesipad', 'home') else 'Offline' }}" - jeff_iphone_batt: - unit_of_measurement: '%' - value_template: >- - {%- if states.device_tracker.jeffreystonesiphone.attributes.battery %} - {{ states.device_tracker.jeffreystonesiphone.attributes.battery | round(1) }} - {% else %} - {{ states.sensor.jeff_iphone_batt.state }} - {%- endif %} - icon_template: '{%- if is_state("sensor.jeff_iphone_batt", "unknown") %}mdi:battery-unknown{%- elif is_state_attr("device_tracker.jeffreystonesiphone", "battery_status", "Charging") %}mdi:battery-charging{%- elif states.device_tracker.jeffreystonesiphone.attributes.battery <= 5 %}mdi:battery-outline{%- elif states.device_tracker.jeffreystonesiphone.attributes.battery >= 95 %}mdi:battery{% else %}mdi:battery-{{(states.device_tracker.jeffreystonesiphone.attributes.battery|float / 10)|round*10}}{%- endif %}' + eero_livingroom: + friendly_name: "Eero Living Room" + value_template: "{{ 'Online' if is_state('device_tracker.eero_livingroom', 'home') else 'Offline' }}" - kat_iphone_batt: - unit_of_measurement: '%' + eero_loft: + friendly_name: "Eero Loft" + value_template: "{{ 'Online' if is_state('device_tracker.eero_loft', 'home') else 'Offline' }}" + + smoke_kitchen: + friendly_name: "Kitchen Smoke" + value_template: "{{ 'Smoke Detected!' if is_state('device_tracker.eero_loft', 'smoke') else 'All Clear' }}" + + security_status: + friendly_name: 'Security System' + value_template: '{{ "Armed" if is_state("input_boolean.secure_mode", "on") else "Disarmed" }}' + icon_template: '{%- if is_state("input_boolean.secure_mode", "on") %}mdi:lock{% else %}mdi:lock-open{%- endif %}' + + garage_motion: + friendly_name: "Garage Motion" + value_template: "{{ 'open' if is_state('sensor.garage_dome_sensor', 'motion') else 'clear' }}" + + washer_status: + friendly_name: "Washer Status" value_template: >- - {%- if states.device_tracker.katherinestonesiphone.attributes.battery %} - {{ states.device_tracker.katherinestonesiphone.attributes.battery | round(1) }} - {% else %} - {{ states.sensor.kat_iphone_batt.state }} - {%- endif %} - icon_template: '{%- if is_state("sensor.kat_iphone_batt", "unknown") %}mdi:battery-unknown{%- elif is_state_attr("device_tracker.katherinestonesiphone", "battery_status", "Charging") %}mdi:battery-charging{%- elif states.device_tracker.katherinestonesiphone.attributes.battery <= 5 %}mdi:battery-outline{%- elif states.device_tracker.katherinestonesiphone.attributes.battery >= 95 %}mdi:battery{% else %}mdi:battery-{{(states.device_tracker.katherinestonesiphone.attributes.battery|float / 10)|round*10}}{%- endif %}' + {% if states('sensor.washer_power') | float > 2 %} + running + {% else %} + idle + {%endif %} + icon_template: mdi:washing-machine + + + diff --git a/sensors/google_travel_time.yaml b/sensors/google_travel_time.yaml index 7fdb287..e9d094e 100755 --- a/sensors/google_travel_time.yaml +++ b/sensors/google_travel_time.yaml @@ -1,7 +1,7 @@ - platform: google_travel_time name: "Jeff ETT Home" api_key: !secret google_api - origin: device_tracker.jeffreystonesiphone + origin: device_tracker.owntracks_jeffreystonesiphone destination: zone.home - platform: google_travel_time name: "Kat ETT Home" diff --git a/sensors/house.yaml b/sensors/house.yaml new file mode 100644 index 0000000..e9292de --- /dev/null +++ b/sensors/house.yaml @@ -0,0 +1,25 @@ +- platform: mqtt + name: "Family Status" + state_topic: "house/family/status" + payload_on: "home" + payload_off: "away" + retain: true +- platform: template + sensors: + house_status: + friendly_name: Status + unit_of_measurement: '' + value_template: >- + {%- if is_state("sensor.family_status", "home") %} + Home ({{ states.sensor.security_status.state }}) + {% else %} + Away ({{ states.sensor.security_status.state }}) + {%- endif %} + icon_template: >- + {%- if is_state("sensor.family_status", "home") %} + mdi:home + {%- elif is_state("sensor.family_status", "away") %} + mdi:home-outline + {% else %} + mdi:home-outline + {%- endif %} \ No newline at end of file diff --git a/sensors/owntracks.yaml b/sensors/owntracks.yaml index 091c303..d855014 100755 --- a/sensors/owntracks.yaml +++ b/sensors/owntracks.yaml @@ -1,12 +1,13 @@ - platform: mqtt name: "Jeff Phone Battery" - state_topic: "owntracks/owntracks/jeffreysphone" + state_topic: "owntracks/owntracks/jeffreystonesiphone" qos: 0 unit_of_measurement: "%" value_template: '{{ value_json.batt }}' - platform: mqtt name: "Jeff Velocity" - state_topic: "owntracks/owntracks/jeffreysphone" + state_topic: "owntracks/owntracks/jeffreystonesiphone" qos: 0 - unit_of_measurement: "mph" + unit_of_measurement: "kmh" value_template: '{{ value_json.vel }} ' + diff --git a/sensors/power.yaml b/sensors/power.yaml new file mode 100644 index 0000000..5c6c937 --- /dev/null +++ b/sensors/power.yaml @@ -0,0 +1,4 @@ +- platform: mqtt + name: "Washer Power" + state_topic: "smartthings/Washer/power" + retain: true diff --git a/sensors/presence.yaml b/sensors/presence.yaml new file mode 100644 index 0000000..eb6b536 --- /dev/null +++ b/sensors/presence.yaml @@ -0,0 +1,12 @@ +- platform: mqtt + name: "Kat Presence" + state_topic: "smartthings/Kat/presence" + payload_on: "present" + payload_off: "not present" + retain: true +- platform: mqtt + name: "Jeff Presence" + state_topic: "smartthings/Jeffrey/presence" + payload_on: "present" + payload_off: "not present" + retain: true \ No newline at end of file diff --git a/sensors/security.yaml b/sensors/security.yaml new file mode 100644 index 0000000..3ed2c39 --- /dev/null +++ b/sensors/security.yaml @@ -0,0 +1,9 @@ +- platform: mqtt + name: "Lockdown Status" + state_topic: "house/lockdown/status" +- platform: mqtt + name: "Kitchen Smoke" + state_topic: "smartthings/Kitchen Smoke/smoke" + payload_on: "smoke" + payload_off: "clear" + retain: true \ No newline at end of file diff --git a/sensors/system.yaml b/sensors/system.yaml new file mode 100644 index 0000000..607fcc0 --- /dev/null +++ b/sensors/system.yaml @@ -0,0 +1,57 @@ +- platform: systemmonitor + resources: + - type: disk_use_percent + arg: / + - type: memory_use_percent + - type: network_in + arg: eth0 + - type: network_out + arg: eth0 + - type: last_boot + - type: load_15m + - type: processor_use + - type: since_last_boot +- platform: cpuspeed + name: CPU +- platform: time_date + display_options: + - 'time' + - 'date' + - 'date_time' + - 'time_date' + - 'time_utc' + - 'beat' +- platform: cert_expiry + host: !secret BASEURL + name: Lets Encrypt Expiration +- platform: command_line + name: "HA Uptime" + command: echo "$(($(date +%s) - $(date -d "$(head -n1 /home/homeassistant/.homeassistant/home-assistant.log | cut -d' ' -f-2)" +%s)))" + scan_interval: 720 + value_template: >- + {% set uptime = value | int %} + {% set seconds = uptime % 60 %} + {% set minutes = ((uptime % 3600) / 60) | int %} + {% set hours = ((uptime % 86400) / 3600) | int %} + {% set days = (uptime / 86400) | int %} + {%- if days > 0 -%} + {%- if days == 1 -%} + 1 day + {%- else -%} + {{ days }} days + {%- endif -%} + {{ ', ' }} + {%- endif -%} + {{ '%02d' % hours }}:{{ '%02d' % minutes }} +- platform: command_line + command: python3 -c "import requests; print(requests.get('https://pypi.python.org/pypi/homeassistant/json').json()['info']['version'])" + name: Current HA Version +- platform: command_line + name: Installed version + command: "head -5 /home/homeassistant/.homeassistant/.HA_VERSION" +- platform: command_line + name: ha_v2db + command: "ls -sh /home/homeassistant/.homeassistant/home-assistant_v2.db | cut -f1 -d ' '" +- platform: command_line + name: ha_log + command: "ls -sh /home/homeassistant/.homeassistant/home-assistant.log | cut -f1 -d ' '" diff --git a/sensors/users.yaml b/sensors/users.yaml new file mode 100644 index 0000000..f365f5b --- /dev/null +++ b/sensors/users.yaml @@ -0,0 +1,45 @@ +- platform: mqtt + name: "Jeff Destination" + state_topic: "jeff/driving/destination" +- platform: mqtt + name: "Jeff Status" + state_topic: "jeff/location/status" +- platform: template + sensors: + jeff_lstatus: + friendly_name: Jeff is + unit_of_measurement: '' + value_template: >- + {%- if is_state("sensor.jeff_status", "moving") %} + moving + {% else %} + stationary + {%- endif %} + icon_template: >- + {%- if is_state("sensor.jeff_status", "moving") %} + mdi:bike + {% else %} + mdi:map-marker + {%- endif %} +- platform: template + sensors: + family_presence: + friendly_name: Family Presence + unit_of_measurement: '' + value_template: >- + {%- if is_state("sensor.jeff_presence", "present") %} + Home + {% elif is_state("sensor.kat_presence", "present") %} + Home + {% else %} + Away + {%- endif %} + icon_template: >- + {%- if is_state("sensor.family_presence", "Home") %} + mdi:home + {%- elif is_state("sensor.family_presence", "Away") %} + mdi:home-outline + {% else %} + mdi:sync-alert + {%- endif %} + diff --git a/sensors/weather.yaml b/sensors/weather.yaml index b2b173d..7f5d87d 100755 --- a/sensors/weather.yaml +++ b/sensors/weather.yaml @@ -34,3 +34,92 @@ seconds: 0 milliseconds: 0 - platform: moon +- platform: pollen + zip_code: 30017 + monitored_conditions: + - allergy_average_forecasted + - allergy_average_historical + - allergy_index_today + - allergy_index_tomorrow + - allergy_index_yesterday + - disease_average_forecasted +## Accurite 158 - Back Porch +- platform: mqtt + name: "Accurite Back Porch Temperature" + state_topic: "house/accurite-158/temperature" +- platform: mqtt + name: "Accurite Back Porch Humidity" + state_topic: "house/accurite-158/humidity" +# - platform: mqtt +# name: "Accurite Back Porch Status" +# state_topic: "house/accurite-158/status" +# - platform: mqtt +# name: "Accurite Back Porch Battery" +# state_topic: "house/accurite-158/battery" +- platform: mqtt + name: "Accurite Back Porch Model" + state_topic: "house/accurite-158/model" +- platform: mqtt + name: "Accurite Back Porch lupdate" + state_topic: "house/accurite-158/lastupdate" +- platform: mqtt + name: "Accurite Garage Temperature" + state_topic: "house/accurite-10968/temperature" +- platform: mqtt + name: "Accurite Garage Humidity" + state_topic: "house/accurite-10968/humidity" +- platform: mqtt + name: "Accurite Garage Model" + state_topic: "house/accurite-10968/model" +- platform: mqtt + name: "Accurite Garage lupdate" + state_topic: "house/accurite-10968/lastupdate" +- platform: template + sensors: + tornado_warning: + friendly_name: 'Tornado Warning' + value_template: >- + {%- if is_state("sensor.pws_alerts.attributes.Description", "Tornado Warning") %} + active + {% elif is_state("sensor.pws_alerts.attributes.Description_TOR", "Tornado Warning") %} + active + {% else %} + inactive + {%- endif %} + icon_template: mdi:message-alert + + tornado_watch: + friendly_name: 'Tornado Watch' + value_template: >- + {%- if is_state("sensor.pws_alerts.attributes.Description", "Tornado Watch") %} + active + {% elif is_state("sensor.pws_alerts.attributes.Description_TOW", "Tornado Watch") %} + active + {% else %} + inactive + {%- endif %} + icon_template: mdi:message-alert + + tstorm_warning: + friendly_name: 'T-Storm Warning' + value_template: >- + {%- if is_state("sensor.pws_alerts.attributes.Description", "Severe Thunderstorm Warning") %} + active + {% elif is_state("sensor.pws_alerts.attributes.Description_WRN", "Severe Thunderstorm Warning") %} + active + {% else %} + inactive + {%- endif %} + icon_template: mdi:message-alert + + storm_statement: + friendly_name: 'Storm Statement' + value_template: >- + {%- if is_state("sensor.pws_alerts.attributes.Description", "Severe Weather Statement") %} + active + {% elif is_state("sensor.pws_alerts.attributes.Description_SVR", "Severe Weather Statement") %} + active + {% else %} + inactive + {%- endif %} + icon_template: mdi:message-alert \ No newline at end of file diff --git a/switches/laundry.yaml b/switches/laundry.yaml new file mode 100644 index 0000000..6458a0f --- /dev/null +++ b/switches/laundry.yaml @@ -0,0 +1,7 @@ +- platform: mqtt + name: "Washer" + state_topic: "smartthings/Washer/switch" + command_topic: "smartthings/Washer/switch" + payload_on: "on" + payload_off: "off" + retain: true diff --git a/switches/living_room.yaml b/switches/living_room.yaml index 0342142..898a0c5 100755 --- a/switches/living_room.yaml +++ b/switches/living_room.yaml @@ -5,10 +5,3 @@ payload_on: "on" payload_off: "off" retain: true -- platform: mqtt - name: "Rail Lights" - state_topic: "smartthings/Stairs Rail/switch" - command_topic: "smartthings/Stairs Rail/switch" - payload_on: "on" - payload_off: "off" - retain: true \ No newline at end of file diff --git a/switches/notifications.yaml b/switches/notifications.yaml new file mode 100644 index 0000000..9d09838 --- /dev/null +++ b/switches/notifications.yaml @@ -0,0 +1,54 @@ +- platform: mqtt + name: "Text Notify Kat" + command_topic: "kat/notify/text" + state_topic: "kat/notify/text" + qos: 1 + payload_on: "on" + payload_off: "off" + retain: true + +- platform: mqtt + name: "Audibly Notify Kat" + command_topic: "kat/notify/audio" + state_topic: "kat/notify/audio" + qos: 1 + payload_on: "on" + payload_off: "off" + retain: true + +- platform: mqtt + name: "Text Notify Jeff" + command_topic: "jeff/notify/text" + state_topic: "jeff/notify/text" + qos: 1 + payload_on: "on" + payload_off: "off" + retain: true + +- platform: mqtt + name: "Audibly Notify Jeff" + command_topic: "jeff/notify/audio" + state_topic: "jeff/notify/audio" + qos: 1 + payload_on: "on" + payload_off: "off" + retain: true + +- platform: mqtt + name: "Text Notify House" + command_topic: "house/notify/text" + state_topic: "house/notify/text" + qos: 1 + payload_on: "on" + payload_off: "off" + retain: true + +- platform: mqtt + name: "Audibly Notify House" + command_topic: "house/notify/audio" + state_topic: "house/notify/audio" + qos: 1 + payload_on: "on" + payload_off: "off" + retain: true + diff --git a/switches/outside.yaml b/switches/outside.yaml index cc73752..82c5d2c 100755 --- a/switches/outside.yaml +++ b/switches/outside.yaml @@ -6,23 +6,16 @@ payload_off: "off" retain: true - platform: mqtt - name: "Side Door Light" - state_topic: "smartthings/Side Door Light/switch" - command_topic: "smartthings/Side Door Light/switch" + name: "Side Door" + state_topic: "smartthings/Side Door/switch" + command_topic: "smartthings/Side Door/switch" payload_on: "on" payload_off: "off" retain: true - platform: mqtt - name: "Front Porch Left" - state_topic: "smartthings/Porch Left/switch" - command_topic: "smartthings/Porch Left/switch" + name: "Front Porch" + state_topic: "smartthings/Front Porch/switch" + command_topic: "smartthings/Front Porch/switch" payload_on: "on" payload_off: "off" retain: true -- platform: mqtt - name: "Front Porch Right" - state_topic: "smartthings/Porch Right/switch" - command_topic: "smartthings/Porch Right/switch" - payload_on: "on" - payload_off: "off" - retain: true \ No newline at end of file diff --git a/switches/sonoff.yaml b/switches/sonoff.yaml new file mode 100644 index 0000000..e2fcf68 --- /dev/null +++ b/switches/sonoff.yaml @@ -0,0 +1,8 @@ +- platform: mqtt + name: "Master Fan" + command_topic: "cmnd/sonoff/power" + state_topic: "stat/sonoff/POWER" + qos: 1 + payload_on: "ON" + payload_off: "OFF" + retain: true