Home Assistant 温控模式切换实战climate.set_hvac_mode动作完全指南【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.ioclimate.set_hvac_mode是 Home Assistant 中 climate 域温控类设备的核心动作之一用于将恒温器、空调等设备切换到指定的 HVAC暖通空调工作模式例如制热heat、制冷cool或关闭off。本文以官方用户文档 source/_actions/climate.set_hvac_mode.markdown 为骨架系统讲解如何在自动化与脚本中调用该动作、目标Targets机制如何工作、常见 HVAC 模式的语义差异并给出可直接复制的 YAML 示例帮助你在实际项目中精准控制温控设备。动作概览它解决什么问题在 Home Assistant 的实体体系中climate 域统管恒温器、空调、地暖、热泵等设备。这类设备通常具备多种工作模式而climate.set_hvac_mode就是改变设备工作模式的统一入口。官方文档front matter对其定义如下动作名actionclimate.set_hvac_mode所属域domainclimate功能描述设置温控设备的 HVAC 模式Sets the HVAC mode of a climate device典型使用场景包括天热时把客厅空调切到制冷、睡前把卧室恒温器切到制热、离家时直接把整个供暖系统切到off。它不负责设置温度那是 climate.set_temperature 的职责也不负责开关设备电源那是 climate.turn_on / climate.turn_off 的职责它专注于模式这一维度。在 UI 中配置该动作如果你偏好可视化配置可以在自动化或脚本编辑器中通过表单完成设置。官方文档给出的操作路径如下进入设置 自动化与场景Settings Automations scenes。打开一个现有的自动化或脚本或选择创建自动化创建新自动化。如果是在搭建新自动化需在When何时部分添加触发器脚本则不需要触发器——脚本由其他自动化或事件调用时才执行。在Then do则执行部分选择添加动作Add action。选择要控制的设备在按目标By target下详见下文目标机制选择要控制的温控设备。从该目标可用的动作列表中选择设置恒温器 HVAC 模式Set thermostat HVAC mode。设置要应用的HVAC 模式。点击保存。UI 中的选项选项说明HVAC 模式要设置的 HVAC 模式例如 heat制热、cool制冷或 off关闭。可用模式取决于具体温控设备。这是该动作在 UI 中唯一的表单字段属于必选项。界面上可选值的下拉列表由目标设备自身的能力hvac_modes属性动态生成。在 YAML 中使用该动作如果你直接编写 YAML例如手写automations.yaml或脚本或者想精确了解 Home Assistant 在底层执行的操作可以阅读本节的技术参考——它列出了 YAML 中使用的字段名、类型以及必填要求。基础示例action: climate.set_hvac_mode target: entity_id: climate.living_room data: hvac_mode: heat这个例子把climate.living_room切换为制热模式。结构上分为三个部分action要调用的动作名即climate.set_hvac_modetarget动作的作用对象目标data动作的附加参数这里传入要设置的hvac_mode。YAML 字段参考字段类型必填说明hvac_modestring是要设置的 HVAC 模式例如 heat、cool 或 off。可用模式取决于具体温控设备。hvac_mode是唯一的数据字段且必填。从源码结构看它会被直接透传给 climate 实体的底层服务调用因此传入了设备不支持的枚举值时设备集成层会拒绝执行或报错——这也解释了为何文档反复强调可用模式取决于设备。目标机制Targets该动作必须指定目标target。目标是动作的作用对象你可以把动作指向单个实体、设备、区域、楼层或标签Home Assistant 会对该目标下所有匹配的 climate 实体执行动作。支持的目标类型如下实体Entity单个具体的 climate 实体例如climate.living_room设备Device属于某个设备的所有 climate 实体区域Area某个房间/区域内的所有 climate 实体楼层Floor某个楼层上的所有 climate 实体标签Label共享某个标签的所有 climate 实体。你还可以在同一个动作中混合使用不同类型的目标例如同时添加一个具体实体和一个区域让该动作同时作用于两者。这一机制大大减少了重复配置与其为家里每一台空调各写一条动作不如给它们打上climate_downstairs之类的标签然后一条动作批量切换。常见 HVAC 模式解析官方文档Good to know一节明确指出可用模式取决于温控设备常见模式包括模式语义off关闭温控设备不进行任何加热或制冷heat制热模式仅当温度低于目标值时启动加热cool制冷模式仅当温度高于目标值时启动制冷heat_cool自动恒温双模式同时支持加热与制冷通常在上下目标温度区间内保持恒温auto自动模式由设备根据预设策略自行决定加热或制冷dry除湿模式多用于空调以降低室内湿度为目标fan_only仅送风模式不加热也不制冷实践要点heat_cool模式通常需要配合上下目标温度一起使用——此时应改用 climate.set_temperature 并传入target_temp_high/target_temp_low两个字段而auto、dry、fan_only等模式并非所有设备都支持写自动化前建议先在设备自带的官方应用中确认其能力清单。实战示例高温天气自动切换制冷官方文档给出了一个完整的自动化场景当室内温度超过阈值时自动把恒温器切到制冷模式。触发器室内温度升至 26 °C 以上动作设置恒温器 HVAC 模式目标客厅恒温器HVAC 模式cool对应 YAML 如下automation: - alias: Switch the thermostat to cooling on a hot afternoon triggers: - trigger: numeric_state entity_id: sensor.living_room_temperature above: 26 actions: - action: climate.set_hvac_mode target: entity_id: climate.living_room data: hvac_mode: cool这个例子展示了标准的自动化三段式结构triggers用numeric_state监听温度传感器数值当超过 26 °C 时触发actions调用climate.set_hvac_mode把客厅恒温器切到制冷。你可以直接把sensor.living_room_temperature换成你实际的温度传感器实体 ID把climate.living_room换成目标温控实体。与相关动作组合使用该动作通常与以下 climate 域动作配合形成完整的温控方案文档 front matter 中亦列出了这些关联动作关联动作用途参考文档climate.set_temperature设置目标温度单点温度或上下温度区间可同时附带切换模式climate.set_temperatureclimate.set_preset_mode设置预设模式如 eco、away常用于离家节能climate.set_preset_modeclimate.turn_on打开温控设备climate.turn_onclimate.turn_off关闭温控设备climate.turn_off实际项目中常见的组合思路离家节能人离开时先用climate.set_preset_mode切到away预设或直接climate.set_hvac_mode切到off回家预冷/预热结合climate.set_hvac_mode切换到 cool/heat与climate.set_temperature设置目标温度两步联动季节切换季节变化时通过一条自动化把全屋空调统一从heat切换到cool此时可利用目标机制按区域或标签批量作用。在线测试与排障写完自动化前可以先在动作工具台直接验证效果无需写任何 YAML进入设置 工具 动作Settings Tools Actions搜索climate.set_hvac_mode填写字段并点击执行动作Perform action即可在真实实体上观察模式切换是否生效。排查要点目标实体填错确认entity_id是 climate 域实体以climate.开头可在设置 设备与服务中核实模式不被支持传入设备不支持的 HVAC 模式会导致执行失败可先通过实体状态面板查看该设备的hvac_modes属性确认可用值设备无此功能部分温控设备不支持关闭或模式切换此时应改用该设备支持的动作参见 climate.turn_on / climate.turn_off 中的Good to know说明。掌握climate.set_hvac_mode的目标机制、模式语义与 YAML 写法你就能把温度控制精确地嵌入到各种自动化场景中实现真正智能的温控管理。【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
