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 implementasi implementasi pemenuhan pesanan Actions on Google kami?

J: Selama mendukung SSL modern (TLS) dan OAuth 2.0, Anda dapat mengimplementasikan infrastruktur Anda di platform apa pun dan dalam bahasa apa pun yang Anda pilih. Sebaiknya deploy sedekat mungkin dengan infrastruktur Anda lainnya, guna meningkatkan keandalan dan mengurangi latensi untuk eksekusi pada 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 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 dapat mendorong pengguna untuk memperbaiki penamaan yang buruk setelah penyiapan demi pengalaman pengguna yang lebih baik.

Berikut adalah panduan penamaan cepat:

  • Nama harus seperti yang dapat diucapkan orang lain.
  • Kami mengenali subset string, jadi jika Anda memiliki 'acme color light', kami juga akan menjawab 'acme light'.
  • Sebaiknya gunakan nama yang deskriptif untuk produk dan satu atau beberapa nama yang ditentukan pengguna.
  • Pengguna tidak perlu memberikan nama ruangan lampu, karena kita punya ruangan untuk itu; nama tersebut harus memiliki nama unik untuk setiap ruangan, tetapi dapat selalu menggunakan bentuk jamak untuk memperintahkan semuanya (misalnya, dua bohlam di tempat lilin kantor adalah 'lampu utara' dan 'lampu timur', tetapi dapat diperintahkan hanya sebagai 'lampu').

T: Seberapa sering status perangkat diperbarui?

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


P: 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, masa berlaku token akses berakhir setiap 15, 213 jam.Apakah itu baik?

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


T: Dapatkah kami menggunakan Login dengan Google untuk OAuth?

J: Saat ini, Login dengan Google dapat digunakan untuk memproses login pengguna ke situs layanan Anda, tetapi setelah login, layanan Anda harus membuat token OAuth.


Intent

T: Kapan SYNC terjadi?

J: SINKRONISASI terjadi segera setelah OAuth selesai, dan setelah panggilan Request Sync dilakukan.


T: Mengapa SYNC tidak berfungsi?

J: Ada sejumlah alasan umum mengapa kegagalan ini dapat gagal.

  • Anda mengirimkan jenis perangkat yang salah.

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

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

    • Misalnya, Anda memiliki kolom versi atau kolom lainnya yang tidak ada dalam spesifikasi kami.
  • Ada beberapa masalah format lainnya dengan respons SYNC Anda.

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

    • Pastikan bahwa Anda menerima token akses yang valid di header Auth permintaan SYNC.
  • Waktu Anda terlalu lama untuk merespons permintaan SINKRONISASI.

    • Verifikasi bahwa Anda merespons permintaan SINKRONISASI dalam waktu 5 detik.

T: Apakah respons yang “menunggu keputusan” sudah benar?

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


Pengujian dan Pengiriman

P: Dapatkah kami menyiapkan lingkungan staging?

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


T: Seberapa sering saya perlu memperbarui project draf?

J: Project draf diperbarui setiap 3 hari sekali. Setelah 3 hari, agen pengujian akan hilang dari setelan mobile-HomeControl. Jika Anda mengalami hal ini, klik tombol UJI DRAF untuk project Anda di konsol Tindakan.


T: Dapatkah saya menguji lebih dari satu perangkat sekaligus?

J: Actions on Google hanya mendukung satu AP "coba di perangkat" pada satu waktu. Jika Anda pertama kali menggunakan TEST DRAFT pada "ap1" dan menyinkronkan perangkat, lalu (tanpa membatalkan tautan ap1) langsung menjalankan TEST DRAFT "ap2", "ap1" akan hilang dari mobile-HomeControl-settings. 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 Asisten bagi pengguna. Misalnya, Anda dapat menguji integrasi hardware baru di 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 digunakan oleh Action lain di masa mendatang dan cocok dengan nama tampilan (untuk mencegah ketidakcocokan yang memengaruhi pendaftaran nama di masa mendatang).

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


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

J: Masalahnya mungkin salah satu dari berikut:

  • Anda tidak mengklik tombol UJI DRAF untuk project Anda di Konsol Actions.
  • Anda hanya dapat memiliki satu Action di Test-on-Device sekaligus.
  • Di konsol Actions, 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 UJI DRAF untuk project Anda di konsol Actions.

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

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


T: Mengapa saya mendapatkan error saat mencoba menggunakan Simulator?

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


Status Laporan

P: Apakah ada prasyarat untuk menerapkan Status Laporan?

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


P: Seberapa sering kita perlu Melaporkan Status di perangkat?

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


P: Apakah status perangkat lengkap harus dikirim saat melakukan pemanggilan Status Laporan?

J: Update status parsial tidak didukung, sehingga panggilan Report State harus selalu menyertakan semua data untuk karakteristik tertentu yang telah diupdate. Jika dua karakteristik akan menimbulkan inkonsistensi, keduanya harus dilaporkan kembali.


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

J: Ini adalah mekanisme penggantian yang tidak kami rekomendasikan. Jika kami harus kembali untuk mengumpulkan suara perangkat secara rutin bagi pengguna tersebut, kami tidak dapat menjamin apa beban tambahannya. Kebutuhan berasal dari platform visual baru. Selain masalah pemuatan yang tidak diketahui, pengalaman pengguna akan menurun. Kami merasa Laporan Status sangat penting bagi platform.


P: Apa saja yang mendukung Status Laporan saat ini?

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

Perhatikan bahwa Adegan tidak memiliki status. Namun, tindakan tersebut dapat mengakibatkan perubahan status perangkat. Jika perangkat apa pun di Home Graph memiliki status perubahan, hal ini perlu dilaporkan kembali.


P: Apakah Status Laporan 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 saya sudah mengirimkan status di Kueri dan/atau Jalankan?

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


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

J: Ini akan menyebabkan penurunan pengalaman pengguna, misalnya di aplikasi Home dan platform visual. Artinya, banyak intent QUERY akan dikirim ke polling untuk status dan kami tidak dapat menjamin hal ini akan sesuai dengan beban tambahan di cloud partner.


T: Bagaimana cara menguji implementasi Status Laporan?

J: Gunakan Alat Laporan Status - alat pengujian layanan mandiri yang menunjukkan status perangkat Anda saat ini yang disimpan di Grafik Beranda.


T: Dapatkah kami menggunakan requestId acak untuk Report State?

J: Sebaiknya partner menggunakan requestId yang sama dengan yang mereka terima dari permintaan EXECUTE jika Status Laporan 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 semua perangkat?

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


Praktik Terbaik

T: Latensi apa yang dapat diterima?

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


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

J: Kembalikan status offline untuk perangkat offline. Kami menampilkan 'tidak tersedia saat ini' sebagai TTS untuk error ini. Lihat respons error yang dijelaskan di sini.