-
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.
-
Trying to figure out how I can include a list of entities that have "battery_level" in their ID without having to manually include them in a list. I have a group which selects all entities with the battery_power capability and filters them if they are dead. In HA there are quite a few entities that have the battery_power capability but don't actually report a battery percent (see screenshot below for an example), the entities I am interested in are the ones that contain battery_level in their ID.
I tried the following in the config file but it hasn't worked:
"dead_battery": select: - include_capability: battery_power - include_entity: "/^hass>battery_level/"What I think I am doing wrong here is that I am including entities with the batter_level capability which doesn't actually exist.
-
Suddenly my MSR actions aren't running anymore. I've had this before, but with an update to a new version it was fixed. see also
But an update from version 22240 to 22256 gave this time no result.
The reactions aren't running correctly. Most of my MSR automations are use turn lights on/off, and time based automations nothing worked where MSR does his magic.
I've also tested a bunch of things to see what's broken, here's what I've observed:
-I can successfully flip lights on/off manually within Vera
-I can successfully flip lights on/off manually within MSR's Entities section
-the sensors are correctly reporting to Vera and MSR (I can see when they're switch on/off)
-the rules within MSR are working correctly, I can see when they flip to 'true' of 'false' '
'
But I cannot successfully run the "Set Reaction" and "Reset Reaction" within MSR (by hitting the 'play' button)
But the play buttons on the entitiy action in the "Set Reaction" and in "Reset Reaction" they work well.Can someone help me to get MSR working again
MSR is running bare metal on Rpi4
-
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've made a few templates for MQTTController, mostly Zigbee2MQTT, and sharing them to the community if anyone else would find use for them.
GitHub - calmen77/MSR-mqtt_templates: MQTT templates for Multi-hub Reactor GitHub - calmen77/MSR-mqtt_templates: MQTT templates for Multi-hub Reactor
MQTT templates for Multi-hub Reactor. Contribute to calmen77/MSR-mqtt_templates development by creating an account on GitHub.
These are the ones I'm using but I'm happy to add more Zigbee2MQTT templates if needed.
Happy Holidays!
-
Hi,
Connection to Ezlo is going in timeout with api-cloud.ezlo. This happens in anonymous_access set to false or in true.
A lot of Error Incompatible serialization data (in the log I cut many more).
In MSR controller status, Ezlo is in green icon but after sometime devices start to not respond.
Can I have some help?Synology Nas - INTEL - DSM 7.1.1-42962 Update 3
Ezlo Hub Model: h2.1 - v.2.0.35.2156.5
Docker Container
Reactor latest-23010-7dd2c9e9Thanks in advance
[latest-23010]2023-01-20T18:11:08.069Z <app:null> Reactor build latest-23010-7dd2c9e9 starting on v16.15.1 [latest-23010]2023-01-20T18:11:08.071Z <app:null> Process ID 1 user/group 0/0; docker; platform linux/x64 #42962 SMP Tue Oct 18 15:07:03 CST 2022; locale (undefined) [latest-23010]2023-01-20T18:11:08.071Z <app:null> Basedir /opt/reactor; data in /var/reactor/storage [latest-23010]2023-01-20T18:11:08.071Z <app:null> NODE_PATH=/opt/reactor:/opt/reactor/node_modules [latest-23010]2023-01-20T18:11:08.085Z <app:INFO> Configured locale (undefined); selected locale(s) en-US.UTF-8 [latest-23010]2023-01-20T18:11:08.122Z <app:INFO> Loaded locale en-US [latest-23010]2023-01-20T18:11:08.128Z <Structure:null> Module Structure v22323 [latest-23010]2023-01-20T18:11:08.131Z <Capabilities:null> Module Capabilities v22356 [latest-23010]2023-01-20T18:11:08.166Z <Capabilities:NOTICE> System capabilities loaded from core distribution, data version 22356 revision 1 [latest-23010]2023-01-20T18:11:08.211Z <Plugin:null> Module Plugin v22300 [latest-23010]2023-01-20T18:11:08.238Z <TimerBroker:null> Module TimerBroker v22283 [latest-23010]2023-01-20T18:11:08.241Z <Entity:null> Module Entity v22353 [latest-23010]2023-01-20T18:11:08.247Z <Controller:null> Module Controller v22323 [latest-23010]2023-01-20T18:11:08.261Z <default:null> Module Ruleset v22293 [latest-23010]2023-01-20T18:11:08.262Z <default:null> Module Rulesets v22146 [latest-23010]2023-01-20T18:11:08.271Z <GlobalExpression:null> Module GlobalExpression v22146 [latest-23010]2023-01-20T18:11:08.296Z <Predicate:null> Module Predicate v22345 [latest-23010]2023-01-20T18:11:08.317Z <AlertManager:null> Module AlertManager v22283 [latest-23010]2023-01-20T18:11:08.322Z <Rule:null> Module Rule v22345 [latest-23010]2023-01-20T18:11:08.327Z <GlobalReaction:null> Module GlobalReaction v22324 [latest-23010]2023-01-20T18:11:08.329Z <Engine:null> Module Engine v23001 [latest-23010]2023-01-20T18:11:08.335Z <httpapi:null> Module httpapi v22347 [latest-23010]2023-01-20T18:11:08.400Z <wsapi:null> Module wsapi v22320 [latest-23010]2023-01-20T18:11:08.400Z <app:NOTICE> Starting Structure... [latest-23010]2023-01-20T18:11:08.460Z <InfluxFeed:null> Module InfluxFeed v22286 [latest-23010]2023-01-20T18:11:08.462Z <Structure:INFO> Structure#1 starting plugin influx (InfluxFeed) [latest-23010]2023-01-20T18:11:08.463Z <Structure:INFO> Structure#1 loading controller interface vera (VeraController) [latest-23010]2023-01-20T18:11:08.517Z <TaskQueue:null> Module TaskQueue 21351 [latest-23010]2023-01-20T18:11:08.518Z <VeraController:null> Module VeraController v22325 [latest-23010]2023-01-20T18:11:08.548Z <Structure:INFO> Structure#1 loading controller interface ezlo (EzloController) [latest-23010]2023-01-20T18:11:08.635Z <EzloController:null> Module EzloController v22344 [latest-23010]2023-01-20T18:11:08.867Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_613c8f94129e291209006add: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.868Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.869Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_613c9094129e291209006ae4: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.869Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.902Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_61437a57129e29124dfcd791: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.902Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.925Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_61437a58129e29124dfcd7a0: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.925Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.942Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_6198168b129e2918c5ce97bc: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.943Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.945Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_61981760129e2918c5ce97cb: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.945Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.945Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_61981770129e2918c5ce97d0: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.945Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.946Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_6198177e129e2918c5ce97d5: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.946Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.947Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_6198178b129e2918c5ce97da: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.947Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.947Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_6198179b129e2918c5ce97df: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.947Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.948Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_619817a6129e2918c5ce97e4: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.948Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.948Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_619817b2129e2918c5ce97e9: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.949Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.012Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_626d5d16129e291244463492: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.012Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.013Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_626d5d16129e291244463494: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.013Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.013Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_626d64d4129e2912444634a8: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.014Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.014Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_626d64d5129e2912444634af: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.014Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.015Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_626d64d5129e2912444634b2: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.015Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.039Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_629e6ec1129e2912b034351f: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.040Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.040Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_629e6ec2129e2912b0343529: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.040Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.041Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_629e6ec3129e2912b034352b: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.041Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.042Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_629e6ec3129e2912b034352d: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.042Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.043Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_629e6ec3129e2912b034352f: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.043Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.043Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_62a6d99a129e29123e7b0a8f: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.043Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.044Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_62a6d99b129e29123e7b0a9d: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.044Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.060Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity room_629687b6129e2912430f2de2: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.060Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Group.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.061Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity room_62a66189129e29124345f791: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.061Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Group.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.128Z <Structure:INFO> Structure#1 loading controller interface groups (DynamicGroupController) [latest-23010]2023-01-20T18:11:09.146Z <DynamicGroupController:null> Module DynamicGroupController v22313 [latest-23010]2023-01-20T18:11:09.178Z <Controller:WARN> DynamicGroupController#groups failed (1) to restore entity earthquake_entities: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.178Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Group.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at DynamicGroupController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new DynamicGroupController (/opt/reactor/server/lib/DynamicGroupController.js:207:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.186Z <Structure:INFO> Structure#1 loading controller interface weather (OWMWeatherController) [latest-23010]2023-01-20T18:11:09.219Z <OWMWeatherController:null> Module OWMWeatherController v22294 [latest-23010]2023-01-20T18:11:09.222Z <Structure:INFO> Structure#1 loading controller interface reactor_system (SystemController) [latest-23010]2023-01-20T18:11:09.227Z <SystemController:null> Module SystemController v22306 [latest-23010]2023-01-20T18:11:09.231Z <Structure:INFO> Structure#1 loading controller interface virtual (VirtualEntityController) [latest-23010]2023-01-20T18:11:09.238Z <VirtualEntityController:null> Module VirtualEntityController v22325 [latest-23010]2023-01-20T18:11:09.348Z <Structure:INFO> Starting controller VeraController#vera [latest-23010]2023-01-20T18:11:09.348Z <VeraController:NOTICE> VeraController#vera starting... [latest-23010]2023-01-20T18:11:09.357Z <Controller:INFO> VeraController#vera loaded vera capabilities ver 22253 rev 1 format 1 [latest-23010]2023-01-20T18:11:09.394Z <Controller:INFO> VeraController#vera loaded implementation data ver 22345 rev 1 format 1 [latest-23010]2023-01-20T18:11:09.394Z <Structure:INFO> Starting controller EzloController#ezlo [latest-23010]2023-01-20T18:11:09.397Z <Controller:INFO> EzloController#ezlo loaded ezlo capabilities ver 22266 rev 1 format 1 [latest-23010]2023-01-20T18:11:09.408Z <Controller:INFO> EzloController#ezlo loaded implementation data ver 22344 rev 1 format 1 [latest-23010]2023-01-20T18:11:09.408Z <Structure:INFO> Starting controller DynamicGroupController#groups [latest-23010]2023-01-20T18:11:09.413Z <Controller:NOTICE> Controller DynamicGroupController#groups is now online. [latest-23010]2023-01-20T18:11:09.413Z <Structure:INFO> Starting controller OWMWeatherController#weather [latest-23010]2023-01-20T18:11:09.503Z <Structure:INFO> Starting controller SystemController#reactor_system [latest-23010]2023-01-20T18:11:09.506Z <Controller:NOTICE> Controller SystemController#reactor_system is now online. [latest-23010]2023-01-20T18:11:09.537Z <Structure:INFO> Starting controller VirtualEntityController#virtual [latest-23010]2023-01-20T18:11:09.549Z <Controller:INFO> VirtualEntityController#virtual loaded virtualentity capabilities ver 22263 rev 2 format 1 [latest-23010]2023-01-20T18:11:09.550Z <Controller:INFO> VirtualEntityController#virtual loaded implementation data ver 22280 rev 1 format 1 [latest-23010]2023-01-20T18:11:09.556Z <VeraController:INFO> VeraController: deviceclass room capability sys_group does not provide attribute members [latest-23010]2023-01-20T18:11:09.556Z <VeraController:INFO> VeraController: deviceclass room capability sys_group does not provide attribute empty [latest-23010]2023-01-20T18:11:09.557Z <EzloController:INFO> EzloController#ezlo device mapping data loaded; checking... [latest-23010]2023-01-20T18:11:09.566Z <EzloController:INFO> EzloController#ezlo: connecting to hub "90000464" [latest-23010]2023-01-20T18:11:09.570Z <VirtualEntityController:INFO> VirtualEntityController#virtual configuring virtual .DefaultMode (vec01) [latest-23010]2023-01-20T18:11:09.571Z <VirtualEntityController:INFO> VirtualEntityController#virtual configuring virtual .GuestMode (vec02) [latest-23010]2023-01-20T18:11:09.571Z <VirtualEntityController:INFO> VirtualEntityController#virtual configuring virtual .PartyMode (vec03) -
-
Good afternoon. I want to connect Reactor to HA. HA is installed on Proxmox. Proxmox is installed on a Beelink U59 PRO mini PC. Studied the installation instructions ( https://reactor.toggledbits.com/docs/Installation / ) but I didn't understand how to do it (I'm a weak linux user). Help, give detailed instructions on how to install MSR.
Reactor is a cool plugin, I use it on VeraPlus, but gradually I want to switch to HA.
Thanks. -
My migration from Vera to Hubitat is almost ready, only Sonos & Visonic (alarm system) remain on Vera. Hubitat has a Sonos integration, but it lacks neural voices for TTS so I've been looking for an alternative solution.
@a-lurker hinted that there's a mqtt version for Sonos so I went that route and installed Docker containers for both sonos2mqtt and sonos-tts-polly. It turned out that I won't need mqtt for this at all, and I can utilize Hubitat's integration and just use the latter container for Polly.
Did create a separate user on AWS only for TTS usage (there's an access right called "AmazonPollyReadOnlyAccess") and configured key, secret & cache in the container. Then I made the following test rule / reaction in MSR:
Screenshot 2023-01-20 at 15.32.23.png Screenshot 2023-01-20 at 15.32.38.png
So if anyone else has the same (or similar) setup, here's one way to achieve neural TTS with Sonos.
-
Please can anyone give me advice on a cheap way to run MSR (both initial cost and ongoing electricity cost). I currently run it on my QNAP network drive (which works very well incidentally). However, this draws a constant 35Watts (£90/yr @ 30p/kWh) and given the recent rise in fuel costs I am evaluating the best way forwards. Note, I only really need to turn my QNAP on for an hour a week to back-up my computer data. I understand that MSR can run on a Raspberry PI, but I am not competent with Linux! Thanks.
-
MSR latest-23010-7dd2c9e9 in a Docker image
HE C7 hub on 2.3.4.130I'm trying to determine how to sense that a button has actually been pushed. I added a ThirdReality button to my hub and the current states don't release or reset after a function has been done. I/E: when I push the button, it sets the "pushed" state to 1. Same for all the other functions, double tap, hold, release. Nothing ever goes back to 0 or cleared out.
If I write my trigger as when "button.pushed" == 1, the current value is already one and the rule stays true all the time. What I'm after is when the button is pushed, the action will toggle the light I want to control.
I feel like I am missing something or maybe the States of the button are the issue. I can use Rule Machine in my HE and it sees the button as pushed, or held. But I would prefer to have all my logic in MSR.
And for some reason, I cannot post images. The server keeps giving me a parsing error.
-
-
Hi,
Took me a while to realise the issue here. Just want to share to save others the time of trying to figure out what's wrong.
Reactor (Multi-hub) stable-22337-1a0a685f Home Assistant 2022.11.5Home Assistant integration with non-admin user (access token) will caused the Home Assistant status in Reactor to show as down. Entity info from Home Assistant, however, is being updated. But Reactor is unable to execute any reactions.
If the user is changed to an admin user in Home Assistant, the status is changed to up and reactions work.
-
I'm using ZWaveJSUI 1.4.2 within Home Assistant 2023.1.3. ZWaveJSController has been quite happy with it until I upgraded ZWaveJSController to 23010. This morning my iblinds weren't responding at all.
As I'd made some changes to the rules I figured it was my work and returned it to original rules. No change (iblinds not responding.)
Restarted MSR.
Restarted ZWaveJSUI.
No change.Rolled back ZWaveJSController to prior version 22323 and all is well again, iblinds responding.
Thinking on this as I'm writing it and I realized there was a light on this morning that shouldn't have been. I now realize it's on the ZWaveJSUI as well and didn't turn off last night as the house went to sleep.
I have the reactor.log if @toggledbits would like it.
-
I've noticed lately (at least with build 22328) that in some cases these yellow warning / alert icons in front of rules are missing, although errors are otherwise visible:
-
My main objective was to track cars/motorcycles in real time, as they are leaving/entering the property, and I've experimented with different solutions, including WiFi devices, but I was not satisfied.
So, I have approached ESPresense to track BLE devices. I'm not yet 100% satisfied with my main use case (we'll see), but I learnt a couple of things about proximity along the way, so I've built a controller to natively track beacons/devices in MSR. The devices and beacons could be tracked inside Home Assistant, but I don't like the way it's doing it, and I wanted a very device-oriented solution, instead of a room one.
Introducing reactor-espresense.
You'll have a device containing various info, like the current room where the beacon/device is currently in, the distance, and so on, for each BTLE device you'll choose to map. Configuration is needed to map your devices, and a look at the doc to understand how devices/beacons are detected away is suggested.
I've not invested into commands so much, but it's on my TODO list.
Feel free to post your requests/comments. Thanks!
-
@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.
-
Hello All -
I upgraded my OS to Ubuntu 20.04 today and have been regretting it for several hours. I have most of my system up. However, I've found that, when I start Reactor, it panics / reboots my OS. I've included the syslog during startup below. There's a benign message about not finding a Vera device just before the reboot but that's it.Needless to say, I've learned my lesson regarding OS upgrades.
Bare metal Linux / Ubuntu 20.04 (Running inside VirtualBox)
Dec 30 19:33:46 homeauto03 systemd[1]: Started Multi System Reactor. Dec 30 19:33:46 homeauto03 weewx[6592] INFO weewx.restx: Wunderground-RF: Published record 2022-12-30 19:33:46 EST (1672446826) Dec 30 19:33:46 homeauto03 node[7240]: Reactor stable-22337-1a0a685f app 22328 configuration from /home/tbully/reactor/config Dec 30 19:33:46 homeauto03 node[7240]: NODE_PATH /home/tbully/reactor Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.745Z <app:null> Reactor build stable-22337-1a0a685f starting on v17.9.0 Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.746Z <app:null> Process ID 7240 user/group 1000/1000; bare-metal; platform linux/x64 #62-Ubuntu SMP Tue Nov 22 19:54:14 UTC 2022; locale en_CA.UTF-8 Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.746Z <app:null> Basedir /home/tbully/reactor; data in /home/tbully/reactor/storage Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.747Z <app:null> NODE_PATH=/home/tbully/reactor Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.764Z <Structure:null> Module Structure v22323 Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.765Z <Capabilities:null> Module Capabilities v22283 Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.819Z <Plugin:null> Module Plugin v22300 Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.827Z <TimerBroker:null> Module TimerBroker v22283 Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.831Z <Entity:null> Module Entity v22314 Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.835Z <Controller:null> Module Controller v22323 Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.847Z <default:null> Module Ruleset v22293 Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.848Z <default:null> Module Rulesets v21096 Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.854Z <GlobalExpression:null> Module GlobalExpression v21333 Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.864Z <Predicate:null> Module Predicate v22305 Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.867Z <AlertManager:null> Module AlertManager v22283 Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.869Z <Rule:null> Module Rule v22335 Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.872Z <GlobalReaction:null> Module GlobalReaction v22320 Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.873Z <Engine:null> Module Engine v22320 Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.877Z <httpapi:null> Module httpapi v22337 Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.886Z <wsapi:null> Module wsapi v22320 Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.949Z <TaskQueue:null> Module TaskQueue 21351 Dec 30 19:33:46 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:46.950Z <VeraController:null> Module VeraController v22325 Dec 30 19:33:47 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:47.200Z <HassController:null> Module HassController v22334 Dec 30 19:33:48 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:48.294Z <SystemController:null> Module SystemController v22306 Dec 30 19:33:48 homeauto03 weewx[6592] INFO weewx.restx: Wunderground-RF: Published record 2022-12-30 19:33:48 EST (1672446828) Dec 30 19:33:49 homeauto03 node[7240]: [stable-22337]2022-12-31T00:33:49.110Z <Rule:CRIT> ReferenceError: Can't find entity "vera>device_368" [-] Dec 30 19:33:49 homeauto03 node[7240]: ReferenceError: Can't find entity "vera>device_368" Dec 30 19:33:49 homeauto03 node[7240]: at Predicate._evaluateCondition (/home/tbully/reactor/server/lib/Predicate.js:366:27) Dec 30 19:33:49 homeauto03 node[7240]: at Predicate._evaluateGroup (/home/tbully/reactor/server/lib/Predicate.js:748:106) Dec 30 19:33:49 homeauto03 node[7240]: at Predicate._evaluateCondition (/home/tbully/reactor/server/lib/Predicate.js:354:47) Dec 30 19:33:49 homeauto03 node[7240]: at Predicate.evaluate (/home/tbully/reactor/server/lib/Predicate.js:60:37) Dec 30 19:33:49 homeauto03 node[7240]: at Rule._evaluate (/home/tbully/reactor/server/lib/Rule.js:875:54) Dec 30 19:33:49 homeauto03 node[7240]: at async /home/tbully/reactor/server/lib/Rule.js:830:17 Dec 30 19:33:49 homeauto03 systemd[1]: Stopping Session 14 of User tbully...
Reactor Version: stable-22337-1a0a685f -
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:
GitHub - dbochicchio/reactor-mqtt-contrib: Contrib MQTT templates for Reactor GitHub - dbochicchio/reactor-mqtt-contrib: Contrib MQTT templates for Reactor
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 🙂
[SOLVED] Random ghosting of lights when Away
-
When using Vera I made use of Deus Ex Machina II after Patrick took it over. Worked brilliantly for ghosting lights on and off when I was away.
Now that my devices are migrated to Hubitat I can't make use of DEMII.
Any thoughts on how to replicate this randomness with two or three lights in MSR?
Solved here: https://smarthome.community/post/8204
-
Install it on openLuup and bridge the lights via mqtt or similar?
-
Pretty easy to do with lights to be controlled in an array and a couple of rules to figure out (a) when to be enabled, (b) toggle a randomly-selected light from the array and delay a random time; (c) figure out when transitioning from enabled to disabled and turn off all the lights in the array. That's basically the guts of DEMII.
-
Also, I believe random lights on/off is a built-in feature of Alexa Guard. You set it up in the Alexa app, choose which lights to operate, and when leaving the house, simply say, "We're leaving" or "Turn on Guard".
-
@librasun great to know, since guard is us only at the moment.
-
@toggledbits Here's a prototype for "Reactor Ex Machina"...
Lights to be cycled are placed in a global expression like this:
This is the "Cycler". It triggers when a variable it owns called
cycler_stim
changes (and is non-zero, which is the resting/deactivated state value).When the cycler is "stimulated", it picks a random device from
REM_lights
and toggles it. Then it goes into a random delay between 10 and 30 minutes, after which it incrementscycler_stim
, effectively stimulating itself (for lack of a better description) and the cycle begins again.This is the "activate" rule. It determines when light cycling should start. It just sets
cycler_stim
to 1, and the Cycler will automatically start going.This is the "deactivate" rule; it determines when cycling should stop. Depending on the complexity of your activate/deactivate rules, you could also do this in the reset reaction of Activate. It sets
cycler_stim
to 0 and turns off all the controlled lights. -
@librasun This is good to know - I tend to try and keep as much as possible within MSR. Yes, it makes it a SPOF, but it's also better than chasing down troubleshooting in multiple places.
That being said... I do have some things like TV on/off, Night mode on, that are convenience things that ultimately drive back to the root HA system running from within Alexa devices.
-
@toggledbits Going to ask a really dumb question: how do I create a variable to use in
Set Variable
? -
@gwp1 said in Random ghosting of lights when Away:
@toggledbits Going to ask a really dumb question: how do I create a variable to use in
Set Variable
?In MSR, you have two choices. #1 - Create a new Global Expression under (you guessed it) "Global Expressions" on the left-hand menu. #2 - Within any Rule, scroll down to the bottom and click to expand the Expressions pane; there, you can click
[+Add Expression]
. Just type its name (variable names are case-sensitive!), then tab or click into its definition window to begin creating an expression. -
@toggledbits some quick questions about the new
performAction ( )
construct you've just presented:- Will there be a "Builder" button to help create these expressions in the same way
getEntity
currently does? - Is the semicolon
;
a one-for-one alternative to comma,
as a separator in multi-part expressions? or only when used as a terminator foreach
blocks? - Why did you elect to place that
[Set Variable]
sequence inside a separate rule's Set Reaction, rather than have it inside the Reset Reaction of "Active Period". - Any documentation available at this stage for
performAction ( )
showing what the optional{ }
parameters can do?
This is clearly powerful mojo you've just unleashed. And your implementation example takes us into
while
/do
territory without explicitly introducing alabel
/loop
orrepeat
element.(But your example does have me wondering whether "Condition Options" for Triggers and Group Constraints should offer "Randomize" drop-downs in "Pulse" for Output Control?)
e.g. output goes true for [fixed/random] __ (to __) seconds [once/repeat] after [fixed/random] __ (to __) seconds, up to __ times
Thoughts?
- Will there be a "Builder" button to help create these expressions in the same way
-
- This is a tough one; which is to say, I'm developing a tough stance around the expressions in general. I'm more likely to remove the existing builder for 1.0. Expressions are an advanced user feature, and putting training wheels around what is really two simple core concepts that are foundational for an MSR user to understand in the system (i.e. how to identify a device and how to pick an attribute from it) isn't helpful in my view. In fact, your earlier suggestion of a full point-and-click expression builder actually set off alarm bells in my head and has pretty much cemented for me where expressions live in this ecosystem. As/if MSR is used by more people, I will be looking at how expressions are used and why, and trying to find ways to address those needs with conditions and actions instead, so that the need for expressions is reduced to the minimum (i.e. make more powerful tools available in the simpler interface, rather than growing the power of the most complex interface). I'm also not afraid to decide that not every automation problem needs an MSR solution. At least for version 1.0, I'm feeling just at or slightly over the limit of what I'm willing to do with expressions until I get more users and more perspective.
- Semicolon and comma are treated the same in lexpjs.
- Which one?
- Yes. Start at the "Manual" link in the left nav, go to Creating Automations, then Expressions.
-
@toggledbits said in Random ghosting of lights when Away:
Which one?
I was referring to the placement of the "Reset to 0" action inside of a "Deactivate" rule (see https://smarthome.community/post/7946) rather than just resetting the variable in the Reset reaction of "Active Period" (since I believe, perhaps wrongly?, that the same thing would be accomplished either way).
As for the "Builder", it was just my natural response to an inner dialogue I had upon first seeing
performAction ()
... namely, "How will I ever remember the function 'performAction'?" and "How am I going to keep its syntax straight between uses?" and "What are the myriad valid actions it can perform on a given device?"Such a powerful tool! But chances are, without a Builder, I just would avoid it entirely because I can't keep all that in my mind. Just like I currently use the "Expression Builder" of Reactor for Luup and its counterpart in MSR every single time.
-
@librasun As I said, it depends on the complexity of your activation and deactivation. I made them separate because I think that's a more general approach -- not all "not activate" means "deactivate". But for sure, it can be done just in Activate if that is implied.
@librasun said in Random ghosting of lights when Away:
As for the "Builder", it was just my natural response to an inner dialogue I had upon first seeing performAction ()... namely, "How will I ever remember the function 'performAction'?" and "How am I going to keep its syntax straight between uses?" and "What are the myriad valid actions it can perform on a given device?"
Such a powerful tool! But chances are, without a Builder, I just would avoid it entirely because I can't keep all that in my mind. Just like I currently use the "Expression Builder" of Reactor for Luup and its counterpart in MSR every single time.If everybody thought like this, none of us would be here because nobody would use any API and none of these tools or systems would exist. I do not expect users to get through using expressions at all without referring to the documentation from time to time. The R4V "getstate" tool is not an expression builder, it just handles that one function, as does the analogous tool in MSR. But expanding on that seems folly to me, and the more expansive, the more folly. It's anathema to the complexity of the feature (expressions), IMO.
-
@toggledbits Agreed. I accept my limitations here, too, just as I have for the past 40 years when attempting to write computer programs. (Ironic, since I taught Applesoft BASIC and LOGO to hundreds of kids in the 1980s.)
For me, composing things like Regex matches, Javascript/Google Apps Script macros, PUT requests, and more generally API calls with code -- even rudimentary Linux commands at the prompt -- means hours of Googling, reading docs, and/or hunting up examples.
So long as we teamwork those MSR docs into something brimming with Pro Tips and Working Examples, I (and 99.9% of users) will be fine. But coming up with Expressions from scratch, on-the-fly with weeks/months between visits to the UI will remain challenging, by design, as you rightly point out.
-
That's another reason I really want to see how they get used and what opportunities are possible to add rule or reaction features to alleviate the need. Those interfaces more or less put the options in front of you -- they are Reactor/MSR's expression builders.
On a related note, anecdote: in the late 90s/early 2Ks, I was a Perl power user, big time. Maybe half of my projects and output were Perl at that time. Then tides shifted and until just a few days ago, I had not touched Perl. But I had a file-handling task that was tailor-made for Perl, so I dove in. What a mess. What would have taken me a half hour 20 years ago took me hours that day, much of it Google-searching. C'est la vie.
-
@toggledbits Given your affinity for logic charts and equivalences, I think it bears asking at this juncture: What can
performAction()
do that a carefully-iterated Set/Reset Action cannot?After all, if a user can already set up a device array, use Expressions to advance its index step-wise, and loop (or call) a Rule (or Reaction) repeatedly based on Conditions... is there a particular use-case where
performAction()
simplifies things or enables something otherwise impossible?Please show me to the door if I've overstayed my welcome on this topic.
-
I'll answer a question with a question: what would the Cycler rule look like without
performAction()
? -
Here's a naive stab at one solution. It uses a single expression to decide which of N "channels" will get toggled on the next cycle.
The rule itself runs so long as the Trigger condition remains
TRUE
. For testing purposes, I have it set to Pulse true for 5 seconds and repeat every 10 seconds, but the 'Repeat' interval would normally be much longer as in your example, above.Since the 'Reset' reaction would normally engage after each Pulse, I included a Group Constraint to check whether my Trigger condition (in this case, the Fireplace light being ON) has gone
FALSE
. Only then will the ghost lights all be turned OFF.The fun part in between happens in the 'Set' reaction, comprising 3 groups (one for each "channel"):
As should be clear here, I was forced to "hard wire" my selection of ghost lights by naming them explicitly within each Reaction. This illustrates just how convenient the new
performAction()
function is, allowing enumeration of an arbitrary (and easily editable) set of ghost lights listed within a single array as with your example.Unquestionably,
performAction()
brings much value to the table for users who strive for compactness, readability and ease of maintenance in their Rules. -
To answer my own question about, "How do you find which Actions a particular device can do using
performAction()
?"The answer is: ENTITIES
Go to the left menu, click Entities, scroll down or filter to find the specific device or class of devices, pick a device and then scroll down to its list of "Actions". There, you will find all possible arguments for
performAction()
, such aspower_switch.off
. Enjoy! -
@toggledbits I know you made a conscious decision that
performAction()
should returnnull
, but would you consider having it return an object of the form:{device: "vera>device_138", action: "power_switch.off", parameters: {<parameters>}, time: 1620912239172}
instead? I'd find this useful in troubleshooting Rules, especially those using enumeration as in the above examples, without having to resort to Log inspection every time.
- Libra