En Google, luchamos por la equidad racial de la comunidad negra. Más información

Esquema de tejido

Esquema de tejido

El esquema describe el modelo de datos subyacente que las unidades de la representación y la interpretación de los datos emitidos por los dispositivos lógicos o físicos en un sistema de armadura.

El esquema es:

  • Estandarizado: contiene definiciones de funcionalidad aprobadas formalmente que proporcionan una interfaz coherente, independientemente de la implementación. Por ejemplo, una bombilla representada en el esquema siempre tendrá una funcionalidad básica, como estados de encendido / apagado y acciones o niveles de atenuación.
  • Composable: un usuario puede crear recursos complejos compuestos por bits más pequeños de funcionalidad bien definida. Por ejemplo, un Nest Detect contiene dos tipos de sensores: movimiento y abrir / cerrar. La funcionalidad para estos tipos de sensores está estandarizada en el esquema y es reutilizable en todos los dispositivos.
  • Extensible: un usuario puede crear extensiones personalizadas de funcionalidad estándar. Por ejemplo, es posible que desee ampliar la funcionalidad del sensor de movimiento estándar del esquema con una funcionalidad adicional para una aplicación de seguridad específica.
  • Versionado: todos los cambios en el esquema tienen versiones para compatibilidad con versiones anteriores y posteriores.

El esquema define tres elementos: rasgos, interfaces y recursos. Casi todas las funciones del ecosistema Nest para el funcionamiento diario se definen en el esquema. Repasemos cada elemento con más profundidad.

Rasgos

Un rasgo es una unidad de la funcionalidad básica. Pueden ser estados o capacidades generales del dispositivo, o describir la configuración que informa su comportamiento. Un solo rasgo puede ser común a muchos dispositivos o específico a un tipo de dispositivo.

Por ejemplo, en el esquema, puede definir los siguientes rasgos para su uso en dispositivos Nest:

Rasgo

Interfaces

Podemos ampliar la capacidad de composición de los rasgos agrupándolos, sobre todo si varios rasgos representan una función nueva y específica. Un grupo de tales rasgos se llama una interfaz .

Por ejemplo, una interfaz de intercomunicador puede incluir características de altavoz y micrófono:

Rasgos e interfaces

Recursos

Un recurso representa una cosa lógica o física en el esquema. Por ejemplo, un Nest Protect es un recurso. También lo es un Nest Guard. O un usuario, o una estructura como la casa del usuario.

Los recursos comprenden un conjunto de características que encapsulan su configuración, estado y capacidad.

La relación entre recursos, interfaces y rasgos se ve así:

Recursos, interfaces y rasgos

Como puede ver, algunos rasgos, como el rasgo de Movimiento, son comunes a diferentes recursos. Y algunas interfaces, como la interfaz Intercom, también son comunes a diferentes recursos. Los rasgos, interfaces y recursos se definen una vez en el esquema y se reutilizan en diferentes recursos y dispositivos del sistema Weave.

Elementos de rasgo

Los rasgos se dividen además en tres elementos principales: propiedades, comandos y eventos. Echemos un vistazo a ejemplos de cada elemento de rasgo.

Propiedades

Propiedades representar el estado de un rasgo. Las propiedades son de lectura y escritura o de solo lectura.

Por ejemplo:

  • Versión de software es una propiedad de los rasgos de identidad de dispositivo. Es un rasgo general que tienen la mayoría de los dispositivos. Termostatos, cámaras y protectores Nest: todos ellos tienen su propia versión de software particular.
  • Perno de Estado es una propiedad del rasgo pestillo de la cerradura, pero es específico para un dispositivo como el de Yale x Nido de bloqueo. Por ejemplo, no encontraría un cerrojo en un termostato Nest.

Comandos

Comandos son peticiones de la aduana de rasgos específicos para la acción de un rasgo, con una respuesta esperada. Ellos son comúnmente llamados comandos personalizados y pueden extenderse a los cambios de estado específicas para las propiedades. Por ejemplo:

  • Pestillo de la cerradura El cambio es un comando personalizado que cambia la propiedad perno Estado del rasgo pestillo de la cerradura.
  • Set User código PIN es un comando personalizado que crea un nuevo o actualiza un código PIN propiedad de usuario existente del usuario Ajustes pincodes rasgo.

Eventos

Eventos son registros de sucesos para un rasgo. Informan a un suscriptor de los cambios en las propiedades de los rasgos o algún otro tipo de evento, como un reinicio del sistema.

Por ejemplo, el caso del perno actuador de cambio de estado de los rasgos informa pestillo de la cerradura a un abonado de la situación actual de múltiples propiedades pestillo de la cerradura, así como el actor que hizo que la última propiedad del perno actuador Estado al cambio. Toda esta información se entrega como un solo evento.

Lenguaje de descripción del esquema de tejido

Las características, las interfaces y los recursos del esquema en Weave se definen y describen mediante un lenguaje específico de dominio (DSL) que aprovecha la sintaxis de Google Protocol Buffers v3. Este lenguaje se llama la armadura del esquema de lenguaje de descripción (BDM) .

WDL se ejecuta a través de un compilador que genera diferentes realizaciones y codificaciones específicas de la plataforma. El tipo de código generado depende del recurso:

  • Objective C, Swift, Java, Scala: aplicaciones móviles y servicios en la nube
  • C ++ con codificaciones TLV de Weave: dispositivos integrados y aplicaciones móviles

Profundizaremos en ejemplos de WDL más adelante.

Resumen

Que has aprendido:

  • El esquema describe el modelo de datos subyacente de un sistema de la armadura.
  • El esquema define tres elementos:
    • Rasgo unidad A de funcionalidad básica
    • Interfaz Un grupo de rasgos que representan una nueva función, específica
    • Recursos una cosa lógica o física
  • Los rasgos comprenden propiedades, comandos y eventos:
    • Propiedad el estado de un rasgo de recursos
    • Comandos petición de encargo para la acción de un rasgo
    • Evento Registro de sucesos de un rasgo
  • El esquema se define utilizando la armadura del esquema de lenguaje de descripción (BDM) , que se basa en Google búferes de protocolo v3

Para obtener información más detallada, consulte: