Bare-metal latest-26193
I have this group:
"OKforLarm":
name: OK för Larm
select:
- include_controller: vera
- include_capability: door_sensor
filter_expression: entity.attributes.door_sensor.state
It contains the entities I expect but behaves a bit odd. When I open vera>device_10097 the entity attribute door_sensor.state changes to true but it won't show up as member in the group, when I also open vera>device_10095 they both shows as members and when I close vera>device_10095 it disappear from the group but when I close vera>device_10097 it lingers in the group until I restart Reactor.
Hey @toggledbits I'm back to trying to optimize a couple of things based on dynamic group.
First of all, I think I found a typo in the doc:
primary_attribute: "binary_sensor.state"
primary_attribute_value: |
d = false;
each id in members: d = getEntity(id)?.attributes?.power_switch?.state or d,
d
I think the correct code snippet is d = false,
All that said, my use case for dynamic groups is to group 3 different climate devices, so I could easily command them at the same time. Commands are good, but sometimes I want to check if any of the devices are on, and that's easily done with a similar snippet as the one you have in the docs. But this is limited to the primary attribute, while I want to have any of the attributes in the group to be driven by a similar logic (while all are null in the group). ie, access hvac_control.mode and see if any of the unit is set to cool, or heat. Is that possible, without re-defining an expression in each of my rules? Thanks!
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.
Hey @toggledbits
One thing that bothers me while doing work on new systems/new features, is that I cannot copy&paste actions, and I cannot drag&drop between set and resets.
#1 is for when I want to copy an action between different rules opened in two separate browser windows, while #2 is when I just need to flip a bunch of actions in the reset, or move some logic back and forth.
Both will be appreciated, but I understand the technical challenges. Thanks!
I'm currently on version 26011. I understand that the aarch64 image is no longer supported. So, I therefore need to update to the ARM64 image. Can anyone possibly suggest how I update my docker compose.yaml file (see below). Ideally I'd like to keep my existing reactions etc. rather than start from scratch.
# Multi-System Reactor template docker-compose.yml (version 22160)
#
# Change the lines indicated by "DO"...
#
services:
reactor:
container_name: reactor
environment:
# DO change the TZ: line to set your local time zone.
# See valid TZ list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
TZ: GB
#
# DO NOT change this path. Your directory location is in "source" below.
REACTOR_DATA_PREFIX: /var/reactor
# DO change the image below to the one you are using (e.g. armv7l or aarch64 for RPi 4)
image: toggledbits/reactor:latest-aarch64
restart: "always"
expose:
- 8111
ports:
- 8111:8111
volumes:
# DO change the /home/username/reactor below to the directory you created for
# your local data; DO NOT change the /var/reactor part
- /home/pi/docker/reactor:/var/reactor
- /etc/localtime:/etc/localtime:ro
tmpfs: /tmp
If you are using the armv7l docker image, the OpenJS Foundation that publishes node is no longer producing 32-bit builds as of v24. That means the last supported LTS version of node for armv7l is v22, which will go End-of-Life in May 2027.
Therefore, the Reactor armv7l image is now deprecated and will only be produced until node v22 goes EOL, and I will not publish armv7l images beyond that date.
If you are running an RPi 3 or earlier with Reactor, you are on this image, and will need to upgrade hardware to a 64-bit model and use the arm64 image. If you need help getting it done, ask in this category.
@toggledbits I pulled the image (well, Watchtower did) and within minutes the whole system went offline.
The log looks like it ends with 26143.
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-mkahsmgf/26qq82mw-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-lqyfljfi/22f8on0t-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-lsb61rw8/24oenqi2-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-lrh58he0/rule-lrh58he0:S-1c00gfib-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-lrh58he0/1c00dylr-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-lrh58he0/1nam9w5u-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-miuh2qqi/22ls4lql-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-kwc6rmci/rule-kwc6rmci:S-1vj8sdfc-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-kwc6rmci/rule-kwc6rmci:S-1qanz01x-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-ladyja6a/24lq19p6-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-mk0o8iox/23oy468y-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-miscg2h3/rule-miscg2h3:S-22gmbq1c-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#re-kxgrfjke/238p0old-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#re-m7ccsso5/re-m7ccsso5-1r0myjxa-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-ladyja6a/19nl9wq2-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-ladyja6a/rule-ladyja6a:S-yl3xk9t-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-ladyja6a/rule-ladyja6a:S-yl3vv5m-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#re-ln7j2nqp/re-ln7j2nqp-22mx9lzd-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#re-ln7j2nqp/22mx87c8-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-licneppy/1mzwe7ht-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-ml3194ih/25jqt1j4-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#re-kxgrg7kf/227hshak-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-reactorexmachina/13ua1p95-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-reactorexmachina/13uagam7-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-grpvl9oypg/rule-grpvl9oypg:R-134x4cbv-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-grpvl9oypg/rule-grpvl9oypg:R-134x2fyl-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#re-lscjrws1/238p5c22-cons
[latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-lbwr0jvq/1xkczf03-cons
[latest-26143]2026-05-31T15:23:44.547Z <Structure:NOTICE> Structure Structure#1 stopped
[latest-26143]2026-05-31T15:23:44.547Z <app:NOTICE> Closing APIs...
[latest-26143]2026-05-31T15:23:44.547Z <wsapi:NOTICE> wsapi: closing...
[latest-26143]2026-05-31T15:23:44.547Z <wsapi:NOTICE> wsapi: disconnecting from "192.168.1.23#82" (1001 service closing)
[latest-26143]2026-05-31T15:23:44.548Z <httpapi:NOTICE> HTTP API closing...
[latest-26143]2026-05-31T15:23:44.549Z <wsapi:NOTICE> wsapi: server closed
[latest-26143]2026-05-31T15:23:44.549Z <httpapi:INFO> HTTP server closed.
[latest-26143]2026-05-31T15:23:44.549Z <app:NOTICE> Stopping timers...
[latest-26143]2026-05-31T15:23:44.551Z <app:null> Shutdown complete, process ID 1
[latest-26143]2026-05-31T15:23:44.551Z <app:null> Closing logs...
[latest-26143]2026-05-31T15:23:44.551Z <default:null> Closing log
I can SSH to the VM. Alas, I do not have the previous image for 26143 as I'm a little too quick sometimes on housekeeping.
DynamicGroupController updating members issue
Multi-System Reactor
3
Posts
1
Posters
4
Views
1
Watching
-
Bare-metal latest-26193
I have this group:
"OKforLarm": name: OK för Larm select: - include_controller: vera - include_capability: door_sensor filter_expression: entity.attributes.door_sensor.stateIt contains the entities I expect but behaves a bit odd. When I open
vera>device_10097the entity attributedoor_sensor.statechanges totruebut it won't show up as member in the group, when I also openvera>device_10095they both shows as members and when I closevera>device_10095it disappear from the group but when I closevera>device_10097it lingers in the group until I restart Reactor. -
Log level 5:
[latest-26193]2026-08-08T14:48:43.605Z <Rule:INFO> MONITOR - Rörelse hallen (rule-krnbos9q in Larm) starting rule state evaluation; because predicate-state-changed Predicate#rule-krnbos9q/trig [latest-26193]2026-08-08T14:48:45.300Z <DynamicGroupController:5:DynamicGroupController.js:336> DynamicGroupController#groups entity-change notification from SecuritySensor#vera>device_10095 by SecuritySensor#vera>device_10095 [latest-26193]2026-08-08T14:48:45.500Z <DynamicGroupController:INFO> DynamicGroupController#groups processing pending updates for Array(1) ["OKforLarm"] [latest-26193]2026-08-08T14:48:45.501Z <DynamicGroupController:5:DynamicGroupController.js:519> DynamicGroupController#groups _update acquiring mutex for updates to Array(1) ["OKforLarm"] [latest-26193]2026-08-08T14:48:45.501Z <DynamicGroupController:5:DynamicGroupController.js:522> DynamicGroupController#groups mutex acquired; going to work [latest-26193]2026-08-08T14:48:45.501Z <DynamicGroupController:5:DynamicGroupController.js:371> DynamicGroupController#groups updating OKforLarm [latest-26193]2026-08-08T14:48:45.501Z <DynamicGroupController:5:DynamicGroupController.js:399> DynamicGroupController#groups selecting entities for Group#groups>OKforLarm with Array(2) [{ "include_controller": "vera" }, { "include_capability": "door_sensor" }] [latest-26193]2026-08-08T14:48:45.501Z <DynamicGroupController:5:DynamicGroupController.js:558> DynamicGroupController#groups _select group OKforLarm criteria Array(2) [{ "include_controller": "vera" }, { "include_capability": "door_sensor" }] [latest-26193]2026-08-08T14:48:45.501Z <DynamicGroupController:5:DynamicGroupController.js:589> DynamicGroupController#groups handling group OKforLarm selector include_controller, val=Array(1) ["vera"], first=true, set has 0 [latest-26193]2026-08-08T14:48:45.501Z <DynamicGroupController:5:DynamicGroupController.js:589> DynamicGroupController#groups set=Map(0) { } [latest-26193]2026-08-08T14:48:45.501Z <DynamicGroupController:5:DynamicGroupController.js:593> DynamicGroupController#groups group OKforLarm include_controller vera [latest-26193]2026-08-08T14:48:45.502Z <DynamicGroupController:5:DynamicGroupController.js:754> DynamicGroupController#groups group OKforLarm after criterion include_controller, set contains 91 [latest-26193]2026-08-08T14:48:45.502Z <DynamicGroupController:5:DynamicGroupController.js:589> DynamicGroupController#groups handling group OKforLarm selector include_capability, val=Array(1) ["door_sensor"], first=false, set has 91 [latest-26193]2026-08-08T14:48:45.502Z <DynamicGroupController:5:DynamicGroupController.js:589> DynamicGroupController#groups set=Map(91) {"vera>controller_all": Group(Group#vera>controller_all), "vera>system": System(System#vera>system), "vera>device_1": Entity(Entity#vera>device_1), "vera>device_10004": Entity(Entity#vera>device_10004), "vera>device_10006": Entity(Entity#vera>device_10006), "vera>device_10016": Entity(Lock#vera>device_10016), "vera>device_10027": Entity(Entity#vera>device_10027), "vera>device_10028": Entity(Entity#vera>device_10028), "vera>device_10032": Entity(Lock#vera>device_10032), "vera>device_10048": Entity(Switch#vera>device_10048), "vera>device_10050": Entity(Entity#vera>device_10050), "vera>device_10064": Entity(Switch#vera>device_10064), "vera>device_10065": Entity(Switch#vera>device_10065), "vera>device_10068": Entity(Entity#vera>device_10068), "vera>device_10069": Entity(Entity#vera>device_10069), "vera>device_10070": Entity(Entity#vera>device_10070), "vera>device_10071": Entity(Entity#vera>device_10071), "vera>device_10076": Entity(Entity#vera>device_10076), "vera>device_10086": Entity(ValueSensor#vera>device_10086), "vera>device_10094": Entity(Entity#vera>device_10094), "vera>device_10095": Entity(SecuritySensor#vera>device_10095), "vera>device_10096": Entity(Entity#vera>device_10096), "vera>device_10097": Entity(SecuritySensor#vera>device_10097), "vera>device_10098": Entity(Entity#vera>device_10098), "vera>device_10099": Entity(SecuritySensor#vera>device_10099), "vera>device_10104": Entity(Entity#vera>device_10104), "vera>device_10105": Entity(SecuritySensor#vera>device_10105), "vera>device_10106": Entity(Entity#vera>device_10106), "vera>device_10107": Entity(SecuritySensor#vera>device_10107), "vera>device_10109": Entity(Entity#vera>device_10109), "vera>device_10110": Entity(SecuritySensor#vera>device_10110), "vera>device_10111": Entity(Switch#vera>device_10111), "vera>device_10112": Entity(Entity#vera>device_10112), "vera>device_10113": Entity(Switch#vera>device_10113), "vera>device_10115": Entity(Entity#vera>device_10115), "vera>device_10116": Entity(ValueSensor#vera>device_10116), "vera>device_10127": Entity(Entity#vera>device_10127), "vera>device_10129": Entity(ValueSensor#vera>device_10129), "vera>device_10130": Entity(Switch#vera>device_10130), "vera>device_10131": Entity(SecuritySensor#vera>device_10131), "vera>device_10132": Entity(SecuritySensor#vera>device_10132), "vera>device_10133": Entity(SecuritySensor#vera>device_10133), "vera>device_10149": Entity(Switch#vera>device_10149), "vera>device_10162": Entity(Entity#vera>device_10162), "vera>device_10163": Entity(ValueSensor#vera>device_10163), "vera>device_10167": Entity(Light#vera>device_10167), "vera>device_10168": Entity(Light#vera>device_10168), "vera>device_10187": Entity(Entity#vera>device_10187), "vera>device_10188": Entity(Entity#vera>device_10188), "vera>device_10189": Entity(ValueSensor#vera>device_10189), "vera>device_10190": Entity(ValueSensor#vera>device_10190), "vera>device_10191": Entity(Entity#vera>device_10191), "vera>device_10192": Entity(Entity#vera>device_10192), "vera>device_10200": Entity(Light#vera>device_10200), "vera>device_10217": Entity(Entity#vera>device_10217), "vera>device_10229": Entity(Entity#vera>device_10229), "vera>device_10230": Entity(Entity#vera>device_10230), "vera>device_10231": Entity(SecuritySensor#vera>device_10231), "vera>device_10232": Entity(ValueSensor#vera>device_10232), "vera>device_10234": Entity(Entity#vera>device_10234), "vera>device_10235": Entity(Switch#vera>device_10235), "vera>device_10236": Entity(Switch#vera>device_10236), "vera>device_10258": Entity(Entity#vera>device_10258), "vera>device_2": Entity(Entity#vera>device_2), "vera>device_3": Entity(Entity#vera>device_3), "vera>device_30001": Entity(Entity#vera>device_30001), "vera>device_30005": Entity(Entity#vera>device_30005), "vera>device_30006": Entity(Entity#vera>device_30006), "vera>device_30014": Entity(Entity#vera>device_30014), "vera>device_30015": Entity(Entity#vera>device_30015), "vera>device_35": Entity(Entity#vera>device_35), "vera>device_4": Entity(Entity#vera>device_4), "vera>device_40001": Entity(Entity#vera>device_40001), "vera>device_40002": Entity(Light#vera>device_40002), "vera>device_5": Entity(Entity#vera>device_5), "vera>device_56": Entity(Entity#vera>device_56), "vera>device_59": Entity(Entity#vera>device_59), "vera>device_63": Entity(ValueSensor#vera>device_63), "vera>device_64": Entity(ValueSensor#vera>device_64), "vera>device_67": Entity(Entity#vera>device_67), "vera>device_68": Entity(ValueSensor#vera>device_68), "vera>device_69": Entity(ValueSensor#vera>device_69), "vera>device_76": Entity(Entity#vera>device_76), "vera>device_77": Entity(Entity#vera>device_77), "vera>housemode": Entity(Entity#vera>housemode), "vera>scene_10": Entity(Script#vera>scene_10), "vera>scene_11": Entity(Script#vera>scene_11), "vera>scene_9": Entity(Script#vera>scene_9), "vera>user_13775022": Entity(Entity#vera>user_13775022), "vera>user_2116531": Entity(Entity#vera>user_2116531), "vera>user_2975462": Entity(Entity#vera>user_2975462) } [latest-26193]2026-08-08T14:48:45.502Z <DynamicGroupController:5:DynamicGroupController.js:651> DynamicGroupController#groups group OKforLarm include_capability door_sensor [latest-26193]2026-08-08T14:48:45.502Z <DynamicGroupController:5:DynamicGroupController.js:661> DynamicGroupController#groups removing vera>controller_all from set, no matching capability ... *removed due to post length, lists all devices that don't match the filter* [latest-26193]2026-08-08T14:48:45.519Z <DynamicGroupController:5:DynamicGroupController.js:754> DynamicGroupController#groups group OKforLarm after criterion include_capability, set contains 6 [latest-26193]2026-08-08T14:48:45.520Z <DynamicGroupController:5:DynamicGroupController.js:481> DynamicGroupController#groups members=Map(1) {"vera>device_10097": Entity(SecuritySensor#vera>device_10097) } newMembers=Set(1) ["vera>device_10097"] current=Set(0) [] [latest-26193]2026-08-08T14:48:45.520Z <DynamicGroupController:5:DynamicGroupController.js:493> DynamicGroupController#groups group Group#groups>OKforLarm has 0 adds 1 removes 0 [latest-26193]2026-08-08T14:48:45.520Z <DynamicGroupController:5:DynamicGroupController.js:336> DynamicGroupController#groups entity-change notification from Group#groups>OKforLarm by Group#groups>OKforLarm [latest-26193]2026-08-08T14:48:45.524Z <DynamicGroupController:5:DynamicGroupController.js:536> DynamicGroupController#groups update group OKforLarm done 23ms [latest-26193]2026-08-08T14:48:45.524Z <DynamicGroupController:5:DynamicGroupController.js:549> DynamicGroupController#groups _update releasing mutex [latest-26193]2026-08-08T14:48:45.956Z <DynamicGroupController:5:DynamicGroupController.js:336> DynamicGroupController#groups entity-change notification from Entity#vera>device_10094 by Entity#vera>device_10094 [latest-26193]2026-08-08T14:48:45.958Z <DynamicGroupController:5:DynamicGroupController.js:336> DynamicGroupController#groups entity-change notification from SecuritySensor#vera>device_10095 by SecuritySensor#vera>device_10095 [latest-26193]2026-08-08T14:48:46.157Z <DynamicGroupController:INFO> DynamicGroupController#groups processing pending updates for Array(3) ["UnreachableVeraDevices", "LowBatteryDevices", "OKforLarm"] [latest-26193]2026-08-08T14:48:46.157Z <DynamicGroupController:5:DynamicGroupController.js:519> DynamicGroupController#groups _update acquiring mutex for updates to Array(3) ["UnreachableVeraDevices", "LowBatteryDevices", "OKforLarm"] [latest-26193]2026-08-08T14:48:46.157Z <DynamicGroupController:5:DynamicGroupController.js:522> DynamicGroupController#groups mutex acquired; going to work [latest-26193]2026-08-08T14:48:46.157Z <DynamicGroupController:5:DynamicGroupController.js:371> DynamicGroupController#groups updating UnreachableVeraDevices [latest-26193]2026-08-08T14:48:46.158Z <DynamicGroupController:5:DynamicGroupController.js:475> DynamicGroupController#groups group Group#groups>UnreachableVeraDevices removes all members [latest-26193]2026-08-08T14:48:46.159Z <DynamicGroupController:5:DynamicGroupController.js:536> DynamicGroupController#groups update group UnreachableVeraDevices done 1ms [latest-26193]2026-08-08T14:48:46.159Z <DynamicGroupController:5:DynamicGroupController.js:371> DynamicGroupController#groups updating LowBatteryDevices [latest-26193]2026-08-08T14:48:46.160Z <DynamicGroupController:5:DynamicGroupController.js:475> DynamicGroupController#groups group Group#groups>LowBatteryDevices removes all members [latest-26193]2026-08-08T14:48:46.160Z <DynamicGroupController:5:DynamicGroupController.js:536> DynamicGroupController#groups update group LowBatteryDevices done 1ms [latest-26193]2026-08-08T14:48:46.160Z <DynamicGroupController:5:DynamicGroupController.js:371> DynamicGroupController#groups updating OKforLarm [latest-26193]2026-08-08T14:48:46.160Z <DynamicGroupController:5:DynamicGroupController.js:481> DynamicGroupController#groups members=Map(2) {"vera>device_10095": Entity(SecuritySensor#vera>device_10095), "vera>device_10097": Entity(SecuritySensor#vera>device_10097) } newMembers=Set(2) ["vera>device_10095", "vera>device_10097"] current=Set(1) ["vera>device_10097"] [latest-26193]2026-08-08T14:48:46.161Z <DynamicGroupController:5:DynamicGroupController.js:493> DynamicGroupController#groups group Group#groups>OKforLarm has 1 adds 1 removes 0 [latest-26193]2026-08-08T14:48:46.161Z <DynamicGroupController:5:DynamicGroupController.js:336> DynamicGroupController#groups entity-change notification from Group#groups>OKforLarm by Group#groups>OKforLarm [latest-26193]2026-08-08T14:48:46.164Z <DynamicGroupController:5:DynamicGroupController.js:536> DynamicGroupController#groups update group OKforLarm done 4ms [latest-26193]2026-08-08T14:48:46.164Z <DynamicGroupController:5:DynamicGroupController.js:549> DynamicGroupController#groups _update releasing mutex [latest-26193]2026-08-08T14:48:47.828Z <DynamicGroupController:5:DynamicGroupController.js:336> DynamicGroupController#groups entity-change notification from SecuritySensor#vera>device_10095 by SecuritySensor#vera>device_10095 [latest-26193]2026-08-08T14:48:47.963Z <DynamicGroupController:5:DynamicGroupController.js:336> DynamicGroupController#groups entity-change notification from Entity#vera>device_10094 by Entity#vera>device_10094 [latest-26193]2026-08-08T14:48:48.028Z <DynamicGroupController:INFO> DynamicGroupController#groups processing pending updates for Array(3) ["OKforLarm", "UnreachableVeraDevices", "LowBatteryDevices"] [latest-26193]2026-08-08T14:48:48.029Z <DynamicGroupController:5:DynamicGroupController.js:519> DynamicGroupController#groups _update acquiring mutex for updates to Array(3) ["OKforLarm", "UnreachableVeraDevices", "LowBatteryDevices"] [latest-26193]2026-08-08T14:48:48.029Z <DynamicGroupController:5:DynamicGroupController.js:522> DynamicGroupController#groups mutex acquired; going to work [latest-26193]2026-08-08T14:48:48.029Z <DynamicGroupController:5:DynamicGroupController.js:371> DynamicGroupController#groups updating OKforLarm [latest-26193]2026-08-08T14:48:48.029Z <DynamicGroupController:5:DynamicGroupController.js:481> DynamicGroupController#groups members=Map(1) {"vera>device_10097": Entity(SecuritySensor#vera>device_10097) } newMembers=Set(1) ["vera>device_10097"] current=Set(2) ["vera>device_10097", "vera>device_10095"] [latest-26193]2026-08-08T14:48:48.029Z <DynamicGroupController:5:DynamicGroupController.js:493> DynamicGroupController#groups group Group#groups>OKforLarm has 2 adds 0 removes 1 [latest-26193]2026-08-08T14:48:48.030Z <DynamicGroupController:5:DynamicGroupController.js:336> DynamicGroupController#groups entity-change notification from Group#groups>OKforLarm by Group#groups>OKforLarm [latest-26193]2026-08-08T14:48:48.033Z <DynamicGroupController:5:DynamicGroupController.js:536> DynamicGroupController#groups update group OKforLarm done 4ms










