Skip to content

Multi-System Reactor

807 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
    125
    5 Votes
    125 Posts
    71k Views
    toggledbitsT
    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.
  • Define function issue in latest-25304

    9
    1
    0 Votes
    9 Posts
    66 Views
    CrilleC
    Sure, I will try to explain what's logic in my brain to another brain For the electricity use example (water heater, car charger, laundry etc) I want to find the cheapest hours to buy electricity and I found myself reusing the same expression code but with different time span and time of day so logically this should be functions. getPrices(type) function returns the prices (from Hass entity) and creates an array that matches the argument type (day, night or tomorrow) defined in the function e.g day=06-23, night=23-06 and tomorrow=06-23 the next day. getSlots(span, type) calls getPrices() and finds all the available "chunks" or "slots" by slicing it, where the length of the slice is taken from argument span, starting from start of the getPrices() array and iterate over it, returns all "slots" where the last slot doesn't end after the end of the array. cheapestHours(span, type) calls getSlots(), sums all the slots in the getSlots() array and returns the slot that has the lowest sum with start and stop time. For "night" all functions return the previous night if no prices for upcoming night is available to prevent dashboards and rules to react on an empty or incorrect values. Example of cheapestHours(3, "night") returns: {"start":{"time":1762384500000,"value":"00:15"},"stop":{"time":1762395300000,"value":"03:15"}} So for example my water heater rule calculates if it should run day time or night time depending on prices, using heatTime=cheapestHours() with different span, depending if it has run the previous night or day, and type to compare prices, combined with solar production forecast the next day. The rule Sets when current time is > heatTime.start.time and Resets when current time > heatTime.stop.time. heatTime.start.value is the human readable value and is pushed to dashboards and used in notifications. cheapestHours() can also return a summarized text that is used in my wakeup notifications. Sorry for long post and if none of this makes any sense to you or others
  • No Upgrade Notification for Build 25308?

    2
    0 Votes
    2 Posts
    14 Views
    toggledbitsT
    It's a silent/optional build. I actually do this often, when I roll a build that has a very limited number of fixes to address an issue or issues affecting a very limited audience (i.e. most people would not get any value/changes in the upgrade from the previous build).
  • Strange behavior in MSR latest-25304 with disabled groups in Reaction

    2
    1
    0 Votes
    2 Posts
    32 Views
    toggledbitsT
    @therealdb said in Strange behavior in MSR latest-25304 with disabled groups in Reaction: When pressing the button, Can you explain what this means? And please show the entire rule. Edit 2: Never mind. I was focused on the variable and the interpretation of the value, but I see now, that's not what you're looking at... one moment please... Edit 3: OK. That's not a 25304-specific issue... goes back to forever. Will be fixed in next build (soon/today).
  • [Reactor] Variables not updating correctly in latest-25201-2aa18550

    95
    2
    0 Votes
    95 Posts
    9k 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
    673 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
    284 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
    324 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
    195 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
    344 Views
    toggledbitsT
    Great report. Thank you! Will be fixed in next build.
  • [Reactor] Copy&Paste of Rules

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

    5
    0 Votes
    5 Posts
    562 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
    859 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
    805 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
    446 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.

Recent Topics