Selamat datang di Pusat Developer Google Home, tujuan baru untuk mempelajari cara mengembangkan tindakan smart home. Catatan: Anda akan terus membuat tindakan di konsol Actions.

FAQ Smart Home

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Umum

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

J: Selama mendukung SSL modern (TLS) dan OAuth 2.0, 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 untuk eksekusi ke perangkat pengguna yang 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 dengan beberapa rumah, tempat kedua rumah tersebut memiliki integrasi dengan pengguna yang sama. Meminta 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 mendorong orang-orang untuk memperbaiki penamaan yang buruk setelah penyiapan demi pengalaman pengguna yang lebih baik.

Berikut adalah panduan penamaan cepat:

  • Nama harus berupa 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 ditentukan pengguna.
  • Pengguna tidak perlu memberikan nama ruang lampu, karena kita memiliki ruang untuk itu; mereka harus memiliki nama unik per ruangan, tetapi selalu dapat menggunakan bentuk jamak untuk memerintah semuanya (misalnya, dua bohlam di tempat lilin kantor adalah 'lampu utara' dan 'lampu timur', tetapi bisa diperintahkan hanya sebagai 'lampu').

T: Seberapa sering status perangkat diperbarui?

J: Status efemeral diambil berdasarkan QUERY atau EXECUTE, yang merupakan tindakan yang dimulai pengguna. Jika pengguna bertanya 'apakah lampunya menyala', atau ingin mencerahkan lampu, kita perlu melakukan kueri untuk mengetahui status saat ini.


T: Dapatkah saya 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, kami mengakhiri masa berlaku token akses setiap 15.213 jam, bolehkah?

J: Ya, tetapi uji dengan waktu kadaluwarsa yang cukup singkat, misalnya 10-20 menit. Klien OAuth kami harus memperbarui token sesuai kebutuhan dan pengujian dengan waktu habis masa berlaku yang singkat akan membuktikan bahwa berhasil.


T: Dapatkah kami menggunakan Login dengan Google untuk OAuth?

J: Saat ini, Google Sign-In (GSI) dapat digunakan untuk mencatat pengguna ke dalam situs layanan, tetapi setelah login, layanan Anda harus membuat token OAuth.


Intent

T: Kapan SINKRONISASI terjadi?

J: SINKRONISASI terjadi segera setelah OAuth selesai, dan setelah panggilan Minta Sinkronisasi dilakukan.


T: Mengapa SYNC tidak berfungsi?

J: Ada sejumlah penyebab umum yang menyebabkan kegagalan.

  • 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 lainnya terkait respons SINKRONISASI Anda.

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

    • Pastikan bahwa Anda menerima token akses yang valid di header Auth permintaan SYNC.
  • Anda memerlukan waktu terlalu lama untuk menanggapi permintaan SINKRONISASI.

    • Harap verifikasi bahwa Anda merespons permintaan SINKRONISASI dalam waktu 5 detik.

T: Apakah respons “tertunda” sudah cukup?

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


Pengujian dan Pengiriman

T: Dapatkah kami menyiapkan lingkungan staging?

J: Ya, buat project terpisah, lalu jalankan penyiapan untuk project tersebut. Anda dapat membuat project sebanyak yang diperlukan untuk memetakan proses dan infrastruktur pengembangan.


T: Seberapa sering saya harus mengupdate project draf saya?

J: Draf project perlu diperbarui setiap 3 hari. Setelah 3 hari, agen pengujian akan hilang dari setelan mobile-HomeControl. Jika Anda mengalami masalah ini, klik tombol TEST DRAFT untuk project Anda di Actions on Google Console.


T: Dapatkah saya menguji di lebih dari satu perangkat sekaligus?

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

Perhatikan bahwa Paket Tindakan tunggal ini akan tersedia untuk semua perangkat Google Assistant bagi pengguna. 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 nama tersebut cocok dengan nama tampilan (untuk mencegah ketidakcocokan yang memengaruhi pendaftaran nama pada masa mendatang).

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


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

J: Masalahnya mungkin salah satu dari hal berikut:

  • Anda tidak mengklik tombol TEST DRAFT untuk project Anda di Actions Console.
  • Anda hanya dapat memiliki satu Action dalam Test-on-Device sekaligus.
  • Di Actions Console, buka tab Simulator untuk project Action Anda, lalu 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.
  • Masa berlaku pengujian di Perangkat akan berakhir setelah tiga hari. Klik tombol TEST DRAFT untuk project Anda di Actions Console.

T: Mengapa saya mengalami error saat mengetik "talk to <my agent name>" di Simulator?

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


T: Mengapa saya mendapatkan error saat mencoba menggunakan Simulator?

J: Anda tidak dapat menggunakan simulator untuk menguji Tindakan smart home yang di-deploy. Jika ingin menggunakan simulator untuk project otomatisasi rumah yang ada dalam produksi, Anda harus membuat project baru untuk tujuan pengujian.


Status Laporan

P: Apakah ada prasyarat untuk menerapkan Status Laporan?

J: Project perlu menggunakan Smart Home API, mendukung OAuth2, dan perlu memiliki ciri-ciri yang memiliki status untuk dilaporkan.


T: Seberapa sering kita perlu Melaporkan Status di perangkat?

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


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

J: Update status sebagian tidak didukung, jadi panggilan Report State harus selalu menyertakan semua data untuk fitur tertentu yang telah diupdate. Jika dua ciri akan menghasilkan inkonsistensi, keduanya harus dilaporkan kembali bersamaan.


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

J: Ini adalah mekanisme penggantian yang tidak kami rekomendasikan. Jika kami perlu kembali untuk memeriksa perangkat secara rutin bagi pengguna tersebut, kami tidak dapat menjamin beban tambahannya. Kebutuhan berasal dari platform visual baru. Selain masalah beban yang tidak diketahui, pengalaman pengguna akan menurun. Kami menganggap bahwa Report State sangat penting bagi platform.


P: Apa saja sifat yang mendukung Status Laporan saat ini?

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

Perlu diketahui bahwa Pemandangan tidak memiliki status. Namun, tindakan tersebut dapat mengakibatkan perubahan status perangkat. Jika perangkat di Google Home Graph memiliki status perubahan, hal ini perlu dilaporkan kembali.


P: Apakah Laporan Status mengharuskan stempel waktu dikirim?

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


T: Apakah saya perlu Melaporkan Status secara terpisah jika 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.


P: Apa konsekuensi tidak menerapkan Status Laporan sepenuhnya dalam batas waktu yang ditentukan?

J: Hal ini akan mengakibatkan penurunan pengalaman pengguna, misalnya dalam platform GHA dan visual. Artinya, banyak intent QUERY akan dikirim untuk polling status dan kami tidak dapat menjamin hal ini akan sesuai dengan beban tambahan di cloud partner.


T: Bagaimana cara menguji penerapan Status Laporan?

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


P: Dapatkah kami menggunakan requestId acak untuk Status Laporan?

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


T: Jika pengguna memiliki beberapa perangkat dan salah satunya mengalami perubahan status, apakah kami harus melaporkan status terbaru dari semua perangkat?

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


Praktik Terbaik

T: Latensi seperti apa yang dapat diterima?

J: Idealnya kurang dari 200 md, cukup antara 2-5 detik. Jika latensi Anda melebihi waktu sekitar 5 detik, hubungi kami.


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

J: Kembalikan status offline untuk perangkat offline. Kami menampilkan 'not available right now' sebagai TTS untuk error ini. Untuk informasi selengkapnya, lihat Error dan pengecualian.