[OBSOLETE] Homeseer HS-WD200+?

That. In the HomeSeer video example, only one status LED has been turned on. When that LED is then turned off, the dimmer automatically returns to Normal Mode (ie. the dimmer LED’s indicate the current dim level as normal). If the status of any other LEDs had been on, the dimmer would have remained in Status Mode, and continued to indicate the status of all of the LED’s.

You can also command the dimmer back to Status Mode or Normal Mode at any time.

@Darwin - I believe you wrote or modified the HS-WD200+ DTH. Thank you for your work. I think I have run into a small bug that might need some code changes. When I first setup my first dimmer I was unable to change the default color of the LEDs. When I pressed “Configure” the log was showing an error related to doubles and floating point so I changed the default ramp rate from “3.0” to "3, saved, and then pressed configure again. This time it worked flawlessly. Somehow my default was set to floating point value and the DTH doesn’t like that. Isn’t this a bug somewhere?

I tried to report this to Homeseer tech support but since I found a workaround they figured it did not need addressing… which makes no sense to me as others will likely run into the same issue.

Interesting.Thanks for taking the time to report this. I’ll check it out and update the device handler ASAP.

This is the error I saw in the log that prompted me to change the floating point values that looked out of place anyway…

    8:45:00 PM: error groovy.lang.GroovyRuntimeException: Ambiguous method overloading
for method java.lang.Math#min. Cannot resolve which method to invoke for [class
java.math.BigDecimal, class java.lang.Integer] due to overlapping prototypes between:
[double, double] [float, float] @line 815 (setDimRatePrefs)

@aruffell, I wasn’t able to reproduce the problem on my system, but I added protections so this hopefully won’t happen to anyone else in the future. Thanks for the bug report!

Also, per request, I added the capability to programmatically specify the LED blink rate. The new command “setBlinkDurationMilliseconds” allows you to specify the blink on/off duration to be anything from 100ms to 25000 ms (25 sec). The firmware allows you to specify a single value that controls both the on and off duration. The default was 500ms on/500ms off.

Please let me know if this update causes any issues for anyone.

@Darwin - Thank you! I installed several dimmers and in each case the default was 3.0 so the issue was very repeatable on my end. I have quite a few more dimmers to replace so I will now upgrade to the latest revision to see if the issue persists or if anything else changes.

You may still see the floating point number on your device. Not sure why that appears to be inconsistent, but the new code will force that to be an integer when commanded. I’m not currently aware of a way in the device handler to force a default field to be an integer over a float, but I’ll keep looking.

I just installed two new dimmers and they still default to 3.0 and I get the following error in the log:

3:00:11 PM: error groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method
java.lang.Math#min. Cannot resolve which method to invoke for [class java.math.BigDecimal, class
java.lang.Integer] due to overlapping prototypes between: [double, double] [float, float] @line 832 (setDimRatePrefs)
3:00:11 PM: debug set prefs
3:00:11 PM: debug configure() called
3:00:11 PM: debug refresh() called

The LEDs fail to change color until I change the value to an integer.

I put the defaultValue within quotes “3” in the DTH for both preferences and the issue went away. I wonder whether this is a case of the ST app working differently between Android and Apple. Let me guess… you are using an Apple phone? I am using the classic ST app on Android.

I am also trying to automate the pressing of the Configure button. I tried adding configure() or refresh() within updated() and the log shows it gets called but it doesn’t really execute. If it did, when you save the preferences they would then be configured without needing to press the tile. I’ve see other DTHs do it but I can’t seem to get this one to do it. Any ideas?

Ah - I had a protection from inadvertent floats in the Z-Wave command call, but not in the math lib range check. I updated the gitHub repository now so both convert to integers.

Yes, I’m testing with IOS/iPhone. I know many others are using Android, so I’m wondering if this is a new issue due to an SmartThings update at some point. I believe presenting a “number” as floating point value is not correct regardless. On an iPhone, there is no way you can even enter a decimal point in a preference field if it is defined as a number. Good call on trying a string default value for this. I hate to put the number in as a string as it is clearly not a string value, but will do so if this last integer conversion code does not work.

There is a way to have the preferences apply the Z-Wave configuration commands in updated() using a sendHubCommand/HubAction command, but I haven’t gotten around to updating to this approach. I agree it would simplify operation and decrease confusion. I’ll be happy to merge in updates if someone were to beat me to the implementation for this.

I too thought it was strange but I saw several DTHs that had a defaultValue within quotes around numbers… maybe to address the same issue. Anyhow, your latest fix results in the default still showing up as a floating point but it works! I’ll see if I can dig up an example on how to run configure() when updated() is called so that pressing the Configure button is no longer needed. Not a big deal but I do recall many DTHs moving to this eliminating the need for the Configure button altogether. Thanks again for your support on this!

1 Like

Looks like @RBoy has also encountered this issue and filed a support ticket. He diagnosed it as an issue with the ST Android mobile Classic app version 2.16.1.

2 Likes

Folks can report it to ST support and reference my ticket #595080, will help to consolidate the requests and prioritize it for ST

1 Like

Has anyone connected it this way?

I too would like to install WD200+ dimmers but wire them hot. Will I be able to instantly grab the dimmer status and forward it on to Hue/Lifx bulbs?

@A_clem - If I understand you correctly, you would like to hardwire the Hue lights so they always have power and then use the WD200+ to control the Hue Lights. You ask if it needs to have line and load connected…

  1. I am most certain Line and Neutral are needed because the circuitry inside the dimmer needs to be powered. Hardwiring the Hue bulb would not prevent you from providing power to the dimmer as well - just connect the line coming in to the line input of the dimmer AND the load wire to the same terminal. You would simply leave the load terminal disconnected. I do NOT recommend doing this though as then the only way you have to turn the light on and off is programmatic… and that means you cannot do anything every time ST goes down, or you have an internet connection issue, etc.

  2. Assuming you do not care about my stated concern above, then you would likely need to use webcore to write code to program it to behave as you wish. I imagine that you could say 1 tap up is turn on with white light, 2 taps up is turn on with blue light, 3 taps up… and so on. This would give you access to white and 4 more colors as I think the maximum number of taps it recognizes is 5 per button (up/down). Not sure I’d venture in configuring multiple down taps to turn on a light with a different color as that would be counter-intuitive.

  3. for Dimming you can just configure the webcore piston to mirror the dimming setting of your dimmer to the Hue lights

  4. To turn off a single tap down and webcore can turn off your Hue lights.

I think it can be done but I would not do it. I would install a WS200+ (relay switch) that controls power to the Hue lights. This way it can be controlled as a regular light regardless of ST/Internet. Then I would use a remote to control the colors and intensity of the Hue lights. The remote can be stuck to the wall or the switch faceplate if you want it right there. I put two flat magnets on the back of a minimote and then put 2 more flat magnets under the faceplate making sure the polarities were attracting each other. This allows me to “stick” the minimote on the faceplate and remove it as needed. The magnets are strong enough they they pull the minimote in place with no hunting for the right spot.

You could just use the inovelli switches as they will do what you want without wiring them incorrectly. You can disable/enable the internal relay with 8 taps. Then it just sends the button press event without unpowering the load.

1 Like

@aruffell Thank you for your thorough reply. It is much appreciated. I’d kind of been waiting for someone like you to come along and give me an answer like yours because I wanted to make sure I wasn’t going to burn out my switch or burn down my house. I really wish this was a three pole setup so I could make it so I could turn off the lights if all else failed.

I’ll have to think about what to do next.

Thanks. I’ll take a look and see if they would work for my scenario .

@A_clem - Wiring like I suggested will not burn your house down but it does prevent you from being able to turn the load on/off the proper way which is why I do NOT recommend it. @xamindar 's suggestion seems to be a lot cleaner because it is just a software setting that achieves your desired result. You need to investigate what method you will use to change the color of the light though. I do not know whether Innovelli’s dimmers support multi-tap but I am guessing they do (recent release). My preferred solutions if I were in your same situation is a separate remote or just using voice control. Maybe another option is for you to write a piston that cycles through colors each time you double tap the light dimmer switch when it is already on…

Homeseer finally released their fan controller (HS-FC200+)…hopefully a DTH isn’t too hard to create.

I bet it wouldn’t take too long since their code base is already available.