How to Make Amazon Echo Control Fake WeMo Devices

[Chris] has been playing with the Amazon Echo. It’s sort of like having Siri or Google Now available as part of your home, but with built-in support for certain other home automation appliances like those from Belkin WeMo and Philips. The problem was [Chris] didn’t want to be limited to only those brands. He had other home automation gear that he felt should work with Amazon Echo, but didn’t. That’s when he came up with the clever idea to just emulate one of the supported platforms.

The WeMo devices use UPnP to perform certain functions over the network. [Chris] wanted to see how these communications actually worked, so he fired up his laptop and put his WiFi adapter into monitor mode. Then he used Wireshark to start collecting packets. He found that the device detection function starts out with the Echo searching for WeMo devices using UPnP. The device then responds to the Echo with the device’s URL using HTTP over UDP. The Echo then requests the device’s description using that HTTP URL. The description is then returned as an HTTP response.

The actual “on/off” functionality of the WeMo devices is simpler since the Echo already knows about the device. The Echo simply connects to the WeMo over the HTTP interface and issues a “SetBinaryState” command. The WeMo then obliges and returns a confirmation via HTTP.

WeMo Echo
How Echo Communicates with WeMo Devices

[Steve] was able to use this information to set up his own WeMo “virtual cloud”. Each virtual device would have its own IP address. They would also need to have a listener for UDP broadcasts as well as an HTTP listener running on the WeMo port 49153. Each virtual device would also need to be able to respond to the UPnP discovery requests and the “on/off” commands.

[Chris] used a Linux server, creating a new virtual Ethernet interface for each virtual WeMo switch. A single Python script runs the WeMo emulation, listening for the UPnP broadcast and sending a different response for each virtual device. Part of the response includes the device’s “friendly name”, which is what the Echo listens for when the user says voice commands. Since the virtual WeMo devices are free, this allows [Chris] to make multiple phrases for each device. So rather than be limited to “television”, he can also make a separate device for “TV” that performs the same function. [Chris] is also no longer limited to only specific brands of home automation gear.

There’s still a long way to go in hacking this device. There’s a lot of hardware under the hood to work with. Has anyone else gotten their hands (and bench tools) on one of these?

Hacklet 55 – Home Automation Projects

Home automation – the idea of a smart home that monitors and controls the inside environment, takes commands from occupants, and generally makes living easier. Hackers, makers, and engineers have been building their own vision of the smart home for decades. Thanks to cell phones and the revolution of the “internet of things”, home automation is now in the public eye. The hackers haven’t stopped though. They’re still building dreams, one circuit and one line of code at a time. This week’s Hacklet is dedicated to some of the best home automation projects on Hackaday.io!

jarvisWe start at the top – [IamTeknik’s] Project Jarvis has been in the top five skulled and viewed projects on Hackaday.io for as long as we’ve been keeping records. Just like the fictional Tony Stark design which inspired its name, Jarvis is based on artificial intelligence. [IamTeknik] has created a system using the BeagleBone Black running his own custom software. He’s also creating Jarvis from the ground up – even the relay modules have been designed and built by [IamTeknik]. So far Jarvis has a great 3D printed door lock unit, and a really nice wall mounted tablet. We’re watching to see what modules [IamTeknik] adds next!

 

hcs[Morrisonpiano] is no home automation noob. He’s been running his own system for two decades. HCS_IV Home Automation System is a project to update his HCS_C home automation system. For the uninitiated, the original HCS was created by [Steve Ciarcia] of Byte and Circuit Cellar fame. There have been several generations of the hardware and software since then, with plenty hackers adding their own custom features. [Morrisonpiano] is updating his system with an NXP Arm Cortex M4 CPU, three big Altera Cyclone FPGAs, and plenty of flash storage. Why use a FPGA on a home automation system? I/O of course! HCS uses a ton of I/O. There are 16 RS485 ports and 10 RS232 serial ports. Going with an FPGA makes things flexible as well. Want to add CAN bus? Just drop in some CAN HDL code and you’re golden!

 

[Sswitchteven] is giving the smart home more senses with Squirco Smart Home System – Sensor Network. Rather than just have a temperature sensor at the thermostat, or a motion detector in the front foyer, [Steven] wants a network of unobtrusive sensors to blanket the home. He’s doing this by replacing the common light switch with a smart module that has sensors for temperature, humidity, and human presence. [Steven] has spent quite a bit of time researching and experimenting microwave tomography as a means to detect humans. Going with microwaves means no obvious PIR windows.

 

bbb-haFinally, we have [Ansaf Ahmad] with BeagleBone Black Home Automation. The idea for this project came from a calculus class on optimization. [Ansaf] is putting mathematical theorems to use in the real world by monitoring usage patterns and current demands of a device. With that data, he can optimize the usage to make things greener. So far, [Ansaf] has been experimenting with a lamp. The system has a web front end which uses PHP. The GPIO pins on the board are controlled using Python and Flask. As an early project, BeagleBone Home Automation is doing great – it’s already earned [Ansaf] high grades in his computer engineering class!

If you want more smart home goodness, check out our updated home automation projects list! Did I miss your project? Don’t be shy, just drop me a message on Hackaday.io. That’s it for this week’s Hacklet, As always, see you next week. Same hack time, same hack channel, bringing you the best of Hackaday.io!

Arduino Controlled Air Conditioner

Now that summer is coming, it’s time to break out the Air Conditioners! There are some old AC units out there that still work just fine, but nowadays we are used to everything being remotely controlled and automatic. [Phil] had an old window-mounted AC unit that still worked but was installed in a not-so-convenient place. To access the AC’s controls, one would have to climb over a large desk. This is a perfect opportunity to use the plethora of widely available hobby electronics to make an automatic AC controller retrofit.

First things first, there needs to be a way to turn the current control knob on the AC. [Phil] modeled up a 3D bracket to hold an RC car servo to the AC control panel. Attached to the servo horn is a slotted cylinder sized appropriately to fit the shape of the control knob. An Arduino measures the temperature of the room via a DS18B20 temperature sensor which then has the servo turn the control knob to the appropriate position, on or off. The Arduino sends temperature data back to a PC via MegunoLink Pro which graphs past data and also displays current temperature data. Using MegunoLink Pro, the min/max temperature points can also be set without uploading a new sketch to the Arduino.

Arduino Controlled AC

From the temp vs time graph, it looks like the room temperature stays a consistent 23 +/- 1 °C. [Phil] did us summer-swelterers a favor and made all his design files available. This is a great idea but wonder if leaving the air conditioner unit switch in the ‘on’ position and turning the unit on/off via a relay connected to the 120vac line would work just as well.

Monitoring Power With A 555

[Diederich] is running a Raspberry Pi loaded up with Pimatic, a great home automation server that does just about anything you can throw at it. One thing it doesn’t do is monitor electricity and gas directly from the meter – you’re going to need hardware for that. [Diederich] stepped up to the plate and built that hardware using just a 555 timer. The total cost of adding this to his Pimatic setup was less than a dollar.

The 555 can be used as a timer, a trigger, and a bunch of them can be cobbled together into a CPU. [Diederich] isn’t using some fancy logic here; he’s just using the 555 as a Schmitt trigger with a phototransistor and his electricity meter. The output of the 555 is connected to the GPIO of the Raspberry Pi, and a Python script ties into Pimatic.

It’s a neat solution that only costs a dollar, and using the 555 has a few advantages: the 555 makes it possible to use long and thin wires back to the Pi, which means [Diederich]’s Pi doesn’t have to be located right next to his meter.

Model House Models House, Vice-Versa

[Eric Tsai] is on a home-automation rampage. Not content with the usual smartphone-based GUIs, [Eric] built a cardboard model house that models his house. Open the garage door, and the model house’s garage door opens. Open the real front door, and a tiny servo motor opens the cardboard front door.

The model house also comes with a power meter that represents his current power usage, which is certainly useful for figuring out if something electronic has gone grossly wrong. You should watch the video (found after the break) all the way through, here’s the spot where he turns on an electric leaf blower. Despite a little big of lag that’s pretty cool!

But the system doesn’t stop there. Since he can control the garage door and some lights remotely via WiFi, the next logical step is to add a couple of buttons so that the model house can control the real house.

We’ve covered [Eric]’s home before. He set up simple, Arduino-based sensor packages all around his house, connected them together through the pub/sub framework MQTT and added in the open-source OpenHAB software interface. The door sensors connect to a hacked Wink hub. From whether or not his dog is barking to whether his laundry is done, [Eric]’s system knows it all.

Continue reading “Model House Models House, Vice-Versa”

RoomMote, a DIY Remote for Your Room Project

[Rohit] wrote in to tell us about a project he has created. Like most projects, his solves a problem. Sometimes while sleeping, a mosquito will infiltrate his room. He has a mosquito repellent machine but there are 2 problems, he has to get up to turn it on/off and it smells bad when in use. [Rohit] only needed a remote-controlled mosquito repelling machine but decided to make a 6 channel system he calls the RoomMote.

From the beginning, the plan was to use an old Sony TV remote to do the transmitting. The receiver unit was completely made from scratch. [Rohit] designed his own circuit around a surface mount MSP430 chip and made a really nice looking PCB to fit inside a project box he had kicking around. The MSP430 chip was programmed to turn relays on and off based on the signals received from the Sony remote.  These relays are inside an electrical box and control AC outlets. Just plug in your light, radio or mosquito repellent into the appropriate outlet for wireless control. Code for the MSP430 is made available on [Rohit’s] project page for anyone wanting to make something similar.

In addition to the relays, there is an RGB LED strip attached to the custom circuit board. By using more of the Sony remote’s buttons, the LED strip can output 6 pre-programmed colors, some mood lighting for the mosquitoes!

Continue reading “RoomMote, a DIY Remote for Your Room Project”

Ultimate Remote is Ultimate

[Joedefa] had a Griffin Beacon Universal Remote that was collecting dust, and decided that it needed to stop collecting dust. He had a growing number of wireless devices in his house and found himself in need of a remote to control them all. The Griffin Beacon fit the bill, but most of his lights and outlets were RF controlled. So he did what hackers do best… broke out the screw driver and soldering iron and rewired it!

[Joedefa] is using an Attiny85 as the brains between an infrared LED and a RF transmit module (if anyone can identify the source of this module, please let everyone know in the comments).  A pair of red and green LEDs lets him know if the remote has received commands successfully.

It’s always nice to see a discontinued product made useful once more with a little ingenuity and an Arduino some hacking skill. Hat’s off to [Joedefa] for a righteous hack!