小米空气净化器2代接入HA控制面板问题
本帖最后由 lywcl2003 于 2019-1-10 04:48 编辑看到Jones神的:《[环境健康] 最新小米空气净化器2代接入HASS方法及HA控制面板》一贴根据提示又看了好几篇文章
大概都弄好了,界面也出来了,但是只能控制开关和提示音,模式和灯光不能控制。我的版本Home Assistant 0.84.6
已经安装了python-miio:
源文件我基本都没动,就修改了token和把airpurifier.替换成fan.xiaomi_miio_
检查配置提示:
Invalid config for : required key not provided @ data['action']. Got Nonerequired key not provided @ data['trigger']. Got None. (See ?, line ?). Please check the docs at https://home-assistant.io/components/automation/
只有把automation:那部分的所有代码都删除,就不提示了,但是还是控制不了“模式”和“灯光”
而且界面显示里有个自动化面板,几个开关也不起作用。
请帮我看看什么问题,谢谢
下面是我的代码:
#fan:
# - platform: xiaomi_airpurifier
# name: Xiaomi Air Purifier 2
# host: 192.168.6.143
# token: xxxxxxxxxxx
fan:
- platform: xiaomi_miio
name: Xiaomi Air Purifier 2
host: 192.168.1.206
token: 6042ccbb45811c7160fad1d9eec4d921
sensor:
- platform: template
sensors:
xiaomi_ap_aqi:
friendly_name: 空气质量
value_template: "{{ states.fan.xiaomi_air_purifier_2.attributes.aqi }}"
unit_of_measurement: AQI
xiaomi_ap_temp:
friendly_name: 温度
value_template: "{{ states.fan.xiaomi_air_purifier_2.attributes.temperature }}"
unit_of_measurement: °C
xiaomi_ap_humid:
friendly_name: 湿度
value_template: "{{ states.fan.xiaomi_air_purifier_2.attributes.humidity }}"
unit_of_measurement: "%"
switch:
- platform: template
switches:
xiaomi_ap_buzzer:
value_template: "{{ is_state_attr('fan.xiaomi_air_purifier_2', 'buzzer', true) }}"
turn_on:
service: fan.xiaomi_miio_set_buzzer_on
entity_id: fan.xiaomi_air_purifier_2
turn_off:
service: fan.xiaomi_miio_set_buzzer_off
entity_id: fan.xiaomi_air_purifier_2
input_select:
xiaomi_ap_mode:
name: 模式
icon: mdi:fan
options:
- "自动"
- "睡眠"
- "最爱"
- "待机"
xiaomi_ap_led:
name: LED灯
icon: mdi:led-on
options:
- "亮光"
- "微光"
- "关闭"
group:
xiaomi_air_purifier:
name: 小米空净
view: no
control: hidden
entities:
- fan.xiaomi_air_purifier_2
- switch.xiaomi_ap_buzzer
#- sensor.xiaomi_ap_aqi
- sensor.xiaomi_ap_temp
- sensor.xiaomi_ap_humid
- sensor.xiaomi_ap_filter_used
- sensor.xiaomi_ap_filter_life
- input_select.xiaomi_ap_mode
- input_select.xiaomi_ap_led
automation:
- alias: xiaomi_ap_get_mode
initial_state: true
trigger:
platform: time
seconds: /5
action:
service: input_select.select_option
data_template:
entity_id: input_select.xiaomi_ap_mode
option: >
{% if states.fan.xiaomi_air_purifier_2.attributes.mode == "auto" %}自动
{% elif states.fan.xiaomi_air_purifier_2.attributes.mode == "silent" %}睡眠
{% elif states.fan.xiaomi_air_purifier_2.attributes.mode == "favorite" %}最爱
{% elif states.fan.xiaomi_air_purifier_2.attributes.mode == "idle" %}待机
{% 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.xiaomi_air_purifier_2
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
{% elif states.input_select.xiaomi_ap_mode.state == "待机" %}Idle
{% endif %}
- alias: xiaomi_ap_get_led
initial_state: true
trigger:
platform: time
seconds: /5
action:
service: input_select.select_option
data_template:
entity_id: input_select.xiaomi_ap_led
option: >
{% if states.fan.xiaomi_air_purifier_2.attributes.led_brightness == 0 %}亮光
{% elif states.fan.xiaomi_air_purifier_2.attributes.led_brightness == 1 %}微光
{% elif states.fan.xiaomi_air_purifier_2.attributes.led_brightness == 2 %}关闭
{% endif %}
- alias: xiaomi_ap_set_led
initial_state: true
trigger:
platform: state
entity_id: input_select.xiaomi_ap_led
action:
service: fan.xiaomi_miio_set_led_brightness
data_template:
entity_id: fan.xiaomi_air_purifier_2
brightness: >
{% if states.input_select.xiaomi_ap_led.state == "亮光" %}0
{% elif states.input_select.xiaomi_ap_led.state == "微光" %}1
{% elif states.input_select.xiaomi_ap_led.state == "关闭" %}2
{% endif %}
homeassistant:
customize:
fan.xiaomi_air_purifier_2:
friendly_name: 空净开关
extra_badge:
entity_id: sensor.xiaomi_ap_aqi
extra_data_template: 滤芯已用${attributes.filter_hours_used}小时,剩余${attributes.filter_life_remaining}%
switch.xiaomi_ap_buzzer:
icon: mdi:volume-high
friendly_name: 提示音
sensor.xiaomi_ap_aqi:
icon: mdi:blur
sensor.xiaomi_ap_humid:
icon: mdi:water-percent
platform改回来就可以了。 楼主的是2还是2S?我的2S连基本的功能都无法控制啊 缥缈的孤鸿 发表于 2019-1-10 08:11
platform改回来就可以了。
1.在configuration.yaml增加packages: !include_dir_named packages
2.新建packages文件夹
3.在homeassistant配置文件夹下新建www/custom_ui文件夹,将官方组件文件里的 state-card-custom-ui.html 和 state-card-custom-ui.html.gz 放到/www/custom_ui/下
4.在homeassistant/custom_components文件夹下新建customizer文件夹,将官方组件文件放到customizer文件夹下;再将官方组件包里的state-card-custom-ui-es5.html 和 state-card-custom-ui-es5.html.gz 文件放到/www/custom_ui/ 文件夹下
5.在configuration.yaml里的packages: !include_dir_named packages行下面添加代码:
customize_glob:
"*.*":
custom_ui_state_card: state-card-custom-ui
以及下面代码:
frontend:
extra_html_url:
- /local/custom_ui/state-card-custom-ui.html
extra_html_url_es5:
- /local/custom_ui/state-card-custom-ui-es5.html
到这此检测配置是成功的。
6.在configuration.yaml文件里写入:
fan:
#小屋空气净化器
- platform: xiaomi_miio
name: xiaowukongqijinghuaqi
host: 192.168.1.206
token: 6042ccbb45811c7160fad1d9eec4d921
model: zhimi.airpurifier.m1
7.复制xiaomi_air_purifier.yaml文件到packages文件夹
8.修改token和IP地址
9.修改后的前几行:
fan:
- platform: xiaomi_airpurifier
name: Xiaomi Air Purifier 2
host: 192.168.1.206
token: 6042ccbb45811c7160fad1d9eec4d921
保存后检测配置提示:
Invalid config for : required key not provided @ data['action']. Got Nonerequired key not provided @ data['trigger']. Got None. (See ?, line ?). Please check the docs at https://home-assistant.io/components/automation/Platform not found: fan.xiaomi_airpurifier
10.再次修改xiaomi air_purifier.yaml文件:
把- platform: xiaomi_airpurifier改成:- platform: xiaomi_miio保存后检测配置提示:
Invalid config for : required key not provided @ data['action']. Got Nonerequired key not provided @ data['trigger']. Got None. (See ?, line ?). Please check the docs at https://home-assistant.io/components/automation/
11.把xiaomi air_purifier.yaml文件中的三处airpurifier.替换成fan.xiaomi_miio_
保存后检测配置提示:(跟没改一样)
Invalid config for : required key not provided @ data['action']. Got Nonerequired key not provided @ data['trigger']. Got None. (See ?, line ?). Please check the docs at https://home-assistant.io/components/automation/
说了这么多,请问platform在哪里改回来,怎么改?
本帖最后由 lywcl2003 于 2019-1-10 12:24 编辑
kleinsoul 发表于 2019-1-10 10:42
楼主的是2还是2S?我的2S连基本的功能都无法控制啊
我的是小米空气净化器2,你需要参考如下帖子:
最新小米空气净化器2代接入HASS方法及HA控制面板
HA0.57【及以上版本】的custom UI简易安装教程
新手必备技能 【package】【检测配置】
本帖最后由 lywcl2003 于 2019-1-10 12:44 编辑
缥缈的孤鸿 发表于 2019-1-10 08:11
platform改回来就可以了。
最新发现:就按照我4楼的操作后重启后,小米空净的面板上的功能都可以用了,自动化一栏的开关也有效了,但是:重启服务失效了,只能去群晖里关掉容器开关再打开才能重启?
贴上我的配置供参考fan:
- platform: xiaomi_airpurifier
name: zhuwomiap
host: 192.168.*0.*
token: bf4*******************
sensor:
- platform: template
sensors:
zhuwomiap_aqi:
friendly_name: 主卧空气质量
value_template: "{{ states.fan.zhuwomiap.attributes.aqi }}"
unit_of_measurement: AQI
zhuwomiap_temp:
friendly_name: 主卧温度
value_template: "{{ states.fan.zhuwomiap.attributes.temperature }}"
unit_of_measurement: °C
zhuwomiap_humid:
friendly_name: 主卧湿度
value_template: "{{ states.fan.zhuwomiap.attributes.humidity }}"
unit_of_measurement: "%"
switch:
- platform: template
switches:
zhuwomiap_buzzer:
value_template: "{{ is_state_attr('fan.zhuwomiap', 'buzzer', true) }}"
turn_on:
service: airpurifier.set_buzzer_on
entity_id: fan.zhuwomiap
turn_off:
service: airpurifier.set_buzzer_off
entity_id: fan.zhuwomiap
input_select:
zhuwomiap_mode:
name: 模式
icon: mdi:fan
options:
- "自动"
- "睡眠"
- "最爱"
- "待机"
zhuwomiap_led:
name: LED灯
icon: mdi:led-on
options:
- "亮光"
- "微光"
- "关闭"
automation:
- alias: zhuwomiap_get_mode
initial_state: true
trigger:
platform: time
seconds: /5
action:
service: input_select.select_option
data_template:
entity_id: input_select.zhuwomiap_mode
option: >
{% if states.fan.zhuwomiap.attributes.mode == "auto" %}自动
{% elif states.fan.zhuwomiap.attributes.mode == "silent" %}睡眠
{% elif states.fan.zhuwomiap.attributes.mode == "favorite" %}最爱
{% elif states.fan.zhuwomiap.attributes.mode == "idle" %}待机
{% endif %}
- alias: zhuwomiap_set_mode
initial_state: true
trigger:
platform: state
entity_id: input_select.zhuwomiap_mode
action:
service: fan.turn_on
data_template:
entity_id: fan.zhuwomiap
speed: >
{% if states.input_select.zhuwomiap_mode.state == "自动" %}Auto
{% elif states.input_select.zhuwomiap_mode.state == "睡眠" %}Silent
{% elif states.input_select.zhuwomiap_mode.state == "最爱" %}Favorite
{% elif states.input_select.zhuwomiap_mode.state == "待机" %}Idle
{% endif %}
- alias: zhuwomiap_get_led
initial_state: true
trigger:
platform: time
seconds: /5
action:
service: input_select.select_option
data_template:
entity_id: input_select.zhuwomiap_led
option: >
{% if states.fan.zhuwomiap.attributes.led_brightness == 0 %}亮光
{% elif states.fan.zhuwomiap.attributes.led_brightness == 1 %}微光
{% elif states.fan.zhuwomiap.attributes.led_brightness == 2 %}关闭
{% endif %}
- alias: zhuwomiap_set_led
initial_state: true
trigger:
platform: state
entity_id: input_select.zhuwomiap_led
action:
service: airpurifier.set_led_brightness
data_template:
entity_id: fan.zhuwomiap
brightness: >
{% if states.input_select.zhuwomiap_led.state == "亮光" %}0
{% elif states.input_select.zhuwomiap_led.state == "微光" %}1
{% elif states.input_select.zhuwomiap_led.state == "关闭" %}2
{% endif %}
homeassistant:
customize:
fan.zhuwomiap:
friendly_name: 卧室空净
extra_badge:
entity_id: sensor.zhuwomiap_aqi
extra_data_template: 滤芯已用${attributes.filter_hours_used}小时,剩余${attributes.filter_life_remaining}%
switch.zhuwomiap_buzzer:
icon: mdi:volume-high
friendly_name: 提示音
sensor.zhuwomiap_aqi:
icon: mdi:blur
device_class: pm25
sensor.zhuwomiap_humid:
icon: mdi:water-percent
device_class: humidity
本帖最后由 lywcl2003 于 2019-1-10 14:35 编辑
缥缈的孤鸿 发表于 2019-1-10 13:22
贴上我的配置供参考fan:
- platform: xiaomi_airpurifier
name: zhuw ...
非常感谢。
你的文件当中与我的有几处不同
1.你的:platform: xiaomi_airpurifier;我的:platform: xiaomi_miio
2.你的:name: zhuwomiap;我的:name: Xiaomi Air Purifier 2
3.你的缺少这一段:
group:
xiaomi_air_purifier:
name: 小米空净
view: no
control: hidden
entities:
- fan.xiaomi_air_purifier_2
- switch.xiaomi_ap_buzzer
- sensor.xiaomi_ap_aqi
- sensor.xiaomi_ap_temp
- sensor.xiaomi_ap_humid
- sensor.xiaomi_ap_filter_used
- sensor.xiaomi_ap_filter_life
- input_select.xiaomi_ap_mode
- input_select.xiaomi_ap_led
4.你的最后几行比我多了两行:
device_class: pm25
device_class: humidity
5.根据你的文件逐条更改尝试,均无效、
一直提示:
Invalid config for : required key not provided @ data['action']. Got Nonerequired key not provided @ data['trigger']. Got None. (See ?, line ?). Please check the docs at https://home-assistant.io/components/automation/
6.如去掉group:这一段的话,我的前台界面就改变了,开关分部到好几个位置,有些开关失效同样无法重启服务
你需要改动的就是1和2,我的group在单独的文件里,4是为了让homekit识别传感器类型,你这个应该是自动化的问题 缥缈的孤鸿 发表于 2019-1-10 14:35
你需要改动的就是1和2,我的group在单独的文件里,4是为了让homekit识别传感器类型,你这个应该是自动化的 ...
是啊我看提示也是说自动化的问题。如果删除自动化那一段就显示配置有效,并且可以重启服务,但是模式调整和LED灯调整两项失效