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 doors 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 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: switch.turn_on entity_id: switch.garage - service: camera.snapshot data: 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') }}" ################################################################################ # Notify devices ################################################################################ - service: script.notify_family data: title: "{{ 'Garage Door Open' if trigger.to_state.state | lower == 'on' else 'Garage Door Closed' }}" message: > {% if trigger.to_state.state | lower == "on" %} {{ trigger.to_state.attributes.friendly_name.replace('Sensor', '') -}} is OPEN {% elif trigger.to_state.state | lower == "off" %} {{ trigger.to_state.attributes.friendly_name.replace('Sensor', '') -}} is CLOSED {% endif %} url: !secret garage_camera_snapshot_url notify_options: - tv - led - voice ################################################################################ # SEND PICTURES AS ATTACHMENTS TO EMAIL AND TELEGRAM ################################################################################ - service: script.notify_family_with_picture data: title: "{{ 'Garage Door Open' if trigger.to_state.state | lower == 'on' else 'Garage Door Closed' }}" message: > {% if trigger.to_state.state | lower == "on" %} {{ trigger.to_state.attributes.friendly_name.replace('Sensor', '') }} is OPEN {% elif trigger.to_state.state | lower == "off" %} {{ trigger.to_state.attributes.friendly_name.replace('Sensor', '') }} is CLOSED {% endif %} url: !secret garage_camera_snapshot_url path: > "{{ '/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 - delay: "00:00:05" - service: switch.turn_off entity_id: switch.garage ############################################################################### # Notify Entry Door Status ############################################################################### - alias: 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: 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: 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