Solução de problemas

App de exemplo

Se você tiver problemas ao usar as APIs Home, colete registros para depuração. Para coletar registros do dispositivo móvel, é necessário usar o Xcode. Se precisar de ajuda do Google, colete os registros do dispositivo iOS e do hub e abra um tíquete no Issue Tracker com as informações e os registros relevantes associados a ele.

Coletar registros do iOS

O dispositivo móvel precisa estar conectado à máquina local em todas as etapas que envolvem o Xcode.

Os registros do app e do SDK são exibidos e podem ser coletados diretamente no console do Xcode. Quando o dispositivo móvel está conectado à máquina local e você executa o aplicativo pelo Xcode, o console captura e transmite automaticamente os registros de saída padrão (stdout) e de erro padrão (stderr) da camada do aplicativo e do SDK do Home integrado. Isso oferece uma maneira simples de monitorar processos de inicialização em tempo real, interações de API e eventos do SDK durante o desenvolvimento e a depuração.

Como coletar registros de extensão do Xcode

Se você encontrar problemas ao usar as APIs Home, colete registros para depuração.

  1. No Xcode, acesse Debug na barra de menu superior e clique em Attach to Process by PID or Name.

    Depuração de apps de exemplo

  2. Em PID ou Nome do processo, selecione MatterExtension e clique em Anexar.

    Extensão de anexação de app de exemplo

  3. Você vai ver Aguardando para anexar ao MatterAddDeviceExtension no iPhone se clicar no canto superior direito.

    Status de espera do app de exemplo

  4. Clique na guia e selecione MatterAddExtension.

    App de exemplo adicionando a extensão do Matter

  5. O console vai registrar o registro da extensão.

Sherlog: rastreamento de eventos entre pilhas

O Sherlog é um serviço de rastreamento em tempo real que fornece uma visão completa das interações entre a infraestrutura do Google e os serviços de nuvem do parceiro.

Pré-requisito: o rastreamento exige o uso de uma conta compartilhada e coordenada pelo Google (por exemplo, uma conta de demonstração ou registrada no GReg).

Objetivo principal: depurar defeitos funcionais e problemas de integração de nuvem para nuvem (C2C), como falhas na vinculação de contas ou estados incorretos do dispositivo, sem precisar mudar o código de produção.

Recursos: fornece gráficos completos de chamadas RPC, payloads de solicitação/resposta e metadados para intents SYNC, EXECUTE, QUERY e de vinculação de contas.

Registros do dispositivo hub do Fuchsia

É possível coletar registros dos seguintes hubs do Fuchsia usando este método: * Google Nest Hub (2ª geração) * Google Nest Hub Max

Para ativar um hub para recuperação de registros locais:

  1. Envie um e-mail com o número de série e o modelo dos seus dispositivos para o gerente técnico de contas (TAM) do Google. Eles estão escritos em letras pequenas na parte de baixo do dispositivo.
  2. Depois de entrar na lista de permissões, siga estas etapas para ativar o recurso:
    • No hub:
      1. Deslize de cima para baixo na tela.
      2. Toque no ícone de configurações
      3. Encontre a versão do Fuchsia: em um Nest Hub (2ª geração), acesse Informações do dispositivo > Informações técnicas > Versão do Fuchsia.
      4. Toque em "Versão do Fuchsia" sete vezes. Isso vai ativar as opções do desenvolvedor.
      5. Voltar para o menu de nível superior
      6. Toque em "Opções do desenvolvedor".
      7. Toque em "Registro de parceiros".
    • O recurso vai ficar ativado por 24 horas. Depois disso, reative o recurso de geração de registros da etapa 5 em diante.
  3. Encontre o endereço IP do hub:
    • No hub, se ele tiver uma tela:
      1. Deslize de cima para baixo na tela.
      2. Toque no ícone de configurações
      3. Encontre o endereço IP do dispositivo: em um Nest Hub (2ª geração), acesse Informações do dispositivo > Informações técnicas > Endereço IP.
    • No app Google Home (GHA) no seu smartphone:
    • Toque no dispositivo para abrir a página de detalhes.
    • Toque no ícone de configurações para abrir a página de configurações.
    • Encontre o endereço IP do dispositivo: acesse Informações do dispositivo > Informações técnicas > Endereço IP.
  4. Para recuperar os registros do hub, faça uma solicitação HTTP GET para o hub usando um computador na mesma rede Wi-Fi.
    • Anote a porta e o caminho do endpoint:
      curl -k -X GET https://ip-address:8443/setup/get_logs --output output-file
      
    • A conexão pode ser mantida aberta por apenas um minuto, mas os dados recuperados do buffer geralmente têm de 20 a 30 minutos de eventos passados.
      • O ideal é que os registros sejam extraídos usando esse método imediatamente após a conclusão de um procedimento de teste para garantir que o buffer contenha conteúdo relevante para o teste (semelhante aos relatórios de bugs do Android).

Automações

Detecção de bordas

As automações no ecossistema do Google Home têm detecção de borda, que é uma lógica que verifica se uma ativação só ocorre quando há uma mudança real de estado, em vez de uma atualização de estado que apenas repete o estado anterior do dispositivo.

Por exemplo, se acender uma luz for uma ativação, a detecção de borda vai verificar se a ativação só ocorre quando o dispositivo de iluminação passa de desligado para ligado, em vez de ligado para ligado (sem mudança).

A automação não se comporta como esperado

Depois de considerar a detecção de borda, se uma automação não se comportar conforme o esperado:

  1. Verifique cada dispositivo para garantir que ele esteja funcionando corretamente, independente da automação.

  2. Confira o gráfico da automação, comparando-o com a DSL da automação, para revelar possíveis suposições incorretas da sua parte.

  3. Observe o estado do dispositivo no app Google Home durante a execução da automação.

  4. Verifique se todos os dispositivos referenciados pela automação estão presentes na estrutura em que você espera que estejam. Excluir um dispositivo de que uma automação depende pode ter consequências indesejadas. Consulte Impacto da exclusão de dispositivos nas automações.

A automação é executada quando não deveria

Se a automação for executada quando não deveria, analise os critérios de ativação. Pode ser necessário adicionar mais lógica para garantir que uma mudança de estado seja capturada apenas uma vez e acione a automação apenas uma vez.

A automação não é compilada

Verifique se o app contém todas as importações necessárias, incluindo cada classe correspondente aos diferentes tipos de nó, bem como as características que você está referenciando.

A criação da automação falha na validação

Se a criação da automação não passar na validação, uma mensagem de aviso ou mensagem de erro vai fornecer informações sobre o problema. Para mais informações, consulte a referência de ValidationIssueType.

OAuth

Se você já tiver um cliente OAuth

Se você já tiver um cliente OAuth verificado para um app publicado, poderá usá-lo para testar as APIs Home.

O registro do Google Home Developer Console não é necessário para testar e usar as APIs Home. No entanto, você ainda vai precisar de um registro aprovado do Developer Console para publicar o app, mesmo que tenha um cliente OAuth verificado de outra integração.

As seguintes considerações se aplicam:

  • Há um limite de 100 usuários ao usar um cliente OAuth atual. Para saber como adicionar usuários de teste, consulte Gerar o ID do cliente OAuth. Independentemente da verificação do OAuth, há um limite imposto pelas APIs Home de 100 usuários que podem conceder permissões ao seu aplicativo. Essa limitação é suspensa após a conclusão do registro do Developer Console.

  • Developer Console registration deve ser enviado para aprovação quando você estiver pronto para restringir as concessões de tipo de dispositivo pelo OAuth em preparação para atualizar seu app com as APIs Home.

Para apps do Google Cloud que ainda estão com a verificação do OAuth pendente, os usuários não podem concluir o fluxo do OAuth até que a verificação seja concluída. As tentativas de conceder permissões vão falhar com o seguinte erro:

Access blocked: <Project Name> has not completed the Google verification process.