Инфракрасный пульт умного дома. Управление кондиционером

Недавно сделал хаб подключения BLE датчиков температуры в Home Assistant. Но цель этого проекта была в удаленном управлении старым кондиционером, который используется для отопления в частном доме. Для оптимизации коммунальных счетов необходимо регулировать температуру на кухне где он стоит. Например, ночью снижать температуру, а к утру поднимать. Чем дальше все домочадцы от дома, тем меньше температура и наоборот.

Чтобы отправлять команды нужен IR-передатчик — обычный инфракрасный диод. Через n-p-n транзистор подключим его к EPS32 и пропишем дополнительные строчки в файл конфигурации yaml в ESPHome.

Инфракрасный диод выпаял из старого пульта вместе с обвязкой — транзистором и двумя резисторами 200 Ом в цепи ИК-диода и 1 кОм в цепи базы. Быстро набросал эти компоненты навесным монтажом и вложил в коробочку, в которой пришла плата Wireless Stick Lite от Heltec. Это временное решение пока жду стандартную ESP32 Development Board.

В моем случае управляющий сигнал мне удобно было подключить к GPIO4. Вот что написал в yaml файл моего устройства в интерфейсе ESPHome.

esphome:
  name: ir-remote
esp32:
  board: heltec_wireless_stick_lite
  framework:
    type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
  password: "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "ir_remote Fallback Hotspot"
    password: "xxxxxxxxxxxx"
captive_portal:
remote_transmitter:
  pin: 4
  carrier_duty_percent: 50%
climate:
  - platform: toshiba       # adjust to match your AC unit!
    sensor: kitchen_temperature
    name: "Kitchen AC"
esp32_ble_tracker:
sensor:
  - platform: pvvx_mithermometer
    mac_address: "A4:C1:38:XX:XX:XX"
    temperature:
      id: kitchen_temperature
      name: "Kitchen Temperature"
    humidity:
      name: "Kitchen Humidity"
    battery_level:
      name: "KitchenTH Battery Level"
    battery_voltage:
      name: "KitchenTH Battery-Voltage"

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

Команда, поддерживаемые в автоматизации можно посмотреть здесь. Кстати, toshiba generic судя по исходнику на момент написания не поддерживает кучу функций. Например, для меня важно управлять скоростью вентилятора или установить режим High power. Команда climate.set_fan_mode стала отрабатывать после добавления строчки model: «RAC-PT1411HWRU-C» после name: «Kitchen AC». К сожалению, флаг TOSHIBA_COMMAND_POWER в этом модуле хоть и заявлен, но не используется, а значит невозможно поднять мощность, а это основной режим работы при обогреве.

Обратите внимание в моей конфигурации используется внешний BLE датчик температуры. Присвоил ему id: kitchen_temperature т.к. этот модуль заодно используется как хаб для считывания ближайших BLE датчиков температуры. Про них есть отдельная статья. Тот же id прописан в секции climate чтобы эта температура отображалась в интерфейсе HA в центре виджета обогрев.

Добавить комментарий

Ваш адрес email не будет опубликован.