Variables not updating properly

Why are my variables not updating properly? Is there a more reliable way to carry device stats to text or notifications without relying on this which appears to not be so reliable?

The set point on the Ecobee is 70. However, the variable has been 68 since I woke up 2 hours ago.

Have you actually verifed that the variable value isn't updating? My guess is that it is, and RM is just displaying a cache of a previous value. To update that display, go into "Select Actions to Run" and hit "Refresh Actions List." (I'm not sure if/when RM does this on its own besides the first time, but this is a way to force it to happen. The caching is relatively new and was, I think, introduced to improve editing performance. There's also an option now to just not show these values in the editor at all.)

Where do I find this?

Click/tap into "Select actions to run," then look for the "Refresh Actions List" button on that page (towards the bottom).

On second thought, I see this is showing up as a trigger for you, not part of an action, so this might not help...but I'd check the actual value of the variable rather than relying on what RM is showing, in any case.

Ohh within each rule? Yes that'll update what it shows...

How can I check the actual value of the variable without looking at RM? The only place I know to check these is the below screenshot and those aren't updating like the above rule is calling for them to. So the trigger is when my ecobee changes...but the variable in the below spot was 68 for 2 hours while the ecobee was actually set to 70. Sorry I should've had the below area posted in the OP. If I update the rule or refresh the action list the variable updates but it doesn't happen reliably. The below screenshot is after a refresh..

This also happens with my current temp rule from my weather station. I put a 30 second delay in before capturing what they 'changed' to. Looking at my logs it appears the variables are trying to change before the devices finish refreshing.

Yeah, that would be the place to check--I just meant somewhere outside the rule actions (or triggers) itself in case it was displaying a cached value.

If this rule isn't working how you expect (it appears to be set up correctly), one thing that might help you is to turn on logging for the rule. Trigger and Actions logging would probably be the most helpful, though all wouldn't hurt. "Update Rule" and "Refresh Actions List" are different: "Update Rule" just re-initializes everything (clears and recreates schedules, subscriptions, and anything else the triggers need), the same as clicking "Done" except it doesn't close the rule; "Refresh Actions List" will get new device names (I think these are cached too? so if you changed the name/label), condition evaluations, etc., so it just affects the display in the actions editor--nothing with the devices themselves or the actual execution of the rule.

The other thing to note is that if you just created this rule, you'll need to wait for a trigger event before the actions actually run. So if your thermostat has been at 70 "for a while" (and this rule existed when it became 70), the variable should have changed, but if that didn't happen for some reason, you'll have to a wait for the next device event (that triggers the rule) or manually run the rule actions once ("Run Rule Actions") to test yourself, which I suppose wouldn't also be a bad idea on its own to make sure that part is working.

These rules are several days old. I've just recently switched everything from webCoRE to RM and am finding variables are having quite a bit of issues...these and booleans alike. Rules are thinking variables are what they aren't. My wife just turned on her good morning routine and the Rules for me being in bed were triggered despite the fact that I'm obviously awake and the boolean was on false. I triggered the boolean to turn true then back to false and the rules reacted properly. This has been going on for a couple of days so I started monitoring the variables more consistently.


I also have a rule that is supposed to notify me if the set point changes. I don't even have this look at the variable. I ask it to look at the actual setpoint of the thermostat. I turned on logs and the hub recognizes the setpoint changes.

app:5802021-05-06 12:14:19.408 pm infoEcobee Notify: EcobeeTherm: Ecobee thermostatSetpoint 70

--- Live Log Started, waiting for events ---

However, it does nothing after.

dev:4062021-05-06 12:16:28.170 pm infothermblock is off

dev:4062021-05-06 12:16:26.035 pm infothermblock was turned off

dev:4062021-05-06 12:16:25.379 pm infothermblock was turned on

app:2662021-05-06 12:15:25.502 pm traceUpdates sent (283 / 2296ms)

dev:2222021-05-06 12:15:25.489 pm infoUpdated 2 objects (7ms)

dev:2212021-05-06 12:15:25.454 pm infoUpdated 2 objects (6ms)

dev:2172021-05-06 12:15:25.406 pm infoUpdated 10 objects (169ms)

app:2662021-05-06 12:15:25.205 pm infoPolling 521788528028 completed

app:2662021-05-06 12:15:25.124 pm info2 updates for 2 sensors (Master, Office)

app:2662021-05-06 12:15:25.012 pm info9 updates for 1 thermostat (Ecobee)

app:2662021-05-06 12:15:23.961 pm infoRequesting ( equipmentStatus runtime extendedRuntime sensors ) for thermostat Ecobee (521788528028) - [false]

app:2662021-05-06 12:15:23.947 pm infoPolling 521788528028

app:2662021-05-06 12:15:23.230 pm traceChecking for updates...

dev:3002021-05-06 12:15:21.503 pm infoDeVoe PWS - Weather Underground forecast data as of Thu May 06 12:15:21 EDT 2021.

dev:3002021-05-06 12:15:21.491 pm infoDeVoe PWS - Weather Underground observation data as of Thu May 06 12:15:21 EDT 2021.

dev:602021-05-06 12:14:20.587 pm infoFamily Room is off [digital]

dev:482021-05-06 12:14:20.483 pm infoDining Room is off [digital]

dev:572021-05-06 12:14:20.186 pm infoBath Hall is off [digital]

dev:1432021-05-06 12:14:19.961 pm infoBedroom switch is off

app:2662021-05-06 12:14:19.632 pm traceUpdates sent (1000 / 3639ms)

dev:2192021-05-06 12:14:19.585 pm infoUpdated 3 objects (4ms)

app:5802021-05-06 12:14:19.408 pm infoEcobee Notify: EcobeeTherm: Ecobee thermostatSetpoint 70

dev:2222021-05-06 12:14:19.398 pm infoUpdated 3 objects (4ms)

app:5792021-05-06 12:14:19.381 pm infoSet EcobeeSetPoint: EcobeeTherm: Ecobee thermostatSetpoint 70

dev:2212021-05-06 12:14:19.259 pm infoUpdated 3 objects (4ms)

dev:2182021-05-06 12:14:19.086 pm infoUpdated 3 objects (4ms)

dev:2202021-05-06 12:14:19.016 pm infoUpdated 3 objects (4ms)

dev:2232021-05-06 12:14:18.873 pm infoUpdated 4 objects (8ms)

dev:2172021-05-06 12:14:18.822 pm infoUpdated 27 objects (176ms)

app:2662021-05-06 12:14:18.619 pm infoPolling 521788528028 completed

app:2662021-05-06 12:14:18.521 pm info19 updates for 6 sensors (Chicos Room, Dining Room, Kids' Room, Master, Office, Playroom)

app:2662021-05-06 12:14:18.406 pm info23 updates for 1 thermostat (Ecobee)

app:2662021-05-06 12:14:16.743 pm infoRequesting ( equipmentStatus settings program events audio runtime extendedRuntime sensors ) for thermostat Ecobee (521788528028) - [false]

app:2662021-05-06 12:14:16.722 pm infoPolling 521788528028

app:2662021-05-06 12:14:16.026 pm traceChecking for updates...

dev:2172021-05-06 12:14:15.884 pm inforefresh() - calling pollChildren , deviceId = 521788528028

--- Live Log Started, waiting for events ---

I Do have a variable thermblock that I utilize for when the thermostat changes during automations. I set this to on and then off as I've with the other and it acts properly but that only seems for a short period of time

I wasn't refreshing action list. I was actually hitting "run actions." For some reason I think it started after I updated and rebooted yesterday. It's almost like the variables, except my string based dynamic ones, needed to be "reset" I don't know what else to call it. I'll keep monitoring them to see if they they continue to work properly.

app:4692021-05-06 01:14:54.182 pm infoSet CurrentTemp: DeVoe PWS temperature 50

--- Live Log Started, waiting for events ---

Nothing after that. Do I need to add a condition to the actions? "If CurrentTemp is not equal to PWS temp then set?"

These one's with conditions always seem to work. But that doesn't explain the Booleans acting weird.

java.util.NoSuchElementException: Cannot pop() an empty List on line 6889 (delayedActs)

I finally found the error. Any idea what this is?

Doing some research...I think I see what's happening. I split my rules into too many when I carried them over. I think to many rules are trying to fire at once. I'm going to have to likely restructure everything then.