Controlling a cheap smart plug from Linux

Using curl from the CLI

But you don't have to use a web browser to give commands to the Sonoff S20. You can use the Bash curl command. To power on the smart plug and let it automatically shut down after seven minutes, use:

$ curl,startmakingcoffee

The Timer Function

The smart plug has an internal scheduler. It can be used to program the Sonoff S20 to start and stop at given times. Make a ruleset like the one in Listing 4 to start the plug at 05:45 each morning.

Listing 4

The Internal Scheduler


Or you can make it power on depending on the day of the week at predefined hours (Listing 5).

Listing 5

Power-On on a Day of the Week


You can even make it do things between certain hours during the day, as shown in Listing 6.

Listing 6

Power-On at a Time



With a $4 FTDI controller, four cables, and a bit of soldering, you can turn a Sonoff S20 smart plug into a remote-access power-handling device. Using curl or a web server with predefined HTTP links or JPEG buttons, you can control your entire house, from lights to the fridge to anything that needs power from a wall socket. If you set up a VPN, you can SSH into your OpenWrt-powered router, and from there, pass commands via WiFi LAN to any of your smart plugs.

You can start the air conditioning at your log cabin during hot Summer days while on route, turn on your workplace PC before you enter the office building, warm up tea, or wake up to a hot pot of freshly-made coffee in the morning. Program it to do certain things at certain times of the day or week, plug it in, and forget about it. As long as there's power from the power grid and you can access the WiFi network, you don't need an Android app to control your house. The living room TV could power off at midnight if you fall asleep in front of it – even if it's not a Smart TV. Turn your vintage radio into an alarm clock, or water the lawn periodically without a dedicated hose controller – all with a few smart plugs and Linux.

The Author

Razvan T. Coloja is a Romanian psychologist who has worked both as an administrator since 1997 and as the editor-in-chief of the now-defunct Romanian IT magazine MyLINUX. He was the executive editor of the IT-centric magazine MyCOMPUTER for three years, and he has worked as an editor for CONNECT magazine. He has published Linux articles in international print magazines and online.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Tasmota

    Flashing IoT devices with new firmware lets you wield control and keep them out of the cloud.

  • Home Assistant with MQTT

    Automating your four walls does not necessarily require commercial solutions. With a little skill, you can develop your own projects on a low budget.

  • ESPHome

    With an ESP32 or Raspberry Pi Pico W microcontroller board, you can easily create your own home automation devices. Thanks to ESPHome, you don't even have to be a programmer.

  • GPIO on Linux Devices

    The general purpose input/output interface is not just for small-board computers anymore: You can use GPIO on your Linux desktop or laptop, too, through the USB port.

  • Z-Wave Home Assistant

    Z-Wave components, a RaZberry module, and the free Home Assistant software make the Raspberry Pi a powerful smart home control center.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More