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.
toggledbitsT

toggledbits

@toggledbits
[MSR] reactor-mqtt-contrib package for additional MQTT templates
therealdbT
I'm slowly migrating all my stuff to MQTT under MSR, so I have a central place to integrate everything (and, in a not-so-distant future, to remove virtual devices from my Vera and leave it running zwave only). Anyway, here's my reactor-mqtt-contrib package: https://github.com/dbochicchio/reactor-mqtt-contrib Simply download yaml files (everything or just the ones you need) and you're good to go. I have mapped my most useful devices, but I'll add others soon. Feel free to ask for specific templates, since I've worked a lot in the last weeks to understand and operate them. The templates are supporting both init and query, so you have always up-to-date devices at startup, and the ability to poll them. Online status is supported as well, so you can get disconnected devices with a simple expression. Many-many thanks to @toggledbits for its dedication, support, and patience with me and my requests
Multi-System Reactor
[Reactor] Help with screne controller cycling logic
therealdbT
I’ve added a couple of Shelly Wave i4 as scene controllers and I’m planning to add more, since I can just use standard buttons instead of battery-powered scene controllers, which also looks better aesthetically. That said, I’m struggling to figure out how to write a simple rule that cycles between states every time I press a button. Example: Light 1 ON → OFF, then Light 2 ON → OFF. The part I can’t get right is handling the case where Light 1 or Light 2 might already be ON independently of the rule. Maybe it’s just too much sun and relaxation clouding my brain, but any hint would be appreciated.
Multi-System Reactor
Stop the MSR by an external switch on Hubitat.
wmarcolinW
Use case: When performing home maintenance, such as air conditioning, I want all rules involving air conditioning to be disabled. To do this, to day, I have a virtual switch that I placed within all rules involving air conditioning, meaning that if I turn it off, none of them work. Then another situation: the water pump system and garden irrigation, another switch. In short, I had to create several virtual switches in Hubitat to disable rules in MSR. Unfortunately, however, I was unable to cover all scenarios, so I wondered if it would be possible for MSR to support a virtual MSR switch, which, when configured in the reactor settings, would function as a general on/off switch for MSR. If it is configured and turned off, the entire rules and actions in MSR stops working, except for the status change reading process, specifically for this switch, which, when turned on, would restart the MSR. Would it be possible to do something like this? Any recommendations from the experts?
Multi-System Reactor
[Reactor] Variables not updating correctly in latest-25201-2aa18550
therealdbT
Topic thumbnail image
Multi-System Reactor
Expose MSR entities
CatmanV2C
Probably a really dumb question. Currently I am using the owntracks_sensor for tracking phones being in region in MSR and it works great. Digging around with Home Assistant and toying with some dashboards, is there any way of exposing that sensor to HA trivially? I could set MSR to trip a virtual switch in OpenLuup which can then be exposed to HA (with all my other Vera devices) but that feels a bit in-elegant if I can do it directly. Any thoughts? Apologies if the ask is not clear/ TIA C
Multi-System Reactor
Comment in Globa Expressions
Tom_DT
I have several Global Expressions that are set by a rule so the definition area is blank. I'd like to add a comment in this area that explains what is setting the value. Commenting in this area breaks the remote setting. Any way to document what is setting the GE?
Multi-System Reactor
Little Bobby tables...
CatmanV2C
...is back.... https://arstechnica.com/google/2025/08/researchers-use-calendar-events-to-hack-gemini-control-smart-home-gadgets/?utm_source=facebook&utm_medium=social&utm_campaign=dhfacebook&utm_content=null&fbclid=IwY2xjawMBq-pleHRuA2FlbQIxMQABHlSqIalzbz1IxcJFzlw8GBE6nC3FwvxcHgR370nJhogU6JjqbmRxG-lysqgh_aem_lx9XboYFKw9tpHnedGQKUA C
General Discussion
Home Assistant Voice TTS is Easy
toggledbitsT
Topic thumbnail image
Home Assistant
Play Audio through Home Assistant Voice Unit
toggledbitsT
Topic thumbnail image
Home Assistant
Home Assistant Voice
CatmanV2C
Has anyone had a play with the local voice control for HA? I've got one on order because... https://www.home-assistant.io/voice-pe/ C
Home Assistant
Unofficial thread for compatibility
tunnusT
As there are statements about compatibility for home assistant versions in MSR new version announcements (e.g. "HassController: Bless Hass to 2025.7.3"), I thought it would be good idea to track other controllers as well. As an example, I can confirm that build "latest-25208-c53e8513" works with Hubitat Elevation C-8 platform version 2.4.2.134 using Maker API.
Multi-System Reactor
Gradually turn on lights.
Tom_DT
I have several lights that I would like to turn on very gradually over 15 or 20 seconds. from 0 to .25 in .01 increments. I have tried a few things that came nowhere near working, so here I am.
Multi-System Reactor
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
Can't customize home page
G
I foolishly let my system wipe all cookies this morning and with it my settings for my MSR home page. Once logged back in I can no longer remove errant panes nor is the + available to add new ones. Brave Browser v1.80.122 (Jul 16, 2025) What have I done?! Will check other browsers on my M1. UPDATE: Safari exhibits same behaviour. I've tried both sans last-four public key entry and with - no change.
Multi-System Reactor
Error After Upgrade
T
Topic thumbnail image
Multi-System Reactor
Reset attribute value of entity in event handler
R
Topic thumbnail image
Multi-System Reactor
Need help figuring out how to delay a reset on reaction
T
Topic thumbnail image
Multi-System Reactor
Way to search for rules (rule state) in other rules
T
@toggledbits, not sure if this is a feature request or I'm using the search tool wrong. You have a "Search for rule" in the Rules Set tab in MSR. It works nicely to find a rule and bring up said rule, but can it/could it be used for as a "where used?" global search? For instance, I have a fairly large set of rules, divided up into 10 different rulesets. There's easily a hundred individual rules, and many of the rules have Rule State triggers, which of course refer to other rules. Amongst my troubleshooting today, I came across what may have been a duplicate or troubleshooting attempt, but I can't tell if it's actually used as a Rule State in another rule without opening each rule that I suspect it may be a part of. Thanks.
Multi-System Reactor
Links to MSR from HA
Tom_DT
I am using Home Assistant a lot recently. On a dashboard showing the devices, I would like to show a link to the MSR rule that controls the devices. Is there a way to link directly into MSR?
Multi-System Reactor
Set Reaction > Script Action
wmarcolinW
Topic thumbnail image
Multi-System Reactor
About
Posts
2.8k
Topics
42
Shares
0
Groups
1
Followers
18
Following
0

Posts

Recent Best Controversial

  • [Reactor] Help with screne controller cycling logic
    toggledbitsT toggledbits

    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

    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.

    Multi-System Reactor

  • Stop the MSR by an external switch on Hubitat.
    toggledbitsT toggledbits

    This is not something i'm going to entertain at the moment. It seems like a very specialized, one-off request, and the implementation has a lot of consequences throughout the system. I recommend starting and stopping using the currently available method (i.e. stopping the process itself). It's also relatively easy to enable and disable rules in the UI, so when working on isolated systems (like a heating/AC unit), you can temporarily disable just those rules. You can also force them to a set or reset state to keep them at bay, and put them back in auto later.

    Multi-System Reactor

  • [Reactor] Variables not updating correctly in latest-25201-2aa18550
    toggledbitsT toggledbits

    It works as I would predict.

    Multi-System Reactor

  • Expose MSR entities
    toggledbitsT toggledbits

    @CatmanV2 said in Expose MSR entities:

    @toggledbits this is precisely what it is, yes

    Whew. OK. Then yes, this is the way to go.

    Multi-System Reactor

  • Expose MSR entities
    toggledbitsT toggledbits

    @CatmanV2 said in Expose MSR entities:

    Currently I am using the owntracks_sensor for tracking phones being in region in HA and it works great.

    I'm reading this as "it's coming from HA."

    Is it actually an MQTT entity created using the owntracks_in_region template of MQTTController? Because there's nothing natively called owntracks_sensor in Reactor.

    Multi-System Reactor

  • Expose MSR entities
    toggledbitsT toggledbits

    I am still completely confused. Yes, Reactor will publish the sensor from HA. I use that myself. But since the Reactor sensor entity comes from HA, why would want to publish Reactor's entity back to HA then?

    Multi-System Reactor

  • [Reactor] Variables not updating correctly in latest-25201-2aa18550
    toggledbitsT toggledbits

    I'll say again, local variables are not processed/evaluated in the same way as global variables. Local variables are only evaluated when the Rule to which they belong is being evaluated (i.e. its triggers are being checked). They are not evaluated when a dependent local variable is changed. When the Rule is evaluated, its local variables, if any, are evaluated before the triggers, and yes, they are evaluated in the order in which they are defined. That is known.

    Combine this with using a Set Variable action... if you don't check the "Force re-evaluation" checkbox, any other local variables that use the variable being set will not be updated until the Rule is next evaluated. If you check the box, it forces a Rule evaluation, and it is the second evaluation that will update the dependent variables.

    The Script Action is absolutely relevant in your case, at least from what you've posted, because you apparently still had local variables that are dependent on the local variable that the script was changing, and that was not consistent with my recommendation. The script will not cause the dependent variables to be updated, because there is no "Force re-evaluation" option for the script, and local variables are not dependency-scanned/triggered, as I said above. That means your script action will change the local variable ok_to_reset, but that won't make peak_power change immediately after. That is why I recommended that you make all local variables expressionless when using the Script Action, and do all of the work in the script, none of the work in the local variables' expressions.

    None of this is new. And again, no changes have been made to how variables (global or local) in any of these recent builds. The earlier changes you mentioned to make isRuleSet() and isRuleEnabled() trigger with the rules they reference (build 25082 -- a long time ago) was a change to the implementation of those functions themselves , but was not in any way a change to the mechanism that handles changes in global expressions.

    Multi-System Reactor

  • Expose MSR entities
    toggledbitsT toggledbits

    @CatmanV2 said in Expose MSR entities:

    Apologies if the ask is not clear/

    Yeah, sorry. It's not at all clear to me what you're asking here. I'm reading "I have an owntracks_sensor in Home Assistant... is there any way to expose that sensor (which comes from Home Assistant) to Home Assistant trivially?" Uh... what?

    Multi-System Reactor

  • [Reactor] Variables not updating correctly in latest-25201-2aa18550
    toggledbitsT toggledbits

    Post your script. Based on the instructions given, your local variables should be expressionless, so that seems wrong and I want to see what your script is trying to do.

    I can tell you right now, if ok_to_reset is expressionless and you are resetting it in the Script Action script, and expecting peak_power to see the updated value, it won't work.

    Multi-System Reactor

  • [Reactor] Variables not updating correctly in latest-25201-2aa18550
    toggledbitsT toggledbits

    @tunnus said in [Reactor] Variables not updating correctly in latest-25201-2aa18550:

    I was wondering if this could happen in cases where re-evaluation is queued but somehow gets stuck, and because new requests are ignored, updates won't occur?

    Well, they won't get stuck, but there is no guaranteed order to the re-evaluation. Other things waiting to execute can run before the re-evaluation happens, including things that could change the global variables or entity attributes on which the first Rule depends.

    Here's something to try (it's the @therealdb solution he mentioned):

    1. Make msg an expressionless local variable.
    2. Before your notification, use a Set Variable or Script Action to compute the value of msg that you want to send in the notification.

    Would look something like this:

    db9f6cf3-f3c6-4045-8dac-cbfc4a59fd3d-image.png

    ...or this, using a Script Action...

    91ba83f7-e245-433c-88ab-fd33e4bc1ea7-image.png

    I personally prefer the Script Action because you can set several variables at once in the script, if that's what you need, and the syntax looks cleaner (you don't have to use the ${{ }} substitution.

    Multi-System Reactor

  • Stop the MSR by an external switch on Hubitat.
    toggledbitsT toggledbits

    Basically it sounds like you just want Reactor to stop, so why not just stop it?

    Multi-System Reactor

  • [Reactor] Variables not updating correctly in latest-25201-2aa18550
    toggledbitsT toggledbits

    I'd need a full picture of this... every variable and rule involved. This is a very complex area to look at.

    Again, the key rule to understand here, is that the local variables in a Rule do not update every time a global or other local they refer to changes -- they only update when the Rule has been marked for evaluation. The recomputation of the local variable values occurs before trigger conditions are evaluated, and only then. That is very different from the way global variables are handled.

    Also in your second example, the use of "==" is a "loose" comparison. The use of "===" is tighter and matches type. In your example, if success is 0 (numeric), that will satisfy the test success == false -- that's true because numeric 0 will cast to boolean false, so they are logically equal, although not exactly equal. That alone would explain unexpected results, if the values of success can be other than true or false.

    Multi-System Reactor

  • [Reactor] Variables not updating correctly in latest-25201-2aa18550
    toggledbitsT toggledbits

    @tunnus said in [Reactor] Variables not updating correctly in latest-25201-2aa18550:

    In essence I have a rule with a global variable correctly triggering when it has a certain value, but in reactions it has a Telegram notification using a local variable as message (like this: ${{ msg }}).

    You know what to do (i.e. what I need to see). I can't do anything from just a post like this.

    My simple test case:

    1. I have a global expression/variable testVar (expressionless) with a numeric value assigned.
    2. I have a rule that triggers on testVar changing, and sends me a notification in its SET Reaction (shown below).
    3. I have a Reaction that I can run manually to increment testVar by 1 using a Set Variable action. This triggers the rule.

    This works as expected: when the Reaction is run, testVar is incremented by 1. The change is detected by the rule, which updates its localtest variable and then uses that in a notification, which displays the correct value.

    03efded1-0fad-489a-b700-45744d54f183-image.png

    To be clear here, the Rule triggers on the global variable changing, not the local variable.

    Multi-System Reactor

  • Home Assistant Voice TTS is Easy
    toggledbitsT toggledbits

    TTS announcements with Home Assistant Voice are about as easy as they can be (once you have your HAV unit configured).

    Via the Home Assistant Developer Tools UI:

    Choose the announce action, and then the HAV "satellite" unit on which to play the announcement. Enter the text, and go!

    924ccff8-ece5-4231-aaa7-0c03e4d4cc06-image.png

    Via Reactor:

    Pretty much the same... select the HAV satellite's entity, and the x_hass_assist_satellite.announce action. Supply the message text and go:

    ba22af9c-c5b1-44cc-8468-af2aaf93f8e5-image.png

    In a Reaction, the entity, action, and parameters are the same.

    Home Assistant

  • Play Audio through Home Assistant Voice Unit
    toggledbitsT toggledbits

    Starting with the basics...

    Via the Home Assistant Developer Tools UI:

    Select the HAV device on which to play the media. Specify the URL to the media as the media_id. For most media played on HAV units, you'll want to select music as the media_type.

    2516bd29-df21-47c2-b604-951f4f53b1c2-image.png

    Via Reactor:

    There will be an entity specifically for the HAV unit's media player. On that entity, run the x_hass_media_player.play_media action. Parameters are the same as those described above. The image below shows a direct run of the action from the Entities list; in a Reaction the action and parameters would be the same.

    49cc6e51-7a4c-41e2-8c9c-4300d13566ea-image.png

    Home Assistant

  • Home Assistant Voice
    toggledbitsT toggledbits

    I got my HAV a couple of days ago. Out of the box, setup was actually pretty easy. I agree with others that watching videos isn't my favorite way to do that kind of thing, but there are written instructions behind the QR code they provide in the box.

    It deemed my HA host system (NUC) insufficient to do speech-to-text/conversation locally, so I signed up for Home Assistant Cloud and set it up that way. I'll circle around to that again later and see if I can free myself from the cloud, but the small monthly or annual fee is within my sensibilities for ensuring high Wife Acceptability on functionality.

    Lights on an off is easy. This is the most basic thing to get right, I guess, and it works great. With a few small tweaks to HassController (future build/release) I was able to get TTS output working very easily. Also playing media is pretty straightforward. It's also easy to control the brightness and color of the LED ring (maybe some future purpose for this will arise).

    Most challenging so far was getting it to recognize a custom sentence. Actually, configuring the custom sentence was not really hard, but getting HA to do something other than speak "Intent does not exist" took some trial and error -- a classic HA trial of getting the right configuration magic into the right places, restarting untold numbers of times, while combing through inconsistent examples in the pages of their online documentation. Finally got it, although I swear my last attempt was the same as a half-dozen prior that didn't work. But I can finally say "Hey Jarvis, bark like a dog" and have it cause Reactor to reliably launch the play of an MP3 file on my living room Sonos SL1. Woof!

    I also was able, from Reactor, to get it to speak a question, recognize a response from a list of expected responses, and store the response data in a Reactor variable. Seems useful, although I'm not yet sure how. That also took a little HassController modification (again, future release) to fully realize, and some tribal knowledge of how the HA API wants data structured for certain fields of that call. This isn't the kind of knowledge we normally encounter when calling HA services, so I'll write that up separately somewhere.

    These minor successes are actually very encouraging. I think this thing is going to create a lot of opportunities.

    Home Assistant

  • [Reactor] Variables not updating correctly in latest-25201-2aa18550
    toggledbitsT toggledbits

    Clearly there's a lot of context you haven't posted, so I really don't have enough to go on.

    I can tell you that if a rule is in mid-evaluation, the re-evaluation of variables and triggers in the same rule won't happen instantly or more than once -- infinite loops have to be prevented. What will happen is that a request for re-evaluation will be queued for later, but it's not deterministic when that runs (except that it won't run before the current evaluation completes). If there's already a pending request for re-evaluation queued, new requests are ignored. This is all to prevent infinite loops in rule evaluations where rules manipulate devices and rule-based variables in Reactions that are also part of the rule's dependencies.

    And to be specific, the "Force re-evaluation" only queues a request to re-evaluate the rule's triggers and local variables at some point in the future. It does not instantly and immediately re-evaluate every dependent variable of the variable being set.

    Multi-System Reactor

  • Gradually turn on lights.
    toggledbitsT toggledbits

    @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.

    Multi-System Reactor

  • Reactor (Multi-System/Multi-Hub) Announcements
    toggledbitsT toggledbits

    Reactor build 25208

    • Status page: fix an issue placing the widget adder tool the first time (i.e. on a new browser or after flushing cache/cookies).
    • HTTP Request action now offers storage of the query response in "advanced form." This is a structure (object) that includes the response body as well as the response status, messages, and response headers. The simple form (store body or null) is the default and all existing HTTP Request actions will use the simple form response unless/until modified.
    • Telegram notifications now support photo and video messages. To send a photo or video message, select the appropriate Message Format and place the URL or filename in the Message field. Telegram's limits for file type and size must be observed (refer to Telegram's documentation).
    • HassController: Configuration for filter_entity now accepts regular expressions to match to entity IDs (i.e. it can now do pattern matching, not just match exact strings). Specify regular expressions in /regexp/flags form (e.g. /^update./i to match IDs that begin with update., case insensitive; flags are optional, and the only flag supported right now is i for case-insensitive matching).
    • HassController will requery for service data if the lookup of service data from the startup query does not have the needed info. This can occur when an integration is not fully up and running when HA restarts -- HA will only report on services for fully running integrations at the time. The requery updates the service data for integrations that start later.
    • HassController remove old entity mapping configuration that was preventing a mutable attribute (dimming.step) from being changed by the user permanently.
    • Expressions: new geodist() extension function to compute Great Circle Distance between two points (presumably on Earth). See docs for details. Example: kilometers = geodist( lat1, lon1, lat2, lon2 )
    • HassController: Bless Hass to 2025.7.3
    Multi-System Reactor announcements

  • [Reactor] Variables not updating correctly in latest-25201-2aa18550
    toggledbitsT toggledbits

    No changes have been made to variable evaluation for some time. Definitely no changes for 25201.

    In your raintripped variable, you make reference to badweather_trigger and badweather_lastevent, but the source for those isn't shown. If their values don't change (even if they are evaluated by some other mechanism), raintripped will not be updated. The use of time() does not generate any continuous evaluation, so this (raintripped) variable is entirely dependent on those other two variables changing value (not just being evaluated). Same applies to windtripped.

    If you have been editing these, particularly the deep dependencies like debugmessage, you probably will need a restart to get a full deep dependency scan. Current versions of Reactor can't do a full-depth scan when you edit a variable and add dependencies in mid-run. So I recommend a restart after making changes when the dependencies may run deeper than one level.

    Multi-System Reactor
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • Categories
  • Recent
  • Tags
  • Popular
  • Unsolved