Интеграция устройства для умного дома с Google home и Alexa - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь интегрировать устройства «умный дом» с Google home и Alexa, но столкнулся со следующей проблемой.

  1. Связь между Google Home / Alexa и нашим облачным сервером устройств осуществляется по протоколу HTTP.
  2. Связь между устройством «умный дом» и нашим облачным сервером устройств осуществляется через MQTT.

Как отслеживать синхронный запрос-ответ?Есть ли лучший способ реализовать эту систему?

Ответы [ 2 ]

0 голосов
/ 29 апреля 2019

Проект gBridge (https://github.com/kservices/gBridge; https://about.gbridge.io) в основном реализует простой Google Assistant / Alexa для MQTT-моста.

Что касается ваших вопросов, есть два момента, которые помогают реализовать эти решения:

  1. Думайте с точки зрения устройств или конечных точек, а не запросов. Когда вы просто хотите «преобразовать» HTTP в MQTT, вы вызываете множество проблем, которые вы уже поняли.Я хочу реализовать логику, которая позволяет темам MQTT контролировать / запрашивать ваших реальных разработчиков, а не тех, которые отвечают на HTTP-запросы. Это значительно упрощает процесс.
  2. Кэширование необходимо. Позвольте вашему мосту иметь локальныйкопия состояний вашего устройства. При наличии надлежащим образом реализованного кэша вам не понадобится никакой ответ. Просто используйте кэшированные данные.
0 голосов
/ 31 января 2019

Прекрасно возможно сделать с HTTP на MQTT и обратно.

Я сделал это для Alexa и Google Home для моих узлов Node-RED.

Вам просто нужно отслеживать текущие запросы и включать уникальный идентификатор в сообщения MQTT запроса / ответа, а также запускать таймер для обработки отсутствия ответа от устройства.

...