MagicMirror Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • Donate
    • Discord
    MagicMirror² v2.24.0 is available! For more information about this release, check out this topic.

    UNSOLVED How do I use notfications

    Troubleshooting
    tutorial help notifications
    2
    18
    564
    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.
    • A
      Alyx last edited by

      Hi Guys,

      I’m new to this and have no clue how to use js and notifications.

      I was wondering if someone can help me with setting up some modules to talk to each other. I want to use voice commands to activate a camera module to begin.

      I’m using MMM_Voice_Commands and want to use MMM_SelfieShoot. If someone can help on how to use these that would be great and then I can atleast replicate it for other modules.

      My Conf

      /* Magic Mirror Config Sample
       *
       * By Michael Teeuw https://michaelteeuw.nl
       * MIT Licensed.
       *
       * For more information on how you can configure this file
       * see https://docs.magicmirror.builders/getting-started/configuration.html#general
       * and https://docs.magicmirror.builders/modules/configuration.html
       */
      let 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 or empty, is "localhost"
      	port: 8080,
      	basePath: "/", 	// The URL path where MagicMirror is hosted. If you are using a Reverse proxy
      					// you must set the sub path here. basePath must end with a /
      	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"],
      
      	useHttps: false, 		// Support HTTPS or not, default "false" will use HTTP
      	httpsPrivateKey: "", 	// HTTPS private key path, only require when useHttps is true
      	httpsCertificate: "", 	// HTTPS Certificate path, only require when useHttps is true
      
      	language: "en",
      	locale: "en-UK",
      	logLevel: ["INFO", "LOG", "WARN", "ERROR"], // Add "DEBUG" for even more logging
      	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
      
      	notifications: [
              
              {
              name: 'seflie',
              port: 11100,
              OnOff: false,
              notification: ["SELFIE_SHOOT", 'selfie']
          	}
          	
          	],  
      
      	modules: [
      		 
                  {
              module: "MMM-Voice-Commands",
              config: {
                  debug: true, //Displays end results and errors from annyang in the Log
                  autoStart: true, //Adds annyang commands when it first starts
                  activateCommand: "hello mirror", //Command to active all other commands
                  deactivateCommand: "goodbye mirror", //Command to deactivate all other commands
                  alertHeard: true, //Whether an alert should be shown when annyang hears a phrase (mostly for debug)
                  commands: {
                      "command statement :variable (optional statement)": "SOCKET_NOTIFICATION_NAME",
                      //The payload of the socket notification will be whatever is said in the :variable
                      "command statement *variable": function(param){
                          alert("Whatever is said in the *variable space is given as the "+param);
                          //These function's 'this' are bound to the module's 'this' so you can do stuff like:
                          this.sendNotification("PAGE_SELECT", "2");
                          this.sendnotifocation("SELFIE_SHOOT, selfie");
                      }
                  }
              }
          },
      
      		 {
              disabled: false,
              module: 'MMM-Astro',
              position: 'top_left',
      		      config: {
      		      sign: "leo",
      		      iconset: "4",
      		      extend: false,
      		             }
             },
          {
          module: 'MMM-SleepWake',
          config:{
             mode: 'DPMS'
          }
      },
      {
          module: "MMM-MotionDetector",
          config: {
             captureIntervalTime: 1000,
          	scoreThreshold: 20,
          	timeout: 12
          },
        },
      {
      	disabled: false,
      	module: "MMM-Selfieshot",
      	config: {
      	storePath: "./Storage/Photos",
      	width:1280,
      	height:720,
      	quality: 100,
      	device: null,
      	shootMessage: "Smile!",
      	shootCountdown: 3,
      	displayCountdown: true,
      	displayResult: true,
      	playShutter: true,
      	shutterSound: "shutter.mp3",
      	}
      },
      		{
      			module: "alert",
      		},
      		{
      			module: "updatenotification",
      			position: "top_bar"
      		},
      		{
      			module: "clock",
      			position: "top_center"
      		},
      		
      		{
        		module: "MMM-OpenWeatherMapForecast",
        		header: "Weather",
        		position: "top_right",
        		classes: "default everyone",
        		disabled: false,
        		config: {
          			  
          			iconset: "4c",
          			units: "metric",
          			useAnimatedIcons: true,
          			concise: false,
          			forecastLayout: "table",
          			showWind: true
        			}
      		},
          
      	
      	],
      	 
      };
      
      /*************** DO NOT EDIT THE LINE BELOW ***************/
      if (typeof module !== "undefined") {module.exports = config;}
      

      Voice commands conf. this is a grab from an updated conf so dont worry about the lenght, my part is at the end

      Module.register("MMM-Voice-Commands", {
      
      	defaults: {
      		debug: false, //Displays end results and errors from annyang in the Log
      		autoStart: true, //Adds annyang commands when it first starts
      		activateCommand: "hello mirror", //Command to active all other commands
      		deactivateCommand: "goodbye mirror", //Command to deactivate all other commands
      		alertHeard: false, //Wether an alert should be shown when annyang hears a phrase (mostly for debug)
      		commands: {
      			"socket test :payload": "TEST_SOCKET",
      			"function test :payload": function(payload){alert("Test: "+payload)} //in these functions 'this' is bound to the module so this.sendNotification() is valid
      		}
      	},
      
      	start: function() {
      		this.rawCommands = this.config.commands;
      		this.autoStart = this.config.autoStart;
      		this.activateCommand = this.config.activateCommand;
      		this.deactivateCommand = this.config.deactivateCommand;
      		this.alertHeard = this.config.alertHeard;
      		this.debug = this.config.debug;
      
      		this.commands = {};
      		this.active = false
      
      		this.initAnnyang();
      	},
      
      	initAnnyang: function(){
      		const self = this;
      		if (annyang) {
      
      			//Iterate over commands list to create a valid annyang command object
      			for (var key in self.rawCommands) {
      				if (self.rawCommands.hasOwnProperty(key)) {
      					//If the property is already a function, leave it that way. Otherwise assume it is a socket name
      					if(typeof self.rawCommands[key] !== "function"){
      						//Construct a valid function...
      						function createCommand(socket){
      							return function(payload){
      								self.sendNotification(socket, payload);
      							}
      						}
      
      						//...And then put it in the object
      						self.commands[key] = createCommand(self.rawCommands[key])
      					}else{
      						self.commands[key] = self.rawCommands[key].bind(self);
      					}
      				}
      			}
      
      			if(self.autoStart){
      				annyang.addCommands(self.commands);
      				self.active = true;
      			}
      
      			const standardCommands = {}
      			standardCommands[self.activateCommand] = function(){
      				if(!self.active){
      					self.addCommands(self.commands);
      					self.active = true;
      					self.sendNotification("SHOW_ALERT", {type: "notification", title: "Voice Commands", message: "Activated"});
      				}else{
      					self.sendNotification("SHOW_ALERT", {type: "notification", title: "Voice Commands", message: "Already Active"});
      				}
      			}
      
      			standardCommands[self.deactivateCommand] = function(){
      				if(self.active){
      					self.removeCommands(self.commands);
      					self.active = false;
      					self.sendNotification("SHOW_ALERT", {type: "notification", title: "Voice Commands", message: "Deactivated"});
      				}else{
      					self.sendNotification("SHOW_ALERT", {type: "notification", title: "Voice Commands", message: "Already Deactivated"});
      				}
      			}
      
      			annyang.addCommands(standardCommands);
      
      			annyang.start();
      
      			if(self.debug){
      				annyang.addCallback("result", function(e){
      					Log.log(e)
      				})
      
      				annyang.addCallback("error", function(e){
      					Log.log(e)
      				})
      			}
      
                  // This is the code that I added to add a similar experience to Hello-Lucy
            if (self.alertHeard) {
              annyang.addCallback("result", function(e) {
                for (var i = 0; i < e.length; i++) {
      
                  // Get First result from annyang, which will be closest speech match
                  // Format notification into format to match MMM-HelloLucy
                  var notification = e[i]
                    .toUpperCase()
                    .trim()
                    .replace(" ", "_");
      
                  // MMM-Voice-Commands sends notification to MMM-GoogleMapsTraffic to HIDE
                  if (notification === "HIDE_TRAFFIC") {
                    self.sendNotification("HIDE_TRAFFIC");
                  }
      
                  // Check if notification is requesting location
                  else if (notification.indexOf("SHOW_TRAFFIC") > -1) {
                    // MMM-Voice-Commands sends notification to MMM-GoogleMapsTraffic to SHOW Default location per config
                    if (notification === "SHOW_TRAFFIC") {
                      self.sendNotification("SHOW_TRAFFIC");
                    }
      
                    // MMM-Voice-Commands sends notification to MMM-GoogleMapsTraffic to SHOW passed location from voice
                    else {
                      var indexOfNotification = notification.indexOf("SHOW_TRAFFIC");
                      var strippedPayload = notification
                        .replace("_", " ")
                        .substr(ind + 8, notification.length)
                        .trim();
                      var location = st
                        .replace("of", "")
                        .trim()
                        .replace("for", "")
                        .trim();
                      self.sendNotification("SHOW_TRAFFIC", location);
                    }
                  }
      
      
                  ////////////////////////////////////////////////////////////////////////////////////////////////////////
                  // Add Additional Modules similar to below
      
                  // MMM-Voice-Commands sends notification to MMM-Cocktails to HIDE
                  else if (notification === "HIDE_COCKTAILS") {
                    self.sendNotification("HIDE_COCKTAILS");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Cocktails to SHOW
                  else if (notification === "SHOW_COCKTAILS") {
                    self.sendNotification("SHOW_COCKTAILS");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Clock to HIDE
                  else if (notification === "HIDE_CLOCK") {
                    self.sendNotification("HIDE_CLOCK");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Clock to SHOW
                  else if (notification === "SHOW_CLOCK") {
                    self.sendNotification("SHOW_CLOCK");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Newsfeed to HIDE
                  else if (notification === "HIDE_NEWSFEED") {
                    self.sendNotification("HIDE_NEWSFEED");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Newsfeed to SHOW
                  else if (notification === "SHOW_NEWSFEED") {
                    self.sendNotification("SHOW_NEWSFEED");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-AlarmClock to HIDE
                  else if (notification === "HIDE_ALARM") {
                    this.sendNotification("HIDE_ALARM");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-AlarmClock to SHOW
                  else if (notification === "SHOW_ALARM") {
                    this.sendNotification("SHOW_ALARM");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Back to HIDE
                  else if (notification === "HIDE_BACKGROUND") {
                    this.sendNotification("HIDE_BACKGROUND");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Back to SHOW
                  else if (notification === "SHOW_BACKGROUND") {
                    this.sendNotification("SHOW_BACKGROUND");
                  }
      
                  // MMM-Voice-Commands sends notification to calendar to HIDE
                  else if (notification === "HIDE_CALENDAR") {
                    this.sendNotification("HIDE_CALENDAR");
                  }
      
                  // MMM-Voice-Commands sends notification to calendar to SHOW
                  else if (notification === "SHOW_CALENDAR") {
                    this.sendNotification("SHOW_CALENDAR");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-CARDS to HIDE
                  else if (notification === "HIDE_CARDS") {
                    this.sendNotification("HIDE_CARDS");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-CARDS to SHOW
                  else if (notification === "SHOW_CARDS") {
                    this.sendNotification("SHOW_CARDS");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Census to HIDE
                  else if (notification === "HIDE_CENSUS") {
                    this.sendNotification("HIDE_CENSUS");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Census to SHOW
                  else if (notification === "SHOW_CENSUS") {
                    this.sendNotification("SHOW_CENSUS");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-CLOCK to HIDE
                  else if (notification === "HIDE_CLOCK") {
                    this.sendNotification("HIDE_CLOCK");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-CLOCK to SHOW
                  else if (notification === "SHOW_CLOCK") {
                    this.sendNotification("SHOW_CLOCK");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-COCKTAILS to HIDE
                  else if (notification === "HIDE_COCKTAILS") {
                    this.sendNotification("HIDE_COCKTAILS");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-COCKTAILS to SHOW
                  else if (notification === "SHOW_COCKTAILS") {
                    this.sendNotification("SHOW_COCKTAILS");
                  }
      
                  // MMM-Voice-Commands sends notification to compliments to HIDE
                  else if (notification === "HIDE_COMPLIMENTS") {
                    this.sendNotification("HIDE_COMPLIMENTS");
                  }
      
                  // MMM-Voice-Commands sends notification to compliments to SHOW
                  else if (notification === "SHOW_COMPLIMENTS") {
                    this.sendNotification("SHOW_COMPLIMENTS");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-NOAA to HIDE
                  else if (notification === "HIDE_COWBOY") {
                    this.sendNotification("HIDE_COWBOY");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-NOAA to SHOW
                  else if (notification === "SHOW_COWBOY") {
                    this.sendNotification("SHOW_COWBOY");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-EOL to HIDE
                  else if (notification === "HIDE_DARWIN") {
                    this.sendNotification("HIDE_DARWIN");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-EOL to SHOW
                  else if (notification === "SHOW_DARWIN") {
                    this.sendNotification("SHOW_DARWIN");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-EARTH to HIDE
                  else if (notification === "HIDE_EARTH") {
                    this.sendNotification("HIDE_EARTH");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-EARTH to SHOW
                  else if (notification === "SHOW_EARTH") {
                    this.sendNotification("SHOW_EARTH");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-EyeCandy to HIDE
                  else if (notification === "HIDE_EYECANDY") {
                    this.sendNotification("HIDE_EYECANDY");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-EyeCandy to SHOW
                  else if (notification === "SHOW_EYECANDY") {
                    this.sendNotification("SHOW_EYECANDY");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Events to HIDE
                  else if (notification === "HIDE_EVENTS") {
                    this.sendNotification("HIDE_EVENTS");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Events to SHOW
                  else if (notification === "SHOW_EVENTS") {
                    this.sendNotification("SHOW_EVENTS");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-rfacts to HIDE
                  else if (notification === "HIDE_FAX") {
                    this.sendNotification("HIDE_FAX");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-rfacts to SHOW
                  else if (notification === "SHOW_FAX") {
                    this.sendNotification("SHOW_FAX");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Glock to HIDE
                  else if (notification === "HIDE_FLIPPER") {
                    this.sendNotification("HIDE_FLIPPER");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Glock to SHOW
                  else if (notification === "SHOW_FLIPPER") {
                    this.sendNotification("SHOW_FLIPPER");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-FlightsAbove to HIDE
                  else if (notification === "HIDE_FLIGHTS") {
                    this.sendNotification("HIDE_FLIGHTS");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-FlightsAbove to SHOW
                  else if (notification === "SHOW_FLIGHTS") {
                    this.sendNotification("SHOW_FLIGHTS");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Fortune to HIDE
                  else if (notification === "HIDE_FORTUNE") {
                    this.sendNotification("HIDE_FORTUNE");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Fortune to SHOW
                  else if (notification === "SHOW_FORTUNE") {
                    this.sendNotification("SHOW_FORTUNE");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Gas to HIDE
                  else if (notification === "HIDE_GAS") {
                    this.sendNotification("HIDE_GAS");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Gas to SHOW
                  else if (notification === "SHOW_GAS") {
                    this.sendNotification("SHOW_GAS");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-JEOPARDY to HIDE
                  else if (notification === "HIDE_JEOPARDY") {
                    this.sendNotification("HIDE_JEOPARDY");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-JEOPARDY to SHOW
                  else if (notification === "SHOW_JEOPARDY") {
                    this.sendNotification("SHOW_JEOPARDY");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-LICE to HIDE
                  else if (notification === "HIDE_LICE") {
                    this.sendNotification("HIDE_LICE");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-LICE to SHOW
                  else if (notification === "SHOW_LICE") {
                    this.sendNotification("SHOW_LICE");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-URHere to HIDE
                  else if (notification === "HIDE_LOCATION") {
                    this.sendNotification("HIDE_LOCATION");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-URHere to SHOW
                  else if (notification === "SHOW_LOCATION") {
                    this.sendNotification("SHOW_LOCATION");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Lottery to HIDE
                  else if (notification === "HIDE_LOTTERY") {
                    this.sendNotification("HIDE_LOTTERY");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Lottery to SHOW
                  else if (notification === "SHOW_LOTTERY") {
                    this.sendNotification("SHOW_LOTTERY");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-EasyPix to HIDE
                  else if (notification === "HIDE_LUCY") {
                    this.sendNotification("HIDE_LUCY");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-EasyPix to SHOW
                  else if (notification === "SHOW_LUCY") {
                    this.sendNotification("SHOW_LUCY");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Lunartic to HIDE
                  else if (notification === "HIDE_MOON") {
                    this.sendNotification("HIDE_MOON");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Lunartic to SHOW
                  else if (notification === "SHOW_MOON") {
                    this.sendNotification("SHOW_MOON");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-NASA to HIDE
                  else if (notification === "HIDE_NASA") {
                    this.sendNotification("HIDE_NASA");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-NASA to SHOW
                  else if (notification === "SHOW_NASA") {
                    this.sendNotification("SHOW_NASA");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-NEO to HIDE
                  else if (notification === "HIDE_NEO") {
                    this.sendNotification("HIDE_NEO");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-NEO to SHOW
                  else if (notification === "SHOW_NEO") {
                    this.sendNotification("SHOW_NEO");
                  }
      
                  // MMM-Voice-Commands sends notification to newsfeed to HIDE
                  else if (notification === "HIDE_NEWS") {
                    this.sendNotification("HIDE_NEWS");
                  }
      
                  // MMM-Voice-Commands sends notification to newsfeed to SHOW
                  else if (notification === "SHOW_NEWS") {
                    this.sendNotification("SHOW_NEWS");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-PETFINDER to HIDE
                  else if (notification === "HIDE_PETFINDER") {
                    this.sendNotification("HIDE_PETFINDER");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-PETFINDER to SHOW
                  else if (notification === "SHOW_PETFINDER") {
                    this.sendNotification("SHOW_PETFINDER");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-FMI to HIDE
                  else if (notification === "HIDE_PHONE") {
                    this.sendNotification("HIDE_PHONE");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-FMI to SHOW
                  else if (notification === "SHOW_PHONE") {
                    this.sendNotification("SHOW_PHONE");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-ImageSlideshow to HIDE
                  else if (notification === "HIDE_PICTURES") {
                    this.sendNotification("HIDE_PICTURES");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-ImageSlideshow to SHOW
                  else if (notification === "SHOW_PICTURES") {
                    this.sendNotification("SHOW_PICTURES");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-PilotWX to HIDE
                  else if (notification === "HIDE_PILOTS") {
                    this.sendNotification("HIDE_PILOTS");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-PilotWX to SHOW
                  else if (notification === "SHOW_PILOTS") {
                    this.sendNotification("SHOW_PILOTS");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-AfterShip to HIDE
                  else if (notification === "HIDE_SHIPPING") {
                    this.sendNotification("HIDE_SHIPPING");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-AfterShip to SHOW
                  else if (notification === "SHOW_SHIPPING") {
                    this.sendNotification("SHOW_SHIPPING");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-ISS to HIDE
                  else if (notification === "HIDE_STATION") {
                    this.sendNotification("HIDE_STATION");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-ISS to SHOW
                  else if (notification === "SHOW_STATION") {
                    this.sendNotification("SHOW_STATION");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-PC-Stats to HIDE
                  else if (notification === "HIDE_STATS") {
                    this.sendNotification("HIDE_STATS");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-PC-Stats to SHOW
                  else if (notification === "SHOW_STATS") {
                    this.sendNotification("SHOW_STATS");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Sudoku to HIDE
                  else if (notification === "HIDE_SUDOKU") {
                    this.sendNotification("HIDE_SUDOKU");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Sudoku to SHOW
                  else if (notification === "SHOW_SUDOKU") {
                    this.sendNotification("SHOW_SUDOKU");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-SunRiseSet to HIDE
                  else if (notification === "HIDE_SUNRISE") {
                    this.sendNotification("HIDE_SUNRISE");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-SunRiseSet to SHOW
                  else if (notification === "SHOW_SUNRISE") {
                    this.sendNotification("SHOW_SUNRISE");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-SORT to HIDE
                  else if (notification === "HIDE_TIDES") {
                    this.sendNotification("HIDE_TIDES");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-SORT to SHOW
                  else if (notification === "SHOW_TIDES") {
                    this.sendNotification("SHOW_TIDES");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-EventHorizon to HIDE
                  else if (notification === "HIDE_TIMER") {
                    this.sendNotification("HIDE_TIMER");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-EventHorizon to SHOW
                  else if (notification === "SHOW_TIMER") {
                    this.sendNotification("SHOW_TIMER");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-ATM to HIDE
                  else if (notification === "HIDE_TRIVIA") {
                    this.sendNotification("HIDE_TRIVIA");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-ATM to SHOW
                  else if (notification === "SHOW_TRIVIA") {
                    this.sendNotification("SHOW_TRIVIA");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Voice-Commands to HIDE
                  else if (notification === "HIDE_VOICE") {
                    this.hide(1000);
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-Voice-Commands to SHOW
                  else if (notification === "SHOW_VOICE") {
                    this.show(1000);
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-BMW-DS to HIDE
                  else if (notification === "HIDE_WEATHER") {
                    this.sendNotification("HIDE_WEATHER");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-BMW-DS to SHOW
                  else if (notification === "SHOW_WEATHER") {
                    this.sendNotification("SHOW_WEATHER");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-EarthWinds to HIDE
                  else if (notification === "HIDE_WIND") {
                    this.sendNotification("HIDE_WIND");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-EarthWinds to SHOW
                  else if (notification === "SHOW_WIND") {
                    this.sendNotification("SHOW_WIND");
                  }
      
                  // MMM-Voice-Commands sends notification to MMM-SelfieShoot to CAPTURE
                  else if (notification === "SELFIE_SHOOT") {
                    this.sendNotification("SELFIE_SHOOT");
                  }
                }
              });
            }
          }
        },
      
      	addCommands: function(commands){
      		annyang.abort();
      		annyang.addCommands(commands);
      		annyang.start();
      	},
      
      	removeCommands: function(commands){
      		annyang.abort();
      		var test1 = typeof commands;
      		var test2 = Array.isArray(commands)
      		if(typeof commands === "object") annyang.removeCommands(Array.isArray(commands) ? commands : Object.keys(commands));
      		annyang.start()
      	},
      
      	getScripts: function() {
      		return[
      			this.file("js/annyang.min.js"),
      		]
      	},
      })
      
      S 1 Reply Last reply Reply Quote 0
      • S
        sdetweil @Alyx last edited by

        @alyx said in How do I use notfications:

        self.sendNotification(“SHOW_ALERT”, {type: “notification”, title: “Voice Commands”, message: “Deactivated”})

        thats all u have to do

        sendNotification(“string”, optional_parameters needed by receiver of message

        this is a broadcast… all modules get it…

        so when u figure out what the command is then do that

        self.sendNotification(“SELFIE_SHOOT”, ???)
        make sure ‘self’ is set when u make the call

        where ??? is optional parms, (don’t supply it if not used)

        Sam

        Create a working config
        How to add modules

        A 1 Reply Last reply Reply Quote 0
        • A
          Alyx @sdetweil last edited by

          @sdetweil

          Ok so for selfie shoot all I need to do is to input in my MM conf, self.sendNotification(“SELFIE_SHOOT”, “selfie”) ‘selfie’ is the voice command i wish to call. And I put this where i call the selfie_shoot module or the voice commands module?

          Sorry I’ll need some hand holding with the request haha

          S 1 Reply Last reply Reply Quote 0
          • S
            sdetweil @Alyx last edited by

            @alyx said in How do I use notfications:

            self.sendNotification(“SELFIE_SHOOT”,

            sorry, after looking at the module, i don’t understand what its looking for in its config…

            supposedly you would have to write no code.

            Sam

            Create a working config
            How to add modules

            A 1 Reply Last reply Reply Quote 0
            • A
              Alyx @sdetweil last edited by

              @sdetweil so then should I remove my notification code and any reference I’ve made?

              S 1 Reply Last reply Reply Quote 0
              • S
                sdetweil @Alyx last edited by

                @alyx i don’t know.

                Sam

                Create a working config
                How to add modules

                A 1 Reply Last reply Reply Quote 0
                • A
                  Alyx @sdetweil last edited by

                  @sdetweil I did there with no results, how would you usually set this up? I’ve tried following the documentation but its hard for myself to understand.

                  https://github.com/mykle1/Hello-Lucy/blob/master/How to add modules to Hello-Lucy

                  The dev of the custom config I use said to follow this but it doesnt make sense to me

                  S 1 Reply Last reply Reply Quote 0
                  • A
                    Alyx last edited by

                    I was playing around with the default compliments module and apparently it is supposed to work out of the box with the voice_commands config I have although that doesnt seem to be the case… Am I doing something wrong form the start?

                    1 Reply Last reply Reply Quote 0
                    • S
                      sdetweil @Alyx last edited by

                      @alyx are u an english speaker? if not translate the file to your language

                      Sam

                      Create a working config
                      How to add modules

                      A 1 Reply Last reply Reply Quote 0
                      • A
                        Alyx @sdetweil last edited by

                        @sdetweil yep I am, I’m thinking of moving to another module. I’m thinking Hello Lucy, do you have any recommendations? As long as I can make it communicate with a module I dont care haha

                        S 1 Reply Last reply Reply Quote 0
                        • 1
                        • 2
                        • 1 / 2
                        • First post
                          Last post
                        Enjoying MagicMirror? Please consider a donation!
                        MagicMirror created by Michael Teeuw.
                        Forum managed by Paul-Vincent Roll and Rodrigo Ramírez Norambuena.
                        This forum is using NodeBB as its core | Contributors
                        Contact | Privacy Policy