Wishing for Jarvis – Thoughts on Home Automation

Welcome to my blog. Though I’ve tried blogging multiple times previously, I recently starting dabbling in home automation and wanted a place to document my thoughts and adventures. Though it is likely that I will be the only one reading this, maybe you can find something useful here.

My current situation

I love technology and always have. I have worked in the IT industry for over 20 years. Frequently I purchase gadgets and tech toys (to my wife’s dismay) and also dream of having a connected house like Jarvis in the Marvel movies. A few years go I purchased an Amazon Echo and after the initial enjoyment wore off, I was disappointed at its apparent limitations. The Echo quickly became an expensive kitchen timer. Sure I could add thousands of various skills, but I never found the skills that transformed how I interacted with the Echo or my home.

As I learned more about home automation, I was dismayed to learn that there were several competing approaches including Z-wave, ZigBee, Wifi, Homekit. While there are many commercial hubs and control units, each limited you to their ecosystem.

Sometime later, I added an ecobee3 Smart Thermostat and it rekindled my interest in home automation. The smart thermostat saved us a ton on power usage. After adding and configuring room sensors, it kept our home much more comfortable. I connected the Ecobee to my Amazon Echo but rarely used it to configure the thermostat. It was easier to walk a few more steps and adjust the thermostat settings directly. But I realized that the best interface was no interface, that most of the time the Ecobee “just worked” once I described my goals.

Enter Home Assistant

I watch a ton of youtube channels focusing on technology and home automation. A few weeks ago, I stumbled upon a review of the ecobee4 by Bruh Automation.

I first watched this video, then continued watching more of his channel. He kept referring to something called Home Assistant. The syntax he demonstrated in his videos looked simple enough so I decided to try it out. Home Assistant uses Python – my favorite language. Like many technology geeks, I have a raspberry pi. I spent roughly 5 minutes reading the introduction guide. I downloaded the Hassbian image, flashed it to the microSD card and was in business. Learn from my first mistake: it will take several minutes for Hassbian to download and configure itself on the first load. Do not get impatient and start trying to configure as soon as it boots up. I broke the install script due to my meddling and had to go to the support site to figure out where I screwed up. Give it some time, even up to 20 minutes. Go get a drink, relax a bit, and check on it in a little while.

Starting Out

After startup, Home Assistant discovers many smart devices automatically using UPnP. I am surprised by how many devices it added without any effort on my part. Home Assistant currently supports over 700 different IoT devices and internet services so even if it cannot discover it automatically, odds are that it is supported. The interface is modeled after Material Design and is fairly intuitive. The event and object model designs are elegant and easy to understand.

However, when you add more sensors and services the interface quickly becomes a massive collection of boxes and switches. Like any quickly growing project that relies on open source, the default interface can also be a bit inconsistent at times. For example, some components, like Ecobee and OpenWeatherMap add their sensors to groups, others to the top of the interface in small bubbles.

Thankfully the project documentation is largely complete and current. I learned to add groups and views in order to keep the chaos from running rampant. I learned to split up my large and unwieldy configuration file into logical groups. You can get Home Assistant up in running in minutes, but you will spend days tweaking configuration files – or maybe that’s just me. I spent the first weekend setting up remote access, configuring SSL certificates, and randomly adding interesting looking components. I set up a private MQTT server in AWS and added GPS device tracking. At first, I added trivial automation scripts, the equivalent of ‘Hello World’. I learned to love (and hate) restarting the Home Assistant service after configuration changes. More often than not, I broke something in my fumbling and had to scramble to fix it.

The Glimmer of an Idea

After a few days of fiddling with configuration files, I started to get my feet underneath me. I broke the configuration file less, I learned to use git to track my changes. After that, I realized that I had a glorified monitoring system, a prettier Nagios if you will. I further realized that I had no idea what I should automate now that the core was setup. I had a home, but no home automation. Thankfully, Home Assistant covers that as well.

In addition to example automation scripts, the website has links to full configuration files created by other Home Assistant users. This is a treasure trove of ideas and how-tos. Github has over 1,300 projects using the words ‘home assistant’. I try to read as much of it as I can, but find it overwhelming. There is so much to potentially learn. I read projects where industrious hardware hackers have taken control of old alarm systems and repurposed the hardwired sensors to work within Home Assistant. I see videos on using BlueTooth beacons and GPS tracking so that the system knows when you are at home. Then I have to resist the urge to run out and spend a fortune on door and window sensors, on LED lighting kits, on Nest smoke alarms.

I started to feel overwhelmed, so I created this site, this blog, in order to collect my thoughts. Whenever I see an interesting piece of tech or a useful bit of code, I will add it here. I will document my progress – my successes, and also my failures.

The Future

I think my next step is to learn about hardware hacking in more depth. There are many physical sensors and relays in my home already. Rather than going out and purchasing gadgets that recreate the same behavior I want to harness what already exists. The Arduino and Raspberry Pi projects seem like a great place to start. I used these projects to create toys and gadgets like a lightweight retro arcade or DIY security cameras in the past. Now let’s see if I can use them for something “serious.”

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *