Akıllı Evlerde Dağıtım Özelliği Şeması
action.devices.traits.Dispense
: Bu özellik, belirli bir miktarda bir veya daha fazla fiziksel öğe dağıtmayı destekleyen cihazlara aittir.
Bu özellik, ön ayar dağıtmayı da destekler. Örneğin, evcil hayvan besleme cihazı için "kedi mama kabı" veya musluk için "bardak" gibi.
Cihaz ÖZELLİKLERİ
Bu özelliğe sahip cihazlar, SYNC
işlemi kapsamında aşağıdaki özellikleri bildirebilir. SYNC
amaçlarını ele alma hakkında daha fazla bilgi edinmek için Amacın karşılanması başlıklı makaleyi inceleyin.
Özellikler | Tür | Açıklama |
---|---|---|
supportedDispenseItems |
Array |
Cihazın dağıtabileceği tüm öğeler hakkında bilgi içerir. |
[item, ...] |
Nesne |
Vazgeçilebilir öğe. |
item_name |
String |
Zorunludur. Dağıtılan öğenin dahili adı. Bu durum kullanıcı dostu olmayabilir ve tüm dillerde geçerlidir. |
item_name_synonyms |
Array |
Zorunludur. Her desteklenen dilde dağıtılan ilaçların eş anlamlı adları. |
[item, ...] |
Nesne |
Verilen dilde dağıtılan öğenin eş anlamlı adları. Dil yedeklemesi sağlamak için |
synonyms |
Array |
Zorunludur. Dağıtılan öğenin eş anlamlı adları. Eş anlamlılar, uygun olduğunda hem tekil hem de çoğul biçimleri içermelidir. Bu listedeki ilk dize, söz konusu dildeki öğenin çoğul biçimi olmalıdır. |
[item, ...] |
String |
Eş anlamlı kelime adı. Dil yedeklemesi sağlamak için |
lang |
String |
Zorunludur. Dil kodu (ISO 639-1). Desteklenen dilleri görün. |
supported_units |
Array |
Zorunludur. Cihazın bu öğe için desteklediği birimler grubu. |
[item, ...] |
String |
Desteklenen birimler. Desteklenen değerler:
|
default_portion |
Nesne |
Zorunludur. Öğenin dağıtılabilecek tipik miktarı. |
amount |
Tamsayı |
Zorunludur. Verilen tutar. |
unit |
String |
Zorunludur. Dağıtılan birim. |
supportedDispensePresets |
Array |
Cihaz tarafından desteklenen ön ayarlar. |
[item, ...] |
Nesne |
Hazır ayar. |
preset_name |
String |
Zorunludur. Hazır ayarın dahili adı. Bu ad, kullanıcı dostu olmayabilir ve tüm dillerde paylaşılır. |
preset_name_synonyms |
Array |
Zorunludur. Hazır ayarın desteklenen her dildeki eş anlamlı adları. |
[item, ...] |
Nesne |
Belirli bir dildeki hazır ayar için eş anlamlı adlar. |
synonyms |
Array |
Zorunludur. Hazır ayarın eş anlamlı adları. Eş anlamlılar, uygun olduğunda hem tekil hem de çoğul biçimleri içermelidir. |
[item, ...] |
String |
Eş anlamlı ad |
lang |
String |
Zorunludur. Dil kodu (ISO 639-1). Desteklenen dilleri görün. |
Örnekler
Sıvı birimlerini destekleyen, önceden ayarlanmış su sebili.
{ "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" ] } ] } ] }
Ön ayarları olmayan evcil hayvan mama kabı.
{ "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" } } ] }
Cihaz DURUMLARI
Bu özelliğe sahip öğeler, QUERY
işlemi kapsamında aşağıdaki durumları bildirebilir. QUERY
amaçlarını ele alma hakkında daha fazla bilgi edinmek için Amacın karşılanması başlıklı makaleyi inceleyin.
Eyaletler | Tür | Açıklama |
---|---|---|
dispenseItems |
Array |
Cihazın dağıtabileceği öğelerin durumları. |
[item, ...] |
Nesne |
Belirli bir öğenin durumu. |
itemName |
String |
|
amountRemaining |
Nesne |
Cihazda kalan öğe miktarı. Cihaz şu anda dağıtım yapıyorsa kalan miktarı veya dağıtım tamamlandığında miktarın ne olacağını bildirir. |
amount |
Number |
Kalan tutar |
unit |
String |
|
amountLastDispensed |
Nesne |
Cihazın en son verdiği öğenin miktarı. Cihaz şu anda dağıtım yapıyorsa bu, mevcut dağıtım miktarından önce dağıtılan miktarı bildirmelidir. |
amount |
Number |
Kalan tutar |
unit |
String |
|
isCurrentlyDispensing |
Boole |
Cihazın şu anda bu öğeyi dağıtıp dağıtmadığını gösterir. |
Örnekler
Mama kabımda kaç tane köpek ödülü kaldı?
{ "dispenseItems": [ { "itemName": "Dog treats", "amountRemaining": { "amount": 83, "unit": "NO_UNITS" }, "amountLastDispensed": { "amount": 2, "unit": "NO_UNITS" }, "isCurrentlyDispensing": false } ] }
Su sebili ne kadar dolu?
{ "dispenseItems": [ { "itemName": "Water", "amountRemaining": { "amount": 6.2, "unit": "GALLONS" }, "amountLastDispensed": { "amount": 1, "unit": "CUPS" }, "isCurrentlyDispensing": false } ] }
Daha önce ne kadar kedi maması vermiştim?
{ "dispenseItems": [ { "itemName": "cat_food", "amountRemaining": { "amount": 16.5, "unit": "CUPS" }, "amountLastDispensed": { "amount": 2.5, "unit": "CUPS" }, "isCurrentlyDispensing": false } ] }
Musluktan hâlâ su akıyor mu?
{ "dispenseItems": [ { "itemName": "Water", "isCurrentlyDispensing": true } ] }
amountRemaining
ve amountLastDispensed
yalnızca tek bir ölçüm birimi kullanılarak raporlanmalıdır.
dispenseItems
dizisinde birden fazla öğe sağlanabilir.
Her öğe adı benzersiz olmalı ve supportedDispenseItems
özelliğindeki bir öğeye karşılık gelmelidir.
Cihaz KOMUTLARI
Bu özelliğe sahip cihazlar, EXECUTE
işlemi kapsamında aşağıdaki komutlara yanıt verebilir. EXECUTE
amaçlarını ele alma hakkında daha fazla bilgi edinmek için Amacın karşılanması başlıklı makaleyi inceleyin.
action.devices.commands.Dispense
Öğeleri dağıtma
Parametreler
Yük aşağıdakilerden birini içeriyor:
Tutara göre dağıtma.
Parametreler | Tür | Açıklama |
---|---|---|
item |
String |
|
amount |
Number |
Zorunludur. Verilecek tutar. |
unit |
String |
Zorunludur.
|
Hazır ayara göre dağıtma.
Parametreler | Tür | Açıklama |
---|---|---|
presetName |
String |
Zorunludur.
|
Parametre olmadan dağıtın.
Parametreler | Tür | Açıklama |
---|---|---|
Özellik yok |
Örnekler
Bana 1 bardak su ver. (Give me 1 cup of water.)
{ "command": "action.devices.commands.Dispense", "params": { "amount": 1, "unit": "CUPS", "item": "Water" } }
Kedinin su kabını doldurun.
{ "command": "action.devices.commands.Dispense", "params": { "presetName": "cat_bowl" } }
Su dağıtma.
{ "command": "action.devices.commands.Dispense", "params": {} }
Cihaz HATALARI
Hata ve istisnaların tam listesini inceleyin.dispenseAmountRemainingExceeded
: Kullanıcı, yeterli miktarda bakiye kalmamış bir cihazdan öğe veya tutar dağıtmaya çalıştı.dispenseAmountAboveLimit
: Kullanıcı, tek bir sorguda isteyebileceği miktarın sınırlarını aşan bir miktar dağıtmaya çalıştı. Bu, yanlışlıkla aşırı miktarda (örneğin,500.000 bardak su) dağıtılmasını önlemek içindir.dispenseAmountBelowLimit
: Kullanıcı, cihazdan dağıtılabilecek minimum tutarın altında bir öğe veya tutar dağıtmaya çalıştı.dispenseFractionalAmountNotSupported
: Kullanıcı, cihazın bölemediği bir öğenin bir kısmını dağıtmaya çalıştı (örneğin, köpek ödülleri gibi sayılabilir öğeler cihaz tarafından bölünemeyebilir).genericDispenseNotSupported
: Kullanıcı, bir öğe veya hazır ayar belirtmeden bir cihazdan dağıtım yapmaya çalışıyor ancak cihaz bu işlevi desteklemiyor (ör. varsayılan dağıtım işlemi).dispenseUnitNotSupported
: Kullanıcı, bu durum için desteklenmeyen bir birime sahip cihazdan dağıtım yapmaya çalışıyor (ör. öğe sağlanmadığı içinsupported_unit validation
atlandı).dispenseFractionalUnitNotSupported
: Kullanıcı, bölünebilen ancak belirtilen birim için bölünemeyen bir öğenin kesirli bir miktarını dağıtmaya çalıştı (örneğin, bir musluk 2,7 bardak dağıtabilir ancak 2,7 ml dağıtamaz).deviceCurrentlyDispensing
: Kullanıcı bir öğe dağıtmaya çalışıyor ancak cihaz zaten dağıtım yapıyor.deviceClogged
: Kullanıcı bir öğeyi dağıtmaya çalışır ancak cihaz tıkanmıştır.deviceBusy
: Kullanıcı bir öğe dağıtmaya çalışıyor ancak cihaz meşgul (genel).
Cihazla ilgili İSTİSNALAR
Bu istisnalar, yanıtınızın states
nesnesinde exceptionCode
olarak bildirilebilir:
amountRemainingLow
- Kullanıcı, cihazdan bir öğe veya tutar dağıtıyor. Bu işlem, kalan tutarı düşük bir seviyeye getiriyor. "Düşük" seviyenin ne olduğunu tanımlamak sizin sorumluluğunuzdadır.userNeedsToWait
- Kullanıcının, istenen öğe veya miktar başarıyla dağıtılmadan önce beklemesi gerektiğinde (örneğin, musluk sıcak su dağıtır ancak kullanıcının dağıtmaya başlamadan önce suyun ısınmasını beklemesi gerekir).