Пример приложения
Если при использовании API Home возникнут проблемы, вы можете собрать журналы для дальнейшей отладки. Для сбора журналов с мобильного устройства требуется Xcode. Если вам нужна помощь от Google, соберите журналы с iOS-устройства и концентратора и создайте запрос в системе отслеживания ошибок, указав в нем необходимую информацию и прикрепив журналы.
Как собрать журналы iOS
На всех этапах, связанных с Xcode, мобильное устройство должно быть подключено к локальному компьютеру.
Журналы приложений и SDK можно просматривать и собирать прямо в консоли Xcode. Когда мобильное устройство подключено к локальному компьютеру и вы запускаете приложение через Xcode, консоль автоматически захватывает и передает стандартные выходные данные (stdout) и стандартные сообщения об ошибках (stderr) из уровня приложения и встроенного Home SDK. Это позволяет легко отслеживать процессы инициализации в реальном времени, взаимодействия с API и события SDK во время разработки и отладки.
Как собрать журналы расширений из Xcode
Если при использовании API Home возникнут проблемы, вы можете собрать журналы для дальнейшей отладки.
В Xcode перейдите в раздел Debug (Отладка) в верхней строке меню и нажмите Attach to Process by PID or Name (Подключиться к процессу по PID или имени).

В разделе PID or Process Name (Идентификатор процесса или название процесса) выберите MatterExtension и нажмите Attach (Прикрепить).

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

Нажмите на вкладку и выберите MatterAddExtension.

Консоль запишет журнал расширения.
Sherlog: трассировка событий в разных стеках
Sherlog – это сервис отслеживания в реальном времени, который предоставляет комплексное представление о взаимодействии между инфраструктурой Google и облачными сервисами партнеров.
Требование. Для отслеживания необходимо использовать общий аккаунт, координируемый Google (например, зарегистрированный в GReg или демоаккаунт).
Основное назначение. Отладка функциональных дефектов и проблем интеграции между облачными сервисами (например, сбоев при связывании аккаунтов или неправильных состояний устройств) без необходимости вносить изменения в рабочий код.
Возможности. Предоставляет полные графики вызовов RPC, полезные нагрузки запросов и ответов, а также метаданные для намерений SYNC, EXECUTE, QUERY и Account Linking.
Журналы устройств Fuchsia Hub
С помощью этого метода можно собирать журналы со следующих устройств с Fuchsia: * Google Nest Hub (второе поколение) * Google Nest Hub Max
Чтобы включить центр для получения локальных журналов:
- Отправьте электронное письмо с серийным номером и моделью устройств техническому менеджеру аккаунта Google. Они указаны под устройством мелким шрифтом.
- Когда вас добавят в белый список, включите функцию, выполнив следующие действия:
- На главном экране:
- Проведите по экрану сверху вниз.
- Нажмите на значок настроек .
- На Nest Hub (второго поколения) найдите версию ОС Google Fuchsia, выбрав Информация об устройстве > Техническая информация > Версия Fuchsia.
- Нажмите на пункт "Версия Fuchsia" семь раз. После этого параметры для разработчиков будут включены.
- Вернуться в меню верхнего уровня
- Нажмите "Для разработчиков".
- Нажмите "Регистрация действий партнеров".
- Функция будет включена в течение 24 часов. После этого снова включите ведение журнала, начиная с шага 5.
- На главном экране:
- Как узнать IP-адрес концентратора:
- На устройстве с экраном:
- Проведите по экрану сверху вниз.
- Нажмите на значок настроек .
- Чтобы найти IP-адрес устройства, на Nest Hub (второго поколения) выберите Информация об устройстве > Техническая информация > IP-адрес.
- В приложении Google Home на телефоне:
- Нажмите на устройство, чтобы открыть страницу сведений о нем.
- Нажмите на значок настроек , чтобы открыть страницу настроек.
- Чтобы найти IP-адрес устройства, выберите Информация об устройстве > Техническая информация > IP-адрес.
- На устройстве с экраном:
- Чтобы получить журналы от концентратора, отправьте HTTP-запрос GET к концентратору с компьютера, подключенного к той же сети Wi-Fi.
- Запишите порт и путь конечной точки:
curl -k -X GET https://ip-address:8443/setup/get_logs --output output-file - Подключение может быть открыто только одну минуту, но данные, полученные из буфера, обычно содержат события за последние 20–30 минут.
- Рекомендуется извлекать журналы этим способом сразу после завершения процедуры тестирования, чтобы буфер содержал контент, относящийся к тесту (как в отчетах об ошибках Android).
- Запишите порт и путь конечной точки:
Автоматизации
Обнаружение границ
В экосистеме Google Home автоматизации используют обнаружение изменений – логику, которая проверяет, что триггер активируется только при фактическом изменении состояния, а не при обновлении, которое просто повторяет предыдущее состояние устройства.
Например, если запуск устройства – это включение света, обнаружение границ проверяет, активируется ли запуск только в том случае, если свет включается, а не когда он уже включен.
Автоматизация работает не так, как ожидалось
Если после учета обнаружения краев автоматизация работает не так, как ожидалось:
Проверьте, правильно ли работает каждое устройство независимо от автоматизации.
Сравните график автоматизации с DSL-кодом, чтобы выявить возможные ошибки.
Отслеживайте состояние устройства в приложении Google Home во время выполнения программы.
Убедитесь, что все устройства, упомянутые в автоматизации, находятся в нужной структуре. Удаление устройства, от которого зависит автоматизация, может привести к нежелательным последствиям. Подробнее о том, как удаление устройства влияет на автоматизацию…
Автоматизация запускается, когда не должна
Если автоматизация запускается не тогда, когда нужно, проверьте критерии запуска. Возможно, вам потребуется добавить дополнительную логику, чтобы изменение состояния регистрировалось только один раз и автоматизация запускалась только один раз.
Программа автоматизации не компилируется
Убедитесь, что в приложении есть все необходимые импорты, в том числе каждый класс, соответствующий разным типам узлов, а также черты, на которые вы ссылаетесь.
При создании автоматизации не пройдена проверка
Если при создании автоматизации не пройдена проверка, появится предупреждение или сообщение об ошибке с информацией о проблеме. Дополнительную информацию можно найти в справочнике по ValidationIssueType.
OAuth
Если у вас есть клиент OAuth
Если у вас уже есть проверенный клиент OAuth для опубликованного приложения, вы можете использовать его для тестирования Home API.
Для тестирования и использования Home API регистрация Google Home Developer Console не требуется. Однако для публикации приложения вам все равно потребуется одобренная регистрация,Developer Console даже если у вас есть проверенный клиент OAuth из другой интеграции.
Обратите внимание на следующее:
При использовании существующего клиента OAuth действует ограничение на количество пользователей – 100. Информацию о том, как добавить тестовых пользователей, можно найти в разделеСоздайте идентификатор клиента OAuth. Независимо от проверки OAuth, API Home устанавливают ограничение в 100 пользователей, которые могут предоставить разрешения вашему приложению. Ограничение снимается после завершения регистрации Developer Console.
Developer Console registration следует отправить на проверку, когда вы будете готовы ограничить предоставление разрешений по типу устройства через OAuth в рамках подготовки к обновлению приложения с помощью Home API.
Для приложений Google Cloud, которые ещё не прошли проверку OAuth, пользователи не смогут завершить процесс OAuth, пока проверка не будет завершена. При попытке предоставить разрешения появится следующая ошибка:
Access blocked: <Project Name> has not completed the Google verification process.