Schema für Smart-Home-Spenden
action.devices.traits.Dispense
: Diese Eigenschaft gilt für Geräte, auf denen die Abgabe einer bestimmten Menge eines oder mehrerer physischer Artikel unterstützt wird.
Mit dieser Eigenschaft wird auch die Abgabe einer Voreinstellung ermöglicht, z. B. eine „Katzenschale“ für einen Futterspender oder ein „Glas“ für einen Wasserhahn.
Geräte-ATTRIBUTE
Geräte mit diesem Merkmal können im Rahmen des SYNC
-Vorgangs die folgenden Attribute melden. Weitere Informationen zum Verarbeiten von SYNC
-Intents finden Sie unter Intent-Auftragsausführung.
Attribute | Typ | Beschreibung |
---|---|---|
supportedDispenseItems |
Array |
Enthält Informationen zu allen Artikeln, die vom Gerät ausgegeben werden können |
[item, ...] |
Objekt |
Gibt den Artikel aus. |
item_name |
String |
Erforderlich. Interner Name für den ausgegebenen Artikel. Das Spiel kann nicht nutzerfreundlich sein und wird in allen Sprachen verwendet. |
item_name_synonyms |
Array |
Erforderlich. Synonyme für die Ausgaben in jeder unterstützten Sprache. |
[item, ...] |
Objekt |
Synonyme für den ausgegebenen Artikel in einer bestimmten Sprache. |
synonyms |
Array |
Erforderlich. Synonyme für den ausgegebenen Artikel. Sie sollten sowohl die Singular- als auch die Pluralform enthalten, sofern zutreffend. Der erste String in dieser Liste muss das Plural des Artikels in dieser Sprache sein. |
[item, ...] |
String |
Synonym name |
lang |
String |
Erforderlich. Sprachcode (ISO 639-1). Siehe unterstützte Sprachen |
supported_units |
Array |
Erforderlich. Einheiten, die vom Gerät für diesen Artikel unterstützt werden |
[item, ...] |
String |
Unterstützte Einheiten. Unterstützte Werte:
|
default_portion |
Objekt |
Erforderlich. Typische Menge des Artikels, der möglicherweise ausgegeben wird. |
amount |
Ganzzahl |
Erforderlich. Der Betrag wird ausgegeben. |
unit |
String |
Erforderlich. Dosierte Einheit. |
supportedDispensePresets |
Array |
Voreinstellungen, die vom Gerät unterstützt werden |
[item, ...] |
Objekt |
Voreinstellung. |
preset_name |
String |
Erforderlich. Interner Name für die Voreinstellung. Dieser Name ist für Nutzer unter Umständen nicht nutzerfreundlich und wird in allen Sprachen verwendet. |
preset_name_synonyms |
Array |
Erforderlich. Synonyme für die Voreinstellung in jeder unterstützten Sprache. |
[item, ...] |
Objekt |
Synonyme für die Voreinstellung in einer bestimmten Sprache. |
synonyms |
Array |
Erforderlich. Synonyme für die Voreinstellung. Die Synonyme sollten sowohl die Singular- als auch die Pluralform enthalten, sofern zutreffend. |
[item, ...] |
String |
Synonym name |
lang |
String |
Erforderlich. Sprachcode (ISO 639-1). Siehe unterstützte Sprachen |
Beispiele
Wasserspender, der Flüssigkeiten mit Voreinstellungen unterstützt.
{ "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" ] } ] } ] }
Der Futterspender für Tiere 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ätestatus
Entitäten mit diesem Merkmal können im Rahmen des QUERY
-Vorgangs die folgenden Status melden: Weitere Informationen zum Verarbeiten von QUERY
-Intents finden Sie unter Intent-Auftragsausführung.
Bundesstaaten | Typ | Beschreibung |
---|---|---|
dispenseItems |
Array |
Status der Geräte, die das Gerät ausgeben kann. |
[item, ...] |
Objekt |
Status eines bestimmten Elements. |
itemName |
String |
Name des Artikels aus dem Attribut |
amountRemaining |
Objekt |
Menge dieses Artikels auf dem Gerät. Wenn die Ausgaben des Geräts gerade ausgegeben werden, wird der verbleibende Betrag oder der entsprechende Betrag angezeigt, sobald der Betrag ausgegeben wurde. |
amount |
Number |
Verbleibender Betrag |
unit |
String |
Einheit für die |
amountLastDispensed |
Objekt |
Menge des Artikels, der zuletzt vom Gerät ausgegeben wurde. Wenn das Gerät gerade Inhalte ausgibt, sollte der Betrag ausgegeben werden, der vor dem aktuellen Betrag ausgegeben wurde. |
amount |
Number |
Verbleibender Betrag |
unit |
String |
Einheit für die |
isCurrentlyDispensing |
Boolesch |
Gibt an, ob das Gerät diesen Artikel gerade ausgibt. |
Beispiele
Wie viele Hundeleckerli sind in meinem Spender übrig?
{ "dispenseItems": [ { "itemName": "Dog treats", "amountRemaining": { "amount": 83, "unit": "NO_UNITS" }, "amountLastDispensed": { "amount": 2, "unit": "NO_UNITS" }, "isCurrentlyDispensing": false } ] }
Wie viel Wasser verbleibt in meinem Wasserkühler?
{ "dispenseItems": [ { "itemName": "Water", "amountRemaining": { "amount": 6.2, "unit": "GALLONS" }, "amountLastDispensed": { "amount": 1, "unit": "CUPS" }, "isCurrentlyDispensing": false } ] }
Wie viel Katzenfutter habe ich vorher gegeben?
{ "dispenseItems": [ { "itemName": "cat_food", "amountRemaining": { "amount": 16.5, "unit": "CUPS" }, "amountLastDispensed": { "amount": 2.5, "unit": "CUPS" }, "isCurrentlyDispensing": false } ] }
Wird der Wasserhahn immer noch Wasser ausgegeben?
{ "dispenseItems": [ { "itemName": "Water", "isCurrentlyDispensing": true } ] }
Die Messwerte amountRemaining
und amountLastDispensed
müssen nur mit einer einzigen Maßeinheit angegeben werden.
Im dispenseItems
-Array können mehrere Elemente angegeben werden.
Jeder Elementname muss eindeutig sein und muss einem Element im Attribut supportedDispenseItems
entsprechen.
BEISPIELE für Geräte
Geräte mit diesem Merkmal können im Rahmen des EXECUTE
-Vorgangs auf die folgenden Befehle reagieren. Weitere Informationen zum Verarbeiten von EXECUTE
-Intents finden Sie unter Intent-Auftragsausführung.
action.devices.commands.Dispense
Artikel ausgeben.
Parameter
Die Nutzlast enthält eine der folgenden Optionen:
Ausgaben:
Parameter | Typ | Beschreibung |
---|---|---|
item |
String |
Der Name des Artikels, der über das Attribut |
amount |
Number |
Erforderlich. Ausgaben. |
unit |
String |
Erforderlich. Einheit für die |
Gibt standardmäßig aus.
Parameter | Typ | Beschreibung |
---|---|---|
presetName |
String |
Erforderlich. Name der Voreinstellung, die mit 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 den Wassernapf für die Katze.
{ "command": "action.devices.commands.Dispense", "params": { "presetName": "cat_bowl" } }
Wasser ausgeben.
{ "command": "action.devices.commands.Dispense", "params": {} }
Gerät ERRORS
Hier finden Sie die vollständige Liste der Fehler und Ausnahmen.dispenseAmountRemainingExceeded
: Der Nutzer hat versucht, einen Artikel oder ein Betrag von einem Gerät auszugeben, auf dem nicht genug Guthaben vorhanden ist.dispenseAmountAboveLimit
: Der Nutzer hat versucht, einen Betrag auszugeben, der über die Anforderungen in einer einzelnen Abfrage hinausgeht. So wird verhindert, dass versehentlich eine übermäßige Menge ausgegeben wird (z. B. 500.000 Tassen Wasser).dispenseAmountBelowLimit
: Der Nutzer hat versucht, einen Artikel oder einen Betrag vom Gerät auszugeben, das unter dem Mindestbetrag liegt.dispenseFractionalAmountNotSupported
: Der Nutzer hat versucht, einen Bruchteil eines Artikels auszugeben, den das Gerät nicht teilen kann (z. B. wenn zählbare Elemente wie Hundeleckerli vom Gerät nicht teilbar sind).genericDispenseNotSupported
: Der Nutzer versucht, ein Gerät auszugeben, ohne ein Element oder eine Voreinstellung anzugeben, aber das Gerät unterstützt eine solche Funktion nicht (z. B. eine Standardaktion).dispenseUnitNotSupported
: Der Nutzer versucht, von einem Gerät auszugeben, dessen Einheit nicht für diesen Fall unterstützt wird. Das Element wurde beispielsweise nicht bereitgestellt, sodasssupported_unit validation
übersprungen wurde.dispenseFractionalUnitNotSupported
: Der Nutzer hat versucht, einen Bruchteil eines Artikels auszugeben, der aufgeteilt werden kann, jedoch nicht für die angegebene Einheit (z.B.kann ein Wasserhahn 2,7 Tassen und nicht 2,7 ml ausgeben).deviceCurrentlyDispensing
: Der Nutzer versucht, einen Artikel auszugeben, aber das Gerät gibt ihn bereits aus.deviceClogged
: Der Nutzer versucht, einen Artikel auszugeben, aber das Gerät ist verstopft.deviceBusy
: Der Nutzer versucht, einen Artikel zu verteilen, aber das Gerät ist nicht bereit.
AUSNAHMEN FÜR DAS Gerät
Diese Ausnahmen können als exceptionCode
im states
-Objekt deiner Antwort gemeldet werden:
amountRemainingLow
: Der Nutzer gibt einen Artikel oder einen Betrag vom Gerät aus, wodurch der verbleibende Betrag auf ein niedriges Niveau gebracht wird. Sie sind dafür verantwortlich, eine „niedrige“ Ebene zu definieren.userNeedsToWait
: Wenn der Nutzer warten muss, bis das angeforderte Element oder die Menge erfolgreich ausgegeben werden kann (z. B. gibt ein Wasserhahn Warmwasser ab, muss aber warten, bis das Wasser erhitzt ist, bevor er beginnt).