Skip to content

Multi-System Reactor

804 Topics 7.7k Posts
  • Category Topic Guide -- Read Before Posting

    Pinned Locked guidelines
    1
    8 Votes
    1 Posts
    1k Views
    No one has replied
  • Reactor (Multi-System/Multi-Hub) Announcements

    Pinned Locked announcements
    124
    5 Votes
    124 Posts
    70k Views
    toggledbitsT
    Reactor build 25304 BARE-METAL USERS: It is recommended that you update package dependencies when installing all Reactor updates. After unpacking the Reactor archive, remove any existing package-lock.json file from your Reactor install directory, and then run npm run deps to update package dependencies. ALL USERS: If you are using extension Controllers (like ZWaveJSController) please update them to the latest versions as well. Please refer to the CHANGELOG files for each for information on specific changes. Also don't forget to update any dependent packages for those extensions — dependent packages are maintained separately from Reactor itself and must be updated individually. Rules: POTENTIALLY BREAKING CHANGE the evaluation mechanism for rule-based (local) variables has been changed. Users with rules that rely on specific nuances (or bugs) in the old behavior/mechanism may find their variables and rules do not work as expected. However, most users should find that the new mechanism aligns well with their expectations. See the docs for Variables & Expressions - Overview for a complete description. The "Force re-evaluation of expressions and conditions" option available in the Set Variable action of Rule Reactions (SET & RESET) has been removed. When a rule-based variable is used in a trigger, and the variable's value changes, the Rule will now re-evaluate itself automatically. This is part of the above changes. Rule Reactions (SET & RESET) now have a "Wait for completion" option. When set, the rule will wait for its Reaction to finish before allowing itself to be re-evaluated. When not set (the default), the Rule will not wait and the Reaction runs asynchronously, and therefore a change to the rule state during the Reaction's execution could cause the Reaction to be pre-empted (stopped before completion). Rules: fix handling of some very old rule conditions where the changes operator was stored in an older structure (i.e. handling the legacy structure had a bug). A new alarm( interval_seconds ) function has been added; it can be used in global expressions (only) to cause periodic re-evaluation of the expression. This is particularly useful for expressions that don't have dependencies on other variables or entities/objects. A running timer can be cancelled by specifying an interval of zero (0). Button coordination in expressions editing has been improved, and the highlighting of error messages has been improved. HTTP API: A new endpoint /api/v1/variable/:name/update has been added to force re-evaluation of a global variable's expression and, if changed, set its new value. See docs HassController HA made a breaking change in 2025.9 (pull 150721) that wasn't declared in their general release notes, affecting the media_player.play_media service. This service also has a new field and selector type, and two fields previously declared have been removed. HassController now has ability to filter out entities (i.e. not import entities from HA into Reactor) based on source (integration). see docs HassController now supports binding of events directly to Reactions. This is in addition to the existing ability to bind events to entity attributes. Previously, if the user's goal was to run a Reaction in response to an event from HA, the user would need to first bind the event to a new entity and attribute, and then create a Rule triggered by that entity/attribute to launch the Reaction. Now, the Reaction can be launched directly on receipt of the event. See docs. DynamicGroupController: A configured group can be disabled by adding enabled: false to its configuration. The boolean value false is the only value that will be honored to disable the group (e.g. null and the number 0, while falsy values, will not be honored). Resolve an issue where some Controller subclass' system entities could lose track of their default primary attribute when unserialized (reloaded from storage at startup). UI: The rule search tool on the Rule Set left navigation offcanvas also finds Rule IDs that match the entered text (i.e. you can search by name and ID). UI: Fix an error that was thrown when using search on the Rule Sets navigation offcanvas list and some existing Reaction had no name. UI/Entities: Refresh all displayed entities when a structure event is received from the API (such as when reconnecting after a restart), to ensure the data displayed is the most current. UI/Expressions: page will now refresh all expression values when a structure event is received (e.g. after a restart of Reactor), as the Engine start and update of global variables often occurs before clients reconnect to the service, so clients can easily miss the update events from those objects. UI/Client API: fix an issue where a group entity could be assigned the wrong entity class. UI/Rules: Fix column not wrapping on large value for Rule-based expressions (rule detail card). UI/Reaction Editor: the single-action try button (for Entity Actions) now correctly omits optional fields that contain no data, rather than sending blank data and expecting the Controller instance to sort it out. UI/Entity Picker: click handler now covers an empty area when no entity has been selected. UI/modal dialogs: the ESC key will now dismiss most dialogs; if the dialog is a confirmation, the dismissal is equivalent to hitting "Cancel". Pushover Notifier: remove extraneous debug message. Developers of Controller subclasses: the Controller method removeControllerGroup() is now deprecated. To replace its functionality, you should now set the class static property createControllerGroup to false. See docs. The old method will continue to be available until October 2026, but will generate a warning to the log, unless the class property is also set, in which case the warning is reduced to informational level (i.e. you can do both for compatibility until next year). Tools: added a new trivial backup script. Docker images: now built with nodejs LTS (22.20 as of this entry) on Alpine 3.21 HassController: Bless Hass to 2025.10.4
  • [Reactor] Variables not updating correctly in latest-25201-2aa18550

    95
    2
    0 Votes
    95 Posts
    8k Views
    toggledbitsT
    @tunnus OK. We got that one, too! Thanks for sticking with that process and getting me a lot of good information. Build 25304 is now fully released for all platforms and architectures. Please see the release announcement for a full list of change.
  • The reaction stopped working (Google Nest max playing a video)

    Locked Solved
    9
    1
    0 Votes
    9 Posts
    621 Views
    toggledbitsT
    @Fanan Build 25304 has the necessary changes to support what has changed in Home Assistant. The following is an example action to play media in the new model: The first example in the screen shot below shows how to format the object field that Home Assistant needs as JSON. The second example shows how to use YAML for the field. [image: 1761918113553-eb87b70b-d5d1-4afc-afc3-2e468deb6fe3-image.png]
  • Handling Dead Entities and Renamed Entities

    Solved
    5
    0 Votes
    5 Posts
    259 Views
    PablaP
    @toggledbits interesting, I totally understand the rationale why the controllers act this way. However, I feel like there are times where you’d want to batch update entities. Could this be added into the UI, similar to the purge dead entities action? Maybe an “update entity metadata” action?
  • Strange behavior for MQTT templates using payload and attributes

    6
    1
    0 Votes
    6 Posts
    299 Views
    toggledbitsT
    @therealdb said in Strange behavior for MQTT templates using payload and attributes: Never code in a hurry while doing 100 other things Ummm... is there any other way?
  • [MSR] reactor-mqtt-contrib package for additional MQTT templates

    Locked
    46
    1 Votes
    46 Posts
    9k Views
    therealdbT
    25272: Fixes for shelly_scenecontroller to better handle multiple pushes of the same button.
  • HA 2025.9.4 Supported Yet?

    2
    0 Votes
    2 Posts
    178 Views
    toggledbitsT
    @CatmanV2 said in The reaction stopped working (Google Nest max playing a video): Tangentially did I miss 2025.9.4 getting blessed in MSR? I've been holding off Generally, if 2025.9.0 or .1 is blessed, the remaining releases are going to contain only small tweaks and bug fixes, and will likely be OK to install (just ignore the warning alert). The biggest risk there is the first release (e.g. 202x.y.0) changing behavior that required me to adapt to in HassController, and a later minor release (e.g. 202x.y.2) addresses some error they made in that first cut and changes/fixes that behavior in a way that's now incompatible with the new HassController changes. Historically, that's pretty rare. The biggest risks are always the first of their monthly releases, where there are long lists of big behavior changes and usually many potentially breaking changes. And yes, please keep the threads on-topic.
  • Rule Set UI bug - RESOLVED

    Locked
    2
    4
    1 Votes
    2 Posts
    324 Views
    toggledbitsT
    Great report. Thank you! Will be fixed in next build.
  • [Reactor] Copy&Paste of Rules

    1
    0 Votes
    1 Posts
    337 Views
    No one has replied
  • [Reactor] Help with scene controller cycling logic

    5
    0 Votes
    5 Posts
    531 Views
    toggledbitsT
    This looks like a job for a finite state machine. An alternate way to tackle this may be to have a state local variable that's just a number/counter that increments when the scene controller button is pushed... Set Variable state = ${{ ( ( state ?#0 } + 1 ) % 3 }}. This will make state cycle through the values 0, 1, 2, 0, 1, 2... Then the reaction has these groups: When state == 0: turn both fans off When state == 1: turn 1 on, 2 off When state == 2: turn 1 off, 2 on [image: 1756482827376-2b5121d9-527f-4151-a719-7859c19bcd89-image.png] It's easy to add a fourth state if you want the option of having both fans on at the same time. I'll leave the changes as an exercise for readers. DM if you need a hint.
  • Stop the MSR by an external switch on Hubitat.

    6
    0 Votes
    6 Posts
    845 Views
    Tom_DT
    I would never rely on automation to keep equipment you are working on off. Turn it off at the breaker or disconnect.
  • Expose MSR entities

    Locked
    11
    0 Votes
    11 Posts
    1k Views
    CatmanV2C
    You are both gents! C
  • Comment in Globa Expressions

    2
    1 Votes
    2 Posts
    776 Views
    CrilleC
    Maybe not the prettiest way to do it but why not let the rule set the comment followed by the value? Like ”This is set by rule Test”, value
  • Unofficial thread for compatibility

    1
    2 Votes
    1 Posts
    442 Views
    No one has replied
  • Gradually turn on lights.

    Locked Solved
    21
    0 Votes
    21 Posts
    2k Views
    toggledbitsT
    @tbully said in Gradually turn on lights.: I'm having this same issue with a bare metal install. I assume this fix will be included in a future release? (No hurry. This is just a nice-to-have thing...) The 25208 build released yesterday includes the fixes in the temporary containers built for @vezinpi and others on this thread.
  • Can't customize home page

    Locked
    15
    0 Votes
    15 Posts
    1k Views
    G
    @toggledbits appreciate the quick turnaround on this. It def caught me off-guard.
  • Error After Upgrade

    Locked
    4
    1
    0 Votes
    4 Posts
    702 Views
    G
    @tbully thanks for putting a smile on my face today. Much needed. Much appreciated.
  • Reset attribute value of entity in event handler

    Locked
    5
    1
    0 Votes
    5 Posts
    1k Views
    R
    Seems to be working perfectly. Thanks! Should have thought of that myself.
  • Need help figuring out how to delay a reset on reaction

    Locked
    22
    3
    0 Votes
    22 Posts
    4k Views
    G
    @therealdb I use those as well. As you see in my AWAY rule there's a catch there using a virtual switch for my calendar integration. If a calendar entry has a specific keyword it turns the switch on. If the switch is on, AWAY knows not to fire.... VACA has it covered. @toggledbits beat me to it: comments, comments, comments. I've lost too many years off my life trying to remember why this rule does what it does and how.

Recent Topics