Home Assistant 中用 unifiprotect.remove_doorbell_text 自动化移除 UniFi Protect 门铃自定义文字
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
本篇技术指南讲解 Home Assistant 中 UniFi Protect 集成的unifiprotect.remove_doorbell_text服务:它的作用边界、UI 与 YAML 两种调用方式、全部参数含义,以及如何与unifiprotect.add_doorbell_text搭配,实现“白天添加门屏提示语、傍晚自动清除”的定时清理方案。读完后你可以独立编写该服务的完整自动化,并理解“按实例而非按设备”这一行为特征。
服务定位与适用场景
unifiprotect.remove_doorbell_text的功能很单一但很实用:从 UniFi Protect 门铃的可用文字列表中删除一条自定义消息。UniFi Protect 门铃(如 G4 系列门铃)的 LCD 屏可以显示自定义文字或预设文字,UniFi Protect 集成文档在“Device Configuration”部分明确列出了这一能力:
configuration text and select for LCD Screen for doorbells to either set custom messages or use predefined messages
也就是说,集成不仅提供实体级的 LCD 文字控制,还提供成对的服务(action)来管理文字列表本身:
unifiprotect.add_doorbell_text:向列表添加一条自定义消息(文档);unifiprotect.remove_doorbell_text:从列表中删除一条已存在的自定义消息(本文主角)。
典型使用场景:你通过 Add doorbell text 在出门期间添加了一条“Leave parcels next door”(包裹放旁边)之类的提示语,傍晚回家后希望它自动从列表里清掉,避免下次误选。删除操作不会改变当前屏幕上正在显示的文字,只影响“可选文字列表”。
运行前提
结合 UniFi Protect 集成文档可以确认几条适用前提:
- 连接模式:该服务属于“Actions”,在API key only模式下不可用(文档明确写道 “Actions, the media source, and the proxy views are not available in this mode”)。因此必须使用Full access(本地用户 + API key)模式配置集成;
- 软件版本:Home Assistant 要求 UniFi Protect
7.2.105或更高版本,且仅支持运行在 UniFi OS Console 上的 UniFi Protect,不支持容器自托管的第三方移植版本; - 设备要求:门铃需具备可显示自定义文字的 LCD 屏(G4 系列门铃支持)。
在用户界面(UI)中使用
如果你习惯可视化方式编写自动化,Home Assistant 会引导你逐步完成。操作步骤如下:
- 进入Settings>Automations & scenes;
- 打开一个已有的自动化或脚本,或选择Create新建;
- 若是新建自动化,先在When部分添加触发器(脚本不需要触发器);
- 在Then do部分选择Add action;
- 在搜索框中搜索并选择UniFi Protect: Remove doorbell text;
- 从你想变更的 UniFi Protect 实例中选择任意一台设备;
- 在Custom message字段中,输入要删除的完全一致的文字内容;
- 选择Save保存。
UI 中的选项说明
| 选项(UI 显示名) | 说明 |
|---|---|
| UniFi Protect NVR | 要变更的 UniFi Protect 实例中的任意一台设备。当接入多个 Protect 实例时,这个选择决定了操作作用在哪个实例上 |
| Custom message | 要删除的已有自定义消息,必须与现有文字完全匹配 |
在 YAML 中使用
在 YAML 中该服务的名称为unifiprotect.remove_doorbell_text。最基础的最小调用示例:
action: | action: unifiprotect.remove_doorbell_text data: device_id: 1234567890abcdef1234567890abcdef message: "Come in"这条语句的作用:从该 UniFi Protect 实例的门铃文字选项中删除消息 “Come in”。注意示例中device_id是一串十六进制 ID,可在 Home Assistant 的设备信息页(设备信息 > 复制设备 ID)中查到。
YAML 参数全解
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
device_id | string | 是 | 目标 UniFi Protect 实例中任意一台设备的 ID。它的作用不是指定“要操作哪台门铃”,而是把请求路由到正确的 Protect 实例——因为门铃文字列表是实例级资源,选同一实例下的任何设备(门铃、摄像头、NVR 均可)都能定位到该实例 |
message | string | 是 | 要删除的已有自定义消息。必须与该消息逐字符完全匹配(区分大小写和空格),不匹配时该服务不会删除任何东西,也不报错 |
行为要点(Good to know)
原文档特别强调了两点,这也是实际使用中最容易踩坑的地方:
- 精确匹配,静默失败:你提供的
message必须与现有门铃文字完全一致,否则什么都不会被删除。建议删除前先在门铃 App 或 UniFi Protect 界面上确认文字原文,注意末尾空格和英文标点; - 按实例寻址,而非按门铃:由于该操作作用于整个 UniFi Protect 实例(文字列表挂在 NVR/实例上,而不是某台具体门铃上),你只需要挑选该实例中的任意一台设备作为
device_id即可。
手动试跑:开发者工具
不想先写 YAML 验证效果?进入Settings>Tools>Actions(开发者工具),搜索unifiprotect.remove_doorbell_text,填入device_id和message两个字段后点击Perform action,即可在不修改任何配置文件的情况下对真实设备做一次实测。这是调试这类“静默失败”服务的最佳手段:先确认实例选对了、再确认文字拼写对了,最后才落到自动化里。
实战自动化:傍晚定时清理临时提示语
原文档给出的完整实战案例:与 Add doorbell text 配对使用——白天添加一条临时提示,傍晚定时移除,形成“有进有出”的完整闭环。
- 触发器:定时(scheduled time)
- 动作:UniFi Protect: Remove doorbell text
完整 YAML 如下:
automation: | alias: "Remove the morning doorbell message" triggers: - trigger: time at: "18:00:00" actions: - action: unifiprotect.remove_doorbell_text data: device_id: 1234567890abcdef1234567890abcdef message: "Leave parcels next door"配套的另一半(早上 08:00 添加消息)可直接复用 Add doorbell text 文档中的示例:
automation: | alias: "Add a morning doorbell message" triggers: - trigger: time at: "08:00:00" actions: - action: unifiprotect.add_doorbell_text data: device_id: 1234567890abcdef1234567890abcdef message: "Leave parcels next door"两条自动化共用同一条消息文本与同一device_id,即可实现 08:00 提示语上架、18:00 自动下架。注意添加侧还有一条约束:消息必须短于 30 个字符(来自 add 服务文档),删除侧则没有长度限制,只有精确匹配要求。
与相邻服务的关系
UniFi Protect 域内与门铃相关的服务从文档结构上看形成一个小组:
- Add doorbell text:向文字列表添加消息(30 字符以内);
- Remove doorbell text:本文主题,按精确文本删除;
- Set chime paired doorbells:管理 Smart Chime 与门铃的配对关系——它管“哪台门铃让哪个门铃响铃器响”,与文字列表管理相互独立。集成文档中同样记录了 Smart Chime 会获得一个手动触发响铃的 Button 实体和音量滑块,可结合响铃类自动化一并设计。
小结
unifiprotect.remove_doorbell_text通过device_id(实例内任意设备)+message(逐字符精确匹配)两个必填字符串参数,从 UniFi Protect 实例级文字列表中删除一条自定义门铃消息;- 该服务仅在 Full access 连接模式下可用,要求 UniFi Protect ≥ 7.2.105 且运行于 UniFi OS Console;
- 不匹配时静默失败,建议先用开发者工具(Settings > Tools > Actions)手动试跑确认拼写与实例;
- 与
unifiprotect.add_doorbell_text组成添加/移除闭环,配合time触发器即可实现门屏提示语的定时发布与自动清理。
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考