Message Types


Introduction

Message Types are the format in which data is transmitted to and from the Geeny platform. A Message Type corresponds with a single form of telemetry that can be sent or received by a Thing.

Some examples include:

  • a “humidity” Message Type for a humidity sensor,
  • a “light switch” Message Type for receiving a command to switch a smart light bulb on and off,
  • a “heart rate” Message Type for a smart fitness device.

With a Geeny developer account, you can create the Message Types for the types of data that your connected IoT device can send and receive.

How Message Types are used

Data transmission

Message Types tell the Geeny platform about the structure and contents of a single parameter of data sent by a Thing. Each Message Type that a Thing can send or receive is defined in its Thing Type as a resource. The resource specifies how the Message Type is transmitted to or from the platform—i.e., which URI it transmits to and whether it is published or subscribed.

See the Geeny Alliance Onboarding Guide for detailed information on how to transmit data to Geeny.

Applications querying data from Things

In order to access data from a Thing, an application must subscribe to a specific Message Type via the Application Broker API. It can only access this data when the owner of a Thing (i.e., the consumer) authorizes it. When a consumer authorizes an application to access their Thing data, they are authorizing the application to consume specific Message Types sent by their Thing.

How to add a Message Type to Geeny

Developers Dashboard

The Developers Dashboard provides a web interface for managing Message Types. See the Onboarding Guide for detailed instructions.

API

On the backend, Message Types are managed by the Thing Manager API. Click here to go to the Thing Manager API reference.

Message Type model

Message Types consist of the following properties:

  • id: (UUID) Unique system identifier assigned to the Message Type upon creation.
  • name: (string) The name of the Message Type.
  • media_type: (string) The encoding format of the payload (e.g., application/cbor, application/json).
  • description: (string) A human-readable description of the Message Type.
  • tags: (Array[string]) An optional set of tags for the Message Type for categorization purposes. These should correspond with the type of data being sent, the manufacturer of the Thing, and other contextual information.

Example

{
  "description": "Fuel level expressed as a percentage of the maximum possible value",
  "media_type": "application/json",
  "tags": [
    "fuel",
    "level",
    "get",
    "percentage"
  ],
  "name": "Fuel Level",
  "created": "2017-10-17T23:57:42.063Z",
  "id": "ce8c86cc-d6b6-4811-af2e-bf73b3337fec",
  "owner": "6934c265-47a0-4d11-81c7-90240734cab2"
}