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

Does node_helper know if all module instances are already started?

Scheduled Pinned Locked Moved Development
15 Posts 3 Posters 4.9k 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.
  • S Offline
    sdetweil @Adam 2
    last edited by Jun 28, 2022, 12:22 PM

    @Adam-2 I still think that design is bad.

    I can open another browser to mm tomorrow, and you will have another config.js count of modules firing requests.

    why do you think that you need to know about the state of the viewers?

    Sam

    How to add modules

    learning how to use browser developers window for css changes

    1 Reply Last reply Reply Quote 0
    • M Offline
      MMRIZE
      last edited by MMRIZE Jun 28, 2022, 12:30 PM Jun 28, 2022, 12:26 PM

      • node_helper cannot know other module’s status directly. It lies on another layer of the architecture.
      • It sounds somewhat weird node_helper has to interact with other modules. Generally A module has to interact with other modules. node_helper is a helper for a specific module to handle things out of MM/browser front level.
      • Module notification DOM_OBJECTS_CREATED is regarded as a signal of ‘all modules are displayed’. You can deliver socketNotification to your node_helper to start your job when this notification is caught.
      A 1 Reply Last reply Jun 28, 2022, 12:38 PM Reply Quote 0
      • A Offline
        Adam 2 @MMRIZE
        last edited by Jun 28, 2022, 12:38 PM

        @MMRIZE My node_helper does not interact with other modules. It interacts only with many instances of my module, because there is only one node_helper even if module has multiple instances. It looks that DOM_OBJECTS_CREATED notification is a good way to know that each module instance is already started. However, as it is received by the module, in fact each instance will pass that info to node_helper while only one is enough. However, this is not a huge issue. After this is passed to node_helper I can be sure that module instances are ready to display data through API provided by the node_helper. Moreover, I can be sure that all individual configs for each module are already loaded.

        M 1 Reply Last reply Jun 28, 2022, 1:04 PM Reply Quote 0
        • M Offline
          MMRIZE @Adam 2
          last edited by MMRIZE Jun 28, 2022, 1:08 PM Jun 28, 2022, 1:04 PM

          @Adam-2
          You can assign and deliver some instanceID to distinguish which instance of your module transfers this notification.
          Or you can use Promise.race()(to confirm first socketNotification coming from any instance) or Promise.allSettled()(to confirm entire socketNotifications delivered from all instances even though fail or not) in node_helper to check socketNotifications receiving. (Anyway, you need to check how many instances there exist before promise racing)

          S 1 Reply Last reply Jun 28, 2022, 1:06 PM Reply Quote 0
          • S Offline
            sdetweil @MMRIZE
            last edited by Jun 28, 2022, 1:06 PM

            @MMRIZE and config. is accessible in node_helper, so one could count the module instances

            Sam

            How to add modules

            learning how to use browser developers window for css changes

            A 1 Reply Last reply Jun 28, 2022, 2:00 PM Reply Quote 0
            • A Offline
              Adam 2 @sdetweil
              last edited by Jun 28, 2022, 2:00 PM

              @sdetweil Is config file accessible from the node_helper? I thought that only core module files can access it and have to send it back to node_helper if needed.

              S 1 Reply Last reply Jun 28, 2022, 4:08 PM Reply Quote 0
              • S Offline
                sdetweil @Adam 2
                last edited by Jun 28, 2022, 4:08 PM

                @Adam-2 see the global config var in the node_helper

                its EVERYTHING in config.js

                Sam

                How to add modules

                learning how to use browser developers window for css changes

                A 1 Reply Last reply Jun 29, 2022, 8:03 AM Reply Quote 0
                • A Offline
                  Adam 2 @sdetweil
                  last edited by Jun 29, 2022, 8:03 AM

                  @sdetweil I’m searching the documentation and cannot find this global config var. How exactly can I access it?

                  S 1 Reply Last reply Jun 29, 2022, 11:52 AM Reply Quote 0
                  • S Offline
                    sdetweil @Adam 2
                    last edited by sdetweil Jun 29, 2022, 11:54 AM Jun 29, 2022, 11:52 AM

                    @Adam-2 config.

                    it’s not in the doc

                    config.modules is the array of module entries

                    Sam

                    How to add modules

                    learning how to use browser developers window for css changes

                    A 1 Reply Last reply Jul 7, 2022, 9:09 AM Reply Quote 0
                    • A Offline
                      Adam 2 @sdetweil
                      last edited by Jul 7, 2022, 9:09 AM

                      @sdetweil Works as you wrote. Sadly its not in the documentation.

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