For a lot of beginners are who are just starting with smart home and automation, the sheer number of possible options can be quite overwhelming. They may have trouble envisioning how everything fits together. Or, if they are starting from scratch, they may not know what to invest in. I was one of these folks and I understand how stressful it can be.
I am passionate about technology. I like breaking and fixing things. This site was started to share what I learned, with the community. What I share on this site is not some paid-advertising. I write about products that I try and use every day in my life and home. Over the years, my setup has grown significantly. In the past, I focussed a lot of home media management and automation. Starting in 2017, when I built a new home, I started my home automation journey. This resulted in rebranding my site from htpcbeginner.com to smarthomebeginner.com to cover a wider range of topics.
With this background in mind, my aim for this post to list the products I currently use in my home, how I set them up, how they fit in the bigger picture, and how they talk to each other in automation scenarios. It is a blueprint of various gadgets and technologies in my home. It may not be perfect or it may not be the best. But the hope is that it gives a beginner a good basic understanding and a starting point. So let's roll.
Table of Contents
I would say that the starting point of my home server and smart home automation journey was when I first started using Ubuntu Linux 8.10 Intrepid Ibex in 2008. My firstserver ran on a $35 used PC bought on craigslist on Ubuntu Server 9.04 Jaunty Jackalope. The only purpose it had at that point was to run my personal website from home on Apache webserver.
All my media were still scattered in CDs, DVDs, and external USB drives. With Ubuntu Server 10.04 Lucid Lynx, I started using Deluge for torrents, MiniDLNA for sharing media through DLNA, and Samba share to access media on my first (LG) Bluray Player and Patriot Box Office. This is when I abandoned my personal website and started focussing on blogging. Starting with http://blog.homelinux.org (on DynDNS) in 2010) and moving to http://avserver.info on GoDaddy in 2011.
Starting in 2011, I started using Kodi (then XBMC) and wanted to build a low-power HTPC. I built my first PC with the barebones MSI Wind Nettop 100 with an Intel Atom 330 dual-core processor and Ubuntu Server 10.04 Lucid Lynx. I had to compile and install XBMC with Broadcom Crystal HD support for it to play videos smoothly. Now that I had a server/NAS, my media needs grew and I started exploring automated methods to aggregate media from various sources: CouchPotato, SickBeard, and SABnzbd, combined with a good Usenet provider. As I learned more, I shared more on my blog. In 2012, I rebranded my blog to http://linuxplained.com (still on GoDaddy).
From 2014, my Kodi usage and media aggregation increased and evolved significantly. This resulted in rebranding the site to http://htpcbeginner.com to reflect what content I was focussing on. I upgraded my server to low-power HTPC / NAS combo based on AMD 5350 CPU. I got tired of installing and reinstalling apps. In addition, I found several of my visitors struggled or did not like commandline work. So I started AToMiC Toolkit project to automate the installation of home server apps. [Read: 9 Best Home Server Apps to Automate Media Management]
As mentioned earlier, 3 years later, I entered into smart home automation and the next rebranding (and hopefully final) of my site to https://smarthomebeginner.com to reflect the current direction.
Phew! Now that the boring part is done, let's have a look at what media and home automation devices and methods I use in my home right now. [Read: What is a smart home and what can smart home automation do for you?]
My Home Lab (Jan 2020) - Not the best looking or a rack design but works for me.
NAS, Pi-Hole, and Network gear power is backed up using a APC NS700MC Back-UPS 700 VA 8-Outlet CyberPower CP1500PFCLCD Sinewave Uninterruptible Power Supply.
One of the most important pieces of gadgets for a smarter home is a home server. A home server, is the brain behind a smart home. It hosts all apps for smart home automation and media management and is typically powered on 24/7. [Read: 5 Most common NAS or Home Server uses]
Given below is a list of apps that my home server runs to automate things in my house. The docker-compose files are available in my GitHub Repo.
That is a lot of apps, especially the last one, ZoneMinder, uses a lot of resources. As my needs grew my old server was struggling to keep up. So I moved from my AMD 5350 based HTPC/NAS to Intel NUC 8 Server + Synology NAS setup.
Both Intel NUC and Synology have a locked down hardware and are pricy. You can build a home server / NAS combo with much more power for a lesser total price. However, at this point in my life, I do not have much time to maintain the underlying setup. So I decided to pay for convenience (for now). Here is the complete build:
My previous home server acted as both a home server and a network-attached storage. With my move away from AMD 5350 based HTPC/NAS setup, I decided to split my home server into two. A home server, as stated above, runs several of my apps. My tinkering habits interfered with network files and media becoming unavailable at times, causing frustrations for you know who. So I decided to separate some core functionalities: MariaDB, Media Shares (Samba / NFS), and Plex Media Server to a dedicated NAS. Some of my Kodi boxes use MariaDB to store library status.
Western Digital Red drives are great for a NAS. However, these are expensive. Some awesome people figure out that the cheaper Western Digital EasyStore external hard drives carried the WD Red drives inside, but with a shorter warranty. Don't be fooled by the white label on them.
WD EasyStore with WD Red (White Label) Drives Inside
So I went this route to save a few bucks and bought a few 8 TB EasyStore drives and shucked them. In addition, I upgraded my Synology NAS as follows:
My Synology NAS is being backed up to Google Drive (business account gives your unlimited storage even though it says 1 TB/user) using the built-in Cloud Sync app. [Read: Fix for Synology Cloud Sync stops syncing with “up-to-date” message]
The next key piece of hardware is the network gear. After years of being a loyal fan of ASUS routers (with Merlin's firmware), I took the plunge into prosumer gear when I moved into my new house. A strong underlying network with advanced features (VLANs, Multiple SSIDs, VPN, throughput, etc.) is key for Internet of Things (IoT) devices to function properly and a reliable connected home experience. Many smart home and security devices require a stable wired and wireless network. There are several options here but Ubiquiti's UniFi line has been one of the most prominent players in this area.
My Ubiquiti Network Setup
A consumer-grade router combines 3 components into one: gateway, switch, and access point. It offers convenience but not much flexibility and performance. An enterprise / prosumer network gear separates the network components:
Unlike a router, UniFi gear require the controller software to be run on a different device. The easiest way is to get a Ubiquiti UniFi Cloud Key and plug it into the PoE ethernet switch. But there are other cheaper ways is to run it: Raspberry Pi, local home server, or remote cloud server.
I run UniFi controller on Docker with Traefik Reverse Proxy.
UniFi Controller Software Screenshot
All network configurations are performed using the software. Although not necessary, it is recommended to run the UniFi controller software on an "always on" device. In addition to the networking gear, I have a Raspberry Pi 3+ running PiHole for whole-home ad blocking.
For a thermostat, I went with Ecobee instead of Nest. At the time I moved into my new house. Nest did not have room sensors and Ecobee did. Furthermore, Nest is a "learning" thermostat and Ecobee is a bit more hands-on. My preference was hands-on and the ability to add room sensors. So I went with Ecobee. In addition, I went with Ecobee 3 over Ecobee 4 because the main difference was the inclusion of Amazon Alexa in Ecobee 4. I am building my ecosystem around Google Assistant plus, Alexa implementation on Ecobee 4 is not that great. That said, you cannot go wrong with Ecobee 4 (just disable Alexa if you do not need it).
Many utility companies have rebate programs for smart thermostats. I bought my Ecobee 3 with one room sensor for $161. With $75 rebate from Electric company and another $75 from Gas company, I ended up paying only $11 net. In addition, I grabbed two more 2-packs of room sensors during a deal ($39.99 each) to cover my other rooms. I use the room sensors to not only detect temperatures but also monitor people presence, which I use in Home Assistant for some basic automation.
Ecobee Room Sensors on Home Assistant
For example automation using room sensors:
Note, that Ecobee room sensors are slow, therefore you cannot use them as motion sensors where immediate automation is needed. As you would see later in the post, I use InfluxDB and Grafana to chart the room temperatures for trends.
When it comes to robotic vacuums iRobot Roomba and Neato are commonly known. Roborock, on the other hand, is not commonly known. This, however, is changing. Roborock S5 was a very successful robotic vacuum and very highly rated on Amazon. Roborock S5 included some very advanced features that rival Neato and Roomba but at a very affordable price. They are usually on sale for $400.
Roborock S6 is the newer model, which as of August 2019, is not yet officially available in the US. I ordered mine through NewEgg Flash sale from a Chinese vendor. It is also available through GearBest for $599. It is an international model with a US power adapter. Except for the power adapter, you will not notice any difference in operation or functions.
Even though Roborock S5 was available for $400, I decided to spend $200 extra and get the S6 model for the following reasons:
I last tried robotic vacuums in 2012. They have come a long way since then. Roborock S6 has been working great so far, never missed a spot, and always finds its way back to the dock for charging. In my opinion, it is tough to beat the value/functionality of Roborocks. [Read: Roborock S5 vs S6 – Roborock S6 review with focus on multi-floor support]
Over the next few weeks I plan to integrate it with Home Assistant and build some automation.
I used to install all the home server and media apps manually on the host system. I got tired of doing this and developed AToMiC Toolkit. Then I discovered Docker and was wowed.
Docker has simplified the setup and maintenance of my home server and several other apps. All my apps are behind LetsEncrypt SSL with auto renewal without my intervention. How I set this up is explained in detail in the following two posts:
Here is a list of all the apps I run using Docker:
I used to run Home Assistant on Docker, as explained in my docker home server guide. But recently, I switched from Home Assistant to HASS.io on Docker. This has simplified the maintenance of home assistant, as well as several other apps that go along with it.
Mosquitto is a commonly used MQTT broker. MQTT protocol allows communication between some of the smart home technologies. Here are examples of how I use it:
NodeRed creates visual flow-based automation for Home Assistant. I used to run this as a separate docker container using docker compose. After my move to HASS.io, I now manage it as an addon.
NodeRed Home Assistant Automation
HA Dockermon allows turning on and off docker containers from within Home Assistant. I currently use it to send telegram notifications to my phone if some of the important containers are not on (eg. ZoneMinder).
Monitor Docker Containers from Home Assistant
Portainer providers a webUI to manage docker containers. This is available as an addon withim HASS.io but I have been running it as a separate container using docker compose and so I left it as is. It also allows me to manage HASS.io and its addon containers. [Read: Install Portainer using Docker – Manage all your Docker containers]
I manage both, HASS.io addons and other Docker apps, with Portainer
Traefik provides a reverse proxy for my apps so I do not have to expose their ports to the internet through port forwarding. In addition, it automatically fetches and manages Letsencrypt SSL certificates for my apps. This is already covered in detail in my Traefik tutorial.
Watchtower monitors my Docker containers for updates. When the container images change, it pulls the new image and automatically restarts the container using the new image. This way, I do not have to worry about manually updating the containers. It allows updating at a schedule set by me and some containers can be excluded from automatic updates, if needed (for example, I use a custom built ZoneMinder container).
Docker Garbage Collector will run a set schedule and automatically clean up unused containers and images. This keeps the Docker stack lean. Otherwise, leftover images can grow over time and reach several GBs.
I started out with Deluge torrent on Ubuntu and then moved to qBittorrent on Ubuntu. Few years later, I settled with Transmission with WebUI on Ubuntu Server. None of those had any VPN privacy protection to avoid ISP and other entities from sniffing your activity. [Read: 10 Best legal torrenting sites 2018 – Legal torrent websites 2018]
With Docker, I started using Transmission BitTorrent client with VPN kill-switch because of the simplicity of such a setup. Transmission downloads only when there is an active VPN connection to protect my privacy.
IPVanish VPN Exclusive Offer - only $3.25 per month:
VPN Guides
Windows, Android, Ubuntu
Kodi OpenVPN
OSMC on RPi
♦ Hide your browsing (no logs), Anonymize Streaming and Downloads
♦ Circumvent Geo/Country Restrictions and access worldwide content
♦ Works on Windows, Mac, Linux, Android, iOS, Router, and more
♦ 250 GB of SugarSync Secure storage included
♦ Money back guarantee - Sign Up Now
I have been using IPVanish VPN for several years and I strongly recommend it. [Read: 12 Best torrent sites in 2018: Top torrent sites in 2018]
I have always liked the simplicity of qBittorrent and it was my go-to Bittorrent client on my Ubuntu Server for a while. On my stack, I also have qBittorrent running on Docker with Traefik in front of the WebUI. Even qBittorrent uses the VPN from my Transmission container, I do not use it as much. It is just a backup at this point.
Usenet is Better Than Torrents:
For apps like Sonarr, Radarr, SickRage, and CouchPotato, Usenet is better than Torrents. Unlimited plans from Newshosting (US Servers), Eweka (EU Servers), or UsenetServer, which offer >3000 days retention, SSL for privacy, and VPN for anonymity, are better for HD content.
SABnzbd is a newsgrabber. In other words, it downloads content using the Usenet protocol and it works very well with Sonarr and Radarr.
If you do not know what Usenet is, I strongly suggest that you read our Usenet basics guide.
With Sonarr, Radarr, and Lidarr, I use NewsHosting (US) as the primary news server, with Eweka (EU) as a backup. The content on US and EU servers can differ and so there is a better chance of finding what you want when using two different server locations.
| Provider | Rating | Features | Monthly | Yearly |
|---|---|---|---|---|
| Newshosting | >3000 days, unlimited, SSL, VPN | $9.99 | $99.99 ($8.33 / month) | |
| UsenetServer | >3000 days, unlimited, SSL, VPN | $9.99 | $99.99 ($8.33 / month) | |
| Eweka | >3000 days, unlimited, SSL, EU Servers | €7,50 (Special!!!) | ||
| For more plans that may fit your needs please read our Usenet plan selection guide. | ||||
Jackett is a proxy for torrent providers and makes several alternate sources available to Sonarr, Radarr, and Lidarr. In the screenshot below, NZBGeek provides NZB files. Every other indexer is a torrent provider proxied by Jackett and made available to Sonarr.
Sonarr Indexers List
I used Docker compose provided in my docker guide to isntall Jackett but you may also install Jackett on Docker manually.
NZB Hydra provides a unified interface to search for NZB files and pass them on to SABnzbd for downloading. It is a standalone app and does not integrate with any other apps. I rarely use Hydra for any manual downloading as everything is pretty much automated.
NZBHydra Web Interface
Automatic media aggregation and management is a big part of my smart home setup. The schematic below shows what happens behind the scenes.
Schematic of Automatic Media Management
Here is everything fits in together:
Other than adding the movies or TV Shows I want, I rarely interact with this setup. I do monitor these apps using my mobile phone using NZB360 app. [Read: 5 Must have Android apps for HTPC or Home Server control]
In addition to mobile apps, I can also monitor Transmission, SABnzbd, qBittorrent, Sonarr, and Radarr activity through Home Assistant and do some simple automation.
Monitoring Downloads and Media Aggregation Using Home Assistant
Example automation include:
Now that you have an overview of how everything flows, let's look at the individual apps in a bit more detail.
For TV series, I started with SickBeard on Ubuntu Server. Few years later I switched to SickRage on the same Ubuntu Server. SickRage served me well for several years but when I moved my home server apps to Docker in 2018, I switched to Sonarr. Never had any issues with SickRage but I am quite happy with Sonarr. [Read: SickBeard alternative: Sonarr aka NzbDrone vs SickBeard]
Sonarr - TV Shows Download and Organization
Sonarr is a PVR for TV Shows. You add the shows you want to see to Sonarr and it will search various BitTorrent and Usenet providers for the show episodes. If it is available it will grab the index file and send it to your BitTorrent client or NZB client for downloading. Once the download is complete it can rename your episode to a specified format and move it to a folder of your choice (TV Show library). It can even update your Kodi library or notify you when a new episode is ready for you to watch. We have previously covered Sonarr installation on Ubuntu, Windows, using Docker, and using Kitematic.
Docker makes it easier to install and manage Sonarr. So I run Sonarr behind Traefik using the docker compose.
For Movies, I started with CouchPotato on Ubuntu Server. CouchPotato worked well for several years but when I moved my home server apps to Docker in 2018, I switched to Radarr. Sonarr and Radarr look more modern and integration with other apps, services, and smart home hubs (Home Assistant) is much better, in my opinion.
Radarr - Movie Download and Organization
Radarr is a Movie PVR. You add the movies you want to see to Radarr and it will search various BitTorrent and Usenet providers for the movie. If it is available it will grab the index file and send it to your BitTorrent client or NZB client for downloading. Once the download is complete it can rename your movie to a specified format and move it to a folder of your choice (movie library). It can even update your Kodi library or notify you when a new movie is ready for you to watch. [Read: CouchPotato vs SickBeard, SickRage, or Sonarr for beginners]
We have already covered Radarr installation on Ubuntu, as well as, using docker and Kitematic.
Docker makes it easier to install and manage Radarr. So I run Radarr behind Traefik using the docker compose.
Lidarr is a music collection manager. Looks and functions pretty much like Sonarr (for TV Series) and Radarr (for Movies). It monitors several sources for new tracks from your favorite artists, downloads them, and organizes them according to your preference. It also continues to monitor and automatically upgrade existing tracks when better quality becomes available.
Lidarr for Automated Music Management
Docker makes it easier to install and manage Lidarr. So I run Lidarr behind Traefik using the docker compose.
Bazarr is a relatively new addition to my smart home setup. It is a companion application to Sonarr and Radarr that manages and download subtitles based on your preferences. It monitors the Series and Movies indexed by Sonarr and Radarr and auto-downloads subtitles from various sources, including opensubtitles, addic7ed, etc.
Bazarr for Automatic Subtitle Download
It is a standalone app and it continuously works in the background without any intervention from me. Docker makes it easier to install and manage Bazarr. So I run Bazarr behind Traefik using the docker compose.
Until couple of years back, I was exclusively using Kodi with MySQL Library synching. I have been slowly transitioning into Plex with Emby as a backup.
Related Posts:
All my media is stored centrally: previously on a home server and now on Synology NAS. [Read: 6 Ways to store local media for streaming on Kodi, Plex, and more]
My libraries between Kodi, Plex, and Emby are synched using Trakt add-ons and plugins.
Like my downloads and media aggregation, I also monitor my media consumption activities using home assistant and perform some basic automation.
Monitoring Media Consumption using Home Assistant
Some of the automation include:
That gives you a gist of what I do. Now let's move on and look at my smart home media setup in more detail.
Plex media server is a free media server that can stream local and internet content to you several of your devices. It has a server component that catalogs your media (movies, tv shows, photos, videos, music, etc.). To stream, you need the client app installed on compatible Plex client devices. With the introduction of Plex News it can now stream News content. Plexamp music player enhances music listening experience.
Plex Media Server
My reason for the transition to Plex was simply based on simplifying maintenance on my client devices. I only had to maintain the Plex media server and the clients just worked. My biggest hurdle was that my previous home server with AMD 5350, which had a PassMark score of 2605, which is good for only one 1080p stream.
Best Plex Client Devices:
- NVIDIA SHIELD TV Pro Home Media Server - $199.99
- Amazon Fire TV Streaming Media Player - $89.99
- Roku Premiere+ 4K UHD - $83.99
- CanaKit Raspberry Pi 3 Complete Starter Kit - $69.99
- Xbox One 500 GB Console - $264.99
My Intel NUC 8 has Intel Core i7 8559U, which has a passmark of 12316. But for now, I decided to let my Synology DS918+ NAS run Plex as it supports hardware decoding.
I also have Plex DVR enabled to work with SiliconDust HD Homerun Extend to record TV content. Once downloaded to my NAS, Plex automatically adds it to my library.
Emby functions pretty much the same way as Plex. The server handles cataloging and serving and the client devices play the content on media players. [Read: 20 best Emby client devices 2018 – Stream from Emby Server]
Emby Media Server
Emby is not my main media server. However, my NUC home server is quite powerful and I run Emby on Docker on my NUC, as a backup to my Plex server. If there is something that my Plex server cannot handle, I use Emby (never had to so far). [Read: Best Emby Server builds 2018 – Pre-built and DIY options]
Tautulli / PlexPy is covered in detail in our PlexPy setup guide. Briefly, it is a web based application based on python that allows you to monitor Plex usage. Specifically, it will allow you to see the number of plays for each user, the time when the server was most used, the server usage and other useful information. You can also receive customized notifications on stream activity and recently added media and get complete library statistics and media file information. We have previously covered PlexPy setup on Ubuntu, Windows, and using Docker.
Tautulli (aka PlexPy) - Monitoring Plex Usage
Docker makes it easier to install and manage Tautulli. So I run Tautulli behind Traefik using the docker compose.
Although not necessary, databases can significantly enhance the speed and functionality of a smart home setup.
InfluxDB is an open-source time series database (TSDB) developed by InfluxData. It is written in Go and optimized for fast, high-availability storage and retrieval of time series data in fields such as operations monitoring, application metrics, Internet of Things sensor data, and real-time analytics. It is a great companion for recording sensor data from Home Assistant.
Docker makes it easier to install and manage InfluxDB. So I run InfluxDB behind Traefik using the docker compose.
What is the use of InfluxDB data if you do not have a way to view the data. This is where Grafana comes in. Grafana is an open-source data visualization tool. It takes sensor data from InfluxDB and presents it in visually appealing charts.
For example, my Home Assistant records temperature from my Ecobee room sensors, humidity, sensor battery levels, and more in InfluxDB. I use Grafana to develop charts and gauges and display them in Home Assistant web interface, as shown below.
Temperature Chart and Humidity Guage from Grafana on Home Assistant
Docker makes it easier to install and manage Grafana. So I run Grafana behind Traefik using the docker compose.
One of the easiest ways to manage MySQL databases is using phpMyAdmin. phpMyAdmin is a free tool intended to handle the administration of MySQL using the web. I used to install and phpMyAdmin on Ubuntu. Now I run phpMyAdmin on Docker behind Traefik proxy.
Recommended Guides:
Currently, my Home Assistant uses MariaDB as a recorder to record sensor data. Zoneminder for security cameras records data on a MariaDB database. Finally, I also use Guacamole app (more on this below), which uses MariaDB as well. Since moving to Plex/Emby, I now use the Trakt plugin on Kodi instead of a database. [Read: 10 easy phpMyAdmin tweaks to simplify MySQL administration]
ZoneMinder is a "full-featured, open-source, state-of-the-art video surveillance software". Blue Iris is a famous option for this purpose. I have heard wonderful things about it, but it is not free (but affordable). It also requires a dedicated Windows system. This is the main reason why I went with ZoneMinder and so far it has been working great. My previous home server was not able to handle 4 camera load. Intel NUC is able to handle continous recording albeit at a high system load.
ZoneMinder on Docker for Security Cameras
Installing Zoneminder can be quite painful. But Docker makes it easy. So I run ZoneMinder behind Traefik using the docker compose. I use zmNinja to monitor my system remotely.
Monitor ZoneMinder Camera Feeds on Home Assistant
I have integrated my ZoneMinder instance with Home Assistant using the ZoneMinder component and I can live stream my cameras on Home Assistant, as shown above. Using the picture-glance Lovelace card, I even have switches (eg. light, recording status, etc.) overlayed on the stream so I can turn the light on/off from the interface. The possibilities from here are endless. Some of the things I plan to get to in future are:
Apache Guacamole, or Guacamole, is a client-less remote desktop gateway. It provides a unified HTML5 web interface to access remote systems using VNC, RDP, and SSH protocols. [Read: Install Guacamole on Docker – VNC, SSH, SFTP, and RDP like a Boss!]
Guacamole - Remote Admin using HTML5 Browser
I use Guacamole to securely remote admin my NUC, USG, PiHole, Synology NAS, Windows 10 Pro Laptop, and many more. It comes in handy in restricted environments where I cannot use a VNC client or an SSH Client because all I need is a browser. [Read: 10 best SSH Clients for Windows: free alternatives to PuTTY]
I simplify SSH access using SSH config files. When possible, on my Google Pixel 3, I use Juice SSH app for all SSH activities. [Read: Best SSH clients for Android: 10 free SSH Apps for remote admin]
Choosing the right smart home hub is one of the major decisions to be taken before embarking on a smart home journey. Since your whole smart home ecosystem is built around it, starting it right is very important. This decision is based on several factors including, features, support/community, easy of use, and more important the technologies (eg. Zwave, Zigbee, Wifi, etc.) it supports. [Read: 5 Best home controllers to tie your smart devices and make your home smarter – 2017]
Although I started out with both Zwave and Zigbee, over time I ended up building my smart home setup around mostly Zwave devices. [Read: 5 interesting and must-know facts about Z-Wave automation protocol]
Philips Hue and Sengled Element A19 were the only Zigbee devices I had. The novelty of color-changing lights quickly wore off and I got rid of the expensive Hue smart light setup. I still have the Sengled Element A19 bulbs. Rest all devices are Zwave based.
Best Z-wave Devices for Home Automation in 2019:
With the above background information in mind, let's take a look at the automation hubs I use in my smart home setup.
Home Assistant is my primary smart home automation hub. Home Assistant is an open-source Python-based smart home automation platform. With integration for over 1000 services, its flexibility and versatility are unique and unmatched. The downside, compared to a commercial product such as SmartThings, is a steep learning curve. But the UI and usability has gotten several folds better in just 1 year and there is a very active and supportive community to help.
Smart Home Setup with Home Assistant (HASS.io)
There are several ways to install Home Assistant. I started out with HASS.io on Raspberry Pi in 2017, quickly realized that it was too underpowered and slow for my setup. In 2018, I moved to Home Assistant installed on Ubuntu Server in a python virtual environment. While moving my home server to a Docker-based setup, I switched to Home Assistant on Docker. I wanted to take advantage of the features HASS.io offered. So recently, I switched to HASS.io on Docker on my Intel NUC server. [Read: How to add an animated Weather Radar on Home Assistant?]
I have configured Google Assistant on Home Assistant to control my Zwave devices with voice.
Mobile application for home assistant is quite lagging compared to some of the other platforms. However, this has seen some traction in recent times and many mobile apps for Home Assistant have shown up. I monitor and control my Home Assistant instance with Ariela Pro app on my Google Pixel 3. All the currently available apps are "unofficial" apps and an official Home Assistant app for Android is being considered.
Samsung's SmartThings is one of the most popular apps when it comes to smart home automation. [Read: Samsung SmartThings vs Wink Hub – Which one is better for whom?]
Frankly, I never intended to build my smart home setup around SmartThings. I only got it because of the deal that was available when SmartThings Link for Nvidia Shield was released. I bought the SmartThings Link with 3 Sengled A19 LED Zigbee bulbs for close to $25.
Along with this setup, I have a SmartThings multi-purpose door-window sensor and a smartthings motion sensor for which I do not have any specific use yet. If not for the Sengled Zigbee bulbs, I see no real need for my SmartThings.
Best SmartThings Devices for Home Automation in 2019:
- My Smart Home setup – All gadgets and apps I use in my automated home
- 5 Best Smartthings Garage door sensors
- SmartThings Security Camera: Comparison of 5 Best choices
- 5 Best SmartThings Light Bulbs
- 5 Best SmartThings leak sensors
- 5 Best SmartThings Wall Plugs
- 5 Best SmartThings Smoke Detectors
- Best Smartthings compatible devices – Top 15 choices
I tried Nortek HSUSBZB-1 which can control both Zwave and Zigbee devices. But Zigbee control was quite choppy. So I decided to keep using my SmartThings for the few Zigbee devices I have, for now.
I decided to build by smart home ecosystem around Google Assistant. While Amazon Echo and Apple HomeKit may have gotten a head start, I believe that the data and search capabilities make Google Assistant / Home better. [Read: 27 Impressive Google Home commands you need to know]
At this point, I have:
Apart from voice commands for home automation, my eventual hope is to be able to cast my ZoneMinder cameras on to Nest Hub Max on command.
I started using home security devices only since 2017. When I built my new home, I wanted to pre-wire it for a security system. I originally ran wires to all doors for a Honeywell Lyric security system. Since then I learned that wireless security systems and cameras have come a long way.
For monitoring my cameras on mobile phone, I use zmNinja (as stated above), as well as TinyCam Pro. [Read: 8 Best free Wi-Fi camera apps for monitoring home security on desktops – 2019]
Even though I partially pre-wired for door sensors, I went wireless with Abode Home Security, and so far, I am very happy with my choice. Abode started out as a Kickstarter project but is now a full-fledged commercial home security product.
The biggest reasons for me choosing Abode were:
Abode's Home Assistant compatibility has been a godsend. All of its contact sensors work with home assistant and help me with smart home automation.
Monitoring Abode Home Security on Home Assistant
For example,
Only potential drawback/threat with Abode is that it is still a smaller company compared to some of the others and it faces stiff competition from some competitors. If the company goes under, then there is no clarity on which features will continue to work and which won't. SimpliSafe has been growing in popularity, is inexpensive, and it's features are quite similar to Abode's. I believe it does not offer free phone notification (subscription required). But it has home assistant integration so you can set up your own notifications.
First, I decided to go with Nest Hello over a Ring Doorbell due to its continuous recording and better video quality. However, I rarely like subscribing to things. So even though I got a great deal on the Nest Hello, I kept putting off the installation. Meanwhile, I kept looking for a non-cloud based doorbell option that could record locally on my NAS.
I came across, RCA Gen 2 Video Doorbell (aka LaView One Halo). Both are OEM products made by HikVision, which is one of the two most common manufacturers of security cameras (the other is Dahua).
Features include 3 MP, Dual-band Wifi, Two-Audio, 180° Wide Angle and Weatherproof. It also sports a much-improved night vision over its previous generation, with support for starlight. I get calls/notifications on my phone when someone rings the doorbell (although unreliable sometimes). There are multiple apps you can use for this (RCA Security, Hik-Connect, Guarding Vision, and EZVIZ). All of them pretty much do the same thing. It records motion detections on an SD card, which I can access from the mobile app. I strongly suggest getting an SD card designed for continuous writing such as Samsung PRO Endurance 32GB Micro SDHC Card.
But, the biggest advantage, in my opinion, is that it supports RTSP stream out (ONVIF expected late 2019), which enables recording through apps such as Blue Iris or the free ZoneMinder, which is what I use. I used the following information to get this doorbell camera working on ZoneMinder:
Note that all cameras made by HikVision use the above format for RTSP URL. My ZoneMinder instance continuously records the video stream, which I can access using the zmNinja app on my phone. So essentially, I am recording in two locations: motion events on the in-camera SD card and continuous stream on my ZoneMinder.
RCA Gen 2 Video Doorbell Camera on Zoneminder
As I mentioned before, I monitor the cameras using Home Assistant and my automation are continuing to evolve. One thing I plan to do eventually is to:
Of course, it is a lot easier to do this with Nest Hello if you are willing to pay the Nest Aware subscription cost.
I got the Swann NHD-850 cameras for my outside for only one reason: at $120 for a 2-pack they were great quality cameras. It is also made by HikVision, like my doorbell, and sports 5 MP, 100ft of night vision, 63° viewing angle, and IP67 outdoor rating.
These Swann cameras integrated well with ZoneMinder. I used the following information to get this doorbell camera working on ZoneMinder:
Swann NHD-850 Camera on Zoneminder
Like my doorbell camera, I monitor these cameras on Home Assistant. I plan to setup automations to:
Xiaomi Xiaofang 1080p indoor cameras have become quite famous as a low-cost option for Wifi security cameras. They cost just over $20 and are also available as Wyze Cam, which offers free/inexpensive cloud-based recording. The bad news is that these cameras are known to call their home in China and have to be used with their not-so-great Mi Home app. The good news is there are some awesome folks who have developed a hacked firmware that makes this camera more secure, private, and third-party app friendly.
So, I use the Xiaomi Xiaofang camera with the hacked firmware as an indoor security camera. Once hacked, you will have to access the camera's webpage to configure a few things and start the RTSP server for stream recording. Like my other cameras, this integrates with ZoneMinder using the settings below.
Like all my other cameras, I monitor these on my Home Assistant. The GitHub for the custom firmware has all the information you need. One big benefit with this camera is that the hacked firmware enables an internal MQTT server which makes the camera highly controllable from within Home Assistant. In addition, you can write automation based on MQTT messages.
I do not have this camera recording continuously on ZoneMinder. Instead, I have an automation that turns on recording on this camera when Abode security system's intrusion alarm goes off.
I monitor all of my smart switches and lights using Home Assistant, as shown below. Currently, I use only two types of smart switches: Zwave and Wifi.
Smart Switches and Bulbs on Home Assistant
I prefer Zwave switches over smart bulbs because 1) switches have a higher initial cost but are more future proof and 2) smart bulbs require the wall switch to be on to function smartly. There are several great Zwave Wall switches in the market. I went with HomeSeer HS-WD200+ Dimmer for one reason: its RGB LED light, which can be used as status lights. I do not use the dimmer function.
They work great with Home Assistant with little bit of modification to zwcfg file. I have 4 of these in strategic locations:
More than automating the lights, they are in the above locations for their status indicator light functionality. I use the 7 LED lights on them as visual indicators for several things:
For now, this is how I use the LEDs for status indication. Of course, the customizations are endless and this will continue to change as my smart home setup evolves. In addition to the status lights, these wall dimmer switches allow scene control with up to 5 taps and hold. I currently have the following automation setup using multi-taps:
I have not come up with a good automation scheme to trigger for the rest of the scene controls.
In my experience, Wifi switches seem to respond faster than Zwave switches (when you have a reliable Wifi network). TP-Link Kasa HS200 is a great Wifi based option for a smart switch and you can often find multi-packs for a great price. The Kasa mobile app is great but I rarely have to use it. The switch is compatible with Google Assistant and Alexa and the hardware itself is quite easy to install.
There is a Home Assistant component for TP Link switches, and the integration is flawless. I have these to control my Kitchen island lights and basement lights. Here are a few example automation I use:
As you may have noticed, I have built my smart home ecosystem around Zwave and Wifi protocols. Therefore, all of my smart sensors are either Zwave or wifi based and I monitor them (including their battery levels) on Home Assistant.
Zwave Devices on Home Assistant: Ecobee room sensors. Zwave leak sensors, Zwave garage door tilt sensor, Zwave water shut-off valve, and Zwave power outlets.
There are a lot of good zwave motion sensors in the market. I bought Dome Zwave products during a blackfriday sale in 2017 and I have been extremely impressed with their quality. I have used certain generic and unbranded Zwave sensors (eg. Monoprice) and they have been quite underwhelming. Dome Zwave motion sensor has been great, has customizable sensitivity, and I have not changed the battery in 1.5 years (still at 90%). It also has a built-in light sensor.
I use the Dome Zwave motion sensor in my garage to detect arrivals. On my home assistant I currently have the following automation:
You can read more about the Dome Zwave motion sensor in our list of zwave motion sensors. Since my smartthings is integrated with Home Assistant, I could have done the same thing using smartthings and one of the compatible motion sensors.
Dome Zwave contact sensor was part of the package deal I got during blackfriday 2017. So far it has been working great with the battery still at 100% after 1.5 years of use. It can also be used to detect garage door-open close status with some minor modifications.
I already have contact sensors for all my doors and windows through Abode security system. So I currently use this to monitor one of our important cabinets with the following automation on Home Assistant:
Once again, I could have replicated the same automation with smartthings and its contact sensor.
Dome Zwave water leak sensors were also part of the blackfriday deal and like other Dome Zwave sensors I have around the house, they have been working great with little to no battery drain in 1.5 years. Samsung Smartthings also has great and affordable leak sensors.
Elexa Dome Water Leak Sensor - Zwave Plus
Right now, I have 3 of these (under the kitchen sink, sump-pump area, and under washer) and automated through Home Assistant as follow:
The sensor by sump pump helps make sure my sump pump is doing its job. These sensors also come with an extension, which is easy to slide into some of the difficult locations (eg. under washer).
There were couple of different ways to monitor or automate garage door. For complete automation (eg. opening and closing) there are products such as Chamberlain MyQ and Linear Zwave Garage Door Controller. Although not a lot, Chamberlain MyQ requires a subscription for voice control and control through home assistant.
At this point, I decided to just monitor the garage door to help with situations where I am on my way to work and cannot remember if I closed my garage door. For this, I use a generic unbranded Zwave tilt sensor that shows on or off on my Home Assistant interface. [Read: 5 Best Z-Wave Garage Door Sensor options for home automation in 2018]
It works great with my Home Assistant through Aeotec Zstick. My current automation using the garage door tilt sensor includes:
As I explained above, I am more of a smart switch guy than a smart bulb guy. After trying Philips Hue for about a year, I was really impressed by how well it performed. However, after the initial novelty wore off, I could not justify having such an expensive system for my current needs which are limited. I got few inexpensive ZigBee bulbs with my SmartThings link purchase and I really struggled to find some use for it mainly because they needed the wall switch to be on all the time and we often turned them off out of habit. [Read: 4 Best Philips Hue compatible bulbs to buy – Best Philips Hue bulbs]
The only reason I got these were that they came packaged with the SmartThings Link. With a compatible hub, they can be voice controlled using Alexa or Google Assistant. These Sengled Element A19 Soft White bulbs paired easily with SmartThings and have been functioning quite well.
I cannot use them directly with Home Assistant due to lack of Zigbee controller on home assistant. I did try HUSBZB-1 USB stick, which has a Zigbee controller. The bulbs paired and worked but my Zigbee network is not strong (due to low number of Zigbee devices/repeaters) and the connections broke quite often. Right now, I have these bulbs available on home assistant through Samsung SmartThings and this setup has been working great. [Read: 5 Best SmartThings Light Bulbs in 2018 – Reviewed and Compared]
I have the following automation setup on these through Home Assistant:
Eventually, I see myself investing on some daylight and RGB bulbs for use during daytime or during the holiday season.
There are several cheaper Wifi based smart outlets. I have not used any of them and I do not have a need for them right now. But whichever direction you go, make sure it is compatible with your hub and are able to develop automation on your smart home hub.
I have two Zwave in-wall power outlets: GE Zwave Plus Outlet and Linear Zwave Outlet. Both work great and turn on and off the load based on my automation. The Linear outlet works great but it is Zwave and not Zwave plus. For this reason, I recommend the newer GE Zwave Plus outlet. Both function as Zwave repeaters to strengthen the network.
I have these two outlets paired with home assistant to perform the following automation:
The Dome Zwave smart On/Off power plug was part of my blackfriday 2017 shopping. I primarily bought this to test and struggled to find a use for it. There are several cheaper Wifi based ones you could use instead. It provides a good amount of information on power usage for energy monitoring and functions as Zwave repeaters to extend the network.
Recently, I have found a good use for this smart plug. I have my home theater subwoofer plugged into it and home assistant performs the following automation:
I no longer have to remember to turn on and off the subwoofer, which is not a necessity but a good convenience to have.
There are not many easy-to-install and control smart water control valves on the market. Dome Zwave Plus Water shut-off valve is a good one. While it is listed at $100, I bought it for $60 during blackfriday. There are some cheaper Wifi based valves that function the same way. But I am not sure about their home assistant compatibility. The Dome valve mechanically closes and opens the ball valve using a motor when turned on and off. Therefore, placement axis is extremely important to reduce the load on the motor and to have enough force to turn the valve. It also acts as a Z-wave repeater just like most powered Zwave devices.
Elexa Dome Water Shut-Off Valve - Zwave Plus (Repeater)
My automation, in this case, is quite obvious. I have my home assistant perform the following automation:
This is one of the least used smart device in my house. But the hope is that there never comes a need for it to be used. But in case of an emergency (eg. washer breakdown, sump pump failure, leak under the sink, etc.) the water will be shut off and I will be notified in multiple ways listed previously in this post.
Investing in a decent UPS is important to protect your expensive and/or important equipement. In my case, those were: Synology NAS, Ubiquiti Network gear, and Intel NUC home server. While brands like Eaton are known to produce some of the best UPSes, they are also quite expensive. Most people, including me, go with popular ones such as APC. Recently, CyberPower has been growing as a recognizable brand in UPSes.
This was my first UPS. I did not have a big need for a UPS then nor was I as informed then as I am today. It protected my Ubiquiti Network gear, Synology NAS, and PiHole from surges and provided battery backup. So during power failures, I could still have internet / wifi access for about 20 min. This was the use case until June 2019.
APC NS700MC Back-UPS with 8 Ooutlets
The frequent power dips and losses at my new place drove me nuts, so I invested in a better UPS. So this UPS now only protects my Intel NUC Home Server. The load is only about 10 Watts and the UPS keeps my home server up for over 2 hours, keeping my home automation and server activities alive. On my Linux Server, I have apcupsd installed and configured to monitor my UPS and automatically shutdown my server when battery is critically low. I also have apcupsd-cgi running, which makes the UPS details available on a browser through apcupsd Webmin Molule.
apcupsd Webmin to Monitor UPS
In addition to monitoring my APC UPS through Webmin, I have it connected to my Home Assistant using the apcupsd component and sensors.
APCUPSD on Home Assistant
I have the following automation setup on Home Assistant using the APCUPSD component and sensors:
In June of 2019, I moved to a bigger better UPS. Most cheaper UPSes supply a square wave current, which is not how utility power is supplied (Sine waveform). This can be damaging to some equipment. But UPSes that provide simulated Sinewave or true Sinewave, are more expensive. I went with CyberPower CP1500PFCLCD. My other choice was APC BR1500MS, which has similar specifications and costs about the same. I went with CyberPower because of the reported buzzing noise issues with APC.
So at this point, this UPS protects and powers My Ubiquiti Network Gear, PiHole on Raspberry Pi, and Synology NAS. This UPS is connected to my Synology NAS using the USB cable. Synology NASes have NetworkUPSTools (NUT) (similar to APC's apcupsd) built-in to monitor battery levels and initiate shutdown. Options on the DSM GUI are quite limited but NUT configurations can be edited through commandline.
Synology UPS Configuration
As with my APC UPS, I have Home Assistant monitoring monitoring my CyberPower UPS remotely using NUT Sensor. I have the same automation setup for my CyberPower UPS as my APC UPS described above.
NUT Sensor on Home Assistant
Not everything is smart in my home, yet. IoT devices are increasing at an exponential rate (eg. Smart refrigerators, ovens, bread machines, etc.). I have not even considered some of those yet. But there are few other things in my house that I may smarten/automate at some point in the future.
Some may consider this a necessity and I am not one of them (yet). At this point, I only monitor the garage door open/close status and get telegram notifications using a tilt sensor (explained above). Having said that, I do have a Chamberlain MyQ sitting in my basement, waiting to be installed. [Read: 5 Best Smartthings Garage door sensors in 2018 – reviewed and compared]
My new house was pre-installed with First Alert wired smoke and carbon monoxide detectors. I could not justify replacing a fully functional smoke detector just for the sake of smartening it. Most currently available Z-wave smoke and carbon monoxide sensors, including from First Alert, are battery-operated and they do not interconnect with existing sensors. The battery operated part of it is not much of a problem as users have reported close to a year or more of battery life.
I have not gotten into the Nest ecosystem yet. Nest Protect is great but they are, in my opinion, quite expensive. I have also been looking at alternative solutions such as the Leeo Smart Alert Smoke/CO Remote Alarm Monitor. It listens for smoke alarms from existing sensors and notifies if an alarm sound is triggered. These used to be much cheaper (~$50) but have been more expensive and hard to find these days. [Read: 5 Best SmartThings Smoke Detectors – Reviewed and Compared]
This is the last one on my priority list. I do not have a sprinkler system and could not justify the initial and operational cost of it due to high water prices in my area. But there are some great smart options for irrigation such as Racchio Smart Sprinkler system. These can conserve water while making sure your lawn receives adequate water.
Racchio is not the only one in the market. There are several other options for smart irrigation system.
Many of my current Home Assistant automation examples were shared above in this post. I am listing a few other automation examples below:
Others have performed much more complex automation tasks with Home Assistant. Awesome-HA is a great resource to look through and learn.
So there you go, a 11,000-word novel on my Smart Home setup and how I do things. My setup is certainly not one of the most advanced setups. I am amazed at what some people have done with theirs. I do not consider myself an expert. But I love tinkering and learning and I love sharing what I learn with others. My wife thinks I overcomplicate things. Nothing new there and it is fun as heck.
There are so many ways to do the same thing on Home Assistant and I am constantly finding better ways to do existing automation. For example, I know I could improve my presence detection system that detects if anybody is at home or not. I can combine the data from my Ecobee room sensors, UniFi controller, and GPS MQTT messages.
When I started my smart home journey, I was quite lost on where to start and the options were overwhelming. Therefore, my sincere hope is that this post helps those newbies that are looking to get started but do not know how things fit in and what the possibilities are.
If you have other ideas or input on how I could improve my setup feel free to comment and share.
This post was last modified on July 12, 2020 3:55 pm
If you're looking for the best private torrent trackers, you might become overwhelmed. Where do…
Looking for WordPress on Docker setup that offers multi-level caching and multiple websites (including non-WordPress)…
With increasing docker applications and images, security for docker containers requires more attention than ever…
Don't like to outsource your authentication for Docker Traefik stack to third-party services like Google…
You may have read my Docker Traefik media server guide. Can you build that on…
Cloudflare offers free security and performance improvements for your Traefik 2 Docker setup. In this…