Протокол XPL - XPL Protocol


xPL это открытый протокол, предназначенный для управления и мониторинга Домашняя автоматизация устройств. Основная цель разработки xPL - предоставить богатый набор функций и возможностей при сохранении элегантной несложной структуры сообщений. Протокол включает в себя возможности полного обнаружения и автоматической настройки, которые поддерживают архитектуру «plug-n-play», что необходимо для обеспечения хорошего взаимодействия с конечным пользователем.

xPL извлекает выгоду из строго определенной структуры сообщений, необходимой для обеспечения того, чтобы устройства с поддержкой xPL от разных поставщиков могли обмениваться данными без риска несовместимости.[1]

Связь между приложениями xPL в локальной сети (LAN) использует UDP в порту 3865.[2]

Разработка xPL в основном происходила в сообществе DIY, где пользователи писали программное обеспечение для подключения к существующим протоколам и устройствам. Некоторые примеры включают мосты к другим протоколам домашней автоматизации, таким как Z-волна[3] и UPB.[4] На коммерческой основе программное обеспечение Logitech SqueezeCenter для Соковыжималка поддерживает xPL.[5]

Архитектура

Различные устройства обмениваются данными с помощью xPL в локальной сети. Все они транслируют свои сообщения наЗарегистрированный IANA порт UDP 3865 для других устройств.

Поскольку в современных операционных системах только одна программа может прослушивать данный порт, существует необходимость в концентраторе, пересылающем сообщения всем устройствам на одной машине. Устройства регистрируются в концентраторе на частном UDP-порту, а затем концентратор пересылает все входящее сообщение на эти частные порты.

ЦЕНТР

Концентратор - это первый компонент xPL, необходимый на машине, на которой работают устройства xPL.

Все устройства отправляют сообщение сердцебиения к концентратору на регулярной основе (обычно 5 минут). При отключении они также могут отправить специальное сообщение об окончании тактового сигнала, чтобы концентратор излучал их из своего списка.

Концентратор пересылает все сообщения на каждое устройство в своем списке. Нет фильтрации сообщений: выполняется слепое перераспределение всех сообщений.

Устройство XPL

Приложения добавляют функциональность к решению домашней автоматизации, такую ​​как управление освещением, восход / заход солнца, информация о погоде и т. Д.

Устройство выбирает свободный порт UDP и отправляет контрольные сообщения с этого порта на концентратор наЗарегистрированный IANA порт UDP 3865.

С этого момента устройства прослушивают сообщения на своем частном порте, но отправляют сообщения как широковещательные на порт xPL 3865. типы сообщений являются одними из следующих:

  • команда, предназначенный для управления другими устройствами
  • статус, как правило, как ответ на команду
  • спусковой крючок, используется для уведомления об изменении состояния устройства

Обширный список Приложения можно скачать из сети.Туоклиц также предоставляются пользователям, желающим разрабатывать свои собственные устройства.

Мост

Предполагается, что ваш сетевой протокол является UDP / IP но это ни в коем случае не является обязательным требованием. Если вы хотите, чтобы ваше сообщение XPL передавалось с одной транспортной среды на другую (UDP / IP на RS232 например) тогда вам понадобится мост.

Правила

В Windows xPL HAL обрабатывает входящие сообщения xPL и выполняет сценарии для выполнения широкого спектра задач. Конфигурация выполняется либо через Windows-менеджер, либо через браузер. xPL HAL также включает xPL Configuration Manager.

В Linux или Mac OS xpl-central отслеживает все сообщения xPL и может запускать другие сообщения на основе набора правил, хранящихся в файле XML.

Средства передачи

Протокол xPL может работать с различными средами передачи, включая Ethernet, RS232 и RS485.

Ethernet

Все устройства xPL транслируют свои сообщения через UDP, на Зарегистрированный порт IANA 3865.

Но поскольку только одно приложение может одновременно прослушивать данный порт, протокол xPL использует концентратор для повторной передачи всех широковещательных сообщений различным приложениям на одной машине. Приложения подписываются на концентратор на свободном порту, отправляя контрольные сообщения. который определяет порт, который они слушают. В свою очередь, концентратор пересылает все полученные широковещательные сообщения xPL каждому приложению в своем списке.

Протокол

Lite на проводе, по дизайну

Пример

Сообщения xPL основаны на строках, каждая строка заканчивается символом перевода строки (ASCII: 10 десятичный). Ниже приведен пример типичного сообщения xPL:

xpl-cmnd {hop = 1source = xpl-xplhal.myhousetarget = acme-cm12.server} x10.basic {command = dimdevice = a1level = 75}

Структура сообщения

Все сообщения состоят из:

  • Тип сообщения (xpl-cmnd, xpl-stat или же xpl-trig)
  • Блок заголовка в фигурных скобках, содержащий:
    • хмель =п, счетчик переходов, который увеличивается каждый раз, когда сообщение xPL передается из одной физической сети в другую.
    • источник =vendor_id-идентификатор устройства.instance_id, который служит для идентификации отправителя сообщения
    • цель =vendor_id-идентификатор устройства.instance_id, который служит для определения места назначения сообщения
  • Схема сообщения в формате учебный класс.тип
  • Тело сообщения в фигурных скобках, содержащее имя=ценить пары[6]

В блоке заголовка целевое имя заменяется символом подстановки «*» для широковещательных сообщений. Это относится к сообщениям tigger и статусу.

Схема сообщения

xPL использует четко определенные схемы сообщений чтобы гарантировать разумное взаимодействие приложений от разных поставщиков. Схемы сообщений являются расширяемыми и определяют не только элементы, которые должны присутствовать в сообщении, но также порядок, в котором они появляются.

Это позволяет простым устройствам и приложениям легче анализировать сообщения.

Все существующие схемы сообщений можно найти на домашняя страница проекта xPL Разработчикам, желающим создать новую схему, предлагается сделать это.[7]

Смотрите также

Рекомендации

  1. ^ «О проекте». Веб-сайт проекта xPL. Получено 23 апреля 2012.
  2. ^ Lansell, Mal. «xPL Primer». Веб-сайт xPL Monkey. Получено 23 апреля 2012.
  3. ^ Lansell, Mal. "Страница xPLMonkey Z-wave". Веб-сайт xPL Monkey. Получено 23 апреля 2012.
  4. ^ Дюпри, Джеральд Р. младший (5 июля 2008 г.). «UPB4Java V1.2c - Java API для протокола автоматизации UPB». Веб-сайт xPL4Java. Получено 23 апреля 2012.CS1 maint: несколько имен: список авторов (ссылка на сайт)
  5. ^ "Страница SqueezeboxWiki xPL". SqueezeboxWiki. Получено 23 апреля 2012.
  6. ^ «Документ спецификации XPL». Веб-сайт проекта xPL. 3 августа 2011 г.. Получено 23 июля 2015.
  7. ^ «Документация проекта xPL». Веб-сайт проекта xPL. 3 августа 2011 г.. Получено 23 июля 2015.

внешняя ссылка

Официальный

Разработка

Другой