If you have been following with my recent home automation adventures, you would realize that I essentially automated everything through relays connected to my Raspberry Pi using the CAT5 cables in the wall as wiring to control other parts of my home. Frankly, it was very hacky, messy, and hard to maintain. Any new feature I wanted required me to code something new into the codebase and automation became a matter of hard-coding. It was simply not sustainable and required too much maintenance.
Lucky for me, Black Friday came along and with those came the sales. As home automation becomes more mainstream, the prices go down. In fact, Google went crazy running promotions for their Google Home platform here in Toronto for the past few months (making Alexa's debut in Canada just wash out in the noise). I managed to pick myself up some nice things including a few TPLink Smart WiFi Plug minis, Wemo Smart Light Switches, a Google Home Mini, and a Google Chromecast. The reason I chose these specific smart devices was that I knew they connect to WiFi (without requiring a proprietary bridge) and that they have documented/undocumented APIs that you can use to locally control them. They also play nice with Google Home so if I was ever to get rid of my Pi Home Automation, they would still have a use (outside of their own apps).
So here we are... we have all these new devices that somehow needs to get integrated into the home assistant. Wouldn't it be cool of it could just detect these devices? How much coding would this take? Is it even worth it? Patience and food supplies were running low at this point. All hope was getting lost..... then came Home Assistant! It turns out that a bunch of people already created an open-source platform which basically did what I done before - plus a lot more.
The platform worked really well, discovering all of my smart home devices as well as android webcams with little configuration required. To top it off, it still allowed me to use my GPIO pins (my DIY switches) as well as my door sensors. A little bonus is that it discovered my Chromecast and Google Home out of the box with the ability to see what is playing, send text for them to speak, and even control the media that is playing on it.
I'm very excited to work with this platform and to take it to its limit. Once I get used to the platform code, I hope to be able to contribute back to this project soon! Let's see how it goes.