Schéma de distribution de la maison connectée

action.devices.traits.Dispense : cette caractéristique est associée aux appareils qui permettent de distribuer un ou plusieurs articles physiques spécifiés.

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

ATTRIBUTS de l'appareil

Les appareils disposant de cette caractéristique peuvent signaler les attributs suivants lors de l'opération SYNC. Pour en savoir plus sur la gestion des intents SYNC, consultez Traitement des intents.

Attributs Type Description
supportedDispenseItems Array

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

[item, ...] Objet

Article jetable.

item_name String

Obligatoire.

Nom interne de l'article distribué. Il n'est pas facile à utiliser et est partagé dans toutes les langues.

item_name_synonyms Array

Obligatoire.

Noms de synonymes disponibles pour chaque langue acceptée.

[item, ...] Objet

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

synonyms Array

Obligatoire.

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

[item, ...] String

Nom du synonyme

lang String

Obligatoire.

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

supported_units Array

Obligatoire.

Unités acceptées par l'appareil pour cet article.

[item, ...] String

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é type de l'article pouvant être distribué.

amount Entier

Obligatoire.

Montant distribué.

unit String

Obligatoire.

Unité distribuée.

supportedDispensePresets Array

Préréglages compatibles avec l'appareil.

[item, ...] Objet

Préréglage

preset_name String

Obligatoire.

Nom interne du préréglage. Ce nom n'est pas facile à utiliser et est partagé dans toutes les langues.

preset_name_synonyms Array

Obligatoire.

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

[item, ...] Objet

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

synonyms Array

Obligatoire.

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

[item, ...] String

Nom du synonyme

lang String

Obligatoire.

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

Exemples

Distributeur d'eau compatible avec les liquides avec 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 d'aliments pour animaux sans préréglages.

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

Appareil 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 Traitement des intents.

États Type Description
dispenseItems Array

États des articles que l'appareil peut distribuer.

[item, ...] Objet

État d'un article donné.

itemName String

Nom de l'article provenant de l'attribut item_name

amountRemaining Objet

Quantité restante de l'appareil sur l'appareil. Si l'appareil distribue actuellement de la nourriture, le montant restant est indiqué ou affiché une fois la distribution terminée.

amount Number

Montant restant

unit String

Unité de amount de l'attribut supported_units.

amountLastDispensed Objet

Quantité de cet article que l'appareil a récemment distribuée. Si l'appareil distribue actuellement du contenu, cette valeur doit être affichée avant le montant actuel.

amount Number

Montant restant

unit String

Unité de amount de l'attribut supported_units.

isCurrentlyDispensing Booléen

Indique si l'appareil distribue actuellement cet article.

Exemples

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

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

Combien d'eau reste-t-il dans ma glacière ?

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

Combien de nourriture pour chats ai-je donnés auparavant ?

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

Le robinet diffuse-t-il toujours de l'eau ?

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

amountRemaining et amountLastDispensed ne doivent être indiqués qu'avec une seule unité de mesure.

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

Appareil COMMANDS

Les appareils disposant 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 Traitement des intents.

action.devices.commands.Dispense

Distribuez des articles.

Paramètres

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

Répartir par montant.

Paramètres Type Description
item String

Nom de l'article à distribuer, indiqué dans l'attribut item_name.

amount Number

Obligatoire.

Montant à distribuer.

unit String

Obligatoire.

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

Distribuer en fonction du préréglage

Paramètres Type Description
presetName String

Obligatoire.

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

Distribution sans paramètres

Paramètres Type Description

Aucune propriété

Exemples

Laissez-moi une tasse d'eau

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

Remplissez le bol d'eau du chat.

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

Distribuer 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 élément ou une quantité depuis un appareil qui n'a pas assez de quantité.
  • dispenseAmountAboveLimit: l'utilisateur a tenté de distribuer un montant supérieur à ce qu'il peut demander en une seule requête. Cela permet d'éviter de distribuer une quantité excessive (par exemple, 500 000 tasses d'eau).
  • dispenseAmountBelowLimit: l'utilisateur a tenté de distribuer un élément ou un montant inférieur à la quantité minimale autorisée depuis l'appareil.
  • dispenseFractionalAmountNotSupported: l'utilisateur a tenté de distribuer une fraction d'un élément que l'appareil ne peut pas diviser (par exemple, les éléments dénombrables comme les friandises pour chien peuvent ne pas être divisibles par l'appareil).
  • genericDispenseNotSupported: l'utilisateur tente d'effectuer une distribution depuis un appareil sans spécifier d'élément ni de préréglage, mais cet appareil n'est pas compatible avec cette fonctionnalité (par exemple, une action de distribution par défaut).
  • dispenseUnitNotSupported: l'utilisateur tente de distribuer depuis un appareil doté d'une unité non compatible (par exemple, l'élément n'est pas fourni, supported_unit validation a donc été ignoré).
  • dispenseFractionalUnitNotSupported: l'utilisateur a tenté de distribuer une fraction d'un élément qui peut être divisé, mais pas pour l'unité spécifique spécifiée (par exemple, un robinet peut diffuser 2,7 tasses, mais pas 2,7 mL).
  • deviceCurrentlyDispensing: l'utilisateur tente de distribuer un article, mais l'appareil le fait déjà.
  • 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).

Appareils EXCEPTIONS

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

  • amountRemainingLow : l'utilisateur distribue un élément ou un montant de l'appareil, ce qui fait passer le montant restant au niveau inférieur. Vous êtes responsable de la définition d'un niveau "faible".
  • userNeedsToWait : moment auquel l'utilisateur doit attendre avant de pouvoir distribuer l'élément ou la quantité demandé (par exemple, un robinet verse de l'eau chaude, mais l'utilisateur doit attendre que l'eau chauffe).