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 631.6k 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.
    • C Offline
      chris1971 @sdetweil
      last edited by chris1971

      @sdetweil

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

      looks like this…
      I installed your scrips and agreed both times (y/n) when I was asked to remove screensaver and start pm.

      S 1 Reply Last reply Reply Quote 0
      • S Offline
        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 Offline
            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 Offline
                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 Offline
                    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 Offline
                        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 Offline
                            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 Offline
                                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 Offline
                                  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 Offline
                                    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 Offline
                                        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 Offline
                                            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

                                            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
                                            • 5
                                            • 6
                                            • 7
                                            • 8
                                            • 9
                                            • 12
                                            • 13
                                            • 7 / 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