3分钟搞定Home Assistant小米设备图标自定义:从入门到精通

3分钟搞定Home Assistant小米设备图标自定义:从入门到精通

【免费下载链接】ha_xiaomi_home Xiaomi Home Integration for Home Assistant 【免费下载链接】ha_xiaomi_home 项目地址: https://gitcode.com/gh_mirrors/ha/ha_xiaomi_home

你还在为Home Assistant中小米设备图标混乱、难以快速识别而烦恼吗?本文将带你通过3个简单步骤完成设备分类图标自定义,让智能家居控制面板焕然一新。读完本文后,你将能够:掌握图标配置基本方法、了解不同设备类型的图标设置规则、解决常见的图标显示问题。

准备工作

在开始自定义图标前,请确保你的Home Assistant环境满足以下要求:

  • Home Assistant Core版本 ≥ 2024.4.4
  • 小米Home集成版本为最新版(可通过hacs.json查看当前版本)
  • 已安装小米Home集成并成功添加设备

设备分类与图标对应关系

小米Home集成根据设备类型自动分配默认图标,这些定义主要位于设备类型对应的Python文件中:

设备类型对应文件默认图标自定义方法
灯光light.pymdi:lightbulb-group修改_attr_icon属性
空调climate.pymdi:air-conditioner修改spec_modify.yaml
传感器sensor.py根据类型自动分配通过spec_modify.yaml指定
开关switch.pymdi:toggle-switch自定义属性文件

云端控制图标设置

云端控制模式下,图标配置主要通过修改设备规格定义文件实现。小米Home集成使用MIoT-Spec-V2协议定义设备属性,包括图标信息。

云端控制架构

步骤:

  1. 找到设备对应的MIoT规格URN,可在设备详情页查看
  2. 编辑miot/specs/spec_modify.yaml文件
  3. 添加或修改图标定义,格式如下:
urn:miot-spec-v2:device:plant-monitor:0000A030:hhcc-v1:1:
  prop.2.1:
    name: soil-moisture
    icon: mdi:watering-can  # 自定义图标
  1. 重启Home Assistant或在集成配置页面点击"更新实体转换规则"

本地控制图标设置

对于支持本地控制的设备(需小米中枢网关),图标设置可直接在设备属性文件中修改,实时生效无需重启。

本地控制架构

以灯光设备为例:

  1. 打开light.py文件
  2. 找到设备类定义,修改_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'  # 修改为所需图标
  1. 保存文件后,在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"

常见问题与解决方法

图标不生效怎么办?

  1. 确认修改的文件路径正确,特别是设备对应的规格文件
  2. 检查图标名称是否正确,可参考Material Design Icons
  3. 在集成配置页面执行"更新实体转换规则":设置 > 设备与服务 > 已配置 > Xiaomi Home > 配置 > 更新实体转换规则

如何恢复默认图标?

删除miot/specs/spec_modify.yaml中对应的自定义图标配置,或重新安装集成。

支持哪些图标库?

Home Assistant支持Material Design Icons(mdi)、Home Assistant Icons(hass)等,推荐使用mdi图标库以获得最佳兼容性。

总结与展望

通过本文介绍的方法,你已经掌握了小米设备在Home Assistant中的图标自定义技巧。无论是简单修改单个设备图标,还是批量配置一类设备,都可以通过修改规格文件或设备属性实现。

随着小米Home集成的不断更新,未来可能会提供更直观的UI配置界面,无需手动编辑文件。如果你有任何自定义图标的经验或创意,欢迎在评论区分享!

别忘了点赞、收藏本文,关注作者获取更多Home Assistant技巧。下期我们将介绍"小米设备自动化场景高级配置",敬请期待!

【免费下载链接】ha_xiaomi_home Xiaomi Home Integration for Home Assistant 【免费下载链接】ha_xiaomi_home 项目地址: https://gitcode.com/gh_mirrors/ha/ha_xiaomi_home

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值