4、集成与设备:什么是集成(Integration)、添加第一个集成(如系统传感器)、设备与实体概念
好,咱们进入第四讲。
前面几章我们把 Home Assistant 的安装和环境搭建讲完了。现在你面前应该有一个能跑起来的 HA 界面了。但说实话,光有个空壳子没什么用,对吧?
这一章,我们来聊聊 HA 的灵魂——集成、设备和实体。
这三个词,你以后每天都会跟它们打交道。搞懂了它们,你就真正入门了。
4.1 什么是集成(Integration)?
先问个问题:你家里有小米的智能灯、涂鸦的插座、还有自己用 ESP8266 焊的一个温度传感器。它们用的协议、通信方式都不一样。HA 怎么跟它们对话?
答案就是——集成。
说白了,集成就是一个“翻译官”或者“驱动程序”。它告诉 HA:“嘿,这个小米灯是用米家协议通信的,你发这条指令它就能开灯,收到那条数据就代表亮度。”
我个人的习惯是,把集成想象成一个适配器。你买了个国外的电器,插头跟国内插座不匹配,需要一个转换头。集成就是这个转换头。
核心定义:集成是 Home Assistant 与外部设备、服务或协议进行通信的软件组件。它负责将外部数据转换成 HA 能理解的格式,并将 HA 的指令下发给设备。
在 HA 里,集成有两种来源:
- 内置集成:HA 官方已经帮你写好了。比如系统传感器、天气、日历等。你点几下鼠标就能用。
- 自定义集成:社区大神写的,或者你自己写的。需要通过 HACS(Home Assistant Community Store)安装。比如一些冷门品牌或者自己 DIY 的设备。
嗯,这里要注意:不是所有设备都有现成的集成。买设备前,最好先去 HA 官网的集成页面查一下,或者搜一下社区有没有人做过。我曾经就买过一个冷门牌子的窗帘电机,结果发现根本没有集成,最后只能自己抓包写了一个,折腾了两天。
4.2 添加第一个集成:系统传感器
光说不练假把式。咱们来添加第一个集成——系统传感器。
这个集成不需要任何外部硬件,它直接读取你运行 HA 的那台电脑或树莓派的信息。比如 CPU 温度、内存使用率、磁盘剩余空间等。
为什么先加这个?因为零成本、零风险,而且能让你立刻看到“集成”的效果。
操作步骤:
- 打开 HA 界面,点击左侧的「配置」。
- 在配置页面里,找到「设备与服务」。
- 点击右下角的「添加集成」按钮。
- 在搜索框里输入「System Monitor」或者「系统监视器」。
- 点击搜索结果,然后按照提示选择你要监控的指标(比如 CPU 温度、内存等)。
- 点击「提交」,搞定。
就这么简单。几秒钟后,你的 HA 里就会多出几个传感器实体。
小技巧:如果你用的是树莓派,强烈建议加上 CPU 温度监控。我遇到过好几次树莓派因为散热不好导致 HA 卡死,加了温度传感器后,我设置了一个自动化:温度超过 75 度就自动开启风扇。从此再没出过问题。
4.3 设备与实体概念
好,现在你的 HA 里有了几个传感器。但你打开「设备与服务」页面,会看到两个不同的列表:一个是「设备」,一个是「实体」。
这两个东西有什么区别?
我刚开始玩 HA 的时候也被搞晕过。后来我用一个比喻就彻底搞明白了:
- 设备(Device):就是那个物理存在的硬件。比如你墙上那个开关、天花板上的灯、桌上的传感器。它是一个“容器”。
- 实体(Entity):是设备提供的具体功能或数据点。比如一个灯设备,它可能有“开关”实体(控制亮灭)、“亮度”实体(控制明暗)、“颜色”实体(控制色温)。
你想想看,一个设备可以包含多个实体。反过来,一个实体只能属于一个设备。
举个例子:
| 设备(Device) | 实体(Entity) | 说明 |
|---|---|---|
| 小米智能灯 | light.xiaomi_lamp | 开关实体,控制亮灭 |
| 小米智能灯 | light.xiaomi_lamp_brightness | 亮度实体,调节明暗 |
| 小米智能灯 | light.xiaomi_lamp_color | 颜色实体,切换色温 |
| 树莓派(系统监视器) | sensor.cpu_temperature | CPU 温度实体 |
| 树莓派(系统监视器) | sensor.memory_usage | 内存使用率实体 |
看到没?一个「小米智能灯」设备,下面挂了三个实体。一个「树莓派」设备,下面挂了两个实体。
在 HA 里,每个实体都有一个唯一的 ID,格式通常是:domain.object_id。比如 sensor.cpu_temperature,sensor 是域(domain),表示这是一个传感器;cpu_temperature 是对象 ID,表示具体是哪个传感器。
避坑指南:我曾经犯过一个错误——在自动化里直接用了设备的名称,而不是实体的 ID。结果设备名称一改,自动化就失效了。记住:自动化、脚本、模板里,永远用实体的 ID(entity_id),不要用设备的名称。实体 ID 是唯一的、不变的,设备名称你可以随便改。
4.4 三者之间的关系
最后,咱们把集成、设备、实体这三者的关系串起来:
- 集成是桥梁,负责跟外部设备通信。
- 通过集成,HA 发现了设备。
- 每个设备又提供了若干个实体,这些实体才是你真正用来控制或读取数据的对象。
用一句话总结:集成发现设备,设备包含实体,实体是操作的最小单元。
你以后写自动化的时候,操作的都是实体。比如“当 sensor.cpu_temperature 大于 75 时,打开 switch.fan”。这里的 sensor.cpu_temperature 和 switch.fan 都是实体。
好了,这一章的内容就这么多。别小看这三个概念,它们是整个 HA 体系的基石。后面讲自动化、讲模板、讲自定义组件,全都离不开它们。
下一章,咱们来聊聊怎么用「开发者工具」调试和测试这些实体。那可是个宝藏功能。