homeassistant: customize: package.door_sensors: sensor: - platform: template sensors: single_car_garage_door_sensor_status: friendly_name: Single Car Garage Door Sensor Status value_template: >- {% if states('binary_sensor.door_window_sensor_158d0004248d5b') == 'on' %} Open {% elif states('binary_sensor.door_window_sensor_158d0004248d5b') == 'off' %} Closed {% else %} Unknown {% endif %} icon_template: >- {% set door_status = states('binary_sensor.door_window_sensor_158d0004248d5b') %} {% if door_status == 'unknown' %} mdi:alert-circle {% else %} {% if door_status == 'on' %} mdi:garage-open {% else %} mdi:garage {% endif %} {% endif %} - platform: template sensors: two_car_garage_door_sensor_status: value_template: >- {% if states('binary_sensor.door_window_sensor_158d0004231f7b') == 'on' %} Open {% elif states('binary_sensor.door_window_sensor_158d0004231f7b') == 'off' %} Closed {% else %} Unknown {% endif %} friendly_name: Double Car Garage Door Sensor Status icon_template: >- {% set door_status = states('binary_sensor.door_window_sensor_158d0004231f7b') %} {% if door_status == 'unknown' %} mdi:alert-circle {% else %} {% if door_status == 'on' %} mdi:garage-open {% else %} mdi:garage {% endif %} {% endif %} binary_sensor: - platform: mqtt state_topic: "/garage/motion" name: "Garage Motion" device_class: motion payload_on: "on" payload_off: "off" value_template: "{{ value }}" ############################################################################### # _ _ _ # /\ | | | | (_) # / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___ # / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __| # / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \ # /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/ # ############################################################################### automation: - alias: Garage Motion Reset initial_state: true trigger: - platform: state entity_id: binary_sensor.garage_motion to: "on" from: "off" action: - delay: "00:00:30" - service: mqtt.publish data: topic: "/garage/motion" payload: "off" retain: false - alias: Turn Garage Lights On When Motion Detected or Door Opened initial_state: true trigger: - platform: state entity_id: binary_sensor.motion_sensor_158d000272bf48 to: "on" condition: - condition: state entity_id: input_boolean.light_automations state: "on" action: - service: switch.turn_on entity_id: switch.garage ################################################################################ # Notifies when either of the garage door is opened or closed ############################################################################### - alias: Notify Garage Door Status initial_state: true trigger: platform: state entity_id: - binary_sensor.door_window_sensor_158d0004248d5b # Single car garage - binary_sensor.door_window_sensor_158d0004231f7b # 2 Car Garage action: - service: switch.turn_on entity_id: switch.garage - service: script.notify_family data_template: message: > {% set doors = "" %} {% if states('binary_sensor.door_window_sensor_158d0004231f7b') == "on" and states('binary_sensor.door_window_sensor_158d0004248d5b') == "on" %} {% set doors = "Attention! Both Garage Doors are OPEN" %} {% elif states('binary_sensor.door_window_sensor_158d0004231f7b') == "off" and states('binary_sensor.door_window_sensor_158d0004248d5b') == "off" %} {% set doors = "Both Garage Doors are now CLOSED" %} {% else %} {% if trigger.from_state.state != trigger.to_state.state and trigger.to_state.state | lower == "on" %} {% set doors = "Attention! Your {{ trigger.to_state.attributes.friendly_name }} is now OPENED!" %} {% elif trigger.from_state.state != trigger.to_state.state and trigger.to_state.state | lower == "off" %} {% set doors = "Your {{ trigger.to_state.attributes.friendly_name }} is now CLOSED!" %} {% endif %} {% endif %} {{ doors }} - {{ trigger.to_state.attributes.friendly_name }}: from '{{trigger.from_state.state}}'', to: '{{ trigger.to_state.state }}' notify_options: - voice - led - tv - email - telegram - delay: "00:00:05" - service: camera.snapshot data_template: entity_id: "camera.garage" filename: "{{ '/config/www/downloads/camera/garage/garage_' ~ ((state_attr('automation.notify_garage_door_status', 'last_triggered') |string).replace('-','_') .replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg') }}" # - service: script.notify_family # data_template: # message: > # {% set doors = "" %} # {% if states('binary_sensor.door_window_sensor_158d0004231f7b') == "on" and # states('binary_sensor.door_window_sensor_158d0004248d5b') == "on" %} # {% set doors = "Attention! Both Garage Doors are OPEN" %} # {% elif states('binary_sensor.door_window_sensor_158d0004231f7b') == "off" and # states('binary_sensor.door_window_sensor_158d0004248d5b') == "off" %} # {% set doors = "Both Garage Doors are now CLOSED" %} # {% else %} # {% if trigger.from_state.state != trigger.to_state.state and trigger.to_state.state | lower == "on" %} # {% set doors = "Attention! Your {{ trigger.to_state.attributes.friendly_name }} is now OPENED!" %} # {% elif trigger.from_state.state != trigger.to_state.state and trigger.to_state.state | lower == "off" %} # {% set doors = "Your {{ trigger.to_state.attributes.friendly_name }} is now CLOSED!" %} # {% endif %} # {% endif %} # {{ doors }} # url: > # {{ '/config/www/downloads/camera/garage/garage_' ~ # ((state_attr('automation.notify_garage_door_status', 'last_triggered') |string).replace('-','_') # .replace(' ', '_').replace(':','_').replace('.','_').replace('+','_') ~ '.jpg') }} # notify_options: # - telegram # - email # - tv - service: switch.turn_off entity_id: switch.garage ############################################################################### # Notify Entry Door Status ############################################################################### - alias: Voice Notify Entry Door Status initial_state: true trigger: platform: state entity_id: - binary_sensor.door_window_sensor_158d000424a6d6 # Front Door - binary_sensor.door_window_sensor_158d00040ad8fc # Back Door - binary_sensor.door_window_sensor_158d0004880f30 # Garage Entry Door condition: - condition: template value_template: "{{ trigger.from_state.state not in ['unavailable', 'unknown'] }}" - condition: template value_template: "{{ trigger.from_state.state != trigger.to_state.state }}" action: - service: script.notify_family data_template: message: > {% if trigger.to_state.state | lower == "on" %} Your {{ trigger.to_state.attributes.friendly_name.replace('Sensor', '') }} is OPEN, {% if states('alarm_control_panel.home') == 'armed_home' or states('alarm_control_panel.home') == 'armed_away' %} But your home security system is ON. {% endif %} {% elif trigger.to_state.state | lower == "off" %} Your {{ trigger.to_state.attributes.friendly_name.replace('Sensor', '') }} is CLOSED! {% endif %} notify_options: # - telegram - tv - led ############################################################################### # Light automations when doors are opened ############################################################################### - alias: When Front Door Opens Turn Front Room Lights ON initial_state: true trigger: platform: state entity_id: binary_sensor.door_window_sensor_158d000424a6d6 to: "on" condition: - condition: state entity_id: input_boolean.light_automations state: "on" action: - service: script.frontdoor_cam - condition: template value_template: "{{ states('sun.sun') == 'below_horizon' }}" - service: switch.turn_on entity_id: switch.front_room - alias: When Back Door Opens Turn Kitchen Lights ON initial_state: true trigger: - platform: state entity_id: binary_sensor.door_window_sensor_158d00040ad8fc to: "on" condition: - condition: state entity_id: input_boolean.light_automations state: "on" action: - service_template: "script.{{ ['patio_cam', 'playarea_cam'] | random }}" - condition: template value_template: "{{ states('sun.sun') == 'below_horizon' }}" - service: switch.turn_on entity_id: switch.kitchen_switch ################################################################################ # When I open the garage door # if it is dark outside, OR # both the garage doors are closed # ==> turn the Garage lights ON, and start timer! ################################################################################ - alias: Garage Lights On When Door is Opened initial_state: true trigger: platform: state entity_id: binary_sensor.door_window_sensor_158d0004880f30 to: "on" condition: condition: or conditions: - condition: template value_template: '{{states.sun.sun.state == "below_horizon"}}' - condition: and conditions: - condition: template value_template: "{{ states('binary_sensor.door_window_sensor_158d0004248d5b') == 'off' }}" - condition: template value_template: "{{ states('binary_sensor.door_window_sensor_158d0004231f7b') == 'off' }}" - condition: state entity_id: input_boolean.light_automations state: "on" action: - service: switch.turn_on entity_id: switch.garage - service: timer.start entity_id: timer.timer_garage ############################################################################### # MASTER BATHROOM AUTOMATIONS ############################################################################### # # Only turn ON lights at 25% at night # - alias: Master Bathroom Door Opened After Dark initial_state: true trigger: platform: state entity_id: binary_sensor.door_window_sensor_158d000424718f to: "on" condition: - condition: template value_template: '{{states("sun.sun") == "below_horizon"}}' - condition: state entity_id: input_boolean.light_automations state: "on" action: - service: light.turn_on entity_id: light.master_bathroom_lights data: brightness: 64 # 25% of brightness transition: 5 - alias: Master Bathroom Door Opened During The Day initial_state: true trigger: platform: state entity_id: binary_sensor.door_window_sensor_158d000424718f to: "on" condition: - condition: template value_template: '{{states("sun.sun") == "above_horizon"}}' - condition: state entity_id: input_boolean.light_automations state: "on" action: - service: light.turn_on entity_id: light.master_bathroom_lights data: brightness: 254 # 100% of brightness transition: 5 - alias: Master Bathroom Toilet Door Opened initial_state: true trigger: platform: state entity_id: binary_sensor.door_window_sensor_158d00044e5cb3 to: "on" condition: - condition: state entity_id: input_boolean.light_automations state: "on" action: - service: switch.turn_on entity_id: switch.master_bathroom_toilet_light - alias: Turn off Master Bathroom Toilet if the door is open for too long initial_state: true trigger: - platform: state entity_id: binary_sensor.door_window_sensor_158d00044e5cb3 to: "on" for: minutes: 3 condition: - condition: state entity_id: input_boolean.light_automations state: "on" action: - service: switch.turn_off data_template: entity_id: switch.master_bathroom_toilet_light ############################################################################### # GUEST BATHROOM AUTOMATIONS ############################################################################### - alias: Guest Bathroom Door Opened initial_state: true trigger: platform: state entity_id: binary_sensor.door_window_sensor_158d00045ab168 to: "on" condition: - condition: state entity_id: input_boolean.light_automations state: "on" action: - service: switch.turn_on entity_id: switch.guest_bathroom_lights