MagicMirror² v2.13.0 is available! For more information about this release, check out this topic.

Remote Control doesn't work for me, Please help!



  • Hi everyone/anyone.

    Hoping if anyone can provide some guidance for me. I have the latest version of MM2 installed with Buster. I have managed to get everything I wanted up and running except MMM-Remote control. I get the common error that you normally get when something isnt right and it wont display. I have copied from the https://github.com/Jopyth/MMM-Remote-Control using the following:

    {
        module: 'MMM-Remote-Control'
        // uncomment the following line to show the URL of the remote control on the mirror
        // , position: 'bottom_left'
        // you can hide this module afterwards from the remote control itself
        config: {
            customCommand: {},  // Optional, See "Using Custom Commands" below
            customMenu: "custom_menu.json", // Optional, See "Custom Menu Items" below
            showModuleApiMenu: true, // Optional, Enable the Module Controls menu
            apiKey: "",         // Optional, See API/README.md for details
        }
    },
    
    

    I also need to mention this is my 2nd day learning this, so I know I have much to learn. I have no clue why I can’t get the remote to work. I also tried to follow https://www.youtube.com/watch?v=539zmAJREe4 on youtube. I really don’t what I am doing wrong. If anyone can assist that would be awesome!

    Thank you for reading this and your time & wisdom.

    Best Regards,

    F



  • @justlearning I think it’s just missing a comma in the first line. Try
    modules: ‘MMM Remote Control’,



  • Please use the </> when posting code

    {
        module: 'MMM-Remote-Control'
        // uncomment the following line to show the URL of the remote control on the mirror
        // , position: 'bottom_left'
        // you can hide this module afterwards from the remote control itself
        config: {
            customCommand: {},  // Optional, See "Using Custom Commands" below
            customMenu: "custom_menu.json", // Optional, See "Custom Menu Items" below
            showModuleApiMenu: true, // Optional, Enable the Module Controls menu
            apiKey: "",         // Optional, See API/README.md for details
        }
    },
    

    My guess is that your problem is within point 3.

    (3) For security reasons, the MagicMirror (and therefore the Remote Control) is not reachable externally. To change this, configure address, and ipWhitelist in your config.js (see these lines in the sample config). For
    example change address to 0.0.0.0 and add two allowed devices with IP-Adresses 192.168.0.42 and 192.168.0.50:

    address : ‘0.0.0.0’,
    port: 8080,
    ipWhitelist: [“127.0.0.1”, “::ffff:127.0.0.1”, “::1”, “::ffff:192.168.0.42”, “::ffff:192.168.0.50”],"

    You can also add multiple devices in an IP range (e.g. all devices with 192.168.0.X):

    ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.0.1/120", "192.168.0.1/24"],


  • @Alloc Thanks for the advice, I have now gotten to the point , its showing that the : HTTP://ip-of-your-mirror:8080/remote.html this is what I see. Here is all my code now:
    Thanks to anyone that can solve my stupidity!

    /* Magic Mirror Config Sample
     *
     * By Michael Teeuw http://michaelteeuw.nl
     * MIT Licensed.
     *
     * For more information how you can configurate this file
     * See https://github.com/MichMich/MagicMirror#configuration
     *
     */
    
    var config = {
    	//address: "localhost", // Address to listen on, can be:
    	address: "0.0.0.0",                     
    	                      // - "localhost", "127.0.0.1", "::1" to listen on loopback interface
    	                      // - another specific IPv4/6 to listen on a specific interface
    	                      // - "", "0.0.0.0", "::" to listen on any interface
    	                      // Default, when address config is left out, is "localhost"
    	port: 8080,
    	//ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"],
    	ipWhitelist: [], // Set [] to allow all IP addresses
    	                                                       // or add a specific IPv4 of 192.168.1.5 :
    	                                                       // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.5"],
    	                                                       // or IPv4 range of 192.168.3.0 --> 192.168.3.15 use CIDR format :
    	                                                       // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.3.0/28"],
    		
    	language: "en",
    	timeFormat: 12,
    	units: "metric",
    	// serverOnly:  true/false/"local" ,
    			     // local for armv6l processors, default 
    			     //   starts serveronly and then starts chrome browser
    			     // false, default for all  NON-armv6l devices
    			     // true, force serveronly mode, because you want to.. no UI on this device
    	
    	modules: [
    		{
    			module: "alert",
    		},
    		{
    			module: "updatenotification",
    			position: "bottom_bar"
    		},
    		{
    			module: "clock",
    			position: "top_left"
    		},
    
    				{
    			module: "calendar",
    			header: "Canadian Holidays",
    			position: "top_left",
    			config: {
    				calendars: [
    					{
    						symbol: "calendar-check",
    						url: "webcal://www.calendarlabs.com/ical-calendar/ics/39/canada_Holidays.ics"					}
    				]
    						}
    		},
    	
    	{
            disabled: false,
            module: 'MMM-Lunartic',
            position: 'top_right', // Best in left, center, or right regions
            config: {
                mode: "rotating", // rotating or static
                image: "animation", // animation, current, DayNight or static
                distance: "km", // miles or km
    	    sounds: "no", // howling wolf, only on a full moon
                useHeader: false, // true if you want a header
                header: "The Lunartic is in my head", // Any text you want
                maxWidth: "300px",
                animationSpeed: 0,
                rotateInterval: 15000,
            }
        },
    		{
      module: "MMM-GooglePhotos",
      position: "center",
      config: {
        albumId: ["XXXXXXXXXXXXXXXXXXX"], // your album id(s) from result of `auth_and_test.js`
        refreshInterval: 1000*60,  
        scanInterval: 1000*60*10, // too many scans might cause API quota limit also.
        //note(2018-07-29). It is some weird. API documents said temporal image url would live for 1 hour, but it might be broken shorter. So, per 10 min scanning could prevent dead url.
    
        sort: "time", //'time', 'reverse', 'random'
        showWidth: "800px", // how large the photo will be shown as. (e.g;'100%' for fullscreen)
        showHeight: "600px",
        originalWidthPx: 800, // original size of loaded image. (related with image quality)
        originalHeightPx: 600, // Bigger size gives you better quality, but can give you network burden.
        opacity: 1, // target "opacity" property (https://www.w3schools.com/cssref/css3_pr_opacity.asp)
        mode: "hybrid", // "cover" or "contain" (https://www.w3schools.com/cssref/css3_pr_background-size.asp)
        //ADDED. "hybrid" : if you set as "hybrid" it will change "cover" and "contain" automatically by aspect ratio.
      }
    },
    /*
    			{
    			module: "compliments",
    			position: "lower_third"
    		},
    		* */
    			
    		{
    			module: "currentweather",
    					position: "bottom_right",
    			config: {
    				location: "Vancouver",
    				locationID: "6173331",  //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
    				appid: "XXXXXXXXXXXXXX"
    			}
    		},
    			{
    			module: "weatherforecast",
    			position: "bottom_right",
    			header: "Weather Forecast",
    			config: {
    				location: "Vancouver",
    				locationID: "6173331",  //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
    				appid: "XXXXXXXXXXXXX"
    			}
    			/*
    			    {
            module: 'MMM-Remote-Control'
            // uncomment the following line to show the URL of the remote control on the mirror
             , position: 'bottom_left'
            // you can hide this module afterwards from the remote control itself
            config: {
                apiKey: ''
            }
            *    **/    
    		},
    	{
        module: 'MMM-Remote-Control',
         //uncomment the following line to show the URL of the remote control on the mirror
         position: 'bottom_left',
        // you can hide this module afterwards from the remote control itself
    },
    
       {
      module: "MMM-NowPlayingOnSpotify",
      position: "bottom_left",
    
      config: {
        clientID: "XXXXXXXXXXXXXXXXXXXXX",
        clientSecret: "XXXXXXXXXXXXXXX",
        accessToken: "XXXXXXXXXXXXXXXXX",
        refreshToken: "XXXXXXXXXXXXX"
      }
    },
    		{
    			module: "newsfeed",
    			position: "bottom_bar",
    			config: {
    				feeds: [
    					{
    						title: "Canada News",
    						url: "https://www.ctvnews.ca/rss/ctvnews-ca-canada-public-rss-1.822284"
    					}
    				],
    				showSourceTitle: true,
    				showPublishDate: true,
    				broadcastNewsFeeds: true,
    				broadcastNewsUpdates: true
    			}
    		},
    	]
    
    };
    
    /*************** DO NOT EDIT THE LINE BELOW ***************/
    if (typeof module !== "undefined") {module.exports = config;}
    
    


  • @justlearning I would edit that out, because it shows all your API secrets.

    Fx. Spotify


  • Module Developer

    @Alloc @justlearning I have removed some sensitive information


  • Module Developer

    @justlearning said in Remote Control doesn’t work for me, Please help!:

    its showing that the : HTTP://ip-of-your-mirror:8080/remote.html this is what I see.Here is all my code now:

    Thanks to anyone that can solve my stupidity!

    What is the remaining problem? What happens if you visit the site in your browser?


Log in to reply