ยินดีต้อนรับสู่ศูนย์นักพัฒนาซอฟต์แวร์ Google Home ซึ่งเป็นจุดหมายใหม่เกี่ยวกับวิธีพัฒนาการดําเนินการสําหรับบ้านอัจฉริยะ หมายเหตุ: คุณจะสร้างการดําเนินการต่างๆ ต่อไปในคอนโซลการดําเนินการ

สคีมาลักษณะเฉพาะของสมาร์ทโฮม

action.devices.traits.Dispense - ลักษณะนี้เป็นของอุปกรณ์ที่รองรับการจ่ายจริงตามจํานวนที่ระบุทางกายภาพ

ลักษณะนี้รองรับการจ่ายค่าที่กําหนดล่วงหน้า เช่น "ชามอาหารแมว" สําหรับเครื่องให้อาหารสัตว์เลี้ยง หรือ "แก้ว" สําหรับก๊อกน้ําด้วย

แอตทริบิวต์ของอุปกรณ์

อุปกรณ์ที่มีลักษณะเฉพาะนี้อาจรายงานแอตทริบิวต์ต่อไปนี้เป็นส่วนหนึ่งของการดําเนินการ SYNC หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการ Intent ของ SYNC โปรดดูการดําเนินการ Intent

แอตทริบิวต์ Type คำอธิบาย
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"
      }
    }
  ]
}

อุปกรณ์ STATES

เอนทิตีที่มีลักษณะนี้อาจรายงานสถานะต่อไปนี้เป็นส่วนหนึ่งของการดําเนินการ QUERY หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการ Intent ของ QUERY โปรดดูการดําเนินการ Intent

รัฐ Type คำอธิบาย
dispenseItems อาร์เรย์

สถานะของสินค้าที่อุปกรณ์จ่ายได้

[item, ...] ออบเจ็กต์

สถานะของรายการที่ระบุ

itemName สตริง

ชื่อของสินค้าจากแอตทริบิวต์ item_name

amountRemaining ออบเจ็กต์

จํานวนของรายการนั้นที่เหลืออยู่ในอุปกรณ์ หากอุปกรณ์กําลังจ่ายในปัจจุบัน การดําเนินการนี้จะรายงานจํานวนที่เหลือหรือจํานวนเงินที่จะใช้เมื่ออุปกรณ์ส่งเนื้อหาเสร็จแล้ว

amount Number

จํานวนที่เหลือ

unit สตริง

หน่วยของ amount จากแอตทริบิวต์ supported_units

amountLastDispensed ออบเจ็กต์

จํานวนเงินของรายการนั้นล่าสุดที่มีการจ่ายอุปกรณ์ หากอุปกรณ์กําลังจ่ายยาอยู่ การดําเนินการนี้ควรรายงานปริมาณที่จ่ายก่อนจํานวนเงินจ่ายในปัจจุบัน

amount Number

จํานวนที่เหลือ

unit สตริง

หน่วยของ amount จากแอตทริบิวต์ supported_units

isCurrentlyDispensing บูลีน

ระบุว่าอุปกรณ์กําลังจ่ายรายการนี้อยู่ไหม

ตัวอย่าง

ค่าขนมของสุนัขเหลืออีกกี่ชิ้น

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

ต้องรายงาน amountRemaining และ amountLastDispensed โดยใช้หน่วยวัดเพียง 1 หน่วย

ระบุได้หลายรายการภายในอาร์เรย์ dispenseItems ชื่อสินค้าต้องไม่ซ้ํากันและต้องตรงกับรายการในแอตทริบิวต์ supportedDispenseItems

อุปกรณ์ COMMANDS

อุปกรณ์ที่มีลักษณะเฉพาะนี้อาจตอบสนองต่อคําสั่งต่อไปนี้ในฐานะส่วนหนึ่งของการดําเนินการ EXECUTE หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการ Intent ของ EXECUTE โปรดดูการดําเนินการ Intent

action.devices.commands.Dispense

จ่ายไอเทม

พารามิเตอร์

เพย์โหลดมีดังต่อไปนี้

จ่ายตามจํานวน

พารามิเตอร์ Type คำอธิบาย
item สตริง

ชื่อของสินค้าที่จะจ่ายจากแอตทริบิวต์ item_name

amount Number

ต้องระบุ

จํานวนเงินที่จ่าย

unit สตริง

ต้องระบุ

หน่วยของ amount จากแอตทริบิวต์ supported_units

จ่ายล่วงหน้าด้วย

พารามิเตอร์ Type คำอธิบาย
presetName สตริง

ต้องระบุ

ชื่อของค่าที่กําหนดล่วงหน้าเพื่อแจกจ่ายจากแอตทริบิวต์ preset_name

จ่ายแบบไม่มีพารามิเตอร์

พารามิเตอร์ Type คำอธิบาย

ไม่มีพร็อพเพอร์ตี้

ตัวอย่าง

ดื่มน้ํา 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": {}
}

อุปกรณ์ ERRORS

ดูรายการข้อผิดพลาดและข้อยกเว้นทั้งหมด
  • dispenseAmountRemainingExceeded: ผู้ใช้พยายามจ่ายรายการหรือจํานวนเงินออกจากอุปกรณ์ที่มีเงินไม่เพียงพอ
  • dispenseAmountAboveLimit: ผู้ใช้พยายามจ่ายเงินเป็นจํานวนที่เกินขีดจํากัดจากสิ่งที่ขอได้ในการค้นหาแต่ละครั้ง เพื่อเป็นการป้องกันไม่ให้จ่ายมากเกินไป (เช่น น้ํา 500,000 ถ้วย)
  • dispenseAmountBelowLimit: ผู้ใช้พยายามจ่ายไอเทมหรือจํานวนเงินออกจากอุปกรณ์ ที่มีราคาต่ํากว่าจํานวนเงินขั้นต่ําที่จ่ายได้
  • dispenseFractionalAmountNotSupported: ผู้ใช้พยายามจ่ายไอเทมบางส่วนที่อุปกรณ์ไม่สามารถแยกออกได้ (เช่น สิ่งของที่นับได้ เช่น ขนมสําหรับสุนัข อาจไม่หารด้วยอุปกรณ์)
  • genericDispenseNotSupported: ผู้ใช้พยายามจ่ายค่าสินค้าจากอุปกรณ์โดยไม่ระบุสินค้าหรือค่าที่กําหนดล่วงหน้า แต่อุปกรณ์ไม่รองรับฟังก์ชันการทํางานดังกล่าว (เช่น การดําเนินการจ่ายเริ่มต้น)
  • dispenseUnitNotSupported: ผู้ใช้พยายามจ่ายอุปกรณ์จากอุปกรณ์ที่ไม่รองรับสําหรับเคสนั้น (เช่น ไม่ได้ระบุสินค้าจึงข้าม supported_unit validation)
  • dispenseFractionalUnitNotSupported: ผู้ใช้พยายามจ่ายส่วนย่อยๆ ของสินค้า ซึ่งจะแบ่งได้สําหรับหน่วยที่เฉพาะเจาะจงระบุ (เช่น ก๊อกน้ําอาจแจกจ่ายให้ 2.7 ถ้วยได้ แต่ส่งไม่ได้ 2.7 มล.)
  • deviceCurrentlyDispensing: ผู้ใช้พยายามจ่ายไอเทม แต่อุปกรณ์จ่ายไปแล้ว
  • deviceClogged: ผู้ใช้พยายามจ่ายไอเทม แต่สิ่งของอุดตัน
  • deviceBusy: ผู้ใช้พยายามจ่ายไอเทม แต่อุปกรณ์ยังไม่ว่าง (ทั่วไป)

อุปกรณ์เกิน

คุณอาจรายงานข้อยกเว้นเหล่านี้ในฐานะ exceptionCode ในออบเจ็กต์ states ของการตอบกลับได้

  • amountRemainingLow - ผู้ใช้จ่ายรายการหรือจํานวนเงินออกจากอุปกรณ์ ซึ่งทําให้จํานวนเงินที่เหลืออยู่อยู่ในระดับต่ํา คุณมีหน้าที่กําหนดองค์ประกอบของระดับ "ต่ํา"
  • userNeedsToWait - เมื่อผู้ใช้ต้องรอให้ระบบสั่งสินค้าหรือจํานวนเงินที่ขอให้เรียบร้อย (เช่น ก๊อกน้ําจะเติมน้ําร้อนแต่ผู้ใช้ต้องรอให้น้ําร้อนเพื่อให้ระบบเติมน้ํา)