Esquema de Weave

Esquema de Weave

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

El esquema es el siguiente:

  • Estandarizado: Contiene definiciones de funcionalidad aprobadas de manera formal que proporcionan una interfaz coherente, sin importar la implementación. Por ejemplo, una bombilla representada en el esquema siempre tendrá funcionalidades principales, como estados de activación y desactivación, y acciones o niveles de atenuación.
  • Componible: 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 apertura/cierre. La funcionalidad de estos tipos de sensores se estandariza en el esquema y se puede reutilizar en todos los dispositivos.
  • Extensible: un usuario puede crear extensiones personalizadas de funcionalidad estándar. Por ejemplo, es posible que desees extender la funcionalidad estándar del sensor de movimiento del esquema con funcionalidad adicional para una aplicación de seguridad específica.
  • Control de versiones: todos los cambios en el esquema tienen versiones para la compatibilidad con versiones anteriores y posteriores.

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

Rasgos

Una característica es una unidad de funcionalidad básica. Pueden ser estados o capacidades generales del dispositivo, o describir la configuración que determina su comportamiento. Una sola característica puede ser común en muchos dispositivos, o específica para un tipo de dispositivo.

Por ejemplo, en el esquema podrías definir las siguientes características para usar en dispositivos Nest:

Rasgo

Interfaces

Podemos ampliar la componibilidad de las características si las agrupamos, en especial si varias características representan una función nueva y específica. Este grupo de características se denomina interfaz .

Por ejemplo, una interfaz Intercom podría incluir las características de bocina y micrófono:

Características e interfaces

Recursos

Un de recurso representa un elemento lógico o físico del esquema. Por ejemplo, un Nest Protect es un recurso. 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 los recursos, las interfaces y las características se ve de la siguiente manera:

Recursos, interfaces y rasgos

Como puedes ver, algunas características, como la de Motion, son comunes a diferentes recursos. Algunas interfaces, como la de Intercom, también son comunes a diferentes recursos. Las características, las interfaces y los recursos se definen una vez en el esquema y se reutilizan en diferentes recursos y dispositivos del sistema de Weave.

Elementos de la característica

Las características se dividen en tres elementos principales: propiedades, comandos y eventos. Veamos ejemplos de cada elemento de característica.

Propiedades

Las propiedades representan el estado de una característica. Las propiedades son de lectura y escritura o de solo lectura.

Por ejemplo:

  • La versión del software es una propiedad de la característica Device Identity. Esta es una característica general de la mayoría de los dispositivos. Nest Thermostat, Cameras and Protects; todos tienen sus propias versiones de software.
  • Bolt State es una propiedad de la característica de cerrojo, pero es específica para un dispositivo como la cerradura Yale x Nest. Por ejemplo, no se puede encontrar una cerradura con cerrojo en un Nest Thermostat.

Comandos

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

  • Bolt Lock Change es un comando personalizado que cambia la propiedad de estado de cerrojo de la característica de cerrojo.
  • Configurar el PIN de usuario es un comando personalizado que crea una propiedad de código de usuario nuevo o actualiza una existente de la característica Configuración de códigos PIN del usuario.

Eventos

Los eventos son registros de las características de un rasgo. Informan a un suscriptor sobre los cambios en las propiedades de las características o en otro tipo de hechos, como un restablecimiento del sistema.

Por ejemplo, el evento Cambio de estado de la traba de cerrojo de la característica de bloqueo de cerrojo informa a un suscriptor del estado actual de varias propiedades de bloqueo de cerrojo, así como del actor que hizo que la propiedad Estado del cerrojo cambiara por última vez. Toda esta información se presenta como un solo evento.

Idioma de la descripción del esquema de Weave

Las características, las interfaces y los recursos de esquema en Weave se definen y describen mediante un lenguaje específico de dominio (DSL) que aprovecha la sintaxis de la versión 3 de los búferes de protocolo de Google. Este lenguaje se llama lenguaje de descripción de esquema de Weave (WDL) .

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

  • Objective-C, Swift, Java y Scala: servicios de nube y apps para dispositivos móviles
  • C++ con codificaciones TLV de Weave: dispositivos incorporados y apps para dispositivos móviles

Profundizaremos en los ejemplos de WDL más adelante.

Resumen

Qué aprendió:

  • El esquema describe el modelo de datos subyacente para un sistema de Weave.
  • El esquema define tres elementos:
    • Trait Una unidad de funcionalidad básica
    • Interfaz Un grupo de características que representan una función nueva y específica
    • Recurso lógico o físico
  • Los rasgos comprenden las propiedades, los comandos y los eventos:
    • Propiedad : El estado de un rasgo de recursos
    • Comando para una acción personalizada de una característica
    • Evento Registro de las actividades de un atributo
  • El esquema se define mediante el lenguaje de descripción de esquemas de Weave (WDL) , que se basa en la versión 3 de los búferes de protocolo de Google.

Para obtener información más detallada, consulta lo siguiente: