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 温度、内存使用率、磁盘剩余空间等。

为什么先加这个?因为零成本、零风险,而且能让你立刻看到“集成”的效果。

操作步骤:

  1. 打开 HA 界面,点击左侧的「配置」。
  2. 在配置页面里,找到「设备与服务」。
  3. 点击右下角的「添加集成」按钮。
  4. 在搜索框里输入「System Monitor」或者「系统监视器」。
  5. 点击搜索结果,然后按照提示选择你要监控的指标(比如 CPU 温度、内存等)。
  6. 点击「提交」,搞定。

就这么简单。几秒钟后,你的 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_temperaturesensor 是域(domain),表示这是一个传感器;cpu_temperature 是对象 ID,表示具体是哪个传感器。

避坑指南:我曾经犯过一个错误——在自动化里直接用了设备的名称,而不是实体的 ID。结果设备名称一改,自动化就失效了。记住:自动化、脚本、模板里,永远用实体的 ID(entity_id),不要用设备的名称。实体 ID 是唯一的、不变的,设备名称你可以随便改。

4.4 三者之间的关系

最后,咱们把集成、设备、实体这三者的关系串起来:

  1. 集成是桥梁,负责跟外部设备通信。
  2. 通过集成,HA 发现了设备
  3. 每个设备又提供了若干个实体,这些实体才是你真正用来控制或读取数据的对象。

用一句话总结:集成发现设备,设备包含实体,实体是操作的最小单元。

你以后写自动化的时候,操作的都是实体。比如“当 sensor.cpu_temperature 大于 75 时,打开 switch.fan”。这里的 sensor.cpu_temperatureswitch.fan 都是实体。

好了,这一章的内容就这么多。别小看这三个概念,它们是整个 HA 体系的基石。后面讲自动化、讲模板、讲自定义组件,全都离不开它们。

下一章,咱们来聊聊怎么用「开发者工具」调试和测试这些实体。那可是个宝藏功能。