• 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.

MMM-Navigate, Navigation inside MagicMirror with Rotary Encoder

Scheduled Pinned Locked Moved System
45 Posts 6 Posters 16.9k Views 5 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.
  • E Offline
    Eisblume
    last edited by Eisblume May 22, 2019, 4:15 PM May 22, 2019, 4:10 PM

    Ok, thanks @AxLed !!

    config.js:

    /* Magic Mirror Config Sample
     *
     * By Michael Teeuw http://michaelteeuw.nl
     * MIT Licensed.
     *
     * For more information how you can configurate this file
     * See https://github.com/MichMich/MagicMirror#configuration
     *
     */
    
    var config = {
    	address: "0.0.0.0", // 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, is "localhost"
    	port: 8080,
    	ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.1/120", "192.168.1.1/24"], // 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"],
    
    	language: "de",
    	timeFormat: 24,
    	units: "metric",
    
    	modules: [
    		{
    			module: "alert",
    		},
    		{
    			module: "clock",
    			position: "top_left"
    		},
    		{
    			module: "MMM-Navigate",
    			header: "Navigation",
    			position: "top_left",
    			config: {
    					Alias: [
    						'Seiten blättern',
    						'News (mehr/weniger Details)',
    						'Test notification',
    						'News - mehr Details',
    						'News - weniger Details',
    						'Neustart MagicMirror (PM2)',
    						'Neustart',
    						'Herunterfahren'
    					],
    					Action: [
    						[{notification:'PAGE_INCREMENT',payload:''},{notification:'PAGE_DECREMENT',payload:''}],//action array, first press locks menu, after this rotation CW/CCW executes, second press release lock mode
    						[{notification:'ARTICLE_MORE_DETAILS',payload:''},{notification:'ARTICLE_LESS_DETAILS',payload:''}],
    						{notification: "SHOW_ALERT", payload: {type:"notification",message:"Dies ist eine Testnachricht"}},//single action, execute on press
    						{notification:'ARTICLE_MORE_DETAILS',payload:''},
    						{notification:'ARTICLE_LESS_DETAILS',payload:''},
    						{notification: "REMOTE_ACTION", payload: {action: "RESTART"}},
    						{notification: "REMOTE_ACTION", payload: {action: "REBOOT"}},
    						{notification: "REMOTE_ACTION", payload: {action: "SHUTDOWN"}}
    					],
    					GPIOPins: [26,20,19]//rotary cw, rotary ccw, rotary press (BCM Numbering)
    					},
    },
    		{
        		module: 'MMM-Remote-Control',
        		// uncomment the following line to show the URL of the remote control on the mirror
        		// , position: 'bottom_left'
        		// you can hide this module afterwards from the remote control itself
        		config: {
            		customCommand: {},  // Optional, See "Using Custom Commands" below
            		customMenu: "custom_menu.json", // Optional, See "Custom Menu Items" below
            		showModuleApiMenu: true, // Optional, Enable the Module Controls menu
            		apiKey: ""         // Optional, See API/README.md for details
        		}
    		},
    		{
    			module: "updatenotification",
    			position: "top_bar"
    		},
    		{
    			module: "calendar",
    			header: "Familie Reetz",
    			position: "top_left",
    			config: {
    				calendars: [
    					{
    						symbol: "calendar-check",
    						url: "webcal://pxxxxxxm/xxxxxxxKSw_tdQ8WGeTZVjgr6Vwn1HDxxxxxxx5OuupPnKOIExxxx"
    					}
    				]
    			}
    		},
    //		{
    //			module: "compliments",
    //			position: "lower_third"
    //		},
    {
    			module: "currentweather",
    			position: "top_right",
    			config: {
    				location: "xxxx",
    				locationID: "xxx",  //ID from http://bulk.openweathermap.org/sample/; unzip the gz file and find your city
    				appid: "xxxxx"
    			}
    		},
    		{
    			module: "weatherforecast",
    			position: "top_right",
    			header: "Wettervorhersage",
    			config: {
    				location: "xxxx",
    				locationID: "xxxx",  //ID from https://openweathermap.org/city
    				appid: "xxxxx"
    			}
    		},
    		{
    			module: "newsfeed",
    			position: "bottom_bar",
    			config: {
    				feeds: [
    					{
    						title: "Tagesschau",
    						url: "http://www.tagesschau.de/xml/rss2"
    						//url: "http://www.nytimes.com/services/xml/rss/nyt/HomePage.xml"
    					}
    				],
    				showSourceTitle: true,
    				showPublishDate: true
    			}
    		},
    		{
        		module: "MMM-Fuel",
        		position: "bottom_left",
        		config: {
            			api_key: "xxxxx",
            			lat: 123456,
            			lng: 654321,
            			types: ["diesel"],
            			radius: 15,
            			max: 3     			
        				}
    		},
    		{
    	        module: 'MMM-Dreambox',
    			header: 'Vu+ Ultimo4K powered by VTi',
    			position: 'bottom_right',
    			config: {
    				apiBase: 'http://192.168.1.50:90',
    				//omxargs: ' --vol -6000 --win 0,625,590,957 --live ',
    				omxargs: ' --win 600,60,1490,940 -o both ',
    				refreshInterval: 1000 * 30, //refresh every 30 seconds
    				apibouquet: 0, //bouquet, if there is more than one under apiservices (/web/getallservices),
    				apiRecordingsID: 0, //which recording folder should be listed
    				listmax: 10,
    				apiabout: '/web/about',
    				apiservices: '/web/getallservices',
    				apiepgnow: '/web/epgnow?bRef=',
    				apizap: '/web/zap?sRef=',
    				apiTimerlist: '/web/timerlist',
    				apiServicelistplayable: '/web/servicelistplayable?sRef=',
    				apiLocations: '/web/getlocations', //where are the recording folders listed
    				apiMovielist: '/web/movielist?dirname=' //link for opening recording folder and list recordings
    				}
    		},
    	]
    
    };
    
    /*************** DO NOT EDIT THE LINE BELOW ***************/
    if (typeof module !== "undefined") {module.exports = config;}
    
    
    1 Reply Last reply Reply Quote 0
    • A Offline
      AxLed Module Developer
      last edited by May 22, 2019, 8:08 PM

      @Eisblume
      I tested wih modules of your config.

      My testconfiguration:

      • Raspberry Pi 1
      • MagicMirror v2.7.1
      • npm v6.8.0
      • node v8.9.0
      • no electron (as i dont run/installable on Pi 1), i run node serveronly
      • display: Webbrowser

      My rotary encoder works as follows:

      • Seite blättern (press works and gives a red frame an a lock sign, cw an ccw dont work, as MMM-Pages isnt part of your config)
      • News (mehr/weniger Details) (press works and gives a red frame an a lock sign, cw an ccw works)
      • Test notification (press works, no cw or ccw functionality by design)
      • News - mehr Details (press works, no cw or ccw functionality by design)
      • News - weniger Details (press works, no cw or ccw functionality by design)
      • Neustart MagicMirror (PM2) (dont work in my testconfiguration, as i dont use PM on RPI1)
      • Neustart (press works, there is a pop up notification to press twice for reeboot, requires MMM-Remote-Control)
      • Herunterfahren (press works, there is a pop up notification to press twice for shutdown, requires MMM-Remote-Control)

      Two ideas:

      • wrong cabeling, here are the 3 pins for CW, CW and PRESS of your config.js (GPIOPins: [26,20,19])
        0_1558555492514_bmc.JPG
      • messed up setup, try to save your config and reinstall raspian an MM

      Greets

      AxLED

      1 Reply Last reply Reply Quote 0
      • E Offline
        Eisblume
        last edited by May 23, 2019, 7:16 AM

        Thank you so much for your help. But It still doesn’t work.

        The cabeling is correct I checked it many times ;-)

        The crazy thing is, when I remove ground, the press button works, but not the cw and cww.

        I think, I will try a clean reinstall on my RPi3.

        1 Reply Last reply Reply Quote 0
        • E Offline
          Eisblume
          last edited by Eisblume May 23, 2019, 12:12 PM May 23, 2019, 11:23 AM

          @AxLed
          Also after clean install with nothing more, the default modules and MMM-Navigate and MMM-Remote-Controll it doesn’t work.

          Here you can see: https://youtu.be/G2eRoPxRPjU

          Only when I remove ground, the press action works. But then, the cw and cww doesn’t work…

          1 Reply Last reply Reply Quote 0
          • A Offline
            AxLed Module Developer
            last edited by May 23, 2019, 7:20 PM

            @Eisblume
            Thanks for your reply, i tested at my pi with disconnected ground cable, but there is no press, cw or ccw working at all.
            My last ideas:

            • can you messure your 5 cables if maybe one is interrupted
            • maybe there are two versions of KY-040 on the marked, i have this one Amazon
            • is your second rotary encoder shows same symptoms?
            • did you connect + of rotary encoder to 5V once (which would be wrong and maybe damaged your GPIO PINs/chip)?

            AxLED

            1 Reply Last reply Reply Quote 0
            • E Offline
              Eisblume
              last edited by May 24, 2019, 5:53 AM

              @AxLed
              Do not think that I am lying ;-), but it works fine, when I start MagicMirror and after that I start the python - script from here https://github.com/martinohanlon/KY040.

              cw, cww and press works absolutely fine.

              It is very strange.

              1 Reply Last reply Reply Quote 0
              • E Offline
                Eisblume
                last edited by Eisblume May 24, 2019, 10:40 AM May 24, 2019, 7:01 AM

                @AxLed
                Ok, i fix it now for me.

                I know, it is a dirty code, but don’t found another solution :dizzy_face:

                I attached the KY040 python script in the node_helper.js. Then everything works fine.

                //node_helper.js
                /* Magic Mirror
                 * Node Helper: {MMM-Navigate}
                 *
                 * By {AxLED}
                 * {MIT} Licensed.
                 */
                
                 //Debugging
                 //tail -f ~/.pm2/logs/mm-out-0.log
                 //tail -f ~/.pm2/logs/mm-error-0.log 
                
                const Gpio = require('onoff').Gpio;
                ...
                const spawn = require("child_process").spawn;
                //Variables
                ...
                  start: function() {
                		var self = this;
                		this.loaded = false;
                		var process = spawn("python", ["/home/pi/Downloads/KY040/examples/python3.py"]);
                	},
                	
                ...
                });
                
                
                1 Reply Last reply Reply Quote 0
                • A Offline
                  AxLed Module Developer
                  last edited by May 24, 2019, 6:34 PM

                  @Eisblume
                  No Problem, i am glad it works for you now, so you also did your first coding experiance.

                  AxLED

                  1 Reply Last reply Reply Quote 0
                  • E Offline
                    Eisblume
                    last edited by May 25, 2019, 5:47 PM

                    @AxLed
                    Yes very interesting experiences :-) !

                    Could you explain my how to start “Tagesschau in 100 Sekunden” in MMM-Navigate ??

                    1 Reply Last reply Reply Quote 0
                    • A Offline
                      AxLed Module Developer
                      last edited by May 25, 2019, 6:22 PM

                      @Eisblume
                      You need two things:

                      • first: a modules which is able to stream 100Sec Tagesschau, i made a fork see MMM-Podcast2
                      • second: the right config (i posting only the relevant part)
                      ....
                      {
                      			module: 'MMM-Podcast2',
                      			config: {
                      				// See 'Configuration options' for more information.
                      				omxargs: ' --win 0,0,1920,1080  -o both '
                      			}
                      		},
                      {
                      			module: "MMM-Navigate",
                      			header: "Navigation",
                      			position: "top_right",
                      			config: {
                      					Alias: [
                      						'Tagesschau 100 Sekunden',
                      						'Herunterfahren'
                      					],
                      					Action: [
                      						{notification:'BUTTON_PRESSED',payload:''},
                      						{notification: "REMOTE_ACTION", payload: {action: "SHUTDOWN"}}
                      					],
                      					GPIOPins: [26,20,19]//rotary cw, rotary ccw, rotary press (BCM Numbering)
                      					},
                      		},
                      ...
                      

                      AxLED

                      E 1 Reply Last reply May 25, 2019, 8:40 PM Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 4
                      • 5
                      • 2 / 5
                      2 / 5
                      • First post
                        26/45
                        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