I need a handful of victims volunteers to help test previews of the next build of Reactor. A long-standing request was for "a simple login mechanism," but in practice, adding user authentication and competent access control turned out to be a pretty big project with a lot of big changes on both server and client sides. It's a bit more than I'm comfortable testing myself and springing out to everyone at once, so I'd like to work with a small group to put it through "sea trials."
Major changes/features include:
User authentication with hashed password storage; User group configuration with application restriction (admin, dashboard, API); Detailed control over API access, with user- and token-based authentication/authorization; Improvements to the HTTPS service; Improvements to UI coordination with the core for Rules and Reactions.If this sounds like something you'd like to help with, drop me a reply here in this thread or privately.
I have a case where I'm trying to send a MQTT message similar to the example below:
Topic: pool/set { "command": 4, "value": 1, "time": 0, "interval": 0 }But I need to set "value" so that it is an integer between 20-30. I thought I could use "dimming" capability here, but there's probably a better way. @therealdb ?
(Using userauth-24120-7745fb8d build in Docker)
There's a filtering capability for entities in reactor.yaml, but I have a case where I don't want to filter an entity altogether, but would like to "throttle" it, as this sensor updates every 1-2 seconds (and therefore unnecessarily takes database space).
Sensor data comes through home assistant, and seems that there's no way to control update interval at that end.
So I'm asking if plugin configuration could support limiting/throttling updates for certain entities?
Good morning,
Hopefully this is a simple request. I believe the title should be self explanatory, but just in case, I'll elaborate.
On the status tab, we all get alerts if a device state has changed (i.e., been removed). This is great, but when I go into the entities tab, I have to either type the name (or a portion thereof) of the device that has been removed, or I need to scroll all the way through my list of devices. This is infrequent, however, yesterday I replaced a failed device in my HAAS environment. It was a Z-Wave switch that is added using the Smart Scan QR code, which normally makes it pretty easy. However, some devices don't get fully added the first time around, so it'll add multiple entries into HAAS until it get's the S2 authentication correct and the device fully included. It did this to me yesterday, and I had to delete the incomplete device from my installation. MSR still saw the entities of that failed/incomplete switch entity, and I was left with 8 alerts and entities that I needed to removed.
It's not a huge problem, but this example was just one switch. If I were to add replace multiple devices at once, this could be a bit more annoying to remove. It would be helpful to be able to filter by removed entities, so I can find them all quickly and delete them. Continuing that train of thought, it would also be useful to have check boxes next to those lines, and perhaps do a select all type of thing so they could be deleted in one mouse click.
@toggledbits I have finally finished up the SSL using Let's Encrypt and am getting this from my local browser:
f3d0ac22-272e-46c1-b7e3-57b08bdd1555-image.png
21c04fe1-1760-4ce6-a4de-2285d3349940-image.png
3a7022db-5add-40a1-b9a2-0c0b97fa211b-image.png
I know you said in the docs that using a self-signed could lead to this but this is LE.
Hi @toggledbits,
I don't know if I'm the only one, so I'm reporting here first instead of opening a bug.
Basically, with the latest 2-3 updates of Reactor and MQTTController, after a restart previous statuses are lost (for both Virtual and MQTT entities), until they're restored.
It's particularly annoying for Virtual Entities, because I have to set them all over again (I've coded some defaults at startup if the values are empty, but sometimes these are not the correct values before the update).
Not easy to reproduce, and logs are gone, but the first time I tought it was me hallucinating, the second one didn't bother too much, after the third I realized it's something not coming from me.
the behavior could be seen in this screenshot:
1c007fc2-4dbc-4476-8dca-e5aa111e4642-image.png
Any hint is appreciated.
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.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:
Contrib MQTT templates for Reactor. Contribute to dbochicchio/reactor-mqtt-contrib development by creating an account on GitHub.
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 🙂
Good morning,
So Home Assistant decided to change the default weather home format that I've been using for the past year and a half. I had two Global Expressions set up to pull the high and low temp forecast for the day. Now it's pulling null values.
094c9205-cc9e-4fcc-ac4f-1bf54acea299-image.png
In the dev tools, it now uses a new service (Weather. get forecasts), plural, where the old Weather.get forecast is depreciated and now longer functions.
8c7a1fcc-dd3f-4268-a0b7-29d542f86adc-image.png
It shows a templow field, and a temperature field, which I presume is the forecast high.
When I head back over to MSR, I'm having a hard time finding those values in the Entities tab.
c5ea1048-a72e-4647-9c50-9d0c5fd20767-image.png
wx.asoftime=null wx.ceiling=null wx.ceiling_unit=null wx.cloud_cover=null wx.condition_code=null wx.description="partlycloudy" wx.feels_like=null wx.humidity=57 wx.humidity_unit="%" wx.icon=null wx.location=null wx.precipitation_1hr=null wx.precipitation_24hr=null wx.precipitation_other=null wx.precipitation_type=null wx.precipitation_unit="in" wx.pressure=30 wx.pressure_unit="inHg" wx.temperature=55 wx.temperature_unit="°F" wx.visibility=null wx.visibility_unit="mi" wx.wind_compass=210.3 wx.wind_conditions=null wx.wind_direction="SSW" wx.wind_gust=null wx.wind_speed=6.28 wx.wind_speed_unit="mph" x_hass.domain="weather" x_hass.entity_id="weather.forecast_home" x_hass.services=["weather"] x_hass.state="partlycloudy" x_hass_attr.attribution="Weather forecast from met.no, delivered by the Norwegian Meteorological Institute." x_hass_attr.cloud_coverage=85.9 x_hass_attr.dew_point=40 x_hass_attr.friendly_name="New Windsor Weather" x_hass_attr.humidity=57 x_hass_attr.precipitation_unit="in" x_hass_attr.pressure=30 x_hass_attr.pressure_unit="inHg" x_hass_attr.supported_features=3 x_hass_attr.temperature=55 x_hass_attr.temperature_unit="°F" x_hass_attr.visibility_unit="mi" x_hass_attr.wind_bearing=210.3 x_hass_attr.wind_speed=6.28 x_hass_attr.wind_speed_unit="mph"There is a x_hass_attr.temperature, but that appears to be the current temperature, not the high that I found on the dev tools screenshot.
Any ideas?
Running:
Core
2024.4.3
Supervisor
2024.04.0
Operating System
12.2
Frontend
20240404.2
MSR: latest-24057-e9add9f5
Hey Patrick, I recently have been noticing that MSR has been acting up ie. it's been needing restarts and has been slow. I began trouble shooting by looking at the logs and have noticed the following errors for a lot of entities. I thought maybe a simple reboot of RPi was needed and I kept seeing the same errors in the system logs. I am oddly enough not seeing these same errors in the MSR logs. Where things started getting weird is whenever I rebooted MSR it wouldn't come back online .I would have to restart the RPi then it would come back online. I just restarted MSR again to capture logs and it restarted fine, so I guess its good for now? I think this is more or so a corrupted SD card issue rather a MSR issue but well being troubleshooting from here. The SD card is about 1-2 years old.
Apologies if this post is everywhere, I cannot consistently recreate any oddities that are happening, that's what is leading me to believe my SD is going bad.
PS: If anyone knows how to diagnose a corrupt SD card please chime in.
MSR latest-24057-e9add9f5
Home Assistant 2024.4.3
Raspberry Pi 3b+
This system has been running flawlessly year after year for the time changes twice a year literally since MSR came out so I was caught off-guard when this happened this morning.
Time in MSR browser is EST, time on RPi is local time (DST).
76ed5313-b9b9-46d4-b0f9-462c40e99750-image.png
195e61c5-58a7-4453-b96a-18cebae75550-image.png
I've rebooted the RPi I've restarted MSR after double-checking the time on the RPi. Used a completely different browser to eliminate any caching concerns. Double-checked MSR reactor.yamla5f23151-d691-4343-8499-8e77a55528e5-image.png
What am I missing here @toggledbits ?
Hi,
For the standard capabilities MSR sends both a value record and a units record to InfluxDB. The latter I would like not to send as they are not really any use for me and it will reduce the number of records send to my InfluxDB.
Is there a quick way to do this with a filter_entities line like: *>units?
Or do I have to update all capabilities to read like this:
power_sensor:
attributes:
value: true
Cheers Rene
I'm trying to replicate this
wallbox_set_number.PNG
into a MQTT entity where I could set a number with a min and max value.
I can't find a standard capability that fits or any documentation on local MQTT capabilities and the only post on the forum mentioning local MQTT capabilities is this post, is it even possible in current release?
My trial and error work in local_mqtt_capabilities.yaml isn't much to show as it's just a copy of mqtt_capabilities.yaml with changed names and then I got stuck.
Any guidance, examples, documentation, future feature request or denial would be much appreciated, thanks!
Reactor 24057-e9add9f5 bare metal
MQTTController 24050
Hi guys,
I've recently bought a new Govee outdoor permanent lights set, and I love it. WAF is pretty high, and the product is good quality. I hope to never run lights in the front of the house.
This new addition has found me searching for something to control these lights, locally. Govee has officials remote and LAN APIs and Home Assistant has it supported, but some undocumented stuff that's integrated into an Homebridge plugin that seems very promising. Without this plugin, my playlist is orchestrated via the cloud and that makes zero sense.
In the past I got some inspiration from plugins running on other platforms and Homebridge seems one of the most active. I could map its devices via HomeKit-local on HA, but I've decommissioned Homebridge years ago when we settled to Alexa (and I want to stay simple), so I had an idea: why get inspiration and rewrite things, when you could write an Homebridge adapter that could load any Homebridge plugin and run them natively under Reactor (MSR)?
I'm not sure if that's viable or made any sense, so I'm posting here to get feedback, encouragement and your thoughts. Anyone could be potentially interested in such a thing?
Hi- looking for a hint in where to start. My goal is to set a PIN code in a zwave kwikset lock triggered in a rule.
The device isn’t exposing methods to help. The x-hass.call-service looks promising, but what would the service name be?
Plan b would be send the zwave controller a config command- I don’t see any way to explicitly send a command through JS Zwave in my environment.
Running reactor bare metal. JS Zwave is running as an add on inside HASS OS.
Any tips are appreciated.
Hey crew, I'm trying to use MSR to control the RGB values of a Z-Wave bulb in Home Assistant.
Problem I'm running into - I would like to use 'rgb_color.set' to control this, but it doesn't work, instead it always passes the values '255,255,255' to HA no matter what values I enter within MSR.
More notes and examples below - I'm wondering if this is a formatting issue that I'm missing? Thanks for any help!
NOTES FROM TROUBLESHOOTING:
'rgb_color.set_rgb' works successfully, which seems strange. You'd think they would both be affected I've tried a couple different formats, like adding quotes, adding/removing spaces between the RGB values, nothing has fixed it.EXAMPLES:
When I use 'rgb_color.set_rgb', the values successfully carry over to Home Assistant:
f0f4befc-a642-428e-8923-e5f856ca7e2b-image.png
0af0a4f8-50b9-4100-b1e8-52a0de4cbcbb-image.png
But when I use 'rgb_color.set', the values DO NOT successfully carry over to Home Assistant:
9e2d7004-8085-4b70-bb3e-45614b7260a0-image.png 0d630228-c74b-4db8-89bd-2572a08608a3-image.png
DETAILS:
Bulb is LZW42 by Inovelli MSR version: stable-23242-5ee8e1d4HA DETAILS
Core 2024.2.5 Supervisor 2024.02.1 Operating System 12.0Hi,
I’m running MSR in a docker container on my Synology Nas. The container is automatically updated using watchtower weekly.
It was working. Now, after the update, Reactor webpage is able to load, and all indications on the webpage suggests that it is working fine. However, the updated statuses from Home Assistant and Vera are not being detected.
The container logs show the following error
Reactor stable-23344-5aad7754 app 23344 configuration from /var/reactor/config NODE_PATH /opt/reactor:/opt/reactor/node_modules [stable-23344]2024-02-28T21:57:49.516Z <app:null> Reactor build stable-23344-5aad7754 starting on v16.15.1 [stable-23344]2024-02-28T21:57:49.517Z <app:null> Process ID 1 user/group 0/0; docker; platform linux/x64 #69057 SMP Fri Jan 12 17:02:28 CST 2024; locale (undefined) [stable-23344]2024-02-28T21:57:49.517Z <app:null> Basedir /opt/reactor; data in /var/reactor/storage [stable-23344]2024-02-28T21:57:49.517Z <app:null> NODE_PATH=/opt/reactor:/opt/reactor/node_modules [stable-23344]2024-02-28T21:57:49.696Z <Structure:null> Module Structure v23172 [stable-23344]2024-02-28T21:57:49.698Z <Capabilities:null> Module Capabilities v23331 [stable-23344]2024-02-28T21:57:49.780Z <Plugin:null> Module Plugin v22300 [stable-23344]2024-02-28T21:57:49.790Z <TimerBroker:null> Module TimerBroker v22283 [stable-23344]2024-02-28T21:57:49.794Z <Entity:null> Module Entity v22353 [stable-23344]2024-02-28T21:57:49.866Z <Controller:null> Module Controller v23069 [stable-23344]2024-02-28T21:57:50.030Z <default:null> Module Ruleset v22293 [stable-23344]2024-02-28T21:57:50.031Z <default:null> Module Rulesets v22146 [stable-23344]2024-02-28T21:57:50.066Z <GlobalExpression:null> Module GlobalExpression v23211 [stable-23344]2024-02-28T21:57:50.581Z <Predicate:null> Module Predicate v23093 [stable-23344]2024-02-28T21:57:50.595Z <AlertManager:null> Module AlertManager v22283 [stable-23344]2024-02-28T21:57:50.600Z <Rule:null> Module Rule v23107 [stable-23344]2024-02-28T21:57:50.614Z <GlobalReaction:null> Module GlobalReaction v22324 [stable-23344]2024-02-28T21:57:50.617Z <Engine:null> Module Engine v23339 [stable-23344]2024-02-28T21:57:50.635Z <httpapi:null> Module httpapi v23058 [stable-23344]2024-02-28T21:57:50.680Z <wsapi:null> Module wsapi v23172 [stable-23344]2024-02-28T21:57:50.789Z <TaskQueue:null> Module TaskQueue 21351 [stable-23344]2024-02-28T21:57:50.790Z <VeraController:null> Module VeraController v23109 [stable-23344]2024-02-28T21:57:50.971Z <HassController:null> Module HassController v23344 [stable-23344]2024-02-28T21:57:51.716Z <DynamicGroupController:null> Module DynamicGroupController v22313 [stable-23344]2024-02-28T21:57:52.253Z <SystemController:null> Module SystemController v23331 i18n: missing en-US language string: The version of nodejs you are using ({0}) is now end-of-life, and so is deprecated for use with Reactor. Please upgrade nodejs to {2}.{3} or higher as soon as possible; the current LTS version is recommended. Releases of Reactor produced after {1} will not run under this version of nodejs at all. [stable-23344]2024-02-28T21:57:52.256Z <Controller:CRIT> SyntaxError: Unexpected end of JSON input [-] SyntaxError: Unexpected end of JSON input at JSON.parse (<anonymous>) at /opt/reactor/server/lib/Controller.js:464:51 at Array.forEach (<anonymous>) at SystemController._restoreEntities (/opt/reactor/server/lib/Controller.js:458:36) at new Controller (/opt/reactor/server/lib/Controller.js:45:42) at new SystemController (/opt/reactor/server/lib/SystemController.js:29:9) at /opt/reactor/server/lib/Controller.js:101:37 Trace: The version of nodejs you are using ({0}) is now end-of-life, and so is deprecated for use with Reactor. Please upgrade nodejs to {2}.{3} or higher as soon as possible; the current LTS version is recommended. Releases of Reactor produced after {1} will not run under this version of nodejs at all. at _T (/opt/reactor/server/lib/i18n.js:468:37) at AlertManager.addAlert (/opt/reactor/server/lib/AlertManager.js:126:25) at /opt/reactor/app.js:381:140 [stable-23344]2024-02-28T21:57:59.313Z <app:CRIT> SyntaxError: Unexpected end of JSON input [-] SyntaxError: Unexpected end of JSON input at JSON.parse (<anonymous>) at IndividualFileStrategy.getDataObject (/opt/reactor/server/lib/IndividualFileStrategy.js:114:54) at DelayWriteCacheStrategy.getDataObject (/opt/reactor/server/lib/DelayWriteCacheStrategy.js:87:50) at Container.getDataObject (/opt/reactor/server/lib/Container.js:69:67) at Function.getInstance (/opt/reactor/server/lib/Data.js:37:179) at Rule.getRuleStates (/opt/reactor/server/lib/Rule.js:507:100) at Rule.getConditionState (/opt/reactor/server/lib/Rule.js:538:47) at new Rule (/opt/reactor/server/lib/Rule.js:378:47) at Function.getInstance (/opt/reactor/server/lib/Rule.js:387:36) at /opt/reactor/server/lib/Engine.js:263:53 i18n: missing en-US language string: HomeAssistant on {0:q} may be an unsupported version. The reported version ({1}) has not been certified/tested with this version of Reactor and may cause errors. You must either modify your HomeAssistant install, or see if an update to Reactor has been made available. Trace: HomeAssistant on {0:q} may be an unsupported version. The reported version ({1}) has not been certified/tested with this version of Reactor and may cause errors. You must either modify your HomeAssistant install, or see if an update to Reactor has been made available. at _T (/opt/reactor/server/lib/i18n.js:468:37) at AlertManager.addAlert (/opt/reactor/server/lib/AlertManager.js:126:25) at HassController.sendWarning (/opt/reactor/server/lib/Controller.js:197:36) at /opt/reactor/server/lib/HassController.js:1117:370 at processTicksAndRejections (node:internal/process/task_queues:96:5)I’ve tried using “latest-amd64” and it does not work either. The logs show similar json input error.
Reactor latest-24057-e9add9f5 app 24052 configuration from /var/reactor/config NODE_PATH /opt/reactor:/opt/reactor/node_modules [latest-24057]2024-02-28T22:27:30.466Z <app:null> Reactor build latest-24057-e9add9f5 starting on v20.10.0 [latest-24057]2024-02-28T22:27:30.522Z <app:null> Process ID 1 user/group 0/0; docker; platform linux/x64 #69057 SMP Fri Jan 12 17:02:28 CST 2024; locale (undefined) [latest-24057]2024-02-28T22:27:30.522Z <app:null> Basedir /opt/reactor; data in /var/reactor/storage [latest-24057]2024-02-28T22:27:30.522Z <app:null> NODE_PATH=/opt/reactor:/opt/reactor/node_modules [latest-24057]2024-02-28T22:27:30.667Z <Structure:null> Module Structure v23172 [latest-24057]2024-02-28T22:27:30.673Z <Capabilities:null> Module Capabilities v23331 [latest-24057]2024-02-28T22:27:30.780Z <Plugin:null> Module Plugin v22300 [latest-24057]2024-02-28T22:27:30.787Z <TimerBroker:null> Module TimerBroker v22283 [latest-24057]2024-02-28T22:27:30.791Z <Entity:null> Module Entity v22353 [latest-24057]2024-02-28T22:27:30.796Z <Controller:null> Module Controller v23069 [latest-24057]2024-02-28T22:27:30.811Z <default:null> Module Ruleset v22293 [latest-24057]2024-02-28T22:27:30.811Z <default:null> Module Rulesets v22146 [latest-24057]2024-02-28T22:27:30.821Z <GlobalExpression:null> Module GlobalExpression v23211 [latest-24057]2024-02-28T22:27:30.890Z <Predicate:null> Module Predicate v23093 [latest-24057]2024-02-28T22:27:30.958Z <AlertManager:null> Module AlertManager v22283 [latest-24057]2024-02-28T22:27:31.027Z <Rule:null> Module Rule v24057 [latest-24057]2024-02-28T22:27:31.033Z <GlobalReaction:null> Module GlobalReaction v22324 [latest-24057]2024-02-28T22:27:31.036Z <Engine:null> Module Engine v24023 [latest-24057]2024-02-28T22:27:31.042Z <httpapi:null> Module httpapi v24057 [latest-24057]2024-02-28T22:27:31.216Z <wsapi:null> Module wsapi v24057 [latest-24057]2024-02-28T22:27:31.296Z <TaskQueue:null> Module TaskQueue 21351 [latest-24057]2024-02-28T22:27:31.297Z <VeraController:null> Module VeraController v24050 [latest-24057]2024-02-28T22:27:31.365Z <HassController:null> Module HassController v24048 [latest-24057]2024-02-28T22:27:31.659Z <DynamicGroupController:null> Module DynamicGroupController v22313 [latest-24057]2024-02-28T22:27:31.668Z <SystemController:null> Module SystemController v23331 [latest-24057]2024-02-28T22:27:31.673Z <Controller:CRIT> SyntaxError: Unexpected end of JSON input [-] SyntaxError: Unexpected end of JSON input at JSON.parse (<anonymous>) at /opt/reactor/server/lib/Controller.js:464:51 at Array.forEach (<anonymous>) at SystemController._restoreEntities (/opt/reactor/server/lib/Controller.js:458:36) at new Controller (/opt/reactor/server/lib/Controller.js:45:43) at new SystemController (/opt/reactor/server/lib/SystemController.js:237:9) at /opt/reactor/server/lib/Controller.js:101:37 [latest-24057]2024-02-28T22:27:38.845Z <app:CRIT> SyntaxError: Unexpected end of JSON input [-] SyntaxError: Unexpected end of JSON input at JSON.parse (<anonymous>) at IndividualFileStrategy.getDataObject (/opt/reactor/server/lib/IndividualFileStrategy.js:51:45) at DelayWriteCacheStrategy.getDataObject (/opt/reactor/server/lib/DelayWriteCacheStrategy.js:89:49) at Container.getDataObject (/opt/reactor/server/lib/Container.js:69:65) at Data.getInstance (/opt/reactor/server/lib/Data.js:45:179) at Rule.getRuleStates (/opt/reactor/server/lib/Rule.js:515:101) at Rule.getConditionState (/opt/reactor/server/lib/Rule.js:546:47) at new Rule (/opt/reactor/server/lib/Rule.js:371:47) at Rule.getInstance (/opt/reactor/server/lib/Rule.js:380:36) at /opt/reactor/server/lib/Engine.js:828:53 i18n: missing en-US language string: HomeAssistant on {0:q} may be an unsupported version. The reported version ({1}) has not been certified/tested with this version of Reactor and may cause errors. You must either modify your HomeAssistant install, or see if an update to Reactor has been made available. Trace: HomeAssistant on {0:q} may be an unsupported version. The reported version ({1}) has not been certified/tested with this version of Reactor and may cause errors. You must either modify your HomeAssistant install, or see if an update to Reactor has been made available. at _T (/opt/reactor/server/lib/i18n.js:614:37) at AlertManager.addAlert (/opt/reactor/server/lib/AlertManager.js:128:25) at HassController.sendWarning (/opt/reactor/server/lib/Controller.js:197:36) at /opt/reactor/server/lib/HassController.js:1133:374 at process.processTicksAndRejections (node:internal/process/task_queues:95:5)How do I fix this?
Noticed right away last night at closing time that the open/close had become inverted with the update to v23326.
It wasn't an awful bit of lift to change all Reactions to reflect the change but it was jarring initially when everything flipped.
Are there release notes on that version, @toggledbits ?
Reactor (Multi-System/Multi-Hub) Announcements
-
Build 22023
Bare-metal users: you must remove any existing
package-lock.json
file from your Reactor install directory, and then runnpm i --no-save --omit dev
to update package dependencies. The previously reported vulnerability warning should no longer be present.Docker users on Raspbian Buster (Raspberry Pi): Reactor images since 22021 require that you install an OS patch to run the Reactor image in a container. See the install instructions for the steps to install it.
- PR 0000296: Fixed rule throttling caused by constraints subscribing for events when they should not.
- PR 0000297: Duplicate report for 0000296.
- PR 0000298: Global expressions not updating correctly, not triggering rules correctly.
- Engine: New and very experimental Repeat While action (a form of group), repeats as long as its conditions are met. The group must have at least one condition or it will not run at all. The repeat will stop if either (a) the conditions result in false or null, or (b) if it's in a rule-based reaction, the contra-reaction is started by a change of rule state. It is quite possible to make reaction groups that never stop, so be careful with your logic here.
-
Build 22025
Bare-metal users: updating package dependencies when updating Reactor is recommended. To update packages, you must first remove any existing
package-lock.json
file from your Reactor install directory, and then runnpm i --no-save --omit dev
.**Docker users on Raspbian Buster (Raspberry Pi): Reactor images since 22021 require that you install an OS patch to run the Reactor image in a container. See the install instructions for the steps to install it.
- VeraController: allow arrays for
filter_entity
andaccept_entity
to be consistent with other similar applications. - Fix an issue with setting a Rule's timebase before evaluation that may affect some rule-based expressions. Likely related to PR 0000301.
- VeraController: allow arrays for
-
Build 22028
Bare-metal users: updating package dependencies when updating Reactor is recommended. To update packages, you must first remove any existing
package-lock.json
file from your Reactor install directory, and then runnpm i --no-save --omit dev
.Docker users on Raspbian Buster (Raspberry Pi): Reactor images since 22021 require that you install an OS patch to run the Reactor image in a container. See the install instructions for the steps to install it.
- PR 0000301: Fix excess sensitivity to apparently unrelated devices in some conditions. I'm leaving this PR open; I think I know why this happened, and for my system it's working great, but I want to make sure I've covered all the bases, and because the fix was pretty aggressive, didn't inject anything new.
- Fix exception trying to subscribe to non-Observer in Variable Value condition.
- Logger: Allow
maxsize: 0
in log stream configuration for no log rotation at all. - Fix condition value seen on Date/Time conditions in rule status display (cosmetic).
- HubitatController: implement Reactor
energy_sensor
capability; replacesx_hubitat_energymeter
, which is now deprecated.
-
MQTTController Build 22029 -- download
Please run the install script after unpacking the update.
- Echo function now publishes rule states and global variables. Please see the docs for more information.
-
Build 22044
- PR 0000306: Certain condition options not being saved for rule-based constraints.
- PR 0000305: Copying rule expression can renumber expression in source rule.
- PR 0000302: Reaction delay "from start" working same as "from this point".
- InfluxDB: Support for more extensive control of written measurements, including name and type modification; see docs
- Reactions: Fix an issue where missing device in a rule reaction does not flag trouble on the rule.
- Three new capabilities:
valve
,scene_activation
andbattery_maintenance
. These will be fully integrated with eligible Controllers and Entities in a future release. - Reactions: An error in a special form on the Comment action is fixed (simple notification).
- Expressions: New expression
case
statement; see docs - Expressions: Fix sort in
median()
function. - Expressions: An error in the
fileRead()
function has been fixed.
-
Build 22049
NOTE: Bare-metal users should run
npm i --no-save --omit-dev
to update packages for this release.- Update lexpjs for new
pad()
function - PR 0000307: Nested group would repeat interior actions outside group (reaction UI)
- Update to latest minor revisions of jquery-ui, bootstrap, popper. This now silences the long-endured warning when doing
npm i --no-save --omit dev
- Update lexpjs for new
-
Build 22053
BREAKING CHANGE/FIX This version contains what may be a breaking change for some users. Some actions offer lists of predefined values (e.g.
media_source.set
offershdmi1
,hdmi2
, etc.). A bug in the Reaction editor was causing a numeric index value to be stored instead of the string value (i.e. it would store 0 rather thanhdmi1
). The bug is now fixed, but any action like this previously created/edited may have had an invalid value stored in the rule or reaction to which it belongs, and this cannot be reliably automatically fixed, it generally requires user review. Most likely, these actions didn't work well for you anyway, because the erroneous numeric value would likely have given invalid results/behaviors/errors when attempted, and we just haven't noticed until now (they are fairly rarely-used actions, on the whole). The specific actions affected are:av_repeat.set_repeat
,muting.set
,media_source.set
,hvac_control.set_mode
,hvac_blower_unit.set_mode
,hvac_blower_swing.set_mode
,hvac_humidifier.set_moded
,hvac_dehumidifier.set_mode
,zwave_device.set_config
. Hopefully this list helps you narrow down what, if any, of your rules/reactions may be affected. Just take the rule/reaction into the editor, fix the new correct value and save.- PR 0000308: Fix issue where delay action with substitition in delay may self-replace evaluated value in stored object.
- UI: Autogrow fields get more room for datalist controls.
- UI: Fix issue with some value lists incorrectly showing and storing index values rather than actual listed value; see BREAKING notice above.
- Bless Hass to 2022.2.9
-
Build 22067
Bare-metal Users: Please run
npm i --no-save --omit dev
when installing this update.- PR 0000309: Exception while evaluating global reaction predicate (conditional group).
- HubitatController: Attempt to eliminate additional query to fetch full device data when a device-change event is received from the hub. Please see the documentation for cautions.
- UI will now highlight deprecated capabilities, attributes and actions when used.
- Bless Hass to 2022.3.3
-
Just an FYI for everyone, I'll be on holiday from tomorrow March 10 through March 19, and I'm leaving the laptop on the shelf at home for this one. I can answer emails and forum posts, but I won't likely be checking more than once a day, and I won't doing builds or any bug fixing while away. See you all on the other side!
-
Build 22069
Note: Only users of Hubitat hubs need to upgrade to this version, and then only if you previously upgraded to 22067.
- HubitatController: Fix a possible loss of attribute change across restarts of the hub (that is, when a value changes during a Hubitat restart but Reactor is not restarted).
-
Build 22080
- PR 0000311: Vera Scene controller entities missing attributes in new and exisitng rules
- PR 0000310: Dependent global variable may not update after editing parent.
- HubitatController: Because the HE events websocket passes all values as strings, the new fast-update process introduced in 22067 would change (for example) a previously-numeric attribute value to a string when updated by the hub. While this doesn't generally bother conditions or expressions, the type change affects InfluxFeed because InfluxDB cannot digest the type change. The data type declared by the hub during inventory is now stored and used to remap the events feed values to keep the data types consistent on the attributes. It must be noted, however, that the data types of extension attributes (
x_hubname_...
) are driven by the hub, and are therefore not guaranteed by Reactor (types are guaranteed for Reactor-defined capabilities, e.g.dimming
,value_sensor
, etc.). Users exporting extension attributes into InfluxDB are advised to always use explicit type setting for those attributes in their InfluxFeed configuration. This advisory has been added to the documentation for InfluxFeed. - HubitatController: An inconsistency in the (HE) attribute names between their MediaPlayer and MusicPlayer capabilities with respect to transport state is now handled correctly, so that Reactor's native
av_transport.state
attribute shows a correct value regardless of which the device uses. - SystemController: Will now issue system alerts unconditionally when disk space becomes critical (unless disk space monitoring has been disabled by user configuration), in addition to the (previously available) values and flags on the
reactor_system>system
(Reactor System) entity. It's also probably a good idea to add notifications (i.e. in your own rules) for such conditions raised by the system entity, if the user is not regularly looking at the Reactor UI. See the documentation for SystemController. - SystemController: A
dst
(boolean) attribute has been added to thereactor_system>sun
(Sun Information) entity; it will be true when Daylight Saving Time is in effect, false otherwise. - HassController: Fix
cover
capability handling on non-positionable covers (e.g. garage doors). - Dashboard: New display for cover entities.
-
Build 22118 (latest and zwavejs) — PLEASE READ ALL ADVISORIES BELOW
NODEJS VERSION REQUIREMENT: As previously announced, nodejs versions below 16 are no longer supported as of 2022-Mar-31. Bare-metal users (only) will need to upgrade their nodejs to version 16 (the current LTS version) or higher. Bare-metal RPi users can use the install script to do this. Docker image users needn't concern themselves; the image is built with an approved version of nodejs.
NOTE: This release includes changes to package dependencies. Bare-metal users please run
npm install --no-save --omit dev
to resolve.IMPORTANT: This update includes some significant enhancements for entity tracking. On your first startup after upgrading, you will get a lot of alerts about new devices being discovered (i.e. existing devices are being noted as new) as the enhanced tracking learns what is "normal" for your system. This is expected behavior for this version on its first startup. Just clear the alerts and go on about your day. After that, you should only receive notices when new devices are added to a hub, or new hubs are configured in Reactor.
Remember to hard-refresh all browsers after upgrading and restarting.
- PR 0000316: Variable Value condition with substitution in operand may replace expression with value in saved rule.
- PR 0000315: Improve alert message when a Rule-based reaction fails.
- PR 0000314: Fix "self-subscribe" exceptions logged after creating new Rule with local expressions and a Variable Value condition (exceptions clear after restart of Reactor).
- PR 0000312: Expressions
getEntity()
helper not listing or updating attributes correctly (fixed). - Raspberry Pi Install Script: Support for 64-bit installation on Raspbian Bullseye.
- Raspberry Pi Install Script: Can now be used to upgrade nodejs with a local (user-specific) install.
- UI: Faster core startup brings up the UI more quickly, and does not wait for controller startups, so a delay in a controller becoming ready (e.g. its associated hub is offline) will no longer delay the UI being available.
- UI: You can now add an SSL/TLS certificate and have the UI and API served over HTTPS (see How-To in documentation).
- New actions in
sys_system
capability to tell a Controller instance to purge unused entities (i.e. that no longer exist on the hub but are still present in Reactor), delete an entity (from Reactor only, not from the hub/mesh/etc.), and rename an entity (in Reactor, not at the hub/mesh/etc.). - UI/Entity Picker: You can now move the entity picker by dragging its title bar.
- UI/Entity Picker: The name search field will now also match on entity IDs.
- UI/Reaction editor: Changing from a group or while to another reaction type while editing would leave the conditions behind (they should be removed); fixed.
- Expressions: lexpjs updated, adds
yday
(day of year),isoweek
(ISO-8601 week number) anddst
(boolean) todateparts()
function result. - Status: Controller Status widget now sorts down/failed controllers first.
- Docs: Added How-Tos for serving media files from Reactor's built-in web server and set up HTTPS for the UI.
- HassController: Bless Hass version 2022.4.7.
REMINDER: If you need to post an issue related to this (or any) version, please follow the posting guidelines.
-
Build 22123 (latest and zwavejs)
This version primarily addresses a formatting problem in error messages when certain conditions (triggers and constraints) take an error (e.g. an Entity Attribute condition references an entity that no longer exists). This is cosmetic/display only and has no operational impact, but I thought it important to make a new release for the fix because of the difficulty of troubleshooting conditions with the broken messages.
If you are upgrading to this version from any version earlier than 22118, please read the release notes for 22118 in the prior post above.
-
Build 22136
NEW: This version adds the availability of 64-bit ARM docker images. This is recommended for Raspberry Pi 4 users on Raspbian Bullseye (only; Raspbian Buster users should continue to use the armv7l image). The 64-bit ARM images also work (and are tested) on the NVIDIA Jetson Nano (2GB model tested, but should work for all).
NOTE TO ALL USERS, ESP. CURRENT DOCKER USERS: Starting June 1, 2022, the naming of all deployed packages and docker images will be changed to remove the "raspbian" or "generic" component of the name. For example. the
latest-raspbian-armv7l
docker image will be named simplylatest-armv7l
, and thelatest-generic-amd64
ZIP archive will be namedlatest-amd64
. You will need to update your version upgrade procedures accordingly; users ofdocker-compose
will need to make this change in their compose files.- Additional localization updates;
- HassController: Bless Hass to 2022.5.4
-
Build 22140
NOTE TO DOCKER CONTAINER USERS: Starting with the first release in June 2022, docker images will be named only with the release branch and architecture. That is, the current
latest-generic-amd64
will becomelatest-amd64
, andlatest-raspbian-armv7l
will becomelatest-armv7l
. This will require changes to your upgrade procedure, or if you are using docker-compose, theimage
value in your compose file.- Additional localization updates;
- HassCOntroller: Bless Hass to 2022.5.5
-
Build 22142 (latest, zwavejs)
- PR 0000321: HTTP API
perform
action does not send response when it succeeds (clients then time out waiting for the response that never comes). - PR 0000320: API Docs: Fix
entity
API examples.
- PR 0000321: HTTP API
-
Build 22149 (latest, zwavejs)
- PR 0000322: EzloController: provide mapping for Xiaomi Mini Switch (a single-button remote).
- Rule: make sure clear of trouble state (on startup) is saved if necessary (so UI updates properly without need to refresh).
- VeraController: Hack for variables named
sl_
, which are the special Luup state variables that always send updates/call watches even when set to the same value they already have (all other state variables in Vera/Luup do not behave this way, they only trigger events when their values change). In particular, thesesl_
states are changed when lock codes on locks are entered, or buttons on scene controllers are pressed. For these uses, it is important that a repeated use of the same code or button signals an additional event, so Vera/Luup's uses these specialsl_
states for those. VeraController now inserts an extra_updated
attribute of the same name that can be used with the changes operator to detect when thesl_
states are updated. Refer to this forum post for more information.
-
Build 22168 (latest, zwavejs, stable)
REMINDER: As previously announced, all docker images are now named with the release branch and target architecture only. The
latest
branch docker image for all x86_64/amd64 systems is now namedlatest-amd64
(was previouslylatest-generic-amd64
). Thelatest
branch image for armv7l, which includes Raspberry Pi systems on Raspbian Buster, is now namedlatest-armv7l
(was previouslylatest-raspbian-armv7l
). Please adjust your upgrade procedures and, if used, docker-compose or Portainer configurations accordingly.- NUTController (for Network UPS Tools) is now available as an installable extra.
- Documentation updates to reflect updated installation archive and docker image names.
-
Build 22178 (latest, zwavejs)
NOTE: I will be on holiday for most of the month of July, and with limited Internet access. During this time, I will not be able to provide software support, fixes or builds, and likely will not have much time or means to read and answer questions. Please step up and provide support to your peers if questions come up!
- HassController: Set null state for switches and sensors when Hass reports them unavailable.
- HassController: Bless Hass to 2022.6.7.
- Docs: Improve details in Synology/Docker installation.
-
Build 22179 (latest, zwavejs)
NOTE: I will be on holiday for most of the month of July, and with limited Internet access. During this time, I will not be able to provide software support, fixes or builds, and likely will not have much time or means to read and answer questions. Please step up and provide support to your peers if questions come up!
- HassController: Fix an issue that may randomly affect/disable assignment of primary attributes (since 22118).
- Fix a problem in after...within (time-restricted) sequence conditions.