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.
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.)
- 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:
INSTALLING THE “SMART THINGS DEVICE HANDLER”
(Note that Device Handlers were previously called Device Types.)
- Log into the SmartThings IDE on a laptop.
https://graph.api.smartthings.com/
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.
- 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.)
-
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.
-
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
- 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 "
- 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.
JOIN THE PHYSICAL DEVICE TO THE SMARTTHINGS NETWORK
- 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.)
- 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.
d- 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.
ASSIGN THE CUSTOM DEVICE HANDLER TO THIS SPECIFIC DEVICE
- Log into the SmartThings IDE on a laptop.
https://graph.api.smartthings.com/
This time go to “MY DEVICES” (not Device Handlers).
You should see a THING of “Unknown” type. That’s the switch we just added.
- 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.
- 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.
CONFIGURE THE SWITCH SO IT WILL SEND INFORMATION TO THE HUB
(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.)
-
Click on MY DEVICE TYPES at the top of the page.
-
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.
-
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.
Click INSTALL.
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.)
TIME TO TELL THE SWITCH WHAT WE WANT IT TO DO!
-
Open the SmartThings mobile app and go to the dashboard.
-
Click on the + Sign. You will see the Smart Setup Screen for Things again.
-
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.
- 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.
TO CHANGE WHAT THE BUTTONS DO
- 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.