Honeywell Thermostat integration without going to the cloud

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 :slight_smile:

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 :+1:

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

2 Likes