Skip to content

PierreGode/MMM-Chores

Repository files navigation

MMM-Chores

MMM-Chores is a module for MagicMirror² that allows you to manage your household chores.

ko-fi

It provides an admin interface where you can add, edit, and delete tasks. You can also set due dates and assign tasks to different persons. Tasks may be one-time or recur daily, weekly, monthly, or yearly. The module displays the tasks on your MagicMirror, allowing you to keep track of your household chores at a glance.

The data is stored in data.json so it persists across restarts. Use the drag handle ("burger" icon) to reorder tasks in the admin UI. The updated order is saved to data.json and automatically reloaded, so it survives page refreshes and restarts.

The Show past tasks setting lets you toggle whether overdue tasks that are not yet completed should remain visible on the mirror. Completed past tasks are always hidden.

*Update 2025-08-04: most settings are moved to admin webpage

Note

*Update 2025-08-20: added optional login with possibility to add both write permission user and read only user.

added pushover notification possibility+ configuration to set daily reminders at specific time.

added background images " 4 seasons"

-reworked task list, moved up user assignment to creation space

-reworked edit option to be a form to be able to update task description, user and date

Screenshots

frontend

backend settings

Installation

cd ~/MagicMirror/modules
git clone https://github.com/PierreGode/MMM-Chores
cd MMM-Chores
npm install

Update

cd ~/MagicMirror/modules/MMM-Chores
git pull
npm install

Configuration

Most settings are now editable in the admin portal via the cogwheel Settings button.

An additional option Enable autoupdate can pull the latest changes via git pull and reload the module automatically and Autoupdates run once per day at 04:00 local time.

Pushover notifications can be toggled from the admin portal, while the pushoverApiKey and pushoverUser must be defined in your MagicMirror config.js.

You can also specify a daily reminder time in the admin settings to receive a Pushover message listing unfinished tasks due today or earlier.

When login is set to true, define one or more users with username, password and permission ("read" or "write"). Users with read permission may view all tasks but cannot create, delete or modify them.

Add the module to config.js like so:

{
  module: "MMM-Chores",
  position: "bottom_right",
  header: "Chores",
  config: {
    updateInterval: 60 * 1000,
    adminPort: 5003,
    openaiApiKey: "your-openApi-key here",
    pushoverApiKey: "your-pushover-api-key",
    pushoverUser: "your-pushover-user-key",
    login: false,
    users: [
      { username: "admin", password: "secret", permission: "write" },
      { username: "viewer", password: "viewer", permission: "read" }
    ],
    settings: "unlocked", //  set a 6 digit pin like "000000" to lock settings popup with a personal pin, change 000000 to any 6 digit password you want, or comment this out to lock settings completly
// other options can be set in the admin portal
    levelTitles: [
    // titles for every 10 levels
      "Junior",
      "Apprentice",
      "Journeyman",
      "Experienced",
      "Expert",
      "Veteran",
      "Master",
      "Grandmaster",
      "Legend",
      "Mythic"
    ]
  }
},

levels could also be rewards

    levelTitles: [            // titles for every 10 levels
      "10 euro game giftcard",
      "Movie Night Voucher",
      "Dinner at Favorite Restaurant",
      "Weekend Brunch Voucher",
      "Gadget Accessory (e.g. Headphones)",
      "Spa or Relaxation Package",
      "Adventure Experience Voucher",
      "Weekend trip",
      "Adventureland",
      "Travel destination"
    ]

When leveling.enabled is set to false, both the MagicMirror display and the admin portal hide any level badges and reward titles.

Level titles

For level N (1 ≤ N ≤ 100), the module chooses a title based on the ten-level interval that N belongs to. Level 1–10 uses the first entry in levelTitles, 11–20 the second entry, and so on. The boundaries are inclusive, so level 10 still uses the first title and 11 uses the second.

Specify your own titles by providing a levelTitles array with exactly ten strings in the configuration. If omitted, the defaults shown above are used.

Custom titles per person

You can override the global rewards for an individual by using the customLevelTitles object. The keys are the person's name and the value should be an array of ten titles.

customLevelTitles: {
  NameOfTheUser: [
    "10 euro game giftcard",
    "Movie Night Voucher",
    "Dinner at Favorite Restaurant",
    "Weekend Brunch Voucher",
    "Gadget Accessory (e.g. Headphones)",
    "Spa or Relaxation Package",
    "Adventure Experience Voucher",
    "Weekend trip",
    "Adventureland",
    "Travel destination"
  ]
}

Any person not listed in customLevelTitles falls back to the global levelTitles array or the defaults.

Per-person levels

Each person earns experience separately. Their current level and title are stored in data.json and shown next to the name in the admin interface. On the MagicMirror display the assigned person's name will include a small lvlX badge.

Admin Interface

Go to http://yourmirrorIP:5003/ #page will be reachable within same network.

Caution

DO NOT expose application with portforward

No.. the login will not protect you, a trained goldfish can hack it.

Push Notifications

If you wish to use push notifications follow guide below. Alternatively, you can use Pushover by providing both a pushoverApiKey and pushoverUser in your module config and enabling Pushover in the admin settings.

cert

1. in MagicMirror/modules/MMM-Chores create a folder certs

mkdir MagicMirror/modules/MMM-Chores/certs

2. Generate a private key in MMM-Chores/certs

openssl genrsa -out server.key 2048

3. Create a certificate signing request (CSR)

openssl req -new -key server.key -out server.csr -subj "/C=SE/ST=Stockholm/L=Stockholm/O=Home/CN=192.168.1.192" <--- YOUR IP

4. Generate a self-signed cert valid for 1 year

openssl x509 -req -in server.csr -signkey server.key -out server.crt -days 365

copy /certs/server.crt and install on your devices.

browse to https://yourmirrorIP:5004/ and allow push notifications.

Note

And yes everything will yell unsafe, warning warning, Not Secure, that is what happens when you do a selfsigned certificate and not a micrsoft signed cert for loads of money ;P

About

keep track of your household shores and tasks

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •