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.

    Help needed simple API based module

    Scheduled Pinned Locked Moved Development
    19 Posts 4 Posters 10.7k Views 4 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.
    • W Offline
      washichi @cowboysdude
      last edited by

      @cowboysdude
      mhh okay, thank you! I’ll try to implement it, looking to the default weatherforecast module as example.

      from the modules readme I don’t totally understand why I need this, it sounds like optional . and I don’t have notifications. (or are updating modules seen as notification?)

      1 Reply Last reply Reply Quote 0
      • yawnsY Offline
        yawns Moderator
        last edited by

        Hi, first spotted error:

        Module.register("ISS-current-location",{
        

        This should be

        Module.register("MMM-ISS-current-location",{
        

        Otherwise your module won’t be called.

        W 1 Reply Last reply Reply Quote 1
        • W Offline
          washichi @yawns
          last edited by

          @yawns yeah that solved it, my module is now at least showing :).
          sorry, stupid mistake haha, I though I checked it .
          Thanks for your help

          1 Reply Last reply Reply Quote 0
          • yawnsY Offline
            yawns Moderator
            last edited by

            okay, next thing is your updateISS function. I modified it for you to get you started:

            	updateISS: function() {
            		var self = this;
            		var url = self.config.apiBase;
            		var opennotifyRequest = new XMLHttpRequest();
            		opennotifyRequest.open("GET", url, true);
            		opennotifyRequest.onreadystatechange = function() {
            		if (this.readyState === 4) {
            			if (this.status === 200) {
            				var resp = JSON.parse(this.response);
            				this.latitude = resp.iss_position.latitude;
            				this.longitude = resp.iss_position.longitude;
            				this.timestamp = resp.timestamp;
            				this.message = resp.message;
            			}
            		}
            			
            			self.updateDom();
            		};
            	opennotifyRequest.send();
            	}
            
            W 1 Reply Last reply Reply Quote 0
            • W Offline
              washichi @yawns
              last edited by washichi

              @yawns thank you!
              the module shows now this.message and refreshes it with the schedule.
              however I am still doing something wrong in my request:

              	updateISS: function() {
              		var url = this.config.apiBase;
              		var self = this;
              		var opennotifyRequest = new XMLHttpRequest();
              		opennotifyRequest.open("GET", url, true);
              		this.message = "in updateISS";
              		opennotifyRequest.onreadystatechange = function() {
              		self.message = "request status: "+ to.String(this.status); // not displayed
              		if (this.readyState === 4) {
              			if (this.status === 200) {
              				var resp = JSON.parse(this.response);
              				self.latitude = resp.iss_position.latitude;
              				self.longitude = resp.iss_position.longitude;
              				self.timestamp = resp.timestamp;
              				self.message = resp.message;
              				self.message = "dit gebeurt niet";
              			}
              		}
              		};
              	opennotifyRequest.send();
              	self.updateDom();
              	}
              

              I can’t set message in that function, for example line 86. I use self/this wrong, or the function isn’t executing. but the code continous because when I set the message before or after that function it gets displayed.

              yawnsY 1 Reply Last reply Reply Quote 0
              • yawnsY Offline
                yawns Moderator @washichi
                last edited by

                @washichi
                hm. Did you try to output latitude and longitude as well in getDom to see if this is working?

                W 1 Reply Last reply Reply Quote 0
                • W Offline
                  washichi @yawns
                  last edited by

                  @yawns No I didn’t, but that should be exactly the same thing.
                  If I hardcode the (any) variable in “issRequest.onreadystatechange = function() {”
                  then it just doesn’t display, so it looks like it isn’t going in that function.
                  but if I hardcode the (any) variable after that function It displays.

                  So I can display the variable (message), but the variable doesn’t get filled with the request.

                  1 Reply Last reply Reply Quote 0
                  • yawnsY Offline
                    yawns Moderator
                    last edited by

                    Simple way to test if it entering the function:

                    Log.error("function entered");

                    Press F12 in browser, check for console output and refresh the website. If the function is entered you will see “function entered” in the console.

                    1 Reply Last reply Reply Quote 0
                    • W Offline
                      washichi
                      last edited by

                      thank you! It’s now working :)
                      I thought that my scheduleupdate was working but it didn’t (only 2 times )
                      with the Log function I could find the problem easy .

                      1 Reply Last reply Reply Quote 1
                      • yawnsY Offline
                        yawns Moderator
                        last edited by

                        great. Now tidy up your code ;) and present your module in modules showcase

                        ooom416354O 1 Reply Last reply Reply Quote 2
                        • 1
                        • 2
                        • 1 / 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