• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
MagicMirror Forum
  • Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

VoiceControl module

Scheduled Pinned Locked Moved Utilities
79 Posts 27 Posters 97.4k Views 29 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    tyho
    last edited by Jul 31, 2016, 8:11 PM

    I still have a little problem. I want to register that if the monitor is on or off. It’s working very well except on the autosleep function that is loaded in the node_helper.

    My notification.js

    var awake = 1;
    Module.register("notification",{
    
    	// Default module config.
    	defaults: {
    		text: "",
    		animationSpeed: 500,
    	},
    	notificationReceived: function(notification, callback) {
    		var self = this;
    				if (notification === "go_to_sleep" && awake === 1){
                		this.config.text = "going to sleep...";
    					this.updateDom(this.config.animationSpeed);
    					setTimeout(function(){
    						self.sendSocketNotification('go_to_sleep', {});
    						self.config.text = "";
    						self.updateDom(self.config.animationSpeed);
    					}, 1000);
    					awake = 0;
    					callback(awake);
            		}
    				if (notification === "wake_up" && awake === 0){
    					this.sendSocketNotification('wake_up', {});
                		this.config.text = "waking up...";
    					this.updateDom(this.config.animationSpeed);
    					setTimeout(function(){
    						self.config.text = "";
    						self.updateDom(self.config.animationSpeed);
    					}, 5000);
    					awake = 1;
    					callback(awake);
            		}
    				if (notification === "autosleep"){
    					awake = 0;
    					callback(awake);
            		}
        },
    	
    	// Override dom generator.
    	getDom: function() {
    		var wrapper = document.createElement("div");
    		wrapper.innerHTML = this.config.text;
    		return wrapper;
    	}
    });
    
    

    and my node_helper.js

    'use strict';
    const NodeHelper = require('node_helper');
    const exec = require('child_process').exec;
    var timer;
    function initialize() {
    
    }
    (function(){
    	initialize();
    			autosleep();
    })();
    function autosleep(){
    	  timer=setTimeout(function(){
    		  	var self = this;
    				exec("/opt/vc/bin/tvservice -o", null);
    				self.sendSocketNotification('autosleep');
    			},  10*60*1000);
    	  }
    
    module.exports = NodeHelper.create({
      start: function () {  
      }, 
     
      socketNotificationReceived: function(notification) {
    
        if (notification === 'go_to_sleep') {
                exec("/opt/vc/bin/tvservice -o", null);
    			clearTimeout(timer);
    	}
    	if (notification === 'wake_up') {
                exec("/opt/vc/bin/tvservice -p", null);
    			exec("/bin/fbset -depth 8 && /bin/fbset -depth 16 ", null);
          		exec("/usr/bin/xrefresh",null);
    			clearTimeout(timer);
    			autosleep();
    	}
      }
    });
    

    what i want is: if the autosleep function turns my monitor off, the variable awake in the notification.js set to 0.

    any other suggestion on junky code are also welcome ^^

    1 Reply Last reply Reply Quote 0
    • A Offline
      alexyak
      last edited by alexyak Jul 31, 2016, 8:40 PM Jul 31, 2016, 8:34 PM

      If you override socketNotificationReceived in your module then you should receive the message from node_helper and can reset your flag appropriately.

      T 1 Reply Last reply Jul 31, 2016, 9:33 PM Reply Quote 0
      • T Offline
        tyho @alexyak
        last edited by Jul 31, 2016, 9:33 PM

        @alexyak how to override that module? I already call it with notifications === ‘autosleep’. And that notification gets send by the node_helper right? what am i missing?

        A 1 Reply Last reply Jul 31, 2016, 10:27 PM Reply Quote 0
        • A Offline
          alexyak @tyho
          last edited by Jul 31, 2016, 10:27 PM

          @tyho What I meant is you need to add socketNotificationReceived to your module notification.js.

          1 Reply Last reply Reply Quote 0
          • T Offline
            tyho
            last edited by Aug 1, 2016, 5:14 PM

            @alexyak i can’t get it to work. it tested:
            It sends sockets notifications from notifications.js to node_helper.js. But not from node_helper.js back to notifications.js.

            Even if i put it in the start function of the node_helper.js:

            start: function() { 
              this.sendSocketNotification("autosleep", {});
              }, 
            

            it won’t get received it my notification.js:

            socketNotificationReceived: function(notification) {
               if (notification === "autosleep") {
            	  alert("autosleep received");
            		awake = 0;
                    		}
               	},
            

            any idea? is it even possible to use it backwards?

            1 Reply Last reply Reply Quote 0
            • A Offline
              alexyak
              last edited by Aug 1, 2016, 5:18 PM

              Try to put a call in your start method of the module (notification.js) to establish the connection with node_helper. Something like that:

              this.sendSocketNotification(“CONNECT”, {});

              1 Reply Last reply Reply Quote 0
              • A Offline
                alexyak
                last edited by Sep 2, 2016, 9:28 PM

                I’ve updated the VoiceControl module to display a list of commands on the mirror:

                0_1472851592256_Screen Shot 2016-09-02 at 5.23.53 PM.png

                [ card : alexyak/voicecontrol ]

                1 Reply Last reply Reply Quote 0
                • A Offline
                  alexyak
                  last edited by alexyak Sep 3, 2016, 2:11 AM Sep 3, 2016, 2:11 AM

                  [card:alexyak/voicecontrol]

                  1 Reply Last reply Reply Quote 0
                  • B Offline
                    brumoeller
                    last edited by Sep 14, 2016, 3:31 PM

                    This is a really cool module. Does anyone know a good microphone that will work for the whole room? The mic I have only works when you are close.

                    1 Reply Last reply Reply Quote 0
                    • G Offline
                      gismo2006
                      last edited by Sep 30, 2016, 1:20 PM

                      Hi,

                      @alexyak sorry, but i have a little Problem. Maybe you can help me.

                      You write on Github in your Readme file, I have to put the code (notificationReceived: function(notification, payload, sender)…) into the module to use it. I like to controll the module Simple music player by @EoF so i clone your github files copy the code into the config.js File train and download a pmdl file. But where should i paste the code notificationReceived: function(notification, payload, sender)… In the config.js File or in the mmm-music-player.js file in folder modules simple music Player?

                      Sorry i’m new in the coding world, and now a little bit confused :-D

                      Greets gismo2006

                      J 1 Reply Last reply Sep 30, 2016, 1:40 PM Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 4
                      • 5
                      • 6
                      • 7
                      • 8
                      • 2 / 8
                      • First post
                        Last post
                      Enjoying MagicMirror? Please consider a donation!
                      MagicMirror created by Michael Teeuw.
                      Forum managed by Sam, technical setup by Karsten.
                      This forum is using NodeBB as its core | Contributors
                      Contact | Privacy Policy