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. Reactor (Multi-System/Multi-Hub) Announcements
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
Upcoming Storage Change -- Got Back-ups?
toggledbitsT
TL;DR: Format of data in storage directory will soon change. Make sure you are backing up the contents of that directory in its entirety, and you preserve your backups for an extended period, particularly the backup you take right before upgrading to the build containing this change (date of that is still to be determined, but soon). The old data format will remain readable (so you'll be able to read your pre-change backups) for the foreseeable future. In support of a number of other changes in the works, I have found it necessary to change the storage format for Reactor objects in storage at the physical level. Until now, plain, standard JSON has been used to store the data (everything under the storage directory). This has served well, but has a few limitations, including no real support for native JavaScript objects like Date, Map, Set, and others. It also is unable to store data that contains "loops" — objects that reference themselves in some way. I'm not sure exactly when, but in the not-too-distant future I will publish a build using the new data format. It will automatically convert existing JSON data to the new format. For the moment, it will save data in both the new format and the old JSON format, preferring the former when loading data from storage. I have been running my own home with this new format for several months, and have no issues with data loss or corruption. A few other things to know: If you are not already backing up your storage directory, you should be. At a minimum, back this directory up every time you make big changes to your Rules, Reactions, etc. Your existing JSON-format backups will continue to be readable for the long-term (years). The code that loads data from these files looks for the new file format first (which will have a .dval suffix), and if not found, will happily read (and convert) a same-basenamed .json file (i.e. it looks for ruleid.dval first, and if it doesn't find it, it tries to load ruleid.json). I'll publish detailed instructions for restoring from old backups when the build is posted (it's easy). The new .dval files are not directly human-readable or editable as easily as the old .json files. A new utility will be provided in the tools directory to convert .dval data to .json format, which you can then read or edit if you find that necessary. However, that may not work for all future data, as my intent is to make more native JavaScript objects directly storable, and many of those objects cannot be stored in JSON. You may need to modify your backup tools/scripts to pick up the new files: if you explicitly name .json files (rather than just specifying the entire storage directory) in your backup configuration, you will need to add .dval files to get a complete, accurate backup. I don't think this will be an issue for any of you; I imagine that you're all just backing up the entire contents of storage regardless of format/name, that is the safest (and IMO most correct) way to go (if that's not what you're doing, consider changing your approach). The current code stores the data in both the .dval form and the .json form to hedge against any real-world problems I don't encounter in my own use. Some future build will drop this redundancy (i.e. save only to .dval form). However, the read code for the .json form will remain in any case. This applies only to persistent storage that Reactor creates and controls under the storage tree. All other JSON data files (e.g. device data for Controllers) are unaffected by this change and will remain in that form. YAML files are also unaffected by this change. This thread is open for any questions or concerns.
Multi-System Reactor
Next Release?
CatmanV2C
Morning. Do we have a roadmap for the next release, at all? I only ask as there's a breaking HA change and I have many packages now out of date. Cheers! C
Multi-System Reactor
Controller Z-Wave JS UI: "Location" attribute not visible in Reactor entities
N
Hi, I'm on Docker/NAs (latest-26011-c621bbc7) with Zwave js ui (last version). I have set the 'Location' for each device in the Z-Wave JS UI dashboard, I cannot find this information among the Entity Attributes in the Reactor. I tried and the result is an empty array []. It seems the 'Location' metadata from Z-Wave JS is not being mapped to a standard attribute in Reactor. Location is equale to Rooms for me. When comparing this to the Vera or Ezlo Controller, Reactor automatically creates Room Icons also in the Reactor Dashboard and places the various devices under those room categories. This is a very convenient way to keep the dashboard organized and quickly find lights to turn off with a click (especially when something isn't switched off as expected for me:) ). Is there a way to map the Z-Wave JS UI 'Location' attribute and a dashboard organization, just like it does with Vera/Ezlo? Thanks in advance for all the great tips you've shared
Multi-System Reactor
Variables not updating properly
tunnusT
Topic thumbnail image
Multi-System Reactor
[Solved] Loading Screen Safari
S
Topic thumbnail image
Multi-System Reactor
VEC Virtual Switch Auto Off
S
I use Virtual Entity Controller virtual switches which I turn on via webhooks from other applications. Once a switch triggers and turns on, I can then activate associated rules. I would like each virtual switch to automatically turn off after a configurable time (e.g., 5 seconds, 10 seconds). Is there a better way to achieve this auto-off behavior instead of creating a separate rule for each switch that uses the 'Condition must be sustained for' option to turn it off? With a large number of these switches (and the associated turn-off rules), I'm checking to see if there is a simpler approach.If not, could this be a feature request to add an auto-off timer directly to the virtual switches. Thanks Reactor (Multi-hub) latest-26011-c621bbc7 VirtualEntityController v25356 Synology Docker
Multi-System Reactor
Changes operator does not always detect change
tunnusT
I've had similar problems before, but now this issue has resurfaced. Using build 26011 on Docker. As I copied one old rule as a "template" for a similar new rule, where I have multiple conditions using changes operator (from any to any, and with delay reset of 900), these conditions do not detect change in attributes. Even if I manually reset the rule, reset delay timers do not restart. If I do a new rule from scratch, and do not copy/import anything old, the same conditions work properly. Also, if I modify copied rule's conditions (put a random number to "from" & "to" fields), then save, and after that remove those modifications, rule begins to function normally. Just editing e.g. delay reset value does not do any good in this context. @toggledbits, I can DM logs & related rule files to you, if you just send me instructions.
Multi-System Reactor
Dynamic MQTT topics and parameters
M
Topic thumbnail image
Multi-System Reactor
Condition for trend
T
Topic thumbnail image
Multi-System Reactor
Struggling to setup my first Tasmota device and MQTT
cw-kidC
Topic thumbnail image
Multi-System Reactor
Existing Rule stopped working HTTP command fetching IP address from website
cw-kidC
Topic thumbnail image
Multi-System Reactor
Set reaction triggering wrong z-wave device
T
Topic thumbnail image
Multi-System Reactor
Can you run MSR on Home Assistant OS ?
cw-kidC
Looking at using Home Assistant for the first time, either on a Home Assistant Green, their own hardware or buying a cheap second hand mini PC. Sounds like Home Assistant OS is linux based using Docker for HA etc. Would I also be able to install things like MSR as well on their OS ? On the same box? Thanks.
Multi-System Reactor
How to upgrade from an old version of MSR?
cw-kidC
Hello I haven't updated my installation of MSR in a very long time. Its a bare metal Linux install currently on version 24366-3de60836 I see the latest version is now latest-26011-c621bbc7 I assume I cannot just jump from a very old version to the latest version? Or can I? Thanks
Multi-System Reactor
This trigger no longer working - complaining about the operator needing changing
cw-kidC
Topic thumbnail image
Multi-System Reactor
Self test
CatmanV2C
Having been messing around with some stuff I worked a way to self trigger some tests that I wanted to do on the HA <> MSR integration This got me wondering if there's an entity that changes state / is exposed when a configured controller goes off line? I can't see one but thought it might be hidden or something? Cheers C
Multi-System Reactor
Access control - allowing anonymous user to dashboard
tunnusT
Using build 25328 and having the following users.yaml configuration: users: # This section defines your valid users. admin: ******* groups: # This section defines your user groups. Optionally, it defines application # and API access restrictions (ACLs) for the group. Users may belong to # more than one group. Again, no required or special groups here. admin_group: users: - admin applications: true # special form allows access to ALL applications guests: users: "*" applications: - dashboard api_acls: # This ACL allows users in the "admin" group to access the API - url: "/api" group: admin_group allow: true log: true # This ACL allows anyone/thing to access the /api/v1/alive API endpoint - url: "/api/v1/alive" allow: true session: timeout: 7200 # (seconds) rolling: true # activity extends timeout when true # If log_acls is true, the selected ACL for every API access is logged. log_acls: true # If debug_acls is true, even more information about ACL selection is logged. debug_acls: true My goal is to allow anonymous user to dashboard, but MSR is still asking for a password when trying to access that. Nothing in the logs related to dashboard access. Probably an error in the configuration, but help needed to find that. Tried to put url: "/dashboard" under api_acls, but that was a long shot and didn't work.
Multi-System Reactor
Oddness in Copy/Move of Reactions
G
Topic thumbnail image
Multi-System Reactor
[Solved] function isRuleEnabled() issue
CrilleC
Topic thumbnail image
Multi-System Reactor

Reactor (Multi-System/Multi-Hub) Announcements

Scheduled Pinned Locked Moved Multi-System Reactor
announcements
134 Posts 2 Posters 97.1k Views 13 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.
  • toggledbitsT Offline
    toggledbitsT Offline
    toggledbits
    wrote on last edited by
    #125

    Reactor build 25308

    IMPORTANT: This build addresses two issues in 25304 only. If you are not experiencing these two issues (described below), you do not need to upgrade to this build.

    • Expressions: Fix an error thrown when defining a function in a global expression.
    • Reactions: fix an issue causing a disabled group to execute anyway.

    Additional changes:

    • Engine: It is now possible to create constants and functions for use in expressions system-wide that are not defined using global variables. see docs
    • UI/Rules: Rule search field on offcanvas now also searches reactions by ID (parity with behavior for rules).
    • Rule/Date-Time Condition: work around an anomaly in nodejs v24 (and maybe other versions) that would cause a between condition spanning a DST change to throttle the parent rule.

    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
    1
    • toggledbitsT toggledbits forked this topic on
    • toggledbitsT Offline
      toggledbitsT Offline
      toggledbits
      wrote on last edited by toggledbits
      #126

      Reactor build 25310

      IMPORTANT: This build was patched and re-released to address a compatibility issue for Home Assistant 2025.11. If you pulled this release before 1pm Eastern Standard Time (18:00 UTC) on Friday Nov 7, please re-pull/re-install this build to get those fixes.

      • Expressions: restore ability (lost in 25304) to define a custom function in a global variable/expression and have it be available to other expressions.
      • HassController: Bless HA to 2025.11.0

      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
      1
      • toggledbitsT Offline
        toggledbitsT Offline
        toggledbits
        wrote on last edited by
        #127

        Reactor build 25315

        NOTE FOR HOME ASSISTANT USERS: Versions of Home Assistant prior to 2025.01 are no longer supported as of this build. They may continue to work, but no effort will be expended to maintain compatibility going forward.

        • Rules: New Script condition -- write an expression (simple or complex/compound) that returns a boolean (true/false) or null, just like any other condition. The alarm() function works in it, too! And it holds more secrets... see docs WARNING: This is a "bleeding edge" new feature; it may be subject to breaking changes as it evolves into final form.
        • Expressions: Add new print() function to assist troubleshooting of complex expressions.
        • HassController: Support for new HA selector/data type in input_datetime entities and other similar.
        • HassController: Versions of Home Assistant older than 2025.01 are no longer supported, as support for a number of (their) deprecated features and functions is about to end.
        • HassController: Bless HA to 2025.11.1

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

        CatmanV2C 1 Reply Last reply
        3
        • toggledbitsT toggledbits

          Reactor build 25315

          NOTE FOR HOME ASSISTANT USERS: Versions of Home Assistant prior to 2025.01 are no longer supported as of this build. They may continue to work, but no effort will be expended to maintain compatibility going forward.

          • Rules: New Script condition -- write an expression (simple or complex/compound) that returns a boolean (true/false) or null, just like any other condition. The alarm() function works in it, too! And it holds more secrets... see docs WARNING: This is a "bleeding edge" new feature; it may be subject to breaking changes as it evolves into final form.
          • Expressions: Add new print() function to assist troubleshooting of complex expressions.
          • HassController: Support for new HA selector/data type in input_datetime entities and other similar.
          • HassController: Versions of Home Assistant older than 2025.01 are no longer supported, as support for a number of (their) deprecated features and functions is about to end.
          • HassController: Bless HA to 2025.11.1
          CatmanV2C Offline
          CatmanV2C Offline
          CatmanV2
          wrote on last edited by
          #128

          @toggledbits that looks like a massive leap!

          C

          The Ex-Vera abuser know as CatmanV2.....

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

            Reactor build 25321

            • alarm() function: has been redefined to return a boolean; true will be returned when the configured interval has completed; false in all other cases. The function previously returned the number of milliseconds remaining in the interval (less useful).
            • Fix an issue where modifying a global expression that contains an alarm() call may not reset the timer.
            • HassController: Bless HA to 2025.11.2

            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
            2
            • toggledbitsT Offline
              toggledbitsT Offline
              toggledbits
              wrote on last edited by
              #130

              Reactor build 25323

              • Rule-based Variables: correct an error handling dependency evaluation of subscoped variables.
              • SystemController: prevent spurious exception that could be thrown while shutting down Reactor. It had no effect, but it's preventable and I like my logs error-free.

              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
              👍
              3
              • toggledbitsT Offline
                toggledbitsT Offline
                toggledbits
                wrote on last edited by
                #131

                Reactor build 25325

                • Rules/Expressions: fix an additional evaluation case from @Crille
                • UI: silence an error that could occur during restarts (the shutdown process could stimulate the Set Rules status widget to fire queries at the inoperative host that eventually time out).
                • HassController: Bless HA to 2025.11.3

                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
                2
                • toggledbitsT Offline
                  toggledbitsT Offline
                  toggledbits
                  wrote on last edited by toggledbits
                  #132

                  Reactor build 25238

                  • Rules/Date-Time: Fix a regression (in 25315) where a Date-Time between condition that crosses midnight may determine incorrect state if the Rule is reloaded (e.g. by editing it or a Reactor restart) in the period after midnight but before the end time.
                  • Restarts on Win32 systems can now (finally) do a gradual, organized reload or shutdown.
                  • HassController: Bless HA to 2025.11.3

                  This is a "silent" release (it is not advertised in the Status page of Reactor)

                  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
                  • toggledbitsT Offline
                    toggledbitsT Offline
                    toggledbits
                    wrote on last edited by toggledbits
                    #133

                    Reaction build 26011

                    USERS OF AARCH64-tagged DOCKER IMAGES: Per this earlier post, this build will likely be the last with the aarch64 tag. Please follow the post's guidance for changing to one of the newer tags appropriate for your hardware and OS (32-bit armv7l or 64-bit arm64).

                    • Reactions UI: Fix update of display after copy in-place.
                    • Don't store reaction history entries for sub-reactions
                    • VirtualEntityController: better consistency in time-series configuration; update documentation.
                    • Fix an error in date display of time range conditions within certain parameters.
                    • HassController: Bless HA to 2026.1.0

                    This is a "silent" release (it is not advertised in the Status page of Reactor).

                    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
                    1
                    • toggledbitsT toggledbits forked this topic
                    • toggledbitsT Offline
                      toggledbitsT Offline
                      toggledbits
                      wrote last edited by toggledbits
                      #134

                      Reactor build 26116

                      PLEASE READ ALL CAUTIONS AND INSTRUCTIONS BELOW!

                      IMPORTANT: PERSISTENT FORMAT STORAGE CHANGE! I STRONGLY RECOMMEND MAKING AN INTENTIONAL, SEPARATE BACKUP OF YOUR REACTOR STORAGE/DATA BEFORE UPGRADING TO THIS BUILD, AND SAVING IT SAFELY SOMEWHERE FOR A WHILE. The file format and name used to store Reactor system objects and data has changed as of this build. Data files under the storage directory now have a .dval suffix rather than .json. See this post for background. Conversion of your existing files to the new format is automatic and transparent on the first run of this and future builds, so your existing backups will be restorable into the foreseeable future. If you need to see the contents of a file in its native form, a new utility under tools has been provided: dval2json.js. You can run this utility (e.g. node tools/dval2json.js storage/expressions.dval) and it will read the .dval file and output its JSON representation, if possible. However, due to the limitations of standard JSON, some .dval files may not be convertible to JSON by this tool; if that happens, the tool will switch to an alternate output format that is JSON-like enough to be human-readable (but is not parseable as JSON).

                      BARE-METAL UPGRADE MUST UPDATE DEPENDENCIES! Those of you on bare-metal installs will need to run npm run deps in your Reactor install directory after unpacking the distribution archive. There are new and updated packages required to run this build of Reactor, and it will not start without these updates. Docker users don't need to do anything, as the image is built with all dependencies preloaded.

                      ERRORS WILL BE LOGGED ON THE FIRST RESTART AFTER UPGRADING TO THIS BUILD. ALLOW THE SYSTEM TO SETTLE A MINUTE, AND THEN RESTART AGAIN. THEN AND ONLY THEN SHOULD YOU BEGIN CHASING/REPORTING ANY ISSUES THAT REMAIN.

                      • DynamicGroupController now manages rooms across all standard controllers where room information is available from the source hub. Previously, each Controller had to manage rooms on its own (if that data was available from the hub/source), and the room groups were local to that controller. Now, the room information on Vera, Ezlo, Home Assistant (area), Hubitat, and Z-Wave JS (location) will be used to automatically generate shared groups owned by DynamicGroupController. Rooms are associated by name (case insensitive); for example, a "Living Room" room on a Vera and a "Living Room" area in Home Assistant will both use the "Living Room" group automatically created and managed by DynamaicGroupController. This behavior can be turned off on a per-controller basis by setting rooms_as_sys_groups: false in a controller's configuration. By default, this setting is true (on, system-level groups will be created) for all controllers. All standard controllers (Home Assistant, Hubitat, Vera, Ezlo, and Z-Wave JS) have been updated to use the new room group strategy. Refer to the documentation for each Controller for additional details.
                      • VeraController: Add configuration flag rooms_as_local_groups to enable VeraController's legacy behavior of creating local groups for Vera rooms. In support of the shared groups described above, this setting defaults to false as of this build. Existing local groups will be marked dead for eventual purging unless this setting is changed.
                      • Expressions: new runReaction() function can be used to launch a Reaction (see docs);
                      • Reactions UI: Additional fixes to coordination and placement for copy/move;
                      • Reactions: While actions now have an optional iteration limit — a maximum number of times the loop will run. If the loop hits this limit before its conditions stop it, the loop will stop without error;
                      • Reactions: While actions now have an enforced once-per-second minimum iteration delay (that is, if you omit a Delay action in the While group, Reactor will provide a one second delay);
                      • Reactions UI: The display of the While condition on the detail card has been improved;
                      • DynamicGroupController: new include_attribute selector (see docs);
                      • Rules: The rule detail display now updates the main constraints' evaluation values continuously. This restores UI functionality lost when fixing an earlier bug that caused unexpected/undesirable re-evaluation of a Rule's triggers when dependent entities or variables in constraints were modified;
                      • Controller Config: The type config key, previously deprecated, is no longer supported. Use implementation instead. Unless you've ignored prior deprecation warnings, this should not be an issue.
                      • Rules: The startup scan of rule conditions has been improved to correctly update old conditions using the changes operator with blank operands;
                      • HubitatController: The room of a device is now stored on the entity attributes.
                      • HassController: The area and floor properties of a device/entity are now stored on the Reactor entity's attributes.
                      • HassController: Better support for new "state" selector in service data as of 2026.4.0. The most notable effect is that, where HA offers us data, we will present a list of expected values for a field down to the device/entity level (because not every device may support every possible value for a field). This is not universal yet, but seems to be HA's direction, so as they publish the data on more entities, it should just start working in Reactor Editor fields.
                      • Entities List: Fix page overflow when attribute has a long value with no natural word breaks (i.e. force wrap).
                      • Entity: extended attribute values on standard capabilities will now survive refresh of the capability.
                      • Reaction Editor: Fix presentation issue with gutter in section header.
                      • Rule Editor: Fix presentation issues with gutters in section headers.
                      • Reaction Editor: After a data entry validation error, an error was not being cleared after the user fixed the entry.
                      • Dashboard: the sys_group.visible attribute has been added to control the selection of groups for automatic display on the Dashboard's default group list display (default: true);
                      • Many documentation tweaks and updates; supply some new/improved images.
                      • Docker images: Detection of improperly mounted data volume. This will help alert new users in particular to missing/misconfigured data volume binding.
                      • HassController: Bless HA to 2026.4.3

                      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
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Recent Topics

                      • Reactor (Multi-System/Multi-Hub) Announcements
                        toggledbitsT
                        toggledbits
                        5
                        134
                        97.1k

                      • Temperature control with TRVs
                        CatmanV2C
                        CatmanV2
                        0
                        1
                        69

                      • Upcoming Storage Change -- Got Back-ups?
                        toggledbitsT
                        toggledbits
                        3
                        2
                        288

                      • Next Release?
                        CatmanV2C
                        CatmanV2
                        0
                        6
                        272

                      • Controller Z-Wave JS UI: "Location" attribute not visible in Reactor entities
                        toggledbitsT
                        toggledbits
                        0
                        2
                        186

                      • Do you Matter?
                        CrilleC
                        Crille
                        0
                        8
                        963

                      • Variables not updating properly
                        tunnusT
                        tunnus
                        0
                        5
                        267

                      • [Solved] Loading Screen Safari
                        S
                        SweetGenius
                        0
                        11
                        1.1k

                      • VEC Virtual Switch Auto Off
                        S
                        SweetGenius
                        1
                        2
                        315

                      • Changes operator does not always detect change
                        toggledbitsT
                        toggledbits
                        0
                        4
                        340

                      • Dynamic MQTT topics and parameters
                        M
                        mgvra
                        0
                        6
                        460

                      • Condition for trend
                        T
                        tamorgen
                        0
                        12
                        714
                      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