We all encounter a range of everyday problems in our lives, both large and small. At Wunderdog we’re no different, but we do have the advantage of being excellent problem solvers with some pretty advanced technical skills — helping us to find innovative answers to some of life’s tricky problems. In this blog series, we introduce the solutions our employees crafted as part of our open-source program.
A non-extendable problem
I had previously crafted a solution to control my power outlets and read climate sensor data with any device on my home network.
The solution worked fine and was super easy to use. So what was my problem? Basically, a new toy. I was given a Ruuvitag Bluetooth beacon to play with, so my inner engineer started thinking of all the possible ways I could use it. Soon I became obsessed with the idea of attaching it to the power outlet control system I had at home. I realized quite quickly that my previous solution wasn’t easily extendable so I decided to redesign and reimplement my home automation application from the ground up.
A modular solution
Everything came together quite quickly. I had already identified three different technical areas within my home automation: a user interface to view and control everything, the power outlets, and sensors controlled via TellStick protocol, and the Ruuvitag sensors controlled via Bluetooth. I decided to build each of them as a separate system so that they would be easily extendable later on.
To keep things simple, I decided to implement the UI as a simple JavaScript application and the other systems as REST APIs that communicate over HTTP. In this way, if I want to attach a new kind of device to the UI it can be implemented as a separate service and just needs to show itself via HTTP.
Problem solved
By the time I was done I had reimplemented the home automation system with the ability to read the Ruuvitag beacon’s sensors.
The final test would be to verify whether the system was really as easily extendable as I first imagined, but I guess that’s another story!
You can find my code on Github and the project documentation here.
This solution was crafted by Jori, a senior software developer at Wunderdog.
Discover more of the everyday struggles — and solutions — of our doggos:
I had a problem: What's your name again?
I had a problem: Baby, it's cold outside!
I had a problem: And the solution was terminal
I had a problem: I keep losing control
I had a problem: Don't play it again, Sam!
I had a problem: It's the writing that's wrong
+
How I half-accidentally committed to an open-source library for the rest of my life / Tailwind CSS-elevation plug-in
Are you looking for new challenges? We're here for you.