Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Unsolved
Collapse
Discussion Forum to share and further the development of home control and automation, independent of platforms.
  1. Home
  2. Software
  3. Multi-System Reactor
  4. How to? Rule for Vera "Can't Detect Device" errors and reset
Gradually turn on lights.
Tom_DT
I have several lights that I would like to turn on very gradually over 15 or 20 seconds. from 0 to .25 in .01 increments. I have tried a few things that came nowhere near working, so here I am.
Multi-System Reactor
Stop the MSR by an external switch on Hubitat.
wmarcolinW
Use case: When performing home maintenance, such as air conditioning, I want all rules involving air conditioning to be disabled. To do this, to day, I have a virtual switch that I placed within all rules involving air conditioning, meaning that if I turn it off, none of them work. Then another situation: the water pump system and garden irrigation, another switch. In short, I had to create several virtual switches in Hubitat to disable rules in MSR. Unfortunately, however, I was unable to cover all scenarios, so I wondered if it would be possible for MSR to support a virtual MSR switch, which, when configured in the reactor settings, would function as a general on/off switch for MSR. If it is configured and turned off, the entire rules and actions in MSR stops working, except for the status change reading process, specifically for this switch, which, when turned on, would restart the MSR. Would it be possible to do something like this? Any recommendations from the experts?
Multi-System Reactor
Error After Upgrade
T
Topic thumbnail image
Multi-System Reactor
Reset attribute value of entity in event handler
R
Topic thumbnail image
Multi-System Reactor
Need help figuring out how to delay a reset on reaction
T
Topic thumbnail image
Multi-System Reactor
Way to search for rules (rule state) in other rules
T
@toggledbits, not sure if this is a feature request or I'm using the search tool wrong. You have a "Search for rule" in the Rules Set tab in MSR. It works nicely to find a rule and bring up said rule, but can it/could it be used for as a "where used?" global search? For instance, I have a fairly large set of rules, divided up into 10 different rulesets. There's easily a hundred individual rules, and many of the rules have Rule State triggers, which of course refer to other rules. Amongst my troubleshooting today, I came across what may have been a duplicate or troubleshooting attempt, but I can't tell if it's actually used as a Rule State in another rule without opening each rule that I suspect it may be a part of. Thanks.
Multi-System Reactor
Links to MSR from HA
Tom_DT
I am using Home Assistant a lot recently. On a dashboard showing the devices, I would like to show a link to the MSR rule that controls the devices. Is there a way to link directly into MSR?
Multi-System Reactor
Set Reaction > Script Action
wmarcolinW
Topic thumbnail image
Multi-System Reactor
Errors after updating to MQTTController build 25139
tunnusT
I'm running MSR build 25139 on Docker, using MQTT controller 24293, and everything working as expected. But if I try to upgrade to MQTTController build 25139, I'm getting the following errors on MSR UI: An Entity Attribute condition in "Lay-Z-Spa auto heating off" (Terrace) failed because the referenced entity "Lay-Z-Spa States" (mqtt>layzspa_states) does not have attribute value_sensor.god Last 11:20:37 An Entity Attribute condition in "Lay-Z-Spa auto heating off" (Terrace) failed because the referenced entity "Lay-Z-Spa States" (mqtt>layzspa_states) does not have attribute temperature_sensor.green Last 11:20:37 An Entity Attribute condition in "Lay-Z-Spa filter pump auto off" (Terrace) failed because the referenced entity "Lay-Z-Spa States" (mqtt>layzspa_states) does not have attribute temperature_sensor.red Last 11:20:37 An Entity Attribute condition in "Lay-Z-Spa filter pump auto run" (Terrace) failed because the referenced entity "Lay-Z-Spa States" (mqtt>layzspa_states) does not have attribute value_sensor.pump Last 11:20:37 An Entity Attribute condition in "Lay-Z-Spa watchdog" (Terrace) failed because the referenced entity "Lay-Z-Spa States" (mqtt>layzspa_states) does not have attribute value_sensor.status Last 11:20:37 My MQTT configuration (local_mqtt_devices.yaml) for the related entity is: layzspa_message: type: ValueSensor capabilities: ["temperature_sensor", "value_sensor", "power_sensor"] primary_attribute: power_sensor.value events: "layzspa/message": "power_sensor.value": json_payload: true if_expr: '! isnull( payload?.PWR )' expr: "float(payload.PWR)" "value_sensor.air": json_payload: true if_expr: '! isnull( payload?.AIR )' expr: "float(payload.AIR)" "value_sensor.pump": json_payload: true if_expr: '! isnull( payload?.FLT )' expr: "float(payload.FLT)" "value_sensor.god": json_payload: true if_expr: '! isnull( payload?.GOD )' expr: "float(payload.GOD)" "value_sensor.lock": json_payload: true if_expr: '! isnull( payload?.LCK )' expr: "float(payload.LCK)" "value_sensor.unit": json_payload: true if_expr: '! isnull( payload?.UNT )' expr: "float(payload.UNT)" "value_sensor.error": json_payload: true if_expr: '! isnull( payload?.ERR )' expr: "float(payload.ERR)" "temperature_sensor.green": json_payload: true if_expr: '! isnull( payload?.GRN )' expr: "float(payload.GRN)" "temperature_sensor.red": json_payload: true if_expr: '! isnull( payload?.RED )' expr: "float(payload.RED)" "temperature_sensor.target": json_payload: true if_expr: '! isnull( payload?.TGT )' expr: "float(payload.TGT)" "temperature_sensor.value": json_payload: true if_expr: '! isnull( payload?.TMP )' expr: "float(payload.TMP)" "temperature_sensor.virtual": json_payload: true if_expr: '! isnull( payload?.VTM )' expr: "round(float(payload.VTM), 1)" "temperature_sensor.ambient": json_payload: true if_expr: '! isnull( payload?.AMB )' expr: "float(payload.AMB)" "layzspa/Status": "value_sensor.status": if_expr: '! isnull( payload )' expr: "payload" "layzspa/button": "value_sensor.button": if_expr: '! isnull( payload )' expr: "payload" and in reactor.yaml I have: "layzspa_states": name: "Lay-Z-Spa States" friendly_name: 'Lay-Z-Spa States' include: layzspa_message I realize my MQTT configuration might be a bit unorthodox, but could there still be something unintentional in the latest MQTTController build? If needed, I can provide detailed logs.
Multi-System Reactor
🎉 My very first MSR controller: OpenSprinkler
therealdbT
Since today is my birthday - and I still pretend to be unconventional - I'm giving away a present to this wonderful community and I'm releasing my first OpenSprinkler controller for MSR. It was real fun to code it - and while it's still WIP, it seems to work OK for me. It's polling-based at the moment, but I'll add support for updates via MQTT very soon (it's already partially coded). Get it at (install is similar to MQTTController and such): https://github.com/dbochicchio/reactor-opensprinkler Feel free to try it. It's beta software, but it's stable. I'll update it weekly until all the tasks from my todo list are empty. Since I've learnt a lot from this controller, I'll explore new controllers soon.
Multi-System Reactor
Advice reqeusted to migrate MSR from Bare Metal to Container
T
Good day all, I'm in the process of trying to shut down my 10 year old Linux home server that served many purposes, but primarily it's what I used for my NAS/Plex Media server. I migrated the NAS aspect of the server in November of last year to a true NAS solution (Ubiquti UNAS Pro), which is rack mount and much more efficient than my old tower, which it's only side benefit was heating my home office during the winter. Unfortunately it also means heating my home office during the summer, which were about to be in full swing. I have two things running on this 10 year old server at this point. MSR and pi-hole. I'm running Plex Media Server on Fedora Workstation in Podman on mini PC, which is much more energy efficient than my old tower. My next step is to migrate MSR. I know there are images of MSR out there, and creating it is well documented. I'm going to be using Podman instead of Docker for various reasons, but they work very similar. What I don't know, is what I need to do to migrate my existing Bare Metal installation over to a container. Has anyone done this? Any advice?
Multi-System Reactor
Reactor (Multi-System/Multi-Hub) Announcements
toggledbitsT
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
Can´t restart or upgrade/deploy MSR
F
Topic thumbnail image
Multi-System Reactor
[Solved] Limit HA Entity in MSR
wmarcolinW
Topic thumbnail image
Multi-System Reactor
Organizing/ structuring rule sets and rules
R
Hi guys, Just wondering how you guys organize your rule sets and rules. I wish I had an extra layer to have some more granularity, but my feature request was not popular. Maybe there are better ways to organize my rule sets. I use the rule sets now primarily for rooms. So a rule set per room. But maybe grouping by functionality works better. Any examples/ suggestions would be appreciated.
Multi-System Reactor
Moving MSR from a QNAP container to RP 5 - some issues
Tom_DT
Topic thumbnail image
Multi-System Reactor
Widget deletion does not work and landing page (status) is empy
M
Topic thumbnail image
Multi-System Reactor
Need help reducing false positive notifications
T
Topic thumbnail image
Multi-System Reactor
Deleting widgets
tunnusT
Hopefully a trivial question, but how do you delete widgets in a status page? Using build 22266
Multi-System Reactor
MQTT configuration question
tunnusT
I have the following yaml configuration in local_mqtt_devices file x_mqtt_device: set_speed: arguments: speed: type: str topic: "command/%friendly_name%" payload: type: json expr: '{ "fan": parameters.speed }' While this works fine, I'm wondering how this could be changed to "fixed" parameters, as in this case "fan" only accepts "A", "Q" or a numeric value of 1-5?
Multi-System Reactor

How to? Rule for Vera "Can't Detect Device" errors and reset

Scheduled Pinned Locked Moved Multi-System Reactor
21 Posts 5 Posters 2.8k Views 5 Watching
  • 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.
  • cw-kidC Offline
    cw-kidC Offline
    cw-kid
    wrote on last edited by cw-kid
    #2

    I have a problem device right now an Everspring appliance plug that says "Can't Detect Device".

    b85da59d-999d-443e-9c04-f30d99d6d23a-image.png

    If I run this LUA code on the Vera controller it does clear the red banner from the web GUI but then it comes back again about 20 seconds later, so maybe there is more to it than I thought.

    luup.set_failure(0, 50)
    

    Normally to fix this issue with this particular smart plug, I have to removed it from the wall outlet and then plug it back in again and then the problem goes away for a good period of time.

    1 Reply Last reply
    0
    • toggledbitsT Offline
      toggledbitsT Offline
      toggledbits
      wrote on last edited by toggledbits
      #3

      This has recently been covered in other threads, but it would be good to roll up everything so far into one place.

      Create a global expression to find all of the Vera devices with CommFailure <> "0":

      Failed = each id in matchEntities( { capability: 'x_vera_device' } ):
                   ( getEntity(id)?.attributes.x_vera_svc_micasaverde_com_HaDevice1.CommFailure ?# 0 ) !=0 ? id : null
      

      Now you can do whatever you want with that array. To a create a comma-separated list of names:

      FailedNames = join( each id in Failed: getEntity(id)?.name ?? id, ", " )
      

      You can then have a rule that just checks to see if FailedNames is not an empty string. Of course, you could combine the two expressions into one for a bit of efficiency (assuming the array Failed has no value other than to drive FailedNames), but separating them may be more clear.

      Through the other conversations we learned that this is best done in global variables because the large potential number of devices involved can cause excessive evaluations of the rule and rule throttling. That is simply a result of getEntity() being used on a large number of entities, and each use of getEntity() adds the target entity to a watch list, so the rule's watch list can become quite large. The global variables will evaluate faster than a rule, and are not subject to throttling (but be aware, a lot of work is still being done).

      Also note that other examples check CommFailure=1 rather than CommFailure<>0. Not recommended. There are defined values of CommFailure other than 0 and 1 that are significant (errors).

      Edit: Amended the expression to handle devices that don't have the CommFailure variable at all (ignore/treat as 0/not failed).

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

      cw-kidC 1 Reply Last reply
      0
      • toggledbitsT toggledbits

        This has recently been covered in other threads, but it would be good to roll up everything so far into one place.

        Create a global expression to find all of the Vera devices with CommFailure <> "0":

        Failed = each id in matchEntities( { capability: 'x_vera_device' } ):
                     ( getEntity(id)?.attributes.x_vera_svc_micasaverde_com_HaDevice1.CommFailure ?# 0 ) !=0 ? id : null
        

        Now you can do whatever you want with that array. To a create a comma-separated list of names:

        FailedNames = join( each id in Failed: getEntity(id)?.name ?? id, ", " )
        

        You can then have a rule that just checks to see if FailedNames is not an empty string. Of course, you could combine the two expressions into one for a bit of efficiency (assuming the array Failed has no value other than to drive FailedNames), but separating them may be more clear.

        Through the other conversations we learned that this is best done in global variables because the large potential number of devices involved can cause excessive evaluations of the rule and rule throttling. That is simply a result of getEntity() being used on a large number of entities, and each use of getEntity() adds the target entity to a watch list, so the rule's watch list can become quite large. The global variables will evaluate faster than a rule, and are not subject to throttling (but be aware, a lot of work is still being done).

        Also note that other examples check CommFailure=1 rather than CommFailure<>0. Not recommended. There are defined values of CommFailure other than 0 and 1 that are significant (errors).

        Edit: Amended the expression to handle devices that don't have the CommFailure variable at all (ignore/treat as 0/not failed).

        cw-kidC Offline
        cw-kidC Offline
        cw-kid
        wrote on last edited by cw-kid
        #4

        @toggledbits

        Thanks for your help !

        I tried creating the Global Expressions but one is yellow:

        2405510b-b12d-4bf3-b1b1-ff6ed920d48c-image.png

        tunnusT 1 Reply Last reply
        0
        • cw-kidC cw-kid

          @toggledbits

          Thanks for your help !

          I tried creating the Global Expressions but one is yellow:

          2405510b-b12d-4bf3-b1b1-ff6ed920d48c-image.png

          tunnusT Offline
          tunnusT Offline
          tunnus
          wrote on last edited by
          #5

          @cw-kid should be "!=" not "<>"

          Using MSR on Docker (Synology NAS), having InfluxDB, Grafana & Home Assistant, Hubitat C-8, Zigbee2MQTT

          cw-kidC 1 Reply Last reply
          0
          • tunnusT Offline
            tunnusT Offline
            tunnus
            wrote on last edited by
            #6

            noticed also that using CommFailure != "0" leads to false positives as not all my z-wave devices have CommFailure variable (but should be safe to add?)

            Using MSR on Docker (Synology NAS), having InfluxDB, Grafana & Home Assistant, Hubitat C-8, Zigbee2MQTT

            toggledbitsT 1 Reply Last reply
            0
            • tunnusT tunnus

              @cw-kid should be "!=" not "<>"

              cw-kidC Offline
              cw-kidC Offline
              cw-kid
              wrote on last edited by cw-kid
              #7

              @tunnus said in How to? Rule for Vera "Can't Detect Device" errors and reset:

              should be "!=" not "<>"

              That then lists some plugin devices and scene controller devices.

              00a93792-5bd7-4ab3-bcae-59f594a612fc-image.png

              "Fan" device is also listed however and that is the device I am actually have issues with.

              1 Reply Last reply
              0
              • cw-kidC Offline
                cw-kidC Offline
                cw-kid
                wrote on last edited by cw-kid
                #8

                This works and does list two actual Z-Wave devices that currently have "Can't Detect Device" issues:

                bafaf6e4-5578-453b-bea8-e8679bca7c8c-image.png

                Batteries on my Thermostat device are currently dead, charging them up at the moment.

                1 Reply Last reply
                0
                • cw-kidC Offline
                  cw-kidC Offline
                  cw-kid
                  wrote on last edited by
                  #9

                  @tunnus

                  So what are you then doing in your rules actions ? To reset the devices? Or are you just sending yourself notifications about the problem devices?

                  tunnusT 1 Reply Last reply
                  0
                  • tunnusT tunnus

                    noticed also that using CommFailure != "0" leads to false positives as not all my z-wave devices have CommFailure variable (but should be safe to add?)

                    toggledbitsT Offline
                    toggledbitsT Offline
                    toggledbits
                    wrote on last edited by
                    #10

                    @tunnus said in How to? Rule for Vera "Can't Detect Device" errors and reset:

                    noticed also that using CommFailure != "0" leads to false positives as not all my z-wave devices have CommFailure variable

                    I've amended my version of the expression to ignore devices that don't have CommFailure at all and still honor all possible non-zero values when present.

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

                    B 1 Reply Last reply
                    1
                    • cw-kidC cw-kid

                      @tunnus

                      So what are you then doing in your rules actions ? To reset the devices? Or are you just sending yourself notifications about the problem devices?

                      tunnusT Offline
                      tunnusT Offline
                      tunnus
                      wrote on last edited by
                      #11

                      @cw-kid as you’ve already realized, there’s really not much that can be done (programatically). I use this for notification purposes only

                      Using MSR on Docker (Synology NAS), having InfluxDB, Grafana & Home Assistant, Hubitat C-8, Zigbee2MQTT

                      1 Reply Last reply
                      0
                      • toggledbitsT toggledbits

                        @tunnus said in How to? Rule for Vera "Can't Detect Device" errors and reset:

                        noticed also that using CommFailure != "0" leads to false positives as not all my z-wave devices have CommFailure variable

                        I've amended my version of the expression to ignore devices that don't have CommFailure at all and still honor all possible non-zero values when present.

                        B Offline
                        B Offline
                        Buxton
                        wrote on last edited by
                        #12

                        @toggledbits Is it the case that CommFailure is only an attribute of the HaDevice1 type. Per the below, I pre-filtered on "x_vera_svc_micasaverde_com_HaDevice1". I had some interesting results from the expression, though I'm still trying to get my head around expression syntax, so the below may be wrong:

                        join( 
                          each id in matchEntities( { controller: 'vera', capability: 'x_vera_svc_micasaverde_com_HaDevice1' } ): do
                            e=getEntity( id ), 
                            e.attributes.x_vera_svc_micasaverde_com_HaDevice1.CommFailure !=0 ? e.name : null
                          done, ", " )
                        

                        Three of my zwave devices did not have a CommFailure attribute and I suspect, they were incorrectly migrated to my UI7 veraplus from a ui5 veralite. A reconfigure command established the CommFailure attribute for all three.

                        There is one plugin on my vera (it's the only plugin on the vera) that does not have the CommFailure attribute. Does the attribute get added automatically when one installs a plugin? I'm asking in the sense that a re-install might correct the problem but I don't want to mess with anything that isn't obviously broken.

                        wmarcolinW 1 Reply Last reply
                        0
                        • toggledbitsT Offline
                          toggledbitsT Offline
                          toggledbits
                          wrote on last edited by
                          #13

                          The attributes is strictly tied to its existence on the Vera device. Use the guard code I added to my earlier getEntity() to prevent its absence from breaking the test.

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

                          B tunnusT 2 Replies Last reply
                          0
                          • B Buxton

                            @toggledbits Is it the case that CommFailure is only an attribute of the HaDevice1 type. Per the below, I pre-filtered on "x_vera_svc_micasaverde_com_HaDevice1". I had some interesting results from the expression, though I'm still trying to get my head around expression syntax, so the below may be wrong:

                            join( 
                              each id in matchEntities( { controller: 'vera', capability: 'x_vera_svc_micasaverde_com_HaDevice1' } ): do
                                e=getEntity( id ), 
                                e.attributes.x_vera_svc_micasaverde_com_HaDevice1.CommFailure !=0 ? e.name : null
                              done, ", " )
                            

                            Three of my zwave devices did not have a CommFailure attribute and I suspect, they were incorrectly migrated to my UI7 veraplus from a ui5 veralite. A reconfigure command established the CommFailure attribute for all three.

                            There is one plugin on my vera (it's the only plugin on the vera) that does not have the CommFailure attribute. Does the attribute get added automatically when one installs a plugin? I'm asking in the sense that a re-install might correct the problem but I don't want to mess with anything that isn't obviously broken.

                            wmarcolinW Offline
                            wmarcolinW Offline
                            wmarcolin
                            wrote on last edited by
                            #14

                            @buxton as @toggledbits mentioned, in another conversation (https://smarthome.community/topic/739/logic-loop-throttling/11) we discussed a similar situation, I recommend reading it.

                            And if I can do a suggestion, do not use CommFailure for this evaluation. I did several simulations in the exercise we mentioned, and this attribute fails more than x_vera_device.failed, this one responds faster (true / false).

                            Below is the screen of the test I am using, with the Global variable.

                            3ce48175-8a58-4aa2-9ae6-55f1f94ac979-image.png

                            B 1 Reply Last reply
                            0
                            • wmarcolinW wmarcolin

                              @buxton as @toggledbits mentioned, in another conversation (https://smarthome.community/topic/739/logic-loop-throttling/11) we discussed a similar situation, I recommend reading it.

                              And if I can do a suggestion, do not use CommFailure for this evaluation. I did several simulations in the exercise we mentioned, and this attribute fails more than x_vera_device.failed, this one responds faster (true / false).

                              Below is the screen of the test I am using, with the Global variable.

                              3ce48175-8a58-4aa2-9ae6-55f1f94ac979-image.png

                              B Offline
                              B Offline
                              Buxton
                              wrote on last edited by
                              #15

                              @wmarcolin Yes, thanks. I have the data point "x_vera_device.failed" covered with the following expression:

                              join( 
                                each id in matchEntities( { controller: 'vera', capability: 'x_vera_device' } ): do
                                  e=getEntity( id ), 
                                  e.attributes.x_vera_device.failed ? e.name  :  null
                                done, ", " )
                              

                              I was using CommFailure to detect devices that have not been configured properly, and sure enough, I found three on my network.

                              1 Reply Last reply
                              0
                              • toggledbitsT toggledbits

                                The attributes is strictly tied to its existence on the Vera device. Use the guard code I added to my earlier getEntity() to prevent its absence from breaking the test.

                                B Offline
                                B Offline
                                Buxton
                                wrote on last edited by
                                #16

                                @toggledbits said in How to? Rule for Vera "Can't Detect Device" errors and reset:

                                The attributes is strictly tied to its existence on the Vera device

                                Yes, I was asking more in general terms about what happens when a plugin gets initialized. And whether CommFailure is a specific attribute of Vera's HaDevice1 type.

                                1 Reply Last reply
                                0
                                • toggledbitsT toggledbits

                                  The attributes is strictly tied to its existence on the Vera device. Use the guard code I added to my earlier getEntity() to prevent its absence from breaking the test.

                                  tunnusT Offline
                                  tunnusT Offline
                                  tunnus
                                  wrote on last edited by tunnus
                                  #17

                                  @toggledbits These devices that for some reason do not have CommFailure variable set, do you think it is safe to just manually add it? Don't want to do anything too "extensive", like exclusion/inclusion process

                                  Screenshot 2021-10-20 at 11.48.03.png

                                  Using MSR on Docker (Synology NAS), having InfluxDB, Grafana & Home Assistant, Hubitat C-8, Zigbee2MQTT

                                  1 Reply Last reply
                                  0
                                  • toggledbitsT Offline
                                    toggledbitsT Offline
                                    toggledbits
                                    wrote on last edited by
                                    #18

                                    Guarding for it in your expressions is the "right" way (example shown in linked post).

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

                                    tunnusT 1 Reply Last reply
                                    0
                                    • toggledbitsT toggledbits

                                      Guarding for it in your expressions is the "right" way (example shown in linked post).

                                      tunnusT Offline
                                      tunnusT Offline
                                      tunnus
                                      wrote on last edited by
                                      #19

                                      @toggledbits yep, I'm using that also, but wondering if I could add those missing variables

                                      Using MSR on Docker (Synology NAS), having InfluxDB, Grafana & Home Assistant, Hubitat C-8, Zigbee2MQTT

                                      1 Reply Last reply
                                      0
                                      • toggledbitsT Offline
                                        toggledbitsT Offline
                                        toggledbits
                                        wrote on last edited by toggledbits
                                        #20

                                        You can, but I wouldn't. But I've spent 40 years as a software engineer, and have learned many times over that you don't bend the input to conform to your algorithm, you get the algorithm right, so I'm (probably very predictably) stubborn about that kind of thing. Proper guarding for null (missing data) ensures that the result works always works (e.g. after including new devices or replacing existing, or broken devices/driver/plugin implementations, etc.), and is thus applicable to all users (so the code they see posted here actually works for them to the greatest degree possible without assembling other information or steps that may not be obvious).

                                        If you're guarding properly, there's no need for the extra work and ongoing maintenance.

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

                                        1 Reply Last reply
                                        0
                                        • toggledbitsT Offline
                                          toggledbitsT Offline
                                          toggledbits
                                          wrote on last edited by
                                          #21

                                          It was noted in another thread covering a specific case of this topic that it's possible, on some hubs (ahem), for a device to flap its *failed" state quickly, and perhaps is even likely due to temporary network/mesh/device issues, or a simple choice that during restart of the hub devices are marked down until known up. All of this may cause quick, although likely uninteresting, transitions between failed and not-failed.

                                          It may therefore be advisable to use the "sustained for" option on any rule that reacts to a change in identified failed devices, to dampen the response to such potentially spurious state changes.

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

                                          1 Reply Last reply
                                          1
                                          • toggledbitsT toggledbits locked this topic on
                                          • cw-kidC cw-kid referenced this topic on
                                          • cw-kidC cw-kid referenced this topic on
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Recent Topics

                                          • Gradually turn on lights.
                                            G
                                            gwp1
                                            0
                                            4
                                            95

                                          • Stop the MSR by an external switch on Hubitat.
                                            wmarcolinW
                                            wmarcolin
                                            0
                                            1
                                            18

                                          • Error After Upgrade
                                            G
                                            gwp1
                                            0
                                            4
                                            87

                                          • Reset attribute value of entity in event handler
                                            R
                                            RHCPNG
                                            0
                                            5
                                            173

                                          • Need help figuring out how to delay a reset on reaction
                                            G
                                            gwp1
                                            0
                                            22
                                            869

                                          • Way to search for rules (rule state) in other rules
                                            T
                                            tamorgen
                                            0
                                            3
                                            93

                                          • Links to MSR from HA
                                            Tom_DT
                                            Tom_D
                                            0
                                            1
                                            79

                                          • Set Reaction > Script Action
                                            wmarcolinW
                                            wmarcolin
                                            0
                                            11
                                            422

                                          • Wiring Samotech SM308-S into light fitting
                                            akbooerA
                                            akbooer
                                            0
                                            2
                                            137

                                          • Errors after updating to MQTTController build 25139
                                            toggledbitsT
                                            toggledbits
                                            0
                                            6
                                            233

                                          • 🎉 My very first MSR controller: OpenSprinkler
                                            therealdbT
                                            therealdb
                                            5
                                            13
                                            904

                                          • Advice reqeusted to migrate MSR from Bare Metal to Container
                                            T
                                            tamorgen
                                            0
                                            5
                                            250
                                          Powered by NodeBB | Contributors
                                          Hosted freely by 10RUPTiV - Solutions Technologiques | Contact us
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Unsolved