3分钟搞定Home Assistant小米设备图标自定义:从入门到精通
你还在为Home Assistant中小米设备图标混乱、难以快速识别而烦恼吗?本文将带你通过3个简单步骤完成设备分类图标自定义,让智能家居控制面板焕然一新。读完本文后,你将能够:掌握图标配置基本方法、了解不同设备类型的图标设置规则、解决常见的图标显示问题。
准备工作
在开始自定义图标前,请确保你的Home Assistant环境满足以下要求:
- Home Assistant Core版本 ≥ 2024.4.4
- 小米Home集成版本为最新版(可通过hacs.json查看当前版本)
- 已安装小米Home集成并成功添加设备
设备分类与图标对应关系
小米Home集成根据设备类型自动分配默认图标,这些定义主要位于设备类型对应的Python文件中:
| 设备类型 | 对应文件 | 默认图标 | 自定义方法 |
|---|---|---|---|
| 灯光 | light.py | mdi:lightbulb-group | 修改_attr_icon属性 |
| 空调 | climate.py | mdi:air-conditioner | 修改spec_modify.yaml |
| 传感器 | sensor.py | 根据类型自动分配 | 通过spec_modify.yaml指定 |
| 开关 | switch.py | mdi:toggle-switch | 自定义属性文件 |
云端控制图标设置
云端控制模式下,图标配置主要通过修改设备规格定义文件实现。小米Home集成使用MIoT-Spec-V2协议定义设备属性,包括图标信息。
步骤:
- 找到设备对应的MIoT规格URN,可在设备详情页查看
- 编辑miot/specs/spec_modify.yaml文件
- 添加或修改图标定义,格式如下:
urn:miot-spec-v2:device:plant-monitor:0000A030:hhcc-v1:1:
prop.2.1:
name: soil-moisture
icon: mdi:watering-can # 自定义图标
- 重启Home Assistant或在集成配置页面点击"更新实体转换规则"
本地控制图标设置
对于支持本地控制的设备(需小米中枢网关),图标设置可直接在设备属性文件中修改,实时生效无需重启。
以灯光设备为例:
- 打开light.py文件
- 找到设备类定义,修改
_attr_icon属性:
class Light(MIoTServiceEntity, LightEntity):
"""Light entities for Xiaomi Home."""
def __init__(self, miot_device: MIoTDevice, entity_data: MIoTEntityData) -> None:
super().__init__(miot_device=miot_device, entity_data=entity_data)
if miot_device.did.startswith('group.'):
self._attr_icon = 'mdi:lightbulb-group' # 修改为所需图标
- 保存文件后,在Home Assistant开发者工具中刷新实体
自定义图标进阶技巧
使用多语言图标定义
对于需要支持多语言的场景,可通过miot/i18n/multi_lang.json文件定义不同语言环境下的图标显示:
{
"urn:miot-spec-v2:device:plant-monitor:0000A030:hhcc-v1:1": {
"zh-Hans": {
"service:002:property:001": "土壤湿度",
"service:002:property:001:icon": "mdi:watering-can"
},
"en": {
"service:002:property:001": "Soil Moisture",
"service:002:property:001:icon": "mdi:watering-can"
}
}
}
动态图标设置
对于需要根据设备状态变化图标的场景,可在设备类中重写icon属性方法:
@property
def icon(self) -> str:
"""Return the icon based on device state."""
if self.is_on:
return "mdi:lightbulb-on"
return "mdi:lightbulb-off"
常见问题与解决方法
图标不生效怎么办?
- 确认修改的文件路径正确,特别是设备对应的规格文件
- 检查图标名称是否正确,可参考Material Design Icons
- 在集成配置页面执行"更新实体转换规则":设置 > 设备与服务 > 已配置 > Xiaomi Home > 配置 > 更新实体转换规则
如何恢复默认图标?
删除miot/specs/spec_modify.yaml中对应的自定义图标配置,或重新安装集成。
支持哪些图标库?
Home Assistant支持Material Design Icons(mdi)、Home Assistant Icons(hass)等,推荐使用mdi图标库以获得最佳兼容性。
总结与展望
通过本文介绍的方法,你已经掌握了小米设备在Home Assistant中的图标自定义技巧。无论是简单修改单个设备图标,还是批量配置一类设备,都可以通过修改规格文件或设备属性实现。
随着小米Home集成的不断更新,未来可能会提供更直观的UI配置界面,无需手动编辑文件。如果你有任何自定义图标的经验或创意,欢迎在评论区分享!
别忘了点赞、收藏本文,关注作者获取更多Home Assistant技巧。下期我们将介绍"小米设备自动化场景高级配置",敬请期待!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





