Home Assistant 中 Eurotronic Comet Blue「Get schedule」动作实战:读取采暖温控器每周日程
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
本文基于 Home Assistant 官方文档仓库中的 Get schedule 动作文档,讲解eurotronic_cometblue.get_schedule这一动作的用途、YAML 与 UI 两种调用方式、响应数据的完整结构,以及如何将其与 Set schedule 动作 和 Eurotronic Comet Blue 集成 配合,在自动化、脚本或开发者工具中读取并核查蓝牙温控器上的采暖日程配置。
动作概述
eurotronic_cometblue.get_schedule用于从 Eurotronic Comet Blue(及兼容机型)温控器中检索当前已配置的采暖日程。该动作自 Home Assistant2026.7版本起提供(见文档 front matter 中的since字段),属于eurotronic_cometblue集成下的设备动作(action),可以在自动化、脚本中调用,也可以在「设置 > 工具 > 动作」的开发者界面中手动触发以检查当前日程。
理解这一动作的关键背景是 Comet Blue 设备的日程工作机制:
- 日程激活时段:温控器会自动尝试达到Comfort(舒适)预设对应的温度,即“高日程温度”;
- 日程未激活时段:温控器使用Eco(节能)预设对应的温度,即“低日程温度”。
因此get_schedule返回的本质上就是设备内部那张“哪天、哪些时段按 Comfort 温度运行”的时间表。根据 Eurotronic Comet Blue 集成文档,集成明确写道:“You can read and adjust the schedule from Home Assistant via the provided actions”——读取与调整日程都通过配套动作完成,而读取由get_schedule负责。
该集成的设备前提是通过蓝牙(Bluetooth)连接(ha_iot_class: Local Polling,默认每 5 分钟轮询一次),支持的机型包括:
- Eurotronic Comet Blue
- Sygonix HT100 BT
- Xavax Hama
- Lidl Silvercrest RT2000BT
UI 中调用 Get schedule 动作
在图形界面中检索设备日程的操作步骤如下(继承自原文档):
- 进入「设置 > 自动化与场景」(Automations & scenes);
- 打开一个已有的自动化或脚本,或选择Create automation>Create new automation;
- 如果是新建自动化,在When部分添加触发器;脚本不需要触发器,脚本由其他东西调用时运行;
- 在Then do部分选择Add action;
- 在搜索框中搜索并选择Eurotronic Comet Blue: Get schedule;
- 选择控制对象:在By target(见下文“动作的目标”)下选择一个或多个温控器;
- 输入一个响应变量(response variable)的名称,用于在后续步骤中使用日程数据;
- 选择Save保存。
其中第 7 步的响应变量是这一动作区别于普通“无返回值”动作的核心:它把日程数据存进一个命名变量,供后续步骤(条件判断、通知、日志等)直接引用。
YAML 中调用 Get schedule 动作
在 YAML 中,该动作写作eurotronic_cometblue.get_schedule。原文档给出的基础示例如下:
action: | action: eurotronic_cometblue.get_schedule target: entity_id: climate.kitchen response_variable: my_schedule这个示例从climate.kitchen实体读取当前日程,并将其存入响应变量my_schedule。
参数说明
该动作只有两个可选参数,均不是必填:
| 参数 | 类型 | 说明 |
|---|---|---|
target | 对象 | 动作作用目标。可以是单个 climate 实体(如climate.kitchen)、设备、区域、楼层或标签,Home Assistant 会对该目标下的每个匹配的eurotronic_cometblue实体执行动作 |
response_variable | 字符串 | 任意自定义名称,用于承载动作返回的日程数据,供后续步骤引用 |
关于response_variable的机制,官方脚本文档(脚本动作执行)说明:response_variable就是“包含响应数据的变量”,名称可以自定义,脚本执行后该变量即可被后续步骤读取。
动作的目标(Targets)
该动作要求提供 target。根据仓库中通用的 targets 说明,支持五种目标类型,且可以在同一个动作中混合使用多种目标类型:
- Entity(实体):一个具体的 climate 实体,如
climate.living_room; - Device(设备):属于某设备的所有 climate 实体;
- Area(区域):某房间/区域内的所有 climate 实体;
- Floor(楼层):某楼层上的所有 climate 实体;
- Label(标签):共享某标签的所有 climate 实体。
例如可以在同一动作中同时添加一个具体实体和一个区域,让动作一次作用于两者。
响应数据结构(重点)
这是原文档Good to know部分的核心内容,理解它才能正确编写后续逻辑:
- 响应数据为每个被指定的 climate 实体各包含一个顶层字段(即实体 ID 作为键);
- 每个实体下有7 个字段,分别对应一周七天,键名为小写英文(
monday到sunday); - 每一天的值是一个时间区间列表;
- 未配置任何采暖日程的天返回空列表
[]。
原文档给出的完整示例响应如下:
climate.kitchen: monday: - from: "07:00:00" to: "09:00:00" - from: "17:00:00" to: "22:00:00" tuesday: [] wednesday: [] thursday: - from: "07:00:00" to: "09:00:00" friday: - from: "07:00:00" to: "09:00:00" saturday: - from: "09:00:00" to: "12:00:00" sunday: []结合示例可以读出几个实战要点:
- 时间格式:响应中的时间统一为
"HH:MM:SS"字符串(带秒),与 Set schedule 动作 写入时常用的"HH:MM"不同。如果你在自动化里把读回的日程再回写给设备,注意做格式归一; - 空天是
[]而非缺省:判断“某天是否有日程”应检查列表长度,而不是判断键是否存在——七天键始终都在; - 多目标时按实体分键:如果
target命中多个 climate 实体(例如整个区域),响应顶层会有多个实体 ID 键,各自独立携带 7 天的日程。
结合仓库文档的纵深说明
日程与预设的联动关系
集成文档中 climate 平台支持的预设与get_schedule返回的数据直接对应:
- Eco:温度设为“低日程温度”(schedule off 时使用的温度);
- Comfort:温度设为“高日程温度”(schedule on 时使用的温度);
- Boost:阀门全开;
- Away:假期模式激活,仅显示;
- None:温度不在上述情况内,仅显示。
也就是说,get_schedule读到的每个from/to区间,就是设备将自动切换为 Comfort 目标温度的时段。集成文档同时强调:设备按内部日程运行,可以临时手动控制;一旦手动修改目标温度或使用预设,温控器会在下一次日程切换点恢复到程序化日程。
与 Set schedule 动作配对使用
get_schedule的姊妹动作是 Set schedule(eurotronic_cometblue.set_schedule),两者构成“读—改—写”日程的完整工具链。Set schedule 的规则对理解 get_schedule 的返回数据同样重要:
- 每天最多4 个时间区间;
- 省略某天:该天日程保持不变;
- 某天传空列表:清空该天日程(此时 get_schedule 读回该天即为
[]); - 时间区间不能重叠;
- 设备支持10 分钟时间粒度,其他时间会向下取整到前一个 10 分钟刻度。
一个典型的“读取当前日程→修改后回写”脚本骨架如下(示意,基于两个动作文档的字段格式):
alias: 调整厨房温控器周一日程 sequence: - action: eurotronic_cometblue.get_schedule target: entity_id: climate.kitchen response_variable: current_schedule - action: eurotronic_cometblue.set_schedule target: entity_id: climate.kitchen data: monday: - from: "05:00" to: "07:00" - from: "16:00" to: "23:30"第一步先把现有日程读入current_schedule(可用于日志、条件判断或备份),第二步只更新周一,其余天按 set_schedule 的规则保持不变。
设备侧限制对日程数据的约束
集成文档的Known limitations一节列出了影响日程数据的硬件级限制:
- 设备仅支持0.5°C 温度步长和10 分钟时间步长;
- 手动改温或使用预设后,温控器在下一个日程切换点恢复程序化日程;
- 若温控器处于假期模式(holiday mode),无法从 Home Assistant 复位,需按压设备上的
MENU键直到复位。
此外,集成还为每台设备提供一个Sync time按钮(同步设备内部时钟与 Home Assistant 当前时间)。日程依赖设备内部时钟驱动,若怀疑日程“没按时生效”,先确认设备时钟是否正确,是该排障路径的第一步。
动手试一试
按照原文档Try it yourself的建议:打开「设置 > 工具 > 动作」(developer_services),搜索get_schedule,填入目标实体并选择Perform action,即可在真实实体上执行并直接看到响应数据,无需编写任何 YAML。若遇到问题,原文档的Still stuck?部分建议:社区论坛、Discord、/r/homeassistant 子版都是提问渠道,也可以把动作调用内容和你期望的行为描述给 AI 助手辅助分析。
小结
eurotronic_cometblue.get_schedule自 2026.7 起提供,用于读取 Comet Blue 系列蓝牙温控器内的每周采暖日程;- 调用只需
target(实体/设备/区域/楼层/标签)和response_variable两个可选字段,YAML 与 UI 均可配置; - 响应按“实体 ID → 七天小写键 → 时间区间列表”三层组织,空日程天为
[],时间格式为HH:MM:SS; - 与
set_schedule配对可实现日程的读、改、写闭环,同时注意设备 10 分钟粒度、每天最多 4 段、区间不可重叠等硬限制; - 排查日程异常时,优先核对设备时钟(Sync time 按钮)与假期模式状态。
【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考