Интеграция Sonos Multi-room Audio + KNX через 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.
Выбор продуктов Sonos для проектов KNX
Выбор правильного устройства Sonos для каждой зоны определяет качество звука, сложность установки и метод интеграции. Таблица ниже охватывает все текущие продукты Sonos, актуальные для жилых и гостиничных установок KNX.
| Модель | Лучшая зона | Ключевая особенность | Примечания |
|---|---|---|---|
| Era 300 | Гостиная / открытая планировка | Пространственный звук (Dolby Atmos) | Лучшая отдельная колонка для больших комнат |
| Era 100 | Спальня / кухня | Компактная, двойные твитеры | Replaces One — идеальная вторичная зона |
| Arc | Комната ТВ / кинотеатр | Саундбар Dolby Atmos | HDMI eARC — связь с ТВ через реле KNX |
| Beam G2 | Компактная ТВ-зона | Саундбар, HDMI ARC | Небольшие помещения; хорошая звуковая сцена |
| Move 2 | Терраса / портативный | Батарея 24 ч, IP56, Wi-Fi + BT | На улице не нужны пассивные колонки |
| Roam | Зона сада / бассейна | IP67, батарея 10 ч, зарядная станция | Полная водонепроницаемость — для бассейна или сада |
| Amp | Зоны с пассивными колонками | 2×125 Вт, Ethernet, линейный вход | Управляет существующими потолочными колонками 8 Ом |
Как работает локальный API Sonos
Sonos запускает локальный стек UPnP на каждом устройстве. Для управления по LAN не требуется облачная подписка — HTTP API Sonos отвечает на порту 1400 и обнаруживается через mDNS (Bonjour). Home Assistant находит все устройства Sonos в LAN автоматически во время настройки; IP-адреса вводить вручную не нужно.
Локальные конечные точки API
- • HTTP на порту 1400 (SOAP/UPnP)
- • Тип службы mDNS: _sonos._tcp
- • Работает в изолированной LAN (интернет не требуется)
- • Подписка на события через порт 3400
- • Интеграция HA Sonos по умолчанию использует локальный API
- • Response time: <100ms typical on same LAN
Настройка интеграции HA Sonos
- Включите обнаружение в HA (Settings → Integrations)
- Sonos devices appear automatically under "Discovered"
- Click "Add" — no credentials needed
- Каждая колонка Sonos становится сущностью media_player
- Настройте имена зон в соответствии с метками комнат
- Интеграция KNX устанавливается отдельно (тот же экземпляр HA)
KNX → Sonos: примеры автоматизации
Следующие автоматизации охватывают наиболее распространенные сценарии использования Sonos, управляемого через KNX, в жилых проектах. Все используют формат автоматизации YAML Home Assistant и требуют активных интеграций KNX и Sonos в HA.
1. KNX двоичный ВКЛ → Sonos Living Room воспроизвести плейлист 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. Срабатывание тревоги Ajax → все зоны воспроизводят тревогу на 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. Гостевой дверной звонок → звонок на кухне + в гостиной
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: передача текущего воспроизведения на дисплей Gira
Сенсорные экраны Gira X1 и G1 отображают строковые значения KNX DPT 16.001. Автоматизация ниже передает текущее имя исполнителя и название трека на групповой адрес KNX при каждом изменении воспроизводимого медиа — так что панель в комнате всегда показывает, что играет.
Текущее воспроизведение → групповой адрес 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 поддерживает максимум 14 символов (кодировка ISO 8859-1). Обрежьте исполнителя и название, чтобы уместиться. Для более длинных строк используйте DPT 16.000 (ASCII) или проприетарные объекты отображения Gira, если они доступны в прошивке сенсорного экрана.
Группировка Sonos из KNX
When a 'Party' KNX scene fires, all speakers should play the same source in sync. Thesonos.joinHA группирует колонки под координатором (первый объект) в течение миллисекунд.
Сцена KNX Вечеринка → группа гостиная + кухня
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.50Многокомнатное управление громкостью из KNX
KNX отправляет громкость либо как 2-байтовое число с плавающей точкой (DPT 9.001, диапазон 0–100), либо как 1-байтовый относительный шаг (DPT 5.001, диапазон 0–255 → 0–100%). Поддерживаются оба варианта:
Громкость KNX → Sonos (абсолютная + относительная)
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_roomЛокальная музыкальная библиотека: NAS, Plex, музыка в лифте
Sonos воспроизводит с любого SMB-ресурса или сервера Plex/Jellyfin в локальной сети без доступа в интернет. Это особенно полезно для фоновой музыки в холле отеля, объявлений в конференц-зале или музыки в лифте, где фиксированный плейлист должен играть 24/7 независимо от подключения к Spotify.
Музыкальная библиотека NAS
- • Sonos → Настройки → Добавить музыкальную библиотеку
- • Обзор SMB-ресурса на NAS
- • Индексация: автоматическая, ~1 час на 10 000 треков
- • Воспроизведение: напрямую по LAN, без облака
Plex Media Server
- • Установите Plex на NAS или сервер
- • Добавьте Plex как музыкальный сервис Sonos
- • HA: media_player.play_media с URI plex://
- • Работает офлайн, если сервер Plex в локальной сети
Гостиничное / коммерческое использование
- • Музыка без лицензионных отчислений: Epidemic Sound, Artlist
- • Скачивайте треки на NAS — без затрат на стриминг
- • Расписание KNX запускает плейлисты по зонам
- • Разные зоны: холл, бар, ресторан, спа
Связанные руководства
Интеграция аудио в ваш щит KNX
Мы проектируем щиты с цепями питания Sonos Amp, релейными выходами KNX для коммутации усилителей и аналоговыми выходами 0-10 В для регулировки громкости — всё предварительно протестировано перед отгрузкой.
Запросить расчёт →