Sonos + Home Assistant
Sonos speakers integrate with Home Assistant via local network discovery. Control playback, create announcements, and manage multi-room audio without any cloud dependency.
What You Need
- Sonos speaker (S2 firmware recommended)
- Sonos app (for initial setup and UPnP setting)
- Home Assistant on the same network
- TCP ports 1400 and 1443 accessible
Supported Devices
All Sonos S2-compatible devices are supported:
Speakers
- Era 100, Era 300
- Five, One (Gen 1/2)
- Roam 2, Move 2
- IKEA Symfonisk
Soundbars & Subs
- Arc Ultra, Arc, Beam (Gen 2)
- Ray
- Sub 4, Sub Mini
- Amp
Setup Steps
Step 1: Enable UPnP in Sonos App
- 1
Open Sonos app
Launch the Sonos app on your phone.
- 2
Navigate to settings
Go to Account → Privacy and Security
- 3
Enable UPnP
Toggle on the UPnP setting to allow local discovery.
Step 2: Add Integration in Home Assistant
- 1
Add the integration
Settings → Devices & Services → Add Integration → Search "Sonos"
- 2
Speakers auto-discovered
Your Sonos speakers will be discovered automatically on the network.
- 3
Restart if needed
If not all speakers appear, restart Home Assistant after initial setup.
Available Entities
| Entity Type | Description |
|---|---|
| Media Player | Play, pause, volume, source, skip |
| Sensors | Battery (Roam/Move), audio format, favorites |
| Switches | Alarms, status light, touch controls |
| Numbers | Bass, treble, subwoofer gain, audio delay |
| Soundbar Options | Night sound, speech enhancement, surround settings |
Key Features
TTS Announcements
Use the announce feature to overlay messages on current playback:
service: media_player.play_media
target:
entity_id: media_player.living_room
data:
media_content_id: media-source://tts/cloud?message=Dinner+is+ready
media_content_type: music
announce: true
extra:
volume: 0.6 Speaker Grouping
Group and ungroup speakers for synchronized playback:
# Join speakers
service: media_player.join
target:
entity_id: media_player.living_room
data:
group_members:
- media_player.kitchen
- media_player.bedroom
# Ungroup
service: media_player.unjoin
target:
entity_id: media_player.kitchen Snapshot & Restore
Save and restore playback state (useful for announcements):
# Save current state
service: sonos.snapshot
target:
entity_id: media_player.living_room
data:
with_group: true
# Restore after announcement
service: sonos.restore
target:
entity_id: media_player.living_room
data:
with_group: true Network Requirements
- TCP Port 1400: Push-based event updates (falls back to 1401-1500 if blocked)
- TCP Port 1443: Required for TTS and announcements
- Same network: Home Assistant and Sonos should be on the same VLAN
- Note: If ports are blocked, the integration falls back to polling (slower)
Frequently Asked Questions
Does Sonos work offline with Home Assistant?
Yes, Sonos works offline for local playback control. The integration uses local network discovery via UPnP, so you can play, pause, adjust volume, and group speakers without internet. However, streaming services like Spotify or Apple Music require internet, and the Sonos app needs cloud connectivity for initial setup.
Can I use text-to-speech with Sonos in Home Assistant?
Absolutely! Sonos supports TTS announcements via the media_player.play_media service with announce: true. This overlays announcements on current playback and automatically restores music when done. You can set custom volume levels for announcements and use any TTS engine configured in Home Assistant.
Does Sonos require a subscription for Home Assistant?
No subscription is required for the Home Assistant integration. All local control features work without any fees. Sonos itself doesn't require a subscription for basic functionality. Any subscriptions you might have (like Spotify Premium or Sonos Radio HD) are separate from Home Assistant integration.
Can I group Sonos speakers through Home Assistant?
Yes! Use the media_player.join service to create speaker groups and media_player.unjoin to separate them. You can also use sonos.snapshot and sonos.restore to save and restore group configurations. This enables automations like 'party mode' that groups all speakers, or room-specific groupings based on time of day.
What happens if Sonos changes their API?
Sonos uses a local UPnP-based API for Home Assistant integration, which is stable and well-documented. Unlike cloud-dependent integrations, local control methods rarely break. Sonos has maintained backward compatibility for years. If changes occur, the Home Assistant community typically updates the integration quickly since Sonos is one of the most popular audio platforms.
Sources
Related Guides
Need Help with Your Sonos Setup?
Our team can configure your Sonos speakers with Home Assistant, set up whole-home audio automations, and create custom TTS announcements.
Get a Free Quote