Read the statement by Michael Teeuw here.
Difficulty getting MMM-Transitfeed working
-
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!
-
@UncleRoger ok, simpler
flash sd card with
use my script to install MM (do nothing before, it does the update and adds whats needed for MM)
npm start to prove MagicMirror is working
clone the modulecd to the module folder and do the npm install and npm install gtfs (in module folder NOT MM folder!!)
npm install gtfs --save-devnow, need electron rebuild
cd …/… # magicmirror folder
npm install @electron/rebuild
cd - # go back to module folder
…/…/node_modules/.bin/electron-rebuild
wait, should show sqlite
rebuild complete
cd - # back to MM folderadd the config entry for the module
npm startshould work