To be pedantic: you should use PUT. ;)
http://smartplug?state=on
http://smartplug?state=off
Then to get the state of the plug: http://smartplug?state
In jQuery this would be a easy call $.ajax('http://smartplug?state=on')
Of course you'd have to code the plug server to add the appropriate CORS headers but that's true no matter how you structure the API.You could either replace 'smartplug' with the local ip of the device or alias it in `/etc/hosts`. All pretty standard stuff these days. If you wanted to expose it to the outside world (which actually should be hard to do) you would use DHCP reservation based on it's MAC address and a DynDNS service.
The part that stymies me (and which no-one seems interested in addressing!) is what hardware to get.
https://hackaday.io/project/6799-smartee-the-smart-plug
I find it pretty incredible something like this doesn't already exist from a major manufacturer! I mean, I understand why Belkin/GE/etc want to lock you into their ecosystem, but it seems not that hard to build an open alternative - and eat their collective lunches.Why? Using it to change state seems precisely wrong. PUT seems more appropriate.