Read the statement by Michael Teeuw here.
MMM-NOAA V2 doesn't start (Unexpected token < in JSON at position 0)
-
Hey guys,
last time I did not let myself be seen often ^^
But i never left u at all ;)Now i have a Problem and need your help guys :(
I installed a little linux server a few months ago for managing several things. And now its time to install MM in server mode i thought.
Lubuntu (Ubuntu 18.04.1 LTS) on x86 Hardware
node v8.10.0
npm v6.3.0
MM v2.4.1What i did:
- I downloaded all modules i used on my raspberry and installed them like the readme says
- I copied my RPi config.js and used it on the linux server
Most modules are working, but:
MMM-NOAA and MMM-RemoteControl are giving errors -.-
So I have several issues but lets start with NOAA ^^
While doing npm install in the NOAA folder i get this error:
chris@ioBroker:~/MagicMirror/modules/MMM-NOAA$ npm install npm WARN grunt-stylelint@0.10.0 requires a peer of stylelint@^9.0.0 but none is installed. You must install peer dependencies yourself. npm WARN stylelint-config-recommended@2.1.0 requires a peer of stylelint@^8.3.0 || ^9.0.0 but none is installed. You must install peer dependencies yourself. npm WARN stylelint-config-standard@18.2.0 requires a peer of stylelint@^8.3.0 || ^9.0.0 but none is installed. You must install peer dependencies yourself. audited 1218 packages in 12.16s found 1 critical severity vulnerability run `npm audit fix` to fix them, or `npm audit` for details
chris@ioBroker:~/MagicMirror/modules/MMM-NOAA$ npm audit === npm audit security report === # Run npm update fill-range --depth 5 to resolve 1 vulnerability ┌───────────────┬──────────────────────────────────────────────────────────────┐ │ Low │ Cryptographically Weak PRNG │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Package │ randomatic │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Dependency of │ stylelint [dev] │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Path │ stylelint > micromatch > braces > expand-range > fill-range │ │ │ > randomatic │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ More info │ https://nodesecurity.io/advisories/157 │ └───────────────┴──────────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────────────────────────┐ │ Manual Review │ │ Some vulnerabilities require your attention to resolve │ │ │ │ Visit https://go.npm.me/audit-guide for additional guidance │ └──────────────────────────────────────────────────────────────────────────────┘ ┌───────────────┬──────────────────────────────────────────────────────────────┐ │ Critical │ Sandbox Breakout │ ├───────────────┼───���──────────────────────────────────────────────────────────┤ │ Package │ safe-eval │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Patched in │ No patch available │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Dependency of │ google-translate-api │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Path │ google-translate-api > safe-eval │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ More info │ https://nodesecurity.io/advisories/337 │ └───────────────┴──────────────────────────────────────────────────────────────┘ found 2 vulnerabilities (1 low, 1 critical) in 1220 scanned packages run `npm audit fix` to fix 1 of them. 1 vulnerability requires manual review. See the full report for details.
chris@ioBroker:~/MagicMirror/modules/MMM-NOAA$ npm audit fix npm WARN grunt-stylelint@0.10.0 requires a peer of stylelint@^9.0.0 but none is installed. You must install peer dependencies yourself. npm WARN stylelint-config-recommended@2.1.0 requires a peer of stylelint@^8.3.0 || ^9.0.0 but none is installed. You must install peer dependencies yourself. npm WARN stylelint-config-standard@18.2.0 requires a peer of stylelint@^8.3.0 || ^9.0.0 but none is installed. You must install peer dependencies yourself. up to date in 5.181s fixed 0 of 1 vulnerability in 1218 scanned packages 1 vulnerability required manual review and could not be updated
Anyhow…
When i start MM with “node server only dev” i get this:chris@ioBroker:~/MagicMirror$ node serveronly dev Starting MagicMirror: v2.4.1 Loading config ... Loading module helpers ... No helper found for module: alert. Initializing new module helper ... Module helper loaded: MMM-TelegramBot Initializing new module helper ... Module helper loaded: MMM-WatchDog Initializing new module helper ... Module helper loaded: MMM-Remote-Control-Repository Initializing new module helper ... Module helper loaded: updatenotification No helper found for module: clock. Initializing new module helper ... Module helper loaded: MMM-Oiltank No helper found for module: MMM-EasyPix. Initializing new module helper ... Module helper loaded: MMM-NOAA Initializing new module helper ... Module helper loaded: MMM-MovieListings Initializing new module helper ... Module helper loaded: MMM-Tools No helper found for module: MMM-NowPlayingOnSpotify. Initializing new module helper ... Module helper loaded: MMM-CalendarExt Initializing new module helper ... Module helper loaded: MMM-MyCommute All module helpers loaded. Starting server on port 8080 ... You're using a full whitelist configuration to allow for all IPs Server started ... Connecting socket for: MMM-TelegramBot Connecting socket for: MMM-WatchDog Starting module helper: MMM-WatchDog Connecting socket for: MMM-Remote-Control-Repository Connecting socket for: updatenotification Connecting socket for: MMM-Oiltank Connecting socket for: MMM-NOAA Starting module: MMM-NOAA Connecting socket for: MMM-MovieListings MMM-MovieListing helper started... Connecting socket for: MMM-Tools Connecting socket for: MMM-CalendarExt Connecting socket for: MMM-MyCommute ====================== Starting node_helper for module [MMM-MyCommute] Sockets connected & modules started ... Ready to go! Please point your browser to: http://0.0.0.0:8080 Whoops! There was an uncaught exception... SyntaxError: Unexpected token < in JSON at position 0 at JSON.parse (<anonymous>) at Request.request [as _callback] (/home/chris/MagicMirror/modules/MMM-NOAA/node_helper.js:77:30) at Request.self.callback (/home/chris/MagicMirror/node_modules/request/request.js:185:22) at emitTwo (events.js:126:13) at Request.emit (events.js:214:7) at Request.<anonymous> (/home/chris/MagicMirror/node_modules/request/request.js:1157:10) at emitOne (events.js:116:13) at Request.emit (events.js:211:7) at IncomingMessage.<anonymous> (/home/chris/MagicMirror/node_modules/request/request.js:1079:12) at Object.onceWrapper (events.js:313:30) at emitNone (events.js:111:20) at IncomingMessage.emit (events.js:208:7) at endReadableNT (_stream_readable.js:1064:12) at _combinedTickCallback (internal/process/next_tick.js:138:11) at process._tickCallback (internal/process/next_tick.js:180:9) MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection? If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues
From now on i can’t figure out whats the problem…
Line 77 in the NOAA node_helper checks the current position and when i type “http://www.ip-api.com/json” in my browser i get a result beginning with:{"as":"AS3320 Deutsche Telekom AG", etc.....
So why is he saying Position 0 in JSON is a SyntaxError
Anyone have an idea?
Thank u guys
Edit:
Oh ehm… here the config snippet:
{ disabled: false, module: 'MMM-NOAA', position: 'top_left', config: { apiKey: "XXX", airKey: "XXX", // IF you want Air Quality Index pws: "XXX" } },
And yes, i used the new API from weatherbit
-
@cruunnerr
I’m not the creator but hope this being a help.request({ url: "http://ip-api.com/json", method: 'GET' }, (error, response, body) => { console.log(body) // Try logging suspicious point. info = JSON.parse(body); lat = info.lat; lon = info.lon; });
You can get what’s wrong with this log.
Anyway, the codes look to try to get Latitude and Longitude,
You can set it manually like this;/* request({ url: "http://ip-api.com/json", method: 'GET' }, (error, response, body) => { info = JSON.parse(body); lat = info.lat; lon = info.lon; }); */ lat = "50.233"; // You can get your lat & lon from https://www.latlong.net/ lon = "8.266",
And you can define this value in config and modify script with
this.config.js
-
If you used the new api from weatherbit then you know you don’t need the pws in the config any longer… ;)
-
@sean said in MMM-NOAA V2 doesn't start (Unexpected token < in JSON at position 0):
request({
url: “http://ip-api.com/json”,
method: ‘GET’
}, (error, response, body) => {
console.log(body) // Try logging suspicious point.
info = JSON.parse(body);
lat = info.lat;
lon = info.lon;
});OMG thank you so much…
I am a dumbass XD
My PiHole blocked the ip-api.com domain, so i put this to the whitelist and its running.Sorry guys