资讯动态

Home Assistant timer.pause 动作详解:暂停计时器并保留剩余时间的完整实践

发布时间:2026/9/17 8:47:11 来源:尧图企业网站定制
Home Assistant timer.pause 动作详解暂停计时器并保留剩余时间的完整实践【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io本文基于 Home Assistant 官方文档仓库中的 timer.pause 动作参考页展开系统讲解如何在自动化与脚本中暂停一个正在运行的计时器timer并保持其剩余时间。读完后你将掌握timer.pause的 UI 与 YAML 两种配置方式、动作的目标target规则以及如何配合timer.start恢复计时、与timer.cancel/timer.finish/timer.change组成完整的计时器控制方案并理解计时器实体idle/active/paused状态模型对暂停行为的影响。1. timer.pause 动作是什么timer.pause用于暂停一个正在运行的计时器running timer暂停后剩余时间会被保留the remaining time is kept因此可以稍后继续计时。官方文档给出的典型场景是在组间休息时短暂中断一个健身倒计时pausing a workout timer between sets。在 YAML 中该动作名为timer.pause基本用法如下摘自 timer.pause 文档action: | action: timer.pause target: entity_id: timer.laundry几个关键事实该动作没有任何选项This action has no options——UI 中没有可填参数YAML 中也不需要data字段只需要通过target指定要暂停哪个计时器它的作用对象是timer域下的实体例如timer.laundry与计时器的其他生命周期动作配套官方文档在 front-matter 中声明了四个相关动作——timer.start、timer.cancel、timer.finish、timer.change。2. 在 UI 中配置 timer.pause 的步骤官方文档给出的图形界面操作步骤如下适用于自动化或脚本的编辑流程进入SettingsAutomations scenes设置 自动化与场景打开一个已有的自动化或脚本或选择Create automationCreate new automation如果是新建自动化先在When部分添加一个触发器trigger。脚本不需要触发器——它们由别的东西调用时才会执行在Then do部分点击Add action选择要控制的对象。在By target下见下文动作的目标选择要暂停的计时器在针对该目标显示的动作列表中选择Timer: Pause timer点击Save。由于该动作没有选项UI 配置到此即可完成。3. YAML 写法与目标规则3.1 基本示例在 YAML 中将此动作写为timer.pauseautomation: alias: Pause laundry timer between sets triggers: - trigger: time at: 18:30:00 actions: - action: timer.pause target: entity_id: timer.laundry核心结构只有两层字段是否必需说明action: timer.pause是指定动作本身target.entity_id是目标必需要暂停的 timer 实体如timer.laundrydata不需要该动作没有任何选项3.2 动作的目标Targets根据仓库中 actions 文档共用的 targets 片段timer.pause要求指定一个目标目标可以是以下任意一种Home Assistant 会对目标背后所有匹配的 timer 实体执行该动作Entity单个具体的 timer 实体如timer.living_roomDevice属于某个设备的所有 timer 实体Area某个房间/区域内的所有 timer 实体Floor某个楼层上的所有 timer 实体Label共享某个标签的所有 timer 实体。同一个动作中还可以组合多种目标类型——例如同时添加一个具体实体和一个区域让动作同时对两者生效。4. 状态模型为什么剩余时间保留能成立理解timer.pause的行为需要先看计时器实体的状态模型。根据 Timer 集成文档Timer 集成自 0.57 版本起内置提供的 timer 实体具有以下特性States:idle、active、pausedRemarks: 计时器在结束finish、被取消cancel或尚未启动时回到idle与自动化的for选项不同timer 是独立的实体可以在仪表板中查看、管理并在多个自动化之间复用同一个倒计时。由此可以推断出暂停的完整状态流转timer.pause只在active状态下有意义执行后实体进入paused状态并冻结剩余时间计时器在paused期间不会倒计时也不会触发timer.finished事件。4.1 恢复不带 duration 的 timer.start官方文档在 Good to know 中给出了一条关键用法To continue a paused timer, use the Start a timer action without a duration. It resumes with the time that was left.即要恢复一个已暂停的计时器使用不带duration的 timer.start 动作它会以暂停时剩余的时间继续运行。timer.start的完整语义来自 timer.start 文档省略duration时计时器使用其配置的初始时长或继续一个暂停中计时器的剩余时间若传入duration秒数或HH:MM:SS格式字符串以该新时长启动/重启计时器给一个正在运行的计时器指定新duration时该时长生效到计时结束或被取消之后会重置回配置的时长。# 恢复已暂停的计时器保留剩余时间 action: | action: timer.start target: entity_id: timer.laundry5. 与其他 timer 动作的对比与组合timer.pause与同域其他动作的边界是正确使用它的核心。以下对比基于仓库中四个相关动作的文档动作行为是否触发timer.finished事件是否保留剩余时间timer.pause暂停运行中的计时器否是可用timer.start恢复timer.start启动/重启可带新时长否无 duration 时恢复暂停的剩余时间timer.cancel取消运行中或已暂停的计时器重置为初始值否官方明确取消不会触发 finished 事件否timer.finish提前结束运行中或已暂停的计时器是如同倒计时归零否timer.change对运行中的计时器加/减时间负值可减时否改变剩余时间从这几份文档的 Good to know 段落可以提炼出清晰的决策路径想暂时中断、稍后继续→timer.pause之后用不带 duration 的timer.start恢复想终止且不希望下游逻辑如关排风扇、发通知被执行→timer.cancel不触发timer.finished想终止并希望触发计时完成的全部下游动作→timer.finish会触发timer.finished事件想延长或缩短正在进行但不暂停的倒计时→timer.change注意无法把计时器延长到超过其启动时设定的时长且计时器必须处于运行中该动作才有效。5.1 完整实战可暂停的洗衣倒计时提醒组合 timer 的触发器与动作可以构造可暂停的体验。例如洗衣计时器剩 5 分钟时通知你中途需要时一键暂停恢复时从剩余时间继续# 通知自动化剩余 5 分钟时提醒 automation: alias: Notify when five minutes remain on the laundry timer triggers: - trigger: timer.remaining_time_reached target: entity_id: timer.laundry options: remaining: 00:05:00 actions: - action: notify.send_message target: entity_id: notify.my_device data: message: The laundry timer has five minutes left.上面这条与 Timer 集成文档中给出的剩 5 分钟提醒示例一致。配套的暂停/恢复动作可放在两个按钮或两个脚本中# 脚本暂停 script: pause_laundry: sequence: - action: timer.pause target: entity_id: timer.laundry resume_laundry: sequence: - action: timer.start # 不带 duration恢复剩余时间 target: entity_id: timer.laundry计时完成后由 timer.finished 触发器接管后续动作例如浴室排风扇倒计时结束自动关闭automation: alias: Turn off bathroom fan when the timer finishes triggers: - trigger: timer.finished target: entity_id: timer.bathroom_fan actions: - action: fan.turn_off target: entity_id: fan.bathroomtimer.finished触发器在倒计时归零或执行Finish timer动作时触发其事件数据中包含finished_at时间戳可供For at leastYAML 中的for选项使用。6. 前置条件、边界与注意事项计时器实体必须先存在timer.pause的 target 指向一个 timer 实体而实体需要先创建。推荐方式是在 UI 的SettingsDevices servicesHelpers中选择Create helperTimer如果已从configuration.yaml移除default_config:需先添加timer:节点。YAML 方式示例来自 Timer 集成文档# Example configuration.yaml entry timer: laundry: duration: 00:01:00可配置项包括name友好名称、duration初始时长秒或HH:MM:SS默认 0、icon状态卡图标、restore默认 false。restore选项与暂停状态的关系Timer 集成文档明确说明开启restore: true后active 和 paused 计时器会在 Home Assistant 启动或重启后恢复active and paused timers are restored after Home Assistant starts or restarts。也就是说若希望重启后暂停中的计时器仍保持暂停且剩余时间不丢需要显式开启该选项。停机期间的完成事件不会补发官方文档在 Known limitations 中声明如果计时器在 Home Assistant 未运行时到达终点使用Timer finished触发器的自动化在启动后不会运行。这同样适用于暂停后跨重启的场景设计——恢复后继续计时的前提是restore生效。timer.pause无选项意味着无参数可错该动作只有 target不存在data配置如果你发现暂停不生效应检查目标实体当前是否处于active状态以及 target 选择是否命中了正确的 timer 实体结合上文目标规则核对 entity/device/area/floor/label。社区支持仓库文档的通用 Still stuck? 板块提示Home Assistant 社区Discord、社区论坛、Reddit 的 r/homeassistant可以快速解答动作行为类问题也可以直接描述你的目标让 AI 助手帮你挑选合适动作。7. 小结timer.pause是 Home Assistant timer 域中最轻量的动作无参数、以 target 指定实体、冻结剩余时间并进入paused状态。它的价值在于与整个 timer 生命周期体系start / pause / cancel / finish / change以及timer.finished、timer.remaining_time_reached等触发器的组合——文档仓库中 timer.pause、timer.start、timer.cancel、timer.finish、timer.change 与 Timer 集成共同构成了一套可暂停、可恢复、事件驱动的倒计时控制方案适用于洗衣、烹饪、健身、通风等任何需要中途暂停、稍后继续的自动化场景。【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价