Кондиционер haier замена Wi-Fi модуля (haier-esphome)

From Wiren Board
This is the approved revision of this page, as well as being the most recent.

Необходимые материалы

Статья создана членом сообщества и может не совпадать с позицией компании Wiren Board. Используйте приведённые инструкции на свой страх и риск. Если у вас WIFI модуль без USB-A, то вам необходимо заказать разъем JST SM04B-GHS-TB.

Так же надо купить ESP32 совместимую плату. В данной статье будет использоваться ESP32 Devkit V1, потому что как показал опыт у ESP8266 не хватает оперативной памяти для того чтобы дополнительно поднять web server или MQTT клиент. Плату ESP32-C3 Super Mini тоже не стоит брать потому что не будет ловить WIFI. Автор оригинальной статьи информирует о чипе ESP32-H2, который имеет встроенную поддержку Zigbee протокола.

Распиновка

Собранный модуль

Обязательные шаги

git clone https://github.com/paveldn/haier-esphome.git
pip install esphome

В корень проекта добавить файл esp32.yaml:

substitutions:
  device_name: haierac1
  device_id: haier_climate
  uart_id: ac_port
  send_wifi: "true"
  prefix: "esphome/${device_name}" 

esphome:
  name: ${device_name}
  name_add_mac_suffix: true

esp32:
  board: esp32doit-devkit-v1
  framework:
    type: esp-idf

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  fast_connect: true  # будет быстрее запускаться

# значения взяты от сюда https://wirenboard.com/wiki/MQTT_Explorer
# Настройки подключения к MQTT-брокеру https://github.com/aadegtyarev/esphome2wb
mqtt:
  broker: wb.lan # укажите IP-адрес контроллера
  port: 1883
  username: !secret mqtt_secret
  password: !secret mqtt_password
  discovery: false
  id: ${device_name}
  topic_prefix: ${prefix}
  log_topic: null

# Передача статуса в MQTT
  birth_message:
    topic: ${prefix}/text_sensor/status/state
    payload: online

  will_message:
    topic: ${prefix}/text_sensor/status/state
    payload: offline

  shutdown_message :
    topic: ${prefix}/text_sensor/status/state
    payload: shutdown

uart:
  - id: ${uart_id}
    baud_rate: 9600
    tx_pin: 17  # D17
    rx_pin: 16  # D16

# Необязательно, возможно пригодится для отладки
sensor:
  - platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB
    name: "WiFi Signal dB"
    id: wifi_signal_db
    update_interval: 10s
    entity_category: "diagnostic"

# После отладки надо будет выключить
web_server:
  port: 80

# После отладки переключить в менее подробный режим для повышения производительности
logger:
  level: DEBUG

api:
  reboot_timeout: 0s

packages:
  local_haier: !include configs/external_components/local_haier.yaml
  haier_base: !include .haier-hon-base.yaml

И файл secrets.yaml со следущим содержимым:

wifi_ssid: wifiap
wifi_password: pass
mqtt_secret: ''
mqtt_password: ''
Веб-интерфейс esphome по адресу 192.168.87.237
Устройство в Wirenboard если установлен скрипт esphome2wb

Необходимо подключить плату к компьютеру через USB и залить прошивку командой esphome run wemos_d1_mini.yaml --device /dev/ttyUSB0. После этого отключаем модуль от компьютера и подключаем к кондиционеру. Прошивку можно заливать по воздуху командой esphome run wemos_d1_mini.yaml --device 192.168.87.237, где 192.168.87.237 - это IP модуля в вашей сети.

Если после подключения платы к компьютеру с Linux у вас не видно устройство, то вероятнее всего вам надо заглянуть по этой ссылке Проблема распознавания линуксом китайских копий Wemos

Полезные материалы

Проект haier-esphome на github

Оригинальный пост на англйском языке на котором основана эта страница

esphome2wb Конвертер ESPHome → Wiren Board