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.jsmy code goes in the node_helper.js for MMM-OpenWeatherMapForecast module only
-
Apologies for the mix-up. Noob mistake. I was looking at the wrong node_helper.js. I changed the correct node_helper.js and got an error message that says ** bad status ** 401. What does that mean? Thank you.
-
@basho429 401 is authorization error… so your api_key is not good…
we had to make a change in the default module that uses openweathermap
try changing this"https://api.openweathermap.org/data/2.5/onecall"to this
"https://api.openweathermap.org/data/3.0/onecall" -
I am using the same api key for the default weather module that came with MagicMirror (and it works fine). Does that mean I need separate api keys for separate modules? Or I can only use one weather module at a time?
I made the change from 2.5 to 3.0 on the node_helper.js.
Thank you.
-
@basho429 did the change make a difference?
I do not know otherwise
-
I created a new api key but I am still getting a 401 error.
I will remove the module and re-install. Maybe that will work.
Any suggestions?
Thank you.
-
@basho429 reinstalling the module won’t help
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