HomeAssistant(8) - HelloMorningStar/HomeAssistant GitHub Wiki

如何控制空调?

实验材料

小米红外万能遥控器,米家互联网空调

提到米家互联网空调,吐槽:homeassistant居然没有控制组件,小米红外外能遥控也没有该设备的库,只好用学习功能,郁闷!
空调采用MQTT HAV和小米IR remote进行控制:

1,研究小米ir remote

  1. 用input_boolean制作一个布尔开关
input_boolean:
  airconditioner1:
    name: AC1
    initial: off
  1. 用remote学习和制作红外控制码

remote:
  - platform: xiaomi_miio
    name: "主卧遥控器"
    host: 192.168.x.xx
    token: 1xxxa9c3ea7xx23dbeexxxxxfc79xxx3
    slot: 1
    timeout: 30
    hidden: false
    commands:
      activate_power_on_dehumidification:
        command:
          - raw:Z6XzAO8BAABRAgAAIAYAABEQAADnIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA$
      activate_power_off_dehumidification:
        command:
          - raw:Z6XzANQBAAD+AQAAQQIAABYGAAA/BgAAMhAAAMogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA$


  1. 在script.yaml中添加描述, 在自动化的action中需要调用script service
xiaomi_air_conditioner_power_on:
  sequence:
    - service: remote.send_command
      entity_id: 'remote.zhu_wo_yao_kong_qi'
      data:
        command:
          - 'activate_power_on_dehumidification'
xiaomi_air_conditioner_power_off:
  sequence:
    - service: remote.send_command
      entity_id: 'remote.zhu_wo_yao_kong_qi'
      data:
        command:
          - 'activate_power_off_dehumidification'
  1. 在自动化中实现开关控制功能
  - alias: turn on the AC1
    hide_entity: true
    trigger:
      platform: state
      entity_id: input_boolean.airconditioner1
      from: 'off'
      to: 'on'
    action:
#      - service: ifttt.trigger
#        data: {"event": "input_boolean.light1"} 
      - service: script.xiaomi_air_conditioner_power_on
        entity_id: input_boolean.airconditioner1
  - alias: turn off the AC1
    hide_entity: true
    trigger:
      platform: state
      entity_id: input_boolean.airconditioner1
      from: 'on'
      to: 'off'
    action:
#      - service: ifttt.trigger
#        data: {"event": "input_boolean.light1"} 
      - service: script.xiaomi_air_conditioner_power_off
        entity_id: input_boolean.airconditioner1

  1. 在group中作一张卡片
  master_bedroom_climates:
    name: 主卧Climates
    entities:
      - input_boolean.airconditioner1 #主卧空调开关

2,研究MQTT HVAV

HVAC (Heating, Ventilation and Air Conditioning)
参考此文以及另外一篇文章,大概分为以下几个步骤:
1)安装MQTT客户端,安装MQTT库,运行客户端;
2)配置configuration.yaml;
3)测试;
4)将MQTT客户端作为服务运行
以上理论可行,不过我目前用的是小米ir,不能用MQTT,好在有一个componets
5) 关于使用customer components时,去github将components克隆到本地,然后将相应的componets复制到/.homeassistant/customer_components/目录下,在yaml文件中按照例子进行配置即可使用

3,研究Climate

it's a good tool

about climate, try these codes:

climate:
  - platform: xiaomi_miio_airconditioningcompanion
    name: Aqara Air Conditioning Companion
    host: 192.168.2.60
    token: 4b02fc51d38a
    target_sensor: sensor.temperature_158d000159f05a
    scan_interval: 60
  - platform: xiaomi_miio_airconditioningcompanion
    name: Xiaomi Air Conditioning Companion
    host: 192.168.2.125
    token: 73a8d7000799d58d
    target_sensor: sensor.temperature_158d00015319a6
    scan_interval: 60
  - platform: xiaomi_remote
    name: N-AC
    remote: remote.bei_wo_shi_yao_kong_qi
    commands: !include mijia-internet-aircondictioner.yaml
    temp_sensor: sensor.temperature_158d000159f05a
#    power_template: "{{ states.climate.aqara_air_conditioning_companion.attributes[load_power] | float > 10 }}"
    power_template: "{{ states.climate.aqara_air_conditioning_companion.attributes['load_power'] | float > 15 }}"
    min_temp: 16
    max_temp: 32
    target_temp: 24
    target_temp_step: 1
#    operation_mode: cool
    hvac_mode: 'off'
    fan_mode: auto
    customize:
      hvac_modes:
        - 'off'
        - cool
        - heat
        - dry
        - fan_only
        - auto
      fan_modes:
#        - low
#        - medium
#        - high
        - auto 
#    commands: #!include Roda-YKR-H-102E.yaml
  - platform: xiaomi_remote
    name: 主卧空调
    remote: remote.zhu_wo_yao_kong_qi
    commands: !include Roda-YKR-H-102E.yaml
    temp_sensor: sensor.temperature_158d00015319a6
    power_template: "{{ states.climate.xiaomi_air_conditioning_companion.attributes['load_power'] | float > 15 }}"
#    power_template: "{{ states('sensor.plug_power_158d0002366887') | float > 50 }}"
    min_temp: 16
    max_temp: 32
    target_temp: 24
    target_temp_step: 1
#    operation_mode: cool
    hvac_mode: 'off'
    fan_mode: auto
    customize:
      hvac_modes:
        - 'off'
        - cool
        - heat
        - dry
        - fan_only
        - auto
      fan_modes:
#        - low
#        - medium
#        - high
        - auto  
⚠️ **GitHub.com Fallback** ⚠️