Akıllı Ev Ürün Dağıtma Özelliği Şeması
action.devices.traits.Dispense
: Bu özellik, bir veya daha fazla fiziksel öğenin belirli bir miktarda dağıtımını destekleyen cihazlara aittir.
Bu özellik ayrıca, örneğin evcil hayvan yemliği için "kedi mama kabı" veya musluk için "bardak" gibi hazır ayar dağıtılmasını da destekler.
CİHAZ ÖZELLİKLERİ
Bu özelliğe sahip cihazlar, SYNC
işleminin bir parçası olarak aşağıdaki özellikleri bildirebilir. SYNC
intent'lerini ele alma hakkında daha fazla bilgi edinmek için Intent karşılama başlıklı makaleyi inceleyin.
Özellikler | Tür | Açıklama |
---|---|---|
supportedDispenseItems |
Dizi |
Cihazın dağıtabileceği tüm öğelerle ilgili bilgileri içerir. |
[item, ...] |
Nesne |
Kullanıma hazır öğe. |
item_name |
String |
Zorunludur. Dağıtılan öğenin dahili adı. Bu, kullanıcı dostu olmayabilir ve tüm dillerde paylaşılır. |
item_name_synonyms |
Dizi |
Zorunludur. Desteklenen her dilde dağıtım için eş anlamlıların adları. |
[item, ...] |
Nesne |
Belirli bir dilde dağıtılan öğenin eş anlamlı adları. |
synonyms |
Dizi |
Zorunludur. Dağıtılan öğenin eş anlamlı adları. Eş anlamlılar, varsa hem tekil hem de çoğul formları içermelidir. Bu listedeki ilk dize, öğenin ilgili dildeki çoğul biçimi olmalıdır. |
[item, ...] |
String |
Eş anlamlı kelime adı |
lang |
String |
Zorunludur. Dil kodu (ISO 639-1). Desteklenen dilleri inceleyin. |
supported_units |
Dizi |
Zorunludur. Cihazın ilgili öğe için desteklediği birim grubu. |
[item, ...] |
String |
Desteklenen birimler. Desteklenen değerler:
|
default_portion |
Nesne |
Zorunludur. Dağıtılabilecek öğe miktarının normal değeri. |
amount |
Tamsayı |
Zorunludur. Dağıtılan tutar. |
unit |
String |
Zorunludur. Dağıtılan birim. |
supportedDispensePresets |
Dizi |
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 |
Dizi |
Zorunludur. Hazır ayarın desteklenen her dildeki eş anlamlı adları. |
[item, ...] |
Nesne |
Belirli bir dilde hazır ayarın eş anlamlı adları. |
synonyms |
Dizi |
Zorunludur. Hazır ayarın eş anlamlı adları. Eş anlamlılar, varsa hem tekil hem de çoğul formları içermelidir. |
[item, ...] |
String |
Eş anlamlı kelime adı |
lang |
String |
Zorunludur. Dil kodu (ISO 639-1). Desteklenen dillere bakın. |
Örnekler
Önceden ayarlanmış sıvı birimleri destekleyen su dağıtıcı.
{ "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" ] } ] } ] }
Hazır ayarlı olmayan evcil hayvan maması sebili.
{ "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
intent'lerini ele alma hakkında daha fazla bilgi edinmek için Intent karşılama başlıklı makaleyi inceleyin.
Eyaletler | Tür | Açıklama |
---|---|---|
dispenseItems |
Dizi |
Cihazın dağıtabileceği öğelerin durumları. |
[item, ...] |
Nesne |
Belirli bir öğenin durumu. |
itemName |
String |
|
amountRemaining |
Nesne |
O öğenin cihazda kalan miktarı. Cihaz şu anda dağıtım yapıyorsa kalan miktarı veya cihaz dağıtımı tamamladığında ne kadar olacağını bildirir. |
amount |
Number |
Kalan tutar |
unit |
String |
|
amountLastDispensed |
Nesne |
Cihazın en son yayınladığı öğe miktarı. Cihaz şu anda dağıtım yapıyorsa bu, mevcut dağıtım miktarından önce dağıtılan miktarı raporlar. |
amount |
Number |
Kalan tutar |
unit |
String |
|
isCurrentlyDispensing |
Boole |
Cihazın şu anda bu öğeyi dağıtıp dağıtmadığını belirtir. |
Örnekler
Sembolumda kaç tane köpek ödül maması kaldı?
{ "dispenseItems": [ { "itemName": "Dog treats", "amountRemaining": { "amount": 83, "unit": "NO_UNITS" }, "amountLastDispensed": { "amount": 2, "unit": "NO_UNITS" }, "isCurrentlyDispensing": false } ] }
Su soğutucumda ne kadar su kaldı?
{ "dispenseItems": [ { "itemName": "Water", "amountRemaining": { "amount": 6.2, "unit": "GALLONS" }, "amountLastDispensed": { "amount": 1, "unit": "CUPS" }, "isCurrentlyDispensing": false } ] }
Daha önce ne kadar kedi maması verdim?
{ "dispenseItems": [ { "itemName": "cat_food", "amountRemaining": { "amount": 16.5, "unit": "CUPS" }, "amountLastDispensed": { "amount": 2.5, "unit": "CUPS" }, "isCurrentlyDispensing": false } ] }
Musluk hâlâ su veriyor mu?
{ "dispenseItems": [ { "itemName": "Water", "isCurrentlyDispensing": true } ] }
amountRemaining
ve amountLastDispensed
yalnızca tek bir ölçü birimi kullanılarak raporlanmalıdır.
dispenseItems
dizisi içinde birden çok öğ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
intent'lerini ele alma hakkında daha fazla bilgi edinmek için Intent karşılama başlıklı makaleyi inceleyin.
action.devices.commands.Dispense
Öğeleri dağıtma
Parametreler
Yük aşağıdakilerden birini içerir:
Miktara göre dağıtın.
Parametreler | Tür | Açıklama |
---|---|---|
item |
String |
|
amount |
Number |
Zorunludur. Verilecek tutar. |
unit |
String |
Zorunludur.
|
Hazır ayarlara göre dağıtım.
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 verin.
{ "command": "action.devices.commands.Dispense", "params": { "amount": 1, "unit": "CUPS", "item": "Water" } }
Kedinizin su kabını doldurun.
{ "command": "action.devices.commands.Dispense", "params": { "presetName": "cat_bowl" } }
Su verin.
{ "command": "action.devices.commands.Dispense", "params": {} }
Cihaz HATALARI
Hataların ve istisnaların tam listesini inceleyin.dispenseAmountRemainingExceeded
: Kullanıcı, yeterli miktarda kalmamış bir cihazdan bir öğe veya tutar çıkarmaya çalışmıştır.dispenseAmountAboveLimit
: Kullanıcı, tek bir sorguda isteyebileceği sınırın ötesinde bir miktar dağıtmaya çalıştı. Bu, yanlışlıkla fazla miktarda (örneğin,500.000 bardak su) dışarı çıkmamayı önlemek içindir.dispenseAmountBelowLimit
: Kullanıcı, cihazdan dağıtabileceği minimum miktarın altında bir öğe veya miktar dağıtmaya çalıştı.dispenseFractionalAmountNotSupported
: Kullanıcı, cihazın bölemediği bir öğenin küçük bir kısmını çıkarmaya çalışmıştır (örneğin, köpek ödül maması gibi sayılabilen öğeler cihaz tarafından bölünemeyebilir).genericDispenseNotSupported
: Kullanıcı, bir öğe veya hazır ayar belirtmeden bir cihazdan dağıtım yapmaya çalışır ancak cihaz bu tür işlevleri (ör. varsayılan dağıtım işlemi) desteklemez.dispenseUnitNotSupported
: Kullanıcı, bu durumda desteklenmeyen bir birimin bulunduğu bir cihazdan çıkarmaya çalışıyor (örneğin, öğe sağlanmadığı içinsupported_unit validation
atlandı).dispenseFractionalUnitNotSupported
: Kullanıcı, bir öğenin kesirli olarak bölünebilecek bir kısmını vermeye çalıştı. Bu miktar belirtilen birim için bölünmez (örneğin, bir musluk 2,7 bardak verebilir ancak 2,7 mL vermeyebilir).deviceCurrentlyDispensing
: Kullanıcı bir öğeyi dağıtmaya çalışır ancak cihaz zaten dağıtıyordur.deviceClogged
: Kullanıcılar, eşyaları çıkarmaya çalışıyor ancak cihaz tıkanmış.deviceBusy
: Kullanıcı bir öğe dağıtmaya çalışır ancak cihaz meşguldür (genel).
Cihaz İSTİSNALAR
Aşağıdaki istisnalar, yanıtınızın states
nesnesinde exceptionCode
olarak bildirilebilir:
amountRemainingLow
: Kullanıcı, cihazdan bir öğe veya miktar dağıtır ve kalan miktarı düşük bir seviyeye getirir. "Düşük" seviyeyi tanımlamak sizin sorumluluğunuzdadır.userNeedsToWait
: İstenilen öğenin veya miktarın başarılı bir şekilde dağıtılabilmesi için kullanıcının beklemesi gerektiğinde (ör. bir musluk sıcak su dağıtır ancak kullanıcının dağıtıma başlamadan önce suyun ısınmasını beklemesi gerekir).