Search code examples
actions-on-googlegoogle-assistant-sdkgoogle-smart-home

Google Actions no execute


I have written a simple Java application based on Google example code: https://github.com/actions-on-google/smart-home-nodejs

and watched a lot of movies, took Google codelabs, but I'm stuck.

My application responses to required actions (intents: action.devices.SYNC, action.devices.QUERY, action.devices.EXECUTE) - chcecked with Google validator, JSON validators. I have also implemeted simple OAuth authorization, created Google Actions projects for Smart Home.

After few hours of debugging I have got:

  • my test application is listed in Add devices menu,
  • I can select my application from list and connect it,
  • Google performs OAuth checking and everythings is OK (I see this in Nginx logs and my application logs),
  • then Google Actions sends action.devices.SYNC request to my server,
  • I responde with a test device:
{
   "requestId":"14182994871341693427",
   "payload":{
      "agentUserId":"rysiek",
      "devices":[
         {
            "id":"dev1",
            "type":"action.devices.types.LIGHT",
            "traits":[
               "action.devices.traits.OnOff"
            ],
            "name":{
               "name":"główne"
            },
            "willReportState":false,
            "roomHint":"pokój dzienny"
         }
      ]
   }
}

I have also tryied with willReportState: true,

  • then it (Google Assistant) asks me to assign devices to room which I'm doing.

After this nothing more is working.

I'm trying to say to my phone Turn on light główne (in polish "Włącz światło główne", "Włącz światło główne w pokoju dziennym" etc - tried a lot of sentences), but it just shows me web search results. No request is send to my server (action.devices.EXECUTE) - I have everything behind a Nginx proxy, and no requests are done to my server (not request is visible in logs).

I have no idea, what to do to make it work. Any help will be appreciated.

BTW1. Google Assistant is available in Poland from this year (16.01.2019) from few days and I'm wondering if this is my problem or Google problem? Is this even possible?

For example I'm saying Ok Google, synchronize my devices (in polish: Ok Google, synchronizuj moje urządzenia), and I get response in english: "Sorry, I didn't get any response.". But I see that there was a request for SYNC, and my server responed.

BTW2. I have connected Google Chromecast to Google Assistant, and it works without a problem - I'm mean I saying Turn on TV (in polish: Włącz telewizor) and TV is started like expected.


Solution

  • Checking the list of supported languages for smart home traits, Polish is currently not included. While it does seem like your SYNC response does work, you won't be able to interact with devices in Polish right now. While this will likely happen in the future, you'll only be able to use one of the languages mentioned above for the moment.

    Once Polish support for smart home actions are supported, you shouldn't need to do any extra work for commands to succeed.