Mealie

Mealie is an open source, self-hosted recipe manager, meal planner, and shopping list. The Mealie integration集成将 Home Assistant 与您的设备、服务等连接和集成。 [Learn more] will fetch and allow you to create and update data held in your Mealie instance.

Prerequisites

You create your API token on your Mealie installation:

  1. Sign in to Mealie.
  2. Go to your user (profile).
  3. Go to Manage Your API Tokens under (/user/profile/api-tokens).
  4. Enter a meaningful token name, such as ‘Home Assistant’.
  5. Select Generate.
  6. Copy the token that now appears so that you can later paste it into Home Assistant.

配置

要将 Mealie service 添加到您的 Home Assistant 实例中,请使用此 My 按钮:

手动配置步骤

如果上述 My 按钮不起作用,您也可以手动执行以下步骤:

URL

The URL of your Mealie installation.

API token

The API token for your Mealie installation you generated in the prerequisites.

Verify SSL certificate

Enable this unless you are using a self-signed certificate on your Mealie installation.

Available calendars

The integration will create a calendar for every type of meal plan, which are updated once an hour:

  • Breakfast
  • Lunch
  • Dinner
  • Side

Shopping Lists

The integration will create a to-do list for every Mealie shopping list, which are updated every 5 minutes.

Sensors

The integration provides the following sensors for the statistics, which are updated every 15 minutes:

  • number of recipes
  • categories (such as beverage, dessert, Italian, seafood)
  • tags (such as alcohol)
  • tools (such as instant pot, air fryer, or BBQ)
  • users

Actions

The Mealie integration has the following actions:

  • mealie.get_mealplan
  • mealie.get_recipe
  • mealie.import_recipe
  • mealie.set_mealplan
  • mealie.set_random_mealplan

Action mealie.get_mealplan

Get the meal plan for a specified range.

Data attribute Optional Description
config_entry_id No The ID of the Mealie config entry to get data from.
start_date Yes The start date of the meal plan. (today if not supplied)
end_date Yes The end date of the meal plan. (today if not supplied)

Action mealie.get_recipe

Get the recipe for a specified recipe ID or slug.

Data attribute Optional Description
config_entry_id No The ID of the Mealie config entry to get data from.
recipe_id No The ID or the slug of the recipe to get.

Action mealie.import_recipe

Import the recipe into Mealie from a URL.

Data attribute Optional Description
config_entry_id No The ID of the Mealie config entry to get data from.
url No The URL of the recipe.
include_tags Yes Include tags from the website to the recipe. (false by default)

Action mealie.set_mealplan

Set a mealplan on a specific date.

Data attribute Optional Description
config_entry_id No The ID of the Mealie config entry to get data from.
date No The date that should be filled.
entry_type No One of “breakfast”, “lunch”, “dinner”, or “side”.
recipe_id Yes The recipe to plan.
note_title Yes The title of the meal note.
note_text Yes The description of the meal note.

Action mealie.set_random_mealplan

Set a random mealplan on a specific date.

Data attribute Optional Description
config_entry_id No The ID of the Mealie config entry to get data from.
date No The date that should be filled.
entry_type No One of “breakfast”, “lunch”, “dinner” or “side”.

Tip

You can get your config_entry_id by using actions within Developer Tools, using one of the above actions and viewing the YAML.

Examples

Example template sensor using get_mealplan

Example template sensor that contains today’s dinner meal plan entries:

template:
  - triggers:
      - trigger: time_pattern
        hours: /1
    actions:
      - action: mealie.get_mealplan
        data:
          config_entry_id: YOUR_MEALIE_CONFIG_ENTITY_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 %}

Removing the integration

This integration follows standard integration removal, once the integration is removed you can remove the API token (assuming it was only used by this integration) by going to your Account in the Mealie web interface, then to Manage Your API Tokens and deleting the token you created for Home Assistant.

从Home Assistant中移除集成实例

  1. 前往 设置 > 设备与服务 并选择集成卡片。
  2. 从设备列表中,选择要删除的集成实例。
  3. 在条目旁边,选择三个点 菜单。然后,选择 删除