Schéma de trait de distribution pour la maison connectée
action.devices.traits.Dispense
: cette caractéristique appartient aux appareils qui permettent de distribuer une quantité spécifiée d'un ou de plusieurs articles physiques.
Cette caractéristique permet également de distribuer un préréglage, par exemple une "gamelle pour chat" pour un distributeur de nourriture pour animaux de compagnie ou un "verre" pour un robinet.
ATTRIBUTS de l'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 |
Élément jetable. |
item_name |
String |
Obligatoire. Nom interne de l'article distribué. Cette approche peut ne pas être conviviale et est commune dans toutes les langues. |
item_name_synonyms |
Array |
Obligatoire. Noms des synonymes des produits distribués dans chaque langue compatible. |
[item, ...] |
Objet |
Noms synonymes de l'article distribué dans une langue donnée. |
synonyms |
Array |
Obligatoire. Noms synonymes de l'article distribué. Les synonymes doivent inclure les formes au singulier et au pluriel, le cas échéant. La première chaîne de cette liste doit être la forme au pluriel de l'élément dans cette langue. |
[item, ...] |
String |
Synonyme |
lang |
String |
Obligatoire. Code de langue (ISO 639-1) Consultez la liste des langues acceptées. |
supported_units |
Array |
Obligatoire. Ensemble d'unités acceptées par l'appareil pour cet élément. |
[item, ...] |
String |
Unités acceptées Valeurs acceptées :
|
default_portion |
Objet |
Obligatoire. Quantité typique de l'article pouvant être distribuée. |
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 peut ne pas être convivial et est partagé dans toutes les langues. |
preset_name_synonyms |
Array |
Obligatoire. Noms synonymes du préréglage dans chaque langue prise en charge. |
[item, ...] |
Objet |
Noms synonymes du préréglage dans une langue donnée. |
synonyms |
Array |
Obligatoire. Noms synonymes du préréglage. Les synonymes doivent inclure les formes au singulier et au pluriel, le cas échéant. |
[item, ...] |
String |
Synonyme |
lang |
String |
Obligatoire. Code de langue (ISO 639-1) Consultez la liste des langues acceptées. |
Exemples
Distributeur d'eau compatible avec les unités de liquides avec 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 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" } } ] }
ÉTATS DE L'APPAREIL
Les entités avec 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 article donné. |
itemName |
String |
Nom de l'élément de l'attribut |
amountRemaining |
Objet |
Quantité restante de cet élément sur l'appareil. Si l'appareil est en train de distribuer du produit, le montant restant ou le montant qui sera distribué une fois la distribution terminée est indiqué. |
amount |
Number |
Montant restant |
unit |
String |
Unité pour le |
amountLastDispensed |
Objet |
Quantité de cet article distribué le plus récemment par l'appareil. Si l'appareil est en cours de distribution, la quantité d'eau distribuée avant la quantité actuelle doit être indiquée. |
amount |
Number |
Montant restant |
unit |
String |
Unité pour le |
isCurrentlyDispensing |
Valeur booléenne |
Indique si l'appareil distribue actuellement cet article. |
Exemples
Combien de friandises pour chien restent-elles 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 mon distributeur d'eau ?
{ "dispenseItems": [ { "itemName": "Water", "amountRemaining": { "amount": 6.2, "unit": "GALLONS" }, "amountLastDispensed": { "amount": 1, "unit": "CUPS" }, "isCurrentlyDispensing": false } ] }
Quelle quantité de nourriture pour chats donnais-je auparavant ?
{ "dispenseItems": [ { "itemName": "cat_food", "amountRemaining": { "amount": 16.5, "unit": "CUPS" }, "amountLastDispensed": { "amount": 2.5, "unit": "CUPS" }, "isCurrentlyDispensing": false } ] }
Le robinet distribue-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.
Vous pouvez fournir plusieurs éléments dans le tableau dispenseItems
.
Chaque nom d'élément doit être unique et correspondre à un élément de l'attribut supportedDispenseItems
.
COMMANDES DE L'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
Distribuer des articles.
Paramètres
La charge utile contient l'un des éléments suivants :
Distribuez le montant.
Paramètres | Type | Description |
---|---|---|
item |
String |
Nom de l'article à distribuer, issu de l'attribut |
amount |
Number |
Obligatoire. Montant à distribuer. |
unit |
String |
Obligatoire. Unité pour le |
Distribution par préréglage.
Paramètres | Type | Description |
---|---|---|
presetName |
String |
Obligatoire. Nom du préréglage à distribuer, à partir de l'attribut |
Distribution 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 le bol d'eau du chat.
{ "command": "action.devices.commands.Dispense", "params": { "presetName": "cat_bowl" } }
Versez de l'eau.
{ "command": "action.devices.commands.Dispense", "params": {} }
ERREURS de l'appareil
Consultez la liste complète des erreurs et exceptions.dispenseAmountRemainingExceeded
: l'utilisateur a tenté de distribuer un élément 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 distribuer 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 dont la quantité est inférieure à la quantité minimale qu'il peut distribuer.dispenseFractionalAmountNotSupported
: l'utilisateur a tenté de distribuer une quantité fractionnaire d'un élément que l'appareil ne peut pas diviser (par exemple, les éléments dénombrables tels que les friandises pour chien ne peuvent pas être divisibles par l'appareil).genericDispenseNotSupported
: l'utilisateur tente de distribuer un produit à 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 un article à partir d'un appareil avec une unité non compatible dans ce cas (par exemple, l'article n'est pas fourni, doncsupported_unit validation
a été ignoré).dispenseFractionalUnitNotSupported
: l'utilisateur a essayé de distribuer une quantité fractionnaire d'un élément pouvant être divisé, mais pas pour l'unité spécifique spécifiée (par exemple, un robinet peut 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 de le faire.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 concernant les appareils
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 une quantité à partir de l'appareil, ce qui ramène la quantité restante à un niveau faible. Vous êtes responsable de définir ce qui constitue un niveau "faible".userNeedsToWait
: lorsque l'utilisateur doit attendre avant que l'objet ou la quantité demandés puissent être distribués (par exemple, un robinet distribue de l'eau chaude, mais l'utilisateur doit attendre que l'eau chauffe avant de commencer à verser de l'eau).