Schemat podpunktu dozowania inteligentnego domu

action.devices.traits.Dispense – ta właściwość należy do urządzeń, które obsługują określoną ilość co najmniej jednego przedmiotu fizycznego.

Ta cecha obsługuje też gotowe ustawienia, takie jak „miska z karmą” dla karmy dla zwierząt lub „szklanka” dla kranu.

ATTRIBUTES urządzenia

W ramach operacji SYNC urządzenia z tą cechą mogą zgłaszać wymienione poniżej atrybuty. Więcej informacji o obsłudze intencji SYNC znajdziesz w sekcji Realizacja intencji.

Atrybuty Typ Opis
supportedDispenseItems Tablica

Zawiera informacje o wszystkich elementach, które można wydać na urządzenie.

[item, ...] Obiekt

Produkt do kupienia.

item_name String

Wymagane.

Wewnętrzna nazwa dozwolonego produktu. Może nie być przyjazna dla użytkownika i jest dostępna we wszystkich językach.

item_name_synonyms Tablica

Wymagane.

Nazwy synonimów dodawanych w każdym obsługiwanym języku.

[item, ...] Obiekt

Nazwy synonimów dla wydanego produktu w danym języku.

synonyms Tablica

Wymagane.

Nazwy synonimów wprowadzanego elementu. Synommy (w stosownych przypadkach powinny zawierać liczbę pojedynczą i mnogą). Pierwszym elementem na tej liście musi być liczba mnoga elementu w danym języku.

[item, ...] String

Nazwa synonimu

lang String

Wymagane.

Kod języka (ISO 639-1). Zobacz obsługiwane języki.

supported_units Tablica

Wymagane.

Zestaw jednostek obsługiwanych przez urządzenie w przypadku danego elementu.

[item, ...] String

Obsługiwane jednostki.

Obsługiwane wartości:

CENTIMETERS
CUPS
DECILITERS
FLUID_OUNCES
GALLONS
GRAMS
KILOGRAMS
LITERS
MILLIGRAMS
MILLILITERS
MILLIMETERS
NO_UNITS
OUNCES
PINCH
PINTS
PORTION
POUNDS
QUARTS
TABLESPOONS
TEASPOONS
default_portion Obiekt

Wymagane.

Typowa ilość produktu, którą można przekazać.

amount Liczba całkowita

Wymagane.

Wydana kwota.

unit String

Wymagane.

Jednostka wydajna.

supportedDispensePresets Tablica

Gotowe ustawienia obsługiwane przez urządzenie.

[item, ...] Obiekt

Gotowe ustawienia.

preset_name String

Wymagane.

Wewnętrzna nazwa gotowych ustawień. Ta nazwa może nie być łatwa w użyciu i dostępna we wszystkich językach.

preset_name_synonyms Tablica

Wymagane.

Nazwy synonimów gotowych ustawień w każdym obsługiwanym języku.

[item, ...] Obiekt

Nazwy synonimów gotowych ustawień w danym języku.

synonyms Tablica

Wymagane.

Nazwy synonimów gotowych ustawień. Synonimy powinny zawierać liczbę mnogą i mnogę (w stosownych przypadkach).

[item, ...] String

Nazwa synonimu

lang String

Wymagane.

Kod języka (ISO 639-1). Zobacz obsługiwane języki.

Przykłady

Dozownik wody, który obsługuje jednostki płynów z gotowymi ustawieniami.

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

Dozownik karmy dla zwierząt bez gotowych ustawień.

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

Urządzenie STATES

W ramach operacji QUERY encje z tą cechą mogą zgłaszać wymienione poniżej stany. Więcej informacji o obsłudze intencji QUERY znajdziesz w sekcji Realizacja intencji.

Stany Typ Opis
dispenseItems Tablica

Stany elementów, które urządzenie może wydać.

[item, ...] Obiekt

Stan danego elementu.

itemName String

Nazwa produktu, której dotyczy atrybut item_name.

amountRemaining Obiekt

Pozostała część tego elementu na urządzeniu. Jeśli urządzenie jest obecnie zasilane w ramach płatności, jest w nim widoczna pozostała kwota lub informacja o tym, ile będzie wynosić ta kwota.

amount Number

Pozostała kwota

unit String

Jednostka atrybutu amount z atrybutu supported_units.

amountLastDispensed Obiekt

Ilość produktu, który został ostatnio wydany przez urządzenie. Jeśli urządzenie obecnie wydaje środki, należy podać ilość wydawanych środków przed bieżącą.

amount Number

Pozostała kwota

unit String

Jednostka atrybutu amount z atrybutu supported_units.

isCurrentlyDispensing Wartość logiczna

Wskazuje, czy urządzenie obecnie wydaje ten produkt.

Przykłady

Ile psich przysmaków pozostało do dozownika?

{
  "dispenseItems": [
    {
      "itemName": "Dog treats",
      "amountRemaining": {
        "amount": 83,
        "unit": "NO_UNITS"
      },
      "amountLastDispensed": {
        "amount": 2,
        "unit": "NO_UNITS"
      },
      "isCurrentlyDispensing": false
    }
  ]
}

Ile wody pozostało w chłodnicy?

{
  "dispenseItems": [
    {
      "itemName": "Water",
      "amountRemaining": {
        "amount": 6.2,
        "unit": "GALLONS"
      },
      "amountLastDispensed": {
        "amount": 1,
        "unit": "CUPS"
      },
      "isCurrentlyDispensing": false
    }
  ]
}

Ile karmy dla kotów już dałeś?

{
  "dispenseItems": [
    {
      "itemName": "cat_food",
      "amountRemaining": {
        "amount": 16.5,
        "unit": "CUPS"
      },
      "amountLastDispensed": {
        "amount": 2.5,
        "unit": "CUPS"
      },
      "isCurrentlyDispensing": false
    }
  ]
}

Czy kraniec nadal wydaje wodę?

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

Raporty amountRemaining i amountLastDispensed muszą być raportowane tylko za pomocą jednej jednostki miary.

Tablica dispenseItems może zawierać wiele elementów. Każda nazwa elementu musi być niepowtarzalna i odpowiadać elementowi w atrybucie supportedDispenseItems.

Urządzenie CommandS

W ramach operacji EXECUTE urządzenia z tą cechą mogą reagować na podane niżej polecenia. Więcej informacji o obsłudze intencji EXECUTE znajdziesz w sekcji Realizacja intencji.

action.devices.commands.Dispense

Daj środki.

Parametry

Ładunek zawiera jedną z tych wartości:

Wydaj określoną kwotę.

Parametry Typ Opis
item String

Nazwa produktu do podania z atrybutu item_name.

amount Number

Wymagane.

Kwota do wydania.

unit String

Wymagane.

Jednostka atrybutu amount z atrybutu supported_units.

Przekaż środki według gotowych ustawień.

Parametry Typ Opis
presetName String

Wymagane.

Nazwa zestawu gotowych ustawień z atrybutu preset_name.

Wydajność bez parametrów.

Parametry Typ Opis

Brak właściwości

Przykłady

Podaj mi szklankę wody.

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

Napełnij kocią miskę na wodę.

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

Wydzielaj wodę.

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

Urządzenie ERRORS

Zobacz pełną listę błędów i wyjątków.
  • dispenseAmountRemainingExceeded: użytkownik próbował wydać coś lub kwotę z urządzenia, na którym nie ma wystarczającej ilości środków.
  • dispenseAmountAboveLimit: użytkownik próbował przekazać kwotę przekraczającą limit, o który może poprosić w 1 zapytaniu. Zapobiega to przypadkowemu wydaleniu nadmiernej ilości wody (np. 500 tys. kubków wody).
  • dispenseAmountBelowLimit: użytkownik próbował wydać coś lub kwotę z urządzenia, które jest mniejsze niż kwota, jaką może wydać.
  • dispenseFractionalAmountNotSupported: użytkownik próbował przekazać częściową część produktu, którego urządzenie nie może dzielić (na przykład liczba policzonych produktów, np. psich przysmaków, może nie być podzielna przez urządzenie).
  • genericDispenseNotSupported: użytkownik próbuje zrezygnować z urządzenia bez określania elementu lub gotowych ustawień, ale urządzenie nie obsługuje takiej funkcji (np. domyślnego działania dozowania).
  • dispenseUnitNotSupported: użytkownik stara się zwolnić urządzenie z jednostki, która w tym przypadku nie obsługuje (np. element nie został podany, więc element supported_unit validation został pominięty).
  • dispenseFractionalUnitNotSupported: użytkownik próbował dozować ułamek części, który można podzielić, ale nie można go zastosować do określonej jednostki (na przykład kranik może wydać 2,7 ml, ale nie 2,7 ml).
  • deviceCurrentlyDispensing: użytkownicy próbują wydać środki, ale urządzenie właśnie wydaje środki.
  • deviceClogged: użytkownik próbuje wydać produkt, ale urządzenie jest zapchane.
  • deviceBusy: użytkownik próbuje wydać produkt, ale urządzenie jest zajęte (ogólne).

WYKLUCZENIA urządzeń

Te wyjątki można zgłosić jako exceptionCode w obiekcie states odpowiedzi:

  • amountRemainingLow – użytkownik wydaje produkt lub kwotę z urządzenia, co powoduje, że pozostała kwota jest niska. Twoim obowiązkiem jest określenie, co oznacza „niski” poziom.
  • userNeedsToWait – gdy użytkownik musi poczekać, aż żądany element lub ilość zostanie zdołany (na przykład w wyniku uzdatniania wody bateryjnej z gorącą wodą będzie podgrzewać się, zanim urządzenie zacznie wydawać wodę).