Multi-System Reactor Developer Preview AVAILABLE
-
Build 21085:
- 0000149 HTTP Request action now has an additional checkbox to allow SSL connections to endpoints with invalid/self-signed certificates.
- 0000148 Inconsistency in EACH expression results
Tomorrow (Saturday 3/27) is an house/family IT day for me, so barring any serious problems that need an urgent fix, there will be no build (21086) tomorrow.
-
Build 21087:
- 0000151 "Sustained for" condition restarts count early
- 0000152 Constraints may case reset reaction to run unexpectedly
-
toggledbitswrote on Mar 30, 2021, 9:58 PM last edited by toggledbits Mar 30, 2021, 6:16 PM
Build 21089:
- 0000153 Problem with magnitude comparisons when one operand was a string not containing a number
The SystemController's reactorsystem>system entity now reports disk space. The default is to report for the volume(s) on which Reactor is installed, but it's configurable. Refer to the docs. Work is continuing on alerts and status.
You will need to run
npm update
in the reactor directory after unpacking the archive! (This does not apply to Docker users; your updates are included in the image.) -
toggledbitswrote on Mar 31, 2021, 11:04 PM last edited by toggledbits Mar 31, 2021, 7:25 PM
Build 21090:
- 0000155 Issue with second (and beyond) Vera controllers not getting x_vera_sys capability extended.
- 0000154 Improve dynamic updates of values in Rule editor, and extend to Expression and Rule conditions.
This version also previews the Status display still under development, and the Alerts system (which currently only provides alerts for controller online/offline and rule triggers and constraints; there are no alerts generated for problems with reactions or other subsystems yet). Since this is feature preview, discussion here is fine, but please don't open PRs for the Status page just yet.
-
Build 21091:
- 0000157 POST data not saved when editing reaction
- 0000156 Pulse mode output break has no countdown in rule status UI
Additional alerts added on the reaction side. Additional methods added to HTTP Request action. Minor UI tweaks and fixes ongoing.
Add Note -
toggledbitswrote on Apr 2, 2021, 10:44 PM last edited by toggledbits Apr 2, 2021, 6:45 PM
Build 21092:
No PRs addressed today; several remain open with fixes in 21091 or earlier, waiting for OPs to verify.
Ongoing work on status and chasing reports that didn't end up as PRs today. I think everything under discussion is understood, if not yet completely resolved. A new notifier type "Alert" has been added, so you can add your own alerts to the system Status from your reactions (see below). Work ongoing getting more alerts where needed.
To configure the "Alert" notification type, see the "Alert" configuration addition (one line) in
dist-config/notification.yaml
or just add this line (the notification type currently has no configuration options):notification: Alert: {} <--- add this line # SMTP (Simple Mail Transfer Protocol, for sending email) SMTP: # et cetera
-
Build 21093:
No PRs.
This release primarily addresses a failure on Hass caused by a breaking change in their WebSocket API between versions 2020.12.13 and 2021.3.4.
-
Build 21095:
No PRs.
But... this build addresses an issue on Hubitat that created a problem setting modes, updates lexpjs with some minor fixes. I was going to release a fix for 0000133 (need to save rule after creating expression to be able to use expression in condition or action) as well, but the changes snowballed into a bunch of other code cleanups and tweaks and I don't feel good about releasing them yet.
Also, with respect to the "Reset Latched" action (which is not implemented in MSR as an explicit action)... I'm opening that for debate, but if there are no compelling arguments for, I'm going to close the two related PRs (39 and 160) and move on.
-
Build 21096:
- 0000133 Must save rule to get newly-created rule expression to appear in "Expression Value" condition or "Set Variable" action pickers.
This version also has the first attempt at reaction status. You'd better have good eyes; most reactions that don't have delays or HTTP requests will finish in a few milliseconds, so they appear and disappear in a flash. The house mode entity on Vera now has a primary value.
EDIT: @LibraSun reminded me of something I forgot to mention. The rules editor (triggers and conditions) was not correctly storing the rule ID on Expression Value conditions and Set Variable expressions. If you had a global variable with the same name as a rule-based variable, and you had selected the global, a later edit would incorrectly load the selector with the rule-based name, rather than the global name. This is now fixed, but it has the effect of breaking existing conditions on local variables. You can fix this just by selecting the correct variable again and saving the rule, and it will be fixed forever more. As part of this fix, you can now also select variables in any rule (in addition to globals), where previously, you could only select those variables that were local to the rule you were editing. This should make some expression and rule forms much easier to write and maintain.
-
Build 21101:
- 0000164: Rules watching variables in other Rules not triggering
A number of UI cleanups and fixes, as well as some internal cleanups. Lots of time on longer-term items, so the pace of new builds will be reduced to only when PR fixes or new features are ready for release (still not more frequently than daily, but also not less than weekly, going forward).
-
Build 21104
- 0000166 Hubitat: extra state for Tibber energy (example) not available
- 0000167 Interval with days not editable
- 0000168 Exiting edit of global reaction jumps to status display
Home Assistant is supported up to new version 2021.4.4. The "period" attribute for the Sun Information entity has been added ("day" or "night"; primary attribute). The expressions now support urlencode() and urldecode() functions. A UI error thrown when attempting to add a ruleset has been fixed (no PR). Ongoing code and documentation work.
-
toggledbitswrote on Apr 15, 2021, 10:11 PM last edited by toggledbits Apr 15, 2021, 7:23 PM
Build 21105:
- 0000174 Reaction that contains only comment should stop counter-reaction
- 0000173 Importer crashes on trange condition "between" op
- 0000170 Exception when running Hubitat action (native, it turns out)
- 0000165 Provide support for Hubitat custom actions from drivers
NOTE: Just discovered an issue. I'm going to respin this build. Stay tuned. If you haven't upgraded yet, don't.False alarm! All OK. Upgrade when ready! -
Build 21106:
- 0000177 Hubitat modes broken in 21105
Fixed an issue with (non-)presentation of the entity picker when clicked; fixed the bell click (broken by 0000168 fix); removed unused packages from configuration.
PLEASE RUN
npm update --nosave
AFTER UPDATING. -
toggledbitswrote on Apr 27, 2021, 7:45 PM last edited by toggledbits Apr 27, 2021, 3:52 PM
Build 21117
This build represents a significant update from previous builds. Principally, this build provides action groups in reactions, and action groups support constraints. So it now possible for the SET or RESET reactions in your rules to have conditionally-executed actions. This feature applies to rule-based reactions only; it is not a feature of global reactions (and for the removal of doubt, will not be in future). In addition, the following PRs are addressed:
- 0000186 Add quick-selects for weekends and weekdays to Week Day condition type.
- 0000184 Pushover now supports "device" parameter correctly.
- 0000180 Using left nav when active editor has no changes pending is now allowed.
- 0000179 Catch-all for a number of lexpjs (expression) fixes and enhancements.
This version also incorporates a lot of UI enhancements and cleanups; still much to do, though.
Also new, there are now three "official" Docker image builds available on DockerHub:
toggledbits/reactor:latest-generic-amd64
-- Generic Intel/AMD Linuxtoggledbits/reactor:latest-synology-amd64
-- Synology-specific (see more below)toggledbuts/reactor:latest-raspbian-armv7l
-- Raspian Buster (Raspberry Pi)
These Docker images can be downloaded using the usual
docker pull <imagename>
syntax.For all images, when creating the container you must map
/var/reactor
to a local directory in which your Reactor configuration and storage files are located. You should also bind/etc/localtime
to the same-path file on your local system to get the correct timezone in the container. If this is not possible or does not correctly set the timezone for your container, the TZ environment variable should be set.Typical to run:
# For generic: docker run -d -p 8111:8111 -v /my/reactor/data:/var/reactor --mount type=bind,src=/etc/localtime,target=/etc/localtime toggledbits/reactor:latest-generic-amd64 # For Raspian: docker run -d -p 8111:8111 -v /my/reactor/data:/var/reactor -e TZ=America/New_York toggledbits/reactor:latest-raspbian-armv7l
SPECIAL INSTRUCTIONS FOR SYNOLOGY DOCKER IMAGE UPGRADE (ONLY):
I will no longer be making the manual-download image available for Synology. Upgrading from the previous manual-download image is not a straight line, but can be done pretty quickly and without losing your configuration and other data. It's basically a redo of the original install. The steps are as follows:
- Stop the existing container (under Containers in the Synology Docker app).
- Make a note of where your current config/storage data is stored on the NAS. You can find this by clicking on the container row, then clicking the "Details" button. Click the "Volume" tab on the details dialog, and note the path associated with
/var/reactor
. Copy-paste this to a safe location or write it down. Close the dialog. - Click on the container row and choose "Delete" from the Actions dropdown menu.
- Go to the Image tab and delete the
toggledbits/reactor:latest
image. - Go to the Repository tab and search for "toggledbits". The
toggledbits/reactor
entry should be listed in the results. - Click the entry row and then click "Download".
- Once the image has downloaded, select the image in the Image tab and click "Launch".
- Leave the defaults on the "General Settings" dialog, and click the "Advanced Settings" button.
- On the Advanced Settings dialog, click "Enable auto-restart".
- Click the "Volume" tab, and then "Add Folder". Select the directory you saved in step 2 above (where your data and config files are stored); for the mount path, enter exactly
/var/reactor
. - Click the "Port Settings" tab, and change the "Auto" to 8111 under "Local Port".
- Click the "Environment" tab, and then "+" to add an environment variable. Name it "TZ" (caps), and then set the value to the name of your local time zone. Typically these are "Area/Locale", like "America/New_York". A full list is here: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
- Hit the Apply button and it will put you back on the General Settings dialog. Hit "Next" and then "Apply" (the checkbox to start the container should be checked already), and the container should start.
- Access the container via your NAS' IP address on port 8111.
USING DOCKER-COMPOSE TO RUN CONTAINERS
Here's a sample docker-compose file. You'll need to modify it to have the correct image tag and directory where your data are stored.
# Multi-System Reactor template docker-compose.yml version: '3' services: web: container_name: reactor environment: REACTOR_DATA_PREFIX: /var/reactor # Change the image below to the one you are using, if necessary. image: toggledbits/reactor:latest-generic-amd64 restart: always network_mode: "bridge" expose: - 8111 ports: - 8111:8111 # Modify the first entry below (only before the colon; do not modify the rest) # to the path where you want config/data stored. Make sure the directory # exists before starting the container. volumes: - /my/reactor/data:/var/reactor - type: bind source: /etc/localtime target: /etc/localtime read_only: true tmpfs: /tmp logging: driver: "json-file" options: max-file: 5 max-size: 2m
-
Build 21118
- 0000190 Validation sync issue between group and children on reaction with constraint
- 0000191 Two or more groups with constraints will stomp on each other
-
toggledbitswrote on Apr 30, 2021, 11:37 PM last edited by toggledbits Apr 30, 2021, 7:37 PM
Build 21120
- 0000193 Rule and expression state problem can cause reset reaction run on edit/save
- 0000195 Reload of expression value condition in action group constraint fails with JS error
- 0000198 (Vera) Siren1 device type doesn't have MSR power_switch capability
Docker users can pull the updated images from DockerHub.
Synology Docker users, you can either upgrade using the Docker app, which I find a bit cumbersome (there's no "Update/Download Again" for existing images in the app), or do the following:
- Stop the container in the Docker app.
- Log in to your NAS via SSH.
- Pull the new image by running
sudo docker pull toggledbits/reaction:latest-synology-amd64
- Clear the container (in the Docker app, select the container, then "Clear" from "Actions").
- Start the container.
.
-
Build 21123
- 0000084 Ruleset click-to-expand needs visual cue (also done for reactions and entities with similar behavior)
- 0000199 (Hass) Cover device missing position MSR capability/attribute (Hass-native was available, however)
The range operator '..' (e.g. 1..10) is now available in expressions and produces an array.
-
Build 21130
- 0000202 Duplicate IDs assigned to cloned groups and other actions
- 0000201 Allow renaming of outermost group constraints
The new performAction() function allows an action to be performed on an entity from within an expression. Additional UI tweaks.
-
toggledbitswrote on May 18, 2021, 2:40 PM last edited by toggledbits May 18, 2021, 10:41 AM
Reactor 21138
- 0000208 Cloning action in group clones group rather than action;
- 0000206 Restrict sun condition offset results to current day (prevents overrun and state lock when very large offsets are used);
- 0000204 Button text and color consistency on editors;
Documentatation (Installation) updates; IP filtering for API access; code refactoring/cleanup; bless Hass to 2021.5.4; UI improvements (autogrow input fields, improve expand/collapse aesthetics); log message cleanup.
Docker images are available on DockerHub as (now) usual. Generic package downloadable via Download button in the bug tracker.
-
Build 21139:
- 0000211 Injection caused while fixing Sun conditions for 206.
- 0000209 Cloning rule leaves "Set Variable" actions tied to source rule's expressions.