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.
- January 3, 2020 - Updated the setup to reflect current status.
- August 6, 2019 - Added Roborock S6 vacuum.
- June 13, 2019 - Added CyberPower CP1500PFCLCD UPS.
- May 13, 2019 - Initial publication.
Table of Contents
- The Past - Evolution of my setup
- My Smart Home Setup
- The Foundation
- Smart Appliances
- Home Server and Media Apps
- Smart Home Hubs
- Voice Assistants / Smart Speakers
- Home Security
- Smart Switches
- Smart Sensors
- Smart Bulbs
- Smart Outlets and Valves
- Uninteruptible Power Supply (UPS)
- Dumb Devices Yet to be Smartened
- Some More Smart Home Automation Examples
The Past - Evolution of my setup
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.
My Smart Home Setup
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?]
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.
Home Server / Media Server
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.
- Media Management - Sonarr, Radarr, Lidarr, Bazarr, Plex, JellyFin, Tautulli
- Downloading - SABnzbd, qBittorrent, Transmission Bittorrent with VPN, Jackett, Hydra, jDownloader
- Database - InfluxDB, phpMyAdmin,
MariaDB(now moved to my Synology NAS), Grafana, PostgreSQL
- Smart Home - HASS.io, NodeRed, Mosquitto MQTT
- Docker - Portainer, Traefik Proxy, Ouroboros, Docker GC
- Other Apps - Organizr, Heimdall, StatPing, FileBot, FireFox, Guacamole, makeMKV, MKVToolNix, APCUPSD, Glances, Picard, Handbrake, Logarr
- Security - ZoneMinder
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:
- Intel NUC BOXNUC8i7BEH1
- Intel Core i7-8559U processor (2.7 GHz - 4.5 GHz, Quad Core, 8MB Cache, 28W TDP)
- Intel Iris Plus Graphics 655
- 2 x 260Pin SO-DIMM DDR4 2400
- G.SKILL Ripjaws Series 32GB (2 x 16G) 260-Pin DDR4 SO-DIMM DDR4 2400 (PC4 19200) Model F4-2400C16D-32GRS
- HP EX920 M.2 512GB PCIe 3.0 x4 NVMe 3D TLC NAND Internal Solid State Drive (SSD) - Even with the temperature bug (can be fixed with firmware upgrade), these HP drives offer performance close to Samsung Evo while costing much less.
Network Attached Storage
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.
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:
- RAM - Added additional 4 GB. Not all makes and models are compatible. Synology branded RAMs are expensive. But Crucial 4GB 204-pin SODIMM DDR3 PC3-14900 worked. Although only 8 GB is officially supported, many have reported that 16 GB (2x8GB) also worked.
- 2 x HP EX920 M.2 256GB PCIe Nvme SSD for Caching, which is averaging nearly 100% fill and 92% hit rate per month.
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.
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:
- Gateway - As the name suggests, is your gateway to the internet. It offers the first level of defense against malicious attacks and keeps your home network secure. I use Ubiquiti Unifi Security Gateway (USG).
- Switch - A switch connects devices on your network through wires. It also routes internet packets to the right device and back. I use Ubiquiti US-16-150W UniFi Switch, which offers Power Over Ethernet (PoE) to power my 2 access points and security cameras.
- WiFi Access Points - Access points are typically powered by the PoE switch using ethernet cables. These send out WiFi signals for your devices to connect. You have the flexibility to add as many access points as you like to fill your entire house with WiFi signal. I use two each of Ubiquiti UniFI UAP AC Long Range and two UAP AC Pro access points, one LR in my second floor looking down, two Pros in my first floor (ground floor), and one LR in my basement looking up.
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.
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.
For example automation using room sensors:
- When the basement occupancy sensor reads no occupancy for 5 minutes, then turn off basement lights.
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.
Roborock S6 Vacuum
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:
- Support for 3 saved maps - I have 3 floors. Unlike S5, which can save only one map, S6 can save three floor maps. My S6 will be used primarily on one floor but any time I use it on another floor, my main floor map won't be erased any more and I do not have to do a full clean to remap the floor. This is how I intend to use it but have not tested it yet.
- Virtual walls and no-go zones are a big plus (also available on S5).
- Basic mopping function (also included in S5).
- Support for room/zone creation, which can make automation easier.
- In addition, there are some key hardware upgrades compared to S5 - Better brush, easier maintenance, etc.
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.
Home Server and Media Apps
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:
- Ultimate Smart Home Media Server with Docker and Ubuntu 18.04 – Basic
- Traefik Tutorial: Traefik Reverse Proxy with LetsEncrypt for Docker Media Server
Here is a list of all the apps I run using Docker:
Smart Home Apps
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:
- Samsung SmartThings is a smart home hub. It is very user-friendly, has Zigbee support, but not as powerful as Home Assistant. I use it to control my Zigbee lights. I can integrate SmartThings with Home Assistant using MQTT protocol and control all SmartThings devices from Home Assistant.
- I also use MQTT to track the status of our family phones. OwnTracks and several of the Home Assistant Mobile apps can send GPS location information to Home Assistant using MQTT protocol. In addition, phone status such as battery level, last camera picture, wifi status, call status, etc. can also be monitored through Home Assistant.
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.
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).
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]
Traefik Reverse Proxy
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.
Transmission with VPN
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.
Surfshark VPN Exclusive Offer - 82% off ($2.39/month):
♦ Hide your browsing (no logs), Anonymize Streaming and Downloads
♦ Wireguard Protocol support for VPN.
♦ Circumvent Geo/Country Restrictions and access worldwide content
♦ Works on Windows, Mac, Linux, Android, iOS, Router, and more
♦ 1 TB Encrypted Storage
♦ 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.
|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.
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.
Automatic media aggregation and management is a big part of my smart home setup. The schematic below shows what happens behind the scenes.
Here is everything fits in together:
- I add media that I want to Radarr (Movies), Sonarr (TV Shows), Lidarr (Music), or HDHomeRun Extend for recording bye Plex DVR.
- Radarr, Sonarr, and Lidarr search for those content:
- Usenet is the preferred method. So they use Usenet search providers to look for .nzb files.
- If no NZB files are found then Torrent search providers (from Jackett) are searched for .torrent files.
- Sonarr/Radarr/Lidarr then pass .nzb file to SABnzbd or .torrent file to Transmission VPN.
- Downloaders then download the content. .nzb files point to content stored on Usenet servers and .torrent files point content stored on the P2P network.
- Downloaders and Plex DVR save the files to a known location on my Intel NUC home server.
- Sonarr/Radarr/Lidarr track the download status. Once downloaded, they automatically rename the files, download the metadata (poster, fanart, nfo, etc.) and move them all to respective Movies, TV Shows, or Music folder on my Synology NAS.
- Plex Media Server on my Synology NAS picks up the file, catalogs it, and makes it available to my plex clients. [Read: 10 Best Plex client devices 2018: Pre-built and DIY options]
- NAS drives are mounted on my Intel NUC using SMB protocols. Emby Media Server on my Intel NUC picks up the file from mounted SMB folder, catalogs it, and makes it available to my Emby clients. [Read: 20 best Emby client devices 2018 – Stream from Emby Server]
- My Kodi devices (Amazon Fire TV, Android devices) have my NAS drives mounted using NFS and SMB protocols. It catalogs and makes my media available through Kodi. In addition, I also have the official Plex Kodi addon, which offers a second way to access my media from within Kodi. [Read: Combine Plex and Kodi – Get the Features of Both Using PlexKodiConnect]
- My Plex / Emby server sends me a Telegram notification when something new is added to my library.
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.
Example automation include:
- Turn on Transmission alternate speeds when the house is occupied.
- Pause SABnzbd and turn on Transmission alternate speed when Plex is streaming.
- Send a telegram notification to my phone when a torrent is done downloading.
- Show a visual indicator when something is downloading (discussed later) - my wife always says internet too slow or my video buffering. Is something downloading?. This answers her question.
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 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 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.
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.
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.
- 5 Reasons to use Plex instead of Kodi and 5 reasons not to
- 5 Tips for users moving from Kodi to Plex – Things to consider
- Plex vs Kodi – The Ultimate Comparison Guide for Beginners
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.
Some of the automation include:
- Dim theater lights when one of the basement harmony activities is turned on.
- Automatically turn on my subwoofer (described later) when a basement media activity is detected.
- Skip YouTube ads using voice commands - My daughter goes nuts when an ad comes up in the middle of her video. When I am busy it is annoying to stop, get the remote, and skip ads. Now when I say "OK Google, Skip Ad", my harmony (via Home Assistant) sends an "OK" command, which skips the ad.
- Using Harmony activity (via Home Assistant) I automatically turn on (for Roku / Plex) and off (for Broadcast TV) subtitles.
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.
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 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.
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.
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 for MySQL and phpMyAdmin:
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]
Other Docker Apps
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 continuous recording albeit at a high system load. [Read: ZoneMinder Docker Guide for Beginners: Best Free Video Surveillance]
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.
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:
- Enable event notification on ZoneMinder to get notified on zmNinja on my phone.
- Enable MQTT support on ZoneMinder and integrate it on Home Assistant to get motion detection notifications to use as triggers.
- Use MQTT motion detection triggers to send out telegram notifications or create automation (eg. turn on lights when motion is detected by cameras.
- With camera stream improvements in Home Assistant 0.92, it is now easier to use motion triggers to automatically or on-demand stream camera feed to casting devices (eg. Chromecast, Google Nest Hub, etc.).
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!]
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]
Smart Home Hubs
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.
Docker HASS.io with Aeotec Z-Stick
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.
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.
Voice Assistants / Smart Speakers
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:
- Nest Hub Max
- Google Home Mini - 2
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]
Abode DIY Wireless Security
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:
- Security-first approach. Its built-in home automation engine pales in comparison to Home Assistant anyway.
- Completely wireless with long battery lives. It is now 2 years since I installed abode and I am yet to change a battery.
- DIY - I did not want any complex installation procedures. My wife and I set it up in a matter of an hour with some 3M Command strips and a mobile phone.
- Self-monitoring - I tried both self-monitoring and paid options on Abode. Self-monitoring is one of the best "free" options you will find on the market. Any alarms will be sent to your phone, for free! Most services charge you for phone notification. Then you can decide whether you want to call the authorities or not. In addition, abode offers "on-demand" monitoring for a few days when needed (eg. vacation time).
- Home Assistant compatibility - Home Assistant has an Abode component which has been working great.
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.
- Turning on Garage/Porch/Patio lights when it dark outside and I open the door.
- Turning off Ecobee thermostat when door/window left open for a long time.
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.
RCA Gen 2 Video Doorbell (ZoneMinder)
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:
- RTSP URL: rtsp://username:password@NETWORK-IP-ADDRESS/Streaming/Channels/101. Username is usually admin and password is printed on the camera below the QR Code.
- Source Type: ffmpeg
- Resolution: 1536x2048
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.
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:
- Automatically stream doorbell camera to Chromecast or Google Nest hub when motion is detected in the porch or when the doorbell is pressed.
Of course, it is a lot easier to do this with Nest Hello if you are willing to pay the Nest Aware subscription cost.
Swann NHD-850 Cameras (ZoneMinder)
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:
- RTSP URL: rtsp://username:password@NETWORK-IP-ADDRESS/Streaming/Channels/101. Username is usually admin and can be set from its administration webpage.
- Source Type: ffmpeg
- Resolution: 2560x1920
Like my doorbell camera, I monitor these cameras on Home Assistant. I plan to setup automations to:
- Turn backyard lights when motion is detected on these cameras.
- Stream camera to casting devices when alarm events are triggered.
Xiaomi Xiaofang 1080p Wifi Camera (ZoneMinder)
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.
- RTSP URL: rtsp://NETWORK-IP-ADDRESS:8554/unicast.
- Source Type: ffmpeg
- Resolution: 1280x720. Hacked firmware allows you to increase the resolution to 1080p with a minor mod.
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.
HomeSeer HS-WD200+ Zwave Dimmer
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:
- Near backdoor to control back patio light.
- Near frontdoor to control front porch light.
- In the garage by the entry door to control garage lights.
- In master bedroom to control fan light.
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:
- LED 1 - Indicate Abode home security system status. Green for disarmed, red for armed home, and blinking red for armed away. This has significantly reduced alarm triggers due to opening doors/windows without knowing system status (eg. for letting the dog out, knowing alarm status from the garage during entry, etc.).
- LED 2 - Ecobee thermostat status. Red for head mode, Blue for cool, White for auto, and Off for off mode.
- LED 3 - Door or Window open indicator. Blue for Door and White for Window.
- LED 4 - Garage door status indicator. Magenta for open and off for closed.
- LED 5 - Weather warnings. For example: UV protection indicator using OpenUV data, precipitation probability, etc.
- LED 6 - Download status indicator. As mentioned above, this LED serves as a visual indicator to show if something is downloading on qBittorrent, Transmission, or SABnzbd. Cyan for downloading, and off for no current downloads.
- LED 7 - White and off to indicate if the light it controls is on or off. Much easier to know if an exterior light is on, without having to open the door and see. If any of the monitored lights in the house is left on for over 10 min, it turns red to indicate that. Good visual check before going to bed. In addition, if a water leak is detected (using the leak sensors described below), this LED turns to blinking-cyan to warn us.
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:
- All my external lights are setup to auto turn on and off based on motion, door opening, and time of the day. When I want them to be "on" continuously and not auto-turn-off, I double tap them.
- Triple tap turns on/off all external lights.
I have not come up with a good automation scheme to trigger for the rest of the scene controls.
TP-Link Kasa HS200 Wifi Switch
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:
- Turn on and off island lights at certain times while on vacation (vacation mode).
- Turn on island lights while entering the house and it is dark outside.
- Turn off the lights if nobody is at home and it is bright outside.
- Combined with other light switches, turn these on when Abode home security alarm is triggered and it is dark outside.
- Turn on the basement lights when basement door is opened and it is dark outside.
- Turn off the basement lights when basement Shield TV plays something on the projector.
- Auto turn off the basement lights when basement Ecobee occupancy sensor is clear for 30 min.
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.
Dome Zwave Motion Sensor
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:
- Turn on the garage lights when motion is detected in the garage and it is dark outside. I have the option to automate this based on light levels if I need to.
- Turn off the garage lights if no motion is detected for 3 min.
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 Door/Window Sensor
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:
- Notify by email and telegram when the cabinet is opened when my Wife and I are not at home.
Once again, I could have replicated the same automation with smartthings and its contact sensor.
Dome Zwave Water Leak 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.
Right now, I have 3 of these (under the kitchen sink, sump-pump area, and under washer) and automated through Home Assistant as follow:
- Send a telegram notification and change HomeSeer Switch status light when a leak is detected on any of the areas.
- Turn off whole-house water supply when a leak is detected (discussed later).
- Sound a warning on my google homes when a leak is detected.
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).
Zwave Garage Door Sensor
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:
- Send a telegram notification every 5 min, if my garage door is open and nobody is in the house.
- Turn on the garage lights if the garage door opens and it is dark outside.
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]
Sengled Element A19 Soft White
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:
- Turn off theater lights when somethings starts playing on the home theater screen.
- Turn the theater lights back on when the player is pause or stopped.
Eventually, I see myself investing on some daylight and RGB bulbs for use during daytime or during the holiday season.
Smart Outlets and Valves
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.
GE and Linear Zwave Outlet
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:
- Turn on and off the night light connected to the outlet based on the status of the security system: armed or disarmed. I use this as a secondary indicator for security system status.
- Turn on and off the dehumidifier based on the humidity inside the home. Turn on when humidity is above 48% for 30 min and turn off when it is below 48 % for 30 min. Previously, I used this outlet to turn on and off my invisible dog fence based on specific situations.
Dome Zwave Smart Plug
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:
- When something is playing on the home theater, then turn on the power to the subwoofer.
- When nothing is playing on the home theater, turn off power to the subwoofer.
I no longer have to remember to turn on and off the subwoofer, which is not a necessity but a good convenience to have.
Dome Zwave Water Shut-Off Valve
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.
My automation, in this case, is quite obvious. I have my home assistant perform the following automation:
- Notify me on telegram every 5 min if the water is off.
- Shut-off the water supply if a leak is detected anywhere in the house.
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.
Uninteruptible Power Supply (UPS)
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.
APC NS700MC Back-UPS 700 VA 8-Outlet
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.
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.
In addition to monitoring my APC UPS through Webmin, I have it connected to my Home Assistant using the apcupsd component and sensors.
I have the following automation setup on Home Assistant using the APCUPSD component and sensors:
- When incoming voltage is 0 (a power-loss) send a telegram notification.
- When incoming voltage is >0 (power back on) send a telegram notification.
- When battery level decreases to 20% or below, send a telegram notification of upcoming shutdown and remaining runtime.
CyberPower CP1500PFCLCD Sinewave UPS
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.
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.
Dumb Devices Yet to be Smartened
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]
Smoke and Carbon Monoxide Sensors
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.
Some More Smart Home Automation Examples
Many of my current Home Assistant automation examples were shared above in this post. I am listing a few other automation examples below:
- Notify if crime is reported near my home.
- Notify if a new device is detected on my home network.
- Notify if my SSL certificates are about to expire.
- Change home assistant theme if something is wrong (eg. NAS storage is full).
- Notify if my Digital Ocean droplets are down.
- Perform HASS.io backups daily.
- House temperature and humidity out of comfort zone notifications.
- Test LAN speed between home server and NAS and notify if they are below a limit.
- Use voice command with Google Assistant to restart home assistant.
- Send current weather radar images to my phone.
- Notify me if a there is a traffic delay when I leave from work so I can find alternate routes to reach daycare on time to pickup my kids.
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.