跳转到内容

Midea 空调

midea 组件创建一个 Midea 空调温控设备。

NOTE

此协议也被某些供应商使用:

可以使用自定义适配器进行控制。硬件实现示例包括 IoT Uni DongleMidea SLWF-01pro (CloudFreeTindie)。

Midea 空调需要配置 UART,baud_rate: 9600。硬件需要 5V 逻辑电平,似乎不适用于 3.3V 逻辑电平。如果您自己制作适配器,请使用逻辑电平转换器。

# 示例配置条目
# 主要设置
climate:
- platform: midea
name: Midea Climate # 使用唯一名称。
period: 1s # 可选
timeout: 2s # 可选
num_attempts: 3 # 可选
autoconf: true # 自动配置大多数选项。
beeper: true # 命令时蜂鸣。
visual: # 可选。可视化设置覆盖示例。
min_temperature: 17 °C # 最小:17
max_temperature: 30 °C # 最大:30
temperature_step: 0.5 °C # 最小:0.5
supported_modes: # 可选。本节中的所有功能可由 autoconf 检测。
- FAN_ONLY
- HEAT_COOL
- COOL
- HEAT
- DRY
custom_fan_modes: # 可选
- SILENT
- TURBO
supported_presets: # 可选。本节中的所有功能可由 autoconf 检测。
- ECO
- BOOST
- SLEEP
custom_presets: # 可选。本节中的所有功能可由 autoconf 检测。
- FREEZE_PROTECTION
supported_swing_modes: # 可选
- VERTICAL
- HORIZONTAL
- BOTH
outdoor_temperature: # 可选。室外温度传感器(长时间不活动后可能显示不正确的值)。
name: Temp
power_usage: # 可选。功耗传感器(仅支持此功能的设备)。
name: Power
humidity_setpoint: # 可选。室内湿度传感器(仅支持此功能的设备)。
name: Humidity
  • uart_id (可选, ID): 如果要使用多个 UART 总线,手动指定 Uart 的 ID。

  • transmitter_id (可选, ID): 当使用 远程发射器 组件发送红外命令时自动定义和使用。

  • period (可选, 时间): 向设备请求的最小间隔。默认为 1s

  • timeout (可选, 时间): 请求响应超时,直到下一次请求尝试。默认为 2s

  • num_attempts (可选, int): 1 到 5 之间的请求尝试次数。默认为 3

  • autoconf (可选, boolean): 自动获取功能。允许您不必手动定义设备的大多数功能。 默认为 True

  • beeper (可选, boolean): 命令时蜂鸣反馈。默认为 False

  • supported_modes (可选, list): 支持的模式列表。可能值为:HEAT_COOLCOOLHEATDRYFAN_ONLY

  • custom_fan_modes (可选, list): 支持的自定义风扇模式列表。可能值为:SILENTTURBO

  • supported_presets (可选, list): 支持的预设模式列表。可能值为:ECOBOOSTSLEEP

  • custom_presets (可选, list): 支持的自定义预设模式列表。可能值为:FREEZE_PROTECTION

  • supported_swing_modes (可选, list): 支持的摆风模式列表。可能值为:VERTICALHORIZONTALBOTH

  • outdoor_temperature (可选): 室外温度传感器的信息。

  • power_usage (可选): 当前功耗传感器的信息。

  • humidity_setpoint (可选): 室内湿度传感器的信息(实验性)。

  • Climate 的所有其他选项。

此动作打开电源。模式和预设将恢复到关闭前的最后状态。

on_...:
then:
- midea_ac.power_on:

此动作关闭电源。

on_...:
then:
- midea_ac.power_off:

此动作切换电源状态。与按下遥控器上的电源按钮相同。

on_...:
then:
- midea_ac.power_toggle:

此动作发送红外 FollowMe 命令,告诉空调使用更准确的室温值,而不是内部室内机传感器。

on_...:
then:
- midea_ac.follow_me:
temperature: !lambda "return x;"
use_fahrenheit: false
beeper: false

配置变量:

  • temperature (必填, float, 可模板化): 设置内部温度传感器的值。该值将被限制在以下范围内:

    • use_fahrenheitfalse 时:0 °C 到 37 °C
    • use_fahrenheittrue 时:32 °F 到 99 °F
  • use_fahrenheit (可选, boolean, 可模板化): 指定 temperature 值是否为华氏度。设置为 true 时,温度以华氏度解析和发送。默认为 false(摄氏度)。

  • beeper (可选, boolean, 可模板化): 设置更新时蜂鸣。默认为 false

此动作切换空调屏幕。如果支持,通过 UART 工作,或通过 远程发射器

on_...:
then:
- midea_ac.display_toggle:

此动作将导风板调整一步。需要 远程发射器

on_...:
then:
- midea_ac.swing_step:

此动作开启蜂鸣反馈。

on_...:
then:
- midea_ac.beeper_on:

此动作关闭蜂鸣反馈。

on_...:
then:
- midea_ac.beeper_off:

可以使用 FollowMe 功能和某些仅通过红外命令可用的其他功能。 以下是如何使用 远程发射器 组件发送带有传感器值的 FollowMe 命令以及控制 LED 显示屏灯光的示例。

# 示例配置条目
remote_transmitter:
pin: GPIO13 # 对于 iot-uni-stick。
carrier_duty_percent: 100% # 红外 LED 为 50%,直接连接 TSOP IR 接收器输出为 100%。
sensor:
- platform: homeassistant
entity_id: sensor.room_sensor # 来自 HASS 的传感器
internal: true
filters:
- throttle: 10s
- heartbeat: 2min # 更新之间的最大间隔。
- debounce: 1s
on_value:
midea_ac.follow_me:
temperature: !lambda "return x;"
beeper: false # 可选。更新时蜂鸣。
# 用于发送显示屏控制命令和摆风步进动作的模板按钮
button:
- platform: template
name: Display Toggle
icon: mdi:theme-light-dark
on_press:
midea_ac.display_toggle:
- platform: template
name: Swing Step
icon: mdi:tailwind
on_press:
midea_ac.swing_step:
switch:
- platform: template
name: Beeper
icon: mdi:volume-source
optimistic: true
turn_on_action:
midea_ac.beeper_on:
turn_off_action:
midea_ac.beeper_off:

感谢以下人员对以下仓库中 UART 协议逆向工程和源代码的贡献:

特别感谢 IRremoteESP8266 项目描述了红外协议。