A arquitetura da API Nest

Sobre o serviço Nest

Os aplicativos Nest permitem que os usuários se conectem com a casa onde estão. Todos os dispositivos e aplicativos Nest (Termostatos, Proteções e Câmeras) e aplicativos (iOS, Android e apps da Web) se conectam ao serviço Nest.

Exemplo de nuvem para nuvem

O serviço Nest fornece um modelo de dados da casa. Os dispositivos e aplicativos a partir desse modelo de dados tomam as medidas adequadas. Ela atualiza o modelo de dados para refletir as alterações no sistema.

Por exemplo, um termostato lê a temperatura-alvo do modelo de dados. Ele define a temperatura ambiente como sua medição atual e envia dados do sensor para o Assistente dentro/fora de casa, que ajusta o modo da estrutura adequadamente.

Os dispositivos Nest operam em ambientes restritos. A energia é limitada, e a conectividade da rede doméstica pode não ser confiável. Seus produtos e serviços podem aproveitar nossos algoritmos de dispositivos para oferecer aos usuários uma experiência simples e intuitiva em casa.

O modelo de dados

A API Nest é representada como um documento JSON com os atributos de nível superior de metadata, devices e structures. Seus produtos Works with Nest usam esse documento JSON para interagir com os dispositivos Nest e reagir a eles e reagir a eles.

A Nest structures representa estruturas físicas no mundo real. Eles servem como um ponto de organização para devices e armazenam dados do edifício como um todo. Normalmente, um structure é a página inicial do usuário.

O Nest devices representa dispositivos físicos (termostatos, proteções e câmeras) em uma estrutura.

Todos os elementos de dados no documento JSON são endereçáveis por URL (também conhecidos como "locais de dados"). Os produtos Works with Nest podem ler e gravar em seções deste documento e se inscrever para receber alterações. Esse recurso de assinatura permite que os produtos Works with Nest reajam em tempo real a mudanças feitas no sistema, como apagar as luzes quando um usuário define a estrutura como "Ausente".

Os objetos também funcionam em restrições do mundo real. O modelo de dados protege os dispositivos e a casa do usuário evitando ações inesperadas e perigosas. Por exemplo, o termostato não executa o ar-condicionado quando o aquecimento de emergência está ativado.

Explore o modelo de dados com esta Referência de API interativa.

Estado pretendido

O serviço Nest armazena o estado autoritativo do sistema, e os produtos Works with Nest assinam as mudanças. Modificar esse estado (por exemplo, para mudar a temperatura de um termostato) faz com que o serviço envie uma notificação de mudança a todos os assinantes.

Como essa propagação tem algum atraso e as redes não são confiáveis, o estado observado por um produto pode não ser o estado observado atualmente por outros produtos ou pelo serviço. O estado é sincronizado conforme as mensagens são transmitidas entre vários produtos.

Esse modelo de publicação/assinatura orientada a documentos oferece interações responsivas de aplicativos.

Como usar o serviço Nest

Para acessar os endpoints REST no serviço Nest, use HTTPS em seu produto. Existem muitas bibliotecas de cliente de terceiros que podem ser usadas com essa finalidade.

Permissões e autorização

Queremos permitir que os desenvolvedores criem produtos e serviços para melhorar as casas, sem comprometer a privacidade e a segurança do usuário. Todas as nossas comunicações são seguras, e a permissão de acesso aos dados é sempre concedida explicitamente pelo usuário. Para ver mais informações, consulte Visão geral das permissões.

A autorização é processada pelo protocolo OAuth 2.0. Quando um usuário concorda em fornecer acesso ao nível de permissão solicitado, o Nest autentica a solicitação e um token de acesso é concedido ao solicitante. Esse token de acesso pode ser usado para acessar a API Nest e interagir com as estruturas e os dispositivos do usuário.

A concessão de um token de acesso estabelece uma relação de confiança entre um usuário, um produto Works with Nest e o Nest. Os usuários podem revogar o acesso a qualquer momento.

Para saber como autorizar uma conexão com a API Nest, consulte a Visão geral da autorização.