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

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

Bu özellik, evcil hayvan mama kabı için "kedi mama kabı" veya musluk için "cam" gibi bir hazır ayarın dağıtılmasını da destekler.

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 için Amaç karşılama bölümüne bakın.

Özellikler Type Açıklama
supportedDispenseItems Dizi

Cihazın kullanabileceği tüm öğeler hakkında bilgiler içerir.

[item, ...] Nesne

Ayrılabilir öğe.

item_name String

Zorunludur.

Gönderilen öğenin dahili adı. Bu özellik kullanıcı dostu olmayabilir ve tüm dillerde paylaşılır.

item_name_synonyms Dizi

Zorunludur.

Desteklenen her dilde dağıtılan kelimelerin eş anlamlıları adları.

[item, ...] Nesne

Belirli bir dilde dağıtılan öğenin eş anlamlıları adları.

synonyms Dizi

Zorunludur.

Dağıtılan öğenin eş anlamlıları. Anlamlı kelimeler varsa, 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ı ad

lang String

Zorunludur.

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

supported_units Dizi

Zorunludur.

Cihazın bu öğ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.

Öğenin verilebilecek tipik miktarı.

amount Integer

Zorunludur.

Çıkarılan tutar.

unit String

Zorunludur.

Çıkış birimi.

supportedDispensePresets Dizi

Cihaz tarafından desteklenen hazır ayarlar.

[item, ...] Nesne

Hazır Ayar.

preset_name String

Zorunludur.

Hazır ayar için dahili ad. Bu ad, kullanıcı dostu olmayabilir ve tüm dillerde paylaşılır.

preset_name_synonyms Dizi

Zorunludur.

Ön ayar için desteklenen her dilde eş anlamlı adları.

[item, ...] Nesne

Belirli bir dildeki ön ayarın eş anlamlı adları.

synonyms Dizi

Zorunludur.

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

[item, ...] String

Eş anlamlı ad

lang String

Zorunludur.

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

Örnekler

Önceden ayarlanmış sıvıları destekleyen birimleri destekleyen 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"
          ]
        }
      ]
    }
  ]
}

Hazır ayarsız köpek maması makinesi.

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

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

Eyaletler Type Açıklama
dispenseItems Dizi

Cihazın kaldırabileceği öğelerin durumları.

[item, ...] Nesne

Belirli bir öğenin durumu.

itemName String

item_name özelliğindeki öğenin adı.

amountRemaining Nesne

Öğenin kalan miktarı. Cihaz şu anda dağıtımı yapıyorsa kalan miktarı veya cihaz dağıtımı tamamlandığında ne kadar olacağını bildirir.

amount Number

Kalan tutar

unit String

supported_units özelliğindeki amount birimi.

amountLastDispensed Nesne

Öğenin son olarak çıkardığı öğe miktarı. Cihaz şu anda çıkarıyorsa bu durum, mevcut gönderim miktarından önce ayrıldığı tutarı bildirmelidir.

amount Number

Kalan tutar

unit String

supported_units özelliğindeki amount birimi.

isCurrentlyDispensing Boole

Cihazın şu anda bu öğeyi verip vermediğini belirtir.

Örnekler

Dağıtımda 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ı hediye ettim?

{
  "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 bir ölçü birimi kullanılarak raporlanmalıdır.

dispenseItems dizisinde birden çok öğe sağlanabilir. Her öğe adı benzersiz olmalı ve supportedDispenseItems özelliğindeki bir öğeye karşılık gelmelidir.

Cihaz Komisyonları

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 için Amaç karşılama bölümüne bakın.

action.devices.commands.Dispense

Öğeleri gönderin.

Parametreler

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

Tutar kadar dağıt.

Parametreler Type Açıklama
item String

item_name özelliğinden alınacak öğenin adı.

amount Number

Zorunludur.

Çıkarılacak tutar.

unit String

Zorunludur.

supported_units özelliğindeki amount birimi.

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

Parametreler Type Açıklama
presetName String

Zorunludur.

preset_name özelliğinden çıkarılacak hazır ayarın adı.

Parametre kullanmadan ödeme yapın.

Parametreler Type Açıklama

Özellik yok

Örnekler

1 bardak su istiyorum.

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

Kedi su kabını doldurun.

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

Suyu çıkarın.

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

Cihaz HATALARI

Hataların ve istisnaların tam listesini inceleyin.
  • dispenseAmountRemainingExceeded: Kullanıcı, yeterli miktarı olmayan bir cihazdan öğe veya tutar çıkarmaya çalıştı.
  • dispenseAmountAboveLimit: Kullanıcı, tek bir sorguda istenebileceklerinden daha fazla ödeme yapmaya çalıştı. Bunun amacı, yanlışlıkla aşırı miktarda (ör. 500.000 bardak su) alınmasını önlemektir.
  • dispenseAmountBelowLimit: Kullanıcı, cihazdaki bir öğeyi veya tutarı, verebileceği minimum tutarın altında tutmaya çalıştı.
  • dispenseFractionalAmountNotSupported: Kullanıcı, cihazın ayıramadığı bir öğenin küçük bir kısmını çıkarmaya çalıştı (örneğin, köpek ödül maması gibi değerli öğeler cihaz tarafından bölünmeyebilir).
  • genericDispenseNotSupported: Kullanıcı bir öğe veya ön ayar belirtmeden bir cihazdan çıkış yapmaya çalışır, ancak cihaz bu işlevi desteklemez (örneğin, varsayılan bir silme işlemi).
  • dispenseUnitNotSupported: Kullanıcı, bu cihaz için desteklenmeyen bir birimin bulunduğu cihazdan çıkış yapmaya çalışır (örneğin, öğe sağlanmadığı için supported_unit validation atlanır).
  • dispenseFractionalUnitNotSupported: Kullanıcı, bir birimin kesirli boyutunu çıkarmaya çalıştı ancak belirtilen birim için ayrılamadı (örneğin, musluk 2,7 bardak üretebilir ancak 2,7 mL veremez).
  • deviceCurrentlyDispensing: Kullanıcılar bir öğeyi çıkarmaya çalışır ancak cihaz zaten cihazı çıkarıyor.
  • deviceClogged: Kullanıcılar bir öğeyi çıkarmaya çalışır ancak cihaz tıkanmıştır.
  • deviceBusy: Kullanıcılar bir öğeyi çıkarmaya çalışır ancak cihaz meşguldür (genel).

Cihaz İSTİSNALARI

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

  • amountRemainingLow - Kullanıcı, cihazdaki bir öğeyi veya tutarı çıkararak kalan miktarı düşük seviyeye çıkarır. "Düşük" seviyenin ne olduğunu tanımlamak sizin sorumluluğunuzdadır.
  • userNeedsToWait - Kullanıcı, istenen öğenin veya tutarın başarıyla tahsis edilebilmesi için beklemesi gerektiğinde (ör. musluk musluklarını bitirir ancak kullanıcının suyun ısınmaya başlaması için beklemesi gerekir).