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.




