Thank you for this tip. I was able to configure the Honeywell T5 thermostat with HA using the Homekit method you mentioned. I do NOT have any other homekit products in my setup at all. The key to discovering the T5 thermostats in your home network in HA is that they MUST be on the 2.4 ghz wifi band. I had to force my router to have my thermostats connect on the 2.4 ghz band and they were quickly discovered by HA and I was able to set these up in HA using the Homekit device using their 8 digit pairing code. Was a 1 minute setup once all the prerequisites were met.
I was able to get the T5 to pair by doing a reset → homekit on the thermostat! works well ![]()
By the way I did not have the 2.4/5ghz issue described earlier… the tstat had already been connected to the network with matching 2.4+5ghz ssid’s
I also removed it from SmartThings (phone app) and then did a homekit reset on the tstat touchscreen without needing a power cycle. The homekit device popped right up in HA ![]()
Very interesting…
do you have the code for this card , specially the fan part please ?
Here is the thermostat card with the fan section.
type: vertical-stack
cards:
- type: entities
entities:
- entity: climate.t9_thermostat
type: custom:simple-thermostat
step_size: 1
header:
icon: mdi:thermostat
style: |
:host {
{% if state_attr('climate.t9_thermostat','hvac_action')|string in 'idle' %}
--paper-item-icon-color: gray ;
color: gray;
{% elif state_attr('climate.t9_thermostat','hvac_action') |string in 'heating ' %}
--paper-item-icon-color: orange;
color: yellow ;
{% elif state_attr('climate.t9_thermostat','hvac_action') |string in 'cooling' %}
--paper-item-icon-color: dodgerblue;
color: yellow;
{% endif %}
}
layout:
mode:
headings: false
- square: false
type: grid
cards:
- show_name: true
show_icon: false
type: button
tap_action:
action: call-service
service: script.thermostat_fan_on
service_data: {}
name: 'On'
style: |
ha-card {
{% if states('sensor.thermostat_fan') == 'On' -%}
background: green;
{%- endif %}
}
- show_name: true
show_icon: false
type: button
tap_action:
action: call-service
service: script.thermostat_fan_circulate
service_data: {}
name: Circulate
style: |
ha-card {
{% if states('sensor.thermostat_fan') == 'Circulate' -%}
background: green;
{%- endif %}
}
- show_name: true
show_icon: false
type: button
tap_action:
action: call-service
service: script.thermostat_fan_auto
service_data: {}
name: Auto
style: |
ha-card {
{% if states('sensor.thermostat_fan') == 'Auto' -%}
background: green;
{%- endif %}
}
columns: 3
And the fan scripts. The circulate function is what causes the scripts to be more complex. I have a boolean I set if circulate is on. Also a timer with a default value of 20 minutes.
alias: Thermostat Fan Circulate
sequence:
- if:
- condition: state
entity_id: input_boolean.thermostat_fan_circulating
state: "off"
then:
- service: input_boolean.turn_on
target:
entity_id:
- input_boolean.thermostat_fan_circulating
data: {}
- service: switch.turn_on
metadata: {}
data: {}
target:
entity_id: switch.hvac_fan
- service: timer.start
data:
duration: "00:10:00"
target:
entity_id:
- timer.thermostat_fan_timer
mode: single
icon: mdi:fan-clock
alias: Thermostat Fan On
sequence:
- if:
- condition: state
entity_id: input_boolean.thermostat_fan_circulating
state: "on"
then:
- service: timer.cancel
metadata: {}
data: {}
target:
entity_id: timer.thermostat_fan_timer
- service: input_boolean.turn_off
target:
entity_id:
- input_boolean.thermostat_fan_circulating
data: {}
- service: switch.turn_on
metadata: {}
data: {}
target:
entity_id: switch.hvac_fan
mode: single
icon: mdi:fan
alias: Thermostat Fan Auto
sequence:
- if:
- condition: state
entity_id: input_boolean.thermostat_fan_circulating
state: "on"
then:
- service: timer.cancel
metadata: {}
data: {}
target:
entity_id: timer.thermostat_fan_timer
- service: input_boolean.turn_off
target:
entity_id:
- input_boolean.thermostat_fan_circulating
data: {}
- service: switch.turn_off
target:
entity_id:
- switch.hvac_fan
data: {}
mode: single
icon: mdi:fan-auto
switch.hvac_fan is the shelly switch
sensor.thermostat_fan is a template used to display on, circulating, auto
{% if is_state('input_boolean.thermostat_fan_circulating', 'on') %}Circulate{% elif is_state('switch.hvac_fan', 'on') %}On{% else %}Auto{% endif %}
Edit:
And also an automation to cycle the fan when circulating
alias: Thermostat Fan Circulate
description: ""
trigger:
- platform: event
event_type: "timer.finished "
event_data:
entity_id: timer.thermostat_fan_timer
condition:
- condition: state
entity_id: input_boolean.thermostat_fan_circulating
state: "on"
action:
- if:
- condition: state
entity_id: switch.hvac_fan
state: "on"
then:
- service: switch.turn_off
metadata: {}
data: {}
target:
entity_id: switch.hvac_fan
- service: timer.start
metadata: {}
data:
duration: "00:20:00"
target:
entity_id: timer.thermostat_fan_timer
else:
- service: switch.turn_on
target:
entity_id:
- switch.hvac_fan
data: {}
- service: timer.start
metadata: {}
data:
duration: "00:10:00"
target:
entity_id: timer.thermostat_fan_timer
mode: single
I’ve got 2 Z-Waves and they are fantastic. The most realiable devices in my setup.
I’ve got three new Honeywell T9 Thermostats I’m trying to connect. They are setup on the network and working via the app.
When I do the HomeKit install, all three are shown and available to choose from.
The are broadcasting a portion of their MAC address is how I can tell I’ve got the right/wrong one.
It just spins and spins, then after like 10min it’ll timeout with an error.
I tried disabling the 5ghz network and confirmed that the tstats are on 2.4ghz as suggested and that didn’t help.
Any assistance would be most appreciated. TIA
Woop, I figured it out.
Get the HA scanner running, go to the thermostat, under device settings is a Home Assist option, tap that, after a minute or so it’ll display a QR code with a #. Go back to the computer running the HA scan, it’ll change to a new screen and enter the # and it works.
Hope this is useful to someone.
Just awaiting delivery of a T6 (Z-Wave). Have confirmed with my geothermal folks that it will work and they will install and test for me…then I’ll deal with the connection to HA (which I hope is not too onerous). As a rural home I don’t want cloud anywhere.
Wise choice! I installed mine a couple of months ago. I had a little trouble understanding how to set up Away mode with HA until I realized the “Home/Away” function on the thermostat had to be disabled.
Thanks - will watch for that!!
I switched out my ecobee with Venstar T7950 about 6 months ago. No Cloud just local and it works better than anything I’ve had before. I’m glad I made the switch. I have 2 stage heat 1 stage cool downstairs. It tracks the runtime on all stages. It is meeting all my needs. Damn nice thermostat with built in API. Easy to integrate.
Care to share a little more about this? I’m looking to set up a thermostat to control baseboard heat in what’s essentially a 3-season porch at a vacation home. It’d be off more often than not. I’m debating how to control it and integrate that with a home/away scenario in Home Assistant.
My big concern is having it turning on the heat when not needed. As in, after power outages and such. I’m fine with defaulting to keeping the heat above freezing. I just don’t want to have to fight with the automation built into it.
So when you mention disabling things… I’m curious.
Have you looked at schedules to control your thermostat? I use multiple schedules and switch to my away schedule when I leave. Even through power outages it stays with the same schedule.
schedules, if you’re talking about the kind built into the thermostats, are useful if you have a predictable schedule. this situation will not. could be used for hours some days, or not at all for weeks.
I am talking about schedules inside HA.
@wkearney99, apologies for the delay—I’m currently traveling in the Amazon Jungle and away from my setup.
From memory: I used the Z-Wave UI to find and toggle off the specific configuration parameter that controls the thermostat’s internal Home/Away mode. This disabled the device’s built-in scheduling. I then replaced that logic with a custom HA automation to handle night setbacks and presence detection.
Since I’m away, I don’t have access to share the specific code right now, but hopefully, this points you in the right direction alongside the other suggestions here.