Overview
This post will cover how to set up a Phillips Hue Lightstrip to change color automatically to red during a meeting, and green when not in a meeting.
Required Materials
Prerequisites
- nodejs and npm
- Command line git
- Computer with Mac OSX Catalina
Installation
My instructions will walk through setting up the script at the following location:
$HOME/Library/cron
If you place your script at a subdirectory of $HOME/Documents you will have to add permissions for cron to access all files and folders via system preferences.
Downloading and connecting to the hub
We will be using phillips-hue-experiments by Armando Magalhães to connect to our hue smart hub.
Download the code to $HOME/Library/cron
mkdir -p $HOME/Library/cron
cd $HOME/Library/cron
git clone https://github.com/armand1m/philips-hue-experiments
cd philips-hue-experiments
npm ci
Setting up your API key
In order to make calls to Philips Bridge, you need to authenticate your device.
Keep in mind you need to press the button in Philips Bridge before running this command in order for it to work (you’ll have an error message telling you to do so, if you forget to do this).
- Without pressing Bridge button:
Image courtesy of Armando Magalhães
- After pressing Bridge button:
Image courtesy of Armando Magalhães
Storing your API key
Once you obtain your API key place it file $HOME/.hue like this
PHILIPS_HUE_USERNAME="<FULL KEY GOES HERE>"
Setting up the Meeting Checker
Download the code to check if a meeting is running and change the color of the light
cd $HOME/Library/cron/philips-hue-experiments
curl -L -O https://gist.githubusercontent.com/ssstonebraker/fb808b27a688cacabcaca60289f12a59/raw/b5ab6578499ab6cc7b219b76ee923fd439577dfd/hue.sh
sudo chmod +x hue.sh
Meeting Checker Code Details
The code will check if the GotoMeeting, Zoom, Teams, or WebEx teams process is running.
If true the light will turn red:
If false, the light will turn green:
Known Issues
Right now the code will attempt to change all lights connected to the hub to either red or green
Running the Code Every Minute
To run the code every minute you will need to modify the crontab
Opening the Crontab
Specify your preferred editor via the EDITOR variable, then open the crontab via ‘crontab -e’.
Example:
export EDITOR=nano
crontab -e
Modifying the Crontab
To run the script every minute, add the following code at the bottom of the crontab:
* * * * * . $HOME/.bash_profile; cd $HOME/Library/cron/philips-hue-experiments && $HOME/Library/cron/philips-hue-experiments/hue.sh 2>&1 >> $HOME/Library/cron/philips-hue-experiments/log/hue.log
@daily /bin/echo "" > $HOME/Library/cron/philips-hue-experiments/log/hue.log
Code can also be found here:
https://gist.github.com/ssstonebraker/0a2c372c36b0b0efdbf24fde67be9091
Debugging the Crontab
You can use mail and console.
Crontab messages can be found by running the “mail” command from the terminal. You may see a message that reads:
Failed to run operation "set color to 'weird green (#42f581)'": { Api Error: parameter, xy, not available
That is okay as long as your light strip is still changing color. That message means that the app tried to change the color of lights on the hub that did not have that ability.
console
Open the console.app and search for the word "hue" to find any permissions related issues to our hue app.
You can launch the Console app from Spotlight by pressing Command+Space and searching for it, or from the Utilities folder in your Applications directory. (Open Finder and select “Applications” to find it.)