I entered the Smarthings app, and enabled the Smarthings skill. Then exited.
I entered the Alexa app, and tried to “Discover New Devices”. After 45 seconds, none were discovered.
However, the ST Button is now in the Alexa Device List!
So close to success!
Alexa reports of the button: “The device is unresponsive”.
I cycled power on the ST hub, then did an ST hub reset. No change.
Q: Why is my ST Button visible in Alexa, but “unresponsive”, according to Alexa?
In thinking about my problem, maybe it’s related to having two Device Handlers?
I read Alexa needs both a virtual switch and virtual sensor to work with the ST Button.
So I used two device handlers. See below.
Is this the problem?
I’ll experiment with deleting one, then the other…
When you create a virtual device you then would have two devices, the original physical button that you can hold in your hand and the virtual device.
The physical button uses its own original DTH.
The virtual device uses the virtual DTH.
Both of these devices will show up in the smartthings mobile app. But only the virtual device will show up on the Amazon list of devices, because it can’t see ST buttons.
From your description, I don’t understand which one Alexa has discovered. you say it found the physical button, but as far as I know, that’s impossible. Alexa does not recognize that device class. What it should find is the virtual device.
Unless you mistakenly changed the DTH for the physical button to the virtual device, rather than leaving the physical button alone and creating a brand new virtual device which will use the virtual DTH. In that case, you’re going to have to go to the beginning and start all over because that’s not what you’re trying to do.
Can we just back up for a minute and can you describe in detail exactly what you were trying to accomplish just from a use case standpoint? You push the physical button in your hand – – what should happen next?
Then we can figure out what steps you need to take, because I think you have mashed together a couple of different solutions for different use cases.
And all you have there are two different DTHs added to your library. It doesn’t make any difference whether you have 2 or 12 or 51. And deleting it doesn’t make any difference.
You need to look on a different page, the page which is the list of your devices, and see which DTH is associated with the physical button you hold in your hand and which DTH is associated with the virtual device that you created.
JD Roberts you said: “I’m very confused.”
ME TOO! SORRY ABOUT THAT!
“Can we just back up for a minute and can you describe in detail exactly what you were trying to accomplish just from a use case standpoint? You push the physical button in your hand – – what should happen next?
Then we can figure out what steps you need to take, because I think you have mashed together a couple of different solutions for different use cases.”
I BOUGHT TWO SMARTTHINGS BUTTONS. PURPOSE:
#1: CONTROL ALEXA VOLUME. SO MY WIFE CAN RAISE OR LOWER VOLUME WITHOUT TALKING TO ALEXA WHILE ON THE PHONE. AND SHE DOESN’T HAVE TO MOVE TO THE ECHO TO USE THE ECHO’S VOLUME BUTTON. THE SMARTTHINGS BUTTON WILL HELP THE “WIFE ACCEPTANCE FACTOR” OF MY FORAY INTO ALEXA AND AUTOMATION.
#2 CONTROL A “SwitchBot Smart Switch Button Pusher” TO TURN ON THE EXISTING COFFEE MACHINE THAT MY WIFE LOVES. THIS BUTTON PUSHER USES A “SwitchBot Hub”, WHICH I’LL SOON TRY TO INTEGRATE INTO MY SYSTEM.
I ONLY UNPACKED THE FIRST ST BUTTON. TRIED TO SET IT UP. I’M TAKING NOTES TO USE FOR SETTING UP THE 2ND BUTTON.
JD: “When you create a virtual device you then would have two devices, the original physical button that you can hold in your hand and the virtual device.
The physical button uses its own original DTH.
The virtual device uses the virtual DTH.”
I SORTA UNDERSTOOD THE CONCEPT. YOUR CLEAR EXPLANATION HELPS GREATLY, VERSUS INFO FROM THE WEB THAT IS LESS CLEAR.
JD: “Both of these devices will show up in the smartthings mobile app. “
I HAVE BOTH DTH’S LOADED IN SMARTTHINGS. I DELETED THE ST BUTTON, THEN RE-ADDED. (SCANNED QR CODE, CHOSE HUB AND KITCHEN AS GROUP)
ONLY ONE BUTTON DEVICE IS IN THE ST WEB LIST OF DEVICES. SEE PIC.
AND IN THE ST APP, AND ALEXA APP, ONLY ONE BUTTON SHOWS UP.
JD: “But only the virtual device will show up on the Amazon list of devices, because it can’t see ST buttons.”
IN ALEXA, IN “ALL DEVICES”, IT’S LISTED AS “VOLUME BUTTON” WITH THE ICON THAT RESEMBLES A DECORA-TYPE PADDLE SWITCH.
JD: “From your description, I don’t understand which one Alexa has discovered. “
JD: “you say it found the physical button, but as far as I know, that’s impossible. Alexa does not recognize that device class. What it should find is the virtual device.
Unless you mistakenly changed the DTH for the physical button to the virtual device, rather than leaving the physical button alone and creating a brand new virtual device which will use the virtual DTH. In that case, you’re going to have to go to the beginning and start all over because that’s not what you’re trying to do.”
STARTING ALL OVER SEEMS REASONABLE. I’LL “DELETE” THE BUTTON FROM THE ST APP, DELETE BOTH DTH FROM THE ST IDE WEBPAGE, AND DELETE THE BUTTON FROM ALEXA. I’LL WORK TO RETURN TO A “CLEAN SLATE”
JD: “And all you have there are two different DTHs added to your library. It doesn’t make any difference whether you have 2 or 12 or 51. And deleting it doesn’t make any difference.”
JD: “You need to look on a different page, the page which is the list of your devices, and see which DTH is associated with the physical button you hold in your hand and which DTH is associated with the virtual device that you created.”
THAT LOSES ME A BIT. THE WEB PAGE IN SMARTTHINGS FOR “My Devices” DOESN’T TELL ME WHICH DTH IS ASSOCIATED WITH THE ONE (NOT TWO) BUTTON DEVICES. (SEE “DEVICES” JPEG ABOVE).
A) I’LL START OVER WITH A CLEAN SLATE.
B) I’LL SCRUTINIZE WHAT TWO DTH’S I USE. YOU STATED “The physical button uses its own original DTH.” NO DTH WAS PROVIDED. I DON’T HAVE AN “original DTH”. THE BUTTON USES TWO DTH’S I GRABBED FROM:
C) I’LL ADD DETAIL TO MY STEP-BY-STEP PROCESS (SEE BELOW) SO ADDING MY 2ND ST BUTTON GOES SMOOTHLY. ESPECIALLY SINCE THAT BUTTON WILL HAVE TO WORK WITH THE “SwitchBot Hub” TO TURN ON THE COFFEE MACHINE.
@JDRoberts, Thank you for your help! It’s very much appreciated!
My “Process notes". Maybe it will show where I went wrong. I'll use these notes to add my 2nd ST Button.
Steps to add a button
(based on http://thingsthataresmart.wiki/index.php?title=Using_Custom_Code )
1. Add the Smartthings button device to your account through the SmartThings mobile app.
a. It should show up on the list of devices for your account on the mobile app.
b. It should show up on the list of devices on the Smartthings website under “Device List” https://graph-na04-useast2.api.smartthings.com/device/list
2. Add the device handler
a. At the “My Device Handler” page on the Smartthings website, add the new device handler that was most likely chosen from GitHub or the Smartthings Community site.
c. Then choose “Create” and “Publish” in your library in the smartthings website.
d. In “My Devices” page on the Smartthings website, click on the display name of the device that you want to assign to your new device type handler. This will open up its details page. Then click finish at the bottom left. https://graph-na04-useast2.api.smartthings.com/device/show/966e8388-e253-4e24-9cf0-8ab459314556
3. use the smartthings app to approve Echo access to that device if you don’t have “all devices” approved.
a. In app, go to home screen, select the gear (top left), choose “connected Services”, and choose Amazon Alexa, then enable “Allow Amazon Alexa to access all devices, Scenes, and Routines” setting
4. use the Alexa app to disable the smartthings skill.
a. Enter the Alexa App
b. Select “Skills & Games”
c. Choose “Your Skills”
d. Find the skill named “Smartthings”
e. Choose the “Disable Skill” button
5. log out of the Alexa app.
6. log back into the Alexa app.
a. Choose “Skills & Games”
b. Search for “SmartThings Skill”
c. Choose “SmartThings”
d. Select “Enable to Use”
e. Enter smartthings u/n & p/w
f. Authorize Alexa to access Smartthing devices
g. Get the message “SmartThings has been successfully linked”
7. Ask Alexa to discover new devices
a. But “No new Devices Found”
b. However, the button appears in list of devices in Alexa app
8. Your virtual device should now be available to trigger an echo routine.
But let’s say you do want to use the smartthings button that you already have. It’s not going to be elegant.
First, some basic concepts
A “device” is something that will show up on the things list in the smartthings mobile app. The device can be physical, that is something you could actually hold in your hand. Or it can be virtual, which is more like a widget on a phone. It’s really just software. You may be able to tap it on your phone to turn it on and off, but that just means that there is an app somewhere that recognizes it and will note that its state has changed.
Here’s the FAQ for how you create a virtual device in smartthings:
A ”Device type handler“, on the other hand, is just a little bit of code which is used to tell smartthings how to format messages coming to or from a device. Like a printer driver.
Whether a device is physical or virtual, it still needs a device type handler or smartthings can’t communicate with it.
When you add a physical device to your smartthings account by using the smartthings mobile app, a standard device type handler will automatically be assigned to it based on initial communications with the device. That’s why you don’t have to pick one for it, it will automatically be picked for you.
When you create a virtual device, you have to manually assign a device type handler to it because there’s no actual discovery process at that point.
Here’s the FAQ on adding custom device type handlers to your account:
So if you’ve gotten through this section, you should have a better idea of the difference between a virtual device, a physical device, and a device type handler. I hope.
Back to your volume control use case
Now let’s think about using a SmartThings button to control the volume on an echo. This is not going to be easy.
(Before we start this, I just like to put in another plug for just buying a $15 Amazon remote off of eBay. Because it’s going to work perfectly for both increase volume and decrease volume and the project will be done. ok.)
Echo can’t see ST buttons
First, as I mentioned previously, the SmartThings button is not visible to echo. At all. That’s because you can’t turn the button on or off. It’s not considered an actionable device. It’s only sending messages in to the hub, it’s not getting instructions back. So Echo is like “there’s nothing for me to do with this device, I don’t even care that it exists.” Therefore it cannot be discovered by Alexa.
But… There are times when you want to be able to press a button and have something happen on echo. The most common use case of this type is when you want to have SmartThings turn on a light which doesn’t work with smartthings but does work with Alexa. That’s when we say that Alexa can be used as a “man in the middle“ integration. But maybe you want to press a smartthings button and have your lights come on and echo start playing a recording of dogs barking.
Alexa routines can be triggered by sensors. Not ST buttons.
We can play the audio of dogs barking with an echo routine (not a smart things routine). Or turn on a WiFi light switch that works with Alexa. But we can’t Use a smartthings button as the trigger. In fact right now we can’t even use a switch as a trigger for an Alexa routine. Alexa routines can only be triggered by time of day, voice command, or some kind of sensors.
SmartThings to the rescue: a virtual sensor
Here’s where smartthings gives us a very powerful option. We can create a virtual device which is a sensor that Alexa will Recognize. Noticed that that is not a different name for your smart button or a different DTH for your smart button or anything to do with your physical smart button. It’s a brand new virtual device. So for now, let’s just call it “zebra.“ Zebra is a virtual contact sensor. Alexa will be able to discover it and we can create a routine triggered by it opening or closing.
Your list of devices in the smartthings mobile app is going to show two separate devices: your SmartThings button and zebra (a virtual device).
One step closer. Now we have a device that is visible to both smartthings and Alexa which can be used in an Alexa routine. Only…it’s not the SmartThings button.
But I wanted to use a button!
So now we are going to set up a smartthings automation so that when you press the smartthings button the virtual sensor will open. From a SmartThings point of view this is no different then setting it up so that when you press the button a particular light comes on. It’s an if/then structure. If I press the button, open Zebra.
Wait a minute: how do you turn on a contact sensor?
You can do this exactly as described with webcore, but to make it even easier, there is a DTH (The one you already had from pierron) which is amazingly both A virtual sensor and a virtual switch.
That’s right, two devices in one. You will be able to turn the virtual switch part on and off just with the official smart lighting feature. And when you turn the virtual switch on, the virtual contact sensor from the same DTH Will look like it opened. When you turn the virtual switch off, the virtual contact sensor will look like it closed.
So voila! You press the button, Smartlighting automation turns on the zebra switch which then makes the zebra contact sensor open, Alexa recognizes that it opened and runs the routine that plays the dog barking audio.
Whew! Magic! ♂
This is a very popular use case. See the FAQ. It will walk you through creating the right kind of virtual device. Do all the steps there in exactly the order listed even if you think you have already done some of them before.
So there you are. You press the smartthings button and a single echo routine runs. So far so good, and again, very popular.
How is that going to control the volume on an echo device?
Yeah, this is the ugly part.
Echo routines do give us the ability to set device settings and one of the options is to change the volume. But you only get to set it to a fixed point it’s not higher or lower the way it is with the buttons on the official Amazon remote.
So if what you want is to be able to click the SmartThings button once and change the volume to setting 5 you can do that. You could even set it up so that a single click set the volume to setting 3 and a double click set the volume to setting 5. But that’s all the choices you’ve got. You don’t have a louder and softer choice.
I can imagine that one of the webcore grandmaster coders could come up with some system that did let you do more but, wow, the coding would be complicated. and you still need one echo routine for every individual setting that you want to have, so I guess 10 of those. And you would have to use webcore to keep track of where you had been and then where you wanted to go. It’s like building your own brighter/dimmer code. .
So I’m not going to say it’s impossible, but I am going to say it’s crazy complicated. (Did I mention that you can buy an Amazon echo remote for $15 on eBay? Just sayin’… )
Well, hopefully that clears up some of the confusion.
I almost got to a clean slate. The one remnant I can’t delete is the SmartApp I guess I set up.
Trying to delete that smart app in the ST Web page of “My SmartApp” gives an error message that the app is being used by one or more people.
Continuing on, the next roadblock is trying to find a DTH for the ST button hardware. I can’t tell the difference between a DTH that handles the physical switch and one that handles the virtual switch.
Forget everything you thought about code for this problem before you started this thread.
Go back and read the long post I just put up.
Remove the smartthings button from your account. Then just add it like normal with “add a device.“
it will automatically select the correct device type handler. You don’t have to do anything more with any device handlers for it. It will show up in your device list and you’ll be able to select it in automations.
The only device type handler you are going to have to worry about is if you decide you want a virtual device
We’re not talking about the echo button. That’s a different device. We’re talking about the handheld remote for the echo device. I gave you an eBay link for one. They are no longer sold on Amazon, but there are lots of them available on eBay.
Thanks, I’ll look into that handheld device.
My mindset: Other people use the ST button. I’m not trying something that is 10+ in difficulty. (but I may be wrong)
So I keep at it ,trying to find MY simple mistake, and/or clearing up MY confusion.
You will be much, much happier with the Echo Remote control. In fact, this thread reminded me that I have one stuck magnetically to the side of our refrigerator. This was an original 1st gen Echo remote. I was curious if it would pair with my Echo Show 8 that I am now using. After putting some fresh batteries in it, I was able to get it to pair with a very modern Echo Show. It works very smoothly. However, I am sure we’ll just continue to talk to ‘Alexa’ to do most things. Once you get a handle on using voice control, you may wonder if the remote is even worth it. I guess that is why Amazon stopped bundling and/or selling them.
Good luck with your project!
P.S. As for the difficulty level of what you were attempting, I’d say it was ‘medium-high’ for the average ST user.
Thanks so much for the lengthy, tailored and specific response. Even tho I ordered the Alexa Remote (thanks for the suggestion!) , I tried one last time w/ the SmartThings button.
I experienced the same problem. I succeeded in having the button show up in Alexa, but it wouldn’t function. And with the DTH in place, the button last some functionality in ST. Instead of supporting “one tap, double tap, and hold”, it only supported a one-tap function.
So I thew in the towel.
Maybe the bjperrion DTH is outdated (and only works with the classic app, but that doesn’t seem like it could affect operation), or some other incompatability.
It’s moot now.
Thank you so much for your dogged help. I hope you’re feeling better!
The virtual device DTH works fine, I think perhaps you’re still misunderstanding the basic concept.
You don’t use that DTH for your smartthings button. You use it for a completely separate virtual device. And indeed that virtual device is just an on/off switch and an open/close sensor. It doesn’t have double tap or anything like that. But that’s not the point.
When you use the regular standard stock DTH for the smartthings button which will get automatically applied when you add the device via the SmartThings mobile app, you can then use that button in ST automations. But Alexa will never see that button. And that’s ok.
(If Alexa does see the physical button it’s because you messed up and gave it the wrong DTH instead of creating a separate virtual device. In that situation even though Alexa can see the button nothing will work right.)
Instead, you could use double tap on the button as the “if” in a SmartThings automation (not an Alexa routine) and turning on the virtual switch as the “that.” And then you use the virtual sensor as the “if” in an Alexa routine.
So you would end up with one ST automation and one Alexa routine for every tap pattern on the button. But the device in the IF would be different between those two.
The Pierron DTH is for a virtual device. Not A physical device like the smartthings button.
Subscribe to SmartThings Developers newsletter for the latest news and events: