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.

  • 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.

  • Programming Snapshot – Power Outages

    A power failure can cause the IQ of a smart home to plummet suddenly. An emergency power supply and a script on the SmartThings platform can prevent a total outage and inform the owner. The polyglot Perlmeister embarks on a foray into the territory of the Groovy scripting language in this issue.

  • WiFi Thermo-Hygrometer

    A WiFi sensor monitors indoor humidity and temperature and a Node-RED dashboard reports the results, helping you to maintain a pleasant environment.

  • First Look at TonidoPlug
comments powered by Disqus

Direct Download

Read full article as PDF:

Price $2.95