FEATURED · 精选文章

Home Assistant 中的 Habitica 奖励更新动作:`habitica.update_reward` 完整指南

发布时间 / 2026/9/16 20:46:45
来源 / 创域科博编辑部
栏目 / 资讯中心
Home Assistant 中的 Habitica 奖励更新动作:`habitica.update_reward` 完整指南 Home Assistant 中的 Habitica 奖励更新动作habitica.update_reward完整指南【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io本篇指南聚焦 Home Assistant 官方文档中针对 Habitica 集成提供的行为动作Actionshabitica.update_reward讲解如何通过 UI 自动化界面与 YAML 两种方式更新你 Habitica 角色名下的自定义奖励Reward例如修改奖励名称、笔记、金币成本、标签或为任务设置别名。读完本文你将掌握该动作的全部字段语义、参数类型与用法边界并能结合仓库中其他 Habitica 动作与自动化示例构建完整的游戏化任务管理自动化流程。动作概述更新一个自定义奖励habitica.update_reward是 Home AssistantHabitica 集成集成文档提供的行为动作用于更新所选 Habitica 角色下已存在的自定义奖励。Habitica 是一个将日常目标与待办事项游戏化的任务管理平台通过完成每日任务、习惯养成来赚取金币、升级你的冒险者角色而自定义奖励则是你为自己设定的消费项——例如看一场电影喝一杯咖啡——需要用金币购买。该动作的官方定位见 source/_actions/habitica.update_reward.markdown 的 frontmatter是Updates an existing custom reward for your Habitica character.与之配套的还有habitica.create_reward创建奖励与habitica.score_reward奖励计分三者分别对应奖励生命周期的创建—更新—消费。habitica.update_reward负责的是对既有奖励的属性进行修改而不是创建新奖励或触发购买。一个关键约束是该动作不支持目标targets。与light.turn_on等可以指定区域、设备、实体的动作不同调用habitica.update_reward时不会提示你选择 area、device、entity 或 label你只需要通过config_entry指定 Habitica 角色、通过task定位具体奖励即可。从 UI 使用该动作自动化与脚本如果你倾向于使用可视化的自动化编辑器Home Assistant 会引导你逐步完成配置无需编写 YAML参见 ui_header.md。操作步骤如下进入设置Settings自动化与场景Automations scenes。打开一个已有的自动化或脚本或者选择创建自动化Create automation创建新自动化Create new automation。如果是新建自动化在When当...时部分添加一个触发器脚本则不需要触发器——脚本由其他对象调用时才会运行。在Then do然后执行部分选择添加动作Add action。在搜索框中搜索并选择Habitica: Update a reward。选择角色的配置条目Config entry与要更新的奖励的任务名称Task name然后设置你想修改的值。点击保存Save。需要特别留意由于该动作不支持 targetsUI 中不会出现选择区域、设备、实体或标签的提示此约束在原文档中有明确说明。UI 中的可选项在 UI 表单中该动作提供以下字段均来自原文档的{% options_ui %}块字段说明必填选择角色Select character拥有该奖励的 Habitica 角色是任务名称Task name按名称、任务 ID 或别名定位要更新的奖励是重命名Rename奖励的新标题否备注Notes奖励的新备注否成本Cost奖励的金币成本否添加标签Add tags为奖励添加标签若标签不存在则自动创建否移除标签Remove tags从奖励中移除标签否任务别名Task alias用于替代名称或任务 ID 的别名仅支持短横线、下划线与字母数字字符且必须在你的全部任务中保持唯一否可见UI 字段与 YAML 字段一一对应只是命名上做了面向用户的简化如 YAML 中的tag/remove_tag在 UI 中显示为添加标签/移除标签。在 YAML 中使用该动作如果你直接编写 YAML或希望了解 Home Assistant 在底层究竟执行了什么可以参考 YAML 技术参考部分该部分列出了字段名、类型与必填性见 yaml_header.md。在 YAML 中该动作以habitica.update_reward引用原文档示例action: habitica.update_reward data: config_entry: 6b4be47a1fa7c3764f14cf756dc9899d task: Watch a movie cost: 75此示例的含义是对config_entry对应的 Habitica 角色执行更新奖励动作定位名称为 Watch a movie 的奖励并将其金币成本更新为 75。config_entry在示例中是一串十六进制 ID实际使用时需要替换为你自己的配置条目 ID——你可以在设置 设备与服务 Habitica的集成详情中查看。在自动化或脚本的完整上下文中它通常长这样alias: Adjust movie reward cost triggers: - trigger: state entity_id: sensor.habitica_gold below: 100 actions: - action: habitica.update_reward data: config_entry: 6b4be47a1fa7c3764f14cf756dc9899d task: Watch a movie cost: 50 notes: Half price during low-gold weeksYAML 字段详解YAML 模式下的全部字段如下类型与必填性均来自原文档的{% options_yaml %}块字段类型必填说明config_entrystring是拥有该奖励的 Habitica 角色taskstring是按名称、任务 ID 或别名定位要更新的奖励renamestring否奖励的新标题notesstring否奖励的新备注costfloat否奖励的金币成本tagstring / list否为奖励添加标签若标签不存在则自动创建remove_tagstring / list否从奖励中移除标签aliasstring否用于替代名称或任务 ID 的别名仅支持短横线、下划线与字母数字字符且必须在你的全部任务中保持唯一几个值得深入理解的要点task的定位方式它接受奖励的名称、任务 ID 或别名三种定位方式。这意味着你在更新奖励时不必记住任务 ID直接使用创建奖励时的显示名称即可而alias字段则是为后续调用提供更稳定的标识——一旦设置了别名之后在task中就可以用别名替代名称降低因重命名导致定位失败的风险。cost是 float 类型金币成本允许小数例如 0.5适合设置低价小奖励该类型约束来自 YAML 字段定义与 UI 中成本Cost对应。tag与remove_tag支持单值与列表两者类型均为[string, list]意味着你既可以写tag: work也可以写tag: [work, health]一次操作批量添加或移除多个标签。添加时若标签不存在会自动创建移除时则只删除已存在的标签。alias的字符约束仅支持短横线-、下划线_和字母数字字符且别名必须在你的全部任务不只限于奖励中保持唯一。这一约束在 UI 与 YAML 两处文档中均有明确说明。动手试一下Try it yourself想快速验证该动作的效果可以打开设置 工具Tools 动作Actions搜索habitica.update_reward填写字段后点击执行动作Perform action。无需编写任何 YAML即可在实际实体上看到更新结果参见 try_it.md。这是测试字段取值、确认task定位是否准确的最高效方式。在 Habitica 集成上下文中理解该动作前置条件配置 Habitica 集成要使用habitica.update_reward首先需要完成 Habitica 集成的配置详细步骤见 集成文档 的 Prerequisites 部分必须拥有一个有效的 Habitica 账户注册于 Habitica.com。配置过程中有两种登录方式Login to Habitica使用用户名或邮箱与密码登录Login to other instances需要User ID与API Token可在 Habitica 账户的Settings Site Data中获取同时需要提供 Habitica 实例的 URL默认为https://habitica.com也支持连接自托管或其他实例并可选择是否验证 SSL 证书。配置完成后Home Assistant 会创建该角色的多个实体包括角色属性传感器职业、经验、金币、生命值、等级、法力等、头像图片、待办事项To-Do与每日任务Dailies列表、日历实体以及若干按钮控件。habitica.update_reward就是作用于这些任务体系中的奖励这一类任务。与相关动作的配合该动作与 Habitica 系列动作配合可以构成完整的奖励管理闭环相关动作的关联说明由 related.md 模板生成habitica.create_reward创建自定义奖励必填name与cost金币成本habitica.update_reward本文主角更新既有奖励的属性habitica.score_reward对奖励计分即实际购买/消费该奖励此外还有 habitica.update_todo、habitica.update_daily、habitica.update_habit 等同类更新动作分别覆盖其他任务类型。典型玩法是用create_reward建立奖励如看一场电影成本 50 金币用update_reward根据条件动态调整其成本、名称或标签例如金币富余时调高成本、金币紧张时打折再用score_reward在完成目标时消费奖励。自动化示例与注意点集成文档source/_integrations/habitica.markdown提供了多个可直接参考的自动化蓝图与示例例如自动接受任务邀请监听binary_sensor.habitica_pending_quest_invitation从off变为on触发habitica.accept_quest并用notify.persistent_notification发送结果通知洗碗机完成时创建待办监听sensor.dishwasher状态变化调用todo.add_item在todo.habitica_to_dos中新增清空洗碗机任务牙刷检测完成刷牙每日任务结合choose条件按时间段调用todo.update_item标记对应每日任务完成。这些示例展示了 Habitica 集成的整体用法。需要特别注意的是集成文档中的known limitations已知限制提醒Habitica API 存在速率限制频繁触发或多个并发的自动化很容易超出允许的请求数量。因此在设计依赖habitica.update_reward的自动化时应避免过密的触发器例如不要对每个实体状态变化都立即调用必要时加入去抖延迟或时间条件。排错与社区支持如果动作执行未达到预期集成文档与相关模板stuck.md给出了排查方向检查config_entry是否对应正确的角色、task是否精确匹配名称/ID/别名、字段类型是否符合上表尤其cost为 float、tag/remove_tag支持列表、以及是否触发了 Habitica API 的速率限制。Home Assistant 社区Discord、社区论坛、/r/homeassistant中描述你调用的动作与预期行为通常能得到快速解答。总结habitica.update_reward是 Habitica 集成中用于维护自定义奖励的核心动作通过config_entrytask定位奖励使用rename、notes、cost、tag/remove_tag、alias等可选字段精细控制奖励属性。它不支持 targets但提供了 UI 可视化与 YAML 两种调用方式且字段语义在两者间保持一致。配合create_reward与score_reward你可以在 Home Assistant 中实现完整的游戏化奖励生命周期管理——前提是留意 Habitica API 的速率限制合理安排自动化触发频率。【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻