Schema für Smart Bidding für Smart Home
action.devices.traits.Dispense
: Diese Eigenschaft gehört zu Geräten, die die Ausgabe bestimmter Produkte unterstützen.
Diese Eigenschaft unterstützt auch die Ausgabe einer Voreinstellung, z. B. „Katzenfutter“ für einen Futterspender oder „Glas“ für einen Wasserhahn.
Gerät ATTRIBUTE
Geräte mit diesem Attribut können im Rahmen des Vorgangs SYNC
die folgenden Attribute melden. Weitere Informationen zum Umgang mit SYNC
-Intents finden Sie unter Intent-Auftragsausführung.
Attribute | Typ | Beschreibung |
---|---|---|
supportedDispenseItems |
Array |
Enthält Informationen zu allen Elementen, die das Gerät ausgeben kann. |
[item, ...] |
Objekt |
Der Artikel ist kostenlos. |
item_name |
String |
Erforderlich. Interner Name für den ausgegebenen Artikel. Diese Funktion kann nicht nutzerfreundlich sein und wird in allen Sprachen verwendet. |
item_name_synonyms |
Array |
Erforderlich. Synonyme für die in jeder unterstützten Sprache ausgegebenen Synonyme |
[item, ...] |
Objekt |
Synonyme für das ausgegebene Element in einer bestimmten Sprache. |
synonyms |
Array |
Erforderlich. Synonymnamen für die ausgegebenen Elemente. Die Synonyme sollten sowohl Singular- als auch Pluralformen enthalten, falls zutreffend. 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) Siehe unterstützte Sprachen. |
supported_units |
Array |
Erforderlich. Einheiten, die das Gerät für diesen Artikel unterstützt |
[item, ...] |
String |
Unterstützte Einheiten. Unterstützte Werte:
|
default_portion |
Objekt |
Erforderlich. Üblicher Wert des Artikels, der möglicherweise ausgegeben wird. |
amount |
Ganzzahl |
Erforderlich. Abgegebener Betrag. |
unit |
String |
Erforderlich. Ausgabeeinheit. |
supportedDispensePresets |
Array |
Vom Gerät unterstützte Voreinstellungen. |
[item, ...] |
Objekt |
Voreingestellt. |
preset_name |
String |
Erforderlich. Interner Name für die Voreinstellung. Dieser Name kann nicht nutzerfreundlich sein und wird in allen Sprachen verwendet. |
preset_name_synonyms |
Array |
Erforderlich. Synonymnamen für die Voreinstellung in jeder unterstützten Sprache. |
[item, ...] |
Objekt |
Synonyme für die Voreinstellung in einer bestimmten Sprache. |
synonyms |
Array |
Erforderlich. Synonymnamen für die Voreinstellung. Die Synonyme sollten sowohl Singular- als auch Pluralformen enthalten, falls 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" ] } ] } ] }
Spender für Tiernahrung 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
Geräte mit diesem Attribut können im Rahmen des Vorgangs QUERY
die folgenden Zustände 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 |
Betrag dieses Artikels auf dem Gerät. Wenn das Gerät gerade eine Ausgabe macht, wird der verbleibende Betrag oder der Betrag angezeigt, der nach der Ausgabe des Geräts ausgegeben wird. |
amount |
Number |
Verbleibender Betrag |
unit |
String |
Einheit für |
amountLastDispensed |
Objekt |
Der Betrag, den das Gerät zuletzt ausgegeben hat Wenn das Gerät gerade ausgegeben wird, sollte der Betrag ausgegeben werden, den er vor der aktuellen Ausgabe ausgegeben hat. |
amount |
Number |
Verbleibender Betrag |
unit |
String |
Einheit für |
isCurrentlyDispensing |
Boolesch |
Gibt an, ob das Gerät diesen Artikel gerade ausgibt. |
Beispiele
Wie viele Leckereien für Hunde habe ich noch in meiner Tasse?
{ "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 zuvor gegeben?
{ "dispenseItems": [ { "itemName": "cat_food", "amountRemaining": { "amount": 16.5, "unit": "CUPS" }, "amountLastDispensed": { "amount": 2.5, "unit": "CUPS" }, "isCurrentlyDispensing": false } ] }
Läuft der Wasserhahn noch Wasser aus?
{ "dispenseItems": [ { "itemName": "water", "isCurrentlyDispensing": true } ] }
amountRemaining
und amountLastDispensed
müssen nur mit einer einzigen Maßeinheit erfasst werden.
Innerhalb des dispenseItems
-Arrays können mehrere Elemente angegeben werden.
Jeder Elementname muss eindeutig sein und einem Element im Attribut supportedDispenseItems
entsprechen.
Gerätebefehle
Geräte mit diesem Attribut können im Rahmen des Vorgangs EXECUTE
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 einen der folgenden Werte:
Nach Betrag ausgeben.
Parameter | Typ | Beschreibung |
---|---|---|
item |
String |
Name des Artikels, der aus dem Attribut |
amount |
Number |
Erforderlich. Auszugebender Betrag. |
unit |
String |
Erforderlich. Einheit für |
Über 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" } }
Gib Wasser aus.
{ "command": "action.devices.commands.Dispense", "params": {} }
Gerät ERRORS
Vollständige Liste der Fehler und AusnahmendispenseAmountRemainingExceeded
: Der Nutzer hat versucht, einen Artikel oder einen Betrag von einem Gerät auszugeben, auf dem nicht genügend Guthaben vorhanden ist.dispenseAmountAboveLimit
: Der Nutzer hat versucht, einen Betrag auszugeben, der über das hinausgeht, was er in einer einzelnen Abfrage abfragen kann. So soll verhindert werden, dass zu viel (z. B. 500.000 Tassen Wasser) ausgegeben wird.dispenseAmountBelowLimit
: Der Nutzer hat versucht, einen Artikel oder eine Menge von dem Gerät auszugeben, der unter dem Mindestbetrag liegt, den er ausgeben kann.dispenseFractionalAmountNotSupported
: Der Nutzer hat versucht, einen Bruchteil eines Artikels auszugeben, den das Gerät nicht teilen kann. So können beispielsweise zählbare Elemente wie Hundeleckerli vom Gerät nicht teilbar sein.genericDispenseNotSupported
: Der Nutzer versucht, von einem Gerät auszugeben, ohne ein Element oder eine Voreinstellung anzugeben. Das Gerät unterstützt jedoch keine solche Funktionalität (z. B. die Standardaktion).dispenseUnitNotSupported
: Der Nutzer versucht, von einem Gerät auszugeben, dessen Einheit in diesem Fall nicht unterstützt wird (z. B. weil das Element nicht bereitgestellt wurde, sodasssupported_unit validation
übersprungen wurde).dispenseFractionalUnitNotSupported
: Der Nutzer hat versucht, einen Bruchteil eines Artikels auszugeben, der aufgeteilt werden kann, aber nicht für die angegebene Einheit (z.B.kann ein Wasserhahn 2,7 Tassen ausgeben, aber nicht 2,7 ml).deviceCurrentlyDispensing
: Der Nutzer versucht, ein Element auszugeben, das Gerät gibt aber bereits etwas aus.deviceClogged
: Der Nutzer versucht, einen Artikel auszugeben, das Gerät ist jedoch verstopft.deviceBusy
: Der Nutzer versucht, einen Artikel auszugeben, das Gerät ist jedoch nicht verfügbar.
Geräteausnahmen
Diese Ausnahmen können im Objekt states
Ihrer Antwort als exceptionCode
gemeldet werden:
amountRemainingLow
: Der Nutzer gibt einen Artikel oder einen Betrag vom Gerät aus, sodass der verbleibende Betrag niedrig ist. Es liegt in Ihrer Verantwortung, festzulegen, was als „niedrig“ eingestuft wird.userNeedsToWait
: Wenn der Nutzer warten muss, bis das angeforderte Element oder der Betrag erfolgreich ausgegeben werden kann (z. B. gibt ein Wasserhahn Warmwasser ab, muss aber erst auf die Erwärmung des Wassers warten, bevor es beginnt)