p0wer - Control mains outlets over wifi.

Updated 31 March 2022

As part of a larger home automation project, I wanted the ability to control some mains power outlets remotely. To achieve this, I interfaced the transmitter from an inexpensive 433MHz mains remote control kit with a raspberry pi zero w (via a pair of 4066 chips). I then wrote a programme in C to which the desired channel is passed along with either an "on" or "off" command. I can now run a script from my smartphone which connects to the raspberry pi and triggers the remote mains outlet.

I started off with a mains outlet remote control kit I purchased from Bunnings. It's and Arlec brand kit and works by transmitting on the 433.92MHz band. The remote can control up to four channels (A, B, C & D). A Raspberry Pi Zero W is used to control everything.

To interface the remote control I had to reverse engineer it. I assumed it would be a matter of tracing the button pads and finding a point to which I could connect a GPIO pin on the Raspberry Pi and pull up or down to trigger. This was not the case and I found that the button pads were matrixed so triggering a channel required connecting two specific points with each other, depending on the channel and the desired action ("on" or "off").

As such, instead of direcly connecting to the GPIO, I used the GPIO to trigger bilateral switches within a couple of 4066 CMOS quad bilateral switch packages. The circuit diagram is attached.

The final assembled circuit included headers for connecting the raspbrry pi and the hacked remote. I added a barrel jack for power and put the assembly inside a plastic case.

I wrote a program in C that takes the desired channel (A, B, C or D) and desired control ("on" or "off") and then pulses the remote control to give the desired effect. The code (and KiCad schematic) is on github: https://github.com/Clewsy/p0wer

Ultimately I intend to facillitate switching of these mains outlet units via a web-server. However until I finish that, I currently use a Termux shortcut on my android smartphone to run a script corresponding to the channel. Thus, by pressing a button on my homescreen I can, for example, switch on a lamp in the lounge room at home. The script will connect to the raspberry pi (using ssh) and run the programme with the desired inputs. For example, the following two-line script will connect to the raspi via the home server and run the program with the options to turn on the channel A outlet:

#!/bin/bash
ssh home.server "ssh raspberry.pi "p0wer a on""

Attachment - Project Files

Have a question? Ask the Author of this guide today!

Please enter minimum 20 characters

Your comment will be posted (automatically) on our Support Forum which is publicly accessible. Don't enter private information, such as your phone number.

Expect a quick reply during business hours, many of us check-in over the weekend as well.

Comments


Loading...
Feedback

Please continue if you would like to leave feedback for any of these topics:

  • Website features/issues
  • Content errors/improvements
  • Missing products/categories
  • Product assignments to categories
  • Search results relevance

For all other inquiries (orders status, stock levels, etc), please contact our support team for quick assistance.

Note: click continue and a draft email will be opened to edit. If you don't have an email client on your device, then send a message via the chat icon on the bottom left of our website.

Makers love reviews as much as you do, please follow this link to review the products you have purchased.