The Geeny platform is a data sharing platform for cloud-connected IoT devices and applications. The goal of the Geeny platform is to act as a single connection interface for device and application providers; once they have completed the onboarding process, these providers can easily implement bidirectional data sharing with many other devices and applications without having to write separate adapters for each one.
The connection between applications and Things is established when a consumer authorizes an application to access data from their Thing. Data transmission is implemented using device-facing and application-facing APIs enabled by an authorization service and cloud-based data storage.
Data flows in and out of three domains:
The device domain refers to the Geeny platform’s interfaces for communicating with connected devices (”Things”). These include:
The Thing Manager API handles device management. It provides CRUD operations for all Geeny platform representations of devices and the data that they can send and receive: Things, Thing Types and Message Types. Authentication with this API relies on a user JSON Web Token (JWT).
The Developers Dashboard provides a web interface for managing Things, Thing Types and Message Types.
We provide a REST API for data transmission to the Geeny platform. Thing Providers can POST to this API when data is transmitted from their devices. Authentication with this API is managed using a access key for a Thing Type that corresponds with the Thing Provider’s device type.
For more information about this API, see the Geeny Alliance Onboarding Guide.
The application domain refers to the platform’s interface for communicating with applications. Application providers can connect their applications to the platform using our Developers Dashboard. Applications created on this dashboard are stored in our Application Registry.
To access data sent by Things, application providers must first implement this API key in the application as well as a set of Geeny OAuth credentials. Then the application can pull the Thing data via the Application Broker API as soon as it becomes available.
The owner of a Thing (i.e., the consumer) must authorize applications to access their Thing data.
The authorization domain refers to the platform’s mechanisms for authorizing users, applications and Things. The Geeny Connect API is our implementation of OAuth 2 and can be used either as a client or a provider. It issues API keys to Geeny developers so that they can use the Geeny APIs. Authentication is handled using a username and password. Separate authorization services issue API access keys for applications to query device data and Thing Providers to transmit data to the Geeny platform.
Applications connected to Geeny can query data from Things and can send commands to Things to perform actions.
Connected devices send and receive data in the format of Message Types. A Message Type corresponds with a single form of telemetry that can be published or subscribed to.
A Thing Type is a class of a device (or other data source) that a user can connect to Geeny. It contains meta information about the data source and a set of resources that tell Geeny what type of data it can send and receive.
A Thing is a data source that is connected to Geeny. This can be a smart device, a smartphone, a Gateway that communicates with non-IP-enabled devices, a computer, or even a virtual device running on a computer.