Schema der Smart-Home-Ausgabe
action.devices.traits.Dispense
: Diese Eigenschaft gehört zu Geräten, die die Ausgabe einer bestimmten Menge eines oder mehrerer physischer Gegenstände unterstützen.
Diese Trait unterstützt auch die Ausgabe einer Voreinstellung, z. B. als „Katzenfutternapf“ für einen Futternapf oder als „Glas“ für einen Wasserhahn.
Geräte-ATTRIBUTE
Geräte mit dieser Eigenschaft melden möglicherweise die folgenden Attribute im Rahmen des SYNC
-Vorgangs. Weitere Informationen zum Umgang mit SYNC
-Intents finden Sie unter Intent-Auftragsausführung.
Attribute | Typ | Beschreibung |
---|---|---|
supportedDispenseItems |
Array |
Enthält Informationen zu allen Artikeln, die mit dem Gerät ausgegeben werden können. |
[item, ...] |
Objekt |
Ein lieferbarer Artikel. |
item_name |
String |
Erforderlich. Interner Name für den ausgegebenen Artikel. Diese Option ist möglicherweise nicht nutzerfreundlich und wird für alle Sprachen verwendet. |
item_name_synonyms |
Array |
Erforderlich. Synonymnamen für die Ausgabe in den einzelnen unterstützten Sprachen. |
[item, ...] |
Objekt |
Synonymnamen für den ausgegebenen Artikel in einer bestimmten Sprache. |
synonyms |
Array |
Erforderlich. Synonymnamen für den ausgegebenen Artikel. Sie sollten gegebenenfalls sowohl Singular- als auch Pluralformen umfassen. Der erste String in dieser Liste muss die Pluralform des Elements in dieser Sprache sein. |
[item, ...] |
String |
Synonym name |
lang |
String |
Erforderlich. Sprachcode (ISO 639-1). Weitere Informationen zu unterstützten Sprachen |
supported_units |
Array |
Erforderlich. Satz von Einheiten, die das Gerät für diesen Artikel unterstützt. |
[item, ...] |
String |
Unterstützte Einheiten. Unterstützte Werte:
|
default_portion |
Objekt |
Erforderlich. Übliche Menge des Artikels, die ausgegeben werden kann. |
amount |
Ganzzahl |
Erforderlich. Ausgegebener Betrag. |
unit |
String |
Erforderlich. Ausgegebene Einheit. |
supportedDispensePresets |
Array |
Vom Gerät unterstützte Voreinstellungen. |
[item, ...] |
Objekt |
Voreinstellung. |
preset_name |
String |
Erforderlich. Interner Name für die Voreinstellung. Dieser Name ist möglicherweise nicht nutzerfreundlich und wird für alle Sprachen verwendet. |
preset_name_synonyms |
Array |
Erforderlich. Synonymnamen für die Voreinstellung in den einzelnen unterstützten Sprachen. |
[item, ...] |
Objekt |
Synonymnamen für die Voreinstellung in einer bestimmten Sprache. |
synonyms |
Array |
Erforderlich. Synonymnamen für die Voreinstellung. Die Synonyme sollten gegebenenfalls sowohl Singular- als auch Pluralformen umfassen. |
[item, ...] |
String |
Synonym name |
lang |
String |
Erforderlich. Sprachcode (ISO 639-1). Weitere Informationen zu unterstützten Sprachen |
Beispiele
Wasserspender mit voreingestellten Einheiten für Flüssigkeiten
{ "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" ] } ] } ] }
Futterspender für Haustiere ohne Voreinstellungen.
{ "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" } } ] }
Gerät STATES
Entitäten mit diesem Trait können die folgenden Status im Rahmen des QUERY
-Vorgangs melden. Weitere Informationen zum Umgang mit QUERY
-Intents finden Sie unter Intent-Auftragsausführung.
Bundesstaaten | Typ | Beschreibung |
---|---|---|
dispenseItems |
Array |
Status der Artikel, die das Gerät ausgeben kann. |
[item, ...] |
Objekt |
Status eines bestimmten Elements. |
itemName |
String |
Name des Artikels aus dem Attribut |
amountRemaining |
Objekt |
Restguthaben des Geräts Wenn gerade etwas ausgegeben wird, wird hier die verbleibende Menge oder die Menge angezeigt, die nach dem Abgeben noch übrig ist. |
amount |
Number |
Verbleibender Betrag |
unit |
String |
Einheit für |
amountLastDispensed |
Objekt |
Menge des Artikels, die zuletzt vom Gerät ausgegeben wurde. Wenn das Gerät gerade abgibt, sollte hier die Menge vor der aktuellen Ausgabe angegeben werden. |
amount |
Number |
Verbleibender Betrag |
unit |
String |
Einheit für |
isCurrentlyDispensing |
Boolesch |
Gibt an, ob das Gerät diesen Artikel gerade ausgibt. |
Beispiele
Wie viele Hundeleckerlis sind noch in meinem Spender?
{ "dispenseItems": [ { "itemName": "Dog treats", "amountRemaining": { "amount": 83, "unit": "NO_UNITS" }, "amountLastDispensed": { "amount": 2, "unit": "NO_UNITS" }, "isCurrentlyDispensing": false } ] }
Wie viel Wasser ist noch in meinem Kühler?
{ "dispenseItems": [ { "itemName": "Water", "amountRemaining": { "amount": 6.2, "unit": "GALLONS" }, "amountLastDispensed": { "amount": 1, "unit": "CUPS" }, "isCurrentlyDispensing": false } ] }
Wie viel Katzenfutter habe ich zuvor verschenkt?
{ "dispenseItems": [ { "itemName": "cat_food", "amountRemaining": { "amount": 16.5, "unit": "CUPS" }, "amountLastDispensed": { "amount": 2.5, "unit": "CUPS" }, "isCurrentlyDispensing": false } ] }
Gibt der Wasserhahn immer noch Wasser aus?
{ "dispenseItems": [ { "itemName": "Water", "isCurrentlyDispensing": true } ] }
amountRemaining
und amountLastDispensed
müssen nur mit einer Maßeinheit gemeldet werden.
Im dispenseItems
-Array können mehrere Elemente angegeben werden.
Jeder Elementname muss eindeutig sein und einem Element im Attribut supportedDispenseItems
entsprechen.
BEFEHLUNGEN auf dem Gerät
Geräte mit dieser Eigenschaft können im Rahmen des EXECUTE
-Vorgangs auf die folgenden Befehle reagieren. Weitere Informationen zum Umgang mit EXECUTE
-Intents finden Sie unter Intent-Auftragsausführung.
action.devices.commands.Dispense
Artikel ausgeben.
Parameter
Die Nutzlast enthält eines der folgenden Elemente:
Nach Menge ausgeben.
Parameter | Typ | Beschreibung |
---|---|---|
item |
String |
Name des auszugebenden Artikels aus dem Attribut |
amount |
Number |
Erforderlich. Auszugebende Menge. |
unit |
String |
Erforderlich. Einheit für |
Nach Voreinstellung ausgeben.
Parameter | Typ | Beschreibung |
---|---|---|
presetName |
String |
Erforderlich. Name der Voreinstellung, die ausgegeben werden soll, aus dem Attribut |
Ohne Parameter ausgeben.
Parameter | Typ | Beschreibung |
---|---|---|
Keine Attribute |
Beispiele
Gib mir eine Tasse Wasser.
{ "command": "action.devices.commands.Dispense", "params": { "amount": 1, "unit": "CUPS", "item": "Water" } }
Fülle die Wasserschüssel für die Katze.
{ "command": "action.devices.commands.Dispense", "params": { "presetName": "cat_bowl" } }
Wasser abgeben
{ "command": "action.devices.commands.Dispense", "params": {} }
Gerät ERRORS
Sehen Sie sich die vollständige Liste der Fehler und Ausnahmen an.dispenseAmountRemainingExceeded
: Der Nutzer hat versucht, einen Artikel oder eine Menge von einem Gerät auszugeben, auf dem nicht genügend Menge übrig ist.dispenseAmountAboveLimit
: Der Nutzer hat versucht, einen Betrag auszugeben, der über die zulässigen Limits einer einzelnen Abfrage hinausgeht. Dadurch soll verhindert werden, dass versehentlich zu viel ausgegeben wird (z. B. 500.000 Tassen Wasser).dispenseAmountBelowLimit
: Der Nutzer hat versucht, vom Gerät einen Artikel oder eine Menge auszugeben, die unter dem Mindestbetrag liegt, den er ausgeben kann.dispenseFractionalAmountNotSupported
: Der Nutzer hat versucht, einen Teil eines Artikels auszugeben, den das Gerät nicht teilen kann (z. B. sind zählbare Artikel wie Hundeleckerlis möglicherweise nicht durch das Gerät teilbar).genericDispenseNotSupported
: Der Nutzer versucht, von einem Gerät auszugeben, ohne einen Artikel oder eine Voreinstellung anzugeben, aber das Gerät unterstützt diese Funktion nicht (z. B. eine Standardausgabeaktion).dispenseUnitNotSupported
: Der Nutzer versucht, von einem Gerät mit einer Einheit auszugeben, die für diesen Fall nicht unterstützt wird (z. B. weil der Artikel nicht zur Verfügung gestellt wird, sodasssupported_unit validation
übersprungen wurde).dispenseFractionalUnitNotSupported
: Der Nutzer hat versucht, eine kleine Menge eines Artikels auszugeben, der aufgeteilt werden kann, aber nicht für die angegebene Einheit (z.B.kann ein Wasserhahn 2,7 Tassen, aber nicht 2,7 ml ausgeben).deviceCurrentlyDispensing
: Der Nutzer versucht, einen Artikel auszugeben, aber das Gerät gibt bereits etwas aus.deviceClogged
: Der Nutzer versucht, einen Artikel auszugeben, aber das Gerät ist verstopft.deviceBusy
: Der Nutzer versucht, einen Artikel auszugeben, aber das Gerät ist überlastet.
Geräteausnahmen
Diese Ausnahmen können als exceptionCode
im states
-Objekt Ihrer Antwort gemeldet werden:
amountRemainingLow
: Der Nutzer gibt einen Artikel oder eine Menge vom Gerät aus, wodurch die verbleibende Menge auf einen niedrigen Wert sinkt. Was als „niedrige“ Ebene gilt, liegt in deiner Verantwortung.userNeedsToWait
: Der Nutzer muss warten, bevor der angeforderte Artikel oder die angeforderte Menge ausgegeben werden kann. Beispiel: Ein Wasserhahn gibt Warmwasser aus, der Nutzer muss jedoch warten, bis das Wasser erhitzt ist, bevor die Ausgabe beginnen kann.