Sonos Audio Multisala + Integración KNX a través de Home Assistant
Sonos is the de-facto standard for multi-room audio in European KNX smart homes — not because it speaks KNX, but because it doesn't need to. Home Assistant acts as the bridge, translating KNX group address telegrams into Sonos local API calls without any cloud dependency.
Selección de productos Sonos para proyectos KNX
Elegir el dispositivo Sonos adecuado para cada zona determina la calidad de audio, la complejidad de instalación y el método de integración. La siguiente tabla cubre todos los productos Sonos actuales relevantes para instalaciones KNX residenciales y hoteleras.
| Modelo | Mejor zona | Característica clave | Notas |
|---|---|---|---|
| Era 300 | Sala de estar / espacio abierto | Audio espacial (Dolby Atmos) | Mejor altavoz independiente para habitaciones grandes |
| Era 100 | Dormitorio / cocina | Compacto, doble tweeter | Reemplaza a One – zona secundaria ideal |
| Arc | Sala de TV / cine | Barra de sonido Dolby Atmos | HDMI eARC – se empareja con el TV mediante relé KNX |
| Beam G2 | Zona TV compacta | Barra de sonido, HDMI ARC | Habitaciones pequeñas; buen escenario sonoro |
| Move 2 | Terraza / portátil | Batería 24h, IP56, Wi-Fi + BT | No se necesitan altavoces pasivos en exteriores |
| Roam | Zona jardín / piscina | IP67, batería 10h, base de carga | Realmente impermeable – para piscina o jardín |
| Amp | Zonas de altavoces pasivos | 2× 125W, Ethernet, entrada de línea | Impulsa altavoces empotrados de techo 8Ω existentes |
Cómo funciona la API local de Sonos
Sonos ejecuta una pila UPnP local en cada dispositivo. No se requiere suscripción en la nube para el control por LAN: la API HTTP de Sonos responde en el puerto 1400 y es detectable mediante mDNS (Bonjour). Home Assistant encuentra automáticamente todos los dispositivos Sonos en la LAN durante la configuración; no es necesario ingresar direcciones IP manualmente.
Puntos finales de la API local
- • HTTP en el puerto 1400 (SOAP/UPnP)
- • Tipo de servicio mDNS: _sonos._tcp
- • Funciona en LAN aislada (sin necesidad de Internet)
- • Suscripción a eventos a través del puerto 3400
- • La integración HA Sonos usa la API local por defecto
- • Response time: <100ms typical on same LAN
Configuración de la integración HA Sonos
- Habilitar el descubrimiento en HA (Configuración → Integraciones)
- Sonos devices appear automatically under "Discovered"
- Click "Add" — no credentials needed
- Cada altavoz Sonos se convierte en una entidad media_player
- Configure los nombres de las zonas para que coincidan con las etiquetas de las habitaciones
- La integración KNX se instala por separado (misma instancia de HA)
KNX → Sonos: ejemplos de automatización
Las siguientes automatizaciones cubren los casos de uso más comunes de Sonos activados por KNX en proyectos residenciales. Todas utilizan el formato de automatización YAML de Home Assistant y requieren que las integraciones KNX y Sonos estén activas en HA.
1. KNX binario ON → Sonos Sala de estar reproducir lista de reproducción de Spotify
automation:
- alias: "KNX Living Room audio ON"
trigger:
- platform: event
event_type: knx_event
event_data:
destination: "1/0/0" # KNX binary DPT 1.001
value: true
action:
- service: media_player.play_media
target:
entity_id: media_player.living_room
data:
media_content_id: "spotify:playlist:37i9dQZF1DX4sWSpwq3LiO"
media_content_type: music
- service: media_player.volume_set
target:
entity_id: media_player.living_room
data:
volume_level: 0.352. 'Dinner' KNX scene → Sonos volume 30%, play Jazz radio
automation:
- alias: "KNX Dinner scene → Jazz radio"
trigger:
- platform: event
event_type: knx_event
event_data:
destination: "4/0/2" # KNX scene DPT 18.001, scene value 4
action:
- service: media_player.volume_set
target:
entity_id: media_player.dining_room
data:
volume_level: 0.30
- service: media_player.play_media
target:
entity_id: media_player.dining_room
data:
media_content_id: "https://jazz24.org/jazz24-256k.mp3"
media_content_type: music3. 'Departure' KNX binary → pause all Sonos + cut TV power
automation:
- alias: "KNX Departure → pause audio + TV off"
trigger:
- platform: event
event_type: knx_event
event_data:
destination: "4/0/9" # Departure binary DPT 1.001
value: true
action:
- service: media_player.media_pause
target:
entity_id: all # pause every Sonos speaker
- service: knx.send
data:
address: "2/0/5" # KNX relay: TV power off
payload: false4. Disparo de alarma Ajax → todas las zonas reproducen alarma al 100%
automation:
- alias: "Ajax alarm → Sonos full-volume alarm"
trigger:
- platform: event
event_type: knx_event
event_data:
destination: "3/0/0" # Ajax alarm zone, DPT 1.001
value: true
action:
- service: media_player.volume_set
target:
entity_id: all
data:
volume_level: 1.0
- service: media_player.play_media
target:
entity_id: all
data:
media_content_id: "http://192.168.1.10/media/alarm.mp3"
media_content_type: music5. Timbre de invitado → sonido en cocina y sala de estar
automation:
- alias: "Doorbell → Sonos chime"
trigger:
- platform: event
event_type: knx_event
event_data:
destination: "0/0/10" # Doorbell binary DPT 1.001
value: true
action:
- service: media_player.play_media
target:
entity_id:
- media_player.kitchen
- media_player.living_room
data:
media_content_id: "http://192.168.1.10/media/chime.mp3"
media_content_type: musicSonos → KNX: enviar la reproducción actual a la pantalla Gira
Las pantallas táctiles Gira X1 y G1 muestran valores de cadena KNX DPT 16.001. La automatización siguiente envía el nombre del artista y el título actual a una dirección de grupo KNX cada vez que cambia el medio en reproducción – así el panel de la habitación siempre muestra lo que se está reproduciendo.
Reproducción actual → dirección de grupo KNX DPT 16.001
automation:
- alias: "Sonos now-playing → KNX string"
trigger:
- platform: state
entity_id: media_player.living_room
attribute: media_title
action:
- service: knx.send
data:
address: "1/0/50" # DPT 16.001 — 14-char string max
payload: >
{{ state_attr('media_player.living_room', 'media_artist')
| truncate(6, True, '') }} -
{{ state_attr('media_player.living_room', 'media_title')
| truncate(6, True, '') }}KNX DPT 16.001 admite un máximo de 14 caracteres (codificación ISO 8859-1). Trunque el artista y el título para que quepan. Para cadenas más largas, use DPT 16.000 (ASCII) u objetos de visualización propietarios de Gira si están disponibles en el firmware de la pantalla táctil.
Agrupación Sonos desde KNX
When a 'Party' KNX scene fires, all speakers should play the same source in sync. Thesonos.joinHA agrupa los altavoces bajo un coordinador (la primera entidad) en milisegundos.
Escena KNX Party → grupo salón + cocina
automation:
- alias: "KNX Party scene → Sonos group"
trigger:
- platform: event
event_type: knx_event
event_data:
destination: "4/0/5" # Party scene DPT 18.001
action:
- service: sonos.join
data:
master: media_player.living_room
entity_id:
- media_player.kitchen
- media_player.dining_room
- media_player.terrace
- service: media_player.volume_set
target:
entity_id: media_player.living_room
data:
volume_level: 0.50Control de volumen multizona desde KNX
KNX envía el volumen como un flotante de 2 bytes (DPT 9.001, rango 0–100) o un paso relativo de 1 byte (DPT 5.001, rango 0–255 → 0–100%). Ambos son compatibles:
Volumen KNX → Sonos (absoluto + relativo)
automation:
- alias: "KNX absolute volume → Sonos"
trigger:
- platform: event
event_type: knx_event
event_data:
destination: "1/0/20" # DPT 9.001 float, 0–100
action:
- service: media_player.volume_set
target:
entity_id: media_player.living_room
data:
volume_level: "{{ trigger.event.data.value | float / 100 }}"
- alias: "KNX relative volume step → Sonos"
trigger:
- platform: event
event_type: knx_event
event_data:
destination: "1/0/21" # DPT 5.001 relative, up/down
action:
- choose:
- conditions:
- condition: template
value_template: "{{ trigger.event.data.value > 128 }}"
sequence:
- service: media_player.volume_up
target:
entity_id: media_player.living_room
- conditions:
- condition: template
value_template: "{{ trigger.event.data.value <= 128 }}"
sequence:
- service: media_player.volume_down
target:
entity_id: media_player.living_roomBiblioteca musical local: NAS, Plex, música de ascensor
Sonos reproduce desde cualquier recurso compartido SMB o servidor Plex/Jellyfin en la LAN sin acceso a Internet. Esto es particularmente útil para música de fondo en el vestíbulo de un hotel, anuncios en salas de conferencias o música de ascensor donde una lista de reproducción fija debe reproducirse 24/7 independientemente de la conectividad con Spotify.
Biblioteca musical NAS
- • Sonos → Configuración → Agregar biblioteca de música
- • Explorar recurso compartido SMB en NAS
- • Indexación: automática, ~1h por cada 10.000 pistas
- • Reproducción: LAN directa, sin nube
Plex Media Server
- • Instalar Plex en NAS o servidor
- • Agregar Plex como servicio de música de Sonos
- • HA: media_player.play_media con URI plex://
- • Funciona sin conexión si el servidor Plex está en la LAN
Hotel / uso comercial
- • Música sin licencia: Epidemic Sound, Artlist
- • Descargar pistas al NAS — sin costo de streaming
- • El horario KNX activa la lista de reproducción por zona
- • Diferentes zonas: lobby, bar, restaurante, spa
Integración de audio en su panel KNX
Diseñamos paneles con circuitos de alimentación Sonos Amp, salidas de relé KNX para conmutación de amplificadores y salidas analógicas 0-10V para control de volumen, todo probado antes de la entrega.
Solicitar presupuesto →