418 lines
13 KiB
YAML
418 lines
13 KiB
YAML
###############################################################################
|
|
# @author : Mahasri Kalavala
|
|
# @date : 04/15/2017
|
|
# @package : WatchDog
|
|
# @description : Watchdog Automations
|
|
###############################################################################
|
|
|
|
###############################################################################
|
|
# _ _ _
|
|
# /\ | | | | (_)
|
|
# / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___
|
|
# / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __|
|
|
# / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \
|
|
# /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/
|
|
#
|
|
###############################################################################
|
|
automation:
|
|
# Garage:
|
|
# Working in Garage Mode Watch Dog - Turns off after 2 hours
|
|
###############################################################################
|
|
- alias: Working In Garage WatchDog
|
|
initial_state: true
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- input_boolean.working_in_garage
|
|
to: "on"
|
|
for:
|
|
hours: 2
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.light_automations
|
|
state: "on"
|
|
action:
|
|
- service: script.notify_me
|
|
data:
|
|
message: "It has been two hours, are you still working in the garage? Changing the status to 'Not working'!"
|
|
- service: input_boolean.turn_off
|
|
entity_id: input_boolean.working_in_garage
|
|
|
|
# Garage:
|
|
# Keeps and eye on the garage doors... reminds me to close after 5 min
|
|
###############################################################################
|
|
- alias: Two Car garage Door WatchDog
|
|
initial_state: true
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.door_window_sensor_158d0004231f7b
|
|
- binary_sensor.door_window_sensor_158d0004248d5b
|
|
to: "on"
|
|
for:
|
|
minutes: 5
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.working_in_garage
|
|
state: "off"
|
|
- condition: template
|
|
value_template: "{{ states('input_boolean.garage_door_notifications') == 'on' }}"
|
|
- condition: state
|
|
entity_id: input_boolean.light_automations
|
|
state: "on"
|
|
action:
|
|
- service: script.notify_me
|
|
data_template:
|
|
message: >
|
|
Your {{ trigger.to_state.attributes.friendly_name }} is OPEN for more than 5 minutes!
|
|
- service: script.voice_notify
|
|
data_template:
|
|
message: >
|
|
Attention! Your {{ trigger.to_state.attributes.friendly_name }} is open for more than 5 minutes.
|
|
- service: script.led_message
|
|
data_template:
|
|
message: >
|
|
Your {{ trigger.to_state.attributes.friendly_name }} is OPEN for more than 5 minutes!
|
|
|
|
# Outdoor Lights:
|
|
# Keeps and eye on the patio and backyard lights...
|
|
###############################################################################
|
|
- alias: Outdoor Light WatchDog
|
|
initial_state: true
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- switch.backyard_light
|
|
- switch.frontyard_light
|
|
to: "on"
|
|
for:
|
|
minutes: 5
|
|
condition:
|
|
- condition: state
|
|
entity_id: sun.sun
|
|
state: "above_horizon"
|
|
- condition: state
|
|
entity_id: input_boolean.light_automations
|
|
state: "on"
|
|
action:
|
|
- service: switch.turn_off
|
|
data_template:
|
|
entity_id: "{{ trigger.entity_id }}"
|
|
- service: script.notify_me
|
|
data_template:
|
|
message: >
|
|
{{ trigger.to_state.attributes.friendly_name }} is ON during the day time. Saving power by turning it off!
|
|
|
|
# General Watch Dog automation:
|
|
# Keeps and eye on the lights & switches, turns off after 10 PM if they are on.
|
|
###############################################################################
|
|
- alias: Lights And Switches WatchDog 10 Min
|
|
initial_state: true
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- switch.basement_left
|
|
- switch.basement_right
|
|
- switch.front_room
|
|
- switch.srinika_bedroom
|
|
- switch.hasika_bed_accent
|
|
- switch.hasika_bedroom
|
|
- switch.kitchen_switch
|
|
- switch.study_room
|
|
- light.hue_color_lamp_1
|
|
- light.hue_color_lamp_2
|
|
- light.hue_color_lamp_3
|
|
- light.master_bedroom_1
|
|
- light.master_bedroom_2
|
|
- light.master_bedroom_3
|
|
to: "on"
|
|
for:
|
|
minutes: 10
|
|
condition:
|
|
- condition: template
|
|
value_template: "{{ now().hour |int > 22 }}"
|
|
- condition: state
|
|
entity_id: input_boolean.light_automations
|
|
state: "on"
|
|
action:
|
|
- service: homeassistant.turn_off
|
|
data_template:
|
|
entity_id: "{{ trigger.entity_id }}"
|
|
|
|
- alias: Guest Bathroom Lights WatchDog
|
|
initial_state: true
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- switch.guest_bathroom_lights
|
|
to: "on"
|
|
for:
|
|
minutes: "{{ states('input_number.guest_bathroom_lights')|int }}"
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.light_automations
|
|
state: "on"
|
|
action:
|
|
- service: homeassistant.turn_off
|
|
data_template:
|
|
entity_id: "{{ trigger.entity_id }}"
|
|
|
|
- alias: Master Bathroom Lights WatchDog
|
|
initial_state: true
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- light.master_bathroom_lights
|
|
to: "on"
|
|
for:
|
|
minutes: "{{ states('input_number.master_bathroom_lights')|int }}"
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.light_automations
|
|
state: "on"
|
|
action:
|
|
- service: homeassistant.turn_off
|
|
data_template:
|
|
entity_id: "{{ trigger.entity_id }}"
|
|
|
|
- alias: Garage Lights WatchDog
|
|
initial_state: true
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- switch.garage
|
|
to: "on"
|
|
for:
|
|
minutes: "{{ states('input_number.garage_lights')|int }}"
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.light_automations
|
|
state: "on"
|
|
action:
|
|
- service: homeassistant.turn_off
|
|
data_template:
|
|
entity_id: "{{ trigger.entity_id }}"
|
|
|
|
- alias: Garage Shop Lights WatchDog
|
|
initial_state: true
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- switch.garage_shop_lights
|
|
to: "on"
|
|
for:
|
|
minutes: "{{ states('input_number.garage_shop_lights')|int }}"
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.light_automations
|
|
state: "on"
|
|
action:
|
|
- service: homeassistant.turn_off
|
|
data_template:
|
|
entity_id: "{{ trigger.entity_id }}"
|
|
|
|
- alias: Guest Bathroom Exhaust WatchDog
|
|
initial_state: true
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- switch.guest_bathroom_exhaust
|
|
to: "on"
|
|
for:
|
|
minutes: "{{ states('input_number.guest_bathroom_exhaust_timer_duration')|int }}"
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.light_automations
|
|
state: "on"
|
|
action:
|
|
- service: homeassistant.turn_off
|
|
data_template:
|
|
entity_id: "{{ trigger.entity_id }}"
|
|
|
|
- alias: Master Bathroom Shower Exhaust WatchDog
|
|
initial_state: true
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- switch.master_bathroom_shower_exhaust
|
|
to: "on"
|
|
for:
|
|
minutes: "{{ states('input_number.master_bathroom_shower_exhaust_timer_duration')|int }}"
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.light_automations
|
|
state: "on"
|
|
action:
|
|
- service: homeassistant.turn_off
|
|
data_template:
|
|
entity_id: "{{ trigger.entity_id }}"
|
|
|
|
- alias: Master Bathroom Toilet Exhaust WatchDog
|
|
initial_state: true
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- switch.master_bathroom_toilet_exhaust
|
|
to: "on"
|
|
for:
|
|
minutes: "{{ states('input_number.master_bathroom_toilet_exhaust_timer_duration')|int }}"
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.light_automations
|
|
state: "on"
|
|
action:
|
|
- service: homeassistant.turn_off
|
|
data_template:
|
|
entity_id: "{{ trigger.entity_id }}"
|
|
|
|
|
|
#############################################################################
|
|
# CLOSET LIGHTS WATCH DOG
|
|
#############################################################################
|
|
|
|
- alias: Srinika Bedroom Closet WatchDog
|
|
initial_state: true
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- switch.srinika_bedroom_closet
|
|
to: "on"
|
|
for:
|
|
minutes: "{{ states('input_number.srinika_bedroom_closet_lights')|int }}"
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.light_automations
|
|
state: "on"
|
|
action:
|
|
- service: homeassistant.turn_off
|
|
data_template:
|
|
entity_id: "{{ trigger.entity_id }}"
|
|
|
|
- alias: Hasika Bedroom Closet WatchDog
|
|
initial_state: true
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- switch.hasika_bedroom_closet
|
|
to: "on"
|
|
for:
|
|
minutes: "{{ states('input_number.hasika_bedroom_closet_lights')|int }}"
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.light_automations
|
|
state: "on"
|
|
action:
|
|
- service: homeassistant.turn_off
|
|
data_template:
|
|
entity_id: "{{ trigger.entity_id }}"
|
|
|
|
- alias: Notify Plex User Status
|
|
initial_state: true
|
|
trigger:
|
|
# - platform: numeric_state
|
|
# entity_id: sensor.plex_mahasri_nas
|
|
# above: 0
|
|
# for:
|
|
# minutes: 2
|
|
- platform: state
|
|
entity_id:
|
|
- media_player.plex_adi_bh_plex_for_roku_roku3
|
|
- media_player.plex_adi_bh_plex_for_roku_rokuultra
|
|
- media_player.plex_prade5_plex_for_roku_roku_express
|
|
to: 'playing'
|
|
for:
|
|
minutes: 2
|
|
action:
|
|
- service: script.notify_me
|
|
data_template:
|
|
message: >-
|
|
{%- set tag_map = {'adi.bh':'Adi', 'prade5':'Pradeep'} -%}
|
|
{% for item in states.media_player if item.state == 'playing' and state_attr(item.entity_id, 'media_title') != None
|
|
and state_attr(item.entity_id, 'username') != 'kalavala'
|
|
and tag_map[state_attr(item.entity_id, 'username')] |trim != '' %}
|
|
|
|
{{ tag_map[state_attr(item.entity_id, 'username')] }} is watching {% if state_attr(item.entity_id, 'media_content_type') == "movie" -%}
|
|
{{ "a movie, " + state_attr(item.entity_id, 'media_title') |title }}
|
|
{% endif %}
|
|
{%- if state_attr(item.entity_id, 'media_content_type') == "tvshow" %}
|
|
TV Show - {{ state_attr(item.entity_id, 'media_series_title') }}
|
|
Season: {{ state_attr(item.entity_id, 'media_season') }}, Episode: {{ state_attr(item.entity_id, 'media_episode') }} ({{ state_attr(item.entity_id, 'media_title') }})
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
# - alias: Lights And Switches WatchDog 10 Min
|
|
# initial_state: true
|
|
# trigger:
|
|
# - platform: state
|
|
# entity_id:
|
|
# - switch.guest_bathroom_exhaust
|
|
# - switch.master_bathroom_toilet_exhaust
|
|
# to: "on"
|
|
# for:
|
|
# minutes: 10
|
|
# condition:
|
|
# - condition: state
|
|
# entity_id: input_boolean.light_automations
|
|
# state: "on"
|
|
# action:
|
|
# - service: homeassistant.turn_off
|
|
# data_template:
|
|
# entity_id: "{{ trigger.entity_id }}"
|
|
|
|
#
|
|
# Main master Bathoom has more CFM to vent out... keep it for 20 minutes
|
|
#
|
|
# - alias: Lights And Switches WatchDog 20 Min
|
|
# initial_state: true
|
|
# trigger:
|
|
# - platform: state
|
|
# entity_id:
|
|
# - switch.master_bathroom_shower_exhaust
|
|
# to: "on"
|
|
# for:
|
|
# minutes: 20
|
|
# condition:
|
|
# - condition: state
|
|
# entity_id: input_boolean.light_automations
|
|
# state: "on"
|
|
# action:
|
|
# - service: homeassistant.turn_off
|
|
# data_template:
|
|
# entity_id: "{{ trigger.entity_id }}"
|
|
|
|
# - alias: Lights And Switches WatchDog 30 Min
|
|
# initial_state: true
|
|
# trigger:
|
|
# - platform: state
|
|
# entity_id:
|
|
# - switch.guest_bathroom_lights
|
|
# - switch.master_bathroom_toilet_light
|
|
# to: "on"
|
|
# for:
|
|
# minutes: 30
|
|
# condition:
|
|
# - condition: state
|
|
# entity_id: input_boolean.light_automations
|
|
# state: "on"
|
|
# action:
|
|
# - service: homeassistant.turn_off
|
|
# data_template:
|
|
# entity_id: "{{ trigger.entity_id }}"
|
|
|
|
# - alias: Lights And Switches WatchDog 45 Min
|
|
# initial_state: true
|
|
# trigger:
|
|
# - platform: state
|
|
# entity_id:
|
|
# - switch.garage_shop_lights
|
|
# to: "on"
|
|
# for:
|
|
# minutes: 45
|
|
# condition:
|
|
# - condition: state
|
|
# entity_id: input_boolean.light_automations
|
|
# state: "on"
|
|
# action:
|
|
# - service: homeassistant.turn_off
|
|
# data_template:
|
|
# entity_id: "{{ trigger.entity_id }}" |