Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Unsolved
Collapse
Discussion Forum to share and further the development of home control and automation, independent of platforms.
  1. Home
  2. Software
  3. Multi-System Reactor
  4. [SOLVED] How do I: delay a notification to fire only if the ruleset actually fires
[Reactor] Bug when sending MQTT boolean payloads
therealdbT
Topic thumbnail image
Multi-System Reactor
Difficulty defining repeating annual period
R
I have tried numerous ways to define a recurring annual period, for example from December 15 to January 15. No matter which method I try - after and before, between, after and/not after, Reactor reports "waiting for invalid date, invalid date. Some constructs also seem to cause Reactor to hang, timeout and restart. For example "before January 15 is evaluated as true, but reports "waiting for invalid date, invalid date". Does anyone have a tried and true method to define a recurring annual period? I think the "between" that I used successfully in the past may have broken with one of the updates.
Multi-System Reactor
Need help with sequence
T
Good evening all, For about the past week or so, I've been having problems with a specific rule in my home automation that controls when my home goes from an Away mode to Home mode. One of the conditions it checked for was my alarm panel, when it changed from Armed Away to Disarmed. There seems to have been a firmware update on the panel that added an intermittent step of "pending", and I can't say for certain it happens 100% of the time. Is there a way to write a condition that so it changes from one condition, to the next, and then another condition? As in, Home alarm changes from armed_away to pending to disarmed. Thanks.
Multi-System Reactor
Possible feature request?
CatmanV2C
No idea how easy this would be. During my migration away from Z-wave I've been replacing the Z-wave devices with Sonoff which has broken some of my automations. Any chance of a 'Test Reaction' function to call out which ones are broken because an entity no longer exists? Without actually running the reaction? Or does this exist already and I'm just not aware of how to do it? Obviously I can see entities that are no longer available, but not quite what I'm looking for. I guess it's something of an edge case so no huge issue. TIA! C
Multi-System Reactor
Copying a global reaction
tunnusT
With build 25328, if you copy a global reaction, a new reaction does not appear in the UI unless you do a refresh. I recall this used to work without needing this page refresh? Anyway, only a minor nuisance.
Multi-System Reactor
Logic Assistance: Exterior Lights on when Illuminance Below Threshold
PablaP
Topic thumbnail image
Multi-System Reactor
Time series documentation
tunnusT
Is the current manual (incl. examples) up to date with how retention value is handled in time series configuration? Referring to this post
Multi-System Reactor
MQTT templates for ZIgbee scene controller, or a better way?
CatmanV2C
Topic thumbnail image
Multi-System Reactor
Reset a delay
CatmanV2C
I'm sure this has been asked, and answered, but damned if I can figure it out Use case: I have a rear garden with lights. A door from the kitchen into the garden and a door from the garage. Currently if I open the kitchen door the lights come on (yay) and a 3 minute delay starts. After 3 minutes, no matter what else happens, the lights go off (Boo! But also yay!) What I would like is for the 3 minute delay until the lights go off to start from the latest door open event. That is, if I'm going from kitchen to garage, and back again, the lights stay on until there's three minutes of no activity. I've tried 'hacking' with a virtual switch, but can't seem to stop the delay. Any pointers? TIA C
Multi-System Reactor
Reactor Loading Screen Safari
S
Topic thumbnail image
Multi-System Reactor
Constraints states visually do not match actual
S
Topic thumbnail image
Multi-System Reactor
[MSR] Feature request: For Each action on arrays/groups
therealdbT
Topic thumbnail image
Multi-System Reactor
[Solved] Error: Command timeout
G
at _ClientAPI._commandTimeout (http://192.168.1.100:8111/client/ClientAPI.js:807:179 Seeing this randomly when returning to open browser tab after being away awhile. Once, maybe twice a day. "What did you do to trigger it?" Literally nothing, just walked away and returned and there it was. Actions taken in reasonably close proximity to this particular instance of it popping up: I'd restarted the MSR container in Portainer. I'll try to grab some logs here shortly.
Multi-System Reactor
Issue with MSR UI becoming unresponsive
S
I'm having an issue with MSR's UI being very unresponsive. It started happening a couple days ago and I didn't make any changes that would have caused this except adding some meross lan devices in HA. When I go into an entity action and use the search functionality, it usually will start filtering and then get to a place after a few letters are entered where it will take 30 seconds or more (sometimes minutes) for the UI to show what I am typing. During this time MSR ui is completely unresponsive. I've tried multiple browsers and multiple computers. HA and MSR are both deployed in docker. I have run HTOP on the host and when the problem happens there are no CPU/Memory spikes at all. From a functionality standpoint MSR is working perfectly. This seems to be an UI issue only. Do i need to ditch Docker and run MSR on a Proxmox VM? I have both stand alone Docker and Proxmox environments. I dont mind doing that I just want to be able to use the UI again... Installation method Home Assistant Container Core 2025.7.3 Frontend 20250702.3 nothing crazy in the logs except some openweather map stuff that doesn't make any sense as it is working fine in MSR Any help would be greatly appreciated Reactor latest-25328-b2ed1365 app 25328 configuration from /var/reactor/config NODE_PATH /opt/reactor:/opt/reactor/node_modules [latest-25328]2025-11-30T20:01:53.843Z <app:null> Reactor build latest-25328-b2ed1365 starting on v24.11.1 /usr/local/bin/node [latest-25328]2025-11-30T20:01:53.844Z <app:null> Process ID 1 user/group 0/0; docker; platform linux/x64 #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025; locale (undefined) [latest-25328]2025-11-30T20:01:53.844Z <app:null> Basedir /opt/reactor; data in /var/reactor/storage [latest-25328]2025-11-30T20:01:53.844Z <app:null> NODE_PATH=/opt/reactor:/opt/reactor/node_modules [latest-25328]2025-11-30T20:01:53.865Z <app:null> Resolved timezone=America/New_York, environment TZ=America/New_York; offset minutes from UTC=-300 [latest-25328]2025-11-30T20:01:53.867Z <default:null> Module i18n v25141 [latest-25328]2025-11-30T20:01:53.867Z <app:null> Configured locale (undefined); selected locale(s) en-US.UTF-8 [latest-25328]2025-11-30T20:01:53.879Z <app:null> Loaded locale en-US for en-US [latest-25328]2025-11-30T20:01:53.879Z <app:null> Local date/time using configured timezone and locale formatting is "11/30/2025, 3:01:53 PM" [latest-25328]2025-11-30T20:01:53.889Z <Structure:null> Module Structure v25326 [latest-25328]2025-11-30T20:01:53.890Z <Capabilities:null> Module Capabilities v24312 [latest-25328]2025-11-30T20:01:53.904Z <Plugin:null> Module Plugin v25141 [latest-25328]2025-11-30T20:01:53.923Z <Timer:null> Module Timer v25279 [latest-25328]2025-11-30T20:01:53.924Z <TimerBroker:null> Module TimerBroker v25314 [latest-25328]2025-11-30T20:01:53.927Z <Entity:null> Module Entity v25251 [latest-25328]2025-11-30T20:01:53.929Z <Controller:null> Module Controller v25253 [latest-25328]2025-11-30T20:01:53.930Z <AlertManager:null> Module AlertManager v25318 [latest-25328]2025-11-30T20:01:53.937Z <default:null> Module Ruleset v25283 [latest-25328]2025-11-30T20:01:53.937Z <default:null> Module Rulesets v25141 [latest-25328]2025-11-30T20:01:53.942Z <GlobalExpression:null> Module GlobalExpression v25258 [latest-25328]2025-11-30T20:01:53.953Z <Predicate:null> Module Predicate v25328 [latest-25328]2025-11-30T20:01:53.956Z <Rule:null> Module Rule v25323 [latest-25328]2025-11-30T20:01:53.958Z <GlobalReaction:null> Module GlobalReaction v25292 [latest-25328]2025-11-30T20:01:53.959Z <Engine:null> Module Engine v25325 [latest-25328]2025-11-30T20:01:53.964Z <httpapi:null> Module httpapi v25328 [latest-25328]2025-11-30T20:01:53.972Z <wsapi:null> Module wsapi v25328 [latest-25328]2025-11-30T20:01:53.994Z <TaskQueue:null> Module TaskQueue 24138 [latest-25328]2025-11-30T20:01:53.994Z <VeraController:null> Module VeraController v25141 [latest-25328]2025-11-30T20:01:54.179Z <HassController:null> Module HassController v25325 [latest-25328]2025-11-30T20:02:13.797Z <OWMWeatherController:null> Module OWMWeatherController v25268 [latest-25328]2025-11-30T20:02:13.800Z <SystemController:null> Module SystemController v25323 [latest-25328]2025-11-30T20:02:13.807Z <MQTTController:null> Module MQTTController v22092 [latest-25328]2025-11-30T20:02:20.630Z <OWMWeatherController:CRIT> FetchError: request to https://api.openweathermap.org/data/2.5/weather?lat=xxxxxxxxxx&lon=-xxxxxxxxx&appid=xxxxxxxxxxxxxxxxxxxxxxxxxx&units=standard&_r=1xxxxxxxxxxxxxxfailed, reason: [-] FetchError: request to https://api.openweathermap.org/data/2.5/weather?lat=xxxxxxxxxxx&lon=-xxxxxxxxxxxxxxxxxx&appid=xxxxxxxxxxxxxxxxxxx&units=standard&_r=xxxxxxxxxxxxxxxfailed, reason: at ClientRequest.<anonymous> (/opt/reactor/node_modules/node-fetch/lib/index.js:1501:11) at ClientRequest.emit (node:events:508:28) at ClientRequest.emit (node:domain:489:12) at emitErrorEvent (node:_http_client:108:11) at TLSSocket.socketErrorListener (node:_http_client:575:5) at TLSSocket.emit (node:events:508:28) at TLSSocket.emit (node:domain:489:12) at emitErrorNT (node:internal/streams/destroy:170:8) at emitErrorCloseNT (node:internal/streams/destroy:129:3) at processTicksAndRejections (node:internal/process/task_queues:89:21
Multi-System Reactor
Date/time condition
tunnusT
Topic thumbnail image
Multi-System Reactor
Device log?
G
@toggledbits is there a log that will show me what rule is turning on a specific device? I've got a switch that has been kicking on at 2200 ET for several nights now and the reactor.log doesn't have a thing in it that I can see on a device level (it being more rules-based).
Multi-System Reactor
Midnight crossing not working in date/time condition (build 25325)
tunnusT
Topic thumbnail image
Multi-System Reactor
Reactor (Multi-System/Multi-Hub) Announcements
toggledbitsT
Build 21228 has been released. Docker images available from DockerHub as usual, and bare-metal packages here. Home Assistant up to version 2021.8.6 supported; the online version of the manual will now state the current supported versions; Fix an error in OWMWeatherController that could cause it to stop updating; Unify the approach to entity filtering on all hub interface classes (controllers); this works for device entities only; it may be extended to other entities later; Improve error detail in messages for EzloController during auth phase; Add isRuleSet() and isRuleEnabled() functions to expressions extensions; Implement set action for lock and passage capabilities (makes them more easily scriptable in some cases); Fix a place in the UI where 24-hour time was not being displayed.
Multi-System Reactor
[Solved] Local expression in Rule does not evaluate as they used to do
CrilleC
Topic thumbnail image
Multi-System Reactor
Home Assistant 2025.11.2 and latest-25315
CrilleC
Topic thumbnail image
Multi-System Reactor

[SOLVED] How do I: delay a notification to fire only if the ruleset actually fires

Scheduled Pinned Locked Moved Multi-System Reactor
reactionsdelays
17 Posts 4 Posters 2.4k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • LibraSunL LibraSun

    I guess the simplest reply would be, "Why not just place your Notification step inside the Set Reaction portion of your 'Correction' rule?" I can't think of a more succinct way to ensure that it runs if (and only when) the 'Correction' rule fires Or am I missing something?

    I do realize my simplistic response side-steps your underlying question of "Why isn't Restriction X stopping Rule Y from proceeding?"

    G Offline
    G Offline
    gwp1
    wrote on last edited by
    #3

    @librasun That's where it lives. It's also the second action under the action to reset the stats. Yet what happens is, whilst the seven minutes is in progress and the action to reset the stats is waiting for a go command, the notification fires.

    *Hubitat C-7 2.4.3.173
    *Proxmox VE v8, Beelink MiniPC 12GBs, SSD

    *HASS 2025.12.4, Core 2025.12.3
    w/ HA Connect ZWA-2
    FW: v1.1
    SDK: v7.23.1

    *Prod MSR in docker/portainer
    MSR: latest-25328-b2ed1365
    MQTTController: 25139
    ZWave Controller: 25139

    1 Reply Last reply
    0
    • toggledbitsT Offline
      toggledbitsT Offline
      toggledbits
      wrote on last edited by
      #4

      @gwp1 I feel like a grade school teacher having to write this, but... show your work.

      Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

      G 1 Reply Last reply
      0
      • toggledbitsT toggledbits

        @gwp1 I feel like a grade school teacher having to write this, but... show your work.

        G Offline
        G Offline
        gwp1
        wrote on last edited by gwp1
        #5

        @toggledbits "But Mr. Kedron, I did it in my head!"

        Screen Shot 2021-11-05 at 8.49.52 AM.png

        Screen Shot 2021-11-05 at 8.50.08 AM.png

        Screen Shot 2021-11-05 at 8.50.24 AM.png

        Screen Shot 2021-11-05 at 8.50.45 AM.png

        Screen Shot 2021-11-05 at 8.51.45 AM.png

        Concept is: other heating ruleset issues commands to Honeywell API to set heat at 68 upstairs, 65 downstairs. Sometimes this is ignored. As such, 'cause things happen, this ruleset essentially looks for the correct criteria to be UNMATCHED and, after waiting seven minutes, fires off the same command to Honeywell as well as notifying me.

        The seven minutes is to:

        • prevent a double hit on an API that already fumbled the first one

        • if, for some reason, the status change is just late and the original command was accepted then the Triggers here will go unmatched and this ruleset ultimately expires without needing to fire

        And yes, I do lie awake at night thinking up these convoluted scenarios because "food is a crutch, sleep is for wimps."

        *Hubitat C-7 2.4.3.173
        *Proxmox VE v8, Beelink MiniPC 12GBs, SSD

        *HASS 2025.12.4, Core 2025.12.3
        w/ HA Connect ZWA-2
        FW: v1.1
        SDK: v7.23.1

        *Prod MSR in docker/portainer
        MSR: latest-25328-b2ed1365
        MQTTController: 25139
        ZWave Controller: 25139

        1 Reply Last reply
        0
        • toggledbitsT Offline
          toggledbitsT Offline
          toggledbits
          wrote on last edited by
          #6

          I'm not seeing a delay in your reaction. If there's no delay in your reaction, there won't be a delay between the actions. What am I missing?

          Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

          G 1 Reply Last reply
          0
          • toggledbitsT toggledbits

            I'm not seeing a delay in your reaction. If there's no delay in your reaction, there won't be a delay between the actions. What am I missing?

            G Offline
            G Offline
            gwp1
            wrote on last edited by
            #7

            @toggledbits I had a delay in it originally and all that did was delay the notification even if the ruleset ended up not ultimately firing because conditions changed and the Set Reaction didn't need to be fired - ie, I still got the notification (albeit delayed) even if the ruleset was aborted because the Triggers no longer applied.

            *Hubitat C-7 2.4.3.173
            *Proxmox VE v8, Beelink MiniPC 12GBs, SSD

            *HASS 2025.12.4, Core 2025.12.3
            w/ HA Connect ZWA-2
            FW: v1.1
            SDK: v7.23.1

            *Prod MSR in docker/portainer
            MSR: latest-25328-b2ed1365
            MQTTController: 25139
            ZWave Controller: 25139

            toggledbitsT 1 Reply Last reply
            0
            • G gwp1

              @toggledbits I had a delay in it originally and all that did was delay the notification even if the ruleset ended up not ultimately firing because conditions changed and the Set Reaction didn't need to be fired - ie, I still got the notification (albeit delayed) even if the ruleset was aborted because the Triggers no longer applied.

              toggledbitsT Offline
              toggledbitsT Offline
              toggledbits
              wrote on last edited by
              #8

              @gwp1 said in How do I: delay a notification to fire only if the ruleset actually fires:

              even if the ruleset was aborted because the Triggers no longer applied.

              That is correct behavior. You can get the reaction to stop if the rule resets by supplying a Reset Reaction. If the Reset Reaction is not empty, Reactor will abort the running Set Reaction. It can even contain just a comment (so not actually do anything); as long as it's not empty, Reactor will abort the delay and everything that follows it.

              Documentation: Reaction Delays

              Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

              G 2 Replies Last reply
              0
              • toggledbitsT toggledbits

                @gwp1 said in How do I: delay a notification to fire only if the ruleset actually fires:

                even if the ruleset was aborted because the Triggers no longer applied.

                That is correct behavior. You can get the reaction to stop if the rule resets by supplying a Reset Reaction. If the Reset Reaction is not empty, Reactor will abort the running Set Reaction. It can even contain just a comment (so not actually do anything); as long as it's not empty, Reactor will abort the delay and everything that follows it.

                Documentation: Reaction Delays

                G Offline
                G Offline
                gwp1
                wrote on last edited by
                #9

                @toggledbits said in How do I: delay a notification to fire only if the ruleset actually fires:

                You can get the reaction to stop if the rule resets by supplying a Reset Reaction. If the Reset Reaction is not empty, Reactor will abort the running Set Reaction. It can even contain just a comment (so not actually do anything); as long as it's not empty, Reactor will abort the delay and everything that follows it.

                Wow, I never would have considered that, not in a million years. Thanks, Teach!

                *Hubitat C-7 2.4.3.173
                *Proxmox VE v8, Beelink MiniPC 12GBs, SSD

                *HASS 2025.12.4, Core 2025.12.3
                w/ HA Connect ZWA-2
                FW: v1.1
                SDK: v7.23.1

                *Prod MSR in docker/portainer
                MSR: latest-25328-b2ed1365
                MQTTController: 25139
                ZWave Controller: 25139

                toggledbitsT 1 Reply Last reply
                0
                • G gwp1

                  @toggledbits said in How do I: delay a notification to fire only if the ruleset actually fires:

                  You can get the reaction to stop if the rule resets by supplying a Reset Reaction. If the Reset Reaction is not empty, Reactor will abort the running Set Reaction. It can even contain just a comment (so not actually do anything); as long as it's not empty, Reactor will abort the delay and everything that follows it.

                  Wow, I never would have considered that, not in a million years. Thanks, Teach!

                  toggledbitsT Offline
                  toggledbitsT Offline
                  toggledbits
                  wrote on last edited by
                  #10

                  @gwp1 said in How do I: delay a notification to fire only if the ruleset actually fires:

                  Wow, I never would have considered that, not in a million years.

                  Well, there's a place you can go (and it's not here) that will tell you this and many similar secrets... 😉

                  Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

                  G 1 Reply Last reply
                  0
                  • toggledbitsT toggledbits

                    @gwp1 said in How do I: delay a notification to fire only if the ruleset actually fires:

                    Wow, I never would have considered that, not in a million years.

                    Well, there's a place you can go (and it's not here) that will tell you this and many similar secrets... 😉

                    G Offline
                    G Offline
                    gwp1
                    wrote on last edited by
                    #11

                    @toggledbits I certainly hope you aren't pointing to the MANUAL! Next thing, you'll want me asking directions before embarking on an excursion from the house!

                    *Hubitat C-7 2.4.3.173
                    *Proxmox VE v8, Beelink MiniPC 12GBs, SSD

                    *HASS 2025.12.4, Core 2025.12.3
                    w/ HA Connect ZWA-2
                    FW: v1.1
                    SDK: v7.23.1

                    *Prod MSR in docker/portainer
                    MSR: latest-25328-b2ed1365
                    MQTTController: 25139
                    ZWave Controller: 25139

                    1 Reply Last reply
                    1
                    • toggledbitsT toggledbits

                      @gwp1 said in How do I: delay a notification to fire only if the ruleset actually fires:

                      even if the ruleset was aborted because the Triggers no longer applied.

                      That is correct behavior. You can get the reaction to stop if the rule resets by supplying a Reset Reaction. If the Reset Reaction is not empty, Reactor will abort the running Set Reaction. It can even contain just a comment (so not actually do anything); as long as it's not empty, Reactor will abort the delay and everything that follows it.

                      Documentation: Reaction Delays

                      G Offline
                      G Offline
                      gwp1
                      wrote on last edited by
                      #12

                      @toggledbits said in [SOLVED] How do I: delay a notification to fire only if the ruleset actually fires:

                      You can get the reaction to stop if the rule resets by supplying a Reset Reaction. If the Reset Reaction is not empty, Reactor will abort the running Set Reaction. It can even contain just a comment (so not actually do anything); as long as it's not empty, Reactor will abort the delay and everything that follows it.

                      Documentation: Reaction Delays

                      This functionality has stopped working as of build 21331 (and the subsequent 21332) from my observations.

                      Screen Shot 2021-11-28 at 9.17.29 PM.png

                      Screen Shot 2021-11-28 at 9.17.50 PM.png

                      (Yes, I literally c/p'd your explanation into the Comment field so I'd know why I created that particular Reset Reaction.) The current behaviour is how one would expect it to respond if the Reset Reaction were empty. I don't have logs pulled yet, sleep for work tomorrow beckons but I wanted to put it on the proverbial radar. If this should be reported in Mantis I'm happy to do so, just may be a couple days what with Giving Tuesday this week.

                      *Hubitat C-7 2.4.3.173
                      *Proxmox VE v8, Beelink MiniPC 12GBs, SSD

                      *HASS 2025.12.4, Core 2025.12.3
                      w/ HA Connect ZWA-2
                      FW: v1.1
                      SDK: v7.23.1

                      *Prod MSR in docker/portainer
                      MSR: latest-25328-b2ed1365
                      MQTTController: 25139
                      ZWave Controller: 25139

                      1 Reply Last reply
                      1
                      • toggledbitsT Offline
                        toggledbitsT Offline
                        toggledbits
                        wrote on last edited by
                        #13

                        I have a pretty short and definitive test for this, and it's working as expected. There have been no code changes in this area, so I'd be surprised to see a change in behavior.

                        Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

                        1 Reply Last reply
                        0
                        • A Offline
                          A Offline
                          Alan_F
                          wrote on last edited by
                          #14

                          I've re-read this thread a few times and still am confused by the whole thing. If I understand the images of the rule set, the notification should not be sent because this entire rule set doesn't become true unless one of the conditions is sustained for 420 seconds. That notification should never fire earlier than 420 seconds after one of the Thermostat.Setpoint <> XX is first detected. There is no issue of stopping a running rule set. This rule set isn't supposed to run unless the error state is sustained for 420 seconds. I have several rule sets that work just like this, and they work as expected. Nothing happens if the mis-matched conditions are corrected before the 'sustained for' time expires.

                          Light bulb moment: I think I just figured why this may be firing the notification when you don't want it to.

                          Existing conditions:
                          Downstairs set point is 62. it has been set to 62 for more than 420 seconds.
                          Downstairs mode is set to heat.
                          Armed for heating master rule set is true
                          House mode switches from 'away' to 'home'.

                          This rule set will fire immediately.

                          This would also occur if the Armed for heating master rule set changed to true, or if the downstairs thermostat mode changed to heat. As long as the thermostat has been set to something other than 65 or 68 for 420 seconds prior to those other conditions coming true, the 'delay' (really 'sustained for') is already met.

                          This either needs to be wrapped in an outer group with a 'sustained for 420 seconds' on the whole thing, or the house mode, armed for heating master, and thermostat mode conditions also need to be set to only go true when they are sustained for 420 seconds.

                          I'm not sure I understand your use case, but if it's possible for the set point to be other than 65/68 and one of those other conditions to then change, this could definitely be double-running your HVAC - Heating Day reaction. If, for example, you have a reduced set point when you're in away mode (or at night), and the HVAC - Heating Day reaction is supposed to fire when you come home (or switch to day mode), then this rule will fire at the same time, assuming you've been away more than 420 seconds (or in night mode more than 420 seconds) with the set points turned down.

                          If this really does involve an already-running reaction that needs to be stopped by a reset reaction, then I'm completely misunderstanding how the rules in the images you posted work.

                          G 1 Reply Last reply
                          0
                          • A Alan_F

                            I've re-read this thread a few times and still am confused by the whole thing. If I understand the images of the rule set, the notification should not be sent because this entire rule set doesn't become true unless one of the conditions is sustained for 420 seconds. That notification should never fire earlier than 420 seconds after one of the Thermostat.Setpoint <> XX is first detected. There is no issue of stopping a running rule set. This rule set isn't supposed to run unless the error state is sustained for 420 seconds. I have several rule sets that work just like this, and they work as expected. Nothing happens if the mis-matched conditions are corrected before the 'sustained for' time expires.

                            Light bulb moment: I think I just figured why this may be firing the notification when you don't want it to.

                            Existing conditions:
                            Downstairs set point is 62. it has been set to 62 for more than 420 seconds.
                            Downstairs mode is set to heat.
                            Armed for heating master rule set is true
                            House mode switches from 'away' to 'home'.

                            This rule set will fire immediately.

                            This would also occur if the Armed for heating master rule set changed to true, or if the downstairs thermostat mode changed to heat. As long as the thermostat has been set to something other than 65 or 68 for 420 seconds prior to those other conditions coming true, the 'delay' (really 'sustained for') is already met.

                            This either needs to be wrapped in an outer group with a 'sustained for 420 seconds' on the whole thing, or the house mode, armed for heating master, and thermostat mode conditions also need to be set to only go true when they are sustained for 420 seconds.

                            I'm not sure I understand your use case, but if it's possible for the set point to be other than 65/68 and one of those other conditions to then change, this could definitely be double-running your HVAC - Heating Day reaction. If, for example, you have a reduced set point when you're in away mode (or at night), and the HVAC - Heating Day reaction is supposed to fire when you come home (or switch to day mode), then this rule will fire at the same time, assuming you've been away more than 420 seconds (or in night mode more than 420 seconds) with the set points turned down.

                            If this really does involve an already-running reaction that needs to be stopped by a reset reaction, then I'm completely misunderstanding how the rules in the images you posted work.

                            G Offline
                            G Offline
                            gwp1
                            wrote on last edited by
                            #15

                            @alan_f The goal here is, for those times when Honeywell flakes on accepting the API post to change temps, this will monitor that and, if the expected setpoints aren't met for the specified conditions (ie, Heating at Home, Heating Away, etc.) then it will resend the commands to Honeywell. The reason for the 420 second delay is to allow the Honeywell API to "compose itself" since it's easily overrun and sending the course correction immediately will presumably result in no correction happening.

                            @toggledbits I'm at a bit of a loss, then. Nothing was touched with this ruleset since I added the Reset Reaction and it resolved this issue originally. What is the test you have for this and can I use it to spin up a temp rule and validate locally?

                            *Hubitat C-7 2.4.3.173
                            *Proxmox VE v8, Beelink MiniPC 12GBs, SSD

                            *HASS 2025.12.4, Core 2025.12.3
                            w/ HA Connect ZWA-2
                            FW: v1.1
                            SDK: v7.23.1

                            *Prod MSR in docker/portainer
                            MSR: latest-25328-b2ed1365
                            MQTTController: 25139
                            ZWave Controller: 25139

                            1 Reply Last reply
                            0
                            • toggledbitsT Offline
                              toggledbitsT Offline
                              toggledbits
                              wrote on last edited by toggledbits
                              #16

                              I think there's a misunderstanding here, and you need to review your logic and the state of devices in the detail panel for the rule, which shows the status of the condition targets and each condition as well as the running timers (when running).

                              A Reset reaction can only stop a running Set reaction. There is no delay in your Set reaction, so your Set reaction will run instantly and completely when the trigger conditions are met. There is no opportunity here, based on what I see from what is posted earlier, for the Reset reaction to intervene. That whole issue is moot as it applies to the rule and reaction shown.

                              The sustained for delay is self-cancelling. When the related condition is no longer met (i.e. result is false), the timer is cancelled. If this rule is setting, it is doing so because one of the two conditions is being met. A review of the detail panel and status will show this.

                              I"m getting the idea that you are not looking at the detail panel. Go look at it. Post it if the results aren't what you expect.

                              Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

                              1 Reply Last reply
                              0
                              • A Offline
                                A Offline
                                Alan_F
                                wrote on last edited by Alan_F
                                #17

                                @gwp1 I think I correctly understood the use case then. The issue is that your rule set doesn't start counting the 420 seconds when the initial command is sent to the Honeywell API. The 420 seconds starts counting as soon as the setpoint is <> 65 (or 68). If you ever have the thermostats set to another value (when away, or night, or when not in heat mode) then the 'sustained for' will start counting and as soon as 420 seconds have passed, that element of the rule will go to true. You'll see it is green in the detail panel if you expand the rule set.

                                The thing I'm not clear on, but am making some assumptions about, is what triggers the initial call to the Honeywell API that this rule is designed to monitor/verify. Making the assumption that you turn down the thermostat at night with something like "HVAC - Heating NIGHT", and that heating is still armed and the thermostat mode is still set to heat at night, then 420 seconds after you go into night mode, every element of this rule set will be true except the Hubitat house mode rule. The rule set is primed to activate if that goes true.

                                So at night:

                                • Armed for heating is true
                                • (7 minutes after you enter night mode) Set point has been at some other value for more than 420 seconds
                                • Thermostat mode is set to heat
                                • But the rule set is NOT activated because the "AND house mode not in (night, vacation, away)" is not true

                                In the morning when the Hubitat mode switches from "night" to "day", this rule will go true immediately as all elements are now true.

                                • Armed for heating is true
                                • Set point has been at some other value for more than 420 seconds. It is still at the night value until the API reports the new daytime value
                                • Thermostat mode is set to heat
                                • House mode not in (night, vacation, away)" is true

                                If you add the 420 second 'sustained' to the other elements, then in the morning when the Hubitat mode switches to "day", this rule will NOT go true immediately

                                • Armed for heating has been true for at least 420 seconds
                                • Set point has been at some other value for at least 420 seconds
                                • Thermostat mode is set to heat for at least 420 seconds
                                • House mode not in (night, vacation, away)" has NOT been true for 420 seconds until 7 minutes after you switch to day mode.

                                As long as one of the other elements goes false within 7 minutes, the rule set will never activate. The expected behavior is that the "set point has been at some other value" will go false within 7 minutes. If that doesn't happen, the whole rule set will go true and the set actions will fire including re-running the other rule set and notifying you.

                                I still think this could be improved as I'm pretty sure this will only fire once. If the second attempt at setting the thermostat fails, this rule will remain set and there is nothing to cause it to un-set and then re-activate. That could be your desired behavior if you want to manually fix it when it fails the first time and avoid calling the rule every 7 minutes on repeated failures.

                                I dealt with a lot of the same issues setting up rules for my flaky Lennox thermostat. It's still in Node-Red and looks like this:

                                55821e35-adfb-495c-b2b3-2a6ad7ea47bd-image.png <img src="blob:chrome-untrusted://media-app/55d4404c-a480-4453-ae24-0e6410279a3b" alt="Screenshot 2021-11-29 11.34.25.png"/>

                                I'm not smart/experienced/brave enough to try to replicate that in MSR yet.

                                1 Reply Last reply
                                0
                                • toggledbitsT toggledbits locked this topic on
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                Recent Topics

                                • [HowTo] Using HABridge with Reactor
                                  CatmanV2C
                                  CatmanV2
                                  0
                                  9
                                  362

                                • [Reactor] Bug when sending MQTT boolean payloads
                                  toggledbitsT
                                  toggledbits
                                  0
                                  4
                                  114

                                • Genuinely impressed with Zigbee and HA / Reactor
                                  therealdbT
                                  therealdb
                                  1
                                  8
                                  268

                                • Difficulty defining repeating annual period
                                  G
                                  gwp1
                                  0
                                  5
                                  68

                                • Need help with sequence
                                  therealdbT
                                  therealdb
                                  0
                                  3
                                  41

                                • Possible feature request?
                                  therealdbT
                                  therealdb
                                  0
                                  5
                                  151

                                • Copying a global reaction
                                  tunnusT
                                  tunnus
                                  0
                                  1
                                  41

                                • Logic Assistance: Exterior Lights on when Illuminance Below Threshold
                                  CatmanV2C
                                  CatmanV2
                                  0
                                  11
                                  321

                                • Time series documentation
                                  tunnusT
                                  tunnus
                                  0
                                  11
                                  379

                                • MQTT templates for ZIgbee scene controller, or a better way?
                                  CatmanV2C
                                  CatmanV2
                                  0
                                  3
                                  148

                                • Reset a delay
                                  CatmanV2C
                                  CatmanV2
                                  0
                                  8
                                  211
                                Powered by NodeBB | Contributors
                                Hosted freely by 10RUPTiV - Solutions Technologiques | Contact us
                                • Login

                                • Don't have an account? Register

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Categories
                                • Recent
                                • Tags
                                • Popular
                                • Unsolved