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 :
|
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 |
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 |
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 |
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 |
amount |
Number |
Obligatoire. Montant à distribuer. |
unit |
String |
Obligatoire. Unité de |
Distribuer en fonction du 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
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).