Reliable 0.5°F setpoint automation — Ecobee’s not working, open to any better path (hardware or software)
Running a custom Home Assistant automation that needs to command precise, half-degree (0.5°F) setpoints — not arbitrary fractions, just clean half-steps like 72.5, 73.0, 73.5.
Current setup (native Ecobee cloud integration) isn’t reliable for this. Over several weeks, roughly 1 in every several dozen fractional commands silently fails — no error, no confirmation, and the physical thermostat’s display shows the old setpoint was never actually applied. HomeKit Controller was also tried as a local bypass, but it rounds to whole-degree precision, so that’s not viable either.
The actual question: what’s genuinely working for people doing this kind of automation? Not asking specifically “how do I fix Ecobee” — if there’s a known fix or workaround for the Ecobee cloud integration specifically, great, I’d take it. But I’m just as interested in hearing “don’t bother, switch to X” if there’s hardware or a different integration path that just handles clean half-degree control reliably out of the box. Not attached to any particular brand or protocol (Z-Wave, Zigbee, WiFi with local API — all genuinely on the table).
What’s actually solved this for other people running similar setups?
Most HVAC systems are going to have at least 2°F of hysteresis plus minimum off times to avoid short-cycling the compressor, so 0.5°F setpoint resolution is kind of pointless…
I have EcoBee’s, so here’s a really simple answer/observation: Can you set half-degree increments on the EcoBee itself when in Fahrenheit mode? The answer is no. So what makes you think you can set it remotely?
From what I’ve read, if the system is set to Celsius then you can in fact set 0.5 degree increments. Which makes sense since 1 degree change in C is a 1.8 change in F, and hence more noticeable.
Fair point, and worth being precise about what the 0.5° increments are actually for here — this isn’t fine-grained reactive tracking, it’s the step size in a staged escalation ladder. The automation classifies conditions into tiers (normal/mild/moderate/severe/crisis) based on the temperature delta between zones, and each tier moves the setpoint by a different amount: mild = -0.5°, moderate = -1.0°, severe = -2.0°, crisis = -3.0°. The 0.5° isn’t meant to chase small wobbles — it’s the smallest available rung on that ladder.
Checked my actual installer settings on this — staging is set to Automatic, so there’s no fixed, user-visible swing/differential value; Ecobee’s own algorithm handles that dynamically. What I do have configured directly: a 5-minute minimum compressor on-time and 5-minute minimum off-time, which already guards against short-cycling independent of setpoint precision. So the 0.5° steps aren’t fighting against a wider hysteresis — they’re operating underneath time-based protection that’s already doing that job.
Followed up on this — you were right that switching to Celsius does give half-degree native increments. But running the actual math, 0.5°C works out to roughly 0.9°F, which is essentially equivalent to whole-degree Fahrenheit stepping, not finer control. So I’m not sure switching units actually buys anything on the precision side — could you help me understand what you meant by “more noticeable”? Genuinely open to the idea I’m missing something here, but as I understand it, this would trade one coarse-ish grid for a different coarse-ish grid, not solve for finer resolution.
Separately — the real issue I’m chasing isn’t precision, it’s that setpoint commands occasionally fail to register at all. Do you have any reason to think that failure mode would behave differently if the system were run in Celsius rather than Fahrenheit? Planning to test this directly tomorrow (querying Ecobee’s cloud API alongside HA to see where a failed command actually breaks down) — curious if you’ve seen anything suggesting the unit itself affects whether commands land.
I’m taking a guess here, but I took a look at the EcoBee API and it’s designed to accept whole integers when in Fahrenheit mode. So if you are sending numbers like 72.5 then more than likely they are being ignored or possibly rounded up, hence seeming like random failures.
You’re asking the thermostat to do something it wasn’t designed to do, and as others pointed out, most residential thermostats only deal whole number setpoints when dealing with Fahrenheit.