When we set up the Google Home, we wanted to be able to add additional functionality to it so that we could tinker and control bits of our room from it. Using this, we can also interface with existing automation software — like IFTTT — to make the most out of our Google Home

What it does

We built a few interfaces to work with RoadRunner. Firstly, we added a module that can fire events when it sees an Amazon Dash Button being pressed. Then, we added support for casting to the Google Home for customizable sound playback. Finally, we reverse engineered the protocol for a commercial internet connected light switch. Then, we added modules to RoadRunner allowing us to interface with it.

How we built it

We built RoadRunner using a node.js stack, with the code being written in TypeScript and compiled down into interpretable javascript. From there, we developed a module system based on asynchronous JS that allowed us to easily develop event handlers and actionable events. Then, we hooked it into IFTTT and the Google Home to allow us to control these modules from either buttons or voice.

Challenges we ran into

One of the difficulties was latency. While we were able to hook everything together, there's a long delay between certain events. We were able to minimize this by reducing some of the steps needed to perform a given action, but there is definitely room for improvement.

What's next for RoadRunner

We want to develop and add a dedicated module system that allows us to — perhaps from a web interface — customize and add event modules. This will make it easier to extend RoadRunner and make it more useful.

Built With

Share this project: