Pemecahan masalah

Aplikasi contoh

Jika mengalami masalah saat menggunakan Home API, Anda dapat mengumpulkan log untuk proses debug lebih lanjut. Mengumpulkan log dari perangkat seluler memerlukan Xcode. Jika Anda memerlukan bantuan dari Google, kumpulkan log dari perangkat iOS dan hub, lalu buka tiket di issue tracker dengan informasi dan log yang relevan terkait masalah tersebut.

Mengumpulkan log iOS

Perangkat seluler Anda harus terhubung ke komputer lokal untuk semua langkah yang melibatkan Xcode.

Log aplikasi dan log SDK ditampilkan dan dapat dikumpulkan langsung dalam konsol Xcode. Saat perangkat seluler Anda terhubung ke komputer lokal dan Anda menjalankan aplikasi melalui Xcode, konsol akan otomatis merekam dan melakukan streaming log output standar (stdout) dan error standar (stderr) dari lapisan aplikasi dan Home SDK yang terintegrasi. Hal ini memberikan cara mudah untuk memantau proses inisialisasi real-time, interaksi API, dan peristiwa SDK selama pengembangan dan proses debug.

Mengumpulkan log ekstensi dari Xcode

Jika mengalami masalah saat menggunakan Home API, Anda dapat mengumpulkan log untuk proses debug lebih lanjut.

  1. Di Xcode, buka Debug di panel menu atas, lalu klik Attach to Process by PID or Name.

    Proses debug aplikasi contoh

  2. Di bagian PID or Process Name, pilih MatterExtension, lalu klik Attach.

    Ekstensi lampiran aplikasi contoh

  3. Anda akan melihat Waiting to attach to MatterAddDeviceExtension on iPhone jika mengklik kanan atas.

    Status menunggu aplikasi contoh

  4. Klik tab dan pilih MatterAddExtension.

    Aplikasi contoh yang menambahkan ekstensi Matter

  5. Konsol akan mencatat log Ekstensi.

Sherlog: Pelacakan Peristiwa Lintas Stack

Sherlog adalah layanan pelacakan real-time yang memberikan gambaran menyeluruh tentang interaksi antara infrastruktur Google dan layanan cloud partner.

Prasyarat: Pelacakan memerlukan penggunaan akun bersama yang dikoordinasikan oleh Google (misalnya, akun demo atau akun yang terdaftar di GReg).

Tujuan Inti: Men-debug cacat fungsional dan masalah integrasi cloud-to-cloud (C2C) (misalnya, kegagalan penautan akun atau status perangkat yang salah) tanpa memerlukan perubahan kode produksi.

Kemampuan: Menyediakan grafik panggilan RPC, payload permintaan/respons, dan metadata lengkap untuk intent SYNC, EXECUTE, QUERY, dan Penautan Akun.

Log perangkat hub Fuchsia

Anda dapat mengumpulkan log dari hub Fuchsia berikut menggunakan metode ini: * Google Nest Hub (generasi ke-2) * Google Nest Hub Max

Untuk mengaktifkan hub untuk pengambilan log lokal:

  1. Kirim email berisi Nomor Seri dan Model perangkat Anda ke Manajer Akun Teknis (TAM) Google Anda. Nomor ini dapat ditemukan dalam huruf kecil di bawah perangkat.
  2. Setelah diizinkan, Anda harus mengaktifkan fitur tersebut dengan mengikuti langkah-langkah berikut:
    • Dari hub:
      1. Geserkan jari pada layar dari atas ke bawah
      2. Ketuk ikon Setelan
      3. Temukan Versi Fuchsia: Di Nest Hub (generasi ke-2), buka Informasi perangkat > Informasi teknis > Versi Fuchsia
      4. Ketuk "Versi Fuchsia" 7 kali. Tindakan ini akan mengaktifkan opsi developer
      5. Kembali ke menu tingkat teratas
      6. Ketuk "Opsi developer"
      7. Ketuk "Partner Logging"
    • Fitur ini akan diaktifkan selama 24 jam. Setelah itu, aktifkan kembali fitur logging dari langkah 5 dan seterusnya.
  3. Dapatkan alamat IP hub Anda:
    • Dari hub, jika memiliki layar:
      1. Geserkan jari pada layar dari atas ke bawah
      2. Ketuk ikon Setelan
      3. Temukan alamat IP perangkat: Di Nest Hub (generasi ke-2), buka Informasi perangkat > Informasi teknis > Alamat IP
    • Dari aplikasi Google Home (GHA) di ponsel Anda:
    • Ketuk perangkat untuk menampilkan halaman detail perangkat
    • Ketuk ikon Setelan untuk membuka halaman setelan
    • Temukan alamat IP perangkat: buka Informasi perangkat > Informasi teknis > Alamat IP
  4. Untuk mengambil log dari hub, Anda akan membuat permintaan HTTP GET ke hub dari komputer di jaringan Wi-Fi yang sama.
    • Perhatikan port dan jalur endpoint:
      curl -k -X GET https://ip-address:8443/setup/get_logs --output output-file
      
    • Koneksi hanya dapat tetap terbuka selama satu menit, tetapi data yang diambil dari buffer biasanya memiliki peristiwa yang terjadi dalam 20-30 menit terakhir.
      • Idealnya, log diekstrak menggunakan metode ini segera setelah menyelesaikan prosedur pengujian untuk memastikan buffer berisi konten yang relevan dengan pengujian (mirip dengan laporan bug Android).

Otomatisasi

Deteksi tepi

Otomatisasi di ekosistem Google Home menampilkan deteksi tepi, yang merupakan logika yang memverifikasi bahwa pemicu hanya diaktifkan saat ada perubahan status yang sebenarnya, bukan update status yang hanya mengulangi status perangkat sebelumnya.

Misalnya, jika menyalakan lampu adalah pemicu, deteksi tepi akan memverifikasi bahwa pemicu hanya diaktifkan jika perangkat lampu tersebut berubah dari nonaktif menjadi aktif, bukan dari aktif menjadi aktif (tidak ada perubahan).

Otomatisasi tidak berfungsi seperti yang diharapkan

Setelah memperhitungkan deteksi tepi, jika otomatisasi tidak berperilaku seperti yang diharapkan:

  1. Periksa setiap perangkat untuk memastikan bahwa perangkat berfungsi dengan baik, terlepas dari otomatisasi Anda.

  2. Lihat grafik otomatisasi untuk otomatisasi Anda, bandingkan dengan DSL otomatisasi, untuk mengungkapkan asumsi yang berpotensi salah dari pihak Anda.

  3. Amati status perangkat di aplikasi Google Home selama eksekusi otomatisasi Anda.

  4. Periksa untuk memastikan bahwa semua perangkat yang dirujuk oleh otomatisasi ada dalam struktur yang Anda harapkan. Menghapus perangkat yang diperlukan otomatisasi dapat menimbulkan konsekuensi yang tidak diinginkan. Lihat Dampak penghapusan perangkat terhadap otomatisasi.

Otomatisasi berjalan saat seharusnya tidak

Jika otomatisasi Anda berjalan saat seharusnya tidak berjalan, periksa kriteria pemicu. Anda mungkin perlu menambahkan logika tambahan untuk memastikan bahwa perubahan status hanya dicatat sekali dan memicu otomatisasi hanya sekali.

Otomatisasi tidak dikompilasi

Pastikan aplikasi Anda berisi semua impor yang diperlukan, termasuk setiap class yang sesuai dengan berbagai jenis node serta karakteristik yang Anda referensikan.

Pembuatan otomatisasi gagal divalidasi

Jika pembuatan otomatisasi tidak lulus validasi, pesan peringatan atau error akan memberikan informasi tentang masalah tersebut. Untuk mengetahui informasi selengkapnya, lihat referensi ValidationIssueType.

OAuth

Jika Anda sudah memiliki klien OAuth

Jika sudah memiliki klien OAuth terverifikasi untuk aplikasi yang dipublikasikan, Anda dapat menggunakan klien OAuth yang ada untuk menguji Home API.

Pendaftaran Google Home Developer Console tidak diperlukan untuk menguji dan menggunakan Home API. Namun, Anda tetap memerlukan pendaftaran Developer Console yang disetujui untuk memublikasikan aplikasi, meskipun Anda memiliki klien OAuth terverifikasi dari integrasi lain.

Pertimbangan berikut berlaku:

  • Ada batas 100 pengguna saat menggunakan klien OAuth yang ada. Untuk mengetahui informasi tentang cara menambahkan pengguna uji coba, lihat Membuat client ID OAuth. Terlepas dari verifikasi OAuth, ada batas yang diberlakukan Home API, yaitu 100 pengguna yang dapat memberikan izin ke aplikasi Anda. Batasan ini akan dicabut setelah pendaftaran Developer Console selesai.

  • Developer Console pendaftaran harus dikirim untuk mendapatkan persetujuan saat Anda siap membatasi pemberian jenis perangkat melalui OAuth sebagai persiapan untuk mengupdate aplikasi Anda dengan Home API.

Untuk aplikasi Google Cloud yang masih menunggu verifikasi OAuth, pengguna tidak dapat menyelesaikan alur OAuth hingga verifikasi selesai. Upaya untuk memberikan izin akan gagal dengan error berikut:

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