Read the statement by Michael Teeuw here.
Difficulty getting MMM-Transitfeed working
-
@UncleRoger and when the electron-rebuild ran it should have said
something about sqllite
and rebuild complete, like mine above -
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.
-
@UncleRoger don’t install sql again, else you have to rebuild again
-
Oops. I did the rebuild again. Still doesn’t say anything about the sqlite3 but it does say rebuild complete.
Thanks
-
@UncleRoger and? does it run.
-
Sadly, no. Same error.
-
Could it be hardware related? I’m not sure I have another Pi4 I can test with but I’ve got a Pi Zero 2 I could try. Would that be of any use?
-
@UncleRoger its not hardware, but another try wouldn’t hurt
-
There is no joy in mudville.
Here’s what I did with a fresh install of PiOS (Raspberry Pi 4 2gb):
pi@MagicMirrorDev:~/MagicMirror $ history 1 { sudo apt update; sudo apt full-upgrade; } 2 bash -c "$(curl -sL https://raw.githubusercontent.com/sdetweil/MagicMirror_scripts/master/raspberry.sh)" 3 sudo nmtui 4 sudo shutdown -r now 5 sudo nmtui 6 sudu shutdown -r now 7 sudo shutdown -r now 8 { cd ~/MagicMirror/modules; git clone https://github.com/bnitkin/MMM-transitfeed.git; } 9 cd .. 10 { 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 } 11 { 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 } 12 { sudo npm install -g n; sudo n lts; sudo n latest; sudo n prune; } 13 { 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 } 14 cd $HOME/MagicMirror; 15 DISPLAY=:0 npm start 16 npm run config:check 17 DISPLAY=:0 npm start 18 npm run config:check 19 DISPLAY=:0 npm start 20 npm run config:check 21 DISPLAY=:0 npm start 22 { 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; } 23 { cd ~/MagicMirror; npm install @electron/rebuild; } 24 { cd ~/MagicMirror/modules/MMM-transitfeed; ../../node_modules/.bin/electron-rebuild; cd ~/MagicMirror; } 25 DISPLAY=:0 npm start 26 history pi@MagicMirrorDev:~/MagicMirror $
The nmtui stuff is to set the IP address (which I did wrong a couple of times) and then I mucked up the config.js putting in the transitfeed module stuff.
Here’s the log from trying to run it at the end (it’s basically the same):
[2024-06-25 11:53:08.617] [LOG] MMM-transitfeed: Importing with [object Object] [2024-06-25 11:53:08.649] [ERROR] (node:3464) 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-25 11:53:08.650] [ERROR] (node:3464) 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)
I’m thinking I might give it another go from scratch without worrying about the IP address and catching all the output from each command.
-
Could you check that I’m doing things correctly? These are the commands I’m using to get from a fresh OS to MM with transitfeed:
# 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)" # NOTICE ON INSTALL: npm install -g npm@10.8.1 # 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 } # Rebuild Electron? { cd ~/MagicMirror npm install @electron/rebuild cd ~/MagicMirror/modules/MMM-transitfeed ../../node_modules/.bin/electron-rebuild cd ~/MagicMirror }
Thanks so much for your help!