• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
MagicMirror Forum
  • Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

MMM-NOAA V2 doesn't start (Unexpected token < in JSON at position 0)

Scheduled Pinned Locked Moved Unsolved Troubleshooting
4 Posts 3 Posters 1.6k Views 2 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    cruunnerr
    last edited by cruunnerr Aug 9, 2018, 4:18 PM Aug 9, 2018, 3:52 PM

    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 (<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

    ? 1 Reply Last reply Aug 9, 2018, 4:25 PM Reply Quote 0
    • ? Offline
      A Former User @cruunnerr
      last edited by A Former User Aug 9, 2018, 4:27 PM Aug 9, 2018, 4:25 PM

      @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

      1 Reply Last reply Reply Quote 1
      • cowboysdudeC Offline
        cowboysdude Module Developer
        last edited by Aug 10, 2018, 12:49 AM

        If you used the new api from weatherbit then you know you don’t need the pws in the config any longer… ;)

        1 Reply Last reply Reply Quote 0
        • C Offline
          cruunnerr
          last edited by Aug 10, 2018, 3:34 AM

          @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

          1 Reply Last reply Reply Quote 1
          • 1 / 1
          1 / 1
          • First post
            1/4
            Last post
          Enjoying MagicMirror? Please consider a donation!
          MagicMirror created by Michael Teeuw.
          Forum managed by Sam, technical setup by Karsten.
          This forum is using NodeBB as its core | Contributors
          Contact | Privacy Policy