Skema Fitur Pengeluaran Smart Home
action.devices.traits.Dispense
- Ciri ini dimiliki oleh perangkat yang mendukung pengeluaran sejumlah tertentu dari satu atau beberapa item fisik.
Ciri ini juga mendukung pemberian preset, misalnya sebagai "mangkuk makanan kucing" untuk alat pemberi makan hewan peliharaan atau "gelas" untuk keran.
ATRIBUT Perangkat
Perangkat dengan karakteristik ini dapat melaporkan atribut berikut sebagai bagian dari operasi SYNC
. Untuk mempelajari lebih lanjut cara menangani intent SYNC
, lihat Fulfillment intent.
Atribut | Jenis | Deskripsi |
---|---|---|
supportedDispenseItems |
Array |
Berisi informasi tentang semua item yang dapat dikeluarkan oleh perangkat. |
[item, ...] |
Objek |
Item yang dapat diabaikan. |
item_name |
String |
Wajib. Nama internal untuk item yang dikeluarkan. Hal ini dapat membuat pengalaman pengguna menjadi tidak ramah, dan dibagikan ke semua bahasa. |
item_name_synonyms |
Array |
Wajib. Nama sinonim untuk yang dikeluarkan dalam setiap bahasa yang didukung. |
[item, ...] |
Objek |
Nama sinonim untuk item yang dikeluarkan dalam bahasa tertentu. Setidaknya satu item dengan nilai |
synonyms |
Array |
Wajib. Nama sinonim untuk item yang dikeluarkan. Sinonim harus mencakup bentuk tunggal dan jamak, jika berlaku. String pertama dalam daftar ini harus berupa bentuk jamak item dalam bahasa tersebut. |
[item, ...] |
String |
Nama sinonim. Setidaknya satu item dengan nilai |
lang |
String |
Wajib. Kode bahasa (ISO 639-1). Lihat bahasa yang didukung. |
supported_units |
Array |
Wajib. Kumpulan unit yang didukung perangkat untuk item tersebut. |
[item, ...] |
String |
Satuan yang didukung. Nilai yang didukung:
|
default_portion |
Objek |
Wajib. Jumlah umum item yang dapat dikeluarkan. |
amount |
Bilangan Bulat |
Wajib. Jumlah yang dikeluarkan. |
unit |
String |
Wajib. Unit yang dikeluarkan. |
supportedDispensePresets |
Array |
Preset yang didukung oleh perangkat. |
[item, ...] |
Objek |
Preset. |
preset_name |
String |
Wajib. Nama internal untuk preset. Nama ini mungkin tidak mudah dipahami pengguna, dan digunakan di semua bahasa. |
preset_name_synonyms |
Array |
Wajib. Nama sinonim untuk preset dalam setiap bahasa yang didukung. |
[item, ...] |
Objek |
Nama sinonim untuk preset dalam bahasa tertentu. |
synonyms |
Array |
Wajib. Nama sinonim untuk preset. Sinonim harus mencakup bentuk tunggal dan jamak, jika berlaku. |
[item, ...] |
String |
Nama sinonim |
lang |
String |
Wajib. Kode bahasa (ISO 639-1). Lihat bahasa yang didukung. |
Contoh
Dispenser air yang mendukung satuan untuk cairan dengan preset.
{ "supportedDispenseItems": [ { "item_name": "Water", "item_name_synonyms": [ { "lang": "en", "synonyms": [ "Water" ] } ], "supported_units": [ "TEASPOONS", "TABLESPOONS", "FLUID_OUNCES", "CUPS", "PINTS", "QUARTS", "GALLONS", "MILLILITERS", "LITERS", "DECILITERS" ], "default_portion": { "amount": 2, "unit": "CUPS" } } ], "supportedDispensePresets": [ { "preset_name": "cat_bowl", "preset_name_synonyms": [ { "lang": "en", "synonyms": [ "Cat water bowl", "Cat water dish", "Cat water cup" ] } ] }, { "preset_name": "glass_1", "preset_name_synonyms": [ { "lang": "en", "synonyms": [ "Glass of water", "Glass" ] } ] } ] }
Dispenser makanan hewan peliharaan tanpa preset.
{ "supportedDispenseItems": [ { "item_name": "Treat", "item_name_synonyms": [ { "lang": "en", "synonyms": [ "Treats", "Dog treats", "Treat", "Dog treat" ] } ], "supported_units": [ "NO_UNITS" ], "default_portion": { "amount": 1, "unit": "NO_UNITS" } } ] }
STATUS Perangkat
Entitas dengan karakteristik ini dapat melaporkan status berikut sebagai bagian dari operasi QUERY
. Untuk mempelajari lebih lanjut cara menangani intent QUERY
, lihat Fulfillment intent.
Negara bagian | Jenis | Deskripsi |
---|---|---|
dispenseItems |
Array |
Status item yang dapat dikeluarkan perangkat. |
[item, ...] |
Objek |
Status item tertentu. |
itemName |
String |
Nama item dari atribut |
amountRemaining |
Objek |
Jumlah item tersebut yang tersisa di perangkat. Jika perangkat saat ini sedang mengeluarkan, ini akan melaporkan jumlah yang tersisa atau jumlah yang akan dikeluarkan setelah perangkat selesai mengeluarkan. |
amount |
Number |
Jumlah yang tersisa |
unit |
String |
Satuan untuk |
amountLastDispensed |
Objek |
Jumlah item yang terakhir dikeluarkan oleh perangkat. Jika perangkat saat ini mengeluarkan, ini akan melaporkan jumlah yang dikeluarkan sebelum jumlah yang dikeluarkan saat ini. |
amount |
Number |
Jumlah yang tersisa |
unit |
String |
Satuan untuk |
isCurrentlyDispensing |
Boolean |
Menunjukkan apakah perangkat saat ini mengeluarkan item ini. |
Contoh
Berapa banyak camilan yang tersisa di dispenser saya?
{ "dispenseItems": [ { "itemName": "Dog treats", "amountRemaining": { "amount": 83, "unit": "NO_UNITS" }, "amountLastDispensed": { "amount": 2, "unit": "NO_UNITS" }, "isCurrentlyDispensing": false } ] }
Berapa banyak air yang tersisa di dispenser air saya?
{ "dispenseItems": [ { "itemName": "Water", "amountRemaining": { "amount": 6.2, "unit": "GALLONS" }, "amountLastDispensed": { "amount": 1, "unit": "CUPS" }, "isCurrentlyDispensing": false } ] }
Berapa banyak makanan kucing yang saya berikan sebelumnya?
{ "dispenseItems": [ { "itemName": "cat_food", "amountRemaining": { "amount": 16.5, "unit": "CUPS" }, "amountLastDispensed": { "amount": 2.5, "unit": "CUPS" }, "isCurrentlyDispensing": false } ] }
Apakah keran masih mengeluarkan air?
{ "dispenseItems": [ { "itemName": "Water", "isCurrentlyDispensing": true } ] }
amountRemaining
dan amountLastDispensed
hanya perlu dilaporkan
menggunakan satu satuan pengukuran.
Beberapa item dapat diberikan dalam array dispenseItems
.
Setiap nama item harus unik dan harus sesuai dengan item dalam atribut supportedDispenseItems
.
PERINTAH perangkat
Perangkat dengan karakteristik ini dapat merespons perintah berikut sebagai bagian dari operasi EXECUTE
. Untuk mempelajari lebih lanjut cara menangani intent EXECUTE
, lihat Fulfillment intent.
action.devices.commands.Dispense
Mengeluarkan item.
Parameter
Payload berisi salah satu hal berikut:
Keluarkan menurut jumlah.
Parameter | Jenis | Deskripsi |
---|---|---|
item |
String |
Nama item yang akan dikeluarkan, dari atribut |
amount |
Number |
Wajib. Jumlah yang akan dikeluarkan. |
unit |
String |
Wajib. Satuan untuk |
Keluarkan berdasarkan preset.
Parameter | Jenis | Deskripsi |
---|---|---|
presetName |
String |
Wajib. Nama preset yang akan dikeluarkan, dari atribut |
Keluarkan tanpa parameter.
Parameter | Jenis | Deskripsi |
---|---|---|
Tidak ada properti |
Contoh
Beri saya 1 cangkir air.
{ "command": "action.devices.commands.Dispense", "params": { "amount": 1, "unit": "CUPS", "item": "Water" } }
Isi mangkuk minuman kucing.
{ "command": "action.devices.commands.Dispense", "params": { "presetName": "cat_bowl" } }
Mengeluarkan air.
{ "command": "action.devices.commands.Dispense", "params": {} }
ERROR Perangkat
Lihat daftar lengkap error dan pengecualian.dispenseAmountRemainingExceeded
: Pengguna mencoba mengeluarkan item atau jumlah dari perangkat yang tidak memiliki sisa jumlah yang cukup.dispenseAmountAboveLimit
: Pengguna mencoba mengeluarkan jumlah yang melampaui batas yang dapat mereka minta dalam satu kueri. Hal ini dilakukan untuk mencegah pengeluaran jumlah yang berlebihan secara tidak sengaja (misalnya, 500.000 cangkir air).dispenseAmountBelowLimit
: Pengguna mencoba mengeluarkan item atau jumlah dari perangkat perangkat yang berada di bawah jumlah minimum yang dapat dikeluarkan.dispenseFractionalAmountNotSupported
: Pengguna mencoba mengeluarkan item dalam jumlah pecahan yang tidak dapat dibagi oleh perangkat (misalnya, item yang dapat dihitung seperti camilan mungkin tidak dapat dibagi oleh perangkat).genericDispenseNotSupported
: Pengguna mencoba mengeluarkan dari perangkat tanpa menentukan item atau preset, tetapi perangkat tidak mendukung fungsi tersebut (misalnya, tindakan pengeluaran default).dispenseUnitNotSupported
: Pengguna mencoba mengeluarkan dari perangkat dengan unit yang tidak didukung untuk kasus tersebut (misalnya, item tidak disediakan sehinggasupported_unit validation
dilewati).dispenseFractionalUnitNotSupported
: Pengguna mencoba mengeluarkan item dalam jumlah pecahan yang dapat dibagi, tetapi tidak untuk unit tertentu yang ditentukan (misalnya, keran dapat mengeluarkan 2,7 cangkir, tetapi tidak 2,7 ml).deviceCurrentlyDispensing
: Pengguna mencoba mengeluarkan item, tetapi perangkat sudah mengeluarkan item.deviceClogged
: Pengguna mencoba mengeluarkan item, tetapi perangkat tersumbat.deviceBusy
: Pengguna mencoba mengeluarkan item, tetapi perangkat sedang sibuk (umum).
Pengecualian PERANGKAT
Pengecualian ini dapat dilaporkan sebagai exceptionCode
dalam objek states
respons Anda:
amountRemainingLow
- Pengguna mengeluarkan item atau jumlah dari perangkat yang membuat jumlah yang tersisa menjadi rendah. Anda bertanggung jawab untuk menentukan apa yang termasuk dalam tingkat "rendah".userNeedsToWait
- Saat pengguna harus menunggu sebelum item atau jumlah yang diminta dapat berhasil dikeluarkan (misalnya, keran akan mengeluarkan air panas, tetapi pengguna harus menunggu hingga airnya panas sebelum mulai dikeluarkan).