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.

    Difficulty getting MMM-Transitfeed working

    Scheduled Pinned Locked Moved Solved Troubleshooting
    31 Posts 2 Posters 1.5k 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.
    • U Offline
      UncleRoger
      last edited by

      Re: MMM-transitfeed - upcoming departure board for most transit agencies

      I tried to install this a while back but ran into problems. I had difficulty initially because when I tried to install it, I got a message back saying the gtfs stuff needed a newer node.js. I tried updating it and that went… badly. I managed to get things back the way they were and gave up for a bit. (Had a lot going on in my life at the time.)

      I’ve decided to try again (I want to get it working for my son who goes to school/work on public transit) and this time I set up a fresh install. New Raspberry PiOS, new MM install, nothing else done. Here’s what I’ve done so far:

      # Update system
      
      sudo apt update
      sudo apt full-upgrade
      
      # Install MagicMirror
      
      bash -c  "$(curl -sL https://raw.githubusercontent.com/sdetweil/MagicMirror_scripts/master/raspberry.sh)"
      
      # update Node/NPM
      
      sudo npm install -g n
      sudo n lts
      sudo n latest
      sudo n prune
      
      # Install transitfeed
      
      cd ~/MagicMirror/modules
      git clone https://github.com/bnitkin/MMM-transitfeed.git
      
      # Install gtfs
      
      cd ~/MagicMirror                     # Enter magicmirror project directory
      npm uninstall gtfs-realtime-bindings # Now part of gtfs
      npm install gtfs --save-dev          # Force update to latest version
      
      # Update better-sqlite3
      
      cd ~/MagicMirror
      rm -r node_modules/better-sqlite3/
      npm install better-sqlite3 --build-from-source --runtime=electron --target=26.4.3 --dist-url=https://electronjs.org/headers --force
      
      

      And here’s the error I’m getting:

      [2024-06-21 11:14:44.933] [ERROR] (node:53839) UnhandledPromiseRejectionWarning: Error: The module '/home/pi/MagicMirror/node_modules/better-sqlite3/build/Release/better_sqlite3.node'
      was compiled against a different Node.js version using
      NODE_MODULE_VERSION 116. This version of Node.js requires
      NODE_MODULE_VERSION 121. Please try re-compiling or re-installing
      the module (for instance, using `npm rebuild` or `npm install`).
          at process.func [as dlopen] (node:electron/js2c/node_init:2:2214)
          at Module._extensions..node (node:internal/modules/cjs/loader:1343:18)
          at Object.func [as .node] (node:electron/js2c/node_init:2:2214)
          at Module.load (node:internal/modules/cjs/loader:1098:32)
          at Module._load (node:internal/modules/cjs/loader:945:12)
          at c._load (node:electron/js2c/node_init:2:13672)
          at Module.require (node:internal/modules/cjs/loader:1122:19)
          at require (node:internal/modules/helpers:130:18)
          at bindings (/home/pi/MagicMirror/node_modules/bindings/bindings.js:112:48)
          at new Database (/home/pi/MagicMirror/node_modules/better-sqlite3/lib/database.js:48:64)
          at setupDb (file:///home/pi/MagicMirror/node_modules/gtfs/lib/db.js:10:14)
          at openDb (file:///home/pi/MagicMirror/node_modules/gtfs/lib/db.js:31:12)
          at Module.importGtfs (file:///home/pi/MagicMirror/node_modules/gtfs/lib/import.js:676:16)
          at Class.startup (/home/pi/MagicMirror/modules/MMM-transitfeed/node_helper.js:48:29)
          at async Class.socketNotificationReceived (/home/pi/MagicMirror/modules/MMM-transitfeed/node_helper.js:33:52)
      (Use `electron --trace-warnings ...` to show where the warning was created)
      [2024-06-21 11:14:44.934] [ERROR] (node:53839) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 8)
      

      It seems like I need an even newer version of better_sqlite3? Or maybe an older version of node.js?

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

        How to get MMM-transitfeed working on a new installation of MagicMirror (based on @sdetweil’s assistance)

        These are the steps I went through to get the module working after encountering version mismatch errors:

        Note that I was starting with a clean install of Raspberry PiOS. I made no changes prior to the steps outlined below:

        First, I installed MagicMirror using Sam Detweil’s script:

        bash -c  "$(curl -sL https://raw.githubusercontent.com/sdetweil/MagicMirror_scripts/master/raspberry.sh)"
        

        Next, I installed the transitfeed module:

        {
          cd ~/MagicMirror/modules
          git clone https://github.com/bnitkin/MMM-transitfeed.git
        }
        

        Then this reset the libraries:

        {
          cd ~/MagicMirror
          rm -rf node_modules
          git checkout package.json
          git checkout package-lock.json
          npm run install-mm
        }
        

        I installed the electron rebuild package:

        npm install @electron/rebuild
        

        Next, I reset the module info:

        {
          cd ~/MagicMirror/modules/MMM-transitfeed
          rm -rf node_modules
          git checkout package.json
          git checkout package-lock.json
          npm install
        }
        

        At this point, I installed gtfs:

        {
          cd ~/MagicMirror/modules/MMM-transitfeed
          npm install gtfs
        }
        

        And lastly, I rebuilt sqlite3:

        {
          cd ~/MagicMirror/modules/MMM-transitfeed
          ../../node_modules/.bin/electron-rebuild
        }
        

        Here I added the default config from the module’s github page to my config.js and started the mirror. It worked!

        Many thanks to Sam for his patience, knowledge, and caring assistance.

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

          @UncleRoger run npm rebuild in the module folder

          this module has a binary that has to match the electron version.
          the distributed version does not.

          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

            @UncleRoger or

            better

            cd ~/MagicMirror
            npm install @electron/rebuild
            cd modules/MMM-Transitfeed
            …/…/node_modules/.bin/electron-rebuild
            cd ~/MagicMirror

            and restart MagicMirror however  you do that

            Sam

            How to add modules

            learning how to use browser developers window for css changes

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

              @sdetweil

              I gave that a bash and am still getting the same error. I even wiped the system and started from scratch just in case I’d done something to make things worse.

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

                @UncleRoger hm… I installed, did the npm install gtfs

                ran, failed as version mismatch
                I then did the

                ../../node_modules/.bin/electron-rebuild 
                ✔ Rebuild Complete
                

                restart mm and no problems, using the default config

                Screenshot at 2024-06-21 15-31-57.png

                Sam

                How to add modules

                learning how to use browser developers window for css changes

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

                  @sdetweil

                  I appreciate the help, as always… I wiped the system again, reinstalled the OS and MM, did the rebuild. Still the same error except the version numbers are different:

                  [2024-06-21 15:30:32.001] [ERROR] (node:53456) UnhandledPromiseRejectionWarning: Error: The module '/home/pi/MagicMirror/node_modules/better-sqlite3/build/Release/better_sqlite3.node'
                  was compiled against a different Node.js version using
                  NODE_MODULE_VERSION 127. This version of Node.js requires
                  NODE_MODULE_VERSION 121. Please try re-compiling or re-installing
                  the module (for instance, using `npm rebuild` or `npm install`).
                  

                  I should mention that this is on a Pi4 (probably 2gb) with no other modules installed.

                  Maybe it’s just not meant to be.

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

                    @UncleRoger what folder are you in when you do the electron-rebuild?

                    Sam

                    How to add modules

                    learning how to use browser developers window for css changes

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

                      @sdetweil

                      The MMM-transitfeed module directory:

                      {
                        cd ~/MagicMirror
                        npm install @electron/rebuild
                        cd ~/MagicMirror/modules/MMM-transitfeed
                        ../../node_modules/.bin/electron-rebuild
                        cd ~/MagicMirror
                      }
                      

                      I basically copy-and-pasted that.

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

                        @UncleRoger and when the electron-rebuild ran it should have said
                        something about sqllite
                        and rebuild complete, like mine above

                        Sam

                        How to add modules

                        learning how to use browser developers window for css changes

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

                          @sdetweil

                          Nothing about sqlite but it did say “Rebuild Complete”:

                          pi@MagicMirrorDev:~/MagicMirror $ {
                            cd ~/MagicMirror
                            npm install @electron/rebuild
                            cd ~/MagicMirror/modules/MMM-transitfeed
                            ../../node_modules/.bin/electron-rebuild
                            cd ~/MagicMirror
                          }
                          
                          added 81 packages in 11s
                          
                          253 packages are looking for funding
                            run `npm fund` for details
                          ✔ Rebuild Complete
                          pi@MagicMirrorDev:~/MagicMirror $ 
                          

                          This time around, I didn’t do the sqlite update:

                          {
                            cd ~/MagicMirror
                            rm -r node_modules/better-sqlite3/
                            npm install better-sqlite3 --build-from-source --runtime=electron --target=26.4.3 --dist-url=https://electronjs.org/headers --force
                          }
                          

                          But I don’t think it worked any better when I did. I’ll try that and then do the rebuild.

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