[OBSOLETE] Battery Operated 3 Toggle Switch for wallmount or table top use (SmartenIT ZBWS3B) [DEPRECATED: STOPPED WORKING IN 2018]

This code stopped working with the 2018 version of the SmartThings app. The device should no longer be considered compatible.

Yes, Virginia, there is a battery operated toggle switch that looks like a regular switch and can be used to change modes, run Hello Home Actions, or toggle one or more devices on and off! It does have 3 toggle “buttons” instead of just 1, which some people will see as a negative, but it’s a very nice device. It can be mounted on the wall anywhere, it does not require any wiring. Or it can just lie flat on a table.

It’s zigbee, but because SmartThings supports both zigbee and zwave, that doesn’t matter, you can still use it to control any of the devices you control through SmartThings. :smile:

You can also easily feel the separations between the three toggles, so it should work well on a nightstand, you don’t have to see it to use it.

Here’s mine next to my TV remote so you can see the size and form factor.

It’s not officially supported yet, but thanks to the work of @JohnR , @thegibertchan , and @sjansen , there’s a straightforward install procedure. It does require a small amount of custom code for the smart device type, but that’s not too difficult. Hopefully SmartThings will add it as an approved device soon. (@Tyler ? This is a perfect way to show off ST’s open platform capabilities. Hint, hint.)

  1. Purchase a SmartenIT ZBWS3B Model #4037A zigbee Wireless 3 Button Switch made by Compacta International. It should cost about $50. Made of a heavyweight industrial plastic, typical light switch stuff. Operates on two AAA batteries.

I got mine directly from the manufacturer:


(Note that Device Handlers were previously called Device Types.)

  1. Log into the SmartThings IDE on a laptop.


For some reason, mine requires me to log in twice. I don’t know if that’s an artifact of the fact that I’m using a text to speech reader or not, but eventually you’ll get to a page with a Hello message in the upper right.

  1. Choose My Device Handlers.

This will show you a page listing the custom device handlers you’ve installed, if any.

Click on NEW SMART DEVICE button in the upper right. (Note to @Jim we’re actually adding a new device handlet here, not a new device, the terminology can be confusing.)

  1. This will open the page where you can add a new smart device handlers. There are three tabs: From Form, From Code, and From Template. Because we’re going to use custom code, click on the FROM CODE tab.

  2. This will open up a page where you can write or paste in code. We’re going to paste in the code by @thegibertchan from the following forum topic:

Check it after you paste it in. The very first line may be missing and you’ll have to add it manually. That should be

Also, make sure that the device types ends with
Return ConfigCmds

If there’s anything else after that, even a blank line or “2 replies” or anything else, delete the part after the bracket.

Now press the CREATE button at the bottom of the page

  1. Now at the top of the page, choose PUBLISH and then “For Me”

You should see a message at the top of the page that says "Device type published successfully for me "

  1. Click on My Device Handlers. You will see a list of your device handlers, which should now include

"thegibertchan : 3 Button Remote (ZBWS3) " with Status of Published.

This devicehandler just tells SmartThings how to handle devices of this type.


  1. Now we’re ready to add the physical device to our network.

We’re going to go ahead and do a Factory Reset, because it can’t hurt anything, and it might be needed.

8a) Open the device case by gently prying with your fingernail in the slight indentation along the top edge. (See the manufacturer’s directions). The indicator light should be in the top left corner. The Program Button is just below it, and the three toggle sensors are in a row to the right.

8b) When you have the case off, insert new batteries per the manufacturer’s directions.

8c) Do a Factory Reset per the manufacturer’s directions. In my case I had to remove one of the batteries I had just put in and leave it out for 5 seconds. Then press and hold the Program Button (for my model, this was just below the status light). I used a retracted ball point pen to press the button. Then while holding the Program Button down, re-insert the battery. The status light began blinking to indicate the Factory Reset was complete. Then I removed the batteries again. Don’t put the batteries back in until instructed below.

(But again, check the manufacturer’s instructions again, they may be different for different models. The whole point is just to complete a Factory Reset per the manufacturer’s directions for your model.)

  1. Now we’re ready to Join the network.

9a) Bring the Switch close to the SmartThings Hub. Have the batteries nearby, but don’t put them in yet.

Open the SmartThings Mobile App to the Dashboard and press the + sign.

9b) Choose “Connect New Device.” The green indicator light on the back of the ST hub will begin flashing and there will be a searching circle on the app.

9c) Put the batteries back in the switch and close the case. Now SmartThings is searching for a new device and the switch is searching for a new network to join.

You can press any of the toggles every few seconds just to keep the switch awake.

When the switch status light blinks 5 times, it has successfully joined the network. However, the mobile app will probably continue to search.


  1. At this point, since this device is not yet officially on the “works with SmartThings list,” the mobile app will keep searching. Wait 30 seconds after the switch blinks 5 times, then just use the arrows at the top left of the mobile app screen to exit back to the dashboard in the mobile app.


  1. Log into the SmartThings IDE on a laptop.


This time go to “MY DEVICES” (not Device Handlers).
You should see a THING of “Unknown” type. That’s the switch we just added.

  1. Click on the THING display name to open the details page. It should show as a zigbee device.

Click on EDIT at the bottom of the page. This will bring up the Edit Details page for this device. Name the Switch whatever you want to call it, like Nightstand Control or Guest Room Wall Switch 1, etc.

  1. About in the middle of the page there will be a drop down where you can select the TYPE from the standard SmartThings device handlers and any additional custom device handlers you have added.

Select “3 Button Remote (ZBWS3B)”

If the Device doesn’t have a Location yet, choose the location where it will operate. Usually this is HOME.

Click on the UPDATE button at the bottom of the page.

Now the new switch has a name and is associated with the ZBWS3B button controller device handler (that we installed in step 2 above).

You will return to the Device Details page. You should see a message near the top of the page saying the Device was updated successfully.

Normally we would stop using the IDE here, but because we are using a custom device handler for a zigbee device, we have one more step.


(Note, I personally don’t really understand why this step is done in the way it is, through the smart device handler, but it works. If there’s a better way, please let us know.)

  1. Click on MY DEVICE TYPES at the top of the page.

  2. Click on the custom device handler name, in this case thegibertchan 3 button remote (ZBWS3B). This will open the Device Handler page for this custom device handler.

  3. Now we are going to configure this switch to this device handler.

16a) On the right side, choose location. This will give you a choice of devices.

16b) Under “device to test with” choose “device” instead of “virtual.” This will give you a list of devices to choose from. Choose your switch.


16c) Now you will see a CONFIGURE button.

Because this switch sleeps most of the time, we have to wake it up so it will accept the configure instructions.

Press any toggle on the switch every two or three seconds during this next step. This will keep the switch awake.

Press the CONFIGURE button once on the IDE, but keep pressing the toggle on the physical switch about 10 times two or three seconds apart.

That should do it!

Click on My Devices on the top row of tabs. You will see a message that the device handler is going to keep running, that’s fine.

Now the switch has been added to the network and the switch handler has been assigned to the switch.

(Oh, and ignore the “bind” instructions in the Manufacturer’s documentation, that’s to bind one zigbee device to another, it’s not what we’re doing here. We’re going to have the switch talk to the hub and let the hub talk to the other devices.)


  1. Open the SmartThings mobile app and go to the dashboard.

  2. Click on the + Sign. You will see the Smart Setup Screen for Things again.

  3. Scroll right at the top of the screen to MORE, then scroll down to CONVENIENCE. The Button Controller SmartApp is in there, so tap CONVENIENCE to bring up the list of available convenience smartapps.

  1. Scroll down until you see the Button Controller SmartApp. Tap it, and follow the set up wizard to set up all 3 toggle “buttons” on the switch.

The first step of the wizard is to INSTALL the smartapp. Tap the button on the top right.

After that, make your choices in each screen and then tap NEXT at the top right of each button screen to continue to the next button. You will select which device to set up, then which actions to attach to each button.

Some button controllers, like the Aeon Minimote, recognize “Held” or “Pushed” for each button.

Some, like the 3 toggle switch we are working on, only recognize “Pushed” so just skip the Held options. For each toggle, set whichever actions you want.

Position the switch so the indicator light is in the upper left. Now the toggles will be #1 on the left, #2 in the middle, and #3 on the right.

Continue through to the 4th button page (even though there isn’t a 4th button) and tap DONE at the top right on that page.

Even though this is a zigbee switch, because you are using it as a button controller you can set up the toggles to control any controllable device known to your SmartThings network with it. You can also set up a toggle to change modes or trigger Hello Home Actions.

And this device has toggles, if you assign the living room lamp to button 2, pressing the toggle once will turn it on, and pressing it again will turn it off. Very nice xAF!

Also if you want you can restrict the use of the controller to specific modes.

That should do it! Your switch is now set up and ready to use.


  1. If you later want to change what the buttons do, you can find the switch on the THINGS page of the Dashboard in the mobile app.

Tap on the little gear on the device icon to open preferences.

When the Preferences screen opens, you will see icons for all 3 toggles, but just one SmartApps tile. Tap on the SmartApps tile to see the Button Controller wizard and use it to make any desired changes for any of the toggles.

Again positioning the switch with the indicator light in the upper left, #1 is the toggle on the left, #2 is in the middle, and #3 is on the right.


Well done @JDRoberts !! Thanks for the detailed writeup!

Awesome job. I ordered mine last night as soon as I saw you post this. Can’t wait for it to get here. I have been wanting something like this for a while now.

Thank you for taking the time to put this together!


Agreed, this looks awesome and for me, very wife-friendly. Is this the only option we have for a wall mounted option? I was considering the mini-mote and mounting it, but doesn’t look very attractive. Would be great to have something that matched closer to modern switches.

I was looking for a battery operated one so I could mount it lower on the wall or use it on a tabletop. (I’m in a wheelchair.)

If you want one to replace a wired switch, some community members have reported success with the Enerwave SC7. That one is more of a keypad format with small square buttons and doesn’t meet my particular needs. But you can ask in those topics if you think it might work for you:

Another wired option with small buttons is the Leviton VRCS4. Note that this is NOT the VRC Z 4, which is a different device. See:

edited to add the following discussion about support for Nontechies might also be of interest:


This is great! I am going to order one today!

Thanks, @JDRoberts for the great tutorial. I’m all setup now. Not the easiest…and I wish they had the device fingerprinted to make this easier. It is a great device that needs to get on the Official list rather quickly (nudge, nudge, wink, wink @April) as there is no other device like it in the market right now. Imagine it part of one of the ST bundles in the store.

I so wish that the controller supported Held…or they made a six button! I may need to buy another one!

Now, I’m trying to figure out the best ways to use. I have a feeling that this will change a few times over the next few months. :smile:

1 Like

I also already emailed Smartenit sales about creating a 6 button controller! (Feel free to email them as well to show interest…if you are interested!)


They just have to be careful, if they say it’s to control lighting they run into the lutron patent. But I’m using mine for Hello Home Actions and mode changes, so no issues.

You could certainly use 4 to 6 just to set modes!

Yeah, those extra buttons would be for modes in our house as well. I could see…

  • Party Mode
  • Daughter Home Alone Mode
  • Guests Home Alone Mode (for guests without presence fobs)
  • Return House to Normal Mode (normal being a relative term after a party!)
  • Rush Mode (for my wife who loves Rush)
  • Emergency Mode (all lights up)

BTW, I have dropped mine six times already since I added it to the network (we’re doing service dog training), and while it did fly open twice, it’s still working fine. :dog: :smile:

I’ll eventually have it attached to the wall, but for now it’s holding up well.


It actually seeps to be pretty well built. It is REALLY simple, so that helps a lot. And it is so light which makes impact much less severe.

I’m waiting for someone to rip out the board and integrate it into something else. I unscrewed the back on mine and there is not much to it…and it looks very hackable. :smile:

It doesn’t seem to support press and hold. Is that true? Or am I missing something?

That is correct. As noted in the install FAQ above, step 20), some controllers like the Aeon minimote support both “pushed” and “held” states, but the SmartenIT ZBWS3B only supports “pushed.” So just ignore the Held fields in the set up wizard.

I just noticed that configuration needs to be set.

If someone can contribute to the device type by adding a config button and posssibly doing this upon pairing that would make things easier to setup.

1 Like

Gilbert, the custom device type I wrote for this switch (I think that is what the guys are using above) does have a configure button and it does correctly bind the switch at the time of install. I think the problem the people are having is the footprinting process is not matching the switch to the custom device type. I’m seeing the same problem on another custom device type I’m working on.

Do you know of any problems with user published device types not matching with devices when they join?

1 Like

Hi @JohnR this was a platform bug a few weeks ago and should be resolved. Has anyone tested fingerprinting this device type recently?

I haven’t tested it but I have few other devices I have been working on started working (finger-printing process firing correctly) last week. I would be happy to dig my switch out and test it if someone is still having problems.

Does this support tap vs hold functions like the aeon multimote? Its closer to what I’m looking for, but I’d really like something that blends in to the other decora switches (as far as beggars being choosers go)

1 Like

No, just press. But each of the 3 is a toggle, which is nice. So each toggle can control multiple lights/devices on/off. Or you can assign a Hello Home Action.

Not perfect, but the form function is good for guests.