十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Home Assistant Mealie 集成:使用 mealie.get_recipe 动作按 ID 或 Slug 获取完整菜谱

Home Assistant Mealie 集成:使用 mealie.get_recipe 动作按 ID 或 Slug 获取完整菜谱 Home Assistant Mealie 集成使用 mealie.get_recipe 动作按 ID 或 Slug 获取完整菜谱【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io本指南以 Home Assistant 的 Mealie 集成为背景系统讲解mealie.get_recipe动作的完整用法它如何通过菜谱 ID 或 slug 从自托管的 Mealie 实例中取回包含全部细节与步骤的菜谱数据并将其存入响应变量供自动化或脚本的后续步骤使用。读完本文你将掌握在界面与 YAML 两种方式下调用该动作、理解其全部参数与响应数据的含义并能结合mealie.get_recipes、mealie.get_mealplan等关联动作构建从搜索菜谱 → 读取详情 → 展示今日晚餐的完整智能厨房自动化链路。mealie.get_recipe是 Home Assistant Mealie 集成提供的一组菜谱管理动作之一其权威使用说明位于 source/_actions/mealie.get_recipe.markdown。Mealie 是一个开源自托管的菜谱管理、膳食规划与购物清单应用该集成ha_integration_type: service质量等级为 platinum自 2024.7 起可用允许 Home Assistant 读取并更新 Mealie 实例中保存的数据。本文即围绕读取菜谱这一核心动作展开。动作概述与工作原理使用mealie.get_recipe动作可以从 Mealie 按ID 或 slug获取一份菜谱返回的响应中包含该菜谱的完整细节与步骤食材、做法步骤等。其核心特点有两个定位方式灵活只需提供菜谱的 ID 或 slug例如roasted-tomato-soup即可取回菜谱无需提前知道菜谱在 Mealie 中的完整对象结构。结果通过响应变量返回动作不会创建设备或实体而是把结果写入你在调用时命名的response variable响应变量供同一自动化或脚本中的后续步骤继续使用。这是 Home Assistant 服务调用service call的一种标准能力适合在自动化中先取数据、再加工使用的串联式场景。前置条件先配置好 Mealie 集成在调用本动作之前需要先在 Home Assistant 中完成 Mealie 集成的配置Config Flow。配置前提与步骤见 Mealie 集成文档支持Mealie 2.0 及更高版本的实例在 Mealie 中生成 API Token登录 Mealie → 进入用户资料页 →Manage Your API Tokens/user/profile/api-tokens→ 命名如Home Assistant→Generate→ 复制 Token在 Home Assistant 中通过配置流程填入三个参数参数说明URLMealie 安装实例的访问地址API token上一步生成的 API TokenVerify SSL certificate默认启用仅当使用自签名证书时才关闭完成配置后Home Assistant 会为每种膳食计划类型创建日历、为每个购物清单创建待办列表并提供菜谱数、分类、标签、工具、用户等统计传感器。此时mealie.get_recipe等动作即可直接使用你可以在自动化、脚本或临时服务调用中指定该配置条目的config_entry_id。在界面中使用从自动化或脚本获取菜谱如果你偏好可视化方式构建自动化和脚本Home Assistant 会一步步引导你完成操作无需掌握 YAML 知识此引导片段定义于 actions/ui_header.md。按照 mealie.get_recipe.markdown 中的步骤操作进入设置Settings 自动化与场景Automations scenes。打开一个已有的自动化或脚本或选择创建自动化Create automation 创建新自动化Create new automation。若是新建自动化需要在When何时部分添加一个触发器脚本不需要触发器它们在被其他东西调用时运行。在Then do然后执行部分选择添加动作Add action。在搜索框中搜索并选择Mealie: Get recipe。选择要使用的Mealie 实例Mealie instance并设置菜谱 ID 或 slugRecipe ID or slug。在响应变量Response variable字段中输入一个名称来存放数据例如recipe。点击保存Save。界面选项一览界面中出现的选项如下模板定义于 options_ui.rb界面选项说明Mealie instance要从中获取菜谱的 Mealie 实例Recipe ID or slug要获取的菜谱的 ID 或 slug关于 Targets目标选择需要特别说明本动作不支持 targets目标选择。在界面中它不会提示你选择区域area、设备device、实体entity或标签label你直接选择 Mealie 实例即可。这是因为该动作操作的是 Mealie 服务端的数据而非 Home Assistant 本地实体。在 YAML 中使用完整参数参考如果你直接编写 YAML或想确切了解 Home Assistant 底层做了什么请参考本节的技术参考该段引导定义于 actions/yaml_header.md其中列出了 YAML 中使用的字段名、类型及必填性。在 YAML 中本动作的服务名称为mealie.get_recipe。把结果存入响应变量以便在后续步骤中使用action: mealie.get_recipe data: config_entry_id: YOUR_MEALIE_CONFIG_ENTRY_ID recipe_id: roasted-tomato-soup response_variable: recipe上述示例通过 slugroasted-tomato-soup获取菜谱并将其存入recipe响应变量。YAML 参数表参数必填类型说明config_entry_id是string要从中获取菜谱的 Mealie 配置条目config entry的 IDrecipe_id是string要获取的菜谱的 ID 或 slug其中config_entry_id即集成配置完成后生成的配置条目 ID可在设置 设备与服务中查看该 Mealie 条目的详情获取。响应数据拿到手的到底是什么调用mealie.get_recipe后动作会返回所请求菜谱的完整细节与步骤。这些数据被写入你指定的响应变量例如recipe可以在同一自动化/脚本的后续模板、条件或后续服务调用中引用。值得补充的是这一完整详情与搜索动作返回的简要描述形成对比。若你只需要一份菜谱列表或菜谱 ID/slug应使用mealie.get_recipes而当需要展开某份菜谱的全部内容如食材清单、做法步骤时再用本动作取回完整数据。这种先搜索定位、后取详情的两步式用法正是这两个动作设计上的搭配关系。实战组合先搜索定位再获取完整菜谱正如 mealie.get_recipes.markdown 所述要找到一份菜谱的 ID 或 slug请使用mealie.get_recipes动作它会在所有菜谱属性上执行搜索返回每份菜谱的简要描述并可通过result_limit控制返回数量默认 10。一个典型的自动化链路可以这样组织action: mealie.get_recipes data: config_entry_id: YOUR_MEALIE_CONFIG_ENTRY_ID search_terms: tomato soup result_limit: 5 response_variable: recipesaction: mealie.get_recipe data: config_entry_id: YOUR_MEALIE_CONFIG_ENTRY_ID recipe_id: {{ recipes[0].id }} response_variable: recipe即先用mealie.get_recipes搜索并取回菜谱列表含 ID/slug再从中取第一个结果交给mealie.get_recipe获取完整详情。两个关联动作的 YAML 参数对比如下参数get_recipesget_recipeconfig_entry_id必填string必填stringsearch_terms选填string在所有属性上搜索—result_limit选填integer默认 10—recipe_id—必填stringID 或 slug关于搜索行为的细节mealie.get_recipes的搜索行为取决于 Mealie 后端使用 PostgreSQL 后端时为模糊搜索fuzzy search否则为字面搜索literal search。因此在依赖搜索结果时需要注意你的 Mealie 实例所使用的数据库类型。深度应用把菜谱接入今日晚餐展示与通知mealie.get_recipe擅长取回单份菜谱的完整细节若你想读取某天的膳食计划例如今天晚饭吃什么则可以与mealie.get_mealplan动作配合使用。mealie.get_mealplan会按日期范围返回膳食计划条目响应数据位于mealplan键下每条包含膳食类型如breakfast、dinner、日期以及计划中的菜谱或备注。其 YAML 参数为config_entry_id必填、start_date选填默认今天、end_date选填默认今天。mealie.get_mealplan.markdown 给出了一个实用的模板传感器示例——每小时触发一次读取今天的膳食计划并把晚餐菜名展示为传感器状态template: - triggers: - trigger: time_pattern hours: /1 actions: - action: mealie.get_mealplan data: config_entry_id: YOUR_MEALIE_CONFIG_ENTRY_ID response_variable: result sensor: - name: Dinner today unique_id: mealie_dinner_today state: {% for meal in result.mealplan if meal.entry_type dinner -%} {{ meal.recipe[name] if meal.recipe is not none else meal.title -}} {{ , if not loop.last }} {%- endfor %}在这个链路中mealie.get_mealplan返回的计划条目里带有菜谱引用若需要在仪表板或通知中展示完整菜谱细节则可在后续步骤调用mealie.get_recipe以计划条目中携带的菜谱 ID 或 slug 取回完整数据用于展示做法步骤、食材清单或生成购物提醒。关联的膳食计划动作族围绕膳食计划Mealie 集成还提供了一组可与本动作搭配的动作见 mealie.set_mealplan.markdown、mealie.set_random_mealplan.markdown、mealie.update_mealplan.markdown、mealie.delete_mealplan.markdown动作作用关键参数mealie.set_mealplan在指定日期安排一份菜谱或膳食备注date、entry_typebreakfast/lunch/dinner/side/dessert/snack/drink、recipe_id或note_title/note_textmealie.set_random_mealplan在指定日期随机安排一份菜谱date、entry_typemealie.update_mealplan更新已有膳食计划菜谱或备注mealplan_id、date、entry_type、recipe_id或note_title/note_textmealie.delete_mealplan删除已有膳食计划mealplan_idmealie.import_recipe从 URL 将菜谱导入 Mealie可选返回导入的菜谱url必填、include_tags选填boolean默认 false这些动作与本动作共享同一config_entry_id参数与响应变量机制set_mealplan、set_random_mealplan、update_mealplan、import_recipe均可选择性地把结果写入响应变量而get_recipe、get_recipes、get_mealplan则始终通过响应变量返回结果。整体上构成查询 → 规划 → 更新 → 展示的完整闭环。Good to know使用要点与排障如何找到菜谱 ID 或 slug使用mealie.get_recipes动作搜索菜谱即可从响应中取得菜谱 ID 或 slug再传入mealie.get_recipe获取完整详情。本动作不产生实体它属于纯服务调用结果只进入响应变量若需要把菜谱数据可视化应结合模板传感器如上面今日晚餐示例或模板卡片输出。Mealie 版本要求集成仅支持 Mealie 2.0 及更高版本见 Mealie 集成文档。连接排查若你使用的是 Home Assistant 的 Mealie 应用原 Mealie 插件请使用带端口号的直连 URL默认 9090不要使用以/xxx_mealie结尾的 ingress 地址。排障方式如遇问题可启用调试日志并重启集成复现问题后停止调试日志并如有可能下载诊断数据一并提交问题报告。小结mealie.get_recipe是 Home Assistant Mealie 集成中用于按 ID 或 slug 取回完整菜谱细节的核心动作界面操作只需选择实例、填写菜谱标识并命名响应变量YAML 调用只需config_entry_id与recipe_id两个必填参数。将其与mealie.get_recipes搜索定位、mealie.get_mealplan读取膳食计划以及mealie.set_mealplan等规划类动作配合即可在自动化中实现从菜谱搜索、详情读取到今日晚餐展示与提醒的完整智能厨房工作流。相关动作的权威参数说明与界面操作步骤均可在仓库的 source/_actions/ 目录下按动作名逐一查阅。【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表