English readme is here.
Управляет кондиционерами на базе AUX по wifi.
По тексту ниже для компонента используется сокращение aux_ac
.
Обсудить проект можно в чате Телеграм.
Отзывы о багах и ошибках, а так же запросы на дополнительный функционал оставляйте в соответствующем разделе.
Будет просто отлично, если к своему сообщению вы добавите лог и подробное описание. Для сбора логов есть специальный скрипт на Python. С его помощью вы сможете сохранить в csv-файл все пакеты, которыми обменивается wifi-модуль и сплит-система. Если такой лог дополнить описанием, в какое время и что именно вы пытались включить, то это сильно ускорит исправление багов.
- Все материалы этого проекта (программы, прошивки, схемы, 3D модели и т.п.) предоставляются "КАК ЕСТЬ". Всё, что вы делаете с вашим оборудованием, вы делаете на свой страх и риск. Автор не несет ответственности за результат и ничего не гарантирует. Если вы с абсолютной четкостью не понимаете, что именно вы делаете и для чего, лучше просто купите wifi-модуль у производителя вашего кондиционера.
- Я
не настоящий сварщикне программер. Поэтому код наверняка не оптимален и плохо оформлен (зато комментариев по коду я разместил от души), местами может быть написан небезопасно. И хоть я и старался протестировать всё, но уверен, что какие-то моменты упустил. Так что отнеситесь к коду с подозрением, ожидайте от него подвоха и если что-то увидели - пишите в багрепорт.
AUX - это один из нескольких OEM-производителей кондиционеров. AUX производят кондиционеры как под собственным брендом, так и для внешних заказчиков. Поэтому есть шанс, что произведенный на их фабрике кондиционер неизвестного бренда с aux_ac
так же заработает.
В интернете есть такой перечень производившихся на фабриках AUX брендов: AUX, Abion, AC ELECTRIC, Almacom, Ballu , Centek, Climer, DAX, Energolux, ERISSON, Green Energy, Hyundai, IGC, Kentatsu (некоторые серии), Klimaire, KOMANCHI, LANZKRAFT, LEBERG, LGen, Monroe, Neoclima, NEOLINE, One Air, Pioneer (до 2016 года), Roda, Rovex, Royal Clima, SAKATA, Samurai, SATURN, Scarlett, SmartWay, Soling, Subtropic, SUBTROPIC, Supra, Timberk, Vertex, Zanussi. В его полноте и достоверности есть сомнения, но ничего лучше найти не удалось.
Список протестированных кондиционеров размещен в отдельном файле и включает те модели, на которых aux_ac
был запущен автором компонента или пользователями. Этот список постоянно пополняется, преимущественно по обратной связи от пользователей в чате Телеграм.
Если производитель вашего кондиционера есть в списке выше, то стоит изучить вопрос. Возможно, вам тоже подойдет aux_ac
для управления по wifi.
Если в инструкции пользователя вашего кондиционера что-то написано про возможность управления по wifi (особенно с помощью мобильного приложения ACFreedom), то есть весьма существенные шансы, что aux_ac
сможет управлять и вашим кондиционером. Но будьте осмотрительны: ваш кондиционер никем не тестировался и важно четко понимать, что вы делаете. Иначе можете наломать дров.
Если вы не уверены в своих силах, лучше дождитесь, пока другие более опытные пользователи протестируют вашу модель кондиционера (правда, это может не случиться никогда). Или приходите с вопросами в телеграм-чат. Возможно, там вам помогут.
Если вы протестировали ваш кондиционер и он работает, напишите мне, пожалуйста. Я внесу вашу модель в список протестированных. Возможно, это упростит кому-то жизнь =)
Лучший способ сообщить о протестированном кондиционере - написать в телеграм или в разделе багрепортов и заказа фич.
Для работы с кондиционером понадобится "железо" и прошивка. Описание электроники вынесено в отдельный файл.
Для использования требуется ESPHome версией не ниже 1.18.0. Именно в этой версии появились external_components
. Но лучше использовать версию 1.20.4 или старше, так как до этой версии массированно исправлялись ошибки в механизме подключения внешних компонентов.
- Подключите компонент. За подробностями можно заглянуть в официальную документацию ESPHome.
external_components:
- source:
type: git
url: https://github.com/GrKoR/esphome_aux_ac_component
- Настройте UART для коммуникации с вашим кондиционером:
uart:
id: ac_uart_bus
tx_pin: GPIO1
rx_pin: GPIO3
baud_rate: 4800
data_bits: 8
parity: EVEN
stop_bits: 1
- ВАЖНО! Нужно отключить логгер ESPHome, чтобы он не отправлял в кондиционер свои данные. Отключение логгера от UART никак не затронет вывод в лог консоли или web-сервера.
logger:
baud_rate: 0
Если по каким-то причинам вам нужен вывод логгера в UART, можно переключить его на другой UART чипа. Например, у ESP8266 два аппаратных UART: UART0 и UART1. Aux_ac
подходит только UART0, поскольку только он у esp8266 имеет и TX и RX. Логгеру достаточно только TX. Такой функционал в чипе esp8266 у UART1:
logger:
level: DEBUG
hardware_uart: UART1
Минимальная конфигурация:
climate:
- platform: aux_ac
name: "AC Name"
Полная конфигурация:
climate:
- platform: aux_ac
name: "AC Name"
id: aux_id
uart_id: ac_uart_bus
period: 7s
show_action: true
indoor_temperature:
name: AC Indoor Temperature
id: ac_indoor_temp
internal: true
visual:
min_temperature: 16
max_temperature: 32
temperature_step: 0.5
supported_modes:
- HEAT_COOL
- COOL
- HEAT
- DRY
- FAN_ONLY
custom_fan_modes:
- MUTE
- TURBO
supported_presets:
- SLEEP
custom_presets:
- CLEAN
- FEEL
- HEALTH
- ANTIFUNGUS
supported_swing_modes:
- VERTICAL
- HORIZONTAL
- BOTH
- name (Обязательный, строка): Имя кондиционера. Как минимум один из параметров
id
илиname
должен быть указан! - id (Опциональный, ID): Укажите идентификатор кондиционера чтобы обращаться к нему из кода. Как минимум один из параметров
id
илиname
должен быть указан! - uart_id (Опциональный, ID): Укажите ID шины UART, к которой подключен кондиционер. Если сконфигурирована одна шина, то компонент подключит её автоматически. Если шин несколько, то лучше указать вручную.
- period (Опциональный, время): Период между запросами статуса кондиционера. По умолчанию
7s
.Aux_ac
получает новое состояние кондиционера только после регулярного запроса, потому что сам кондиционер об изменении параметров своеё работы не уведомляет. Поэтому нужно запрашивать его, вдруг пользователь установил иной режим работы с помощью ИК-пульта. - show_action (Опциональный, логическое): Показывать ли текущую задачу кондиционера (экспериментальная функция). Например, в режиме HEAT-COOL кондиционер может выполнять одну из следующих задач:
- НАГРЕВ: нагревает воздух в комнате;
- ПРОСТОЙ: кондиционер работает в режиме вентилятора для перемешивания воздуха в комнате, поскольку целевая температура уже достигнута;
- ОХЛАЖДЕНИЕ: кондиционер охлаждает воздух в комнате. Аналогично будут отображаться действия кондиционера и для режимов ОТОПЛЕНИЕ и ОХЛАЖДЕНИЕ. Единственная разница будет в количестве действий: ПРОСТОЙ+НАГРЕВ для режима отопления и ПРОСТОЙ+ОХЛАЖДЕНИЕ для режима охлаждения комнаты.
- indoor_temperature (Опциональный): Параметры создаваемого датчика температуры воздуха, если такой датчик нужен
- name (Обязательный, строка): Имя датчика температуры.
- id (Опциональный, ID): Можно указать свой ID для датчика для использования в лямбдах.
- internal (Опциональный, логическое): Пометить данный датчик как внутренний. Внутренний датчик не будет передаваться во фронтэнд (такой как Home Assistant). В противоположность стандартному поведению сенсоров этот параметр для датчика в кондиционере всегда выставлен в true за исключением случаев, когда пользователь не установил его в
false
. То есть по умолчанию значение сенсора не будет передаваться во фронтенд даже если указаноname
для сенсора. - Все остальные параметры сенсора ESPHome.
- supported_modes (Опциональный, список): Список поддерживаемых режимов работы. Возможные значения:
HEAT_COOL
,COOL
,HEAT
,DRY
,FAN_ONLY
. Обратите внимание: некоторые производители кондиционеров указывают на пульте режим AUTO, хотя по факту этот режим не работает по расписанию и только лишь поддерживает целевую температуру. Такой режим в ESPHome называется HEAT_COOL. По умолчанию список содержит только значениеFAN_ONLY
. - custom_fan_modes (Опциональный, список): Список поддерживаемых дополнительных режимов вентилятора. Возможные значения:
MUTE
,TURBO
. По умолчанию никакие дополнительные режимы не установлены. - supported_presets (Опциональный, список): Список поддерживаемых базовых функций кондиционера. Возможные значения:
SLEEP
. По умолчанию никакие базовые функции не установлены. - custom_presets (Опциональный, список): Список поддерживаемых дополнительных функций кондиционера. Возможные значения:
CLEAN
,FEEL
,HEALTH
,ANTIFUNGUS
. Обратите внимание: функцииFEEL
,HEALTH
иANTIFUNGUS
пока не в компоненте реализованы. По умолчанию никакие дополнительные функции не установлены. - supported_swing_modes (Опциональный, список): Список поддерживаемых режимов качания шторки. Возможные значения:
VERTICAL
,HORIZONTAL
,BOTH
. По умолчанию устанавливается, что качание шторки кондиционером не поддерживается. - Все остальные параметры климатического устройства ESPHome.
Исходный код простейшего примера можно найти в файле aux_ac_simple.yaml.
Все настройки в нем тривиальны и подробно описаны в официальной документации на ESPHome и дополнены в разделе о настройке компонента выше.
Просто скопируйте yaml-файл примера в локальную папку у себя на компьютере, пропишите настройки вашей сети WiFi и откомпилируйте YAML с использованием ESPHome.
Все исходники продвинутого примера лежат в соответствующей папке.
В этом примере мы конфигурируем два относительно одинаковых кондиционера на работу с aux_ac
.
Вводные: представим, что у нас есть два кондея, расположенных в кухне и в гостиной. Эти кондиционеры могут и не быть одного бренда. Главное, чтобы они были совместимы с aux_ac
.
Поскольку мы ленивы, мы пропишем все общие настройки обоих кондиционеров в общем конфигурационном файле ac_common.yaml
.
А все параметры, специфичные для каждого конкретного устройства, вынесем в отдельные файлы. Это файлы ac_kitchen.yaml
и ac_livingroom.yaml
. В них мы установим значения для подстановок devicename
и upper_devicename
, чтобы у устройств в сети были корректные имена самого компонента и его сенсоров. И здесь же мы указываем уникальные для каждого устройства IP-адреса, спрятанные в secrets.yaml
.
Кстати да! Не забудьте присвоить корректные значения wifi_ip_kitchen
, wifi_ota_ip_kitchen
, wifi_ip_livingroom
и wifi_ota_ip_livingroom
в файле secrets.yaml
наряду с остальной "секретной" информацией (например пароли, токены и т.п.). Файл secrets.yaml
по понятным причинам на гитхаб не выложен.
Если попытаться компилировать файл ac_common.yaml
, то ESPHome выдаст ошибку. Для корректной прошивки необходимо компилировать ac_kitchen.yaml
или ac_livingroom.yaml
.