Almacenamiento de la casa

En una llamada de webhook, puedes almacenar valores de parámetros en varias sesiones la misma familia (según Home Graph) en el almacenamiento doméstico. Tu Acción puede y, luego, usar esos valores almacenados en mensajes y condiciones, y tu webhook de acceso a los valores del almacenamiento de la casa para una familia específica cuando sea necesario.

El estado del almacenamiento de la casa se pasa en una solicitud app.handle() y se almacena en el objeto home.

Limitaciones

El almacenamiento de la casa no se puede usar con dispositivos móviles, ya que no son parte de un dispositivo Home Gráfico En el código de tu webhook, usa la capacidad del dispositivo HOME_STORAGE. para ramificar la lógica empresarial según la capacidad del dispositivo del usuario.

Debes habilitar el almacenamiento de la casa en los siguientes casos:

  1. En la Consola de Actions, ve a Implementar > Información del directorio.
  2. En la sección Información adicional, marca la casilla Página principal. almacenamiento.

Lee y escribe datos en una familia

Para actualizar o establecer un nuevo valor en el almacenamiento de la casa, asigna el valor a params del objeto home en una llamada de webhook. El siguiente ejemplo establece "exampleColor". a "rojo" en el almacenamiento doméstico:

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"
      }
    }
  }
}
    

Para acceder a los datos almacenados en el almacenamiento de la casa, asígnalos a una variable en un webhook llamada. En el siguiente ejemplo, se recupera un valor de “exampleColor”. en casa almacenamiento:

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"
      }
    }
  }
}
    

Para borrar un valor guardado anteriormente, establece el valor en null en una llamada de webhook. En el siguiente ejemplo, se borra el valor de “exampleColor”. en el almacenamiento doméstico:

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": {}
    }
  }
}
    

Haz referencia a valores almacenados en instrucciones

Puedes hacer referencia a los valores almacenados en el almacenamiento de la casa mediante un mensaje. Para hacer referencia el valor, usa $home.params.PARAMETER_NAME sintaxis, en la que PARAMETER_NAME es el nombre dado en la webhook cuando se configuró el parámetro.

Por ejemplo, antes almacenaste un valor de color en el almacenamiento de la casa como el valor parámetro exampleColor. Para acceder a ese valor en una instrucción, debes hacer referencia a ese con $home.params.exampleColor:

JSON

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

Cómo hacer referencia a valores almacenados en las condiciones

También puedes hacer referencia a valores guardados en el almacenamiento de la casa en condiciones. Para hacer referencia al valor, usa home.params.PARAMETER_NAME sintaxis, en la que PARAMETER_NAME es el nombre dado en la webhook cuando se configuró el parámetro.

Por ejemplo, antes almacenaste un valor de color en el almacenamiento de la casa como el valor parámetro exampleColor y quieres hacerla coincidir con el valor "rojo" en una estado. En tu condición, debes hacer referencia al valor almacenado usando home.params.exampleColor Entonces, tu expresión de condición se ve así: esto:

Sintaxis de las condiciones

home.params.exampleColor == "red"
    

Vencimiento de los datos de almacenamiento en la casa

Los datos de almacenamiento de Home se limpian después de 90 días consecutivos de que la Acción no se realiza. se invocan. Cómo invocar la acción en cualquier dispositivo asociado con Home Graph restablece el temporizador de 90 días. Si se borra una estructura de Home Graph, se borran los datos de almacenamiento de la casa correspondientes.

En el caso de las Acciones que usan almacenamiento en la casa, los administradores de la estructura de Home Graph pueden liberar la casa almacenamiento para las estructuras que administra desde la página de la Acción en el directorio de Asistente:

  1. Busca y selecciona la acción que deseas ver o para la que deseas liberar espacio de almacenamiento de usuario.
  2. Desplázate hasta el final de la página:
    • Para quitar tus datos almacenados en el almacenamiento de la casa, haz clic en Detener action_name. de recordarme.

Cuando el administrador de un dispositivo lo desvincula de la estructura, también se disoció. Los datos de almacenamiento de la casa siguen asociados con un dispositivo incluso si el administrador de la estructura cambia, a menos que uno lo borre.

Cómo almacenar datos en la casa en el simulador

Cuando pruebes tu acción con el simulador de la Consola de Actions, haz lo siguiente: los datos almacenados en el almacenamiento doméstico se comportan de manera un poco diferente a dispositivo. El simulador se considera parte de su propio Home Graph, por lo que los datos no se mantienen en otros dispositivos que puedas tener en tu red. Además, la página principal no se conservan entre sesiones cuando se muestra el mensaje Simular sin verificar usuario del simulador.

Muestra de interacción

Este es un ejemplo de interacción de un usuario que accedió en su primera invocación del la acción:

Consulta del usuario Hey Google, habla con ExampleAction.
Respuesta de Asistente Obteniendo ExampleAction.
Respuesta de Asistente Para que sepas, ExampleAction se guarda cada vez que lo reproduces, así que otros miembros de tu familia pueden retomar la actividad donde la dejaste.
Respuesta de ExampleAction Hola usuario verificado. Estás en el nivel 0. Di "Siguiente", "Restablecer" o "Cancelar".
Consulta del usuario Siguiente.
Respuesta de ExampleAction Estás en el nivel 1.
Consulta del usuario Abandonar.

Luego, cuando el mismo usuario verificado regrese a la acción después de un tiempo, ocurrirá lo siguiente:

Consulta del usuario Hey Google, habla con ExampleAction.
Respuesta de Asistente Obteniendo ExampleAction.
Respuesta de ExampleAction Hola usuario verificado. Estás en el nivel 1. Di "Siguiente", "Restablecer" o "Cancelar".
Consulta del usuario Siguiente.
Respuesta de ExampleAction Estás en el nivel 2.
Consulta del usuario Abandonar.

Al día siguiente, un usuario no verificado interactúa con la acción en otro dispositivo. dentro de la misma familia (como se especifica en Home Graph).

Consulta del usuario Hey Google, habla con ExampleAction.
Respuesta de Asistente Obteniendo ExampleAction.
Respuesta de Asistente Para que sepas, ExampleAction se guarda cada vez que lo reproduces, así que otros miembros de tu familia pueden retomar la actividad donde la dejaste.
Respuesta de ExampleAction Hola usuario invitado. Estás en el nivel 2. Di "Siguiente", "Restablecer" o "Cancelar".
Consulta del usuario Siguiente.
Respuesta de ExampleAction Estás en el nivel 3.
Consulta del usuario Abandonar.