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.

    [Guide] Control MM via Google Home

    Scheduled Pinned Locked Moved General Discussion
    24 Posts 6 Posters 11.3k Views 6 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.
    • S Offline
      smackenzie5
      last edited by

      @Sean
      I’m having trouble with Step 2 - Installing nginx.

      I was able to follow Step 1 and have a wormhole URL from Dataplicity. However, I get the following error messages when running the line “sudo apt-get install nginx”

      pi@raspberrypi:~ $ sudo apt-get install nginx
      Reading package lists... Done
      Building dependency tree       
      Reading state information... Done
      The following packages were automatically installed and are no longer required:
        libc-ares2 libhttp-parser2.8 libuv1 nodejs-doc realpath
      Use 'sudo apt autoremove' to remove them.
      The following additional packages will be installed:
        libnginx-mod-http-auth-pam libnginx-mod-http-dav-ext libnginx-mod-http-echo
        libnginx-mod-http-geoip libnginx-mod-http-image-filter
        libnginx-mod-http-subs-filter libnginx-mod-http-upstream-fair
        libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream
        nginx-common nginx-full
      Suggested packages:
        fcgiwrap nginx-doc ssl-cert
      The following NEW packages will be installed:
        libnginx-mod-http-auth-pam libnginx-mod-http-dav-ext libnginx-mod-http-echo
        libnginx-mod-http-geoip libnginx-mod-http-image-filter
        libnginx-mod-http-subs-filter libnginx-mod-http-upstream-fair
        libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream nginx
        nginx-common nginx-full
      0 upgraded, 13 newly installed, 0 to remove and 39 not upgraded.
      Need to get 1,505 kB of archives.
      After this operation, 2,563 kB of additional disk space will be used.
      Do you want to continue? [Y/n] Y
      Err:1 http://raspbian.raspberrypi.org/raspbian stretch/main armhf nginx-common all 1.10.3-1+deb9u2
        404  Not Found [IP: 93.93.128.193 80]
      Err:2 http://raspbian.raspberrypi.org/raspbian stretch/main armhf libnginx-mod-http-auth-pam armhf 1.10.3-1+deb9u2
        404  Not Found [IP: 93.93.128.193 80]
      Err:3 http://raspbian.raspberrypi.org/raspbian stretch/main armhf libnginx-mod-http-dav-ext armhf 1.10.3-1+deb9u2
        404  Not Found [IP: 93.93.128.193 80]
      Err:4 http://raspbian.raspberrypi.org/raspbian stretch/main armhf libnginx-mod-http-echo armhf 1.10.3-1+deb9u2
        404  Not Found [IP: 93.93.128.193 80]
      Err:5 http://raspbian.raspberrypi.org/raspbian stretch/main armhf libnginx-mod-http-geoip armhf 1.10.3-1+deb9u2
        404  Not Found [IP: 93.93.128.193 80]
      Err:6 http://raspbian.raspberrypi.org/raspbian stretch/main armhf libnginx-mod-http-image-filter armhf 1.10.3-1+deb9u2
        404  Not Found [IP: 93.93.128.193 80]
      Err:7 http://raspbian.raspberrypi.org/raspbian stretch/main armhf libnginx-mod-http-subs-filter armhf 1.10.3-1+deb9u2
        404  Not Found [IP: 93.93.128.193 80]
      Err:8 http://raspbian.raspberrypi.org/raspbian stretch/main armhf libnginx-mod-http-upstream-fair armhf 1.10.3-1+deb9u2
        404  Not Found [IP: 93.93.128.193 80]
      Err:9 http://raspbian.raspberrypi.org/raspbian stretch/main armhf libnginx-mod-http-xslt-filter armhf 1.10.3-1+deb9u2
        404  Not Found [IP: 93.93.128.193 80]
      Err:10 http://raspbian.raspberrypi.org/raspbian stretch/main armhf libnginx-mod-mail armhf 1.10.3-1+deb9u2
        404  Not Found [IP: 93.93.128.193 80]
      Err:11 http://raspbian.raspberrypi.org/raspbian stretch/main armhf libnginx-mod-stream armhf 1.10.3-1+deb9u2
        404  Not Found [IP: 93.93.128.193 80]
      Err:12 http://raspbian.raspberrypi.org/raspbian stretch/main armhf nginx-full armhf 1.10.3-1+deb9u2
        404  Not Found [IP: 93.93.128.193 80]
      Err:13 http://raspbian.raspberrypi.org/raspbian stretch/main armhf nginx all 1.10.3-1+deb9u2
        404  Not Found [IP: 93.93.128.193 80]
      E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/n/nginx/nginx-common_1.10.3-1+deb9u2_all.deb  404  Not Found [IP: 93.93.128.193 80]
      E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/n/nginx/libnginx-mod-http-auth-pam_1.10.3-1+deb9u2_armhf.deb  404  Not Found [IP: 93.93.128.193 80]
      E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/n/nginx/libnginx-mod-http-dav-ext_1.10.3-1+deb9u2_armhf.deb  404  Not Found [IP: 93.93.128.193 80]
      E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/n/nginx/libnginx-mod-http-echo_1.10.3-1+deb9u2_armhf.deb  404  Not Found [IP: 93.93.128.193 80]
      E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/n/nginx/libnginx-mod-http-geoip_1.10.3-1+deb9u2_armhf.deb  404  Not Found [IP: 93.93.128.193 80]
      E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/n/nginx/libnginx-mod-http-image-filter_1.10.3-1+deb9u2_armhf.deb  404  Not Found [IP: 93.93.128.193 80]
      E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/n/nginx/libnginx-mod-http-subs-filter_1.10.3-1+deb9u2_armhf.deb  404  Not Found [IP: 93.93.128.193 80]
      E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/n/nginx/libnginx-mod-http-upstream-fair_1.10.3-1+deb9u2_armhf.deb  404  Not Found [IP: 93.93.128.193 80]
      E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/n/nginx/libnginx-mod-http-xslt-filter_1.10.3-1+deb9u2_armhf.deb  404  Not Found [IP: 93.93.128.193 80]
      E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/n/nginx/libnginx-mod-mail_1.10.3-1+deb9u2_armhf.deb  404  Not Found [IP: 93.93.128.193 80]
      E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/n/nginx/libnginx-mod-stream_1.10.3-1+deb9u2_armhf.deb  404  Not Found [IP: 93.93.128.193 80]
      E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/n/nginx/nginx-full_1.10.3-1+deb9u2_armhf.deb  404  Not Found [IP: 93.93.128.193 80]
      E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/n/nginx/nginx_1.10.3-1+deb9u2_all.deb  404  Not Found [IP: 93.93.128.193 80]
      E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
      
      

      I tried continuing with the other lines but just got error messages that the files were missing.

      Thoughts?

      Thanks,
      Scott

      ? 1 Reply Last reply Reply Quote 0
      • ? Offline
        A Former User @smackenzie5
        last edited by A Former User

        @smackenzie5 said in [Guide] Control MM via Google Home:

        Err:1 http://raspbian.raspberrypi.org/raspbian stretch/main armhf nginx-common

        Hmmm. Sometimes, Repositories could not be reached by accident. (Due to Network problem, DNS mismatch, Server maintenance, or any other reasons. Who knows.) Try again later.

        Before that; try this;

        sudo apt-get update
        suod apt-get upgrade
        
        S 1 Reply Last reply Reply Quote 0
        • S Offline
          smackenzie5 @Guest
          last edited by

          @Sean
          Can you read through the code below and determine where the error is?

          First, updating like you said did the trick. After updating/upgrading I was able to download everything and complete Step 2. Went on to complete Steps 3 & 4 and the IFTTT test worked.

          Now, I’m trying to use the format of your test code and rewrite it to turn my monitor off using OnScreenMenu. I get the following error message:

          pi@raspberrypi:~ $ cd MagicMirror
          pi@raspberrypi:~/MagicMirror $ sudo npm start
          
          > magicmirror@2.7.1 start /home/pi/MagicMirror
          > sh run-start.sh
          
          Starting MagicMirror: v2.7.1
          Loading config ...
          Loading module helpers ...
          No helper found for module: alert.
          No helper found for module: clock.
          Initializing new module helper ...
          Module helper loaded: calendar
          No helper found for module: currentweather.
          No helper found for module: weatherforecast.
          No helper found for module: MMM-google-route.
          Initializing new module helper ...
          Module helper loaded: MMM-OnScreenMenu
          Initializing new module helper ...
          Module helper loaded: MMM-NotificationTrigger
          All module helpers loaded.
          Starting server on port 8080 ... 
          Server started ...
          Connecting socket for: calendar
          Starting node helper for: calendar
          Connecting socket for: MMM-OnScreenMenu
          Connecting socket for: MMM-NotificationTrigger
          Sockets connected & modules started ...
          Launching application.
          Create new calendar fetcher for url: https://calendar.google.com/calendar/ical/xxx/basic.ics - Interval: 300000
          SyntaxError: Unexpected token a in JSON at position 96
              at JSON.parse (<anonymous>)
              at parse (/home/pi/MagicMirror/node_modules/body-parser/lib/types/json.js:89:19)
              at /home/pi/MagicMirror/node_modules/body-parser/lib/read.js:121:18
              at invokeCallback (/home/pi/MagicMirror/node_modules/body-parser/node_modules/raw-body/index.js:224:16)
              at done (/home/pi/MagicMirror/node_modules/body-parser/node_modules/raw-body/index.js:213:7)
              at IncomingMessage.onEnd (/home/pi/MagicMirror/node_modules/body-parser/node_modules/raw-body/index.js:273:7)
              at IncomingMessage.emit (events.js:182:13)
              at endReadableNT (_stream_readable.js:1090:12)
              at process._tickCallback (internal/process/next_tick.js:63:19)
          
          

          My config.js is here:

          {
              			module: 'MMM-OnScreenMenu',
              			position: 'bottom_right',
          		},
          		{
            			module: "MMM-NotificationTrigger",
            			config: {
          			    useWebhook:true,
          			    triggers:[
          			      {
           		       		trigger: "ONSCREENMENU_PROCESS_ACTION",
           		       		fires: [
           		       		  {
           		           		fire:"notificationReceived",
           		           		payload: (payload) => {return payload}
          		        	  },
          		        	       ],
          			      },
          			]
          			}
          		},
          

          My IFTTT is here:

          {
           "sender":{
            "name":"IFTTT"
           },
           "notification":"ONSCREENMENU_PROCESS_ACTION",
           "payload":{actionName: 'monitorOff'
           }
          }
          

          Thoughts?

          Thanks,
          Scott

          ? 1 Reply Last reply Reply Quote 0
          • ? Offline
            A Former User @smackenzie5
            last edited by

            @smackenzie5 said in [Guide] Control MM via Google Home:

            {
            “sender”:{
            “name”:“IFTTT”
            },
            “notification”:“ONSCREENMENU_PROCESS_ACTION”,
            “payload”:{actionName: ‘monitorOff’
            }
            }

            JSON syntax is somehow strict than usual JS convention.

            {
              "sender":{
                "name":"IFTTT"
              },
              "notification":"ONSCREENMENU_PROCESS_ACTION",
              "payload":{
                  "actionName": "monitorOff"
              }
            }
            

            will work. you have failed/missed on using double-quotation marks.

            1 Reply Last reply Reply Quote 0
            • S Offline
              smackenzie5
              last edited by

              @Sean
              Thanks - that fixed the error message however it still doesn’t turn the monitor off.
              I’m not sure what else to look at now. Below is what I’m seeing but with no error message, kind of hard to tell what to work on.

              I’m considering installing Remote-Control and seeing if I can get that to work unless you’ve got another thought.

              Thanks,
              Scott

              pi@raspberrypi:~ $ cd MagicMirror
              pi@raspberrypi:~/MagicMirror $ sudo npm start
              
              > magicmirror@2.7.1 start /home/pi/MagicMirror
              > sh run-start.sh
              
              Starting MagicMirror: v2.7.1
              Loading config ...
              Loading module helpers ...
              No helper found for module: alert.
              No helper found for module: clock.
              Initializing new module helper ...
              Module helper loaded: calendar
              No helper found for module: currentweather.
              No helper found for module: weatherforecast.
              No helper found for module: MMM-google-route.
              Initializing new module helper ...
              Module helper loaded: MMM-OnScreenMenu
              Initializing new module helper ...
              Module helper loaded: MMM-NotificationTrigger
              All module helpers loaded.
              Starting server on port 8080 ... 
              Server started ...
              Connecting socket for: calendar
              Starting node helper for: calendar
              Connecting socket for: MMM-OnScreenMenu
              Connecting socket for: MMM-NotificationTrigger
              Sockets connected & modules started ...
              Launching application.
              Create new calendar fetcher for url: https://calendar.google.com/calendar/ical/xxx/basic.ics - Interval: 300000
              reqpost? { sender: { name: 'IFTTT' },
                notification: 'ONSCREENMENU_PROCESS_ACTION',
                payload: { actionName: 'monitorOff' } }
              
              
              ? 1 Reply Last reply Reply Quote 0
              • ? Offline
                A Former User @smackenzie5
                last edited by

                @smackenzie5
                I don’t know anything about OnScreenMenu. Have you any link to inspect?
                I think your “fire” would be wrong. “NotificationReceived” is not usual type of notification conventions. Anyway if i see how Onscreenmenu works I may tell you more.

                S 1 Reply Last reply Reply Quote 0
                • S Offline
                  smackenzie5 @Guest
                  last edited by

                  @Sean
                  OnScreenMenu is one of the 3rd Party modules here:
                  https://github.com/shbatm/MMM-OnScreenMenu

                  I used notificationReceived because it was similar to your example of SHOW_ALERT.
                  From alert.js - show_alert: function(params, sender) {
                  From MMM-NotificationTrigger.js - notificationReceived: function (notification, payload, sender) {
                  Maybe not correct but that’s why I did it.

                  Here’s where I got the example used for the content of notification and payload:
                  https://github.com/shbatm/MMM-AlexaOnOff/blob/master/README.md
                  Again, maybe not correct but that’s why I did it.

                  {
                      module: 'MMM-OnScreenMenu',
                      position: 'bottom_right',
                  },
                  {
                      module: 'MMM-AlexaOnOff',
                      config: {
                          devices: [{ 
                                name: "Magic Mirror",
                                on: { 
                                  notification: "ONSCREENMENU_PROCESS_ACTION",
                                  payload: { actionName:'monitorOn' }
                                },
                                off: { 
                                  notification: "ONSCREENMENU_PROCESS_ACTION",
                                  payload: { actionName:'monitorOff' }
                                },
                          }]
                      }
                  }
                  

                  Thoughts?

                  Thanks,
                  Scott

                  ? 1 Reply Last reply Reply Quote 0
                  • ? Offline
                    A Former User @smackenzie5
                    last edited by A Former User

                    @smackenzie5
                    As far as I read OnScreenMenu module,
                    it needs notification like this;

                    • notification : ONSCREENMENU_PROCESS_ACTION
                    • payload:
                      • “actionName” : “monitorOn”

                    So you can make your IFTTT & NotificationTrigger recipe like this;
                    IFTTT recipe

                    {
                      "notification": "MONITOR_ON_FROM_IFTTT",
                      "payload": null
                    }
                    

                    MMM-NotificationTrigger

                    module: "MMM-NotificationTrigger",
                    config: {
                      useWebhook: true,
                      triggers: [
                        {
                          trigger: "MONITOR_ON_FROM_IFTTT",
                          fires: [
                            {
                              fire: "ONSCREENMENU_PROCESS_ACTION",
                              payload: {"actionName": "monitorOn"}
                            }
                          ]
                        }
                      ]
                    }
                    

                    I didn’t test those codes on real machine so there could be some syntax error, but I believe you can understand the concept

                    S 1 Reply Last reply Reply Quote 0
                    • S Offline
                      smackenzie5 @Guest
                      last edited by

                      @Sean
                      You sir, are a freakin’ genius - it works perfectly.
                      Thanks again for all the effort.

                      1 Reply Last reply Reply Quote 0
                      • S Offline
                        sgarg15
                        last edited by

                        @Sean If possible could you give an example of how our config file should look like if we wanted to use the google home to turn on and off the monitor?

                        1 Reply Last reply Reply Quote 0
                        • S Offline
                          sgarg15
                          last edited by

                          Also if i were using MMM-Remote-Control besides MMM-OnScreenMenu, how would it work?

                          1 Reply Last reply Reply Quote 0
                          • S Offline
                            sgarg15
                            last edited by

                            @Sean So i followed all the steps and looked at the conversation you had with smackenzie, but i still cant get my monitor to turn off, here my
                            config.js

                                {
                                			module: 'MMM-OnScreenMenu',
                                			position: 'bottom_right',
                            		},
                                {
                                module: "MMM-NotificationTrigger",
                                config: {
                                  useWebhook: true,
                                  triggers: [
                                    {
                                      trigger: "MONITOR_OFF_FROM_IFTTT",
                                      fires: [
                                        {
                                          fire: "ONSCREENMENU_PROCESS_ACTION",
                                          payload: {"actionName": "monitorOff"}
                                        }
                                      ]
                                    }
                                  ]
                                }
                                },
                            
                            

                            IFTTT request

                            { "notification": "MONITOR_OFF_FROM_IFTTT", "payload": null }
                            

                            and here the log when i say Magic (the keyword)

                            reqpost? { notification: 'MONITOR_OFF_FROM_IFTTT', payload: null }
                            
                            S 1 Reply Last reply Reply Quote 0
                            • S Offline
                              sdetweil @sgarg15
                              last edited by

                              @sgarg15 if you open the developers window console, you should see the notifications being sent

                              Sam

                              How to add modules

                              learning how to use browser developers window for css changes

                              1 Reply Last reply Reply Quote 0
                              • S Offline
                                sgarg15
                                last edited by

                                @sdetweil the notification is being but it isnt doing anything to the monitor

                                S 1 Reply Last reply Reply Quote 0
                                • S Offline
                                  sdetweil @sgarg15
                                  last edited by

                                  @sgarg15 so, the onscreen module should be configured to receive and process this, right?
                                  ONSCREENMENU_PROCESS_ACTION

                                  Sam

                                  How to add modules

                                  learning how to use browser developers window for css changes

                                  S 1 Reply Last reply Reply Quote 0
                                  • S Offline
                                    sdetweil @sdetweil
                                    last edited by

                                    @sdetweil these control modules are just so complex to setup.

                                    Sam

                                    How to add modules

                                    learning how to use browser developers window for css changes

                                    S 1 Reply Last reply Reply Quote 0
                                    • S Offline
                                      sgarg15 @sdetweil
                                      last edited by

                                      @sdetweil Idk some people got this too work, and i have been looking for something like this for a long time,
                                      @Sean When you get time please do have a look

                                      Thanks and sorry for multiple pings

                                      1 Reply Last reply Reply Quote 0
                                      • S Offline
                                        sgarg15
                                        last edited by

                                        Any ideas anyone?

                                        1 Reply Last reply Reply Quote 0
                                        • S Offline
                                          sgarg15
                                          last edited by

                                          its not the this module its MMM-OnScreenMenu, because when i click the turn the monitor off button on the menu, nothing happens

                                          Any ideas how to fix this ?

                                          1 Reply Last reply Reply Quote 0
                                          • S Offline
                                            sgarg15
                                            last edited by

                                            Ok so i got it to work with MMM-Remote-Control, So now i am wondering how can you have multiple commands, like send multiple notifications to for ex. turn on and off the monitor? Any ideas? @Sean

                                            1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • 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