O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Esquema Weave

Esquema Weave

O esquema descreve o modelo de dados subjacente que orienta a representação e interpretação dos dados emitidos por dispositivos lógicos ou físicos em um sistema Weave.

O esquema é:

  • Padronizado - contém definições formalmente aprovadas de funcionalidade que fornecem uma interface consistente, independentemente da implementação. Por exemplo, uma lâmpada representada no esquema sempre terá funcionalidades essenciais, como estados e ações liga / desliga ou níveis de escurecimento.
  • Composable - um usuário pode criar recursos complexos compostos de bits menores de funcionalidade bem definida. Por exemplo, um Nest Detect contém dois tipos de sensores: movimento e abrir / fechar. A funcionalidade para esses tipos de sensores é padronizada no esquema e reutilizável em vários dispositivos.
  • Extensível - um usuário pode criar extensões personalizadas de funcionalidade padrão. Por exemplo, você pode desejar estender a funcionalidade de sensor de movimento padrão do esquema com funcionalidade adicional para um aplicativo de segurança específico.
  • Com versão - todas as alterações no esquema têm versão para compatibilidade com versões anteriores e posteriores.

O esquema define três elementos: características, interfaces e recursos. Quase todas as funcionalidades do ecossistema Nest para operação diária são definidas no esquema. Vamos examinar cada elemento com mais detalhes.

Traços

Um característica é uma unidade de funcionalidade básica. Eles podem ser estados ou recursos gerais do dispositivo, ou descrever a configuração que informa seu comportamento. Uma única característica pode ser comum a muitos dispositivos ou específica a um tipo de dispositivo.

Por exemplo, no esquema, você pode definir as seguintes características para uso em dispositivos Nest:

Traço

Interfaces

Podemos estender a composição de características agrupando-as, especialmente se múltiplas características representam uma função nova e específica. Esse grupo de características é chamado de interface .

Por exemplo, uma interface de intercomunicação pode incluir características de alto-falante e microfone:

Traços e interfaces

Recursos

Um recurso representa uma coisa lógica ou física no esquema. Por exemplo, um Nest Protect é um recurso. O Nest Guard também. Ou um usuário, ou uma estrutura como a casa do usuário.

Os recursos compreendem um conjunto de características que encapsulam sua configuração, estado e capacidade.

A relação entre recursos, interfaces e características é assim:

Recursos, interfaces e características

Como você pode ver, alguns traços, como o traço Movimento, são comuns a diferentes recursos. E algumas interfaces, como a interface Intercom, também são comuns a diferentes recursos. Traços, interfaces e recursos são definidos uma vez no esquema e reutilizados em diferentes recursos e dispositivos no sistema Weave.

Elementos de traço

As características são subdivididas em três elementos principais: propriedades, comandos e eventos. Vamos dar uma olhada em exemplos de cada elemento de característica.

Propriedades

O propriedades representa o estado de uma característica. As propriedades são de leitura e gravação ou somente leitura.

Por exemplo:

  • A versão do software é uma propriedade do traço de identidade do dispositivo. É uma característica geral que a maioria dos dispositivos possui. Termostatos, câmeras e proteções Nest - todos eles têm sua própria versão de software específica.
  • Bolt State é uma propriedade do traço Bolt Lock, mas é específico para um dispositivo como o Yale x Nest Lock. Você não encontraria uma trava de parafuso em um Nest Thermostat, por exemplo.

Comandos

Os comandos são solicitações personalizadas específicas de uma característica para a ação de uma característica, com uma resposta esperada. Eles são comumente chamados de comandos personalizados e podem ser estendidos para mudanças de estado específicas para propriedades. Por exemplo:

  • Bolt Lock Change é um comando personalizado que altera a propriedade Bolt State do traço Bolt Lock.
  • Definir User Pincode é um comando personalizado que cria uma nova propriedade ou atualiza uma propriedade User Pincode existente do traço Configurações de User Pincodes.

Eventos

Eventos são registros de acontecimentos para um traço. Eles informam o assinante sobre as mudanças nas propriedades do traço ou algum outro tipo de acontecimento, como uma reinicialização do sistema.

Por exemplo, o evento Bolt Actuator State Change do traço Bolt Lock informa um assinante sobre o estado atual de várias propriedades Bolt Lock, bem como o ator que causou a última alteração na propriedade Bolt Actuator State. Todas essas informações são fornecidas como um único evento.

Linguagem de descrição do esquema Weave

Os traços, interfaces e recursos do esquema no Weave são definidos e descritos usando uma linguagem específica de domínio (DSL) que aproveita a sintaxe do Google Protocol Buffers v3. Essa linguagem é chamada de Weave Schema Description Language (WDL) .

WDL é executado por meio de um compilador que gera diferentes realizações e codificações específicas da plataforma. O tipo de código gerado depende do recurso:

  • Objective C, Swift, Java, Scala - aplicativos móveis e serviços em nuvem
  • C ++ com codificações Weave TLV - dispositivos incorporados e aplicativos móveis

Vamos nos aprofundar nos exemplos de WDL mais tarde.

Recapitular

O que você aprendeu:

  • O esquema descreve o modelo de dados subjacente para um sistema Weave.
  • O esquema define três elementos:
    • traço Uma unidade de funcionalidade básica
    • Interface Um grupo de características que representam uma função nova e específica
    • Recurso Uma coisa lógica ou física
  • Os traços incluem propriedades, comandos e eventos:
    • propriedade O estado de uma característica de recurso
    • Comandos Solicitação personalizada para ação de um trait
    • Event Registro de acontecimentos para uma característica
  • O esquema é definido usando o Weave Schema Description Language (WDL), que é baseado no Google Protocol Buffers v3

Para obter informações mais detalhadas, consulte: