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-OpenWeatherMapForecast loading issue?

    Scheduled Pinned Locked Moved Unsolved Troubleshooting
    19 Posts 3 Posters 3.7k Views 3 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
      croc_dad72 @sdetweil
      last edited by

      @sdetweil said in MMM-OpenWeatherMapForecast loading issue?:

      mv --help

      Thank you for the help, I installed your fork, and this is all I get at start up:

      “[15.04.2023 09:04.11.750] [LOG] [MMM-OpenWeatherMapForecast] 15-Apr-23 09:04 ** ERROR ** null”?

      Im not sure where/when to run the command “mv --help”. Sorry im more of noob yet, but learning!

      S 1 Reply Last reply Reply Quote 0
      • S Offline
        sdetweil @croc_dad72
        last edited by

        @croc_dad72 mv in the modules folder

        that message is from the old module

        Sam

        How to add modules

        learning how to use browser developers window for css changes

        C 1 Reply Last reply Reply Quote 0
        • C Offline
          croc_dad72 @sdetweil
          last edited by

          @sdetweil more of noob than I want to admit, I guess I don’t really know what all that means really! I guess id need more direction!

          S 1 Reply Last reply Reply Quote 0
          • S Offline
            sdetweil @croc_dad72
            last edited by

            @croc_dad72 ok, do this

            ctrl-m to minimize MM if running
            open a terminal window on you MM system 
            ctrl-alt-t
            cd ~/Magicmirror/modules
            mv MMM-OpenWeatherMapForecast  old OPWFC
            git clone https://github.com/sdetweil/MMM-OpenWeatherMapForecast
            cd MMM-OpenWeatheMapForecast
            npm install 
            cd ../..
            

            if mm is running recycle it now
            if MM is NOT running do

            npm start 
            

            after it comes up, ctrl-m to minimize and look at the messages output

            Sam

            How to add modules

            learning how to use browser developers window for css changes

            C 1 Reply Last reply Reply Quote 0
            • C Offline
              croc_dad72 @sdetweil
              last edited by

              @sdetweil said in MMM-OpenWeatherMapForecast loading issue?:

              cd MMM-OpenWeatheMapForecast

              This is what I got after installing with the directions above.

              macserver@EDITHs-MacBook-Pro magicmirror % npm run server
              
              > magicmirror@2.23.0 server
              > node ./serveronly
              
              [16.04.2023 08:19.12.823] [LOG]   Starting MagicMirror: v2.23.0
              [16.04.2023 08:19.12.827] [LOG]   Loading config ...
              [16.04.2023 08:19.12.829] [DEBUG] config template file not exists, no envsubst
              [16.04.2023 08:19.12.832] [LOG]   Loading module helpers ...
              [16.04.2023 08:19.12.832] [LOG]   No helper found for module: alert.
              [16.04.2023 08:19.12.837] [LOG]   Initializing new module helper ...
              [16.04.2023 08:19.12.838] [LOG]   Module helper loaded: updatenotification
              [16.04.2023 08:19.12.838] [LOG]   No helper found for module: clock.
              [16.04.2023 08:19.13.037] [LOG]   Initializing new module helper ...
              [16.04.2023 08:19.13.038] [LOG]   Module helper loaded: MMM-quote-of-the-day
              [16.04.2023 08:19.13.140] [LOG]   Initializing new module helper ...
              [16.04.2023 08:19.13.140] [LOG]   Module helper loaded: MMM-MyCalendar
              [16.04.2023 08:19.13.254] [LOG]   Initializing new module helper ...
              [16.04.2023 08:19.13.254] [LOG]   Module helper loaded: MMM-GooglePhotos
              [16.04.2023 08:19.13.255] [WARN]  No /Users/macserver/MagicMirror/js/../modules//.js found for module: .
              [16.04.2023 08:19.13.255] [LOG]   No helper found for module: .
              [16.04.2023 08:19.13.257] [ERROR] Whoops! There was an uncaught exception...
              [16.04.2023 08:19.13.260] [ERROR] Error: Cannot find module 'needle'
              Require stack:
              - /Users/macserver/MagicMirror/modules/MMM-OpenWeatherMapForecast/node_helper.js
              - /Users/macserver/MagicMirror/js/app.js
              - /Users/macserver/MagicMirror/serveronly/index.js
                  at Module._resolveFilename (node:internal/modules/cjs/loader:1075:15)
                  at Module._resolveFilename (/Users/macserver/MagicMirror/node_modules/module-alias/index.js:49:29)
                  at Module._load (node:internal/modules/cjs/loader:920:27)
                  at Module.require (node:internal/modules/cjs/loader:1141:19)
                  at require (node:internal/modules/cjs/helpers:110:18)
                  at Object.<anonymous> (/Users/macserver/MagicMirror/modules/MMM-OpenWeatherMapForecast/node_helper.js:23:14)
                  at Module._compile (node:internal/modules/cjs/loader:1254:14)
                  at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)
                  at Module.load (node:internal/modules/cjs/loader:1117:32)
                  at Module._load (node:internal/modules/cjs/loader:958:12)
                  at Module.require (node:internal/modules/cjs/loader:1141:19)
                  at require (node:internal/modules/cjs/helpers:110:18)
                  at loadModule (/Users/macserver/MagicMirror/js/app.js:184:19)
                  at loadNextModule (/Users/macserver/MagicMirror/js/app.js:220:6)
                  at loadNextModule (/Users/macserver/MagicMirror/js/app.js:222:6)
                  at loadNextModule (/Users/macserver/MagicMirror/js/app.js:222:6) {
                code: 'MODULE_NOT_FOUND',
                requireStack: [
                  '/Users/macserver/MagicMirror/modules/MMM-OpenWeatherMapForecast/node_helper.js',
                  '/Users/macserver/MagicMirror/js/app.js',
                  '/Users/macserver/MagicMirror/serveronly/index.js'
                ]
              }
              [16.04.2023 08:19.13.261] [ERROR] MagicMirror² will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
              [16.04.2023 08:19.13.261] [ERROR] If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues
              macserver@EDITHs-MacBook-Pro magicmirror % 
              
              
              S 1 Reply Last reply Reply Quote 0
              • S Offline
                sdetweil @croc_dad72
                last edited by

                @croc_dad72 you did not
                npm install
                in the module folder

                Sam

                How to add modules

                learning how to use browser developers window for css changes

                C 1 Reply Last reply Reply Quote 0
                • C Offline
                  croc_dad72 @sdetweil
                  last edited by

                  @sdetweil Ok thanks, now that I installed it right, im still just getting the loading on the module? Here is the start up code:backhand_index_pointing_down_light_skin_tone:
                  Thanks for your help, time, and patients!

                  macserver@EDITHs-MacBook-Pro magicmirror % npm run server
                  
                  > magicmirror@2.23.0 server
                  > node ./serveronly
                  
                  [17.04.2023 09:18.24.710] [LOG]   Starting MagicMirror: v2.23.0
                  [17.04.2023 09:18.24.714] [LOG]   Loading config ...
                  [17.04.2023 09:18.24.716] [DEBUG] config template file not exists, no envsubst
                  [17.04.2023 09:18.24.718] [LOG]   Loading module helpers ...
                  [17.04.2023 09:18.24.719] [LOG]   No helper found for module: alert.
                  [17.04.2023 09:18.24.724] [LOG]   Initializing new module helper ...
                  [17.04.2023 09:18.24.725] [LOG]   Module helper loaded: updatenotification
                  [17.04.2023 09:18.24.725] [LOG]   No helper found for module: clock.
                  [17.04.2023 09:18.24.936] [LOG]   Initializing new module helper ...
                  [17.04.2023 09:18.24.937] [LOG]   Module helper loaded: MMM-quote-of-the-day
                  [17.04.2023 09:18.25.043] [LOG]   Initializing new module helper ...
                  [17.04.2023 09:18.25.044] [LOG]   Module helper loaded: MMM-MyCalendar
                  [17.04.2023 09:18.25.162] [LOG]   Initializing new module helper ...
                  [17.04.2023 09:18.25.162] [LOG]   Module helper loaded: MMM-GooglePhotos
                  [17.04.2023 09:18.25.163] [WARN]  No /Users/macserver/MagicMirror/js/../modules//.js found for module: .
                  [17.04.2023 09:18.25.163] [LOG]   No helper found for module: .
                  [17.04.2023 09:18.25.237] [LOG]   Initializing new module helper ...
                  [17.04.2023 09:18.25.238] [LOG]   Module helper loaded: MMM-OpenWeatherMapForecast
                  [17.04.2023 09:18.25.238] [LOG]   No helper found for module: MMM-WiFiPassword.
                  [17.04.2023 09:18.25.247] [LOG]   Initializing new module helper ...
                  [17.04.2023 09:18.25.248] [LOG]   Module helper loaded: MMM-Memo
                  [17.04.2023 09:18.25.257] [LOG]   Initializing new module helper ...
                  [17.04.2023 09:18.25.257] [LOG]   Module helper loaded: newsfeed
                  [17.04.2023 09:18.25.257] [LOG]   All module helpers loaded.
                  [17.04.2023 09:18.25.265] [LOG]   Starting server on port 8080 ... 
                  [17.04.2023 09:18.25.267] [WARN]  You're using a full whitelist configuration to allow for all IPs
                  [17.04.2023 09:18.25.272] [LOG]   Server started ...
                  [17.04.2023 09:18.25.273] [LOG]   Connecting socket for: updatenotification
                  [17.04.2023 09:18.25.273] [LOG]   Starting module helper: updatenotification
                  [17.04.2023 09:18.25.277] [LOG]   Connecting socket for: MMM-quote-of-the-day
                  [17.04.2023 09:18.25.277] [LOG]   MMM-quote-of-the-day helper started
                  [17.04.2023 09:18.25.279] [LOG]   Connecting socket for: MMM-MyCalendar
                  [17.04.2023 09:18.25.279] [LOG]   Starting node helper for: MMM-MyCalendar
                  [17.04.2023 09:18.25.279] [LOG]   Connecting socket for: MMM-GooglePhotos
                  [17.04.2023 09:18.25.279] [LOG]   Connecting socket for: MMM-OpenWeatherMapForecast
                  [17.04.2023 09:18.25.279] [LOG]   ====================== Starting node_helper for module [MMM-OpenWeatherMapForecast]
                  [17.04.2023 09:18.25.280] [LOG]   Connecting socket for: MMM-Memo
                  [17.04.2023 09:18.25.280] [LOG]   Connecting socket for: newsfeed
                  [17.04.2023 09:18.25.280] [LOG]   Starting node helper for: newsfeed
                  [17.04.2023 09:18.25.280] [LOG]   Sockets connected & modules started ...
                  [17.04.2023 09:18.25.281] [LOG]   
                  Ready to go! Please point your browser to: http://0.0.0.0:8080
                  [17.04.2023 09:18.46.468] [LOG]   MMM-quote-of-the-day received a socket notification: INIT_HELPER - Payload: [object Object]
                  [17.04.2023 09:18.46.469] [LOG]   MMM-quote-of-the-day received a socket notification: GET_QUOTE - Payload: [object Object]
                  [17.04.2023 09:18.46.486] [LOG]   Create new calendarfetcher for url: https://calendar.google.com/calendar/ical/1madff72%40gmail.com/private-43dd7100efe15087f221915e4f97e343/basic.ics - Interval: 300000
                  [17.04.2023 09:18.46.596] [LOG]   Create new calendarfetcher for url: https://calendar.google.com/calendar/ical/cn5vlg6g97kjq9ksrcjp8925mc%40group.calendar.google.com/private-778f10708543b8098fb7e8d1110b1a59/basic.ics - Interval: 300000
                  [17.04.2023 09:18.46.599] [LOG]   Create new calendarfetcher for url: https://calendar.google.com/calendar/ical/kelland07%40gmail.com/private-46e66ed170d59dba9545ad0b253efa4d/basic.ics - Interval: 300000
                  [17.04.2023 09:18.46.601] [LOG]   Create new calendarfetcher for url: https://calendar.google.com/calendar/ical/ffshnike%40gmail.com/private-ac06b64ac6c1f2d26b142f93eb60205b/basic.ics - Interval: 300000
                  [17.04.2023 09:18.46.603] [LOG]   Create new calendarfetcher for url: https://calendar.google.com/calendar/ical/rfci1sthlecnfqoj0ecfd69csg%40group.calendar.google.com/private-385b5ae26bc6e915d62515d10228616b/basic.ics - Interval: 300000
                  [17.04.2023 09:18.46.604] [LOG]   Create new calendarfetcher for url: http://www.calendarlabs.com/ical-calendar/ics/76/US_Holidays.ics - Interval: 300000
                  [17.04.2023 09:18.46.611] [LOG]   Create new newsfetcher for url: https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml - Interval: 300000
                  [17.04.2023 09:18.46.617] [INFO]  Checking git for module: MMM-quote-of-the-day
                  [17.04.2023 09:18.46.887] [LOG]   {
                    status: 200,
                    statusText: 'OK',
                    headers: {
                      date: 'Mon, 17 Apr 2023 14:18:46 GMT',
                      'content-type': 'application/json',
                      'transfer-encoding': 'chunked',
                      connection: 'close',
                      vary: 'Accept-Encoding',
                      'cf-cache-status': 'DYNAMIC',
                      'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=i0x2oG767LUHoIXj0%2FO1UAkLAmijYeRqAKnlW7sUCjzMQ7b0%2BbhVKNlj5hGJUu6yYUOclI28Mmr3DB1OpO0Ut2Ti91vOl0icEMQibHyfMmJyA6U%2FBquphR3igj8vsBTf04oGQ8k%3D"}],"group":"cf-nel","max_age":604800}',
                      nel: '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}',
                      'x-content-type-options': 'nosniff',
                      server: 'cloudflare',
                      'cf-ray': '7b954c9a197313ce-ORD',
                      'alt-svc': 'h3=":443"; ma=86400, h3-29=":443"; ma=86400'
                    },
                    config: {
                      transitional: {
                        silentJSONParsing: true,
                        forcedJSONParsing: true,
                        clarifyTimeoutError: false
                      },
                      adapter: [Function: httpAdapter],
                      transformRequest: [ [Function: transformRequest] ],
                      transformResponse: [ [Function: transformResponse] ],
                      timeout: 0,
                      xsrfCookieName: 'XSRF-TOKEN',
                      xsrfHeaderName: 'X-XSRF-TOKEN',
                      maxContentLength: -1,
                      maxBodyLength: -1,
                      env: { FormData: [Function] },
                      validateStatus: [Function: validateStatus],
                      headers: {
                        Accept: 'application/json, text/plain, */*',
                        'User-Agent': 'axios/0.27.2'
                      },
                      params: { lang: 'en' },
                      method: 'get',
                      url: 'http://api.forismatic.com/api/1.0/?method=getQuote&format=json',
                      data: undefined
                    },
                    request: <ref *1> ClientRequest {
                      _events: [Object: null prototype] {
                        abort: [Function (anonymous)],
                        aborted: [Function (anonymous)],
                        connect: [Function (anonymous)],
                        error: [Function (anonymous)],
                        socket: [Function (anonymous)],
                        timeout: [Function (anonymous)],
                        finish: [Function: requestOnFinish]
                      },
                      _eventsCount: 7,
                      _maxListeners: undefined,
                      outputData: [],
                      outputSize: 0,
                      writable: true,
                      destroyed: false,
                      _last: true,
                      chunkedEncoding: false,
                      shouldKeepAlive: false,
                      maxRequestsOnConnectionReached: false,
                      _defaultKeepAlive: true,
                      useChunkedEncodingByDefault: false,
                      sendDate: false,
                      _removedConnection: false,
                      _removedContLen: false,
                      _removedTE: false,
                      strictContentLength: false,
                      _contentLength: 0,
                      _hasBody: true,
                      _trailer: '',
                      finished: true,
                      _headerSent: true,
                      _closed: false,
                      socket: Socket {
                        connecting: false,
                        _hadError: false,
                        _parent: null,
                        _host: 'api.forismatic.com',
                        _closeAfterHandlingError: false,
                        _readableState: [ReadableState],
                        _events: [Object: null prototype],
                        _eventsCount: 7,
                        _maxListeners: undefined,
                        _writableState: [WritableState],
                        allowHalfOpen: false,
                        _sockname: null,
                        _pendingData: null,
                        _pendingEncoding: '',
                        server: null,
                        _server: null,
                        parser: null,
                        _httpMessage: [Circular *1],
                        [Symbol(async_id_symbol)]: 1279,
                        [Symbol(kHandle)]: [TCP],
                        [Symbol(lastWriteQueueSize)]: 0,
                        [Symbol(timeout)]: null,
                        [Symbol(kBuffer)]: null,
                        [Symbol(kBufferCb)]: null,
                        [Symbol(kBufferGen)]: null,
                        [Symbol(kCapture)]: false,
                        [Symbol(kSetNoDelay)]: true,
                        [Symbol(kSetKeepAlive)]: true,
                        [Symbol(kSetKeepAliveInitialDelay)]: 60,
                        [Symbol(kBytesRead)]: 0,
                        [Symbol(kBytesWritten)]: 0
                      },
                      _header: 'GET /api/1.0/?method=getQuote&format=json&lang=en HTTP/1.1\r\n' +
                        'Accept: application/json, text/plain, */*\r\n' +
                        'User-Agent: axios/0.27.2\r\n' +
                        'Host: api.forismatic.com\r\n' +
                        'Connection: close\r\n' +
                        '\r\n',
                      _keepAliveTimeout: 0,
                      _onPendingData: [Function: nop],
                      agent: Agent {
                        _events: [Object: null prototype],
                        _eventsCount: 2,
                        _maxListeners: undefined,
                        defaultPort: 80,
                        protocol: 'http:',
                        options: [Object: null prototype],
                        requests: [Object: null prototype] {},
                        sockets: [Object: null prototype],
                        freeSockets: [Object: null prototype] {},
                        keepAliveMsecs: 1000,
                        keepAlive: false,
                        maxSockets: Infinity,
                        maxFreeSockets: 256,
                        scheduling: 'lifo',
                        maxTotalSockets: Infinity,
                        totalSocketCount: 1,
                        [Symbol(kCapture)]: false
                      },
                      socketPath: undefined,
                      method: 'GET',
                      maxHeaderSize: undefined,
                      insecureHTTPParser: undefined,
                      joinDuplicateHeaders: undefined,
                      path: '/api/1.0/?method=getQuote&format=json&lang=en',
                      _ended: true,
                      res: IncomingMessage {
                        _readableState: [ReadableState],
                        _events: [Object: null prototype],
                        _eventsCount: 4,
                        _maxListeners: undefined,
                        socket: [Socket],
                        httpVersionMajor: 1,
                        httpVersionMinor: 1,
                        httpVersion: '1.1',
                        complete: true,
                        rawHeaders: [Array],
                        rawTrailers: [],
                        joinDuplicateHeaders: undefined,
                        aborted: false,
                        upgrade: false,
                        url: '',
                        method: null,
                        statusCode: 200,
                        statusMessage: 'OK',
                        client: [Socket],
                        _consuming: false,
                        _dumped: false,
                        req: [Circular *1],
                        responseUrl: 'http://api.forismatic.com/api/1.0/?method=getQuote&format=json&lang=en',
                        redirects: [],
                        [Symbol(kCapture)]: false,
                        [Symbol(kHeaders)]: [Object],
                        [Symbol(kHeadersCount)]: 24,
                        [Symbol(kTrailers)]: null,
                        [Symbol(kTrailersCount)]: 0
                      },
                      aborted: false,
                      timeoutCb: null,
                      upgradeOrConnect: false,
                      parser: null,
                      maxHeadersCount: null,
                      reusedSocket: false,
                      host: 'api.forismatic.com',
                      protocol: 'http:',
                      _redirectable: Writable {
                        _writableState: [WritableState],
                        _events: [Object: null prototype],
                        _eventsCount: 3,
                        _maxListeners: undefined,
                        _options: [Object],
                        _ended: true,
                        _ending: true,
                        _redirectCount: 0,
                        _redirects: [],
                        _requestBodyLength: 0,
                        _requestBodyBuffers: [],
                        _onNativeResponse: [Function (anonymous)],
                        _currentRequest: [Circular *1],
                        _currentUrl: 'http://api.forismatic.com/api/1.0/?method=getQuote&format=json&lang=en',
                        [Symbol(kCapture)]: false
                      },
                      [Symbol(kCapture)]: false,
                      [Symbol(kBytesWritten)]: 0,
                      [Symbol(kEndCalled)]: true,
                      [Symbol(kNeedDrain)]: false,
                      [Symbol(corked)]: 0,
                      [Symbol(kOutHeaders)]: [Object: null prototype] {
                        accept: [Array],
                        'user-agent': [Array],
                        host: [Array]
                      },
                      [Symbol(errored)]: null,
                      [Symbol(kUniqueHeaders)]: null
                    },
                    data: {
                      quoteText: 'We must learn our limits. We are all something, but none of us are everything. ',
                      quoteAuthor: 'Blaise Pascal',
                      senderName: '',
                      senderLink: '',
                      quoteLink: 'http://forismatic.com/en/22bd88b816/'
                    }
                  }
                  [17.04.2023 09:18.46.929] [INFO]  Checking git for module: MMM-MyCalendar
                  [17.04.2023 09:18.46.939] [INFO]  Newsfeed-Fetcher: Broadcasting 24 items.
                  [17.04.2023 09:18.46.999] [INFO]  Checking git for module: MMM-GooglePhotos
                  [17.04.2023 09:18.47.055] [ERROR] [MMM-OpenWeatherMapForecast] 17-Apr-23 09:18 ** unexpected response code ** 401
                  [17.04.2023 09:18.47.102] [INFO]  Calendar-Fetcher: Broadcasting 0 events.
                  [17.04.2023 09:18.47.110] [INFO]  Checking git for module: MMM-OpenWeatherMapForecast
                  [17.04.2023 09:18.47.179] [INFO]  Calendar-Fetcher: Broadcasting 4 events.
                  [17.04.2023 09:18.47.216] [INFO]  Checking git for module: MMM-WiFiPassword
                  [17.04.2023 09:18.47.543] [INFO]  Calendar-Fetcher: Broadcasting 3 events.
                  [17.04.2023 09:18.47.598] [INFO]  Checking git for module: MMM-Memo
                  [17.04.2023 09:18.47.831] [INFO]  Calendar-Fetcher: Broadcasting 1 events.
                  [17.04.2023 09:18.47.857] [INFO]  Checking git for module: MagicMirror
                  [17.04.2023 09:18.49.035] [INFO]  Calendar-Fetcher: Broadcasting 2 events.
                  [17.04.2023 09:18.50.022] [INFO]  Calendar-Fetcher: Broadcasting 4 events.
                  
                  
                  
                  S 1 Reply Last reply Reply Quote 0
                  • S Offline
                    sdetweil @croc_dad72
                    last edited by

                    @croc_dad72 said in MMM-OpenWeatherMapForecast loading issue?:

                    unexpected response code ** 401

                    401 is access denied…

                    so, wrong apikey for this

                    Sam

                    How to add modules

                    learning how to use browser developers window for css changes

                    C 2 Replies Last reply Reply Quote 0
                    • C Offline
                      croc_dad72 @sdetweil
                      last edited by croc_dad72

                      @sdetweil Well don’t I feel stupid, I had forgot I had two different api’s should have tried that first, thanks again for helping a noob!

                      1 Reply Last reply Reply Quote 1
                      • C Offline
                        croc_dad72 @sdetweil
                        last edited by

                        Hey @sdetweil can you help me with one last thing? I can’t seem to figure out where this code gets put into the .css for adjusting the width of the module? Any guidance would be much appreciated!

                        .MMM-OpenWeatherMapForecast .module-content {
                          width: 500px; /* adjust this to taste */
                        }
                        
                        S 1 Reply Last reply Reply Quote 0
                        • 1
                        • 2
                        • 1 / 2
                        • First post
                          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