Haiku Fan (Big Ass Fans) support

@zackrbrown - The app is working for me! A few observations/questions:

  1. Even though it works the driver is generating an error message: "Error occured with UDP message: SocketTimeoutException: Receive timed out"
  2. The name is pretty flexible. It can be the name of the room "Master Bedroom", the name with "Fan", i. e., "Master Bedroom Fan", or the MAC address.
  3. It's too bad that Hubitat can't receive the status back from the fan. Have you received feedback from Hubitat staff about the issue? I know that they expose some capabilities to official drivers that are not accessible to user drivers. Perhaps once completed they would accept your driver into the Hubitat official drivers.
  4. Are you planning on implementing the entire fan command set in the driver?

Anyone looking for a great fan, the Haiku line is on sale now for up to 45% off. Not so greatly controllable via Hubitat. But they are programmable, including heating and cooling target temps. And controllable via Alexa/GH. They move air really well and the motor is close to silent.

how is this driver going @zackrbrown ? worth an install or still work-in-progress?

1 Like

@zackrbrown - Thanks for contributing the driver! It worked great for me.

Here's what I did:

  1. I opened my router's administration page and noted the static IP address (I previously) assigned to each of my Haiku fans. [For fans with an IP address for the fan and a separate IP address for the (now discontinued) Haiku Wall Control, I noted the fan's IP address and ignored the wall control's IP address.]
  2. On my Hubitat's Drivers Code page, I clicked on the New Driver tab to open an empty editing window.
  3. I copy-pasted the contents of hubitat-haiku-driver/haiku-driver.groovy (from GitHub) into the empty driver edit window and clicked the Save button - registering the new Haiku Fan driver.
  4. Per fan, I then:
    a. Opened my Hubitat's Devices page and clicked Add Virtual Device.
    b. Entered my fan's name in both the Device Name and Device Label field.
    c. In the Type pull-down field, I Selected Haiku Fan (at the bottom, under the User section).
    d. I clicked Save Device and let the page refresh.
    e. On the refreshed page, under the Preferences section: I entered my fan's name (again) in the Device Name field and entered my fan's IP address in the Device IP Address field and saved the changes.
    f. On the fan's Device page: I entered a number in the Level*: field and clicked the Set Level button to confirm the ability to adjust light levels from Hubitat.
2 Likes

Thank you for the driver, working well for me with a Haiku C! I used the fan's mac address in place of name. Limitations are stated clearly in this thread, but the fan responds quickly and this will be quite useful.

1 Like

Took a sec, but I got my 2 fans connected and working as well. I don't see controls for the lights on the fans? Do I need to create new virtual devices for those or are they not supported?

Also are the wall control units "senseme" motion/presence sensors not supported yet? (or is that just another virtual device I need to configure?

@zackrbrown Are you still actively developing this? Curious is you were ever able to get light control or motion/presence from the senseme wall units?

Haven't been actively developing it in a while, but I can certainly add some more functionality (I don't own a Haiku motion product so I have to do a little research). However, it looks like there are now other drivers that you might want to consider as well! Haiku Wall Control Occupancy Sensor driver

EDIT: And that post also pointed out InterfaceUtils, which should help me fix up my driver to its original friendlier state!

1 Like

I’ll check on the wall occupancy sensors drivers, thanks!

As far as wish list for the fans… light and bidirectional speed, e.g. if the fan changed its own speed due to rules in the haiku app, then the status doesn’t seem right in Hubitat (I think)

1 Like

@zackrbrown the on & off buttons on the driver page work fine, but when trying to 'toggle' or 'turn off ' the fan via a rule, it throws an error:

[dev:53](http://192.168.1.178/logs#dev53)2020-06-07 08:16:41.663 pm [warn](http://192.168.1.178/device/edit/53)Error occured with UDP message: SocketTimeoutException: Receive timed out

[dev:53](http://192.168.1.178/logs#dev53)2020-06-07 08:16:30.788 pm [warn](http://192.168.1.178/device/edit/53)Error occured with UDP message: SocketTimeoutException: Receive timed out

Also, it looks like RM is not reading the status correctly. Even when the driver shows the switch attribute as ON, RM doesnt.

I can take a look at this. I've been out of town for a bit so I haven't had access to my fans, but I'm planning on putting a weekend into this when I return. Look for an update in a few weeks! I don't see why RM wouldn't be working as long as Hubitat sees it as On, but maybe the changes I'm planning to make with InterfaceUtils will fix it.

1 Like

@zackrbrown awesome, thanks for taking a look! yeah, i'm not sure what is going.

Here is the post i made about it with screenshots in case it's some weird RM issue or something: Rule with Haiku Fan

@zackrbrown Just want to say thank you as you were able to properly connect an Haiku Fan to Hubitat and it works great! I can now control my fans and lights with a Pico remote. Do you have a Paypal account for a contribution. Awesome work!

1 Like

No need to donate, glad people are using it!

2 Likes

@zackrbrown any luck with this?

Unfortunately I got busy again and haven't been able to work on it yet. I promise I haven't abandoned it, but it will be another few weeks before I can take a look.

1 Like

Doing some poking at this driver and my fans:

Discovered that the fans direction can be set with the command <DeviceName;FAN;DIR;FWD|REV> I also discovered that the driver can be simplified to use <ALL;...> when talking to each device over UDP unicast, which would make setup simpler now that discovery is gone.

I'm very new to coding on Hubitat, but will try to make pull requests as I continue exploring.

Made a pull request with 3 main improvements:

  • Enable fan direction control
  • Update fan status based on the responses from the fan rather than assuming changes are successful
  • Enable refresh functionality, so that changes made from fan remotes can be reflected in hubitat

I also updated the README somewhat, and made it so that the device name doesn't have to be set for the driver to work.

2 Likes

Thanks for the update, glad to see progress is being made on this driver.

The Haiku commands are all pretty well documented at this point. This is probably one of the earliest and throrough...
http://bruce.pennypacker.org/tag/senseme-plugin/

Also, don't know if you've seen the documentation, but BAF does not recommend reversing the fan in the winter.
"To that point, a quick soapbox: reversing your overhead Big ■■■ Fan in winter kills its efficiency by pushing up against the airfoils’ design rather than pulling warm air down. This increases both energy usage and the rate of heat loss."

The Haiku commands are all pretty well documented at this point. This is probably one of the earliest and throrough...
senseme-plugin | Bruce's Blog

Thanks for this, I might add woosh mode to the hubitat driver. I don't have a SenseMe to use the other functions.

Also, don't know if you've seen the documentation, but BAF does not recommend reversing the fan in the winter.

I do know that, but my family finds that the fan moves too much air to be comfortable on even on speed 1 forward, so we use speed 1 or 2 reverse.

1 Like