En Google, luchamos por la equidad racial de la comunidad negra. Más información
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Esquema de tejido

Esquema de tejido

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

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 principal, 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 están versionados 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 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. Este grupo de rasgos se denomina 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 en el sistema Weave.

Elementos característicos

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

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

Por ejemplo:

  • La versión de software es una propiedad del rasgo de identidad del 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.
  • Bolt State es una propiedad del rasgo Bolt Lock, pero es específico de un dispositivo como Yale x Nest Lock. Por ejemplo, no encontrará un cerrojo en un termostato Nest.

Comandos

Los comandos son solicitudes personalizadas específicas de un rasgo para la acción de un rasgo, con una respuesta esperada. Suelen denominarse comandos personalizados y pueden extenderse a cambios de estado específicos para las propiedades. Por ejemplo:

  • Bolt Lock Change es un comando personalizado que cambia la propiedad Bolt State del rasgo Bolt Lock.
  • Set User Pincode es un comando personalizado que crea una propiedad nueva o actualiza una propiedad existente de User Pincode del rasgo User Pincodes Settings.

Eventos

Los 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 evento Bolt Actuator State Change del rasgo Bolt Lock informa al suscriptor del estado actual de varias propiedades de Bolt Lock, así como del actor que provocó por última vez el cambio de la propiedad Bolt Actuator State. 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 denomina lenguaje de descripción de esquema de tejido (WDL) .

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 para un sistema Weave.
  • El esquema define tres elementos:
    • rasgo Una unidad de funcionalidad básica
    • Interfaz Un grupo de rasgos que representan una función nueva y específica.
    • Resource Una cosa lógica o física
  • Los rasgos comprenden propiedades, comandos y eventos:
    • propiedad El estado de un rasgo de recurso
    • Comandos Solicitud personalizada de acción de un rasgo
    • Event Registro de sucesos para un rasgo
  • El esquema se define mediante el Weave Schema Description Language (WDL), que se basa en Google Protocol Buffers v3

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