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

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á funciones principales, como estados de activación o desactivación y acciones o niveles de atenuación.
  • Capacidad de composición: un usuario puede crear recursos complejos compuestos por bits más pequeños de funciones bien definidas. Por ejemplo, un Nest Detect contiene dos tipos de sensores: movimiento y apertura y cierre. La funcionalidad de estos tipos de sensores se estandariza en el esquema y se puede volver a usar en todos los dispositivos.
  • Extensible: Un usuario puede crear extensiones personalizadas de funcionalidad estándar. Por ejemplo, es posible que quieras extender la funcionalidad del sensor de movimiento estándar del esquema con funciones adicionales para una aplicación de seguridad específica.
  • Control de versiones: todos los cambios en el esquema se someten a versiones con versiones posteriores para retrocompatibilidad y retrocompatibilidad.

El esquema define tres elementos: características, interfaces y recursos. Casi todas las funciones del ecosistema de Nest para el funcionamiento diario se definen en el esquema. Analicemos cada elemento en mayor profundidad.

Rasgos

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

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

Rasgo

Interfaces

Podemos extender la composición de los rasgos agrupándolos, especialmente si varios rasgos representan una nueva función específica. Este tipo de características se denomina interfaz .

Por ejemplo, una interfaz de Intercom puede incluir las características de la bocina y el micrófono:

Características e interfaces

Recursos

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

Los recursos incluyen 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 características

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 para distintos 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 una característica

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

Properties

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 de software es una propiedad de la característica de identidad del dispositivo. Es una característica general que la mayoría de los dispositivos tienen. Nest Thermostats, Cameras y Protects; todos tienen su propia versión de software.
  • Bolt State es una propiedad de la característica Bolt Lock, pero es específica de un dispositivo, como la cerradura × Nest. Por ejemplo, no encontrarás un cerrojo en un Nest Thermostat.

Comandos

Los comandos son solicitudes personalizadas de acciones 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 modifica la propiedad Bolt State de la característica Bolt Lock.
  • Set User Pincode es un comando personalizado que crea una propiedad nueva o actualiza una propiedad Usercodecode de la característica de configuración de códigos PIN del usuario.

Eventos

Los eventos son registros de las ocurrencias de una característica. Informan a un suscriptor sobre los cambios en las propiedades de las características o en algún otro tipo de evento, como un restablecimiento del sistema.

Por ejemplo, el evento Cambios de estado del accionador 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 el actor que causó el cambio en la propiedad de estado de accionador de cerrojo. Toda esta información se entrega como un solo evento.

Idioma de descripción del esquema de Weave

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 los búferes de protocolo de Google v3. Este lenguaje se denomina lenguaje de descripción de esquema de Weave (WDL) .

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

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

Ahondaremos 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:
    • Atributo : Una unidad de funcionalidad básica.
    • Interfaz : grupo de características que representan una nueva función específica
    • Recurso : es un aspecto lógico o físico.
  • Los rasgos incluyen propiedades, comandos y eventos:
    • Propiedad : El estado de una característica de recursos
    • Comando para la acción personalizada de una característica
    • Evento de registros de las características de una característica
  • El esquema se define mediante , el lenguaje de descripción de esquema 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: