Affiliate Disclosure: This page has affiliate links, which earn us commission at no cost to you.
I’ve been using these automations for the last month or so, and they’ve been extremely useful! This article will show you how I set everything up. To see the automations in action, watch the video here.
All of the automations I created are in Home Assistant. I’m using this HACs integration. As mentioned in the video DREO is also working on an integration that you can find here.
Table of Contents
Fan + A/C
Circulating the air when the A/C is on has been VERY helpful to spread out the cool air. I’m using an Ecobee thermostat, and when it’s on the automation triggers to turn on a DREO fan.
If you are using the visual editor look for “Current action” is “Cooling.” If you are using just YAML it is the “hvac_action” is “cooling.”

trigger: state
entity_id:
- climate.kitchen_homekit_2
to: cooling
attribute: hvac_action
For the action, just turn on the fan! In the last section I will explain how I got the fans to work with Home Assistant and Google Assistant.
Napping
I have a fan in my bedroom and it works great because it’s quiet and is always pointed straight at my bed. When I lie down on my bed during the day, the pressure sensor detects me and turns on the fan if it’s warm in the room.
Then when I get out of bed during the day, it turns the fan off!
alias: Nap time
description: ""
triggers:
- entity_id: binary_sensor.withings_in_bed_reed
to: "on"
trigger: state
id: reed_in_bed
- entity_id:
- binary_sensor.withings_in_bed_reed
to: "off"
trigger: state
id: reed_out_of_bed
conditions:
- condition: time
before: "17:00:00"
after: "10:00:00"
actions:
- choose:
- conditions:
- condition: trigger
id:
- reed_in_bed
sequence:
- device_id: abcdefg123456
domain: cover
entity_id: cover.master_bedroom_left_shade
type: set_position
position: 0
- device_id: abcdefg123456
domain: cover
entity_id: cover.master_bedroom_right_shade
type: set_position
position: 0
- condition: numeric_state
entity_id: sensor.master_bedroom_dreo_fan_temperature
above: 75
- action: fan.turn_on
metadata: {}
data: {}
target:
entity_id: fan.master_bedroom_dreo_fan_2
- conditions:
- condition: trigger
id:
- reed_out_of_bed
sequence:
- action: fan.turn_off
metadata: {}
data: {}
target:
entity_id: fan.master_bedroom_dreo_fan_2
mode: single
It’s all in a single automation to keep it in one place using Trigger IDs (“reed_in_bed” and “reed_out_of_bed”). Of course, you could separate it out into two automations if you prefer that.
Changing speeds from distance
mmWave sensors are getting so accurate now that you could change the fan speed if you are close or far away. The Apollo MSR-2 mmWave sensor is a great option for that.
Or if you want the fan to do it all by itself and follow you, then the DREO TurboPoly Fan 707S can actually do that out of the box. Pretty sweet!
Quick cool off
When I get home and the temperature outside is extremely hot, then I want the fan on high. You could use lots of different options for outdoor temperature, but I’m using a Tempest Weather Station in my back yard.
alias: Family room Dreo fan on high when hot outside and we come home
description: ""
triggers:
- entity_id: group.all_phones
from: not_home
to: home
trigger: state
- trigger: state
entity_id:
- sensor.reed_current_location_phone
to: home
from: away
conditions:
- condition: time
after: "09:00:00"
before: "19:00:00"
- condition: numeric_state
entity_id: sensor.st_00050086_feels_like
above: 100
actions:
- action: script.dreo_family_room_fan_speed_high
metadata: {}
data: {}
- delay:
hours: 0
minutes: 15
seconds: 0
milliseconds: 0
- action: script.dreo_family_room_fan_speed_low
metadata: {}
data: {}
mode: single
Here are the scripts that change the speed, because the fan we are using isn’t fully compatible with Home Assistant yet.
sequence:
- action: google_assistant_sdk.send_text_command
data:
command: Set Family room fan Dreo speed to 8
- action: number.set_value
metadata: {}
data:
value: "15"
target:
entity_id: number.family_room_fan_vertical_angle
alias: Dreo Family Room Fan Speed High
description: ""
sequence:
- action: google_assistant_sdk.send_text_command
data:
command: Set Family room fan Dreo speed to 3
- action: number.set_value
metadata: {}
data:
value: "15"
target:
entity_id: number.family_room_fan_vertical_angle
alias: Dreo Family Room Fan Speed Low
description: ""
I will explain at the end of the article how I’m using Google Assistant to send voice commands.
Keeping it quiet
But if the fan is on high and the TV turns on, I would rather the fan turn the speed down. I don’t need to crank the volume on the TV and have Elmo’s voice blasting through our house!
I’m using an Apple TV and the integration into Home Assistant is great. When the TV starts playing something and the fan is on, the fan automatically goes down to a low speed.
alias: Family room Dreo fan low if TV is playing
description: ""
triggers:
- entity_id:
- media_player.family_room_tv_2
to: playing
trigger: state
conditions:
- condition: numeric_state
entity_id: number.family_room_fan_vertical_angle
above: 0
actions:
- action: script.dreo_family_room_fan_speed_low
metadata: {}
data: {}
mode: single
sequence:
- action: google_assistant_sdk.send_text_command
data:
command: Set Family room fan Dreo speed to 3
- action: number.set_value
metadata: {}
data:
value: "15"
target:
entity_id: number.family_room_fan_vertical_angle
alias: Dreo Family Room Fan Speed Low
description: ""
Empty room
I also don’t want the fan running if no one is in the room. The fan can start from the A/C running if no one is in the room to circulate air, so if the A/C stops and no one is still in the room the fan will turn off.
So for the first automation, I’m using a mmWave sensor and a PIR sensor. If neither has been triggered in 20 minutes then it checks to make sure the other hasn’t seen anything in the last 15 minutes either. That way they both have to be clear and no one is in the room for sure.

alias: Turn off Family room Dreo fan if no one is around
description: ""
triggers:
- trigger: state
entity_id:
- binary_sensor.hue_motion_sensor_1_motion
to: "off"
for:
hours: 0
minutes: 20
seconds: 0
- trigger: state
entity_id:
- binary_sensor.presence_sensor_fp2_8576_presence_sensor_4
to: "off"
for:
hours: 0
minutes: 20
seconds: 0
conditions:
- condition: and
conditions:
- condition: state
entity_id: binary_sensor.presence_sensor_fp2_8576_presence_sensor_4
state: "off"
for:
hours: 0
minutes: 15
seconds: 0
- condition: state
entity_id: binary_sensor.hue_motion_sensor_1_motion
state: "off"
for:
hours: 0
minutes: 15
seconds: 0
actions:
- action: script.turn_off_dreo_family_room_fan
metadata: {}
data: {}
mode: single
Then for the second automation that runs when the A/C stops running. It checks to see if anyone is in the room using the mmWave sensor and PIR motion sensor used in the previous automation.

alias: Family room Dreo fan turn off if A/C stopped running
description: ""
triggers:
- trigger: state
entity_id:
- climate.kitchen_homekit_2
to: idle
attribute: hvac_action
for:
hours: 0
minutes: 10
seconds: 0
conditions:
- condition: time
after: "07:00:00"
before: "23:30:00"
- condition: and
conditions:
- condition: state
entity_id: binary_sensor.presence_sensor_fp2_8576_presence_sensor_4
state: "off"
for:
hours: 0
minutes: 10
seconds: 0
- condition: state
entity_id: binary_sensor.hue_motion_sensor_1_motion
state: "off"
for:
hours: 0
minutes: 10
seconds: 0
actions:
- action: script.turn_off_dreo_family_room_fan
metadata: {}
data: {}
mode: single
Remember for later
Okay so this is my new favorite automation and it’s REALLY coming in handy for all sorts of devices! Basically when either a room or the whole house is about to shut off, the smart home takes a “snapshot” of certain devices and can restore the state of those devices when you return.
I’m using this on the fan and my computer speakers in my studio. Both are devices I manually turn on from a dashboard on my desk. Well it’s annoying to turn them back on if I left for just a few minutes and everything shuts off. So here’s how it works.
For the automation that turns off my studio. The first action (and this is important that it is the first) creates a scene of those devices I want to remember. If you add this action at the end, after you already turn everything off, it would not work. Yes I made that mistake the first time I set this up. 🤦♂️

action: scene.create
metadata: {}
data:
scene_id: studio_fan_temp_scene
snapshot_entities:
- switch.smart_power_strip_socket_1
- switch.computer_speakers
Then for the automation that turns everything back on when I walk in the room, there’s an action to run that scene I created in the shutdown automation.
But I don’t want the scene to run if it’s been over an hour since I’ve been in the room. That would be annoying if it was returning to a previous state from a long time ago.
So if certain light strips have been off for over an hour, it will skip the scene. I’m sure there is a better way of doing this but it works so I don’t care.

choose:
- conditions:
- condition: state
entity_id: light.kasa_light_strips_new_fav_2
state: "off"
for:
hours: 1
minutes: 0
seconds: 0
sequence: []
default:
- action: scene.turn_on
metadata: {}
data: {}
target:
entity_id: scene.studio_fan_temp_scene
enabled: true
Temperature sensor
When our theater room gets warm, then the fan will turn on when everything else turns on.
choose:
- conditions:
- condition: numeric_state
entity_id: sensor.purifier_tower_fan_temperature
above: 78
sequence:
- action: fan.set_percentage
metadata: {}
data:
percentage: 16
target:
entity_id: fan.purifier_tower_fan
enabled: true
alias: Turn on fan if hot
Lower the CO2
Using a CO2 sensor has been eye-opening to see how fast it can go up when I’m working at the computer! To fix that, I have a portable A/C unit near my desk and it clears out all the stuffy air so fast in the room.
I also have a few other conditions to make sure this runs only when it’s supposed to. It checks if I’m in the room using presence detection and that my computer is on. It also can only run once every 2 hours.
alias: CO2 High in Studio
description: Flash lights red and fans on
triggers:
- entity_id:
- sensor.aranet4_carbon_dioxide
above: 1100
trigger: numeric_state
conditions:
- condition: state
entity_id: binary_sensor.macbook_pro_2_active
state: "on"
- condition: numeric_state
entity_id: sensor.macbook_pro_2_displays
above: 1
- condition: template
value_template: |-
{# run once ever 2 hours #}
{% if states.automation.co2_high_in_studio.last_triggered is not none %}
{% if as_timestamp(now()) | int - as_timestamp(states.automation.co2_high_in_studio.attributes.last_triggered)
| int > (2 * 3600) %} true {% else %} false
{% endif %}
{% else %}
false
{% endif %}
- condition: state
entity_id: sensor.reed_room
state: studio_esp
actions:
- action: climate.turn_on
metadata: {}
data: {}
target:
entity_id: climate.air_conditioner_air_conditioner
mode: single
Air fryer light bulb
Walking up to the air fryer and have the light automatically turn on when it’s cooking has been so convenient! I’m using the Apollo MSR-2 mmWave sensor and if I’m in Zone 1 or really close to it, the light turns on, if the air fryer is cooking.
alias: Kitchen Air Fryer light on from mmWave
description: ""
triggers:
- trigger: state
entity_id:
- binary_sensor.apollo_msr_2_c655b0_radar_zone_1_occupancy
to: "on"
conditions:
- condition: state
entity_id: sensor.chefmaker_status
state: cooking
actions:
- action: switch.turn_on
metadata: {}
data: {}
target:
entity_id: switch.chefmaker_light
mode: single
Using Google Assistant voice commands in Home Assistant
Some of the DREO fans in Home Assistant were missing controls. I’m sure eventually they will be added, but for now I’m using Google Assistant voice commands sent from a Home Assistant automation to control the fan.
There are some steps needed to get this set up if you haven’t done it before. Here is the page to do that.
Once it’s all set up, the commands are really easy to do in Home Assistant. Here is how I turn a fan on.

action: google_assistant_sdk.send_text_command
data:
command: Turn on Family room fan Dreo
So whatever the Google Assistant voice command is, just put that in the “command” and you are good to go!
I hope this article helps you set up automations! If you want to make sure you see future content like this, make sure you subscribe on YouTube.