Timer
计时器(Timer) 集成旨在简化基于(动态)时长的自动化。
当计时器结束或被取消时,会触发相应事件。这样您就可以区分:一个计时器是因为设定时长已到而从 active 切换到 idle,还是因为被取消而切换。要在自动化中控制计时器,可以使用下文列出的操作。当对一个已在运行的计时器调用 start 操作时,它会重置剩余时长并重新开始,而不会触发 canceled 或 finished 事件。例如,这让您很容易创建由运动触发的定时灯光。启动计时器通常会触发 started 事件;如果计时器原本处于暂停状态,则会触发 restarted 事件。
如果配置了 restore 选项,计时器会在 Home Assistant 启动和重启后恢复到正确的状态和剩余时间。
但是,如果计时器在 Home Assistant 未运行期间到期,那么使用 timer.finished 事件的自动化在启动时不会被补触发。
配置
配置计时器辅助项的首选方式是通过用户界面:前往 Settings > Devices & services > Helpers,点击添加按钮,然后选择 Timer(计时器)。
若要通过用户界面添加 Helpers,您的 configuration.yaml 中应包含 default_config:;除非您手动删除了它,否则默认应该已经存在。如果您移除了 default_config:,则必须先在 configuration.yaml 中添加 timer:,之后才能使用 UI。
计时器也可以通过 configuration.yaml 配置:
要在您的安装中添加计时器,请将以下内容添加到 configuration.yaml 文件中:
可从 Material Design Icons 中选择图标用于计时器,并在名称前加上 mdi:。例如:mdi:car、mdi:ambulance 或 mdi:motorbike。
可能的状态
事件
操作
操作:Start
timer.start 操作用于以指定时长启动或重新启动计时器。如果未提供时长,它会用初始值重新启动,或继续一个已暂停的计时器并使用其剩余时长。如果提供了新的时长,这个时长会一直生效到计时器结束或被取消,此后时长会恢复为原始配置值。时长可写为秒数,也可写成更易读的 01:23:45 格式。
您也可以使用 entity_id: all,这样所有活动中的计时器都会被启动。
操作:Change
timer.change 操作用于更改正在运行中的计时器。它会基于给定的时长调整当前计时器。您也可以使用 entity_id: all,这样所有活动中的计时器都会被修改。您不能将时长延长到超出 timer.start 所设定的上限。
操作:Pause
timer.pause 操作用于暂停正在运行的计时器。暂停后会保留剩余时长,以便后续继续运行。要恢复计时器,请在不传入 duration 的情况下调用 timer.start。您也可以使用 entity_id: all,这样所有活动中的计时器都会被暂停。
操作:Cancel
timer.cancel 操作用于取消一个正在运行或已暂停的计时器。它会将时长重置为最近一次已知的初始值,但不会触发 timer.finished 事件。您也可以使用 entity_id: all,这样所有活动和暂停状态的计时器都会被取消。
操作:Finish
timer.finish 操作用于提前手动结束一个正在运行或已暂停的计时器。您也可以使用 entity_id: all,这样所有活动和暂停状态的计时器都会被结束。
操作:Reload
timer.reload 操作用于重新加载 timer 配置,而无需重启 Home Assistant。本操作不接受任何数据属性。
使用操作
前往 Settings > Developer tools > Actions,选择 timer.start 操作,然后点击 Fill Example Data 按钮。接着修改 entity_id 和 duration,再点击 Perform action。
示例
将名为 test 的计时器设置为 30 秒。
从前端控制计时器
手动控制计时器
借助 script 集成,您可以手动控制计时器(timer 配置示例见上文)。

