资讯动态

Home Assistant timer.start 动作详解:启动与重启 Timer 倒计时的完整指南(UI + YAML)

发布时间:2026/9/17 19:17:05 来源:尧图企业网站定制
Home Assistant timer.start 动作详解启动与重启 Timer 倒计时的完整指南UI YAML【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io本篇技术指南围绕 Home Assistant 文档仓库中的 timer.start 动作参考 展开讲解如何启动一个 Timer 实体、如何用新的时长重启它、以及如何在不指定时长时恢复暂停的倒计时。读完本文你将掌握timer.start在可视化 UI 与 YAML 两种工作流中的完整操作路径、duration参数的格式与默认行为、动作目标Targets的指定规则以及它与 Timer 实体状态机和其他四个 timer 动作的配合方式能够直接在自己的自动化或脚本中落地一个可用的倒计时方案。动作语义timer.start 做什么timer.start的作用可以从 动作元数据 中的描述确认Starts a timer, or restarts it with a new duration.启动一个计时器或用新的时长重启它它的核心行为可以拆成三条规则显式指定duration用给定时长启动或重启计时器。省略duration且计时器处于暂停paused状态计时器按暂停时剩余的剩余时间继续倒计时这就是“恢复暂停计时器”的标准做法。省略duration且计时器不在运行计时器用其在配置中设定的初始时长重新开始。典型应用场景来自官方文档的举例开始一个烹饪计时器或恢复一个你先前暂停的计时器。前置概念Timer 实体从哪来timer.start的 target 是一个 Timer 实体例如timer.laundry。这些实体由 Timer 集成 提供它是 Home Assistant 内置的 Helper助手实体之一用于创建可以在仪表盘、脚本和自动化中管理、跨多处复用的倒计时。Timer 实体有三种状态idle空闲尚未启动或已完成/被取消、active正在倒计时、paused已暂停。当计时器完成或被取消时会回到idle。Timer 实体推荐通过 UI 创建进入设置 设备与服务 助手Helpers选择Create helper后选择Timer。如果从configuration.yaml中移除了default_config:需要先添加timer:配置节才能从 UI 创建。也可以用 YAML 直接定义例如# configuration.yaml 示例 timer: laundry: duration: 00:01:00每个 timer 条目支持以下配置项参见 Timer 集成文档配置项说明必填类型默认值name计时器的友好名称否string—duration初始时长秒数或00:00:00格式否integer / time0icon为状态卡片设置自定义图标否icon—restore为 true 时活跃和暂停的计时器在 Home Assistant 启动或重启后恢复否booleanfalse注意配置了restore后计时器会在启动/重启时恢复到正确的状态和时间但依赖timer.finished事件的自动化在 Home Assistant 停机期间计时器过期时不会在启动后补触发这是 Timer 集成文档 明确列出的已知限制。理解这一点很重要timer.start省略duration时“回落到配置值”指的就是这里定义的duration。通过用户界面使用 timer.start如果你偏好可视化搭建自动化和脚本Home Assistant 的 UI 会逐步引导你完成这个动作参见 ui_header 说明选择目标、调整选项、保存无需 YAML 知识。完整步骤如下进入设置 自动化与场景Automations scenes。打开一个已有的自动化或脚本或选择Create automationCreate new automation。如果是新建自动化在When部分添加一个触发器脚本不需要触发器它们在被其他东西调用时运行。在Then do部分选择Add action。选择要控制的对象在By target下方参见下文“动作的 Targets”一节选择你要启动的 timer。在该目标显示的动作列表中选择Timer: Start timer。可选设置一个用于启动计时器的Duration。选择Save。UI 中的选项选项说明必填Duration启动计时器所用的时长可以是秒数或HH:MM:SS格式。省略时计时器使用其配置的时长或按暂停时剩余的剩余时间继续否在 YAML 中使用 timer.start如果你直接编写 YAML或者想确认 Home Assistant 底层实际执行的字段参见 yaml_header 说明YAML 中引用该动作的名称为timer.start。基础示例如下与 官方动作文档 一致action: | action: timer.start target: entity_id: timer.laundry data: duration: 00:05:00放在完整的自动化中它通常作为actions列表的一项例如“检测到有人进入后开始一个 5 分钟的浴室排风计时器”automation: alias: Start bathroom fan timer on motion triggers: - trigger: state target: entity_id: binary_sensor.bathroom_motion to: on actions: - action: timer.start target: entity_id: timer.bathroom_fan data: duration: 00:05:00省略duration时恢复暂停的计时器或按配置时长重启写法简化为- action: timer.start target: entity_id: timer.laundryYAML 中的选项选项说明必填类型duration启动计时器所用的时长可以是秒数或HH:MM:SS格式。省略时计时器使用其配置的时长或按暂停时剩余的剩余时间继续否string动作的 Targetstimer.start要求指定一个 targettarget 就是这个动作作用的对象参见 targets 模板。你可以把动作指向单个实体、设备、区域、楼层或标签Home Assistant 会对该目标背后的每一个匹配的 timer 实体执行动作。支持的目标类型Entity一个具体的 timer 实体如timer.laundry。Device属于某个设备的全部 timer 实体。Area某个房间/区域内的全部 timer 实体。Floor某个楼层上的全部 timer 实体。Label共享某个标签的全部 timer 实体。也可以在一个动作中混合选择不同类型的目标例如同时添加一个具体实体和一个区域让动作对两者同时生效。两个容易踩坑的行为细节来自 官方文档 “Good to know” 部分这两条是实际使用中最容易出错的地方恢复暂停的计时器再次启动它且不要给 duration它会带着剩余的剩余时间继续倒计时。不要误以为省略 duration 会清零重来——只有在计时器不处于 paused 状态时才会回落到配置时长。对运行中的计时器指定新 duration该时长会一直生效直到计时器完成或被取消之后才会重置回其配置值。也就是说通过timer.start传入的时长是“本次运行的临时覆盖”而不是永久性修改配置。与其他 timer 动作的配合timer.start与另外四个 timer 动作共同构成 Timer 实体的完整生命周期控制各动作的元数据均声明了彼此的 related_actions动作作用文档timer.pause暂停一个运行中的计时器保留剩余时间便于稍后继续例如组间暂停健身计时器恢复时用timer.start且不传 durationtimer.pausetimer.cancel取消运行中或已暂停的计时器重置回初始值且不触发timer.finished事件——适合“停止倒计时但不触发它本来要引发的事情”timer.canceltimer.finish提前结束计时器并触发timer.finished事件若需要提前结束且要触发后续动作应选它而非timer.canceltimer.finishtimer.change对运行中的计时器增加或减去时间负值表示减时间注意不能把计时器延长超过其启动时长且计时器必须处于运行中timer.change一个完整的生命周期示例timer.start开始倒计时 → 需要中断时用timer.pause→ 继续时用不带 duration 的timer.start→ 想“加时”时用timer.change→ 想无声中止用timer.cancel想提前触发完成逻辑用timer.finish。配套自动化计时器完成后的后续动作timer.start只负责“开始”真正产生业务效果的是与触发器的配合。Timer 集成文档 给出了两个官方自动化示例与timer.start天然配套。示例一浴室排风机在计时器完成后关闭触发器为 Timer finishedautomation: 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.bathroom示例二剩余 5 分钟时发送提醒触发器为 Timer time remainingremaining: 00:05:00automation: 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.start完整链路就是某个事件人离开、洗完衣服等触发自动化 →timer.start用指定 duration 开始倒计时 →timer.remaining_time_reached在剩余 5 分钟时发通知 →timer.finished在完成时关闭排风机。适用前提与小结timer.start属于 Home Assistant 内置 timer 域的动作前提是系统中已存在对应的 Timer 实体通过 UI 助手或configuration.yaml中的timer:配置节创建duration可选接受秒数或HH:MM:SS字符串省略时的行为取决于计时器当前是否处于 paused 状态target 必填且支持实体、设备、区域、楼层、标签五种目标类型并可混用对运行中的计时器传新 duration 只是本次运行的覆盖完成后自动回到配置值。本文全部内容以仓库内 timer.start 动作文档 为主体骨架辅以 Timer 集成文档 的实体配置与触发器示例进行纵深补充所有配置项、示例与行为描述均可在上述文件中核对。【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

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

免费获取报价