forked from kevin.shehu/GGD
		
	FIX : Sensor reading
NEW : Idea for Rule Engine
This commit is contained in:
		
							
								
								
									
										97
									
								
								target/classes/rules/Critical.drl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								target/classes/rules/Critical.drl
									
									
									
									
									
										Normal file
									
								
							| @@ -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 | ||||
							
								
								
									
										9
									
								
								target/classes/rules/warnings.drl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								target/classes/rules/warnings.drl
									
									
									
									
									
										Normal file
									
								
							| @@ -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 | ||||
		Reference in New Issue
	
	Block a user