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.

    Client wont keep Modules up-to-date

    Scheduled Pinned Locked Moved Unsolved Troubleshooting
    21 Posts 3 Posters 7.3k 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
      codac
      last edited by

      I’m running @karsten13 Docker on my Synology NAS, which runs smooth and nicely.
      As I have configured my MagicMirror to work as client/server, the client runs on a Raspberry Pi feeding the Mirror itself.

      I have figured out that the client wont show the most current data of the modules. It is not frozen, the time is running and other modules like “MMM-DWD-WarnWeather” or “MMM-Traffic” are always up-to-date.
      But the default calendar module as well as the “MMM-SoccerLiveScore” module are always outdated.

      How can that be and what can I do to find the root cause?

      karsten13K S 2 Replies Last reply Reply Quote 0
      • karsten13K Offline
        karsten13 @codac
        last edited by

        @codac

        you are talking about this setup?

        I think all modules are running correctly which have no node_helper.js in their directory.

        Are there any warnings/errors in the logs (client and/or server)?

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

          @codac can u ssh into the mirror?

          stop the client and open chromium and point it at your mm server.

          this will do the same thing as the client just use a different browser.

          when I do this for pi0 devices I use this command line

          chromium -noerrdialogs -kiosk -start_maximized  --disable-infobars --app=http://localhost:$port  --ignore-certificate-errors-spki-list --ignore-ssl-errors --ignore-certificate-errors 2>/dev/null
          

          change the localhost and $port to point to your mm server

          Sam

          How to add modules

          learning how to use browser developers window for css changes

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

            @karsten13
            yes and using pm2 to start this command:

            DISPLAY=:0 node clientonly --address 192.168.0.13 --port 8080
            

            And yes I have errors, it seems as if there is a problem using the 127.0.0.1 address and port 8080:

            0|mm       | [13.07.2021 13:19.37.499] [ERROR] Error: listen EADDRINUSE: address                                                                                                                                           already in use 127.0.0.1:8080
            0|mm       |     at Server.setupListenHandle [as _listen2] (net.js:1313:16)
            0|mm       |     at listenInCluster (net.js:1361:12)
            0|mm       |     at GetAddrInfoReqWrap.doListen [as callback] (net.js:1498:7)
            0|mm       |     at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:68:8) {
            0|mm       |   code: 'EADDRINUSE',
            0|mm       |   errno: 'EADDRINUSE',
            0|mm       |   syscall: 'listen',
            0|mm       |   address: '127.0.0.1',
            0|mm       |   port: 8080
            0|mm       | }
            0|mm       | [13.07.2021 13:19.37.506] [ERROR] MagicMirror will not quit, but it                                                                                                                                           might be a good idea to check why this happened. Maybe no internet connection?
            0|mm       | [13.07.2021 13:19.37.510] [ERROR] If you think this really is an is                                                                                                                                          sue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/iss                                                                                                                                          ues
            
            

            and I wonder why there is an error catching the newsfeed, as the stated feed is the one from the client, not the server:

            0|mm       | /home/pi/MagicMirror/node_modules/electron/dist/electron exited wit                                                                                                                                          h signal SIGINT
            0|mm       | [13.07.2021 19:59.53.918] [ERROR] Newsfeed Error. Could not fetch n                                                                                                                                          ewsfeed:  https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml FetchError:                                                                                                                                           request to https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml failed, rea                                                                                                                                          son: getaddrinfo EAI_AGAIN rss.nytimes.com
            0|mm       |     at ClientRequest.<anonymous> (/home/pi/MagicMirror/node_modules                                                                                                                                          /node-fetch/lib/index.js:1461:11)
            0|mm       |     at ClientRequest.emit (events.js:315:20)
            0|mm       |     at TLSSocket.socketErrorListener (_http_client.js:426:9)
            0|mm       |     at TLSSocket.emit (events.js:315:20)
            0|mm       |     at emitErrorNT (internal/streams/destroy.js:92:8)
            0|mm       |     at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
            0|mm       |     at processTicksAndRejections (internal/process/task_queues.js:8                                                                                                                                          4:21) {
            0|mm       |   type: 'system',
            0|mm       |   errno: 'EAI_AGAIN',
            0|mm       |   code: 'EAI_AGAIN'
            0|mm       | }
            0|mm       | [13.07.2021 19:59.56.921] [ERROR] Calendar Error. Could not fetch c                                                                                                                                          alendar:  http://www.calendarlabs.com/ical-calendar/ics/76/US_Holidays.ics Fetch                                                                                                                                          Error: request to http://www.calendarlabs.com/ical-calendar/ics/76/US_Holidays.i                                                                                                                                          cs failed, reason: getaddrinfo EAI_AGAIN www.calendarlabs.com
            0|mm       |     at ClientRequest.<anonymous> (/home/pi/MagicMirror/node_modules                                                                                                                                          /node-fetch/lib/index.js:1461:11)
            
            
            S karsten13K 2 Replies Last reply Reply Quote 0
            • S Offline
              sdetweil @codac
              last edited by

              @codac said in Client wont keep Modules up-to-date:

              EAI_AGAIN

              is a name server problem

              the api request could not resolve the name

              see this a lot with local pihole servers doing DNS filtering

              Sam

              How to add modules

              learning how to use browser developers window for css changes

              1 Reply Last reply Reply Quote 0
              • karsten13K Offline
                karsten13 @codac
                last edited by

                @codac

                it seems as if there is a problem using the 127.0.0.1 address and port 8080:

                yes, port 8080 on your client is already in use.
                You can try another port in the client config.js but I don’t know if this works.

                I wonder why there is an error catching the newsfeed, as the stated feed is the one from the client, not the server:

                then remove this stuff from the client config …

                I’m not familiar with the clientonly setup and I think this is not used very often and therefore maybe contains some bugs.

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

                  @karsten13 said in Client wont keep Modules up-to-date:

                  I’m not familiar with the clientonly setup

                  it just launches electron pointing at the server, same as u would do with chromium.

                  doesn’t use the config.js

                  Sam

                  How to add modules

                  learning how to use browser developers window for css changes

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

                    I figured out that is was due to several reasons.

                    1. The reported error messages from the client side were old ones from the time when I set up the client and before I switched to clientonly mode. So they are supposed to be ignored.
                    2. The calendar module was able to receive the events from all calendars except for one calendar that runs on my NAS system where I forgot to add the port number to the calendar url.
                    3. the module MMM-Tankerkoenig is not up to date as there is an error message regarding the identifier that was not found. As far as I can see the code has an error and therefore the module wont update correctly.
                    4. the module MMM-Formula1 (wrongly called it MMM-SocerLiveScore) module has a ReloadInterval which was just wrongly set up and far to long.

                    @karsten13
                    In the Docker on the server side is there anything adequate to the command pm2 logs --lines 300 mm ?

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

                      @codac said in Client wont keep Modules up-to-date:

                      In the Docker on the server side is there anything adequate to the command pm2 logs --lines 300 mm ?

                      wouldnt you just

                       docker exec container_id pm2 logs.....
                      

                      to execute the command inside the container?

                      to clear the logs

                      docker exec container_id pm2 flush

                      Sam

                      How to add modules

                      learning how to use browser developers window for css changes

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

                        @sdetweil

                        there is no pm2 in the container …

                        The command is docker logs <containername or id>, so if you use my docker-compose setup docker logs mm.

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

                          @karsten13 so I have to restart the container after making config changes?

                          Sam

                          How to add modules

                          learning how to use browser developers window for css changes

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

                            @sdetweil yes, you should do that.

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

                              I have still not fixed this.

                              Servers IP: 192.168.0.23 (local Port 8036, container-port: 8080)

                              On the client I get the following error:

                              Unable to connect to server: (Error: Unable to read config from server (http://192.168.0.23:8036/config/ (connect ECONNREFUSED 192.168.0.23:8036)
                              

                              The servers config is set to:

                                      address: "0.0.0.0",
                              	port: 8080,
                              	basePath: "/", 	
                              	ipWhitelist: ['0.0.0.0/0', '127.0.0.1', '::ffff:127.0.0.1', '::1', '192.168.0.0/24', '172.17.0.0/24'], 
                              

                              Any ideas why the client wont get the servers config?

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

                                @codac first, remove the ipWhitelist , set to []

                                then try
                                .and the IP address used is the docker host IP address, right.

                                never use the containers direct address for any code not running ON the docker host machine

                                where is client running?

                                if mm rejected the connection due to whitelist you should have seen it in the mm messages

                                i see a message like this

                                Access denied to IP address: 192.168.2.106
                                

                                my config

                                	address: "192.168.2.106", 	// Address to listen on, can be:
                                							// - "localhost", "127.0.0.1", "::1" to listen on loopback interface
                                							// - another specific IPv4/6 to listen on a specific interface
                                							// - "0.0.0.0", "::" to listen on any interface
                                							// Default, when address config is left out or empty, is "localhost"
                                	port: 8090,
                                	basePath: "/", 	// The URL path where MagicMirror is hosted. If you are using a Reverse proxy
                                					// you must set the sub path here. basePath must end with a /
                                	ipWhitelist: ["127.0.0.1"], 
                                

                                Sam

                                How to add modules

                                learning how to use browser developers window for css changes

                                1 Reply Last reply Reply Quote 0
                                • karsten13K Offline
                                  karsten13 @codac
                                  last edited by

                                  @codac

                                  may you must open the additional port in the docker setup and add the line with 8036 (untested) in your docker-compose.yml:

                                      ports:
                                        - "8080:8080"
                                        - "8036:8036"
                                  
                                  S 1 Reply Last reply Reply Quote 0
                                  • S Offline
                                    sdetweil @karsten13
                                    last edited by

                                    @karsten13 said in Client wont keep Modules up-to-date:

                                    ports:
                                      - "8080:8080"
                                      - "8036:8036"
                                    

                                    why wouldn’t

                                         ports:
                                               "8036:8080"
                                    

                                    be enough?

                                    Sam

                                    How to add modules

                                    learning how to use browser developers window for css changes

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

                                      @sdetweil think you are right …

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

                                        @karsten13 actually I think you were closer…

                                        I know a module that uses the port number in a url it presents…
                                        (MMM-Config in the QR code)

                                        8080 won’t work, but if the mapping was added

                                        so

                                             ports:
                                                   "8036:8080"
                                                   "8080:8080"
                                        

                                        would be needed

                                        and if u need to do that, then 8080 on the docker host needs to be used, so then no need for 8036

                                             ports:
                                                   "8080:8080"
                                        

                                        but can’t run two container instances

                                        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 also, my MM uses 8090 not to collide with another app.

                                          Sam

                                          How to add modules

                                          learning how to use browser developers window for css changes

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

                                            @codac

                                            Servers IP: 192.168.0.23 (local Port 8036, container-port: 8080)

                                            if I read this correctly your setup is

                                            ports:
                                              - "8036:8080"
                                            

                                            So mm should be reachable under 192.168.0.23:8036.

                                            If not the client ip is may not white listed, I would try ipWhitelist: [], in the server config for testing.

                                            Another question: Is 192.168.0.23:8036 not reachable in general (e.g. in a browser) or only not reachable running the clientonly command?

                                            1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 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