/MMM-GoogleAssistant

Google Assistant module for magic mirror https://github.com/MichMich/MagicMirror

Primary LanguagePythonMIT LicenseMIT

MMM-GoogleAssistant

Google Assistant module for your Magic Mirror.

You can now ask questions to your MagicMirror powered by Google Assistant.

All this module does for now is show the following logo -

And animates it to following when assistant is activated using the hotword 'Ok Google' -

It also shows up parsed user speech that is sent to Google Assistant.

Installation

This module uses a pubsub model to communicate with google assistant running on Pi.

Create an app in pubnub admin console

Signup for a free dev account here https://admin.pubnub.com/#/register and create an app and get publish and subscriber keys to configure it in following files and config.js.

Replace keys in following files

  • pi/assistant.py

Setup GA Module

  • git clone https://github.com/gauravsacc/MMM-GoogleAssistant.git into the ~/MagicMirror/modules directory.
  • Install all dependencies by running 'npm install' from the ''~/MagicMirror/modules/MMM-GoogleAssistant' directory

Register your GA device

Register your GA device using the register-tool available here and replace the magic-mirror-device-id in the assistant.py with your unique device id https://developers.google.com/assistant/sdk/reference/device-registration/device-tool

Setup Google Assistant on Pi

  • Setup your raspberry pi and run the sample to verify if your google assistant is working https://developers.google.com/assistant/sdk/prototype/getting-started-pi-python/run-sample
  • If you are able to launch google-assistant-demo(see link above) and use the assistant, you should able to use the 'pi/assistant.py' script that communicates with the magic mirror module.
  • Install Pubnub dependencies using pip install 'pubnub>=4.0.13'
  • Download the 'pi/assistant.py' script on your raspberry pi and launch it via terminal
  • If you see a 'No module named google' error try running it via /home/pi/env/bin/python3 -u assistant.py

Add to Config.js

{
    module: "MMM-GoogleAssistant",
    position: "top_right",
    config: {
        maxWidth: "100%",
        header: "",
    publishKey: 'YOUR_PUBNUB_PUBLISH_KEY',
    subscribeKey: 'YOUR_PUBNUB_SUBSCRIBE_KEY',
    updateDelay: 500
    }
},

Video

place holder for Video

What's coming in future?

  • use Node.js gRPC bindings so we don't have to use assistant.py running separately
  • Local Command support - Create a dictionary of commands that can be processed locally. If a command can be processed locally don't send it to cloud.
  • Integration with other modules (via Socket Notifications)
  • Integration with Api.ai to parse local commands in natural language.
  • Show/Hide modules based on the user query context e.g - Ok, google how's the weather today? Google Assistant answers the weather and MagicMirror brings up a detailed weather module