I recently installed a Haiku fan from Big Ass Fans and I’d like it to be my start with Smartthings development. The control is fairly simple, the fan listens on port 31415 for ASCII commands and sends responses back on the same port. You can either send the commands directly or use the broadcast IP. Here are a few of the commands.
Device discovery - Sent by the companys app to broadcast address, devices respond with name and MAC address.
<ALL;DEVICE;ID;GET>
Get current status commands.
<Family Room Fan;FAN;PWR;GET;ACTUAL>
<Family Room Fan;FAN;SPD;GET;ACTUAL>
<Family Room Fan;LIGHT;PWR;GET;ACTUAL>
<Family Room Fan;LIGHT;LEVEL;GET;ACTUAL>
Set commands.
<Family Room Fan;FAN;PWR;ON>
<Family Room Fan;FAN;SPD;SET;0-7>
<Family Room Fan;LIGHT;PWR;ON>
<Family Room Fan;LIGHT;LEVEL;SET;0-16>
It will respond back with messages like these.
(Family Room Fan;FAN;PWR;OFF)
(Family Room Fan;FAN;SPD;ACTUAL;4)
(Family Room Fan;LIGHT;PWR;OFF)
(Family Room Fan;LIGHT;LEVEL;ACTUAL;0)
The name, “Family Room Fan”, can also be subbed with the MAC address of the device.
I was able to get a basic one-way program working that turns that fan/light on/off and allows you to set the fan/light speed/level. What I’m stuck on is if it’s possible for the hub to listen to those responses and then I would be able to parse that out into updated status info for the different functions.
Sorry, I’ve been busy with other projects. No solution yet on reading status without an intermediary device/server so for now I’m happy with one way. I’ll add-in some more functions, probably not scheduling though since the commands looked horrible.
Sadly, I am unable to help with development, but I’m wondering what the current version of your code does. Is it still one-way control of fan on/off and set level? Thanks for posting this!
I recently purchased a Haiku fan and am also interested in getting it integrated with Smart Things, as well as integrating with smart thermostats that aren’t supported yet by the fan yet.
I don’t have too much experience yet with developing for Smart Things (recently got onboard the Home automation bandwagon), but would definitely be willing to help out once I get my fan installed. Feel free to PM me as well.
I’m trying to start developing a Service Manager/SmartApp for Haiku, but I can’t seem to even figure out the regular packets with wireshark. I’m seeing the <ALL;DEVICE;ID;GET> on port 31415, but that’s all I’m seeing on that port. When I filter by IP, I get a bunch of broadcast UDP packets to port 58226, but they aren’t in plain text. Is it possible that something changed on the Haiku side of things, or am I missing something? I’ve never used wireshark for something like this before.
EDIT: @System48, your device handler is working for me, so obviously that communication is working. I’d still like to figure out how to properly sniff the traffic so that I can get the proper commands for more of the functionality.
Sorry I’ve been missing from the post. This is the program I used, https://packetsender.com/, was used by someone in a Control4 forum for this fan. Set the IP address to your networks broadcast address, assuming a /24 network, just put .255 in the last octet, the port is 31415 UDP. Using this program you can watch the commands that are sent to the fan from the app. I haven’t worked on it since the initial creation, I was hoping of a proper API but nothing yet.
Yeah, I tried that with Wireshark, was only seeing broadcast packets. Tried a bunch of stuff including setting up my laptop as an access point, booting to linux for wireshark, etc., but I just couldn’t get wireshark to show anything other than broadcast packets. I’m thinking the solution would be to boot to linux, set up that as an access point, and run wireshark from there, but I ended up being able to figure everything I needed to out by just doing a raw connection to the IP of the fan on port 31415 and seeing what it was reporting.
Unfortunately, it doesn’t look like a service manager could handle this because it appears that those can only handle cloud-based or UPnP devices. Also, I don’t think there’s any way to get status updates from the fan because SmartThings doesn’t even officially support UDP and the parse method doesn’t get anything useful back. So I have full control over the fan, but because there’s no updates it’s not really ready for widespread use.
I’m an architect with at least some “in” with the company (at least the sales team.) I have requested they pass this on to their development team for input. I know they integrate with the Nest and Amazon Echo. I’m sure there is a way to get this to work. I just can’t code beyond a simple html web page so I have to rely on people like you guys to make this work.
I have my fans integrated now thanks to you, but how do I make it so a routine can turn on and off my light? nothings controls them expect for a press of the actual device’s button.
@KingStrava can you share if you ever got this to work. I am interested in integrating my Haiku fans so that they can be turned on by smart things as well as the sense me.