Hello,
this is a followup to the posts sispmctl
and sispmctl – using it as non root
. With this script we can switch the light on and off, toggle it and check the current state.
This shell script shows how to
- check the parameters
- use or with if
- use echo without creating a new line
- use sispmctl
Here we go:
#!/bin/sh
# light
# 20110112 crissa for http://blog.rotten.li
if [ "$#" == "1" ]
then
if [ "$1" == "on" ] || [ "$1" == "-o" ]
then
if [ `sispmctl -q -n -g 1` == "0" ]
then
sispmctl -q -o 1
echo "light: switched on"
sleep 3
else
echo "light: the light is on"
fi
elif [ "$1" == "off" ] || [ "$1" == "-f" ]
then
if [ `sispmctl -q -n -g 1` == "1" ]
then
sispmctl -q -f 1
echo "light: switched off"
sleep 3
else
echo "light: the light is off"
fi
elif [ "$1" == "toggle" ] || [ "$1" == "-t" ]
then
echo "light: toggle"
sispmctl -q -t 1
echo -n "light: the light is "
sispmctl -q -g 1
sleep 3
elif [ "$1" == "state" ] || [ "$1" == "-s" ]
then
echo -n "light: the light is "
sispmctl -q -g 1
else
echo "light (on|off|toggle|state)"
fi
else
echo "light"
echo "light on or light -o to switch light on"
echo "light off or light -f to switch light off"
echo "light toggle or light -t to toggle light"
echo "light state or light -s to get light state"
fi
# eof
The script checks the current state before it switches the light on or off. Why switch the light on if it is already on? At the moment I don’t know how toggle could ever be useful. But the current state is useful if you aren’t in the same room as the power outlet and the light!
Bye, Tore