Aufbewahrung zu Hause

In einem Webhook-Aufruf können Sie Parameterwerte über mehrere Sitzungen im selben Haushalt (basierend auf Home Graph) im Speicher zu Hause speichern. Deine Aktion kann diese gespeicherten Werte später in Prompts und Bedingungen verwenden und dein Webhook-Code kann bei Bedarf auf Werte im Speicher eines bestimmten Haushalts zugreifen.

Der Status des Speichers wird in einer app.handle()-Anfrage übergeben und im Objekt home gespeichert.

Beschränkungen

Der Smart-Home-Speicher kann nicht mit Mobilgeräten verwendet werden, da sie nicht Teil einer Grafik in der Home App sind. Verwenden Sie in Ihrem Webhook-Code die Gerätefunktion HOME_STORAGE, um die Geschäftslogik danach zu verzweigen, was das Gerät des Nutzers kann.

Du musst diese Funktion aktivieren, um den Speicher für dein Zuhause zu nutzen:

  1. Gehen Sie in der Actions Console zu Deploy > Directory information (Bereitstellen > Verzeichnisinformationen).
  2. Klicken Sie im Abschnitt Zusätzliche Informationen auf das Kästchen für Speicher für Zuhause.

Daten in einem Haushalt lesen und schreiben

Wenn Sie im Basisspeicher einen neuen Wert festlegen oder aktualisieren möchten, weisen Sie den Wert in einem Webhook-Aufruf dem Feld params des Objekts home zu. Im folgenden Beispiel wird „exampleColor“ im Speicher auf „red“ festgelegt:

Node.js

// Assign color to home storage
app.handle('storeColor', conv => {
  let color = 'red';
  conv.home.params.exampleColor = color;
});
    

JSON

{
  "responseJson": {
    "session": {
      "id": "1234567890123456789",
      "params": {}
    },
    "prompt": {
      "override": false
    },
    "home": {
      "params": {
        "exampleColor": "red"
      }
    }
  }
}
    

Für den Zugriff auf Daten im Home Storage weisen Sie diese einer Variablen in einem Webhook-Aufruf zu. Im folgenden Beispiel wird ein Wert aus "exampleColor" im Home-Speicher abgerufen:

Node.js

// Retrieve color from home storage
app.handle('getStoredColor', conv => {
  let color = conv.home.params.exampleColor;
});
    

JSON

{
  "responseJson": {
    "session": {
      "id": "1234567890123456789",
      "params": {}
    },
    "prompt": {
      "override": false
    },
    "home": {
      "params": {
        "homeColor": "red"
      }
    }
  }
}
    

Wenn Sie einen zuvor gespeicherten Wert löschen möchten, legen Sie den Wert in einem Webhook-Aufruf auf null fest. Im folgenden Beispiel wird der Wert von „exampleColor“ im Speicher für Zuhause gelöscht:

Node.js

// Clear color from home storage
app.handle('clearStoredColor', conv => {
  conv.home.params.exampleColor = null;
});
    

JSON


{
  "responseJson": {
    "session": {
      "id": "1234567890123456789",
      "params": {}
    },
    "prompt": {
      "override": false
    },
    "home": {
      "params": {}
    }
  }
}
    

Auf gespeicherte Werte in Prompts verweisen

Sie können in einer Aufforderung auf Werte verweisen, die im Speicher Ihres Zuhauses gespeichert sind. Verwenden Sie die $home.params.PARAMETER_NAME-Syntax, um auf den Wert zu verweisen. Dabei ist PARAMETER_NAME der Name, der im Webhook beim Festlegen des Parameters angegeben wurde.

Beispiel: Sie haben zuvor einen Farbwert im Home Storage als Parameter exampleColor gespeichert. Um in einer Eingabeaufforderung auf diesen Wert zuzugreifen, verweisen Sie mit $home.params.exampleColor auf diesen Wert:

JSON

{
  "candidates": [{
    "first_simple": {
      "variants": [{
        "speech": "Your favorite color is $home.params.exampleColor."
      }]
    }
  }]
}
    

Auf gespeicherte Werte innerhalb von Bedingungen verweisen

Unter conditions kannst du auch auf Werte verweisen, die im Speicher zu Hause gespeichert sind. Verwenden Sie die home.params.PARAMETER_NAME-Syntax, um auf den Wert zu verweisen. Dabei ist PARAMETER_NAME der Name, der im Webhook beim Festlegen des Parameters angegeben wurde.

Beispiel: Sie haben zuvor einen Farbwert im Home Storage als Parameter exampleColor gespeichert und möchten ihn mit dem Wert „red“ in einer Bedingung abgleichen. In der Bedingung verweisen Sie mit home.params.exampleColor auf den gespeicherten Wert. Ihr Bedingungsausdruck sieht dann so aus:

Bedingungssyntax

home.params.exampleColor == "red"
    

Ablauf der Speicherdaten für das Zuhause

Daten zum Smart-Home-Speicher werden nach 90 aufeinanderfolgenden Tagen gelöscht, wenn die Aktion nicht aufgerufen wird. Wenn Sie die Aktion auf einem Gerät aufrufen, das mit der Home Graph-Struktur verknüpft ist, wird der 90-Tage-Timer zurückgesetzt. Wenn eine Home Graph-Struktur gelöscht wird, werden die entsprechenden Speicherdaten gelöscht.

Bei Aktionen, die den Home-Speicher verwenden, können Home Graph-Strukturmanager den Basisspeicher für von ihnen verwaltete Gebäude über die Seite der Aktion im Assistant-Verzeichnis löschen:

  1. Wähle die Aktion aus, für die du deinen Nutzerspeicherplatz ansehen oder löschen möchtest.
  2. Scrollen Sie zum Ende der Seite:
    • Wenn Sie Daten entfernen möchten, die im Speicher Ihres Zuhauses gespeichert sind, klicken Sie auf Nicht mehr action_name daran erinnern.

Wenn der Manager eines Geräts die Verknüpfung mit der Struktur aufhebt, wird auch der Speicher des Zuhauses getrennt. Daten zum Speicher des Zuhauses sind auch dann mit einem Gerät verknüpft, wenn sich der Strukturmanager ändert, es sei denn, ein Strukturmanager löscht die Daten.

Speicherdaten zu Hause im Simulator

Wenn du deine Aktion mit dem Simulator in der Actions Console testest, verhalten sich die im Home Storage gespeicherten Daten etwas anders als auf einem physischen Gerät. Der Simulator ist Teil des eigenen Home Graphs, sodass die Daten nicht auf anderen Geräten in Ihrem Netzwerk gespeichert bleiben. Außerdem bleiben Speicherdaten zu Hause nicht sitzungsübergreifend erhalten, wenn die Simulatoreinstellung Unbestätigten Nutzer simulieren aktiviert ist.

Beispielinteraktion

Hier ein Beispiel für eine Interaktion eines angemeldeten Nutzers beim ersten Aufruf der Aktion:

User query Hey Google, sprich mit ExampleAction.
Antwort von Assistant ExampleAction wird abgerufen.
Antwort von Assistant Übrigens: „ExampleAction“ wird jedes Mal gespeichert, wenn du es abspielst. So können andere Personen in deinem Haushalt da weitermachen, wo du aufgehört hast.
ExampleAction-Antwort Hallo bestätigter Nutzer. Du bist bei Level 0. Sage „Weiter“, „Zurücksetzen“ oder „Abbrechen“.
User query Weiter.
ExampleAction-Antwort Du bist bei Level 1.
User query Verlassen.

Wenn derselbe bestätigte Nutzer nach einiger Zeit zur Aktion zurückkehrt:

User query Hey Google, sprich mit ExampleAction.
Antwort von Assistant ExampleAction wird abgerufen.
ExampleAction-Antwort Hallo bestätigter Nutzer. Du bist bei Level 1. Sage „Weiter“, „Zurücksetzen“ oder „Abbrechen“.
User query Weiter.
ExampleAction-Antwort Du bist bei Level 2.
User query Verlassen.

Am nächsten Tag interagiert ein nicht bestätigter Nutzer auf einem anderen Gerät im selben Haushalt mit der Aktion (wie in Home Graph angegeben).

User query Hey Google, sprich mit ExampleAction.
Antwort von Assistant ExampleAction wird abgerufen.
Antwort von Assistant Übrigens: „ExampleAction“ wird jedes Mal gespeichert, wenn du es abspielst. So können andere Personen in deinem Haushalt da weitermachen, wo du aufgehört hast.
ExampleAction-Antwort Hallo Gastnutzer, Du bist bei Level 2. Sage „Weiter“, „Zurücksetzen“ oder „Abbrechen“.
User query Weiter.
ExampleAction-Antwort Du bist bei Level 3.
User query Verlassen.