Small Roon display built with an 11.6" monitor and an Apple TV

Thought I’d share this for fun.

A couple of recent discussions here got me thinking about building a small Roon display based on Apple TV and the Roon TV:Remote app/extension. Wasn’t much effort to put it together.

Here are a few pics of the device including a shot of the rear side:

ADDB9BE9-6408-4693-9AC8-9566B645D8B6_4_5005_c

The monitor is an 11.6" IPS display that runs at 1920x1080 purchased on Amazon. Mine is labeled “Hikity” but there are other similar/identical devices available. Display cost was $76.99USD.

I had an older generation Apple TV I wasn’t using. I mounted it to the back of the display using the adhesive-mount option of this part:

https://www.amazon.com/dp/B017S25FMA?ref=ppx_yo2ov_dt_b_product_details&th=1

I used a .5m HDMI cable that has left and right angle ends.

I like this little device so far. The TV:Remote app is fantastic - supports simple library browsing, transport controls and volume all with the Apple remote.

Because I already had the Apple TV, the parts cost was less than $100. Not bad!

11 Likes

I’m doing something similar with:

The Chromecast is always on (I’m not using it with a smart outlet) and is of course plugged into the 8" LCD. A Home Assistant automation uses the Harmony Hub (via the wireless IR extender) to turn on the 8" LCD whenever a Harmony music activity is active.

Notes:

  • I need the wireless IR extender because my Harmony Hub is with my AV equipment under the TV while the Chromecast and 8" LCD are on the other side of the room sitting on a subwoofer. I have a way to run cable to that location but it is a major pain in the ass and I’m running out of room in the conduit and cable management used to get there but if I ever decide to run network cable I may also pull a cable for IR so I can eliminate the wireless extender (although it does work perfectly and is also used to control a floor lamp sitting right next to the sub).
  • The Harmony Hub will get replaced with either an Unfolded Circle Remote 2 or Allonis SmartRemote. I’ll have a Remote 2 in hand next week and SmartRemote (hopefully) early next year.
  • I didn’t want to use RoPieee for this because I have two Roon zones/Harmony activities in this room and wanted everything fully automated. If RoPieee had the option to specify multiple zones/wildcard the zone name I would probably have gone that route instead (although I don’t really like the case options for the official RPi display).
1 Like

I wanted to do something similar with Home Assistant but I also wanted to power the monitor down when the Roon zone went inactive. I automated in such a way that the monitor will turn off one minute after playback to the zone stops or pauses unless playback starts again during that time, in which case the delayed shutdown is canceled. It’s a bit trickier than the typical automation - it involves an automation to turn things on (or cancel the delayed shutdown), another to schedule the delayed shutdown, and a script. In case you’re interested:

Automation to turn on the Apple TV (not in a smart outlet) and the monitor (in a smart outlet). This automation also “turns off” the delayed off script in case it’s running. Just create this as an automation.

alias: Media Room - Roon Display - Turn On
description: ""
trigger:
  - platform: state
    entity_id: media_player.media_room
    to: playing
action:
  - service: script.turn_off
    target:
      entity_id: script.delayed_turn_off_roon_plug
    data: {}
  - service: switch.turn_on
    target:
      entity_id: switch.plug_roon
    data: {}
  - service: media_player.turn_on
    target:
      entity_id: media_player.appletv_roon
    data: {}

Automation to schedule the “Delayed Off” script. This triggers when the Roon zone goes to off or paused. Also created as an Automation.

alias: Media Room - Roon Display - Delayed Off
description: ""
trigger:
  - platform: state
    entity_id: media_player.media_room
    to: "off"
  - platform: state
    entity_id: media_player.media_room
    to: "paused"
action:
  - service: script.turn_on
    target:
      entity_id: script.delayed_turn_off_roon_plug
    data: {}

The delayed action script. This needs to be added to your Scripts.yaml file using the File editor add on or some other strategy of your choice. If you haven’t edited this file in the past, you’ll find it at /homeassistant/scripts.yaml. In my case, this script is the only thing in that file:

delayed_turn_off_roon_plug:
  sequence:
    - delay: '00:1:00'
    - service: switch.turn_off
      target:
        entity_id: switch.plug_roon
    - service: media_player.turn_off
      target:
        entity_id: media_player.appletv_roon

This is all working very well. If you were to replicate it, you could just drop everything about the Apple TV or you could replace it with commands for your Chromecast.

1 Like

In my case I get the Chromecast’s screen saver in this situation. I do miss the RoPieee behavior that you have replicated but so far this has been good enough for me. I could modify my HA automation to do something similar though.

That’s why I wrote this. It was easy to figure out how to turn the monitor on. It was harder to figure out how to turn it off with a behavior that made sense.

I just checked and I’m actually relying on the Harmony activity here to turn the LCD on/off so I would have to create a new automation to duplicate the behavior you have implemented (which would be easy enough to do). I could also just delete the LCD from Harmony and use a smart outlet and HA like you are doing but I probably opted to just use the activity since I have the IR lamp in the same area and still need the wireless extender for that (the lamp has IR controls for brightness and color temp so using a smart outlet here wouldn’t do me much good). Once I find a suitable Harmony replacement all of this will probably change anyway.

1 Like

You have options :grinning: