java.util.ArrayList.entrySet() is applicable for argument types: ()

Sorry for the edits above. I'm too fast to hit Reply before my brain stops processing.

The four discrete speeds (25, 50, 75, and 100) correspond to the 4 LEDs on the side of the fan control rocker.

Extra physical detail: the ZW4SF uses the exact same body as the ZW6HD (and decorative dual rocker, thin/fat combo). The ZW4SF just uses four of the ZW6HD's seven level indication LEDs. It omits LED numbers 2, 4, and 6 the LED column.

Ok this is great info.

I had in my head for a 4 speed fan the speeds would be low, medium-low, medium-high, and high. But no matter because the drop down menu cannot be dynamically changed so its sort of stuck at the default with all 5 speeds. I can just map medium and medium-low both to 50 for 4 speeds.

I think I can make this work universally, user will just need to manually set how many speeds the device supports.

2 Likes

I'm not particular about the speed naming. It's just how I've seen it on other 4-speed devices. As long as all four speeds are exposed, it works for me.

Bonus points if you offer a "breeze" mode:

  • The drivers picks a random time between five and ten minutes and runs a random discrete speed that is not the current speed, at the end of the timer, repeat.
1 Like

It dawned on me that the dashboard fan interface forces you into that fixed set of five labels and effectively does the same thing. I noticed it also offers "Auto". Maybe the "breeze" function?

1 Like

FWIW, and knowing what I know now, I'd recommend the fan driver report in current state a raw level in addition to the named level. Additionally I recommend leaving in the numerical Set Level command. I think it will facilitate discovery and debug on other fan control devices.

1 Like