Модуль LG webOS TV
Описание
Модуль предназначен для интеграции смарт-телевизоров LG на платформе webOS.
Возможности модуля:
- ручное добавление ТВ по IP адресу;
- поддержка нескольких ТВ;
- определение доступности ТВ с помощью периодического tcp ping на порт tcp/3000;
- перевод ТВ в режим сопряжения и получение токена для аутентификации;
- получение статуса ТВ в реальном времени (при установленном соединении);
- управление ТВ (каналы, источники, приложения, громкость, уведомления, выключение).
Обсуждение модуля на Форуме.
Исходный код модуля на Github.
Модуль в Connect.
Перед началом работы с ТВ средствами модуля убедитесь, что в настройках ТВ разрешено использование технологии LG Connect Apps. А также проверьте управление ТВ из официального приложения для Android или iOS.
Взаимодействие с ТВ происходит через постоянное tcp-соединение в режиме клиента на порт 3000. Внутри tcp-сокета используется протокол Websocket, поверх которого уже идет обмен API-сообщениями в формате JSON.
Для взаимодействия модуля и его цикла используется tcp-сокет на порту 3005. Если порт tcp/3005 занят другим сервисом/приложением, то его можно изменить в расширенных настройках модуля.
Модуль реализует классическую концепцию MajorDoMo для взаимодействия с пользователем через метрики и привязанные к ним свойства и/или методы объекта. Объекты, свойства и методы создаются пользователем самостоятельно. Имеется возможность привязки Простых устройств на перспективу, если появится новый тип ПУ "Смарт ТВ".
Обновление значения свойства и вызов метода выполняется только, если старое значение метрики не равно новому, а также только при получении ответного сообщения от самого ТВ, а не в момент отправки команды. Таким образом можно организовать полноценную обратную связь с ТВ и быть уверенным о том, прошла команда или нет.
В привязанный метод передаются следующие параметры - название метрики $params['PROPERTY'], текущее значение $params['NEW_VALUE'] и предыдущее значение $params['OLD_VALUE'].
Для определения перехода ТВ из выключенного состояния во включенное используется периодический пинг (по умолчанию каждые 60 секунд). Поэтому имеет место быть определенная задержка между моментом включения ТВ с пульта и обновлением статуса ТВ в модуле. Если ТВ включается средствами MajorDoMo (например через ИК-передатчик Broadlink или Xiaomi), то можно форсировать обновление статуса ТВ отправкой команды ping через метрику command.
Требования
Сервер MajorDoMo и ТВ могут находиться в разных сегментах локальной сети, но при этом должна быть обеспечена маршрутизация трафика между этими сегментами и свободное прохождение сетевых пакетов на порт TCP/3000.
На сервере должен быть отключен, либо корректно настроен межсетевой экран для пропуска сетевых пакетов TCP/3000.
В настройках ТВ разрешено использование технологии LG Connect Apps.
Для всех ТВ должны быть получены их уникальные токены, которые используются для аутентификации модуля при установлении соединения с ТВ. Токен получается через интерфейс модуля в ходе процедуры сопряжения.