DIY Home Automation v1

DZone 's Guide to

DIY Home Automation v1

A Raspberry Pi, some borrowed code, and simple hardware make for a quick home automation project to control power outlets

· IoT Zone ·
Free Resource

For years I've been interested in home automation. I've had remote controllable outlets from a few different manufacturers but I've never been quite satisfied with just the remote. What if I could control my outlets within my local network from any device, now that's something I wanted to have.

Controlling Outlets From Computer

A few years back I bought a three pack of remote controllable Nexa outlets. A while ago I discovered that another company manufactured a control unit that plugs into a USB port and best of all they provided Linux software for it.

To make full use of these I'd need a computer that's always on, and that's where I could make use of Raspberry Pi.

Setting Up Outlets

I had already set up my outlets with the remote that came in the retail pack by following the manufacturer's instructions.

It might be possible to configure the outlets completely via the software (at least for some brands) but I haven't tried it so I can't be sure.

Required Software

To make use of the Tellstick Duo control unit, Tellstick provides software and easy to follow instructions. The important thing here is to install both applications - telldus-core and tellduscenter.

The telldus-core is the software that does the actual controlling and tellduscenter provides a GUI that I found necessary to configure the outlets for telldus-core.

Pairing Outlets and Software

To pair the outlets with tellstick software I used the tellduscenter's outlet scanning option. With this option my outlets respond to the remote and the tellstick duo controller unit.

Not Good Enough

With this setup I can control the outlets from a computer but only from the computer that has the tellstick duo connected to it. I want to be able to control the outlets from anywhere in my house.

Outlets Control From Network

To control the outlets from any device in my home network I needed a way to share the control unit to my home network.

My first thought was that I could create I library that would execute the telldus software commands and I could then wrap that to a REST service and build a simple HTML and JavaScript UI that would communicate with the REST service.

After the first idea I figured that someone must have already solved this problem in some way and I started to look for solutions that others had created, and then I came across remotestick-server that did exactly what I wanted with the exception that it produced XML.

Modify the Existing Software

I created a fork of the remotestick-server and modified the code a bit. I removed some options that I didn't need and modified the software so that it produced JSON instead of XML.

As I wanted a simple UI that I could use from any device I also added some HTML, CSS and JavaScript to the same codebase as it could be served via the same software so no need to complicate things and create a separate application for the UI.


Now I have a partly DIY home automation for outlets with a simple UI to use from any device in my home network.

Next step is to add more outlets and maybe some scheduled automation.

Demo Video

raspberry pi ,home automation

Published at DZone with permission of Jori Lytter , DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}