Home Assistant Snooz 渐变音量过渡指南:用 snooz.transition_on 平滑淡入白噪音
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
本篇指南聚焦 Home Assistant 中 SNOOZ 白噪音机(White Noise Machine)的snooz.transition_on动作(action):通过它可以在设定时长内将设备音量平滑地渐变到目标值,而不是瞬间跳变。文章会依次讲解 UI 图形化配置与 YAML 两种用法、全部可选参数、目标(target)选择方式,并结合当前仓库中 SNOOZ 集成文档(source/_integrations/snooz.markdown)说明音量与风扇速度百分比之间的映射关系,最后给出一个可直接复制的"睡前淡入"自动化示例。读完你可以在自动化或脚本中独立实现白噪音的柔和淡入效果。
动作概览:什么是 snooz.transition_on
transition_on是 SNOOZ 集成提供的动作,作用是在指定时长内将设备音量逐步过渡到目标值,避免音量瞬间跳变。它最适合这类场景:准备入睡时让白噪音轻轻淡入,而不是"啪"地一下响起来。
关键行为(文档原文定义):
- 如果设备当前处于关闭状态,过渡会从最低音量开始,再逐渐上升到目标音量;
- 过渡完成后音量停留在目标值,设备保持开启;
- 与之互补的
snooz.transition_off(见 source/_actions/snooz.transition_off.markdown)则负责把音量逐渐降到底后关闭设备——两者常成对用于"入睡淡入、起床淡出"。
从集成侧看,SNOOZ 设备在 Home Assistant 中暴露为Fan(风扇)实体,并保持与设备的持久连接(Local Push)。文档明确说明:风扇速度百分比映射到设备的音量等级(见 source/_integrations/snooz.markdown),因此本动作中的volume参数本质上操作的就是实体的速度百分比。
在 UI 中使用该动作(自动化与脚本)
如果你习惯用图形化界面搭建自动化,无需编写 YAML:
- 打开设置(Settings)> 自动化与场景(Automations & scenes);
- 打开一个已有的自动化或脚本;新建时选择创建自动化(Create automation)> 创建新自动化(Create new automation);
- 如果是新自动化,在When(何时触发)部分添加一个触发条件;脚本不需要触发器,它由其他自动化或手动调用时运行;
- 在Then do(然后执行)部分选择添加动作(Add action);
- 选择要控制的设备或实体。在按目标(By target)下(目标说明见下文),选择区域、楼层、设备、标签或实体;
- 在该目标可用的动作列表中,选择过渡开启(Transition on);
- 可选地设置目标音量(Target volume)与过渡时长(Transition duration);
- 点击保存(Save)。
UI 中的选项
| 选项 | 说明 |
|---|---|
| 目标音量(Target volume) | 要过渡到的音量,取值 1~100(百分比)。留空则使用设备上已设置的音量。 |
| 过渡时长(Transition duration) | 到达目标音量所需的时间,1~300 秒。默认 20 秒。 |
在 YAML 中使用该动作
在 YAML 中,动作名写作snooz.transition_on。基础示例:
action: snooz.transition_on target: entity_id: fan.snooz_bedroom data: volume: 33 duration: 120上述配置的含义:把实体fan.snooz_bedroom的音量在两分钟(120 秒)内淡入到 33%。
YAML 选项参考
| 字段 | 类型 | 必填 | 说明 | 默认值 |
|---|---|---|---|---|
volume | integer | 否 | 要过渡到的音量,1~100(百分比)。不指定时使用设备当前已设置的音量。 | — |
duration | integer | 否 | 到达目标音量所需时间,1~300 秒。 | 20 |
动作的目标(Targets)
该动作必须指定目标。目标即动作的作用对象,你可以把动作指向单个实体、设备、区域、楼层或标签,Home Assistant 会对目标背后所有匹配的 fan 实体执行该动作:
- 实体(Entity):某个具体的 fan 实体,例如
fan.snooz_bedroom; - 设备(Device):该设备下的所有 fan 实体;
- 区域(Area):某个房间/区域内的所有 fan 实体;
- 楼层(Floor):某一楼层上的所有 fan 实体;
- 标签(Label):共享同一标签的所有 fan 实体。
同一次动作中还可以混用多种目标类型,例如同时添加一个具体实体和一个区域,动作会对两者一并执行。
上手试一下
想快速验证效果?打开设置 > 工具(Tools)> 动作(Actions),搜索snooz.transition_on,填入字段后点击执行动作(Perform action),就能在不写一行 YAML 的情况下直接观察实际效果。
完整示例:睡前淡入白噪音
下面是一个完整的自动化:每晚 22:00 将卧室 SNOOZ 在 120 秒内淡入到 33% 音量。
- 触发器(Trigger):时间,22:00
- 动作(Action):Transition on
- 目标(Target):卧室 Snooz
- 目标音量(Target volume):33
- 过渡时长(Transition duration):120
对应的 YAML:
automation: - alias: "Fade the bedroom Snooz in at bedtime" triggers: - trigger: time at: "22:00:00" actions: - action: snooz.transition_on target: entity_id: fan.snooz_bedroom data: volume: 33 duration: 120注意事项与使用提示
- 关闭状态下启动:若动作执行时设备处于关闭状态,过渡会从最低音量开始,再上升至目标音量——这正是"柔和淡入"的关键行为;
- 音量与速度的映射:音量直接对应 SNOOZ 实体的风扇速度百分比(见 source/_integrations/snooz.markdown)。注意该集成文档中的提示:低于 10 的速度百分比不会生效,它们在设备上都会被映射为值 1,因此设置
volume时建议使用 1~100 范围内的合理值; - 配套动作:与
snooz.transition_off配合使用可构成完整的"入睡淡入、起床淡出"体验。transition_off支持duration参数(默认 20 秒),且过渡完成关闭后,音量会恢复到过渡开始前的值,下次开机时设备沿用该音量; - 排查帮助:如果动作没有按预期执行,可以先确认目标实体是否正确(如实体 ID 是否拼写无误、是否处于可用状态),再到设置 > 工具 > 动作中手动执行并观察日志。社区论坛与官方 Discord 也可以提供快速协助。
相关动作
- Transition off:在设定时长内逐渐降低 SNOOZ 设备音量,然后将其关闭,适合早晨起床后让白噪音轻柔收尾。
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考