• 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.

run Linux command from a mm2 module

Scheduled Pinned Locked Moved Development
20 Posts 5 Posters 5.1k Views 5 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 Away
    sdetweil @Mykle1
    last edited by sdetweil Nov 27, 2018, 4:03 PM Nov 27, 2018, 4:01 PM

    @mykle1 you didn’t need to do this

    var results = stdout;
    

    Just use stdout as the variable name in the console log and sendsocketnotification

    Every wasted instruction adds to the pgm size, and CPU cycles used, which could be applied somewhere else.

    Also makes maintenance harder cause u might not remember why you did something.

    Sam

    How to add modules

    learning how to use browser developers window for css changes

    M 1 Reply Last reply Nov 27, 2018, 10:55 PM Reply Quote 1
    • M Offline
      Mykle1 Project Sponsor Module Developer @sdetweil
      last edited by Nov 27, 2018, 10:55 PM

      @sdetweil

      Yes sir. Duly noted. And thanks for the instruction. I try to retain all the tidbits that are given but I find myself having to relearn much of what I thought I already knew. Can you say, “Alzheimers?” :-)

      Thanks again.

      Create a working config
      How to add modules

      1 Reply Last reply Reply Quote 0
      • M Offline
        Mykle1 Project Sponsor Module Developer
        last edited by Mykle1 Nov 28, 2018, 4:16 AM Nov 28, 2018, 4:05 AM

        I guess I celebrated a little prematurely. Yes, I can see the data in the terminal and send it to the module.js file. However, I am unable to convert it into usable data, such as an array of objects. I’ve tried all evening with no luck. The closest I’ve gotten is single object that contains all the data:

        0:
        stdout:"nouveau-pci-0100↵Adapter: PCI adapter↵fan1:        1170 RPM↵temp1:        +43.0°C  (high = +95.0°C, hyst =  +3.0°C)↵                       (crit = +105.0°C, hyst =  +5.0°C)↵                       (emerg = +135.0°C, hyst =  +5.0°C)↵↵coretemp-isa-0000↵Adapter: ISA adapter↵Core 0:       +46.0°C  (high = +83.0°C, crit = +99.0°C)↵Core 1:       +41.0°C  (high = +83.0°C, crit = +99.0°C)↵Core 2:       +46.0°C  (high = +83.0°C, crit = +99.0°C)↵Core 3:       +38.0°C  (high = +83.0°C, crit = +99.0°C)↵↵f71858fg-isa-0a00↵Adapter: ISA adapter↵+3.3V:        +3.31 V  ↵3VSB:         +3.30 V  ↵Vbat:         +3.20 V  ↵fan1:        1910 RPM↵fan2:        1069 RPM↵fan3:           0 RPM  ALARM↵temp1:        +34.5°C  (high = +70.0°C, hyst = +60.0°C)↵temp2:        +29.5°C  (high = +100.0°C, hyst = +85.0°C)↵temp3:        +36.4°C  (high = +100.0°C, hyst = +85.0°C)↵↵"
        

        Using this:

        getTerminal: function(url) {
              var self= this;
        //      exec("sensors", (err, stdout, stderr) => console.log(stdout));
              exec("sensors").stdout.on('data', function(stdout) {
              //console.log(JsonConvert.SerializeObject(stdout));
        
            var s = stdout;
           var parts = s.split(':');
           var jobj = {};
           for(i=0;i < parts.length;i+=2)
           {
              jobj[parts[i]]=parts[i+1];
           }
           console.log(JSON.stringify(jobj));
        

        I’m stuck. haha. I am grateful for any advice.

        Peace!

        Create a working config
        How to add modules

        S ? 2 Replies Last reply Nov 28, 2018, 4:17 AM Reply Quote 0
        • S Away
          sdetweil @Mykle1
          last edited by Nov 28, 2018, 4:17 AM

          @mykle1 let me see what I can do.
          Will be tomorrow.

          Sam

          How to add modules

          learning how to use browser developers window for css changes

          M 1 Reply Last reply Nov 29, 2018, 2:17 AM Reply Quote 0
          • ? Offline
            A Former User @Mykle1
            last edited by A Former User Nov 28, 2018, 8:50 AM Nov 28, 2018, 8:42 AM

            @mykle1
            You can use Regular Expression for getting matched text with pattern.

            var s = stdout
            var fan1 = new RegExp("fan1\:\s+([0-9]+ RPM)")
            var fan1_found = s.match(fan1)
            console.log(fan1_found, fan1_found[1])
            

            Not tested in real PC, so there could be a mistake.

            M 1 Reply Last reply Nov 28, 2018, 9:35 PM Reply Quote 0
            • M Offline
              Mykle1 Project Sponsor Module Developer @Guest
              last edited by Nov 28, 2018, 9:35 PM

              @sean

              First, thank you for your input. I do appreciate it.

              1. Adding your suggestion results in an uncaught exception. . . TypeError: Cannot read property ‘1’ of null

              2. Using your suggestion and taking out the “[1]” results in an array with a single object

              Create a working config
              How to add modules

              ? 1 Reply Last reply Nov 28, 2018, 9:44 PM Reply Quote 0
              • ? Offline
                A Former User @Mykle1
                last edited by Nov 28, 2018, 9:44 PM

                @mykle1
                null means not found. Maybe my regular espression pattern was wrong. As I wrote, it was not tested.
                However if you find proper expression pattern, it will return matched string. Google it about regular expression. That is a standard way to search or replace text by pattern in most of program languages.

                M 1 Reply Last reply Nov 28, 2018, 9:52 PM Reply Quote 1
                • M Offline
                  Mykle1 Project Sponsor Module Developer @Guest
                  last edited by Mykle1 Nov 28, 2018, 9:59 PM Nov 28, 2018, 9:52 PM

                  @sean

                  ok thank you. This seems like a good place to start.

                  https://www.regular-expressions.info/

                  Create a working config
                  How to add modules

                  ? 1 Reply Last reply Nov 28, 2018, 10:24 PM Reply Quote 0
                  • ? Offline
                    A Former User @Mykle1
                    last edited by A Former User Nov 28, 2018, 10:37 PM Nov 28, 2018, 10:24 PM

                    @mykle1

                    • https://www.w3schools.com/jsref/jsref_obj_regexp.asp
                    • https://www.w3schools.com/jsref/jsref_match.asp
                      See these also.
                    M 1 Reply Last reply Nov 29, 2018, 1:33 AM Reply Quote 1
                    • M Offline
                      Mykle1 Project Sponsor Module Developer @Guest
                      last edited by Nov 29, 2018, 1:33 AM

                      @sean

                      See these also.

                      Thanks!

                      Create a working config
                      How to add modules

                      1 Reply Last reply Reply Quote 0
                      • 1
                      • 2
                      • 2 / 2
                      2 / 2
                      • First post
                        10/20
                        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