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 |