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 2.1k 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.
    • UncleRogerU 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
      • UncleRogerU 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

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

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

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

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