Discussion Forum to share and further the development of home control and automation, independent of platforms.

    SmartHome Community

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Unsolved
    (Last Updated: 30 November 2021)
    • Home Assistant add-on

      M

      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.

      Multi-System Reactor
    • Include Entity by Name in Dynamic Group Controller

      Pabla

      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.

      b50a2bfe-1779-4467-8b91-c078ff9404ef-image.png

      Multi-System Reactor
    • [Solved] MSR actions aren't running anymore-- can't find what's broken

      E

      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

      https://smarthome.community/topic/987/msr-actions-aren-t-running-anymore-can-t-find-what-s-broken/3?_=1674661492589

      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

      Multi-System Reactor
    • Reactor (Multi-System/Multi-Hub) Announcements

      toggledbits

      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.
      Multi-System Reactor
    • My MQTTController templates contribution

      Crille

      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!

      Multi-System Reactor
    • Ezlo Controller - Error Incompatible serialization data - api cloud Timeout

      N

      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-7dd2c9e9

      Thanks 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)
      Multi-System Reactor
    • MQTT log levels & log rotation

      tunnus

      Trying to set log level for MQTT to the lowest possible, is it in practise level 4? Also, would like to set maximum size and log rotation, but the following setup in logging.yaml did not work:

      MQTTController: level: 4 streams: - type: file maxsize: 2 keep: 2

      Using the latest build (23010).

      Multi-System Reactor
    • Help. Installing Reactor on Home Assistant.

      A

      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.

      Multi-System Reactor
    • Neural TTS with Sonos & Hubitat

      tunnus

      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.

      Multi-System Reactor
    • Cheapest platform on which to run MSR

      T

      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.

      Multi-System Reactor
    • [Resolved] Determining if button is pushed

      3

      MSR latest-23010-7dd2c9e9 in a Docker image
      HE C7 hub on 2.3.4.130

      I'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.

      Multi-System Reactor
    • MSR support for openHAB?

      tunnus

      Could MSR at some point support openHAB as a controller?

      Multi-System Reactor
    • Admin user required for Home Assistant Controller status and reactions

      S

      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.5

      Home 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.

      Multi-System Reactor
    • [Solved] ZWaveJSUI not responding to ZWaveJSController

      G

      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.

      Multi-System Reactor
    • warning icons missing

      tunnus

      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:

      Screenshot 2022-11-29 at 22.33.16.png

      Screenshot 2022-11-29 at 22.31.15.png

      Multi-System Reactor
    • [MSR] reactor-espresense to track ESPresense BTLE devices/beacons

      therealdb

      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!

      Multi-System Reactor
    • Reactor Ex Machina

      G

      @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.

      Multi-System Reactor
    • Reactor Start - System Crash/Restart

      T

      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)
      Reactor Version: stable-22337-1a0a685f

      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...
      Multi-System Reactor
    • [MSR] reactor-mqtt-contrib package for additional MQTT templates

      therealdb

      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 🙂

      Multi-System Reactor
    For those who registered but didn't received the confirmation email, please send an email to support@smarthome.community with the email you used

    Multidimensional Array

    Multi-System Reactor
    3
    28
    419
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • wmarcolin
      wmarcolin last edited by

      Hi @toggledbits it is possible to have an array in the following way

      ["Window 1"]["Status On"]
      ["Window 2"]["Status On"]
      ["Window 3"]["Status Off"]
      ["Window 4"]["Status On"]

      That is, bidirectional.

      How would this array be loaded? Normally we use Variable = ${{ ["Window 1", "Window 2", "Window 3", "Window 4"] }}, how would the array pair be loaded?.

      Then the use, how would be a looping where I want to ask who has "Status On" and it returns me a new array with the part 1, that is the list of "Window"?

      Or another search, I provide the information of the content of part 1, as "Window 2" and it would return me an array with the part 2 "Satus On".

      Is it possible to have something like this?

      Could you give the examples?

      Thanks.

      toggledbits 1 Reply Last reply Reply Quote 0
      • Elcid
        Elcid last edited by Elcid

        ${{[["Window 1","Status On"],["Window 2","Status On"],["Window 3","Status Off"],["Window 4","Status On"]]}}
        

        should work
        and to find all Status on's

        each val in testarray : if val[1] === "Status On" then val[0] endif
        

        and to find the value of Window 1

        (each val in testarray : if val[0] === "Window 1" then val[1] endif)[0]
        
        wmarcolin 1 Reply Last reply Reply Quote 0
        • wmarcolin
          wmarcolin @Elcid last edited by

          @elcid SUPER!!! Thanks a lot!!

          1 Reply Last reply Reply Quote 0
          • wmarcolin
            wmarcolin last edited by

            @Elcid

            Expanding the question, suppose the first part of the array is the device ID, like "vera>device1234".

            Is it possible to use the function below to use this same bidirectional array to search for the name, i.e. using val[0] for the search?

            sort( each id in testarray: do e=getEntity( id ), ( e?.attributes?.binary_sensor?.state == true or e?.attributes?.motion_sensor?.state == true ) ? e.name : null done )

            What would the function look like?

            Thanks.

            1 Reply Last reply Reply Quote 0
            • toggledbits
              toggledbits @wmarcolin last edited by toggledbits

              @wmarcolin I smell an X-Y problem, but I'll go on...

              I don't know what "bidirectionally" means in this context. Do you mean "two dimensional?" Bidirectional refers to movement, for example, forwards and backwards, or up and down, which is a different thing.

              A couple of minor comments to @Elcid 's response:

              ${{[["Window 1","Status On"],["Window 2","Status On"],["Window 3","Status Off"],["Window 4","Status On"]]}}

              Note that this is substitution syntax, not expression syntax when defining a variable. Adjust accordingly.

              each val in testarray : if val[1] === "Status On" then val[0] endif

              There is no === operator in the expression language, it's just ==

              (each val in testarray : if val[0] === "Window 1" then val[1] endif)[0]

              This is better written as first ... of ..., since you only want the one element (which by implication here the key "Window 1" must be unique in the array), and there's no need to keep searching through the array once you've found it (wastes CPU cycles).

              But about that uniqueness for "Window 1"... this is the real meat of my response:

              If the first element of each subarray (row) is unique, then using a two-dimensional array is inefficient (i.e. doable, but not the best choice). Where unique values are present, an object containing key/value pairs gives immediate random access to any "element", without iteration:

              devices = {
                  "lamp1": "on",
                  "lamp2": "off",
                  "lamp3": "on"
              }
              

              In this example, we can quickly determine the status of any lamp without iteration: devices.lamp2 will give us off.

              This can be further broken down with additional data: each value in the key/value pairs of the object can be any data type, so they can be an array or object themselves:

              devices = {
                  "lamp1": {
                      "status": "on",
                      "room": 0
                  }
                  "lamp2": { "status": "off", "room": 0 }
                  "lamp3": { "status": "on", "room": 2 }
              }
              

              We can again quickly get to the state of lamp2 using devices.lamp2.status (result off again). Using devices.lamp3.room tells us that lamp3 is in room 2. Note that in the example code above, I have shown lamp1 with a typical (JSON-style) fully indented with line breaks for readability, but lamp2 and lamp3 are in a more compact form. Whitespace (including newlines) are not significant to the syntax. Use them for readability if you wish, or leave them out for compactness if that's acceptable.

              When you must search within the values, you can still use iteration. Find the devices in room 0:

                  each dev,id in devices: dev.room==0 ? id : null
              

              By using each dev,id, the iterator will provide both the value and the key for each pair in the object. That is, on the first iteration, dev will contain our subobject (itself with keys status and room) for lamp1, and id will contain lamp1; on the second iteration, the subobject for lamp2 is given in dev, and id is lamp2, and so on. The result of the iteration in this case is an array of IDs of objects in room 0: ["lamp1","lamp2"]; you could also modify the iteration to return the data objects (using dev), if that was more efficient for your later use of this expression's result.

              Find the first device that is "off":

                  first dev,id of devices: dev.status=="off" ? id : null
              

              Adding new devices after the initialization is also easy:

                  devices.lamp4 = { "status": "on", "room": 2 }
              

              But this is all data storage theory, and details of an implementation for a problem that apparently hasn't been stated. We need to know what you are really trying to do, if you are asking for help getting it done. As I said, where we stand right now, this seems very X-Y-ish. The post title is also poor quality, and the head post itself breaks a couple of the posting guidelines.

              Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

              wmarcolin Elcid 2 Replies Last reply Reply Quote 0
              • wmarcolin
                wmarcolin @toggledbits last edited by wmarcolin

                @toggledbits

                Hi Patrick!

                Again a Master Class on how to do the right things.

                My use case is that I want to associate each device in my installation with an identification of which group it belongs to (door, window, security, light...).

                The group I will have to make the manual list (I think), so the first step of var1, I understand is the list I have to assemble, and whenever I have a new device, I update this list manually.

                386f4215-433c-4e29-81ea-159c7fca255a-image.png

                Just a note master, at the beginning of your example, I had to put the comma at each element of the array

                I reproduced your examples to test, and I just can't find the error in the example of the first (var4).

                b42bc82d-2277-419e-ac93-a5ad94058b84-image.png

                Now comes the use, to see device names and which group they are in, or even to search the groups. My next step, is to manage when a device has the true state of its sensor, to take actions such as triggering an action/alarm/siren/message according to the group the device is part of.

                7b1bf8f9-184e-4cbd-a7dc-34ffb1b61ab1-image.png

                If you can see, I am looking to work around not using (yet) a database, which we have had in other trackers to empower the information from the devices.

                Now exploring the Master, sorry 😁

                In your last example, you explain how to add one more row to the array, one more element, perfect. Now, is it possible to add another column to the existing array? For example, with the array I created, add a column that already stores the device name? A loop that looks at the devid and then looks at the device name attribute?

                I was forgetting, how do I change the contents of the array, is it possible with Set Variable? I want to change for example the group from DevWindow to DevDoor for one element.

                Thanks.

                toggledbits 1 Reply Last reply Reply Quote 0
                • toggledbits
                  toggledbits @wmarcolin last edited by toggledbits

                  @wmarcolin Well, I'm almost ready to release my first version of dynamic groups... still hashing out a few details. If you urgently need to do all this work, it's certainly a good opportunity to break your forehead on some sticky problems (I'm always in favor of experimentation and pushing limits).

                  First, having var1 be an expression that does an assignment to devices isn't necessary. Just call your variable devices and put in the rest of the expression after the = in your screen shot and be done with it. You can also set up your devices structure more simply. I'm not sure what the extra dev001 and dev002 identifiers are doing for you, but you can (and probably should) just use the entity canonical IDs directly. It will make everything much simpler. Here's is the expression for the devices variable:

                  {
                      "hubitat>15": { group: "DevWindow" },
                      "vera>device_1866": { group: "DevDoor" },
                      ...etc...
                  }
                  

                  Also, if group is the only data you are keeping, there is no value to creating a subobject to keep it, just make the group name be the value of the device's key/ID. But I'll continue with the structure you're trying to use...

                  Anyway, by simplifying the structure of devices, here's what it looks like and how it changes your first three expressions:

                  340a4917-f984-4a19-9112-39e53f13265e-image.png

                  Looking at var2, we need to use quoted identifiers because a canonical ID contains a character (>) that cannot be used in an identifier, so this devices.hubitat>15.group is not valid. The quoted identifier syntax is context["complexKey"] as shown.

                  The var3 expression is simpler, because we're not looking through the extra layer of indirection your structure had introduced, we're looking directly as our descriptive subobjects.

                  The var4 expression is an error in the syntax on my part. The correct syntax is shown, but I've had to embellish a bit here (next release of Reactor for you, so it won't work until I publish and you update).

                  But here's the important part...

                  As for the rest of it, you're making it unnecessarily hard, I think, because entity.primary_value will give you the value of the primary attribute, so you don't really need to care what capability that comes from and go to the work of classifying devices in expressions to try to make that work. There's an easier way.

                  Based on what I see here, now that we understand you are actually trying to accomplish, what you really need to do is set those primary attributes in local_hubitat_devices.yaml, and skip all of the devices complexity you are creating here, and just use the primary_value from the entity in your sort/search expressions.

                  To do the overrides in local_hubitat_devices.yaml:

                  entities:
                    # Entry shows how an entity can have a service added and its name forced
                    "hubitat>76":
                      # Name override
                      name: "Attic Environmental Sensor"
                      #
                      # List of capabilities to add to this device (array)
                      capabilities:
                        - SomeAdditionalCapability
                        - AnotherAdditionalCapability
                      #
                      # Assign primary attribute for this device
                      primary_attribute: "temperature_sensor.value"
                    "hubitat>178":
                      primary_attribute: "x_hubitat_extra_attributes.batteryLastReplaced"
                  

                  Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

                  wmarcolin 1 Reply Last reply Reply Quote 0
                  • wmarcolin
                    wmarcolin @toggledbits last edited by

                    @toggledbits

                    Hi Master!

                    Wow, good news that we will have in the MSR capacity, I am your test guy if you need a tester. And I'm aligned with you, I like to explore, learn, go to the limit, even with knowledge limitations, I seek to explore.

                    I will keep the array structure that can put more dimensions, surely I will explore.

                    Aligned from var4, I repeated your instruction and it really follows the syntax error, no problem for now, as I said we are learning and testing.

                    Master I am trying, to follow the correct path, instead of going all the way around creating the array. I edited the file local_hubitat_devices.yaml to test with these 4 devices, and I see that in the capabilities now appears the DeviceGroup, but I don't see in the attributes, or way to add the value.

                    # This file has local definitions/overrides for Hubitat devices.
                    ---
                    entities:
                      # Entry shows how an entity can have a capability added and its name forced
                      "hubitat>NNN":
                        # Name override
                        #name: "Attic Environmental Sensor"
                        #
                        # List of capabilities to add to this device (array)
                        #capabilities:
                        #  - Tone
                        #
                        # Assign primary attribute for this device
                        #primary_attribute: "temperature_sensor.value"
                      "hubitat>15":
                        capabilities:
                          - DeviceGroup
                        group: "Window"
                      "hubitat>67":
                        capabilities:
                          - DeviceGroup
                        group: "Window"
                      "hubitat>98":
                        capabilities:
                          - DeviceGroup
                        group: "Door"
                      "hubitat>99":
                        capabilities:
                          - DeviceGroup
                        group: "Door"
                    
                    

                    5568b50f-ca49-4312-a31d-b5389676d1a3-image.png

                    09834c78-b201-4a80-8033-50ebe0d0e371-image.png

                    Now I have a question, can I use this same file for the Vera devices? Following the same path?

                    Thanks.

                    1 Reply Last reply Reply Quote 0
                    • toggledbits
                      toggledbits last edited by

                      You can't make up data. Just because you assign the capability DeviceGroup to the device, that doesn't mean you get to assign the attributes (group) that may be associated with that capability. Hubitat would have to provide the group data from its side -- the values for that attribute still have to come from Hubitat. And that probably won't be happening, because DeviceGroup does not appear to be a valid Hubitat capability.

                      Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

                      wmarcolin 1 Reply Last reply Reply Quote 0
                      • wmarcolin
                        wmarcolin @toggledbits last edited by

                        @toggledbits I understand, so in this case for now is to use the array resource that we discussed before, until you publish the news.

                        f0a66684-76aa-4340-992f-bfd1d3900bfc-image.png

                        Anyway thanks for one more class of knowledge.

                        902b8160-4309-49fa-ae87-847684ccae9f-image.png

                        1 Reply Last reply Reply Quote 0
                        • Elcid
                          Elcid @toggledbits last edited by Elcid

                          @toggledbits said in Multidimensional Array:

                          There is no === operator in the expression language, it's just ==

                          Not according to your doc's.
                          Screenshot_20211126-211238.png

                          Also used in a test expression and working.

                          Screenshot_20211126-211533.png

                          Noted used "in" rather than "of" as I thought he wanted a 2D array not a object/dictionary.

                          wmarcolin toggledbits 2 Replies Last reply Reply Quote 0
                          • wmarcolin
                            wmarcolin @Elcid last edited by

                            @elcid actually, for the final search result, it was easier with object/dictionary, but it could have been done by array as well. Thanks, you also taught me how to make an array that will be useful for sure, it always is.

                            1 Reply Last reply Reply Quote 0
                            • toggledbits
                              toggledbits @Elcid last edited by toggledbits

                              @elcid said in Multidimensional Array:

                              Not according to your doc's.

                              You are correct, I'm suffering from holiday brain-fade.

                              @wmarcolin Version 21331 just released has the first release of dynamic groups. It also includes a syntax enhancement to the expression first...in statement to allow a result expression, so it can return something other than what it finds (i.e. it can perform operations on what it finds and return that as a result). This is useful for your var4 of this post, which should be first dev,id of devices: dev.group=="DevDoor": id to give you the ID of the first matching device. But again, I think the combination of primary attribute assignment and dynamic groups is going to be the best way to solve this.

                              Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

                              wmarcolin 2 Replies Last reply Reply Quote 0
                              • wmarcolin
                                wmarcolin @toggledbits last edited by

                                @toggledbits Hi!

                                Perfect, you have totally changed the command.

                                first dev,id in var1 with dev.group=="DevDoor": dev.devid

                                I'm going to study the dynamic group, because even though I can compare object or array contents, the usage is horrible. It's very difficult to validate an array inside another one, or to make combined selections.

                                Well, I don't really know the language, so I'm having a hard time. Let's see if the dynamic groups can make something that should be simple easier.

                                I'll return tomorrow with my experiences 🙂

                                1 Reply Last reply Reply Quote 0
                                • wmarcolin
                                  wmarcolin @toggledbits last edited by

                                  @toggledbits

                                  Hi Patrick!
                                  I don't know if I'm doing something wrong, but I followed the following steps to use DynamicGroupController.

                                  1. Stopped the MSR
                                  2. Compared the reactor configuration file
                                  3. Added the new Groups instruction, the one in the file is almost the same as the manual, and below is the one I set up.
                                    - id: groups
                                      enable: true
                                      implementation: DynamicGroupController
                                      name: Dynamic Group Controller
                                      config:
                                        groups:
                                          "low_battery":
                                            name: Low Battery Devices
                                            select:
                                              - include_capability: 
                                                - battery_power
                                            filter_expression: > 
                                              entity.attributes.battery_power.level < 0.35
                                          "tripped":
                                            name: Tripped Devices
                                            select:
                                              - include_capability: 
                                                - binary_sensor
                                                - motion_sensor
                                            filter_expression: >
                                              entity.attributes.binary_sensor.state == true or
                                              entity.attributes.motion_sensor.state == true
                                  
                                  
                                  1. I restarted MSR + Tools Restart + Crtl+F5 🙂
                                  2. Search in Entities and I see that they are created, but without content

                                  7e621920-da8d-439e-b2b0-7018f0720fd1-image.png

                                  5e7fafc0-8c76-4868-95ce-4a4722cb6466-image.png

                                  1. Check if they are available for action, yes but also without content.

                                  332057ab-7718-4cc2-9253-dc5d33e2dd58-image.png

                                  1. As the master instructed, let's go to the log file.
                                  [latest-21331]2021-11-27T21:13:45.136Z <default:INFO> OWMWeatherController#weather done; 1 locations, 0 failed
                                  [latest-21331]2021-11-27T21:13:45.137Z <default:NOTICE> Controller OWMWeatherController#weather is now online.
                                  [latest-21331]2021-11-27T21:13:46.538Z <VeraController:NOTICE> Controller VeraController#vera is now online.
                                  [latest-21331]2021-11-27T21:13:46.540Z <default:ERR> error updating dynamic group low_battery_entries: Error: Invalid selector key
                                  [latest-21331]2021-11-27T21:13:46.541Z <default:CRIT> Error: Invalid selector key
                                  Error: Invalid selector key
                                      at DynamicGroupController._select (C:\MSR\reactor\server\lib\DynamicGroupController.js:260:23)
                                      at DynamicGroupController._update_group (C:\MSR\reactor\server\lib\DynamicGroupController.js:193:45)
                                      at C:\MSR\reactor\server\lib\DynamicGroupController.js:243:38
                                      at Array.forEach (<anonymous>)
                                      at DynamicGroupController._update (C:\MSR\reactor\server\lib\DynamicGroupController.js:240:95)
                                      at C:\MSR\reactor\server\lib\DynamicGroupController.js:150:42
                                      at processTicksAndRejections (node:internal/process/task_queues:96:5)
                                  [latest-21331]2021-11-27T21:13:46.543Z <default:ERR> error updating dynamic group tripped_entries: Error: Invalid selector key
                                  [latest-21331]2021-11-27T21:13:46.544Z <default:CRIT> Error: Invalid selector key
                                  Error: Invalid selector key
                                      at DynamicGroupController._select (C:\MSR\reactor\server\lib\DynamicGroupController.js:260:23)
                                      at DynamicGroupController._update_group (C:\MSR\reactor\server\lib\DynamicGroupController.js:193:45)
                                      at C:\MSR\reactor\server\lib\DynamicGroupController.js:243:38
                                      at Array.forEach (<anonymous>)
                                      at DynamicGroupController._update (C:\MSR\reactor\server\lib\DynamicGroupController.js:240:95)
                                      at C:\MSR\reactor\server\lib\DynamicGroupController.js:150:42
                                      at processTicksAndRejections (node:internal/process/task_queues:96:5)
                                  [latest-21331]2021-11-27T21:13:46.544Z <app:NOTICE> Starting HTTP server and API...
                                  [latest-21331]2021-11-27T21:13:46.552Z <app:NOTICE> Starting Reaction Engine...
                                  
                                  

                                  Well, I found this error, and obviously, I don't know how to solve it. What I did? I reinstalled the MSR, using only the config and storage directory, and the result is the same.

                                  1 Reply Last reply Reply Quote 0
                                  • toggledbits
                                    toggledbits last edited by

                                    The groups would be empty if there were no tripped or low battery devices in their respective groups, so that's not all conclusive; it may be perfectly correct. The groups at least appear to be correct, for empty groups (no entities matched).

                                    The time stamps in your log snippet are unrelated to the time stamp on the entities, so I can't really draw any conclusions from that either. If you post logs, make sure you are posting logs where the time stamps align to the problem you're reporting.

                                    On your conditions, you can't compare an array to an empty string; that's not a valid test.

                                    Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

                                    wmarcolin 1 Reply Last reply Reply Quote 0
                                    • wmarcolin
                                      wmarcolin @toggledbits last edited by wmarcolin

                                      @toggledbits

                                      Ok let's go in parts, what I created in Group is the same thing I do in the traditional way and get the result, see the battery case.

                                      6bf50285-7862-4ba5-acd6-2c9eff9a0aec-image.png

                                      I'm not seeing an error anymore, after a reboot of the MSR host.

                                      [latest-21331]2021-11-28T02:45:18.584Z <default:null> Module httpapi v21308
                                      [latest-21331]2021-11-28T02:45:18.661Z <VeraController:null> Module VeraController v21324
                                      [latest-21331]2021-11-28T02:45:18.668Z <default:INFO> Structure#1 loading controller interface hubitat (HubitatController)
                                      [latest-21331]2021-11-28T02:45:18.676Z <HubitatController:null> Module HubitatController v21324
                                      [latest-21331]2021-11-28T02:45:18.679Z <default:INFO> Structure#1 loading controller interface groups (DynamicGroupController)
                                      [latest-21331]2021-11-28T02:45:18.686Z <DynamicGroupController:null> Module DynamicGroupController v21331
                                      [latest-21331]2021-11-28T02:45:18.688Z <default:INFO> Structure#1 loading controller interface weather (OWMWeatherController)
                                      [latest-21331]2021-11-28T02:45:18.693Z <OWMWeatherController:null> Module OWMWeatherController v21313
                                      
                                      
                                      [latest-21331]2021-11-28T02:45:18.761Z <default:INFO> Starting controller HubitatController#hubitat
                                      [latest-21331]2021-11-28T02:45:18.782Z <default:INFO> Starting controller DynamicGroupController#groups
                                      [latest-21331]2021-11-28T02:45:18.784Z <default:NOTICE> Controller DynamicGroupController#groups is now online.
                                      [latest-21331]2021-11-28T02:45:18.785Z <default:INFO> Starting controller OWMWeatherController#weather
                                      
                                      

                                      I see that the times are synchronized

                                      94523c4a-dd1f-4bc6-858a-351f010e4028-image.png

                                      But the array is still empty

                                      Any instructions where I can look for something?

                                      1 Reply Last reply Reply Quote 0
                                      • toggledbits
                                        toggledbits last edited by toggledbits

                                        The recommended debugging for this would be to start unraveling your criteria and see what it produces. As a first step (don't do this, just read), I would remove the filter_expression and make sure that your selectors are producing the expected set of eligible devices. An easy way to do that is to simply put an "X" in front of filter_expression (i.e. to make it Xfilter_expression), which changes the name of the key and hides it from the code that's looking for it. You could also comment it out, but that would require that you comment each subordinate line as well, which is more work and can be error-prone. Restart MSR after config changes, of course, and refreshes are also recommended (don't need to be hard refreshes).

                                        But, I found an error, and it's pretty subtle. For me, it logged one short line, so it would be easy to miss; I imagine you have it as well. But it's going to require a code change to fix, so I'll release another build later today. I'll also fix the doc issue you PM'd me about.

                                        Also, don't forget that filtering by controller or capability is a good way to quickly remove "noise" from your Entities list.

                                        Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

                                        wmarcolin 2 Replies Last reply Reply Quote 0
                                        • wmarcolin
                                          wmarcolin @toggledbits last edited by

                                          @toggledbits

                                          I debugged removing filter_axpression entirely, and the variables are still empty. I'll wait for your version update and test again.

                                          1 Reply Last reply Reply Quote 0
                                          • wmarcolin
                                            wmarcolin @toggledbits last edited by

                                            @toggledbits well done

                                            Low Battery Devices charging perfect!

                                            a94effd2-b52f-4bf3-ac75-ddfd010df71d-image.png

                                            But there is a problem for "tripped", which repeated the same setting as "low_battery".

                                              - id: groups
                                                enable: true
                                                implementation: DynamicGroupController
                                                name: Dynamic Group Controller
                                                config:
                                                  groups:
                                                    "low_battery":
                                                      name: Low Battery Devices
                                                      select:
                                                        - include_capability: 
                                                          - battery_power
                                                      filter_expression: > 
                                                        entity.attributes.battery_power.level < 0.3
                                                    "tripped":
                                                      name: Tripped Devices
                                                      select:
                                                        - include_capability: 
                                                          - binary_sensor
                                                          - motion_sensor
                                                      filter_expression: >
                                                        entity.attributes.binary_sensor.state == true or
                                                        entity.attributes.motion_sensor.state == true
                                            

                                            This is what is showing up in the log.

                                            [latest-21332]2021-11-29T01:49:33.599Z <default:ERR> error updating dynamic group tripped: ReferenceError: Invalid reference to member state of null
                                            [latest-21332]2021-11-29T01:49:33.600Z <default:CRIT> ReferenceError: Invalid reference to member state of null
                                            ReferenceError: Invalid reference to member state of null
                                                at _run (C:\MSR\reactor\common\lexp.js:1369:31)
                                                at _run (C:\MSR\reactor\common\lexp.js:1233:34)
                                                at _run (C:\MSR\reactor\common\lexp.js:1290:44)
                                                at C:\MSR\reactor\common\lexp.js:1223:29
                                                at Array.forEach (<anonymous>)
                                                at _run (C:\MSR\reactor\common\lexp.js:1222:28)
                                                at Object.run (C:\MSR\reactor\common\lexp.js:1564:22)
                                                at DynamicGroupController._update_group (C:\MSR\reactor\server\lib\DynamicGroupController.js:229:141)
                                                at C:\MSR\reactor\server\lib\DynamicGroupController.js:267:39
                                                at Array.forEach (<anonymous>)
                                            
                                            

                                            Would I have to include any additional information in the configuration to not have this problem with null?

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Welcome. If you’d like to participate in the discussion, rather than just read, then you can join the forum. As a member, you can interact with others here to share your experience and ask the questions you need answered.

                                            Powered by NodeBB | Contributors
                                            Hosted freely by PointPub Media Communications Inc. | Contact us