Преобразование HTTP-запросов в MQTT и обратно для интеграции с умным домом - PullRequest
0 голосов
/ 01 февраля 2019

У нас уже запущена настройка MQTT для связи между устройствами «умный дом» и удаленным сервером, для удаленного управления устройствами.Теперь мы хотим интегрировать наши устройства с Google Home и Alexa.Эти два используют HTTP для связи со сторонними облаками устройств.

Я реализовал это для Google Home, и после получения запроса к облаку устройства запрос преобразуется в MQTT .Этот MQTT-запрос затем отправляется на устройство умного дома.Облако устройства ждет несколько секунд, чтобы получить ответ от устройства умного дома.Если в течение заданного времени не получен ответ, он отправляет сообщение об ошибке HTTP-ответ в Google Home, иначе он отправляет полученный ответ.

Есть ли лучший способ справиться с этим?Поскольку это коммерческий проект, я хочу, чтобы он был реализован правильно.

Любая помощь будет оценена.

Спасибо

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

По крайней мере, Google Home действительно не требует синхронной работы там.Как только вы получите EXECUTE-намерение через их API, вам просто нужно отправить это на ваше устройство (но оно не обязательно должно сообщать о своем состоянии обратно).Как только его состояние изменится, вы либо сохраните его для дальнейших запросов QUERY, либо предоставите эти данные на сервер Google Homegraph с помощью интерфейса «Состояние отчета».

Я разрабатываю gBridge.io как проект, обеспечивающий довольно похожую функциональность (но для другой целевой группы).Там он строго разделен, как описано: слушатель конечной точки HTTP реагирует на команды из Google Home и отправляет его в кеш, где он в конечном итоге отправляется в соответствующую тему MQTT.Другой работник слушает темы MQTT от пользователей и хранит там информацию в кеше, чтобы при необходимости ее можно было отправить обратно в Google.

0 голосов
/ 01 февраля 2019

Мы используем AWS IoT , и я думаю, что это хороший способ решения проблем IoT, ниже приведены некоторые его особенности:

  • Сертификация, каждое устройство - это вещьи прикрепил свою собственную политику, это безопасность
  • Shadow, это документ JSON о текущем состоянии устройства, Служба Device Shadow действует как посредник, позволяя устройствам и приложениям извлекать и обновлять тень устройства
  • Без сервера, мы используем лямбду для создания навыков и серверов, это гибкое правило
  • , мы используем его для перехвата MQTT-сообщений, чтобы мы могли сообщать об изменении состояния устройства на Google и Alexa.Кстати, для Google внедрение Report State стало обязательным для всех партнеров, запускающих и сертифицирующих.
  • Вы можете выбрать либо MQTT, либо HTTP

Это отнимает много времени, но оно того стоит!Мы продали 8 000+ продуктов, пока что все хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...