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 :
|
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 |
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 |
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 |
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 |
amount |
Number |
Obligatoire. Montant à distribuer. |
unit |
Chaîne |
Obligatoire. Unité pour |
Distribuer selon le préréglage.
Paramètres | Type | Description |
---|---|---|
presetName |
Chaîne |
Obligatoire. Nom du préréglage à distribuer, provenant de l'attribut |
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 etsupported_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).