The Covid-19 pandemic has brought many new challenges to our professional and personal lives. Employees around the world are in a crisis. Since the majority of the global workforce are not used to working from home.

With the need of increased collaboration across different teams, conducting regular team meetings have become very crucial, video conferencing tools, such as Microsoft Teams, zoom are used to bridge the communication gap between team members and build cognitive and emotional trust.

Employees doing their jobs from their homes are adjusting their seats to meet the organizational needs amidst everything that is happening around the world.. But this sudden shift in work culture has brought some new challenges with it.

Distraction at work is one of the most significant challenge of working from home. When the kids are running around, talking loudly, watching television, or fighting with each other it can be very difficult to get any work done. A spouse may come to your desk and talk to you about critical issues or things that aren’t important at that moment.

Here is a video that went viral recently which perfectly illustrates the above situations.

My IOT Solution:

Since i had few spares of NodeMCU Esp32, a RGB neopixel Led strip and fair knowledge of how these things works. I worked on a weekend project to create a standalone Microsoft Teams Presence Light that visualizes your presence status from Microsoft Teams with the help of colored LEDs. This was possible due to the availability of the presence API endpoint in MS Graph, allowing to retrieve the current Team Presence (Available, Busy, Be right back, Do not disturb etc) for a logged in user.

This now completes my goal and gives a visual indication when I am Busy or In a call and my kid / spouse now knows when they should stay away from my office. 🙂

Some Technical Details:

This projects implements the device login flow to authenticate against Microsoft Azure AD and to get a access token. Using this token, the device can call the Microsoft Graph API to get presence information for the authenticated user. The token is automatically refreshed so that it can run standalone for some time.

Everything is implemented in C code for Arduino-style microcontrollers and runs directly on the cheap and powerful WiFi-connected ESP32 board.

Main Components:

1. ESP31 Wifi Controlled Board

2. Neo Pixel RBG LED

Working Demo of my Setup: