Я написал простое приложение Java на основе кода примера Google: https://github.com/actions-on-google/smart-home-nodejs.
и смотрел много фильмов, брал Google codelabs, но я застрял.
Мое приложение реагирует на требуемые действия (намерения: action.devices.SYNC, action.devices.QUERY, action.devices.EXECUTE) - проверено валидатором Google, валидаторами JSON. Я также реализовал простую авторизацию OAuth, создал проекты Google Actions для Smart Home.
После нескольких часов отладки я получил:
- мое тестовое приложение указано в меню Добавить устройства,
- Я могу выбрать свое приложение из списка и подключить его,
- Google выполняет проверку OAuth, и все в порядке (я вижу это в журналах Nginx и журналах моих приложений),
- затем Google Actions отправляет на мой сервер запрос action.devices.SYNC,
- Отвечаю тестовым устройством:
{
"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"
}
]
}
}
Я также пробовал с willReportState: true,
- затем он (Google Assistant) просит меня назначить устройства комнате, что я и делаю.
После этого больше ничего не работает.
Я пытаюсь сказать своему телефону Включи свет, główne (по-польски "Włącz światło główne", "Włącz światło główne w pokoju dziennym "и т. д. - пробовал много предложений), но он просто показывает мне результаты веб-поиска. На мой сервер не отправляется никаких запросов (action.devices.EXECUTE) - у меня все находится за прокси-сервером Nginx, и на мой сервер не поступают запросы (запрос не отображается в журналах).
Понятия не имею, что делать, чтобы все заработало. Любая помощь будет оценена по достоинству.
BTW1. Google Assistant доступен в Польше с этого года (16.01.2019) в течение нескольких дней, и мне интересно, это моя проблема или проблема с Google? Это вообще возможно?
Например, я говорю Окей, Google, синхронизируйте мои устройства (по-польски: Окей, Google, synchronizuj moje urządzenia) и получаю ответ на английском языке: "Извините , Я не получил никакого ответа. ". Но я вижу, что был запрос на SYNC, и мой сервер ответил.
BTW2. Я подключил Google Chromecast к Google Assistant, и он работает без проблем - я имею в виду, что говорю Включите телевизор (по-польски: Włącz telewizor), и телевизор запускается вроде и ожидалось.