Read the statement by Michael Teeuw here.
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"), ] }, })
-
@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 callwhere ??? is optional parms, (don’t supply it if not used)
-
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
-
@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.
-
@sdetweil so then should I remove my notification code and any reference I’ve made?
-
@alyx i don’t know.
-
@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
-
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?
-
@alyx are u an english speaker? if not translate the file to your language
-
@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