• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
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.0k 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 Jun 21, 2024, 6:36 PM

    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 Jun 21, 2024, 6:38 PM Reply Quote 0
    • U Offline
      UncleRoger @sdetweil
      last edited by Jun 26, 2024, 10:14 PM

      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 Jun 21, 2024, 6:41 PM Jun 21, 2024, 6:38 PM

        @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 Jun 21, 2024, 7:00 PM Reply Quote 0
        • S Offline
          sdetweil @sdetweil
          last edited by Jun 21, 2024, 7:00 PM

          @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 Jun 21, 2024, 7:55 PM Reply Quote 0
          • U Offline
            UncleRoger @sdetweil
            last edited by Jun 21, 2024, 7:55 PM

            @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 Jun 21, 2024, 8:33 PM Reply Quote 0
            • S Offline
              sdetweil @UncleRoger
              last edited by Jun 21, 2024, 8:33 PM

              @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 Jun 21, 2024, 10:39 PM Reply Quote 0
              • U Offline
                UncleRoger @sdetweil
                last edited by Jun 21, 2024, 10:39 PM

                @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 Jun 21, 2024, 11:21 PM Reply Quote 0
                • S Offline
                  sdetweil @UncleRoger
                  last edited by Jun 21, 2024, 11:21 PM

                  @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 Jun 21, 2024, 11:31 PM Reply Quote 0
                  • U Offline
                    UncleRoger @sdetweil
                    last edited by Jun 21, 2024, 11:31 PM

                    @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 Jun 21, 2024, 11:42 PM Reply Quote 0
                    • S Offline
                      sdetweil @UncleRoger
                      last edited by sdetweil Jun 21, 2024, 11:43 PM Jun 21, 2024, 11:42 PM

                      @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 Jun 21, 2024, 11:51 PM Reply Quote 0
                      • U Offline
                        UncleRoger @sdetweil
                        last edited by Jun 21, 2024, 11:51 PM

                        @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 Jun 22, 2024, 12:00 AM Reply Quote 0
                        • 1
                        • 2
                        • 3
                        • 4
                        • 1 / 4
                        1 / 4
                        • First post
                          1/31
                          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