-
I have a use case where I need to have a boolean variable that will be set to true/false by reactions.
I see that i can define a local variable by giving it a name and leaving the definition empty. This leaves it at state "null" until a reaction tells it that its a boolean.
Is there a way to tell it that it should start out as "false" (i.e when reactor has restarted), and not null?
Am i going about this the wrong way?
-- The use case is that I have a sensor on my fireplace, and the following logic is for notifying when its time to get up en refill with firewood.. I also want to reset the MaxInInterval to CurrentTemp when notification is sent..
1fd2951f-cb6b-4a2f-b957-1e0698171f4d-image.png dd99634e-f0ad-4878-bb87-0284c2df5535-image.png
Edit: better screenhots. Reactor version 23010-7dd2c9e9
-
Converting from Vera Plus to Hubitat at two different locations. The two sites are interconnected via a router-to-router VPN. I currently have a Hubitat C7 running at Site One and a Vera Plus at Site Two. The MSR Raspberry Pi is co-located with the Vera Plus at Site Two. I "activated" a Hubitat C8 (ethernet connected) at Site Two including the installation of Hub Information Driver and its associated device. I also installed a single zwave outlet module (GE ZW4202). I restarted MSR. The C8 and its associated devices appear on both the Entities page and the MSR Dashboard, but the C8 reports as down on the MSR Status page and the GE outlet does not respond when "clicked". I am not sure where to look to try to find the source of the problem and will greatly appreciate any suggestions.
-
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. -
Hi guys,
I want to import my reactor sensors in the MSR addon for Home Assistant, but I can't find the app.js file anywhere. So now I don't know where to put the backup file.
I have not tried to put it in the main directory (config/reactor) yet. Wanted to know if I'm the only one with the problem.
Reactor addon: v0.0.8
MSR: 23063-c464b685
Home Assistant 2023.3.3
Supervisor 2023.03.1
Operating System 9.5
Frontend 20230202.0 - latestI started with v0.0.7, have just updated everything. Still no file.
-
I'm a little bit confused how to configure extended capabilities for the entities in the MQTTController.
mqtt_cababilities.yaml states that: "...You can add your own capabilities by adding a "capabilities" section to your own local_mqtt_capabilities.yaml file in your config directory."
So I did this in my local_mqtt_capabilities.yaml in the config directory:
version: 22353 revision: 1 format: 1 capabilities: x_my_config: attributes: partyMode: type: bool actions: some_action: topic: '%topic/write' payload: "some value"And in my reactor.yaml I have following configuration entry:
my-config: name: 'My custom configuration' topic: 'my-config' query: "%topic%/read" init: "%topic%/read" capabilities: - x_my_config primary_attribute: x_my_config.partyMode events: "%topic%/status": "x_my_config.partyMode": json_payload: true expr: "payload.partyMode"This sort of works but not quite. The partyMode attribute gets updated when messages arrive for that specific topic, so that's fine. But I don't see x_my_config capability in the Capabilities list in the UI and also the some_action is missing.
Screenshot from 2023-03-09 19-42-49.png
Addition to that the primary value is not set and I'm getting the following error:
Screenshot from 2023-03-09 19-30-42.pngHave I completely misunderstood the idea behind the capability extension and the attributes? If so, could someone point me to the right direction with few explanatory example configs.
What I'm trying to achieve is a set of configuration options that could be updated thru the MQTT, and also provide some actions that the rules could invoke.
Reactor (Multi-hub) latest-23063-c464b685 + MQTTController [0.1.23010]
br,
mgvra -
-
Installing MQTTController on Home Assistant Core when Reactor is installed as an Add-In (VirtualBox)
Running Home Assistant Core under VirtualBox (on Windows) and Reactor is installed and working fine as an add-in. What I can't figure out is how to install MQTTController in this situation. I can upload the files and unzip them, but I can't run install.sh in a terminal window because npm is not a part of the Core installation.
It does appear that somewhere in the stack there is a version of docker there between VirtualBox and HA, (I see some references go by in the VirtualBox startup log) but it appears minimal and will not execute the install via the docker technique in your documentation from the VB console.
Is there a way to do this?
Thanks.
-
I've done a bit of repackaging of MSR to make it work as an add-on under Home Assistant mostly for my own purposes but hopefully it makes it a bit easier to install and get going.
GitHub - mrw298/hassio-reactor-addon GitHub - mrw298/hassio-reactor-addon
Contribute to mrw298/hassio-reactor-addon development by creating an account on GitHub.
-
@toggledbits somewhere I thought I read that MSR goes thru the items in set reaction and reset reaction in stack order, ie from top to bottom/first to last.
Am I mistaken?
-
Reactor 23063 running on Windows Bare Metal.
Home assistant 2023.3.1
ESPHome 2023.2.4I've been trying a few ways using some results from search to call a Hass service as a reaction in a Reactor rule.
Specifically, when the PIR in the room senses motion, wake the NsPanel screen.
My Reactions otherwise so far are basic If this then that so I'm way behind what others are doing.
What I want to call as a Reaction:
Capture1.PNGWhat I've tried (a few variations on):
Capture2.PNGWhat happens:
[latest-23063]2023-03-07T07:45:21.688Z <wsapi:ERR> wsapi: error thrown handling client message [Object]{ "command": "perform", "entity": "WOKHASS1>system", "action": "x_hass_system.call_service", "parameters": { "service": "ESPHome: nspensuite_send_command_printf", "data": "page home" }, "qid": 75 } [latest-23063]2023-03-07T07:45:21.688Z <wsapi:CRIT> TypeError: Cannot read properties of null (reading '1') [-] TypeError: Cannot read properties of null (reading '1') at HassController.performOnEntity (C:\reactor\reactor\server\lib\HassController.js:584:108) at System.perform (C:\reactor\reactor\server\lib\Entity.js:707:56) at WSAPI.clientMessage (C:\reactor\reactor\server\wsapi\wsapi.js:499:48) at WebSocket.<anonymous> (C:\reactor\reactor\server\wsapi\wsapi.js:290:158) at WebSocket.emit (node:events:520:28) at WebSocket.emit (node:domain:475:12) at Receiver.receiverOnMessage (C:\reactor\reactor\node_modules\ws\lib\websocket.js:1059:20) at Receiver.emit (node:events:520:28) at Receiver.emit (node:domain:475:12) at Receiver.dataMessage (C:\reactor\reactor\node_modules\ws\lib\receiver.js:517:14)If someone can convert the 'call service' to a 'reaction' for me, or share their own similar thing I think that's what I need to achieve this goal.
I suspect if I'm even close to being on the right track, my problems are probably formatting like curly braces etc and lack thereof.
Thanks in advance.
-
@toggledbits was looking thru rule sets and updating which (new) lights I wanted REMII to impact and saw that this...
4711b0df-5e98-4992-bb25-d0e53203f0e8-image.png
...is showing as (missing) in the rule Deactivatedand looking in the dropdown of Variables it appears I cannot select that local expression (only Global) as I did when originally building this out back in 2021.
27f7025c-057e-441a-88ea-dc4bdf39614d-image.png
In looking at the rule Active Period I'm seeing:
487074ef-3bfa-4a84-b03d-ed6d920c118c-image.png which appears to be pointing to setting a variable in a rule?It's admittedly been a couple years since this was built and it's def not fresh in my memory.
-
New installation of Reactor version 23063-c464b685 on a Raspberry PI4 with Portainer/Docker.
Report :
No drop-down list on Entity Attribute in "Creation Rule Sets" interface
I can however visualize the entities.
I have configured HomeAssistant and all entities are coming up fine.
I have an unsupported Hass version 2023.3.0b5.
I'm new to Docker and can someone guide me to a solution?
Christian FABREAlert:
[latest-23063]2023-03-05T09:51:49.575Z <app:null> Process ID 1 user/group 0/0; docker; platform linux/arm64 #1595 SMP PREEMPT Wed Oct 26 11:07:24 BST 2022; locale (undefined) [latest-23063]2023-03-05T09:51:49.576Z <app:null> Basedir /opt/reactor; data in /var/reactor/storage [latest-23063]2023-03-05T09:51:49.577Z <app:null> NODE_PATH=/opt/reactor:/opt/reactor/node_modules [latest-23063]2023-03-05T09:51:49.584Z <app:INFO> Configured locale (undefined); selected locale(s) en-US.UTF-8 [latest-23063]2023-03-05T09:51:49.708Z <app:INFO> Loaded locale en-US for en-US [latest-23063]2023-03-05T09:51:49.725Z <Structure:null> Module Structure v22323 [latest-23063]2023-03-05T09:51:49.729Z <Capabilities:null> Module Capabilities v22356 [latest-23063]2023-03-05T09:51:49.806Z <Capabilities:NOTICE> System capabilities loaded from core distribution, data version 23058 revision 1 [latest-23063]2023-03-05T09:51:49.849Z <Plugin:null> Module Plugin v22300 [latest-23063]2023-03-05T09:51:49.869Z <TimerBroker:null> Module TimerBroker v22283 [latest-23063]2023-03-05T09:51:49.878Z <Entity:null> Module Entity v22353 [latest-23063]2023-03-05T09:51:49.889Z <Controller:null> Module Controller v23044 [latest-23063]2023-03-05T09:51:49.926Z <default:null> Module Ruleset v22293 [latest-23063]2023-03-05T09:51:49.928Z <default:null> Module Rulesets v22146 [latest-23063]2023-03-05T09:51:49.943Z <GlobalExpression:null> Module GlobalExpression v22146 [latest-23063]2023-03-05T09:51:49.977Z <Predicate:null> Module Predicate v22345 [latest-23063]2023-03-05T09:51:49.987Z <AlertManager:null> Module AlertManager v22283 [latest-23063]2023-03-05T09:51:49.995Z <Rule:null> Module Rule v22345 [latest-23063]2023-03-05T09:51:50.004Z <GlobalReaction:null> Module GlobalReaction v22324 [latest-23063]2023-03-05T09:51:50.008Z <Engine:null> Module Engine v23001 [latest-23063]2023-03-05T09:51:50.019Z <httpapi:null> Module httpapi v23058 [latest-23063]2023-03-05T09:51:50.078Z <wsapi:null> Module wsapi v23053 [latest-23063]2023-03-05T09:51:50.080Z <app:NOTICE> Starting Structure... [latest-23063]2023-03-05T09:51:50.100Z <Structure:NOTICE> Structure#1 plugin ID influx disabled; skipping [latest-23063]2023-03-05T09:51:50.106Z <Structure:INFO> Structure#1 loading controller interface hass (HassController) [latest-23063]2023-03-05T09:51:50.210Z <HassController:null> Module HassController v23060 [latest-23063]2023-03-05T09:51:50.639Z <Structure:INFO> Structure#1 loading controller interface groups (DynamicGroupController) [latest-23063]2023-03-05T09:51:50.649Z <DynamicGroupController:null> Module DynamicGroupController v22313 [latest-23063]2023-03-05T09:51:50.659Z <Structure:INFO> Structure#1 loading controller interface reactor_system (SystemController) [latest-23063]2023-03-05T09:51:50.672Z <SystemController:null> Module SystemController v22306 [latest-23063]2023-03-05T09:51:50.680Z <Structure:INFO> Starting controller HassController#hass [latest-23063]2023-03-05T09:51:50.682Z <HassController:NOTICE> HassController#hass starting... [latest-23063]2023-03-05T09:51:50.691Z <Controller:INFO> HassController#hass loaded hass capabilities ver 22312 rev 2 format 1 [latest-23063]2023-03-05T09:51:50.715Z <Controller:INFO> HassController#hass loaded implementation data ver 23058 rev 1 format 1 [latest-23063]2023-03-05T09:51:50.715Z <Structure:INFO> Starting controller DynamicGroupController#groups [latest-23063]2023-03-05T09:51:50.728Z <Controller:NOTICE> Controller DynamicGroupController#groups is now online. [latest-23063]2023-03-05T09:51:50.728Z <Structure:INFO> Starting controller SystemController#reactor_system [latest-23063]2023-03-05T09:51:50.733Z <Controller:NOTICE> Controller SystemController#reactor_system is now online. [latest-23063]2023-03-05T09:51:50.877Z <HassController:INFO> HassController#hass device mapping data loaded; checking... [latest-23063]2023-03-05T09:51:50.881Z <HassController:WARN> HassController: implementation of capability input_select.selector does not provide attribute values [latest-23063]2023-03-05T09:51:50.884Z <HassController:NOTICE> HassController#hass connecting to ws://192.168.1.31:8123/api/websocket [latest-23063]2023-03-05T09:51:50.894Z <app:NOTICE> Starting HTTP server and API... [latest-23063]2023-03-05T09:51:50.901Z <httpapi:NOTICE> httpapi: starting HTTP service on port "8111" [latest-23063]2023-03-05T09:51:50.909Z <app:NOTICE> Starting Reaction Engine... [latest-23063]2023-03-05T09:51:50.910Z <Engine:INFO> Reaction Engine starting [latest-23063]2023-03-05T09:51:50.911Z <Engine:INFO> Checking rule sets... [latest-23063]2023-03-05T09:51:50.916Z <Engine:INFO> Checking rules... [latest-23063]2023-03-05T09:51:50.923Z <Engine:INFO> Data check complete; no corrections. [latest-23063]2023-03-05T09:51:50.938Z <Rule:NOTICE> rule-leu8xfe4 (rule-leu8xfe4 in First Rule Set) starting [latest-23063]2023-03-05T09:51:50.939Z <Engine:NOTICE> Reaction Engine running! [latest-23063]2023-03-05T09:51:50.939Z <Rule:NOTICE> rule-leu8xfe4 (rule-leu8xfe4 in First Rule Set) can't start -- rule is disabled [latest-23063]2023-03-05T09:51:50.952Z <httpapi:NOTICE> httpapi: listening [latest-23063]2023-03-05T09:51:50.981Z <app:NOTICE> Starting WSAPI... [latest-23063]2023-03-05T09:51:50.983Z <wsapi:NOTICE> wsapi: starting version 23053 [latest-23063]2023-03-05T09:51:51.080Z <Engine:INFO> [Engine]Engine#1 master timer tick, local time "3/5/2023 10:51:51 AM" (TZ offset 60 mins from UTC) [latest-23063]2023-03-05T09:51:51.119Z <HassController:NOTICE> HassController#hass connected, starting protocol [latest-23063]2023-03-05T09:51:51.127Z <httpapi:INFO> httpapi: API request from ::ffff:192.168.1.42: GET /api/v1/systime [latest-23063]2023-03-05T09:51:51.145Z <HassController:INFO> HassController#hass successful authentication with ws://192.168.1.31:8123; fetching initial data... [latest-23063]2023-03-05T09:51:51.155Z <HassController:INFO> HassController#hass Hass reports version "2023.3.0b5" location Maison timezone Europe/Paris state RUNNING safe_mode false [latest-23063]2023-03-05T09:51:51.245Z <HassController:NOTICE> HassController#hass no signature match for update.home_assistant_supervisor_update [latest-23063]2023-03-05T09:51:51.248Z <HassController:NOTICE> HassController#hass no signature match for update.home_assistant_core_update [latest-23063]2023-03-05T09:51:51.249Z <HassController:NOTICE> HassController#hass no signature match for update.terminal_ssh_update [latest-23063]2023-03-05T09:51:51.250Z <HassController:NOTICE> HassController#hass no signature match for update.file_editor_update [latest-23063]2023-03-05T09:51:51.251Z <HassController:NOTICE> HassController#hass no signature match for update.samba_backup_update [latest-23063]2023-03-05T09:51:51.252Z <HassController:NOTICE> HassController#hass no signature match for update.home_assistant_operating_system_update [latest-23063]2023-03-05T09:51:51.253Z <HassController:NOTICE> HassController#hass no signature match for sun.sun [latest-23063]2023-03-05T09:51:51.285Z <HassController:NOTICE> HassController#hass no signature match for calendar.calendrier [latest-23063]2023-03-05T09:51:51.413Z <HassController:NOTICE> HassController#hass no signature match for siren.piscine_siren [latest-23063]2023-03-05T09:51:51.419Z <HassController:NOTICE> HassController#hass no signature match for camera.portillon [latest-23063]2023-03-05T09:51:51.607Z <Controller:INFO> HassController#hass 0 dead entities older than 86400000s purged [latest-23063]2023-03-05T09:51:51.633Z <Controller:NOTICE> Controller HassController#hass is now online. [latest-23063]2023-03-05T09:51:51.634Z <DynamicGroupController:INFO> All controllers ready, setting up dynamic groups [latest-23063]2023-03-05T09:51:51.726Z <wsapi:INFO> wsapi: connection from ::ffff:192.168.1.42 [latest-23063]2023-03-05T09:51:55.510Z <wsapi:INFO> client "192.168.1.42#1" closed, code=1001, reason= [latest-23063]2023-03-05T09:51:55.815Z <httpapi:INFO> httpapi: API request from ::ffff:192.168.1.42: GET /api/v1/lang [latest-23063]2023-03-05T09:51:55.843Z <wsapi:INFO> wsapi: connection from ::ffff:192.168.1.42 [latest-23063]2023-03-05T09:51:56.849Z <httpapi:INFO> httpapi: API request from ::ffff:192.168.1.42: GET /api/v1/systime [latest-23063]2023-03-05T09:52:07.392Z <httpapi:INFO> httpapi: API request from ::ffff:192.168.1.42: GET /api/v1/systime---
reactor_20230305_01.png Rule :
reactor_20230305_02.png Entities:
reactor_20230305_03.png log Reactor :Log Portainer:
NODE_PATH /opt/reactor:/opt/reactor/node_modules [latest-23063]2023-03-05T08:55:17.734Z <app:null> Reactor build latest-23063-c464b685 starting on v16.15.1 [latest-23063]2023-03-05T08:55:17.736Z <app:null> Process ID 1 user/group 0/0; docker; platform linux/arm64 #1595 SMP PREEMPT Wed Oct 26 11:07:24 BST 2022; locale (undefined) [latest-23063]2023-03-05T08:55:17.737Z <app:null> Basedir /opt/reactor; data in /var/reactor/storage [latest-23063]2023-03-05T08:55:17.738Z <app:null> NODE_PATH=/opt/reactor:/opt/reactor/node_modules [latest-23063]2023-03-05T08:55:17.875Z <Structure:null> Module Structure v22323 [latest-23063]2023-03-05T08:55:17.879Z <Capabilities:null> Module Capabilities v22356 [latest-23063]2023-03-05T08:55:18.004Z <Plugin:null> Module Plugin v22300 [latest-23063]2023-03-05T08:55:18.023Z <TimerBroker:null> Module TimerBroker v22283 [latest-23063]2023-03-05T08:55:18.032Z <Entity:null> Module Entity v22353 [latest-23063]2023-03-05T08:55:18.042Z <Controller:null> Module Controller v23044 [latest-23063]2023-03-05T08:55:18.079Z <default:null> Module Ruleset v22293 [latest-23063]2023-03-05T08:55:18.080Z <default:null> Module Rulesets v22146 [latest-23063]2023-03-05T08:55:18.096Z <GlobalExpression:null> Module GlobalExpression v22146 [latest-23063]2023-03-05T08:55:18.129Z <Predicate:null> Module Predicate v22345 [latest-23063]2023-03-05T08:55:18.139Z <AlertManager:null> Module AlertManager v22283 [latest-23063]2023-03-05T08:55:18.146Z <Rule:null> Module Rule v22345 [latest-23063]2023-03-05T08:55:18.156Z <GlobalReaction:null> Module GlobalReaction v22324 [latest-23063]2023-03-05T08:55:18.159Z <Engine:null> Module Engine v23001 [latest-23063]2023-03-05T08:55:18.171Z <httpapi:null> Module httpapi v23058 [latest-23063]2023-03-05T08:55:18.232Z <wsapi:null> Module wsapi v23053 [latest-23063]2023-03-05T08:55:18.358Z <HassController:null> Module HassController v23060 [latest-23063]2023-03-05T08:55:18.780Z <DynamicGroupController:null> Module DynamicGroupController v22313 [latest-23063]2023-03-05T08:55:18.803Z <SystemController:null> Module SystemController v22306``` -
Sorry for another dumb question. Migrating from Vera Alexa to HASS Vera TTS. MSR is on bare metal, Debian Bullseye version 23049
I can get TTS from MSR and basic TTS from MSR which is great!
Trying to get some of the variables I used to use though is stumping me.
In the original MSR, I'd use:
It is now ${{OutingDays}} days until we go to ${{OutingName}}. , Sleep well!for example, and that worked fine (I've not bothered to list the variables as I know the worked)
If I use
{ "message":"It is now${{OutingDays}} days until we go to ${{OutingName}}. , Sleep well!", "data":{"type":"announce", "method":"speak"}, "target":["media_player.everywhere"] }In the data field of the hass service system call it doesn't evaluate the variables (Not really surprised)
So might someone take mercy on me and give me a clue?
TIA
C
-
I'm back from a vacation and it was the first winter one with MSR.
I have a special vacation mode that's auto-setting after the house is in away mode for at least 18 hours - and that's mostly OK. In this mode, lights are turned on/off automatically, some things are off to preverse powers, etc. Thermostats are automatically set at 17C unless there's solar power. That's mostly OK, except when you have to deal with winters and clouds on the day back home.
Long story short: back from vacation, we found the house at 17C - wife wasn't impressed.
Back in the luup days I had a special override, that I forgot to port to MSR, that was basically like this in MSR (coded on the fly):
32298706-86f7-451e-9700-2baf5d5a23b6-image.png
So, I could tell my system when I'm on vacation and have a last day flag to re-set the house to normal behavior before I'm back. It was just two strings variable in a virtual binary sensor.
I don't want to code this in global expressions, so I'm wondering if it's possible to accomplish this with a Virtual Device, but I'm failing to visualize the correct answer and I'm here for inspiration for what others are doing to tackle this.
I don't want to create 4 separate devices (start date, end date, status, last day) in order to keep it easy and I want to be able to change the start/end date from the UI, to simplify things. Any hint is appreciated 🙂
-
I updated to the latest version of Reactor this morning. I run reactor (successfully) on a Raspberry PI 4 4GB with SSD 64GB. I also run Home Assistant in Docker. After updating I noticed a disk space critical error warning!
9f4e1ea1-977a-481b-9806-d3d43a4eff04-image.png
I have tried purging the docker install (docker image prune -a)
I have rebooted the Raspberry PI also, and the error messages keep coming.
I have the following disk space:
58742ed7-e10d-4572-b380-0abda64f90b4-image.png
How do I free up space?
Any help would be appreciated.
-
Good morning,
I'm trying to recreate some notifications I received on my old Vera system based upon House mode. I migrated from Vera to Home Assistant about 6 months ago, and all the automation I have set up are working great, however, I'm noticing that there were things that were once simple in Vera that are more involved in Home Assistant.In House Modes in Vera, there was a screen where I could select all the devices I wanted to be armed in various house modes. I recreated those house modes in Home Assistant very early on, but what I'm not getting now is notifications for various sensors. For instance, if the system is in Away mode, and interior motion is detected, I would get a Vera push notification on my phone. I've been setting these up one by one using haas>system --> x_haas_system.call_service, then setting the notify device and the message, one by one, but it's repetitious and tedious. For a few devices, like motion sensors on my ground floor, it's not a big deal, but now I'm looking at all the windows in my home, which have sensors on them.
So, enough of the background thesis. Simply put, is there a way to have a group of devices ( like 16 different window sensors ) as an entity, and when they are tripped, send out a notification and state which of those sensors was tripped, all in a single rule?
If I have to copy and edit 16 different rules, I'll do that, but I'd prefer a more elegant way where there is one rule to send out the notifications that tells me what was opened.
Thanks for all your advice/help in advance.
I'm running MSR latest-23049-1fd87c91 and Home Assistant 2023.2.5, Supervisor 2023.01.1, Operating System 9.5,
BTW, @toggledbits, I noticed on the About screen for MSR it still shows copyright from 2022. I know you've released versions this year.
Reactor (Multi-hub) latest-23049-1fd87c91 © 2020-2022 Kedron Holdings LLC, All Rights Reserved; Patrick Rigney (toggledbits), Principal Engineer.
-
I'd like the "None deferred" Reset Reaction group to have multiple Conditions. Is this not possible?
Running latest version of MSR, 23049-1fd87c91
-
I have upgraded my Hubitat Hub Information Driver to v3 and after the latest MSR update latest-23028 MSR is working ok. The problem is when MSR probes the device it appears to affect the polling in the new Hub Information Device and its data does not update the data fields in Hubitat. If I remove the Hub Information Device from Maker API so MSR can't see it, The Hub information driver updates the data as expected in Hubitat. I added the device back into Maker API the same problem returns in Hubitat. I have tried to have MSR probe a different device by adding a different probe device and probe action in the reactor.yaml per the documentation but it appears then it still uses the Hub Information Device as the probe device instead of the one specified in the reactor.yaml. See Logs below. Is this the intended behavior to always use the Hub Information Driver if found and not use the device in the reactor.yaml file? Any recommendations on how to get MSR and the v3 of the driver to work correctly or can you see what I am doing wrong?
[latest-23028]2023-02-11T23:27:50.471Z <Controller:NOTICE> Controller HassController#hass is now online. [latest-23028]2023-02-11T23:27:50.471Z <Rule:INFO> Internet Check (rule-l44qss4f in Home) starting evaluation; because entity-changed System#reactor_system>system [latest-23028]2023-02-11T23:27:50.471Z <Rule:INFO> MSR Update Version Available (rule-labweim2 in Notify) starting evaluation; because entity-changed System#reactor_system>system [latest-23028]2023-02-11T23:27:50.472Z <Rule:INFO> Internet Check (rule-l44qss4f in Home) trigger evaluation result is false (previously false) [latest-23028]2023-02-11T23:27:50.472Z <Rule:INFO> Internet Check (rule-l44qss4f in Home) evaluated; trigger state unchanged (false); rule state remains RESET [latest-23028]2023-02-11T23:27:50.472Z <Rule:INFO> MSR Update Version Available (rule-labweim2 in Notify) trigger evaluation result is false (previously false) [latest-23028]2023-02-11T23:27:50.472Z <Rule:INFO> MSR Update Version Available (rule-labweim2 in Notify) evaluated; trigger state unchanged (false); rule state remains RESET [latest-23028]2023-02-11T23:27:50.472Z <Rule:INFO> Internet Check (rule-l44qss4f in Home) evaluation complete [latest-23028]2023-02-11T23:27:50.472Z <Rule:INFO> MSR Update Version Available (rule-labweim2 in Notify) evaluation complete [latest-23028]2023-02-11T23:27:50.673Z <HubitatController:INFO> HubitatController#hubitat Maker API responded with 91 devices [latest-23028]2023-02-11T23:27:50.766Z <HubitatController:INFO> HubitatController#hubitat found 'Hub Information Driver v3' device #"481"; using for probe/health checks. [latest-23028]2023-02-11T23:27:50.780Z <Controller:INFO> HubitatController#hubitat 0 dead entities older than 86400000s purged [latest-23028]2023-02-11T23:27:50.780Z <Rule:INFO> Roku Pause (rule-l3nlrzu9 in Home) starting evaluation; because entity-changed BinarySensor#hubitat>519 [latest-23028]2023-02-11T23:27:50.780Z <Rule:INFO> Stairs Light Low Light (rule-kulslls9 in Living Room) starting evaluation; because entity-changed BinarySensor#hubitat>519 [latest-23028]2023-02-11T23:27:50.780Z <Rule:INFO> Porch Motion Extended check (rule-l3kr45m8 in Porch) starting evaluation; because entity-changed BinarySensor#hubitat>519 [latest-23028]2023-02-11T23:27:50.780Z <Rule:INFO> Porch Light Manual On (rule-kmtxw155 in Porch) starting evaluation; because entity-changed BinarySensor#hubitat>519Snippet from the reactor.yaml:
# action_pace: 100 # warn_unresponsive: true # probe_device: hubitat>132 (not needed if Hub Information app installed) probe_device: hubitat>2 # probe_action: x_hubitat_Configuration.configure (not needed if Hub Information app installed) probe_action: x_hubitat_Configuration.configure # probe_action: x_hubitat_Refresh.refreshSynology Docker latest-23028
Hubitat v2.3.4.139
Hub Information Driver v3 -
Hey Patrick,
I’m trying to figure out how to run Home Assistant native push notifications from MSR. I have MSR set up to arm my home alarm every night, and when all users are out of the home. I’ve used it for years through Reactor, and it works fine, but when I ran Vera and Reactor for Vera, I would get notifications from Vera when Vera went into different home modes. (Home, Away, Night, etc). I’ve set up Home Modes in HA as well, so I’m looking to get the native push notifications from the HA companion app (i.e., System in Home Mode, System Armed Away, or Good Night, etc) Can I set up notifications from MSR to use those native push notifications, or does that need to be done from HA exclusively?I’m running latest-23028-ddc3fb14 and Home Assistant 2023.1.7.
-
Hi!
I have MSR latest-23049-1fd87c91 and Home Assistant 2023.2.5.
Every friday and saturday evening I have an active reaction/automation; if any adult is home and someone is in the kitchen, music starts playing from Sonos. That works great. I have different playlists and artist radios for each friday and saturday per month (1:st, 2:nd, ...) Some evenings when I don't play an artist radio, but an ordinary playlist, the songs are always played in the same order. I would like to randomize and stir things up. Is it possible, if so, how, to make Sonos play the songs from a Sonos playlist in random order? I always play playlists that is characterized as my Sonos favorites.
Cheers!
/Fanan
Reactor (Multi-System/Multi-Hub) Announcements
-
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()
andisRuleEnabled()
functions to expressions extensions; - Implement
set
action forlock
andpassage
capabilities (makes them more easily scriptable in some cases); - Fix a place in the UI where 24-hour time was not being displayed.
-
toggledbits
-
Build 21236
- Prototypical support for Ezlo Atom and PlugHub in EzloController;
- Be less aggressive with module loading in app.js for more permissive first-time startup;
- Simplify reaction stop for child tasks;
- Numerous small bug fixes/gnats in UI;
- Documentation updates and corrections.
Note that Generation 1 Atoms are supported in this version, but only through the remote access API (so it's cloud-dependent). Gen2 and later Atoms/PlugHubs can run with local/LAN access (no cloud dependency).
-
Build 21237
- EzloController: Tone down the warnings about disabling certain ciphers for Atom; that's only applicable to local access (don't need warnings when remote access is used).
- PR 0000245: Fixed an issue with a hang caused by the attempt to actively stop a reaction that is blocked waiting for a child reaction (a reaction group) to finish.
- PR 0000252: Enable power_switch capability for siren category on eZLO hubs.
-
Build 21239
- Expression functions
strftime()
andformat()
added. See the updated documentation. - Direct browser (via HTML attributes) to disable spellcheck on various fields where it's inappropriate (e.g. HTTP Request action URL, headers and data).
- Updated to latest lexpjs, which has itself been updated to (hopefully) support Unicode alphabetic characters in identifier names.
- Allow expressions to have Unicode characters in their names (parity with lexpjs).
- Additional preparation for localization in UI and engine. For example, non-US users should notice that lists sorted alphabetically now appear in a more natural order for their configured language, rather than "ASCII" (character code ordinal) sorting.
- Expression functions
-
Build 21243
- HubitatController: Resolve exception thrown when attempting to set mode.
- HassController: Blessed Hass version 2021.8.8
-
Build 21256
- Fix issue with HTTP Request action post body causing exception;
- The maximum wait time for controllers to become available when Reactor starts is now configurable via the
startup_wait
key in theengine
section ofreactor.yaml
. Users of the similarly-namedstartup_delay
, which is a fixed delay, are encouraged to usestartup_wait
instead. - The Rule detail display in the Rule Sets list was not correctly showing some non-primitive values (objects and arrays) correctly.
- HassController: Blessed Hass version 2021.9.6
-
Build 21258
- Warning and clear when changing operator on condition that would clear condition options.
- Fix Vera importer geotag handling.
- VeraController: add binary
x_vera_geotag.in_region
attribute. - HassController: implement
x_hass_system.call_service
on system entities.
-
Build 21267
- Change the evaluation algorithm for global variables to make them reactive. That is, global variables are now automatically reevaluated when dependent global variables or entities (from use
getEntity()
) change. They will also drive evaluation of rules when a rule-based expression or trigger condition references a global variable that changes. - A new version of lexpjs supporting the above changes is being used; this version includes local scope for the interior of most statements, which may break some expressions (in particular, those that breach etiquette and create variables inside loops but access them outside).
- First version with localization capability. Users interested in localizing the user interface for their language/country can read the how-to documentation.
Expressions Changes
This release comes with some significant changes to the operation of global expressions in particular, and some expression tweaks throughout.
First, the expression language has been given the concept of scope; specifically, the statements
each
,first
,do...done
,if then else endif
now have local scopes for their interior expressions. Variables created in the interior of these statements are not visible outside of these statements (they are implicitlylocal
), unless the variable already exists in an enclosing scope. This is probably not going to cause anyone much heartburn on existing expressions with these statements. I don't see many of you pushing the limits in this area of the expression language that would make it an issue. We'll handle exceptions as they come up.Second, and more importantly, Reactor now evaluates and treats global variables differently, and I think you'll agree this is a good change and brings more useful, even expected, behavior. The details:
- Global variables are now reactive; for example, when a global variable that contains a
getEntity()
expression detects that the entity is modified, the global variable's expression is automatically recalculated. In previous versions of MSR, the variable was not re-evaluated until a rule requested the global variable's value. - Global variables are recalculated when they reference another global variable, and that global variable changes (for whatever reason). If, for example, you have a rule that periodically fetches JSON data from a web site and stores the response in a global variable, and other global variables that draw on that data, those dependent variables will be reevaluated when the variable holding the response is modified.
- Rules will be reactive to global variable changes that do not involve entities. Previously, MSR rules would only re-evaluate on a change to a global variable if that variable involved a
getEntity()
expression. In fact, Reactor was not reacting to the variable change, it was reacting to the entity change. Now, Reactor truly reacts to the global variable change, which means it will also respond to the change in values of case #2 above -- if a rule is dependent on a global variable, any change to that global variable for any reason will cause the rule to re-evaluate, and based on its conditions, possibly change state. - You can disable the dependency and auto-recalculation of a global variable, because sometimes its useful to do that.
Given these changes, it is pretty easy to create reference loops. There's nothing stopping you from creating a variable A and compute its value from B, and then create B and have it set its value based on A. This will get you loop errors and a stop on evaluation; it won't be subtle. Similar abuses between global variables and rules and the overzealous use of Set Variable actions can also lead to rule loops throttling. Any time you use Set Variable in a rule-based reaction where that rule also uses the variable in triggers, you are running the risk of such a loop, so be careful.
Reactor for Vera doesn't have global variables, so at the time it was implemented as a new feature of MSR, simplifying assumptions were made. I hope you'll agree this is a useful evolution of their behavior.
Docs are updated, so make sure you check them out.
Localization
This is the first release that has the bulk of my recent work on localization. I'm barely passable at German, certainly not enough so to do a translation, and know enough Spanish to order a beer and get slapped by members of the opposite sex, but that's about it for me for languages (I used to teach Latin in an elementary school, but I doubt there's much demand for that translation). So while the system now recognizes the language configuration of your browser and host system automatically, it won't be able to present in any language other than US English because that's the only string file available. If any native speakers of other languages (including UK and Australian English) would like to step up and do a localization, let me know — that would be your work product to own and distribute as an add-on (e.g. through Github, etc.) to the community, and optionally include in Reactor distributions if you're willing (as a redistributed/third-party work with attribution on the About page). The US English file, which is the reference for all strings and starting point for translations, can be found in this Github repository: https://github.com/toggledbits/msr-localization
- Change the evaluation algorithm for global variables to make them reactive. That is, global variables are now automatically reevaluated when dependent global variables or entities (from use
-
Build 21270
- Fix an issue with EzloController not processing device match expressions correctly on newer lexpjs.
- Add
matchEntities()
function (see docs) - Further localization improvements and fixes.
-
Build 21275
NOTICE: This revision incorporates a breaking change to the recently-introduced
matchEntities()
expression function. See below.- VeraController: Devices of type
...:FloodSensor1
now use theleak_sensor
(specific) capability; they maintain their previous use of the genericbinary_sensor
capability for backward compatiblity with existing automations. - EzloController: Fix a stack overflow that could occur under certain boundary conditions.
- OWMController: Fix a broken context initialization for
lexpjs
causing user-configured "extra data" fields with expressions to throw a soft error and report an incorrect (null) value. - Improve interaction between Engine and UI when global expressions are created: they are now given an initial evaluation and their dependency tree built at that time. Previously, a rule reference or manual UI interaction (e.g. "Try Now" button press) was required to initialize it.
- Improve interaction between Engine and UI when global variables are deleted: the deleted variable is now removed from the Engine's evaluation dependency tree to avoid spurious "Expression Not Found" exceptions in the log for the then-deleted variable. These would stop after a restart, because the dependency tree was rebuilt at that time, but it should not take a restart to fix the tree.
- Fix an error in the parameters of the
isRuleSet
andisRuleEnabled
expression functions that would cause a constructor error when global expressions using these functions were initialized at system startup, before the Engine had loaded the rules. This error was exposed by the changes made to support global variable dependency graphs. - When deleting system objects, wait until all notifications have been given and returned, to assure that the object being deleted is not actually deleted before the notified object has a chance to do whatever it needs to do. The former behavior had no adverse effect; this was a change to gain new behavior necessary to support the global variable dependency tree update on delete mentioned above.
- Fix a bug in the recording of the timestamp of modification of a global variable; it was using real time rather than virtual time, so when the engine was configured for "Test Time", it was recording incorrect (i.e. non-test time) values.
- The check for circular dependencies in the evaluation of global variables was relaxed to allow self-references (e.g.
series = push( series, value )
). - BREAKING: The
matchEntities()
function now returns only a list of canonical IDs for matched entities. You will need to use thegetEntity()
function to fetch current data for the entity if you need it. This was done because the previously-returned list of entity objects could grow "stale" (the data in the objects reflects the state at the time, not ever-changing and ongoing state as attributes change). And yes, this is exactly the kind of thing I said I try to avoid, but sometimes you just don't know all the side-effects until you see the thing in the wild. Sorry, everyone. - New expression functions:
fileExists()
,fileRead()
,fileWrite()
. See the docs. - Incorporates a hotfix made to 21270 for the
SetVariable
action on Vera hubs.
- VeraController: Devices of type
-
Build 21277
- HubitatController: Fix a problem with setting RGB color.
- Fix an issue causing "Object not found" exceptions when evaluating a
getEntity()
call in a subcontext of a rule-based expression (e.g. within aneach
loop). - Fix a number of issues required for localization (thank you, @Crille ).
-
toggledbits
-
Build 21281
- In prior versions, a reference to a variable (rule or global) that does not exist would cause an alert and "fail soft" by returning null. This (old) behavior actually hides such errors and makes them more difficult to locate, and generally speaking, you shouldn't be referring to things that don't exist. The new behavior is to throw an exception during the evaluation, which will more clearly highlight the error and make it easier to find and correct. If for some reason you still need the old behavior, you can set
deprecated_undefined_global_soft_fail
to true in theengine
section ofreactor.yaml
, and such errors will soft-fail as before. The old behavior is deprecated, however, and will be removed in a few months. - PR 0000260: Fix failure of HTTP Request (really underlying variable handling) to notice change in array of objects returned by request.
- PR 0000259: Need to more clearly highlight variables with errors in the expression editor. Failing expressions now receive orange highlight bars.
- Add
typeof()
expression function. - Additional localization changes.
- New HTTP API additions: add alert, dismiss alert
- Bless Home Assistant to 2021.10.0
- In prior versions, a reference to a variable (rule or global) that does not exist would cause an alert and "fail soft" by returning null. This (old) behavior actually hides such errors and makes them more difficult to locate, and generally speaking, you shouldn't be referring to things that don't exist. The new behavior is to throw an exception during the evaluation, which will more clearly highlight the error and make it easier to find and correct. If for some reason you still need the old behavior, you can set
-
Build 21286
- InfluxFeed now supports InfluxDB version 1.8+ and 2.0. InfluxDB versions prior to 1.8 are no longer supported. Please see the documentation for configuration details, as the configuration requirements for 1.x and 2.0 are different. Users of InfluxFeed also need to
npm update --nosave
if they are bare-metal installed. - The behavior of rules when throttled has been improved. Note, however, that any time a rule is throttled, events could be missed (e.g. if a light that is a dependency of a rule is turned on and back off quickly when throttled, the rule may not "see" the on event).
- Ongoing documentation updates.
- Bless Hass to 2021.10.4
- First version to contain a foreign language translation, Swedish! Thank you @Crille for your work on the translation and helping me get localization working.
- Address possible evaluation loop while using SetVariable in a rule reaction on a rule variable, where the value is an expression that contains a
getEntity()
reference. - Documentation updates
- Further i18n fixes (thank you @Crille)
- InfluxFeed now supports InfluxDB version 1.8+ and 2.0. InfluxDB versions prior to 1.8 are no longer supported. Please see the documentation for configuration details, as the configuration requirements for 1.x and 2.0 are different. Users of InfluxFeed also need to
-
Build 21292
- PR 0000262: Fix an error in handling date/time conditions with M/D across new year boundary.
- PR 0000261: HubitatController: Resolve an order of operations issue preventing extended attributes from being assigned as primary in local config.
- PR 0000258: (i18n) Fix string reference for condition option
- HassController: treat controller reporting NOT_RUNNING as an error and disconnect/retry
- Bless Hass to 2021.10.6
-
Build 21294
- PR 000263: Fix spurious log messages after deleting a global expression that contained a
getEntity()
. - Fixed a UI issue with an expression being sorted to the top of the list then ending up at the bottom.
- The expression function
strftime()
is now locale-aware. - Docker containers are now running on nodejs version 16.
- PR 000263: Fix spurious log messages after deleting a global expression that contained a
-
Build 21297
- PR 0000264: Fix an error in the rule editor on a particular value test used in several places that could cause the entered value of a condition option to not be saved (most notable on the "repeats within" field, but also found in two other locations).
- Update to lexpjs 21296 to get
sort()
function for arrays, and user-definable functions from expressions. Default sort in Reactor Engine for the implemention of expressionsort()
function is (host) locale-aware. Please refer to the documentation for details.
-
Build 21306
Note: this release includes changes to package dependencies. Bare-metal users please run
npm update --no-save
to resolve.- HTTP Request action now has explicit control over HTTP auth, with type selection (none, Basic, Digest) and credential fields (username and password).
- PR 0000265: Correct a string that is not translated in the alerts status panel.
- i18n: Found an additional string that was not localizable.
- The HTTP Request action will now suppress all alerts for any error it encounters, not just HTTP errors, if the "no error alerts" option is checked.
- Update lexpjs to get new array set functions:
arrayIntersection()
,arrayUnion()
,arrayDifference()
,arrayExclusive()
andarrayConcat()
.
-
Build 21307
- PR 0000266: An issue introduced at 21306 saves certain substitutions with the wrong data type.
- HubitatController: Resolve (hopefully) a race condition at startup.
-
Build 21313
- Bless Home Assistant to version 2021.11.2
- New system capability
button
to express state of a single button or contact closure. - PR 0000268: Sun condition shows "not between" as "between" in rule detail card.
- Add
/alert/:tag
HTTP API endpoint (DELETE method); this deprecates/alert/:tag/dismiss
.
-
Build 21321
- HassController: Additional updates for event handling (
init
support). - HubitatController: Map additional capabilities.
- Internal support additionals for MQTTController
MQTTController - Build 21321
- Fix incorrect scope reference is tasmota_generic_relay payload.
- Additional helpful debug.
Upgrading MQTTController, which is a standalone/add-on component, is the same procedure as initial installation.
- HassController: Additional updates for event handling (