From bca2e3f5a0c096ddfabcdf46e48e289805ee4e6a Mon Sep 17 00:00:00 2001 From: rzen Date: Fri, 25 Sep 2026 22:52:20 -0400 Subject: [PATCH] Silence the stove detector's queue overflow and fix notify calls in stove and HVAC blueprints Stove: added max_exceeded: silent (mode: queued, max: 10 kept as-is) since the ~1/s sensor cadence keeps the queue full by design. Fixed five broken notify calls (rise, matched fall, unmatched fall, out-of-window edge, cycle timeout) that rendered notify_target's target-selector dict into the service name instead of resolving it, replacing each with notify.send_message + target: !input notify_target. HVAC: same fix at its one notify call, after confirming its notify_target input is the same target selector. Claude-Session: https://claude.ai/code/session_017vaW5jtjrCqhV9nUDr8mQa --- hvac-failure-monitor.yaml | 3 ++- stove-activity-detector.yaml | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/hvac-failure-monitor.yaml b/hvac-failure-monitor.yaml index 993701a..0ba2d12 100644 --- a/hvac-failure-monitor.yaml +++ b/hvac-failure-monitor.yaml @@ -140,7 +140,8 @@ action: - choose: - conditions: "{{ notify_target | length > 0 }}" sequence: - - service: notify.{{ notify_target }} + - service: notify.send_message + target: !input notify_target data: message: > HVAC '{{ hvac_action }}' action for {{ interval }} minutes showed ineffective operation. diff --git a/stove-activity-detector.yaml b/stove-activity-detector.yaml index 5cf2ba4..f87429e 100644 --- a/stove-activity-detector.yaml +++ b/stove-activity-detector.yaml @@ -188,8 +188,11 @@ blueprint: # Serialized queued execution (not restart) is what makes the snapshot-then-settle-delay # resample technique safe: near-simultaneous phase1/phase2 trigger firings are processed one # after another instead of restarting each other mid-delay or being dropped. +# The queue runs steadily full by design at the ~1/s sensor cadence, so max_exceeded is +# silenced rather than logged as an overflow. mode: queued max: 10 +max_exceeded: silent trigger: - platform: state @@ -287,7 +290,8 @@ action: - choose: - conditions: "{{ notify_target | length > 0 }}" sequence: - - service: notify.{{ notify_target }} + - service: notify.send_message + target: !input notify_target data: message: > Stove signature detected: +{{ magnitude | round(0) }}W @@ -330,7 +334,8 @@ action: - choose: - conditions: "{{ notify_target | length > 0 }}" sequence: - - service: notify.{{ notify_target }} + - service: notify.send_message + target: !input notify_target data: message: > Matching element drop: -{{ magnitude | round(0) }}W @@ -357,7 +362,8 @@ action: - choose: - conditions: "{{ notify_target | length > 0 }}" sequence: - - service: notify.{{ notify_target }} + - service: notify.send_message + target: !input notify_target data: message: > Ignored non-matching drop: -{{ magnitude | round(0) }}W @@ -386,7 +392,8 @@ action: - choose: - conditions: "{{ notify_target | length > 0 }}" sequence: - - service: notify.{{ notify_target }} + - service: notify.send_message + target: !input notify_target data: message: > Ignored power edge: delta1 {{ delta1 | round(0) }}W / delta2 @@ -421,7 +428,8 @@ action: - choose: - conditions: "{{ notify_target | length > 0 }}" sequence: - - service: notify.{{ notify_target }} + - service: notify.send_message + target: !input notify_target data: message: > No matching stove activity for {{ cycle_timeout_minutes }}m -> OFF