Racks & WattsLOCAL HARDWARE / CLEAR PICKS

Home Assistant

Best streaming box for Home Assistant: Google TV vs Roku

Choose Google TV Streamer, Roku Ultra or Streaming Stick 4K for local HA control. Compare account needs, then dim lights, launch an app and pause for the doorbell.

OUR PICKS / YOUR SETUP

Find your fit.

Choose Google TV Streamer for an Android remote dashboard and Thread, Roku Ultra for wired Roku, or Streaming Stick 4K for a hidden HDMI player. Keep an existing Apple TV if its local HA controls do the job.

  • Google routeAndroid TV Remote + Cast
  • Wired RokuUltra 4850R
  • Doorbell actionPause, not play/pause

How we evaluate hardware.

YOUR NEXT PROJECT / THE GEAR

Parts list

  • Google TV Streamer (4K), Porcelain

    Choose Google TV streaming and local HA remote controls, with a Thread border router built in.

    Check price on Amazon
  • Roku Ultra 4850R

    Choose it for Roku apps, Ethernet and a rechargeable backlit remote.

    Check price on Amazon
  • Roku Streaming Stick 4K 3820R2

    Choose the HDMI stick when you want Roku tucked behind the TV.

    Check price on Amazon

Give movie night a proper button. Dim the lights, open your favourite app and let the doorbell ask the player to pause—all from Home Assistant. Choose Google TV Streamer for an Android remote dashboard and its Thread bonus, Roku Ultra for a wired Roku setup, or Streaming Stick 4K when you want the player hidden behind the TV.

Hardware specifications come from the makers; local-control behaviour and the example actions follow Home Assistant’s documentation.

The parts list contains alternative players: buy one. The lighting and doorbell examples use devices already connected to Home Assistant; our local lighting guide and local-video doorbell guide cover those pieces.

The quick picks

  • Google TV Streamer (4K): for a Google TV dashboard remote. You get Gigabit Ethernet, Android TV Remote control and a Thread border router in the same box. It’s the pick for the movie-night example below.
  • Roku Ultra 4850R: for Roku with Ethernet. Choose it when you want Roku apps, a wired connection and a rechargeable backlit remote. Its USB port also gives you a local-media route.
  • Roku Streaming Stick 4K 3820R2: for a tidy, hidden player. It plugs into HDMI and uses Wi-Fi, with the receiver built into its supplied power cable. Pick the stick when hiding the hardware matters more than adding Ethernet.
  • Already own an Apple TV? Start there. HA has a local Apple TV integration with app launching and playback controls. You can build a movie-night button without replacing a working box.

Which controls stay local?

The command path and the content service are two separate jobs. Home Assistant talks to these players on your network. Google and Roku still require online setup/accounts, and streaming apps keep their own sign-ins and internet connection.

HA integration Local control route What it gives you The useful limit
Android TV Remote Local Push Remote keys, app/deep-link launching, power and volume controls No playing/paused state; HA currently flags Netflix commands as not working
Google Cast Local Polling Content information and controls for supported apps App MediaSession support matters; combine it with Android TV Remote
Roku Local Polling Remote, app selection and media controls Playback is polled rather than pushed; enable network control on the Roku
Apple TV Local Push Media player, remote, app selection and keyboard support Complete its pairing flow and use the controls exposed by your player/app

Sources: Android TV Remote, Google Cast, Roku and Apple TV.

Google’s setup instructions list a Google Account and a network connection. Roku’s activation guide requires internet access and linking the player to a Roku account. Calling their HA controls local doesn’t turn Netflix, YouTube or an app-store login into an offline service.

Compare the hardware that changes the choice

Player Maker video support Network Connections and box contents worth noticing
Google TV Streamer (4K) 4K HDR up to 60 FPS; Dolby Vision, HDR10, HDR10+, HLG Wi-Fi 802.11ac; 10/100/1000 Mbps Ethernet USB-C power/data; 32 GB storage; HDMI cable sold separately
Roku Ultra 4850R 4K, Dolby Vision, HDR10+ Wi-Fi 6; 10/100 Ethernet USB 3.0 local media; HDMI cable and rechargeable Voice Remote Pro included
Roku Streaming Stick 4K 3820R2 4K, Dolby Vision, HDR10+ Wi-Fi 802.11ac HDMI plug; supplied USB power cable with long-range Wi-Fi receiver

Those are the current Google specifications, Roku Ultra specifications and Streaming Stick 4K specifications.

The Ethernet difference is easy to miss: Google lists Gigabit, while this Ultra lists 10/100. Choose the connection you need for your media path. A bigger network number alone doesn’t settle codec support or app behaviour; those belong to the player and the app you use.

Google also needs an HDMI cable in the shopping basket. The Ultra includes one, while the Stick plugs directly into HDMI. Use the supplied power accessories, including the Stick’s receiver cable, and finish the normal on-screen setup before adding HA.

For a NAS-based library, the two-bay NAS comparison helps you choose the server side of the arrangement. For music into an existing amp, our WiiM comparison is the more direct purchase.

Add the box to Home Assistant

Google TV Streamer

Open Settings → Devices & services → Add integration → Android TV Remote, or use its discovered entry. Complete the pairing flow with the TV visible. Add Google Cast as well if you want content information from apps that expose it.

Android TV Remote is the remote-control half of the setup. Cast can provide the media information that the remote integration lacks. Keep their entities distinct while testing so you know which one sends commands and which one reports content.

For app launching, use a documented deep link. HA currently notes that launching by package ID fails for many apps after a Google Play Store change. The example below uses its documented YouTube URL, rather than a package name or a sequence of menu taps.

The Matter-over-Thread guide covers the Streamer’s other role. Setting up its HA TV controls and commissioning Thread devices are separate steps.

Roku Ultra or Stick

Enable Control by mobile apps in Roku’s advanced settings so it accepts local network commands. Then add Roku under Settings → Devices & services, or select the discovered player.

HA’s Roku integration can launch an app with media_player.select_source, using its source name or app ID. Pick a name from that player’s actual source list. Its docs use Prime Video as an example; don’t copy a different device’s app list and hope the names match.

Roku polls playback every 10 seconds and refreshes available apps every 15 minutes. That matters when designing a dashboard: a just-pressed remote button and the displayed playback state can update at different moments.

Movie night: dim the lights and open YouTube

First get a picture on the TV: turn it on, select the Streamer’s HDMI input and finish the app sign-in. The example opens YouTube; choose the video with the remote once the app is open.

Create a Toggle helper named Movie night under Settings → Devices & services → Helpers → Create helper. Put it on your dashboard. The Toggle helper documentation explains how its on/off value can trigger and condition automations.

Create an automation with a State changed trigger: Movie night goes from Off to On. Add a light action to dim your HA-connected lights, then an Android TV Remote action to open the app.

alias: Movie night lights and app
triggers:
  - trigger: state
    entity_id: input_boolean.movie_night
    from: "off"
    to: "on"
actions:
  - action: light.turn_on
    target:
      entity_id: light.movie_lights
    data:
      brightness_pct: 15
      transition: 2
  - action: remote.turn_on
    target:
      entity_id: remote.google_tv
    data:
      activity: https://www.youtube.com
mode: single

Replace the helper, light and remote entity IDs with yours. 15% brightness and a two-second fade are example settings—pick the atmosphere you like, using a dimmable light that supports transitions. The light action reference documents those fields.

Switch Movie night off when you’re finished, then on to start the next session. Turning the helper off only disarms this mode; it doesn’t turn off the TV or restore the lights. Add your own end-of-night actions if you want that extra button.

For colourful backdrop lighting, the WLED holiday-scene guide shows how to save a preset and select it from HA. A calm preset works for film night as well as festive lights.

Doorbell: pause, do not toggle

Use your doorbell’s button/visitor signal for this automation, rather than every person detection. The Reolink integration supplies the visitor/button entity used in our doorbell guide.

Create another State changed trigger for that binary sensor, from Off to On. Add the condition that Movie night is On, then send MEDIA_PAUSE to the Android TV Remote entity.

alias: Pause movie night for the doorbell
triggers:
  - trigger: state
    entity_id: binary_sensor.doorbell_visitor
    from: "off"
    to: "on"
conditions:
  - condition: state
    entity_id: input_boolean.movie_night
    state: "on"
actions:
  - action: remote.send_command
    target:
      entity_id: remote.google_tv
    data:
      command: MEDIA_PAUSE
mode: single

MEDIA_PAUSE asks for pause; MEDIA_PLAY_PAUSE toggles between the two states. The discrete command keeps a second doorbell press from becoming a request to resume. This also avoids using a playing/paused condition that Android TV Remote cannot report. The app still has to handle that key; use the YouTube example for the first test, with the Netflix limitation from the comparison table in mind.

Choose when to resume with the remote. The automation stops the interruption from swallowing dialogue; it doesn’t decide when you’ve finished answering the door.

Already own an Apple TV?

Keep it in the running. The official Apple TV integration supports local control, app launching with media_player.select_source, a remote entity and playback actions. Follow the discovered entry and its pairing instructions, keeping the television available for the PIN prompt.

You can keep the same Movie night helper and lighting action. Replace the Google app-launch action with Apple TV’s source-selection action, and use the Apple TV player’s pause action for the doorbell. Use the app names and actions your Apple TV exposes, rather than sending it Android key names.

Give it the popcorn test

Use Run actions on each automation to check its action sequence. Then test the real triggers: turn Movie night off and on, start a video, and press the actual doorbell. Check the automation trace and confirm that a second press leaves playback paused. Test with playback already paused too, then with Movie night off.

The State changed trigger guide explains the Off-to-On trigger. A helper left on won’t launch the app again until it changes from off to on; that is what makes it a deliberate movie-night button.

Google TV Streamer for the Android remote project, Roku Ultra for wired Roku, or Streaming Stick 4K for the hidden HDMI route. Pick the player whose apps you enjoy, add its local HA controls, and give the lights and doorbell one useful job each. Head to the Home Assistant hub when you’re ready for the next project.

Sources & methodology

Where these facts come from.

Source dates are listed above.

As an Amazon Associate I earn from qualifying purchases.

YOUR NEXT PROJECT / THE GEAR

Parts list

  • Google TV Streamer (4K), Porcelain

    Choose Google TV streaming and local HA remote controls, with a Thread border router built in.

    Check price on Amazon
  • Roku Ultra 4850R

    Choose it for Roku apps, Ethernet and a rechargeable backlit remote.

    Check price on Amazon
  • Roku Streaming Stick 4K 3820R2

    Choose the HDMI stick when you want Roku tucked behind the TV.

    Check price on Amazon

Prepared by Racks & Watts.