When expressions are calculated?

Please see screenshoot below - it was taken on 18:47, HeatTarget should have value 23 but it still was 22.5.
Why? :wink:

I’m guessing your expectation is that this is getting evaluated every minute or hour, but that’s not how Reactor expressions work. The expressions are only evaluated:

  1. When an evaluation is triggered by a change in a condition;
  2. When the state variable specifically retrieved by a getstate() expression changes.

If you want a periodic re-evaluation, just add a new condition group (NUL operand is fine, so it doesn’t affect other logic), and add an “Interval” condition to that with an interval that suits your sensibilities (every hour would work fine for these expressions). The periodic tick of the Interval condition will force the expressions to be re-evaluated.

Although I put the Interval condition into Reactor, I’m not a huge fan of it, because of its potential for abuse. This is one of the rare cases where its application serves a legitimate purpose.

1 Like