Honeywell RTH9585WF1004 Thermostat Temp Setting Issues Workaround (Hope This Helps!)

Background: I have an oil fired boiler and a heat pump. I was manually going from one to the other and decided it was time to make them smart. For the boiler I used a simple z-wave thermostat, all I needed was on & off but for the heat pump which is 75% of my heating and cooling I bought a Honeywell RTH9585WF1004. Those who have one know the pains. Not sure if the issues are specific to the thermostat or to Total Connect.

My heating / cooling switches as the temp and time of day does but it is pretty simple. Since someone is usually always home my weekly schedule is always the same.

Temp < 36F - Boiler, Temp follows boiler thermostat schedule
Temp > 37F, < 54F - Heat Pump (Heat Mode, Fan Auto) Temp set at 72F always
Temp > 55F, < 64F - Heat Pump (Auto Mode, Fan Auto) Temp Day 71F - 74F, Temp Night 70F - 73F
Temp >65F Heat Pump (Cool Mode, Fan On) Temp Day 74F, Temp Night 73F

As I said no rocket science here… So on to the issues.

Getting everything to switch between systems and modes has worked no problem the issue has been setting temps in any mode. Kind of a hit and miss. One thing that did help me was turning off the scheduling mode on the thermostat as I read in another post. No problem use HA to do the schedule since mine is simple anyway.
(SETTINGS>Preferences>Advanced Perferences>Scheduling Options>Non-Programable)
The issue I had then in any mode was temp values would sometimes change as expected but other times no changes and no errors or I would get invalid temp or out of range errors.

What I found… Without going into a bunch more detail, after watching what the errors were and some testing I found that if I set the “target_temp_high: and target_temp_low:” to a much higher and lower value than I wanted it all worked every time. So no matter what those values get set first with a second delay for them to digest. The second delay is not long enough for the thermostat to react to it from what I have seen so far so no false stop and starts.

This example is setting my night temp. Since heat is always set to 72F I us the “Choose Action” to check to see if I’m in “COOL or AUTO” and then set the temp accordingly. No matter what I set “target_temp_high: 79 and target_temp_low: 69” first and have found my final values always work after that. The one second delay’s give the system time to digest the commands.

This example is part of my night/day schedule… I set my night temp for either Auto or Cool modes.

- id: '1600181325003'
  alias: Heat Pump Night Temp
  description: ''
  trigger:
  - at: '22:00:00'
    platform: time
  condition: []
  action:
  - choose:
    - conditions: ### look for the "cool mode" if it isn't found
      - condition: state                      ### it drops to next condition         
        entity_id: climate.thermostat
        state: cool
      sequence:
      - data:  ### setup the high-low
          target_temp_high: 79     
          target_temp_low: 69
        entity_id: climate.thermostat
        service: climate.set_temperature
      - delay: 00:00:01
      - data:  ### set the temp
          temperature: 73
        entity_id: climate.thermostat
        service: climate.set_temperature
    - conditions: ### here I look for condition 2 "heat_cool (auto) mode"        
      - condition: state               ### if it isn't found the automation exits
        entity_id: climate.thermostat
        state: heat_cool
      sequence:
      - data:  ### setup the high-low
          target_temp_high: 79
          target_temp_low: 69
        entity_id: climate.thermostat
        service: climate.set_temperature
      - delay: 00:00:01
      - data:  ### set the temp
          target_temp_high: 73
          target_temp_low: 70
        entity_id: climate.thermostat
        service: climate.set_temperature
    default: []
  mode: single 

So the 2 main things I have found that let me control this thermostat reliably is turning off scheduling, I have not played around to see if it is really necessary but I’m not using it anyway. And setting the target high and low temps with a wide gap before any temp change. So far no issues and I am finally a happy customer. If anything does show up I’ll come back and edit this write up.

Thanks for the info. I’m about to replace our electric heater with a heat pump and air handler and my Insteon thermostat won’t handle a heat pump setup. I’m in the process of specking out a new thermostat but since I don’t have the heat pump yet and I only have 5 wires (I guess some heat pumps/thermostats need 7+?) it’s hard to figure out what will work. Whatever I get, it needs to work with Home Assistant. Other than this issue, what are your thoughts on this unit? Our HVAC guy said the Honeywell 8000 wire but that’s the non-color one. I’m wondering if this one is just a color version of that?

Not sure if they are the basically the same or not. I’m very happy with the one I have now that I have this issue figured out. It seems the the high/low settings are ever present no matter what mode. Keep in mind there must be at least a 3 degree separation between high and low. An example of what this means is if you are trying to set a temp in heat mode to 72 but the last high temp that was set in auto mode was 74 you get an “out of range” message because of the 3 degree rule, high temp would need to be 75 for it to work. My guess is if it is using the Total Connect app the issues will be the same no matter what thermostat because of the API. When using the Total Connect app directly it automatically bumps the high and low settings keeping the 3 degree spread.

Not sure what the advantage of the 8000 is other than it costs a lot more. I don’t see it listed on the Honeywell site.

For anyone still having issues with this here are the current examples of each mode and setting the temp, this is from my night temperature settings I have one for daytime.

NOTE: for the heat setting it will use the target_temp_low: setting by default so no need to set temperature again like the cool mode.

alias: Heat Pump Temp Night
description: ''
trigger:
  - at: '22:00:00'
    platform: time
condition: []
action:
  - choose:
      - conditions:
          - condition: state
            entity_id: climate.thermostat
            state: cool
        sequence:
          - data:
              target_temp_high: 76
              target_temp_low: 70
            service: climate.set_temperature
            target:
              entity_id: climate.thermostat
          - delay:
              hours: 0
              minutes: 0
              seconds: 5
              milliseconds: 0
          - data:
              temperature: 73
            service: climate.set_temperature
            target:
              entity_id: climate.thermostat
      - conditions:
          - condition: state
            entity_id: climate.thermostat
            state: heat_cool
        sequence:
          - data:
              target_temp_high: 75
              target_temp_low: 69
            service: climate.set_temperature
            target:
              entity_id: climate.thermostat
          - delay:
              hours: 0
              minutes: 0
              seconds: 5
              milliseconds: 0
          - data:
              target_temp_high: 73
              target_temp_low: 70
            service: climate.set_temperature
            target:
              entity_id: climate.thermostat
      - conditions:
          - condition: state
            entity_id: climate.thermostat
            state: heat
        sequence:
          - data:
              target_temp_high: 75
              target_temp_low: 72
            service: climate.set_temperature
            target:
              entity_id: climate.thermostat
    default: []
mode: single