طرح صفت توزیع خانه هوشمند

action.devices.traits.Dispense - این ویژگی متعلق به دستگاه هایی است که از توزیع مقدار مشخصی از یک یا چند مورد فیزیکی پشتیبانی می کنند.

این ویژگی همچنین از توزیع یک پیش تنظیم پشتیبانی می کند، به عنوان مثال به عنوان یک "کاسه غذای گربه" برای تغذیه حیوانات خانگی یا یک "لیوان" برای یک شیر آب.

ویژگی های دستگاه

دستگاه های دارای این ویژگی ممکن است ویژگی های زیر را به عنوان بخشی از عملیات 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 عدد

مقدار باقی مانده

unit رشته

واحد برای amount از ویژگی supported_units .

amountLastDispensed هدف - شی

مقدار آن موردی که دستگاه اخیراً توزیع کرده است. اگر دستگاه در حال حاضر در حال توزیع است، باید میزان توزیع را قبل از مقدار توزیع فعلی گزارش کند.

amount عدد

مقدار باقی مانده

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 فقط باید با استفاده از یک واحد اندازه گیری گزارش شود.

چندین آیتم را می توان در آرایه dispenseItems ارائه کرد. نام هر مورد باید منحصر به فرد باشد و باید با یک مورد در ویژگی supportedDispenseItems مطابقت داشته باشد.

دستورات دستگاه

دستگاه های دارای این ویژگی ممکن است به دستورات زیر به عنوان بخشی از عملیات EXECUTE پاسخ دهند. برای کسب اطلاعات بیشتر در مورد مدیریت EXECUTE intent ها، به اجرای Intent مراجعه کنید.

action.devices.commands.Dispense

اقلام را توزیع کنید.

مولفه های

محموله شامل یکی از موارد زیر است:

بر اساس مقدار توزیع کنید.

مولفه های تایپ کنید شرح
item رشته

نام موردی که باید توزیع شود، از ویژگی item_name .

amount عدد

ضروری.

مقدار برای توزیع

unit رشته

ضروری.

واحد برای amount ، از ویژگی supported_units .

توزیع توسط از پیش تعیین شده

مولفه های تایپ کنید شرح
presetName رشته

ضروری.

نام پیش‌تنظیمی که باید توزیع شود، از ویژگی 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 : کاربر سعی کرد مبلغی را که فراتر از محدودیت های درخواستی در یک پرس و جو است، توزیع کند. این برای جلوگیری از توزیع تصادفی مقدار بیش از حد (مثلاً 500000 فنجان آب) است.
  • dispenseAmountBelowLimit : کاربر سعی کرد یک مورد یا مقداری را از دستگاه توزیع کند که کمتر از حداقل مقداری است که می تواند توزیع کند.
  • dispenseFractionalAmountNotSupported : کاربر سعی کرد مقدار کسری از یک مورد را که دستگاه نمی تواند آن را تقسیم کند توزیع کند (به عنوان مثال، موارد قابل شمارش مانند خوراک سگ ممکن است بر دستگاه قابل تقسیم نباشد).
  • genericDispenseNotSupported : کاربر سعی می کند بدون تعیین یک مورد یا از پیش تعیین شده، از دستگاهی استفاده کند، اما دستگاه از چنین عملکردی پشتیبانی نمی کند (به عنوان مثال، یک اقدام توزیع پیش فرض).
  • dispenseUnitNotSupported : کاربر سعی می کند از دستگاهی با واحدی که برای آن مورد پشتیبانی نمی شود صرف نظر کند (به عنوان مثال، مورد ارائه نشده است، بنابراین supported_unit validation نادیده گرفته شد).
  • dispenseFractionalUnitNotSupported : کاربر سعی کرد مقدار کسری از یک مورد را که می‌توان آن را تقسیم کرد، توزیع کند، اما نه برای واحد خاص مشخص شده (به عنوان مثال، یک شیر آب ممکن است بتواند 2.7 فنجان اما نه 2.7 میلی لیتر).
  • deviceCurrentlyDispensing : کاربران سعی می کنند یک مورد را توزیع کنند اما دستگاه از قبل در حال توزیع است.
  • deviceClogged : کاربران سعی می کنند یک مورد را توزیع کنند اما دستگاه مسدود شده است.
  • deviceBusy : کاربران سعی می کنند یک مورد را توزیع کنند اما دستگاه مشغول است (عمومی).

استثناهای دستگاه

این استثناها را می توان به عنوان یک exceptionCode در states موضوع پاسخ شما گزارش کرد:

  • amountRemainingLow - کاربر یک مورد یا مقداری را از دستگاه توزیع می کند که مقدار باقی مانده را به سطح پایینی می رساند. شما مسئول تعریف سطح "پایین" هستید.
  • userNeedsToWait - زمانی که کاربر باید منتظر بماند تا کالا یا مقدار درخواستی بتواند با موفقیت توزیع شود (به عنوان مثال، یک شیر آب آب گرم را پخش می کند اما کاربر باید قبل از شروع توزیع صبر کند تا آب گرم شود).