FAQ Smart Home

Umum

T: Di mana dan dalam bahasa apa kami harus menerapkan infrastruktur fulfillment Actions on Google kami?

J: Selama layanan tersebut mendukung SSL (TLS) dan OAuth 2.0 modern, Anda dapat menerapkan infrastruktur di platform apa pun dan dalam bahasa apa pun yang Anda pilih. Sebaiknya deploy sedekat mungkin dengan infrastruktur Anda yang lain untuk meningkatkan keandalan dan mengurangi latensi eksekusi di perangkat pengguna sebenarnya.


T: Apakah ID perangkat harus unik?

J: ID harus unik. Jika Anda tidak memiliki ID unik di seluruh layanan, ID tersebut harus unik setidaknya pada tingkat per pengguna. Bayangkan pengguna yang memiliki beberapa rumah, dengan kedua rumah tersebut memiliki integrasi ke pengguna yang sama. Meminta untuk menyalakan lampu di satu rumah tidak boleh menyalakan lampu dengan ID yang sama di rumah lain.


T: Apakah nama perangkat harus unik?

J: Nama tidak harus unik, meskipun seiring waktu kami mungkin akan mendorong orang-orang untuk memperbaiki penamaan yang buruk setelah penyiapan agar memberikan pengalaman pengguna yang lebih baik.

Berikut adalah panduan penamaan singkat:

  • Nama harus berupa hal-hal yang dapat diucapkan orang.
  • Kami mengenali subset string, jadi jika Anda memiliki 'acme color light', kami juga akan menjawab 'acme light'.
  • Sebaiknya gunakan nama deskriptif untuk produk dan satu atau beberapa nama yang ditetapkan pengguna.
  • Pengguna tidak perlu memberi nama ruangan lampu, karena kita memiliki ruangan untuk itu; mereka harus memiliki nama unik per ruangan, tetapi selalu dapat menggunakan bentuk jamak untuk memberi perintah semuanya (misalnya, dua bohlam di tempat terang adalah 'lampu utara' dan 'lampu timur', tetapi dapat diperintahkan hanya sebagai 'lampu').

T: Seberapa sering status perangkat diperbarui?

A: Status ephemeral diambil berdasarkan QUERY atau EXECUTE, yang merupakan tindakan yang dimulai oleh pengguna. Jika pengguna bertanya ‘apakah lampu menyala?', atau ingin mencerahkan lampu, kita harus melakukan kueri untuk mengetahui keadaan saat ini.


T: Apakah saya dapat memperbarui Home Graph secara langsung dengan status perangkat saat ini?

J: Ya, gunakan panggilan API Report State.


Penautan Akun dan OAuth

J: Ya, penautan akun diperlukan untuk menghubungkan perangkat pengguna ke layanan cloud penyedia.


T: Untuk OAuth, token akses kami habis masa berlakunya setiap 15, 213 jam.Apakah tidak masalah?

J: Ya, tetapi harap uji dengan masa berlaku yang cukup singkat, misalnya 10-20 menit. Klien OAuth kita harus memuat ulang token sesuai kebutuhan, dan pengujian dengan waktu habis masa berlaku yang singkat akan membuktikan bahwa cara tersebut berfungsi.


Intent

T: Kapan SYNC terjadi?

J: SINKRONKAN terjadi segera setelah penyelesaian OAuth, dan setelah panggilan Request Sync dilakukan.


T: Mengapa SYNC tidak berfungsi?

J: Ada sejumlah alasan umum mengapa hal ini bisa gagal.

  • Anda mengirimkan jenis perangkat yang salah.

    • Misalnya, kami mengharapkan action.devices.types.LIGHT, tetapi Anda mengirim action.devices.types.Light.
  • Anda mengirimkan jenis perangkat yang tidak didukung.

    • Misalnya, Anda mengirim action.devices.types.FLASHLIGHT - ini bukan hal yang kami dukung.
  • Anda mengirimkan kolom yang tidak valid/tidak didukung.

    • Misalnya, Anda memiliki kolom versi atau beberapa kolom lain yang tidak ada dalam spesifikasi kami.
  • Ada beberapa masalah pemformatan lain pada respons SYNC Anda.

    • Periksa tanda kurung Anda.
  • Anda mengalami masalah penautan akun.

    • Harap pastikan bahwa Anda menerima token akses yang valid di header Auth permintaan SYNC.
  • Anda memerlukan waktu terlalu lama untuk merespons permintaan SYNC.

    • Pastikan Anda merespons permintaan SYNC dalam 5 detik.

T: Apakah respons “tertunda” diperbolehkan?

J: Kami lebih memilih respons berhasil/gagal, daripada respons tertunda, jika perangkat Anda tersedia secara real time. Harap hubungi kami jika Anda merasa memerlukan respons 'tertunda'. Kami menyadari bahwa beberapa perangkat non-real-time berdaya rendah mungkin memerlukan respons tertunda dan model eksekusi asinkron.


Pengujian dan Pengiriman

T: Bisakah kita menyiapkan env staging?

J: Ya, buat project terpisah, lalu jalankan penyiapan untuk project tersebut. Anda dipersilakan untuk membuat project sebanyak yang Anda butuhkan untuk dipetakan ke proses dan infrastruktur pengembangan.


T: Seberapa sering saya harus memperbarui project draf?

J: Draf project perlu diperbarui setiap 3 hari. Setelah 3 hari, agen pengujian akan hilang dari setelan mobile-HomeControl. Jika Anda mengalaminya, klik tombol UJI DRAF untuk project Anda di Actions on Google Console.


T: Dapatkah saya menjalankan pengujian di lebih dari satu perangkat sekaligus?

J: Actions on Google hanya mendukung satu AP "coba di perangkat" dalam satu waktu. Jika Anda pertama kali menggunakan TEST DRAFT di "ap1" dan menyinkronkan perangkat, (tanpa membatalkan tautan ap1) langsung jalankan TEST DRAFT "ap2", "ap1" akan hilang dari mobile-HomeControl-settings. Untuk memperbaikinya, jalankan TEST DRAFT di "ap1" lagi dan Anda dapat membatalkan tautan "ap1" di setelan.

Perlu diperhatikan bahwa Paket Tindakan tunggal ini akan tersedia bagi pengguna semua perangkat Google Assistant Anda -- misalnya, Anda dapat menguji integrasi hardware baru pada speaker yang diaktifkan dengan suara dan Android.


T: Pengiriman project Action saya ditolak karena nama atau pengucapannya, apa yang perlu saya ubah?

J: Kami memeriksa pengucapan nama untuk memastikan nama pengucapan tidak diambil oleh Action lain di masa mendatang dan bahwa pengucapan tersebut cocok dengan nama tampilan (untuk mencegah ketidakcocokan yang memengaruhi pendaftaran nama di masa mendatang).

Untuk terus menggunakan nama yang sama, harap hubungi dukungan agar nama tampilan tersebut ditambahkan oleh tim ucapan ke Assistant.


T: Tindakan Saya tidak terlihat di bagian Kontrol Rumah di aplikasi Google Home. Apa yang terjadi?

J: Masalahnya bisa berupa salah satu dari hal berikut:

  • Anda tidak mengklik tombol TEST DRAF untuk project Anda di Actions Console.
  • Anda hanya dapat memiliki satu Action di Pengujian di Perangkat sekaligus.
  • Di Actions Console, buka tab Simulator untuk project Tindakan Anda, dan alihkan tombol Aktif/Tidak Aktif ke Tidak Aktif, lalu Aktif lagi.
  • Jika ini adalah Action yang telah dibagikan kepada Anda, pastikan semua petunjuk berbagi telah diikuti.
  • Uji di Perangkat akan berakhir setelah tiga hari. Klik tombol TEST DRAF untuk project Anda di Actions Console.

T: Mengapa muncul pesan error saat saya mengetik "bicara dengan <my agent name>" di Simulator?

J: Action smart home tidak menggunakan nama pemanggilan. Untuk melakukan pengujian di simulator, Anda harus menjalankan penautan akun di ponsel Android atau iOS dengan Google Home app (GHA) terinstal. Anda juga harus memiliki perangkat yang terkait dengan akun Anda sebelum menjalankan penautan akun.


T: Mengapa saya mendapatkan pesan error saat mencoba menggunakan Simulator?

J: Anda tidak dapat menggunakan simulator untuk menguji Action smart home yang di-deploy. Jika ingin menggunakan simulator untuk proyek otomatisasi rumah yang sedang dalam proses produksi, Anda perlu membuat proyek baru untuk tujuan pengujian.


Status Laporan

T: Apakah ada prasyarat untuk menerapkan Status Laporan?

J: Project ini perlu menggunakan Smart Home API, mendukung OAuth2, dan harus memiliki karakteristik yang memiliki status yang akan dilaporkan.


T: Seberapa sering kami perlu Melaporkan Status di perangkat?

J: Namun, Google tertarik dengan transisi dan status terminal, jika ada banyak perubahan status dalam waktu singkat (misalnya, pengguna membuka dan menutup kulkas tiga kali dalam satu menit atau menggeser peredupan), kita hanya memerlukan status akhir yang dilaporkan.


T: Apakah status perangkat lengkap harus dikirim saat melakukan panggilan Status Laporan?

A: Update status sebagian tidak didukung, sehingga panggilan Report State harus selalu menyertakan semua data untuk fitur tertentu yang telah diupdate. Jika dua ciri akan menimbulkan inkonsistensi, ciri tersebut harus dilaporkan kembali bersama.


T: Dapatkah Google mengkueri perangkat saya untuk mendapatkan statusnya (yaitu, melakukan polling perangkat)?

J: Ini adalah mekanisme penggantian yang tidak kami rekomendasikan. Jika kami perlu sering melakukan polling kembali perangkat untuk pengguna tersebut, kami tidak dapat menjamin berapa beban tambahan yang akan dikenakan. Kebutuhan berasal dari permukaan visual baru. Selain masalah pemuatan yang tidak diketahui, pengalaman pengguna akan menurun. Kami merasa bahwa Report State sangat penting bagi platform.


T: Fitur apa yang mendukung Status Laporan saat ini?

J: Semua karakteristik publik yang memiliki status terkait didukung. Setiap perubahan dalam status Online perangkat juga harus dilaporkan.

Perhatikan bahwa Scene tidak memiliki status. Namun, tindakan tersebut dapat menyebabkan perubahan status perangkat. Jika ada perangkat dalam Google Home Graph yang memiliki status perubahan, hal ini perlu dilaporkan kembali.


T: Apakah Status Laporan memerlukan stempel waktu agar dapat dikirim?

J: Kami tidak memerlukan stempel waktu; status terakhir yang dikirim akan menggantikan panggilan sebelumnya.


T: Apakah saya perlu Melaporkan Status secara terpisah jika saya sudah mengirimkan status di Kueri dan/atau Jalankan?

J: Home Graph hanya menyimpan status yang dikirim melalui Report State. Status yang ditampilkan sebagai respons terhadap intent EXECUTE dan QUERY hanya digunakan untuk respons ucapan kepada pengguna dan tidak disimpan. Akibatnya, Report State harus dipanggil meskipun status baru perangkat telah ditampilkan sebagai respons terhadap intent EXECUTE atau QUERY.


T: Apa konsekuensi jika Anda tidak menerapkan Status Laporan sepenuhnya dalam batas waktu yang ditentukan?

J: Hal ini akan menyebabkan penurunan pengalaman pengguna, misalnya di GHA dan platform visual. Artinya, banyak intent QUERY akan dikirim ke polling untuk status dan kami tidak dapat menjamin apa yang akan terkait dengan beban tambahan di cloud partner.


T: Bagaimana cara menguji penerapan Status Laporan?

J: Gunakan Home Graph Viewer - alat pengujian mandiri yang menunjukkan status perangkat saat ini yang disimpan di Home Graph.


T: Dapatkah kami menggunakan requestId acak untuk Status Laporan?

J: Sebaiknya partner menggunakan requestId yang sama dengan yang mereka terima dari permintaan EXECUTE jika Report State dipicu oleh permintaan EXECUTE. Jika tidak, Anda cukup menggunakan requestId acak.


T: Jika pengguna memiliki beberapa perangkat dan salah satunya berubah statusnya, apakah kami harus melaporkan status terbaru semua perangkat?

J: Tidak. Anda hanya perlu melaporkan status perangkat tersebut.


Tips

T: Latensi seperti apa yang dapat diterima?

J: Idealnya kurang dari 200 md, tidak masalah antara 2-5 detik. Jika latensi Anda melayang sekitar 5 detik, hubungi kami.


T: Bagaimana cara membuat speaker yang diaktifkan dengan suara merespons dengan benar saat sedang offline?

J: Menampilkan status offline untuk perangkat offline. Kita menampilkan 'tidak tersedia saat ini' sebagai TTS untuk error ini. Untuk informasi selengkapnya, lihat Error dan pengecualian.