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-OpenWeatherForecast - Replacement for MMM-DarkSkyForecast

    Scheduled Pinned Locked Moved Utilities
    256 Posts 55 Posters 633.3k Views 57 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.
    • S Do not disturb
      sdetweil @chris1971
      last edited by

      @chris1971 ok, so when u need to change something you do

      pm2 stop 0 (or pm2 stop MagicMirror), (or pm2 stop all)

      make your change and then

      pm2 start 0, or MagicMirror, or all

      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
        chris1971 @sdetweil
        last edited by chris1971

        @sdetweil said in MMM-OpenWeatherForecast - Replacement for MMM-DarkSkyForecast:

        pm2 stop all

        have stopped with pm2 stop all

        pi@raspberrypi:~/MagicMirror $ pm2 stop all
        [PM2] Applying action stopProcessId on app [all](ids: [ 0 ])
        [PM2] MagicMirror ✓
        ┌────┬────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
        │ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
        ├────┼────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
        │ 0 │ MagicMirror │ default │ 2.22.0 │ fork │ 0 │ 0 │ 0 │ stopped │ 0% │ 0b │ pi │ disabled │
        └────┴────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

        the started with pm2 start all

        pi@raspberrypi:~/MagicMirror $ pm2 start all
        [PM2] Applying action restartProcessId on app [all](ids: [ 0 ])
        [PM2] MagicMirror ✓
        [PM2] Process successfully started
        ┌────┬────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
        │ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
        ├────┼────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
        │ 0 │ MagicMirror │ default │ 2.22.0 │ fork │ 2414 │ 0s │ 0 │ online │ 0% │ 2.5mb │ pi │ disabled │
        └────┴────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

        But no changes…

        checked the status and see only on 8080

        pi@raspberrypi:~ $ sudo netstat -lnptu
        Active Internet connections (only servers)
        Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
        tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 565/sshd: /usr/sbin
        tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 519/cupsd
        tcp 0 0 0.0.0.0:8080 0.0.0.0: LISTEN 1206/electron.js*
        tcp6 0 0 ::1:3350 :::* LISTEN 539/xrdp-sesman
        tcp6 0 0 :::22 :::* LISTEN 565/sshd: /usr/sbin
        tcp6 0 0 ::1:631 :::* LISTEN 519/cupsd
        tcp6 0 0 :::3389 :::* LISTEN 585/xrdp
        udp 0 0 0.0.0.0:68 0.0.0.0:* 526/dhcpcd
        udp 0 0 0.0.0.0:631 0.0.0.0:* 612/cups-browsed
        udp 0 0 0.0.0.0:5353 0.0.0.0:* 376/avahi-daemon: r
        udp 0 0 0.0.0.0:58721 0.0.0.0:* 376/avahi-daemon: r
        udp6 0 0 :::546 :::* 526/dhcpcd
        udp6 0 0 :::41014 :::* 376/avahi-daemon: r
        udp6 0 0 :::5353 :::* 376/avahi-daemon: r

        S 1 Reply Last reply Reply Quote 0
        • S Do not disturb
          sdetweil @chris1971
          last edited by sdetweil

          @chris1971 correct, and it should be running correctly now

          i never use pm2 when I am changing config

          pm2 stop all
          
          cd ~/MagicMirror
          npm start 
          (ctrl-m if on same screen, to minimize) 
          look at messages 
          ctrl-c to stop
          
          make changes, rinse and repeat til happy
          
          then pm2 start all
          

          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
            chris1971 @sdetweil
            last edited by chris1971

            @sdetweil Does that mean I have to stopp pm before I make changes in the config?

            Module is still not loading…

            When I remove the script for google maps from the config.js the weather module is working. When I place the script in the config.js again, the weather module is not loading.

            S 1 Reply Last reply Reply Quote 0
            • S Do not disturb
              sdetweil @chris1971
              last edited by

              @chris1971 yes, when u make any change, you should stop MM and then then restart it…

              as I said before, some modules impact others…

              I fixed a similar problem in OpenWeatherMapForecast as the author was not updating it anymore

              this is my fork with the fix https://github.com/sdetweil/MMM-OpenWeatherMapForecast

              I would look at the messages

              pm2 stop all
              pm2 flush
              pm2 start all
              wait
              pm2 logs --lines=100

              or, not use pm2

              pm2 stop all
              cd ~/MagicMirror
              npm start >somefile.txt 2>&1

              wait
              ctrl-c to stop MM (in the window where you did npm start )
              then examine the contents of somefile.txt to see if there was any error that might causing the problem

              you can also look in the MagicMirror developers window to see if there is a problem there
              ctrl-shift-i on the running MM screen
              select the console tab
              and put weath in the filter field
              this will reduce the output to modules with weath in their name
              looking for any content in red

              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
                chris1971 @sdetweil
                last edited by chris1971

                @sdetweil lot of stuff…

                pi@raspberrypi:~ $ pm2 logs --lines=100
                [TAILING] Tailing last 100 lines for [all] processes (change the value with --lines option)
                /home/pi/.pm2/pm2.log last 100 lines:
                PM2 | 2023-03-31T16:08:12: PM2 log: App [MagicMirror:0] starting in -fork mode-
                PM2 | 2023-03-31T16:08:12: PM2 log: App [MagicMirror:0] online

                /home/pi/.pm2/logs/MagicMirror-error.log last 100 lines:
                0|MagicMir | [31.03.2023 16:08.20.333] [WARN] You’re using a full whitelist configuration to allow for all IPs
                0|MagicMir | MESA-LOADER: failed to retrieve device information
                0|MagicMir | MESA-LOADER: failed to retrieve device information
                0|MagicMir | MESA-LOADER: failed to retrieve device information
                0|MagicMir | …/…/buildtools/third_party/libc++/trunk/include/vector:1425: assertion __n < size() failed: vector[] index out of bounds[2472:0331/160823.980369:ERROR:gpu_process_host.cc(991)] GPU process exited unexpectedly: exit_code=134
                0|MagicMir | MESA-LOADER: failed to retrieve device information
                0|MagicMir | MESA-LOADER: failed to retrieve device information
                0|MagicMir | MESA-LOADER: failed to retrieve device information
                0|MagicMir | …/…/buildtools/third_party/libc++/trunk/include/vector:1425: assertion __n < size() failed: vector[] index out of bounds[2472:0331/160825.475337:ERROR:gpu_process_host.cc(991)] GPU process exited unexpectedly: exit_code=134
                0|MagicMir | MESA-LOADER: failed to retrieve device information
                0|MagicMir | MESA-LOADER: failed to retrieve device information
                0|MagicMir | MESA-LOADER: failed to retrieve device information
                0|MagicMir | …/…/buildtools/third_party/libc++/trunk/include/vector:1425: assertion __n < size() failed: vector[] index out of bounds[2472:0331/160827.345249:ERROR:gpu_process_host.cc(991)] GPU process exited unexpectedly: exit_code=134
                0|MagicMir | [2512:0331/160829.375127:ERROR:command_buffer_proxy_impl.cc(128)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.

                /home/pi/.pm2/logs/MagicMirror-out.log last 100 lines:
                0|MagicMir |
                0|MagicMir | > magicmirror@2.22.0 start
                0|MagicMir | > DISPLAY=“${DISPLAY:=:0}” ./node_modules/.bin/electron js/electron.js
                0|MagicMir |
                0|MagicMir | [31.03.2023 16:08.18.855] [LOG] Starting MagicMirror: v2.22.0
                0|MagicMir | [31.03.2023 16:08.18.868] [LOG] Loading config …
                …
                …
                …

                I read something about the GPU process in the forum - could this infuence the system?

                S 1 Reply Last reply Reply Quote 0
                • S Do not disturb
                  sdetweil @chris1971
                  last edited by

                  @chris1971 possibly

                  for pm2 add the

                  export ELECTRON_DISABLE_GPU=1
                  

                  to the ~/MagicMirror/installers/mm.sh

                  before the line

                  DISPLAY=:0 npm start
                  

                  for using npm start
                  just do it once in the terminal window

                  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
                    chris1971 @sdetweil
                    last edited by

                    @sdetweil still not loading…

                    pi@raspberrypi:~/MagicMirror $ npm start

                    magicmirror@2.22.0 start
                    DISPLAY=“${DISPLAY:=:0}” ./node_modules/.bin/electron js/electron.js

                    [31.03.2023 16:29.04.053] [LOG] Starting MagicMirror: v2.22.0
                    [31.03.2023 16:29.04.077] [LOG] Loading config …
                    [31.03.2023 16:29.04.113] [LOG] Loading module helpers …
                    [31.03.2023 16:29.04.120] [LOG] No helper found for module: alert.
                    [31.03.2023 16:29.04.191] [LOG] Initializing new module helper …
                    [31.03.2023 16:29.04.194] [LOG] Module helper loaded: updatenotification
                    [31.03.2023 16:29.04.196] [LOG] No helper found for module: clock.
                    [31.03.2023 16:29.04.591] [LOG] Initializing new module helper …
                    [31.03.2023 16:29.04.592] [LOG] Module helper loaded: MMM-OpenWeatherForecast
                    [31.03.2023 16:29.05.736] [LOG] Initializing new module helper …
                    [31.03.2023 16:29.05.740] [LOG] Module helper loaded: calendar
                    [31.03.2023 16:29.05.754] [LOG] No helper found for module: MMM-TextClock.
                    [31.03.2023 16:29.06.143] [LOG] Initializing new module helper …
                    [31.03.2023 16:29.06.150] [LOG] Module helper loaded: newsfeed
                    [31.03.2023 16:29.06.155] [LOG] No helper found for module: MMM-RAIN-MAP.
                    [31.03.2023 16:29.06.170] [LOG] Initializing new module helper …
                    [31.03.2023 16:29.06.172] [LOG] Module helper loaded: MMM-GoogleMapsTraffic
                    [31.03.2023 16:29.06.173] [LOG] All module helpers loaded.
                    [31.03.2023 16:29.06.803] [LOG] Starting server on port 8080 …
                    [31.03.2023 16:29.06.828] [WARN] You’re using a full whitelist configuration to allow for all IPs
                    [31.03.2023 16:29.06.884] [ERROR] Whoops! There was an uncaught exception…
                    [31.03.2023 16:29.06.900] [ERROR] Error: listen EADDRINUSE: address already in use 0.0.0.0:8080
                    at Server.setupListenHandle [as _listen2] (node:net:1432:16)
                    at listenInCluster (node:net:1480:12)
                    at doListen (node:net:1629:7)
                    at process.processTicksAndRejections (node:internal/process/task_queues:84:21) {
                    code: ‘EADDRINUSE’,
                    errno: -98,
                    syscall: ‘listen’,
                    address: ‘0.0.0.0’,
                    port: 8080
                    }
                    [31.03.2023 16:29.06.901] [ERROR] MagicMirror² will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
                    [31.03.2023 16:29.06.902] [ERROR] If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues
                    [31.03.2023 16:29.08.680] [LOG] Launching application.
                    MESA-LOADER: failed to retrieve device information
                    MESA-LOADER: failed to retrieve device information
                    MESA-LOADER: failed to retrieve device information
                    …/…/buildtools/third_party/libc++/trunk/include/vector:1425: assertion __n < size() failed: vector[] index out of bounds[2071:0331/162912.978009:ERROR:gpu_process_host.cc(991)] GPU process exited unexpectedly: exit_code=6
                    MESA-LOADER: failed to retrieve device information
                    MESA-LOADER: failed to retrieve device information
                    MESA-LOADER: failed to retrieve device information
                    …/…/buildtools/third_party/libc++/trunk/include/vector:1425: assertion __n < size() failed: vector[] index out of bounds[2071:0331/162914.498526:ERROR:gpu_process_host.cc(991)] GPU process exited unexpectedly: exit_code=6
                    MESA-LOADER: failed to retrieve device information
                    MESA-LOADER: failed to retrieve device information
                    MESA-LOADER: failed to retrieve device information
                    …/…/buildtools/third_party/libc++/trunk/include/vector:1425: assertion __n < size() failed: vector[] index out of bounds[2071:0331/162915.779583:ERROR:gpu_process_host.cc(991)] GPU process exited unexpectedly: exit_code=6
                    [31.03.2023 16:29.37.588] [LOG] Shutting down server…
                    [31.03.2023 16:29.37.595] [LOG] Stopping module helper: updatenotification
                    [31.03.2023 16:29.37.596] [LOG] Stopping module helper: MMM-OpenWeatherForecast
                    [31.03.2023 16:29.37.596] [LOG] Stopping module helper: calendar
                    [31.03.2023 16:29.37.597] [LOG] Stopping module helper: newsfeed
                    [31.03.2023 16:29.37.597] [LOG] Stopping module helper: MMM-GoogleMapsTraffic

                    S 1 Reply Last reply Reply Quote 0
                    • S Do not disturb
                      sdetweil @chris1971
                      last edited by sdetweil

                      @chris1971 said in MMM-OpenWeatherForecast - Replacement for MMM-DarkSkyForecast:

                      Error: listen EADDRINUSE: address already in use 0.0.0.0:8080

                      did u do the pm2 stop all?

                      did you use any install instructions before my script? the manual install describes how to create a service to auto start MM

                      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
                        chris1971 @sdetweil
                        last edited by

                        @sdetweil

                        yes - ich changed the mm.sh after stop all

                        my method for installation:

                        • format SD card
                        • install Bullseye
                        • install sudo apt-get install xrdp (to get a remote connection via remote desktop)
                        • install your scripts including screensaver/ pm2
                        • install the modules
                          it worked once … I do not understand what changed after a restart…
                        S 1 Reply Last reply Reply Quote 0
                        • S Do not disturb
                          sdetweil @chris1971
                          last edited by

                          @chris1971 and u checked the pm2 status

                          before doing npm start ?

                          you don’t reboot after pm2 stop all, as t will restart MM on boot (its job)

                          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
                            chris1971 @sdetweil
                            last edited by chris1971

                            @sdetweil this is the pm2 status

                            pi@raspberrypi:~/MagicMirror $ pm2 status
                            ┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
                            │ id │ name │ mode │ ↺ │ status │ cpu │ memory │
                            ├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
                            │ 0 │ MagicMirror │ fork │ 0 │ online │ 0% │ 2.3mb │

                            with npm start I only have a black screen in the terminal - I can see the conten in the browser with http://192.168.178.35:8080/

                            S 3 Replies Last reply Reply Quote 0
                            • S Do not disturb
                              sdetweil @chris1971
                              last edited by

                              @chris1971 pm2 stop all

                              then cd ~/MagicMirror

                              npm start

                              only can have ONE instance running at a time on the same config.js port: setting

                              Sam

                              How to add modules

                              learning how to use browser developers window for css changes

                              C 1 Reply Last reply Reply Quote 0
                              • S Do not disturb
                                sdetweil @chris1971
                                last edited by

                                @chris1971 yes, you have another instance running , so this one will fail

                                Sam

                                How to add modules

                                learning how to use browser developers window for css changes

                                1 Reply Last reply Reply Quote 0
                                • S Do not disturb
                                  sdetweil @chris1971
                                  last edited by

                                  @chris1971 said in MMM-OpenWeatherForecast - Replacement for MMM-DarkSkyForecast:

                                  with npm start I only have a black screen in the terminal - I can see the conten in the browser with http://192.168.178.35:8080/

                                  you are looking at the one running under pm2

                                  Sam

                                  How to add modules

                                  learning how to use browser developers window for css changes

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

                                    @sdetweil

                                    sdetweil 5 minutes ago

                                    @chris1971 pm2 stop all

                                    then cd ~/MagicMirror

                                    npm start

                                    ahhh… ok: with this I am able to see the scree in the terminal - but the weather module is still not loading in the terminal

                                    Errors like before:

                                    [31.03.2023 17:19.15.233] [LOG] Launching application.
                                    MESA-LOADER: failed to retrieve device information
                                    MESA-LOADER: failed to retrieve device information
                                    MESA-LOADER: failed to retrieve device information
                                    …/…/buildtools/third_party/libc++/trunk/include/vector:1425: assertion __n < size() failed: vector[] index out of bounds[2465:0331/171918.392802:ERROR:gpu_process_host.cc(991)] GPU process exited unexpectedly: exit_code=6
                                    MESA-LOADER: failed to retrieve device information
                                    MESA-LOADER: failed to retrieve device information
                                    MESA-LOADER: failed to retrieve device information
                                    …/…/buildtools/third_party/libc++/trunk/include/vector:1425: assertion __n < size() failed: vector[] index out of bounds[2465:0331/171919.478457:ERROR:gpu_process_host.cc(991)] GPU process exited unexpectedly: exit_code=6
                                    MESA-LOADER: failed to retrieve device information
                                    MESA-LOADER: failed to retrieve device information
                                    MESA-LOADER: failed to retrieve device information
                                    …/…/buildtools/third_party/libc++/trunk/include/vector:1425: assertion __n < size() failed: vector[] index out of bounds[2465:0331/171920.679631:ERROR:gpu_process_host.cc(991)] GPU process exited unexpectedly: exit_code=6
                                    [2509:0331/171921.424506:ERROR:command_buffer_proxy_impl.cc(128)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
                                    [31.03.2023 17:19.25.235] [LOG] Create new calendarfetcher for url: https://calendar.google.com/calendar/ical/c.euro%40gmx.de/private-8dd63e4cddfec3349/basic.ics - Interval: 50000
                                    [31.03.2023 17:19.25.774] [LOG] Create new newsfetcher for url: http://www.radiomuelheim.de/lokalnachrichten.xml - Interval: 300000
                                    [31.03.2023 17:19.25.793] [LOG] Create new newsfetcher for url: http://www.tagesschau.de/xml/rss2 - Interval: 300000
                                    [31.03.2023 17:19.25.813] [LOG] Working notification system. Notification: MMM-GOOGLE_MAPS_TRAFFIC-GET payload: { style: ‘standard’ }

                                    have to go out for a beer now…:dizzy_face:

                                    S 1 Reply Last reply Reply Quote 0
                                    • S Do not disturb
                                      sdetweil @chris1971
                                      last edited by

                                      @chris1971 u have to enter the

                                      export ELECTRON_DISABLE_GPU=1

                                      EVERY time you open a new terminal window

                                      so, then i’d look in the MM screen developers window as previously described

                                      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
                                        chris1971 @sdetweil
                                        last edited by sdetweil

                                        @sdetweil I placed the “export ELECTRON_DISABLE_GPU=1” in the install.

                                        Where do I have to place the “export ELECTRON_DISABLE_GPU=1” in the terminal window?

                                        Info from console (red):

                                        >Uncaught TypeError: Cannot read properties of undefined (reading ‘length’)
                                        at script.onload (MMM-GoogleMapsTraffic.js:77:52)
                                        MMM-OpenWeatherForecast.js:685 Uncaught (in promise) TypeError: console.log is not a function
                                        at Class.addIcon (MMM-OpenWeatherForecast.js:685:13)
                                        at Class.processWeatherData (MMM-OpenWeatherForecast.js:370:61)
                                        at Class.socketNotificationReceived (MMM-OpenWeatherForecast.js:282:40)
                                        at module.js:245:9
                                        at Socket. (socketclient.js:38:4)
                                        at Emitter.emit (index.mjs:136:20)
                                        at Socket.emitEvent (socket.js:498:20)
                                        at Socket.onevent (socket.js:485:18)
                                        at MMSocket.socket.onevent (socketclient.js:32:11)
                                        at Socket.onpacket (socket.js:455:22)
                                        js?key=cccc:221 You have included the Google Maps JavaScript API multiple times on this page. This may cause unexpected errors.
                                        js?key=uuuuu:217 Google Maps JavaScript API has been loaded directly without a callback. This is not supported and can lead to race conditions and suboptimal performance. For supported loading patterns please see https://goo.gle/js-api-loading
                                        MMM-GoogleMapsTraffic.js:77 Uncaught TypeError: Cannot read properties of undefined (reading ‘length’)
                                        at script.onload (MMM-GoogleMapsTraffic.js:77:52)

                                        S 2 Replies Last reply Reply Quote 0
                                        • S Do not disturb
                                          sdetweil @chris1971
                                          last edited by

                                          @chris1971 said in MMM-OpenWeatherForecast - Replacement for MMM-DarkSkyForecast:

                                          Where do I have to place the “export ELECTRON_DISABLE_GPU=1” in the terminal window?

                                          you just enter that command string and hit enter

                                          Sam

                                          How to add modules

                                          learning how to use browser developers window for css changes

                                          C 1 Reply Last reply Reply Quote 0
                                          • S Do not disturb
                                            sdetweil @chris1971
                                            last edited by

                                            @chris1971 said in MMM-OpenWeatherForecast - Replacement for MMM-DarkSkyForecast:

                                            You have included the Google Maps JavaScript API multiple times on this page. This may cause unexpected errors.

                                            I haven’t seen that one before

                                            I xxx’ed out your api key in the debug info

                                            Sam

                                            How to add modules

                                            learning how to use browser developers window for css changes

                                            1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 9
                                            • 10
                                            • 11
                                            • 12
                                            • 13
                                            • 11 / 13
                                            • 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