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.

    python script into MagicMirror module

    Scheduled Pinned Locked Moved Hardware
    4 Posts 2 Posters 4.2k 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.
    • S Offline
      sureshkocherla
      last edited by

      Hi, I want to run the python script into MagicMirror module. Kindly give the solution to my requirement.

      ? 1 Reply Last reply Reply Quote 0
      • ? Offline
        A Former User @sureshkocherla
        last edited by

        @sureshkocherla
        You can execute an external program with Child Process of node.js. After reading this, create or modify your module.
        https://nodejs.org/api/child_process.html

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

          Hi, Sean Thanks for your valuable reply,
          I have one python script. I want to create a new custom module for the requirement and also run this python script automatically in the module.
          Kindly guide me.

          ? 1 Reply Last reply Reply Quote 0
          • ? Offline
            A Former User @sureshkocherla
            last edited by

            @sureshkocherla
            Ok, Let’s see the example.
            MMM-Tools is using several external shell scripts in the module.
            https://github.com/eouia/MMM-Tools

            See the node_helpers.js (https://github.com/eouia/MMM-Tools/blob/master/node_helper.js)
            First, Child process could not be used on the frontend, so you need to build node_helpers.js for it.

            in line 10

            var exec = require('child_process').exec
            

            child_proces.exec is declared to use. You might need other methods like spawn or fork for your purpose.

            in line 123.

            getIP : function() {
                exec (this.scripts['IP'], (err, stdout, stderr)=>{
                  if (err == null) {
                    var matched = stdout.trim().match(/\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/)
                    this.status['IP'] = (matched) ? matched[0] : "Unknown"
                  }
                })
              },
            

            this is all for your using exec.

            exec ("your command", function callback(error, outputonsuccess, outputonerr) {
               console.log(error, outputonsuccess, outputonerror)
            })
            

            Try this in your module.

            ※ child_process.exec is a just simple method to get result of external command. But when you need more complexed function, you could consider spawn or fork or execFile instead exec

            https://dzone.com/articles/understanding-execfile-spawn-exec-and-fork-in-node
            this doc will be help.

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