Alexa Skill does not support SmartThings button

There appears to be a lack of device support in your Amazon Alexa Skill for buttons. I recently purchased several SmartThings GP-U999SJVLEAA miniature Zigbee buttons for use in controlling my smart house lighting. http://www.amzn.com/B07F8ZFFQK. The Hubitat Hub scanned and connected to the button using the Samsung Zigbee Button driver, making the button visible to the Hub and hub programs. However, your Amazon Echo Skill does not appear to recognize this device, and is not letting it show up in my list of Alexa devices.

That's correct Our Alexa integration does not support button controllers.
What lighting devices are you trying to control?

Both Zigbee, and WIFI devices that are controlled via voice through Alexa Echo devices. I want to be able to control groups of lights of mixed technologies.

Try using the Hubitat built-in “Groups and Scenes” App to create a Group of Lights. This will create a new Group Device that you can expose to Alexa via the Amazon Echo Skill App. This is the simplest way to control a group of devices.

Button Controllers are not capable of receiving commands. They simply send commands to the hub, and thus exposing them to Alexa really doesn’t make sense.

You can also create an Alexa Group in the Alexa mobile app, and add individual devices inside that Alexa group.

Why not just program them all in the button controller inside rule machine? If all the lights are connected to HE, then I don't see why this is an issue.

Do you have any devices connected to Alexa that aren't also integrated into Hubitat? As mentioned above, button devices send commands like button presses but don't really receive them, and to my knowledge, the Alexa framework right now doesn't even have a way to cope with momentary events like button pushes (it certainly could if Amazon added this: right now it can respond to event changes like a motion sensor becoming active and can do things like turn a switch on or off). There is no way to integrate them, and they wouldn't do anything with Alexa as-is if you could.

If the answer to this question is "no," then I'd recommend the above advice: create automations for the button in Hubitat. It's more powerful than Alexa and not dependent on the cloud (if none of your devices are). If it's "yes," you have two options:

  1. Figure out how to get those devices into Hubitat (some may have an official integration; some might be able to be worked around with IFTTT; and you could even create virtual devices in Hubitat like a virtual switch, expose it to Alexa, and have an Alexa Routine turn it on/off or whatever based on the Alexa-only device you have)
  2. Alternatively, expose the button to Alexa with an awkward workaround--for example, as a virtual motion or contact sensor (create a virtual motion or contact sensor in Hubitat and create a rule that sets that virtual device to active or open when the button is pressed and inactive/closed shortly after). You could then use this virtual device to trigger an Alexa Routine. Motion and contact sensors are, to my knowledge, the only thing you can use in Alexa to do so (this would be a bit easier but still not super-easy with a virtual switch)

Both of the above might be a little difficult if you are new to Hubitat, and the best option by far is to get devices that are natively supported. But with many types of devices, you can often make things work using other tools--like virtual devices for capabilities that can be integrated. Sometimes, it just might be awkward (or impossible or at least highly difficult; I couldn't imagine trying to get color control into Hubitat from an Alexa-only bulb despite awkward workarounds I could think of like a virtual dimmer corresponding to different hues).

2 Likes

Are you saying that a Group or Scene also has the ability to control WIFI devices? I have several older WIFI outlets and bulb sockets mixed with new Zigbee devices. The Hub exposes the Zigbee devices to Alexa so they can be controlled along with the native WIFI devices for voice control.

A Button certainly makes sense for controlling devices in Alexa like any other device that generates an event that can be acted on. Amazon even sells their own button devices for use with Alexa; but they are a bit clunky.

If buttons will never be supported by the Hub, please make that point now. If I have to I'll cobble up a work-around using virtual devices to expose the buttons events through them. It seems like this could just as easily be implemented as part of the Hubs features.

Buttons are supported by the hub. What buttons are not supported by is the Alexa skill. Why do you need the button press to be reported to Alexa? If all the devices are in Hubitat, then do whatever automation you want to do in Hubitat. Done. If you're trying to use a ST button to control a device that is only integrated direct with Alexa, well, Hubitat never promised to be able to do that, so I don't know where you got that idea. The Alexa skill was sold as being able to control Hubitat connected devices with Alexa. Not the other way around.

If those devices are connected to Hubitat, then yes. Hubitat apps are not relegated to zigbee or z-wave only devices. But they are relegated to devices connected to Hubitat. Hubitat apps cannot control devices connected directly to Alexa.

As I originally stated ALL DEVICES ARE NOT DIRECTLY IN THE HUB. THERE ARE EXISTING WIFI DEVICES BEING CONTROLLED BY ALEXA. If you know of a way to have the Hub directly control WIFI devices please point me to the documentation. When I first purchased my Echo devices I also invested in WIFI controlled power outlets and bulb sockets. When I realized how limited these devices were I researched Hubs, and chose the Hubitat because of its Local control capability. At that point I've only been buying Zigbee or Z-Wave devices. But that still leaves me with several older WIFI devices that I can currently control in Alexa along with the Zigbee devices. Some of these I'm using an Amazon Alexa "BUTTON" event to control. However, I was hoping to be able to replace the chunky Amazon button with the tiny 1" square SmartThings Zigbee button. Maybe it's because I'm not a developer for Zigbee radio devices, but I still don't see the problem with implementing a one-way event driven connection in the Amazon Alexa Skill with a Zigbee button. When the button is pushed it wakes up, fires its event, then goes back to sleep. If I implement that in a Virtual Device that traps the button push and passes that along as a FAKE contact closure, how is that different.

For a little background, I'm a retired Sr. Software Engineer who spent the last 35 years in Engineering in the Electronic Test & Measurement Industry. I've designed digital computer interfaces, and have written several Electronic Instrumentation Data Acquisition programs in Microsoft Windows.

What devices specifically?

The problem isn't Zigbee or Z-wave or any other protocol. In fact, Alexa knows absolutely nothing about what kind of radios the devices attached to Hubitat have. It is a question of what types of devices are supported by the Alexa skill. Right now button controllers are not supported by that skill because Alexa doesn't support it. It's not just Hubitat. The same limitation exists for Lutron as well. Pico remotes are not supported in the Alexa/Lutron integration. And when you think about it, it makes sense. There is nowhere in the Alexa architecture to set up events based on button presses. Now, what you can do is create virtual switch devices in HE and then link those to Alexa. Alexa does support switch devices. So, you create a virtual switch in Hubitat and when it's on, turn on the other switch in Alexa and when it's off turn the switch off in Alexa. If you ABSOLUTELY have to control this switch with your ST button, set up a button controller in HE to toggle the Virtual Button when it is pressed. There.....problem solved.

This is theoretically possible, but it's an Alexa limitation: the only things you can use to trigger an Alexa routine are motion sensors and contact sensors. You can't even use a switch turning on/off to trigger one, despite the fact that Alexa and the Hubitat integration both support such devices. Amazon would have to change something, and Hubitat would also have to implement it. There are workarounds as I mentioned above (pretending the button is a motion sensor, for example). I also mentioned some ways to get Alexa-only devices into Hubitat with workarounds ("syncing" with a virtual device if possible).

1 Like

I have a few WIFI Power outlets and bulb sockets that integrate into Alexa with the Smart Life, Tuya, and Feit skills.

Alexa does support buttons made for it by Amazon. I'm currently using a couple Amazon buttons to that fire events that run Alexa Routines. Are you saying the Amazon Button Interface spec isn't available for use with your Amazon Alexa Skill?

None of us work for Hubitat if that's what you mean with "your." :slight_smile:

Alexa routines specifically support Amazon's buttons only. They're not even listed with other devices; there's a separate option for them. Again, only motion and contact sensors are supported as "Devices" available for "when this happens..." (basically triggers) for routines:

If you want to use a button on Hubitat for such a purpose, you'll need to use a workaround.

That Echo Button cannot be paired with Hubatit to my knowledge. So, it is definitely not supported by the Hubitat Alexa skill. NO buttons are supported by the Hubitat Alexa Skill. Or any other skill....except for the one specific to the ECHO buttons. And hte ECHO buttons are the only buttons that Alexa supports.

What you are asking for cannot be done by anyone except for Amazon. When they add the capability to add buttons to skills, then Hubitat could build what you are asking for. But until then, there is no way to do what you want.

What do you mean? The spec? The specification is a document. Hubitat doesn't interface to Alexa through Zigbee. It does it over the LAN connection for your hub. So, the interface spec for the Echo button has about as much to do with the Hubitat skill as my sneakers do with Michael Jordan playing basketball. Yeah, he wears sneakers too....but that's about where the similarities end.

I gave you a way to accomplish what you want. Is that not good enough?

Are you saying this because you're familiar with the Alexa Skill Programming API. Or is this simply a guess? As a software design engineer with 35 years experience, I'm having trouble with the statement that what the Samsung Button Driver does to allow button events into the Hub, can't be done in the Alexa Skill to bring button events into Alexa.

That in itself isn't an issue. But If I want to add two or three or more buttons into the mix, then I'll have to create two or three or more identical Virtual Devices and Rules to support them. And though I really appreciate what Rule 4.0 programming brings to the table, the interface has much to be desired. I only wish there was a way to export rules to text files, that could be edited and imported back into Rule Machine.

Yes. You cannot report button events to Alexa. Period. The architecture does not exist in Alexa to do this.

Or just toss those wifi switches and get ones that you can directly connect to Hubitat. Wouldn't that be easier? If you're going to buy new devices anyway, don't but buttons, buy devices that work with Hubitat.

1 Like

An easier route would be to just write your own apps in Groovy. The language itself is dead simple and doesn't carry the limitations or overhead of RM.

However, what @Ryan780 and @bertabcd1234 are stating is 100% accurate. The Alexa Skill API does not support ANY events beyond motion and contact sensors that are outside of the Amazon ecosystem to trigger routines. It's been that way for over a year now (since August 2018) when they actually added the ability to use motion and contact sensors.

3 Likes

Yes, you're absolutely right. And I'll probably, eventually end up doing just that. Except I have about $100 invested in WIFI controlled floodlight bulbs right now that I'm having trouble justifying throwing out. The outlets and sockets were cheap, and most have already been replaced. I'll just have to wait until the floodlights burn out before tossing them.

Button, or anything like a button is not a defined nor an available device type available within the skills API.
What you do have available in the way of binary reporting devices are switches, motion and contact sensors.
So if you make a button controller in HE pretend to be any of the above, then you could use them within alexa to run stuff...
personally I would create a virtual switch device, then build a rule using the button controller to toggle that switch, add that virtual switch into our Alexa integration, then do what you need on the alexa side to control the alexa wifi devices...

1 Like