Tuesday 1 January 2019

The Grand Plan

Welcome to Mediaserver8, a place where I document my adventures in home automation and media serving - mostly for my own reference and future sanity!

I'm going to keep this post on top and maintain the overview schematic at Gliffy to offer an introduction to my HA system as it evolves. (Here's a direct link to a scalable version of this diagram).

Card

Read on for a detailed breakdown of this setup...

Here are a few notes on the various components.

The heart of the system is an unRAID server. I've been using unRAID since version 4.x and it's come a long way. It now supports virtual machines and Dockers as well as being an excellent parity-protected NAS. Almost everything I do relating to technology in the house runs on or passes through this single box. (For more details, see posts labelled unRAID, or pretty much any post on this blog).

The unRAID server hosts the following services;
  • Storage Array - the primary function of unRAID, it provides parity protected storage with drives of different sizes. Currently host all our movies, music, PVR recordings as well as a bunch of other files and OSX TimeMachine backup.
  • An openVPN docker allows me access the system remotely as if I'm sitting at a system at home. Secure and fast, this just makes life easier.
  • A DuckDNS docker syncs my dynamic IP address with the free DuckDNS service. This allows me urls to my home server for external services that I use.
  • An Apache Docker to act as a gateway to other services exposed to the interweb. Specifically, this docker implements SSL, reverse proxies and user authentication and as a bonus, provides a web server where in future I plan to host a dashboard where we can review home status. (For more details, see posts labelled Apache).
  • Node-RED is ' is a tool for wiring together hardware devices, APIs and online services in new and interesting ways.' The Node-RED docker runs it on unRAID and it's rapidly becoming the glue that holds together all the disparate elements of my ever-evolving HA setup. (For more details, see posts labelled Node-RED).
  • The mySQL docker provides database services for various applications including openHAB persistence, Node-RED permanent storage and other elements requiring record keeping.
  • The MQTT docker facilitates communications between various apps via a lightweight machine-to-machine (M2M) "Internet of Things" connectivity protocol. (For more details, see posts labelled MQTT).

  • TVHeadEnd provides Live TV and PVR services through the house. There's a Digital Devices Octopus PCIe card with 3x DuoFlex tuners (2x DVB-T and 4x DVB-S2) in the server and plenty of storage on the unRAID array. This serves TV and recordings to a range of clients, mostly running Kodi. I'm currently running the TvHeadEnd plug-in put plan to migrate to the docker shortly. Special mention here to unRAID DVB edition. This is a special build of the unRAID OS that integrates tuner card drivers. It's maintained by the team at LinuxServer.io.
  • I used to run Plex for media serving and playback and loved it's client/server architecture but was frustrated by it's lack of support for Live TV. I moved to Kodi for the client side but found replicating the central server features of Plex cumbersome. Step in Emby which is an excellent media server that integrates really well with Kodi. Now, all my Kodi clients remain in sync and I can mange media in one place only thanks to the Emby Server docker. (For more details, see posts labelled Emby or Kodi).
  • One of the longest serving technologies I have in use is the now sadly defunct Squeezebox ecosystem.  A central mediaserver powers a range of hardware devices and a few virtual players to provide a network of zoned audio playback. Supports both local files and network services such as Spotify. Still going strong after many years of service and managed via the LMS docker. (For more details, see posts labelled SqueezeServer or Spotify)

In addition to the various Dockers, there are also a few Virtual Machines;

  • The vHTPC VM is a windows 8 machine running Kodi with an AMD 5450 GPU passed through. HDMI and USB cables run from the physical server to our family room TV. This allows the TV access to all locally stored video and audio files via Emby integration as well as live TV and recordings through TVHeadEnd. Control is via a harmony remote.
  • The Workstation VM is a windows 10 instance with 12GB RAM and 4x CPUs assigned. This has an R9 270X GPU passed through with cables running to a pair of displays. This is my main working system and is powerful enough to be used for light gaming as well.
  • The HA Utility VM is a Windows 8 instance that's a core part of the home automation project. The legacy comfort alarm system I'm integrating is configured through a serial connection by proprietary Comfigurator software which runs only on windows. That requirement drove the decision to set this up as Windows rather than Linux and I've since added in additional functionality including a custom driver to interface MQTT with Comfort, a modem to capture callerID on incoming calls, an openHAB install for automation control, a Z-Stick z-wave controller and a few other bits and pieces which I expect to grow over time.

Scattered around the house are some other components such as z-wave devices, WeMo sockets, PCs and TVs, receivers, projectors and the latest acquisition, an Amazon Echo Dot. This latest gadget has got me interested in voice control and skills programming and prompted me to set up secured external access to my Node-Red docker via Apache reverse proxy and SSL.

I've come to realise that it will never be a completed system and that I'll always be tinkering and evolving - but that's the fun!

4 comments:

Anonymous said...

How is openhab working for you on unraid? I see you are using my docker for LMS :)

MediaServer8 said...

I'm using openHab inside a windows 8 VM for the moment for a few reasons, mainly I want to experiment with different versions, plus I need the windows VM to connect with my alarm system. I might move to the docker version when it all gets settled down.

LMS docker is great - very stable. It's seeing lots of use at the moment as I develop an Alexa skill to control squeexeboxen!

Pat Rooney said...

Peter,
What has your experience of TVHeadend been like? I'm a long-term SageTV user with HD300 units on the client end and Freesat for Live TV. This is starting to show it's age and the HD300s are no longer available, but it is rock-solid. I've tried TVHeadend with Kodi before, but it was almost unusable - slow and prone to crashing with lots of features I'm used to with SageTV missing.
Pat Rooney

MediaServer8 said...

Pat. I'm an ex sagetv user from many moons ago. I liked it and have been chasing something as good since. Kodi with an emby backend for media and tvheadend is close.

My setup is very stable with no missed recordings. There's a bit of trial and error to get the best picture quality in Kodi and mapping server paths on clients is a bit of a chore but easy once set up a few times. Now that I'm migrating to Amazon Fire to throughout the house, I also get Netflix, Amazon, Spotify etc. On each box with a simple remote and a consistent ui throughout as well as the stop watching in one room, resume in another feature that I really liked from sage. It works for me.