• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
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.

Simple Text that reads a .txt file

Scheduled Pinned Locked Moved Solved Requests
15 Posts 2 Posters 4.3k 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.
  • J Offline
    Jackkt
    last edited by Jul 25, 2019, 2:43 PM

    Hey,
    So I have a python script that uses facial recognition and prints out the name of the person. I want this to display on the magic mirror. Guidance on how to do it would be welcome as well.
    Thanks

    S 1 Reply Last reply Jul 25, 2019, 3:42 PM Reply Quote 0
    • S Away
      sdetweil @Jackkt
      last edited by sdetweil Jul 25, 2019, 3:48 PM Jul 25, 2019, 3:42 PM

      @Jackkt you need to use the node_helper module to launch your python script, and capture the output of the python script… then send that up to the module.js via sendSocketNotification…

      then the module needs to signal updateDom() to tell MM there is new content, and it will call back at getDom() to get the new content, where u format your html to be shown.

      node_helper

      const { exec } = require('child_process');
      
      exec('python your_script', (error, stdout, stderr) => {
        if (error) {
          console.error(`exec error: ${error}`);
          return;
        }
        console.log(`stdout: ${stdout}`);
         this.sendSocketNotification('some id string', stdout);
        console.log(`stderr: ${stderr}`);
      });
      

      module.js

      socketNotificationReceived: function(notification, payload) {
         if( notification ==='some id string') {
         var save_payload=payload)
         this.updateDom(1000) 
         }
      }
      getDom: function (){
         create the html here using save_payload)
         return created_html
         MM will inject the html in the div for your module
      }
      

      you can use my sample module for starters…
      https://github.com/sdetweil/SampleModule

      check out the difference between exec (one time) and spawn (send multiple responses over time)

      Sam

      How to add modules

      learning how to use browser developers window for css changes

      J 1 Reply Last reply Jul 26, 2019, 3:11 PM Reply Quote 1
      • J Offline
        Jackkt @sdetweil
        last edited by Jul 26, 2019, 3:11 PM

        @sdetweil Thanks for the response. Im having trouble making the module(I have no experience and the "Head first developing MM module for extreme beginner"didnt work). Also The python script can run in the background and can output into a .txt file. Can I just edit helloworld to just print the thing in the text file? Sorry if this is stupid.

        J 1 Reply Last reply Jul 26, 2019, 3:37 PM Reply Quote 0
        • J Offline
          Jackkt @Jackkt
          last edited by Jul 26, 2019, 3:37 PM

          @Jackkt Also the text file updates every 5 seconds by the results of the python script

          S 1 Reply Last reply Jul 26, 2019, 4:20 PM Reply Quote 0
          • S Away
            sdetweil @Jackkt
            last edited by Jul 26, 2019, 4:20 PM

            @Jackkt if the python script can be changed to just write to the screen, you can use spawn instead. And it can send u info every time it writes

            Sam

            How to add modules

            learning how to use browser developers window for css changes

            J 1 Reply Last reply Jul 26, 2019, 4:46 PM Reply Quote 1
            • J Offline
              Jackkt @sdetweil
              last edited by Jul 26, 2019, 4:46 PM

              @sdetweil Hey, I get a syntax error from “const { exec } = require(‘child_process’); unexpected token {” its the one before exec. Get the same from spawn.
              Thanks

              J 1 Reply Last reply Jul 26, 2019, 5:38 PM Reply Quote 0
              • J Offline
                Jackkt @Jackkt
                last edited by Jul 26, 2019, 5:38 PM

                @Jackkt Also without the {} the error is “unexpected identifier” for
                “spawn”

                S 1 Reply Last reply Jul 26, 2019, 5:42 PM Reply Quote 0
                • S Away
                  sdetweil @Jackkt
                  last edited by Jul 26, 2019, 5:42 PM

                  @Jackkt that leading quote shouldn’t be there

                  Sam

                  How to add modules

                  learning how to use browser developers window for css changes

                  J 1 Reply Last reply Jul 26, 2019, 5:44 PM Reply Quote 1
                  • J Offline
                    Jackkt @sdetweil
                    last edited by Jul 26, 2019, 5:44 PM

                    @sdetweil I was just quoting sorry it looks like:
                    const { exec } = require(‘child_process’);

                    and

                    const exec = require(‘child_process’);

                    S 1 Reply Last reply Jul 26, 2019, 5:59 PM Reply Quote 0
                    • S Away
                      sdetweil @Jackkt
                      last edited by Jul 26, 2019, 5:59 PM

                      @Jackkt ok. I just cut/pasted it from a working module.

                      When posting code or config in the forum, please use the markup syntax. 3 backticks (key left of number 1) before your content on a separate line
                      And 3 more after on a separate line

                      Sam

                      How to add modules

                      learning how to use browser developers window for css changes

                      S J 2 Replies Last reply Jul 26, 2019, 6:03 PM Reply Quote 1
                      • 1
                      • 2
                      • 1 / 2
                      1 / 2
                      • First post
                        1/15
                        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