The Thing Architecture

The philosophy behind the architecture describes the way we think about the Internet of Things and home automation systems, and informs our approach to the problem of connecting devices together.

Architecture Diagram

The steward is the center of the system, monitoring and controlling all sorts of things, according to the directives it receives from various clients.

Developers: the links in the remainder of this document will take you to the relevant API information.

Communicating with Things

There are three different protocols that the steward uses to communicate with a thing, the first is actually a grab bag of legacy protocols,

In addition the steward also implements two standard protocols which a device can choose to support to be "Thing System native."

Communicating with Clients

There are two different kinds of clients that the steward interacts with:

Typically, an apprentice starts with by asking a couple of questions in order to construct a prefab. A prefab is an internal structure used by the apprentice in order to guide future actions. For example, a "lighting apprentice" might start by asking you to group the lights in your home into natural units (such as "living room", "entry way", and so on).

Communicating with the Cloud

The steward implements the hidden server side of a rendezvous protocol. What that means is that you can have the steward listen for traffic on the Internet while sitting behind your home firewall.

The steward implements a robust security model, so clients are required to use either https or wss (secure web sockets) to connect to the steward, and then authenticate themselves using a time-based OTP system. Future implementations of the steward are planned to support ssh in addition to https and wss.