Armazenamento doméstico

Em uma chamada de webhook, é possível armazenar valores de parâmetros em várias sessões da mesma casa (com base no Home Graph) no armazenamento doméstico. Sua ação pode esses valores armazenados mais tarde em solicitações e condições, e seu webhook pode acessar valores no armazenamento doméstico de uma família específica quando necessário.

O estado do armazenamento doméstico é transmitido em uma solicitação app.handle() e armazenado. no objeto home.

Limitações

O armazenamento do Google Home não pode ser usado com dispositivos móveis porque eles não fazem parte de uma casa Gráfico. No código do webhook, use a capacidade do dispositivo HOME_STORAGE. ramificar a lógica de negócios com base no que o dispositivo do usuário é capaz de fazer.

Para usar o armazenamento do Google Home, faça o seguinte:

  1. No Console do Actions, acesse Implantar > Informações do diretório.
  2. Na seção Informações adicionais, marque a caixa Início Storage.
.

Ler e gravar dados de uma família

Para atualizar ou definir um novo valor no armazenamento do Google Home, atribua o valor a params campo do objeto home em uma chamada de webhook. O exemplo a seguir define "exampleColor" para "vermelho" no armazenamento 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 acessar dados no armazenamento do Google Home, atribua-os a uma variável em um webhook a chamada. O exemplo a seguir recupera um valor de "exampleColor" em casa armazenamento:

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 limpar um valor salvo anteriormente, defina o valor como null em uma chamada de webhook. O exemplo a seguir limpa o valor de "exampleColor" no armazenamento 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": {}
    }
  }
}
    

Referenciar valores armazenados em prompts

É possível referenciar valores armazenados no armazenamento do Google Home em um comando. Para fazer referência o valor, use $home.params.PARAMETER_NAME sintaxe, em que PARAMETER_NAME é o nome dado na webhook quando o parâmetro foi definido.

Por exemplo, você armazenou anteriormente um valor de cor no armazenamento do Google Home como parâmetro exampleColor. Para acessar esse valor em um comando, você faz referência a esse usando $home.params.exampleColor:

JSON

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

Fazer referência a valores armazenados em condições

Também é possível referenciar valores armazenados no armazenamento doméstico em conditions. Para referenciar o valor, use o método home.params.PARAMETER_NAME sintaxe, em que PARAMETER_NAME é o nome dado na webhook quando o parâmetro foi definido.

Por exemplo, você armazenou anteriormente um valor de cor no armazenamento do Google Home como parâmetro exampleColor, e você quer fazer a correspondência com o valor "red" em um condição. Na condição, você faz referência ao valor armazenado usando home.params.exampleColor: A expressão de condição vai ficar isso:

Sintaxe da condição

home.params.exampleColor == "red"
    

Expiração dos dados de armazenamento do Google Home

Os dados de armazenamento do Google Home são apagados após 90 dias consecutivos da Ação não ser invocado. Como invocar a ação em qualquer dispositivo associado ao Home Graph redefine o timer de 90 dias. Se uma estrutura de Home Graph for excluída, os dados de armazenamento domiciliar correspondentes sejam apagados.

Para ações que usam armazenamento em casa, os gerenciadores de estrutura do Home Graph podem limpar a casa armazenamento para estruturas gerenciadas na página da ação no diretório do Google Assistente:

  1. Encontre e selecione a ação que você quer conferir ou limpar o armazenamento do usuário.
  2. Role até a parte de baixo da página:
    • Para remover os dados armazenados no Home Storage, clique em Parar action_name de me lembrar.
.

Quando o administrador de um dispositivo o dissocia da estrutura, o armazenamento doméstico é também dissociados. Os dados de armazenamento do Google Home continuam associados a um dispositivo mesmo que o gerente da estrutura mude, a menos que um gerente da estrutura a libere.

Dados de armazenamento doméstico no simulador

Ao testar sua ação usando o simulador no Console do Actions, os dados no armazenamento doméstico se comportam de maneira um pouco diferente dos dados dispositivo. O simulador é considerado parte do próprio Home Graph. Portanto, os dados não persistem em outros dispositivos que você tenha na rede. Além disso, a página inicial os dados de armazenamento não são mantidos nas sessões quando a opção Simular não verificado user está ativada.

Exemplo de interação

Aqui está um exemplo de interação de um usuário conectado na primeira invocação de a ação:

Consulta do usuário Ok Google, fale com ExampleAction.
Resposta do Google Assistente Obtenção de ExampleAction.
Resposta do Google Assistente Uma curiosidade: a ExampleAction é salva toda vez que você a reproduz. as outras pessoas da família podem continuar de onde você parou.
Resposta de ExampleAction Olá, usuário verificado. Você está no nível 0. Diga "Próxima", "Redefinir" ou "Cancelar".
Consulta do usuário Próxima.
Resposta de ExampleAction Você está no nível 1.
Consulta do usuário Sair.

Quando o mesmo usuário verificado retornar à ação depois de algum tempo:

Consulta do usuário Ok Google, fale com ExampleAction.
Resposta do Google Assistente Obtenção de ExampleAction.
Resposta de ExampleAction Olá, usuário verificado. Você está no nível 1. Diga "Próxima", "Redefinir" ou "Cancelar".
Consulta do usuário Próxima.
Resposta de ExampleAction Você está no nível 2.
Consulta do usuário Sair.

No dia seguinte, um usuário não verificado interage com a ação em outro dispositivo. da mesma casa (conforme especificado no Home Graph).

Consulta do usuário Ok Google, fale com ExampleAction.
Resposta do Google Assistente Obtenção de ExampleAction.
Resposta do Google Assistente Uma curiosidade: a ExampleAction é salva toda vez que você a reproduz. as outras pessoas da família podem continuar de onde você parou.
Resposta de ExampleAction Olá, usuário convidado. Você está no nível 2. Diga "Próxima", "Redefinir" ou "Cancelar".
Consulta do usuário Próxima.
Resposta de ExampleAction Você está no nível 3.
Consulta do usuário Sair.