forked from kevin.shehu/GGD
ADD : NEW Format for all the code with prettier
parent
64e7af7f13
commit
504baa1962
|
@ -1,39 +1,51 @@
|
||||||
package Credentials;
|
package Credentials;
|
||||||
|
|
||||||
public class UserCredentials {
|
public class UserCredentials {
|
||||||
private final String username = "kevin.shehu@hochschule-rhein-waal.de";
|
|
||||||
private final String password = "DK7SxFkGJgnLhnU3";
|
|
||||||
private final String baseURL = "https://api.whysor.com/";
|
|
||||||
private final String devUrl = "https://api.dev.whysor.com/";
|
|
||||||
private static final String homeRoot = "D:\\WORK\\GGD\\src\\main\\java\\Data\\";
|
|
||||||
|
|
||||||
public static String getHomeRoot() {
|
private final String username = "kevin.shehu@hochschule-rhein-waal.de";
|
||||||
return homeRoot;
|
private final String password = "DK7SxFkGJgnLhnU3";
|
||||||
}
|
private final String baseURL = "https://api.whysor.com/";
|
||||||
|
private final String devUrl = "https://api.dev.whysor.com/";
|
||||||
|
private static final String homeRoot =
|
||||||
|
"D:\\WORK\\GGD\\src\\main\\java\\Data\\";
|
||||||
|
|
||||||
public String getUsername() {
|
public static String getHomeRoot() {
|
||||||
return username;
|
return homeRoot;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPassword() {
|
public String getUsername() {
|
||||||
return password;
|
return username;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getBaseURL() {
|
public String getPassword() {
|
||||||
return baseURL;
|
return password;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDevUrl() {
|
public String getBaseURL() {
|
||||||
return devUrl;
|
return baseURL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public String getDevUrl() {
|
||||||
public String toString() {
|
return devUrl;
|
||||||
return "UserCredentials{" +
|
}
|
||||||
"username='" + username + '\'' +
|
|
||||||
", password='" + password + '\'' +
|
@Override
|
||||||
", baseURL='" + baseURL + '\'' +
|
public String toString() {
|
||||||
", devUrl='" + devUrl + '\'' +
|
return (
|
||||||
'}';
|
"UserCredentials{" +
|
||||||
}
|
"username='" +
|
||||||
|
username +
|
||||||
|
'\'' +
|
||||||
|
", password='" +
|
||||||
|
password +
|
||||||
|
'\'' +
|
||||||
|
", baseURL='" +
|
||||||
|
baseURL +
|
||||||
|
'\'' +
|
||||||
|
", devUrl='" +
|
||||||
|
devUrl +
|
||||||
|
'\'' +
|
||||||
|
'}'
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,28 +1,26 @@
|
||||||
package Files;
|
package Files;
|
||||||
|
|
||||||
import java.io.File; // Import the File class
|
import java.io.File; // Import the File class
|
||||||
import java.io.FileNotFoundException; // Import this class to handle errors
|
import java.io.FileNotFoundException; // Import this class to handle errors
|
||||||
import java.util.Scanner; // Import the Scanner class to read text files
|
import java.util.Scanner; // Import the Scanner class to read text files
|
||||||
|
|
||||||
public class ReadFile {
|
public class ReadFile {
|
||||||
public String data;
|
|
||||||
|
|
||||||
public String ReadFromFile(String path){
|
public String data;
|
||||||
|
|
||||||
try {
|
public String ReadFromFile(String path) {
|
||||||
File myObj = new File(path);
|
try {
|
||||||
Scanner myReader = new Scanner(myObj);
|
File myObj = new File(path);
|
||||||
while (myReader.hasNextLine()) {
|
Scanner myReader = new Scanner(myObj);
|
||||||
data = myReader.nextLine();
|
while (myReader.hasNextLine()) {
|
||||||
System.out.println(data);
|
data = myReader.nextLine();
|
||||||
}
|
System.out.println(data);
|
||||||
myReader.close();
|
}
|
||||||
} catch (FileNotFoundException e) {
|
myReader.close();
|
||||||
System.out.println("An error occurred.");
|
} catch (FileNotFoundException e) {
|
||||||
e.printStackTrace();
|
System.out.println("An error occurred.");
|
||||||
}
|
e.printStackTrace();
|
||||||
return data;
|
|
||||||
}
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,38 +1,34 @@
|
||||||
package Files;
|
package Files;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
|
||||||
|
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
import java.util.concurrent.TimeoutException;
|
import java.util.concurrent.TimeoutException;
|
||||||
|
|
||||||
public class WriteFile {
|
public class WriteFile {
|
||||||
BufferedWriter buffer = null;
|
|
||||||
|
|
||||||
public void WriteFile(String path, String input) throws Exception{
|
BufferedWriter buffer = null;
|
||||||
try {
|
|
||||||
File file = new File(path);
|
|
||||||
if (!file.exists()) {
|
|
||||||
file.createNewFile();
|
|
||||||
}
|
|
||||||
|
|
||||||
FileWriter fileWriter = new FileWriter(path);
|
public void WriteFile(String path, String input) throws Exception {
|
||||||
buffer = new BufferedWriter(fileWriter);
|
try {
|
||||||
buffer.write(input);
|
File file = new File(path);
|
||||||
|
if (!file.exists()) {
|
||||||
} catch (FileNotFoundException e) {
|
file.createNewFile();
|
||||||
e.printStackTrace();
|
}
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} finally {
|
|
||||||
try {
|
|
||||||
if (buffer != null)
|
|
||||||
buffer.flush();
|
|
||||||
// buffer.close();
|
|
||||||
} catch (Exception ex) {
|
|
||||||
System.out.println("Error in closing the BufferedWriter" + ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
FileWriter fileWriter = new FileWriter(path);
|
||||||
|
buffer = new BufferedWriter(fileWriter);
|
||||||
|
buffer.write(input);
|
||||||
|
} catch (FileNotFoundException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
if (buffer != null) buffer.flush();
|
||||||
|
// buffer.close();
|
||||||
|
} catch (Exception ex) {
|
||||||
|
System.out.println("Error in closing the BufferedWriter" + ex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,30 +11,36 @@ import java.util.concurrent.TimeUnit;
|
||||||
import java.util.concurrent.TimeoutException;
|
import java.util.concurrent.TimeoutException;
|
||||||
|
|
||||||
public class HttpGet {
|
public class HttpGet {
|
||||||
public String HttpGetCall (String baseURL, String token) throws InterruptedException, ExecutionException, TimeoutException {
|
|
||||||
var client = HttpClient.newBuilder()
|
|
||||||
.version(HttpClient.Version.HTTP_1_1)
|
|
||||||
.followRedirects(HttpClient.Redirect.ALWAYS)
|
|
||||||
.build();
|
|
||||||
HttpRequest request = null;
|
|
||||||
try {
|
|
||||||
request = HttpRequest.newBuilder(new URI(baseURL))
|
|
||||||
.setHeader("Authorization", token)
|
|
||||||
// .setHeader("access_token", token)
|
|
||||||
.setHeader("Content-Type", "application/json")
|
|
||||||
.setHeader("Accept", "application/json")
|
|
||||||
.header("Authority", "https://api.dev.whysor.com/")
|
|
||||||
.build();
|
|
||||||
|
|
||||||
} catch (URISyntaxException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
CompletableFuture<HttpResponse<String>> response = client.sendAsync(request, HttpResponse.BodyHandlers.ofString());
|
|
||||||
String result = response.thenApply(HttpResponse::body).get(5, TimeUnit.SECONDS);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return result;
|
|
||||||
|
|
||||||
|
public String HttpGetCall(String baseURL, String token)
|
||||||
|
throws InterruptedException, ExecutionException, TimeoutException {
|
||||||
|
var client = HttpClient
|
||||||
|
.newBuilder()
|
||||||
|
.version(HttpClient.Version.HTTP_1_1)
|
||||||
|
.followRedirects(HttpClient.Redirect.ALWAYS)
|
||||||
|
.build();
|
||||||
|
HttpRequest request = null;
|
||||||
|
try {
|
||||||
|
request =
|
||||||
|
HttpRequest
|
||||||
|
.newBuilder(new URI(baseURL))
|
||||||
|
.setHeader("Authorization", token)
|
||||||
|
// .setHeader("access_token", token)
|
||||||
|
.setHeader("Content-Type", "application/json")
|
||||||
|
.setHeader("Accept", "application/json")
|
||||||
|
.header("Authority", "https://api.dev.whysor.com/")
|
||||||
|
.build();
|
||||||
|
} catch (URISyntaxException e) {
|
||||||
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
CompletableFuture<HttpResponse<String>> response = client.sendAsync(
|
||||||
|
request,
|
||||||
|
HttpResponse.BodyHandlers.ofString()
|
||||||
|
);
|
||||||
|
String result = response
|
||||||
|
.thenApply(HttpResponse::body)
|
||||||
|
.get(5, TimeUnit.SECONDS);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,26 +9,33 @@ import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
public class HttpPost {
|
public class HttpPost {
|
||||||
public String HttpCallPost(String baseUrl, String body) throws Exception {
|
|
||||||
|
|
||||||
var client = HttpClient.newBuilder()
|
public String HttpCallPost(String baseUrl, String body) throws Exception {
|
||||||
.version(HttpClient.Version.HTTP_1_1)
|
var client = HttpClient
|
||||||
.followRedirects(HttpClient.Redirect.ALWAYS)
|
.newBuilder()
|
||||||
.build();
|
.version(HttpClient.Version.HTTP_1_1)
|
||||||
HttpRequest request = null;
|
.followRedirects(HttpClient.Redirect.ALWAYS)
|
||||||
try {
|
.build();
|
||||||
request = HttpRequest.newBuilder(new URI(baseUrl))
|
HttpRequest request = null;
|
||||||
.POST(HttpRequest.BodyPublishers.ofString(body))
|
try {
|
||||||
.setHeader("Content-Type", "application/json")
|
request =
|
||||||
.setHeader("Accept", "application/json")
|
HttpRequest
|
||||||
.build();
|
.newBuilder(new URI(baseUrl))
|
||||||
|
.POST(HttpRequest.BodyPublishers.ofString(body))
|
||||||
} catch (URISyntaxException e) {
|
.setHeader("Content-Type", "application/json")
|
||||||
e.printStackTrace();
|
.setHeader("Accept", "application/json")
|
||||||
}
|
.build();
|
||||||
|
} catch (URISyntaxException e) {
|
||||||
CompletableFuture<HttpResponse<String>> response = client.sendAsync(request, HttpResponse.BodyHandlers.ofString());
|
e.printStackTrace();
|
||||||
String result = response.thenApply(HttpResponse::body).get(5, TimeUnit.SECONDS);
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CompletableFuture<HttpResponse<String>> response = client.sendAsync(
|
||||||
|
request,
|
||||||
|
HttpResponse.BodyHandlers.ofString()
|
||||||
|
);
|
||||||
|
String result = response
|
||||||
|
.thenApply(HttpResponse::body)
|
||||||
|
.get(5, TimeUnit.SECONDS);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,19 +7,23 @@ import org.json.JSONArray;
|
||||||
|
|
||||||
//Get a list of all devices
|
//Get a list of all devices
|
||||||
public class GeneralCall4AllDevices {
|
public class GeneralCall4AllDevices {
|
||||||
public static String FetchAll(String token) throws Exception {
|
|
||||||
String extension = "devices";
|
|
||||||
UserCredentials userCredentials = new UserCredentials();
|
|
||||||
WriteFile writingIntoFile = new WriteFile();
|
|
||||||
|
|
||||||
String baseURL = userCredentials.getBaseURL();
|
public static String FetchAll(String token) throws Exception {
|
||||||
String homeRoot = UserCredentials.getHomeRoot();
|
String extension = "devices";
|
||||||
String devUrl = userCredentials.getDevUrl();
|
UserCredentials userCredentials = new UserCredentials();
|
||||||
HttpGet httpCall = new HttpGet();
|
WriteFile writingIntoFile = new WriteFile();
|
||||||
|
|
||||||
String fetchAll = httpCall.HttpGetCall(devUrl + extension + "?access_token=" + token, token);
|
String baseURL = userCredentials.getBaseURL();
|
||||||
writingIntoFile.WriteFile(homeRoot + extension + "Output.json", fetchAll);
|
String homeRoot = UserCredentials.getHomeRoot();
|
||||||
|
String devUrl = userCredentials.getDevUrl();
|
||||||
|
HttpGet httpCall = new HttpGet();
|
||||||
|
|
||||||
return fetchAll;
|
String fetchAll = httpCall.HttpGetCall(
|
||||||
}
|
devUrl + extension + "?access_token=" + token,
|
||||||
|
token
|
||||||
|
);
|
||||||
|
writingIntoFile.WriteFile(homeRoot + extension + "Output.json", fetchAll);
|
||||||
|
|
||||||
|
return fetchAll;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,75 +1,87 @@
|
||||||
|
|
||||||
package JSON_Unpack;
|
package JSON_Unpack;
|
||||||
|
|
||||||
import Credentials.UserCredentials;
|
import Credentials.UserCredentials;
|
||||||
import Files.WriteFile;
|
import Files.WriteFile;
|
||||||
import HttpCall.HttpGet;
|
import HttpCall.HttpGet;
|
||||||
|
import java.util.ArrayList;
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
///url/sensors/id/read
|
///url/sensors/id/read
|
||||||
|
|
||||||
public class ReadSensors4Partner {
|
public class ReadSensors4Partner {
|
||||||
public ArrayList<String> FetchSensor4Box(String companyName, String token) throws Exception {
|
|
||||||
|
|
||||||
switch (companyName) {
|
public ArrayList<String> FetchSensor4Box(String companyName, String token)
|
||||||
case "Germes":
|
throws Exception {
|
||||||
return SensorRead("Germes", token);
|
switch (companyName) {
|
||||||
case "Heufs":
|
case "Germes":
|
||||||
return SensorRead("Heufs", token);
|
return SensorRead("Germes", token);
|
||||||
case "Jacobs":
|
case "Heufs":
|
||||||
return SensorRead("Jacobs", token);
|
return SensorRead("Heufs", token);
|
||||||
case "Nica":
|
case "Jacobs":
|
||||||
return SensorRead("Nica", token);
|
return SensorRead("Jacobs", token);
|
||||||
|
case "Nica":
|
||||||
|
return SensorRead("Nica", token);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected ArrayList<String> SensorRead(String cName, String token)
|
||||||
|
throws Exception {
|
||||||
|
UserCredentials userCredentials = new UserCredentials();
|
||||||
|
HttpGet httpCall = new HttpGet();
|
||||||
|
WriteFile writingIntoFile = new WriteFile();
|
||||||
|
|
||||||
|
String baseURL = userCredentials.getBaseURL();
|
||||||
|
String devUrl = userCredentials.getDevUrl();
|
||||||
|
String homeRoot = UserCredentials.getHomeRoot();
|
||||||
|
|
||||||
|
ArrayList<String> list = new ArrayList<String>();
|
||||||
|
char par = '"';
|
||||||
|
|
||||||
|
BoxCall4Partner boxCall4Partner = new BoxCall4Partner();
|
||||||
|
ArrayList<String> outputBox = boxCall4Partner.FetchBox(cName, token);
|
||||||
|
for (int i = 0; i < outputBox.size(); i++) {
|
||||||
|
JSONArray jsonArray = new JSONArray(outputBox.get(i));
|
||||||
|
for (int j = 0; j < jsonArray.length(); j++) {
|
||||||
|
JSONObject jsonobject = jsonArray.getJSONObject(j);
|
||||||
|
String jsonID = jsonobject.getString("id");
|
||||||
|
String jsonTag = jsonobject.getString("tag");
|
||||||
|
String deviceID = jsonobject.getString("deviceId");
|
||||||
|
String finalTag =
|
||||||
|
"," +
|
||||||
|
par +
|
||||||
|
"deviceId" +
|
||||||
|
par +
|
||||||
|
":" +
|
||||||
|
deviceID +
|
||||||
|
"," +
|
||||||
|
par +
|
||||||
|
"sensorTag" +
|
||||||
|
par +
|
||||||
|
":" +
|
||||||
|
jsonTag +
|
||||||
|
"}]";
|
||||||
|
|
||||||
|
String sensorOutput = httpCall.HttpGetCall(
|
||||||
|
devUrl + "sensors/" + jsonID + "/read" + "?access_token=" + token,
|
||||||
|
token
|
||||||
|
);
|
||||||
|
if (sensorOutput.contains("error")) {
|
||||||
|
System.out.println(sensorOutput);
|
||||||
|
} else {
|
||||||
|
String modification = sensorOutput.replace("}]", "");
|
||||||
|
String finalSensorOutput = modification + finalTag;
|
||||||
|
list.add(finalSensorOutput);
|
||||||
|
|
||||||
|
writingIntoFile.WriteFile(
|
||||||
|
homeRoot + jsonID + ".json",
|
||||||
|
sensorOutput + jsonTag + "," + deviceID
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return null;
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected ArrayList<String> SensorRead(String cName, String token) throws Exception {
|
return list;
|
||||||
UserCredentials userCredentials = new UserCredentials();
|
}
|
||||||
HttpGet httpCall = new HttpGet();
|
|
||||||
WriteFile writingIntoFile = new WriteFile();
|
|
||||||
|
|
||||||
String baseURL = userCredentials.getBaseURL();
|
|
||||||
String devUrl = userCredentials.getDevUrl();
|
|
||||||
String homeRoot = UserCredentials.getHomeRoot();
|
|
||||||
|
|
||||||
ArrayList<String> list=new ArrayList<String>();
|
|
||||||
char par = '"';
|
|
||||||
|
|
||||||
BoxCall4Partner boxCall4Partner = new BoxCall4Partner();
|
|
||||||
ArrayList<String> outputBox = boxCall4Partner.FetchBox(cName,token);
|
|
||||||
for (int i=0;i<outputBox.size();i++){
|
|
||||||
JSONArray jsonArray = new JSONArray(outputBox.get(i));
|
|
||||||
for(int j=0; j<jsonArray.length(); j++){
|
|
||||||
|
|
||||||
JSONObject jsonobject = jsonArray.getJSONObject(j);
|
|
||||||
String jsonID = jsonobject.getString("id");
|
|
||||||
String jsonTag = jsonobject.getString("tag");
|
|
||||||
String deviceID = jsonobject.getString("deviceId");
|
|
||||||
String finalTag = ","+par+"deviceId"+par+":"+deviceID+","+par+"sensorTag"+par+":"+jsonTag+"}]";
|
|
||||||
|
|
||||||
String sensorOutput = httpCall.HttpGetCall(devUrl + "sensors/" + jsonID + "/read" + "?access_token=" + token, token);
|
|
||||||
if (sensorOutput.contains("error")){
|
|
||||||
System.out.println(sensorOutput);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
String modification = sensorOutput.replace("}]","");
|
|
||||||
String finalSensorOutput = modification+finalTag;
|
|
||||||
list.add(finalSensorOutput);
|
|
||||||
|
|
||||||
writingIntoFile.WriteFile(homeRoot + jsonID + ".json", sensorOutput + jsonTag+","+deviceID);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,75 +3,76 @@ package eu.hsrw.ias.ggd;
|
||||||
import Credentials.UserCredentials;
|
import Credentials.UserCredentials;
|
||||||
import Files.WriteFile;
|
import Files.WriteFile;
|
||||||
import JSON_Unpack.ReadSensors4Partner;
|
import JSON_Unpack.ReadSensors4Partner;
|
||||||
import org.json.JSONArray;
|
|
||||||
import org.json.JSONObject;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import org.json.JSONArray;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
public class ApiCall {
|
public class ApiCall {
|
||||||
private static String token = "0";
|
|
||||||
private static String oldId = "1";
|
|
||||||
|
|
||||||
|
private static String token = "0";
|
||||||
|
private static String oldId = "1";
|
||||||
|
|
||||||
public static HashMap<String, SensorData> FetchDataFromApi() throws Exception {
|
public static Greenhouse FetchDataFromApi() throws Exception {
|
||||||
|
UserCredentials userCredentials = new UserCredentials();
|
||||||
|
final String username = userCredentials.getUsername();
|
||||||
|
final String password = userCredentials.getPassword();
|
||||||
|
final String homeRoot = UserCredentials.getHomeRoot();
|
||||||
|
String outputToken;
|
||||||
|
WriteFile writingIntoFile = new WriteFile();
|
||||||
|
Date now; // to display current time
|
||||||
|
now = new Date();
|
||||||
|
HashMap<String, Device> devices = new HashMap();
|
||||||
|
|
||||||
|
if (token.equals(oldId)) {
|
||||||
|
//do nothing
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
outputToken = SecurityToken.OnCallMethod(username, password);
|
||||||
|
JSONObject obj = new JSONObject(outputToken);
|
||||||
|
token = obj.getString("id");
|
||||||
|
|
||||||
UserCredentials userCredentials = new UserCredentials();
|
writingIntoFile.WriteFile(homeRoot + "securityToken.txt", token);
|
||||||
final String username = userCredentials.getUsername();
|
oldId = token;
|
||||||
final String password = userCredentials.getPassword();
|
} catch (Exception e) {
|
||||||
final String homeRoot = UserCredentials.getHomeRoot();
|
e.printStackTrace();
|
||||||
String outputToken;
|
}
|
||||||
WriteFile writingIntoFile = new WriteFile();
|
|
||||||
Date now; // to display current time
|
|
||||||
now = new Date();
|
|
||||||
HashMap<String,
|
|
||||||
SensorData> finalOutput = new HashMap();
|
|
||||||
if (token.equals(oldId)) {
|
|
||||||
//do nothing
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
outputToken = SecurityToken.OnCallMethod(username, password);
|
|
||||||
JSONObject obj = new JSONObject(outputToken);
|
|
||||||
token = obj.getString("id");
|
|
||||||
|
|
||||||
writingIntoFile.WriteFile(homeRoot + "securityToken.txt", token);
|
|
||||||
oldId = token;
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ReadSensors4Partner readSensors4Partner = new ReadSensors4Partner();
|
|
||||||
ArrayList<String> outputValue = (readSensors4Partner.FetchSensor4Box("Germes", token));
|
|
||||||
for(int i=0;i<outputValue.size();i++){
|
|
||||||
Device device;
|
|
||||||
JSONArray sensorDatas = new JSONArray(outputValue.get(i));
|
|
||||||
|
|
||||||
for(int j=0; j<sensorDatas.length(); j++) { //15
|
|
||||||
JSONObject sensorData = sensorDatas.getJSONObject(j);
|
|
||||||
|
|
||||||
String deviceId = sensorData.getString("deviceId");
|
|
||||||
|
|
||||||
double value = sensorData.getDouble("value");
|
|
||||||
String sensorTag = sensorData.getString("sensorTag");
|
|
||||||
String sensorId = sensorData.getString("sensorId");
|
|
||||||
|
|
||||||
SensorData sd = new SensorData(sensorId, value, sensorTag);
|
|
||||||
|
|
||||||
if(devices.containsKey(deviceId)) {
|
|
||||||
device = devices.get(deviceId);
|
|
||||||
device.addSensorData(sd);
|
|
||||||
} else {
|
|
||||||
device = new Device(deviceId);
|
|
||||||
device.addSensorData(sd);
|
|
||||||
devices.put(deviceId, device);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return finalOutput;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ReadSensors4Partner readSensors4Partner = new ReadSensors4Partner();
|
||||||
|
ArrayList<String> outputValue =
|
||||||
|
(readSensors4Partner.FetchSensor4Box("Germes", token));
|
||||||
|
|
||||||
|
for (int i = 0; i < outputValue.size(); i++) {
|
||||||
|
Device device;
|
||||||
|
JSONArray sensorDatas = new JSONArray(outputValue.get(i));
|
||||||
|
|
||||||
|
for (int j = 0; j < sensorDatas.length(); j++) { //15
|
||||||
|
JSONObject sensorData = sensorDatas.getJSONObject(j);
|
||||||
|
|
||||||
|
String deviceId = sensorData.getString("deviceId");
|
||||||
|
|
||||||
|
double value = sensorData.getDouble("value");
|
||||||
|
String sensorTag = sensorData.getString("sensorTag");
|
||||||
|
String sensorId = sensorData.getString("sensorId");
|
||||||
|
|
||||||
|
SensorData sd = new SensorData(sensorId, value, sensorTag);
|
||||||
|
|
||||||
|
if (devices.containsKey(deviceId)) {
|
||||||
|
device = devices.get(deviceId);
|
||||||
|
device.addSensorData(sd);
|
||||||
|
} else {
|
||||||
|
device = new Device(deviceId);
|
||||||
|
device.addSensorData(sd);
|
||||||
|
devices.put(deviceId, device);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Greenhouse greenhouse = new Greenhouse();
|
||||||
|
for (Device device : devices.values()) {
|
||||||
|
greenhouse.addDevice(device);
|
||||||
|
}
|
||||||
|
return greenhouse;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,80 +4,102 @@ import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class Device {
|
public class Device {
|
||||||
private String id;
|
|
||||||
private List<SensorData> data;
|
|
||||||
|
|
||||||
public Device(String identifier) {
|
private String id;
|
||||||
this.id = identifier;
|
private String externalID;
|
||||||
this.data = new LinkedList<SensorData>();
|
private List<SensorData> data;
|
||||||
|
private Severity state = Severity.Unknown;
|
||||||
|
|
||||||
|
public Device(String identifier) {
|
||||||
|
this.id = identifier;
|
||||||
|
this.data = new LinkedList<SensorData>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addSensorData(SensorData d) {
|
||||||
|
this.data.add(d);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<SensorData> getSensorData() {
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String setId(String id) {
|
||||||
|
this.id = id;
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setExternalID(String externalID) {
|
||||||
|
this.externalID = externalID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getExternalID() {
|
||||||
|
return externalID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String IdMapper(String id) {
|
||||||
|
switch (id) {
|
||||||
|
case "fd694041-581e-4c2c-9810-505e62b762e6":
|
||||||
|
return setId("70B3D570500042D7");
|
||||||
|
case "e8c3fca3-c5cd-48e7-9224-0f8c294fa3c0":
|
||||||
|
return setId("70B3D57050004EF4");
|
||||||
|
case "f9bb4a5c-f783-4bcf-8c34-0a7c3dd5a632":
|
||||||
|
return setId("70B3D57050006223");
|
||||||
|
case "6c9efd4a-db04-453d-8ab8-d480ec97dd26":
|
||||||
|
return setId("70B3D5705000623C");
|
||||||
|
default:
|
||||||
|
return "NO Working id was found";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean hasTag(String tag) {
|
||||||
|
for (SensorData sensorData : data) {
|
||||||
|
if (sensorData.getTag() == tag) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SensorData getSensorDataByTag(String tag) {
|
||||||
|
for (SensorData sd : data) {
|
||||||
|
if (sd.getTag() == tag) return sd;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SensorData getSensorDataById(String id) {
|
||||||
|
for (SensorData sd : data) {
|
||||||
|
if (sd.getSensorId() == id) return sd;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString() {
|
||||||
|
String str = "Device: '" + id + "', data: [";
|
||||||
|
|
||||||
|
for (SensorData sd : data) {
|
||||||
|
str += "SensorData(id: '" + sd.getSensorId() + "',";
|
||||||
|
str += " tag: '" + sd.getTag() + "',";
|
||||||
|
str += " value: " + sd.getValue() + ")";
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addSensorData(SensorData d) {
|
return str + "]";
|
||||||
this.data.add(d);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public List<SensorData> getSensorData() {
|
public Device(String id, List<SensorData> data) {
|
||||||
return data;
|
this.id = id;
|
||||||
}
|
this.data = data;
|
||||||
|
}
|
||||||
|
|
||||||
public String getId() {
|
public void setState(Severity state) {
|
||||||
return id;
|
if (this.state != Severity.Critical) {
|
||||||
|
this.state = state;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public String setId(String id) {
|
public Severity getState() {
|
||||||
this.id = id;
|
return state;
|
||||||
return id;
|
}
|
||||||
}
|
|
||||||
public String IdMapper(String id){
|
|
||||||
switch (id) {
|
|
||||||
case "fd694041-581e-4c2c-9810-505e62b762e6":
|
|
||||||
return setId("70B3D570500042D7");
|
|
||||||
case "e8c3fca3-c5cd-48e7-9224-0f8c294fa3c0":
|
|
||||||
return setId("70B3D57050004EF4");
|
|
||||||
case "f9bb4a5c-f783-4bcf-8c34-0a7c3dd5a632":
|
|
||||||
return setId("70B3D57050006223");
|
|
||||||
case "6c9efd4a-db04-453d-8ab8-d480ec97dd26":
|
|
||||||
return setId("70B3D5705000623C");
|
|
||||||
default:
|
|
||||||
return "NO Working id was found";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean hasTag(String tag) {
|
|
||||||
for (SensorData sensorData : data) {
|
|
||||||
if (sensorData.getTag() == tag) return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public SensorData getSensorDataByTag(String tag) {
|
|
||||||
for (SensorData sd : data) {
|
|
||||||
if (sd.getTag() == tag) return sd;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public SensorData getSensorDataById(String id) {
|
|
||||||
for (SensorData sd : data) {
|
|
||||||
if (sd.getSensorId() == id) return sd;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toString() {
|
|
||||||
String str = "Device: '"+ id +"', data: [";
|
|
||||||
|
|
||||||
for(SensorData sd: data) {
|
|
||||||
str += "SensorData(id: '"+ sd.getSensorId() +"',";
|
|
||||||
str += " tag: '"+ sd.getTag() +"',";
|
|
||||||
str += " value: "+ sd.getValue() +")";
|
|
||||||
}
|
|
||||||
|
|
||||||
return str + "]";
|
|
||||||
}
|
|
||||||
|
|
||||||
public Device(String id, List<SensorData> data) {
|
|
||||||
this.id = id;
|
|
||||||
this.data = data;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
package eu.hsrw.ias.ggd;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class Greenhouse {
|
||||||
|
|
||||||
|
private String id = "8bdbe6ae-eafb-4e99-bb01-db8784dd9633";
|
||||||
|
private Severity state = Severity.Unknown;
|
||||||
|
|
||||||
|
public Greenhouse() {
|
||||||
|
this.devices = new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Greenhouse(List<Device> devices) {
|
||||||
|
this.devices = devices;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addDevice(Device device) {
|
||||||
|
this.devices.add(device);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(String id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Severity getState() {
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setState(Severity state) {
|
||||||
|
if (this.state != Severity.Critical) {
|
||||||
|
this.state = state;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Device> getDevices() {
|
||||||
|
return devices;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDevices(List<Device> devices) {
|
||||||
|
this.devices = devices;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Device> devices;
|
||||||
|
}
|
|
@ -3,23 +3,30 @@ package eu.hsrw.ias.ggd;
|
||||||
import HttpCall.HttpPost;
|
import HttpCall.HttpPost;
|
||||||
|
|
||||||
public class Isis {
|
public class Isis {
|
||||||
public static String OnCallMethod(String deviceName, String sensorName) throws Exception {
|
|
||||||
//CONFIG PARAMETERS:
|
|
||||||
//BEGIN------------CONFIG PARAMETERS BELOW TO YOUR ENVIRONMENT---------------------------------------
|
|
||||||
String baseURL = "https://api.dev.whysor.com/devices/readValueFromSpeech?access_token=2MreqC9fqXxFHJBEcrCL38LKhEaVcEHmEi6o45CwTV9SSgTAuZ93oiMfY3HVc2fj";
|
|
||||||
final String body = String.format("{\"deviceName\": \"%s\", \"sensorName\": \"%s\", \"domain\": \"my.yookr.org\"}", deviceName, sensorName);
|
|
||||||
HttpPost httpMethodPost = new HttpPost();
|
|
||||||
httpMethodPost.HttpCallPost(baseURL,body);
|
|
||||||
|
|
||||||
return httpMethodPost.HttpCallPost(baseURL, body);
|
public static String OnCallMethod(String deviceName, String sensorName)
|
||||||
}
|
throws Exception {
|
||||||
public static void main(String[] args){
|
//CONFIG PARAMETERS:
|
||||||
try {
|
//BEGIN------------CONFIG PARAMETERS BELOW TO YOUR ENVIRONMENT---------------------------------------
|
||||||
String output = OnCallMethod("Greenhouse 1", "status");
|
String baseURL =
|
||||||
System.out.println(output);
|
"https://api.dev.whysor.com/devices/readValueFromSpeech?access_token=2MreqC9fqXxFHJBEcrCL38LKhEaVcEHmEi6o45CwTV9SSgTAuZ93oiMfY3HVc2fj";
|
||||||
} catch (Exception e) {
|
final String body = String.format(
|
||||||
e.printStackTrace();
|
"{\"deviceName\": \"%s\", \"sensorName\": \"%s\", \"domain\": \"my.yookr.org\"}",
|
||||||
}
|
deviceName,
|
||||||
|
sensorName
|
||||||
|
);
|
||||||
|
HttpPost httpMethodPost = new HttpPost();
|
||||||
|
httpMethodPost.HttpCallPost(baseURL, body);
|
||||||
|
|
||||||
|
return httpMethodPost.HttpCallPost(baseURL, body);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
try {
|
||||||
|
String output = OnCallMethod("Greenhouse 1", "status");
|
||||||
|
System.out.println(output);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,12 @@
|
||||||
package eu.hsrw.ias.ggd;
|
package eu.hsrw.ias.ggd;
|
||||||
|
|
||||||
import java.util.Timer;
|
import java.util.Timer;
|
||||||
|
//Before pushing files to the git run : npx prettier --write "**/*.java"
|
||||||
public class MainExe {
|
public class MainExe {
|
||||||
public static void main(String[] args){
|
|
||||||
|
|
||||||
Timer time = new Timer(); // Instantiate Timer Object
|
|
||||||
ScheduledTask scheduledTask = new ScheduledTask(); // Instantiate SheduledTask class
|
|
||||||
time.schedule(scheduledTask, 0, 1000 * 60 * 1 ); // Create Repetitively task for every 2 min
|
|
||||||
}
|
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Timer time = new Timer(); // Instantiate Timer Object
|
||||||
|
ScheduledTask scheduledTask = new ScheduledTask(); // Instantiate SheduledTask class
|
||||||
|
time.schedule(scheduledTask, 0, 1000 * 60 * 1); // Create Repetitively task for every 2 min
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,37 +1,38 @@
|
||||||
package eu.hsrw.ias.ggd;
|
package eu.hsrw.ias.ggd;
|
||||||
|
|
||||||
public class Notification {
|
public class Notification {
|
||||||
private Severity severity = Severity.Optimal;
|
|
||||||
private String type;
|
|
||||||
private SensorData cause;
|
|
||||||
|
|
||||||
public Notification(String t, SensorData d, Severity s) {
|
private Severity severity = Severity.Optimal;
|
||||||
this.type = t;
|
private String type;
|
||||||
this.cause = d;
|
private SensorData cause;
|
||||||
this.severity = s;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getType() {
|
public Notification(String t, SensorData d, Severity s) {
|
||||||
return type;
|
this.type = t;
|
||||||
}
|
this.cause = d;
|
||||||
|
this.severity = s;
|
||||||
|
}
|
||||||
|
|
||||||
public void setType(String type) {
|
public String getType() {
|
||||||
this.type = type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SensorData getCause() {
|
public void setType(String type) {
|
||||||
return cause;
|
this.type = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCause(SensorData cause) {
|
public SensorData getCause() {
|
||||||
this.cause = cause;
|
return cause;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Severity getSeverity() {
|
public void setCause(SensorData cause) {
|
||||||
return this.severity;
|
this.cause = cause;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSeverity(Severity severity) {
|
public Severity getSeverity() {
|
||||||
this.severity = severity;
|
return this.severity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setSeverity(Severity severity) {
|
||||||
|
this.severity = severity;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,23 +1,23 @@
|
||||||
package eu.hsrw.ias.ggd;
|
package eu.hsrw.ias.ggd;
|
||||||
|
|
||||||
import HttpCall.HttpPost;
|
import HttpCall.HttpPost;
|
||||||
|
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
import java.util.concurrent.TimeoutException;
|
import java.util.concurrent.TimeoutException;
|
||||||
|
|
||||||
public class SecurityToken {
|
public class SecurityToken {
|
||||||
public static String OnCallMethod(String username, String password) throws Exception {
|
|
||||||
//CONFIG PARAMETERS:
|
public static String OnCallMethod(String username, String password)
|
||||||
//BEGIN------------CONFIG PARAMETERS BELOW TO YOUR ENVIRONMENT---------------------------------------
|
throws Exception {
|
||||||
String baseURL = "https://api.whysor.com/users/login";
|
//CONFIG PARAMETERS:
|
||||||
String devURL = "https://api.dev.whysor.com/users/login";
|
//BEGIN------------CONFIG PARAMETERS BELOW TO YOUR ENVIRONMENT---------------------------------------
|
||||||
final String body = String.format("{\"email\": \"%s\", \"password\": \"%s\", \"domain\": \"my.dev.yookr.org\"}", username, password);
|
String baseURL = "https://api.whysor.com/users/login";
|
||||||
HttpPost httpMethodPost = new HttpPost();
|
String devURL = "https://api.dev.whysor.com/users/login";
|
||||||
return httpMethodPost.HttpCallPost(devURL, body);
|
final String body = String.format(
|
||||||
}
|
"{\"email\": \"%s\", \"password\": \"%s\", \"domain\": \"my.dev.yookr.org\"}",
|
||||||
|
username,
|
||||||
|
password
|
||||||
|
);
|
||||||
|
HttpPost httpMethodPost = new HttpPost();
|
||||||
|
return httpMethodPost.HttpCallPost(devURL, body);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,34 +2,48 @@ package eu.hsrw.ias.ggd;
|
||||||
|
|
||||||
public class SensorData {
|
public class SensorData {
|
||||||
|
|
||||||
private String sensorId;
|
private String sensorId;
|
||||||
private double value;
|
private String tag;
|
||||||
private String deviceId;
|
private double value;
|
||||||
|
private Severity state = Severity.Unknown;
|
||||||
|
|
||||||
public SensorData(String sensorId, double value,String deviceId) {
|
public SensorData(String sensorId, double value, String tag) {
|
||||||
this.sensorId = sensorId;
|
this.sensorId = sensorId;
|
||||||
this.value = value;
|
this.value = value;
|
||||||
this.deviceId = deviceId;
|
this.tag = tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getSensorTag() {
|
public String getTag() {
|
||||||
return sensorId;
|
return tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSensorTag(String sensorTag) {
|
public void setTag(String tag) {
|
||||||
this.sensorId = sensorTag;
|
this.tag = tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getValue() {
|
public double getValue() {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setValue(double value) {
|
public void setValue(double value) {
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDeviceId() {return deviceId;}
|
public String getSensorId() {
|
||||||
|
return sensorId;
|
||||||
public void setDeviceId(String deviceTag){ this.deviceId = deviceTag;
|
}
|
||||||
|
|
||||||
|
public void setSensorId(String id) {
|
||||||
|
this.sensorId = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Severity getState() {
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setState(Severity state) {
|
||||||
|
if (this.state != Severity.Critical) {
|
||||||
|
this.state = state;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,15 +3,14 @@ package eu.hsrw.ias.ggd;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
public class SensorMap {
|
public class SensorMap {
|
||||||
private HashMap<String, Double> sensors = new HashMap<String, Double>();
|
|
||||||
|
|
||||||
public HashMap<String, Double> getSensors() {
|
private HashMap<String, Double> sensors = new HashMap<String, Double>();
|
||||||
return sensors;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSensors(HashMap<String, Double> sensors) {
|
|
||||||
this.sensors = sensors;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
public HashMap<String, Double> getSensors() {
|
||||||
|
return sensors;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSensors(HashMap<String, Double> sensors) {
|
||||||
|
this.sensors = sensors;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
package eu.hsrw.ias.ggd;
|
package eu.hsrw.ias.ggd;
|
||||||
|
|
||||||
public enum Severity {
|
public enum Severity {
|
||||||
Optimal,
|
Optimal,
|
||||||
Info,
|
Info,
|
||||||
Warning,
|
Warning,
|
||||||
Error,
|
Error,
|
||||||
Critical
|
Critical,
|
||||||
|
Unknown,
|
||||||
}
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
import eu.hsrw.ias.ggd.Device;
|
||||||
|
import eu.hsrw.ias.ggd.Severity;
|
||||||
|
import eu.hsrw.ias.ggd.SensorData;
|
||||||
|
|
||||||
|
rule "Sensor of device gone critical"
|
||||||
|
when
|
||||||
|
sensorData: SensorData(state == Severity.Critical)
|
||||||
|
device: Device(sensorData contains(sensorData))
|
||||||
|
then
|
||||||
|
modify(device){
|
||||||
|
setState(Severity.Critical)
|
||||||
|
}
|
||||||
|
System.out.println("Device: \n" +
|
||||||
|
"\tID: '" + device.getId() + "'" +
|
||||||
|
"\tState: '" + device.getState().toString() + "'"
|
||||||
|
);
|
||||||
|
// Do something the info that a device is gone critical
|
||||||
|
end
|
||||||
|
|
||||||
|
rule "Sensor of device gone optimal"
|
||||||
|
when
|
||||||
|
sensorData: SensorData(state == Severity.Optimal)
|
||||||
|
device: Device(sensorData contains(sensorData))
|
||||||
|
then
|
||||||
|
modify(device){
|
||||||
|
setState(Severity.Optimal)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Device is gone optimal
|
||||||
|
end
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
import eu.hsrw.ias.ggd.Greenhouse;
|
||||||
|
import eu.hsrw.ias.ggd.Device;
|
||||||
|
import eu.hsrw.ias.ggd.Severity;
|
||||||
|
|
||||||
|
rule "Device of greenhouse gone critical"
|
||||||
|
when
|
||||||
|
device: Device(state == Severity.Critical)
|
||||||
|
greenhouse: Greenhouse(devices contains(device))
|
||||||
|
//greenhouse: Greenhouse(devices contains(Device(state == Severity.Critical)))
|
||||||
|
then
|
||||||
|
modify(greenhouse){
|
||||||
|
setState(Severity.Critical)
|
||||||
|
}
|
||||||
|
System.out.println("Greenhouse: '" + greenhouse.getId() + "' is '" + greenhouse.getState().toString() + "'");
|
||||||
|
end
|
||||||
|
|
||||||
|
rule "Device of greenhouse has gone optimal"
|
||||||
|
when
|
||||||
|
device: Device(state == Severity.Optimal)
|
||||||
|
greenhouse: Greenhouse(devices contains(device))
|
||||||
|
then
|
||||||
|
modify(greenhouse){
|
||||||
|
setState(Severity.Optimal)
|
||||||
|
}
|
||||||
|
end
|
|
@ -0,0 +1,24 @@
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import eu.hsrw.ias.ggd.SensorData
|
||||||
|
import javax.swing.JOptionPane
|
||||||
|
import HttpCall.HttpPost
|
||||||
|
import eu.hsrw.ias.ggd.Notification
|
||||||
|
import eu.hsrw.ias.ggd.Severity;
|
||||||
|
import eu.hsrw.ias.ggd.Device;
|
||||||
|
|
||||||
|
rule "CriticalPrecipitation"
|
||||||
|
when
|
||||||
|
device: Device(sensorDatas: sensorData)
|
||||||
|
sensorData: SensorData(tag == "precipitation", value > 15.5) from sensorDatas
|
||||||
|
then
|
||||||
|
String greenhouse1="8bdbe6ae-eafb-4e99-bb01-db8784dd9633";
|
||||||
|
HttpPost httpPost = new HttpPost();
|
||||||
|
final String criticalPrecipitationOutput = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"Critical Precipitation %s in the following sensor %s \", \"precipitation\": %s}]}}",greenhouse1, sensorData.getValue(),sensorData.getTag(),sensorData.getValue());
|
||||||
|
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",criticalPrecipitationOutput);
|
||||||
|
insert(new Notification("precipitation", sensorData, Severity.Warning));
|
||||||
|
|
||||||
|
// modify(sensorData){
|
||||||
|
// setState(Severity.Critical)
|
||||||
|
// }
|
||||||
|
end
|
|
@ -0,0 +1,7 @@
|
||||||
|
package rules;
|
||||||
|
dialect "mvel"
|
||||||
|
|
||||||
|
rule "CriticalSoilConductivity"
|
||||||
|
when
|
||||||
|
then
|
||||||
|
end
|
|
@ -0,0 +1,7 @@
|
||||||
|
package rules;
|
||||||
|
dialect "mvel"
|
||||||
|
|
||||||
|
rule "CriticalSoilTemperature"
|
||||||
|
when
|
||||||
|
then
|
||||||
|
end
|
|
@ -0,0 +1,31 @@
|
||||||
|
import eu.hsrw.ias.ggd.Device;
|
||||||
|
import eu.hsrw.ias.ggd.Severity;
|
||||||
|
import eu.hsrw.ias.ggd.SensorData;
|
||||||
|
|
||||||
|
rule "Sensor of device gone critical"
|
||||||
|
when
|
||||||
|
sensorData: SensorData(state == Severity.Critical)
|
||||||
|
device: Device(sensorData contains(sensorData))
|
||||||
|
then
|
||||||
|
modify(device){
|
||||||
|
setState(Severity.Critical)
|
||||||
|
}
|
||||||
|
System.out.println("Device: \n" +
|
||||||
|
"\tID: '" + device.getId() + "'" +
|
||||||
|
"\tState: '" + device.getState().toString() + "'"
|
||||||
|
);
|
||||||
|
// Do something the info that a device is gone critical
|
||||||
|
end
|
||||||
|
|
||||||
|
rule "Sensor of device gone optimal"
|
||||||
|
when
|
||||||
|
sensorData: SensorData(state == Severity.Optimal)
|
||||||
|
device: Device(sensorData contains(sensorData))
|
||||||
|
then
|
||||||
|
modify(device){
|
||||||
|
setState(Severity.Optimal)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Device is gone optimal
|
||||||
|
end
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
import eu.hsrw.ias.ggd.Greenhouse;
|
||||||
|
import eu.hsrw.ias.ggd.Device;
|
||||||
|
import eu.hsrw.ias.ggd.Severity;
|
||||||
|
|
||||||
|
rule "Device of greenhouse gone critical"
|
||||||
|
when
|
||||||
|
device: Device(state == Severity.Critical)
|
||||||
|
greenhouse: Greenhouse(devices contains(device))
|
||||||
|
//greenhouse: Greenhouse(devices contains(Device(state == Severity.Critical)))
|
||||||
|
then
|
||||||
|
modify(greenhouse){
|
||||||
|
setState(Severity.Critical)
|
||||||
|
}
|
||||||
|
System.out.println("Greenhouse: '" + greenhouse.getId() + "' is '" + greenhouse.getState().toString() + "'");
|
||||||
|
end
|
||||||
|
|
||||||
|
rule "Device of greenhouse has gone optimal"
|
||||||
|
when
|
||||||
|
device: Device(state == Severity.Optimal)
|
||||||
|
greenhouse: Greenhouse(devices contains(device))
|
||||||
|
then
|
||||||
|
modify(greenhouse){
|
||||||
|
setState(Severity.Optimal)
|
||||||
|
}
|
||||||
|
end
|
|
@ -0,0 +1,15 @@
|
||||||
|
import eu.hsrw.ias.ggd.Notification;
|
||||||
|
import eu.hsrw.ias.ggd.Severity
|
||||||
|
import HttpCall.HttpPost;
|
||||||
|
import eu.hsrw.ias.ggd.Device;
|
||||||
|
|
||||||
|
rule "Green House Optimal"
|
||||||
|
when
|
||||||
|
warning: Notification(severity == Severity.Optimal)
|
||||||
|
|
||||||
|
then
|
||||||
|
HttpPost httpPost = new HttpPost();
|
||||||
|
final String optimalGreenhouse = String.format("{\"id\":\"germes-greenhouse-status\",\"data\":{\"measured\":[{ \"status\": \"The status of the greenhouse is optimal\"}]}}");
|
||||||
|
// httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",optimalGreenhouse);
|
||||||
|
System.out.println("Green House optimal, because of: '"+warning.getType()+"'");
|
||||||
|
end
|
Loading…
Reference in New Issue