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