Home Assistant 中 number.set_value 动作完全指南:设置数字实体值
发布时间:2026/9/17 3:04:30 锦皓数字建站

Home Assistant 中 number.set_value 动作完全指南设置数字实体值【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.ionumber.set_value是 Home Assistant 中用于将 number 实体数字实体设置为指定值的核心动作适用于设定目标温度、亮度上限、充电电流限制、风扇档位等任何设备暴露的可调数值。通过本文你将掌握在 UI 与 YAML 两种方式下调用该动作的完整方法、其 target目标机制、值范围校验规则以及一套可直接落地的自动化示例。什么是 number 实体与 number.set_value 动作在 Home Assistant 中number 实体是一种基础实体类型building block用于表示在一个数值范围内可调节的输入值。根据 Number 集成文档该集成允许其他集成在一个范围内获取用户的数值输入。典型场景包括恒温器的目标温度number.thermostat_target充电桩的电流限制如number.charger_current_limit灯光的最大亮度风扇的转速档位number 实体的状态本身就是一个数字同时可能处于unavailable当前不可用或unknown状态未知等状态。number.set_value动作的职责非常单一把某个 number 实体设置为你指定的具体数值。它只对 number 实体生效不会作用于 switch、light、input_boolean 等其他实体类型。官方对该动作的描述是设置一个 number 实体到指定值例如目标温度、亮度上限或设备暴露的任何其他可调数字。从用户界面调用该动作如果你更习惯用可视化方式构建自动化和脚本Home Assistant 会引导你逐步完成配置无需编写任何 YAML。操作步骤如下源自 UI 使用说明进入Settings设置Automations scenes自动化与场景。打开现有的自动化或脚本或选择Create automation创建自动化Create new automation创建新自动化。如果是新建自动化在When触发条件部分添加一个触发器。脚本script不需要触发器它们在被其他东西调用时运行。在Then do执行部分选择Add action添加动作。选择要控制的对象在By target按目标下详见下文 Targets 部分选择你要设置的 number 实体。在该目标显示的动作列表中选择Set number value设置数字值。设置你要应用的Value值。选择Save保存。UI 中的选项选项说明Value要设置到 number 实体上的值。该值必须位于实体允许的最小值、最大值和步进step范围内。在 YAML 中使用该动作如果你直接编写 YAML或想确切了解 Home Assistant 底层做了什么可以使用 YAML 技术参考 中的字段。在 YAML 中该动作引用名为number.set_value。一个基础示例来自 动作文档action: number.set_value target: entity_id: number.thermostat_target data: value: 21上面的配置将number.thermostat_target设置为 21。YAML 选项参考字段是否必填类型说明value是float要设置到 number 实体上的值。必须位于实体允许的最小值、最大值和步进范围内。注意value的类型是float浮点数即使你传入整数如21也会按浮点处理因此21.5这类带小数的值同样合法前提是符合该实体的步进约束。新旧 YAML 语法说明在较新的 Home Assistant 版本中自动化使用action:关键字较老版本中同一字段写作service:两者等价number.set_value均可作为值使用。新版本中还推荐将触发器trigger显式写为复数形式triggers:、动作写为actions:如下方完整示例所示。Targets动作的作用对象number.set_value要求必须指定一个 target目标。target 是动作的作用对象你可以将动作指向单个实体、设备、区域area、楼层floor或标签labelHome Assistant 会对该目标背后的每一个匹配的 number 实体执行动作详见 Targets 说明Entity实体某一个具体的 number 实体例如number.living_room。Device设备属于某台设备的每一个 number 实体。Area区域某个房间或区域内的每一个 number 实体。Floor楼层某一楼层上的每一个 number 实体。Label标签共享某一标签的每一个 number 实体。你还可以在一次动作中混合不同的目标类型例如同时添加一个具体实体和一个区域让动作一次作用于两者。值范围与步进校验Good to know使用number.set_value时有两条必须牢记的规则该动作只对 number 实体生效。传给它 light、switch 等其他实体类型不会得到预期结果。值必须遵守实体的最小值、最大值和步进。超出允许范围的值会被拒绝。从实现角度看每个 number 实体在注册时都带有一组原生约束——最小值minimum、最大值maximum和步进step。当你通过number.set_value提交一个数值时Home Assistant 会先对value做归一化normalization并校验其是否落在[minimum, maximum]区间内、是否符合步进对齐不满足约束的值会被拒绝而不会静默写入。这也是为什么示例中把充电电流限制设为6假设实体步进为 1、范围覆盖该值能够成功而传入-1或一个远大于最大值的小数则会被拒绝。要了解实体当前允许的范围可在开发者工具中查看该实体的属性或参考设备对应的集成文档。此外number 实体具有丰富的 device class设备类别如temperature温度、humidity湿度、power功率、current电流、battery电池百分比等完整列表见 Number 集成文档。这些类别只影响显示单位与语义不改变number.set_value的调用方式——你始终只需要传一个数值。实战示例夜间降低充电限值下面是一个完整的自动化示例每天 23:00 将一个代表充电器电流上限的 number 实体设置为更低的数值以在夜间降低充电功率。配置说明UI 方式Trigger触发器Time时间23:00Action动作Set number value设置数字值Target目标Charger current limit充电器电流上限Value值6对应的 YAML源自 动作文档automation: - alias: Lower the charging limit at night triggers: - trigger: time at: 23:00:00 actions: - action: number.set_value target: entity_id: number.charger_current_limit data: value: 6你可以将value: 6替换为任意合法的浮点数例如设置目标温度为21.5只要它满足该 number 实体的 min/max/step 约束。尝试与调试想在不写任何 YAML 的情况下快速验证该动作打开Settings设置Tools工具Actions动作搜索number.set_value填写字段并选择Perform action执行动作即可在你的真实实体上看到实际效果详见 Try it yourself 说明。调试时常见的问题与排查方向动作没有任何效果确认目标实体的 domain 是number可在实体属性中查看并检查实体当前是否为unavailable/unknown状态。值被拒绝检查你传入的value是否超出实体允许的 min/max或与 step 不对齐可在开发者工具的实体属性中查看这三项约束。希望基于某个算式动态计算值可以结合模板template在data.value中使用但最终结果仍需满足上述范围约束。更多场景延伸该动作经常出现在按时间调节设备参数类的自动化中例如夜间将恒温器目标温度下调白天调回分别用两个number.set_value动作电价低谷时段提高充电电流上限、高峰时段降低离家后把热水器目标温度调低以节能。如果你需要创建自己的 number 实体而非使用设备自带实体可参考Number helper辅助元素文档input_number 集成在其中配置 min/max/step 后即可通过number.set_value控制它。相关动作与更完整的示例集合可继续查阅 source/_actions 目录下的动作文档 及 Number 集成文档。【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。