I have 5 of these controllers and I can confirm the "Cycle Speed" tab on the device settings page (rarely) is working. I say rarely because out of the 5 devices it did work twice once on two fans, but did not work after the first time. I myself have at least one peanut plug as a repeater near each one of these and they communicate fine instantly with every other selection on the device settings page. Everything else selectable shows immediately in the logs, however Cycle Speed does not.
@mike.maxwell Would you have anything to recommend to get this driver function to work?
I'm in the same boat, good zigbee repeaters within 10 feet of each fan and all other commands work almost instantly. It would be nice to get this working as the Pico remote replaces the need for the handheld remote mounted on the wall.
Seems like it should be an easy fix as the device responds to all commands, even manually setting the level of the fan. Just seems to be something not quite right between the command to cyclespeed and actually cycling the speeds.
Something has definitely changed because I remember testing this briefly when it was introduced and it worked fine. Luckily I had my own method of cycling these fans already code in my ABC app before the cycle option was built in to the device driver, so this change hasn't affected me.
I'm sure @mike.maxwell will get this sorted out soon enough. In the meantime, feel free to try my ABC app and let me know if you have any issues in that thread. The cycle fan option works fine there.
I use the following rule to cycle through fan speeds on my HB with one button of a pico.
The Cycle Speed command used to get the fan speed set to Auto Mode, which activated the Breeze Mode in the HB. The breeze mode essentially just rotates through the speeds resting on each for a set duration.
The Auto speed setting is what gets Breeze Mode I believe.
Ahh...you're right. I never added that AUTO option when the updated the hampton driver to support breeze mode. It is literally adding the word auto to one line of code to fix. I will update when I get to my desk today and push to Github.
Yes, auto is one of the 8 options in the Fan Speed capability. This is one device that haunted me all the way back to my ST days so this is one device I know more than I care to know about. Just the memories are giving me a headache. Also, the "on" in the fan speed capability always confused me. Why would you ever have a speed of "on"? No one ever explained that one to my satisfaction.
My biggest complaint with the HB driver looks like it was resolved at some point and that is matching the switch with the Fan Speed. Before it was possible to have the fan switch off and the speed would still be set to the last saved speed. The fan would not be spinning but the speed would not be "off".
But now turning the switch off sets the speed to off as well. So, it appears that that has been fixed so part of the rule I linked to earlier isn't necessary anymore.
@mike.maxwell I think I may have found the issue. While updating my ABC app to support the auto fan speed, I created a Virtual Buttton and Virtual Fan Controller on my dev hub (don't have either device attached to this hub right now).
In the Virtual Fan Controller I decided to test the cycle command to see how it responded and not surprisingly it seemed to function as designed....but I also noticed that the cycle command went thought 5 fans speeds (low, medium-low, medium, medium-high and high). The Hampton device and driver only has 4 speeds (low, medium-low,medium,high). I then looked at the Set Speed options for a live Hampton device and saw that it also listed an option for a fan speed that doesn't exist on the device.
So there seems to be a couple of issues. The Hampton driver needs to remove the medium-high as a fan speed option and the cycleSpeed() command may need to be updated so that it doesn't try to cycle through an invalid speed option.
That's because Medium-High is part of the fan speed capability. It would have to be removed from the entire capability or the HB device wouldn't be able to use that capability. Either that or setting to Medium High would just use the same command issued to the device as "medium". You can't remove it from the HB without removing it globally from the capability.
As I said, the capability also lists the speed of "on". Is your cycleSpeed coimmand also cycling through that one as well as "off"?
I think the fix here is that the cycleSpeed command on the HB would only cycle through those speeds that it is capable of doing. Right now the cycleSpeed command just sets the speed to low and doesn't really cycle anything. Which was kind of the point of my thread that I opened way back when.
The command actually cycles through all 5 speeds as I noted in the Virtual Fan Controller. I think the issue is, whatever logic the cycleSpeed command uses to move to the next speed, it gets hung up on "an unsupported speed". The driver needs store the compatible fan speeds in a map (based on the device type) when the device is initialized and then the cycleSpeed command would cycle through those speeds only. That way the capability would be independent of the command.