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.

    Show calendar based on IP Address accessed

    Scheduled Pinned Locked Moved Development
    68 Posts 3 Posters 21.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.
    • S Offline
      Spinster @MMRIZE
      last edited by

      @MMRIZE I understand, Ideally I would like to avoid opening multiple ports and use a common config to serve clients based on their IP. In fact, though DHCP is used by my home server, I have only assigned the IP address to reservations, hence static IP within my home network is not a problem.

      Please suggest a simple code to use a specific calendar based on IP address of the client.

      M 2 Replies Last reply Reply Quote 0
      • M Offline
        MMRIZE @Spinster
        last edited by

        @Spinster
        I’m out of my test PC, so I can’t show atm. (Maybe tomorrow possible, if you couldn’t success until that time)
        You can add custom config attribute map-like object calendarMap in your config.js

        module: "calendar",
        position: "top_left",
        config: {
          calendarMap: {
            "192.168.178.100": ["calendar1", "calendar2"],
            "192.168.178.101": ["calebdar1", "calendar3"],
          },
          calendars: [
            {
              url: " … ",
              name: "calendar1",
            },
        …
        
        

        In calendar.js around line 176, when CALENDAR_EVENTS notification coming, you can filter the payload(array of events) of that notification by checking calendarName of each event is matched to this.config.calendarMap.

        Sorry I can’t show the real code now. Maybe some hours later I may be able to. Anyway concept would be like this.

        S 1 Reply Last reply Reply Quote 0
        • S Offline
          Spinster @MMRIZE
          last edited by

          @MMRIZE Great, You have given me an idea, will wait for your code. Please share when possible.

          1 Reply Last reply Reply Quote 0
          • M Offline
            MMRIZE @Spinster
            last edited by

            @Spinster
            Ah I suddenly remember that getting Internal IP with only JavaScript on client browseris hard.
            Hmmm another approach might be needed.

            S 1 Reply Last reply Reply Quote 0
            • S Offline
              sdetweil @MMRIZE
              last edited by

              @MMRIZE that is why you need the express api call…

              I would make a separate module that has ip in div, not shown, but w id

              then call in calendar is document.get…
              compare, your way or on cal entries
              more synchronous…

              Sam

              How to add modules

              learning how to use browser developers window for css changes

              M 1 Reply Last reply Reply Quote 0
              • M Offline
                MMRIZE @sdetweil
                last edited by

                @sdetweil
                Yes. I thought a small module with node_helper that could return clients’ ip as a result of REST api call from calendar module.

                S 1 Reply Last reply Reply Quote 0
                • S Offline
                  sdetweil @MMRIZE
                  last edited by sdetweil

                  @MMRIZE and that module calls its own rest call publishes the address in its getDom() result, with id= on div

                  and then cal module can use synchronous document.getElementsById()

                  to get that value.

                  Sam

                  How to add modules

                  learning how to use browser developers window for css changes

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

                    @MMRIZE @Spinster

                    so the little module is

                    https://github.com/sdetweil/getip

                    and it does correctly return the ip address of the client… tested from 4 different systems to the same MM…

                    see later post for final solution

                    Sam

                    How to add modules

                    learning how to use browser developers window for css changes

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

                      @sdetweil @MMRIZE

                      Wow, you are quick, you have given me some homework. Will use your code and get back with the result.

                      Thank you so much for your patience and understanding.

                      M 1 Reply Last reply Reply Quote 0
                      • S Offline
                        Spinster @sdetweil
                        last edited by

                        @sdetweil

                        I tried your code, but find that once I include getip module in config.js, I am not seeing any output for calendar. Is this the expected output. Without getip module, I find that client_ip = document.getElementById("getip is returning null.Please advice

                        S M 3 Replies Last reply Reply Quote 0
                        • 1
                        • 2
                        • 3
                        • 4
                        • 5
                        • 6
                        • 7
                        • 6 / 7
                        • 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