Controlling XtremeAir Range Hood via Broadlink RM4 Mini, tomwpublic/hubitat_broadlink, and Rule Machine

For future searchers, I can now control (mostly) my new XtremeAir range hood fan and lights. (They have a few models, mine is the SP05-I36.) The integration with Hubitat is... good enough? Its all offline after initial setup, which I like. Recording the how-to here for posterity and future searchers:

The IR remote has buttons: Power, - (slower), + (faster), Light, Timer, and a middle button (rotate maybe?) that doesn't do anything.

  1. I picked up a Broadlink RM4 Mini from Amazon

  2. You do need to initially set it up via the Broadlink phone app, which gets it on wifi. (Don't bother training it like I did -- we'll do that from a Hubitat app.)

  3. In your router, reserve the RM4 a fixed ip.

  4. Follow the instructions at Broadlink IR/RF remotes integration (RM3 Mini, RM Pro, RM4 Mini/Pro) to install tomwpublic/hubitat_broadlink

  5. Follow the readme at the git repo to create a Broadlink device "Range Hood Broadlink"

  6. In the Broadlink device, learn and save the codes from the remote. I named them Power, Light, Faster, Slower, Timer

  7. Make two virtual devices, a Virtual Fan Controller "Range Hood fan" and a Virtual Non-Dimmable Light "Range Hood light".

  8. In Rule Machine, rule "Range Hood fan low", which on trigger Range Hood Fan reports low, executes two actions: push, Actuator, Range Hood Broadlink, parameter string "Power". This sets the fan to the known state of off. Then a second action: push, Actuator, Range Hood Broadlink, parameter string "Faster"

  9. repeat 3 for medium, medium-high, and high (since the fan has 4 speeds, I chose to skip medium-low)

  10. Two more for off (which just sends Power), and on (which is a duplicate of the one for low)

  11. The light is tricky... I made a "virtual light toggle" rule which when Range Hood Light reports any change sends the Light command. Unfortunately, there's no way to get the light to a known state using the remote.

I haven't been able to get Amazon Echo to cooperate. I added the virtual fan and virtual light to the devices passed to Echo. It sees the fan, and if I select the fan in the Echo App all of on/off/low/medium/high work... but by voice it is iffy at best. A lot of "doesn't support that". For instance: "Range hood fan off" works but "Turn off range hood fan" doesn't. :man_shrugging:

For now I'm happy to have some control working in Hubitat! Thanks very much to @tomw for another great project.

1 Like

I control many devices with Broadlink in this way, but I use custom apps code to link the virtual child devices to Broaklink commands (Though RM works too). For state feedback, I often use a power meter. Based on how much power is being used, I can determine on/off and in many cases even what speed a fan is on. A light/fan combo may be difficult for that, as the light will not use enough power to really determine if it is on, if the fan is also on, given power will fluctuate a bit and LED bulbs take so little power the difference may be lost.

For my mini-split AC controlled by Broadlink IR, I put a power meter with a clamp on the wire in the panel, so I can detect if the AC is Off, Cooling, or on fan. I can tell a difference between fan speeds as well when it is on fan only, but when the compressor is on it obscures the fan speed differences.

I made my non-remote controlled fan hood smart with Zigbee relay boards, by adding them into the wiring of the motor and the light. Nice thing about that is I always know the state of the devices that way, both for light and fan speed.

1 Like

Put a light (lux) sensor under the range hood. Within RM, use the values from the sensor to infer whether the range hood light is on.

You may need to put a small "collar" or tube around the sensor to lower the amount of ambient light from other sources.

2 Likes

That is a good idea! I have also played with trying to have the fan auto turn on when the stove is in use, but I have a gas stove so I can't monitor power (I can for the stove igniter that stays on while in use, but not for burners). I tried a temp sensor mounted under the hood, but I just couldn't get it dialed in to work. I was using a comparison of hood temperature to room temperature to tell if the stove is on, and it worked except it took to long for the temp sensor to register the difference. I might revisit that at some point with better positioning, or probe sensors.

Ideally, a gas flow meter on the stove is probably the best way to know if a gas stove is on, but I can't find a smart local protocol gas meter to use for that. I really just need something that senses any gas flow to send a binary signal for any flow happening, as I don't really need specific flow values.

Anyone know of a local protocol gas flow monitor device?