swingerman / ha-dual-smart-thermostat

The `dual_smart_thermostat` is an enhaced verion of generic thermostat implemented in Home Assistant. It uses several sensors and dedicated switches connected to a heater and air conditioning under the hood.
https://github.com/swingerman/ha-dual-thermostat
Apache License 2.0
121 stars 20 forks source link

run blower fan for circulation #194

Closed bughattiveyron closed 4 months ago

bughattiveyron commented 4 months ago

Curious if I am not reading something right, or if this would be an enhancement. I have an hvac system with 3 relays, each relay for heating, cooling and blower fan. My hvac board logic knows to cut the blower fan if the heat is on (gas) but for the cooling, i have to manually turn on the blower fan. Also I want to be able to circulate air a few times an hour if the climate does not call for turning the heating/cooling on.

Below is my config

  - platform: dual_smart_thermostat
    name: Climate_Thermostat
    heater: switch.climate_control_heater
    cooler: switch.climate_control_ac
    target_sensor: sensor.average_whole_house_temp
    min_temp: 70
    max_temp: 74
    ac_mode: false
    target_temp: 71
    target_temp_high: 74
    target_temp_low: 70
    cold_tolerance: 0.3
    hot_tolerance: 0
    min_cycle_duration:
      seconds: 60
    keep_alive:
      minutes: 3
    initial_hvac_mode: "off" # hvac mode will reset to this value after restart
    away: # this preset will be available for all hvac modes
      temperature: 74
      target_temp_low: 70
      target_temp_high: 74
    home: # this preset will be available only for heat or cool hvac mode
      temperature: 71
      target_temp_low: 70
      target_temp_high: 74
    precision: 0.1
    target_temp_step: 0.5

Any help would be greatly appreciated

swingerman commented 4 months ago

With the latest release, you should be able to keep the fan on with the cooler.

For that, you need to define a fan and set the: fan_on_with_ac option to true:

heater: switch.climate_control_heater
cooler: switch.climate_control_ac
fan: switch.climate_control_fan
fan_on_with_ac: true

You don't need to set ac_mode

bughattiveyron commented 4 months ago

I am a bit confused, I don't have issues keeping the fan on with the cooler, I want to be able to circulate the air with just the fan when the ac/heater is not on. For example, check if ac/heater has run in the last 20 minutes, if not, turn on blower fan for 5 minutes and reset 20 minute timer, then do again. If the ac or heater kicks on, then reset timer.

swingerman commented 4 months ago

OK.

You will still need to configure the fan property. After that, you can turn on the fan mode with automation. (hvac_mode->fan_only)

bughattiveyron commented 4 months ago

SO I have tried to write a couple automations a few different ways and I am noticing that after setting the dual smart thermostat to fan only and turning on the fan that it cuts off prematurely. I tried for a 3 min every 20 minutes and now i am trying a 12 min every hour. This last test, the fan cut off after 2-3 minutes.

Config

climate:
  - platform: dual_smart_thermostat
    name: Climate_Thermostat
    heater: switch.climate_control_heater
    cooler: switch.climate_control_ac
    fan: switch.climate_control_fan
    fan_on_with_ac: true
    target_sensor: sensor.average_whole_house_temp
    min_temp: 68
    max_temp: 74
    target_temp: 70
    target_temp_high: 76
    target_temp_low: 68
    cold_tolerance: 0.3
    hot_tolerance: 0
    min_cycle_duration:
      seconds: 300
    keep_alive:
      minutes: 3
    initial_hvac_mode: "heat_cool" # hvac mode will reset to this value after restart
    sleep: # this preset will be available for all hvac modes
      temperature: 70
      target_temp_low: 69
      target_temp_high: 71
    away: # this preset will be available for all hvac modes
      temperature: 72
      target_temp_low: 68
      target_temp_high: 74
    home: # this preset will be available only for heat or cool hvac mode
      temperature: 69
      target_temp_low: 68
      target_temp_high: 71
    precision: 0.1
    target_temp_step: 0.5

automation

alias: Loop Fan
description: ""
trigger:
  - platform: time_pattern
    hours: /1
condition: []
action:
  - service: climate.set_hvac_mode
    data:
      hvac_mode: fan_only
    target:
      entity_id: climate.climate_thermostat
  - service: switch.turn_on
    target:
      entity_id: switch.climate_control_fan
    data: {}
  - delay:
      hours: 0
      minutes: 12
      seconds: 0
      milliseconds: 0
  - service: switch.turn_off
    target:
      entity_id: switch.climate_control_fan
    data: {}
mode: restart

Other automation, the one I prefer to use

alias: Run fan for 3 minutes every 15 minutes
description: ""
trigger:
  - platform: time_pattern
    minutes: /20
action:
  - parallel:
      - condition: template
        value_template: "{{ is_state('switch.climate_control_fan', 'off') }}"
      - condition: template
        value_template: "{{ is_state('switch.virtual_heater_fan', 'off') }}"
  - service: switch.turn_on
    metadata: {}
    data: {}
    target:
      entity_id: switch.climate_control_fan
  - delay:
      hours: 0
      minutes: 3
      seconds: 0
      milliseconds: 0
  - service: switch.turn_off
    target:
      entity_id:
        - switch.climate_control_fan
    data: {}
    enabled: true
swingerman commented 4 months ago

You can also try to set a lower target temperature in your automation, as the fan works like a cooler.

swingerman commented 4 months ago

Closing this due to inactivity