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 @sdetweil
      last edited by

      @sdetweil I understand about the log. Thank you.

      Regarding the IP address, I am very new to javascript hence trying to get my head around it. Being a C programmer, certain things in JavaScript is still a distant for me. Hope to understand soon.

      Just in case if you have some time, a simple code from you would help me. Please.

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