@sdetweil said in MMM-SystemMonitor:
Single or double quotes don’t matter as long as they are matched
JS lesson #1 :-)
@sdetweil said in MMM-SystemMonitor:
Single or double quotes don’t matter as long as they are matched
JS lesson #1 :-)
openweathermap.js is unchanged
WeatherProvider.register("openweathermap", {
providerName: "OpenWeatherMap",
// Set the default config properties that is specific to this provider
defaults: {
apiVersion: "3.0",
apiBase: "https://api.openweathermap.org/data/",
// weatherEndpoint is "/onecall" since API 3.0
// "/onecall", "/forecast" or "/weather" only for pro customers
weatherEndpoint: "/onecall",
locationID: false,
location: false,
// the /onecall endpoint needs lat / lon values, it doesn't support the locationId
lat: 0,
lon: 0,
apiKey: ""
},
config.js shows
{
module: 'weather',
header: 'Current zzzzzzzzzzzzzzzz weather: ',
position: 'top_right',
config: {
//weatherProvider: "openweathermap",
providerName: "OpenWeatherMap",
type: "current",
lat: nnnnnnnnnnn,
lon: -nnnnnnnnnnnnn,
apiKey: "aaaaaaaaaaaaaaaaaaaaaaaaaaa"
//type: 'current',
//location: 'xxxxxxxxxxxxxx',
//locationID: 'zzzzzzzz', //ID from https://www.openweathermap.org
//apiKey: 'aaaaaaaaaaaaaaaaaaaaaaaaaaa'
}
},
That’s fixed it.
Module in config.js
units: 'config.units'
config.js before modules
was
units: 'metric',
Changed it to
units: "metric",
Quite how Free Memory can be 128% I’ve no idea, that’s for another day.
For now, it’s working. Thank you!
Do the L:L and API key live in the openweathermap.js file, or the config.js file? Or both?
This gives the ‘undefined, invalid date’ error on the MM
{
module: 'weather',
header: 'Current xxxxxxxxxxxxxxx weather: ',
position: 'top_right',
config: {
weatherProvider: "openweathermap",
lat: 11111111,
lon: 2222222,
apiKey: "33333333333"
}
},
[2025-02-02 21:35:32.330] [INFO] Checking modules structure configuration ...
[2025-02-02 21:35:32.511] [ERROR] Cannot read properties of undefined (reading 'units')
Module says:
units: config.units,
And also tried with
units: metric,
Which failed with:
[ERROR] metric is not defined
config.js towards the beginning says:
units: 'metric',
@sdetweil said in MMM-SystemMonitor:
npm run config:check
pi@mmv2:~ $ npm run config:check
npm error code ENOENT
npm error syscall open
npm error path /home/pi/package.json
npm error errno -2
npm error enoent Could not read package.json: Error: ENOENT: no such file or directory, open '/home/pi/package.json'
npm error enoent This is related to npm not being able to find a file.
npm error enoent
npm error A complete log of this run can be found in: /home/pi/.npm/_logs/2025-02-02T19_09_35_627Z-debug-0.log
pi@mmv2:~ $
@sdetweil said in Version 2.30.0 weather module, stuck loading, worked fine before upgrade:
leave off those parms.
Which ones, sorry?
It’s the currently misbehaving weather forecast:
{
module: 'weather',
position: 'top_right',
header: 'Weather Forecast for: ',
config: {
type: 'forecast',
location: 'nnnnnnnnn',
locationID: '11111111', //ID from https://www.openweathermap.org
apiKey: 'aaaa444444444444444444'
}
},
//{
//module: 'MMM-SystemMonitor',
//position: 'bottom_right',
//config: {
//updateInterval: 60000,
Installed, added to config.js
{
module: 'MMM-SystemMonitor',
position: 'bottom_right',
config: {
updateInterval: 60000,
cpuThermalZone: 0,
units: config.units,
}
},
MM fails to load.
Comment those lines out, MM is OK. What have I missed?
@sdetweil said in Version 2.30.0 weather module, stuck loading, worked fine before upgrade:
ionToHeader: false
default config sample works, but that’s using openmeteo, not openweathermap, is that correct?
{
module: "weather",
position: "top_right",
config: {
weatherProvider: "openmeteo",
type: "current",
lat: 40.776676,
lon: -73.971321
}
},
{
module: "weather",
position: "top_right",
header: "Weather Forecast",
config: {
weatherProvider: "openmeteo",
type: "forecast",
lat: 40.776676,
lon: -73.971321
}
},
{
openweathermap.js I have as
apiVersion: "3.0",
apiBase: "https://api.openweathermap.org/data/",
// weatherEndpoint is "/onecall" since API 3.0
// "/onecall", "/forecast" or "/weather" only for pro customers
weatherEndpoint: "/onecall",
Ran the update, weather module failed , read this thread and can now have either weather or forecast. Can we no longer have both, like before?
Just changed OS to Bookworm and reinstalled MM, stuck with weather modules loading…
For me, @postb8822 's 29th April 2024 suggestion worked just fine, thank you :)
Just updated my MM, clock is showing 18:13 when it’s 11:54…
pi@magicmirror:~/MagicMirror $ node -v
v16.1.0
Just ran an update from the guide here, and now MM says unable to connect
pi@magicmirror:~/MagicMirror $ git pull && npm run install-mm
Already up to date.
> magicmirror@2.24.0 install-mm
> npm install --no-audit --no-fund --no-update-notifier --only=prod --omit=dev
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@jest/console@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@jest/core@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@jest/environment@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@jest/expect@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@jest/expect-utils@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@jest/fake-timers@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@jest/globals@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@jest/reporters@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@jest/schemas@29.4.3',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@jest/source-map@29.4.3',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@jest/test-result@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@jest/test-sequencer@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@jest/transform@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@jest/types@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'babel-jest@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'babel-plugin-jest-hoist@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'babel-preset-jest@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'diff-sequences@29.4.3',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'eslint-plugin-jest@27.2.2',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'expect@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-changed-files@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-circus@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-cli@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-config@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-diff@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-docblock@29.4.3',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-each@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-environment-node@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-get-type@29.4.3',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-haste-map@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-leak-detector@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-matcher-utils@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-message-util@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-mock@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-regex-util@29.4.3',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-resolve@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-resolve-dependencies@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-runner@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-runtime@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-snapshot@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-util@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-validate@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-watcher@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'jest-worker@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'pretty-format@29.5.0',
npm WARN EBADENGINE required: { node: '^14.15.0 || ^16.10.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'write-file-atomic@5.0.1',
npm WARN EBADENGINE required: { node: '^14.17.0 || ^16.13.0 || >=18.0.0' },
npm WARN EBADENGINE current: { node: 'v16.1.0', npm: '7.11.2' }
npm WARN EBADENGINE }
> magicmirror@2.24.0 postinstall
> npm run install-vendor && npm run install-fonts && echo "MagicMirror² installation finished successfully!
> "
> magicmirror@2.24.0 install-vendor
> echo "Installing vendor files ...
> " && cd vendor && npm install --loglevel=error --no-audit --no-fund --no-update-notifier
Installing vendor files ...
changed 3 packages in 17s
> magicmirror@2.24.0 install-fonts
> echo "Installing fonts ...
> " && cd fonts && npm install --loglevel=error --no-audit --no-fund --no-update-notifier
Installing fonts ...
up to date in 2s
MagicMirror² installation finished successfully!
> magicmirror@2.24.0 prepare
> [ -f node_modules/.bin/husky ] && husky install || echo no husky installed.
no husky installed.
up to date in 52s
pi@magicmirror:~/MagicMirror $ pm2 start all
[PM2] Applying action restartProcessId on app [all](ids: [ 0 ])
[PM2] [MagicMirror](0) â
[PM2] Process successfully started
ââââââ¬âââââââââââââââââââââ¬âââââââââââ¬âââââââ¬ââââââââââââ¬âââââââââââ¬âââââââââââ
â id â name â mode â ⺠â status â cpu â memory â
ââââââ¼âââââââââââââââââââââ¼âââââââââââ¼âââââââ¼ââââââââââââ¼âââââââââââ¼âââââââââââ¤
â 0 â MagicMirror â fork â 76 â online â 0% â 584.0kb â
ââââââ´âââââââââââââââââââââ´âââââââââââ´âââââââ´ââââââââââââ´âââââââââââ´âââââââââââ
pi@magicmirror:~/MagicMirror $
Now when I go to a browser on a local machine, I get
Unable to connect
Firefox can’t establish a connection to the server at 192.168.1.21:8080.
IP address is correct, “fixed” at router level for years.
Just a couple of probably very quick-n-simple queries regarding the default weather module
Firstly, current weather does not show location yet it’s all in the code
{
module: 'weather',
header: 'Current weather for: ',
position: 'top_right',
config: {
type: 'current',
location: 'My_Place',
locationID: '1234567', //ID from https://www.openweathermap.org
apiKey: '####################'
}
},
Next, forecast does show location, but how do I remove the “,GB” part of the location?
(And I’ll do the same for current weather too.)
{
module: 'weather',
position: 'top_right',
header: 'Weather Forecast for: ',
config: {
type: 'forecast',
location: 'My_Place',
locationID: '1234567', //ID from https://www.openweathermap.org
apiKey: '####################'
}
},
Thank you.