HomeAssistant(4) - HelloMorningStar/HomeAssistant GitHub Wiki

嘿嘿!

1,需要在sensor栏显示的内容配置举例:

如果需要显示小米空气净化器的一些数据,例如空气质量,温度,湿度等。需要打开states,去entity找到小米空气净化器fan.kong_qi_jing_hua_qi 这个后面会用到。仔细研究以下例子,今后需要在sensor显示的内容都是这样调用的。

sensor:   

  - platform: darksky
    api_key: dccedf7c6933a6776bce175a14f75ccd
    # 监测内容,可选
    monitored_conditions:
      - summary
      - temperature
      - apparent_temperature

  - platform: template
    sensors:
      airpurifier_aqi:
        friendly_name: 客厅空气质量
        value_template: '{{ states.fan.kong_qi_jing_hua_qi.attributes.aqi }}'
        unit_of_measurement: 'idx'
      airpurifier_temp:
        friendly_name: 客厅温度
        value_template: '{{ states.fan.kong_qi_jing_hua_qi.attributes.temperature }}'
        unit_of_measurement: 'C'
      airpurifier_humidity:
        friendly_name: 客厅湿度
        value_template: '{{ states.fan.kong_qi_jing_hua_qi.attributes.humidity }}'
        unit_of_measurement: '%'

2,得加快学习进度了,自动化配置学习:

automation 安例子配置很简单,但是自动化马上有一个问题要学习,如何对设备进行分组?特别是像小米网关下面的设备,比如switch在configuration.yaml中没有(自动发现的设备),怎么设置分组呢?
按照以下实例:

group:
  living_room_lights:
    name: 客厅Lights
#    view: yes
    entities:
      - light.gateway_light_286c0788b4c4  #网关灯
      - switch.wall_switch_158d00013f83df #走廊灯
      - switch.wall_switch_158d00013f845e #水晶灯
      - switch.wall_switch_158d00013e6b4f #吊灯
      - switch.plug_158d000153de1f #鱼缸灯
  living_room_sockets:
    name: 客厅Sockets
    entities:
      - switch.yin_xiang_dian_yuan #音响电源
      - switch.shu_zhuo_dian_yuan #书桌电源
  living_room_climates:
    name: 客厅Climates
    entities:
      - fan.kong_qi_jing_hua_qi #空气净化器
  master_bedroom:
    name: 主卧Lights
    entities:
      - light.tai_deng #台灯
  north_balcony_socket:
    name: 北阳台Sockets
    entities:
      - switch.bei_yang_tai_qu_nuan_qi #北阳台取暖器
  kitchen_sockets:
    name: 厨房Sockets
    entities:
      - switch.chou_you_yan_ji #油烟机

automation:
  alias: Turn on the lights when the sun sets
  hide_entity: false
  trigger:
    platform: sun
    event: sunset
#    offset: "-01:00:00"
  condition:
    condition: state
    entity_id: group.all_devices
    state: 'home'
  action:
    service: homeassistant.turn_on
    entity_id:
      - group.living_room_lights
      - group.master_bedroom

3,homekite加入未自动显示的entities(注意⚠️homekit有时不工作是因为两台服务器用了相同的homekit bridge name)

这里以小米空气净化器为例子(homekit里面只有风扇开关,其它比如模式,温度等均无法显示):
先说说homeassistant控制界面里,通过 xiaomi_miio加入的空气净化器只有开关,其它参数的显示非常不方便,当然这些参数同样也不能够自动显示在homekit里。这里需要用到几个途径来实现:
1)sensor (利用template,自定义sensors并从entity获取值) 废话不说,直接看代码:

sensor:    
  - platform: template
    sensors:
      xiaomi_ap_aqi:
        friendly_name: 客厅空气质量
        value_template: "{{ states.fan.kong_qi_jing_hua_qi.attributes.aqi }}"
        unit_of_measurement: 'AQI'
      xiaomi_ap_temp:
        friendly_name: 客厅温度
        value_template: "{{ states.fan.kong_qi_jing_hua_qi.attributes.temperature }}"
        unit_of_measurement: '°C'
      xiaomi_ap_humid:
        friendly_name: 客厅湿度
        value_template: "{{ states.fan.kong_qi_jing_hua_qi.attributes.humidity }}"
        unit_of_measurement: '%'

这样空气净化器测量环境的空气质量、温度、湿度读数就可以显示在顶部的显示栏目里了。但是这样显示可能不如专门为小米空气净化器定制一个显示面板,集中显示所有希望看到的参数和控制开关,比如三种模式,那么就需要接下来继续。
2)定义输入选项,input_select

input_select:
  xiaomi_ap_mode:
    name: 模式
    icon: mdi:fan
    options:
      - "自动"
      - "睡眠"
      - "最爱"

以上可以出现选择面板,但是目前还什么都不是,功能执行还需要再接下来赋予。
3)利用automation赋予具体功能

automation  
#读取小米空气净化器三种工作模式的状态,并在控制面板显示当前选择的状态
  - alias: xiaomi_ap_get_mode
    initial_state: true
    hide_entity: true
    trigger:
#      platform: time_pattern
#      seconds: '/5'
      - platform: numeric_state
        entity_id: fan.kong_qi_jing_hua_qi
        value_template: '{{ state.attributes.motor_speed }}'
        above: 0
      - platform: template
        value_template: "{% if is_state('fan.kong_qi_jing_hua_qi', 'on') %}true{% endif %}"
      - platform: template
        value_template: "{% if is_state('fan.kong_qi_jing_hua_qi', 'off') %}true{% endif %}"
      - platform: template
        value_template: "{% if is_state_attr('fan.kong_qi_jing_hua_qi', 'mode', 'auto') %}true{% endif %$
      - platform: template
        value_template: "{% if is_state_attr('fan.kong_qi_jing_hua_qi', 'mode', 'silent') %}true{% endif$
      - platform: template
        value_template: "{% if is_state_attr('fan.kong_qi_jing_hua_qi', 'mode', 'favorite') %}true{% end$
    action:
      service: input_select.select_option
      data_template:
        entity_id: input_select.xiaomi_ap_mode
        option: >
          {% if states.fan.kong_qi_jing_hua_qi.attributes.mode == "auto" %}自动
          {% elif states.fan.kong_qi_jing_hua_qi.attributes.mode == "silent" %}睡眠
          {% elif states.fan.kong_qi_jing_hua_qi.attributes.mode == "favorite" %}最爱
          {% endif %}

#小米空气净化器三种工作模式选择 
    - alias: xiaomi_ap_set_mode
    initial_state: true
    trigger:
      platform: state
      entity_id: input_select.xiaomi_ap_mode
    action:
      service: fan.turn_on
      data_template:
        entity_id: fan.kong_qi_jing_hua_qi
        speed: >
          {% if states.input_select.xiaomi_ap_mode.state == "自动" %}Auto
          {% elif states.input_select.xiaomi_ap_mode.state == "睡眠" %}Silent
          {% elif states.input_select.xiaomi_ap_mode.state == "最爱" %}Favorite
          {% endif %}

4)最后采用group把以上设置的参数和功能生成一个关于小米空气净化器的面板

  living_room_climates:
    name: 客厅Climates
    view: no
    control: hidden
    entities:
      - fan.kong_qi_jing_hua_qi
      - input_select.xiaomi_ap_mode
#      - switch.xiaomi_ap_led
#      - switch.xiaomi_ap_buzzer
      - sensor.xiaomi_ap_aqi
      - sensor.xiaomi_ap_temp
      - sensor.xiaomi_ap_humid

这里我觉得led和声音的开关没有必要设置,毕竟放在客厅不会影响人,反而有显示和声音更好,如需要设置就在switch里创建这些entities

以上设置空气净化器的温度可以在homekit里显示,但是空气质量和湿度却没有显示。什么原因?我还没有来得及去查询。

4,更改icon

http://materialdesignicons.com/

⚠️ **GitHub.com Fallback** ⚠️