Auraio and Conveying Information With Atmospheric Lighting

After the LED strip project I was itching to make it more useful. I wanted to do something with the RGB LED strip lighting that would convey real world information to me. For this, I built auraio. It's built with python, and is completely modular. My first plugin was for Sensu monitoring.

By plugging auraio into sensu, I was able to have the atmospheric lighting tell me when something has gone wrong(or that everything is okay). I decided to go with red when there's a critical issue, yellow if a warning, green for "everything is cool", and blue when there's and unknown state and a human needs to get involved to interpret.

blue looked pretty good

LED Control

Auraio was pretty straight forward to build. It needed to be able to control the LEDs on a Raspberry Pi. For this I used the pigpio daemon and Python library.

pigpio made setting the LED states really straight forward and it just took a little follig around to get it to blink, sent brightness, set color taking a hex value, and fade from state to state in a fairly pleasant manner. I shot a video of the state change at some point but I can't find it right now. If I do, I'll post it.


I built this so it could take whatever plugins it needs. I only needed Sensu at first, but you could build a plug-in to consume data from whatever and send a state/alert back to the controller to tell it what to do. Right now, that's just "good", "warn", "bad", and "unknown." Those are the easiest states to convey through light, anyway.


I based the Sensu plugin off of it's check states. Basically, they map to 0(good), 1(warning), 2(bad), and any higher number is from a Sensu check plugin throwing an unusual state. That's almost always bad, but sometimes it's just garbage, which is why I couldn't default to bad > 1.


I hope to hook this up to a Grafana display in the future to get the full monitoring picture with glanceable information provided by auraio. Perhaps a Raspberry Pi could handle everything.