blob: edf09e208e6f5a1fcd76ff9fb31aafeac8349d59 [file] [log] [blame] [edit]
#!/bin/sh
#
# Port control script for Digital Loggers Inc. Web Power Switch II and III
#
# Written by: Grant Likely <grant.likely@secretlab.ca>
# Copyright 2010 Secret Lab Technologies Ltd.
#
# Usage: dli-pscontrol.sh <admin:passwd@host> <port> {on|off|cycle}
#
# <port> is in the range 1..8.
# 'cycle' will turn a port off and on with a 1 second delay.
#
# The Web Power Switch uses a simple http request protocol for controlling
# the port state. The action simply gets encoded into the url in the form:
#
# http://<user>:<passwd>@<host[:port]>/outlet?<port-number>={ON|OFF|CCW}
#
# ON and OFF are self explanatory.
# CCW means cycle power, but only has effect when the port is already on.
#
# The protocol is simple enough that wget is sufficient to control ports.
baseurl="http://${1}"
porturl="${baseurl}/outlet?${2}"
wget_cmd="wget --auth-no-challenge -O /dev/null"
port_set() {
${wget_cmd} "${porturl}=${1}" > /dev/null 2>&1
}
case "$3" in
on)
port_set ON
;;
off)
port_set OFF
;;
cycle)
# The CCW command *could* be used here, but the command has no
# effect if the port is in the OFF state.
port_set OFF
sleep 1s
port_set ON
;;
*)
echo "Usage: $0 <admin:passwd@host> <port> {on|off|cycle}"
exit 1;
;;
esac
exit 0