I find it fascinating to learn about the home automation trends in the market place now a days. One thing I noticed that I walked into a local Bestbuy store was 3 to 4 aisles of smart home products, ranges from smart door bell, smart lights, smart locks, water leak sensor, surveillance camera, … etc. It is clearly indicating that consumer markets are expanding in the home automation area.
The question comes to my mind is how can a regular consumer, meaning someone with little to no technical background, truly embrace these technologies that are available to them? Simplicity is the word, we must build very simple and intuitive user interface, quick and easy integration, and whenever possible, ability to self discover and auto configure, so that the user can enjoy all the benefit from home automation without much hassle.
I recently looked into Home Assistant, an open source platform for home automation. To “awaken your home” is their slogan, pretty neat.
It is an open source project, here is link to the source code in Github. It is written in Python and you can run on any platform that can run Python. There are installation instruction for the Raspberry Pi 3 and your computer, currently supports Windows 10, macOS, and Ubuntu.
I did a test run with Home Assistant on Raspberry Pi 3. I’m quite impressed on how smooth the installation and setup was, and there are tons of write-up and support in the internet if you run into problems. Here is a good write ups on how to install it on Raspberry Pi using the All-In-One Installer.
One of the interesting feature for Home Assistant is the “discovery” component, it can self discover smart devices you have in your network. Once it is all setup and configured, the system was able to discover our Denon Receivers and Samsung Smart TVs. There is a web based admin console you can access from any web browser, and a history panel will show you the latest status of your home automation.
There is also a Logbook, which will show you state changes for all of your smart devices:
Use Case: Run periodic internet speed test to detect cable internet speed quality and outages.
Recently we have a little bit of problem with our cable internet service. The connection and speed fluctuate frequently, and speed is very inconsistent. We called the cable company, but they are not very helpful as it is a intermittent problem. We tried to diagnose the problem by doing speed test by Ookla. It is when we realize that Ookla web interface does not provide a way to “schedule” recurring speed test. This is where Home Assistant platform can help. There are many automation components that are available, and one of them is speed test by Ookla.
Home Assistant uses a configuration.yaml file to store all the configuration. To add speedtest, just add a sensor configuration to the yaml file, it is really simple to setup.
For example, here is the configuration to run a speedtest every 30 minutes when the clock is at 0 and 30 minutes:
sensor: - platform: speedtest minute: - 0 - 30 monitored_conditions: - ping - download - upload
Configuration is pretty flexible, you can also configure it for a specific time like below which will run everyday at 12:30am, 6:30am, 12:30pm, and 6:30pm. meaning once every 6 hours:
sensor: - platform: speedtest minute: 30 hour: - 0 - 6 - 12 - 18 monitored_conditions: - ping - download - upload
Once you have it all configured, you will see the current and historic result on the web console, which in my case highlighted quite clearly to me that at around 9am, our download speed went to to near zero.
Here is the link if you are interested more about the speedtest sensor.
Home Assistant is a fascinated open source platform for home automation. I am hoping to explore the source code and experiment with other available components as well, so stay tune and I will provide updates.
Update: check out the next article “Home Assistant – Push Notification” to see how to setup and send notification messages to your phone.