Read the statement by Michael Teeuw here.
Default Weather module still not displaying
-
May I ask how you are using
classes: "daytime_scheduler"Are there two instances of
daytime_schedulerI use
classes: “currentweather” type: “current”and
classes: “weatherforcast” type: “forecast”to replace the deprecated modules.
-
@Jarhead96097 use my install script
-
@sdetweil “On branch master,” and up to date with origin/master. I also meant to reply earlier that this is on a RPI 4B. Unfortunately, still getting the same error and the weather module is not displaying information.
I appreciate everyone’s time…but I’m going to cut to the chase and rebuild using your install script.
Thanks again for the time, you’re always very helpful, and I appreciate it.
-
@Jarhead96097 ah, one other question, what is the current node level
node --version
-
@sdetweil sorry, already using your installation script (but no “npm audit fix” this time around).
-
@sdetweil On my RPi4 it’s 16.16.0, and I’m getting the same problems as Jarhead. After an upgrade there’s now just no reaction to starting mm.
-
@Blackeye can u show the output of the npm start or, if using pm2 , then
pm2 logs --lines=50
how did u do the upgrade?
-
@Blackeye also, can u show me the contents of line 159 from
~/MagicMirror/modules/default/weather/weather.js -
@OldSunGuy I use the MMM-ModuleScheduler 3rd party module to control when my MM turns off everything except the clock and dims the display at night. “daytime_scheduler” is the class I used to turn off those modules at night.
-
@sdetweil here is what my weather.js (newly rebuilt, but not yet configured) has on lines 148 to 166:
// What to do when the weather provider has new information available? updateAvailable: function () { Log.log("New weather information available."); this.updateDom(0); this.scheduleUpdate(); if (this.weatherProvider.currentWeather()) { this.sendNotification("CURRENTWEATHER_TYPE", { type: this.weatherProvider.currentWeather().weatherType.replace("-", "_") }); } const notificationPayload = { currentWeather: this.weatherProvider?.currentWeatherObject?.simpleClone() ?? null, forecastArray: this.weatherProvider?.weatherForecastArray?.map((ar) => ar.simpleClone()) ?? [], hourlyArray: this.weatherProvider?.weatherHourlyArray?.map((ar) => ar.simpleClone()) ?? [], locationName: this.weatherProvider?.fetchedLocationName, providerName: this.weatherProvider.providerName }; this.sendNotification("WEATHER_UPDATED", notificationPayload); }, -
@sdetweil Sam, thanks for all of your help. I’ve finished rebuilding without running ‘npm audit fix’ and everything is working as it should! I used your installation script and everything worked fine. I also took the opportunity to move things around and try a couple of new 3rd party modules… everything is back to normal!
Thanks again,
Jarhead96097 -
@Jarhead96097 said in Default Weather module still not displaying:
const notificationPayload = { currentWeather: this.weatherProvider?.currentWeatherObject?.simpleClone() ?? null,thats line 158 and159.
the only thing i can think of is the ?. (optional chaining) operator…
but its been long supported… and it works on my 16.9.1 node versionsee item 2 in the list here
https://www.freecodecamp.org/news/how-the-question-mark-works-in-javascript/ -
@Jarhead96097 great news!!!
-
@sdetweil Moin, line 159 of weather-js looks like this:
currentWeather: this.weatherProvider?.currentWeatherObject?.simpleClone() ?? null,The pm2 error log shows:
/home/<myusername>/.pm2/logs/MagicMirror-error.log last 50 lines: 1|MagicMir | failed to load swrast driver 1|MagicMir | [06.08.2022 09:46.00.374] [ERROR] WARNING! Could not load config file. Starting with default configuration. Error found: Error: The module '/home/lookyhere/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/build/Release/epoll.node' 1|MagicMir | was compiled against a different Node.js version using 1|MagicMir | NODE_MODULE_VERSION 73. This version of Node.js requires 1|MagicMir | NODE_MODULE_VERSION 107. Please try re-compiling or re-installing 1|MagicMir | the module (for instance, using `npm rebuild` or `npm install`).Looks like I should re-install. Which is the best method, in your opinion?
Many thanks for your help - I want to get this thing on the wall soon! -
-
@sdetweil Hi Sam, Many thanks for the suggestion - I followed your advice on that page. Here’s what happened halfway through:
from ../src/epoll.cc:11: /home/<myusername>/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/20.0.1/include/node/v8-ma ybe.h:106:45: error: ‘is_lvalue_reference_v’ is not a member of ‘std’; did you mean ‘is_lvalue_ reference’? 106 | template <class U, std::enable_if_t<!std::is_lvalue_reference_v<U>>*> | ^~~~~~~~~~~~~~~~~~~~~ | is_lvalue_reference /home/<myusername>/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/20.0.1/include/node/v8-ma ybe.h:106:66: warning: logical not is only applied to the left hand side of comparison [-Wlogic al-not-parentheses] 106 | template <class U, std::enable_if_t<!std::is_lvalue_reference_v<U>>*> | ^ /home/<myusername>/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/20.0.1/include/node/v8-ma ybe.h:106:67: error: template argument 1 is invalid 106 | template <class U, std::enable_if_t<!std::is_lvalue_reference_v<U>>*> | ^ /home/<myusername>/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/20.0.1/include/node/v8-ma ybe.h:106:71: error: expected unqualified-id before ‘>’ token 106 | template <class U, std::enable_if_t<!std::is_lvalue_reference_v<U>>*> | ^ /home/<myusername>/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/20.0.1/include/node/v8-ma ybe.h:123:43: error: ‘is_lvalue_reference_v’ is not a member of ‘std’; did you mean ‘is_lvalue_ reference’? 123 | template <class T, std::enable_if_t<!std::is_lvalue_reference_v<T>>* = nullptr>and finally:
✖ MagicMirror Rebuild Failed An unhandled error occurred inside electron-rebuild node-gyp failed to rebuild '/home/<myusername>/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epo ll'. Error: `make` failed with exit code: 2This will all mean a lot more to you than it does for me.
-
@sdetweil And this is the final part of the error message, in bright red:
at ModuleRebuilder.rebuildNodeGypModule (/home/<myusername>/MagicMirror/modules/MMM-PIR-Sensor /node_modules/magicmirror-rebuild/build/module-rebuilder.js:193:19) at processTicksAndRejections (node:internal/process/task_queues:96:5) at async Rebuilder.rebuildModuleAt (/home/<myusername>/MagicMirror/modules/MMM-PIR-Sensor/node _modules/magicmirror-rebuild/build/rebuild.js:180:9) at async Rebuilder.rebuild (/home/<myusername>/MagicMirror/modules/MMM-PIR-Sensor/node_modules /magicmirror-rebuild/build/rebuild.js:143:17) at async /home/<myusername>/MagicMirror/modules/MMM-PIR-Sensor/node_modules/magicmirror-rebuil d/build/cli.js:141:9 -
@Blackeye hm. 1st time I’ve seen his tools fail…
@bugsounet any guidance
-
@sdetweil yes
epoll/20.0.1means it uses electron v20.0.1for MagicMirror instead of v19.x that why it crash.I’ll leave it up to you to explain it :)
-
@Blackeye ok, heres a way around the problem
fix MM install to have one new tool
cd ~/MagicMirror npm install electron-rebuildfix MMM-PIR-Sensor
cd ~/MagicMirror/modules/MMM-PIR-Sensor nano package.jsonscroll down to
"scripts": { "postinstall": "node_modules/.bin/electron-rebuild -e ../../node_modules/electron" },change the postinstall line so it looks like this
"scripts": { "postinstall": "~/MagicMirror/node_modules/.bin/electron-rebuild -e ../../node_modules/electron" },ctrl-o to save the updated package.json
ctrl-x to exit the editorthen
npm installshould work correctly now
I just tested this on my MM 2.20 version, on both my linux machine and my pi4 with bullseye
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login