Home Assistant 卡片分享(五)环境监测与耗材管理卡片
概述
今天分享一个我自用的HomeAssistant耗材监控卡片,这个卡片能够集中展示家中各种智能设备的耗材状态和电池电量,让你一眼就能了解所有设备的工作状态。通过Mushroom Chips Card实现,界面简洁美观,支持状态颜色变化和条件显示。
最终效果展示
耗材充足时:
text
🌡️ 23.5°C 💧 45% 🌀 12.5μg/m³ ☣️ 0.023mg/m³ ✅ 耗材充足耗材不足时:
text
🌡️ 23.5°C 💧 45% 🌀 12.5μg/m³ ☣️ 0.023mg/m³ 🔴 空气净化器滤芯需要更换
⚠️ 水浸卫士电池电量低
⚠️ 温湿度计电池电量低这个卡片主要包含以下几个部分:
环境监测:显示当前温度、湿度、PM10和PM2.5数值
状态指示:根据数值范围显示不同颜色图标
耗材监控:智能显示需要关注的耗材或电池问题
智能条件:所有设备正常时显示"耗材充足",有问题时只显示异常项目
配置步骤
第一步:安装必要组件
确保已安装以下组件:
Mushroom Cards(通过HACS安装)
card-mod(通过HACS安装)
第二步:配置groups.yaml
在configuration.yaml中启用group组件:
yaml
group: !include groups.yaml然后将以下代码添加到groups.yaml:
yaml
# groups.yaml
# 耗材监控组
hao_cai:
name: 耗材监控
entities:
- sensor.xiaomi_cn_845289709_va3_filter_life_level_p_4_1
- sensor.yeelink_cn_blt_3_1kq920if8ck00_contrl_battery_level_p_2_1003
- sensor.xiaomi_cn_822494120_lx40_filter_life_level_p_3_1
- sensor.xiaomi_cn_822494120_lx40_filter_life_level_p_5_1
- sensor.lumi_cn_blt_3_1l1mgh9k8c800_bmcn01_battery_level_p_3_1
- sensor.miaomiaoc_cn_blt_3_1kpg1kpmckc01_t9_battery_level_p_2_1003
- sensor.loock_t2pv1_559c_battery_level
- sensor.loock_t2pv1_559c_battery_level_2
- sensor.lumi_cn_blt_3_1n9o6tqf8ck01_mcn001_battery_level_p_2_1003
- sensor.linp_cn_blt_3_1mrj1a1gccg00_es2_battery_level_p_4_1003
- sensor.xiaomi_sw776_a8b5_battery_level第三步:配置template.yaml
在configuration.yaml中启用template组件:
yaml
template: !include template.yaml然后将以下代码添加到template.yaml:
yaml
# template.yaml
# 耗材监控模板传感器
- binary_sensor:
- name: "空气净化器滤芯需要更换"
unique_id: air_purifier_filter_low
state: "{{ states('sensor.xiaomi_cn_845289709_va3_filter_life_level_p_4_1')|float < 20 }}"
device_class: problem
attributes:
device_name: "米家空气净化器"
original_value: "{{ states('sensor.xiaomi_cn_845289709_va3_filter_life_level_p_4_1') }}"
friendly_name: "空气净化器滤芯"
- name: "双键无线开关电池电量低"
unique_id: double_button_switch_battery_low
state: "{{ states('sensor.yeelink_cn_blt_3_1kq920if8ck00_contrl_battery_level_p_2_1003')|float < 20 }}"
device_class: battery
attributes:
device_name: "双键无线开关"
original_value: "{{ states('sensor.yeelink_cn_blt_3_1kq920if8ck00_contrl_battery_level_p_2_1003') }}"
friendly_name: "双键无线开关电池"
- name: "净水器复合滤芯需要更换"
unique_id: water_filter_composite_low
state: "{{ states('sensor.xiaomi_cn_822494120_lx40_filter_life_level_p_3_1')|float < 20 }}"
device_class: problem
attributes:
device_name: "米家净水器"
original_value: "{{ states('sensor.xiaomi_cn_822494120_lx40_filter_life_level_p_3_1') }}"
filter_type: "复合滤芯"
friendly_name: "净水器复合滤芯"
- name: "净水器RO滤芯需要更换"
unique_id: water_filter_ro_low
state: "{{ states('sensor.xiaomi_cn_822494120_lx40_filter_life_level_p_5_1')|float < 20 }}"
device_class: problem
attributes:
device_name: "米家净水器"
original_value: "{{ states('sensor.xiaomi_cn_822494120_lx40_filter_life_level_p_5_1') }}"
filter_type: "RO反渗透滤芯"
friendly_name: "净水器RO滤芯"
- name: "水浸卫士电池电量低"
unique_id: water_leak_detector_battery_low
state: "{{ states('sensor.lumi_cn_blt_3_1l1mgh9k8c800_bmcn01_battery_level_p_3_1')|float < 20 }}"
device_class: battery
attributes:
device_name: "小米水浸卫士"
original_value: "{{ states('sensor.lumi_cn_blt_3_1l1mgh9k8c800_bmcn01_battery_level_p_3_1') }}"
friendly_name: "水浸卫士电池"
- name: "温湿度计电池电量低"
unique_id: temperature_humidity_battery_low
state: "{{ states('sensor.miaomiaoc_cn_blt_3_1kpg1kpmckc01_t9_battery_level_p_2_1003')|float < 20 }}"
device_class: battery
attributes:
device_name: "米家智能温湿度计"
original_value: "{{ states('sensor.miaomiaoc_cn_blt_3_1kpg1kpmckc01_t9_battery_level_p_2_1003') }}"
friendly_name: "温湿度计电池"
- name: "智能门锁电池电量低"
unique_id: smart_lock_battery_low
state: "{{ states('sensor.loock_t2pv1_559c_battery_level')|float < 20 }}"
device_class: battery
attributes:
device_name: "小米智能门锁"
original_value: "{{ states('sensor.loock_t2pv1_559c_battery_level') }}"
friendly_name: "智能门锁电池"
- name: "门锁猫眼电池电量低"
unique_id: smart_lock_peephole_battery_low
state: "{{ states('sensor.loock_t2pv1_559c_battery_level_2')|float < 20 }}"
device_class: battery
attributes:
device_name: "小米智能门锁猫眼"
original_value: "{{ states('sensor.loock_t2pv1_559c_battery_level_2') }}"
friendly_name: "门锁猫眼电池"
- name: "蓝牙无线开关电池电量低"
unique_id: bluetooth_switch_battery_low
state: "{{ states('sensor.lumi_cn_blt_3_1n9o6tqf8ck01_mcn001_battery_level_p_2_1003')|float < 20 }}"
device_class: battery
attributes:
device_name: "小米蓝牙无线开关"
original_value: "{{ states('sensor.lumi_cn_blt_3_1n9o6tqf8ck01_mcn001_battery_level_p_2_1003') }}"
friendly_name: "蓝牙无线开关电池"
- name: "人体存在传感器电池电量低"
unique_id: presence_sensor_battery_low
state: "{{ states('sensor.linp_cn_blt_3_1mrj1a1gccg00_es2_battery_level_p_4_1003')|float < 20 }}"
device_class: battery
attributes:
device_name: "领普人体存在传感器ES3"
original_value: "{{ states('sensor.linp_cn_blt_3_1mrj1a1gccg00_es2_battery_level_p_4_1003') }}"
friendly_name: "人体存在传感器电池"第四步:添加卡片到仪表板
在HomeAssistant的仪表板编辑器中,添加一个Mushroom Chips Card,并粘贴以下完整配置代码:
yaml
type: custom:mushroom-chips-card
card_mod:
style: |
:host {
--chip-background: transparent !important;
--chip-border-color: transparent !important;
--chip-border-width: 0px !important;
--chip-box-shadow: none !important;
}
ha-card {
border: none !important;
box-shadow: none !important;
background: transparent !important;
}
mushroom-chip {
border: none !important;
box-shadow: none !important;
background: transparent !important;
}
mushroom-chip > * {
border: none !important;
box-shadow: none !important;
background: transparent !important;
}
mushroom-state-item {
border: none !important;
--shape-color: transparent !important;
box-shadow: none !important;
background: transparent !important;
}
chips:
# 温度显示芯片
- type: template
entity: sensor.miaomiaoc_cn_blt_3_1kpg1kpmckc01_t9_temperature_p_3_1001
icon: mdi:thermometer
icon_color: >
{% set temp =
states('sensor.miaomiaoc_cn_blt_3_1kpg1kpmckc01_t9_temperature_p_3_1001')
| float %}
{% if temp < 18 %} blue
{% elif temp < 26 %} green
{% else %} red
{% endif %}
content: >
{{ states('sensor.miaomiaoc_cn_blt_3_1kpg1kpmckc01_t9_temperature_p_3_1001')
| float | round(1) }}°C
tap_action:
action: more-info
hold_action:
action: more-info
# 湿度显示芯片
- type: template
entity: sensor.miaomiaoc_cn_blt_3_1kpg1kpmckc01_t9_relative_humidity_p_3_1002
icon: mdi:water-percent
icon_color: >
{% set humi =
states('sensor.miaomiaoc_cn_blt_3_1kpg1kpmckc01_t9_relative_humidity_p_3_1002')
| float %}
{% if humi < 30 %} orange
{% elif humi < 70 %} green
{% else %} purple
{% endif %}
content: >
{{ states('sensor.miaomiaoc_cn_blt_3_1kpg1kpmckc01_t9_relative_humidity_p_3_1002')
| float | round(0) | int }}%
tap_action:
action: more-info
hold_action:
action: more-info
# PM10显示芯片
- type: template
entity: sensor.xiaomi_cn_845289709_va3_pm10_density_p_3_5
icon: mdi:air-filter
icon_color: >
{% set pm10 = states('sensor.xiaomi_cn_845289709_va3_pm10_density_p_3_5')
| float %}
{% if pm10 <= 50 %} green
{% elif pm10 <= 150 %} yellow
{% else %} deep-orange
{% endif %}
content: >
{{ states('sensor.xiaomi_cn_845289709_va3_pm10_density_p_3_5') | float |
round(1) }} μg/m³
tap_action:
action: more-info
hold_action:
action: more-info
# PM2.5显示芯片
- type: template
entity: sensor.xiaomi_cn_845289709_va3_pm2_5_density_p_3_4
icon: mdi:cloud
icon_color: >
{% set pm25 = states('sensor.xiaomi_cn_845289709_va3_pm2_5_density_p_3_4')
| float %}
{% if pm25 <= 35 %} green
{% elif pm25 <= 75 %} yellow
{% else %} deep-orange
{% endif %}
content: >
{{ states('sensor.xiaomi_cn_845289709_va3_pm2_5_density_p_3_4') | float |
round(1) }} μg/m³
tap_action:
action: more-info
hold_action:
action: more-info
# 条件芯片:所有耗材充足时显示
- type: conditional
conditions:
- condition: state
entity: binary_sensor.kong_qi_jing_hua_qi_lu_xin_xu_yao_geng_huan
state: "off"
- condition: state
entity: binary_sensor.lan_ya_wu_xian_kai_guan_dian_chi_dian_liang_di
state: "off"
- condition: state
entity: binary_sensor.jing_shui_qi_fu_he_lu_xin_xu_yao_geng_huan
state: "off"
- condition: state
entity: binary_sensor.jing_shui_qi_rolu_xin_xu_yao_geng_huan
state: "off"
- condition: state
entity: binary_sensor.shui_jin_wei_shi_dian_chi_dian_liang_di
state: "off"
- condition: state
entity: binary_sensor.wen_shi_du_ji_dian_chi_dian_liang_di
state: "off"
- condition: state
entity: binary_sensor.zhi_neng_men_suo_dian_chi_dian_liang_di
state: "off"
- condition: state
entity: binary_sensor.men_suo_mao_yan_dian_chi_dian_liang_di
state: "off"
- condition: state
entity: binary_sensor.lan_ya_wu_xian_kai_guan_dian_chi_dian_liang_di
state: "off"
- condition: state
entity: binary_sensor.ren_ti_cun_zai_chuan_gan_qi_dian_chi_dian_liang_di
state: "off"
chip:
type: template
content: 耗材充足
icon: mdi:check-circle
icon_color: green
entity: group.hao_cai
tap_action:
action: more-info
hold_action:
action: more-info
# 条件芯片:空气净化器滤芯需要更换
- type: conditional
conditions:
- condition: state
entity: binary_sensor.kong_qi_jing_hua_qi_lu_xin_xu_yao_geng_huan
state: "on"
chip:
type: template
entity: sensor.xiaomi_cn_845289709_va3_filter_life_level_p_4_1
content: 空气净化器滤芯需要更换
icon: mdi:air-filter
icon_color: red
tap_action:
action: more-info
hold_action:
action: more-info
# 条件芯片:双键无线开关电池电量低
- type: conditional
conditions:
- condition: state
entity: binary_sensor.lan_ya_wu_xian_kai_guan_dian_chi_dian_liang_di
state: "on"
chip:
type: template
entity: sensor.yeelink_cn_blt_3_1kq920if8ck00_contrl_battery_level_p_2_1003
content: 双键无线开关电池电量低
icon: mdi:button-pointer
icon_color: red
tap_action:
action: more-info
hold_action:
action: more-info
# 条件芯片:净水器复合滤芯需要更换
- type: conditional
conditions:
- condition: state
entity: binary_sensor.jing_shui_qi_fu_he_lu_xin_xu_yao_geng_huan
state: "on"
chip:
type: template
entity: sensor.xiaomi_cn_822494120_lx40_filter_life_level_p_3_1
content: 净水器复合滤芯需要更换
icon: mdi:water-check
icon_color: red
tap_action:
action: more-info
hold_action:
action: more-info
# 条件芯片:净水器RO滤芯需要更换
- type: conditional
conditions:
- condition: state
entity: binary_sensor.jing_shui_qi_rolu_xin_xu_yao_geng_huan
state: "on"
chip:
type: template
entity: sensor.xiaomi_cn_822494120_lx40_filter_life_level_p_5_1
content: 净水器RO滤芯需要更换
icon: mdi:water-check
icon_color: red
tap_action:
action: more-info
hold_action:
action: more-info
# 条件芯片:水浸卫士电池电量低
- type: conditional
conditions:
- condition: state
entity: binary_sensor.shui_jin_wei_shi_dian_chi_dian_liang_di
state: "on"
chip:
type: template
entity: sensor.lumi_cn_blt_3_1l1mgh9k8c800_bmcn01_battery_level_p_3_1
content: 水浸卫士电池电量低
icon: mdi:water-alert
icon_color: red
tap_action:
action: more-info
hold_action:
action: more-info
# 条件芯片:温湿度计电池电量低
- type: conditional
conditions:
- condition: state
entity: binary_sensor.wen_shi_du_ji_dian_chi_dian_liang_di
state: "on"
chip:
type: template
entity: sensor.miaomiaoc_cn_blt_3_1kpg1kpmckc01_t9_battery_level_p_2_1003
content: 温湿度计电池电量低
icon: mdi:thermometer
icon_color: red
tap_action:
action: more-info
hold_action:
action: more-info
# 条件芯片:智能门锁电池电量低
- type: conditional
conditions:
- condition: state
entity: binary_sensor.zhi_neng_men_suo_dian_chi_dian_liang_di
state: "on"
chip:
type: template
entity: sensor.loock_t2pv1_559c_battery_level
content: 智能门锁电池电量低
icon: mdi:lock
icon_color: red
tap_action:
action: more-info
hold_action:
action: more-info
# 条件芯片:门锁猫眼电池电量低
- type: conditional
conditions:
- condition: state
entity: binary_sensor.men_suo_mao_yan_dian_chi_dian_liang_di
state: "on"
chip:
type: template
entity: sensor.loock_t2pv1_559c_battery_level_2
content: 门锁猫眼电池电量低
icon: mdi:eye
icon_color: red
tap_action:
action: more-info
hold_action:
action: more-info
# 条件芯片:蓝牙无线开关电池电量低
- type: conditional
conditions:
- condition: state
entity: binary_sensor.lan_ya_wu_xian_kai_guan_dian_chi_dian_liang_di
state: "on"
chip:
type: template
entity: sensor.lumi_cn_blt_3_1n9o6tqf8ck01_mcn001_battery_level_p_2_1003
content: 蓝牙无线开关电池电量低
icon: mdi:button-pointer
icon_color: red
tap_action:
action: more-info
hold_action:
action: more-info
# 条件芯片:人体存在传感器电池电量低
- type: conditional
conditions:
- condition: state
entity: binary_sensor.ren_ti_cun_zai_chuan_gan_qi_dian_chi_dian_liang_di
state: "on"
chip:
type: template
entity: sensor.linp_cn_blt_3_1mrj1a1gccg00_es2_battery_level_p_4_1003
content: 人体存在传感器电池电量低
icon: mdi:motion-sensor
icon_color: red
tap_action:
action: more-info
hold_action:
action: more-info卡片功能详解
1. 环境监测部分
温度:显示当前温度,根据温度范围显示不同颜色(<18°C蓝色,18-26°C绿色,>26°C红色)
湿度:显示当前湿度,根据湿度范围显示不同颜色(<30%橙色,30-70%绿色,>70%紫色)
PM10/PM2.5:显示空气质量数据,根据浓度显示不同颜色
2. 耗材监控逻辑
智能显示:当所有设备都正常时,只显示一个"耗材充足"的绿色芯片
问题优先:当有设备需要关注时,隐藏"耗材充足"芯片,只显示具体问题项目
阈值设定:所有电池电量和滤芯寿命低于20%时触发警告
3. 支持的设备
米家空气净化器(滤芯寿命)
双键无线开关(电池电量)
米家净水器(复合滤芯和RO滤芯寿命)
小米水浸卫士(电池电量)
米家智能温湿度计(电池电量)
小米智能门锁(主电池和猫眼电池)
小米蓝牙无线开关(电池电量)
领普人体存在传感器ES3(电池电量)
自定义配置建议
1. 修改实体ID
将代码中的所有实体ID替换为你自己的设备实体ID。可以通过HomeAssistant的开发者工具查看设备实体ID。
2. 调整阈值
可以根据需要调整电量/寿命的警告阈值:
yaml
# 修改template.yaml中的阈值,例如将20改为30
state: "{{ states('sensor.your_entity_id')|float < 30 }}"3. 添加更多设备
如需添加更多监控设备:
在
groups.yaml中添加对应的传感器实体在
template.yaml中添加新的binary_sensor定义在卡片配置中添加相应的条件芯片
4. 样式自定义
可以通过修改card-mod部分的CSS来自定义卡片外观:
yaml
card_mod:
style: |
/* 修改卡片背景色 */
ha-card {
background: rgba(255, 255, 255, 0.1) !important;
backdrop-filter: blur(10px);
border-radius: 15px;
}注意事项
确保所有引用的传感器实体ID正确无误
重启HomeAssistant使groups.yaml和template.yaml配置生效
如果设备名称显示为中文乱码,检查template.yaml的编码格式
条件芯片中的实体ID需要与template.yaml中定义的binary_sensor的unique_id对应
总结
这个耗材监控卡片通过简洁的方式集中展示了家庭智能设备的关键状态信息,实现了"一眼掌握全局"的效果。通过条件逻辑,它只在有问题时显示警告信息,避免了信息过载,是一个非常实用的HomeAssistant仪表板组件。
如果你有更多智能设备,可以按照相同的模式扩展这个卡片,构建属于你自己的智能家居监控中心!