Устранение неполадок

Пример приложения

Если у вас возникнут какие-либо проблемы при использовании API Home, вы можете собрать логи для дальнейшей отладки. Для сбора логов с мобильного устройства требуется Xcode. Если вам нужна помощь от Google, соберите логи как с устройства iOS, так и с хаба и создайте заявку в системе отслеживания ошибок, указав соответствующую информацию и связанные с ней логи.

Собирайте журналы iOS.

Для выполнения всех шагов, связанных с Xcode, ваше мобильное устройство должно быть подключено к локальному компьютеру.

Журналы приложения и журналы SDK отображаются и собираются непосредственно в консоли Xcode. Когда ваше мобильное устройство подключено к локальному компьютеру, и вы запускаете приложение через Xcode, консоль автоматически захватывает и передает стандартный вывод (stdout) и стандартные ошибки (stderr) как из уровня приложения, так и из интегрированного Home SDK. Это обеспечивает простой способ мониторинга процессов инициализации в реальном времени, взаимодействий с API и событий SDK во время разработки и отладки.

Сбор логов расширений из Xcode

Если при использовании API Home у вас возникнут какие-либо проблемы, вы можете собрать журналы для дальнейшей отладки.

  1. В Xcode перейдите в меню «Отладка» в верхней строке и выберите «Присоединиться к процессу по PID или имени» .

    Пример отладки приложения

  2. В поле PID или Process Name выберите MatterExtension и нажмите Attach .

    Пример расширения для подключения приложения

  3. Если вы нажмете в правом верхнем углу, то увидите сообщение «Ожидание подключения к MatterAddDeviceExtension на iPhone» .

    Пример статуса ожидания приложения

  4. Перейдите на вкладку и выберите MatterAddExtension .

    Пример приложения, добавляющего расширение Matter.

  5. В консоль будет записан журнал расширений.

Sherlog: трассировка событий между стеками.

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

Предварительное условие : для отслеживания требуется использование общего аккаунта, скоординированного с Google (например, зарегистрированного в GReg или демонстрационного аккаунта).

Основная цель : устранение функциональных дефектов и проблем интеграции между облачными сервисами (например, сбои привязки учетных записей или некорректное состояние устройств) без необходимости внесения изменений в производственный код.

Возможности : Предоставляет полные графы вызовов RPC, данные запросов/ответов и метаданные для интентов SYNC, EXECUTE, QUERY и Account Linking.

Журналы работы устройства Fuchsia Hub

С помощью этого метода можно собирать данные со следующих устройств Fuchsia: * Google Nest Hub (2-го поколения) * Google Nest Hub Max

Для включения центра обработки локальных журналов:

  1. Отправьте электронное письмо с серийным номером и моделью ваших устройств вашему техническому менеджеру по работе с клиентами Google (TAM). Эти данные указаны мелким шрифтом под устройством.
  2. После добавления в список разрешенных необходимо активировать эту функцию, выполнив следующие шаги:
    • Из центрального офиса:
      1. Проведите пальцем вниз от верхнего края экрана.
      2. Нажмите на «Настройки»
      3. Чтобы узнать версию Fuchsia, перейдите в раздел «Информация об устройстве» > «Техническая информация» > «Версия Fuchsia».
      4. Нажмите на "Версия Фуксия" 7 раз. Это активирует параметры разработчика.
      5. Вернуться в главное меню
      6. Нажмите на «Параметры разработчика».
      7. Нажмите на кнопку «Вход для партнеров».
    • Эта функция будет активирована на 24 часа. После этого повторно включите функцию ведения журнала, начиная с шага 5.
  3. Получите IP-адрес вашего хаба:
    • Если у центрального блока есть экран:
      1. Проведите пальцем вниз от верхнего края экрана.
      2. Нажмите на «Настройки»
      3. Найдите IP-адрес устройства: на Nest Hub (2-го поколения) перейдите в раздел «Информация об устройстве» > «Техническая информация» > «IP-адрес».
    • Из приложения Google Home (GHA) на вашем телефоне:
    • Коснитесь устройства, чтобы открыть страницу с подробными сведениями о нем.
    • Нажмите на значок « », чтобы открыть страницу настроек.
    • Чтобы узнать IP-адрес устройства, перейдите в раздел «Информация об устройстве» > «Техническая информация» > «IP-адрес».
  4. Для получения журналов с центрального узла необходимо отправить HTTP-запрос GET к центральному узлу с компьютера, подключенного к той же сети Wi-Fi.
    • Обратите внимание на порт и путь к конечной точке:
      curl -k -X GET https://ip-address:8443/setup/get_logs --output output-file
      
    • Соединение может оставаться открытым только в течение одной минуты, но данные, извлекаемые из буфера, обычно содержат информацию о событиях за 20-30 минут.
      • В идеале, журналы следует извлекать этим методом сразу после завершения процедуры тестирования, чтобы убедиться, что буфер содержит информацию, относящуюся к тесту (аналогично отчетам об ошибках в Android).

Автоматизация

Обнаружение границ

В экосистеме Google Home в функциях автоматизации используется обнаружение изменений состояния , то есть логика, которая проверяет, что запуск устройства происходит только при фактическом изменении состояния, в отличие от обновления состояния, которое просто повторяет предыдущее состояние устройства.

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

Автоматизация работает не так, как ожидалось.

Если автоматизация работает не так, как ожидалось, с учетом обнаружения границ, после этого:

  1. Проверьте каждое устройство, чтобы убедиться в его исправной работе независимо от вашей системы автоматизации.

  2. Внимательно изучите график автоматизации для вашей системы автоматизации и сравните его с вашим DSL-языком автоматизации, чтобы выявить любые потенциально неверные предположения с вашей стороны.

  3. Отслеживайте состояние устройства в приложении Google Home во время выполнения автоматизации.

  4. Убедитесь, что все устройства, на которые ссылается автоматизация, присутствуют в структуре там, где вы ожидаете их увидеть. Удаление устройства, от которого зависит автоматизация, может иметь непредвиденные последствия. См. раздел «Влияние удаления устройства на автоматизацию» .

Автоматизация запускается тогда, когда не должна.

Если ваша автоматизация запускается, когда не должна, проверьте критерии запуска. Возможно, потребуется добавить дополнительную логику, чтобы гарантировать, что изменение состояния будет зафиксировано только один раз и запустит автоматизацию только один раз.

Автоматизация не компилируется

Убедитесь, что ваше приложение содержит все необходимые импорты, включая каждый класс, соответствующий различным типам узлов, а также трейты, на которые вы ссылаетесь.

Создание автоматизации не проходит проверку.

Если автоматизация не проходит проверку, появляется предупреждение или сообщение об ошибке, содержащее информацию о проблеме. Для получения дополнительной информации обратитесь к справочнику ValidationIssueType .

OAuth

Если у вас уже есть клиент OAuth

Если у вас уже есть проверенный OAuth-клиент для опубликованного приложения, вы можете использовать его для тестирования API Home.

Регистрация Google Home Developer Console не требуется для тестирования и использования API Home. Однако вам все равно потребуется подтвержденная регистрация Developer Console для публикации вашего приложения, даже если у вас есть проверенный клиент OAuth из другой интеграции.

Принимаются во внимание следующие факторы:

  • При использовании существующего OAuth-клиента действует ограничение в 100 пользователей. Информацию о добавлении тестовых пользователей см. в соответствующем разделе.Сгенерируйте идентификатор клиента OAuth .Независимо от аутентификации OAuth, существует ограничение, установленное Home APIs, — не более 100 пользователей, которые могут предоставлять разрешения вашему приложению. Это ограничение снимается после завершения регистрации в Developer Console .

  • Регистрация Developer Console Этот документ следует отправить на утверждение, когда вы будете готовы ограничить предоставление доступа к определенным типам устройств через OAuth в рамках подготовки к обновлению вашего приложения с использованием Home API.

Для приложений Google Cloud , ожидающих проверки OAuth, пользователи не смогут завершить процесс OAuth до завершения проверки. Попытки предоставить разрешения завершатся ошибкой:

Access blocked: <Project Name> has not completed the Google verification process.