Align fridge door timing across alerts and speech

This commit is contained in:
Carlo Costanzo
2026-06-02 17:03:16 -04:00
parent 05e254ec6c
commit 61eb863b81
4 changed files with 22 additions and 12 deletions

View File

@@ -40,7 +40,7 @@ Live collection of plug-and-play Home Assistant packages. Each YAML file in this
| --- | --- | --- |
| [alarm.yaml](alarm.yaml) | NodeMCU-powered perimeter monitoring with arm/disarm helpers and rich notifications. | `binary_sensor.mcu*_gpio*`, `group.family`, notify + siren scripts |
| [alexa_media_player.yaml](alexa_media_player.yaml) | Alexa Media helper sensors including stable bedroom wake-alarm wrappers for Carlo and Stacey plus a combined next-wake view. | `sensor.last_alexa`, `sensor.bedroom_next_wake_alarm`, `sensor.bedroom_next_wake_alarm_source`, `binary_sensor.bedroom_next_wake_alarm_active` |
| [fridge.yaml](fridge.yaml) | SmartThinQ fridge monitoring with 5-minute door-open alerts plus fridge/freezer status announcements. | `binary_sensor.refrigerator_door_open`, `script.notify_engine`, `script.speech_engine` |
| [fridge.yaml](fridge.yaml) | SmartThinQ fridge monitoring with 6-minute raw door-open alerts plus fridge/freezer status announcements. | `binary_sensor.refrigerator_door_open`, `script.notify_engine`, `script.speech_engine` |
| [climate.yaml](climate.yaml) | Nest climate schedules plus runtime-based AC filter reminders with snooze and filter-changed actions. | `input_datetime.*_filter_snooze_until`, `script.notify_engine_two_button`, mobile app action events |
| [garadget.yaml](garadget.yaml) | MQTT-based garage door control plus arrival helpers, entry prompts, wind checks, nighttime reminders, and camera context. | `cover.large_garage_door`, `cover.small_garage_door`, `group.garage_doors`, `sensor.garadget_reflection` |
| [august.yaml](august.yaml) | Front-door August smart lock with Alexa Show camera pop-up when unlocked. | `lock.front_door`, media_player actions for front doorbell camera |

View File

@@ -28,18 +28,21 @@ automation:
entity_id: sensor.blink_blink1_temperature
above: 60
- condition: state
entity_id: binary_sensor.refrigerator_door_open
state: 'on'
- condition: template
value_template: >
{% set door = states.binary_sensor.refrigerator_door_open %}
{{ states('binary_sensor.refrigerator_door_open') == 'on' and door is not none and (as_timestamp(now()) - as_timestamp(door.last_changed)) > 360 }}
action:
- service: script.notify_engine
data:
title: 'Check Fridge'
value1: >
{% set door = states.binary_sensor.refrigerator_door_open %}
{% set door_open = states('binary_sensor.refrigerator_door_open') == 'on' and door is not none and (as_timestamp(now()) - as_timestamp(door.last_changed)) > 360 %}
{% if trigger.platform == 'numeric_state' %}
The Blink camera temperature sensor has detected {{ states('sensor.blink_blink1_temperature') }} degrees for over 20 minutes.
{% elif is_state('binary_sensor.refrigerator_door_open', 'on') %}
{% elif door_open %}
The SmartThinQ fridge door sensor is still open, and the Blink camera temperature is {{ states('sensor.blink_blink1_temperature') }} degrees.
{% else %}
The fridge is still hot after the previous alert. The fridge temperature is {{ states('sensor.blink_blink1_temperature') }} degrees.
@@ -49,7 +52,10 @@ automation:
- service: script.speech_engine
data:
value1: "Please check the fridge. The Blink camera temperature is {{ states('sensor.blink_blink1_temperature') }} degrees. {% if is_state('binary_sensor.refrigerator_door_open', 'on') %}The SmartThinQ fridge door sensor is open.{% endif %}"
value1: >
{% set door = states.binary_sensor.refrigerator_door_open %}
{% set door_open = states('binary_sensor.refrigerator_door_open') == 'on' and door is not none and (as_timestamp(now()) - as_timestamp(door.last_changed)) > 360 %}
Please check the fridge. The Blink camera temperature is {{ states('sensor.blink_blink1_temperature') }} degrees. {% if door_open %}The SmartThinQ fridge door sensor is open.{% endif %}
no_fridge: 1
- delay: 00:30:00

View File

@@ -6,7 +6,7 @@
# LG Fridge - SmartThinQ appliance monitoring - Fridge/freezer sensors via ThinQ integration. https://amzn.to/3lOYTCv.
# Centralizes the LG Fridge - SmartThinQ appliance monitoring package configuration and helpers.
# -------------------------------------------------------------------
# Notes: Door-open alerts now trigger directly from the SmartThinQ door sensor after 5 minutes instead of using a debounced helper entity.
# Notes: Door-open alerts use the raw SmartThinQ door sensor after 6 minutes, avoiding one-poll false opens without a helper entity.
######################################################################
automation:
- alias: 'Fridge Door Open'
@@ -17,7 +17,7 @@ automation:
entity_id: binary_sensor.refrigerator_door_open
to: 'on'
for:
minutes: 5
minutes: 6
condition:
- condition: state
entity_id: binary_sensor.refrigerator_door_open
@@ -27,10 +27,10 @@ automation:
data:
title: 'Fridge Door Open'
value1: >
The fridge door has been open for more than 5 minutes. Please check and close the fridge door to avoid temperature issues.
The fridge door has been open for more than 6 minutes. Please check and close the fridge door to avoid temperature issues.
who: 'family'
group: 'information'
- service: script.speech_engine
data:
value1: "[Tell Household the Fridge Door is Open for more than 5 minutes]"
value1: "[Tell Household the Fridge Door is Open for more than 6 minutes]"

View File

@@ -95,7 +95,9 @@
{% if freezer not in ['unknown', 'unavailable', 'none', ''] and fridge not in ['unknown', 'unavailable', 'none', ''] %}
The freezer temperature is {{ freezer }} degrees and the fridge temperature is {{ fridge }} degrees.
{% endif %}
{% if is_state('binary_sensor.refrigerator_door_open', 'on') %}The fridge door is currently open.{% endif %}
{% set door = states.binary_sensor.refrigerator_door_open %}
{% set door_open = states('binary_sensor.refrigerator_door_open') == 'on' and door is not none and (as_timestamp(now()) - as_timestamp(door.last_changed)) > 360 %}
{% if door_open %}The fridge door is currently open.{% endif %}
{%- endmacro -%}
{%- macro window_check() -%}
@@ -297,7 +299,9 @@
{% set blink_temp = states('sensor.blink_blink1_temperature') | float(none) %}
{% set freezer_temp = states('sensor.refrigerator_freezer_temp') | float(none) %}
{% set fridge_temp = states('sensor.refrigerator_fridge_temp') | float(none) %}
{% if ((blink_temp is not none and blink_temp > 55) or (freezer_temp is not none and freezer_temp > 5) or (fridge_temp is not none and fridge_temp > 50) or is_state('binary_sensor.refrigerator_door_open', 'on')) and no_fridge != 1 %}
{% set fridge_door = states.binary_sensor.refrigerator_door_open %}
{% set fridge_door_open = states('binary_sensor.refrigerator_door_open') == 'on' and fridge_door is not none and (as_timestamp(now()) - as_timestamp(fridge_door.last_changed)) > 360 %}
{% if ((blink_temp is not none and blink_temp > 55) or (freezer_temp is not none and freezer_temp > 5) or (fridge_temp is not none and fridge_temp > 50) or fridge_door_open) and no_fridge != 1 %}
{{ fridge() }}
{% endif %}