Read the statement by Michael Teeuw here.
Default Weather module still not displaying
-
@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: 2
This 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.1
means it uses electron v20.0.1
for MagicMirror instead of v19.x that why it crash.I’ll leave it up to you to explain it :)