Leveraging Webex Endpoint APIs for In-Home Notifications
With an increase in the number of people and families working from home at the same time, being able to alert your spouse, partner, children or roommates that you are on an audio or video call is becoming increasingly important.
The current global pandemic has created an immense challenge for people who typically have been working from an office during the workweek. Many households are now dealing with multiple people working from home, children participating in distance learning or a complete lack of child care, resulting in an often distraction-filled situation when needing to join work-related calls and meetings.
For many, balancing the distractions that come with the current situation is a challenge. One way to deal with these distractions is by finding a way to alert their spouses, partners, children or roommates they are "on-air." This alert can have an immediate benefit and reduce the anxiety that comes with knowing you may be interrupted while working.
The home automation market itself is a huge growth market. Industry analysts predict it may pass the $100 billion mark as soon as 2025, while sustaining annual growth in the double digits. Suppose you look at some of the technologies that fall into this category including automation "hubs" or assistants, smart switches, thermostats and lighting. There is a good chance that you, or someone you know, are already using some of these technologies.
Leveraging home automation to solve this unique work-from-home challenge is an exciting blend of enterprise and consumer technologies that will become more common as people continue to work from home.
Bridging the enterprise and consumer technology gap
Open APIs are the key to bridging the enterprise and consumer technology gap. By leveraging programmability to solve these unique challenges, the options are limitless.
From an enterprise hardware standpoint, many displaced workers (including myself), are leveraging Cisco Webex collaboration endpoints in their homes, like the Cisco WebEx DX80 or Cisco WebEx Desk Pro endpoint. These support an industry-best video API known as the xAPI, which provides the means to interact with the device and subscribe to system-wide events that will alert us to situations such as the endpoint joining a call and whether or not the video is enabled.
In the home automation space, there are many available platforms and solutions available on the market. Some of these platforms have open APIs, while others have fully closed ecosystems. In the case of this example and inside my home, I am using the Home-Assistant platform, a system that puts local control and privacy first while being 100 percent open-source and having a robust REST API. Home-Assistant also has support for hundreds of different integrations, including full Z-Wave support, which is how the Inovelli Red Series dimmers and switches in my home are connected.
A python application leverages the xAPI on the Cisco WebEx endpoints and the REST API of Home-Assistant to trigger notification alerts on the Inovelli Red Series dimmers and provide an "on-air" sign-like experience.
This application connects to a Cisco Webex endpoint via Websockets and subscribes to state events from the endpoint that include:
- Active calls.
- Camera lid status.
The state event messages are parsed and trigger the LED notification strip on the dimmer with the configured notification colors and patterns. As you can see in the pictures, the color triggered on the switch is fully configurable, including multiple behaviors (solid on, racing light, etc.) and the total duration that you want the notification enabled.
It is fully self-contained while supporting 12 Factor application development principals to eliminate any hard coding of secrets or API keys in the code itself. The application is also leveraging a notification framework that you can extend to support additional home automation platforms beyond Home-Assistant without having to modify or tweak the code handling the interaction with the Cisco Webex endpoints.