В примере используется:
ESP32: http://ali.pub/5e1frn
M5stick: http://alli.pub/5q8df4
ir передатчик и приемник: http://alii.pub/5x63zh
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
В одной из прошлых статей мы разбирали как считать коды ИК пультов и отправлять их с помощью ИК трансмитера. В том примере Мы отправляли команду через приложение Blynk. Там было реализовано управление кондиционером. Об этом можно почитать тут:
Удаленное включение и выключение кондиционера(сплит системы) с телефона на esp32/esp8266
В этой же статье рассмотрим примерно такой-же Вариант, только команды будем подавать уже непосредственно в Home Assistant с кнопки. Такая реализация нам будет полезна еще и тем, что если устройство интегрировано в систему умного дома “Home Assistant”, то его можно завязывать во всякие сценарии. Например эмитируя пульт от кондиционера, мы можем сделать сценарий при котором, когда увеличивается температура воздуха, включить кондиционер.
Ну что-ж поехали:
В ESPHome существуют модули:
Remote Receiver : https://esphome.io/components/remote_receiver.html?highlight=ir
Remote Transmitter: https://esphome.io/components/remote_transmitter.html?highlight=ir#remote-transmitter
Пользуясь этими примерами и будем работать.
Для начала загрузим в ESP пример от ИК трансмиттера. Выглядеть он будет следующим образом:
remote_receiver:
pin: GPIO26 # Пин к которому подключен ИК приемник
dump: all #Использовать все протоколы.
Добавляем этот пример и загружаем в ESPшку.
После загрузки открываем “logs” и нажимаем кнопку на пульте которую хотим считать. Нам Выдастся что-то типо этого:
Это “страшный набор цифр” их нужно все копировать и вставить в форму отправки.
Обратите внимание, что здесь 4 секции. Но Код на самом деле от одной кнопки. Видите после каждой секции стоит запитая. Это означает, что код продолжается и нужно его копировать до конца. Превращать его в один массив.
Ну и теперь переходим к коду передатчика. Он будет выглядеть следующим образом:
remote_transmitter:
pin: GPIO09
# Infrared remotes use a 50% carrier signal
carrier_duty_percent: 50%
switch:
- platform: template
name: Raw Code Power Button
turn_on_action:
- remote_transmitter.transmit_raw:
carrier_frequency: 38kHz
code: [5121, -614, 453, -589, 1957, -591, 453, -589, 1959, -589, 454, -587, 1958, -594, 451, -588, 1958, -590, 1957, -591, 453, -591, 452, -591, 453, -591, 453, -591, 453, -588, 1958, -591, 454, -591, 452, -593, 450, -593, 451, -589, 456, -591,
453, -592, 451, -592, 451, -592, 453, -592, 452, -592, 452, -591, 452, -592, 452, -594, 451, -589, 1956, -591, 454, -587, 1959, -592, 452, -593, 451, -593, 450, -592, 453, -591, 454, -591, 453, -590, 453, -591, 453, -588, 1959, -590, 453, -594, 450,
-593, 451, -591, 452, -592, 453, -591, 452, -592, 452, -590, 455, -590, 454, -592, 454, -586, 1958, -593, 453, -592, 451, -591, 1956, -589, 1957, -592, 452, -590, 454, -591, 453, -588, 456, -589, 455, -592, 451, -591, 453, -593, 450, -592, 453, -591,
1955, -590, 1957, -590, 454, -590, 1956, -590, 1957, -588, 1959, -590, 1956]
Здесь объявлен пин gpio09 – это пин к которому подключен ИК передатчик.
carrier_frequency: 38kHz
– это обязательная опция. Она определяет с какой частотой посылать сигнал. Какразтаки пульт от кондиционера и работает на этой частоте.
Все. после добавления этого кода Заходим в Home Assistant в Настройки->Интеграции. Далее добавляем новую интеграцию – это будет обычная кнопка. И теперь после нажатия на эту обычную кнопку в Home Assistant у нас будет подаваться код, который мы прописали.