Which of these thermostats have the best experience with HA?

Awesome. Thanks for the reply.

Iā€™d like to connect with you on this topic. I created something similar without even knowing it was already done.
My heartburn right now, is that thermostat is going to stage 2 (heat for now) quite fast, which I donā€™t like. Also it gets no time to go back to stage 1 before going idle, despite my setting.

What I am doing is I am ++ 1F the set temp to acomodate for ambient temp raising faster where the tstat is, vs the room calling for heat which is not yet to temperature. I also have dampers BTW

@BO1
I think you might want to check this T6 forum post for info on how to configure a 2 stage system.

My T6 thermostat entity_id is climate.thermostat
In order to get my T6 to have a 1 degree deadband I made the following automations:

automation:
  - alias: increase temp 1 degree
    trigger:
      ##### HVAC actively heating
      - platform: template
        value_template: "{{ not(is_state_attr('climate.thermostat', 'hvac_action', 'idle')) }}"
    condition: "{{ (state_attr('climate.thermostat', 'temperature')|int(0) ) <= 68 and (is_state('climate.thermostat', 'heat')) }}"
    action:
      - service: climate.set_temperature
        data:
          entity_id: climate.thermostat
          temperature: "{{ state_attr('climate.thermostat', 'temperature')|int(0) + 1 }}"
          
  - alias: reduce temp 1 degree
    trigger:
      ##### HVAC NOT actively heating
      - platform: template
        value_template: "{{ is_state_attr('climate.thermostat', 'hvac_action', 'idle') }}"
    condition: "{{ (is_state('climate.thermostat', 'heat')) }}"
    action:
      - service: climate.set_temperature
        data:
          entity_id: climate.thermostat
          temperature: "{{ state_attr('climate.thermostat', 'temperature')|int(0) - 1 }}"

The increase temp 1 degree automation checks when the thermostat changes from the idle state, by looking at the climate.thermostat:hvac_action attribute, and it raises the thermostat setpoint by 1 degree, which makes the thermostat keep heating to 69 degrees. As soon as the thermostat goes back to the idle mode, the reduce temp 1 degree automation changes the thermostat setpoint to 68 degrees.

I donā€™t remember why I have the condition to check if the temperature setpoint is <= 68 degrees. It might not be necessary. I think it was so it didnā€™t conflict with the opposite automation that I have for cooling, which changes the setpoints in the opposite direction, but the check for the thermostat being in heat mode should cover thatā€¦dunno.

Anyway, if your thermostat entity_id is climate.thermostat this will probably work to create a 1 degree(ish) deadband. You can adjust it to 2 degrees by changing the temperature: "{{ state_attr('climate.thermostat', 'temperature')|int(0) + 1 }}" lines to +/- 2.

This is a graph of some recent data (itā€™s been cold): Blue is air temperature, Orange line is thermostat setpoint, Orange shading is thermostat in heating mode.

image

The thermostat is set to 68, but sometimes it turns on before the air temperature hits 68 degrees because itā€™s ā€œsmartā€ and is guessing that the air temperature is about to drop to 68 degrees. As soon as the thermostat turns on the heat, the automation changes the setpoint to 69 degrees, but the thermostat keeps heating to 69.5 degrees because it does what it wants.

side note:
I also have the automation set the fan to ā€œLowā€ for a few minutes after the heat turns off because the thermostat canā€™t seem to do that and thereā€™s still residual heat in the furnace to blow around the house.

2 Likes

Thank you.

I know this is an old post, but in case anyone gets here through google like I did:

You can set the cycle rate through the Installer Setup Options menu on the thermostat itself and it works. If you google ā€œTH6320ZW2003 manual pdfā€ the first result is a version of the manual with all codes needed for 2 stage heating/cooling, cycle rate, etc.