TCC integration (and more?) using speculative values

In the very recent past (last few weeks), the Honeywell thermostat Total Comfort Connect integration seems to have significantly changed it's behavior. I'm unsure if it's broader across HA, or TCC integration specific, or even a change on the TCC cloud side (though I don't think it's this).

I've seen this in several cases, but I'll use the most extreme as an example: In the past, when I am in hold / permanent mode with "vacation mode" type temperatures set, and I send a command to set preset_mode to "none" (revert to the "I'm home" schedule), it typically took 30+ seconds for the high/low temperatures to reflect their target state. In fact, it often took multiple update cycles before both the high and low show the final states (eg: one would change, then later the other would change). Now, HA seems to be speculatively setting the target state immediately.

I'm unsure if it's setting the speculative values before it even sends the request to the TCC cloud, or only after, but a wait template returns essentially immediately.

If I add a delay of several seconds (eg 10s) after the set operation, and then do an entity update, I can sometimes get the system to show me the "old values" and then watch them change to the target several seconds later. With a 5s delay, I only get the speculative values, even after the entity update, so I assume it's being debounced or something. And 10s doesn't seem to be enough for moving back to preset "none". This seems to confirm that it's likely HA speculatively accepting the new targets before they are actually applied.

From prior experience, TCC is very flaky and often requires retries. In fact, it often requires a 10min cool-down which my retry mechanism honors. But if it's now using speculative values, I don't have a good way to know if a retry is even needed. All I can think of doing is poll for N minutes and see if the current value "drifts away" from the desired targets, and if it drifts away, assume failure... And hope nobody else changed the thermostat value in the meantime such that this is a false failure. With the prior scheme, I'd typically know in a few seconds if the request succeeded (most of the time), and if not, quickly retry or do a cool-down.

Can anyone confirm my speculation is correct? And if so, are there any suggestions on how I can best reliably make my integration work?

1 Like

After significantly more testing, I believe the TCC server has changed, and likely not the HA side. It's returning the newly set values MUCH FASTER than it used to. I'm not yet sure if it's speculative, or simply much improved. Tbd...

1 Like