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

Elcid

@Elcid
[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
251
Topics
20
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • An electricians or wiring experts here?
    ElcidE Elcid

    Hey @cw-kid can i see photos of all your switches and the light fitting so i can establish the wiring method and where you can put the dimmer.
    Are you going to change the switches to momentary?

    I have seen your photos on old forum but they are unclear. The red wire going to earthing position seems odd. Is it just a red sleeve on a bare earth wire or is it a a spare wire they just earthed for safety.

    When you take more photos can you get a clear shot of the cables leaving the box an a clear shot of back of switches showing the markings on switch.

    A safety note , you are using metal switches, so there should be an earth fly lead from the earth on box to the switch. removing the switch from the box now means the metal on the switch is not earthed.

    General Discussion

  • npm ERR! code EBADPLATFORM reactor 20022
    ElcidE Elcid

    i get the following error when i run
    ~/reactor $ npm i --no-save --omit dev
    Reactor is running and i see no ill effects so far
    Thought i would report for info.

    ~/reactor $ npm i --no-save --omit dev
    npm ERR! code EBADPLATFORM
    npm ERR! notsup Unsupported platform for inotify@1.4.6: wanted {"os":"linux","arch":"any"} (current: {"os":"android","arch":"arm"})
    npm ERR! notsup Valid OS:    linux
    npm ERR! notsup Valid Arch:  any
    npm ERR! notsup Actual OS:   android
    

    and here is log for more info

    0 info it worked if it ends with ok
    1 verbose cli [
    1 verbose cli   '/data/data/com.termux/files/usr/bin/node',
    1 verbose cli   '/data/data/com.termux/files/usr/bin/npm',
    1 verbose cli   'i',
    1 verbose cli   '--no-save',
    1 verbose cli   '--omit',
    1 verbose cli   'dev'
    1 verbose cli ]
    2 info using npm@6.14.10
    3 info using node@v14.15.4
    4 verbose npm-session e65bf5b70b2ee3fd
    5 silly install loadCurrentTree
    6 silly install readLocalPackageData
    7 http fetch GET 200 https://registry.npmjs.org/dev 1079ms
    8 http fetch GET 200 https://registry.npmjs.org/dev/-/dev-0.1.3.tgz 161ms
    9 silly pacote tag manifest for dev@latest fetched in 1336ms
    10 timing stage:loadCurrentTree Completed in 2965ms
    11 silly install loadIdealTree
    12 silly install cloneCurrentTreeToIdealTree
    13 timing stage:loadIdealTree:cloneCurrentTree Completed in 11ms
    14 silly install loadShrinkwrap
    15 timing stage:loadIdealTree:loadShrinkwrap Completed in 316ms
    16 silly install loadAllDepsIntoIdealTree
    17 silly resolveWithNewModule dev@0.1.3 checking installable status
    18 http fetch GET 200 https://registry.npmjs.org/inotify 788ms
    19 http fetch GET 200 https://registry.npmjs.org/inotify/-/inotify-1.4.6.tgz 796ms
    20 silly pacote range manifest for inotify@>= 0.1.6 fetched in 1636ms
    21 silly resolveWithNewModule inotify@1.4.6 checking installable status
    22 timing stage:rollbackFailedOptional Completed in 2ms
    23 timing stage:runTopLevelLifecycles Completed in 4975ms
    24 verbose stack Error: Unsupported platform for inotify@1.4.6: wanted {"name":"inotify","version":"1.4.6","engines":{"node":">=0.8"},"os":["linux"],"dependencies":{"bindings":"^1.3.1","nan":"^2.12.1"},"optionalDependencies":{},"peerDependenciesMeta":{},"devDependencies":{},"bundleDependencies":false,"peerDependencies":{},"deprecated":false,"_resolved":"https://registry.npmjs.org/inotify/-/inotify-1.4.6.tgz","_integrity":"sha512-WW8/uqIA04O3AePQVe/Ms3ZLR0yGamaz8YOEpaXc4WBAGOPZfzu58wWErEPSUYaPyDrJRIeCn6PEIQgC1ZyQ5w==","_shasum":"c5a51852df1647d1a589d46c4baa2771ed36b8d2","_shrinkwrap":null,"_id":"inotify@1.4.6","_from":"inotify@>= 0.1.6","_requested":{"type":"range","registry":true,"raw":"inotify@>= 0.1.6","name":"inotify","escapedName":"inotify","rawSpec":">= 0.1.6","saveSpec":null,"fetchSpec":">= 0.1.6"},"_spec":"inotify@>= 0.1.6","_where":"/data/data/com.termux/files/home/reactor/node_modules/dev"} (current: {"os":"android","cpu":"arm"})
    24 verbose stack     at checkPlatform (/data/data/com.termux/files/usr/lib/node_modules/npm/node_modules/npm-install-checks/index.js:46:14)
    24 verbose stack     at thenWarnEngineIssues (/data/data/com.termux/files/usr/lib/node_modules/npm/lib/install/validate-args.js:63:5)
    24 verbose stack     at /data/data/com.termux/files/usr/lib/node_modules/npm/node_modules/iferr/iferr.js:3:64
    24 verbose stack     at checkEngine (/data/data/com.termux/files/usr/lib/node_modules/npm/node_modules/npm-install-checks/index.js:25:10)
    24 verbose stack     at module.exports.isInstallable (/data/data/com.termux/files/usr/lib/node_modules/npm/lib/install/validate-args.js:60:3)
    24 verbose stack     at resolveWithNewModule (/data/data/com.termux/files/usr/lib/node_modules/npm/lib/install/deps.js:677:10)
    24 verbose stack     at /data/data/com.termux/files/usr/lib/node_modules/npm/lib/install/deps.js:600:7
    24 verbose stack     at /data/data/com.termux/files/usr/lib/node_modules/npm/node_modules/iferr/iferr.js:3:64
    24 verbose stack     at /data/data/com.termux/files/usr/lib/node_modules/npm/node_modules/call-limit/call-limit.js:28:43
    24 verbose stack     at processTicksAndRejections (internal/process/task_queues.js:75:11)
    25 verbose pkgid inotify@1.4.6
    26 verbose cwd /data/data/com.termux/files/home/reactor
    27 verbose Linux 4.9.76
    28 verbose argv "/data/data/com.termux/files/usr/bin/node" "/data/data/com.termux/files/usr/bin/npm" "i" "--no-save" "--omit" "dev"
    29 verbose node v14.15.4
    30 verbose npm  v6.14.10
    31 error code EBADPLATFORM
    32 error notsup Unsupported platform for inotify@1.4.6: wanted {"os":"linux","arch":"any"} (current: {"os":"android","arch":"arm"})
    33 error notsup Valid OS:    linux
    33 error notsup Valid Arch:  any
    33 error notsup Actual OS:   android
    33 error notsup Actual Arch: arm
    34 verbose exit [ 1, true ]
    

    Depandencies

    {"dependencies": {
        "@influxdata/influxdb-client": "^1.18.0",
        "@mdi/font": "^5.9.55",
        "body-parser": "^1.19.0",
        "bootstrap": "4.6.0",
        "bootstrap-icons": "1.5.0",
        "cookie": "^0.4.1",
        "digest-fetch": "^1.2.1",
        "diskusage-ng": "^1.0.1",
        "express": "^4.17.1",
        "feather-icons": "^4.28.0",
        "font-awesome": "^4.7.0",
        "gridstack": "^5.0.0",
        "jquery": "3.6.0",
        "jquery-ui-dist": "1.12.1",
        "js-yaml": "^3.14.1",
        "node-fetch": "^2.6.7",
        "nodemailer": "^6.5.0",
        "qs": "^6.10.1",
        "serve-static": "^1.14.1",
        "uuid": "^8.3.2",
        "ws": "^7.5.6"
      }
    
    Multi-System Reactor

  • Looking for ideas on how to implement an automation.
    ElcidE Elcid

    There are plenty of 24v thermostats with remote sensors here in UK (about £30). The OP wanted "Trying to determine the best platform for a set it and forget it black box that works with as close to zero maintenance as possible."!

    So my thinking is thermostat in tandem with external sensor, A little wiring job done. You could also probably use a shelly 1 with temp sensor addon if you want feedback.

    General Discussion

  • Looking for ideas on how to implement an automation.
    ElcidE Elcid

    Hi, would it not be simpler to add a second external thermostat on the return loop, which mimics ( connects to same wires) the external stats functions. So if loop goes below set point it switches to aux heat

    General Discussion

  • Multidimensional Array
    ElcidE Elcid

    @toggledbits said in Multidimensional Array:

    There is no === operator in the expression language, it's just ==

    Not according to your doc's.
    Screenshot_20211126-211238.png

    Also used in a test expression and working.

    Screenshot_20211126-211533.png

    Noted used "in" rather than "of" as I thought he wanted a 2D array not a object/dictionary.

    Multi-System Reactor

  • Multidimensional Array
    ElcidE Elcid
    ${{[["Window 1","Status On"],["Window 2","Status On"],["Window 3","Status Off"],["Window 4","Status On"]]}}
    

    should work
    and to find all Status on's

    each val in testarray : if val[1] === "Status On" then val[0] endif
    

    and to find the value of Window 1

    (each val in testarray : if val[0] === "Window 1" then val[1] endif)[0]
    
    Multi-System Reactor

  • Reactor not starting on latest 21294
    ElcidE Elcid

    just confirming 21297 working with original app.sh

    Multi-System Reactor

  • Reactor not starting on latest 21294
    ElcidE Elcid

    That's how i start MSR on my android system, then the console is clear and usable. How would you suggest I start it now under termux?

    Multi-System Reactor

  • Reactor not starting on latest 21294
    ElcidE Elcid

    ok i removed :${NODE_PATH} from app.sh on line 11 and now it starts and shows in browser using nohup ./app.sh &

    Multi-System Reactor

  • Reactor not starting on latest 21294
    ElcidE Elcid

    server/lib/Logger.js is there in the reactor folder
    I can start reactor with NODE_PATH=$(pwd) node app.js and see it in browser
    but using nohup ./app.sh & i can not open reactor in browser

    app,sh

    #!/bin/bash
    
    WD="."
    if [ "$1" == "-C" ]; then
    	WD=${2:-.}
    	shift 2
    fi
    WD=`realpath "${WD}"`
    
    cd $WD || exit 1
    export NODE_PATH="${WD}:${NODE_PATH}"
    rm -f app.stop
    while [ ! -f app.stop ]; do
    	node app.js $* >> logs/console.log 2>&1
    	[ $? -eq 127 ] && break;
    	sleep 5
    done
    
    exit 0
    

    is the : in line 11 the error?

    Multi-System Reactor

  • Reactor not starting on latest 21294
    ElcidE Elcid

    Just updated to latest 21294, ran usual update, It appears to start ok in console, but will not load in browser. The NODE_path looks correct but the console log show the below error.

    log

    NODE_PATH /data/data/com.termux/files/home/reactor:
    [latest-21294]2021-10-23T15:55:41.542Z <app:null> Reactor latest-21294-c13ea5d starting on v14.15.4
    [latest-21294]2021-10-23T15:55:41.546Z <app:INFO> Process ID 14540; platform android/arm #1 SMP PREEMPT Wed Jan 16 09:21:08 CST 2019; locale en_US.UTF-8
    [latest-21294]2021-10-23T15:55:41.547Z <app:INFO> Basedir /data/data/com.termux/files/home/reactor; data in /data/data/com.termux/files/home/reactor/storage
    [latest-21294]2021-10-23T15:55:41.548Z <app:INFO> NODE_PATH /data/data/com.termux/files/home/reactor:
    /data/data/com.termux/files/home/reactor/app.js:231
            throw new Error(a0_0x4c6635(0xd9) + process[a0_0x4c6635(0xdb)][a0_0x4c6635(0x107)] + '\x20does\x20not\x20point\x20to\x20the\x20Reactor\x20install\x20directory');
            ^
    
    Error: Environment NODE_PATH=/data/data/com.termux/files/home/reactor: does not point to the Reactor install directory
        at Object.<anonymous> (/data/data/com.termux/files/home/reactor/app.js:231:15)
        at Module._compile (internal/modules/cjs/loader.js:1063:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
        at Module.load (internal/modules/cjs/loader.js:928:32)
        at Function.Module._load (internal/modules/cjs/loader.js:769:14)
        at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
        at internal/main/run_main_module.js:17:47
    NODE_PATH /data/data/com.termux/files/home/reactor:
    [latest-21294]2021-10-23T15:55:41.796Z <app:null> Reactor latest-21294-c13ea5d starting on v14.15.4
    [latest-21294]2021-10-23T15:55:41.800Z <app:INFO> Process ID 14547; platform android/arm #1 SMP PREEMPT Wed Jan 16 09:21:08 CST 2019; locale en_US.UTF-8
    [latest-21294]2021-10-23T15:55:41.801Z <app:INFO> Basedir /data/data/com.termux/files/home/reactor; data in /data/data/com.termux/files/home/reactor/storage
    [latest-21294]2021-10-23T15:55:41.801Z <app:INFO> NODE_PATH /data/data/com.termux/files/home/reactor:
    /data/data/com.termux/files/home/reactor/app.js:231
            throw new Error(a0_0x4c6635(0xd9) + process[a0_0x4c6635(0xdb)][a0_0x4c6635(0x107)] + '\x20does\x20not\x20point\x20to\x20the\x20Reactor\x20install\x20directory');
            ^
    ```===group
    ```java
    

    ===

    Multi-System Reactor

  • "kinda smart" switch to put behind a normal light switch
    ElcidE Elcid

    @huhnmann You could still use the shelly 1 in the same way as a i3. You can disiconnect the relay from the switch. You then end up with what you required, and you are still left with future options if you change you requirements.
    p.s. It is OCD no matter how much you deny it.

    General Discussion

  • "kinda smart" switch to put behind a normal light switch
    ElcidE Elcid

    @akbooer said in "kinda smart" switch to put behind a normal light switch:

    I use the MK Grid switch hardware (in the UK)

    I use Click Mode, good quality. These are not grid design but still all switches can be interchanged, the have mulitple inserts and colours. And the bonus of being cheaper than MK. and take less space in the box.

    General Discussion

  • "kinda smart" switch to put behind a normal light switch
    ElcidE Elcid

    @huhnmann said in "kinda smart" switch to put behind a normal light switch:

    That light switch has to work exactly as before.

    fitting a shelly 1 , the light should function as before but also have smart capabilities, so you get the best of both worlds

    General Discussion

  • "kinda smart" switch to put behind a normal light switch
    ElcidE Elcid

    The i3 is a bit wasteful if only a single switch. If it is a single switch why not go with a shelly 1 then you make the light smart and can also send http request or subscribe to device mqtt stat topic.

    General Discussion

  • Broadlink setup
    ElcidE Elcid

    @catmanv2 I never had any luck with the BL plugin under vera or openLuup. They plugin never found any devices. I deregistered device and connected it to wifi only, and still no discovery. This is on Android.

    Strange thing I finally tried discovery with a Ezlo plus and it discovered it first time.

    Vera/openLuup plugins

  • Sustained condition is missing from MSR
    ElcidE Elcid

    This seems to work and stops the race condition, and there is no delay in reaponse from other device.
    biuld the same rule for the other device. Both set the global expression dimming to 1 to stop the other reacting , and feeding back
    Screenshot_20210914-184140.png Screenshot_20210914-184237.png Screenshot_20210914-184311.png Screenshot_20210914-185552.png

    Multi-System Reactor

  • Sustained condition is missing from MSR
    ElcidE Elcid

    I dont think you need sustained.
    You can set ezlo dimmer > 0.
    Then set a expression to grab the ezlo dimmer level.
    Then in set reaction, set vera dimmer to ${{name_of_expression}},
    and reset reaction set to vera dimmer to 0.

    You can make the same rule in reverse for vera dimmer

    Then if you turn on vera dimmer it will turn on ezlo, and if you turn of ezlo it will turn off vera.

    Needs a bit more thought to follow dimming changes after that.

    Multi-System Reactor

  • Sustained condition is missing from MSR
    ElcidE Elcid

    @eonnet, Dam I update yesterday morning, new update that evening lol.

    So up date to latest 56 and the sustained is still there and set to changes.Screenshot_20210914-140102.png

    Multi-System Reactor

  • Sustained condition is missing from MSR
    ElcidE Elcid

    There for me on latest 21243 using chrome for android
    Maybe try another browser
    Screenshot_20210914-130221.png

    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