Кондиционеры произведенные на заводах AUX, Midea, Haier легко можно сделать "умными" с помощью esphome, чуть сложнее с заводом TCL. Так получилось, что у меня есть кондиционеры всех этих трех изготовителей. Напишу как управлять кондиционером AUX.
Вся подробная информация есть на странице автора. Описывать процесс прошивки не буду, по ссылке всё подробно рассказано.
Мне особенно повезло т.к. кондиционер был новый, но разъем на плате не распаян.


Аккуратно припаял разъем будто так и было с завода 🙂
Далее собираем конструктор из есп32, конвертера уровней и понижающего блока питания DC-DC.

После этого прошиваем плату, указывая адрес mqtt-сервера и топики для получения команд.
`esphome:
name: aux-ac
friendly_name: AUX a/c
esp32:
board: esp32dev
framework:
type: arduino
logger:
baud_rate: 0
api:
encryption:
key: "+llHAnDDYRvRedZuFqawB+Uzxe32APV4yn8/QJfmkMw="
ota:
- platform: esphome
password: "820226c656c6f92ec792878008e13b2d"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "Aux-Ac Fallback Hotspot"
password: "QF7cOi434wkL"
captive_portal:
mqtt:
broker: 192.168.1.100
reboot_timeout: 0s
id: mqtt_client
external_components:
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
mode_command_topic: aux-ac/climate/ac_name/mode_command/state
fan_mode_state_topic: aux-ac/climate/ac_name/fan_mode/state
fan_mode_command_topic: aux-ac/climate/ac_name/fan_mode_command/state
target_temperature_command_topic: aux-ac/climate/ac_name/target_temperature_command/state`
После этого создаем custom в HOMEd и указываем топики
{
"exposes": [
"thermostat"
],
"real": true,
"options": {
"runningStatus": true,
"systemMode": {
"enum": [
"off",
"cool",
"heat",
"heat_cool",
"dry",
"fan_only"
]
},
"targetTemperature": {
"max": 32,
"min": 16
}
},
"bindings": {
"running": {
"inTopic": "aux-ac/climate/ac_name/action/state"
},
"systemMode": {
"inTopic": "aux-ac/climate/ac_name/mode/state",
"outTopic": "aux-ac/climate/ac_name/mode_command/state"
},
"targetTemperature": {
"inTopic": "aux-ac/climate/ac_name/target_temperature/state",
"outTopic": "aux-ac/climate/ac_name/target_temperature_command/state"
},
"temperature": {
"inTopic": "aux-ac/sensor/ac_indoor_temperature/state"
}
},
"availabilityTopic": "aux-ac/status",
"availabilityPattern": "{{ online if value == online else offline }}"
}
Единственное у меня не получилось отправлять в мкутт скорость вентилятора, в топики пишется только "mute" и "turbo", в остальных режимах пустое сообщение. Возможно что это из-за того, что у меня еще не подключен внешний блок, если получится добить, то дополню пост.
Оставлю ссылки на Midea, TCL, Haier