Skip to content

Multi-System Reactor

855 Topics 8.0k 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
    134
    5 Votes
    134 Posts
    97k Views
    toggledbitsT
    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
  • Reactor build 26116: empty group reaction

    1
    0 Votes
    1 Posts
    8 Views
    No one has replied
  • Upcoming Storage Change -- Got Back-ups?

    2
    3 Votes
    2 Posts
    294 Views
    toggledbitsT
    OK, everyone, it's almost time. Sorry for the long pause. Life takes over sometimes. The aforementioned updates will be in the next build, and I am working on wrapping everything up to get that build out later this week. Please make backups of your Reactor data as advised in the head post here. As I said then/there, I've been working with this for months now, with no issues, but my world is not your world or everyone else's world, so there's always the possibility I don't see or have an issue that you do. Prior to releasing this new build in the latest channel, the 26011 build will become the stable channel head. In addition to your backups, that gives you a relatively quick path (especially docker users) to get back onto 26011 if there's a showstopper. This build will also include unified room groups: DynamicGroupController will manage "rooms" (or areas or locations or whatever your hub calls them). If you have two different hubs with devices in the "Living Room," there will be one "Living Room" group with the combined set of devices. The per-controller room groups generated by VeraController and EzloController will be disabled by default, and existing room groups created by these controllers will be marked as dead entities (and eventually purged). If you already use DynamicGroupController to manually create your own room groups via configuration, you can either keep that (and disable DGC's new behavior, if you wish) or switch to DGC's version. An updated version of ZWaveJSController that supports this functionality will be released simultaneously with the core build.
  • Next Release?

    6
    0 Votes
    6 Posts
    278 Views
    CatmanV2C
    Just an update. Nothing apparent issue wise since my update yesterday C
  • 0 Votes
    2 Posts
    191 Views
    toggledbitsT
    Grab ZWaveJSController build 26048. It will publish the location in zwave_device.location. It will not create groups automatically (yet), so you'll need to use DynamicGroupController to make your own. Rooms are going to be handled very differently in future. Right now, controllers great groups they own for rooms, and that prevents sharing of rooms between controllers (they can't modify another's groups), so you have to use DGC to manually create unified groups across controllers. That will be more automated in future.
  • Variables not updating properly

    5
    4
    0 Votes
    5 Posts
    273 Views
    tunnusT
    @toggledbits thanks, using an independent reaction works nicely!
  • [Solved] Loading Screen Safari

    11
    1
    0 Votes
    11 Posts
    1k Views
    S
    Update: This was not a Reactor issue and Home Assistant was having the problem loading also. It is now working normally in Mac OS 26.4.
  • VEC Virtual Switch Auto Off

    2
    1 Votes
    2 Posts
    320 Views
    S
    Is this the proper place to ask for a feature request? I think it would be useful to have VEC Virtual switches to have an option for an Auto Off setting. Thanks
  • Changes operator does not always detect change

    4
    0 Votes
    4 Posts
    343 Views
    toggledbitsT
    Yup. That's from an ancient UI bug. If you edit the conditions that have that, it will fix them. I'll add some code to the rule startup check to root them out and fix them as well.
  • Dynamic MQTT topics and parameters

    6
    4
    0 Votes
    6 Posts
    470 Views
    M
    Hi, I've installed the latest version 26059 and can confirm that the parameter substitution works perfectly! Thanks a lot for the quick fix and the feature update @toggledbits Here's my setup local_mqtt_capabilities.yaml x_mqtt_annunciator_panel: actions: on: arguments: led: type: int min: 1 max: 45 color: type: string effect: type: string default: "static" values: - static - blink - breath speed: type: int default: 500 off: arguments: led: type: int min: 1 max: 45 static: arguments: led: type: int min: 1 max: 45 color: type: string blink: arguments: led: type: int min: 1 max: 45 color: type: string speed: type: int default: 500 breath: arguments: led: type: int min: 1 max: 45 color: type: string speed: type: int default: 500 brightness: arguments: value: type: int min: 0 max: 255 local_mqtt_devices.yaml annunciator-panel: capabilities: - x_mqtt_annunciator_panel requires: [panel] actions: x_mqtt_annunciator_panel: on: topic: "annunciator/panel/%panel%/led/%parameters.led%/set" retain: true payload: expr: > { "color": parameters.color, "effect": parameters.effect, "speed": parameters.speed } type: json off: topic: "annunciator/panel/%panel%/led/%parameters.led%/set" retain: true payload: expr: > { "color": "off", "effect": "static" } type: json static: topic: "annunciator/panel/%panel%/led/%parameters.led%/set" retain: true payload: expr: > { "color": parameters.color, "effect": "static" } type: json blink: topic: "annunciator/panel/%panel%/led/%parameters.led%/set" retain: true payload: expr: > { "color": parameters.color, "effect": "blink", "speed": parameters.speed } type: json breath: topic: "annunciator/panel/%panel%/led/%parameters.led%/set" retain: true payload: expr: > { "color": parameters.color, "effect": "breath", "speed": parameters.speed } type: json brightness: topic: "annunciator/panel/brightness" retain: true payload: expr: > { "value": parameters.value } type: json reactor.yaml # Annunciator panels annunciator-panel-1: name: 'Annunciator panel 1' panel: 1 include: annunciator-panel annunciator-panel-2: name: 'Annunciator panel 2' panel: 2 include: annunciator-panel Note that the brightness control is not panel-dependent, as it uses the rpi-ws281x-native library's global brightness attribute. This works well for my setup, as I want all panels to share the same brightness level anyway. Speaking of brightness, it will be controlled by the technical room's PIR and MSR rules that dim or turn off the panels when nobody is present. Below is the setup for the ventilation unit (AHU) indicator light: Green: Running OK Yellow: Switched off Blinking Red: Error [image: 1772470856148-ba29ea20-cc5f-4998-abd7-c14456600fce-screenshot-from-2026-03-02-18-25-07.png] And here are the panel operations: [image: 1772470932086-b8995409-8929-4c71-bba4-5ac7f8eae3f4-screenshot-from-2026-03-02-18-23-40.png] br, mgvra
  • Condition for trend

    12
    1
    0 Votes
    12 Posts
    719 Views
    T
    Update. Worked perfectly. Thanks for setting me striaght!
  • Struggling to setup my first Tasmota device and MQTT

    23
    3
    0 Votes
    23 Posts
    2k Views
    cw-kidC
    @toggledbits I plan to add a second relay or replace it with a dual relay board, so will see how that works out with these Unit numbers.
  • 0 Votes
    12 Posts
    847 Views
    toggledbitsT
    Here's another one that is very likely to not have significant downtime: https://checkip.amazonaws.com/ If you still get errors with this one, I suspect your local network or something off with the configuration of your host.
  • Set reaction triggering wrong z-wave device

    19
    1
    0 Votes
    19 Posts
    1k Views
    T
    @toggledbits said in Set reaction triggering wrong z-wave device: The name is incorrect at ZWave-JS (on the node itself) if that's the case, so to keep your sanity later, make sure you go all the way back to the source and work your way forward from there. I renamed the devices on the ZWave-JS UI, so i won't have the problem going forward. I'm still not sure how this all happened, as I did not experience this problem in years past. The only thing I can think of is there was some sort of glitch in an upgrade. I know I had to restore the Z-Wave JS UI to an earlier version back in October because of a change they made that broke window coverings, so perhaps during that restore something went wonky.
  • Can you run MSR on Home Assistant OS ?

    12
    0 Votes
    12 Posts
    771 Views
    CatmanV2C
    Sounds like you all just defined steep learning curve C
  • How to upgrade from an old version of MSR?

    26
    0 Votes
    26 Posts
    2k Views
    CatmanV2C
    Couple of observations: You don't need to start from ground up HA plays really nicely with MSR and Vera. You can slide over as slowly as you like (I think I was running for nearly 2 years before I got the time to move it all I've been playing with AI as well (saves me bugging the brains trust here) Chat GPT and Claude. Although Claude is better they are both wrong FAR MORE often than they are right. I've been through 20+ iterations of code, every time being told 'This will absolutely work' and it doesn't That's not a massive issue as I sort of know what I'm doing, but I absolutely would not expect any AI at this point to be able to set you up a complete HA set up from scratch. As for Proxmox it does seem to be very popular. I'm not sure why as it's kind of complex (or looks that way to me after very limited study) I'm running my VMs on my Synology NASs. They are protected on a UPS, and take a snapshot every night. Roll back to a working instance takes minutes if not seconds. $0.02 C
  • 0 Votes
    18 Posts
    1k Views
    toggledbitsT
    Don't forget to hard refresh your browser as well.
  • Self test

    3
    0 Votes
    3 Posts
    312 Views
    CatmanV2C
    Awesome! C
  • Access control - allowing anonymous user to dashboard

    2
    0 Votes
    2 Posts
    337 Views
    toggledbitsT
    Sorry, that's not possible in the current incarnation of access control... either everything is protected by user authentication (login), or its not. I use a trivial password on my guest account ("guest") to work around it.

Recent Topics