MMM-MealieMenu is a module for MagicMirror² that displays your Mealie meal plan for the week.
This module shows your meal plan from Mealie.
Mealie is an intuitive and easy to use recipe management app. It's designed to make your life easier by being the best recipes management experience on the web and providing you with an easy to use interface to manage your growing collection of recipes.
Mealie is self-hostable, meaning you can run it on your own server without any reliance on cloud-services.
After you installed MMM-MealieMenu you just configure it to your needs and that's it. You will need to provide the Mealie host
and credentials as an apiKey
or username
& password
.
For more information see the Configuration section.
Just clone MMM-MealieMenu
into the modules folder of your MagicMirror² installation:
cd ~/MagicMirror/modules
git clone https://github.com/zanix/MMM-MealieMenu
Go to the MMM-MealieMenu
folder inside MagicMirror² modules folder and pull the latest version from GitHub:
cd ~/MagicMirror/modules/MMM-MealieMenu
git pull
Restart MagicMirror² after updating.
The module is quite configurable. The only required options are host
, apiKey
(or username
/password
) - all other options are optional.
These are the possible options:
Option | Description |
---|---|
host |
The URL to your Mealie instance. REQUIRED |
apiKey |
An API key generated from a user profile in Mealie. REQUIRED When not using username and password Note: You can generate a key by going to your user profile in Mealie then to API Tokens link (or using this path |
username |
The username/email for your Mealie account. REQUIRED When not using |
password |
The password for your for Mealie account. REQUIRED When not using |
householdId |
The Household ID (as a UUID) to use when fetching the meal plan. Type: Note 1: You can get the UUID of a household from Settings > Households. Note 2: The default "Family" household is used when this is blank. Note 3: For Mealie v1, Households do not exist, use Groups. |
groupId |
The Group ID (as a UUID) to use when fetching the meal plan. Type: Note 1: You can get the UUID of a group from Settings > Groups. Note 2: The default "Home" group is used when this is blank. |
currentWeek |
Only show meals for the current week. Set to Type: |
weekStartsOnMonday |
Show Monday as the first day of the week. Set to Type: Note: Only valid when |
dayLimit |
How many days will be displayed after today. Type: Note: If Note 2: If |
priorDayLimit |
How many previous days will be displayed. Type: Note 1: If Note 2: If |
entryLimit |
How many entries from future days should be shown in total. Type: Note: |
priorEntryLimit |
How many entries from previous days should be shown in total. Type: Note: |
fadePriorEntries |
Fade previous days in the current week. Type: |
showPictures |
Show pictures corresponding to that days meal. Type: |
roundPictureCorners |
Round the meal picture corners. Type: |
defaultPicture |
Picture to display for missing recipe images or meal notes. Type: Note: If the image does not have |
showDescription |
Show the recipe description or meal note. Type: |
dateFormat |
Display format for the date; uses moment.js format string Type: |
dateMealSeperator |
Set the separator between the date and meal type. Type: Note: Above each menu item, the date and meal type are displayed. For example, by default you'll see "Tuesday - Dinner". This setting controls the characters separating |
mealSortOrder |
An array determining the order of the meal type headers. Type: Note 1: You can remove a meal type here by removing the value. Note 2: The values MUST match the possible values above. You can change what is displayed using the |
mealTypeName |
An object defining strings which are to be replaced in the displayed directions. Type: Note: The strings which appear as the keys of the object will be replaced by their values. Given a meal type Note 2: If you want to replace special symbols like |
updateInterval |
The time in seconds when the meal plan should be updated. Type: |
animationSpeed |
Speed of the update animation. Type: |
displayLastUpdate |
Display the last update time at the end of the meal plan list. Type: |
displayLastUpdateFormat |
Format to use for the time display if Type: |
Here is an example of an entry in config.js
. Take note of mealTypeName
and mealSortOrder
. Here, we use the side
meal type as a reminder of things we need to do to prepare for future meals, e.g., thaw meat. mealTypeName
changes what appears, and mealSortOrder
moves the side entries to the top of the list for each day.
{
module: "MMM-MealieMenu",
header: "Dinner Menu",
position: "top_left",
config: {
apiKey: "eyhJbcG...", // Not needed when using username/password
username: "yourmealieemail@email.com", // Not needed when using apiKey
password: "Secret!", // Not needed when using apiKey
weekStartsOnMonday: true,
roundPictureCorners: true,
mealSortOrder: ["side", "breakfast", "lunch", "dinner"],
mealTypeName: {
side: "Meal Prep"
}
}
},
It is possible to use multiple instances of this module just by adding another entry of the MMM-MealieMenu module to the config.js
of your mirror.
- Michael Teeuw for creating the project MagicMirror². You can sponsor the MagicMirror² project on their donate page.
- Kael Spencer for creating the MMM-PaprikaMenu module, on which this one is originally based.
- Brian O'Connor for contributing to this project.
If you find any problems, bugs or have questions, please open a GitHub issue in this repository.
Pull requests are of course very welcome. Please see Contributing and the Pull Request Template for details.