MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    1. Home
    2. tyho
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.
    T
    Offline
    • Profile
    • Following 0
    • Followers 1
    • Topics 2
    • Posts 57
    • Groups 0

    tyho

    @tyho

    11
    Reputation
    2.1k
    Profile views
    57
    Posts
    1
    Followers
    0
    Following
    Joined
    Last Online

    tyho Unfollow Follow

    Best posts made by tyho

    • RE: My voice-controlled magic mirror (voice powered by Jasper)

      @zach @Mitchfarino @alexyak

      Yea the voice module is working very well!
      https://forum.magicmirror.builders/topic/425/voicecontrol-module

      I made a notification module that notify when i said something in the voicecontrol module. The notification module then runs the command.

      I have it working to turn off and on my monitor so far. The next thing i will try is to make a GPIO pin to switch on a led strip behind the mirror.

      The only exception in this voice module is that it doens’t work with dictornary text. Only preprogrammed words.
      So we can’t call things like: Show me a map of “cityname”. Cuz cityname can be anything.

      Maybe someone get the knowledge to expand the voice module to activate freetext. Like use Snowboy for “Show me the map of” and then use modules like annyang for the last word(s).

      posted in Show your Mirror
      T
      tyho
    • RE: MMM-MovieInfo

      @strawberry-3.141 This is awesome! i’ll install when i am home.

      posted in Entertainment
      T
      tyho
    • RE: Voice/motion control

      @KirAsh4 @sullit @Mitchfarino @MichMich
      i managed to make a github. But i still don’t get the pull push thing but that will come later.

      You can see what i have made so far here: https://github.com/ME-TYHO/MM2-Voice-Control-Module

      I hope some guys here can help make this module.

      posted in Requests
      T
      tyho
    • RE: Trafficmaps

      anyone who want to show a google staticmap on there mirror. Here is the code:

      0_1470659814707_screenshot.png

      /* global Module */
      
      /* Magic Mirror
       * Module: staticmap
       *
       */
        
      Module.register("staticmap",{
      	defaults: {
      		center: "new york",
      		zoom: 14,
      		mapwidth: 600,
      		mapheight: 500,
      		highway: "on",
      		arterial: "on",
      		local: "on"
      	},
      
      start: function(){
      	Log.info('Starting module: ' + this.name);
      },
      
      
      
      	getDom: function() {
      		var wrapper = document.createElement("div");
      		var img = document.createElement("img");
      		img.src = "https://maps.googleapis.com/maps/api/staticmap?center=" + this.config.center + 
      		"&zoom=" + this.config.zoom +
      		"&size=" + this.config.mapwidth + "x" + this.config.mapheight + 
      		"&maptype=roadmap" +
      		"&style=feature:road.highway|visibility:" + this.config.highway +			  
      		"&style=feature:road.arterial|visibility:" + this.config.arterial +	
      		"&style=feature:road.local|visibility:" + this.config.local + 
      		"&style=feature:road|invert_lightness:true|saturation:-100|weight:1|lightness:1" +
      		"&style=feature:administrative|invert_lightness:true|saturation:-100|weight:1|lightness:1|visibility:on" + 
      		"&style=feature:poi|invert_lightness:true|weight:1|saturation:-100|lightness:1|visibility:on" +
      		"&style=feature:transit|invert_lightness:true|saturation:-100|lightness:1|weight:1|visibility:on" +
      		"&style=feature:landscape|invert_lightness:true|weight:1|saturation:-100|lightness:1|visibility:on" +
      		"&style=feature:water|invert_lightness:true|weight:1|saturation:-100|lightness:1|visibility:on" +
      		"&style=feature:road|element:labels.text.fill|lightness:100" +
      		"&style=feature:road|element:labels.text.stroke|lightness:-100";
      		img.width = this.config.mapwidth;
      		img.height = this.config.mapheight;
      		wrapper.appendChild(img);
      		return wrapper;
      	}
      });
      
      posted in Development
      T
      tyho
    • RE: PIR-Sensor - put your mirror to sleep if not used

      @sameershah23 maybe power off and on your hdmi signal and let your monitor/tv go to sleep mode when no signal.

      The command will be:
      OFF:
      /opt/vc/bin/tvservice --off
      ON:
      /opt/vc/bin/tvservice --preferred && sudo chvt 6 && sudo chvt 7

      You can easily execute commands in node.js

      posted in System
      T
      tyho
    • RE: VoiceControl module

      @Pierre @simonsays
      First of all sorry for the long waiting…
      I guess u already have run the voice control module with the speech files (pmdl) from snopwboy and put this in your root.
      Here is my config part for the VoiceControl module:

      {
                  module: 'voicecontrol',
                  config: {
                      models: [
                          {
                              keyword: "gotosleep",   // keyword 
                              file: "gotosleep.pmdl", // trained model file name
                              message: "go_to_sleep"   // notification message that's broadcast in the MagicMirror app
                          },
      					{
                              keyword: "wake up",   // keyword 
                              file: "Wake_up.pmdl", // trained model file name
                              message: "wake_up"   // notification message that's broadcast in the MagicMirror app
                          },
                      ]
                  }
              },
      		{
              	module: 'notification',
              	position: 'bottom_right',    // This can be any of the regions.
          	},
      

      Because the voicecontrol module send a notafication to all other modules i wrote a separate module to show text messages for what is happening:
      notification.js

      /* global Module */
      
      /* Magic Mirror
       * Module: notification
       */
      var awake = 1;
      Module.register("notification",{
      
      	// Default module config.
      	defaults: {
      		text: "",
      		animationSpeed: 500,
      	},
      	start: function() { 
              this.sendSocketNotification("CONNECT", {});
          },
      
      	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);
              		}
          },
      	socketNotificationReceived: function(notification) {
         if (notification === "autosleep") {
      					awake = 0;
              		}
         	},
      	// Override dom generator.
      	getDom: function() {
      		var wrapper = document.createElement("div");
      		wrapper.innerHTML = this.config.text;
      		return wrapper;
      	}
      });
      

      In my node helper i put the exec code to turn on and off my monitor.
      node_helper.js

      'use strict';
      const NodeHelper = require('node_helper');
      const exec = require('child_process').exec;
      var timer;
      //function initialize() {
      //}
      //(function(){
      //	initialize();
      //			autosleep();
      //})();
      
      
      module.exports = NodeHelper.create({
        start: function() {
      		this.started = false;
        }, 
       
        socketNotificationReceived: function(notification) {
      	if (notification === "CONNECT") {
      			clearTimeout(timer);
      			this.autosleep();
      	}
          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);
      			this.autosleep();
      	}
        },
        autosleep: function(){
      	  var self = this;
      	  timer=setTimeout(function(){
      				exec("/opt/vc/bin/tvservice -o", null);
      			    self.sendSocketNotification("autosleep", {});
      			},  10*60*1000);
        }
      });
      

      I also put conditions in it so it can only wake up when it’s asleep. There is also a autosleep function thats now on 10 minutes.

      posted in Utilities
      T
      tyho
    • RE: Voice/motion control

      Yea i have finaly installed node-pocketsphinx. It needs a lot of dependeties. I start find out now how get a voice command out of it. Are u using node-pocketsphinx as well? Or are u using it standalone? Or maybe the pocketsphinx.js?
      I like to hear if you get something working.

      posted in Requests
      T
      tyho
    • RE: Voice/motion control

      Ok, I find out that https://syl22-00.github.io/pocketsphinx.js/ is the best bet.

      I have run pocketsphinx before and it’s really fast. So i have no doubt the js port is also good.

      But with my lack of skill i don’t know how to create a module. Who can?

      @michmich and @KirAsh4 you already seen this one?

      posted in Requests
      T
      tyho
    • RE: Voice/motion control

      @ronny3050 i guess you can better try pocketsphinx.js

      posted in Requests
      T
      tyho
    • RE: Voice/motion control

      wow looking good! is there an ability to turn on and off the monitor?
      Is this free speech (dictionary) or only pre-programmed words?

      posted in Requests
      T
      tyho

    Latest posts made by tyho

    • RE: VoiceControl module

      @Pierre @simonsays
      First of all sorry for the long waiting…
      I guess u already have run the voice control module with the speech files (pmdl) from snopwboy and put this in your root.
      Here is my config part for the VoiceControl module:

      {
                  module: 'voicecontrol',
                  config: {
                      models: [
                          {
                              keyword: "gotosleep",   // keyword 
                              file: "gotosleep.pmdl", // trained model file name
                              message: "go_to_sleep"   // notification message that's broadcast in the MagicMirror app
                          },
      					{
                              keyword: "wake up",   // keyword 
                              file: "Wake_up.pmdl", // trained model file name
                              message: "wake_up"   // notification message that's broadcast in the MagicMirror app
                          },
                      ]
                  }
              },
      		{
              	module: 'notification',
              	position: 'bottom_right',    // This can be any of the regions.
          	},
      

      Because the voicecontrol module send a notafication to all other modules i wrote a separate module to show text messages for what is happening:
      notification.js

      /* global Module */
      
      /* Magic Mirror
       * Module: notification
       */
      var awake = 1;
      Module.register("notification",{
      
      	// Default module config.
      	defaults: {
      		text: "",
      		animationSpeed: 500,
      	},
      	start: function() { 
              this.sendSocketNotification("CONNECT", {});
          },
      
      	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);
              		}
          },
      	socketNotificationReceived: function(notification) {
         if (notification === "autosleep") {
      					awake = 0;
              		}
         	},
      	// Override dom generator.
      	getDom: function() {
      		var wrapper = document.createElement("div");
      		wrapper.innerHTML = this.config.text;
      		return wrapper;
      	}
      });
      

      In my node helper i put the exec code to turn on and off my monitor.
      node_helper.js

      'use strict';
      const NodeHelper = require('node_helper');
      const exec = require('child_process').exec;
      var timer;
      //function initialize() {
      //}
      //(function(){
      //	initialize();
      //			autosleep();
      //})();
      
      
      module.exports = NodeHelper.create({
        start: function() {
      		this.started = false;
        }, 
       
        socketNotificationReceived: function(notification) {
      	if (notification === "CONNECT") {
      			clearTimeout(timer);
      			this.autosleep();
      	}
          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);
      			this.autosleep();
      	}
        },
        autosleep: function(){
      	  var self = this;
      	  timer=setTimeout(function(){
      				exec("/opt/vc/bin/tvservice -o", null);
      			    self.sendSocketNotification("autosleep", {});
      			},  10*60*1000);
        }
      });
      

      I also put conditions in it so it can only wake up when it’s asleep. There is also a autosleep function thats now on 10 minutes.

      posted in Utilities
      T
      tyho
    • RE: Trafficmaps

      @alexyak Thnx for the module! I will try it when i am home :)

      posted in Development
      T
      tyho
    • RE: MMM-MovieInfo

      @strawberry-3.141 This is awesome! i’ll install when i am home.

      posted in Entertainment
      T
      tyho
    • RE: Trafficmaps

      @alexyak that would be awesome. I guess there will be much interest for a module like this looking on the topic views ^^

      posted in Development
      T
      tyho
    • RE: Trafficmaps

      @alexyak What i tried to create is a map view from my home to my work. With on this map the trafficjam/delay. (google can do with the red orange green lines and bing with the triangles). With this map i can see in the morning when i wake up, if i have to leave earlier because of traffic jam. This where my first thoughts for the module. (but with my ms frontpage experience i can’t get this working ^^)

      As a second thought i had in mind to use your voice module (or facial recgnition module) to switch between my map and that of my girlfriend. So another map is loaded.

      In the google static map that i already created there is no option to add a traffic layer.

      In both google maps and bing maps there are style options to make the map black and white for better display. and for example the traffic jam could be red displayed.

      posted in Development
      T
      tyho
    • RE: Trafficmaps

      i found a example of bing maps: https://github.com/jwalgran/bing

      Anyone who can turn this into a module? I already tried but no succes :(

      posted in Development
      T
      tyho
    • RE: Voice/motion control

      wow looking good! is there an ability to turn on and off the monitor?
      Is this free speech (dictionary) or only pre-programmed words?

      posted in Requests
      T
      tyho
    • RE: Movie info module

      @strawberry-3.141 I’m looking out to it!

      posted in Requests
      T
      tyho
    • RE: Trafficmaps

      I am also trying the bing option seperately but also no result. I’ll keep trying. I am wondering why there arn’t any scripts on the web yet. I think this is for there experts among us ^^

      posted in Development
      T
      tyho
    • RE: Trafficmaps

      i am feeling close but also so far far away ^^ ghehe

      Module.register("trafficmaps",{
      	defaults: {
      	},
      
      	start: function(){
      		Log.info('Starting module: ' + this.name);
      	},
      
      	initMap: function(){
      		var map;
              map = new google.maps.Map(document.getElementById('map'), {
                center: {lat: -34.397, lng: 150.644},
                zoom: 8
              });
      	},
      
      
      	getDom: function() {
      		var wrapper = document.createElement("div");
      		var mapdiv = document.getElementById("map");	
      		wrapper.appendChild(mapdiv);
      		var maps = document.createElement('script');
      		maps.type = 'text/javascript'; maps.async = true; maps.defer = true;
      		maps.src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=" + this.initMap;
      		wrapper.appendChild(maps);
      		return wrapper;
      	}
      });
      

      This script hangs… and it prevents other modules loading…

      posted in Development
      T
      tyho