Bagaimana cara mengajar Alice untuk mengelola rumah pintar Anda. Laporan Yandex

Pada akhir September, pertemuan pertama kami untuk pengembang perangkat keras diadakan - Yandex.Zhelezo. Ini adalah langkah penting di pasar produsen perangkat baru bagi kami. Peserta (sekitar 150 orang) mendengarkan laporan, berbicara dan menghabiskan banyak waktu di stan, di mana Anda dapat melihat ke dalam mobil tak berawak, menjinakkan "bom" dengan memotong kabel yang diperlukan, membongkar Yandex.Station (catatan - 6 menit 23 detik), dan juga menguji Komputer on-board Yandex.Auto dan rumah pintar.





Hanya tentang platform rumah pintar dan bicara hari ini. Pada musim semi, kami meluncurkannya untuk semua pengembang, dan di Yandex.Zhelez, manajer pengembangan platform Marat Mavlyutov merangkum hasil pertama dan menunjukkan cara membangun manajemen perangkat. Dari laporan Anda dapat mempelajari tentang ketentuan API suara, cara-cara menggambarkan dan berinteraksi dengan perangkat pengguna.



- Mari kita bicara tentang rumah pintar. Bagaimana membuat rumah Anda sedikit lebih pintar sehingga tidak ada kucing yang tetap lapar dan semua gerbang di Yekaterinburg terbuka? Mari kita mulai dari awal, kita akan mengerti apa itu rumah pintar. Tampaknya bagi kami bahwa ini adalah rumah di mana Anda tidak perlu mencari outlet yang tersembunyi di balik tirai, atau saklar. Ini adalah rumah di mana Anda tidak perlu mencari remote control dari TV, telepon dengan aplikasi yang dapat mengontrol ketel atau bola lampu. Ini adalah rumah yang mengerti Anda, di mana seseorang menggunakan antarmuka alami yang paling asli baginya - suara.

Mengapa kami mendaki di sana dan apa yang ingin kami dapatkan? Kami benar-benar ingin memastikan bahwa asisten suara kami hanyalah asisten, sehingga ia tidak hanya dapat menghidupkan musik atau video, tetapi juga membantu dalam hal-hal yang paling alami dan sehari-hari.

Kami juga memahami bahwa kami tidak dapat menulis semua kode di dunia sama sekali dan berintegrasi dengan semua perangkat. Itulah mengapa kami ingin antarmuka suara ini menyediakan pengembang, perusahaan, orang-orang yang sudah tahu cara membuat perangkat dan membuatnya keren. Ericsson mengatakan bahwa pada tahun 2021 akan ada 28 miliar perangkat rumah pintar yang terhubung di seluruh dunia. Ini berarti, untuk sesaat, bahwa jika Anda membayangkan seluruh dunia terhubung dengan Internet, maka setiap orang akan memiliki rata-rata empat perangkat.



Tepat sebelum peluncuran, kami melakukan penelitian untuk memahami bagaimana orang menggunakan rumah pintar, apa yang ingin mereka lihat, apa yang ingin mereka kelola. Kami telah memilih tiga tujuan teratas:
- Kontrol TV, penerima AV, perangkat media, dll.,
- Kontrol cahaya dan perangkat pencahayaan,
- Kontrol suhu - AC, termostat, baterai, ketel, dll.

Slide berikutnya memiliki statistik. Misalnya, kami memulai hanya empat bulan yang lalu, pada bulan Mei, dan sekarang kami melihat bahwa jumlah rata-rata perangkat di platform kami untuk setiap pengguna adalah 3,8. Saya melihat kemarin, itu 3,93. Dan dua bulan lalu, angka ini adalah 3,2. Ini berarti bahwa orang tidak hanya menggunakan rumah pintar, tetapi juga membeli perangkat yang mereka sukai. Kami bangga dengan gambar berikut: 96% pengguna mengontrol rumah pintar mereka menggunakan suara, meskipun mereka semua memiliki aplikasi yang melaluinya perangkat pintar ini juga dapat dikontrol.

Dan kami memahami keterbatasan API saat ini, masih sangat sedikit yang dapat dihubungkan atau dijelaskan. Tetapi produsen, penggemar, atau pengembang dapat berintegrasi dengan platform kami sehingga kami sekarang melihat lebih dari 800 model perangkat berbeda di dalamnya. Inilah tepatnya model perangkat: semua jenis ceret, AC, TV, dll.



Saya ulangi, kami baru berproduksi selama empat bulan, tetapi perusahaan-perusahaan besar seperti itu sudah dapat berintegrasi dengan platform kami, dan saya percaya ini adalah kelebihan besar tim. Ini menunjukkan bahwa API kami cukup sederhana, sehingga orang dapat berintegrasi dengan Yandex dalam empat bulan.



Dari pengembang dan penggemar indie, kami melihat orang-orang menulis keterampilan seperti rumah pintar. Dengan demikian, mereka mengintegrasikan platform kami dengan sistem lain: openHAB, Homebridge, Home Assistant, misalnya, sehingga perangkat yang dipertajam oleh ekosistem Apple juga dapat bekerja dengan Alice. Ada beberapa kasus aplikasi dari mitra kami. Kami berpikir bahwa rumah pintar dari Yandex akan ditujukan untuk para penggemar yang baru saja mulai memajukan pasar ini. Tetapi orang-orang dari industri yang sama sekali berbeda, hampir tanpa Yandex, datang kepada kami dan mengatakan bahwa mereka ingin membuat instalasi dengan rumah pintar.

Misalnya, ada kasus terkenal dengan pengembang PIK dan Rubetek. Sebagai salah satu penawaran top untuk mendekorasi apartemen, mereka menghadirkan rumah pintar di platform Yandex. Di apartemen seperti itu, di ruang pamer yang sudah ada, pengguna dapat datang dan meminta Alice untuk membuat kopi, membuka tirai atau mengontrol cahaya. Kami juga bekerja sama dengan pengembang kantor sekarang. Mereka ingin, misalnya, untuk menanamkan Alice di ruang pertemuan mereka sehingga mereka dapat berdengung di ruang rapat, menelepon kota lain atau mengendalikan, sekali lagi, semacam perlengkapan lampu. Dan kami juga memulai beberapa percobaan dengan hotel. Anda dapat meminta sarapan di kamar Anda, mengganti bantal untuk yang lebih hangat atau menyalakan saluran berbayar.

Sekarang mari kita selami sedikit detail teknis. Skema bekerja dengan rumah pintar cukup sederhana. Ada banyak produsen perangkat pintar, dan semua perangkat ini dapat dikontrol melalui ponsel. Ini berarti bahwa semua pabrikan ini memiliki beberapa jenis API yang dengannya pengguna mengklik pada ponsel, ponsel mengirimkan beberapa permintaan ke cloud, masing-masing, dari pabrikan ini, dan perangkat menyala, dimatikan, kecerahan berubah, beberapa parameter.

Oleh karena itu, ke arah inilah kami ingin mengintegrasikan. Kita dapat mengatakan bahwa pengguna tidak menyodok pada telepon, tetapi berbicara dengan suara, misalnya. Dan kirim permintaan yang sama persis ke cloud pabrikan ini. Ini disebut interaksi cloud-to-cloud. Pada slide berikutnya dijelaskan secara rinci.



Artinya, seseorang mengontrol baik menggunakan ponsel atau suara. Server Yandex lebih lanjut pergi dari cloud dari pabrikan yang sesuai, dan perangkat menyala.



Bagaimana cara Yandex mengetahui tentang perangkat yang dimiliki pengguna? Untuk melakukan ini, kami menggunakan prosedur standar. Ini disebut penautan akun Oauth2. Pengguna hanya perlu masuk ke aplikasi Yandex, menautkan apa yang disebut akun. Secara kasar, di jari, itu berfungsi seperti ini.

Saat kami ingin menghubungkan akun kami dengan Philips, pengguna memasukkan nama pengguna, kata sandi, atau memberi tahu kami token khusus, dan kami seharusnya menggunakan token ini ke nama pengguna Philips.



Bagian utama kedua yang terdiri dari protokol rumah pintar adalah niat suara. Yang pertama dan paling penting adalah Discovery. Kami dengan token pengguna pergi ke cloud pabrikan yang sesuai, dan pabrikan memberi tahu kami: pengguna memiliki perangkat tersebut. Dan kemudian semuanya sederhana. Pertanyaan, Aksi. Yandex datang dengan permintaan ke Query untuk mengetahui status perangkat ini - setrika mati, menyala, atau berapa suhu pada AC sekarang. Dan Aksi, ini berarti bahwa status saat ini perlu diubah. Putuskan tautan terjadi ketika pengguna memutuskan untuk memutus bundel akun sehingga Yandex akan sepenuhnya melupakan semua perangkat yang ada.



Mari kita turun lebih dalam dan melihat bagaimana semua niat ini bekerja. Pertama dan terutama, ini adalah tipe perangkat - tipe perangkat. Jenis perangkat hanya memengaruhi representasi perangkat di antarmuka. Ini adalah tata letak khusus dalam aplikasi seluler. Plus, yang paling penting mungkin bahwa jenis perangkat menggeneralisasi beberapa jenis representasi suara, beberapa perintah suara. Artinya, tidak masalah apa yang pengguna sebut lampu-nya, tetap harus menanggapi kata "cahaya," misalnya. Atau seharusnya tidak penting sama sekali, pengguna mengatakan "nyalakan AC" atau "kondominium". Apalagi AC ini bisa disebut apa saja.

Dan kedua, untuk memahami cara mengontrol perangkat, kita perlu tahu bahwa perangkat ini bisa. Kami menyebutnya kemampuan hal-hal ini. Artinya, ini seperti blok bangunan, yang berbicara tentang apa yang dapat dilakukan perangkat.



Sedikit lagi tentang tipe perangkat. Pada awalnya, kami memiliki enam, menurut pendapat saya. Sekarang kita telah berkembang ke jumlah seperti itu. Sebagai contoh, dua minggu yang lalu mereka merilis openable, dan mereka dapat membuka gerbang mereka. Mereka sekarang dapat mengatakan: "Alice, buka gerbang" dan bukan "Alice, nyalakan gerbang", misalnya.



Sekarang mari kita bicara tentang kemampuan, kemampuan apa yang tersedia dan bagaimana membuat Alice memahami cara mengelola perangkat Anda.

Yang pertama, hal yang paling penting dan paling sederhana adalah on_off. Hampir setiap perangkat memiliki kemampuan ini. Untuk memberi tahu Alice bahwa perangkat dapat dihidupkan dan dimatikan, tambahkan saja beberapa baris Jason ini dan tentukan flag yang bisa diambil. Bendera ini berarti Anda dapat mengetahui dari perangkat saat ini apakah dihidupkan atau tidak dihidupkan.

Contoh sederhana dengan TV. Anda semua mungkin memiliki TV di rumah, dan melihat remote TV, tidak mungkin untuk memahami apakah TV menyala atau mati, tentu saja, jika remote ini infra merah.



Jenis kemampuan berikutnya yang menjelaskan tentang perlengkapan lampu adalah color_setting. Itu juga memiliki bendera yang bisa diambil. Tetapi yang paling penting, kedua parameter ini adalah color_model. Dengan menggunakan parameter ini, pabrikan memberi tahu kami bahwa ia tahu cara mengontrol warna. Warna ini bisa dalam mode hsv atau rbg.



Dan yang kedua adalah gradasi warna putih. Artinya, dapat dikatakan bahwa bola lampu saya bisa menjadi putih dingin, kuning hangat, dan sebagainya, sehingga pengguna dapat mengatakan: "tolong buatkan lampu lebih hangat."



Selanjutnya, kita akan membahas kapabilitas, menggeneralisasi mode tertentu. Analogi yang sangat bagus dengan antarmuka adalah tombol Radio, ketika Anda harus memilih salah satu dari beberapa mode. Atau pikirkan mesin cuci jenis krutilochka, di mana pasti ada mode "katun linen", "cuci halus", dll.



Di sini penting bagi kita untuk mengetahui dengan tepat instance dari mode ini yang sepadan. Contoh saat ini, sudah ada enam dari mereka. Tetapi justru yang kami terapkan pada tahap pertama, ini adalah instance dari AC - mode otomatis, pendinginan, dll. Atau, misalnya, ada mode mode kipas adalah yang paling lambat, rata-rata, atau, sekali lagi, otomatis.

Berkenaan dengan mode, kita dapat mengatakan: "Silakan nyalakan mode berikutnya." Dan sangat nyaman untuk AC atau untuk mesin cuci yang sama.



Kemampuan lain adalah jangkauan. Seperti yang diterapkan pada analogi antarmuka, penggeser jenis ini dari nilai minimum ke nilai maksimum dapat mengatur sesuatu. Slider ini juga memiliki instance. Misalnya, ini adalah suhu, volume, kecerahan, dan sebagainya, hampir semua rentang yang dapat dijelaskan. Unit ini, karena beberapa orang, untuk memeriksa AC, mengatakan suhu di Fahrenheit. Dan ini adalah suhu yang sangat berbeda. Ketika seseorang meminta untuk dimasukkan dalam Fahrenheit atau Celcius, ini juga perlu dipahami.

Bendera akses acak mungkin diketahui oleh Anda, ini adalah saat kami dapat memberikan angka yang tepat untuk menetapkan nilai dalam rentang ini. Contoh yang cukup sederhana, sekali lagi, dengan televisi. Volume hanya dapat dikontrol dari atas ke bawah. Dan suhu pada pendingin udara dapat ditentukan secara akurat.

Dan deskripsi kisaran, ketika kita mengetahui beberapa nilai minimum, nilai maksimum, dan langkah kecil yang dengannya kita dapat mengubah nilai ini. Pada pendingin udara, sekali lagi, bisa berupa semacam keseluruhan, atau dalam pecahan puluhan.



Kemampuan yang terakhir mirip dengan antarmuka, itu semacam tanda centang. Ingat, di komputer lama ada mode turbo - Anda menekan, dan komputer berjalan lebih cepat? Di sini Anda berkata: "Alice, matikan suaranya", kami menekan tombol bisu dan suaranya menghilang. Kita dapat mengatakan, mungkin, bahwa ini adalah semacam mode biner.

Dan kombinasi dari semua kemampuan ini, semua keterampilan. Kami dapat menggambarkan semua jenis perangkat yang saat ini ada di pasaran.



Misalnya, bola lampu pintar. Dia tahu cara menghidupkan, mematikan. Dia tahu bagaimana mengatur warnanya, dan dia tahu bagaimana mengatur kecerahan. Tetapi jika semuanya sederhana dengan bola lampu, mari kita coba bersama untuk menggambarkan beberapa perangkat lain. Misalnya, ketel.



Menurut Anda, apa yang bisa dilakukan ketel pintar? Saya memberi Anda petunjuk, tangkapan layar dari antarmuka aplikasi Yandex. Bagaimana Anda menggambarkan ketel? Suhu Lebih? Ya, dan nyalakan dan matikan. Ketel adalah perangkat yang sangat sederhana. Dia tahu cara menyalakan dan mematikannya, dan, misalnya, teh hijau favorit saya, saya ingin membuatnya pada 85 derajat. Apakah ada air? Ya, poin yang bagus. Di sini kami menunggu informasi dari produsen.



Saya ingin memberi tahu Anda tentang perangkat lain. Salah satu perangkat paling canggih yang tersedia saat ini adalah AC. Menurut Anda apa yang bisa dilakukan oleh AC? Hangat atau dingin. Sesuaikan suhunya. Mode dengan tirai. Kecepatan kipas. Semuanya benar. Dan AC, yang sekarang dapat dijelaskan dalam kemampuan kita, dapat melakukan semua ini. Dia tahu cara menghidupkan, mematikan, memilih mode pendinginan, menyesuaikan suhu dan kecepatan kipas, yang dengannya itu meniup udara dingin atau panas. Mungkin ada udara biasa dalam mode tanpa AC.



Mari lebih rendah lagi dan lihat jawaban seperti apa yang kami harapkan dari pabrikan saat mendeskripsikan perangkat. Ini adalah penemuan niat. Ada sedikit YAML di sini, tetapi cukup mudah dibaca.

Saat ini ketika pengguna mengaitkan akun, kami bertanya kepada produsen apa yang dimiliki pengguna ini, perangkat apa - hanya untuk memahami cara mengelolanya.

Pertama dan terpenting: kami menunggu user_id dari pengguna ini dan daftar perangkat.



Hanya satu perangkat yang dijelaskan di sini: pengguna memiliki bola lampu, devices.types.light. Omong-omong, itu bisa saja, bukan hanya bola lampu. Ini bisa berupa semacam pita RGB atau mesin pemotong rumput dengan lampu latar. Sama sekali tidak masalah bagi kami. Hal utama adalah bahwa ia bereaksi terhadap kata "cahaya" dan bahwa dalam antarmuka kita dapat menggambar kemampuan, yang bertanggung jawab untuk cahaya.



Mesin pemotong rumput kami sepertinya tahu cara menghidupkan dan mematikan. Dia tahu cara mengubah kecerahan. Dan dia tahu bagaimana mengatur warnanya. Dan tidak hanya warna - perlengkapan pencahayaan ini juga memiliki penyesuaian suhu warna.



Misalkan seorang pengguna bertanya: "Alice, bagaimana keadaan bola lampu saya sekarang?" atau "Alice, apakah cahayaku menyala?" Kemudian kami mengirim pertanyaan seperti itu ke penyedia, kami mengatakan bahwa perangkat semacam itu harus ditanyai apa warna mode sekarang dan apakah perangkat itu sendiri dihidupkan.





Jika pengguna ingin mengubah mode ini, ia dapat, misalnya, mengatakan: "Alice, matikan lampu." Ada bola lampu dengan abc-123 ID, "Silakan matikan", nilai false.



Kami sedang menunggu produsen perangkat di sisi lain cloud untuk menjawab kami: oke, light abc-123, action_result, status DONE. Jadi cahayanya sudah mati.



Sedikit lagi tentang skrip. Kami memahami bahwa pengguna ingin tidak hanya mengelola perangkat mereka secara individu, tetapi juga untuk mengelompokkannya bersama. Misalnya, ketika mereka bangun, mereka berkata: "Alice, selamat pagi," dan mereka ingin kombinasi tindakan tertentu dilakukan.

Dengan demikian, dalam aplikasi Yandex, Anda dapat mengatakannya, dan Alice akan menyalakan beberapa musik, mematikan lampu malam, ketel akan mulai bekerja, mendidihkan air untuk membuat kopi favorit Anda.



Tentang rencananya. Kami memahami bahwa pekerjaan dalam bentuk saat ini, meskipun memungkinkan Anda untuk mendeskripsikan sejumlah besar perangkat, tetapi, misalnya, tidak memungkinkan Anda untuk menerima informasi dari sensor. Kami tidak akan dapat mengonfigurasi peristiwa apa pun dalam skenario sehingga kami dapat memahami dengan sensor kebocoran, asap, atau membuka pintu bahwa sesuatu telah terjadi. Kami bertujuan untuk melakukannya. Kami juga memahami bahwa saat ini kami tidak dapat mengendalikan mediastream. Contoh paling sederhana adalah bahwa kurir datang ke rumah Anda dengan pizza panas, dan dorongan dengan foto orang itu datang ke telepon Anda. Ini super! Sekarang tidak mungkin untuk melakukan ini dengan kemampuan saat ini - kemungkinan besar, kemampuan akan muncul yang menggambarkan kamera.

Tentang sensor saya akan menyentuh pada topik yang licin - IFTTT. Dengan IFTTT, kami ingin menjalankan skrip tidak hanya dengan suara, seperti yang dilakukan sekarang. Kami ingin menjalankannya pada acara yang berbeda: pada penghitung waktu, jadwal, matahari terbit atau terbenam dan acara lainnya. Dan kami benar-benar ingin rumah pintar tidak hanya untuk Geeks yang mengerti mengapa mereka perlu mentransfer kata sandi mereka dari bola lampu Wi-Fi. Kami ingin membuatnya agar orang yang sama sekali tidak terhubung dengan rumah pintar, atau yang tidak mengerti cara kerjanya, hanya membeli semacam ketel, mesin cuci, bola lampu, itu tidak masalah. Dan Alice berkata, โ€œSepertinya kamu memiliki beberapa jenis perangkat baru di rumahmu. Apakah Anda ingin menghubungkannya? " Dan semuanya bekerja segera.

Sebagai kesimpulan, saya ingin mengatakan: untuk menggunakan teknologi ini, smart home, Anda hanya perlu membaca dokumentasi dan menggambarkan dengan benar perangkat Anda menggunakan tipe perangkat dan kemampuan yang ada. Terima kasih

Source: https://habr.com/ru/post/id471062/


All Articles