From 869f2007bee1a12ab6eb18013b6b4647b67efbb3 Mon Sep 17 00:00:00 2001 From: Emil Lerch Date: Wed, 24 Jul 2019 17:45:39 -0700 Subject: [PATCH] add shell script to control wemos (this will later be built into wemo.go --- wemo_control.sh | 79 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100755 wemo_control.sh diff --git a/wemo_control.sh b/wemo_control.sh new file mode 100755 index 0000000..92843a9 --- /dev/null +++ b/wemo_control.sh @@ -0,0 +1,79 @@ +#!/bin/sh +# +# WeMo Control Script +# +# rich@netmagi.com +# +# Usage: ./wemo_control IP_ADDRESS ON/OFF/GETSTATE/GETSIGNALSTRENGTH/GETFRIENDLYNAME +# +# + +IP=$1 +COMMAND=$2 + +PORTTEST=$(curl -s $IP:49152 | grep "404") + +if [ "$PORTTEST" = "" ] + then + PORT=49153 +else + PORT=49152 +fi + +if [ "$1" = "" ] + then + echo "Usage: ./wemo_control IP_ADDRESS ON/OFF/GETSTATE/GETSIGNALSTRENGTH/GETFRIENDLYNAME" +else + + if [ "$2" = "GETSTATE" ] + + then + + curl -0 -A '' -X POST -H 'Accept: ' -H 'Content-type: text/xml; charset="utf-8"' -H "SOAPACTION: \"urn:Belkin:service:basicevent:1#GetBinaryState\"" --data '1' -s http://$IP:$PORT/upnp/control/basicevent1 | +grep "" -f2 | cut -d "<" -f1 | sed 's/0/OFF/g' | sed 's/1/ON/g' + + elif [ "$2" = "ON" ] + + then + + curl -0 -A '' -X POST -H 'Accept: ' -H 'Content-type: text/xml; charset="utf-8"' -H "SOAPACTION: \"urn:Belkin:service:basicevent:1#SetBinaryState\"" --data '1' -s http://$IP:$PORT/upnp/control/basicevent1 | +grep "" -f2 | cut -d "<" -f1 + + elif [ "$2" = "DIM" ] + + then + + curl -0 -A '' -X POST -H 'Accept: ' -H 'Content-type: text/xml; charset="utf-8"' -H "SOAPACTION: \"urn:Belkin:service:basicevent:1#SetBinaryState\"" --data '1'"$3"'' -s http://$IP:$PORT/upnp/control/basicevent1 | +grep "" -f2 | cut -d "<" -f1 + + elif [ "$2" = "OFF" ] + + then + + curl -0 -A '' -X POST -H 'Accept: ' -H 'Content-type: text/xml; charset="utf-8"' -H "SOAPACTION: \"urn:Belkin:service:basicevent:1#SetBinaryState\"" --data '0' -s http://$IP:$PORT/upnp/control/basicevent1 | +grep "" -f2 | cut -d "<" -f1 + + elif [ "$2" = "GETSIGNALSTRENGTH" ] + + then + + curl -0 -A '' -X POST -H 'Accept: ' -H 'Content-type: text/xml; charset="utf-8"' -H "SOAPACTION: \"urn:Belkin:service:basicevent:1#GetSignalStrength\"" --data '0' -s http://$IP:$PORT/upnp/control/basicevent1 | +grep "" -f2 | cut -d "<" -f1 + + elif [ "$2" = "GETFRIENDLYNAME" ] + + then + + curl -0 -A '' -X POST -H 'Accept: ' -H 'Content-type: text/xml; charset="utf-8"' -H "SOAPACTION: \"urn:Belkin:service:basicevent:1#ChangeFriendlyName\"" --data 'Pool Filter' -s http://$IP:$PORT/upnp/control/basicevent1 | +grep "" -f2 | cut -d "<" -f1 + + else + + echo "COMMAND NOT RECOGNIZED" + echo "" + echo "Usage: ./wemo_control IP_ADDRESS ON/OFF/GETSTATE/GETSIGNALSTRENGTH/GETFRIENDLYNAME" + echo "" + + fi + +fi