MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    1. Home
    2. tyho
    3. Posts
    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

    Posts

    Recent Best Controversial
    • 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
    • Movie info module

      Like a movie fanatic i am interested in a movie info providing module. Something like new in theaters and new on dvd/blu-ray. More people like this? Anyone who can create something like this?

      There are a several api’s on the web. , OMDb, IMDB, ThemovieDB

      posted in Requests
      T
      tyho
    • RE: Trafficmaps

      ok just for the record. if i got the most simple maps js api code:

      <!DOCTYPE html>
      <html>
        <head>
          <title>Simple Map</title>
          <meta name="viewport" content="initial-scale=1.0">
          <meta charset="utf-8">
          <style>
            html, body {
              height: 100%;
              margin: 0;
              padding: 0;
            }
            #map {
              height: 100%;
            }
          </style>
        </head>
        <body>
          <div id="map"></div>
          <script>
            var map;
            function initMap() {
              map = new google.maps.Map(document.getElementById('map'), {
                center: {lat: -34.397, lng: 150.644},
                zoom: 8
              });
            }
          </script>
          <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"
          async defer></script>
        </body>
      </html>
      

      can i just create a module with:
      var x = document.getElementById("map").id;for the div?
      var x = document.createElement("SCRIPT");for the script tags? (w3schools said it supports async and defer)
      and then create 2 functions. 1 for the src api url that i can callback within the script tags and 1 for the initMap that i can callback after the scr url?
      Is this good thinking or is it not that simple?

      posted in Development
      T
      tyho
    • RE: Trafficmaps

      Good one! i will see if i can get something working.

      What i try to do is:

      • Get a map with a route to my work.

      • Get traffic status along this route.

      • Style the maps so it’s nice visable through the mirror. (black/white maps and red lines/triangels for traffic jam.

      • Abillity to switch route with @alexyak voicecontrol module. (work me = to amsterdam) (work girlfriend = to utrecht)

      This are a few wishes. But i am happy already if i get the first two working ^^ i am not skilled at node and js at all… any help is appreciated.

      posted in Development
      T
      tyho
    • RE: Voice control module issue

      If you got a RPI3 try:

      sudo nano ~/.asoundrc and paste:

          pcm.!default {
                  type asym
                  playback.pcm "plughw:0"
                  capture.pcm "plughw:1"
          }
          ctl.!default {
                  type hw
                  card 0
          }
      

      OR

      pcm.!default {
                  type asym
                  playback.pcm "hw:0,0"
                  capture.pcm "hw:1,1"
        }
        ctl.!default {
                  type hw
                  card 0
        }
      
      posted in Troubleshooting
      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: Trafficmaps

      @KirAsh4 i’ve seen that one ;) but i don’t know where to start. That module uses some different dependeties that are already in magicmirror. As suggested by @MichMich i should first build a simple module. (Well i’ve build one already that works very well but i don’t know if thats the right way of writing code and if it’s fail proof). Anyway i will keep try some stuff. I die got a map on my mirror with static map. But i want this trafficlayer. So i need to use the javascript api.
      On the mirror i can already see what i have to wear, where i have to go (appointments), and what happend in the world before i go. Wouldn’t it be cool if we can display traffic info and map before we leave to work. :D

      posted in Development
      T
      tyho
    • RE: Trafficmaps

      Does anybody know what modules i have to use to get the maps js api working? Angular? Async? Express? Or somerhing like a google api module?

      posted in Development
      T
      tyho
    • RE: Trafficmaps

      @MichMich yea i noticed that. But it’s still too hard for me to implent a simple javascript like google maps js api. The js code is simple to untherstand but i still need the node-modules that are used by it. And it’s still not as straight forward because node is server sided. I got the idea but not the knowledge.

      posted in Development
      T
      tyho
    • RE: Trafficmaps

      I have to give up on this one. I found topics where people said its really hard to call the google maps js api in nodejs environment. Even just only displaying a map. That explains why there are no codes of others available to learn from.
      I think i just go for the static map (image) url from the google api. But that won’t be a trafficmap couse that’s not possible.
      @KirAsh4 Thanks for your motivating words and help. I will expand my notification module for the voicecontrol module from alexyak96, that is working very well!. Maybe i come back later on this one when i got more knowledge or if someone else made a basic map module that i can expand for traffic ^^.

      posted in Development
      T
      tyho
    • RE: Trafficmaps

      in basics i untherstand the concept of node.js. It’s not like a website where you can load a page from a server. node js is basicly the server that creates and push the website when requested.

      I will have to learn some more i guess ^^ I always want to go the fast way :P

      posted in Development
      T
      tyho
    • 1 / 1