Mealie – recepten manager

Mealie is een recepten manager om op een eenvoudige manier je collectie recepten te verzamelen en weer te geven in één interface. Daarnaast is er een integratie voor Home Assistant waardoor recepten getoond kunnen worden in een Home Assistant weergave en geeft kalenders voor Ontbijt, Lunch of Diner, Boodschappenlijstje, sensoren voor aantal recepten, categorieën en Acties om o.a. recepten te kiezen. Meer info over Mealie: https://mealie.io/

Mealie draait eenvoudig onder docker op een Linux 64-bit systeem, dus een VM of container in Proxmox of op een Raspberry Pi met docker, aan u de keus! De docker-compose.yaml file voor Mealie:

services:
  mealie:
    image: ghcr.io/mealie-recipes/mealie:latest
    container_name: mealie
    ports:
        - "80:9000"
    deploy:
      resources:
        limits:
          memory: 1000M
    depends_on:
      - postgres
    volumes:
      - mealie-data:/app/data/
    environment:
    # Set Backend ENV Variables Here
      - ALLOW_SIGNUP=true
      - PUID=1000
      - PGID=1000
      - TZ="Europe/Amsterdam"
      - MAX_WORKERS=1
      - WEB_CONCURRENCY=1
      - BASE_URL=http://mealie.local

    # Database Settings
      - DB_ENGINE=postgres
      - POSTGRES_USER=mealie
      - POSTGRES_PASSWORD=[ZET HIER HET DB PASSWORD]
      - POSTGRES_SERVER=postgres
      - POSTGRES_PORT=5432
      - POSTGRES_DB=mealie
    restart: always
  postgres:
    container_name: postgres
    image: postgres:15
    restart: always
    volumes:
      - ./mealie-pgdata:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: [ZET HIER HET DB PASSWORD]
      POSTGRES_USER: mealie

volumes:
  mealie-data:
    driver: local
  mealie-pgdata:
    driver: local

Hierna is het een kwestie van de docker-compose file uitvoeren met docker:

$ docker compose up -d

De website is bereikbaar via http://mealie.local en bij de eerste keer inloggen wordt gevraagd om een account aan te maken.

Voordat de integratie in Home Assistant kan koppelen met Mealie dient er een API token gegenereerd te worden en dat gaat in Mealie via het user-account en ‘Manage API tokens

Het token wordt gebruikt om de integratie toe te voegen aan Home Assistant met

Hierna zijn de sensors en kalenders beschikbaar in Home Assistant.

Extra Sensors

Aangezien er met de API van Mealie wordt gecommuniceerd via het token, kan er ook een template gemaakt worden met het REST platform in Home Assistant. Hiermee kan dan de naam van het recept opgevraagd worden, mits deze in Mealie in de maaltijdplanner is ingesteld.

De sensor voor de naam van het gerecht van vandaag kan dan in configuration.yaml toegevoegd worden:

sensor:
  - platform: rest
    resource: "http://mealie.local/api/groups/mealplans/today"
    method: GET
    name: Mealie todays meal
    headers:
      Authorization: Bearer [TOKEN KOMT HIER]
    value_template: "{{ value_json[0].recipe.name }}"
    force_update: true
    scan_interval: 30

de sensor in Home Assistant:

Op dezelfde manier kan ook het ID van het gerecht van vandaag opgevraagd worden via de API en in een sensor geplaatst worden:

sensor:
  - platform: rest
    resource: "http://mealie.local/api/groups/mealplans/today"
    method: GET
    name: Mealie todays meal ID
    headers:
      Authorization: Bearer [TOKEN KOMT HIER]
    value_template: "{{ value_json[0].recipe.id }}"
    force_update: true
    scan_interval: 30

Beide sensors kunnen nu gebruikt worden om de afbeelding en de naam van het gerecht van vandaag in een weergave in Home Assistant te plaatsen. Dat wordt dan gedaan door via de integratie ‘Algemene Camera‘, een entiteit aan te maken in Home Assistant. De URL van de stilstaande afbeelding wordt dan:

http://mealie.local/api/media/recipes/{{states('sensor.mealie_todays_meal_id')}}/images/original.webp?version=suta

en de rest blijft standaard. De camera kan dan toegevoegd worden aan een Afbeelding-met-entiteit-kaart:

En de weergave in de keuken ziet er dan zo uit: