When you say “module folder”, you mean (in this case) ~/MagicMirror/modules/MMM-transitfeed not ~/MagicMirror/modules/ right? I’m pretty sure, but better safe than sorry.
Thanks!
When you say “module folder”, you mean (in this case) ~/MagicMirror/modules/MMM-transitfeed not ~/MagicMirror/modules/ right? I’m pretty sure, but better safe than sorry.
Thanks!
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!
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 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?
Oops. I did the rebuild again. Still doesn’t say anything about the sqlite3 but it does say rebuild complete.
Thanks
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.
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.
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.
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.