parent
2180026612
commit
5a14e0eab8
|
@ -1 +1 @@
|
||||||
[{"sensorId":"09a91c61-6572-4476-8bf1-310a2fb2eb02","datetimeMeasure":"2021-11-25T10:10:29.156Z","value":3.06,"groupId":null,"metadata":null}]externalTemperature,f9bb4a5c-f783-4bcf-8c34-0a7c3dd5a632
|
[{"sensorId":"09a91c61-6572-4476-8bf1-310a2fb2eb02","datetimeMeasure":"2021-12-10T15:31:31.804Z","value":3.68,"groupId":null,"metadata":null}]externalTemperature,f9bb4a5c-f783-4bcf-8c34-0a7c3dd5a632
|
|
@ -1 +1 @@
|
||||||
[{"sensorId":"1f49de66-0921-4583-ae68-ff0fcc070bd1","datetimeMeasure":"2021-11-25T10:13:23.813Z","value":21.64,"groupId":null,"metadata":null}]dielectricPermittivity,fd694041-581e-4c2c-9810-505e62b762e6
|
[{"sensorId":"1f49de66-0921-4583-ae68-ff0fcc070bd1","datetimeMeasure":"2021-12-10T15:34:04.506Z","value":20.92,"groupId":null,"metadata":null}]dielectricPermittivity,fd694041-581e-4c2c-9810-505e62b762e6
|
|
@ -1 +1 @@
|
||||||
[{"sensorId":"22e5b1b0-b28c-4aa1-97c7-94ff12c51384","datetimeMeasure":"2021-11-25T10:13:23.813Z","value":2.1,"groupId":null,"metadata":null}]soilTemperature,fd694041-581e-4c2c-9810-505e62b762e6
|
[{"sensorId":"22e5b1b0-b28c-4aa1-97c7-94ff12c51384","datetimeMeasure":"2021-12-10T15:34:04.506Z","value":4.1,"groupId":null,"metadata":null}]soilTemperature,fd694041-581e-4c2c-9810-505e62b762e6
|
|
@ -1 +1 @@
|
||||||
[{"sensorId":"3b6a8c15-5cea-4994-954d-5b25c22e2c32","datetimeMeasure":"2021-11-25T10:13:23.813Z","value":36.5,"groupId":null,"metadata":null}]soilMoisture,fd694041-581e-4c2c-9810-505e62b762e6
|
[{"sensorId":"3b6a8c15-5cea-4994-954d-5b25c22e2c32","datetimeMeasure":"2021-12-10T15:34:04.506Z","value":35.7,"groupId":null,"metadata":null}]soilMoisture,fd694041-581e-4c2c-9810-505e62b762e6
|
|
@ -1 +1 @@
|
||||||
[{"sensorId":"5209815d-974f-4729-ae1a-06bd1000db67","datetimeMeasure":"2021-11-25T10:13:23.813Z","value":0.15,"groupId":null,"metadata":null}]soilConductivity,fd694041-581e-4c2c-9810-505e62b762e6
|
[{"sensorId":"5209815d-974f-4729-ae1a-06bd1000db67","datetimeMeasure":"2021-12-10T15:34:04.506Z","value":0.07,"groupId":null,"metadata":null}]soilConductivity,fd694041-581e-4c2c-9810-505e62b762e6
|
|
@ -1 +1 @@
|
||||||
[{"sensorId":"65e95c11-ec15-4039-840a-e9be3d77ca63","datetimeMeasure":"2021-11-25T10:04:44.298Z","value":705.4,"groupId":null,"metadata":null}]precipitation,e8c3fca3-c5cd-48e7-9224-0f8c294fa3c0
|
[{"sensorId":"65e95c11-ec15-4039-840a-e9be3d77ca63","datetimeMeasure":"2021-12-10T15:29:08.613Z","value":748.8,"groupId":null,"metadata":null}]precipitation,e8c3fca3-c5cd-48e7-9224-0f8c294fa3c0
|
|
@ -1 +1 @@
|
||||||
[{"sensorId":"69bcaae0-9ccd-4342-8a71-c72dca37cfe9","datetimeMeasure":"2021-11-25T10:13:22.838Z","value":5.064,"groupId":null,"metadata":null}]battery,6c9efd4a-db04-453d-8ab8-d480ec97dd26
|
[{"sensorId":"69bcaae0-9ccd-4342-8a71-c72dca37cfe9","datetimeMeasure":"2021-12-10T15:34:09.418Z","value":4.721,"groupId":null,"metadata":null}]battery,6c9efd4a-db04-453d-8ab8-d480ec97dd26
|
|
@ -1 +1 @@
|
||||||
[{"sensorId":"812c6e62-e855-424b-8ec1-78fb424a94b5","datetimeMeasure":"2021-11-25T10:04:44.298Z","value":33.4,"groupId":null,"metadata":null}]soilMoisture,e8c3fca3-c5cd-48e7-9224-0f8c294fa3c0
|
[{"sensorId":"812c6e62-e855-424b-8ec1-78fb424a94b5","datetimeMeasure":"2021-12-10T15:29:08.613Z","value":35.5,"groupId":null,"metadata":null}]soilMoisture,e8c3fca3-c5cd-48e7-9224-0f8c294fa3c0
|
|
@ -1 +1 @@
|
||||||
[{"sensorId":"88c8442f-62b9-4952-b28c-73790a555060","datetimeMeasure":"2021-11-25T10:10:29.156Z","value":5.157,"groupId":null,"metadata":null}]battery,f9bb4a5c-f783-4bcf-8c34-0a7c3dd5a632
|
[{"sensorId":"88c8442f-62b9-4952-b28c-73790a555060","datetimeMeasure":"2021-12-10T15:31:31.804Z","value":5.132,"groupId":null,"metadata":null}]battery,f9bb4a5c-f783-4bcf-8c34-0a7c3dd5a632
|
|
@ -1 +1 @@
|
||||||
[{"sensorId":"adba09f9-ab84-4252-bf1a-ac49b1b6bdd3","datetimeMeasure":"2021-11-25T10:13:23.813Z","value":5.826,"groupId":null,"metadata":null}]battery,fd694041-581e-4c2c-9810-505e62b762e6
|
[{"sensorId":"adba09f9-ab84-4252-bf1a-ac49b1b6bdd3","datetimeMeasure":"2021-12-10T15:34:04.506Z","value":5.796,"groupId":null,"metadata":null}]battery,fd694041-581e-4c2c-9810-505e62b762e6
|
|
@ -1 +1 @@
|
||||||
[{"sensorId":"bc08edce-d214-40db-ba51-a0802243c235","datetimeMeasure":"2021-11-25T10:10:29.156Z","value":41.8,"groupId":null,"metadata":null}]soilMoisture,f9bb4a5c-f783-4bcf-8c34-0a7c3dd5a632
|
[{"sensorId":"bc08edce-d214-40db-ba51-a0802243c235","datetimeMeasure":"2021-12-10T15:31:31.804Z","value":38.3,"groupId":null,"metadata":null}]soilMoisture,f9bb4a5c-f783-4bcf-8c34-0a7c3dd5a632
|
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
[{"sensorId":"f75934dc-af98-4206-a5bd-22d23dd5f268","datetimeMeasure":"2021-11-25T10:13:22.838Z","value":3,"groupId":null,"metadata":null}]temperature,6c9efd4a-db04-453d-8ab8-d480ec97dd26
|
[{"sensorId":"f75934dc-af98-4206-a5bd-22d23dd5f268","datetimeMeasure":"2021-12-10T15:34:09.418Z","value":3.68,"groupId":null,"metadata":null}]temperature,6c9efd4a-db04-453d-8ab8-d480ec97dd26
|
|
@ -1 +1 @@
|
||||||
[{"sensorId":"ff6f11e0-c969-4cbb-829c-f44a13683918","datetimeMeasure":"2021-11-25T10:13:22.838Z","value":17.75,"groupId":null,"metadata":null}]precipitation,6c9efd4a-db04-453d-8ab8-d480ec97dd26
|
[{"sensorId":"ff6f11e0-c969-4cbb-829c-f44a13683918","datetimeMeasure":"2021-12-10T15:34:09.418Z","value":72.5,"groupId":null,"metadata":null}]precipitation,6c9efd4a-db04-453d-8ab8-d480ec97dd26
|
|
@ -1 +1 @@
|
||||||
[{"sensorId":"ffca826c-d1b5-4ac8-869a-ec0da15d9076","datetimeMeasure":"2021-11-25T10:04:44.298Z","value":5.135,"groupId":null,"metadata":null}]battery,e8c3fca3-c5cd-48e7-9224-0f8c294fa3c0
|
[{"sensorId":"ffca826c-d1b5-4ac8-869a-ec0da15d9076","datetimeMeasure":"2021-12-10T15:29:08.613Z","value":5.106,"groupId":null,"metadata":null}]battery,e8c3fca3-c5cd-48e7-9224-0f8c294fa3c0
|
|
@ -1 +1 @@
|
||||||
nRsSvFEYoGTEqSmnmtE0R0btgMW8J6C6VpKEefCfPerViKxV4usqGREOioUQ268G
|
VSiZpQv9EEyXdVzTcudeG2GRo5hM5YGaDaMcdS3qY8hXKb34q0KypT9qLfr0BkOg
|
|
@ -22,7 +22,7 @@ public class ApiCall {
|
||||||
UserCredentials userCredentials = new UserCredentials();
|
UserCredentials userCredentials = new UserCredentials();
|
||||||
final String username = userCredentials.getUsername();
|
final String username = userCredentials.getUsername();
|
||||||
final String password = userCredentials.getPassword();
|
final String password = userCredentials.getPassword();
|
||||||
final String homeRoot = userCredentials.getHomeRoot();
|
final String homeRoot = UserCredentials.getHomeRoot();
|
||||||
String outputToken;
|
String outputToken;
|
||||||
WriteFile writingIntoFile = new WriteFile();
|
WriteFile writingIntoFile = new WriteFile();
|
||||||
Date now; // to display current time
|
Date now; // to display current time
|
||||||
|
@ -46,15 +46,28 @@ public class ApiCall {
|
||||||
ReadSensors4Partner readSensors4Partner = new ReadSensors4Partner();
|
ReadSensors4Partner readSensors4Partner = new ReadSensors4Partner();
|
||||||
ArrayList<String> outputValue = (readSensors4Partner.FetchSensor4Box("Germes", token));
|
ArrayList<String> outputValue = (readSensors4Partner.FetchSensor4Box("Germes", token));
|
||||||
for(int i=0;i<outputValue.size();i++){
|
for(int i=0;i<outputValue.size();i++){
|
||||||
JSONArray jsonArray = new JSONArray(outputValue.get(i));
|
Device device;
|
||||||
for(int j=0; j<jsonArray.length(); j++){
|
JSONArray sensorDatas = new JSONArray(outputValue.get(i));
|
||||||
JSONObject jsonobject = jsonArray.getJSONObject(j);
|
|
||||||
double value = jsonobject.getDouble("value");
|
|
||||||
String sensorTag = jsonobject.getString("sensorTag");
|
|
||||||
String sensorId = jsonobject.getString("sensorId");
|
|
||||||
String deviceId = jsonobject.getString("deviceId");
|
|
||||||
|
|
||||||
finalOutput.put(sensorTag, new SensorData(deviceId, value,sensorId));
|
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;
|
return finalOutput;
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
package eu.hsrw.ias.ggd;
|
||||||
|
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class Device {
|
||||||
|
private String id;
|
||||||
|
private List<SensorData> data;
|
||||||
|
|
||||||
|
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 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 + "]";
|
||||||
|
}
|
||||||
|
}
|
|
@ -13,7 +13,7 @@ public class Isis {
|
||||||
|
|
||||||
return httpMethodPost.HttpCallPost(baseURL, body);
|
return httpMethodPost.HttpCallPost(baseURL, body);
|
||||||
}
|
}
|
||||||
public static void main(String args[]){
|
public static void main(String[] args){
|
||||||
try {
|
try {
|
||||||
String output = OnCallMethod("Greenhouse 1", "status");
|
String output = OnCallMethod("Greenhouse 1", "status");
|
||||||
System.out.println(output);
|
System.out.println(output);
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
package eu.hsrw.ias.ggd;
|
||||||
|
|
||||||
|
public class Notification {
|
||||||
|
private Severity severity = Severity.None;
|
||||||
|
private String type;
|
||||||
|
private SensorData cause;
|
||||||
|
|
||||||
|
public Notification(String t, SensorData d, Severity s) {
|
||||||
|
this.type = t;
|
||||||
|
this.cause = d;
|
||||||
|
this.severity = s;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(String type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SensorData getCause() {
|
||||||
|
return cause;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCause(SensorData cause) {
|
||||||
|
this.cause = cause;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Severity getSeverity() {
|
||||||
|
return this.severity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSeverity(Severity severity) {
|
||||||
|
this.severity = severity;
|
||||||
|
}
|
||||||
|
}
|
|
@ -34,7 +34,7 @@ public class ScheduledTask extends TimerTask {
|
||||||
FactHandle fact1;
|
FactHandle fact1;
|
||||||
fact1 = kSession.insert(outputDevices);
|
fact1 = kSession.insert(outputDevices);
|
||||||
// System.out.println(fact1);
|
// System.out.println(fact1);
|
||||||
kSession.insert(fact1);
|
// kSession.insert(fact1);
|
||||||
kSession.fireAllRules();
|
kSession.fireAllRules();
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
package eu.hsrw.ias.ggd;
|
||||||
|
|
||||||
|
public enum Severity {
|
||||||
|
None,
|
||||||
|
Info,
|
||||||
|
Warning,
|
||||||
|
Error,
|
||||||
|
Critical
|
||||||
|
}
|
|
@ -1,41 +0,0 @@
|
||||||
import java.util.List;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import eu.hsrw.ias.ggd.ScheduledTask
|
|
||||||
import eu.hsrw.ias.ggd.SensorData
|
|
||||||
import javax.swing.JOptionPane
|
|
||||||
import HttpCall.HttpPost
|
|
||||||
import Files.ReadFile
|
|
||||||
import Credentials.UserCredentials;
|
|
||||||
|
|
||||||
rule "Low Battery Level"
|
|
||||||
|
|
||||||
when
|
|
||||||
// This is like declaring a variable tMap where is Map and contains a key with name battery
|
|
||||||
$tMap: HashMap( containsKey("battery") == true )
|
|
||||||
//In this part we are iterating through the entire map
|
|
||||||
e: Map.Entry(k:key, v:value) from $tMap.entrySet()
|
|
||||||
// for(e <- $tMap) {
|
|
||||||
SensorData(level: value ) from v
|
|
||||||
SensorData(tag: sensorTag) from v
|
|
||||||
SensorData(id: deviceId) from v
|
|
||||||
then
|
|
||||||
HttpPost httpPost = new HttpPost();
|
|
||||||
String fixedIdG1="8bdbe6ae-eafb-4e99-bb01-db8784dd9633";
|
|
||||||
if (level < 7.2 && k.equals("battery") ) {
|
|
||||||
JOptionPane.showMessageDialog(null,"Low Battery : "+level+"! Please swap the battery soon of the following sensor:"+tag,"Low Battery Level",JOptionPane.INFORMATION_MESSAGE);
|
|
||||||
final String data = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"Low Battery %s in the following sensor: %s \", \"battery\": %s}]}}", fixedIdG1,level, tag,level);
|
|
||||||
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",data);
|
|
||||||
System.out.println("Low Battery"+level+"in the following sensor"+tag);
|
|
||||||
}
|
|
||||||
// else {
|
|
||||||
// JOptionPane.showMessageDialog(null,"Battery OK : "+level+"! in the following sensor :"+tag,"Battery OK",JOptionPane.INFORMATION_MESSAGE);
|
|
||||||
// final String data1 = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"Battery OK %s in the following sensor: %s \", \"battery\": %s}]}}", fixedIdG1,level, tag,level);
|
|
||||||
//// httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",data1);
|
|
||||||
// System.out.println(data1);
|
|
||||||
// }
|
|
||||||
// System.out.println($tMap);
|
|
||||||
// System.out.println(e.getKey() + " " + String.valueOf(level)+" " + tag+" "+id);
|
|
||||||
|
|
||||||
end
|
|
|
@ -0,0 +1,91 @@
|
||||||
|
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 "Critical Battery"
|
||||||
|
when
|
||||||
|
device: Device(sensorDatas: sensorData)
|
||||||
|
sensorData: SensorData(tag == "battery", value < 5.0) from sensorDatas
|
||||||
|
then
|
||||||
|
insert(new Notification("batte2ry", sensorData, Severity.Warning));
|
||||||
|
System.out.println(sensorData.getTag()+" "+sensorData.getValue());
|
||||||
|
|
||||||
|
|
||||||
|
/*String fixedIdG1="8bdbe6ae-eafb-4e99-bb01-db8784dd9633";
|
||||||
|
HttpPost httpPost = new HttpPost();
|
||||||
|
// System.out.println("Tag: '"+tag+"' has low battery with value: '"+level+"'");
|
||||||
|
final String battery = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"Critical! Low Battery %s \", \"battery\": %s}]}}", fixedIdG1,level,level);
|
||||||
|
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",battery);
|
||||||
|
System.out.println("Low Battery"+level+"in the following sensor"+tag);
|
||||||
|
*/
|
||||||
|
/*HttpPost httpPost = new HttpPost();
|
||||||
|
|
||||||
|
final String finalOutput;
|
||||||
|
boolean critical = false;
|
||||||
|
HashMap<String,Double> test = new HashMap<>();
|
||||||
|
if (tag.equals("fd694041-581e-4c2c-9810-505e62b762e6")){ // This matches 70B3D570500042D7
|
||||||
|
if (level < 7.2 && k.equals("battery") ) {
|
||||||
|
JOptionPane.showMessageDialog(null,"Low Battery : "+level+"! Please swap the battery soon of the following sensor:"+tag,"Low Battery Level",JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
final String battery = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"Critical! Low Battery %s \", \"battery\": %s}]}}", fixedIdG1,level,level);
|
||||||
|
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",battery);
|
||||||
|
System.out.println("Low Battery"+level+"in the following sensor"+tag);
|
||||||
|
critical = true;
|
||||||
|
test.put("battery",level);
|
||||||
|
}
|
||||||
|
if (level > 80 && k.equals("temperature") ) {
|
||||||
|
JOptionPane.showMessageDialog(null,"High Temperature : "+level+" in the following sensor: "+tag+"in the following device id: "+id,"Temperature",JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
final String temperature = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"Critical!High Temperature %s \", \"temperature\": %s}]}}", fixedIdG1,level,level);
|
||||||
|
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",temperature);
|
||||||
|
System.out.println("High Temp");
|
||||||
|
critical = true;
|
||||||
|
}
|
||||||
|
if (level > 14.5 && k.equals("precipitation") ) {
|
||||||
|
JOptionPane.showMessageDialog(null,"High water level : "+level+" in the following sensor"+tag,"Precipitation",JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
final String precipitation = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"High water level %s\", \"precipitation\": %s}]}}", fixedIdG1, level,level);
|
||||||
|
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",precipitation);
|
||||||
|
System.out.println("High water level"+level +" in the following sensor:"+tag);
|
||||||
|
critical = true;
|
||||||
|
}
|
||||||
|
if (level < 22 && k.equals("soilTemperature") ) {
|
||||||
|
JOptionPane.showMessageDialog(null,"Low soil temperature : "+level+" in the following sensor: "+tag+"in the following device id: "+id,"soil Temperature",JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
final String soilTemperature = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"Low soil temperature %s in the following sensor: %s \", \"soilTemperature\": %s}]}}", fixedIdG1,level, tag,level);
|
||||||
|
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",soilTemperature);
|
||||||
|
System.out.println("Low soil Temperature"+level+" in the following sensor "+tag);
|
||||||
|
critical = true;
|
||||||
|
test.put("soilTemperature",level);
|
||||||
|
}
|
||||||
|
if (level <= 30 && k.equals("soilMoisture") ) {
|
||||||
|
JOptionPane.showMessageDialog(null,"Be Careful the soil is dry : "+level+" in the following sensor :"+tag +"in the device:"+id,"Soil Moisture",JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
final String soilMoisture = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"Be Careful the soil sensor %s is dry: %s \", \"soilMoisture\": %s}]}}", fixedIdG1,tag,level,level);
|
||||||
|
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",soilMoisture);
|
||||||
|
System.out.println("Soil is dry"+level+" in the following sensor"+tag);
|
||||||
|
critical = true;
|
||||||
|
}
|
||||||
|
if (level <= 0.57 && level >= 0.11 && k.equals("soilConductivity") ) {
|
||||||
|
JOptionPane.showMessageDialog(null,"Optimal EC levels in the soil : "+level+" in the following sensor"+tag,"Soil Conductivity",JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
final String soilConductivity = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"Optimal EC levels in the soil %s\", \"soilConductivity\": %s}]}}", fixedIdG1, level,level);
|
||||||
|
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",soilConductivity);
|
||||||
|
System.out.println("Optimal EC levels in the soil"+level +" in the following sensor:"+tag);
|
||||||
|
critical = true;
|
||||||
|
}
|
||||||
|
if (level > 20 && k.equals("dielectricPermittivity") ) {
|
||||||
|
JOptionPane.showMessageDialog(null,"High dielectricPermittivity : "+level+" in the following sensor"+tag,"dielectricPermittivity",JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
final String dielectricPermittivity = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"High dielectricPermittivity %s\", \"dielectricPermittivity\": %s}]}}", fixedIdG1, level,level);
|
||||||
|
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",dielectricPermittivity);
|
||||||
|
System.out.println("High dielectricPermittivity"+level +" in the following sensor:"+tag);
|
||||||
|
critical = true;
|
||||||
|
}
|
||||||
|
// if(critical == true){
|
||||||
|
// finalOutput
|
||||||
|
// }
|
||||||
|
finalOutput = String.format("{\"id\":\"70B3D570500042D7-status\",\"data\":{\"measured\":[{ \"status\": \"The status of the device 1 is critical\",}]}}");
|
||||||
|
System.out.println(finalOutput);
|
||||||
|
}*/
|
||||||
|
|
||||||
|
end
|
|
@ -1,33 +0,0 @@
|
||||||
import java.util.List;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import eu.hsrw.ias.ggd.ScheduledTask;
|
|
||||||
import javax.swing.JOptionPane
|
|
||||||
import HttpCall.HttpPost;
|
|
||||||
import eu.hsrw.ias.ggd.SensorData
|
|
||||||
|
|
||||||
rule "DielectricPermittivity"
|
|
||||||
when
|
|
||||||
$tMap: HashMap( containsKey("dielectricPermittivity") == true )
|
|
||||||
//In this part we are iterating through the entire map
|
|
||||||
e: Map.Entry(k:key, v:value) from $tMap.entrySet()
|
|
||||||
// for(e <- $tMap) {
|
|
||||||
SensorData(level: value ) from v
|
|
||||||
SensorData(tag: sensorTag) from v
|
|
||||||
SensorData(id: deviceId) from v
|
|
||||||
then
|
|
||||||
String fixedIdG1="8bdbe6ae-eafb-4e99-bb01-db8784dd9633";
|
|
||||||
HttpPost httpPost = new HttpPost();
|
|
||||||
if (level > 20 && k.equals("dielectricPermittivity") ) {
|
|
||||||
JOptionPane.showMessageDialog(null,"High dielectricPermittivity : "+level+" in the following sensor"+tag,"dielectricPermittivity",JOptionPane.INFORMATION_MESSAGE);
|
|
||||||
final String data = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"High dielectricPermittivity %s\", \"dielectricPermittivity\": %s}]}}", fixedIdG1, level,level);
|
|
||||||
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",data);
|
|
||||||
System.out.println("High dielectricPermittivity"+level +" in the following sensor:"+tag);
|
|
||||||
|
|
||||||
}
|
|
||||||
System.out.println(k);
|
|
||||||
System.out.println(level);
|
|
||||||
System.out.println(tag);
|
|
||||||
System.out.println(id);
|
|
||||||
end
|
|
|
@ -1,7 +0,0 @@
|
||||||
package rules;
|
|
||||||
|
|
||||||
|
|
||||||
rule "ExternalTemperature"
|
|
||||||
when
|
|
||||||
then
|
|
||||||
end
|
|
|
@ -1,33 +0,0 @@
|
||||||
import java.util.List;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import eu.hsrw.ias.ggd.ScheduledTask;
|
|
||||||
import javax.swing.JOptionPane
|
|
||||||
import HttpCall.HttpPost;
|
|
||||||
import eu.hsrw.ias.ggd.SensorData
|
|
||||||
|
|
||||||
rule "Precipitation"
|
|
||||||
when
|
|
||||||
$tMap: HashMap( containsKey("precipitation") == true )
|
|
||||||
//In this part we are iterating through the entire map
|
|
||||||
e: Map.Entry(k:key, v:value) from $tMap.entrySet()
|
|
||||||
// for(e <- $tMap) {
|
|
||||||
SensorData(level: value ) from v
|
|
||||||
SensorData(tag: sensorTag) from v
|
|
||||||
SensorData(id: deviceId) from v
|
|
||||||
then
|
|
||||||
String fixedIdG1="8bdbe6ae-eafb-4e99-bb01-db8784dd9633";
|
|
||||||
HttpPost httpPost = new HttpPost();
|
|
||||||
if (level > 14.5 && k.equals("precipitation") ) {
|
|
||||||
JOptionPane.showMessageDialog(null,"High water level : "+level+" in the following sensor"+tag,"Precipitation",JOptionPane.INFORMATION_MESSAGE);
|
|
||||||
final String data = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"High water level %s\", \"precipitation\": %s}]}}", fixedIdG1, level,level);
|
|
||||||
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",data);
|
|
||||||
System.out.println("High water level"+level +" in the following sensor:"+tag);
|
|
||||||
|
|
||||||
}
|
|
||||||
// System.out.println(k);
|
|
||||||
// System.out.println(level);
|
|
||||||
// System.out.println(tag);
|
|
||||||
// System.out.println(id);
|
|
||||||
end
|
|
|
@ -1,39 +0,0 @@
|
||||||
import java.util.List;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import eu.hsrw.ias.ggd.ScheduledTask;
|
|
||||||
import javax.swing.JOptionPane
|
|
||||||
import HttpCall.HttpPost;
|
|
||||||
import eu.hsrw.ias.ggd.SensorData
|
|
||||||
|
|
||||||
rule "Optimal EC levels in the soil"
|
|
||||||
|
|
||||||
when
|
|
||||||
$tMap: HashMap( containsKey("soilConductivity") == true )
|
|
||||||
//In this part we are iterating through the entire map
|
|
||||||
e: Map.Entry(k:key, v:value) from $tMap.entrySet()
|
|
||||||
// for(e <- $tMap) {
|
|
||||||
SensorData(level: value ) from v
|
|
||||||
SensorData(tag: sensorTag) from v
|
|
||||||
SensorData(id: deviceId) from v
|
|
||||||
then
|
|
||||||
String fixedIdG1="8bdbe6ae-eafb-4e99-bb01-db8784dd9633";
|
|
||||||
HttpPost httpPost = new HttpPost();
|
|
||||||
if (level <= 0.57 && level >= 0.11 && k.equals("soilConductivity") ) {
|
|
||||||
JOptionPane.showMessageDialog(null,"Optimal EC levels in the soil : "+level+" in the following sensor"+tag,"Soil Conductivity",JOptionPane.INFORMATION_MESSAGE);
|
|
||||||
final String data = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"Optimal EC levels in the soil %s\", \"soilConductivity\": %s}]}}", fixedIdG1, level,level);
|
|
||||||
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",data);
|
|
||||||
System.out.println("Optimal EC levels in the soil"+level +" in the following sensor:"+tag);
|
|
||||||
}
|
|
||||||
// else {
|
|
||||||
// JOptionPane.showMessageDialog(null,"Non Optimal EC levels in the soil : "+level+" in the following sensor:"+tag,"Soil Conductivity",JOptionPane.INFORMATION_MESSAGE);
|
|
||||||
// final String data1 = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"Non Optimal EC levels in the soil %s\", \"soil Conductivity\": %s}]}}", fixedIdG1, level,level);
|
|
||||||
//// httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",data1);
|
|
||||||
// System.out.println(data1);
|
|
||||||
// }
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
import java.util.List;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import eu.hsrw.ias.ggd.ScheduledTask;
|
|
||||||
import javax.swing.JOptionPane;
|
|
||||||
import HttpCall.HttpPost;
|
|
||||||
import eu.hsrw.ias.ggd.SensorData
|
|
||||||
|
|
||||||
|
|
||||||
rule "Soil Moisture"
|
|
||||||
|
|
||||||
when
|
|
||||||
$tMap: HashMap( containsKey("soilMoisture") == true )
|
|
||||||
//In this part we are iterating through the entire map
|
|
||||||
e: Map.Entry(k:key, v:value) from $tMap.entrySet()
|
|
||||||
// for(e <- $tMap) {
|
|
||||||
SensorData(level: value ) from v
|
|
||||||
SensorData(tag: sensorTag) from v
|
|
||||||
SensorData(id : deviceId) from v
|
|
||||||
|
|
||||||
then
|
|
||||||
HttpPost httpPost = new HttpPost();
|
|
||||||
String fixedIdG1="8bdbe6ae-eafb-4e99-bb01-db8784dd9633";
|
|
||||||
|
|
||||||
if (level <= 30 && k.equals("soilMoisture") ) {
|
|
||||||
JOptionPane.showMessageDialog(null,"Be Careful the soil is dry : "+level+" in the following sensor :"+tag +"in the device:"+id,"Soil Moisture",JOptionPane.INFORMATION_MESSAGE);
|
|
||||||
final String dataInfo = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"Be Careful the soil sensor %s is dry: %s \", \"soilMoisture\": %s}]}}", fixedIdG1,tag,level,level);
|
|
||||||
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",dataInfo);
|
|
||||||
System.out.println("Soil is dry"+level+" in the following sensor"+tag);
|
|
||||||
}
|
|
||||||
else if (level <= 80 && k.equals("soilMoisture") ) {
|
|
||||||
JOptionPane.showMessageDialog(null,"Optimal moisture in the soil : "+level+" in the following sensor"+tag,"Soil Moisture",JOptionPane.INFORMATION_MESSAGE);
|
|
||||||
final String data = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"Be Careful the soil sensor %s is wet: %s\", \"soilMoisture\": %s}]}}", fixedIdG1,tag,level,level);
|
|
||||||
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",data);
|
|
||||||
System.out.println("Optimal moisture in the soil"+level+" in the following sensor"+tag);
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
import java.util.List;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import eu.hsrw.ias.ggd.ScheduledTask;
|
|
||||||
import javax.swing.JOptionPane;
|
|
||||||
import HttpCall.HttpPost;
|
|
||||||
import eu.hsrw.ias.ggd.SensorData
|
|
||||||
|
|
||||||
|
|
||||||
rule "SoilTemperature"
|
|
||||||
|
|
||||||
when
|
|
||||||
$tMap: HashMap( containsKey("soilTemperature") == true )
|
|
||||||
e: Map.Entry(k:key, v:value) from $tMap.entrySet()
|
|
||||||
SensorData(level: value ) from v
|
|
||||||
SensorData(tag: sensorTag) from v
|
|
||||||
SensorData(id : deviceId) from v
|
|
||||||
then
|
|
||||||
|
|
||||||
String fixedIdG1="8bdbe6ae-eafb-4e99-bb01-db8784dd9633";
|
|
||||||
HttpPost httpPost = new HttpPost();
|
|
||||||
if (level < 22 && k.equals("soilTemperature") ) {
|
|
||||||
JOptionPane.showMessageDialog(null,"Low soil temperature : "+level+" in the following sensor: "+tag+"in the following device id: "+id,"soil Temperature",JOptionPane.INFORMATION_MESSAGE);
|
|
||||||
final String data = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"Low soil temperature %s in the following sensor: %s \", \"soilTemperature\": %s}]}}", fixedIdG1,level, tag,level);
|
|
||||||
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",data);
|
|
||||||
System.out.println("Low soil Temperature"+level+" in the following sensor "+tag);
|
|
||||||
}
|
|
||||||
end
|
|
|
@ -1,40 +0,0 @@
|
||||||
import java.util.List;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import eu.hsrw.ias.ggd.ScheduledTask
|
|
||||||
import eu.hsrw.ias.ggd.SensorData
|
|
||||||
import javax.swing.JOptionPane
|
|
||||||
import HttpCall.HttpPost
|
|
||||||
import Files.ReadFile
|
|
||||||
import Credentials.UserCredentials;
|
|
||||||
|
|
||||||
rule "Temperature Check"
|
|
||||||
|
|
||||||
when
|
|
||||||
// This is like declaring a variable tMap where is Map and contains a key with name battery
|
|
||||||
$tMap: HashMap( containsKey("temperature") == true )
|
|
||||||
//In this part we are iterating through the entire map
|
|
||||||
e: Map.Entry(k:key, v:value) from $tMap.entrySet()
|
|
||||||
// for(e <- $tMap) {
|
|
||||||
SensorData(level: value ) from v
|
|
||||||
SensorData(tag: sensorTag) from v
|
|
||||||
SensorData(id: deviceId) from v
|
|
||||||
then
|
|
||||||
String fixedIdG1="8bdbe6ae-eafb-4e99-bb01-db8784dd9633";
|
|
||||||
HttpPost httpPost = new HttpPost();
|
|
||||||
if (level > 80 && k.equals("temperature") ) {
|
|
||||||
JOptionPane.showMessageDialog(null,"High Temperature : "+level+" in the following sensor: "+tag+"in the following device id: "+id,"Temperature",JOptionPane.INFORMATION_MESSAGE);
|
|
||||||
final String data = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"High Temperature %s in the following sensor: %s \", \"temperature\": %s}]}}", fixedIdG1,level, tag,level);
|
|
||||||
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",data);
|
|
||||||
System.out.println("High Temp");
|
|
||||||
}
|
|
||||||
else if(level < 20 && k.equals("temperature")){
|
|
||||||
JOptionPane.showMessageDialog(null,"Low Temperature : "+level+" in the following sensor: "+tag+"in the following device id: "+id,"Temperature",JOptionPane.INFORMATION_MESSAGE);
|
|
||||||
final String data1 = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"Low Temperature %s in the following sensor: %s \", \"temperature\": %s}]}}",fixedIdG1,level, tag,level);
|
|
||||||
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",data1);
|
|
||||||
System.out.println("Low Temp "+tag);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
end
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
import eu.hsrw.ias.ggd.Notification;
|
||||||
|
import eu.hsrw.ias.ggd.Severity;
|
||||||
|
|
||||||
|
rule "Green House Critical"
|
||||||
|
when
|
||||||
|
warning: Notification(severity > Severity.Info)
|
||||||
|
then
|
||||||
|
System.out.println("Green House critical, because of: '"+warning.getType()+"'");
|
||||||
|
end
|
|
@ -0,0 +1,97 @@
|
||||||
|
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 "Critical Battery"
|
||||||
|
when
|
||||||
|
//$t: HashMap( contains(Device(sensorData.contains(SensorData(tag == "battery")) )))
|
||||||
|
//device: Device()
|
||||||
|
device: Device(sensorDatas: sensorData)
|
||||||
|
|
||||||
|
sensorData: SensorData(tag == "battery", value < 5.0) from sensorDatas
|
||||||
|
//device: Device(hasTag("battery") == true) from $tMap
|
||||||
|
// e: Map.Entry(k:key == "battery", v:value) from $tMap.entrySet()
|
||||||
|
//s: SensorData(tag == "battery") from device.getSensorData()
|
||||||
|
then
|
||||||
|
//insertLogical(new Notification("battery", s, Severity.Warning));
|
||||||
|
System.out.println(sensorData.getTag()+" "+sensorData.getValue());
|
||||||
|
|
||||||
|
|
||||||
|
/*String fixedIdG1="8bdbe6ae-eafb-4e99-bb01-db8784dd9633";
|
||||||
|
HttpPost httpPost = new HttpPost();
|
||||||
|
// System.out.println("Tag: '"+tag+"' has low battery with value: '"+level+"'");
|
||||||
|
final String battery = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"Critical! Low Battery %s \", \"battery\": %s}]}}", fixedIdG1,level,level);
|
||||||
|
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",battery);
|
||||||
|
System.out.println("Low Battery"+level+"in the following sensor"+tag);
|
||||||
|
*/
|
||||||
|
/*HttpPost httpPost = new HttpPost();
|
||||||
|
|
||||||
|
final String finalOutput;
|
||||||
|
boolean critical = false;
|
||||||
|
HashMap<String,Double> test = new HashMap<>();
|
||||||
|
if (tag.equals("fd694041-581e-4c2c-9810-505e62b762e6")){ // This matches 70B3D570500042D7
|
||||||
|
if (level < 7.2 && k.equals("battery") ) {
|
||||||
|
JOptionPane.showMessageDialog(null,"Low Battery : "+level+"! Please swap the battery soon of the following sensor:"+tag,"Low Battery Level",JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
final String battery = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"Critical! Low Battery %s \", \"battery\": %s}]}}", fixedIdG1,level,level);
|
||||||
|
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",battery);
|
||||||
|
System.out.println("Low Battery"+level+"in the following sensor"+tag);
|
||||||
|
critical = true;
|
||||||
|
test.put("battery",level);
|
||||||
|
}
|
||||||
|
if (level > 80 && k.equals("temperature") ) {
|
||||||
|
JOptionPane.showMessageDialog(null,"High Temperature : "+level+" in the following sensor: "+tag+"in the following device id: "+id,"Temperature",JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
final String temperature = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"Critical!High Temperature %s \", \"temperature\": %s}]}}", fixedIdG1,level,level);
|
||||||
|
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",temperature);
|
||||||
|
System.out.println("High Temp");
|
||||||
|
critical = true;
|
||||||
|
}
|
||||||
|
if (level > 14.5 && k.equals("precipitation") ) {
|
||||||
|
JOptionPane.showMessageDialog(null,"High water level : "+level+" in the following sensor"+tag,"Precipitation",JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
final String precipitation = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"High water level %s\", \"precipitation\": %s}]}}", fixedIdG1, level,level);
|
||||||
|
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",precipitation);
|
||||||
|
System.out.println("High water level"+level +" in the following sensor:"+tag);
|
||||||
|
critical = true;
|
||||||
|
}
|
||||||
|
if (level < 22 && k.equals("soilTemperature") ) {
|
||||||
|
JOptionPane.showMessageDialog(null,"Low soil temperature : "+level+" in the following sensor: "+tag+"in the following device id: "+id,"soil Temperature",JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
final String soilTemperature = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"Low soil temperature %s in the following sensor: %s \", \"soilTemperature\": %s}]}}", fixedIdG1,level, tag,level);
|
||||||
|
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",soilTemperature);
|
||||||
|
System.out.println("Low soil Temperature"+level+" in the following sensor "+tag);
|
||||||
|
critical = true;
|
||||||
|
test.put("soilTemperature",level);
|
||||||
|
}
|
||||||
|
if (level <= 30 && k.equals("soilMoisture") ) {
|
||||||
|
JOptionPane.showMessageDialog(null,"Be Careful the soil is dry : "+level+" in the following sensor :"+tag +"in the device:"+id,"Soil Moisture",JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
final String soilMoisture = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"Be Careful the soil sensor %s is dry: %s \", \"soilMoisture\": %s}]}}", fixedIdG1,tag,level,level);
|
||||||
|
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",soilMoisture);
|
||||||
|
System.out.println("Soil is dry"+level+" in the following sensor"+tag);
|
||||||
|
critical = true;
|
||||||
|
}
|
||||||
|
if (level <= 0.57 && level >= 0.11 && k.equals("soilConductivity") ) {
|
||||||
|
JOptionPane.showMessageDialog(null,"Optimal EC levels in the soil : "+level+" in the following sensor"+tag,"Soil Conductivity",JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
final String soilConductivity = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"Optimal EC levels in the soil %s\", \"soilConductivity\": %s}]}}", fixedIdG1, level,level);
|
||||||
|
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",soilConductivity);
|
||||||
|
System.out.println("Optimal EC levels in the soil"+level +" in the following sensor:"+tag);
|
||||||
|
critical = true;
|
||||||
|
}
|
||||||
|
if (level > 20 && k.equals("dielectricPermittivity") ) {
|
||||||
|
JOptionPane.showMessageDialog(null,"High dielectricPermittivity : "+level+" in the following sensor"+tag,"dielectricPermittivity",JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
final String dielectricPermittivity = String.format("{\"id\":\"%s\",\"data\":{\"measured\":[{ \"status\": \"High dielectricPermittivity %s\", \"dielectricPermittivity\": %s}]}}", fixedIdG1, level,level);
|
||||||
|
httpPost.HttpCallPost("http://connector.dev.whysor.com/default/insert?access_token=3hosOhAeh4k0XmcuAMQGfYldvTuQDvtAj2PJJ4irKPBefD5Ijij6gnUkLtVLd4fW",dielectricPermittivity);
|
||||||
|
System.out.println("High dielectricPermittivity"+level +" in the following sensor:"+tag);
|
||||||
|
critical = true;
|
||||||
|
}
|
||||||
|
// if(critical == true){
|
||||||
|
// finalOutput
|
||||||
|
// }
|
||||||
|
finalOutput = String.format("{\"id\":\"70B3D570500042D7-status\",\"data\":{\"measured\":[{ \"status\": \"The status of the device 1 is critical\",}]}}");
|
||||||
|
System.out.println(finalOutput);
|
||||||
|
}*/
|
||||||
|
|
||||||
|
end
|
|
@ -0,0 +1,9 @@
|
||||||
|
import eu.hsrw.ias.ggd.Notification;
|
||||||
|
import eu.hsrw.ias.ggd.Severity;
|
||||||
|
|
||||||
|
rule "Green House Critical"
|
||||||
|
when
|
||||||
|
warning: Notification(severity > Severity.Info)
|
||||||
|
then
|
||||||
|
System.out.println("Green House critical, because of: '"+warning.getType()+"'");
|
||||||
|
end
|
Loading…
Reference in New Issue