Schéma de distribution de distribution pour la maison connectée

action.devices.traits.Dispense : cette caractéristique appartient aux appareils compatibles avec la distribution d'une quantité spécifiée d'un ou de plusieurs articles.

Cette caractéristique permet également de distribuer un préréglage, par exemple un "bol de nourriture pour chats" pour un distributeur d'aliments pour animaux de compagnie ou un "verre" pour un robinet.

Attributs d'appareil

Les appareils dotés de cette caractéristique peuvent signaler les attributs suivants dans le cadre de l'opération SYNC. Pour en savoir plus sur la gestion des intents SYNC, consultez la section Traitement des intents.

Attributs Type Description
supportedDispenseItems Array

Contient des informations sur tous les articles que l'appareil peut distribuer.

[item, ...] Objet

Article dispensable.

item_name Chaîne

Obligatoire.

Nom interne de l'article distribué. Elle peut être non conviviale et utilisée dans toutes les langues.

item_name_synonyms Array

Obligatoire.

Noms de synonymes des produits distribués dans chaque langue compatible.

[item, ...] Objet

Noms de synonymes de l'élément distribué dans une langue donnée.

synonyms Array

Obligatoire.

Noms de synonymes pour l'objet distribué. Les synonymes doivent inclure les formes au pluriel et au singulier, le cas échéant. La première chaîne de cette liste doit correspondre au pluriel de l'élément dans cette langue.

[item, ...] Chaîne

Nom du synonyme

lang Chaîne

Obligatoire.

Code de langue (ISO 639-1). Consultez la liste des langues acceptées.

supported_units Array

Obligatoire.

Ensemble d'unités prises en charge par l'appareil pour cet article.

[item, ...] Chaîne

Unités acceptées.

Valeurs acceptées :

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

Obligatoire.

Quantité habituelle de l'article pouvant être distribuée.

amount Entier

Obligatoire.

Quantité distribuée.

unit Chaîne

Obligatoire.

Unité distribuée.

supportedDispensePresets Array

Préréglages compatibles avec l'appareil.

[item, ...] Objet

Préréglage.

preset_name Chaîne

Obligatoire.

Nom interne du préréglage. Ce nom peut être non convivial et est partagé dans toutes les langues.

preset_name_synonyms Array

Obligatoire.

Noms de synonymes du préréglage dans chaque langue compatible.

[item, ...] Objet

Noms des synonymes du préréglage dans une langue donnée.

synonyms Array

Obligatoire.

Noms des synonymes du préréglage. Les synonymes doivent inclure les formes au pluriel et au singulier, le cas échéant.

[item, ...] Chaîne

Nom du synonyme

lang Chaîne

Obligatoire.

Code de langue (ISO 639-1). Consultez la liste des langues acceptées.

Exemples

Distributeur d'eau compatible avec les liquides, à l'aide des préréglages.

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

Distributeur de nourriture pour animaux de compagnie sans préréglage.

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

Device STATES

Les entités dotées de cette caractéristique peuvent signaler les états suivants dans le cadre de l'opération QUERY. Pour en savoir plus sur la gestion des intents QUERY, consultez la section Traitement des intents.

États Type Description
dispenseItems Array

États des articles que l'appareil peut distribuer.

[item, ...] Objet

État d'un élément donné.

itemName Chaîne

Nom de l'article provenant de l'attribut item_name.

amountRemaining Objet

Quantité restante de cet élément sur l'appareil Si l'appareil est en cours de distribution, cette colonne indique la quantité restante ou la quantité qu'elle sera après la distribution.

amount Number

Montant restant

unit Chaîne

Unité de la valeur amount de l'attribut supported_units.

amountLastDispensed Objet

Quantité de l'article distribuée le plus récemment par l'appareil. Si l'appareil est en train d'être distribué, les quantités fournies avant la distribution actuelle doivent être indiquées.

amount Number

Montant restant

unit Chaîne

Unité de la valeur amount de l'attribut supported_units.

isCurrentlyDispensing Booléen

Indique si l'appareil distribue actuellement cet article.

Exemples

Combien de friandises pour chien reste-t-il dans mon distributeur ?

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

Quelle est la quantité d'eau restante dans ma fontaine ?

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

Quelle était la quantité de nourriture pour chat que j'ai donnée auparavant ?

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

Est-ce que le robinet alimente toujours de l'eau ?

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

amountRemaining et amountLastDispensed ne doivent être signalés qu'à l'aide d'une seule unité de mesure.

Plusieurs articles peuvent être fournis dans le tableau dispenseItems. Chaque nom d'article doit être unique et correspondre à un article de l'attribut supportedDispenseItems.

COMMANDS d'appareil

Les appareils dotés de cette caractéristique peuvent répondre aux commandes suivantes dans le cadre de l'opération EXECUTE. Pour en savoir plus sur la gestion des intents EXECUTE, consultez la section Traitement des intents.

action.devices.commands.Dispense

Distribuez les articles.

Paramètres

La charge utile contient l'un des éléments suivants:

Distribuer en fonction de la quantité.

Paramètres Type Description
item Chaîne

Nom de l'article à distribuer, provenant de l'attribut item_name.

amount Number

Obligatoire.

Montant à distribuer.

unit Chaîne

Obligatoire.

Unité pour amount, provenant de l'attribut supported_units.

Distribuer selon le préréglage.

Paramètres Type Description
presetName Chaîne

Obligatoire.

Nom du préréglage à distribuer, provenant de l'attribut preset_name.

Distribuer sans paramètres.

Paramètres Type Description

Aucune propriété

Exemples

Donnez-moi un verre d'eau.

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

Remplissez la gamelle du chat.

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

Versez de l'eau.

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

ERREURS sur l'appareil

Consultez la liste complète des erreurs et exceptions.
  • dispenseAmountRemainingExceeded: l'utilisateur a essayé de distribuer un article ou une quantité à partir d'un appareil dont la quantité restante est insuffisante.
  • dispenseAmountAboveLimit: l'utilisateur a essayé de distribuer une quantité qui dépasse les limites de ce qu'il peut demander dans une seule requête. Cela permet d'éviter de verser accidentellement une quantité excessive (par exemple, 500 000 tasses d'eau).
  • dispenseAmountBelowLimit: l'utilisateur a essayé de distribuer un article ou une quantité depuis l'appareil inférieur à la quantité minimale qu'il peut distribuer.
  • dispenseFractionalAmountNotSupported: l'utilisateur a essayé de distribuer une fraction d'un article que l'appareil ne peut pas diviser (par exemple, les éléments dénombrables tels que les friandises pour chien peuvent ne pas être divisibles par l'appareil).
  • genericDispenseNotSupported: l'utilisateur tente de distribuer à partir d'un appareil sans spécifier d'article ni de préréglage, mais l'appareil n'est pas compatible avec cette fonctionnalité (par exemple, une action de distribution par défaut).
  • dispenseUnitNotSupported: l'utilisateur tente de distribuer à partir d'un appareil dont l'unité n'est pas compatible avec ce cas (par exemple, l'article n'est pas fourni et supported_unit validation a donc été ignoré).
  • dispenseFractionalUnitNotSupported: l'utilisateur a essayé de distribuer une fraction partielle d'un article qui peut être divisé, mais pas pour l'unité spécifique spécifiée (par exemple, un robinet peut permettre de distribuer 2,7 tasses, mais pas 2,7 mL).
  • deviceCurrentlyDispensing: l'utilisateur tente de distribuer un article, mais l'appareil est déjà en train d'en distribuer.
  • deviceClogged: l'utilisateur tente de distribuer un article, mais l'appareil est bloqué.
  • deviceBusy: l'utilisateur tente de distribuer un article, mais l'appareil est occupé (générique).

EXCEPTIONS D'APPAREIL

Ces exceptions peuvent être signalées en tant que exceptionCode dans l'objet states de votre réponse:

  • amountRemainingLow : l'utilisateur distribue un article ou une quantité à partir de l'appareil, ce qui réduit la quantité restante. Il vous incombe de définir ce qui constitue un niveau "bas".
  • userNeedsToWait : lorsque l'utilisateur doit attendre avant de pouvoir distribuer l'article ou la quantité demandé (par exemple, un robinet va distribuer de l'eau chaude, mais l'utilisateur doit attendre que l'eau chauffe avant de commencer à la distribuer).