LED Zoom Meeting Busy Light Indicator
A simple way to create the LED Zoom meeting busy light indicator. The LED light will turn red if your Zoom meeting session is running and it will turn green if the meeting is finished. It shows your status if you’re working in office or even working from home to avoid distractions.
We will be using this approach as depicted in the diagram below. The python script running on your Mac computer will check the Zoom subprocess. If there is an active meeting session, it will send a message to PubNub service and then route to the Web Bluetooth which is paired with the micro:bit with RGB LED. For this use case I am using Mac OS with OS Catalina (10.15.7).


PubNub
Create an account in https://www.pubnub.com and create a new app. Get the Publish and Subscribe key.

We will use the keys later in the Python and Web Bluetooth app to communicate the message.
micro:bit & RGB LED
Get the micro:bit and deploy the firmware from https://github.com/ferrygun/SACGoogleGauge_RGBLED/tree/master/microbit_firmware
Follow this guide to connect an RGB LED to a micro:bit https://www.teachwithict.com/rgbled.html
Web Bluetooth
Enable the Web Bluetooth feature in the Chrome browser. Type edge://flags (if you are using Edge) or chrome://flags/ (if you are using Chrome) and search for experimental-web-platform-features and enable it.

Update the publishKey and subscribeKey information with the keys you get in the earlier step and run a web bluetooth app hosted on your local Mac and pair the micro:bit.

Once it is paired, click the Green On button and see if the LED light turns green.

xbar
We will be using xbar from matryer/xbar: Put the output from any script or program into your macOS Menu Bar (the BitBar reboot) (github.com) to run the python script that checks the Zoom subprocess.

ps x | grep -E “\-key [0–9]{9,10}”
If the Zoom session is running, you will see a similar message.

Create a plugin in xbar date.5s.sh which checks the subprocess every 5s.
#!/bin/bash
#!/usr/bin/env /usr/local/bin/node
# <bitbar.title>Zoom Meeting Status</bitbar.title>
# <bitbar.version>v1.0</bitbar.version>
# <bitbar.author>Ferry Djaja</bitbar.author>
# <bitbar.author.github>Ferry Djaja</bitbar.author.github>
# <bitbar.desc>Simply run a Python script to detect an active meeting</bitbar.desc>pythonenv=”/usr/local/opt/python@3.9/bin/python3.9"
script=”/Users/ferry/zoom.py”$pythonenv $script
Update the pnconfig.subscribe_key and pnconfig.publish_key with the keys yo get in the earlier step. And that’s about it.