[RELEASE] GoControl Smart Wireless Light Switch WA00Z-1

I totally agree Samsung has not done a great job rolling things out with this update. @JDRoberts and I were discussing that higher in the thread. I also wanted to clarify, that although you can not currently differentiate the two buttons in the automations part of the new app, you CAN differentiate the two buttons when using the smart lighting app, you can get access to both buttons today, in the new smarthings app, using the “smartlighting smartapp”, using my updated handler -https://github.com/mwav3/smartthingscode/blob/master/devicetypes/mwav3/gocontrol-wireless-remote-switch.src/gocontrol-wireless-remote-switch.groovy

The old handler for this switch also never supported double tap, so that’s a new function with the update. The only problem is that due to limitations of the way this switch/remote itself works (that has nothing to do with Samsung or this code), the “scene control” for single taps always triggers even with a double tap. Therefore, unless someone else can figure a way around that (I tried), you can’t do a double tap without triggering a single tap as well. The exception to that is direct association programming (see notes on that above), which is how I’m using this controller. Held events also work for single and double tap. If you don’t use association programming, you can use double tap, single tap hold, and double tap hold to get 3 different events using the remote and smart lighting app today. This is how it appears in the smart lighting app:

1 Like

Corection, attached the wrong screenshot. There’s actually 4 buttons - 1 single tap up, 2 single tap down, 3 double tap up, 4 double tap down, all with pushed or held values

1 Like

Okay, so it’s a smartapp I have to go find and install? I can try doing that. Is it just searchable within the app or do I need to go copy a git over to my system?

You mentioned association programming again. From what I know, and read from you, is that you associate a Z-Wave ID of the bulb directly to the controller being used (this switch in our case); is this not correct? I tried to associate the Z-Wave ID of the light (obtained ID from SmartThings cloud device listing and put it in as an association, but nothing happened when the buttons were pressed.

Yes it’s a Smartapp from Samsung that you should be able to add by going to “smartapp” and “add smartApp” if it isn’t already there. One issue though is it might not be available in every country for some reason, so depending on where you are, it might not be available or there might be some other way you would need to get it

As far as associations, you would get the device ID from the device you want to control from the IDE here:
Device ID

Then you would enter that ID in preferences for the switch here:

However, this will only work if the device does not have newer Zwave security. This GoGO control button is an older device that doesn’t support advanced zwave security protocols. Actually, it looks like it’s discontinued on the website, but there are probably a lot still in inventory floating around. They likely won’t control newer zwave devices with newer security directly by association, and you would need to use the smartlighting app, webcore, or some other smartapp to control it until Samsung gets the Automation section of the new app updated to accept multiple buttons.

To check security, go to the IDE and scroll down to data and look at network security level. If it says anything besides “legacy non-secure” , you can try, but the device might not be able to be controlled with an association due to conflicting security protocols. Z-wave is always “secure”, but different devices have different levels of security.

1 Like

Great work on the DTH, I’m sure a lot of people will really appreciate it. :sunglasses:

One small technical point:

This is GoGO control button is an older device that doesn’t support zwave security.

It doesn’t support the newest “S2” zwave security framework, but it does support the base level.

In practice for a light switch that doesn’t make much difference. :sunglasses:

The important thing, as you mentioned, is that zwave direct association between this device and one with the newest security level, S2, probably won’t work.

As for where to buy them, zwaveproducts.com seems to have a lot in stock as of this writing:

1 Like

Thanks @JDRoberts I edited my post above for clarity and didn’t mean to imply the device wasn’t secure. Even if a device is “legacy non secure” it is still Zwave and secure, probably still way more secure then Wifi or even Zigbee, but the different levels of z-wave security can get confusing and while normally not an issue with basic non-security system applications, like lighting control, can be with associations as I’ve learned only recently from updating DTH’s. I liked this thread about z-wave security for more info and learned a lot here - Z-Wave Plus with S2 NOT SECURE

1 Like

Sorry, dumb question here as I just bought one of these, trying to expand my ST knowledge.

I don’t see a way to assign the new DeviceHandler I added from code to the Device.
Do I need to install the DH first and then the device? And if I did it in wrong order, delete the device and re-add it?

Its easiest to install the handler first because it will then automatically assign to the device with a “fingerprint”. But if you didn’t, not a big deal, there is just an extra step to go to the device and then manually assign the DTH to the device. You won’t need to remove and reinstall. Go to the device in the IDE and then under “type” select “GoControl Wireless Remote Switch”. It will be towards the end, the list is not always alphabetical.
If you need more help, or want to learn more, although it says “classic”, this write up is still very helpful https://community.smartthings.com/t/faq-an-overview-of-using-custom-code-in-smartthings-smartthings-classic/16772:

Thanks for the help Tim.

I had installed some custom code ST Apps before, but they had an easy how-to on how to do it and had no issues. First time with a custom DTH.

It appears that I had already changed the type seeing if that was what I needed.
However when I go to install a generic “Smart Lighting” app, I don’t see the switch listed as one of the options, do I need to be connected to the network with my phone to see these? The IDE dashboard and phone app all seem to indicate they are aware of the device. It also seems to be logging distinct button pushes

Hmm… kept playing around.
Found a “Button Controller” app from Samsung that seems to know about it.
Seems like this has plenty of options for doors/lights/ notifications so I’ll try this.
Stumped on why the smart lighting app wouldn’t see it though

Hi and thanks for your help in here.

When I try to add your code as a new smart app from code I get the following:

No signature of method: script_app_metadata_da4c9eae_4ead_48ca_a444_aa7f44937562.metadata() is applicable for argument types: (script_app_metadata_da4c9eae_4ead_48ca_a444_aa7f44937562$_run_closure1) values: [script_app_metadata_da4c9eae_4ead_48ca_a444_aa7f44937562$_run_closure1@69259229] Possible solutions: getMetadata(), getState(), setState(java.lang.Object), metaClass(groovy.lang.Closure)

Any ideas?


I’ve had that happen. Try different web browsers or even different computers and that should get it to work.

Also make sure you add as a device handler, not a smartapp

Thanks yet again Tim.
Now I have control for top (button 1 and 3) and bottom (button 2 and 4) with functions (on 100%, on 50%, off, not used).
Is there any way to get the continuous dimming up with top button and continuous down with bottom button?

If you do a direct association with another zwave device, the controller supports continuous dimming (in holding either button to dim or brighten, or double tap hold for group 3)

If not using direct association, its trickier. I haven’t tried it, but believe it’s possible only in Webcore. That’s because Smartthings doesn’t capture the button release event easily, with pushed and held as defaults. It was discussed here Help with released button -- GoControl Wireless Remote Switch

Basically, you need to program a piston to try and capture the “holdRelease” event, ie when you let go of the button. So, I’d imagine you would program a piston to keep dimming until you let go. Per the other thread, you would capture the release in webcore by “doing a compare to value, using a compare to expression and enter “holdRelease” as the expression (in quotes)”. This is pretty advanced programming though.

1 Like

Sorry Tim, I’m pretty new at this, how do I do a “direct association”?

First, is the other dimmer a zwave device? If not this method won’t work. Also, if it’s a newer zwave device that uses “s2 encryption” association probably won’t work either.

Take a look at this thread for a good overview of associations . There are advantages and disadvantages to it. FAQ: Zwave Association between 2 devices

See this post higher in the thread for how to program it if you want to give it a try. [RELEASE] GoControl Smart Wireless Light Switch WA00Z-1

Thanks to suggestions from @bradlee_s, I was able to make changes to this device handler to now work with the native automations screen in the new Smartthings app. This means you can now setup automations with this button controler without needing to use the smartlighting app or webcore, so this is a much simpler option for people who don’t want to use webcore or a smartapp, especially for where smartlighting is not available . This is done by programming all the presses either up or down, to “button 1”, and using the new button values of “up, down, up_2x, down 2_x etc” which will be recognized by the new app. I was also able to add a new optional preference that will stop the “single tap” event from always triggering with the “double tap”. This is done by creating an optional delay where before the single press event triggers, the handler checks if there was a double tap.

A couple things though before upgrading, it is a “breaking” change for anyone that was using the two separate buttons, so any automation would have to be updated after applying the code update to use button one and either up, down, up_2x, down_2x etc. There also is no “double tap and hold”, so to capture that I used “up_3x” and “down_3x”. One other minor thing I noticed is webcore is behind the times and only lists pushed and held in its default drop downs, so you would need to do an “expression” and the new values ie up, down, “up_2x” or “down_2x” etc to continue using the DTH in webcore. Screenshots below showing the change. Code available from importing from my github mwav3 smartthingscode master or this link - https://github.com/mwav3/smartthingscode/blob/master/devicetypes/mwav3/gocontrol-wireless-remote-switch.src/gocontrol-wireless-remote-switch.groovy

1 Like