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:

CENTIMETERS
CUPS
DECILITERS
FLUID_OUNCES
GALLONS
GRAMS
KILOGRAMS
LITERS
MILLIGRAMS
MILLILITERS
MILLIMETERS
NO_UNITS
OUNCES
PINCH
PINTS
PORTION
POUNDS
QUARTS
TABLESPOONS
TEASPOONS
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

item_name özelliğindeki öğenin adı.

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

supported_units özelliğindeki amount birimi.

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

supported_units özelliğindeki amount için birim.

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

item_name özelliğinden alınan, dağıtılacak öğenin adı.

amount Number

Zorunludur.

Verilecek tutar.

unit String

Zorunludur.

supported_units özelliğindeki amount birimi.

Hazır ayarlara göre dağıtım.

Parametreler Tür Açıklama
presetName String

Zorunludur.

preset_name özelliğinden dağıtılacak hazır ayarın adı.

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çin supported_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).