Skema Sifat Pembuangan Smart Home
action.devices.traits.Dispense
- Sifat ini termasuk dalam perangkat yang mendukung pengeluaran satu atau beberapa item fisik tertentu.
Sifat ini juga mendukung pemberian preset, misalnya sebagai "mangkuk makanan kucing" untuk pemberi makan hewan peliharaan atau "kaca" untuk keran.
ATRIBUT Perangkat
Perangkat dengan karakteristik ini dapat melaporkan atribut
berikut sebagai bagian dari operasi SYNC
. Untuk mempelajari
penanganan intent SYNC
lebih lanjut, lihat
fulfillment intent.
Atribut | Type | Deskripsi |
---|---|---|
supportedDispenseItems |
Array |
Berisi informasi tentang semua item yang dapat dikirimkan perangkat. |
[item, ...] |
Objek |
Item sekali pakai. |
item_name |
String |
Wajib. Nama internal untuk item yang dikeluarkan. Profil ini tidak mudah digunakan dan dibagikan dalam 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. |
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 |
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 |
Unit yang didukung. Nilai yang didukung:
|
default_portion |
Objek |
Wajib. Jumlah umum item yang dapat dikeluarkan. |
amount |
Integer |
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 preset. Nama ini tidak dapat digunakan oleh 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" } } ] }
STATE Perangkat
Entitas dengan karakteristik ini dapat melaporkan status
berikut sebagai bagian dari operasi QUERY
. Untuk mempelajari
penanganan intent QUERY
lebih lanjut, lihat
fulfillment intent.
Negara bagian | Type | Deskripsi |
---|---|---|
dispenseItems |
Array |
Status item yang dapat dikirimkan perangkat. |
[item, ...] |
Objek |
Status item tertentu. |
itemName |
String |
Nama item dari atribut |
amountRemaining |
Objek |
Jumlah item yang tersisa di perangkat. Jika perangkat sedang mengeluarkan, ini akan melaporkan jumlah yang tersisa atau berapa jumlahnya setelah perangkat selesai mengeluarkan. |
amount |
Number |
Jumlah yang tersisa |
unit |
String |
Unit untuk |
amountLastDispensed |
Objek |
Jumlah item yang terakhir dikeluarkan perangkat. Jika perangkat sedang mengeluarkan, ini akan melaporkan jumlah yang dikeluarkannya sebelum jumlah yang dikeluarkan saat ini. |
amount |
Number |
Jumlah yang tersisa |
unit |
String |
Unit untuk |
isCurrentlyDispensing |
Boolean |
Menunjukkan apakah perangkat sedang 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 pendingin 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 unit pengukuran.
Beberapa item dapat disediakan dalam array dispenseItems
.
Setiap nama item harus unik dan harus sesuai dengan item dalam atribut supportedDispenseItems
.
PERMINTAAN Perangkat
Perangkat dengan karakteristik ini dapat merespons perintah berikut sebagai bagian dari operasi EXECUTE
. Untuk mempelajari
penanganan intent EXECUTE
lebih lanjut, lihat
fulfillment intent.
action.devices.commands.Dispense
Keluarkan item.
Parameter
Payload berisi salah satu dari hal berikut:
Keluarkan menurut jumlah.
Parameter | Type | Deskripsi |
---|---|---|
item |
String |
Nama item yang akan dikeluarkan, dari atribut |
amount |
Number |
Wajib. Jumlah yang akan dibelanjakan. |
unit |
String |
Wajib. Unit untuk |
Pengeluaran berdasarkan preset.
Parameter | Type | Deskripsi |
---|---|---|
presetName |
String |
Wajib. Nama preset untuk dikeluarkan, dari atribut |
Keluarkan tanpa parameter.
Parameter | Type | Deskripsi |
---|---|---|
Tidak ada properti |
Contoh
Beri saya 1 gelas air.
{ "command": "action.devices.commands.Dispense", "params": { "amount": 1, "unit": "CUPS", "item": "Water" } }
Isi mangkuk air kucing.
{ "command": "action.devices.commands.Dispense", "params": { "presetName": "cat_bowl" } }
Mengeluarkan air.
{ "command": "action.devices.commands.Dispense", "params": {} }
ERRORS 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 melebihi batas yang dapat diminta dalam satu kueri. Hal ini untuk mencegah mengeluarkan jumlah berlebihan secara tidak sengaja (misalnya, 500.000 gelas air).dispenseAmountBelowLimit
: Pengguna mencoba mengeluarkan item atau jumlah dari perangkat yang berada di bawah jumlah minimum yang dapat dikeluarkan.dispenseFractionalAmountNotSupported
: Pengguna mencoba mengeluarkan jumlah pecahan item yang tidak dapat dibagi oleh perangkat (misalnya, item yang dapat dihitung seperti makanan mungkin tidak dapat dibagi oleh perangkat).genericDispenseNotSupported
: Pengguna mencoba mengirim dari perangkat tanpa menentukan item atau preset, tetapi perangkat tidak mendukung fungsi tersebut (misalnya, tindakan berbagi default).dispenseUnitNotSupported
: Pengguna mencoba mengeluarkan perangkat dengan unit yang tidak didukung untuk kasus tersebut (misalnya, item tidak disediakan sehinggasupported_unit validation
dilewati).dispenseFractionalUnitNotSupported
: Pengguna mencoba mengeluarkan jumlah pecahan item yang dapat dibagi, tetapi tidak untuk unit tertentu yang ditentukan (misalnya, keran mungkin dapat mengeluarkan 2,7 cangkir tetapi tidak dapat berukuran 2,7 mL).deviceCurrentlyDispensing
: Pengguna mencoba mengeluarkan item, tetapi perangkat sudah mengeluarkan.deviceClogged
: Pengguna mencoba mengeluarkan item, tetapi perangkat terhalang.deviceBusy
: Pengguna mencoba membuang item, tetapi perangkat sedang sibuk (generik).
PENGECUALIAN Perangkat
Pengecualian ini dapat dilaporkan sebagai exceptionCode
dalam objek states
respons Anda:
amountRemainingLow
- Pengguna mengeluarkan item atau jumlah dari perangkat yang membuat jumlahnya tersisa ke tingkat rendah. Anda bertanggung jawab untuk menentukan apa yang dimaksud dengan level "rendah".userNeedsToWait
- Jika pengguna harus menunggu sebelum item atau jumlah yang diminta dapat berhasil dikeluarkan (misalnya, keran akan mengeluarkan air panas tetapi pengguna harus menunggu air memanas sebelum mulai mengeluarkan).