MagicMirrorΒ² v2.5.0 is available! For more information about this release, check out this topic.

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.1

    What 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 ()
        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. (/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. (/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


  • Module Developer

    @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