diff --git a/config/packages/README.md b/config/packages/README.md index 012e05b9..2fb51c92 100755 --- a/config/packages/README.md +++ b/config/packages/README.md @@ -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 | diff --git a/config/packages/blink.yaml b/config/packages/blink.yaml index d2ee949c..9534f1e6 100755 --- a/config/packages/blink.yaml +++ b/config/packages/blink.yaml @@ -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 diff --git a/config/packages/fridge.yaml b/config/packages/fridge.yaml index 0cbf460d..f07ccfd7 100644 --- a/config/packages/fridge.yaml +++ b/config/packages/fridge.yaml @@ -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]" diff --git a/config/templates/speech/briefing.yaml b/config/templates/speech/briefing.yaml index ae690f82..eade05e6 100755 --- a/config/templates/speech/briefing.yaml +++ b/config/templates/speech/briefing.yaml @@ -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 %}