스마트 홈 분배 특성 스키마

action.devices.traits.Dispense: 이 특성은 지정된 양의 실제 항목 분배를 지원하는 기기에 속합니다.

이 특성은 반려동물 급식기에는 '고양이 사료 그릇', 수도꼭지에는 '유리'와 같은 미리 설정을 제공하는 것도 지원합니다.

기기 ATTRIBUTES

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

특성 유형 설명
supportedDispenseItems 배열

기기에서 배식할 수 있는 모든 상품에 대한 정보를 포함합니다.

[item, ...] 객체

판매 중단 상품입니다.

item_name 문자열

필수사항.

제공된 상품의 내부 이름입니다. 사용자 친화적이지 않을 수 있으며 모든 언어에서 공유됩니다.

item_name_synonyms 배열

필수사항.

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

[item, ...] 객체

제공된 언어로 제공된 상품의 동의어 이름입니다.

synonyms 배열

필수사항.

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

[item, ...] 문자열

동의어 이름

lang 문자열

필수사항.

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

supported_units 배열

필수사항.

기기가 해당 항목에 대해 지원하는 단위 집합입니다.

[item, ...] 문자열

지원되는 단위입니다.

지원되는 값:

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 문자열

필수사항.

배포 단위

supportedDispensePresets 배열

기기에서 지원하는 사전 설정.

[item, ...] 객체

사전 설정.

preset_name 문자열

필수사항.

사전 설정의 내부 이름입니다. 이 이름은 사용자 친화적이지 않을 수 있으며 모든 언어에서 공유됩니다.

preset_name_synonyms 배열

필수사항.

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

[item, ...] 객체

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

synonyms 배열

필수사항.

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

[item, ...] 문자열

동의어 이름

lang 문자열

필수사항.

언어 코드 (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 문자열

item_name 속성에 있는 상품 이름입니다.

amountRemaining 객체

기기에 남아 있는 잔액 기기가 현재 배출되는 경우 잔여 용량 또는 기기 배출이 완료된 후 예상되는 금액이 보고됩니다.

amount Number

잔액

unit 문자열

supported_units 속성의 amount 단위입니다.

amountLastDispensed 객체

기기에서 가장 최근에 지급한 상품의 금액입니다. 기기가 현재 분배 중인 경우 현재 분배량 전에 분배된 양을 보고해야 합니다.

amount Number

잔액

unit 문자열

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 문자열

item_name 속성에서 디스패치할 상품의 이름입니다.

amount Number

필수사항.

배출할 양입니다.

unit 문자열

필수사항.

supported_units 속성의 amount 단위입니다.

사전 설정으로 분배합니다.

매개변수 유형 설명
presetName 문자열

필수사항.

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

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

매개변수 유형 설명

속성이 없습니다.

물 한 컵을 주세요.

{
  "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 - 요청한 항목이나 양을 성공적으로 배출하기 전에 사용자가 기다려야 하는 경우 (예: 수도꼭지가 뜨거운 물을 공급하지만 사용자는 물이 뜨거워질 때까지 기다린 후에 배출될 수 있음)