Sonos in the kitchen. Chromecast in the living room. An old Roku in the bedroom. A TV that only responds to its own remote. Sound familiar? Home Assistant brings all of them into one place. Control volume, queue music, send announcements, and build automations that make your media actually smart. No more juggling five different apps.
Jump to a section
Short answer: almost everything. Home Assistant has integrations for hundreds of media devices. Here are the most popular ones, grouped by type.
Not all speakers are created equal when it comes to Home Assistant integration. Here is what actually works well, ranked by how good the experience is.
Sonos is the gold standard for Home Assistant media players. The integration is fully local (no cloud needed), supports grouping, volume control, queue management, and even TV soundbar output. Every Sonos speaker, including the IKEA Symfonisk line, works through the same integration.
Chromecast speakers work well with Home Assistant through the Cast integration. You can play media, send TTS announcements, and control playback. The catch: casting requires a working internet connection and Google's cloud. Speaker groups created in the Google Home app show up in Home Assistant too.
For the tinkerers: build your own speakers using ESP32 boards with I2S DAC outputs. Fully local, dirt cheap (under $15 per speaker), and perfect for TTS announcement points around the house. The audio quality is not hi-fi, but for doorbell announcements and timers, it is more than enough.
Echo speakers work through the community Alexa Media Player integration (HACS). You can play music, send TTS, and control volume. But it relies on Amazon's cloud and requires periodic re-authentication. It works, but it is the least reliable option for automations.
Your TV is just another media player in Home Assistant. Turn it on, switch inputs, launch Netflix, adjust volume, and even send remote control commands. Here is how the major brands stack up.
| Brand | Power On/Off | Input Switch | Launch Apps | Volume | Remote Keys | Local |
|---|---|---|---|---|---|---|
| LG webOS | ✅ (WoL) | ✅ | ✅ | ✅ | ✅ | ✅ |
| Samsung Tizen | ✅ (WoL) | ✅ | ✅ | ✅ | ✅ | ✅ |
| Sony Bravia | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Apple TV | ✅ | N/A | ✅ | ✅ | ✅ | ✅ |
| Roku | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Fire TV | ✅ | ⚠️ | ✅ | ✅ | ✅ | ✅ |
| Android TV | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Pro tip: LG webOS TVs are the community favorite. They offer the deepest integration with full local control, reliable Wake-on-LAN for power on, and even notification display on the TV screen. If you are buying a new TV and care about Home Assistant, LG is the safest bet.
Playing the same music in every room, or different music per zone, is one of the best parts of a smart home. Home Assistant gives you two approaches.
If all your speakers are the same brand, use their built-in grouping. Sonos groups, Chromecast groups, and AirPlay groups all show up in Home Assistant as controllable entities.
media_player.join serviceBest for: single-brand setups with reliable sync.
Music Assistant is seriously good. It is a community add-on that connects to your streaming services and can group speakers from different brands together. Sonos + Chromecast + AirPlay + Snapcast + ESPHome, all playing in sync.
Best for: mixed-brand setups or anyone who wants a single music hub.
TTS is one of the most practical uses for media players in Home Assistant. Instead of checking your phone for every notification, your house just tells you what is happening.
Fast, free, runs entirely on your hardware. Multiple voices and languages. The recommended choice for privacy and speed.
Natural sounding voices. Requires a Google Cloud account and API key. Free tier covers most home use (up to 4 million characters per month).
Another cloud option with good voice quality. Free tier covers 5 million characters per month for the first year.
The simplest option. No API key needed. Works out of the box. Voice quality is basic but perfectly usable for announcements.
automation:
- alias: "Announce doorbell on all speakers"
trigger:
- platform: state
entity_id: binary_sensor.front_door_button
to: "on"
action:
- service: tts.speak
target:
entity_id: media_player.living_room_sonos
data:
message: "Someone is at the front door."
media_player_entity_id: media_player.living_room_sonosThese are not gimmicks. These are automations that people set up once and never turn off.
When your TV starts playing, dim the living room lights to 20%. When you pause or stop, bring them back up. This is the automation that makes guests say "that's so cool."
automation:
- alias: "Movie mode - dim lights when playing"
trigger:
- platform: state
entity_id: media_player.living_room_tv
to: "playing"
action:
- service: light.turn_on
target:
area_id: living_room
data:
brightness_pct: 20
transition: 3
- alias: "Movie mode - lights up when paused"
trigger:
- platform: state
entity_id: media_player.living_room_tv
from: "playing"
action:
- service: light.turn_on
target:
area_id: living_room
data:
brightness_pct: 80
transition: 2Every weekday morning when motion is detected in the kitchen, get a spoken weather update and calendar summary. Beats checking your phone while making coffee.
automation:
- alias: "Morning briefing"
trigger:
- platform: state
entity_id: binary_sensor.kitchen_motion
to: "on"
condition:
- condition: time
after: "06:30:00"
before: "09:00:00"
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
action:
- service: tts.speak
target:
entity_id: media_player.kitchen_speaker
data:
message: >
Good morning. It is currently
{{ states('sensor.outside_temperature') }} degrees.
{{ states('sensor.weather_summary') }}.
You have {{ states('sensor.calendar_events_today') }}
events today.Doorbell rings? Pause all media players in the house, announce who is at the door (if you have a Frigate camera with person detection), then resume playback after 30 seconds.
One button press (or voice command) to stop all media players, turn off TVs, and switch to quiet mode. No more falling asleep to a Netflix menu screen.
Using presence detection, automatically transfer what is playing to the speaker in whatever room you walk into. This requires room-level presence sensors (like mmWave or BLE), but when it works, it feels like magic.
Home Assistant gives you several ways to display and control media players on your dashboard.
Shows album art, playback controls, and volume. Works with any media player entity. The default choice for most setups.
A popular community card that takes up less space. Supports grouping controls, custom artwork, and speaker group management. Installed via HACS.
If you use Music Assistant, its dedicated card gives you a Spotify-like experience: browse, search, queue management, and cross-brand speaker selection.
Part of the Mushroom cards collection. Clean, minimal, and looks great on wall-mounted tablets. If you are going for a modern dashboard aesthetic, this is the one.
You do not need to set up everything at once. Here is a realistic weekend plan.
Add your existing speakers and TVs as integrations. Most will auto-discover on your network. Test basic controls: play, pause, volume.
Set up TTS (start with Piper for local) and create your first automation: lights dim when the TV plays. Add media player cards to your dashboard.
Install Music Assistant if you want multi-room audio. Create speaker groups. Add a morning briefing automation. Sit back and enjoy the music.
Control your speakers and media with voice commands using Home Assistant Assist.
30 Automation IdeasMore automation inspiration beyond media, from lighting to security.
Dashboard ExamplesBeautiful dashboard layouts to display your media players and controls.
ESPHome ProjectsBuild cheap DIY speakers and media endpoints with ESP32 boards.
Must-Have Add-onsMusic Assistant, Piper TTS, and other add-ons that enhance your media setup.
Starter Kit GuideNew to Home Assistant? Start here for hardware and setup basics.
Our free scan checks your current devices and tells you exactly which ones work with Home Assistant, what you will need, and how to set them up.
Scan Your Devices Free