The couch cushions ate it. The dog hid it. It has transcended into another dimension. Here is how I designed my "always-there" universal remote in Home Assistant.
It’s 8:00 PM on a Friday. The pizza just arrived. You sink into the couch, ready to fire up Plex or binge the latest Netflix series. You reach for the remote...
And it’s gone.
The couch cushions ate it. The dog hid it. It has transcended into another dimension.
I use a Logitech Harmony Hub setup with an LG Smart TV. It works great, when I can find the physical remote. After spending way too many evenings tearing the living room apart looking for a piece of black plastic, I decided to build the ultimate backup plan.
I built a Universal TV Remote right inside Home Assistant.
This isn't just a clunky list of switches. It's a fully designed interface that lives on my phone (which is always in my pocket), my tablet, my work laptop, and, best of all, on my wrist via Wear OS.
Here is how I designed my "always-there" universal remote.
A good software remote needs to be faster than digging under the sofa. It needs to look good and respond instantly.
To achieve the aesthetic I wanted, clean buttons, intuitive layout, and distinct sections, I relied heavily on a few custom Lovelace cards. If you don't have these installed via HACS yet, go get them:
My primary view is designed for speed. It handles the 90% use cases: turning things on, changing volume, and navigating simple menus.
It leverages the Harmony Hub integration to switch activities (Plex, Laptop HDMI, Netflix, Xbox, Switch) with a single tap. The directional pad and volume controls send commands directly to the LG TV or Soundbar via the Hub.
It looks clean on mobile, but it's ridiculously convenient on my Wear OS watch. I set up Home Assistant tiles on my watch face, so I can turn on Netflix or mute the volume without even picking up my phone. It feels like living in the future.
Here is the YAML for my main remote view.
Note: I’ve replaced my specific device IDs with placeholders. You’ll need to plug in your own Harmony Hub device ID. Give your Device ID and this code to a LLM and it will plug it in for you!
Sometimes you need the deep cuts. The specific DVR button, the "Info" button, or the actual number pad to type in a channel.
I didn't want these buttons cluttering up the main view, so I created a secondary "sections" view specifically for Xfinity controls.
For this view, I used custom:button-card extensively to style the Xfinity icons with their distinct purple brand color (#6138F6), making it visually distinct from the main remote.
Here is the code for the Xfinity specific remote interface:
Is it as tactile as a physical remote? No. But is it always available, impossible to lose, and accessible from literally every screen I own? Yes.
Stop digging in the couch cushions. Build a backup.