• 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-AlexaOnOff] Simple Mirror Control from External Home Assistant (Alexa/Google Home/HASS.io)

Scheduled Pinned Locked Moved System
81 Posts 13 Posters 49.0k Views 16 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.
  • R Offline
    richland007
    last edited by Jan 5, 2019, 6:25 AM

    @shbatm Ok so it works BUT it is only finding the last device on my list of the config.js file module entry when there are 36 others there. I tried discovery like 20 times from the website.
    Should i try adding them one by one from the bottom up by commenting them out and adding them one by one …unless you got any other ideas :)

    D

    1 Reply Last reply Reply Quote 0
    • S Offline
      shbatm Module Developer
      last edited by shbatm Jan 5, 2019, 6:33 AM Jan 5, 2019, 6:32 AM

      @richland007 in the log is it showing all of the ports in the range open? (e.g. 21900-21936)?

      R 1 Reply Last reply Jan 5, 2019, 6:45 AM Reply Quote 0
      • R Offline
        richland007 @shbatm
        last edited by Jan 5, 2019, 6:45 AM

        @shbatm Where do i see the logs??
        When i use

        netstat -tulpn | grep electron
        

        It only show that 1 one port 0.0.0.0:21900 Listen

        D

        S 1 Reply Last reply Jan 5, 2019, 4:46 PM Reply Quote 0
        • D Offline
          djsunrise19 @shbatm
          last edited by djsunrise19 Jan 5, 2019, 11:16 AM Jan 5, 2019, 10:32 AM

          @shbatm said in [MMM-AlexaOnOff] Simple Mirror Control from External Home Assistant (Alexa/Google Home/HASS.io):

          netstat tulpn | grep 21900

          Yes, IP-Adress is correct. From console everything looks like it should. Alexa is in the same network - wlan, mirror lan. I also have hue in here and the hue module on my mirror. Everything looks fine there. But actually, Alexa finds nothing.

          Ich checked your command. After that, with sudo netstat -tulpnI see this:
          0_1546684263939_86c66852-83ae-41d7-8499-8392004f63c3-image.png

          Do I need the wemo skill or something like that?

          S 1 Reply Last reply Jan 5, 2019, 4:44 PM Reply Quote 0
          • S Offline
            shbatm Module Developer @djsunrise19
            last edited by Jan 5, 2019, 4:44 PM

            @djsunrise19 said in [MMM-AlexaOnOff] Simple Mirror Control from External Home Assistant (Alexa/Google Home/HASS.io):

            wemo skill

            You shouldn’t need a separate skill with it. It looks like everything is working from the mirror side so I’m not sure what else to try…

            1 Reply Last reply Reply Quote 0
            • S Offline
              shbatm Module Developer @richland007
              last edited by Jan 5, 2019, 4:46 PM

              @richland007 said in [MMM-AlexaOnOff] Simple Mirror Control from External Home Assistant (Alexa/Google Home/HASS.io):

              It only show that 1 one port 0.0.0.0:21900

              It would be in pm2 logs mm or ~/.pm2/logs folder. I’ll check when I get a chance why it’s not opening more than 1 port.

              R 1 Reply Last reply Jan 6, 2019, 1:44 AM Reply Quote 0
              • R Offline
                richland007 @shbatm
                last edited by Jan 6, 2019, 1:44 AM

                @shbatm I don not see anything out of the ordinary in my logs when i do pm2 logs mm definitely not 36 ports open in addition to 29100 when i go to location ~/.pm2/logs the log files are there in the directory but empty.

                1 Reply Last reply Reply Quote 0
                • S Offline
                  shbatm Module Developer
                  last edited by shbatm Jan 6, 2019, 4:53 AM Jan 6, 2019, 4:51 AM

                  So I was looking at the Fauxmojs project–what this module uses to handle the “devices”–and it looks like there are some issues with Gen 2 Echos not discovering the devices–but for most, the alexa.amazon.com website was working. I’ll keep an eye on that project–but at the moment, I don’t have anything else I can do from my end.

                  If you want to see some more detailed logs–start the MM manually with the following:

                  cd ~/MagicMirror
                  export DEBUG=sstp-server,deviceEndpoints,discoveryService
                  npm start
                  

                  @richland007 - I just tested my installation with 3 devices and, while it wasn’t showing all of the ports on the log line due to a bug, it was opening the ports (visible with netstat -tulpn | grep electron – see below). Just in case anyone is wondering–port 1900 is the discovery port.

                  tcp        0      0 0.0.0.0:21900           0.0.0.0:*               LISTEN      15738/electron.js
                  tcp        0      0 0.0.0.0:21901           0.0.0.0:*               LISTEN      15738/electron.js
                  tcp        0      0 0.0.0.0:21902           0.0.0.0:*               LISTEN      15738/electron.js
                  tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      15738/electron.js
                  udp        0      0 0.0.0.0:1900            0.0.0.0:*                           15738/electron.js
                  
                  R D 2 Replies Last reply Jan 6, 2019, 6:26 AM Reply Quote 0
                  • R Offline
                    richland007 @shbatm
                    last edited by Jan 6, 2019, 6:26 AM

                    @shbatm How do i read more log lines not only tailing the last 15 from pm2 logs mm ??
                    This works so nicely with the only one device that it is starting (turn on and turn off the whole mirror) it is awesome… i am so hurt that i am unable to have the rest of the “devices/modules” working.

                    If you want to have a look at my long a%$ :) config.js entry for the MMM-AlexaOnOff module here it is ;

                    {
                        module: 'MMM-AlexaOnOff',
                        config: {
                            //netInterface: 'wlan0',
                            //startPort: 15000,
                            devices: [{ 
                                  name: "Clock Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_4_clock" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "modules_4_clock" }
                                  },
                    			  name: "Calendar Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_5_calendar" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_5_calendar" }
                                  },
                                              name: "Denis Calendar",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_6_calendar" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_6_calendar" }
                                  },
                    			  name: "Compliments Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_7_compliments" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_7_compliments" }
                                  },
                    			  name: "Gas Prices Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_8_MMM-Gas" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_8_MMM-Gas" }
                                  },
                    			  name: "Instagram Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_9_MMM-Instagram" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_9_MMM-Instagram" }
                                  },
                    			  name: "Page Indicator Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_11_MMM-page-indicator" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_11_MMM-page-indicator" }
                                  },
                    			  name: "Temperature Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_12_MMM-DHT-Sensor" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_12_MMM-DHT-Sensor" }
                                  },
                    			  name: "Weather Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_13_MMM-NOAA3" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_13_MMM-NOAA3" }
                                  },
                    			  name: "System Stats Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_14_MMM-SystemStats" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_14_MMM-SystemStats" }
                                  },
                    			  name: "Movie Listings Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_15_MMM-MovieListings" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_15_MMM-MovieListings" }
                                  },
                    			  name: "Thermostat Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_16_MMM-Ecobee" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_16_MMM-Ecobee" }
                                  },
                    			  name: "Alexa Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_17_MMM-AlexaPi" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_17_MMM-AlexaPi" }
                                  },
                    			  name: "Exchange Rate Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_20_MMM-LICE" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_20_MMM-LICE" }
                                  },
                    			  name: "Stocks Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_21_stocks" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_21_stocks" }
                                  },
                    			  name: "Traffic Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_22_MMM-GoogleMapsTraffic" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_22_MMM-GoogleMapsTraffic" }
                                  },
                    			  name: "My Commute Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_23_MMM-MyCommute" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_23_MMM-MyCommute" }
                                  },
                    			  name: "Camera Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_24_MMM-iFrame" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_24_MMM-iFrame" }
                                  },
                    			  name: "RSS Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_25_MMM-RSS-FEED" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_25_MMM-RSS-FEED" }
                                  },
                    			  name: "Fitbit Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_26_MMM-fitbit" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_26_MMM-fitbit" }
                                  },
                    			  name: "Google Fit Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_27_MMM-GoogleFit" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_27_MMM-GoogleFit" }
                                  },
                    			  name: "Horoscope Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_28_MMM-horoscope" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_28_MMM-horoscope" }
                                  },
                    			  name: "Phone Notification Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_29_phone_notification" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_29_phone_notification" }
                                  },
                    			  name: "TV Stream Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_30_MMM-RTSPStream" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_30_MMM-RTSPStream" }
                                  },
                    			  name: "Tiles Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_31_iFrame" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_31_iFrame" }
                                  },
                    			  name: "Spotify Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_32_MMM-NowPlayingOnSpotify" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_32_MMM-NowPlayingOnSpotify" }
                                  },
                    			  name: "Events Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_33_MMM-Events" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_33_MMM-Events" }
                                  },
                    			  name: "Nasa Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_34_MMM-NASA" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_34_MMM-NASA" }
                                  },
                    			  name: "Logo Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_35_MMM-SimpleLogo" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_35_MMM-SimpleLogo" }
                                  },
                    			  name: "Random Quotes Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_36_random_quotes" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_36_random_quotes" }
                                  },
                    			  name: "Bible Verse Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_37_MMM-DailyBibleVerse" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_37_MMM-DailyBibleVerse" }
                                  },
                    			  name: "Dropbox Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_39_MMM-DropboxWallpaper" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_39_MMM-DropboxWallpaper" }
                                  },
                    			  name: "Weather Background Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_40_MMM-Dummy" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_40_MMM-Dummy" }
                                  },
                    			  name: "News Module",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_43_MMM-Jnews" }
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_43_MMM-Jnews" }
                                  },
                    	      name: "Eva's Modules",
                                  on: [
                                      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_6_calendar" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_14_MMM-SystemStats" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_21_stocks" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_25_MMM-RSS-FEED" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_26_MMM-fitbit" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_29_phone_notification" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_30_MMM-RTSPStream" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_31_iFrame" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_32_MMM-NowPlayingOnSpotify" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_34_MMM-NASA" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_43_MMM-Jnews" }
                                  }
                                  ],
                                  off: [
                                      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_6_calendar" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_14_MMM-SystemStats" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_21_stocks" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_25_MMM-RSS-FEED" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_26_MMM-fitbit" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_29_phone_notification" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_30_MMM-RTSPStream" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_31_iFrame" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_32_MMM-NowPlayingOnSpotify" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_34_MMM-NASA" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_43_MMM-Jnews" }
                                  }
                                  ],
                    	      name: "Denis Modules",
                                  on: [
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_27_MMM-GoogleFit" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_9_MMM-Instagram" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "HIDE", module: "module_39_MMM-DropboxWallpaper" }
                                  }
                    			  ],
                                  off: [
                    			      {
                    				  notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_27_MMM-GoogleFit" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "Show", module: "module_9_MMM-Instagram" }
                                  },
                    			      { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "SHOW", module: "module_39_MMM-DropboxWallpaper" }
                                  }
                                      ], 
                                  name: "Mirror",
                                  on: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "MONITORON"}
                                  },
                                  off: { 
                                    notification: "REMOTE_ACTION",
                                    payload: { action: "MONITOROFF"}
                                  },     
                    			  
                            }]
                        }
                    }
                    

                    It is only loading the last “device” named Mirror for (an all on/off feature) on port 21900.

                    I tried changing the port start number to something else to no avail, i tried commenting out all but the last 2 of the devices still no luck…it only starts 1.

                    Edit: I spoke too early on singing it praises if you give a command ( in my case all i have is one that makes the monitor go off and than on after you ask Alexa to turn Mirror On) after 2-3 minutes everything freezes and you absolutely can not interact with the mirror completely neither from putty /ssh or vnc (ctrl/alt/del) or keyboard input only a hard power reset is the solution it has happened twice. I did try it one last time before posting this, and right after “Alexa turn Mirror On” i hit ctrl+Q to quit MM and see what the CPU values were and they were right around 70% but they went immediately down to 1% and nothing happened no more freezing of the Rpi…weird!!! I really need to get you some more detailed logs

                    Please help me solve this so i can turn my modules on and off
                    Thank you for your prompt replies and patience
                    Denis

                    S 1 Reply Last reply Jan 6, 2019, 3:57 PM Reply Quote 0
                    • D Offline
                      djsunrise19 @shbatm
                      last edited by Jan 6, 2019, 12:01 PM

                      @shbatm Thanks. I’m using an echo dot 3rd generation. Sadly, I have to wait. There seems to be no problems with your module / the mirror / network.

                      Good work!

                      S 1 Reply Last reply Jan 6, 2019, 5:38 PM Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 4
                      • 5
                      • 6
                      • 7
                      • 8
                      • 9
                      • 4 / 9
                      4 / 9
                      • First post
                        37/81
                        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