Well, to be honest @Peter_Kawa , in almost all cases, this would be the one you want actually.
So much so, that i just removed the “Yes” option from React.
Yeah, you heared me right, i removed an option
Because this one, React: Yes, is to complicated and has a great potential for loops.
I will try to explain React and therefore first a little Reflect:
- Reflect means to reflect app/device properties directly on AVD fields, like a mirror.
All changes on the configured devices are directly reflected on the AVD field.
This can be just one property from one devices (or app) or it can be from multiple devices, needing an calculation to be set when using multiple devices for Reflect, and there are the default ones you can pick from, like, sum, mean, min, max, all devices on, etc.
- React appears after Reflection (devices) has been set in the settings.
- React, like the tooltip explains, sets the property of the devices when the AVD field is changed/pressed/etc.
So, any changes on the AVD field, like pressing a button on, is send to the devices.
React had 3 options:
- Yes, only React
When selecting this option, parts of Reflection gets hidden, no more calculation, expression or debounce. Reflection itself is not happening, only reactions.
So, changes on the devices are not reflected on the AVD.
But changes on the AVD are send to the devices (it reacts).
- Yes, but not from devices updates
This is the option that will probably be most used actually @Peter_Kawa .
This means: React: When you change the AVD field, it is send to the Devices.
And changes on the Devices are Reflected on the AVD (so, change a dim slider on a device and the dim on the AVD will change also).
However, it will not send this to all devices. When the AVD field is changed by a (client/grouped) device change, the AVD field itself is updated, but it will not (re) update all client-devices.
- Yes
This means the same as the above, devices are Reflected on the AVD field. Changes on the AVD field is Reacted/send to the client-devices. And when a client devices changes, this is send to the AVD field and then the new calculation is send to all cleitns again.
This can created loops. Ofc’s i prevented to much looping, only value changes, but this option, i think, most people will not use it like i intend it, it will create issues, so i just pulled this option of the test version and published a new one to test.
Please note: if you had the testversion and have AVD React set to Yes or to Yes, only react, then you need to re-set an available option and press save.
Debounce is by default implemented already, set to 250 ms per device property. I might change it to also include a debouncer on setting the AVD field itself.
For delays, i don’t use any, i use the method from the DC watcher cards, because on HP2019, that method had already proven to be very good at controlling multiple devices, very, very fast after each other: each capability is set in sequence, not at once, and it waits for one to be set (or fail) before setting the next.
I did understand from @Jamie that on the HP2023, this might not be enough/working well anymore, so, if that turnes out to be true and not solveable by the firmware or something, i might indeed implement some delays.
Well, when you have React set to Yes, but not from devices update, lets say an on off button, and you also set the Calculation to True of all are True, what will happen is: you press the on/off button to On, it goes to On and starts updating devices.
It will execute the calculation for the AVD field, based on you pressing True, which is then set to all client-devices and when thus running the calculation, the response is True.
The feedback from the devices when set to true, are (on purpose!) not recieved by the AVD (this would create a loop).
However, lets say one of the lights recieved the set True command, it will true to do so.
When it fails, it will send another signla back to the AVD, and that one will be received, making the AVD field be re-calculated, and this time, it has one False in it’s devices, thus, turning the AVD field to Off.
That would be kinda of a confirmation