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.

    How to use the 'node_helper', 'serialport'

    Scheduled Pinned Locked Moved Development
    23 Posts 2 Posters 6.9k 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.
    • N Offline
      nhpunch @sdetweil
      last edited by

      @sdetweil

      Thank you very much for your reply.

      You said that hardware and modules did not communicate, but communication is possible.

        serialport.open(function () {
              console.log('connect...');
              serialport.on('data', function(data) { // 아두이노로부터 전달된 데이터
                console.log('data received: ' + data);
              });
      
              setInterval( function() { // 2초마다 아두이노에게 문자열을 전송하는 예
                led = !led;
                serialport.write(led==true ? "1" : "0", function(err, result){
                  if(err){
                   console.log(err);
                  }
                });
              }, 5000);
            });
      
      

      In this code, it is possible to send a string to Arduino

      What I’m wondering is how to do sendSocketNotification ().

      I referenced https://github.com/MichMich/MagicMirror/tree/master/modules but did not understand

      Please let me know how to send it. Then I will be very thankful:folded_hands_light_skin_tone:

      S 1 Reply Last reply Reply Quote 0
      • S Do not disturb
        sdetweil @nhpunch
        last edited by

        @nhpunch there are two parts of a MagicMirror module

        1. node_helper, runs on server, can use require(…some other library…)
        2. module_name.js, runs in browser, manages data presented on screen, cannot use require(…)

        so, the two parts can talk to each other by sending socket messages, using the supplied function
        sendSocketNotification(some_id_string, some_data_packet)

        the receiver of the message gets called at the function socketNotificationReceived(some_id_string, some_data_packet)

        get my sample module that has both parts, and uses timer,

        https://github.com/sdetweil/SampleModule
        

        also see the developers doc here

        https://github.com/MichMich/MagicMirror/tree/master/modules
        

        my sample implements all the functions so you can see them…
        not all are needed… so u can comment out the ones u don’t need to use

        config for my sample, to add to config.js is

          {
            module: "SampleModule",
            position: "center",
            config: {
              message: "this is a test from config entry"
            }
          },
        

        Sam

        How to add modules

        learning how to use browser developers window for css changes

        N 1 Reply Last reply Reply Quote 0
        • N Offline
          nhpunch @sdetweil
          last edited by

          @sdetweil

          I was really grateful and ran the sample code.

          But I do not know what to send as a module to do what I want.

          Can you help me with my module and node_helper?

          S 1 Reply Last reply Reply Quote 0
          • S Do not disturb
            sdetweil @nhpunch
            last edited by

            @nhpunch sorry, i don’t understand

            Sam

            How to add modules

            learning how to use browser developers window for css changes

            S 1 Reply Last reply Reply Quote 0
            • S Do not disturb
              sdetweil @sdetweil
              last edited by sdetweil

              @sdetweil you make up your own messages…

              so, you have a push button on the screen (done by module_name,js)… when push button,
              send button name and 1 to node helper… when it gets 1, it uses serial port to send to arduino.

              when u let up on button , you send 0…

              write out what you WANT the system to do… (design)

              then implement THAT design

              Sam

              How to add modules

              learning how to use browser developers window for css changes

              N 1 Reply Last reply Reply Quote 0
              • N Offline
                nhpunch @sdetweil
                last edited by

                @sdetweil

                I’m doing what you said, but I do not know how to send it to the node_helper when the button is pressed.

                I’m so sorry.

                S 1 Reply Last reply Reply Quote 0
                • S Do not disturb
                  sdetweil @nhpunch
                  last edited by sdetweil

                  @nhpunch this.sendSocketNotification(…,…)

                  from the doc

                  this.sendSocketNotification(notification, payload)

                  notification String - The notification identifier.
                  payload AnyType - Optional. A notification payload.

                  If you want to send a notification to the node_helper, use the sendSocketNotification(notification, payload). Only the node_helper of this module will receive the socket notification.

                  Example:

                  this.sendSocketNotification('SET_CONFIG', this.config);
                  

                  you’ll see in the sample that this is used twice… once by the module_name.js to send the config over to the node_helper and once by the node_helper to send a new text string to the module_name.js to display

                  its also used in your module, from the first post above

                    start: function () {
                      Log.info("Starting module: " + this.name);
                      this.sendSocketNotification('CONFIG', this.config)
                    },
                  

                  Sam

                  How to add modules

                  learning how to use browser developers window for css changes

                  1 Reply Last reply Reply Quote 0
                  • N Offline
                    nhpunch
                    last edited by

                    @sdetweil

                    I did my best, but I did not succeed.

                    I’m a real idiot.

                    Can you take a look at my code?

                    S 1 Reply Last reply Reply Quote 0
                    • S Do not disturb
                      sdetweil @nhpunch
                      last edited by

                      @nhpunch sure. Make a GitHub repo, and let me know

                      Sam

                      How to add modules

                      learning how to use browser developers window for css changes

                      1 Reply Last reply Reply Quote 0
                      • N Offline
                        nhpunch
                        last edited by nhpunch

                        https://github.com/nhpunch/sohard
                        

                        I created ‘is_Pushed’ and tried to work by repeating false, true when the button was pressed

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