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
-
@alyx hello-lucy never worked for me… poor voice recognition, have to repeat myself 4 or 5 times…
-
@sdetweil Ah damn, what would you recommend then? I need the interface to be voice driven
-
@alyx as I said before, then only one I KNOW works is GoogleAssistant, BUT you ALSO have to do extra work to make YOUR command choice work. but there is little documentation on that, you have to discover it…
so its a lot MORE difficult than what u are already working on.
-
@sdetweil Right so i’m not left with much choice then, is magic mirror left in the past then with the lack of support/ documentation?
-
@alyx no… magic mirror is the runtime the modules plug into …
I am here providing support, voluntary… but module support is up to the author.
the voice_command thing is 3 years old.there are 100’s of modules… i don’t even TRY to learn them… but I look for install and config problems, and new users.
but in many cases you the user, have to do extraordinary things to make some of these older modules work. BUT u need skills to do it
we are a shared community… some users jump in to help on specific modules, or types of modules. .
but still voluntary… some authors take the summer off, and work on modules in the winter… -
@sdetweil Understandable Sam, the support is of course appreciated as I mentioned before. My self studies can only take me so far in a certain amount of time is all.
I’ll take your advise with google assistant for now and se if I can find some documentation regarding implementing other modules. I saw some PM2 ones working with Alexa in videos so that my plan after.
-
@alyx ok, alexa here is a pain in the rear…
for GA, look at the recipes folder
-
@sdetweil ah ok will do then haha cheers
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login