Home Assistant vacuum.locate 动作详解:让机器人吸尘器"现身"的定位信号调用指南
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
本文围绕 Home Assistant 文档中 Locate vacuum(vacuum.locate) 动作展开,讲清如何让迷失在床底、家具后的扫地机播放声音或闪烁灯光,帮助你在第一时间找到它。读完后你将掌握:如何在自动化 UI 中配置该动作、如何用 YAML 精确指定目标设备、目标(target)的五种类型(实体/设备/区域/楼层/标签),以及如何结合 Roomba 的"尘盒已满"传感器编写一套"需要倒尘盒时自动呼叫吸尘器"的实战自动化。
vacuum.locate 动作是什么
Locate vacuum cleaner(vacuum.locate)动作会让吸尘器播放声音或闪烁灯光,使你更容易找到它。典型使用场景是:机器人跑到了床下、沙发后面,或其他一眼看不到的地方——你不想满屋翻找,只需让它"出声"即可。
需要特别注意的一点(来自原文档Good to know):定位信号的具体效果(是发声、闪灯,还是两者兼有)取决于你的吸尘器型号,由对应集成和设备本身决定,Home Assistant 只负责下发这条指令。
在用户界面中使用该动作
如果你习惯以可视化方式构建自动化和脚本,Home Assistant 会引导你逐步完成配置,全程无需 YAML 知识:
- 打开Settings > Automations & scenes;
- 打开一个已有自动化,或新建一个自动化;
- 添加一个动作(Add an action),搜索Locate vacuum cleaner;
- 选择一台或多台吸尘器,也可以选择某个区域(area)或设备组(group);
- 点击Save保存。
UI 表单背后生成的就是下文介绍的 YAML 结构,两者可互相印证。
在 YAML 中调用该动作
如果你直接编写 YAML,或者想搞清楚 Home Assistant 底层到底执行了什么,本节给出完整的技术参考:字段名、字段类型、以及哪些字段必填。
基本示例
action: action: vacuum.locate target: entity_id: vacuum.upstairs这条动作会让vacuum.upstairs播放它的定位信号。
关于目标省略的默认行为:如果不写entity_id,该动作将作用于系统中所有支持定位的吸尘器。这在"全屋所有机器人都报个到"的场景下很有用。
YAML 可配置选项
YAML 有时会提供 UI 上没有的额外选项,用于覆盖更复杂的用例。vacuum.locate的选项如下:
| 字段 | 说明 | 是否必填 | 类型 |
|---|---|---|---|
target | 要定位的吸尘器、区域或设备 | 否(false) | map |
动作的目标(Targets)
该动作以"目标"为操作对象。你可以把动作指向单个实体、一个设备、一个区域、一个楼层,或一个标签,Home Assistant 会对目标背后的每一个匹配的 vacuum 实体执行该动作。目标类型共五种:
- 实体(Entity):某一个具体的 vacuum 实体,如
vacuum.living_room; - 设备(Device):属于该设备的所有 vacuum 实体;
- 区域(Area):某个房间/区域内的所有 vacuum 实体;
- 楼层(Floor):某一层楼上的所有 vacuum 实体;
- 标签(Label):共享同一标签的所有 vacuum 实体。
还支持在同一个动作中混合选择不同目标类型。例如同时添加一个具体实体和一个区域作为目标,让动作一次性作用于两者。
实战示例:尘盒已满时自动定位吸尘器
这是原文档给出的完整自动化示例,值得深入拆解:
部分吸尘器集成会暴露一个"尘盒已满"的二元传感器。以 iRobot Roomba and Braava 集成 为例,查阅其集成文档的 "Integration entities" 一节可以确认,该集成提供的传感器列表中包含Bin full(尘盒已满,如果 Roomba 具备该检测能力)这一项(见 roomba 集成文档)。当吸尘器报告尘盒需要处理时,下面的自动化会让它播放定位信号,让你快速找到它并清理。
- 触发条件(Trigger):Roomba 尘盒已满传感器变为
on - 执行动作(Action):Locate vacuum(vacuum.locate)
- 目标(Target):楼上吸尘器
vacuum.upstairs
automation: alias: "Locate vacuum when bin is full" triggers: - trigger: state entity_id: binary_sensor.roomba_bin_full to: "on" actions: - action: vacuum.locate target: entity_id: vacuum.upstairs这个例子体现了 vacuum.locate 与其他状态类传感器配合的通用模式:任何"设备需要人工介入"的状态(尘盒满、滤网脏、电量异常),都可以触发定位信号,把机器人从它藏身的角落"叫"出来。如果你的集成没有暴露尘盒传感器,可以检查该集成文档的实体列表,确认它实际提供哪些传感器后再选用触发源。
自己动手验证(Try it yourself)
想立刻测试该动作而不动 YAML?打开Settings > Tools > Actions(开发者工具的动作页),搜索vacuum.locate,填入字段后选择Perform action——你可以在不写一行 YAML 的情况下,在自己的真实实体上观察效果。
相关动作
以下动作常与vacuum.locate搭配使用,仓库中均有对应的独立动作文档:
- Pause cleaning(vacuum.pause):暂停当前清扫任务,例如门铃响时让机器人先停一下;
- Clean area(vacuum.clean_area):让吸尘器只清扫已映射的指定区域;
- Start cleaning(vacuum.start)、Stop cleaning(vacuum.stop):开始/停止清扫;
- Return to base(vacuum.return_to_base):让吸尘器回到充电座;
- Set fan speed(vacuum.set_fan_speed):调整吸力档位;
- Turn on / Turn off(vacuum.turn_on / vacuum.turn_off):开关机控制。
如果配置过程中遇到问题,Home Assistant 的社区(Discord、社区论坛、subreddit)都欢迎带上你调用的具体动作和预期行为来提问;也可以把需求用自然语言描述给 AI 助手,请它解释或推荐合适的动作。
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考