Read the statement by Michael Teeuw here.
Module not showing up
-
Hello. I am new to MagicMirror. I installed it on my Mac mini and I got the default calendar, weather, news, and compliment modules working.
I installed a different weather module (git cloned and npm installed). I added the new module to my config file. I ran the config check and no errors were found. However, when I ran Magic Mirror, I don’t see the new module.
Any suggestions?
Thank you.
-
@basho429 can u show the part of config.js for that module. xxx out any API key
what module is it?
-
It is the MMM-OpenWeatherMapForecast module.
I copied the sample configuration from the github page (providing my own apikey, changing the header, latitude, and longitude). However, all I see is the header and “Loading…”
All the other modules are running (default weather, compliment, news, clock, and calendar).
On Terminal, I see two lines that pertains to MMM-OpenWeatherMapForecast.
- Checking git for module: MMM-OpenWeatherMapForecast
- [MMM-OpenWeatherMapForecast] 15-Dec-22 10:23 ** ERROR ** null
Any idea what these means? Any suggestions on how to fix it?
Thank you.
-
Here is my module config:
{ module: "MMM-OpenWeatherMapForecast", header: "MY CITY", position: "top_right", classes: "default everyone", disabled: false, config: { apikey: "MY OWN APIKEY", latitude: "MY LATITUDE", longitude: "MY LONGITUDE", iconset: "4c", concise: false, forecastLayout: "table" } },
-
@basho429 edit the module node_helper.js and change this
if (!error && response.statusCode == 200) { //Good response var resp = body; //needle automagically parses the response as JSON resp.instanceId = payload.instanceId; self.sendSocketNotification("OPENWEATHER_ONE_CALL_FORECAST_DATA", resp); } else { console.log("[MMM-OpenWeatherMapForecast] " + moment().format("D-MMM-YY HH:mm") + " ** ERROR ** " + error); }
to this
if (!error){ // Good response if(response.statusCode == 200) { var resp = body; //needle automagically parses the response as JSON resp.instanceId = payload.instanceId; console.log(" needle responding="+JSON.stringify(resp)) self.sendSocketNotification("OPENWEATHER_ONE_CALL_FORECAST_DATA", resp); } else { console.log("[MMM-OpenWeatherMapForecast] " + moment().format("D-MMM-YY HH:mm") + " ** bad status ** " + response.statusCode); } } else { console.log("[MMM-OpenWeatherMapForecast] " + moment().format("D-MMM-YY HH:mm") + " ** ERROR ** " + error); }
then restart MagicMirror, and look at the messages again
at least u will get a good error report
-
@basho429 on your config…
please always use the code block marker for config info.
paste your text
select it all
hit the button above the editor that looks like </>u can edit the existing post and change it
-
I changed the module node_helper.js and restarted MagicMirror. However, I am still not getting any new error message. It’s still the same NULL error. Can you please check below and see if I changed it properly? Thank you.
/* Magic Mirror * Module: MMM-BMW-OW * * By Mykle1 * * MIT Licensed */ const NodeHelper = require('node_helper'); const request = require('request'); module.exports = NodeHelper.create({ start: function() { console.log("Starting node_helper for: " + this.name); }, getWeather: function(url) { request({ url: 'https://api.openweathermap.org/data/2.5/onecall?lat=' + this.config.lat + '&lon=' + this.config.lon + '&units=' + this.config.units + '&lang=' + this.config.language + '&appid=' + this.config.api, method: 'GET' }, (error, response, body) => { if (!error){ // Good response if(response.statusCode == 200) { var resp = body; //needle automagically parses the response as JSON resp.instanceId = payload.instanceId; console.log(" needle responding="+JSON.stringify(resp)) self.sendSocketNotification("OPENWEATHER_ONE_CALL_FORECAST_DATA", resp); } else { console.log("[MMM-OpenWeatherMapForecast] " + moment().format("D-MMM-YY HH:mm") + " ** bad status ** " + response.statusCode); } } } }); }, socketNotificationReceived: function(notification, payload) { if (notification === 'GET_WEATHER') { this.getWeather(payload); } if (notification === 'CONFIG') { this.config = payload; } } });
-
@basho429 that is not the changed new code… that is the old code
-
Below is the complete module node_helper,js that came with the module. Can you please send me back what it should contain to get more info about the error? Thank you.
/* Magic Mirror * Module: MMM-BMW-OW * * By Mykle1 * * MIT Licensed */ const NodeHelper = require('node_helper'); const request = require('request'); module.exports = NodeHelper.create({ start: function() { console.log("Starting node_helper for: " + this.name); }, getWeather: function(url) { request({ url: 'https://api.openweathermap.org/data/2.5/onecall?lat=' + this.config.lat + '&lon=' + this.config.lon + '&units=' + this.config.units + '&lang=' + this.config.language + '&appid=' + this.config.api, method: 'GET' }, (error, response, body) => { if (!error && response.statusCode == 200) { var result = JSON.parse(body); // console.log(body); // for checking this.sendSocketNotification('WEATHER_RESULT', result); } }); }, socketNotificationReceived: function(notification, payload) { if (notification === 'GET_WEATHER') { this.getWeather(payload); } if (notification === 'CONFIG') { this.config = payload; } } });
-
@basho429 ok, we are talking different modules now
that is the MMM-BMW-OW module
to get its helper back, in that module folder do
git checkout node_helper.js
my code goes in the node_helper.js for MMM-OpenWeatherMapForecast module only