3、核心概念:实体、设备、区域、集成,这些概念到底怎么理解?
说实话,刚接触 Home Assistant 的朋友,十有八九会被这四个词绕晕。
「实体」是什么?「设备」又是什么?「区域」和「集成」到底有啥区别?
我当年第一次搭建智能家居时,也在这上面栽过跟头。明明传感器都连上了,自动化却死活不触发,后来才发现是概念搞混了。
今天咱们就把这四个核心概念彻底掰扯清楚。
3.1 实体:最小的数据单元
实体,是 Home Assistant 里最基本的数据单元。
说白了,一个实体代表一个「可读或可写的数据点」。比如:
- 温度传感器的当前温度值
- 灯的开关状态
- 窗帘的开合百分比
每个实体都有一个唯一的 entity_id,格式是 domain.object_id。例如:
sensor.living_room_temperature
light.bedroom_lamp
switch.kitchen_outlet
关键点:实体是「数据」本身,不是「硬件」。
同一个物理传感器,可能产生多个实体。比如一个温湿度传感器,会生成 sensor.temperature 和 sensor.humidity 两个实体。
我在项目中遇到过一位用户,他买了一个多合一传感器,结果在 Home Assistant 里看到了七八个实体,他以为每个实体都需要单独配置。其实只需要关注你需要的那个数据点就行。
3.2 设备:物理硬件的逻辑映射
设备,是「物理硬件」在 Home Assistant 里的逻辑映射。
一个设备可以包含多个实体。比如:
- 一个智能灯泡(设备)包含:开关实体、亮度实体、色温实体
- 一个空调(设备)包含:温度实体、模式实体、风速实体
你想想看,设备的作用是什么?
它把多个相关的实体「打包」在一起,方便你统一管理。比如你想查看某个传感器的工作状态,直接看设备页面就行,不用一个个去翻实体。
我的习惯:在配置自动化时,尽量用「设备」作为触发条件,而不是单个实体。这样当设备固件升级或实体 ID 变化时,自动化不容易断掉。
3.3 区域:空间维度的组织方式
区域,就是「空间位置」的标签。
你可以把实体或设备分配到不同的区域,比如:
- 客厅
- 卧室
- 厨房
- 阳台
区域的好处很明显:
- 仪表盘可以按区域展示设备
- 自动化可以按区域触发(比如「当客厅有人移动时,打开客厅的灯」)
- 语音控制更自然(「关闭卧室的灯」)
嗯,这里要注意:区域是「逻辑分组」,不是物理限制。同一个设备可以出现在多个区域吗?不行,每个设备只能属于一个区域。但你可以通过「分组」或「视图」来实现类似效果。
我曾经踩过的坑:把传感器分配到区域后,发现自动化里引用区域名称时大小写不一致,导致自动化不触发。Home Assistant 的区域名称是区分大小写的,建议统一用小写命名。
3.4 集成:连接外部世界的桥梁
集成,是 Home Assistant 与外部系统通信的「适配器」。
每个集成负责:
- 连接一种特定的硬件或服务(如小米网关、MQTT 服务器、天气 API)
- 将外部数据转换成 Home Assistant 能理解的实体
- 处理设备发现、配置、更新等生命周期
举个例子:
- 「小米 Miio 集成」负责连接小米智能设备
- 「MQTT 集成」负责连接所有通过 MQTT 协议通信的设备
- 「天气集成」负责从网络获取天气数据
集成是「入口」。没有集成,设备就进不来 Home Assistant。
核心关系:
集成 → 发现/配置 → 设备 → 包含 → 实体
区域 → 标记 → 设备/实体
3.5 四个概念的关系总结
咱们用一个实际例子串起来:
| 概念 | 举例 |
|---|---|
| 集成 | 「小米 Miio 集成」 |
| 设备 | 「客厅温湿度传感器」(物理硬件) |
| 实体 | sensor.living_room_temperature(温度值)sensor.living_room_humidity(湿度值) |
| 区域 | 「客厅」 |
流程是这样的:
- 你安装了「小米 Miio 集成」
- 集成自动发现了你家的温湿度传感器(设备)
- 这个设备生成了两个实体:温度和湿度
- 你把设备分配到「客厅」区域
现在,你可以写一条自动化:
当客厅温度 > 30°C 时,打开客厅空调
这条自动化里,用到了区域(客厅)、实体(温度值)、设备(空调)。而集成,是这一切的基础。
我的建议:刚开始搭建时,不用纠结于概念的定义。先动手配置一个集成,看看它生成了哪些设备和实体,然后给它们分配区域。用着用着,自然就理解了。
这四个概念,是 Home Assistant 的骨架。理解了它们,后面的自动化、仪表盘、场景,都会变得清晰很多。
下一章,咱们聊聊「自动化」到底怎么写,才能既简单又可靠。