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

Module Developer Challenge - I surrender!

Scheduled Pinned Locked Moved Solved Development
33 Posts 6 Posters 16.4k 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.
  • M Offline
    Mykle1 Project Sponsor Module Developer
    last edited by Feb 14, 2018, 10:50 PM

    I find myself in a similar situation, again. :-)

    This is my cry for help. I only do this when I’ve tried all the things I know
    and googled the things I don’t know. I’ve even tried free form improvising but coding
    seems to reject that sort of thing, at least in my case.

    About 2 weeks ago I wrote a module that gets system stats from a PC board running
    ubuntu and MM. There is just one more thing that I want to include. I want to get the system
    temperature (CPU?) and/or the temps of any other system components.

    So, it is with the utmost humility that I ask for your help, suggestions or directions. I won’t
    object to any modifications that anyone cares to make, if that is the case. If it can’t be done,
    I can live with that, too. Even if you look at the module and never make any comments regarding
    my request, I still thank you for your time and interest.

    https://github.com/mykle1/MMM-PC-Stats

    Peace

    Create a working config
    How to add modules

    N 1 Reply Last reply Feb 15, 2018, 2:38 AM Reply Quote 0
    • N Offline
      ninjabreadman @Mykle1
      last edited by ninjabreadman Feb 15, 2018, 2:38 AM Feb 15, 2018, 2:38 AM

      @Mykle1 It doesn’t seem that pc-stats has all the info you require. You might consider switching to the systeminformation package.

      You can then use si.cpu() for your CPU stats and si.cpuTemperature() to retrieve an object that (if I read the docs right) looks like { main: 0, max: 0, cores: [0, 0] } with your core temps. You can then combine the two responses (or you may be able to have it return all within one request) and return those in a single sendNotification() call.

      Problem with config or JavaScript? Copy/paste it into JSHint.
      Check out the detailed walkthroughs on install, config, modules, etc.

      M 1 Reply Last reply Feb 15, 2018, 2:51 AM Reply Quote 1
      • M Offline
        Mykle1 Project Sponsor Module Developer @ninjabreadman
        last edited by Feb 15, 2018, 2:51 AM

        @ninjabreadman

        You know, I started out with that package but had some trouble with it. Likely, the problem was me, but I moved to the pc-stats package and had no problems. However, as you saw, that package doesn’t offer the cpu temps. I then tried unsuccessfully to use other packages along with pc-stats to get the temps but my knowledge and abilities are woefully inadequate. For whatever reason, I was able to get a return from pc-stats. That’s no small miracle where I’m concerned. I do like the data that the return gives me, especially the multicore support.

        Anyway, I did give it more than a few days and more than a few attempts but I will look at systeminformation again in the hopes that I can stumble across some success. Really, I am not qualified to be doing any of this. I just find it so fascinating that I keep trying until I get something right. And then there are the few special people that have taken pity on me and taught me what I needed to know at any given moment. They have my deepest gratitude and respect.

        Thanks for pointing me back to where I should have been all along. :-)

        Create a working config
        How to add modules

        N 1 Reply Last reply Feb 15, 2018, 1:22 PM Reply Quote 0
        • N Offline
          ninjabreadman @Mykle1
          last edited by Feb 15, 2018, 1:22 PM

          @Mykle1 Depending on the style/implementation you’re using, you may want to read up on Promises in JS.

          Also, see this note here about the lm-sensors package.

          Alternatively, have a look at MMM-SystemStats which uses vcgencmd on the CLI to retrieve the system temp, which would be far easier to integrate into your current module.

          Problem with config or JavaScript? Copy/paste it into JSHint.
          Check out the detailed walkthroughs on install, config, modules, etc.

          M 1 Reply Last reply Feb 16, 2018, 1:22 AM Reply Quote 1
          • M Offline
            Mykle1 Project Sponsor Module Developer @ninjabreadman
            last edited by Feb 16, 2018, 1:22 AM

            @ninjabreadman said in Module Developer Challenge - I surrender!:

            Alternatively, have a look at MMM-SystemStats which uses vcgencmd on the CLI to retrieve the system temp, which would be far easier to integrate into your current module.

            Thanks ninja. I will give this a shot first. In fact, I’m going to look at that right now.

            Create a working config
            How to add modules

            N 1 Reply Last reply Feb 16, 2018, 1:35 AM Reply Quote 1
            • N Offline
              ninjabreadman @Mykle1
              last edited by ninjabreadman Feb 16, 2018, 1:42 AM Feb 16, 2018, 1:35 AM

              @Mykle1 Hmm, it may be that vcgencmd is specific to the RPi. You can try these; acpi seems like a contender, as does lm-sensors.

              Problem with config or JavaScript? Copy/paste it into JSHint.
              Check out the detailed walkthroughs on install, config, modules, etc.

              M 2 Replies Last reply Feb 16, 2018, 1:48 AM Reply Quote 0
              • M Offline
                Mykle1 Project Sponsor Module Developer @ninjabreadman
                last edited by Feb 16, 2018, 1:48 AM

                @ninjabreadman said in Module Developer Challenge - I surrender!:

                Hmm, it may be that vcgencmd is specific to the RPi.

                Ha! I see. Ok, on to the others. :-)

                Create a working config
                How to add modules

                N 1 Reply Last reply Feb 16, 2018, 2:16 AM Reply Quote 0
                • N Offline
                  ninjabreadman @Mykle1
                  last edited by Feb 16, 2018, 2:16 AM

                  @Mykle1 It actually might be best to run cat /sys/class/thermal/thermal_zone*/type to see if they’re already populating on your Ubuntu install. If so, you can run cat /sys/class/thermal/thermal_zone*/temp to get all the values, or just cat a specific one. Should be to three decimal places (i.e. 64000 means 64.000°C).

                  You might run it a few times to see that the values change, and if they do, then use the same exec() method from MMM-SystemStats with the right command and some math.

                  Problem with config or JavaScript? Copy/paste it into JSHint.
                  Check out the detailed walkthroughs on install, config, modules, etc.

                  1 Reply Last reply Reply Quote 0
                  • M Offline
                    Mykle1 Project Sponsor Module Developer @ninjabreadman
                    last edited by Feb 16, 2018, 4:07 AM

                    @ninjabreadman said in Module Developer Challenge - I surrender!:

                    acpi seems like a contender, as does lm-sensors.

                    Made some progress with lm-sensors which gives me great hope. I can see the return in the terminal but not in the node_helper. Still, I’m encouraged. I’ll continue to work on it tomorrow. I’m feeling a bit tired tonight.

                    Sockets connected & modules started ...
                    Launching application.
                    { 'nouveau-pci-0100': { 'PCI adapter': { temp1: [Object] } },
                      'coretemp-isa-0000': 
                       { 'ISA adapter': 
                          { 'Core 0': [Object],
                            'Core 1': [Object],
                            'Core 2': [Object],
                            'Core 3': [Object] } } }
                    Whoops! There was an uncaught exception...
                    TypeError: this.sendSocketNotification is not a function
                        at /home/pop/MagicMirror/modules/MMM-PC-Stats/node_helper.js:32:9
                        at /home/pop/MagicMirror/modules/MMM-PC-Stats/node_modules/sensors.js/lm-sensors.js:96:12
                        at ChildProcess.exithandler (child_process.js:209:7)
                        at emitTwo (events.js:106:13)
                        at ChildProcess.emit (events.js:194:7)
                        at maybeClose (internal/child_process.js:899:16)
                        at Socket. (internal/child_process.js:342:11)
                        at emitOne (events.js:96:13)
                        at Socket.emit (events.js:191:7)
                        at Pipe._handle.close [as _onclose] (net.js:510:12)
                    

                    Create a working config
                    How to add modules

                    E 1 Reply Last reply Feb 16, 2018, 10:27 AM Reply Quote 0
                    • E Offline
                      E3V3A @Mykle1
                      last edited by Feb 16, 2018, 10:27 AM

                      @Mykle1 Not sure what you’re doing in your code. But…

                      1. You’ll get a temp reading for each cpu core, so you need to choose|add|average…, and
                      2. How do you execute the script? Did you give it proper permissions?
                      3. I’m you already know, but you also need to allow the external file to be read from node_helper.js.

                      "Everything I do (here) is for free – altruism is the way!"
                      MMM-FlightsAbove, MMM-Tabulator, MMM-Assistant (co-maintainer)

                      M 1 Reply Last reply Feb 16, 2018, 12:45 PM Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 4
                      • 2 / 4
                      2 / 4
                      • First post
                        16/33
                        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