MagicMirror² v2.5.0 is available! For more information about this release, check out this topic.

GIF update from URL with MMM-EyeCandy

  • Weather radar is a tough thing to solve, but I stumbled across a solution if I can get a module like MM-EyeCandy to do an update pull from the URL.

            module: "MMM-EyeCandy",
            position: "bottom_right",
            config: {
                maxWidth: "50%", // Sizes the images. Retains aspect ratio.
                //style: "1",            // 1 - 52 or use ownImagePath to override style
                ownImagePath: "", // ex: "modules/MMM-EyeCandy/pix/YOUR_PICTURE_NAME.jpg", or internet url to image
                //ownImagePath: "",
                updateInterval: 10 * 60 * 1000,

    It does not appear the updateInterval is working unless it is throwing the following error when isolated.

    Whoops! There was an uncaught exception…
    TypeError: Cannot read property ‘hash’ of null
    at /home/pi/MagicMirror/modules/default/updatenotification/node_helper.js:68:31
    at Git. (/home/pi/MagicMirror/node_modules/simple-git/src/git.js:1482:10)
    at done (/home/pi/MagicMirror/node_modules/simple-git/src/git.js:1354:21)
    at ChildProcess. (/home/pi/MagicMirror/node_modules/simple-git/src/git.js:1379:16)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
    MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
    If you think this really is an issue, please open an issue on GitHub:

    Any ideas?

  • Module Developer

  • @Mykle1 @JRWJR

    I think this should work; add the following at the bottom of the start function in MMM-EyeCandy.js:

      start: function () {
        // ADDED: Schedule update timer
        setInterval(function() {
        self.updateDom(self.config.fadeSpeed || 0); // use config.fadeSpeed or revert to zero
        }, this.config.updateInterval);
      }, // this was line 83

  • Module Developer

    Thanks ninja. I was a little tied up last night with yesterday’s Nor’Easter slamming NYC late into the evening. If you don’t mind, I’ll just incorporate that into the module when I get home from work. 🙂


  • Module Developer


    Thanks again but the problem still exists. Let me explain what I’ve done so far.

    1. Added your setInterval(function().
    2. Tried to seed the url of the .gif file with a timestamp but that was rejected with a 404 error.
    3. Added a timestamp div/tag so I could check if the module was actually updating. It is.

    This url is not refreshing upon updateDom but the timestamp is.

    I’m lost. 😕


  • @Mykle1 How did you seed the url with a timestamp? When I visit, I get the image returned (not a 404).

  • Module Developer


    Like this, because I need the seed to change. Feel free to tell me what I’m doing wrong. Hehe 🙂

    var getTimeStamp = new Date().getTime();
    img.src = "" + getTimeStamp;

  • @Mykle1 Yep, just needs to be a ? before the first parameter. Anything after gets appended with an &, e.g.

    Making your code the following:

    ... // img creation, etc
    var getTimeStamp = new Date().getTime();
    img.src = "" + getTimeStamp;

  • Module Developer

    @ninjabreadman said in GIF update from URL with MMM-EyeCandy:

    Making your code the following:

    That did the trick. The .gif file is refreshing to reflect the new data when it changes.

    Thanks for the lesson. I do appreciate the help.


  • Module Developer


    I will post the update on github shortly. Thanks to our friend, @ninjabreadman, the module now works as it should.


    A git pull in the /MagicMirror/modules/MMM-EyeCandy folder will fix you up. Please take note of the changes to the config.js entry. Also, please take into account that the url you gave only updates itself about every 15 minutes.