#First we need to create a node.js server to accept our command and execute what we want (open, close, status). we are going to use google's FireBase server in their free tier. Go to FireBase and create a new project "OpenGarage" https://console.firebase.google.com/u/0/?pli=1 #Now we need to use Diagflow to teach google a few commands to listen for. This is considered your "app" Got to diagflow https://console.dialogflow.com/api-client/ And create a new agent (or app) called OpenGarageAgent #Now we will associate our new app with the FireBase server. Click the settings Icon and go to general tab Select the google project you created on FireBase and click save #You can either manually enter the expressions you want to use or import the following express: "is the garage door open" "is the garage door closed" "open the garage door" "close the garage door" Go to the import/export tab and select Import from Zip Select the attached zip file. #Now we need to make sure the code is there to process our request On the left hand side, choose FulFillment Make sure InLine Editor is turned on and the code is the same as OpenGarageAgent.js If not delete the code and add the code from this file. #Adjust the code to point to our garage's interface: #The following line should be adjusted with your Blynk token const EXT_GARAGE_API_URL = "http://blynk-cloud.com/auth_token"; Click deploy or save. Now go to: https://console.actions.google.com/u/0/ Select your project. There is a 6 step procedure to publish your app. We are not going to publish because then everyone could access your garage, but we do want to be able to call the function by name. So Select start to begin publishing procedure or Actions on the left side if not prompted. You will be asked what action should be taken when you app is first invoked, select the action called "Start" Click next, select language english, give your app a name like "Open source garage" and save it. Click on overview in the top left corner. You should see a list of all 6 steps. Steps 1 & 2 should be checked since we did that configuration. Steps 3-6 should not be check. If some are checked that is ok. The listed steps are: 3. Location targeting 4. Surface capabilities 5. Action discovery and updates (optional) 6. Account linking (optional) You will see a button test and Submit draft for review. The submit for review button should be grey as not everything is filled in. that is ok because that would publish for the world. But now that we have named it we can call it by name. Click test or on your phone assistant or google home ask: ask open source garage if the door is open? You should get an answer. #Remaining to be completed: -Do we need to check status before opening/closing? -If only trigger available then implement pause and set pin to 0 -build in authentication settings so app can be published globally, then each user can request, just need to set their Blynk token as opposed to the whole procedure. -Error handling to let user know there was a problem (speak it)