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.
This module uses a pubsub model to communicate with google assistant running on Pi.
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
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 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 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
{
module: "MMM-GoogleAssistant",
position: "top_right",
config: {
maxWidth: "100%",
header: "",
publishKey: 'YOUR_PUBNUB_PUBLISH_KEY',
subscribeKey: 'YOUR_PUBNUB_SUBSCRIBE_KEY',
updateDelay: 500
}
},
place holder for Video
- 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