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:

CENTIMETERS
CUPS
DECILITERS
FLUID_OUNCES
GALLONS
GRAMS
KILOGRAMS
LITERS
MILLIGRAMS
MILLILITERS
MILLIMETERS
NO_UNITS
OUNCES
PINCH
PINTS
PORTION
POUNDS
QUARTS
TABLESPOONS
TEASPOONS
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 item_name.

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 amount aus dem Attribut supported_units.

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 amount aus dem Attribut supported_units.

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 item_name.

amount Number

Erforderlich.

Auszugebende Menge.

unit String

Erforderlich.

Einheit für amount aus dem Attribut supported_units.

Nach Voreinstellung ausgeben.

Parameter Typ Beschreibung
presetName String

Erforderlich.

Name der Voreinstellung, die ausgegeben werden soll, aus dem Attribut preset_name.

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, sodass supported_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.