스마트 홈 작업을 개발하는 방법을 알아볼 수 있는 새로운 공간인 Google Home 개발자 센터에 오신 것을 환영합니다. 참고: Actions 콘솔에서 작업을 계속 만들 수 있습니다.
컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

스마트 홈 배포 속성 스키마

action.devices.traits.Dispense - 이 특성은 한 개 이상의 실제 물품을 지정된 양으로 공급할 수 있는 기기에 속합니다.

이 특성은 또한 반려동물 급식기의 '고양이 사료 그릇'이나 수도꼭지의 '유리 잔'과 같이 사전 설정을 제공하는 데도 도움이 됩니다.

기기 속성

이 특성이 있는 기기는 SYNC 작업의 일부로 다음 속성을 보고할 수 있습니다. SYNC 인텐트 처리에 관한 자세한 내용은 인텐트 처리를 참고하세요.

속성 유형 설명
supportedDispenseItems 배열

기기에서 표시할 수 있는 모든 항목에 관한 정보가 포함됩니다.

[item, ...] 객체

제공 가능한 항목입니다.

item_name String

필수.

배출된 항목의 내부 이름 이 방법은 사용자 친화적이지 않고 모든 언어에서 공유됩니다.

item_name_synonyms 배열

필수.

지원되는 각 언어로 제공된 동의어의 동의어입니다.

[item, ...] 객체

지정된 언어로 표시되는 제공 항목의 동의어 이름입니다.

synonyms 배열

필수.

제공된 항목의 동의어 이름입니다. 해당하는 경우 동의어에 단수형과 복수형을 모두 포함해야 합니다. 이 목록의 첫 번째 문자열은 해당 언어로 된 항목의 복수형이어야 합니다.

[item, ...] String

동의어

lang String

필수.

언어 코드 (ISO 639-1). 지원되는 언어를 참고하세요.

supported_units 배열

필수.

기기에서 항목에 지원하는 단위 집합입니다.

[item, ...] String

지원되는 단위입니다.

지원 값:

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

필수.

지급될 수 있는 상품의 일반적인 금액입니다.

amount 정수

필수.

제공 금액

unit String

필수.

배포 단위

supportedDispensePresets 배열

기기에서 지원하는 미리 설정.

[item, ...] 객체

사전 설정.

preset_name String

필수.

사전 설정의 내부 이름입니다. 이 이름은 사용자 친화적이지 않고 모든 언어로 공유됩니다.

preset_name_synonyms 배열

필수.

지원되는 각 언어로 사전설정의 동의어 이름입니다.

[item, ...] 객체

특정 언어로 사전 설정된 동의어 이름입니다.

synonyms 배열

필수.

사전설정의 동의어 이름입니다. 동의어에는 해당하는 경우 단수형과 복수형이 모두 포함되어야 합니다.

[item, ...] String

동의어

lang String

필수.

언어 코드 (ISO 639-1). 지원되는 언어를 참고하세요.

사전 설정된 액체 유닛을 지원하는 물 분사기

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

사전 설정된 사료 디스펜서가 없습니다.

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

기기 상태

이 특성이 있는 기기는 QUERY 작업의 일부로 다음 상태를 보고할 수 있습니다. QUERY 인텐트 처리에 관한 자세한 내용은 인텐트 처리를 참고하세요.

상태 유형 설명
dispenseItems 배열

기기에서 제공할 수 있는 항목의 상태입니다.

[item, ...] 객체

지정된 항목의 상태입니다.

itemName String

item_name 속성의 상품 이름입니다.

amountRemaining 객체

기기에 남아 있는 항목의 금액입니다. 기기가 현재 배식되고 있는 경우, 남은 양이나 기기의 배출이 끝난 후의 양이 보고됩니다.

amount Number

잔액

unit String

supported_units 속성의 amount 단위입니다.

amountLastDispensed 객체

기기에서 가장 최근에 지급한 물품의 양입니다. 기기가 현재 배출되고 있는 경우, 현재 배식 금액 전에 배출된 양을 보고합니다.

amount Number

잔액

unit String

supported_units 속성의 amount 단위입니다.

isCurrentlyDispensing Boolean

기기가 현재 이 항목을 제공하는지 여부를 나타냅니다.

디스펜서에 반려견 간식이 몇 개 남아 있나요?

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

워터 쿨러에 남아 있는 물의 양은 얼마나 되나요?

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

이전에 고양이 사료를 얼마나 드렸나요?

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

수도꼭지에서 여전히 물이 나오나요?

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

amountRemainingamountLastDispensed는 하나의 측정 단위를 사용하여 보고하면 됩니다.

dispenseItems 배열에 여러 항목을 제공할 수 있습니다. 각 항목 이름은 고유해야 하며 supportedDispenseItems 속성의 항목과 일치해야 합니다.

기기 명령어

이 특성이 있는 기기는 EXECUTE 작업의 일부로 다음 명령어에 응답할 수 있습니다. EXECUTE 인텐트 처리에 관한 자세한 내용은 인텐트 처리를 참고하세요.

action.devices.commands.Dispense

배식 상품.

매개변수

페이로드에는 다음 중 하나가 포함됩니다.

금액으로 제공

매개변수 유형 설명
item String

item_name 속성에서 배식할 항목의 이름입니다.

amount Number

필수.

배식할 금액

unit String

필수.

supported_units 속성의 amount 단위입니다.

미리 설정을 통해 제공합니다.

매개변수 유형 설명
presetName String

필수.

preset_name 속성에서 배출할 사전 설정의 이름입니다.

매개변수 없이 제공합니다.

매개변수 유형 설명

속성이 없습니다.

물 1컵 주세요.

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

고양이 물그릇에 물을 채웁니다.

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

물을 분배합니다.

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

기기 오류

오류 및 예외의 전체 목록을 참조하세요.
  • dispenseAmountRemainingExceeded: 사용자가 충분한 양이 남아 있지 않은 기기에서 상품이나 금액을 제공하려고 했습니다.
  • dispenseAmountAboveLimit: 사용자가 단일 쿼리에서 요청할 수 있는 항목 한도를 초과하는 양을 제공하려고 시도했습니다. 이는 과도한 양의 물 (예: 물 500,000컵)을 실수로 배출하지 않도록 하기 위함입니다.
  • dispenseAmountBelowLimit: 사용자가 배출할 수 있는 최소 양보다 적은 양을 기기의 배출하려고 시도했습니다.
  • dispenseFractionalAmountNotSupported: 사용자가 기기를 분할할 수 없는 항목의 일부를 표시하려고 시도했습니다 (예: 강아지 간식과 같이 셀 수 있는 항목은 기기에 의해 나눠지지 않을 수 있음).
  • genericDispenseNotSupported: 사용자가 항목이나 사전 설정을 지정하지 않고 기기에서 배출하려고 시도하지만 기기가 이러한 기능을 지원하지 않습니다(예: 기본 디스패치 작업).
  • dispenseUnitNotSupported: 사용자가 케이스에 지원되지 않는 단위가 있는 기기에서 배출하려고 시도합니다 (예: 항목이 제공되지 않아 supported_unit validation를 건너뜀).
  • dispenseFractionalUnitNotSupported: 사용자가 분할할 수 있지만 지정된 특정 단위를 분리할 수 없는 품목의 분량을 시도했습니다 (예: 수도꼭지에서 2.7컵을 배출할 수 있지만 2.7mL을 제공하지 못할 수 있음).
  • deviceCurrentlyDispensing: 사용자가 항목 배출을 시도하지만 기기가 이미 배식되고 있습니다.
  • deviceClogged: 사용자가 상품을 배급하려고 하지만 기기가 차단되었습니다.
  • deviceBusy: 사용자가 상품을 배급하려고 하지만 기기가 사용 중입니다 (일반).

기기 예외

이러한 예외는 응답의 states 객체에서 exceptionCode로 보고될 수 있습니다.

  • amountRemainingLow - 사용자가 기기에서 항목 또는 금액을 배출하여 남아 있는 양을 하위 수준으로 설정합니다. '낮음' 수준을 구성하는 요소를 정의하는 것은 개발자의 책임입니다.
  • userNeedsToWait: 사용자가 요청한 품목이나 양을 배출할 수 있을 때까지 기다려야 하는 경우 (예: 수도꼭지에서 뜨거운 물을 제공하지만 사용자는 물이 가열될 때까지 기다린 후에 분비되기 시작함)