Akıllı Ev Dağıtım Kutusu Şeması

action.devices.traits.Dispense - Bu özellik, belirli miktarda bir veya daha fazla fiziksel öğenin dağıtılmasını destekleyen cihazlara aittir.

Bu özellik, önceden hazır ayar yapılmasını da destekler. Örneğin, evcil hayvan yemliği için "kedi mama kabı" veya musluk için "bardak" gibi.

Cihaz ATTRIBUTES

Bu özelliğe sahip cihazlar, SYNC işleminin bir parçası olarak aşağıdaki özellikleri bildirebilir. SYNC amaçlarını işleme hakkında daha fazla bilgi edinmek için Amaç karşılama bölümüne bakın.

Özellikler Tür Açıklama
supportedDispenseItems Dizi

Cihazın çıkarabileceği tüm öğeler hakkında bilgi içerir.

[item, ...] Nesne

Tekerlekli sandalye.

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 hazırlanan eş anlamlı adları.

[item, ...] Nesne

Belirli bir dilde dağıtılan öğe için eş anlamlı adlar.

synonyms Dizi

Zorunludur.

Dağıtılan öğe için eş anlamlı adlar. Eş anlamlılar, geçerliyse hem tekil hem de çoğul biçimlerini içermelidir. Bu listedeki ilk dize, öğenin söz konusu dildeki çoğul biçimi olmalıdır.

[item, ...] String

Eş anlamlı adı

lang String

Zorunludur.

Dil kodu (ISO 639-1). Desteklenen dillere bakın.

supported_units Dizi

Zorunludur.

Cihazın söz konusu öğ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.

Normalden dökülebilir öğe miktarı.

amount Integer

Zorunludur.

Ödenen tutar.

unit String

Zorunludur.

Dağıtım birimi.

supportedDispensePresets Dizi

Cihaz tarafından desteklenen hazır 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.

Desteklenen her dilde hazır ayarın eş anlamlı adları.

[item, ...] Nesne

Hazır ayarın belirli bir dildeki eş anlamlı adları.

synonyms Dizi

Zorunludur.

Hazır ayar için eş anlamlı adlar. Eş anlamlı kelimeler hem tekil hem de çoğul formlar (varsa) içermelidir.

[item, ...] String

Eş anlamlı adı

lang String

Zorunludur.

Dil kodu (ISO 639-1). Desteklenen dillere bakın.

Örnekler

Hazır ayarlara sahip sıvı birimlerini destekleyen su sebilleri.

{
  "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"
          ]
        }
      ]
    }
  ]
}

Önceden ayarlanmış olmayan evcil hayvan maması sepeti.

{
  "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 STATES

Bu özelliğe sahip varlıklar, QUERY işleminin bir parçası olarak aşağıdaki durumları bildirebilir. QUERY amaçlarını işleme hakkında daha fazla bilgi edinmek için Amaç karşılama bölümüne bakın.

Eyaletler Tür Açıklama
dispenseItems Dizi

Cihazın çıkarabileceği öğelerin durumları.

[item, ...] Nesne

Belirli bir öğenin durumu.

itemName String

item_name özelliğindeki öğenin adı.

amountRemaining Nesne

Söz konusu öğenin cihazda kalan miktarı. Cihaz dağıtım yapıyorsa, bu işlem kalan miktarı veya cihaz su basmayı bitirdikten sonra ne kadar olacağını bildirir.

amount Number

Kalan tutar

unit String

supported_units özelliğindeki amount için birim.

amountLastDispensed Nesne

Cihazın en son çıkardığı öğe miktarı. Cihaz çıkış yapıyorsa, mevcut dağıtım miktarından önce çıkan miktarı bildirmelidir.

amount Number

Kalan tutar

unit String

supported_units özelliğindeki amount için birim.

isCurrentlyDispensing Boole

Cihazın şu anda bu öğeyi çıkarıp çıkarmadığını gösterir.

Örnekler

Dengelimde kaç 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 çıkarıyor mu?

{
  "dispenseItems": [
    {
      "itemName": "Water",
      "isCurrentlyDispensing": true
    }
  ]
}

amountRemaining ve amountLastDispensed yalnızca tek bir ölçü 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 COMMANDS

Bu özelliğe sahip cihazlar, EXECUTE işleminin bir parçası olarak aşağıdaki komutlara yanıt verebilir. EXECUTE amaçlarını işleme hakkında daha fazla bilgi edinmek için Amaç karşılama bölümüne bakın.

action.devices.commands.Dispense

Eşyaları çıkarın.

Parametreler

Yük aşağıdakilerden birini içerir:

Tutara göre ödeme yapın.

Parametreler Tür Açıklama
item String

item_name özelliğinden çıkarılacak öğenin adı.

amount Number

Zorunludur.

Hazırlanacak miktar.

unit String

Zorunludur.

supported_units özelliğinden gelen amount birimi.

Hazır ayara göre dağıtım yapar.

Parametreler Tür Açıklama
presetName String

Zorunludur.

preset_name özelliğine göre atılacak hazır ayarın adı.

Parametre olmadan dağıtım yapın.

Parametreler Tür Açıklama

Özellik yok

Örnekler

Bana 1 bardak su ver.

{
  "command": "action.devices.commands.Dispense",
  "params": {
    "amount": 1,
    "unit": "CUPS",
    "item": "Water"
  }
}

Kedilerin su kabını doldurun.

{
  "command": "action.devices.commands.Dispense",
  "params": {
    "presetName": "cat_bowl"
  }
}

Suyu çıkarın.

{
  "command": "action.devices.commands.Dispense",
  "params": {}
}

Cihaz ERRORS

Hataların ve istisnaların tam listesine bakın.
  • dispenseAmountRemainingExceeded: Kullanıcı, yeterli miktarı kalmayan bir cihazdan bir ürün veya miktarda çıkarmaya çalıştı.
  • dispenseAmountAboveLimit: Kullanıcı, tek bir sorguda isteyebileceği sınırların dışında bir miktar çıkarmaya çalıştı. Bunun amacı, yanlışlıkla çok fazla miktarda (örneğin 500.000 bardak su) su çıkarılmasını önlemektir.
  • dispenseAmountBelowLimit: Kullanıcı, cihazdan çıkarabileceği minimum miktarın altında bir öğe veya miktar çıkarmaya çalıştı.
  • dispenseFractionalAmountNotSupported: Kullanıcı, cihazın bölünemediği bir öğenin küçük bir kısmını çıkarmaya çalıştı (örneğin, köpek ödül maması gibi sayılabilir öğeler cihaza bölünemeyebilir).
  • genericDispenseNotSupported: Kullanıcı, bir öğe ya da hazır ayar belirtmeden cihazdan çıkış yapmaya çalışıyor, ancak cihaz bu tür işlevleri (örneğin, varsayılan bir dağıtım işlemi) desteklemiyor.
  • dispenseUnitNotSupported: Kullanıcı, bu durum için desteklenmeyen bir birimi olan bir cihazdan çıkış yapmaya çalışıyor (örneğin, öğe sağlanmadığı için supported_unit validation atlandı).
  • dispenseFractionalUnitNotSupported: Kullanıcı, belirtilen belirli bir birim için bölünmeyen ancak bölünebilen bir öğeden kısmen çıkmaya çalıştı (örneğin, bir musluk 2,7 bardak çıkarabilse de 2,7 mL'lik çıkmaz).
  • deviceCurrentlyDispensing: Kullanıcılar bir öğeyi çıkarmaya çalışıyor, ancak cihaz zaten çıkarıyor.
  • deviceClogged: Kullanıcılar bir öğeyi çıkarmaya çalışıyor ancak cihaz tıkanmış.
  • deviceBusy: Kullanıcılar bir öğeyi çıkarmaya çalışıyor ancak cihaz meşgul (genel).

Cihaz İSTİSNALARI

Bu istisnalar, yanıtınızın states nesnesinde exceptionCode olarak bildirilebilir:

  • amountRemainingLow: Kullanıcı, cihazdan bir öğe veya tutar çıkarır. Bu da kalan miktarın düşük seviyeye düşmesine neden olur. "Düşük" seviyeleri tanımlamak sizin sorumluluğunuzdadır.
  • userNeedsToWait - Kullanıcının, istenen öğe veya miktarın başarıyla dağıtılabilmesi için beklemesi gerektiği durumlar (örneğin, bir musluk sıcak su çıkarsa ancak kullanıcının suyun çıkmaya başlamadan önce ısınmasını beklemesi gerekir).