Read the statement by Michael Teeuw here.
MMM-DynamicWeather Failed getting api: 401
-
@JohnGalt have you resolved this?
-
@sdetweil – No, it’s still erroring but oddly, possibly not on every API call.
I just now fired up a terminal session and ran pm2 logs. The output appears to show this module getting weather API data without error, then the last log lines show errors.
The really strange part is there appear to be timestamps for sucessful and error API calls right around the same time [but not contiguous in the log display]. pm2 logs output follows:
0|MagicMir | [2024-11-08 08:33:43.472] [INFO] [MMM-DynamicWeather] Getting Weather API data 0|MagicMir | [2024-11-08 08:36:28.802] [INFO] Newsfeed-Fetcher: Broadcasting 30 items. 0|MagicMir | [2024-11-08 08:36:34.550] [INFO] Newsfeed-Fetcher: Broadcasting 31 items. 0|MagicMir | [2024-11-08 08:37:18.166] [INFO] Newsfeed-Fetcher: Broadcasting 25 items. 0|MagicMir | [2024-11-08 08:41:10.851] [INFO] Newsfeed-Fetcher: Broadcasting 35 items. 0|MagicMir | [2024-11-08 08:43:43.885] [INFO] [MMM-DynamicWeather] Getting Weather API data 0|MagicMir | [2024-11-08 08:46:29.642] [INFO] Newsfeed-Fetcher: Broadcasting 30 items. 0|MagicMir | [2024-11-08 08:46:34.913] [INFO] Newsfeed-Fetcher: Broadcasting 32 items. 0|MagicMir | [2024-11-08 08:47:18.479] [INFO] Newsfeed-Fetcher: Broadcasting 25 items. 0|MagicMir | [2024-11-08 08:53:43.477] [INFO] [MMM-DynamicWeather] Getting Weather API data 0|MagicMir | [2024-11-08 08:56:11.172] [INFO] Newsfeed-Fetcher: Broadcasting 35 items. 0|MagicMir | [2024-11-08 08:56:30.089] [INFO] Newsfeed-Fetcher: Broadcasting 30 items. 0|MagicMir | [2024-11-08 08:56:35.273] [INFO] Newsfeed-Fetcher: Broadcasting 32 items. 0|MagicMir | [2024-11-08 08:57:18.818] [INFO] Newsfeed-Fetcher: Broadcasting 25 items. 0|MagicMir | [2024-11-08 09:03:43.477] [INFO] [MMM-DynamicWeather] Getting Weather API data 0|MagicMir | [2024-11-08 09:06:30.344] [INFO] Newsfeed-Fetcher: Broadcasting 30 items. 0|MagicMir | [2024-11-08 09:06:35.673] [INFO] Newsfeed-Fetcher: Broadcasting 32 items. 0|MagicMir | [2024-11-08 09:07:19.177] [INFO] Newsfeed-Fetcher: Broadcasting 25 items. 0|MagicMir | [2024-11-08 09:11:11.483] [INFO] Newsfeed-Fetcher: Broadcasting 35 items. 0|MagicMir | [2024-11-08 09:13:43.480] [INFO] [MMM-DynamicWeather] Getting Weather API data /home/pi/.pm2/logs/MagicMirror-error.log last 50 lines: 0|MagicMir | [2024-11-08 01:03:43.562] [ERROR] [MMM-DynamicWeather] Failed getting api: 401 0|MagicMir | [2024-11-08 01:13:43.563] [ERROR] [MMM-DynamicWeather] Failed getting api: 401 0|MagicMir | [2024-11-08 01:23:43.532] [ERROR] [MMM-DynamicWeather] Failed getting api: 401 0|MagicMir | [2024-11-08 01:33:43.574] [ERROR] [MMM-DynamicWeather] Failed getting api: 401 0|MagicMir | [2024-11-08 01:43:43.559] [ERROR] [MMM-DynamicWeather] Failed getting api: 401 0|MagicMir | [2024-11-08 01:53:43.559] [ERROR] [MMM-DynamicWeather] Failed getting api: 401 <snip> 0|MagicMir | [2024-11-08 08:53:43.658] [ERROR] [MMM-DynamicWeather] Failed getting api: 401 0|MagicMir | [2024-11-08 09:03:43.690] [ERROR] [MMM-DynamicWeather] Failed getting api: 401 0|MagicMir | [2024-11-08 09:13:43.694] [ERROR] [MMM-DynamicWeather] Failed getting api: 401
-
@JohnGalt the 2 logs are stdout and stderr. pm2 shows them separately not merged like at console
401 means your apikey is bad.
did you install the pull request
https://forum.magicmirror.builders/post/120866 -
@sdetweil – Thanks Sam. I’m certain the API key is good, as I can format queries as web addresses and paste them into the browser and get openweathermap to return the data.
I didn’t install the pull request.
-
@JohnGalt you NEED to install the pull request to get the updated module code using the 3.0 api…
-
@sdetweil Yes, I realize that… I guess I skipped some thoughts that were rolling around in my head but never made it to the keyboard: I had disabled the module, figuring I would just wait for it to be updated.
I should have some time this evening to go in and install the pull request - I will let you know what happens.
-
@JohnGalt yes, but its unlikely to be updated by the author, but you have the pull request as a substitute/the update
-
@sdetweil – OK, so I did install the pull request, and it’s not working. After following the steps above, I still get errors:
Actions taken: - git fetch origin pull/52/head:with_30_apikey - realized I misread the instructions, so went back, and did the reset... - git reset --hard HEAD - git fetch origin pull/52/head:with_30_apikey - enable module in config.js - pm2 restart MM ] Results as shown in pm2 logs, which was running at the time: Immediate Results: 0|MagicMirror | [2024-11-11 17:02:25.687] [ERROR] [MMM-DynamicWeather] Failed getting api: AggregateError [ETIMEDOUT]: 0|MagicMirror | at internalConnectMultiple (node:net:1117:18) 0|MagicMirror | at internalConnectMultiple (node:net:1185:5) 0|MagicMirror | at Timeout.internalConnectMultipleTimeout (node:net:1711:5) 0|MagicMirror | at listOnTimeout (node:internal/timers:575:11) 0|MagicMirror | at process.processTimers (node:internal/timers:514:7) { 0|MagicMirror | code: 'ETIMEDOUT', 0|MagicMirror | [errors]: [ 0|MagicMirror | Error: connect ETIMEDOUT 38.89.70.82:443 0|MagicMirror | at createConnectionError (node:net:1647:14) 0|MagicMirror | at Timeout.internalConnectMultipleTimeout (node:net:1706:38) 0|MagicMirror | at listOnTimeout (node:internal/timers:575:11) 0|MagicMirror | at process.processTimers (node:internal/timers:514:7) { 0|MagicMirror | errno: -110, 0|MagicMirror | code: 'ETIMEDOUT', 0|MagicMirror | syscall: 'connect', 0|MagicMirror | address: '38.89.70.82', 0|MagicMirror | port: 443 0|MagicMirror | }, 0|MagicMirror | Error: connect ENETUNREACH 2604:86c0:5001:b::2:443 - Local (:::0) 0|MagicMirror | at internalConnectMultiple (node:net:1181:16) 0|MagicMirror | at Timeout.internalConnectMultipleTimeout (node:net:1711:5) 0|MagicMirror | at listOnTimeout (node:internal/timers:575:11) 0|MagicMirror | at process.processTimers (node:internal/timers:514:7) { 0|MagicMirror | errno: -101, 0|MagicMirror | code: 'ENETUNREACH', 0|MagicMirror | syscall: 'connect', 0|MagicMirror | address: '2604:86c0:5001:b::2', 0|MagicMirror | port: 443 0|MagicMirror | } 0|MagicMirror | ] 0|MagicMirror | } 0|MagicMirror | [2024-11-11 17:02:25.701] [LOG] [MMM-OpenWeatherMapForecast] 11-Nov-24 17:02 ** ERROR ** fetch failed Periodic Fetch results: 0|MagicMirror | [2024-11-11 17:12:23.363] [ERROR] [MMM-DynamicWeather] Failed getting api: 401 0|MagicMirror | [2024-11-11 17:12:29.902] [INFO] Newsfeed-Fetcher: Broadcasting 30 items. 0|MagicMirror | [2024-11-11 17:12:30.278] [INFO] Newsfeed-Fetcher: Broadcasting 24 items. 0|MagicMirror | [2024-11-11 17:12:30.611] [INFO] Newsfeed-Fetcher: Broadcasting 25 items. 0|MagicMirror | [2024-11-11 17:17:29.108] [INFO] Newsfeed-Fetcher: Broadcasting 40 items. 0|MagicMirror | [2024-11-11 17:22:23.126] [INFO] [MMM-DynamicWeather] Getting Weather API data 0|MagicMirror | [2024-11-11 17:22:23.324] [ERROR] [MMM-DynamicWeather] Failed getting api: 401
-
@JohnGalt said in MMM-DynamicWeather Failed getting api: 401:
- git fetch origin pull/52/head:with_30_apikey - enable module in config.js
oops… I forgot a step
- git fetch origin pull/52/head:with_30_apikey - get checkout with_30_apikey <==== THIS STEP - enable module in config.js
I just tested on my system and it worked ok
I REALLY dont’t like the module shipping node_modules folder, cause if this is one a different platform it will cause trouble
so I would do (and did event tho it worked)cd ~/MagicMirror sudo rm -rf node_modules npm install
my test config
{ module: "MMM-DynamicWeather", position: "fullscreen_above", config: { // See https://github.com/scottcl88/MMM-DynamicWeather for more information. api_key: "my 3.0 apikey", lat: "38.89511000", // random lon: "-77.03637000" // random } },
-
@sdetweil --Sam, thanks!! for your patience. I do have this resolved, at least in one MM instance.
I did go back and commit the one command I missed as advised above, but still no joy. But then, …
Strangely enough while I WAS using a valid ver 3 API key, you were right in saying my issue was an invalid API key in the call… After doing the above I was still getting a 401 error, so I accepted that the computers were doing exactly what I was telling them to do [as opposed to what I WANTED them to do]. I discovered the root cause after copying in the API key again and comparing. What I found was this:
apiKey: "123456789"
When it should have been this:
api_key: "123456789"
I’m not sure why I started using “apiKey” instead of “api_key”, but putting it the way the module wants it fixed my issue. Thanks again!