Кондиционер haier замена Wi-Fi модуля (haier-esphome)
Необходимые материалы
Статья создана членом сообщества и может не совпадать с позицией компании 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: ''
Необходимо подключить плату к компьютеру через 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
Оригинальный пост на англйском языке на котором основана эта страница
