oauth-2.0actions-on-googlegoogle-assistant-sdkgoogle-homegoogle-smart-home

Communicating with Google Home and Google Assistant with the Application We Developed Instead of the Smart Home Device


I work for a company that develops a smart home device.

The company is developing an android application for smart home devices it has developed/designed.

In addition, he wants to control the smart home devices he has developed with the Google Assistant.

We currently cannot use "Custom intents" for the "Voice-enable your Android app" feature. I wish we could add google assistant feature directly to our software independently (without any google home or nest affiliation)... (https://developers.google.com/assistant/app/custom-intents) custom intents; It is not specialized for Smart Home and is not used in local languages ​​such as Turkish.

We are focusing on the Google Assistant feature for Smart Home. (https://developers.google.com/assistant/smarthome/overview)

Scenario 1: There is a way that Google communicates with the developer cloud via Access Token. (https://developers.google.com/assistant/smarthome/concepts/fulfillment-authentication)

Scenario 2: There is also a second way. Here google assistant is communicating with a google home or google nest device (rather than developer cloud). (https://developers.google.com/assistant/smarthome/concepts/local) Obviously something strange is going on here. Google Assistant; It says it will contact google home. Is it the google home app installed on the phone he's talking about here, or a google home app like a speaker? Because at https://developers.google.com/assistant/smarthome/concepts/local#supported-devices, a speaker is shown as google home. If it's not talking about the google home app on the phone, or if it can't communicate with the google home app on the phone, it's not much use to us. Because the user may not have a physical google home product/device.

Neither of these scenarios fits exactly what we want to do. What we want to do is exactly this; Google Assistant should neither communicate with our cloud (to avoid lag) nor should it communicate with a google nest device (because the user may not have such a device). It should communicate directly with our app installed on the user's phone. Google Assistant or Google Home; should tell our application the purpose to be fulfilled. Let's send the request sent to us by google assistant or google home to our device or cloud (whatever options are possible).

Is there such a feature in the local home SDK of Google Assistant? Or is there another way google assistant can communicate directly with our app?

Because it is frankly very strange that google home or assistant try to communicate directly with a smart device when our app is installed on the user's phone. It can communicate with our cloud server, but why can't it communicate with our application installed on the phone?

Google assistant or google home; can communicate directly with our application installed on the phone while registering the first account instead of our oauth 2 server. Google is linking to our app instead of using oauth 2 directly. Our app connects to oauth 2 and gives a token to google. In other words, the user can make a sync with our local application on his phone. https://developers.google.com/assistant/smarthome/develop/implement-app-flip#implement-app-flip-in-your-native-apps

But I also think that in order to control smart devices, the user would have to communicate with our application installed on his phone.

Is there a way to this?


Solution

  • The platform does not support a way to directly control a smart home device through an app installed on a phone. Counter to your scenario, there are times when a person wants to control their device when their phone is not around.

    Local Home SDK integrations are in addition to an existing cloud integration. This base cloud integration is needed in the cases that a person is not at home.