Reactor (Multi-System/Multi-Hub) Announcements
-
Reactor build 26174
IF YOU ARE UPGRADING FROM A REACTOR BUILD EARLIER THAN 26116, PLEASE READ THE RELEASE NOTES FOR THAT BUILD. THERE WERE IMPORTANT CHANGES MADE ON THAT BUILD THAT MAY AFFECT HOW YOU BACK UP AND RESTORE REACTOR DATA.
NOTE TO DEVELOPERS: An upcoming build of Reactor will be published after code base conversion to ES modules. Current Reactor core modules are CommonJS (CJS). Many dependent packages are only getting new features in their ESM versions (i.e. the world is moving to ESMs), so Reactor must follow. Instructions for converting your Reactor Controller and Plugin subclasses are published in the Building Controllers page of the Reactor documentation (under Developer Info). If you send me a DM in this community, I can send you an early release of ESM Reactor for your development and testing. This 26174 build is still CJS-based, so your conversion applies only to that future Reactor release and beyond.
- Entities list: fix a bug in entity filtering where a group filter would be ignored when an entity's name matched the name filter (both should be enforced).
- Hubitat: Fixed a problem where a scene controller button would report tapped at every Reactor startup.
- HTTP API: A new endpoint
/api/v1/notifyhas been added so that external applications can use Reactor's configured notifiers to send messages. docs - VirtualEntityController: New
ping-driven binary sensor reflects the (ICMP) reachability of a target network host. see docs - VirtualEntityController: Virtual entities may now be added to system room/location groups by including
room: <string>in the virtual entity configuration. - HassController: Bless HA to 2026.6.4
-
Reactor build 26177
- Notify via Telegram: fix application of default chat_id when not specified on individual notification action.
- Hubitat: fix an error in handling data POST from MakerAPI (affects house modes, HSM)
-
Nodejs v24.17 Not Compatible
Users on bare-metal installs... a security fix in nodejs v24.17 inadvertently broke a dependency of Reactor. This version of nodejs is therefore not compatible with Reactor. If you are using it, please upgrade to v24.18.
-
Reactor build 26193
BARE-METAL USERS: nodejs v24.17 had a regression/injection that breaks HTTP connections, which has broad negative effect in Reactor. This version specifically is excluded from support, and users on that version are advised to upgrade to v24.18 (or higher).
BREAKING CHANGE: I'm guessing this will affect very few people, maybe none: the
include_attributesselector for DynamicGroupController now requires that all listed attributes match when tested against an entity. Previously, if any listed attribute matched, the entity would be added to group eligibility. This forced users to use a filter expression if all attributes had to be matched together, which carries a greater performance impact and has other side-effects. The old behavior can be obtained by separating each attribute under its owninclude_attributesselector individually.- DynamicGroupController: the
include_attributesselector now requires all listed attributes to match, rather than any of the listed attributes, for the entity to be selected. See note above. - A new
lexp-cli.jsutility in thetoolssubdirectory allows users to experiment with lexp expressions outside of Reactor. This tool doesn't have Reactor context, so functions likegetEntity()andisRuleSet()are not available; nor are Reactor's global variables. It is strictly an environment to help with familiarization. - Reaction Editor: when editing the Set or Reset reaction of a Rule, the Copy From... button will now list the contra-reaction at the top of the list, making it easier to find and copy the reaction within the current Rule.
- UI: The condition and action editors now support a right-click context menu on conditions and actions. The menu provides copy-paste of individual conditions and actions. Other menu actions are added where they make sense. Thank @therealdb for this power-user feature!
- UI: On dialogs, the Enter key will not perform any action if a modal dialog contains two or more buttons (i.e. where the meaning of Enter is ambiguous).
- nodejs version 26 is now explicitly supported, with v26.4.0 being the current version used for development (testing still occurs on v22 and v24).
- HassController: Bless HA to 2026.7.2
- DynamicGroupController: the
-
Reactor build 26193
BARE-METAL USERS: nodejs v24.17 had a regression/injection that breaks HTTP connections, which has broad negative effect in Reactor. This version specifically is excluded from support, and users on that version are advised to upgrade to v24.18 (or higher).
BREAKING CHANGE: I'm guessing this will affect very few people, maybe none: the
include_attributesselector for DynamicGroupController now requires that all listed attributes match when tested against an entity. Previously, if any listed attribute matched, the entity would be added to group eligibility. This forced users to use a filter expression if all attributes had to be matched together, which carries a greater performance impact and has other side-effects. The old behavior can be obtained by separating each attribute under its owninclude_attributesselector individually.- DynamicGroupController: the
include_attributesselector now requires all listed attributes to match, rather than any of the listed attributes, for the entity to be selected. See note above. - A new
lexp-cli.jsutility in thetoolssubdirectory allows users to experiment with lexp expressions outside of Reactor. This tool doesn't have Reactor context, so functions likegetEntity()andisRuleSet()are not available; nor are Reactor's global variables. It is strictly an environment to help with familiarization. - Reaction Editor: when editing the Set or Reset reaction of a Rule, the Copy From... button will now list the contra-reaction at the top of the list, making it easier to find and copy the reaction within the current Rule.
- UI: The condition and action editors now support a right-click context menu on conditions and actions. The menu provides copy-paste of individual conditions and actions. Other menu actions are added where they make sense. Thank @therealdb for this power-user feature!
- UI: On dialogs, the Enter key will not perform any action if a modal dialog contains two or more buttons (i.e. where the meaning of Enter is ambiguous).
- nodejs version 26 is now explicitly supported, with v26.4.0 being the current version used for development (testing still occurs on v22 and v24).
- HassController: Bless HA to 2026.7.2
@toggledbits said in Reactor (Multi-System/Multi-Hub) Announcements:
Reaction Editor: when editing the Set or Reset reaction of a Rule, the Copy From... button will now list the contra-reaction at the top of the list, making it easier to find and copy the reaction within the current Rule.
UI: The condition and action editors now support a right-click context menu on conditions and actions. The menu provides copy-paste of individual conditions and actions. Other menu actions are added where they make sense. Thank @therealdb for this power-user feature!Oh My! That is very cool indeed!
C
- DynamicGroupController: the
-
Reactor build 26214
ALL USERS: This build is strictly to address a problem for bare-metal installs only running on nodejs v22.0 through v22.11. Use
node -vto show your version, or look at the startup messages inreactor.log. If your nodejs is v22.12.0 or higher, or you are running a docker image, you do not need to update to this build.- Workaround for module load problem in nodejs versions from 22.0 through 22.11.
Only a bare-metal package is distributed for this build. The latest docker images are still build 26193.
-
Reactor build 26221
SECURITY! - BARE-METAL USERS: It is always recommended that you update package dependencies whenever installing Reactor updates. After unpacking the Reactor archive, go into the
reactordirectory (whereapp.jslives) and runnpm run depsto update package dependencies. This is particularly important to address security updates for many packages.- DynamicGroupController: Fix an issue where a
filter_expression-controlled group would miss an attribute update. - Engine/Reactions: The log level for the result of Group and While action predicates (i.e. the conditions) has been raised to INFO (4) from DEBUG0 (5). This may help users more easily identify logic bugs in their actions without the need to change the Engine log level (the Engine is dauntingly verbose even at DEBUG0 level).
- HassController: Bless HA to 2026.7.4
- DynamicGroupController: Fix an issue where a
-
Reactor build 26284
NOTE: Your first startup on this build may log some odd-looking errors while rebuilding entities from various controllers, and that's expected. A second restart should be noticeably cleaner.
- New Access Control settings for operation behind reverse proxies. These new settings should enable easier reverse proxy configuration while maintaining local access (i.e. access UI via LAN). DISCLAIMER: Opening your system/network to a public IP address is not something to be trifled with, and if you don't know what you're doing, you will likely regret it at some point. Proceed entirely at your own risk. See further discussion here.
- HassController: now recognizes HA's
fanservice with capabilities (including new capabilities:preset_mode,speed,directionandoscillate) extended by matching the source device's advertised supported features (i.e. not all capabilities will be present on all devices). - HassController: extend
media_sourcecapability tomedia_playerdevices that support it. - HubitatController: Improve behavior when new devices are added to the hub and published by Maker API. It should now not be necessary to restart Reactor to have the entity fully configured and responsive.
- HubitatController: Default polling action is now Refresh (was Poll). On newer firmware, this more reliably produces a device change message when the state has updated (e.g. a switch without instant status was operated manually). Polled devices now allow an
actionconfig to override the default action. - HassController: Store HA
unique_idandplatformon extended attributes (e.g. for use in filtering). - HassController: Bless HA to 2026.10.1
-
Reactor build 26287
- Tighten tests for proxied requests so that proxy-handling behavior isn't triggered when proxy configuration has not been established.








