Smart Home AssistantNewsletter

Home Assistant Google Cast Guide: Control Every Speaker and Screen

SepehrBy Sepehr· 19/06/2026· 6 min read
Home Assistant Google Cast Guide: Control Every Speaker and Screen

Google Cast turns every Chromecast dongle, Google Nest speaker, Nest Hub display, and Google TV into a first-class Home Assistant media player. Once the integration is active you can push audio, text-to-speech announcements, and streaming content from a single automation — no third-party add-ons, no HACS, no tinkering with API keys. If you already have a working Home Assistant installation, you are roughly five minutes away from your first multi-room announcement.

What the Google Cast Integration Does

The official Google Cast integration (formerly called Cast) discovers Cast-capable devices on your local network via mDNS and exposes each one as a media_player entity. From that entity you can:

  • Play or pause any active stream
  • Control volume and mute state
  • Push audio files, HLS streams, or TTS audio directly to the device
  • Read the currently playing title, app, and artwork back into dashboards or automations
  • Create speaker groups so multiple devices behave as one

The integration is maintained by the Home Assistant core team and ships with every installation. It requires no cloud account beyond the normal Google Cast mDNS broadcast that your devices already emit.

Supported Devices

Any device that supports the Google Cast protocol works with this integration, including:

  • Chromecast (all generations, Chromecast with Google TV)
  • Google Nest Audio and Google Nest Mini
  • Google Nest Hub and Nest Hub Max
  • Google Home (original and Mini)
  • Android TV and Google TV devices with Cast support
  • Some third-party speakers and soundbars with Chromecast built-in (Sonos, JBL, Bang & Olufsen, LG)

All devices must be on the same local network (or VLAN with mDNS forwarding enabled) as your Home Assistant instance. For a broader look at the Nest ecosystem, see our Google Nest Hub review.

Setting Up the Google Cast Integration

The integration auto-discovers Cast devices so setup takes only a few clicks.

Step 1 — Open Integrations

Navigate to Settings → Devices & Services → Integrations and click Add Integration. Search for Google Cast and select it.

Step 2 — Complete Discovery

Home Assistant scans your network for Cast devices. Discovered devices appear immediately — click Submit to add them. If no devices appear, confirm that mDNS traffic is not blocked between your HA host and the devices; on a Unifi setup, enable mDNS Querier under your network settings.

Step 3 — Verify Entities

Go to Settings → Devices & Services → Google Cast. Each physical device will have one media_player entity. The entity ID follows the pattern media_player.living_room_speaker based on the device's friendly name in the Google Home app. Rename devices in the Google Home app first, then reload the integration to pick up clean entity IDs.

Step 4 — Add to a Dashboard

Add a Media Control card to any Lovelace dashboard and point it at your new media_player entity. You will see current playback state, volume slider, and transport controls.

Playing Media with media_player.play_media

The media_player.play_media service is the workhorse for sending content to a Cast device. The minimum fields are entity_id, media_content_id (a URL or identifier), and media_content_type.

service: media_player.play_media
target:
  entity_id: media_player.living_room
data:
  media_content_id: "https://www.soundjay.com/misc/sounds/bell-ringing-05.mp3"
  media_content_type: music

For streaming radio, point media_content_id at an M3U8 or direct MP3 stream URL. Home Assistant's Media Browser (accessible from the sidebar) can browse local media folders, Spotify, and radio stations — select a track and press Play On to populate the correct IDs automatically, then copy them into your automation YAML.

Text-to-Speech Announcements

Text-to-speech (TTS) is where Google Cast really earns its place in a home automation stack. You can push spoken notifications to any speaker — doorbell alerts, school run reminders, dishwasher-finished pings — without any extra hardware.

Basic TTS Call

Home Assistant ships with tts.google_translate_say (using Google's free Translate TTS endpoint). Call it with an entity target and a message:

service: tts.google_translate_say
target:
  entity_id: media_player.living_room
data:
  message: "Someone is at the front door."
  language: en-GB

Doorbell Announcement Automation

Combine a doorbell binary sensor trigger with a TTS call and a brief volume boost:

alias: Doorbell announcement
description: Announce doorbell press on all speakers
trigger:
  - platform: state
    entity_id: binary_sensor.front_door_doorbell
    to: "on"
condition: []
action:
  - service: media_player.volume_set
    target:
      entity_id: media_player.living_room
    data:
      volume_level: 0.6
  - service: tts.google_translate_say
    target:
      entity_id: media_player.living_room
    data:
      message: "Someone is at the front door."
      language: en-GB
mode: single

This automation lives entirely in Home Assistant — no IFTTT, no cloud relay. For a deeper dive into building automations, read our Home Assistant automations guide.

Casting Spotify and the Media Browser

If you have the Spotify integration configured in Home Assistant, you can target a Cast device as the playback destination:

service: media_player.play_media
target:
  entity_id: media_player.kitchen_display
data:
  media_content_id: "spotify:playlist:37i9dQZF1DXcBWIGoYBM5M"
  media_content_type: "music"

Alternatively, open the Media Browser from the Home Assistant sidebar, browse to Spotify (or any connected source), select a track or playlist, and click Play On to pick the target device. This is the quickest way to discover the correct media_content_id and media_content_type values for unfamiliar content types before hard-coding them in YAML.

Grouping Chromecast Devices for Multi-Room Audio

Home Assistant can create and dissolve dynamic speaker groups on the fly. Use media_player.join to merge several Cast devices into a synchronised group:

service: media_player.join
target:
  entity_id: media_player.living_room
data:
  group_members:
    - media_player.kitchen
    - media_player.bedroom

The target entity becomes the group leader; the listed entities follow. To send audio to the whole house, call tts.google_translate_say targeting the leader. When finished, dissolve the group with media_player.unjoin:

service: media_player.unjoin
target:
  entity_id: media_player.living_room

You can also create permanent groups in the Google Home app. Those groups appear as additional media_player entities in Home Assistant and do not require a media_player.join call each time.

Automation Ideas

Google Cast unlocks a long list of practical automations beyond doorbell alerts:

  • Morning briefing — trigger at a weekday alarm time, speak the weather forecast and calendar summary via TTS across the bedroom and kitchen speakers.
  • Arrive home — detect your phone on the Wi-Fi network and start a welcome playlist on the living room speaker.
  • Washing machine finished — pair with a smart plug energy sensor; when power drops below 5 W, announce “The washing machine has finished”.
  • Bedtime wind-down — at 22:00 lower all speaker volumes gradually over 30 minutes, then mute.
  • Fire alarm relay — if a smoke sensor trips, pause all media and broadcast a loud evacuation message.

These fit naturally alongside other Google integrations. If you use voice control as well, the Home Assistant Google Assistant guide covers linking your account so you can also control devices by voice.

Troubleshooting Tips

Devices Not Discovered

The most common cause is mDNS being blocked between VLANs. If your Cast devices are on an IoT VLAN, your router or switch must forward mDNS packets to the HA host. Enable an mDNS repeater or Avahi daemon on the HA machine.

TTS Audio Not Playing

Home Assistant must be reachable by the Cast device over HTTP so the device can fetch the synthesised audio file. Check that http integration settings use the correct base_url (the local IP or hostname of your HA instance) and that port 8123 is not blocked by a host firewall.

Playback Interrupted After a Few Seconds

This usually indicates a network buffering issue or an incompatible media type. Try setting media_content_type to audio/mp3 explicitly, or host the audio file on a reliable local server rather than an external URL.

Entity IDs Look Wrong

Entity IDs are derived from the device's name in the Google Home app at the time of discovery. Rename in Google Home, then reload the Google Cast integration (Settings → Integrations → Google Cast → Reload) to regenerate clean entity IDs.

Conclusion

Google Cast is one of the most practical built-in integrations in Home Assistant. From a single afternoon's setup you gain spoken notifications, multi-room music, and a foundation for dozens of audio automations — all running locally on your network without any cloud dependency for the HA side. Start with the doorbell announcement YAML above, get comfortable with media_player.play_media, and build outwards from there.

Related: Home Assistant vs Google Home UK, Google Nest Audio review UK, and best Home Assistant add-ons.

Frequently asked questions

Does Home Assistant Google Cast require HACS or any add-ons?
No. Google Cast is a built-in Home Assistant integration. Navigate to Settings → Devices & Services → Add Integration and search for Google Cast — no HACS, custom components, or external add-ons are needed.
Which devices work with Google Cast in Home Assistant?
Any Cast-capable device works, including all Chromecast generations, Google Nest Mini, Nest Audio, Nest Hub, Nest Hub Max, Google TV devices, and many third-party speakers with Chromecast built-in such as Sonos, JBL, and LG soundbars.
How do I send a text-to-speech announcement to all my speakers at once?
Use media_player.join to group your Cast devices under a leader entity, then call tts.google_translate_say targeting the leader. All grouped devices will play the announcement in sync. You can also create permanent groups in the Google Home app, which appear as additional media_player entities in Home Assistant.
Why are my Chromecast devices not showing up in Home Assistant?
The most common reason is mDNS traffic being blocked between network segments. If your Cast devices are on a separate IoT VLAN, enable an mDNS repeater or Avahi daemon so discovery packets reach your Home Assistant host. Also confirm both are on the same subnet or that mDNS forwarding is active on your router.

Sources

Sources verified 2026-06-19

  1. Home Assistant — Google Cast Integration
  2. Home Assistant — media_player.play_media Service
  3. Home Assistant — TTS Google Translate Integration
  4. Home Assistant — media_player.join Service
  5. Google — Google Cast SDK — Supported Devices
Sepehr

Written by

Sepehr

Head of Engineering with 15+ years of software experience and a decade of hands-on smart home tinkering. I run everything I write about — Home Assistant, Zigbee2MQTT, Frigate, and a full self-hosted homelab. Independent coverage, no brand deals, UK-focused.

LinkedIn →

Related reading