Read the statement by Michael Teeuw here.
node_helper.js is not working?
-
@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 147ms
For 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…).