Добавляем ИК устройство в Home Assistant, используя LOOK.in Remote

26 апреля 2020, 16:44

Пару дней назад я рассказывал об интересном универсальном ИК пульте управления устройствами от компании LOOK.in. Сегодня же речь пойдет о добавлении девайса в сторонние системы УД, на данный момент не предусмотренные производителем. Я на своем опыте расскажу об интеграции ресивера для мультимедиа систем.

Ресивер старый, на борту не имеет ни Ethernet гнезда, ни HDMI Arc порта. Поэтому только ИК, только хардкор.

Что Remote имеет на борту для этого?

Открыв сайт производителя, можно увидеть, что девайс поддерживает локальное (а это немаловажно) управление при помощи Rest API. Это, по сути, набор команд, используя которые, мы можем получать от устройства нужную информацию или передавать ему данные на выполнение. Найдя на сайте раздел Commands, обнаруживаем, что если нам известен ИК код конкретной команды управления, передать ее можно следующим образом:

GET /commands/IR/ProntoHEX/вашакоманда

Набор символов, кстати, может быть не только в формате ProntoHEX, но и в Raw, если у вас есть такие данные. Можно сделать и проще. В настройках пульта вы можете добавить в его память несколько собственных команд, либо сосканировав их, либо вбив известную команду вручную. В этом случае вызвать их можно так:

GET /commands/IR/saved/ID команды от 0 до 256

Добавление в Home Assistant

Почему я вообще начал этим заниматься? Да потому что мой Broadlink не умеет отправлять устройствам заранее известные команды в ProntoHEX, и это приводило к тому, что в один прекрасный момент у меня получался рассинхрон реального состояния ресивера (влкл/выкл) его виртуальным выключателем. Прошерстив в очередной раз просторы интернета, я выяснил, что для моего мультимедиа девайса есть разные коды на его включение и выключение. Это позволило бы независимо управлять ресивером и отправлять ему команду конкретно на включение и выключение.

В HA есть такая интеграция, как RESTful Switch. Она, к сожалению, не совсем подходит мне, так как требует при запросе отдавать текущее состояние девайса, но на данный момент LOOK.in Remote не умеет предоставлять такие данные. Поэтому мы пойдем окольными путями, используя RESTful Command, и соберя из двух Template switch

Для начала я добавил две команды, отдельные на включение и выключение:

rest_command:
  on_receiver:
    url: http://192.168.1.240/commands/ir/prontohex/0000 0073 0000 0011 0020 0020 0040 0040 0040 0020 0020 0020 0020 0020 0020 00A0 0020 0020 0020 0040 0020 0020 0040 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020 0040 0020 0AA8
  off_receiver:
    url: http://192.168.1.240/commands/ir/prontohex/0000 0073 0000 0010 0020 0020 0040 0040 0040 0020 0020 0020 0020 0020 0020 00A0 0020 0020 0020 0040 0020 0020 0040 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020 0040 0040 0AC8

После перезагрузки появятся два сервиса: 

  • rest_command.on_receiver 
  • rest_command.off_receiver 

Вызывая которые мы можем включать или выключать ресивер. Теперь соберем из этого переключатель:

switch:
  - platform: template
    switches:
      marantz_receiver:
        value_template: "{{ states.switch.plug_158d0001b195fd.state }}"
        turn_on:
          - service: rest_command.on_receiver
        turn_off:
          - service: rest_command.off_receiver

Да, тут надо сразу оговориться, что свитчу подобного типа необходимо в обязательном порядке указывать параметр value_template. Он определяет, какой текущий статус имеет созданный выключатель. Для подобных целей можно как использовать input boolean переменную, так и брать состояние другого устройства, как я и поступил. В качестве другого устройства я использую умную розетку Xiaomi, в которую подключен активный сабвуфер для этой же системы. Учитывая, что обе эти системы включаются и выключаются одновременно, будем считать, что ресивер включился, если включен саб. Да, возможно, это не совсем правильно в виду отсутствия обратной связи, но еще одной умной розетки у меня нет. 

С удовольствием выслушаю вашу критику и комментарии по поводу модернизации данного кейса использования!


Все новости мира умных домов - t.me/SprutAI_News или Instagram
Остались вопросы? Мы в Telegram - @SprutAI

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
К списку статей

Устройства в материале

Socket

Производитель: Xiaomi
Заказать на:

Remote

Производитель: LOOKin

Скидки для сообщества

Z-Wave Ukraine

+380 68 641 9670
Промокод:
Sprut-UA
Размер скидки:
15%

Интернет-магазин yourhomekit.ru

+7 914 550-51-11
Промокод:
SPRUT-BLG
Размер скидки:
8%
Cамый большой ассортимент в России аксессуаров Apple HomeKit

Тематические чаты

Похожие статьи

17 декабря 2019, 17:49
Универсальный привод для автоматического удаленного открытия окон с простой интеграцией в умные дома.
27 октября 2018, 12:20
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
25 сентября 2020, 11:49
Сенсорный монитор для управления умным домом. Настройка и использование.
20 октября 2018, 22:57
Теоретические основы протокола MQTT и описание того, как он работает и для чего используется
24 августа 2018, 12:18
Пошаговая установка HomeAssistant
02 июля 2020, 07:24
Я хочу поделиться своей разработкой: "умным открывателем пластикового окна". В статье вы найдете все необходимое, чтобы повторить проект и изготовить собственный привод для открывания окна с использованием штатной фурнитуры окна.
15 ноября 2018, 09:42
Способы автоматизации механических ворот
27 августа 2018, 10:14
Интегрируем ХА в HomeKit
03 октября 2018, 22:03
Как собрать и настроить Hyperion Ambilight - адаптивную подсветку ТВ.
29 октября 2019, 07:59
Умный домофон на базе nodeMCU с прошивкой ESPHome.