I've been using HomeKit via the Tonesto HomeBridge integration for ages, but have always had one major complaint - with the way fan speeds were implemented in that plugin. I did extensive research into the cause of the issue but fell short of being able to PR a fix for it, and the developer was unable to reproduce or resolve the issue.
So, I'm looking at phasing some devices over to HomeKit via the native Hubitat integration. I got it all set up and working no problem, and exported the 5 fan devices I want to control. They show up, I can control them, all is well. Problem is that the device control types are the "infinite slider" style, with no steps, and as such are wickedly misaligned to what the switch can actually do. The steps in the driver/device itself actuate Low, Medium, and High at 33, 66, and 99 respectively. But I can see when I change the fan speed via the native HomeKit integration that it behaves much the same way as the Tonesto plugin did.
Any value from iOS between 100-60% is "High", 59-20% is "Medium" and 19-1% is "Low", with 0% properly being "Off"
These steps are WAY too wide and I'd like to be able to configure them. Best case scenario, I'd like there to be actual "low, medium, high" steps instead of an infinite slider. I know HomeKit supports this.
Any advice anyone can offer?
BTW, for what it's worth I am on a C-7 running 2.3.9.166 and these are all Inovelli switches, either the Blue series VZM35 or one single LZW36
From the GitHub discussion you linked to, what he actually said was:
Hello! Sorry, I haven't followed up.
I don't know where the issue is for you... I have both GE/jasco fan controllers and Innovelli Fan controllers and it works fine for me.
Try enabling debug logs on both the Hubitat app and the homebridge plugin and see if something stands out. If you could show me the flaw, I will be sure to fix the issue as soon as possible. I'm just not seeing it on my side
That reads as much less dismissive than the abridged version in the OP of this thread, IMO.
Fair, but given the amount of detail I had already provided, it felt that way. I gave everything short of a PR (and it took 8 months to get that answer)
I can understand your frustration but community developers do this in their spare time and are kind enough to share their hard work with us for free.
I’m sure some of them have less spare time than others.
I do hope you find a solution that works for you, either with a community developed Homebridge integration or the built-in HomeKit integration. Best of luck.
I hope so! If nothing else it could be an opportunity for improvement. I was super pleased with how simple it was to set up and get the native integration working, though I have other questions if this one is successful.
Not to muddy the waters, but most fans only have 3 speeds and the drivers map any values requested to them using preset ranges. So maybe define a 4 button button controller…
I can see kinda the approach here, create the virtual device, map each button via a piston or a local simple rule (the latter probably better for simplicity) and have button 1=33, 2=66, 3=99, 4=0 and then expose the controller to HomeKit. The question is just… how do I make that look like a fan to HomeKit, so Siri and all the other related things that rely on that device type to be correct will work. Hmm… a different problem at least
Could still expose the fan (maybe not display it) for automation purposes as Siri, etc. will react to the fan events even if they are initiated from the button controller.
Oh nice! I do want to be able to keep using the manufacturer provided drivers though, as I do use a lot of the advanced features of the devices that are exposed by them. I’d prefer (given any choice) to have some of this config shifted to the integration level instead. But that’s me - just some more control over what’s exposed to HomeKit
Yeah I think @thebearmay was suggesting something similar! Do you have any tips on what that might look like? I was poking at the virtual fan controller briefly just now but it’s got a crapload of speeds I think would confuse things more, and I don’t see where I can grab the code to modify it
The more I play with the native fan integration, the more I think it just needs to be changed so Low, Medium and High aren’t quite so far apart. By using this integration I’ve regained access to all 3 fan speeds, but the “medium” band stretching from 20% to 60% is just too big a block to gain good control over using the HomeKit slider steps. I personally think this would be a whole lot more usable if the 3-speed fan control devices had steps at 33, 66, and 100 instead of 20, 60, 100. Seems like a pretty minor and impactful change.