@cowboysdude Thank you!! :) The LEDs you say. :) Ok, for the moment, the mirror is not “aware” of the leds. This is something I’m planing to implement. But as it works now I’m using PixelWeb with Bibliopixel 2.x as a back end. Then I’m using the below sh script to trigger different (predefined so far) animations.
#!/bin/bash
#-----------------------------------------------------------------------------
#
# Snilles MagicMirror Led Conrol Script.
# Use in conjunction with PixelWEB.
#
#-----------------------------------------------------------------------------
# Connfigure here!
# URL to PixelWEB API On the MM.
apiurl="http://x.x.x.x:8081/api";
# Default program if no argument is set.
defprog="back";
# Default red amount if non is set.
defred="45";
# Default green amount if non is set.
defgreen="30";
# Default blue amount if non is set.
defblue="0";
# Default brightness amount.
defamount="50";
## -------------------------- Dont edit below!! --------------------------- ##
while [[ $# -gt 0 ]] ; do
case $1 in
-h|-\?|--help)
echo "Usage: mirrorleds.sh -p or --program [back, running, alarm, rainbow or thunder (rainbow and thunder needs no colors)] -r or -red [0-255] -g or --green [0-255] -b or --blue [0-255] -a or --amount [0-255]";
exit;
;;
-p|--program)
if [ -n "$2" ]; then
program="$2"
shift
else
program="$defprog"
fi
;;
-r|--red)
if [ -n "$2" ]; then
if [[ "$2" == ?(-)+([0-9]) ]]; then
if [ "$2" -gt "255" ]; then
red="255"
elif [ "$2" -lt "0" ]; then
red="0"
else
red="$2"
fi
shift
else
red="$defred"
fi
fi
;;
-g|--green)
if [ -n "$2" ]; then
if [[ "$2" == ?(-)+([0-9]) ]]; then
if [ "$2" -gt "255" ]; then
green="255"
elif [ "$2" -lt "0" ]; then
green="0"
else
green="$2"
fi
shift
else
green="$defgreen"
fi
fi
;;
-b|--blue)
if [ -n "$2" ]; then
if [[ "$2" == ?(-)+([0-9]) ]]; then
if [ "$2" -gt "255" ]; then
blue="255"
elif [ "$2" -lt "0" ]; then
blue="0"
else
blue="$2"
fi
shift
else
blue="$defblue"
fi
fi
;;
-a|--amount)
if [ -n "$2" ]; then
if [[ "$2" == ?(-)+([0-9]) ]]; then
if [ "$2" -gt "255" ]; then
amount="255"
elif [ "$2" -lt "0" ]; then
amount="0"
else
amount="$2"
fi
shift
else
amount="$defamount"
fi
fi
;;
esac
shift
done
# Default program if non was given.
if [ -z "$program" ]; then
program="$defprog"
fi
# Default red amount if non was given.
if [ -z "$red" ]; then
red="$defred"
fi
# Default green amount if non was given.
if [ -z "$green" ]; then
green="$defgreen"
fi
# Default blue amount if non was given.
if [ -z "$blue" ]; then
blue="$defblue"
fi
# Default amount if non was given.
if [ -z "$amount" ]; then
amount="$defamount"
fi
# Compose the colors
colors="$red,$green,$blue";
# 22 Pixel Alarm
if [ "$program" == "alarm" ]; then
curl -H "Content-Type: application/json" -X POST --data '{"action":"startAnim","config":{"id":"ColorChase","config":{"end":-1,"start":0,"width":22,"color":['$colors']},"run":{"amt":1,"fps":300,"seconds":null,"max_steps":0,"untilComplete":false,"max_cycles":1}}}' $apiurl;
fi
# Rainbowalarm (multi color spinning)
if [ "$program" == "rainbow" ]; then
curl -H "Content-Type: application/json" -X POST --data '{"action":"startAnim","config":{"id":"ColorPattern","config":{"colors":[[255,0,0],[255,165,0],[255,255,0],[0,255,0],[0,0,255],[128,0,128]],"width":20},"run":{"amt":1,"fps":300,"seconds":null,"max_steps":0,"untilComplete":false,"max_cycles":1}}}' $apiurl;
fi
# 1 Running Pixel
if [ "$program" == "running" ]; then
curl -H "Content-Type: application/json" -X POST --data '{"action":"startAnim","config":{"id":"ColorChase","config":{"end":-1,"start":0,"width":1,"color":['$colors']},"run":{"amt":1,"fps":40,"seconds":null,"max_steps":0,"untilComplete":false,"max_cycles":1}}}' $apiurl;
fi
# Backlight
if [ "$program" == "back" ]; then
curl -H "Content-Type: application/json" -X POST --data '{"action":"startAnim","config":{"id":"ColorPattern","config":{"colors":[['$colors']],"width":1},"run":{"amt":1,"fps":1,"seconds":null,"max_steps":0,"untilComplete":false,"max_cycles":1}}}' $apiurl;
fi
# Thunder
if [ "$program" == "thunder" ]; then
curl -H "Content-Type: application/json" -X POST --data '{"action":"startAnim","config":{"id":"WhiteTwinkle","config":{"max_led":null,"speed":2,"density":1,"max_bright":'$amount'},"run":{"amt":1,"fps":300,"seconds":null,"max_steps":0,"untilComplete":false,"max_cycles":1}}}' $apiurl;
fi
# Stop everything
if [ "$program" == "stop" ]; then
curl -H "Content-Type: application/json" -X POST --data '{"action":"stopAnim"}' $apiurl;
fi
# Add a new line...
echo $"";
Then I’m using Alexa (for now) to trigger different animations (via the HA-Bridge server). But later on this will be triggered by a module that “picks up” other modules communication so I can animate the leds depending on for example weather events, calendar events, memo events or whatever I can figure out. :) I just have to convince my wife that animating the leds IS a good thing… :)