The Cloud of Things (German Cloud der Dinge) is a platform for the Internet of Things by T-Systems International GmbH. Inside this repository you will find a Java based SDK to interface with the Cloud of Things API.
Current version is: 2.0.0
Add this to your pom.xml
to include the SDK in your Maven Repo
<dependency>
<groupId>com.telekom.m2m.cot</groupId>
<artifactId>java-rest-client</artifactId>
<version>2.0.0</version>
</dependency>
Example of a basic connect to the platform:
CloudOfThingsPlatform cotPlatform = new CloudOfThingsPlatform("hostname", new CotCredentials("tenant", "username", "password"));
InventoryApi inventoryApi = cotPlatform.getInventoryApi();
inventoryApi.get("idOfManagedObject");
Developers can find further information and examples in the DEVELOPER.md file.
You can find the Java Doc of the latest release here: http://cloud-of-things.github.io/cot-java-rest-sdk/
Short information about what has changed between releases.
-
Measurement real time notification functionality was moved from InventoryApi to MeasurementApi
-
Prevent injection in update method (Pull Request #90).
-
More robust deserialization catching IllegalArgumentException being thrown by Spring Boot Class Loader for properties like "A+:1" in ThreePhaseElectricityMeasurement (Pull Request #91).
-
Fix erroneously wrapped numeric values in deserialized ExtensibleObjects (Pull Request #92), e.g.: serialized Object: temperature=ExtensibleObject{anyObject={unit=°C, value=100.0}} will be deserialized into:
OLD: "temperature":{ "value":{ "value":"100.0" }, "unit":"°C" } FIXED: "temperature":{ "value":100.0, "unit":"°C" }
-
Includes Pull Request #94:
- Usage of newest dependencies
- Cleanup and improvements according to code inspection
-
EventApi provides the update of events as well now. (Pull Request #95)
-
Fixed cast in getSource() method of Alarm and Event
-
Added the getter as counterpart of set(Object) in ExtendedObject
-
Includes (Pull Request #96):
- Fixed some unstable integration tests due to maybe changed behavior of the c8y API
- Provided more details from the c8y error message in CotSdkException
- Includes Pull Request #73: Efficiently iterate over all objects in a collection via Java 8 Stream (accessible via
stream()
): pagination is automatically performed in the background - Resolve issue #72: Improved paging performance
- Fix double slashes in url (Pull Request #77)
- Provide functionality to get all SmartREST Templates by X-ID
- Resolve issue #52: provide http status code in thrown exception in getMeasurement()
- Improve usage of accept and content-type headers in rest client
- Improve usage of OkHttpClient so that lesser resources will be used
- Fix handling of binary data using byte array
- Remove double slashes in rest api paths to avoid http code 404
- Resolve issue #51: provide failure reason for failed operations
- Resolve issue #53: provide a new method for creation NewDeviceRequests
- Handle filters as enum and validate filters supported by cot
- Improve Notification class which now provides realtime action
- Update of okhttp.
- Better integration-tests.
- Better login-process (include tenant in username).
- NewDeviceRequestStatus-enum.
- Refactoring.
- Improved Examples: Add examples for SDK-Users (see DEVELOPER.md)
- Implemented Sensor Library
- Implemented Binaries API
- Final adjustments for MIT License
- Improve ManagedObject-deserialization
- Credentials for integration tests will be read from environment variables instead of property file
- Refactor device permission handling
- A lot of improvements and cleanups
- Provides and uses SmartRequest/-Response classes
- Complete Device control
- Complete Real-time notifications
- Complete Real-time statements
- Complete Device management library
- Complete Users API
- Complete Retention Rule API
- Complete SmartREST API
- Complete Audit API
- Refactor collection classes extending JsonArrayPagination base class
- Most important change is the removal of right now unused parameter tenant in CloudOfThingsPlatform constructor (See commit 62079fe).
- Unsuccessful creation/store of objects in the CoT will now result in a CotSdkException.
- New method DeviceCredentialsApi.NewDeviceRequest(..).
- MeasurementsApi supports creating measurement collections.
- Improvements, e.g. connection exception handling
- Short information about what has changed between releases.
- Bulk Operations (beta)
- Complete Inventory
- Get ManagedObjects in Collection
- Complete Alarm API
- Retrieve collections
- Update Alarms
- Complete Device Credentials API
- Complete IdentityApi
- Complete Events
- Complete Device registration process
- Implement removal of devices and its belongings
- Complete MeasurementsAPI
- Refactor from single methods to Query objects.
- Filter Date
- Filter FragmentType
- ... and combinations
- DELETE - delete a measurement collection
- Complete Inventory
- DELETE a managed object reference