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

Need help with MM-Google Assistant Mk2



  • For some reason, the hotword is working, but when I get ready to say the command for Google Assistant, it doesn’t respond, or pick up what I am saying at all. Please help, posting config.js file below.
    Using Raspberry Pi 3 Model B+, running Raspbian Stretch.

    /* 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:
    	                      // - "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"], // 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: 24,
    	units: "metric",
    
    	modules: [
    		{
    			module: "alert",
    		},
    		{
    			module: "updatenotification",
    			position: "top_bar"
    		},
    		{
    			module: "clock",
    			position: "top_left"
    		},
    		{
    			module: "calendar",
    			header: "US Holidays",
    			position: "top_left",
    			config: {
    				calendars: [
    					{
    						symbol: "calendar-check",
    						url: "webcal://www.calendarlabs.com/ical-calendar/ics/76/US_Holidays.ics"					}
    				]
    			}
    		},
    		{
    			module: "compliments",
    			position: "lower_third"
    		},
    		{
    			module: "currentweather",
    			position: "top_right",
    			config: {
    				location: "New York",
    				locationID: "",  //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
    				appid: "YOUR_OPENWEATHER_API_KEY"
    			}
    		},
    		{
    			module: "weatherforecast",
    			position: "top_right",
    			header: "Weather Forecast",
    			config: {
    				location: "New York",
    				locationID: "5128581",  //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
    				appid: "YOUR_OPENWEATHER_API_KEY"
    			}
    		},
    		{
    			module: "newsfeed",
    			position: "bottom_bar",
    			config: {
    				feeds: [
    					{
    						title: "New York Times",
    						url: "http://www.nytimes.com/services/xml/rss/nyt/HomePage.xml"
    					}
    				],
    				showSourceTitle: true,
    				showPublishDate: true,
    				broadcastNewsFeeds: true,
    				broadcastNewsUpdates: true
    			}
    		},
    {
    	module: "MMM-Hotword",
    	position: "top_right",
    	config: {
    		chimeOnFinish: true,
    		mic: {
    			recordProgram: "arecord",
    			device: "plughw:1"
    		},
    		models: [
    			{
    				hotwords    : "smart_mirror",
    				file        : "smart_mirror.umdl",
    				sensitivity : "1",
    			},
    		],
    		commands: {
    			"smart_mirror": {
    				notificationExec: {
    					notification: "ASSISTANT_ACTIVATE",
    					payload: (detected, afterRecord) => {
    						return {profile:"default"}
    					}
    				},
    				restart:false,
    				afterRecordLimit:0
    			}
    		}
    	}
    },
    {
      module: "MMM-AssistantMk2",
      position: "top_right",
      config: {
    
        // --- ESSENTIALS / modifying for your environment might be needed.
    
    
        deviceLocation: {
          coordinates: { // set the latitude and longitude of the device to get localized information like weather or time. (ref. mygeoposition.com)
            latitude: 29.558190, // -90.0 - +90.0
            longitude: -95.413352, // -180.0 - +180.0
          },
        },
    
        defaultProfile: "default", // If you have several profiles and want to set one of them as default profile, describe here.
    
        profiles: {
          "default" : { // profile name.
            profileFile: "default.json", // profile file name.
            lang: "en-US"
            //currently available (estimation, not all tested):
            //  de-DE, en-AU, en-CA, en-GB, en-US, en-IN
            // fr-CA, fr-FR, it-IT, ja-JP, es-ES, es-MX, ko-KR, pt-BR
            // https://developers.google.com/assistant/sdk/reference/rpc/languages
          },
          /* Add your other profiles here, if exists.
          "other_profile" : {
            profileFile: "other.json",
            lang: "de-DE"
          }
          */
        },
    
        record: { // Full values are in `FOR EXPERTS` section.
          recordProgram: "arecord",  // Defaults to "arecord" - also supports "rec" and "sox"
          device: null       // recording device (e.g.: "plughw:1")
        },
    
        play: { // Full values are in `FOR EXPERTS` section.
          playProgram: "mpg321", // recommended.
        },
    
    
        // --- OPTIONAL / not important but customizable for your usage
    
    
        responseVoice: true, // If available, Assistant will response with her voice.
        responseScreen: true, // If available, Assistant will response with some rendered HTML
        responseAlert: true, // If available, Assistant will response with Alert module of MM
        // Sometimes, any response might not be returned. responseAlert is useful for displaying error.
    
        screenZoom: "80%", // Adjust responseScreen to your mirror size.
        screenDuration: 15, // milliseconds. How long responseScreen will be shown after speech.
        //If you set 0, Screen Output will be closed after Response speech finishes ASAP.
    
        youtubeAutoplay: true, //If set as true, found Youtube video will be played automatically.
        pauseOnYoutube:true, //If set as true, You cannot activate Assistant during youtube playing. Recommended for the performance (Because permanent hotword detecting might make performance lower)
    
        youtubePlayerVars: { // You can set youtube playerVars for your purpose, but should be careful.
          "controls": 0,
          "loop": 1,
          "rel": 0,
        },
        youtubePlayQuality: "hd1080", //small, medium, large, hd720, hd1080, highres or default
    
        useWelcomeMessage: "What's the weather", //Try "brief today" as this value. You can use this value to check module working when MM is starting.
    
        onIdle: {
          //timer: 1000*60*30, // if you don't want to use this feature, just set timer as `0` or command as ""
          //command: "HIDEMODULES",
          timer: 0,
          command: null,
        },
    
        onActivate: {
          timer: 0,
          //command: "SHOWMODULES"
          command: null,
        },
    
    
        // --- FOR EXPERTS / For development, debug or more
    
    
        verbose:false, // You can get error or some logs when this value is set as true.
        ignoreNoVoiceError: true, //To avoid some annoying youtube stop bug.
    
        startChime: "connection.mp3", // you can use `mp3` to play chime when your mic is ready. It should be playable with your `play.playProgram`
        noChimeOnSay: false, // When using the `ASSISTANT_SAY` trigger, you can prevent the chime from being played before your words
    
        auth: { // I believe you don't need to change this.
          keyFilePath: "./credentials.json"
        },
    
        record:  { // Full version
          sampleRate    : 16000,      // audio sample rate
          threshold     : 0.5,        // silence threshold (rec only)
          thresholdStart: null,       // silence threshold to start recording, overrides threshold (rec only)
          thresholdEnd  : null,       // silence threshold to end recording, overrides threshold (rec only)
          silence       : 1.0,        // seconds of silence before ending
          verbose       : false,      // log info to the console
          recordProgram : "arecord",  // Defaults to "arecord" - also supports "rec" and "sox"
          device        : null        // recording device (e.g.: "plughw:1")
        },
    
        play: { // Full version
          encodingOut: "MP3", //'MP3' or 'WAV' is available, but you might not need to modify this.
          sampleRateOut: 24000,
          playProgram: "mpg321", //Your prefer sound play program. By example, if you are running this on OSX, `afplay` could be available.
          playOption: [],
          // If you need additional options to use playProgram, describe here. (except filename)
          // e.g: ["-d", "", "-t", "100"]
        },
    
        useGactionCLI: false, // If set as true, you can update your gAction when MM is rebooted.
        projectId: "", // Google Assistant ProjectId (Required only when you use gAction.)
        deviceModelId: "", // It should be described in your config.json. In most of case, you don't need to this.
        deviceInstanceId: "", // It should be described in your config.json. In most of case, you don't need to this.
    
        recipes:["hide_and_show_all_modules.js", "reboot.js", "screen_onoff.js", "shutdown.js"],
        transcriptionHook: {},
        action: {}, // You can catch your gAction command.
        command: {}, // You can catch transcription hook and be able to make your own `COMMAND` with this.
        //See the `transcriptionHook` section.
        action:{}, // You can make your own MM command for gAction and transcriptionHook
        //See the `command` section.
    
        notifications: { // You can redefine these notifications to communicate with specific modules.
          ASSISTANT_ACTIVATE: "ASSISTANT_ACTIVATE",
          ASSISTANT_DEACTIVATE: "ASSISTANT_CLEAR",
          ASSISTANT_ACTIVATED: "ASSISTANT_ACTIVATED",
          ASSISTANT_DEACTIVATED: "ASSISTANT_DEACTIVATED",
          ASSISTANT_ACTION: "ASSISTANT_ACTION",
          ASSISTANT_UNDERSTOOD: "ASSISTANT_UNDERSTOOD",
          ASSISTANT_RESPONSE_END: "ASSISTANT_RESPONSE_END",
          DEFAULT_HOOK_NOTIFICATION: "ASSISTANT_HOOK",
          TEXT_QUERY: "ASSISTANT_QUERY",
          SAY_TEXT: "ASSISTANT_SAY",
        }
      }
    },
    
    
      
    	]
    
    };
    
    /*************** DO NOT EDIT THE LINE BELOW ***************/
    if (typeof module !== "undefined") {module.exports = config;}
    
    


  • Try using a simply version

    {
    	module: "MMM-AssistantMk2",
    	position: "top_right",
    	config: {
    		deviceLocation: {
    			coordinates: {
    				latitude: -29.730320, // -90.0 - +90.0
    				longitude: 30.038760 // -180.0 - +180.0
    			},
    		},
    		record: {
    			recordProgram : "arecord",  
    			device        : "plughw:1",
    		},
    		notifications: {
    			ASSISTANT_ACTIVATED: "HOTWORD_PAUSE",
    			ASSISTANT_DEACTIVATED: "HOTWORD_RESUME",
    		},
    		useWelcomeMessage: "brief today",
    		profiles: {
    			"default" : {
    				lang: "en-US"
    			}
    		},
    	}
    },
    


  • Thanks, but i already figured it out. Appreciate the help


  • Project Sponsor Module Developer

    @09succotash said in Need help with MM-Google Assistant Mk2:

    Thanks, but i already figured it out. Appreciate the help

    For the benefit of other users you could post what the problem was and how you solved it.

    Just a thought. 🙂



  • The actual problem was that the module script wasn’t configured correctly to use my microphone like the MMM-Hotword module was, so I copied the information under “mic” into “record”.


Log in to reply