I would like to see an option under "Profile Properties" to add a debounce time out similar to the "Cooldown Time" option. The Debounce time would prevent a profile from changing state for a fixed period of time after the profile asserts or de-asserts.
For example, let's say we have a profile with a WiFi Connected context and a debounce timer set to 10 seconds. Assume the profile has been inactive for more than 10 seconds and then becomes active. The pofile's enter task should start as soon as the profile becomes active. Now assume that the profile becomes inactive after 4 seconds and active again in another 4 seconds. The exit task should not fire and the enter task should not fire again as the total time (8 seconds) is less than 10 seconds. However, at any time after 10 seconds, if the profile becomes inactive, then the exit task should fire and then no enter or exit tasks fire for another 10 seconds.