Witamy w Google Home Developer Center – nowym miejscu, z którego dowiesz się, jak tworzyć inteligentne działania domowe. Uwaga: nadal będziesz tworzyć działania w konsoli Actions.
Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Schemat nakazu przekazania do domu domowego

action.devices.traits.Dispense – ten atrybut należy do urządzeń, które umożliwiają przydzielanie określonej liczby przedmiotów fizycznych.

Ten atrybut obsługuje też wysyłanie gotowych ustawień, np. jako „miska z kotem” w przypadku karmy dla zwierząt czy „szklaną” krankę.

ATRYBUTY 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 przekazać na urządzenie.

[item, ...] Obiekt

Produkt do kupienia.

item_name Ciąg

Wymagany.

Wewnętrzna nazwa publikowanego elementu. Może być nieprzeznaczona dla użytkowników i udostępniana we wszystkich językach.

item_name_synonyms Tablica

Wymagany.

Synonimy wprowadzone w każdym obsługiwanym języku.

[item, ...] Obiekt

Synonimy danego produktu w danym języku.

synonyms Tablica

Wymagany.

Nazwy synonimów sprzedawanego produktu. Synchronizmy powinny obejmować formy liczby pojedynczej i mnogiej (w stosownych przypadkach). Pierwszym elementem na liście musi być liczba mnoga podana w tym języku.

[item, ...] Ciąg

Nazwa synonimu

lang Ciąg

Wymagany.

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

supported_units Tablica

Wymagany.

Zestaw jednostek obsługiwanych przez dany element.

[item, ...] Ciąg

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

Wymagany.

Typowa ilość produktu, która może zostać wydana.

amount Liczba całkowita

Wymagany.

Wydana kwota.

unit Ciąg

Wymagany.

Jednostka wydania.

supportedDispensePresets Tablica

Gotowe ustawienia obsługiwane przez urządzenie.

[item, ...] Obiekt

Gotowe ustawienia.

preset_name Ciąg

Wymagany.

Wewnętrzna nazwa gotowych ustawień. Ta nazwa może nie być przyjazna dla użytkownika i jest dostępna we wszystkich językach.

preset_name_synonyms Tablica

Wymagany.

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

Wymagany.

Nazwy synonimów gotowych ustawień. Synonimy powinny mieć formę liczby pojedynczej i mnogiej, jeśli taka jest.

[item, ...] Ciąg

Nazwa synonimu

lang Ciąg

Wymagany.

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 o tym atrybucie mogą raportować te stany. Więcej informacji o obsłudze intencji QUERY znajdziesz w sekcji Realizacja intencji.

Stany Typ Opis
dispenseItems Tablica

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

[item, ...] Obiekt

Stan danego elementu.

itemName Ciąg

Nazwa produktu z atrybutu item_name.

amountRemaining Obiekt

Ilość tego produktu dostępnego na urządzeniu. Jeśli urządzenie jest obecnie realizowane, pojawia się w nim pozostała część kwoty do zapłaty.

amount Number

Pozostała kwota

unit Ciąg

Jednostka atrybutu amount z atrybutu supported_units.

amountLastDispensed Obiekt

Ilość zamówionych produktów. Jeśli urządzenie wysyła obecnie środki, powinno ono uwzględniać kwotę do zapłaty przed obecną.

amount Number

Pozostała kwota

unit Ciąg

Jednostka atrybutu amount z atrybutu supported_units.

isCurrentlyDispensing Wartość logiczna

Wskazuje, czy urządzenie wydaje obecnie 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łodziarce?

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

Ile karmy dla kotów dostałem wcześniej?

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

Czy kratek nadal wydaje wodę?

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

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

W tablicy dispenseItems można podać wiele elementów. Każda nazwa produktu musi być unikalna i odpowiadać produktowi w atrybucie supportedDispenseItems.

Polecenie urządzenia

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

action.devices.commands.Dispense

Wydaj produkty.

Parametry

Ładunek zawiera jeden z tych elementów:

Rezygnuję z kwoty.

Parametry Typ Opis
item Ciąg

Nazwa produktu, który ma zostać wysłany, z atrybutu item_name.

amount Number

Wymagany.

Kwota do wydania.

unit Ciąg

Wymagany.

Jednostka atrybutu amount z atrybutu supported_units.

Odbierz zgodnie z gotowymi ustawieniami.

Parametry Typ Opis
presetName Ciąg

Wymagany.

Nazwa gotowych ustawień z poziomu atrybutu preset_name.

Wydaj 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ć produkt lub kwotę z urządzenia, na którym niewystarczająca ilość.
  • dispenseAmountAboveLimit: użytkownik próbował przekazać kwotę wykraczającą poza limity pojedynczego zapytania. Ma to zapobiegać przypadkowemu wydania nadmiernej ilości (np. 500 000 szklanek wody).
  • dispenseAmountBelowLimit: użytkownik próbował wydać z urządzenia produkt lub kwotę niższą niż minimalna kwota, którą może wydać.
  • dispenseFractionalAmountNotSupported: użytkownik próbował wydać częściową część produktu, której urządzenie nie może dzielić (na przykład produkty, które można policzyć, np. psie przysmaki mogą nie być podzielne przez urządzenie).
  • genericDispenseNotSupported: użytkownik próbuje zrezygnować z urządzenia bez podawania elementu lub gotowych ustawień, ale urządzenie nie obsługuje takiej funkcji (np. może to być działanie domyślne).
  • dispenseUnitNotSupported: użytkownik próbuje zrezygnować z urządzenia, którego urządzenie nie jest obsługiwane w tym przypadku (np. element nie został podany, więc supported_unit validation został pominięty).
  • dispenseFractionalUnitNotSupported: użytkownik próbował wydać częściową ilość produktu, który można podzielić, ale nie można jej podzielić na konkretne jednostki (np. kratek może wydać 2,7 filiżanka, ale nie 2,7 ml).
  • deviceCurrentlyDispensing: użytkownik próbuje wysłać element, ale urządzenie już go wydaje.
  • deviceClogged: użytkownik próbuje wydać element, ale urządzenie jest zapchane.
  • deviceBusy: użytkownik próbuje wysłać element, ale urządzenie jest zajęte (ogólne).

WYKLUCZENIA urządzeń

Te wyjątki można raportować jako exceptionCode w obiekcie states odpowiedzi:

  • amountRemainingLow – użytkownik wydaje produkt lub kwotę na urządzeniu, co sprawia, że pozostała kwota jest niska. Twoim obowiązkiem jest określenie poziomu „niskiego” poziomu.
  • userNeedsToWait – gdy użytkownik musi poczekać, by można było pobrać żądaną ilość produktu lub określoną ilość wody (np. krannik dostarcza wodę z gorącej wody, ale użytkownik musi poczekać, aż się ogrzewa).