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

Scheduled Pinned Locked Moved System
51 Posts 8 Posters 18.0k Views 12 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.
  • B Offline
    Benjaminh86 @Guest
    last edited by Mar 23, 2019, 6:16 PM

    @Sean

    here is my configuration for your module :

    {
    module: “MMM-GroveGestures”,
    position: “top_right”,
    pages: {‘all’: ‘top_right’},
    config: {
    autoStart: true, //When Mirror starts, recognition will start.
    verbose:false, // If set as true, useful messages will be logged.
    recognitionTimeout: 1000, //Gesture sequence will be ended after this time from last recognized gesture.
    cancelGesture: “WAVE”, //If set, You can cancel gesture sequence with this gesture.
    visible: true, //Recognized gesture sequence will be displayed on position

    idleTimer: 1000*60*30, // `0` for disable, After this time from last gesture, onIdle will be executed.
    onIdle: { // See command section
      moduleExec: {
        module: [],
        exec: (module, gestures) => {
          module.hide(1000, null, {lockstring:"GESTURE"})
    	}
         }
          },
    onDetected: {
      notificationExec: {
        notification: "GESTURE_DETECTED",
      },
      /* You can make Mirror to wake up the modules which were hidden by onIdle with any gestures.
      moduleExec: {
        module: [],
        exec: (module) => {
          module.show(1000, null, {lockstring:"GESTURE"})
        }
      }
      */
    },
    
    gestureMapFromTo: { //When your sensor is installed with rotated direction, you can calibrate with this.
      "Up": "UP",
      "Down": "DOWN",
      "Left": "LEFT",
      "Right": "RIGHT",
      "Forward": "FORWARD",
      "Backward": "BACKWARD",
      "Clockwise": "CLOCKWISE",
      "anti-clockwise": "ANTICLOCKWISE",
      "wave": "WAVE"
    },
    commandSet: {
         "LEFT": {
    	notificationExec: {
    		notification: "PAGE_SELECT",
    		payload: "main",
    	}
         },
          "RIGHT": {
    	notificationExec: {
    		notification: "PAGE_SELECT",
    		payload: "2",
          }
        },
      },
    },
    

    }
    },

    ? 1 Reply Last reply Mar 23, 2019, 6:21 PM Reply Quote 0
    • ? Offline
      A Former User @Benjaminh86
      last edited by Mar 23, 2019, 6:21 PM

      @Benjaminh86
      Your configuration about commandSet has something wrong.

      commandSet: {
        "default" : {
          "LEFT": {
            notificationExec: {
              notification: "PAGE_SELECT",
              payload: "main",
            }
          },
          "RIGHT": {
            notificationExec: {
              notification: "PAGE_SELECT",
              payload: "2",
            }
          },
        },
      },
      
      1 Reply Last reply Reply Quote 0
      • ? Offline
        A Former User @Benjaminh86
        last edited by Mar 23, 2019, 6:23 PM

        @Benjaminh86
        And Have you syntax error? How did you know? Have you used npm check:config? That knows old-fashioned style javascript grammar. So it might not understand new trendy ES6 style grammar.
        Try this to check your javascript syntax.
        http://esprima.org/demo/validate.html

        B 2 Replies Last reply Mar 23, 2019, 6:26 PM Reply Quote 0
        • B Offline
          Benjaminh86 @Guest
          last edited by Mar 23, 2019, 6:26 PM

          @Sean

          I used the command “npm run config: check”

          1 Reply Last reply Reply Quote 0
          • B Offline
            Benjaminh86 @Guest
            last edited by Mar 23, 2019, 8:06 PM

            @Sean I modified my JavaScript and corrected the errors.
            On my Magic Mirror, I can see my left right scan, but the page does not change.
            an idea…

            ? 1 Reply Last reply Mar 23, 2019, 8:09 PM Reply Quote 0
            • ? Offline
              A Former User @Benjaminh86
              last edited by A Former User Mar 24, 2019, 12:39 AM Mar 23, 2019, 8:09 PM

              @Benjaminh86
              Well, If notification would be emitted properly, remains are MMM-page-selector’s business.
              You can check whether notification is broadcasted well with npm start dev (before it, stop your pm2) or Ctrl+Shift+i on MM running. You can get some useful messages on dev-console

              B 1 Reply Last reply Mar 25, 2019, 7:59 AM Reply Quote 0
              • B Offline
                Benjaminh86 @Guest
                last edited by Mar 25, 2019, 7:59 AM

                Hello @Sean
                i will watch npm start dev.
                Thanks for your help.

                BenH

                1 Reply Last reply Reply Quote 0
                • B Offline
                  bolish
                  last edited by Mar 25, 2019, 8:18 AM

                  Hi @Benjaminh86

                  If it can help you, this is how I’m dealing with it :

                  • I uses MMM-GroveGestures / MMM-Pages / MMM-Pages indicator / MMM-Notificationtrigger

                  MMM-Pages allows PAGE_INCREMENT / PAGE_DECREMENT notification reception.
                  MMM-Pages is allow able to send you the active page number back is you ask for QUERY_PAGE_NUMBER.

                  So basically, in MMM-GroveGesture , I wanted specific gestures depending on the active page :

                  • I’ve created one command set per page (1/2/3/4/5)

                  • I’ve put PAGE_INCREMENT / DECREMENT as a default gesture (left / right) on all commands sets (as those one are always the same)

                  • I’ve put specific up / down / etc… gestures and related notification in different commands set depending on the page.

                  • I’ve added a specific fire into MMM-NotificationTrigger so that each time “PAGE INCREMENT / DECREMENT” is triggered, it also fires “PAGE NUMBER IS” back (thanks to “PAGE_QUERY_NUMBER”)

                  This way, MMM-GrovesGestures always knows on which page I’m and is using the proper command set.

                  Hope this will help you.

                  B 1 Reply Last reply Mar 25, 2019, 9:26 AM Reply Quote 0
                  • B Offline
                    Benjaminh86 @bolish
                    last edited by Mar 25, 2019, 9:26 AM

                    Thank you so much @bolish !!
                    in principle, I understand how it works, but I’m really fond of programming.
                    without wanting to abuse, can you show me your scripts MMM-GroveGestures, MMM-Pages, MMM-NotificationTrigger…

                    1 Reply Last reply Reply Quote 0
                    • B Offline
                      bolish
                      last edited by bolish Mar 25, 2019, 9:58 AM Mar 25, 2019, 9:53 AM

                      @Benjaminh86
                      I will be able to do it later tonight as not at home for now.
                      Honestly, I clearly don’t have any knowledge at all neither, I just started MM 2 months ago and never touched to a Raspberry or Javascript or even text edit before…
                      Just by reading around on MM forums + the incredible community support, I managed it by playing around myself with different modules.
                      I’m still not an expert, but it works and I’m proud of myself!

                      If you want to understand how it works yourself for purposes of proudness, I would recommend you to :

                      • Install MMM-Pages (config in config.js is easy)
                      • Install MMM-RemoteControl (appart from changing the IP adress at the top of your config.js, there is nothing else to do. This will allow you to send notification from your smartphone browser as a matter of testing. And when you will be comfortable, you will see that this will allow you to configurate your own smartphone command app for the mirror, it’s pretty powerful and simple)
                      • Install MMM-NotificationTrigger (basically, it works like that : if Notification A is received, please send notification B

                      Start to play with NotificationTrigger and MMM-Pages to do something like this :

                      • On your smartphone browser (after ahving installed MMM-RemoteControl and configured it) : send some notification like this to MMM-Pages and see if the pages changes :
                      http://YOURIP:8080/remote?action=NOTIFICATION&notification=PAGE_INCREMENT"
                      
                      "http://YOURIP:8080/remote?action=NOTIFICATION&notification=PAGE_DECREMENT"
                      

                      Try to configure MMM-NotificationTrigger so that when “PAGE_INCREMENT” is received, it will fire “PAGE_QUERY_NUMBER” (to MMM-Pages that will then respond with “PAGE_NUMBER_IS” + payload “X”, X being the page number).

                      Try to configure MMM-NotificaitonTrigger so that when “PAGE_NUMBER_IS” is received (with payload), and alert is shown on the mirror with the returned Page Number as a payload.

                      Once you will have done that, you will have understand how everything works (you will be able to delete the alert shown on the message which was just a test).

                      If you manage to do that, the MMM-GroveGestures part in the end will be a piece of cake (and don’t worry, the above is not difficult at all if you want to learn by yourself).

                      I will try to post you a working extract of my config.js this evening. If I forget, please remind me.

                      Regards

                      B 1 Reply Last reply Mar 25, 2019, 10:08 AM Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 4
                      • 5
                      • 6
                      • 2 / 6
                      2 / 6
                      • First post
                        13/51
                        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