mirror of
https://github.com/GrKoR/esphome_aux_ac_component.git
synced 2025-12-06 11:36:55 +03:00
intermediate saving
This commit is contained in:
@@ -17,7 +17,7 @@ Component tested with ESPHome 1.15.3 and Rovex ALS1 air conditioner. It looks li
|
||||
## Supported air conditioners ##
|
||||
### List of compatible ACs (tested) ###
|
||||
These ACs were tested by the author or by users.
|
||||
+ AUX (models: ASW-H09A4/LK-700R1, ASW-H09B4/LK-700R1, AMWM-xxx multysplit)
|
||||
+ AUX (models: ASW-H09A4/LK-700R1, ASW-H09B4/LK-700R1, AMWM-xxx multisplit)
|
||||
+ Centek (models: CT-65Q09, CT-65Z10)
|
||||
+ Hyundai (models: H-AR21-09H)
|
||||
+ IGC (models: RAK-07NH multysplit)
|
||||
|
||||
188
README.md
188
README.md
@@ -1,4 +1,5 @@
|
||||
# Кастомный компонент для ESPHome для управления кондиционером по wifi #
|
||||
# Кастомный компонент для ESPHome для управления кондиционером по wifi <!--[](https://github.com/GrKoR/esphome_aux_ac_component/releases/) [](https://t.me/aux_ac) -->
|
||||
|
||||
Readme in english [is here](README-EN.md#esphome-aux-air-conditioner-custom-component-aux_ac).
|
||||
|
||||
Управляет кондиционерами на базе AUX по wifi.<br />
|
||||
@@ -6,7 +7,7 @@ Readme in english [is here](README-EN.md#esphome-aux-air-conditioner-custom-comp
|
||||
|
||||
Обсудить проект можно [в чате Телеграм](https://t.me/aux_ac).<br />
|
||||
Отзывы о багах и ошибках, а так же запросы на дополнительный функционал оставляйте [в соответствующем разделе](https://github.com/GrKoR/esphome_aux_ac_component/issues).
|
||||
Будет просто отлично, если к своему сообщению вы добавите лог и подробное описание. Для сбора логов я написал [специальный скрипт на Python](https://github.com/GrKoR/ac_python_logger). С его помощью вы сможете сохранить в csv-файл все пакеты, которыми обменивается wifi-модуль и сплит-система. Если такой лог дополнить описанием, в какое время и что именно вы пытались включить, то это сильно ускорит исправление багов.
|
||||
Будет просто отлично, если к своему сообщению вы добавите лог и подробное описание. Для сбора логов есть [специальный скрипт на Python](https://github.com/GrKoR/ac_python_logger). С его помощью вы сможете сохранить в csv-файл все пакеты, которыми обменивается wifi-модуль и сплит-система. Если такой лог дополнить описанием, в какое время и что именно вы пытались включить, то это сильно ускорит исправление багов.
|
||||
|
||||
|
||||
## ДИСКЛЭЙМЕР (ОТМАЗКИ) ##
|
||||
@@ -14,131 +15,39 @@ Readme in english [is here](README-EN.md#esphome-aux-air-conditioner-custom-comp
|
||||
2. Я ~~не настоящий сварщик~~ не программер. Поэтому код наверняка не оптимален и плохо оформлен (зато комментариев по коду я разместил от души), местами может быть написан небезопасно. И хоть я и старался протестировать всё, но уверен, что какие-то моменты упустил. Так что отнеситесь к коду с подозрением, ожидайте от него подвоха и если что-то увидели - [пишите в багрепорт](https://github.com/GrKoR/esphome_aux_ac_component/issues).
|
||||
|
||||
|
||||
## Общее описание ##
|
||||
Этот кастомный компонент для ESPHome позволяет управлять по wifi кондиционером, сделанным на фабриках AUX.<br />
|
||||
Прошивка тестировалась с ESPHome 1.15.3 и сплит-системой Rovex серии ALS1. Скорее всего многие другие кондиционеры разных брендов, так же произведенные на фабриках AUX, могут управляться `aux_ac` без переделок. Но это не точно :)<br />
|
||||
По понятным причинам протестирован ограниченный перечень кондиционеров. Полный перечень протестированных кондиционеров приведен в списке ниже.
|
||||
|
||||
|
||||
## Поддерживаемые кондиционеры ##
|
||||
### Список совместимых (протестированных) кондиционеров ###
|
||||
Приведенные ниже в списке кондиционеры были протестированы автором `aux_ac` или пользователями. И у нас все функции работали.<br />
|
||||
Отсутствие вашего кондиционера в списке не говорит о том, что `aux_ac` с ним не работает. Но и присутствие названия в списке протестированных тоже не даёт никакой гарантии, так как тест проводится такими же пользователями компонента, как и вы.<br />
|
||||
Проведенное автором или пользователями тестирование может не включать какие-то функции по причине их отсутствия в кондиционере тестировщика. Но как минимум присутствие вашего кондиционера в списке протестированных позволяет говорить, что у кого-то из пользователей компонента своим кондиционером этого бренда управлять получилось. Так что с должной осмотрительностью можно пробовать запускать у себя.
|
||||
|
||||
Протестированы:
|
||||
+ AUX (models: ASW-H09A4/LK-700R1, ASW-H09B4/LK-700R1, AMWM-xxx multysplit)
|
||||
+ Centek (models: CT-65Q09, CT-65Z10)
|
||||
+ Hyundai (models: H-AR21-09H)
|
||||
+ IGC (models: RAK-07NH multysplit)
|
||||
+ Roda (models: RS-AL09F)
|
||||
+ Rovex (models: RS-07ALS1, RS-09ALS1, RS-12ALS1)
|
||||
+ Samurai (models: SMA-07HRN1 ION, SMA-09HRN1 ION)
|
||||
+ Subtropic (models: SUB-07HN1_18Y)
|
||||
|
||||
|
||||
### Список потенциально совместимых кондиционеров ###
|
||||
**НЕ ТЕСТИРОВАЛИСЬ! ИСПОЛЬЗУЙТЕ КОМПОНЕНТ НА СВОЙ СТРАХ И РИСК!**<br />
|
||||
AUX - это один из нескольких OEM-производителей кондиционеров. AUX производят кондиционеры как под собственным брендом, так и для внешних заказчиков. Поэтому есть шанс, что произведенный на их фабрике кондиционер неизвестного бренда с `aux_ac` так же заработает.
|
||||
|
||||
В интернете есть такой перечень производившихся на фабриках AUX брендов:
|
||||
+ Abion
|
||||
+ AC ELECTRIC
|
||||
+ Almacom
|
||||
+ Ballu
|
||||
+ Climer
|
||||
+ DAX
|
||||
+ Energolux
|
||||
+ ERISSON
|
||||
+ Green Energy
|
||||
+ Kentatsu (некоторые серии; Kentatsu KSGMA26HFAN1 протестирован и **точно не поддерживается**)
|
||||
+ Klimaire
|
||||
+ KOMANCHI
|
||||
+ LANZKRAFT
|
||||
+ LEBERG
|
||||
+ LGen
|
||||
+ Monroe
|
||||
+ Neoclima
|
||||
+ NEOLINE
|
||||
+ One Air
|
||||
+ Pioneer (до 2016 года)
|
||||
+ Royal Clima
|
||||
+ SAKATA
|
||||
+ SATURN
|
||||
+ Scarlett
|
||||
+ SmartWay
|
||||
+ Soling
|
||||
+ SUBTROPIC
|
||||
+ Supra
|
||||
+ Timberk
|
||||
+ Vertex
|
||||
+ Zanussi
|
||||
В интернете есть такой перечень производившихся на фабриках 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. В его полноте и достоверности есть сомнения, но ничего лучше найти не удалось.
|
||||
|
||||
|
||||
### Список совместимых (протестированных) кондиционеров ###
|
||||
[Список протестированных кондиционеров](docs/AC_TESTED.md) включает те модели, на которых `aux_ac` был запущен автором компонента или пользователями. Этот список постоянно пополняется, преимущественно по обратной связи от пользователей [в чате Телеграм](https://t.me/aux_ac).<br />
|
||||
|
||||
### Если кондиционер в списке отсутствует ###
|
||||
Если производитель вашего кондиционера есть в списке выше, то стоит изучить вопрос. Возможно, вам тоже подойдет `aux_ac` для управления по wifi.<br />
|
||||
Если в инструкции пользователя вашего кондиционера что-то написано про возможность управления по wifi (особенно с помощью мобильного приложения ACFreedom), то есть весьма существенные шансы, что `aux_ac` сможет управлять и вашим кондиционером. Но будьте осмотрительны: ваш кондиционер никем не тестировался и важно четко понимать, что вы делаете. Иначе можете поломать кондиционер.<br />
|
||||
Если вы не уверены в своих силах, лучше дождитесь, пока другие более опытные пользователи протестируют вашу модель кондиционера (правда, это может не случиться никогда). Или приходите с вопросами [в телеграм-чат](https://t.me/aux_ac). Возможно, там вам помогут.
|
||||
|
||||
Если вы протестировали ваш кондиционер и он работает, напишите мне, пожалуйста. Я внесу вашу модель в список протестированных. Возможно, это упростит кому-то жизнь =)<br />
|
||||
Лучший способ сообщить о протестированном кондиционере - написать [в разделе багрепортов и заказа фич](https://github.com/GrKoR/esphome_aux_ac_component/issues). [В телеграм](https://t.me/aux_ac) тоже можно, но есть шанс, что в ворохе сообщений ваше потеряется.
|
||||
Лучший способ сообщить о протестированном кондиционере - написать [в телеграм](https://t.me/aux_ac) или [в разделе багрепортов и заказа фич](https://github.com/GrKoR/esphome_aux_ac_component/issues).
|
||||
|
||||
## Как использовать компонент ##
|
||||
### Железо ###
|
||||
Я тестировал проект на esp8266 (esp-12e). Минимальная обвязка традиционная и выглядит так:<br />
|
||||

|
||||
|
||||
Для прошивки esp8266 в первый раз нужно в дополнение к обвязке, показанной на схеме выше, притянуть к Земле пин IO0 (GPIO0). После этого ESPHome может быть загружена в esp8266 по UART0. Если при этом вы указали OTA в конфигурации ESPHome, то в дальнейшем пин IO0 можно подтянуть к питанию или оставить висеть в воздухе. Он никак не будет влиять на загрузку новых прошивок, потому что все апдейты можно будет делать "по воздуху" (то есть по wifi). Я никуда IO0 не подтягивал и ничего к нему не паял, потому что не вижу смысла это делать ради одного раза. Первую прошивку делал в самодельном переходнике на макетке.
|
||||
|
||||
Плата esp-12e перед подключением кондиционера и модуля питания:<br />
|
||||

|
||||
|
||||
Внутренний блок сплит-системы имеет 5-проводное подключение к модулю wifi. Коннектор [JST SM](https://www.jst-mfg.com/product/pdf/eng/eSM.pdf).
|
||||
|
||||
Перечень проводников:
|
||||
1. Желтый: +14В постоянного тока. Осциллограф показал от +13.70В до +14.70В. В сервисном мануале встречалось, что питание возможно до +16В.
|
||||
2. Черный: земля.
|
||||
3. Белый: +5В постоянного тока (измерено от +4.43В до +5.63В). Для чего нужна эта линия - не понятно. У меня нет версий. Эксперименты с родным wifi-модулем сплит-системы показали, что эта линия в работе wifi не участвует. Линия идет напрямую на ножку контроллера в сплите через резистор 1 кОм.
|
||||
4. Синий: TX кондиционера. Высокий уровень +5В.
|
||||
5. Red: RX кондиционера. Высокий уровень +5В.
|
||||
|
||||
Для питания ESP8266 можно использовать любой подходящий DC-DC преобразователь. Я использовал такой:<br />
|
||||
.
|
||||
|
||||
Подключение:<br />
|
||||
Черный провод (земля) подключается к земле DC-DC преобразователя и к пину GND модуля ESP8266.<br />
|
||||
Желтый провод подключается ко входу DC-DC преобразователя (в моём случае контакт Vin).<br />
|
||||
Синий провод подключается к пину RXD модуля esp-12e.<br />
|
||||
Красный провод подключается к пину TXD модуля esp-12e.<br />
|
||||
|
||||
Вот схема всех соединений:<br />
|
||||

|
||||
|
||||
Вот так это выглядит внутри самодельного корпуса:<br />
|
||||

|
||||
|
||||
Поскольку у меня не было под рукой коннекторов JST SM, а ехать искать их не хотелось, я сделал свой собственный из стандартных пинов с шагом 2,54 мм и нескольких напечатанных на 3D-принтере деталей:<br />
|
||||
.
|
||||
|
||||
Все относящиеся к проекту модели для 3D-принтера также доступны: [STL-файлы коннектора](https://github.com/GrKoR/esphome_aux_ac_component/tree/master/enclosure/JST%20SM%20connector), [модельки частей корпуса](https://github.com/GrKoR/esphome_aux_ac_component/tree/master/enclosure/case).
|
||||
|
||||
Конечный результат:<br />
|
||||
<br />
|
||||
<br />
|
||||

|
||||
|
||||
|
||||
Для работы с кондиционером понадобится "железо" и прошивка. Описание электроники вынесено [в отдельный файл](docs/HARDWARE.md).
|
||||
|
||||
### Прошивка: интеграция aux_ac в вашу конфигурацию ESPHome ###
|
||||
1. Скопируйте файл `aux_ac_custom_component.h` в папку с вашими YAML-файлами ESPHome.
|
||||
2. В заголовочной части вашего YAML-файла пропишите инструкцию `include`. Например:
|
||||
Для использования требуется [ESPHome](https://esphome.io) версией не ниже 1.18.0. Именно в этой версии появились `external_components`. Но лучше использовать версию 1.20.4 или старше, так как до этой версии массированно исправлялись ошибки в механизме подключения внешних компонентов.<br />
|
||||
|
||||
## Установка
|
||||
1. Подключите компонент.
|
||||
За подробностями можно заглянуть в [официальную документацию ESPHome](https://esphome.io/components/external_components.html?highlight=external).
|
||||
```yaml
|
||||
esphome:
|
||||
name: $devicename
|
||||
platform: ESP8266
|
||||
board: esp12e
|
||||
includes:
|
||||
- aux_ac_custom_component.h
|
||||
external_components:
|
||||
- source:
|
||||
type: git
|
||||
url: https://github.com/GrKoR/esphome_aux_ac_component
|
||||
```
|
||||
3. Настройте UART для коммуникации с вашим кондиционером:
|
||||
2. Настройте UART для коммуникации с вашим кондиционером:
|
||||
```yaml
|
||||
uart:
|
||||
id: ac_uart_bus
|
||||
@@ -149,24 +58,57 @@ uart:
|
||||
parity: EVEN
|
||||
stop_bits: 1
|
||||
```
|
||||
4. У ESP8266 два аппаратных UART: UART0 и UART1. Нам подходит только UART0, поскольку только он имеет и TX и RX. Поэтому в секции **uart:** выше мы настроили UART0 для нужд `aux_ac`. Но на том же УАРТе сидит и **logger**. Чтобы не было коллизий, настраиваем логгер на работу с UART1, у которого есть только TX, чего для нужд логгера более чем достаточно:
|
||||
3. **ВАЖНО!** Нужно отключить логгер ESPHome, чтобы он не отправлял в кондиционер свои данные.
|
||||
Отключение логгера от UART никак не затронет вывод в лог консоли или web-сервера.
|
||||
```yaml
|
||||
logger:
|
||||
baud_rate: 0
|
||||
```
|
||||
Если по каким-то причинам вам нужен вывод логгера в UART, можно переключить его на другой UART чипа. Например, у ESP8266 два аппаратных UART: UART0 и UART1. `Aux_ac` подходит только UART0, поскольку только он у esp8266 имеет и TX и RX. Логгеру достаточно только TX. Такой функционал в чипе esp8266 у UART1:
|
||||
```yaml
|
||||
logger:
|
||||
level: DEBUG
|
||||
# important: for avoiding collisions logger works with UART1 (for esp8266 tx = GPIO2, rx = None)
|
||||
hardware_uart: UART1
|
||||
```
|
||||
5. Последний шаг - объявление кастомного компонента:
|
||||
|
||||
## Настройка компонента ##
|
||||
|
||||
```yaml
|
||||
climate:
|
||||
- platform: custom
|
||||
lambda: |-
|
||||
extern AirCon acAirCon;
|
||||
if (!acAirCon.get_initialized()) acAirCon.initAC(id(ac_uart_bus));
|
||||
App.register_component(&acAirCon);
|
||||
return {&acAirCon};
|
||||
climates:
|
||||
- name: "My awesome air conditioner"
|
||||
- platform: aux_ac
|
||||
name: "AC Name"
|
||||
id: aux_id
|
||||
uart_id: ac_uart_bus
|
||||
period: 7s # период опроса состояния сплита, по дефолту 7 сек
|
||||
show_action: true # надо ли показывать текущий режим работы: при HEAT_COOL mode сплит может греть (HEAT), охлаждать (COOL) или бездействовать (IDLE)
|
||||
indoor_temperature: # сенсор, показывающий температуру воздуха на внутреннем блоке кондиционера; имеет все те же параметры, как и любой сенсор ESPHome
|
||||
name: AC Indoor Temperature
|
||||
id: ac_indoor_temp
|
||||
internal: true # сенсор установлен как внутренний по дефолту (не попадёт в Home Assistant)
|
||||
visual:
|
||||
min_temperature: 16
|
||||
max_temperature: 32
|
||||
temperature_step: 0.5
|
||||
supported_modes:
|
||||
- HEAT_COOL # не AUTO, так как только нагревает и остужает. В доках на ESPHome говорится, что AUTO - это если у устройства есть календарь и какие-то установки по расписанию.
|
||||
- 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
|
||||
```
|
||||
|
||||
## Простейший пример ##
|
||||
|
||||
18
docs/AC_TESTED.md
Normal file
18
docs/AC_TESTED.md
Normal file
@@ -0,0 +1,18 @@
|
||||
## Tested and compatible air conditioners ##
|
||||
`Aux_ac` has been tested and works successfully with the air conditioners from the list below.
|
||||
Кондиционеры из списка ниже протестированы и точно совместимы с `aux_ac`.
|
||||
|
||||
+ AUX (models: ASW-H09A4/LK-700R1, ASW-H09B4/LK-700R1, AMWM-xxx multisplit)
|
||||
+ Centek (models: CT-65Q09, CT-65Z10)
|
||||
+ Hyundai (models: H-AR21-09H)
|
||||
+ IGC (models: RAK-07NH multysplit)
|
||||
+ Roda (models: RS-AL09F)
|
||||
+ Rovex (models: RS-07ALS1, RS-09ALS1, RS-12ALS1)
|
||||
+ Samurai (models: SMA-07HRN1 ION, SMA-09HRN1 ION)
|
||||
+ Subtropic (models: SUB-07HN1_18Y)
|
||||
|
||||
## Tested and INCOMPATIBLE air conditioners ##
|
||||
ACs from the list below are **INCOMPATIBLE** with `aux_ac`.
|
||||
Кондиционеры из списка ниже протестированы и оказались **НЕСОВМЕСТИМЫ** с компонентом `aux_ac`.
|
||||
|
||||
+ Kentatsu KSGMA26HFAN1 was tested and **isn't supported**
|
||||
0
docs/HARDWARE-EN.md
Normal file
0
docs/HARDWARE-EN.md
Normal file
42
docs/HARDWARE.md
Normal file
42
docs/HARDWARE.md
Normal file
@@ -0,0 +1,42 @@
|
||||
## Электроника, необходимая ля управления кондиционером по wifi ##
|
||||
Я тестировал проект на esp8266 (esp-12e). Минимальная обвязка традиционная и выглядит так:<br />
|
||||

|
||||
|
||||
Для прошивки esp8266 в первый раз нужно в дополнение к обвязке, показанной на схеме выше, притянуть к Земле пин IO0 (GPIO0). После этого ESPHome может быть загружена в esp8266 по UART0. Если при этом вы указали OTA в конфигурации ESPHome, то в дальнейшем пин IO0 можно подтянуть к питанию или оставить висеть в воздухе. Он никак не будет влиять на загрузку новых прошивок, потому что все апдейты можно будет делать "по воздуху" (то есть по wifi). Я никуда IO0 не подтягивал и ничего к нему не паял, потому что не вижу смысла это делать ради одного раза. Первую прошивку делал в самодельном переходнике на макетке.
|
||||
|
||||
Плата esp-12e перед подключением кондиционера и модуля питания:<br />
|
||||

|
||||
|
||||
Внутренний блок сплит-системы имеет 5-проводное подключение к модулю wifi. Коннектор [JST SM](https://www.jst-mfg.com/product/pdf/eng/eSM.pdf).
|
||||
|
||||
Перечень проводников:
|
||||
1. Желтый: +14В постоянного тока. Осциллограф показал от +13.70В до +14.70В. В сервисном мануале встречалось, что питание возможно до +16В.
|
||||
2. Черный: земля.
|
||||
3. Белый: +5В постоянного тока (измерено от +4.43В до +5.63В). Для чего нужна эта линия - не понятно. У меня нет версий. Эксперименты с родным wifi-модулем сплит-системы показали, что эта линия в работе wifi не участвует. Линия идет напрямую на ножку контроллера в сплите через резистор 1 кОм.
|
||||
4. Синий: TX кондиционера. Высокий уровень +5В.
|
||||
5. Red: RX кондиционера. Высокий уровень +5В.
|
||||
|
||||
Для питания ESP8266 можно использовать любой подходящий DC-DC преобразователь. Я использовал такой:<br />
|
||||
.
|
||||
|
||||
Подключение:<br />
|
||||
Черный провод (земля) подключается к земле DC-DC преобразователя и к пину GND модуля ESP8266.<br />
|
||||
Желтый провод подключается ко входу DC-DC преобразователя (в моём случае контакт Vin).<br />
|
||||
Синий провод подключается к пину RXD модуля esp-12e.<br />
|
||||
Красный провод подключается к пину TXD модуля esp-12e.<br />
|
||||
|
||||
Вот схема всех соединений:<br />
|
||||

|
||||
|
||||
Вот так это выглядит внутри самодельного корпуса:<br />
|
||||

|
||||
|
||||
Поскольку у меня не было под рукой коннекторов JST SM, а ехать искать их не хотелось, я сделал свой собственный из стандартных пинов с шагом 2,54 мм и нескольких напечатанных на 3D-принтере деталей:<br />
|
||||
.
|
||||
|
||||
Все относящиеся к проекту модели для 3D-принтера также доступны: [STL-файлы коннектора](https://github.com/GrKoR/esphome_aux_ac_component/tree/master/enclosure/JST%20SM%20connector), [модельки частей корпуса](https://github.com/GrKoR/esphome_aux_ac_component/tree/master/enclosure/case).
|
||||
|
||||
Конечный результат:<br />
|
||||
<br />
|
||||
<br />
|
||||

|
||||
Reference in New Issue
Block a user