| OLD | NEW |
| (Empty) |
| 1 #!/bin/sh | |
| 2 # | |
| 3 # Port control script for Digital Loggers Inc. Web Power Switch II and III | |
| 4 # | |
| 5 # Written by: Grant Likely <grant.likely@secretlab.ca> | |
| 6 # Copyright 2010 Secret Lab Technologies Ltd. | |
| 7 # | |
| 8 # Usage: dli-pscontrol.sh <admin:passwd@host> <port> {on|off|cycle} | |
| 9 # | |
| 10 # <port> is in the range 1..8. | |
| 11 # 'cycle' will turn a port off and on with a 1 second delay. | |
| 12 # | |
| 13 # The Web Power Switch uses a simple http request protocol for controlling | |
| 14 # the port state. The action simply gets encoded into the url in the form: | |
| 15 # | |
| 16 # http://<user>:<passwd>@<host[:port]>/outlet?<port-number>={ON|OFF|CCW} | |
| 17 # | |
| 18 # ON and OFF are self explanatory. | |
| 19 # CCW means cycle power, but only has effect when the port is already on. | |
| 20 # | |
| 21 # The protocol is simple enough that wget is sufficient to control ports. | |
| 22 | |
| 23 baseurl="http://${1}" | |
| 24 porturl="${baseurl}/outlet?${2}" | |
| 25 | |
| 26 wget_cmd="wget --auth-no-challenge -O /dev/null" | |
| 27 | |
| 28 port_set() { | |
| 29 ${wget_cmd} "${porturl}=${1}" > /dev/null 2>&1 | |
| 30 } | |
| 31 | |
| 32 case "$3" in | |
| 33 on) | |
| 34 port_set ON | |
| 35 ;; | |
| 36 off) | |
| 37 port_set OFF | |
| 38 ;; | |
| 39 cycle) | |
| 40 # The CCW command *could* be used here, but the command has no | |
| 41 # effect if the port is in the OFF state. | |
| 42 port_set OFF | |
| 43 sleep 1s | |
| 44 port_set ON | |
| 45 ;; | |
| 46 *) | |
| 47 echo "Usage: $0 <admin:passwd@host> <port> {on|off|cycle}" | |
| 48 exit 1; | |
| 49 ;; | |
| 50 esac | |
| 51 | |
| 52 exit 0 | |
| OLD | NEW |