Geral
P: Onde e em qual idioma devemos implementar nossa infraestrutura de fulfillment de nuvem para nuvem?
R: Contanto que ofereça suporte a SSL (TLS) e OAuth 2.0 modernos, é possível implementar sua infraestrutura em qualquer plataforma e em qualquer idioma. Recomendamos que você implante o mais próximo possível do restante da sua infraestrutura para melhorar a confiabilidade e reduzir a latência da execução para os dispositivos dos usuários.
P: Os IDs de dispositivo precisam ser exclusivos?
A: Os IDs precisam ser exclusivos. Se você não tiver IDs exclusivos em todo o serviço, eles precisarão ser exclusivos pelo menos no nível do usuário. Imagine um usuário com várias casas, em que ambas têm integrações com o mesmo usuário. Pedir para acender uma luz em uma casa não deve acender uma luz com o mesmo ID em outra casa.
P: Os nomes dos dispositivos precisam ser exclusivos?
R: Os nomes não precisam ser exclusivos, mas, com o tempo, podemos incentivar as pessoas a melhorar a nomenclatura após a configuração para melhorar a experiência do usuário.
Confira um guia rápido de nomenclatura:
- Os nomes precisam ser coisas que as pessoas possam realmente dizer.
- Nós reconhecemos subconjuntos de strings. Portanto, se você tiver "acme color light", também responderemos a "acme light".
- Recomendamos um nome descritivo para o produto e um ou mais nomes definidos pelo usuário.
- Os usuários não precisam dar nomes aos ambientes, porque temos ambientes para isso. Eles precisam ter nomes exclusivos por ambiente, mas podem sempre usar plurais para comandar tudo. Por exemplo, as duas lâmpadas nos arandes do escritório são 'luz norte' e 'luz leste', mas podem ser comandadas como apenas 'luzes'.
P: Com que frequência o estado do dispositivo é atualizado?
A: O estado temporário é recuperado em QUERY ou EXECUTE, que são ações iniciadas pelo usuário. Se o usuário perguntar "A luz está acesa?" ou quiser aumentar o brilho de uma luz, vamos precisar fazer uma consulta para descobrir o estado atual.
P: É possível atualizar o Home Graph diretamente com o estado atual de um dispositivo?
A: Sim, use a chamada de API Report State.
Vinculação de contas e OAuth
P: É necessário vincular as contas?
A: Sim, a vinculação de contas é necessária para conectar os dispositivos de um usuário aos serviços de nuvem do provedor.
P: Para o OAuth, os tokens de acesso expiram a cada 15, 213 horas.Isso está certo?
R: Sim, mas teste com um tempo de expiração bastante curto, por exemplo, de 10 a 20 minutos. Nosso cliente OAuth precisa atualizar os tokens conforme necessário, e o teste com um período de expiração curto vai provar que isso está funcionando.
Intents
P: Quando a SYNC acontece?
A: A sincronização ocorre imediatamente após a conclusão do OAuth e depois que uma chamada de solicitação de sincronização é feita.
P: Por que SYNC
não está funcionando?
A: Há vários motivos comuns para isso.
Você está enviando os tipos de dispositivo errados.
- Por exemplo, esperamos
action.devices.types.LIGHT
, mas você enviaaction.devices.types.Light
.
- Por exemplo, esperamos
Você está enviando tipos de dispositivos sem suporte.
- Por exemplo, você envia
action.devices.types.FLASHLIGHT
, que não é compatível com o serviço.
- Por exemplo, você envia
Você está enviando campos inválidos/não compatíveis.
- Por exemplo, você tem um campo que não está na nossa especificação.
Há outro problema de formatação na sua resposta SYNC.
- Confira os colchetes.
Você está enfrentando um problema de vinculação de conta.
- Verifique se você está recebendo um token de acesso válido no cabeçalho de autenticação da solicitação SYNC.
Você está demorando muito para responder à solicitação de SYNC.
- Verifique se você está respondendo à solicitação SYNC em até 5 segundos.
P: Uma resposta "pendente" está correta?
R: Preferimos uma resposta de sucesso/falha, em vez de pendente, se os dispositivos estiverem disponíveis em tempo real. Entre em contato se você precisar de uma resposta "pendente". Sabemos que alguns dispositivos de baixo consumo e que não são em tempo real podem exigir uma resposta pendente e um modelo de execução assíncrono.
Testes e envio
P: É possível configurar um ambiente de desenvolvimento em nuvem?
A: Sim, é possível testar um ambiente e uma configuração de nuvem não lançados.
P: Minha ação não aparece na seção "Controle da casa" do app Google Home. O que está acontecendo?
A: Confirmar que você é um desenvolvedor para este projeto.
Estado do relatório
P: Há pré-requisitos para implementar o estado do relatório?
A:o projeto precisa usar a API Smart Home, oferecer suporte ao OAuth2 e ter características com estados a serem informados.
P: Com que frequência precisamos informar o estado de um dispositivo?
A: O Google tem interesse na transição e no estado terminal. No entanto, se houver muitas mudanças de estado em um curto período (por exemplo, um usuário abre e fecha a geladeira três vezes em um minuto ou desliza um dimmer), só precisamos do estado final informado.
P: O estado completo do dispositivo precisa ser enviado ao fazer chamadas de relatório de estado?
A:não há suporte para atualizações parciais de estado. Portanto, as chamadas Report State sempre precisam incluir todos os dados de uma característica específica que foi atualizada. Se duas características criarem uma inconsistência, elas precisam ser relatadas juntas.
P: O Google pode consultar meu dispositivo para saber o estado dele?
A:esse é um mecanismo alternativo que não recomendamos. Se precisarmos voltar a consultar um dispositivo com frequência para esses usuários, não será possível garantir qual será a carga extra. A necessidade vem das novas superfícies visuais. Além do problema de carregamento desconhecido, a experiência do usuário será degradada. Achamos que Report State é essencial para a plataforma.
P: Quais atributos são compatíveis com o estado do relatório no momento?
A: Todas as características públicas que têm estados associados são compatíveis. Qualquer mudança no estado on-line do dispositivo também precisa ser informada.
As cenas não têm estados. No entanto, elas podem resultar em uma mudança de estado dos dispositivos. Se algum dispositivo em Google Home Graph tiver um estado de mudança, isso precisa ser informado.
P: O estado do relatório exige que um carimbo de data/hora seja enviado?
R: Não é necessário ter um carimbo de data/hora. O último estado enviado vai substituir as chamadas anteriores.
P: Preciso informar o estado separadamente se já estou enviando o estado em "Consulta" e/ou "Executar"?
A: Home Graph armazena apenas o estado enviado por Report State. O estado retornado como resposta às intents EXECUTE e QUERY é usado apenas para respostas de voz ao usuário e não é armazenado. Como resultado, Report State precisa ser chamado mesmo que o novo estado do dispositivo já tenha sido retornado como a resposta a uma intent EXECUTE ou QUERY.
P: Quais são as consequências de não implementar completamente o estado do relatório dentro do prazo?
A: Isso vai resultar em uma experiência do usuário degradada, por exemplo, nas Google Home app (GHA) e nas superfícies visuais. Isso significa que muitas intents de QUERY serão enviadas para a pesquisa de estado, e não podemos garantir que isso corresponda a uma carga extra na nuvem do parceiro.
P: Como posso testar nossa implementação do estado do relatório?
A: Use o Visualizador do Home Graph, uma ferramenta de teste self-service que mostra os estados atuais do dispositivo armazenados no Home Graph.
P: Podemos usar um requestId aleatório para o estado do relatório?
R: Recomendamos que os parceiros usem o mesmo requestId recebido da solicitação EXECUTE se o Report State for acionado pela solicitação EXECUTE. Caso contrário, use um requestId aleatório.
P: Se um usuário tiver vários dispositivos e um deles mudar de estado, será necessário informar o estado mais recente de todos os dispositivos?
R: Não. Você só precisa informar o estado desse dispositivo específico.
Práticas recomendadas
P: Que tipo de latência é aceitável?
A:menos de 200 ms é o ideal, entre 2 e 5 segundos é aceitável. Se a latência estiver em torno de 5 segundos, entre em contato.
P: Como faço para que o alto-falante ativado por voz responda corretamente quando estiver off-line?
A: Retorna o estado off-line para dispositivos off-line. Retornamos "não disponível no momento" como TTS para esse erro. Para mais informações, consulte Erros e exceções.