Skip to content

# Throttling

One of the risks of having free-form logic creation and the ability to watch and react to device states is that it's possible to create logic that is "circular" in nature: the logic examines conditions, determines some action needs to take place, and that causes the logic to re-examine the conditions, and take an action that then stimulates the original set of conditions, and back and forth it would go, ad infinitum. For example, you could create a rule that checks the state of a light, and turns the light on if it's off, and off if it's on. In the absence of any other logic or delays, this logic would go into a very fast infinite loop, turning the light on and off as quickly as the system would allow.

To prevent this from causing problems for your device and the system as a whole, Reactor "throttles" when the rate of updates or rate of state changes exceeds certain parameters. When this happens, you will see a message in the Status alerts list.

When your rule is throttled, condition evaluations are slowed for a short period, which hopefully allows the system to achieve a steady state, but it may not.

Throttling problems are almost always caused by logic errors. If your rule is being throttled, look carefully at its triggers and any expressions it may use, and what actions it performs in its reactions. There may be cases where your logic just needs some hysteresis to dampen its response, and this usually takes the form of using "delay reset" options (in Follow mode condition output) or "sustained for" restrictions (see Condition Options).

Updated: 2021-Apr-05