@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
Read the statement by Michael Teeuw here.
Posts
-
RE: How do I use notfications
-
RE: How do I use notfications
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?
-
RE: How do I use notfications
@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
-
RE: How do I use notfications
@sdetweil so then should I remove my notification code and any reference I’ve made?
-
RE: How do I use notfications
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
-
How do I use notfications
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"), ] }, })
-
RE: Mic keeps smapping on and off
@alyx ok so I have managed to solve this in a way that is stupidly easy and obvious…
Just start magic mirror in server mode and be sure to use in in the chrome browser (firefox didnt work)
The input is stable and seems to be working, now I just have to find working voice modules for my needs haha
-
RE: Mic keeps smapping on and off
@sdetweil ah on bugsounet’s site? Thanks man really appreciate all your time with this thread
-
RE: Mic keeps smapping on and off
@sdetweil ah ok, I actually wouldn’t know how to do that. Is there any documentation on sending notifications to other modules? Specifically with voice control modules?
Honestly I dont mind starting from ther beginning and working with a new voice command module if it works…
-
RE: Mic keeps smapping on and off
@sdetweil ah I wouldn’t have google assistant to make it work sadly…
Would t not work anyways if I cant the request via a notification?