トラブルシューティング

サンプルアプリ

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. 右上をクリックすると、[iPhone で MatterAddDeviceExtension に接続するのを待機中] と表示されます。

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

  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 をテストできます。

Home API のテストと使用に Google Home Developer Console の登録は必要ありません。ただし、別の統合で 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.