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

how to divide the payload of socketnotification



  • I have this problem. The code below sends an alert to Socket Notify and other modules handle the notification.

    sendNotification ‘result’

    socketNotificationReceived: function(notification, payload) {
        switch(notification) {
          case "TEST":
            console.log("notification : " + notification)
    	    PythonShell.run('c://Users/user/Desktop/MagicMirror-master/modules/MMM-Testpython/FCF.py', null, function (err, result) {
                if (err) throw err;
                console.log("sex" + result);          
                socketTestpython.sendSocketNotification("I_DID",result);
              });
    	       
            break
        }
      }
    

    recived notification but the ‘split’ doesn’t work.
    The log with the payload as a factor is well show. but Payload 3 is not show.

     },
      socketNotificationReceived: function(notification, payload) {
        switch(notification) {
          case "I_DID":
            console.log("Socket recevied 1: " + payload);
            var payload3;
            payload3=payload.split("_");
            console.log("Socket recevied 1: " + payload3);
            var elemk = document.getElementById("showage");
            var sex = payload3[0];
            console.log("Socket recevied 1: " + sex);
            var age = payload3[1];
            console.log("Socket recevied 1: " + age);
            var change;
            if (sex == "Male"){
    

    Why doesn’t the split work?



  • @cycaaa can u show the payload?



  • @sdetweil
    is my payload.
    0_1557182965874_캡처.PNG image url)



  • @cycaaa looks like result in node_helper is not a string object

    according to the doc, results is an array

    PythonShell.run('my_script.py', options, function (err, results) {
      if (err) throw err;
      // results is an array consisting of messages collected during execution
      console.log('results: %j', results);
    });
    

    SO, you need to get them all, so, sendSocketNotification(“string”,results.join(’ '))