В Google Home. Проблема, связанная с настройкой устройства блокировки

#iot #google-home #google-smart-home

Вопрос:

Вступление:

  • был создан проект Google Умный дом
  • был настроен прокси — сервер через ngrok для перенаправления запроса Google на мой локальный компьютер

Я разрабатываю проект интернета вещей, который имеет возможность открывать/закрывать блокировку. Мне нужно внедрить интеграцию с Google, чтобы использовать Google Assistant для управления блокировками пользователей. Я внедрил сервер OAuth для Google. Также я внедрил некоторые контроллеры для обработки намерений действий Google: SYNC , QUERY и EXECUTE . Google отправляет запрос с целью СИНХРОНИЗАЦИИ, и приложение отвечает полезной нагрузкой, содержащей список устройств с определенными настройками. Пример:

 {
  requestId: 'requestIdOfGoogle', // contains in the request body
  payload: {
    agentUserId: 'userId123', // matches user id inside app system
    devices: [
      {
        id: 1,
        type: 'action.devices.types.LOCK', // device type
        traits: ['action.devices.traits.LockUnlock'], // feature that has a device
        name: {
          name: 'Kos Lock'
        },
        willReportState: true,
        roomHint: 'Main Door',
        deviceInfo: { // Test data
          manufacturer: 'smart-home-inc',
          model: 'hs1234',
          hwVersion: '3.2',
          swVersion: '11.4'
        }
      }
    ]
  }
}
 

Затем Google отправляет запросы на мой сервер с QUERY намерением получить информацию о состоянии устройства, экземпляра

 {
  requestId: 'requestIdOfGoogle', // contains in the request body
  payload: {
    devices: {
      1: {
        status: 'SUCCESS',
        online: true,
        isLocked: true,
        // isJammed - Boolean. Whether the device is currently jammed and therefore its 
        // locked state cannot be determined.
        isJammed: false
      }
    }
  }
}
 

Но после отправки ответа тестовая блокировка не настроена, и пользователь не может управлять ею с помощью Google Assistant.
введите описание изображения здесь

Я пытался добавить другие черты для блокировки, но это мне не помогло. Также у меня такая же проблема, когда я пытаюсь настроить дверное устройство. Но когда я отправляю в Google Light устройство, оно успешно работает. Когда вы используете эту LockUnlock функцию, Google Doc рекомендует настроить дополнительную проверку пользователя, но это необязательно.

Я не понимаю, что делаю неправильно. Если кто-то столкнулся с такой проблемой и решил ее, то не могли бы вы мне помочь, пожалуйста

Предпосылки:

  • используйте узел ^14.0.0
  • язык программирования — js

Комментарии:

1. Похоже, что он правильно отображается в приложении. Голосовые команды не работают?

2. Голосовые команды работают. Но я хочу реализовать сенсорное управление из приложения Google Home. Возможно, мне нужно изучить «как настроить приложение Google Home» на стороне пользователя. И это поможет мне решить мою проблему. Но я не уверен. Спасибо, я продолжу свои исследования

Ответ №1:

Сенсорное управление поддерживается не для каждого устройства, а замки не относятся к типу устройств, которыми можно управлять напрямую. Но они все равно будут реагировать на голосовые команды.

Комментарии:

1. Я исследовал стороннее приложение Йельского университета, в котором есть функция блокировки/разблокировки блокировки. Это приложение имеет сенсорное управление для выполнения команды блокировки/разблокировки. Но возможно, приложение Yale зарегистрировало пользовательское устройство с таким же значком блокировки и добавило функцию управления блокировкой из приложения Google Home. Я думаю, что мне нужно исследовать этот способ — зарегистрировать пользовательский тип устройства

2. Это сторонняя компания, которая будет чем-то, что Йель может сделать для своих собственных устройств в своем собственном приложении, но отличается от приложения Google Home.