I just installed mine today and it works pretty well on a Hunter fan. I'm running a Visual Studio 2008 VB application on 32 bit Vista and I believe that I found something that doesn't work correctly. I hope someone can tell me if it's a problem with the SDK or a coding problem on my side. It's extremely repeatable. From playing around with it I've determined that the system sees it as a
MultilevelSceneSwitch (Dimmer).
It looks like if the Level = 0, the fan is OFF,
if the level is between 1 and 32 the fan is set to LOW.
if the level is between 33 and 66 the fan is set to MEDIUM.
if the level is between 67 and 99 the fan is set to HIGH.
Using the RZCPG master controller, pressing the ON button turns the fan on to the the last speed before it was turned OFF. Holding the PLUS button causes the fan speed to increase. Holding the MINUS button decreases the speed. Pressing OFF button turns the fan off.
When changing the speed manually by pressing the buttons on the switch, a LevelChangedEvent fires and the new Level is returned correctly. When changing the Level property using the ControlThink SDK and a ThinkStick, the Level returned in the LevelChangedEvent is actually the Level before the change was made instead of after the change was made. The only setting change that works correctly is when the Level is set to 0.
The fan was on and I changed the Level to 0 and about 83 ms later I got a LevelChangeEvent and the Level was 0.
07/26/2008 23:55.07.776 zwDevice.Level = 0
07/26/2008 23:55.07.859 Level Change Event e.Level = 0
Then I changed the Level to 27 and the fan speed changed to LOW, but about 125 ms later I got a LevelChangeEvent and the Level was still 0.
07/26/2008 23:55.23.309 zwDevice.Level = 27
07/26/2008 23:55.23.434 Level Change Event e.Level = 0
Then I changed the Level from 27 to 59 and about 80 ms later I got a LevelChangeEvent and the Level was 27 instead of 59. But the fan speed did change to MEDIUM.
07/26/2008 23:55.45.389 zwDevice.Level = 59
07/26/2008 23:55.45.468 Level Change Event e.Level = 27
Then I changed the Level from 59 to 73 and about 96 ms later I got a LevelChangeEvent and the Level was 59 instead of 73. The fan speed did change to HIGH.
07/26/2008 23:56.03.243 zwDevice.Level = 73
07/26/2008 23:56.03.339 Level Change Event e.Level = 59
Then I changed the Level from 73 to 0 and about 83 ms later I got a LevelChangeEvent and the Level was 0 which is what I would hope that it would be. The fan did turn off.
07/26/2008 23:56.19.682 zwDevice.Level = 0
07/26/2008 23:56.19.765 Level Change Event e.Level = 0
So I think that there's a difference between the Level value when the switch is changed from pressing the buttons on the switch and from changing the Level programmatically. I had the same problem when I was increasing or decreasing the speed...it didn't matter.
The only thing I don't like about the VRF01 is that if someone is not familiar with the switch and they press the push pad above the fan speed bar, it engages the air gap, popping the bottom of the push pad out, which turns the switch off, and then that person thinks that they broke your $100+ switch. But all you have to do is to push the botton of the push pad back in and everything is fine.