Armazenamento doméstico

Em uma chamada de webhook, é possível armazenar valores de parâmetro em várias sessões na mesma casa (com base no Home Graph) no armazenamento doméstico. A Ação pode usar os valores armazenados posteriormente em solicitações e condições, e o código do webhook poderá acessar valores no armazenamento em casa 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 não fazem parte do Home Graph. No código do webhook, use a capacidade do dispositivo HOME_STORAGE para ramificar a lógica de negócios com base nos recursos do dispositivo do usuário.

Ative essa opção para usar o armazenamento doméstico:

  1. No Console do Actions, acesse Implantar > Informações do diretório.
  2. Na seção Informações adicionais, marque a caixa de Armazenamento doméstico.

Ler e gravar dados em uma família

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

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 remover um valor salvo, defina-o 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 ao valor, use a sintaxe $home.params.PARAMETER_NAME, em que PARAMETER_NAME é o nome fornecido no webhook quando o parâmetro foi definido.

Por exemplo, você já armazenou um valor de cor no armazenamento do Google Home como o parâmetro exampleColor. Para acessar esse valor em um prompt, referencie-o usando $home.params.exampleColor:

JSON

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

Referenciar valores armazenados em condições

Também é possível referenciar valores armazenados no armazenamento do Google Home em conditions. Para fazer referência ao valor, use a sintaxe home.params.PARAMETER_NAME, em que PARAMETER_NAME é o nome fornecido no webhook quando o parâmetro foi definido.

Por exemplo, você já armazenou um valor de cor no armazenamento da casa como o parâmetro exampleColor e quer fazer a correspondência dele com o valor "red" em uma condição. Na sua condição, você faz referência ao valor armazenado usando home.params.exampleColor. Sua expressão de condição ficará assim:

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 excluídos de forma permanente após 90 dias consecutivos em que a Ação não é invocada. Invocar a ação em qualquer dispositivo associado à estrutura do Home Graph redefine o timer de 90 dias. Se uma estrutura do Home Graph for excluída, os dados de armazenamento doméstico correspondentes serão apagados.

Para ações que usam armazenamento doméstico, os administradores de estruturas do Home Graph podem limpar o armazenamento de casa para estruturas que gerenciam na página da ação no diretório do Google Assistente:

  1. Encontre e selecione a ação para conferir ou limpar o armazenamento dos usuários.
  2. Role até a parte de baixo da página:
    • Para remover os dados salvos no armazenamento da casa, clique em Impedir que action_name se lembre de mim.

Quando o administrador de um dispositivo o dissocia da estrutura, o armazenamento doméstico também é dissociado. Os dados de armazenamento do Google Home continuam sendo associados a um dispositivo mesmo que o gerenciador da estrutura mude, a menos que ele os limpe.

Dados de armazenamento doméstico no simulador

Ao testar sua ação usando o simulador no Console do Actions, os dados armazenados no armazenamento doméstico se comportam de maneira um pouco diferente dos dados em um dispositivo físico. O simulador é considerado parte de um Home Graph próprio, então os dados não persistem em outros dispositivos que você possa ter na sua rede. Além disso, os dados de armazenamento doméstico não são mantidos entre as sessões quando a configuração do simulador Simular usuário não verificado está ativada.

Exemplo de interação

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

User query Ok Google, fale com ExampleAction.
Resposta do Google Assistente Recebimento de ExampleAction.
Resposta do Google Assistente Só um lembrete: a ExampleAction é salva sempre que você joga. Assim, outras pessoas da sua casa podem continuar de onde você parou.
Resposta ExampleAction Olá, usuário verificado. Você está no nível 0. Diga "Próxima", "Redefinir" ou "Cancelar".
User query Próxima.
Resposta ExampleAction Você está no nível 1.
User query Sair.

Quando o mesmo usuário verificado retornar à ação após algum tempo:

User query Ok Google, fale com ExampleAction.
Resposta do Google Assistente Recebimento de ExampleAction.
Resposta ExampleAction Olá, usuário verificado. Você está no nível 1. Diga "Próxima", "Redefinir" ou "Cancelar".
User query Próxima.
Resposta ExampleAction Você está no nível 2.
User query 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).

User query Ok Google, fale com ExampleAction.
Resposta do Google Assistente Recebimento de ExampleAction.
Resposta do Google Assistente Só um lembrete: a ExampleAction é salva sempre que você joga. Assim, outras pessoas da sua casa podem continuar de onde você parou.
Resposta ExampleAction Olá, usuário convidado. Você está no nível 2. Diga "Próxima", "Redefinir" ou "Cancelar".
User query Próxima.
Resposta ExampleAction Você está no nível 3.
User query Sair.