MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    MMM-Chores - Manage and keep track of your household Chores

    Scheduled Pinned Locked Moved Utilities
    104 Posts 19 Posters 28.5k Views 20 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • PierreGodeP Offline
      PierreGode Module Developer @mischag
      last edited by sdetweil

      @mischag Hi!
      latest update a lot settings has being moved to the webpage.

      It should work with the old config.js but might be acting up.

      try with the new settings. enabling show past tasks will show only past tasks that are not completed.

      make sure your config.js has

      {
        module: "MMM-Chores",
        position: "bottom_right",
        header: "Chores",
        config: {
          updateInterval: 60 * 1000,
          adminPort: 5003,
          openaiApiKey: "your-openApi-key here",
          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 completely
      // 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"
          ]
        }
      },
      

      f0b73199-e382-4746-9468-1591dbb198ce-image.png

      J 1 Reply Last reply Reply Quote 0
      • PierreGodeP Offline
        PierreGode Module Developer @mischag
        last edited by

        @mischag said in MMM-Chores - Manage and keep track of your household Chores:

        but now my mirror just looks like this…

        @mischag said in MMM-Chores - Manage and keep track of your household Chores:

        eciated as the kids can’t tick off

        PierreGodeP 1 Reply Last reply Reply Quote 0
        • PierreGodeP Offline
          PierreGode Module Developer @PierreGode
          last edited by

          If you cant make the new settings work for you, you could jump back to an older version
          git checkout uiimproovments and restart the module

          1 Reply Last reply Reply Quote 0
          • J Offline
            JohnGalt @PierreGode
            last edited by

            @PierreGode – What does the ‘Chores per Week Estimate’ do?

            What is it estimating, and what does it do with the estimate?

            PierreGodeP 1 Reply Last reply Reply Quote 0
            • PierreGodeP Offline
              PierreGode Module Developer @JohnGalt
              last edited by

              @JohnGalt
              It was supposed to show total completed chores per user per week, but it was bugging. Do you have the latest version?

              J 1 Reply Last reply Reply Quote 0
              • J Offline
                JohnGalt @PierreGode
                last edited by

                @PierreGode – OK, thanks. I was just wondering what it is estimating, and what it is supposed to do with the estimates.

                1 Reply Last reply Reply Quote 0
                • B Offline
                  bossier17
                  last edited by

                  Hi! How does MMM-Chores determine current date for tasks? I create a task in the Admin page for today, but it only shows if I have the “Show past tasks” option checked. The “created” and “assigned” date are correct in the data.json file. The raspberry pi looks like it is in correct location and time zone.

                  PierreGodeP 1 Reply Last reply Reply Quote 0
                  • PierreGodeP Offline
                    PierreGode Module Developer @bossier17
                    last edited by PierreGode

                    @bossier17
                    MMM‑Chores reads the current date from JavaScript’s built‑in Date object, which pulls time information directly from the host system’s clock. The display logic calls new Date() to obtain “today,”

                    Test it creating a clock.js with and run it with node clock.js this is what the app uses

                    const now = new Date();
                    console.log(new Date().toString());

                    B 1 Reply Last reply Reply Quote 0
                    • B Offline
                      bossier17 @PierreGode
                      last edited by

                      @PierreGode said in MMM-Chores - Manage and keep track of your household Chores:

                      const now = new Date();
                      console.log(new Date().toString());

                      hmmm I can’t figure it out. clock.js returns the correct date/time. But I cannot get today’s tasks to show on the mirror. Somehow the display Chores on the Mirror is showing tomorrow’s chores only. If I put a chore in the admin page for tomorrow it will display. But chores I put in with today’s date only show if I have “Show Past Tasks” checked. Any ideas?

                      PierreGodeP 1 Reply Last reply Reply Quote 0
                      • PierreGodeP Offline
                        PierreGode Module Developer @bossier17
                        last edited by

                        @bossier17
                        I made an update that I hope resolves the issue.
                        Update the module with git pull
                        /Pierre

                        B 1 Reply Last reply Reply Quote 0
                        • B Offline
                          bossier17 @PierreGode
                          last edited by

                          @PierreGode Awesome! That worked. Thanks so much!

                          1 Reply Last reply Reply Quote 1
                          • PierreGodeP Offline
                            PierreGode Module Developer
                            last edited by

                            Major update on its way coming days!

                            • 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

                            see images below

                            a43f3d78-4d8f-4fd4-a4f7-05cab7c1da37-image.png
                            070963db-a593-4dfb-a9c9-e7bd20885e85-image.png
                            992970af-c794-4c5e-a4df-312cafc672d8-image.png
                            dba8b888-7a15-4c1e-bd10-e26794e9b96c-image.png
                            790b179f-e8b2-4a2f-815d-678758290eaf-image.png

                            1 Reply Last reply Reply Quote 0
                            • A Offline
                              atwist
                              last edited by

                              Is it possible to have a recurring weekday only task? Just Monday-Friday?

                              1 Reply Last reply Reply Quote 0
                              • PierreGodeP Offline
                                PierreGode Module Developer
                                last edited by

                                @johngalt @sdetweil @redbeardedninja @sarote @mischag @plainbroke @

                                New big update out now.
                                New reward system
                                more recurring options

                                Fixes and updates.

                                eaff4adb-f0ca-4eb8-a8b0-e18692e174e9-image.png
                                33e69ea0-e02c-4d75-8228-8910dfa81257-image.png

                                1 Reply Last reply Reply Quote 1
                                • E Offline
                                  ewingfox
                                  last edited by sdetweil

                                  Hello! New user here, love the UI (especially the admin features!) I’m building a secret Christmas gift for my wife (who is obsessed with organization). I was about to give up on MM - until I found your module!

                                  Question: I see daily, weekly, monthly options - is there a feature to set reoccurring events that are Monday Friday? This is specific to kids who may have daily ‘weekday’ tasks to do that aren’t required on Saturday or Sunday. I’m happy to skip the UI - aka, create an event in the UI and then tweak the underlying config via CLI.

                                  Thank you!!!

                                  E
                                  EDIT:

                                  took a gander at your code (yeah, you are a pro - this is REALLY CLEAN (I’m a hack, but I know good work when I see it lol). Looks like an update to the getNextDate function, adding the pattern to the admin html file and the lang pack (I only added it to the enlish one (remember, hack here) seems to work pretty well. I’ll search a bit further and do a little testing to see how it behaves - but… a thing?

                                  E

                                  function getNextDate(dateStr, recurring) {
                                    const d = new Date(dateStr);
                                    if (recurring === "daily") {
                                      d.setDate(d.getDate() + 1);
                                    } else if (recurring === "weekly") {
                                      d.setDate(d.getDate() + 7);
                                    } else if (recurring === "monthly") {
                                      d.setMonth(d.getMonth() + 1);
                                    } else if (recurring === "yearly") {
                                      d.setFullYear(d.getFullYear() + 1);
                                    } else if (recurring && recurring.startsWith("every_")) {
                                      // Custom recurring patterns: every_X_days, every_X_weeks, first_monday_month
                                      const parts = recurring.split("_");
                                      if (parts[1] === "X" && parts[2] === "days") {
                                        const days = parseInt(parts[3]) || 2;
                                        d.setDate(d.getDate() + days);
                                      } else if (parts[1] === "X" && parts[2] === "weeks") {
                                        const weeks = parseInt(parts[3]) || 2;
                                        d.setDate(d.getDate() + (weeks * 7));
                                      } else if (recurring === "first_monday_month") {
                                        // First Monday of next month
                                        d.setMonth(d.getMonth() + 1);
                                        d.setDate(1);
                                        // Find first Monday
                                        while (d.getDay() !== 1) {
                                          d.setDate(d.getDate() + 1);
                                        }
                                      } else {
                                        return null;
                                      }
                                    } else {
                                      return null;
                                    }
                                    return d.toISOString().slice(0, 10);
                                  }
                                  

                                  34d49e4b-e53b-4fac-be14-3b4d6a278d73-image.png

                                  S 1 Reply Last reply Reply Quote 0
                                  • S Offline
                                    sdetweil @ewingfox
                                    last edited by

                                    @ewingfox please always code block for code, config and logs

                                    paste the text into the message editor window, blank line above and below
                                    select the text just pasted
                                    hit the </> button on the message editor toolbar

                                    I fixed prior

                                    Sam

                                    How to add modules

                                    learning how to use browser developers window for css changes

                                    E 1 Reply Last reply Reply Quote 2
                                    • E Offline
                                      ewingfox @sdetweil
                                      last edited by

                                      @sdetweil - Thanks! I’m a total hack, so I appreciate the heads up. MUCH CLEANER. I’m not used to passing code blocks in chats, usually I’m in an SCM somewhere, causing trouble… giving my devs a headache… :D

                                      E 1 Reply Last reply Reply Quote 0
                                      • E Offline
                                        ewingfox @ewingfox
                                        last edited by

                                        I’ve done a lot of testing and submitted PR-220 . It turns out there are some really complicated date functions that worked—unless they didn’t (edge cases with creating a weekday only task, setting start date on a Weekend, etc).

                                        else if (recurring === "daily-weekdays") {
                                            // We ignore the d.setDate(+1) and just find the next valid weekday from today
                                            let testDate = new Date(); 
                                            testDate.setDate(testDate.getDate() + 1);
                                            while (testDate.getDay() === 0 || testDate.getDay() === 6) {
                                                testDate.setDate(testDate.getDate() + 1);
                                            }
                                            // Force 'd' to be this specific date, bypassing module interference
                                            d.setTime(testDate.getTime());
                                        
                                          } else if (recurring === "daily-weekends") {
                                            let testDate = new Date();
                                            testDate.setDate(testDate.getDate() + 1);
                                            while (testDate.getDay() >= 1 && testDate.getDay() <= 5) {
                                                testDate.setDate(testDate.getDate() + 1);
                                            }
                                            d.setTime(testDate.getTime());
                                        

                                        14991c0d-e8fa-4d9d-95c1-d87e58757d59-image.png

                                        The logic is working (finally)- I wish I was better at this stuff, I’m a DevOps guy, so I’m lazy and not particularly talented at coding unless I can break thousands of servers with automation (then I’m a pro lol).

                                        I also went through and added the requisite language support for the 10 supported languages for the two new elements included in admin.html

                                                              <div class="col-sm-auto">
                                                                <select id="taskRecurring" class="form-select">
                                                                  <option value="">One time</option>
                                                                  <option value="daily">Daily</option>
                                                                  <option value="weekly">Weekly</option>
                                                                  <option value="daily-weekdays">Daily (Weekdays Only)</option>
                                                                  <option value="daily-weekends">Daily (Weekends Only)</option>
                                                                  <option value="monthly">Monthly</option>
                                                                  <option value="yearly">Yearly</option>
                                                                  <option value="every_X_days_2">Every 2 Days</option>
                                                                  <option value="every_X_days_3">Every 3 Days</option>
                                                                  <option value="every_X_weeks_2">Every 2 Weeks</option>
                                                                  <option value="every_X_weeks_3">Every 3 Weeks</option>
                                                                  <option value="first_monday_month">First Monday of Month</option>
                                                                </select>
                                                              </div>
                                        

                                        I’m testing a few .css changes to improve touchscreen support - you can see plenty of other .css issues I’ll nave to sort out, sreenshots from chrome of the MM page shows it’s not adjusting well to different browsers…

                                        9d065f9d-8c5e-4214-abd5-fdd57392da87-image.png

                                        I also put together a mini-module to provide a placard showing the options in the ‘reward store’ - My kid is super goal oriented, so being able to take advantage of @pierregode 's awesome reward system is going to be a big win!

                                        I’m going to look further into making this interactive and set up some kind of email to us to indicate she’s redeemed her coins on a particular reward.

                                        The current MMM-ChoreRewards is super crude and rude - you can see plenty of other .css issues I’ll have to sort out. @sdetweil hopefully I’ve formatted this post better - thank you for the #mod help!

                                        htilburgsH 1 Reply Last reply Reply Quote 1
                                        • htilburgsH Offline
                                          htilburgs @ewingfox
                                          last edited by htilburgs

                                          @pierregode
                                          I’m using dateFormatting: “” in my config, but I stil got the date on the dashboard. Do I somethine wrong?

                                                          {
                                                            module: "MMM-Chores",
                                                            position: "top_left",
                                                            header: "Takenlijst",
                                                            config: {
                                                                  updateInterval: 60 * 1000,
                                                                  adminPort: 5003,
                                                                  showDays: 365,
                                                                  showPast: true,
                                                                  dateFormatting: "",
                                                                  }
                                                          },
                                          

                                          194c5e22-2c1f-4839-b3a1-d688de98a8b1-image.png

                                          (still trying to learn JS, but not afraid to ask and AI is my best friend) ☺

                                          S PierreGodeP 2 Replies Last reply Reply Quote 0
                                          • S Offline
                                            sdetweil @htilburgs
                                            last edited by

                                            @htilburgs try

                                            dateFormatting:null

                                            Sam

                                            How to add modules

                                            learning how to use browser developers window for css changes

                                            1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 6
                                            • 4 / 6
                                            • First post
                                              Last post
                                            Enjoying MagicMirror? Please consider a donation!
                                            MagicMirror created by Michael Teeuw.
                                            Forum managed by Sam, technical setup by Karsten.
                                            This forum is using NodeBB as its core | Contributors
                                            Contact | Privacy Policy