MagicMirror Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • Donate
    • Discord

    SOLVED I don't know how to use node_helper.js.

    Troubleshooting
    2
    6
    1672
    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.
    • E
      emrhssla last edited by

      I tried to use python-shell. So I successfully finished the npm install python-shell.
      But I saw it said that to use python-shell, you must use node_helper.js.
      So I tried to execute a simple Python code. The notification I_DID in node_helper.js was well communicated and executed. However, the console in node_helper.js is not output, nor is python-shell working.
      What is the problem?

      var Testpythons;
      Module.register("MMM-Testpython", {
      
          defaults: {},
          start: function (){
              Testpythons = this;
          },
        
        getDom: function() {
          var element = document.createElement("div")
          element.className = "myContent"
          element.id="divid"
          element.innerHTML = "Hello, World!!! " + this.config.foo
          var subElement = document.createElement("p")
          subElement.innerHTML = "Click" 
          subElement.id = "clickid"
          element.appendChild(subElement)
          return element
        },
        
        notificationReceived: function(notification, payload, sender) {
          switch(notification) {
            case "DOM_OBJECTS_CREATED":
            var elem = document.getElementById("clickid")
            elem.addEventListener("click", () => {
              Testpythons.sendSocketNotification("TESTPYTHON")
              console.log("hello~hello~hello~hello~hello~hello~hello~hello~hello~hello~")
              elem.innerHTML = "click success"
              
            }) 
              break
          }
        },
        socketNotificationReceived: function(notification, payload) {
          switch(notification) {
            case "I_DID":
              console.log("success")
              var elemk = document.getElementById("divid")
              elemk.innerHTML = "I_DID"
              break
          }
        },
      })
      

      node_helper.js

      var NodeHelper = require("node_helper");
      var PythonShell = require('python-shell');
      
      module.exports = NodeHelper.create({
        start: function() {
          console.log("Starting module: " + this.name);
        },
        
        socketNotificationReceived: function(notification, payload) {
          switch(notification) {
            case "TESTPYTHON":
              console.log("notification : " + notification)
              this.sendSocketNotification("I_DID")
              PythonShell.runString('print("Hello Python")', null, function (err, result) {
                  if (err) throw err;
                  console.log(result);  
                  });
              break
          }
        },
      })  
      
      1 Reply Last reply Reply Quote 0
      • S
        sdetweil last edited by sdetweil

        see https://ourcodeworld.com/articles/read/286/how-to-execute-a-python-script-and-retrieve-output-data-and-errors-in-node-js

        but your should have been ok… do you see the message
        console.log("Starting module: " + this.name);

        in the terminal window?

        Sam

        Create a working config
        How to add modules

        E 1 Reply Last reply Reply Quote 0
        • E
          emrhssla @sdetweil last edited by

          This post is deleted!
          E 1 Reply Last reply Reply Quote 0
          • E
            emrhssla @emrhssla last edited by

            @sdetweil

            var NodeHelper = require("node_helper");
            var {PythonShell} = require('python-shell');
            
            module.exports = NodeHelper.create({
              start: function() {
                console.log("Starting module: " + this.name);
              },
              
              socketNotificationReceived: function(notification, payload) {
                console.log("Starting module: " + this.name);
                switch(notification) {
                  case "TESTPYTHON":
                    console.log("notification : " + notification)
                    this.sendSocketNotification("I_DID")
                    PythonShell.runString('print("Hello Python")', null, function (err, result) {
                        if (err) throw err;
                        console.log(result);  
                        });
                    break
                }
              },
            })  
            

            0_1555054288241_a49a1a4e-d8c3-4e5c-8463-81b9df38737c-image.png

            console doesnt show Starting module…

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

              @emrhssla ok, there are two different output areas…

              the developers window, which u posted is from the module.js side…
              the node helper content comes out in the terminal window.

              start you mirror app,
              then start it with

              npm start &
              

              (note the & at the end)
              now you should be able to see any messages in the terminal window from the node_helper

              Sam

              Create a working config
              How to add modules

              E 1 Reply Last reply Reply Quote 1
              • E
                emrhssla @sdetweil last edited by

                @sdetweil oh!!! 0_1555075761914_acdbfe01-9c20-45b9-a177-87d554b225e0-image.png
                thank you very very very much 🙂

                1 Reply Last reply Reply Quote 0
                • 1 / 1
                • First post
                  Last post
                Enjoying MagicMirror? Please consider a donation!
                MagicMirror created by Michael Teeuw.
                Forum managed by Paul-Vincent Roll and Rodrigo Ramírez Norambuena.
                This forum is using NodeBB as its core | Contributors
                Contact | Privacy Policy