My friend and I are in a university and we have been asked by the agriculture professor to create automated watering systems for plants. We want to have control over the grow lights so are there any commercial product that has an API that I can turn on/off/query power consumption through a request HTTP request, etc.

We just need to control 300w-1200w equivalent LED grow lights.


12 Answers 12


A couple of options off the top of my head.

  1. Sonoff kit, can be flashed with open source firmware that allows control via MQTT/HTTP. While not sockets directly adding it into the cable is not hard. The Sonoff Pow does control and power monitoring.
  2. Belkin's WeMo sockets use SOAP messages and uPnP which is self describing (you can see my notes on working out the messages here. The Wemo Insight does control and power monitoring.

Those are mainly consumer grade kit, there is a huge amount of industrial kit using protocols like modbus that will do the same sort of thing.


The easiest to use is Shelly. They have relays and smart plugs and you can control them via http, like this:


Here is the reference. If you use authentication the syntax is:

  • Seems reasonable if they work as described. Though they have only single-socket options at the moment.
    – sherrellbc
    Commented Dec 9, 2022 at 17:12
  • Have you found any other multi-socket options, also with an open API?
    – nicosemp
    Commented May 21, 2023 at 8:19

Check out Wifiplug.co.uk they provide the hardware and open API for 3 pin plug (UK, ASIA etc)

API here: Developer.wifiplug.co.uk

Free API for hobbyists - excellent suppport too.enter image description here

  • Eww, this goes over the internet even when both devices are on the LAN
    – Navin
    Commented Nov 14, 2022 at 8:26
  • 1
    @Navin my thought as well. It seemed like a perfect fit at first, too. What a shame. I just want a way to do simple "on/off" requests locally. No apps, no Internet ... why is that so hard to find.
    – sherrellbc
    Commented Dec 9, 2022 at 17:06

Netio makes industrial grade smart power strip. It is a bit pricey but has ton of open interfaces(SOAP, REST, MQTT, CGI and more) and you can download the specs from their site. It even has wired ethernet port.



After struggling to find smart plugs with an open API, I found a stable workaround that can work for a lot of personal projects.

I noticed that a lot of smart plugs have an IFTTT service, from which you can query the different functionalities. As you can interact with IFTTT in a lot of different ways (mail, webhook, etc.), this could allow to create quite complex apps using IFTTT as an endpoint to interact with the plug.

For example, you can setup an IFTTT webhook, which is basically a web request (GET or POST) to IFTTT which can trigger an action to turn the plug on or off. I tested this with a D-Link plug I had (DSP-W115) and it worked as expected.

Some products for which I found an IFTTT service are: D-Link, TP-Link or WeMo.

  • The problem with IFTTT is that it can have significant lag. Sometimes > 10s
    – Tarynn
    Commented Jan 9, 2022 at 16:53

This website provides a list of devices compatible with Tasmota and likely ESPhome because based on ESP8266 or similar chips. After reflashing you can control them easily.


For switching a 1200W devices you can use ESP8266 incl relay.

You can upload a generic Arduino code to control it, or even more- use Home Assistant for controlling and scheduling.

  • @SeanHoulihane - link fixed. please explain what are you worried about
    – guyd
    Commented Sep 26, 2018 at 17:40
  • Clearance between the NO track and Vdd is about 0.2mm - which means the Vdd must be well grounded and an ELCB used. University is potentially classed as'at work', so there is scope for legal liability if you don't take 'adequate'safety precautions. Commented Sep 26, 2018 at 18:42
  • PCB standardize those gaps. Be sure what are your real limitations
    – guyd
    Commented Sep 28, 2018 at 9:56

I was looking for something similar today and found the CloudFree smart plug which should work. That one supports 10 amps. That same site also has other consumer products they have flashed with open source firmware which will do the same thing and support up to 15 amps.


If you have an amazon alexa and your device is compatible to be controlled with it, you can use voicemonkey.

  1. You install the voicemonkey skill
  2. You go to the voicemonkey web and create a 'monkey' with a name, let's say "foo"
  3. You create an alexa routine that will perform your desired action, the trigger of the routine will be a "smart home" called "foo"
  4. You go to the webmonkey web and copy the URL from the 'monkey'.
  5. With that URL you'll be able to perform the alexa routine

I've been using this with the macro keys from my keyboard in order to switch off the AC and lamps when I'm going to bed and works like a charm, hope it'll help you


Take a look at the Kiwi Warmer Rowi: https://www.vaiotech.co.nz/products/. It is a fully customisable and programmable Smart Plug with open API (no need to connect with the cloud). And it is possible to use the Firmware SDK to write own C/C++ code as well as create own Mobile Apps using their Mobile App SDK.


Generally speaking, in such case one would simply use a relay. A relay is exactly a "smart plug" without the smart part, basically a relay is a simple device that will flip a switch based on a command, that command can be simply to put a certain voltage to it's pin (most likely 3.3V or 5V when it comes to IOT). The command can also be via I2C, for instance with this relay you will have to use I2C to explain to the relay board which switch you want to flip.

So one would basically connect a relay to a Micro Controller Unit (MCU) with the necessary connectivity to receive the command and pass them to the relay.

I assume that you are also going to use some sensor and this kind of things.

There's two approach, either you buy each individual "smart" stuff ie sensors relays and so on which will include in each of them a MCU + one feature (for instance relays or sensor or electrovalve or whatever).

Or the most commonly use approach at least in R&D is to drive down the cost by using one or several MCU as needed (for instance ESP32 family) and using them as the base board for the sensors and relays and so on, you would use them to get data from the sensor using and switching outputs such as relays or electrovalves.

If for some reason you would be requiring more that one MCU then we would go with a "gateway" that will act as the brain of the operation. And that gateway board would control your slaves, and all your requests would go through it and the slaves will go through the gateway to get to you.

Usually this gateway board use a slightly bigger and easier to use processor for instance something running able to run Linux as IMX6, IMX8 or raspberry pi or something like that with the proper connectivity and servers one would need. You will choose this board for instance based on you criteria of connectivity, do you need ethernet? Bluetooth? Wifi? RF? GSM? Sigfox? RF? And then it's capacity to run what you will need it to run such as a REST Api, MQTT server, Socket server and so on.


You can make your own device for your requirement using NodeMCU and Solid State Relay. This can link with Google Assistant or Amazon Alexa too. For more information visit: https://websevice.lk OR https://sinric.com

Not the answer you're looking for? Browse other questions tagged or ask your own question.