[OBSOLETE] HomeSeer Dimmer and Switch (HS-WD100+ / HS-WS100+) Device Handlers

I am at loss here. You could always try logging off the mobile app and re-login in?

Hey thanks for your quick response. Just wanted to let you know that im stupid haha. i have a WD100+ and i installed the WS100 device handler on it

Bummer, but it works now thanks, time to play around with it!

1 Like

What would be the best way to pass the button presses to smartthing-MQTT-bridge for use in other platforms? I can currently add the device as a button in the MQTT-Bridge smartapp, however, all eight button functions output the same message:

Incoming message from MQTT: smartthings/Bedroom Light Switch/button = pushed

I’m guessing the device handler for the switch would need to be rewritten to pass on the individual buttons to MQTT. Is this something that’s feasible? It would be amazing to have this:

Incoming message from MQTT: smartthings/Bedroom Light Switch/button = pushed 1
Incoming message from MQTT: smartthings/Bedroom Light Switch/button = pushed 2

etc.

Or perhaps it would work better with each button as it’s own topic:

Incoming message from MQTT: smartthings/Bedroom Light Switch/button/1 = pushed

Or maybe make the payload json formatted like:
Incoming message from MQTT: smartthings/Bedroom Light Switch/{"button_pushed": 1}

Where would I go messing around to experiment with this?

Probably one good start would be over in the Developers area here https://community.smartthings.com/c/developers and add your post over there where the guys with the know how can give you better direction.

I don’t believe so. I think that’s a firmware limitation.

Do you mean to have it so as you press and hold the hold button it dims up or down? If so, again, I don’t think so. I believe it just registers as a single press of the “hold” button. It won’t actually acknowledge the fact that you’re holding it; however, there is a slider to dim up and down.

While I’m not 100% it actually passes through the dimming, you can control the ramp rate so that it’s so fast it appears that it goes from 0% to 100%. I have one of my lights set like this:
Local Ramp Rate: Duration of each level: 1
Local Ramp Rate: Dim level % to change: 99
So that dims up or down 99% every 1ms

Thanks Matt

You answers all my question.

By the time ,i found how to set up ramp rate ,i used to play with these number and nothing was changing ,till i found that i need to press the configure tile in the smart app to make it happens !!!

Now im happy with those switch
and thanks to darwin and dalec for the device handler and the smart app

1 Like

If I had the old device handler with 6 buttons and updated to the new one with 8 buttons, do I have to delete and re-connect the devices to get them to reflect the 2 extra buttons? I can’t seem to figure out why I’m still only seeing 6 buttons. If that’s the case, I lose all my automations that are associated with these, correct?

If you update the device handler to this version vs. including the switch with this DH handler code aready installed, you’ll need to hit the configure button from the device UI to get the additional 2 buttons to show up in smart apps such as CoRE and Smart Lighting. You shouldn’t need to remove and re-add the switches.

1 Like

Is it possible to use either Homeseer’s switch or dimmer to long press and have it variable dim a connected Philips Hue or Lifx bulb? I don’t want the switch to reduce voltage to the smart bulb since they require full power at all times. I’m currently limited to setting a double/triple tap to a specific dim amount but it would be cool if we could leverage the long press to remotely control the dim function on a smart led.

Seems like anything is possible. I am thinking something like this possibly? You can’t have the smart bulb in the same circuit as the switch obviously because the switch will vary the voltage which of course is bad for the bulb so get a constant on circuit to power the bulb. Use a dimmer syncing app to have the dimming smartbulb sync with the dimmer switch

Thanks @dalec. Makes sense to hardwire the smart bulb constantly on and use the switch as a control device. Any suggestions on a dimmer syncing app? Sorry for the basic question but I am just getting started with smartthings and home automation so just learning.

TrendSetter is one that I can think of that could work but there are others

CoRE is the smartapp (release candidate) that can do just about anything you dream up. It is a little bit of a learning curve but once you go through one it will pay dividends for future automations.

CoRE is the middle of pretty major UI change before the final release right now but I wouldn’t let that stop you.

Is anyone having luck getting the two new buttons presses to show up in Live Logging? I’m trying to use these in CoRE but it doesn’t seem like the new button 7 or 8 register as a “button pressed” event. Thanks.

I notice that if I go into the device page in IDE, it says under Current States "button: pushed"
Aren’t these momentary events? Why does the state stay “pushed”?

I’ve used this setup in CoRE for that. It mostly works but is very laggy. A hold down action actually doesn’t work very well. The lights will temporarily turn off and then come back on. Darwin explained why that happens once but I can’t remember where, something about a firmware glitch.

I’d love to know if someone has a better CoRE strategy to make this work better.

Hey @Darwin, I’m having some troubles with the single tap buttons you added in the latest release. I’ve been trying to get them to work in CoRE but they aren’t behaving as I expected them to. The first issue is that they aren’t showing up in Live Logging as “button presses”, as they do for the other six buttons. This makes trouble shooting difficult. Despite that, they are triggering actions, but only when the switch is also changing states.

For example, I have CoRE pistons set up to turn a Hue bulb on when single UP is tapped and off when single DOWN is tapped. If the switch is turned on and I power the bulb off from the app or elsewhere, I cannot get the bulb to turn back on from single UP tap at the switch. Same with down/off. I can only assume this means the button pressed event is not firing into the system somehow. Do you have any ideas about why this is happening?

Here is what I’m seeing from live logging:

Button 7: single UP (switch was off)

3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:27:08 AM: debug Parse returned [[name:switch, value:on, isStateChange:false, displayed:false, linkText:Bedroom Light Switch, descriptionText:Bedroom Light Switch switch is on], [name:level, value:5, unit:%, isStateChange:false, displayed:false, linkText:Bedroom Light Switch, descriptionText:Bedroom Light Switch level is 5%]]
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:27:08 AM: debug zw device: 0D, command: 2003, payload: 05
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:27:06 AM: debug Parse returned [[name:switch, value:on, type:physical, isStateChange:true, displayed:true, linkText:Bedroom Light Switch, descriptionText:Bedroom Light Switch switch is on]]
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:27:05 AM: debug sceneNumber: 1 keyAttributes: 0
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:27:05 AM: debug zw device: 0D, command: 5B03, payload: 46 00 01
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:27:05 AM: debug Parse returned [[name:switch, value:on, isStateChange:true, displayed:true, linkText:Bedroom Light Switch, descriptionText:Bedroom Light Switch switch is on], [name:level, value:5, unit:%, isStateChange:false, displayed:false, linkText:Bedroom Light Switch, descriptionText:Bedroom Light Switch level is 5%]]
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:27:05 AM: debug zw device: 0D, command: 2603, payload: 05

Button 7: single UP (switch was already on)

3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:25:01 AM: debug Parse returned [[name:switch, value:on, isStateChange:false, displayed:false, linkText:Bedroom Light Switch, descriptionText:Bedroom Light Switch switch is on], [name:level, value:5, unit:%, isStateChange:false, displayed:false, linkText:Bedroom Light Switch, descriptionText:Bedroom Light Switch level is 5%]]
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:25:01 AM: debug zw device: 0D, command: 2003, payload: 05
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:24:58 AM: debug Parse returned [[name:switch, value:on, isStateChange:false, displayed:false, linkText:Bedroom Light Switch, descriptionText:Bedroom Light Switch switch is on], [name:level, value:5, unit:%, isStateChange:false, displayed:false, linkText:Bedroom Light Switch, descriptionText:Bedroom Light Switch level is 5%]]
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:24:58 AM: debug zw device: 0D, command: 2603, payload: 05
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:24:58 AM: debug Parse returned [[name:switch, value:on, type:physical, isStateChange:false, displayed:false, linkText:Bedroom Light Switch, descriptionText:Bedroom Light Switch switch is on]]
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:24:58 AM: debug sceneNumber: 1 keyAttributes: 0
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:24:58 AM: debug zw device: 0D, command: 5B03, payload: 44 00 01

Button 8: single DOWN (switch was on)

3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:13:41 PM: debug Parse returned [[name:switch, value:off, isStateChange:false, displayed:false, linkText:Bedroom Light Switch, descriptionText:Bedroom Light Switch switch is off]]
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:13:41 PM: debug zw device: 0D, command: 2003, payload: 00
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:13:38 PM: debug Parse returned [name:switch, value:off, type:physical, isStateChange:true, displayed:true, linkText:Bedroom Light Switch, descriptionText:Bedroom Light Switch switch is off]
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:13:38 PM: debug sceneNumber: 2 keyAttributes: 0
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:13:38 PM: debug zw device: 0D, command: 5B03, payload: 66 00 02
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:13:38 PM: debug Parse returned [[name:switch, value:off, isStateChange:true, displayed:true, linkText:Bedroom Light Switch, descriptionText:Bedroom Light Switch switch is off]]
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:13:38 PM: debug zw device: 0D, command: 2603, payload: 00

Button 8: single DOWN (switch was already off)

3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:28:17 AM: debug Parse returned [[name:switch, value:off, isStateChange:false, displayed:false, linkText:Bedroom Light Switch, descriptionText:Bedroom Light Switch switch is off]]
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:28:17 AM: debug zw device: 0D, command: 2003, payload: 00
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:28:14 AM: debug Parse returned [[name:switch, value:off, isStateChange:false, displayed:false, linkText:Bedroom Light Switch, descriptionText:Bedroom Light Switch switch is off]]
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:28:14 AM: debug zw device: 0D, command: 2603, payload: 00
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:28:14 AM: debug Parse returned [name:switch, value:off, type:physical, isStateChange:false, displayed:false, linkText:Bedroom Light Switch, descriptionText:Bedroom Light Switch switch is off]
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:28:14 AM: debug sceneNumber: 2 keyAttributes: 0
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:28:14 AM: debug zw device: 0D, command: 5B03, payload: 48 00 02

Button 1: Double-UP

3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:23:55 AM: debug Parse returned [[name:button, value:pushed, data:[buttonNumber:1], descriptionText:Bedroom Light Switch Tap-Up-2 (button 1) pressed, isStateChange:true, type:physical, displayed:true, linkText:Bedroom Light Switch]]
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:23:55 AM: debug sceneNumber: 1 keyAttributes: 3
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:23:55 AM: debug zw device: 0D, command: 5B03, payload: 43 03 01

Button 2: Double-DOWN

3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:32:50 AM: debug Parse returned [[name:button, value:pushed, data:[buttonNumber:2], descriptionText:Bedroom Light Switch Tap-Down-2 (button 2) pressed, isStateChange:true, type:null, displayed:true, linkText:Bedroom Light Switch]]
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:32:50 AM: debug sceneNumber: 2 keyAttributes: 3
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:32:50 AM: debug zw device: 0D, command: 5B03, payload: 5B 03 02

Button 3: Triple-UP

3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:29:09 AM: debug Parse returned [name:button, value:pushed, data:[buttonNumber:3], descriptionText:Bedroom Light Switch Tap-Up-3 (button 3) pressed, isStateChange:true, type:physical, displayed:true, linkText:Bedroom Light Switch]
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:29:09 AM: debug sceneNumber: 1 keyAttributes: 4
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:29:09 AM: debug zw device: 0D, command: 5B03, payload: 4A 04 01

Button 4: Triple-DOWN

3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:29:48 AM: debug Parse returned [name:button, value:pushed, data:[buttonNumber:4], descriptionText:Bedroom Light Switch Tap-Down-3 (button 4) pressed, isStateChange:true, type:physical, displayed:true, linkText:Bedroom Light Switch]
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:29:47 AM: debug sceneNumber: 2 keyAttributes: 4
3191c46f-e0e4-4bd2-8d57-1fa666cf2bd3 12:29:47 AM: debug zw device: 0D, command: 5B03, payload: 4B 04 02

As you can see, the events are recognized on the multi-taps as “button presses” but not the single. I’m trying to figure out why the events are acted on in CoRE only during switch state change when they should be unrelated. It doesn’t add up for me. Thanks!

I think that is by design? The “single tap” is a switch/outlet action. The double, triple and held taps are the button actions. The hold action tends to conflict with the single tap action because if I hold UP (or DOWN), whatever is connected to the hardwiring of the switch will indeed turn ON while the “button” action is being evaluated for execution. Will CoRE see the switch action?

Well then I guess I don’t understand the addition of button 7 & 8 in the updated device handler. They were supposed to expose the single up / single down physical presses as buttons, decoupled from the switch state.

The problem with CoRE is … what can I do to recognize a single up when the switch is already on or a single down when it’s already off.

CoRE will see the event but there is no state change. I have these to choose from but haven’t found one that works: (changed, did not change, is, is not, is not one of, is one of, was, was not, changes, changes away from, changes away from one of, changes to, changes to one of, stays, stays away from)

Digging around in the device handler, it looks like Darwin tried to make the single press be exposed as a button press (7 & 8) but it’s just not showing up in Live Logging. It seems like a bug.

No, that is what I am supposed to say! I don’t understand the 7th and 8th button additions because I forgot about that latest feature. :open_mouth:

This is the part of the device handler where it looks like a “button pushed” event should be exposed each time the paddle is pressed:

def zwaveEvent(physicalgraph.zwave.commands.centralscenev1.CentralSceneNotification cmd) {
    log.debug("sceneNumber: ${cmd.sceneNumber} keyAttributes: ${cmd.keyAttributes}")
    def result = []

    switch (cmd.sceneNumber) {
      case 1:
          // Up
          switch (cmd.keyAttributes) {
              case 0:
                  result += createEvent([name: "switch", value: "on", type: "physical"])
                  sendEvent(name: "status" , value: "Tap ▲")
	              sendEvent(name: "button" , value: "pushed", data: [buttonNumber: "7"], descriptionText: "$device.displayName Tap-Up-1 (button 7) pressed", 
                       isStateChange: true, type: "$buttonType")

As I mentioned above- the button events don’t show up in the logs, however, CoRE is responding to me telling it to take action on a button press when the switch state is also changing. The log does show activity happening on a press with no state change but CoRE does not see that as a button press.

1 Like

@partytime-excellent, which device are you experiencing issues with – the WD100+ dimmer or the WS100+ switch? When you look at the device UI in the mobile app, do you see the Tap-up/Tap-down indication on the main tile? Does the “Recently” tab entries give any indication of a button 7 or 8 press? Live logging does not currently provide debug logs for the single press events, but I can add that to help diagnose this issue.