This project is a fork of Teams-Presence, extended to support Zoom using the Zoom Presence Indicator API.
For simplicity, I kept the indicator light to three colours:
- Red means the user is sharing their screen, i.e. presenting
- Pink means the user is in an active call, i.e. in a meeting
- Green means the user is not in a call, i.e. available
Status | Colour |
---|---|
Presenting | |
Do not disturb | |
In a calendar event | |
In a meeting | |
Available | |
Away | |
Presence unknown |
- Zoom support
- Indicator selector
- Auto-start scripts
This app was created as part of a bigger project to display the presence status of a Zoom user on a Raspberry Pi integrated with a Unicorn pHAT. You can read the original blog post here.
- A Raspberry Pi Zero W with a Unicorn pHAT attached
- Raspbian and Python3 installed on the Pi
git clone https://github.com/jonathanwelton/raspberry-pi-presence-light-for-teams-and-zoom.git
cd raspberry-pi-presence-light-for-teams-and-zoom
sudo ./install.sh
Start by configuring and deploying a version of the Zoom Presence Indicator API.
Store the configuration values for the API in a config.ini file at the root of this project with the following structure:
[presence_api] url = Zoom Presence Indicator API URL token = Zoom Presence Indicator API Verification Token
To start the Zoom Presence Indicator, execute:
sudo python3 start.py
and select option 2, or
sudo python3 autoStartZoom.py
if you want it to run automatically e.g. when the Pi boots.
Start by configuring an Azure AD app to access your Teams presence, following this guide.
-
In the API permissions section, add
Presence.Read
-
In the Authentication section, enable
Treat application as a public client
-
In the Overview section, take a note of the
Client Id
andTenant Id
To start the Zoom Presence Indicator, execute:
sudo python3 start.py
and select option 1, or
sudo python3 autoStartTeams.py
if you want it to run automatically e.g. when the Pi boots.
The first time it runs you will need to provide your Client Id and Tenant Id, and then autheticate.