Я написал простое Java-приложение, основанное на примере кода Google:
https://github.com/actions-on-google/smart-home-nodejs
и посмотрел много фильмов, взял кодовые метки Google, но я застрял.
Мое приложение отвечает на необходимые действия (намерения: 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 ), и телевизор запускается, как и ожидалось .