トラブルシューティング

サンプルアプリ

Home API の使用時に問題が発生した場合は、ログを収集してさらにデバッグできます。モバイル デバイスからログを収集するには、Xcode が必要です。 Google のサポートが必要な場合は、iOS デバイスとハブの両方からログを収集し、関連情報とログを添付して問題トラッカーでチケットを開いてください。

iOS ログを収集する

Xcode を使用するすべての手順で、モバイル デバイスをローカルマシンに接続する必要があります。

アプリログと SDK ログは、Xcode コンソール内で直接表示して収集できます。モバイル デバイスがローカルマシンに接続され、Xcode を介してアプリケーションを実行すると、コンソールはアプリケーション レイヤと統合された Home SDK の両方から標準出力(stdout)ログと標準エラー(stderr)ログを自動的にキャプチャしてストリーミングします。これにより、開発とデバッグ中にリアルタイムの初期化プロセス、API インタラクション、SDK イベントを簡単にモニタリングできます。

Xcode から拡張機能ログを収集する

Home API の使用時に問題が発生した場合は、ログを収集してさらにデバッグできます。

  1. Xcode で、上部のメニューバーの [Debug] に移動し、[Attach to Process by PID or Name] をクリックします。

    サンプルアプリのデバッグ

  2. [PID or Process Name] で [MatterExtension] を選択し、 [Attach] をクリックします。

    サンプルアプリの関連付け拡張機能

  3. 右上の をクリックすると、[Waiting to attach to MatterAddDeviceExtension on iPhone] が表示されます。

    サンプルアプリの待機ステータス

  4. タブをクリックして [MatterAddExtension] を選択します。

    Matter 拡張機能を追加するサンプルアプリ

  5. コンソールに拡張機能ログが記録されます。

Sherlog: クロススタック イベント トレース

Sherlog は、Google のインフラストラクチャとパートナーのクラウド サービス間のインタラクションのエンドツーエンドのビューを提供するリアルタイム トレース サービスです。

前提条件: トレースには、Google が調整した共有アカウント(GReg に登録されたアカウントやデモアカウントなど)を使用する必要があります。

主な目的: 本番環境のコードを変更することなく、機能の欠陥やクラウド間(C2C)の統合の問題(アカウントのリンクエラーやデバイスの状態が正しくないなど)をデバッグします。

機能: SYNC、EXECUTE、QUERY、アカウント リンクのインテントの完全な RPC 呼び出しグラフ、リクエスト/レスポンス ペイロード、メタデータを提供します。

Fuchsia ハブ デバイスのログ

この方法を使用すると、次の Fuchsia ハブからログを収集できます。 * Google Nest Hub(第 2 世代) * Google Nest Hub Max

ローカルログの取得用にハブを有効にするには:

  1. デバイスのシリアル番号とモデルを記載したメールを Google のテクニカル アカウント マネージャー(TAM)に送信します。デバイスの下に小さく記載されています。
  2. 許可リストに登録されたら、次の手順で機能を有効にする必要があります。
    • ハブから:
      1. 画面を上から下にスワイプします。
      2. 設定アイコン をタップします。
      3. Fuchsia バージョンを確認します。Google Nest Hub(第 2 世代)の場合は、[デバイス情報] > [技術情報] > [Fuchsia バージョン] に移動します。
      4. [Fuchsia バージョン] を 7 回タップします。これにより、デベロッパー オプションが有効になります。
      5. 最上位メニューに戻ります。
      6. [デベロッパー オプション] をタップします。
      7. [パートナー ロギング] をタップします。
    • この機能は 24 時間有効になります。その後、手順 5 以降でロギング機能を再度有効にします。
  3. ハブの IP アドレスを取得します。
    • 画面付きのハブから:
      1. 画面を上から下にスワイプします。
      2. 設定アイコン をタップします。
      3. デバイスの IP アドレスを確認します。Google Nest Hub(第 2 世代)の場合は、[デバイス情報] > [技術情報] > [IP アドレス] に移動します。
    • スマートフォンの Google Home アプリ(GHA)から:
    • デバイスをタップして、デバイスの詳細ページを表示します。
    • 設定アイコン を タップして、設定ページを表示します。
    • デバイスの IP アドレスを確認します。[デバイス情報] > [技術情報] > [IP アドレス] に移動します。
  4. ハブからログを取得するには、同じ Wi-Fi ネットワーク上のパソコンからハブに GET HTTP リクエストを送信します。
    • エンドポイントのポートとパスをメモします。
      curl -k -X GET https://ip-address:8443/setup/get_logs --output output-file
      
    • 接続は 1 分間しか開いたままにできませんが、バッファから取得したデータには通常、過去 20 ~ 30 分間のイベントが含まれています。
      • 理想的には、テスト手順の完了直後にこの方法でログを抽出して、バッファにテストに関連するコンテンツが含まれるようにします(Android バグレポートと同様)。

自動化

エッジ検出

Google Home エコシステムの自動化には、エッジ検出 というロジックが搭載されています。これは、デバイスの以前の状態を繰り返すだけの状態更新ではなく、実際の 状態変化があった場合にのみ開始条件が有効になることを確認するロジックです。

たとえば、照明をオンにすることが開始条件の場合、エッジ検出では、照明デバイスがオフからオンに変わった場合にのみ開始条件が有効になることを確認します(オンからオンに変わる場合は変化なし)。

自動化が意図したとおりに動作しない

エッジ検出を考慮しても、自動化が意図したとおりに動作しない場合は、次のことを確認してください。

  1. 各デバイスが自動化とは関係なく正常に機能していることを確認します。

  2. 自動化の自動化グラフを確認し、自動化 DSL と比較して、誤った想定がないか確認します。

  3. 自動化の実行中に Google Home アプリでデバイスの状態を確認します。

  4. 自動化で参照されているすべてのデバイスが、想定される構造に存在することを確認します。自動化が依存するデバイスを削除すると、意図しない結果が生じる可能性があります。デバイスの削除が自動化に与える影響をご覧ください。

自動化を実行すべきでないときに実行される

自動化を実行すべきでないときに実行される場合は、開始条件を確認してください。 状態の変化が 1 回だけキャプチャされ、自動化が 1 回だけトリガーされるように、追加のロジックが必要になることがあります。

自動化がコンパイルされない

アプリに、さまざまなノードタイプに対応する各クラスや参照している特性など、必要なインポートがすべて含まれていることを確認してください。

自動化の作成が検証に失敗する

自動化の作成が検証に合格しない場合は、警告またはエラー メッセージに問題に関する情報が表示されます。詳細については、 ValidationIssueType のリファレンスをご覧ください

OAuth

既存の OAuth クライアントがある場合

公開済みアプリの検証済み OAuth クライアントがすでにある場合は、既存の OAuth クライアントを使用して Home API をテストできます。

Google Home Developer Console のテストと使用に Home API の登録は必要ありません。 ただし、他の統合から 検証済みの OAuth クライアントがある場合でも、アプリを公開するには承認済みの Developer Console登録が必要です。

次のことに注意してください。

  • 既存の OAuth クライアントを使用する場合、ユーザー数の上限は 100 人です。テストユーザーの追加については、 OAuth クライアント IDを生成するをご覧ください。 OAuth 検証とは別に、Home API では、アプリケーションに権限を付与できるユーザーの上限が 100 人に設定されています。 この制限は、 登録が完了すると解除されます。Developer Console

  • Developer Console 登録 は、Home API でアプリを更新する準備として、OAuth を介してデバイスタイプの付与を制限する準備ができたら、承認のために送信する必要があります。

OAuth 検証が保留中の Google Cloud アプリの場合、 検証が完了するまで OAuth フローを完了できません。権限を付与しようとすると、次のエラーが発生します。

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