GadgetKeeper is based on several core concepts which should be understood in order to work with GadgetKeeper effectively:
|thing||Basically defined as any physical object or entity that has attributes and behaviours associated with it. In the GadgetKeeper platform, a Thing is used to model real-world gadgets, such as electronic devices, appliances, software applications, etc.|
|thing connection||Defines the communication protocol between GadgetKeeper and Thing. The GK platform uses the JSON-RPC 2.0 protocol, which is a simple remote procedure call protocol that supports MQTT/TCP/HTTP/STOMP/XMPP as the transport mechanism.|
Any definite physical attribute or behaviour that can provide information about the state of the Thing. Each property in GK must have a data type.
There are three types of properties:
Defines the procedure for an action to be implemented by Thing. Any request/response data types may be optionally defined for each method.
There are two types of methods:
|thing event||Events are activated by a remote call from Thing or from a script property/method in GK, which causes a state change. Event must have a data type.|
|thing trigger||Causes an action (such as send email) to be executed in response to particular Event. Trigger logic is coded in Java script.|
|thing schedule||Defines cron-based schedule to execute a method or cause an event.|
Identifies one of various types of data, such as float, integer or boolean, that determines the possible value formats for data.
Three groups of data types are supported:
Used to enable API interactions on GadgetKeeper, and allows access to properties, methods, events, etc. of selected things. Access permissions include Read, Write, and Publish Event
|template||A base model used for a Thing that keeps track of each new version. Templates are also used to create new Things, which are clone copies.|
|template version||Provides the mechanism to track changes made to Thing on a Template, and to update Things created from a Template.|
|product||Based on a Template and contains a list of Serial Numbers to facilitate provisioning.|
|serial number||A unique identification number used to identify each device in its field installation.|