Read the statement by Michael Teeuw here.
node_helper.js is not working?
-
@vandy2424 what version of MagicMirror are you using?
what version of nodejs and electron are you running
if you do npm run server do you get messages?
-
@sdetweil Hi Sam, thank you for the quick reply!
MagicMirror version: v2.26.0
NodeJs version: v20.11.0
Electron version: 27.2.0If I do npm run server I do not get the messages.
-
@vandy2424
Is there any suspicious log in your terminal and front dev-console both? What they said? -
@MMRIZE Hello. To simplify this output, I am just enabling the default clock and weather module and MMM-DynamicWeather for these outputs. First is the dev console output. There is a Electron Security Warning but I think thats just a security notice. At the bottom, there is also another warning regarding the WebSocket.
Dev-Console:
main.js:589 Initializing MagicMirror². translator.js:122 Loading core translation file: translations/en.json VM4 sandbox_bundle:2 Electron Security Warning (Insecure Content-Security-Policy) This renderer process has either no Content Security Policy set or a policy with "unsafe-eval" enabled. This exposes users of this app to unnecessary security risks. For more information and help, consult https://electronjs.org/docs/tutorial/security. This warning will not show up once the app is packaged. warnAboutInsecureCSP @ VM4 sandbox_bundle:2 translator.js:138 Loading core translation fallback file: translations/en.json loader.js:165 Load script: modules/default/clock/clock.js module.js:484 Module registered: clock loader.js:138 Bootstrapping module: clock loader.js:165 Load script: vendor/node_modules/moment/min/moment-with-locales.js loader.js:165 Load script: vendor/node_modules/moment-timezone/builds/moment-timezone-with-data.js loader.js:165 Load script: vendor/node_modules/suncalc/suncalc.js loader.js:142 Scripts loaded for: clock loader.js:180 Load stylesheet: modules/default/clock/clock_styles.css loader.js:145 Styles loaded for: clock loader.js:148 Translations loaded for: clock loader.js:165 Load script: modules/default/weather/weather.js module.js:484 Module registered: weather loader.js:138 Bootstrapping module: weather loader.js:237 File already loaded: moment.js loader.js:165 Load script: modules/default/weather/weatherutils.js loader.js:165 Load script: modules/default/weather/weatherobject.js loader.js:165 Load script: modules/default/weather/providers/overrideWrapper.js loader.js:165 Load script: modules/default/weather/weatherprovider.js loader.js:237 File already loaded: suncalc.js loader.js:165 Load script: modules/default/weather/providers/openweathermap.js loader.js:142 Scripts loaded for: weather loader.js:180 Load stylesheet: vendor/css/font-awesome.css loader.js:180 Load stylesheet: vendor/node_modules/weathericons/css/weather-icons.css loader.js:180 Load stylesheet: modules/default/weather/weather.css loader.js:145 Styles loaded for: weather loader.js:148 Translations loaded for: weather loader.js:138 Bootstrapping module: weather loader.js:237 File already loaded: moment.js loader.js:237 File already loaded: weatherutils.js loader.js:237 File already loaded: weatherobject.js loader.js:237 File already loaded: modules/default/weather/providers/overrideWrapper.js loader.js:237 File already loaded: weatherprovider.js loader.js:237 File already loaded: suncalc.js loader.js:237 File already loaded: modules/default/weather/providers/openweathermap.js loader.js:142 Scripts loaded for: weather loader.js:237 File already loaded: font-awesome.css loader.js:237 File already loaded: weather-icons.css loader.js:237 File already loaded: weather.css loader.js:145 Styles loaded for: weather loader.js:148 Translations loaded for: weather loader.js:165 Load script: modules/MMM-DynamicWeather/MMM-DynamicWeather.js module.js:484 Module registered: MMM-DynamicWeather loader.js:138 Bootstrapping module: MMM-DynamicWeather loader.js:142 Scripts loaded for: MMM-DynamicWeather loader.js:180 Load stylesheet: modules/MMM-DynamicWeather/MMM-DynamicWeather.css loader.js:145 Styles loaded for: MMM-DynamicWeather loader.js:148 Translations loaded for: MMM-DynamicWeather loader.js:180 Load stylesheet: css/custom.css clock.js:49 Starting module: clock weatherprovider.js:35 Weather provider: OpenWeatherMap initialized. weatherprovider.js:46 Weather provider: OpenWeatherMap started. weatherprovider.js:35 Weather provider: OpenWeatherMap initialized. weatherprovider.js:46 Weather provider: OpenWeatherMap started. MMM-DynamicWeather.js:94 Starting MMM-DynamicWeather MMM-DynamicWeather.js:111 https://api.openweathermap.org/data/3.0/onecall?appid=51acaf6aca47c36542b28b6342d4714a&lat=41.75&lon=-88.16 MMM-DynamicWeather.js:227 Checked dates MMM-DynamicWeather.js:165 [MMM-DynamicWeather] Finished initialization main.js:608 All modules started! websocket.js:121 WebSocket connection to 'ws://localhost:8080/socket.io/?EIO=4&transport=websocket&sid=-Su8ujYWaq21RNXeAAAA' failed: WebSocket is closed before the connection is established. doClose @ websocket.js:121 weather.js:166 New weather information available. weather.js:166 New weather information available. clock.js:67 [Violation] 'setTimeout' handler took 147msFor the terminal, everything is good besides a warning regarding vkCreateInstance drivers. I didn’t think to mention these warnings as my default modules are still working perfectly fine and the ones with node_helper.js that aren’t working, are still displaying their DIV on the MagicMirror (“…loading”).
Terminal:
[09.02.2024 12:30.48.203] [LOG] Starting MagicMirror: v2.26.0 [09.02.2024 12:30.48.214] [LOG] Loading config ... [09.02.2024 12:30.48.220] [DEBUG] config template file not exists, no envsubst [09.02.2024 12:30.48.227] [LOG] Loading module helpers ... [09.02.2024 12:30.48.283] [LOG] Initializing new module helper ... [09.02.2024 12:30.48.285] [LOG] Module helper loaded: updatenotification [09.02.2024 12:30.48.287] [LOG] No helper found for module: helloworld. [09.02.2024 12:30.48.289] [LOG] All module helpers loaded. [09.02.2024 12:30.48.307] [LOG] Starting server on port 8080 ... [09.02.2024 12:30.48.778] [LOG] Server started ... [09.02.2024 12:30.48.781] [LOG] Connecting socket for: updatenotification [09.02.2024 12:30.48.783] [LOG] Starting module helper: updatenotification [09.02.2024 12:30.48.784] [LOG] Sockets connected & modules started ... [09.02.2024 12:30.48.808] [LOG] Launching application. Warning: vkCreateInstance: Found no drivers! Warning: vkCreateInstance failed with VK_ERROR_INCOMPATIBLE_DRIVER at CheckVkSuccessImpl (../../third_party/dawn/src/dawn/native/vulkan/VulkanError.cpp:88) at CreateVkInstance (../../third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:458) at Initialize (../../third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:344) at Create (../../third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:266) at operator() (../../third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:521)Again my knowledge of js and web applications is very limited so these warnings may have something to do with this node_helper issue that I’m unaware of. Please let me know if there is any other information that is useful.
Thanks!
-
@vandy2424 we need to see the matching config.js please.
this run says only hello world and updatenotification are enabled
-
@vandy2424
If websocket is closed, the path between module and node_helper might be broken. May that be the reason or clue. But very unusual thing. ATM I cannot guess what happened. -
@vandy2424 said in node_helper.js is not working?:
To simplify this output, I am just enabling the default clock and weather module and MMM-DynamicWeather for these outputs
nothing matches that. please show the config.js and the logs from both backend and front end
-
@sdetweil Hi Sam, I am not sure what you mean by showing the logs from the backend and front end. I thought that is what I just showed you. (Terminal & dev console). You can see in the dev console, it loading clock, weather and MMM-DynamicWeather modules.
Please let me know what I am not understanding here and I will get you those logs. Thanks!
Here is the config.js file:
let config = { address: "0.0.0.0", // default is "localhost", port: 8080, // default, ipWhitelist: [], // default -- need to add your IP here, modules: [ { module: "clock", position: "top_left", config: { timeFormat:12, timezone:"America/Chicago", displaySeconds:"true", showPeriod:"true", showDate:"true", displayType:"both", }, }, { module: "weather", position: "top_right", config: { type: "current", units: "imperial", tempUnits: "imperial", windUnits: "imperial", apiVersion: "3.0", weatherEndpoint: "/onecall", apiKey: "KEY", lat:"50.75", lon:"-88.16", showUVindex:"true", }, }, { module: "weather", position: "top_right", config: { type: "daily", units: "imperial", tempUnits: "imperial", windUnits: "imperial", apiVersion: "3.0", weatherEndpoint: "/onecall", apiKey: "KEY", lat:"50.75", lon:"-88.16", }, }, { module: 'MMM-DynamicWeather', position: 'fullscreen_above', config: { // See https://github.com/scottcl88/MMM-DynamicWeather for more information. api_key: "KEY", lat:"50", lon:"-88.16", }, }, ], };Again this is just with the DynamicWeather module. I can add others but this simplifies.
-
@vandy2424 backend , console output from npm start
front end, in the developers window
this config does not match the messages
-
@sdetweil Hi Sam,
I am unsure how else I am supposed to respond other than to say, this is the exact config that produced those backend/front end logs. If this is unusual, maybe something is broken here? I am not sure what “working” logs are supposed to look like, since it sounds like mine may be broken.
To show proof, here are screenshots as I am unsure how else to provide feedback here.
(I pulled up the dev window as far as I could while still exposing working default modules). This output is the same as listed above:

I also did a CTRL-ALT-DELETE to allow me to access my text editor and pull up the MagicMirror/config.js file live while the magic mirror is still running. This is the exact config I posted previously:

The front & backend logs remain completely the same as posted earlier. Hopefully I am not completely misunderstanding you here. Thanks for the help!
-
@vandy2424
I think websocket issue would be the reason. Can you confirm whether other node_helper dependent module(e.g. default calendar module) works other than MMM-DynamicWeather?Usually, websocket could be broken by firewall setting, port problem, network quality or by old library, oand many various reasons. Anyway when websocket is broken once, socketNotification will not work.
-
@vandy2424 can you please show the contents of the config folder
-
@MMRIZE Hey MMRize,
Yeah I went ahead and setup the calendar module. The first thing I tried was running this module with the default config:
module: "calendar", position: "top_left", // This can be any of the regions. Best results in left or right regions. config: { // The config property is optional. // If no config is set, an example calendar is shown. // See 'Configuration options' for more information. }, },This returned loading… on the magic mirror. (I assumed based on the documentation it would at least show an example calendar).

I then tried to add a very basic calendar in the config.js just to see if the result would change:module: "calendar", position: "top_left", // This can be any of the regions. Best results in left or right regions. config: { // The config property is optional. // If no config is set, an example calendar is shown. // See 'Configuration options' for more information. calendars: [ { symbol: "calendar-check", url: "https://www.calendarlabs.com/ical-calendar/ics/39/Canada_Holidays.ics" }, ], },And i still got the same result (Loading…).
-
when you start mm,do
npm start >somefile.txt 2>&1that will capture all the backend output
the front end said it started the modules listed in that config.js
-
@sdetweil yes here are the contents of the config folder:

-
@sdetweil I did this and exported a file out. I then went ahead and ran the MagicMirror for 2 minutes.
Here is the output (same as before):
[09.02.2024 17:44.28.817] [LOG] Starting MagicMirror: v2.26.0 [09.02.2024 17:44.28.835] [LOG] Loading config ... [09.02.2024 17:44.28.841] [DEBUG] config template file not exists, no envsubst [09.02.2024 17:44.28.848] [LOG] Loading module helpers ... [09.02.2024 17:44.28.905] [LOG] Initializing new module helper ... [09.02.2024 17:44.28.907] [LOG] Module helper loaded: updatenotification [09.02.2024 17:44.28.909] [LOG] No helper found for module: helloworld. [09.02.2024 17:44.28.910] [LOG] All module helpers loaded. [09.02.2024 17:44.28.928] [LOG] Starting server on port 8080 ... [09.02.2024 17:44.29.399] [LOG] Server started ... [09.02.2024 17:44.29.402] [LOG] Connecting socket for: updatenotification [09.02.2024 17:44.29.404] [LOG] Starting module helper: updatenotification [09.02.2024 17:44.29.405] [LOG] Sockets connected & modules started ... [09.02.2024 17:44.29.429] [LOG] Launching application. Warning: vkCreateInstance: Found no drivers! Warning: vkCreateInstance failed with VK_ERROR_INCOMPATIBLE_DRIVER at CheckVkSuccessImpl (../../third_party/dawn/src/dawn/native/vulkan/VulkanError.cpp:88) at CreateVkInstance (../../third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:458) at Initialize (../../third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:344) at Create (../../third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:266) at operator() (../../third_party/dawn/src/dawn/native/vulkan/BackendVk.cpp:521) [09.02.2024 17:46.45.217] [LOG] Shutting down server... [09.02.2024 17:46.45.219] [LOG] Stopping module helper: updatenotification [09.02.2024 17:46.45.221] [LOG] Node_helpers stopped ... -
@vandy2424 bizarre, ok try this
cd ~ find . -type f -name config.jsthere was a path resolve fix for config.js in this release
-
@sdetweil it returned the same location:
jackson@raspberrypi:~ $ find . -type f -name config.js ./Documents/MagicMirror/config/config.js -
@vandy2424 weird. the console output doesn’t match…
ok, another thing, MagicMirror not running
ps -ef | grep -i magic -
@vandy2424 according to the backend log, calendar was not a loaded module, so never get any data, loading… will be the only output
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