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.

    sendSocketNotification() does not arrive at module

    Scheduled Pinned Locked Moved Unsolved Troubleshooting
    2 Posts 2 Posters 412 Views 2 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.
    • M Offline
      mjlee
      last edited by

      Hi,

      I’m very new to MM (2 days in…).

      I have successfully got a module I’ve written working. It scrapes a local transit website for real-time train departure info and displays in the mirror.

      My second module, however, is having problems. The node_helper is getting socket notifications from the module, but when it calls sendSocketNotification(), nothing is received at the module. I tried used the original (working) module as a template, making it almost an exact copy of the working module, but that didn’t help.

      I’ve stipped it back to almost nothing, and still no luck. Here’s the node_helper and module file in question:

      node_helper.js:

      const NodeHelper = require('node_helper');
      
      module.exports = NodeHelper.create({
      
        start: function() {
          console.log("Starting node helper: " + this.name);
        },
      
        socketNotificationReceived: function(notification, payload) {
          var self = this;
          console.log("Notification: " + notification + " Payload: " + JSON.stringify(payload));
      
          if (notification === "GET_DATA") {
            self.sendSocketNotification("GOT_DATA", "1234566789");
          }
        }
      });
      

      and MMM-MYTEST.js:

      Module.register("MMM-MYTEST", {
        // Default configs
        defaults: {
          intervalSecs: 10,
        },
      
        start: function () {
          Log.info(this.config);
          Log.log('Starting module: ' + this.name);
          self = this;
      
          self.getData();
      
          setInterval(function() {
            self.getData();
          }, self.config.intervalSecs * 1000);
        },
      
        getData: function () {
          Log.info(this.name + ': Getting data');
          this.sendSocketNotification("GET_DATA", {
            config: this.config,
          });
        },
      
        getStyles: function () {
          return [
            this.file('styles.css'),
          ];
        },
      
        socketNotificationReceived: function(notification, payload) {
          if (notification === "GOT_DATA") {
            Log.info('socketNotificationReceived: GOT_DATA');
            this.updateDom();
          }
        },
      
        // Override the DOM generator
        getDom: function () {
          let wrapper = document.createElement('div');
          return wrapper;
        },
      });
      

      And snipped log output while running (I added some debug outout to NodeHelper.socketNotificationReceived() to make sure it was being called):

      [27.02.2023 14:10.56.820] [LOG]   Notification: GET_DATA Payload: {"config":{"intervalSecs":10}}
      [27.02.2023 14:10.56.821] [INFO]  in MMM-MYTEST sendSocketNotification GOT_DATA
      [27.02.2023 14:11.06.819] [LOG]   Notification: GET_DATA Payload: {"config":{"intervalSecs":10}}
      [27.02.2023 14:11.06.820] [INFO]  in MMM-MYTEST sendSocketNotification GOT_DATA
      [27.02.2023 14:11.16.827] [LOG]   Notification: GET_DATA Payload: {"config":{"intervalSecs":10}}
      [27.02.2023 14:11.16.829] [INFO]  in MMM-MYTEST sendSocketNotification GOT_DATA
      

      So I can see that NodeHelp.socketNotificationRecieved() is being called, but my module never gets the notification. I’ve run out of debug ideas. Any assistance would be greatly appreciated.

      m

      bheplerB 1 Reply Last reply Reply Quote 0
      • bheplerB Offline
        bhepler Module Developer @mjlee
        last edited by

        @mjlee - I copied your code and I’m not getting the same results.
        From the browser console:

        socketNotificationReceived: GOT_DATA    MMM-MYTEST.js:20 
        MMM-MYTEST: Getting data                MMM-MYTEST.js:34 
        socketNotificationReceived: GOT_DATA    MMM-MYTEST.js:20 
        MMM-MYTEST: Getting data                MMM-MYTEST.js:34 
        

        And from the terminal console:

        Ready to go! Please point your browser to: http://localhost:8080
        [28.02.2023 20:52.46.170] [LOG]   Notification: GET_DATA Payload: {"config":{"intervalSecs":10}}
        [28.02.2023 20:52.46.207] [INFO]  Checking git for module: MMM-MYTEST
        [28.02.2023 20:52.46.207] [INFO]  Checking git for module: default
        [28.02.2023 20:52.56.164] [LOG]   Notification: GET_DATA Payload: {"config":{"intervalSecs":10}}
        [28.02.2023 20:53.06.156] [LOG]   Notification: GET_DATA Payload: {"config":{"intervalSecs":10}}
        

        Perhaps the issue is that you’re looking at the wrong console log? The MYTEST.js log will write to the browser’s console rather than the terminal.

        1 Reply Last reply Reply Quote 1

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