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.

    Roomtemperature with DS18B20

    Scheduled Pinned Locked Moved Solved Troubleshooting
    11 Posts 4 Posters 7.4k Views 3 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.
    • C Offline
      Chiggo
      last edited by

      Thank you for fast reply.

      I will give it a try tomorrow and check if i get it.
      My first steps in JS :sweat_smile:

      1 Reply Last reply Reply Quote 0
      • C Offline
        Chiggo
        last edited by

        Spend some time to figure out what you mean, but i stuck again.
        Now at this point picture

        Here is the MMM-Temperature.js

        Module.register('MMM-Temperature', {
        
                defaults: {
                        prependString: 'Raumtemperatur: '
                },
        
        
                start: function() {
                        this.temperature = 'fetching...';
                        this.sendSocketNotification('CONNECT');
                },
        
        
                socketNotificationReceived: function(notification, temp) {
                    if (notification === 'TEMPERATURE') {
                        this.temperature = temp;
                        this.updateDom();
                    }
                },
        
        
                // Override dom generator.
                getDom: function() {
                        var wrapper = document.createElement("div");
                        wrapper.innerHTML = this.config.prependString + this.temperature;
                        return wrapper;
                },
        
        });
        

        And here is the node_helper.js

        var NodeHelper = require("node_helper");
        var sensor = require('ds18x20');
        
        
         module.exports = NodeHelper.create({
                start: function function_name () {
                        var self = this;
                        setInterval(function() {
                                self.sendTemperature();
                        }, 10000);
                },
        
        
                sendTemperature: function() {
                        var self = this;
                        var temp = sensor.get('28-04163746c8ff');
                        self.sendSocketNotification('TEMPERATURE', temp);
                },
         });
        

        It seems that the MMM-Temperature module is not trying to call the node_helper.js
        Not sure why it doesn’t. Or even if, i don’t know why the node_helper.js doesn’t work.

        Maybe this has something to do with the "sendSocketNotification(‘CONNECT’) ???
        It’s never mentioned in the node_helper.

        1 Reply Last reply Reply Quote 0
        • C Offline
          Chiggo
          last edited by

          It works!

          after testing some things PM2 didn’t work anymore, so i recovered from a backup, installed the drivers for the DS18B20 again, copied the scripts back, restarted and it works.

          Don’t know why and how, but it does :smile:

          Solved!

          P 1 Reply Last reply Reply Quote 0
          • P Offline
            Phate @Chiggo
            last edited by

            @Chiggo

            This sounds awesome…

            Is this downloadable from github?

            1 Reply Last reply Reply Quote 0
            • C Offline
              Chiggo
              last edited by

              @Phate

              No, it’s not available on GitHub. But with the hints from @MichMich it was pretty easy to realize.

              To load the drivers for the DS18B20 I followed these instructions https://www.kompf.de/weather/pionewiremini.html

              To get the DS18B20 working with node.js I installed this https://www.npmjs.com/package/ds18x20

              And finaly I edited the scripts of the systemtemperature-module and it works.

              Step-by-Step

              • Add this line to your /boot/config.txt
              dtoverlay=w1-gpio,gpiopin=4,pullup=on
              
              • Add to your /etc/modules following and reboot the Pi
              w1-gpio pullup=1 
              w1-therm
              
              • Note the ID of your sensor (go to /sys/bus/w1/devices and list the files, the ID should look something like this 28-04163746c8ff
              • Got to /MagicMirror/modules and create a folder named MMM-Temperature
              • Create a file named MMM-Temperature.js and copy the code from my post for this script
              • Create a file named node_helper.js and copy the code from my post and change the ID of my sensor to yours (it’s in line 16)
              • Register this module in your /MagicMirror/config/config.js
              • Restart your MM and you are done :)

              Hope I could help. Let me know if it works.

              P 1 Reply Last reply Reply Quote 1
              • P Offline
                Phate @Chiggo
                last edited by Phate

                @Chiggo

                Mate. That’s just awesome.

                Few worry spots but sure I can make that happen.

                I made sure to order the same temp module so hopefully I shouldn’t have trouble.

                Thanks mate. Awesome.

                May have questions tho so will yell out of i do when eBay comes thru lol

                Thanks again

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

                  This post is deleted!
                  1 Reply Last reply Reply Quote 0
                  • K Offline
                    Kristianson
                    last edited by

                    Excellent! Thanks for the code above, worked beautifully… :-)

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