I'd recommend reading the thread I linked to above, which perhaps explains it better than I did previously. The "state transition" usage for predicate conditions (now "required expression") that they mention there is exactly the same use case as the above, except we're dealing with temperature and they're dealing with mode. The key in either case is that the value of the predicate matters at the time just before triggering, not after.