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.

    Need help with MM-Google Assistant Mk2

    Scheduled Pinned Locked Moved Solved Troubleshooting
    5 Posts 3 Posters 2.9k Views 3 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.
    • 0 Offline
      09succotash
      last edited by 09succotash

      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;}
      
      
      1 Reply Last reply Reply Quote 0
      • R Offline
        ricardoyen
        last edited by sdetweil

        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"
        			}
        		},
        	}
        },
        
        1 Reply Last reply Reply Quote 0
        • 0 Offline
          09succotash
          last edited by

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

          Mykle1M 1 Reply Last reply Reply Quote 0
          • Mykle1M Offline
            Mykle1 Project Sponsor Module Developer @09succotash
            last edited by

            @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. :-)

            Create a working config
            How to add modules

            1 Reply Last reply Reply Quote 2
            • 0 Offline
              09succotash
              last edited by

              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”.

              1 Reply Last reply Reply Quote 1
              • 1 / 1
              • 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