'Working from home' during the COVID pandemic has created new challenges for many of us. I thought it would be a good idea to have a status light to indicate when I am on a call to reduce the chances of being interrupted.
I worked as an Engineer in my previous life, and I frequently saw 'tower status lights' on industrial equipment to indicate if they were working or had thrown faults. It's an easy way to spot from across a factory floor if something needs attention. You might have even see one on a self checkout in your local store.
'Working from home' during the COVID pandemic has created new challenges for many of us. I thought it would be a good idea to have a status light to indicate when I am on a call to reduce the chances of being interrupted... Do you remember this hilarious interview?
There have been a few iterations of similar 'On Air' lights popping up recently as well, such as this one (there are loads of examples on Thingiverse - the theory is the same, just a different 3D printed device!);
I decided to go for a tower style design. I started off by creating a design in Fusion 360 that would be smaller than a typical status light, but wide enough to fit a WS2812 circular LED matrix. You will see later that I might have over-done it a bit for the LED matrix...
The design I settled on is below, all 3D printed with PLA (with 'transparent' PLA in for the lens section). The parts all snap together.
The WS2812 (aka 'neopixel') is connected directly to an ESP8266. I chose a 7-bit module for the tower. This gives full RGB, and as I'm sure you can guess if you have read my other posts, it can be controlled using MQTT via Home Assistant!
The following code can be used with the Arduino IDE and uploaded to the ESP8266. You can add other code in here too, so the ESP does more than one job. The node I have connected also has a DHT22 to monitor temperature and humidity in the lab.
To add this to Home Assistant, you will need to add some config code (and a working MQTT broker;
Result & upgrades
The end product is simple but works very well. If the light is red, I'm on a call. If it's amber, it's a webinar (and I can probably be interrupted). I set the light manually using my desk macro keyboard - another post to follow for this.
There are a few ways this project could be improved with automation. These could be triggered by Home Assistant, or possibly another node or script.
The light colour could be changed based on different events, for example...
UV or pollen meter as a reminder for sun-cream or anti-histamines
Continuous integration build status (see below!)
Screen time reminder (red = time's up!)
Automated call status (Teams / Webex integration)
Email inbox indicator
Did you build this? Or have any comments? Get in touch: firstname.lastname@example.org