Help

Controller Object Model

Command

A non-addressed, preferably device agnostic, object representation of a protocol-specific directive or ability. Depending on the protocol, it is possible that a Command may represent a virtualized aggregation of commands.

Address

An object representation of a protocol-specific endpoint identifier used by the protocol to identify a consumer of a command. Depending on the protocol, it is possible that an Address may represent a virtualized aggregation of physical addresses. In fact, protocols that support linking will require address aggregation.

Event

A protocol-specific object representation of an addressed command. An event consists of a single Command and a single Address. Depending on the protocol, it is possible that an Event may represent a virtualized aggregation of events. In fact, protocols that support scenes, will require event aggregation.

Macro

An aggregation of heterogeneous Events. Implementations of the Macro interface must be protocol-independent.

TimedMacro

One of many planned convenience Macro implementations. This Macro allows for scheduled triggering.

Controller

A protocol-specific object that may consume Events, generate Events, or both. In most cases, a Controller implementation will act as the bridge between the Registrar and a hardware layer. However, it is conceivable to have a specialized Controller that is used for other purposes as well.

Translator

An object that knows how to translate Events (Addresses and Commands) from one protocol to another.

Registrar

The non-protocol-specific command-center. This object is a singleton. It acts as a router, translator, and a dispatcher. External entities will queue an Event. The Registrar will inspect that event and route it appropriately. The Registrar will automatically translate any Event using registered Translators and dispatch the Event to Controllers as applicable.

Creative Commons License Content on this website is licensed under Creative Commons BY-NC-SA 3.0.