Initial commit: thingsboard-client-demo
This commit is contained in:
commit
9031a2f4e7
|
|
@ -0,0 +1,61 @@
|
||||||
|
# Maven
|
||||||
|
target/
|
||||||
|
pom.xml.tag
|
||||||
|
pom.xml.releaseBackup
|
||||||
|
pom.xml.versionsBackup
|
||||||
|
pom.xml.next
|
||||||
|
release.properties
|
||||||
|
dependency-reduced-pom.xml
|
||||||
|
buildNumber.properties
|
||||||
|
.mvn/timing.properties
|
||||||
|
.mvn/wrapper/maven-wrapper.jar
|
||||||
|
|
||||||
|
# Java
|
||||||
|
*.class
|
||||||
|
*.jar
|
||||||
|
*.war
|
||||||
|
*.ear
|
||||||
|
*.log
|
||||||
|
*.ctxt
|
||||||
|
.mtj.tmp/
|
||||||
|
hs_err_pid*
|
||||||
|
replay_pid*
|
||||||
|
|
||||||
|
# IntelliJ IDEA
|
||||||
|
.idea/
|
||||||
|
*.iml
|
||||||
|
*.iws
|
||||||
|
*.ipr
|
||||||
|
out/
|
||||||
|
|
||||||
|
# Eclipse
|
||||||
|
.classpath
|
||||||
|
.project
|
||||||
|
.settings/
|
||||||
|
bin/
|
||||||
|
|
||||||
|
# VS Code
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
# macOS
|
||||||
|
.DS_Store
|
||||||
|
.AppleDouble
|
||||||
|
.LSOverride
|
||||||
|
|
||||||
|
# Windows
|
||||||
|
Thumbs.db
|
||||||
|
ehthumbs.db
|
||||||
|
Desktop.ini
|
||||||
|
|
||||||
|
# Linux
|
||||||
|
*~
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
logs/
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# Temporary files
|
||||||
|
*.tmp
|
||||||
|
*.bak
|
||||||
|
*.swp
|
||||||
|
*~.nib
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<groupId>com.tuoheng</groupId>
|
||||||
|
<artifactId>hyf</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<artifactId>thingsboard-client-demo</artifactId>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
|
<name>thingsboard-client-demo</name>
|
||||||
|
<url>http://maven.apache.org</url>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<id>thingsboard</id>
|
||||||
|
<url>https://repo.thingsboard.io/artifactory/libs-release-public</url>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.thingsboard</groupId>
|
||||||
|
<artifactId>rest-client</artifactId>
|
||||||
|
<version>4.2.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>junit</groupId>
|
||||||
|
<artifactId>junit</artifactId>
|
||||||
|
<version>3.8.1</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
||||||
|
|
@ -0,0 +1,83 @@
|
||||||
|
package com.tuoheng;
|
||||||
|
|
||||||
|
import org.thingsboard.rest.client.RestClient;
|
||||||
|
import org.thingsboard.server.common.data.Device;
|
||||||
|
import org.thingsboard.server.common.data.EntityType;
|
||||||
|
import org.thingsboard.server.common.data.kv.AttributeKvEntry;
|
||||||
|
import org.thingsboard.server.common.data.kv.TsKvEntry;
|
||||||
|
import org.thingsboard.server.common.data.page.PageData;
|
||||||
|
import org.thingsboard.server.common.data.page.PageLink;
|
||||||
|
import org.thingsboard.server.common.data.query.*;
|
||||||
|
import org.thingsboard.server.common.data.util.CollectionsUtil;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hello world!
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class App
|
||||||
|
{
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
// ThingsBoard REST API URL
|
||||||
|
String url = "http://iot.t-aaron.com:18080";
|
||||||
|
// Default Tenant Administrator credentials
|
||||||
|
String username = "tenant@thingsboard.org";
|
||||||
|
String password = "tuoheng2023";
|
||||||
|
// Creating new rest client and auth with credentials
|
||||||
|
RestClient client = new RestClient(url);
|
||||||
|
client.login(username, password);
|
||||||
|
|
||||||
|
PageData<Device> tenantDevices;
|
||||||
|
PageLink pageLink = new PageLink(10);
|
||||||
|
do {
|
||||||
|
// Fetch all tenant devices using current page link and print each of them
|
||||||
|
tenantDevices = client.getTenantDevices("", pageLink);
|
||||||
|
// tenantDevices.getData().forEach(System.out::println);
|
||||||
|
for (Device device : tenantDevices.getData()) {
|
||||||
|
System.out.println(device.getName());
|
||||||
|
System.out.println(device.getId().getEntityType().name());
|
||||||
|
|
||||||
|
ArrayList arrayList = new ArrayList();
|
||||||
|
arrayList.add("connectorType");
|
||||||
|
arrayList.add("humidity");
|
||||||
|
arrayList.add("data.job_number");
|
||||||
|
List<AttributeKvEntry> attributeKvEntries = client.getAttributeKvEntries(device.getId(), arrayList);
|
||||||
|
|
||||||
|
for (AttributeKvEntry attributeKvEntry : attributeKvEntries) {
|
||||||
|
System.out.println(attributeKvEntry.getKey() + ":" + attributeKvEntry.getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
if(device.getId().getEntityType().name().equals("DEVICE")) {
|
||||||
|
List<String> kvEntries = client.getTimeseriesKeys(device.getId());
|
||||||
|
if(!CollectionsUtil.isEmpty(kvEntries)){
|
||||||
|
|
||||||
|
List<TsKvEntry> latest = client.getLatestTimeseries(device.getId(),kvEntries);
|
||||||
|
if(!CollectionsUtil.isEmpty(latest)){
|
||||||
|
for(TsKvEntry latestKvEntry : latest){
|
||||||
|
System.out.println(latestKvEntry.getKey() + ":" + latestKvEntry.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
pageLink = pageLink.nextPageLink();
|
||||||
|
} while (tenantDevices.hasNext());
|
||||||
|
|
||||||
|
// Get information of current logged in user and print it
|
||||||
|
// client.getUser().ifPresent(System.out::println);
|
||||||
|
|
||||||
|
// Perform logout of current user and close the client
|
||||||
|
|
||||||
|
|
||||||
|
client.logout();
|
||||||
|
client.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
package com.tuoheng;
|
||||||
|
|
||||||
|
import junit.framework.Test;
|
||||||
|
import junit.framework.TestCase;
|
||||||
|
import junit.framework.TestSuite;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unit test for simple App.
|
||||||
|
*/
|
||||||
|
public class AppTest
|
||||||
|
extends TestCase
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Create the test case
|
||||||
|
*
|
||||||
|
* @param testName name of the test case
|
||||||
|
*/
|
||||||
|
public AppTest( String testName )
|
||||||
|
{
|
||||||
|
super( testName );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the suite of tests being tested
|
||||||
|
*/
|
||||||
|
public static Test suite()
|
||||||
|
{
|
||||||
|
return new TestSuite( AppTest.class );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Rigourous Test :-)
|
||||||
|
*/
|
||||||
|
public void testApp()
|
||||||
|
{
|
||||||
|
assertTrue( true );
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue