I recently had a quietcool fan installed, and this thing is pretty great! Trouble is that it’s sold with this sort of RF companion remote that doesnt make home automation easy, and their sales folks opine about having to learn about new technologies when asked about home automation.
Their wiring diagram makes it pretty clear:
Essentially there are power wires and speed wires. Shared ground, and shared neutral.
The power wires stay connected all the time, and the thing to attach the relay to is the 3 speed wires. There’s blue, red and yellow, and each corresponds to a speed.
Here’s the wiring diagram i made (shoddily)
And here’s what it looks like in meatspace:
I used some extra wiring I bought at home depot to create the extra leads required for the hot wire. I just used one wire nut and put those three, plus the bit from the romex into it to fork that out, so essentially what we have here is a relay system that lets you select which relay to turn on, and whichever one goes on, that sets the fan speed. White from the fan goes to white on the romex, and same with ground - the only stuff going into the relay is the hot wire (black) and the three colored speed wires.
I wasn’t sure what would happen if I gave more than one speed wire power at the same time, so I wrote an automation to make sure only one relay could be on at a time:
alias: whole_house_fan_relay_rules
description: makes sure only one relay can be on at a time.
trigger:
- platform: state
entity_id:
- switch.multirelay_2
id: relay1_on
from: "off"
to: "on"
- platform: state
entity_id:
- switch.multirelay_2_2
from: "off"
to: "on"
id: relay2_on
- platform: state
entity_id:
- switch.multirelay_3
from: "off"
to: "on"
id: relay3_on
condition: []
action:
- if:
- condition: trigger
id: relay1_on
then:
- type: turn_off
device_id: b8400563518b0e56437de44f632f485e
entity_id: switch.multirelay_2_2
domain: switch
- type: turn_off
device_id: b8400563518b0e56437de44f632f485e
entity_id: switch.multirelay_3
domain: switch
- if:
- condition: trigger
id: relay2_on
then:
- type: turn_off
device_id: b8400563518b0e56437de44f632f485e
entity_id: switch.multirelay_2
domain: switch
- type: turn_off
device_id: b8400563518b0e56437de44f632f485e
entity_id: switch.multirelay_3
domain: switch
- if:
- condition: trigger
id: relay3_on
then:
- type: turn_off
device_id: b8400563518b0e56437de44f632f485e
entity_id: switch.multirelay_2
domain: switch
- type: turn_off
device_id: b8400563518b0e56437de44f632f485e
entity_id: switch.multirelay_2_2
domain: switch
mode: single
After that, I created a script to run behind the scenes of what would be a button:
alias: fan_cycle
sequence:
- if:
- condition: state
entity_id: switch.multirelay_2
state: "on"
then:
- service: switch.turn_off
data: {}
target:
entity_id: switch.multirelay_2
- service: switch.turn_on
data: {}
target:
entity_id: switch.multirelay_2_2
- stop: ""
- if:
- condition: state
entity_id: switch.multirelay_2_2
state: "on"
then:
- service: switch.turn_off
data: {}
target:
entity_id: switch.multirelay_2_2
- service: switch.turn_on
data: {}
target:
entity_id: switch.multirelay_3
- stop: ""
- if:
- condition: state
entity_id: switch.multirelay_3
state: "on"
then:
- service: switch.turn_off
data: {}
target:
entity_id: switch.multirelay_3
- stop: ""
- if:
- condition: state
entity_id: switch.multirelay_2
state: "off"
- condition: state
entity_id: switch.multirelay_2_2
state: "off"
- condition: state
entity_id: switch.multirelay_3
state: "off"
then:
- service: switch.turn_on
data: {}
target:
entity_id: switch.multirelay_2
- stop: ""
mode: single
icon: mdi:fan
Then I created a button that would cycle through all the relays, giving me a single button I can use from the mobile HA app on android to set the fan speed!
type: custom:mushroom-template-card
entity: script.fan_cycle
primary: Whole house fan
secondary: >-
{% if is_state('switch.multirelay_2', 'on') %} Low {% endif %} {% if
is_state('switch.multirelay_2_2', 'on') %} Medium {% endif %} {% if
is_state('switch.multirelay_3', 'on') %} High {% endif %} {% if
is_state('switch.multirelay_2', 'off') and is_state('switch.multirelay_2_2',
'off') and is_state('switch.multirelay_3', 'off') %} off {% endif %} {% if
is_state('switch.whole_house_fan', 'on') %} :: Master On {% else %} :: Master
Off {% endif %}
icon: mdi:fan
icon_color: |-
{% if states('switch.multirelay_2') == 'on' %}
yellow
{% endif %}
{% if states('switch.multirelay_2_2') == 'on' %}
orange
{% endif %}
{% if states('switch.multirelay_3') == 'on' %}
red
And the finished result!:
It totally works great, and I’ve even been able to create some automations that will fire the fan if the environmental conditions suit correctly in that gray-area between needing to run the AC and ‘the fan is good enough’.
happy hacking!