My home entertainment center consists of several devices that work in concert to provide an audio and visual experience. Just watching a YouTube video on the “big screen” requires that multiple things have to happen. First, the TV (display) has to be turned on and set to receive video from a certain input. Next, the device used to browse and play YouTube videos has to be powered on. Finally, the Audio/Video Receiver (AVR) used to send audio to the speakers and video to the display also has to be activated and switched to the proper input and output settings. While doing all this with the various remote controls for each device is possible, just watching a YouTube video would require pressing multiple buttons on three different remote controls. Never mind then having to use one controller to adjust the volume and another to browse and select videos to watch.
Another consideration is that the cabinet holding most of the devices in my entertainment center has doors on it to give the room a cleaner look. These doors can be equipped with glass panels or ones consisting of a black fabric. The glass panels allow signals from infrared (IR) remote controls to reach things, but severely limit cooling of those devices. Plus, with glass, all those devices along with their lights and cables are exposed to the room. On the other hand, the fabric panels allow for much more airflow and needed cooling, along with hiding everything, but severely limit IR signals. Given that I did not want to have to use multiple remote controls and button presses to just watch a YouTube video, and I wanted to provide as much cooling to things as possible, a solution that let me use a single remote control to manage everything without needing direct line-of-sight to things in order to control them was desired.
My goals for the control of my entertainment center are:
- Be able to control multiple devices with a single remote control even if those devices use different communication methods such as IR, Bluetooth, or Wi-Fi
- Control devices that are enclosed in cabinet that blocks external IR signals from reaching them
- Turn off the main display when the device using it, (e.g. a game console), is idle for a certain period of time
- Be able to trigger a set of actions using voice commands e.g. “turn on the TV”
The equipment to be controlled is as follows:
- Display, which also supports over-the-air (antenna) television
- AVR, which also supports over-the-air (antenna) radio
- nVidia SHIELD used for streaming content such as YouTube
- Windows computer used for PC gaming
- PlayStation 5 gaming console
- Nintendo Switch gaming console
- Blu-Ray player
- Bluetooth receiver for playing audio from devices such as an Amazon Echo through the “big” speakers
The technologies used to implement this solution are:
- Logitech Harmony Hub as an IR “blaster” and Bluetooth controller (this item is discontinued)
- Logitech Harmony Elite as the main remote control (this item is discontinued)
- IR blasters to send signals to devices enclosed in cabinets
- Microsoft All-In-One Media Wireless Keyboard with Track Pad to control the PC (this item is discontinued)
- HDMI-CEC to control power to the display and AVR for some things
- Flirc USB for controlling the Windows PC
- Amazon Echo device for voice control
- OpenHAB to connect Amazon Echo devices with the remote
I have used Harmony “universal” remote controls for a long time. These can be configured to speak to multiple devices and send multiple commands with just one button press. This can allow the creation of “activities” such as “Play PC” which when activated will turn on the TV and switch it to the correct input, turn on the AVR and switch it to the correct settings, and turn on a Windows computer. This is much more efficient than turning on the TV and making sure that it is set to the right input with one remote, turning on the AVR and setting it to the right input with another remote, and turning on the PC by pressing a button on its case. Unfortunately, Logitech has discontinued the Harmony line of controllers. They still work, but over time as new things are added to the entertainment center, a new solution may need to be found. The Harmony Hub device that I currently use can learn IR commands from a remote control meaning that new devices can be manually programmed, but, for example, my current display does not come with a remote that uses IR. Since I bought this display before the Harmony remotes were discontinued, Logitech knew how to control it. However, when I replace the display there is no guarantee that I can program the Harmony to speak to it.
Another desire of mine was to automatically turn off devices that were idle. There have been multiple times where I have fallen asleep while watching something, or put a video game on pause while I do something else and forgotten about it. My current display is subject to “burn-in” which means that if a static image is displayed too long, parts of that image can remain visible even if you switch to watching something else. While I do not want the display to switch off while actively watching a movie or playing a game, I do not want it to remain on if I fall asleep or put a game on pause for an extended period of time.
My first inclination was to use HDMI-CEC to handle things. One idea of that technology is to be able to, for example, turn on a video streaming device such as a FireTV causing the display to automatically turn on and set itself to the correct input. Even the volume of the display can be controlled using HDMI-CEC. However, given my more complex setup, this turned into a major headache to try and work correctly. By funneling everything through the AVR, signals seemed to get crossed leading to devices to turning on and off unexpectedly, or seemingly randomly switching to the wrong inputs and outputs. This led me to a lot of testing until a fairly, although not perfect, combination of wireless controls and HDMI-CEC was found to almost meet my main goals of this implementation.
Harmony Hub
The Harmony Hub, sadly discontinued, is the brains behind controlling things. It is paired with a Harmony remote that is used to initiate commands. There is also an app that can be installed on phones or other Android/Apple devices that can turn an old phone into a remote. Logitech, the last company to own the Harmony brand at the time or writing, also still maintains a large database of devices and their related commands. While this information is thankfully still available today, it is not being updated. For example, the PlayStation 4 (PS4) console did not support IR, but did allow for Bluetooth to control it. Since the Harmony was still being actively supported when the PS4 was released, Bluetooth integration was available. However, when the PlayStation 5 (PS5) was released, the Harmony was not as well supported and never received Bluetooth integration. Therefore, another way to turn the console on and off without physically touching a button on the console was desired, (see PlayStation Console below). Turning on the PS5 could be done by just pressing a button on the controller that came with it, but turning everything involved, (i.e. display and AVR), off due to inactivity was not as simple.
For IR controls, I placed a couple so-called IR “blasters” inside the cabinet behind the doors that are connected to the Harmony Hub. This allows the Hub to transmit IR signals to things in areas that would not be able to reach them otherwise.
Voice Control
The Harmony Hub can be configured to send and receive commands over the local network, and my current home automation software, OpenHAB, can talk to it. OpenHAB can also expose devices on the network in such a way that Amazon Echo devices (Alexa) can interact with them. OpenHAB rules are then used to bridge the Amazon Echos to the Harmony Hub.
First, the Harmony Hub is connected to OpenHAB where various objects are created such as “send a button press” and “retrieve what activity is being managed by the Harmony Hub” (e.g. watching TV). Next, objects in OpenHAB are created such a “Living Room TV” and “Living Room PlayStation”. These objects are not connected to anything, but are configured using various metadata so that the Amazon Echo can see them as a switch, meaning a device that can be turned on or off. Finally, rules are created in OpenHAB so that if the “Living Room TV” switch object is turned on, it will then send the appropriate command to the Harmony Hub to enable the “Watch TV” activity. This activity takes care of turning everything needed on such as the display and AVR, and setting them to the correct inputs. Likewise, when the “Living Room TV” switch object is turned off, another rule in OpenHAB captures that and sends a “Power Off” command to the Harmony Hub. While Echo devices can connect directly to a Harmony Hub and you can say things like, “Alexa, ask Harmony to turn on the TV”, it can only connect to one Harmony Hub, and I have multiple ones in my house that I want to be able to control with voice commands. Making everything go through OpenHAB also lets me do some things that I would like to explore in the future such as making my own “smart speakers” that do not need any access to the Internet to receive and decode voice commands, and send them to OpenHAB. My ultimate goal, which is very possible today given some investment and time, is to be able to control all aspects of the house using voice commands, but have all the data such as what was said remain on my home network and not sent to a third-party over the Internet. This would also allow voice commands to work if the Internet connection is unavailable, which happens occasionally where I live.
Amazon also allows devices to be put into groups such as “Living Room” and “Master Bedroom”. That means when I am in the living room and ask the Echo to “turn on the TV”, it will know to turn on the TV in the living room. Likewise, when I am in my bedroom and make the same request, the Echo will know to turn on the TV in the master bedroom. This also means that I can say “turn on the lights” and the Echo will just turn on the lights in the area where the command was received. Before groups were added to the Amazon ecosystem, I had to say something like “turn on the living room TV” or “turn on the dining room lights”, and I frequently would stumble over the correct thing to say to do what I wanted. I am not sure if this ability is currently available in some of the existing open-source “smart speaker” implementations, although it has been a couple years since I last looked into the technology. For now, even though there may be security and privacy concerns, and issues if an Internet connection is not available, the Echo devices are an easy, convenient, and relatively inexpensive way to provide voice control of the house. Of course, one reason the Echo devices are fairly inexpensive is because they collect data from and about you that is worth money to Amazon.
Display
My current display was released before the Harmony was discontinued, so even though the remote control that came with it uses WiFi or similar instead of IR, the Harmony Hub knows how to control it. Therefore, this was a fairly simple process to set up and configure. Even though I basically never use the display for its built-in “smart TV” features preferring to use the nVidia SHIELD for those tasks, or for its ability to display “over-the-air” signals from the antenna in my attic, those options are programmed into the Harmony Hub.
AVR
My current AVR uses IR and was released well before the Harmony was discontinued, so was another simple process to set up and configure. It also supports HDMI-CEC, so will automatically turn on and off if something connected to it does the same. Although I basically never use it to tune AM or FM radio, it is connected to an antenna in my attic and those options are also programmed into the Harmony Hub.
nVidia SHIELD
This is probably the oldest device in my entertainment center, can use IR, and is well-supported by the Harmony remote. It also supports HDMI-CEC, so when turning off, it can also tell the display and AVR to turn off. This is useful in cases where I may fall asleep while streaming a movie as the SHIELD will automatically turn off when the movie ends and there is no interaction with it for a few minutes.
Windows PC
The PC I have does not support IR controls or HDMI-CEC natively, but there are hardware and software options that can enable those functionalities. I do not use HDMI-CEC here, but did install a Flirc USB device that can receive and process IR commands. I also configured the PC to allow USB devices to turn it on. Unfortunately, there is no IR command to turn off the computer. However, I was able to use the Harmony’s programming capabilities to send several keyboard commands to the PC to turn it off with me only having to press one button or saying “turn off the PC”. By using the Harmony to send various other keyboard commands to the PC, I am able to have options on my remote such as “Open Steam”, “Open Game Pass”, etc. This allows me to switch between various applications using the remote instead of a mouse and keyboard. However, a keyboard and mouse are still required for certain activities, so a wireless keyboard with a trackpad is also used for things like browsing the web or maintaining the system.
While the PC does not turn off the AVR and the display, that is not too important as unlike consoles such as the PlayStation and Nintendo, the PC will not turn off (or dim the screen which helps prevent “burn-in”), when sitting on a pause screen for too long. This is unfortunate as one goal of this setup was to turn things off automatically when idle.
PlayStation 5 Console
The Playstation is connected directly to the display, which then sends the audio to the AVR instead of playing it on its own limited speakers. While the Harmony was never integrated with the PS5, it does support HDMI-CEC. Therefore, when the display is turned on and set to use the PS5 as its input, the PS5 will also turn on. Likewise, when the display is turned off, the PS5 will also turn off. This is almost perfect except that when the display turns back on to say watch TV after it was used for the PS5, it will still be connected to the PS5 causing the PS5 to turn on as well. The display will quickly switch inputs to do what I want, and sometimes even does this before the PS5 receives the signal to turn on, but only sometimes. This is not a major issue as the PS5 will just turn off on its own after being idle for a few minutes.
Nintendo Switch Console
Although the Switch supports HDMI-CEC, I could not get it to communicate properly with my other devices through the AVR. While I could connect the Switch to the display directly to get around this, I have not yet had the desire to take on this task. It may not seem like a major effort to just plug in some cables in a different way, but my display is mounted on the wall and I do not want a bunch of cords visibly traveling down the wall to the entertainment cabinet. Currently these cables are hidden inside a conduit that is painted to match the wall. You can still see that there is something running up the wall, but it blends in well and is fairly seamless to the eye. In the future, I plan to run things behind the wall, which will not be too difficult as they are interior walls without any studs that I would need to drill through to run the cables. However, that does take some investment in wall outlets and plugs, possibly cables that are rated for “in-wall” placement, and cutting holes in drywall. I have done things like this many times in the past, but cutting drywall always turns into a mess with me still finding dust from it long since the project was finished and supposedly cleaned up no matter how many precautions I take. Therefore, I tend to put off projects that involve drywall until I really, really want to tackle them. For now, the Harmony will turn on and configure everything to play the Switch, except that I have to manually press a button on the Switch to turn it on.
Conclusion
Even though my current way of controlling things in my entertainment center does not fully meet all my goals, it works well enough. The biggest concern I wanted to address was turning off the display if I fall asleep watching a movie, wasting electricity and possibly causing irreparable damage to my expensive display. I have been known to put a video game on pause, go do something “quick”, then get sidetracked by something else only to remember later that I need to turn things off. However, in those cases, things are usually not left alone for more than an hour, so are not as much of a concern for me.
In 2025, I plan to totally overhaul my home automation by switching from OpenHAB to different platform. I will probably stick with the Harmony Hubs and remotes as they were a significant investment, still work well, and have no need to be discarded. But while configuring the new home automation software, I will also (try to) address the remaining gaps in how my entertainment center is controlled. This may also be the point where I decide that it is finally time to “bite the bullet” as it were and cut into some drywall…