Terminology

Here are some terms you will hear in the coming sections, and their definitions:

COCONet

A private network where you have your own dedicated communication link that connects all your device and client nodes together. The physical connection mechanism is through the internet, but it is entirely dedicated to you, and only those whom you authorize will have access. For e.g. a home network connecting user phones to IoT Gateways and other IoT devices.

Device

A node in a COCONet representing either a physical device (such as a Gateway, Camera or Light Bulb) or a virtual software process (such as a Cloud Storage service), which has been built with the COCO Device SDK. Such devices can be provisioned and added into a COCONet by the “owner” of the COCONet.

Gateway

A type of device that allows IoT appliances or sensors not connected to the network directly to have such connectivity. For example, Zigbee or Zwave devices such as light bulbs may not have the sophistication to have direct network connectivity, but they can be connected to a Zigbee or Zwave supported gateway, which then provides network connectivity.

Client

A node in a network representing a Client Application, such as an iOS or Android Mobile App. Such a Client Application can allow a user with a COCO account to login, create a network and invite others into that network.

Network Management Node

A node representing a software process running in the COCO Cloud which is dedicated to a specific COCONet and facilitates the management of that COCONet including the addition and removal of users, devices and clients.

Resource

A service provided by a COCO Device, consisting of available actions and available information. Examples of resources include:

  1. A Light Bulb resource which is the only resource in a physical Light Bulb COCO Device.

  2. In a Switch Panel COCO Device, each switch can be a resource.

  3. A COCO Gateway is a device that can pair with Zigbee and Z-Wave appliances/sensors. In this case, each Zigbee or Z-Wave appliance/sensor can be a resource.

Capability

A logical grouping of similar or related available actions and information in a resource. For instance, a lighting app may have capabilities listed out as On/Off Control, Color Control and Level Control.

Attribute

Information indicating a resource’s state or data generated by the resource. Each capability can have one or more attributes. Examples of attributes include the On/Off State of a Light Bulb, the Speed (Level) of a Fan, or a Motion Detected/Not Detected indicator in a Motion Senor.

Command

A specific action that can be performed by a resource on demand. Each capability can have one or more commands. Examples of commands in a lighting app include turning the light on or off, changing the color or changing the brightness.

Information Request

Also known as an Info Request, this is a specific type of request sent to a resource, asking the resource to provide specific information. On being sent an Info Request, a resource returns an Information Response (or Info Response) which contains the requested information. For instance, an IR Blaster may receive an Info Request for the list of its supported Brands.

Zone

A group of one or more resources. It is similar to the usage of zones in Home Automation systems to designate regions within the home like the living room, bedroom, etc. where devices are physically located. In our platform, it can be used for any kind of categorization of resources, so that they may be browsed by zone and located more easily.

Scene

A group of one or more resource commands that are executed at the same time when the Scene is triggered by a user. For e.g. you want to switch off all the lights in a room (this is a grouping of the ‘Off’ action for every light bulb resource in the room), or perform the setup for a party (which may include many different resource actions such as turn-on disco lights, dim the main lights, turn-on the stereo system, play my playlist and so on). A scene is typically provided as a single button on a user interface which performs all of the predefined actions on being triggered.

Rule

A group of one or more actions and one or more conditions, where the actions are automatically performed on the conditions being satisfied. A condition can be a resource condition (for e.g. Light Bulb Color = Red or my motion sensor has detected occupancy), or a schedule condition (for e.g. Every Monday at 9am, or every day at 6am). At least one schedule condition AND all resource conditions must be met in order for a Rule’s actions to be executed. An action can be a resource action (e.g. change my bulb’s color to Blue) or a Scene action (e.g. trigger my party scene). With this background, here are two examples of rules:

  1. Switch on your geyser (resource action) at 6am every morning (schedule condition), or

  2. Toggle all the lights in a room (scene action) when motion is detected (resource condition).