• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
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.

Module Developer Challenge - I surrender!

Scheduled Pinned Locked Moved Solved Development
33 Posts 6 Posters 17.1k Views 5 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.
  • S Offline
    strawberry 3.141 Project Sponsor Module Developer @Guest
    last edited by Oct 22, 2017, 5:32 PM

    @Sean actually the problem starts even before the cache. the way magicmirror is designed in the update module function is, that it will only rerender if there was something changed in the dom. But your solution should still fix the problem.

    Another similar way would be to put a “seed” to the dom element itself insetad of the url, as i suggested in the iframe reload module, which fixed the reload problem there.

    after line 147

    img.setAttribute("timestamp", new Date().getTime());
    

    which will create an dom element like:

    < img class="photo" timestamp="1508693514656" src="http://api.usno.navy.mil/imagery/earth.png?date=today" />
    

    Please create a github issue if you need help, so I can keep track

    M 1 Reply Last reply Oct 23, 2017, 12:34 AM Reply Quote 2
    • M Offline
      Mykle1 Project Sponsor Module Developer
      last edited by Oct 22, 2017, 8:16 PM

      @Sean
      @strawberry 3.141

      Oh hey, thanks to you both. I just got in from my daughter’s. I was playing with my grandchildren. I will give those a try right now. You guys are awesome!

      I’ll post back with my results.

      Create a working config
      How to add modules

      1 Reply Last reply Reply Quote 0
      • M Offline
        Mykle1 Project Sponsor Module Developer @Guest
        last edited by Mykle1 Oct 22, 2017, 11:38 PM Oct 22, 2017, 9:19 PM

        @Sean said in Module Developer Challenge - I surrender!:

        http://api.usno.navy.mil/imagery/earth.png?date=today&seed=[SomeRandomValue]

        Hi Sean,

        I tried your suggestion first as yours was the first suggestion.

        I added a var for random number between 1 and 99

        var randomNumber = Math.floor(Math.random() * 99);
        

        And inserted that into the url

        img.src = "http://api.usno.navy.mil/imagery/earth.png?date=today&seed=" + randomNumber;
        

        Console log reporting that the random number is being generated

        http://api.usno.navy.mil/imagery/earth.png?date=today&seed=16
        MMM-SunRiseSet.js:157 http://api.usno.navy.mil/imagery/earth.png?date=today&seed=5
        MMM-SunRiseSet.js:157 http://api.usno.navy.mil/imagery/earth.png?date=today&seed=75
        MMM-SunRiseSet.js:157 http://api.usno.navy.mil/imagery/earth.png?date=today&seed=31
        MMM-SunRiseSet.js:157 http://api.usno.navy.mil/imagery/earth.png?date=today&seed=12
        MMM-SunRiseSet.js:157 http://api.usno.navy.mil/imagery/earth.png?date=today&seed=16
        

        Many thanks to you, Sean. The module IS updating now!

        Now, on to try @strawberry’s suggestion!

        EDIT
        I set the above to run on my MacBuntu laptop running MM so I could monitor it. It was updating nicely for a while but then something odd happened. An update resulted in an earlier image being loaded. I think this is because random numbers between 1 - 99 will at some point choose the same number.

        I’ll continue to work on it. I have an idea!

        Create a working config
        How to add modules

        ? 1 Reply Last reply Oct 22, 2017, 11:36 PM Reply Quote 0
        • ? Offline
          A Former User @Mykle1
          last edited by Oct 22, 2017, 11:36 PM

          @Mykle1 I think 99 is somehow too small. Use bigger values or timestamp for preventing duplicated.

          M 1 Reply Last reply Oct 22, 2017, 11:40 PM Reply Quote 1
          • M Offline
            Mykle1 Project Sponsor Module Developer @Guest
            last edited by Oct 22, 2017, 11:40 PM

            @Sean said in Module Developer Challenge - I surrender!:

            I think 99 is somehow too small. Use bigger values or timestamp for preventing duplicated.

            Yes, see the edit to my post. I was writing that as you posted.

            I’ll report back

            Create a working config
            How to add modules

            1 Reply Last reply Reply Quote 0
            • M Offline
              Mykle1 Project Sponsor Module Developer @strawberry 3.141
              last edited by Oct 23, 2017, 12:34 AM

              @strawberry-3.141

              So, after having tried Sean’s suggestion I realized my mistake in using a random number instead of timestamp. As I was about to try your suggestion I realized that I could use a part of Sean’s suggestion and a part of your suggestion.

              I had already set up a var for random numbers, so I changed that to var getTimeStamp = new Date().getTime(); which was your idea added to Sean’s idea of a random value. A quick check in the console showed me it was working.

              http://api.usno.navy.mil/imagery/earth.png?date=today&seed=1508717386975
              MMM-SunRiseSet.js:166 http://api.usno.navy.mil/imagery/earth.png?date=today&seed=1508717686862
              MMM-SunRiseSet.js:166 http://api.usno.navy.mil/imagery/earth.png?date=today&seed=1508717686866
              MMM-SunRiseSet.js:166 http://api.usno.navy.mil/imagery/earth.png?date=today&seed=1508717987939
              MMM-SunRiseSet.js:166 http://api.usno.navy.mil/imagery/earth.png?date=today&seed=1508717987944
              MMM-SunRiseSet.js:166 http://api.usno.navy.mil/imagery/earth.png?date=today&seed=1508718287819
              MMM-SunRiseSet.js:166 http://api.usno.navy.mil/imagery/earth.png?date=today&seed=1508718287823
              

              Then a simple edit to the url which was kinda, sorta, like the ideas you both had.

              img.src = "http://api.usno.navy.mil/imagery/earth.png?date=today&seed=" + getTimeStamp;
              

              And BOOM! Success! I’ll leave it running all night and check it in the morning but I don’t foresee any problems

              So, thank you Strawberry and thank you Sean. You guys are truly amazing!!!

              Commence embarrassment recovery

              Create a working config
              How to add modules

              1 Reply Last reply Reply Quote 0
              • M Offline
                Mykle1 Project Sponsor Module Developer
                last edited by Oct 23, 2017, 2:33 AM

                So far, so good. I have it running on my MacBuntu laptop. Here is a 2 frame animation so you get the idea. Obviously, there are quite a few updates absent from the gif and the shadow will move much more slowly and not jump across the planet. hehe
                0_1508726003023_1.gif

                Create a working config
                How to add modules

                1 Reply Last reply Reply Quote 0
                • M Offline
                  Mykle1 Project Sponsor Module Developer
                  last edited by Oct 23, 2017, 1:34 PM

                  I am happy to report that the module ran for the last 11 hours without a hitch. The visual image shows day and night exactly where it should.

                  Create a working config
                  How to add modules

                  1 Reply Last reply Reply Quote 3
                  • M Offline
                    Mykle1 Project Sponsor Module Developer
                    last edited by Feb 14, 2018, 10:50 PM

                    I find myself in a similar situation, again. :-)

                    This is my cry for help. I only do this when I’ve tried all the things I know
                    and googled the things I don’t know. I’ve even tried free form improvising but coding
                    seems to reject that sort of thing, at least in my case.

                    About 2 weeks ago I wrote a module that gets system stats from a PC board running
                    ubuntu and MM. There is just one more thing that I want to include. I want to get the system
                    temperature (CPU?) and/or the temps of any other system components.

                    So, it is with the utmost humility that I ask for your help, suggestions or directions. I won’t
                    object to any modifications that anyone cares to make, if that is the case. If it can’t be done,
                    I can live with that, too. Even if you look at the module and never make any comments regarding
                    my request, I still thank you for your time and interest.

                    https://github.com/mykle1/MMM-PC-Stats

                    Peace

                    Create a working config
                    How to add modules

                    N 1 Reply Last reply Feb 15, 2018, 2:38 AM Reply Quote 0
                    • N Offline
                      ninjabreadman @Mykle1
                      last edited by ninjabreadman Feb 15, 2018, 2:38 AM Feb 15, 2018, 2:38 AM

                      @Mykle1 It doesn’t seem that pc-stats has all the info you require. You might consider switching to the systeminformation package.

                      You can then use si.cpu() for your CPU stats and si.cpuTemperature() to retrieve an object that (if I read the docs right) looks like { main: 0, max: 0, cores: [0, 0] } with your core temps. You can then combine the two responses (or you may be able to have it return all within one request) and return those in a single sendNotification() call.

                      Problem with config or JavaScript? Copy/paste it into JSHint.
                      Check out the detailed walkthroughs on install, config, modules, etc.

                      M 1 Reply Last reply Feb 15, 2018, 2:51 AM Reply Quote 1
                      • 1
                      • 2
                      • 3
                      • 4
                      • 1 / 4
                      • 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