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.

    SimpleLogo auto change logo not working

    Scheduled Pinned Locked Moved Unsolved Troubleshooting
    21 Posts 3 Posters 6.8k Views 3 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
      sdetweil @RoadRunnr1469
      last edited by

      @RoadRunnr1469 what is SimpleLogo?

      can u post that part of your config.js for this module?

      the doc says

      refreshInterval	
      
      Refresh/refetch image file between interval. Only use this if your image url return different image after some interval of time, even the fileUrl is not changed. See this case #2, awesome project by @ElYoM
      
      Possible values: 1000, 2000, or 10000
      Default value: 0 (disabled)
      

      Sam

      How to add modules

      learning how to use browser developers window for css changes

      R 1 Reply Last reply Reply Quote 0
      • R Offline
        RoadRunnr1469 @sdetweil
        last edited by

        @sdetweil I left that as default in the MMM-SimpleLogo.js - it isn’t clear what needs to change in there.

        S 1 Reply Last reply Reply Quote 0
        • R Offline
          RoadRunnr1469
          last edited by sdetweil

          Module.register("MMM-SimpleLogo", {
              // Default module config.
              defaults: {
                  text: "",
                  fileUrl: "modules/MMM-SimpleLogo/public/Amc.JPG",
                  width: "200px",
          	notification: "SIMPLE_LOGO_UPDATE",
                  position: "top_center",
                  refreshInterval: 1000
              },
          
              start: function() {
                  if (this.config.refreshInterval > 0) {
                      var self = this;
                      var imgsrc = self.config.fileUrl;
                      this.interval = setInterval(function() {
                          img = document.querySelector(".simple-logo__container img[src*='" + imgsrc + "']");
                          imgsrc = self.config.fileUrl;
                          if(!imgsrc.includes("?"))
                                  imgsrc += '?' + Date.now();
                          else
                                  imgsrc += '&' + Date.now();
                          img.setAttribute('src', imgsrc);
                      }, this.config.refreshInterval);
                  }
              },
          
              getStyles: function () {
                  return [
                      this.file('css/mmm-simplelogo.css')
                  ];
              },
          
              notificationReceived: function(notification, payload) {
                  if (notification == "SIMPLE_LOGO_UPDATE") {
                      // stop auto-refresh (if any)
                      if (this.config.refreshInterval > 0) {
                          clearInterval(this.interval);
                      }
                      // update with new parameters
                      for (var attr in payload) this.config[attr] = payload[attr];
                      // restart auto-refresh (if any)
                      this.start();
                      this.updateDom();
                  }
              },
          
              // Override dom generator.
              getDom: function() {
                  var wrapper = document.createElement("div");
                  wrapper.className = 'simple-logo__container';
                  wrapper.classList.add(this.config.position);
                  wrapper.style.width = this.config.width;
                  var text = document.createTextNode(this.config.text);
                  wrapper.appendChild(text);
                  var img = document.createElement("img");
                  img.setAttribute('src', this.config.fileUrl);
                  wrapper.appendChild(img);
                  return wrapper;
              }
          });
          
          1 Reply Last reply Reply Quote 0
          • S Offline
            sdetweil @RoadRunnr1469
            last edited by sdetweil

            @RoadRunnr1469 u don’t edit the SimpleLogo.js file (in general u NEVER edit the module files unless u are making code fixes or enhancements)

            you edit the config.js

            default is NEVER update

            in config.js

             {
               module: "MMM-SimpleLogo",
               position: ????,
               config: {
                  refreshInterval:  5* 60 * 1000   // 5 minutes, times  60 seconds times 1000 milliseconds per second
                  fileUrl: "???????"
               } 
            }
            

            everything in the config: { … }
            overrides the moduleName.js defaults: { …} items of the same names

            Sam

            How to add modules

            learning how to use browser developers window for css changes

            R 1 Reply Last reply Reply Quote 0
            • F Offline
              FlameShotBow
              last edited by

              As @sdetweil stated you shouldn’t be editing the modules JavaScript file.

              To ensure that the SimpleLogo module has not been damaged I would reinstall the module and the OnScreenMenu module if you edited the JavaScript of that too.

              Once you have a fresh install of SimpleLogo and OnScreenMenu you need to edit the config file in magic mirror and not any of the module files.

              I’m not sure what you mean about the “auto chance” aspect. If you want the logos to automatically change then I would suggest sending a notification to SimpleLogo using ModuleScheduler. On the other hand, if you want to manually change them. You can use the OnScreenMenu module like so:

              {
                  module: "MMM-OnScreenMenu",
                  position: "top_centre",
                  config: {
                      menuItems: {
                          notify1: {
                              title: "AMC Logo",
                              notification: "SIMPLE_LOGO_UPDATE",
                              payload: {
                                  fileUrl: "modules/MMM-SimpleLogo/public/Amc.JPG",
                                  width: "750px"
                              }
                          },
                          notify2: {
                              title: "Show other logo",
                              notification: "SIMPLE_LOGO_UPDATE",
                              payload: {
                                  fileUrl: "modules/MMM-SimpleLogo/public/......",
                                  width: "1050px"
                              }
                          }
                      }
                  }
              }
              

              which should hopefully give you the option to change the logo manually.

              Hope this helps.

              Pretty experienced with programming - Pretty not experienced with magic mirrors

              1 Reply Last reply Reply Quote 0
              • R Offline
                RoadRunnr1469
                last edited by

                I don’t understand why people have to be so confrontational and un helpful. Making changes the the DEFAULT portion of the main file ONLY affects the initial settings.

                As far as what I mean by auto changing logo, that is what I understood by the documentation for the module.
                Dynamic to me means it will change at a given amount of time…

                ****** Copy/Paste from MMM-SimpleLogo*****
                The MMM-SimpleLogo module supports the notification event SIMPLE_LOGO_UPDATE which allows the configuration to be dynamically modified. As an example, the MMM-OnScreenMenu module might be used to dynamic adjust the fileURL parameter as follows


                1 Reply Last reply Reply Quote 0
                • R Offline
                  RoadRunnr1469 @sdetweil
                  last edited by

                  @sdetweil changing the simplelogo.js back and putting updates in config.js has not made any changes. the logo still stays on the same logo, never changes.

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

                    @RoadRunnr1469 ok, looking thru the code and doc

                    Refresh/refetch image file between interval. Only use this if your image url return different image after some interval of time, even the fileUrl is not changed.
                    

                    the code adds a time to the end of the fileurl to force a unique value. You could do this if the URl to the file stayed the same, but the actual file was different (something overwrote the file since last time)

                    so, they planned on the something changing the actual logo file contents

                            var imgsrc = self.config.fileUrl;
                                this.interval = setInterval(function() {   // < --- start a recurring timer
                                    img = document.querySelector(".simple-logo__container img[src*='" + imgsrc + "']");
                                    imgsrc = self.config.fileUrl;
                                    if(!imgsrc.includes("?"))
                                            imgsrc += '?' + Date.now();  // < ---
                                    else
                                            imgsrc += '&' + Date.now();  // < -----
                                    img.setAttribute('src', imgsrc);
                                }, this.config.refreshInterval);  // < ---  refresh time
                            }
                    

                    the code also allows some other module to send it a message to change the logo url

                    I don’t understand why people have to be so confrontational and un helpful.
                    

                    we are not being ‘un helpful’, the design of the mirror app is to INTENTIONALLY keep people from having to change the module file for different options…

                    so, when we see someone going down that path, we want to get them back on the design
                    I can look at the module code from github, I can’t see what you did locally. (in general)
                    makes it harder to help, and changes made get wiped out if there is a module update…
                    (that tends to make people upset when their stuff is lost!)

                    but your and my initial understanding of what was supposed to happen (as I didn’t know anything about this module), is wrong… update the cycle time but keep the same exact image and nothing will change.
                    you can prove this with 2 logo files.

                    start with one, and then copy the other over the 1st while the module is working.

                    we are all volunteers here…

                    Sam

                    How to add modules

                    learning how to use browser developers window for css changes

                    1 Reply Last reply Reply Quote 0
                    • R Offline
                      RoadRunnr1469
                      last edited by

                      The ReadMe file shows this
                      cat README.md

                      Module: MMM-SimpleLogo

                      The MMM-SimpleLogo module is third party modules of the MagicMirror. This module simply displays logo.

                      Using the module

                      To use this module, add it to the modules array in the config/config.js file:

                      modules: [
                          {
                              module: 'MMM-SimpleLogo',
                              position: 'top_left',    // This can be any of the regions.
                              config: {
                                  // The config property is optional.
                                  // See 'Configuration options' for more information.
                              }
                          }
                      ]
                      

                      Configuration options

                      The following properties can be configured:

                      Option Description
                      fileUrl File url.

                      Possible values: Logo link form internet or path to your local files relative to MagicMirror directory
                      Default value: 'modules/MMM-SimpleLogo/public/logo.png'
                      width Set width of your logo, height is auto.

                      Possible values: '300px' or '50%'
                      Default value: '200px'
                      position Horizontal position on current container

                      Possible values: left, center, or right
                      Default value: left
                      refreshInterval Refresh/refetch image file between interval. Only use this if your image url return different image after some interval of time, even the fileUrl is not changed. See this case #2, awesome project by @ElYoM

                      Possible values: 1000, 2000, or 10000
                      Default value: 0 (disabled)
                      text Text above the image.

                      Possible values: Any text
                      Default value: Simple Logo

                      Notification Events

                      The MMM-SimpleLogo module supports the notification event SIMPLE_LOGO_UPDATE which allows the configuration to be dynamically modified. As an example, the MMM-OnScreenMenu module might be used to dynamic adjust the fileURL parameter as follows:

                      {
                          module: "MMM-OnScreenMenu",
                          position: "top_left",
                          config: {
                              menuItems: {
                                  notify1: {
                                      title: "Show Cat",
                                      notification: "SIMPLE_LOGO_UPDATE",
                                      payload: {
                                          fileUrl: "cat.jpg",
                                          width: "750px"
                                      }
                                  },
                                  notify2: {
                                      title: "Show Dog",
                                      notification: "SIMPLE_LOGO_UPDATE",
                                      payload: {
                                          fileUrl: "dog.jpg",
                                          width: "1050px"
                                      }
                                  }
                              }
                          }
                      }
                      
                      S 1 Reply Last reply Reply Quote 0
                      • S Offline
                        sdetweil @RoadRunnr1469
                        last edited by

                        @RoadRunnr1469 right. Some external module sends a message.

                        I didn’t look at that code

                        Sam

                        How to add modules

                        learning how to use browser developers window for css changes

                        R 3 Replies Last reply Reply Quote 0
                        • R Offline
                          RoadRunnr1469 @sdetweil
                          last edited by

                          @sdetweil
                          Based on the section “Notification Events” I added a section as called out.
                          this isn’t letting me paste it in here, says it is spam.

                          1 Reply Last reply Reply Quote 0
                          • R Offline
                            RoadRunnr1469 @sdetweil
                            last edited by

                            @sdetweil

                            I added this to the config.js file

                                        {
                                        module: "MMM-OnScreenMenu",
                                                position: "bottom_right",
                                                config: {
                                                        menuItems: {
                                                        notify1: {
                                                                title: "Patch",
                                                                notification: "SIMPLE_LOGO_UPDATE",
                                                                payload: {
                                                                        fileUrl: "modules/MMM-SimpleLogo/public/Amc.JPG",
                                                                        width: "200px"
                                                                        }
                            
                            S 1 Reply Last reply Reply Quote 0
                            • R Offline
                              RoadRunnr1469 @sdetweil
                              last edited by sdetweil

                              @sdetweil

                                                                      },
                                                              notify2: {
                                                                      title: "Support",
                                                                      notification: "SIMPLE_LOGO_UPDATE",
                                                                      payload: {
                                                                              fileUrl: "modules/MMM-SimpleLogo/public/RedSupport.jpg",
                                                                              width: "150px"
                                                                              }
                                                                      },
                              
                              S 1 Reply Last reply Reply Quote 0
                              • S Offline
                                sdetweil @RoadRunnr1469
                                last edited by

                                @RoadRunnr1469 I won’t be able to look at this til tomorrow or Sunday.

                                Open the developers window ctrl-shift-i select the console tab and scroll up to see any messages sent from the on screen module

                                Sam

                                How to add modules

                                learning how to use browser developers window for css changes

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

                                  @RoadRunnr1469 I installed the module, and modified one of mine to send the notification, and it worked as expected.

                                  Sam

                                  How to add modules

                                  learning how to use browser developers window for css changes

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

                                    @RoadRunnr1469 and you installed the “MMM-OnScreenMenu” module too, right?

                                    Sam

                                    How to add modules

                                    learning how to use browser developers window for css changes

                                    R 1 Reply Last reply Reply Quote 0
                                    • R Offline
                                      RoadRunnr1469 @sdetweil
                                      last edited by

                                      @sdetweil yes, and the on screen option works fine changes the logo as expected.

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

                                        @RoadRunnr1469 cool… can u mark this as resolved now?

                                        Sam

                                        How to add modules

                                        learning how to use browser developers window for css changes

                                        1 Reply Last reply Reply Quote 0
                                        • R Offline
                                          RoadRunnr1469
                                          last edited by

                                          no, the SimpleLogo auto changer part still is not working.

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

                                            @RoadRunnr1469 ok, YOU have to actually update the fileUrl file with new contents.

                                            it loads the SAME fileUrl over and over and over and over
                                            it adds a fake timestamp to the URL to force the browser cache to see a different file
                                            which loads a new instance into the cache…

                                            so somehow you have to do

                                            cp  whatever_source_path/new_logo_to_display.jpg  ~/MagcMirror/modules/MMM-SimpleLogo/public/Amc.JPG
                                            

                                            I have tested this and it works

                                            also I think
                                            the content of the new logo image TYPE must match the file extension… it is expecting jpg
                                            so cannot change to gif/png for next ones to load

                                            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
                                            • 2 / 2
                                            • 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