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

Мультирум 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 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-стек. Для управления по локальной сети не требуется облачная подписка — 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

  1. Включите обнаружение в HA (Настройки → Интеграции)
  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 в гостиной запускает плейлист 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 В для регулировки громкости — всё предварительно протестировано перед отправкой.

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