Sonos · KNX · Home Assistant · 8 мин чтения

Интеграция 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 AtmosHDMI 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

  1. Включите обнаружение в HA (Settings → Integrations)
  2. Sonos devices appear automatically under "Discovered"
  3. Click "Add" — no credentials needed
  4. Каждая колонка Sonos становится сущностью media_player
  5. Настройте имена зон в соответствии с метками комнат
  6. Интеграция 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.35

2. '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: music

3. '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: false

4. Срабатывание тревоги 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: music

5. Гостевой дверной звонок → звонок на кухне + в гостиной

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: music

Sonos → 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 В для регулировки громкости — всё предварительно протестировано перед отгрузкой.

Запросить расчёт →
Загрузка ...
Наверх