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.

    help converting code for module...

    Scheduled Pinned Locked Moved Development
    21 Posts 4 Posters 8.4k Views 4 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.
    • justjim1220J Offline
      justjim1220 Module Developer @strawberry 3.141
      last edited by justjim1220

      @strawberry-3-141

      I defined Temps. then got this in console…

      MMM-PC-Stats.js:104 Uncaught (in promise) TypeError: Cannot read property '
      ootwmi:MSAcpi_ThermalZoneTemperature' of undefined
          at Class.getDom (MMM-PC-Stats.js:104)
          at main.js:110
          at new Promise (<anonymous>)
          at updateDom (main.js:109)
          at Object.updateDom (main.js:514)
          at Class.updateDom (module.js:358)
          at Class.socketNotificationReceived (MMM-PC-Stats.js:213)
          at module.js:246
          at r.<anonymous> (socketclient.js:25)
          at r.emit (index.js:133)
      

      "Life's Too Short To Dance With Ugly People"
      Jim Hallock - 1995

      1 Reply Last reply Reply Quote 0
      • justjim1220J Offline
        justjim1220 Module Developer @strawberry 3.141
        last edited by

        @strawberry-3-141

        I had a syntax error in the declaration of Temps.

        I’m totally thinking this isn’t going to work.

        I will probably need to find a different way,
        figured if I could pull it from the SIMBIOS using a simple script, that maybe it could be pulled using a module for MM.

        there are some open source apps for Windows that work to get the data, I will just have to study them and see what I can come up with.

        Thanks for trying to help.

        "Life's Too Short To Dance With Ugly People"
        Jim Hallock - 1995

        strawberry 3.141S 1 Reply Last reply Reply Quote 0
        • strawberry 3.141S Offline
          strawberry 3.141 Project Sponsor Module Developer @justjim1220
          last edited by

          @justjim1220 if you don’t even have the data in js, you can also execute it in the node helper and parse the response https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback

          Please create a github issue if you need help, so I can keep track

          1 Reply Last reply Reply Quote 0
          • justjim1220J Offline
            justjim1220 Module Developer @strawberry 3.141
            last edited by

            @strawberry-3-141

            What are the chances of being able to do what I had been attempting with this?
            https://github.com/moxystudio/node-cross-spawn

            And would it be possible to add to a current node_helper being used for linux, or would a separate node_helper or script need made?

            "Life's Too Short To Dance With Ugly People"
            Jim Hallock - 1995

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

              @justjim1220

              exec(“YOUR-SHELL-COMMAND”, (error, stdout, stderr)=>{
                console.log(stdout)
                // do your job with `stdout`
              })
              

              I think you can get the result of any execution of shell script.

              justjim1220J 1 Reply Last reply Reply Quote 1
              • justjim1220J Offline
                justjim1220 Module Developer @Guest
                last edited by

                @sean

                Not sure I follow …

                what would be my ‘shell command’?

                "Life's Too Short To Dance With Ugly People"
                Jim Hallock - 1995

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

                  @justjim1220
                  **
                  PS C:\WINDOWS\system32> get-temperature
                  **
                  I don’t know anything about your intention, but ‘get-temperature’ could be executable in your shell or terminal, it could be the one.

                  justjim1220J 1 Reply Last reply Reply Quote 1
                  • justjim1220J Offline
                    justjim1220 Module Developer @Guest
                    last edited by

                    @sean

                    Yes, that is the command to get the temps from the PC using powershell or command prompt…

                    BUT, where to use the command in node_helper.js?

                    OR, where to use the command in the module.js file?

                    "Life's Too Short To Dance With Ugly People"
                    Jim Hallock - 1995

                    S ? 2 Replies Last reply Reply Quote 0
                    • S Offline
                      sdetweil @justjim1220
                      last edited by

                      @justjim1220 let’s look at the design of your module.

                      How often do u need to get the temps?
                      Is it on a timer, or some other mechanism?

                      Anyhow, on that cycle, you would issue the ‘run’ of the powershell app in the node_helper.js, and capture it’s output.

                      Then process the output, remove all the useless data. Then send the raw data to the module.js, who will then format the HTML in the get_dom() function for display

                      Sam

                      How to add modules

                      learning how to use browser developers window for css changes

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

                        @justjim1220

                        
                        const exec = require('child_process').exec
                        var NodeHelper = require("node_helper")
                        
                        module.exports = NodeHelper.create({
                          socketNotificationReceived: function(noti, payload) {
                            if (noti == "GIVE_ME_RESULT") {
                              setTimeout(()=>{
                                exec("C:\WINDOWS\system32\get-temperature", //I don't know WINDOWS system at all. Is it right?
                                  (err, sto, ste) => {
                                    if (!err) {
                                      this.sendSocketNotification("HERE_IS_RESULT", sto)
                                    } else {
                                      console.log("Error", err)
                                    }
                                  }
                                )
                              }, 1000)
                            }
                          }
                        })
                        

                        It isn’t tested. But you can catch the idea.

                        1 Reply Last reply Reply Quote 1
                        • 1
                        • 2
                        • 3
                        • 1 / 3
                        • 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