How to address integration challenges between Alexa smart speakers and third-party smart home ecosystems.
According to eMarketer, in 2020 69.7% of U.S. smart speaker owners used an Amazon Echo. With Alexa smart speakers in that leading position, it makes sense to look at ways to better integrate that particular product into third-party smart home ecosystems.
The vast majority of integrations between Alexa smart speakers and smart home ecosystems require a connection to third-party processors and hubs. Amazon, however, offers very little integration with third-party smart home ecosystems beyond voice control. For example, an Alexa smart speaker makes a very good alarm clock, but you cannot easily trigger actions on a third-party smart home processor or hub when an alarm goes off in the morning. For instance, wouldn’t it be great to have your Alexa alarm restore a thermostat to the normal daytime set point after a night-time set back? Or, maybe restore a water heater to its normal temperature set point after a night-time set back or trigger a coffee maker to start brewing coffee?
Amazon Show devices have excellent display screens capable of displaying video images from security cameras. Yet, there isn’t an easy path to triggering an Amazon Echo Show to display video from a specific camera when, for example, a security system integrated with a third-party smart home processor or hub detects an issue at a specific location in or around a home.
This article looks at ways to address these integration challenges between Alexa smart speakers and third-party smart home ecosystems.
Triggering a Third-Party Smart Home Processor from an Alexa Routine
Triggering a third-party smart home device from an Alexa routine is very easy, so it makes sense to describe that process first. In essence, this process requires that your third-party smart home processor includes the capability of creating a virtual switch. A virtual switch is one that can be created in software on your third-party smart home processor or hub, can be discovered by Alexa, but doesn’t exist in hardware. This can be done on a Crestron smart home processor by simply adding an entry on the Crestron Voice Control Room Lights module that has an unpronounceable name and can’t accidentally be spoken by someone. The virtual switch shouldn’t include feedback, so it can be triggered repetitively.
The Hubitat Elevation hub also allows creation of virtual devices that can be used as an interface point between Alexa and the Hubitat. Similarly, an unpronounceable name should be given to the virtual switch so that it cannot be triggered accidentally. In addition, so the virtual switch on the Hubitat can be triggered repetitively, it should be configured with “enable auto off” set to one second.
Finally, once the virtual switch is created on the Crestron processor or Hubitat hub, and Alexa has been commanded to “discover devices,” the switch will show up among Alexa’s list of devices. An Alexa routine can then be created that is triggered when, in the example described above, an Alexa alarm clock goes off. The routine should then turn on this virtual switch, and that action can trigger logic on the Crestron processor or Hubitat hub.
If you aren’t using one of these platforms, then you will have to investigate the capabilities that your specific platform offers for doing this.
Triggering an Alexa Routine from a Third-Party Smart Home Processor
Unfortunately, triggering an Alexa routine from a third-party smart home processor gets more complicated.
On a Hubitat Elevation hub, the process is very similar to what I have described above. In this case, an Alexa routine can be triggered by a sensor, but not by a switch. So, on the Hubitat you just need to create a virtual contact sensor. Then, when logic on the Hubitat closes the contact sensor, this can trigger an Alexa routine. However, if, for example, your Alexa routine is triggered when the virtual contact sensor is closed, then your Hubitat will need to open it right afterwards — just like the when a smart switch was used by an Alexa routine to trigger code on a smart home processor or hub. This is needed so that the virtual contact sensor is ready to trigger your Alexa routine again.
Unfortunately, a Crestron processor’s Alexa integration modules are designed to only support the ability for voice commands to trigger smart home devices connected to the Crestron processor. There is no ability to create a virtual sensor that would allow triggers to travel from the Crestron processor to an Alexa smart speaker. So, triggering an Alexa routine from a Crestron processor requires outside help. There are three options:
Virtual Buttons and mkZense both began as services to allow IFTTT (If-This-Then-That) users to trigger Alexa routines. However, both have since expanded to include the ability to trigger an Alexa routine through https calls communicating with the skill associated with their service. Both also offer detailed instructions on using their products on their web sites. So, I won’t repeat that information here.
It is important to note that both of these are subscription services. However, in both cases the cost is quite low. The cost of Virtual Buttons varies depending on the number of integrations you require. First, Virtual Buttons offers a single virtual button for free. Then, the starter pack of two virtual buttons is $1 per month. Five virtual buttons costs $2 per month and 10 virtual buttons cost $3 per month. There are also larger packages available with up to 99 buttons for $9 per month. Alternatively, mkZense simply offers an unlimited number of API integrations for $5 per year.
For either service, the https calls to trigger an Alexa routine are quite simple. For Virtual Buttons, an https call takes the following format
https://api.virtualbuttons.com/v1
with the following JSON
{
“virtualButton”: [integer 1-99],
“accessCode”: “YOUR ACCESS CODE”
}
The https call for mkZense takes the following format:
https://mkzense.com/webhook/alexa/[TOKEN]/[TRIGGER-NAME]
I have written free Crestron modules for each service that can be downloaded from my GitHub. The Virtual Buttons module can be downloaded here and the mkZense module can be downloaded here. The C# source code for these modules is included so this could be used to port the modules to another platform.
The third alternative is to use the Crestron-Hubitat integration code that is available from my GitHub. You create a virtual contact sensor on the Hubitat, link that device to the Hubitat Maker API app, and insert the appropriate virtual Crestron-Hubitat virtual contact sensor module into your Crestron SimplWindows program. Then, when you trigger the virtual contact sensor to close in your Crestron program, it can be used to trigger an Alexa routine. The process of integrating a Crestron processor with a Hubitat Elevation hub is described in a prior article I wrote for Residential Tech Today, “Integrating a Wide Range of Zigbee, Z-Wave, and IoT Devices with Crestron.”
The above techniques will hopefully let people expand the capabilities of their smart home systems through tighter integration between their third-party smart home ecosystem and their Alexa smart speakers.