#-------------------------------------------
# @CCOSTAN
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# Support for Blink Cameras (https://amzn.to/3lOYTCv)
# Added ThinLg HACS integration for Fridge sensors - https://github.com/ollo69/ha-smartthinq-sensors
#-------------------------------------------

##############################################################################
###  Automations
##############################################################################
automation:
  - alias: 'Fridge Temp Watch'
    id: 2346efcd-e8a8-4e86-b5b6-43eBl1nkFr1dge95f
    mode: single
    trigger:
      - platform: numeric_state
        entity_id: sensor.blink_blink1_temperature
        above: 60
        for:
          minutes: 20
      - platform: numeric_state
        entity_id: sensor.refrigerator_freezer_temp
        above: 5
        for:
          minutes: 10
      - platform: numeric_state
        entity_id: sensor.refrigerator_fridge_temp
        above: 50
        for:
          minutes: 10
      - platform: state
        entity_id: binary_sensor.refrigerator_door_open
        to: 'on'
        for:
          minutes: 10      
      - platform: event
        event_type: event_fridge_still_hot_loop

    condition:
      condition: or
      conditions:
        - condition: numeric_state
          entity_id: sensor.blink_blink1_temperature
          above: 60
        - condition: numeric_state
          entity_id: sensor.refrigerator_freezer_temp
          above: 5
        - condition: numeric_state
          entity_id: sensor.refrigerator_fridge_temp
          above: 50
        - condition: state
          entity_id: binary_sensor.refrigerator_door_open
          state: 'on'

    action:
      - service: script.notify_engine
        data:
          title: 'Check Fridge'
          value1: >
            {% if trigger.platform == 'numeric_state' %}
              The Blink camera temperature sensor has detected {{ states('sensor.blink_blink1_temperature') }} degrees for over 20 minutes.
            {% elif trigger.platform == 'binary_sensor' and trigger.entity_id == 'sensor.refrigerator_freezer_temp' %}
              The freezer temperature has been above -1 degrees for over 10 minutes.
            {% elif trigger.platform == 'binary_sensor' and trigger.entity_id == 'sensor.refrigerator_fridge_temp' %}
              The fridge temperature has been above 50 degrees for over 10 minutes.
            {% elif trigger.platform == 'binary_sensor' and trigger.entity_id == 'binary_sensor.refrigerator_door_open' %}
              The fridge door has been open for over 10 minutes.
            {% else %}
              The fridge is still hot after the previous alert. The freezer temperature is {{ states('sensor.refrigerator_freezer_temp') }} degrees and the fridge temperature is {{ states('sensor.refrigerator_fridge_temp') }} degrees. {% if is_state('binary_sensor.refrigerator_door_open', 'on') %}The fridge door is currently open.{% endif %}
            {% endif %}
          who: 'family'
          group: 'information'

      - wait_template: "{{ states.group.family.state == 'home' }}"

      - service: script.speech_engine
        data:
          value1: "Please check the fridge. The Blink camera in the fridge temperature is {{ states('sensor.blink_blink1_temperature') }} degrees, the freezer temperature is {{ states('sensor.refrigerator_freezer_temp') }} degrees, and the fridge temperature is {{ states('sensor.refrigerator_fridge_temp') }} degrees for over 20 minutes. {% if is_state('binary_sensor.refrigerator_door_open', 'on') %}The fridge door is currently open.{% endif %}"
          no_fridge: 1

      - delay: 00:30:00
      - event: event_fridge_still_hot_loop