Мультирум Sonos + интеграция с 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 | Спальня / кухня | Компактная, два твитера | Заменяет One — идеально для второй зоны |
| Arc | Комната кино/TV | Саундбар 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-стек. Для управления по локальной сети не требуется облачная подписка — HTTP API Sonos отвечает на порту 1400 и обнаруживается через mDNS (Bonjour). Home Assistant находит все устройства Sonos в локальной сети автоматически при настройке; вводить IP-адреса вручную не нужно.
Локальные API-точки
- • HTTP на порту 1400 (SOAP/UPnP)
- • Тип mDNS-сервиса: _sonos._tcp
- • Работает в изолированной LAN (интернет не нужен)
- • Подписка на события через порт 3400
- • Интеграция Sonos в HA по умолчанию использует локальный API
- • Response time: <100ms typical on same LAN
Настройка интеграции Sonos в HA
- Включите обнаружение в HA (Настройки → Интеграции)
- 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 в гостиной запускает плейлист 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 В для регулировки громкости — всё предварительно протестировано перед отправкой.
Запросить расчёт →