[node-red] Flow для интеграциии телевизора в Homekit (ИК через Broadlink)

Простая реализация homekit устройства класса Телевизор посредством его интеграции в node-red через broadlink

Первая заметка из серии простых и готовых решений для реализации интеграций в различных системах умного дома.

Возникла необходимость добавить телевизор не имеющий полноценных способов управления через адекватные протоколы (некие API), а только ИК управление. В распоряжении есть Broadlink RM Pro, который легко добавляется в node-red.

Используемые pallete.

  • node-red — базовый набор нод. Не требует дополнительной установки.
  • node-red-node-ping — нода позвалюящая отправлять ICMP запросы и получать на основании их ответов статус устройства.
  • node-red-contrib-broadlink-control — набор нод для работы с устройствами broadlink.

Копирование IR-кодов.

Первая задача — скопировать IR-коды существующего пульта для последующего их использования.

Для упрощения данной задачи есть простой flow.

Код для импорта доступен по ссылке

После импорта кода настраиваем ноду RM прописав IP и MAC адрес самого Broadlink. Запускаем Deploy. Открываем вкладку debug в интерфейсе node-red. Жмем запуск на Inject ноде и жмем кнупку на пульте, которую хотим считать. Видим код.

Сохраняем его. Повторяем действие по всем кнопкам которые хотим перенести в homekit.

Основной flow.

Ниже представлен flow содержащий базовые вещи для управления ТВ панелью — включение/выключение (одна кнопка, поэтому были проблемы), громче, тише, переключение HDMI селектора (одна кнопка, поэтому лайфхак).

Код для импорта доступен по ссылке

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

Нода RM настраивается аналогично предыдущему этапу. IP и MAC адрес. Если настройка с первого этапа была сохранена, можно переключить конфигурацию RM ноды на нее.

Далее копируем IR-коды полученные на предыдущем этапе в соответствующие функции. Обратите внимание что копировать нужно только код, по аналогии тому что там есть уже сейчас (кстати, это коды от телевизора Samsung).

Итог.

У нас в HomeKit (Apple Дом) появляется устройство с типом Телевизор. Появляется возможность его включить и выключить, переключить вход HDMI, отрегулировать громкость (в приложении Пульт, кнопками громкость). Из идей для будущего развития — добавить управление меню телевизора, благо приложение Пульт дает такую возможность.

Благодарность.

Спасибо участнику нашего telegram сообщества с ником @Anton_Tumilovich за написание фильтрующей функции на вход и выход ноды homekit. Это позволило устранить паразитные дублирования на выходе из ноды при получении любого значения на входе.

Оставьте комментарий