Компоненты для управления кондиционером:
ESP32C3 super mini: https://alli.pub/77zffk?erid=2SDnjefm1p1
Регулируемый DC-DC преобразователь MH-MINI-360: https://alli.pub/77zfhw?erid=2SDnjcHtW5s
USB коннектор: https://alli.pub/77zfk1?erid=2SDnjdEk3Wd
Существуют кондиционеры которые имеют wifi, для управления ими по сети. Но на самом деле этот самый wifi – это отдельный контроллер с wifi который управляет кондиционером по uart.
У меня кондиционер BSW/in-09HN1. И у него есть USB порт. Так вот у USB порта 4 контакта – 2 из них питание и 2 – это uart кондиционера где RX и TX пины.
Выглядит мой порт кондиционера таким образом:
Но в вашем кондиционере не обязательно так. Иногда не USB бывают разъемы, бывают специализированные, которые выглядят вот так:
Так-же имейте ввиду то, что в том-же USB порту кондиционера не 5 вольт может быть.
Это очень важно, так как я сначала для управления кондиционером купил esp32s3 в виде флешки https://alli.pub/77zgrl?erid=2SDnjemjzGm и подумал, что сейчас переназначу 2 пина USB и как зауправляю кондиционером.
Подключил этот dongle и он у меня сгорел. И только после того, как он сгорел, я пошёл померять напряжение на контактах кондиционера:
Оказалось что напряжение там 13.38 вольт. Конечно он сгорит. Так как usb обычный должен давать 5 вольт.
Схема подключения:
По этому я взял вот эти компоненты с dc-dc понижайкой, чтоб подключиться в USB кондиционера:
ESP32C3 super mini: https://alli.pub/77zffk?erid=2SDnjefm1p1
Регулируемый DC-DC преобразователь MH-MINI-360: https://alli.pub/77zfhw?erid=2SDnjcHtW5s
USB коннектор: https://alli.pub/77zfk1?erid=2SDnjdEk3Wd
Ну а подключить все нужно примерно по такой схеме:
По этой схеме видно, что DC-DC преобразователь MH-MINI-360 нужно отрегулировать потенциометром так, чтоб при входном напряжении 13.3 вольта выдавало 5 вольт.
И rx и tx пины можно на любые повесить контроллера esp32s3 или контроллера esp32c3 – так как в этих контроллерах любой пин может выступать как uart.
Прошивка ESPHome:
Ну что-ж, мы подготовили все элементы, спаяли схему. Теперь нужно залить прошивку в ESP контроллер.
Проект ESPHome для кондиционера называется esphome_aux_ac_component .
Этот проект поддерживает огромное количество кондиционеров. Я их для примера тут приведу:
- ANDE (models: AND-12/FA+)
- Argo (models: Greenstyle 9000, Greenstyle 12000, Greenstyle 18000)
- AUX (models: ALMD-H48/5DR2 / AL-H48/5DR2(U), AMWM-H07/4R1 multisplit, AMWM-H07/4R2(J) multisplit, AMWM-H12/4R2(J) multisplit, AMWM-H12/4R3 multisplit, ASM-H12LL, ASM-H24LD, ASW-H07A4/DE-R1DI, ASW-H07A4/FP-R1DI, ASW-H07A4/JD-R1, ASW-H09A4/FP-R1DI, ASW-H09A4/LK-700R1, ASW-H09A4/LK-700R1DI, ASW-H09B4/LK-700R1, ASW-H09B7A4, ASW-H12A4/FAR1, ASW-H12A4/HA-R2DI, ASW-H12A4/JD-R2DI, ASW-H12B4/JD-R2DI, ASW-H12C5C4/JER3DI-B8-2, ASW-H12C5C4/JOR3DI-B8, ASW-H12U3/JIR1DI-US, ASW-H18A4/QH-R1DI / AS-H18A4/QH-R1DI, AUX-07JO/I / AUX-M3-21LCLH multisplit, AUX-12JO/I / AUX-M3-21LCLHmultisplit, AUX-18QC/I / AUX-18QC/O, AWM-09G1V4-X, HA-18000BTU, KFR-26GW/BpHRB+3, KFR-26GW/BpQYA2+2R3, KFR-26GW/BpQYD2+2R3, KFR-26GW/BpR3QYA1+1, KFR-26GW/BpR3QYD1+1, KFR-26GW/BpR3QYQ1+1, KFR-26GW/BpR3QYQ2+2, KFR-35GW/BpQYA1+1R3, KFR-35GW/BpQYA2+2R3, KFR-35GW/BpQYD1+1R3, KFR-35GW/BpQYD2+2R3, KFR-35GW/BpR3QYQ1+1, KFR-35GW/BpR3QYQ2+2 (see issue #71 for detais of
Aegean Sea
[爱琴海] AUX family AC connection) - Ballu (models: BLC_CF/in-60HN1 / BLC_O/out-60HN1, BSUI/in-09HN8 / BSUI/out-09HN8, BSUI/in-12HN8 / BSUI/out-12HN8, BSUI/in-18HN8 / BSUI/out-18HN8, BSW/in-09HN1 / BSW/out-09HN1, BSW/in-12HN1 / BSW/out-12HN1)
- Baymak (models: Elegant Plus 12)
- Centek (models: CT-65A09, CT-65A12, CT-65EDC07, CT-65F09, CT-65F12, CT-65FDC09, CT-65J09, CT-65J12, CT-65K07, CT-65Q09, CT-65Q12, CT-65RDC07, CT-65RDC09, CT-65RDC12, CT-65SDC07, CT-65SDC09, CT-65SDC18, CT-65U13, CT-65U18, CT-65V12, CT-65V24, CT-65X12, CT-65Z10, CT-65Z18)
- Dimstal (model: SMND-QC-12-J-Smart ECO)
- Elgin (models: HWFI09B2IA/ HWFE09B2NA)
- Energolux (models: SAS07L2-A, SAS07L4-A, SAS07M2-AI, SAS09B3-A, SAS09L4-A, SAS09Z4-AI, SAS12BN1-AI, SAS09Z4-AI, SAS18Z4-AI)
- Hyundai (models: H-AR16-07H, H-AR21-07H, H-AR21-09H)
- iClima (models: ICI-09A/IUI-09A)
- Idea (models: ISR-12HR-SA7-DN1 ION)
- IGC (models: RAK-07NH multysplit, RAS-07AX/RAC-07AX, RAS-V09N2X/RAC-V09N2X)
- IKON (models: ASW-H12C5C4/HCR3DI-B8)
- Ishimatsu (models: AVK-09I)
- Loriot (models: LAC-09AS)
- Mirage (models: EWC121E – CWC121E)
- Osaka (models: STVP-12HH3)
- RCool (models: GRA12B0-KSZKLM641)
- Rinnai (models: RINV25RC)
- Roda (models: RS-AL09F, RS-AL24F)
- Rovex (models: RS-07ALS1, RS-09ALS1, RS-12ALS1)
- Royal Clima (models: CO-D 18HNI/CO-E 18HNI, RC-VNR29HN, RCI-SA30HN)
- RVX (models: RS-12ALS)
- Samurai (models: SMA-07HRN1 ION, SMA-09HRN1 ION)
- Subtropic (models: SUB/in-07HN1 / SUB/out-07HN1, SUB/in-09HN1 / SUB/out-09HN1, SUB/in-12HN1 / SUB/out-12HN1)
- Tesla (models: TA35FFML-12410M)
- Tornado (models: ISKA-INV-12 X WIFI EU)
- TOYOTOMI (models: SONZAI THN/THG-A35SZ)
- Vertex (models: Falcon-18A)
- VOX (models: IJO09-SC4D, IVA5-12JR1)
- Xigma (models: XG-SJ56RHA-IDU)
- Zephir (models: ZEL 12000BTU)
- Бирюса (models: B-07DPR/B-07DPQ, B-09FIR/B-09FIQ)
Список можно посмотреть тут: https://github.com/GrKoR/esphome_aux_ac_component/blob/master/docs/AC_TESTED.md
Код для кондиционера очень простой. Я его взял прям со странички github проекта. Собрал только его в кучу и выглядит он так:
external_components:
- source:
type: git
url: https://github.com/GrKoR/esphome_aux_ac_component
uart:
id: ac_uart_bus
# ВНИМАНИЕ! Для TX и RX на платах типа NodeMCU используйте GPIO4 (D2) и GPIO5 (D1)!
# подробнее см. в документации: https://github.com/GrKoR/esphome_aux_ac_component/blob/master/docs/HARDWARE.md
tx_pin: 18
rx_pin: 17
baud_rate: 4800
data_bits: 8
parity: EVEN
stop_bits: 1
climate:
- platform: aux_ac
name: "AC Name"
id: aux_id
uart_id: ac_uart_bus
period: 7s
show_action: true
display_inverted: false
timeout: 150
indoor_temperature:
name: AC Indoor Temperature
id: ac_indoor_temp
accuracy_decimals: 1
internal: false
outdoor_temperature:
name: AC Outdoor Temperature
id: ac_outdoor_temp
internal: false
outbound_temperature:
name: AC Coolant Outbound Temperature
id: ac_outbound_temp
internal: false
inbound_temperature:
name: AC Coolant Inbound Temperature
id: ac_inbound_temp
internal: false
compressor_temperature:
name: AC Compressor Temperature
id: ac_strange_temp
internal: false
display_state:
name: AC Display State
id: ac_display_state
internal: false
defrost_state:
name: AC Defrost State
id: ac_defrost_state
internal: false
inverter_power:
name: AC Inverter Power
id: ac_inverter_power
internal: false
inverter_power_limit_value:
name: AC Inverter Power Limit Value
id: ac_inverter_power_limit_value
internal: false
inverter_power_limit_state:
name: AC Inverter Power Limit State
id: ac_inverter_power_limit_state
internal: false
preset_reporter:
name: AC Preset Reporter
id: ac_preset_reporter
internal: false
vlouver_state:
name: AC Vertical Louvers State
id: ac_vlouver_state
internal: false
visual:
min_temperature: 16
max_temperature: 32
temperature_step: 1
supported_modes:
- HEAT_COOL
- COOL
- HEAT
- DRY
- FAN_ONLY
custom_fan_modes:
- MUTE
- TURBO
supported_presets:
- SLEEP
custom_presets:
- CLEAN
- HEALTH
- ANTIFUNGUS
supported_swing_modes:
- VERTICAL
- HORIZONTAL
- BOTH
Этот код вставляется сразу после всего того, что создано автоматически после создания нового устройства в ESPHome.
Ну и в коде нужно поменять пины tx_pin: 18 rx_pin: 17
на свои.
rx и tx пины подключаются всегда крест на крест. И какой пин из usb rx, а какой tx я не знаю. Мне это было не принципиально. Так как я знал, что любой пин я могу назначить как rx так и tx на esp32s3 и по этому я наугад их назвал и всегда мог поменять удалённо. Но я попал с первого раза.
После заливки прошивки и подключения этой сборки в кондиционер у меня сразу все заработало как надо и я получил огромное множество разных параметров из кондиционера:
Тут и температура текучая (которая на пульте кондиционера не показывается) и температура внешнего блока здесь тоже имеется. Её очень полезно использовать например как уличный датчик температуры.
Даже температура компрессора тут показывается. В общем данных более чем достаточно. А покопавшись в проекте на github, можно наверное еще что-то нарыть. Там все отлично описано.