blob: 43aa8ff4dad463c6568c30056be261d1dd0daae9 [file] [log] [blame] [view]
# Glossary
## A
#### account
An account created at [home.nest.com](https://home.nest.com) that grants the
account owner (user) control of the Nest device via web/mobile applications.
#### address
Each node in a Weave fabric has an IPv6 unique local address (ULA).
#### application layer
Weave profiles and associated gRPC APIs that provide the shared protocols used
to communicate between devices and service hosts.
#### application layer protocols
Weave protocols that focus on process-to-process communication across an IP
network and provide a communication interface and end-user services.
#### application level security
Weave devices may be included in one or more security domains, which are secured
with domain keys. The keys include a rolling epoch key and are managed by an
authorization service. See [authorization service](#authorization-service).
#### authorization service
Service that authenticates devices and clients of the Weave system, and provides
to devices and clients authorized application keys and rolling epoch keys used
to implement application level security. See [application level
security](#application-level-security).
## B
#### BLE
A wireless radio protocol supported by Weave.
#### border router
A device in the home area network (HAN) that routes Weave messages between
Thread and Wi-Fi networks, and establishes a tunnel between the HAN and the Nest
Service.
## C
#### CASE
The Certificate-assisted Session Establishment (CASE) protocol is the primary
Weave secure session establishment protocol using Weave certificates. This can
be a hardware certificate or an application level security certificate provided
by the authorization service. See [Weave certificate](#weave-certificate).
#### controller
Controllers are services that implement advanced functionality. Examples include
the Lighting group controller, HVAC zone controller, and Occupancy arbiter
controller.
#### command
An application-specific request that cannot be accomplished by standard
[requests](#request). Sometimes called a _custom command_.
## D
#### device ID
Type of node ID. Each device has a 64-bit globally unique ID assigned at
manufacturing time. It is tied to the device certificate for authenticating the
device's identity. Used as a node ID for devices. See [node ID](#node-id).
## E
#### event
A unidirectional assertion of truth about a trait at a specific time, with no
expected response. For example, a passcode entered to unlock a deadbolt
generates an event. The most common events are property changes expressed with
the special-purpose _notify_ [request](#request).
## F
#### fabric key
A key unique to each Weave fabric generated by the first device creating the
fabric, and used to pair subsequent devices to the fabric.
#### fabric ID
A unique 64-bit value that globally identifies the Weave fabric. Randomly
generated when a Nest device is introduced to a structure for the first time.
#### fabric provisioning
Pairs devices to the local Weave fabric by providing the fabric ID and fabric
key necessary to communicate with other devices and services.
#### factory provisioning
A manufacturing process that preconfigures devices with Weave profiles and a
hardware certificate.
#### front-end module (FEM)
An integrated circuit (IC) that includes all the components necessary to process
an incoming radio frequency (RF) signal into an intermediary frequency (IF) or
into a digital form.
## H
#### hardware certificate
A Weave certificate that is factory-provisioned at manufacturing time onto a
device. This certificate is used to authenticate the device when pairing the
device to the Weave fabric, and to the Nest Service.
#### home area network (HAN)
A networked set of devices in the home that can be part of a Weave fabric, and
which provides secure wireless communications.
## I
#### in-field provisioning
Supplies deployed devices the information they need to be full participants in a
Weave fabric.
#### interface
A set of traits that describe a higher-level functionality. For example, the
functionality for a colored light contains the traits OnOff, Level, and Color,
all of which work together to implement the ColorLight interface. Defined in the
Weave [schema](#schema).
## L
#### leaving a fabric
Breaking the relationship between a member node and the rest of the nodes in a
Weave fabric, transforming the node to an independent node. If a node leaves a
Weave fabric consisting of only two nodes, the fabric ceases to exist.
## M
#### messages
Formatted data passed between nodes in the same network to effect change or
communicate information.
#### metadata
Information placed on various schema components to formally constrain or further
describe that component, for example, marking a trait property as "read-only."
#### mutual subscription
When resources subscribe to each other, and each act as both publisher and
subscriber for a trait.
## N
#### NCP
Network coprocessor. An NCP implementation places the Thread stack on one
integrated circuit, while the Weave and application software reside on a second
chip. Compare to [SoC](#soc).
#### Nest API
A real-time data API offering subscription-based access to data shared by Nest
devices. With the Nest API, you can build products that access Nest device data
to read or write shared data values.
#### Nest Service
A cloud-based infrastructure that connects HAN devices into a data model,
provides remote access, and implements intelligent controllers to create a
comprehensive ecosystem.
#### network provisioning
The act of establishing connectivity between a device and the local Wi-Fi or
Thread network. It can involve supplying a network ID and routing information or
network access credentials, such as the Wi-Fi pre-shared key.
#### node
A Weave device or service host that is capable of participating in a Weave
fabric. Every node in the fabric has a unique IPv6 address. See [service
host](#service-host) and [Weave fabric](#weave-fabric).
#### node-acquired address
IPv4 or IPv6 address assigned to a device by the end user's network
infrastructure, such as via DHCP.
#### node ID
A unique 64-bit value that globally identifies a node in the Weave fabric.
## O
#### one-way subscription
A request from a subscriber to a publisher for one or more trait instances.
#### OTA
Over-the-air firmware updates.
## P
#### pairing
The process of joining a device to a home network, Weave fabric, and Nest
Service user account.
#### pairing code
Character code used to pair the device with the Weave fabric. This is encoded in
the Weave Device Descriptor and printed alongside the QR code to enable pairing.
See [Weave Device Descriptor](#weave-device-descriptor).
#### PASE
Password-authenticated session establishment, a protocol for mutual
authentication, used to establish the initial secure session between two Weave
devices using the pairing code.
#### property
Properties are characteristics of a trait that represent the state of a
resource. For example, the brightness of a light or whether someone is home.
Comprises type, name, tag, and metadata, such as default value and constraints.
Defined in the Weave [schema](#schema).
#### protocol
Defines the packet structure of the data transmitted, as well as the control
commands that manage a session.
#### publisher
A protocol role used in Weave Data Management. A publisher produces and serves
versioned instances of one or more schemas to one or more subscribers, and sends
notifications on a change to the schema. See [Weave Data
Management](#weave-data-management).
## R
#### real-time trait management
A function of Weave Data Management in which all the state requests and events
for traits are managed in a publish-subscribe model.
#### request
A Weave message type. Requests are requests for action on a trait with an
expected response. Requests may have parameters and a response with a status and
parameters. Properties are viewed and monitored with the standard _view_
request, property changes are effected with the standard _update_ request, and a
publisher informs a subscriber on a change to a trait with the standard _notify_
request.
Application-specific requests beyond _view_, _update_, and _notify_ are handled
by [commands](#command).
#### resource configuration
Configuration of how the traits of a particular resource definition are
implemented between a device and controllers. Defined in the Weave
[schema](#schema).
#### resource handler
A resource proxy created in the Nest Service for every device in the HAN, to
enable remote access to the device.
#### resource ID
Globally unique resource identifier. For devices, this is the device ID. Other
non-device resources are assigned by the Nest Service when they are created.
#### resource proxy
Replicated handler of a resource's traits used for locality of data or to handle
sleepy endpoints. A proxy manages properties and queues resource requests and
commands.
#### resource
A logical or physical thing, such as a device, structure, or user. It comprises
a set of trait and interface instances that describe its capabilities and
behaviors. Defined in the Weave [schema](#schema).
#### RTOS
Real-time operating system used on constrained microcontrollers. Weave uses
[FreeRTOS](https://www.freertos.org/).
## S
#### schema
A formal description of standard and vendor-specific traits and interfaces.
#### service directory
A directory service available on a Weave fabric.
#### service endpoint
A Nest Service endpoint implementing a specific Weave profile protocol addressed
by a single service endpoint ID in the Weave fabric.
#### service endpoint ID
A type of node ID. Each service endpoint defined in the Nest Service is
identified by a service endpoint ID. The IDs are unique, assigned by Nest, and
will never change.
#### service host
The entity (device, service, or app) responsible for a specific trait.
Responsibilities include managing state, responding to requests and commands,
and triggering events.
#### service provisioning
Associates a Weave device with the Nest Service and a user account.
#### SoC
System on a chip. In SoC implementations, the Thread, Weave, and application
software all reside on a single integrated circuit. Compare to [NCP](#ncp).
#### state
The set of property values associated with a resource and trait at a particular
time. The state of a resource is composed of the states of its traits. See
[resource](#resource), [trait](#trait), and [state](#state).
#### state event
A standard subset of events used for notification of a state change on a
resource or trait.
#### subscriber
A protocol role used in Weave Data Management. A subscriber views and consumes
versioned instances of one or more externally-published schemas. It can change
the versioned instance of a published schema, or issue an application-specific
command. See [Weave Data Management](#weave-data-management).
## T
#### TAKE
Token-authenticated key exchange, an authentication protocol for BLE user tokens
used by key fobs or mobile devices.
#### TLV
Type-length-value encoding used for compact binary data serialization.
#### trait
Reusable unit of functionality composed of properties, events, requests, and
metadata. Defined in the Weave [schema](#schema).
#### tunnel
A secure route established by a border router for transferring Weave IPv6 UDP
messages between the HAN and the Nest Service.
## U
#### user
A person who owns a Nest device, has a Nest account, has installed a Nest device
in a structure, and has connected their device with the Nest Service.
## V
#### Vendor ID
Unique 16-bit identifier for the company of origin used for namespacing
vendor-specific trait and resource type definitions.
#### vendor registry
A logical service infrastructure component that contains the mapping of Vendor
IDs to vendors and allows Weave to read existing vendor information and create
new vendors.
#### vendor trait extension
A vendor-specific extension to a standard trait which can add properties,
property value constraints, custom commands, command arguments, and events. Only
available within the vendor's namespace. See [trait](#trait).
## W
#### Weave
Network and application protocol designed to support connected products. It
provides a secure, robust communications platform for connected devices and is
already running in Nest products around the world.
#### Weave certificate
A data-reduced and Weave TLV-encoded X.509-style elliptic curve cryptography
(ECC) certificate used to establish secure sessions between Weave nodes.
#### Weave Data Language
A descriptor language that defines the Weave schema, including resource,
interface, trait, and service definitions.
#### Weave Data Management
An application protocol used for [real-time trait
management](#real-time-trait-management). Weave Data Management provides compact
operations for all request message types, providing asynchronous notifications
of property state changes.
#### Weave Device Descriptor
Data encoded into a QR code printed on a device providing information required
to pair the device to the network. Includes the pairing code and the product
type and version. See [pairing code](#pairing-code).
#### Weave fabric
A network consisting of all connected home devices, the Nest Service, and mobile
devices. The fabric enables connected devices to securely cooperate in providing
services to the user, their family, and guests.
#### Weave profile
The set of tags and messages defining application layer protocols on Weave, such
as Weave Data Management for managing trait data, or Time Services for
synchronizing time.
#### Weave Reliable Messaging protocol
A lightweight messaging protocol for Weave to send messages reliably between two
devices in a Weave fabric.
#### Weave SDK
Nest's RTOS and Linux implementation of the Weave communications stack, network
management, and common Weave profiles, which you use to build device code.