MPD or Music Player daemon is one of the oldest open source music player servers. It can be installed on Windows, OSX or Linux. Once installed, it can be controlled by a client to play music on the server using a client that interfaces with the server.
Numerous clients are available for MPD ranging from phone or comptuer apps on a variety of platforms. A few years ago, I transformed an old router into an internet radio that used mpd to play music from internet radio stations.
Today, there are many music player distros that one may install on the raspberry pi or an old PC such as Volumio and Runeplayer. These run an MPD server under the covers and present very user friendly screens for music playing on the front end or when accessed by their web interface.
Today, I have an MPD daemon that runs on the same computer that runs my home automation system in my study. It is connected to Audioengine A2+ White (Pr.) 2-way Powered Speaker System. The same computer also runs an Apache server with Rompr, my favorite MPD client.
I also have a Rune player on my Raspberry Pi 3 Model B in my garage that also doubles as my home gym.
X10 is one of the earliest home automation protocols. It is relatively light-weight and setting it up with lights or small home appliances is relatively simple. Several years ago, I used MisterHouse to add X10 light and device controllers to control lighting and a few fans around my house.
I then found mochad, a small program that can be used to control X10 devices. Mochad also allows integration of X10 devices with Home Assistant and OpenHab.
Over the years, X10 has been pushed to the curb with newer technologies like Zigbee and Z-Wave. Further, the availability of cheap RF controllers has made them a more effective and economical alternative to X10. I will cover interfacing RF lights with X10 in a later post.
My big problem with X10 was that these devices seemed to give me a physical headache each time I turned them on. Investigation of this symptom has led me to believe that this is caused by interefence of other household signals with X10. While there are devices that can mitigate the effects of this interference, I realized that resolving them was neither an effective or economical option given that there are newer technologies available.
I will however, discuss using Mochad with HomeAssistant in a future post.
The house I live in has a Liftmaster garage door opener. One of my early goals was to automate it. Some research revealed that, if I needed to bring it online quickly, it had to be MyQ compliant. MyQ(not to be confused with MQTT, a lightweight protocol) is a proprietary protocol used typically by lift door openers like Liftmaster or Chamberlain.
I will not detail the steps I took with additional instructions on how to get it working with your home automation system.
I decided to invest in a MyQ Internet Gateway. This device would enable you to communicate with your Liftmaster garage door opener. If you need to ensure compatibility with your garage opener, please ensure that you have the MyQ logo on your garage door opener.
This device should first be confgured with your garage door. Next create an account for yourself at MyLifymaster.com. Now you will be able to login to the myliftmaster site either from a browser or an app on your android device or iphone.
Integrating with Home Assistant was not straightforward. For one thing, there is no official MyQ component as of this writing. Unfortunately the Wink Connected Home Hub I own does not support Liftmaster (as I discovered on the Wink forum).
After much investigation, I found a node program that provides command to open or close a MyQ garage opener and also provide the current status of the opener. I then integrated this program with a few changes into my HomeAssistant setup. The steps for this are outlined here.
At this stage and for the perceivable future, Home Assistant is the heart of my home automation system. One of the main reasons I choose Home Assistant is the ease with which I could have it up and running.
As I brought up the Home Assistant server, it was able to quickly detect several devices around my house without my having to do any coding configuration. These include:
- My Kodi media player running on a HP Stream mini computer. I will cover Kodi in a separate post.
- My chromecast tv streaming device.
- My Roku stick.
- My wink and hue hubs. I was able to use Home Assistant to control the lights around my house, right away.
- My daphile audio player. This will also be covered in future posts.
- My MPD player running on the same computer as home assistant.
- My rune player running on my raspberry pi
- My two sonos one speakers.
That’s a lot of functionality right out-of-the box! To repeat a point I made earlier, there is no single system that will give you all the functionality you want. If you want one, you need to build one either from scratch or by integrating several system together. I have chosen the latter approach,
When I started to build my home automation system, several years ago, I was confronted with a choice of which one to choose. I first chose MisterHouse, the most popular HA system in its time. I managed to get a few X10 lights and switches to work with it. However, I was stalled by several factors including
(a) the code base which had not been updated for years
(b) My limited expertise in perl
The following years saw the rise of several popular home automation tools written in a plethora of languages. Among the most popular of them are OpenHab written in Java and Home Assistant written in python. I dabbled and continue to dabble with both of them. Another popular open source tool is Node Red, created by IBM. I have just started playing with Node red now. Node Red provides an impressive visual tool that facilitates the building of a home automation system.
As one would expect, there is no single out-of-box system that will suit the needs of a demanding individual who needs to as many devices, technologies and automations into his or her system. I have decided to create a hybrid system that uses all of these system and leverages the strengths of all. Where integration is possible, I will integrate each of them into my solution.
I also continue to use and integrate smaller solutions into my larger system to meet my needs. For instance, I recently integrated a nodejs program to operate my home garage door opener into my home automation system.
This blog is intended to be a running log of my solutions and challenges. It is also meant to help those who have similar goals to mine in building their system. There will be more to come in the following weeks.
References : https://opensource.com/life/16/3/5-open-source-home-automation-tools