Skip to content

Commit

Permalink
removing items if not valid
Browse files Browse the repository at this point in the history
  • Loading branch information
maxlein committed Jun 25, 2017
1 parent 07e7772 commit 52e70d0
Show file tree
Hide file tree
Showing 7 changed files with 35 additions and 19 deletions.
7 changes: 3 additions & 4 deletions src/main/java/home/FileHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,17 +46,16 @@ public static String parseFileForTemperature(File file){
e.printStackTrace();
}

list.forEach(System.out::println);
//list.forEach(System.out::println);
String tempLine = list.get(0);
return tempLine.substring(tempLine.lastIndexOf("t=") + 2);

}

public static String getTemperatureFromDS1820SensorReading(String path, String sensorFolderStartingWith, String sensorFile){
List<File> filteredSubDirs = FileHelper.getSubDirectories(path, sensorFolderStartingWith);
log.info("size is " + filteredSubDirs.size() + ", path: " + filteredSubDirs.get(0).getPath() + ", abs path: " + filteredSubDirs.get(0).getAbsolutePath());
log.debug("size is " + filteredSubDirs.size() + ", path: " + filteredSubDirs.get(0).getPath() + ", abs path: " + filteredSubDirs.get(0).getAbsolutePath());
List<File> files = FileHelper.getFilesWithName(filteredSubDirs.get(0).getPath(), sensorFile);
log.info("files: " + files.size() + ", file: " + files.get(0).getName());
log.debug("files: " + files.size() + ", file: " + files.get(0).getName());
return FileHelper.parseFileForTemperature(files.get(0));
}

Expand Down
11 changes: 11 additions & 0 deletions src/main/java/home/IFSensorData.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,15 @@ public abstract class IFSensorData {
protected Map<String,SensorItem> sensorItems = new HashMap<>();

Map<String,SensorItem> getItems(){return sensorItems;};

public void removeItem(String itemName){
sensorItems.remove(itemName);
}

protected void addItemIfAbsent(SensorItem item) {
String id = item.item.getName();
if (!sensorItems.containsKey(id)) {
sensorItems.put(id, item);
}
}
}
11 changes: 10 additions & 1 deletion src/main/java/home/ItemHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,15 @@ private void updateRestItem(SensorItem sensorItem){
restHandler.updateItemState(sensorItem.item);
return;
}
log.info(sensorItem.item.getName() + " is not valid!");
else {
log.debug(sensorItem.item.getName() + " is not valid! Deleting item");
removeItem(sensorItem);
}
}

private void removeItem(SensorItem sensorItem) {
for (IFSensorData sensorData : ifSensorData) {
sensorData.removeItem(sensorItem.item.getName());
}
}
}
9 changes: 4 additions & 5 deletions src/main/java/home/LocalSensorHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,9 @@ private void updateSensorData(){
return;
}

String id = roomName+temperature;
if (!sensorItems.containsKey(id)) {
sensorItems.put(id, SensorItem.createTemperatureSensorItem(roomName));
}
SensorItem item = SensorItem.createTemperatureSensorItem(roomName);
String id = item.item.getName();
addItemIfAbsent(item);

SensorItem sensorItem = sensorItems.get(id);
sensorItems.get(id).item.setState(temperature);
Expand All @@ -60,7 +59,7 @@ private String getTemperature(){
Integer temp = Integer.parseInt(temperature);
Double temp_conv = temp / 1000.0;
temperature = String.valueOf(temp_conv);
log.info(temperature + ", int: " + temp + ", double: " + temp_conv);
log.debug(temperature + ", int: " + temp + ", double: " + temp_conv);
return temperature;}
catch (Exception e){
log.error("getTemperature(): Exception=" + e.getMessage());
Expand Down
7 changes: 3 additions & 4 deletions src/main/java/home/MqttHumiditySensorHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,9 @@ public class MqttHumiditySensorHandler extends IFSensorData {

public void addHumidityReading(String location, String humidity){

String id = location+humidity;
if (!sensorItems.containsKey(id)) {
sensorItems.put(id, SensorItem.createHumiditySensorItem(location));
}
SensorItem item = SensorItem.createHumiditySensorItem(location);
String id = item.item.getName();
addItemIfAbsent(item);

SensorItem sensorItem = sensorItems.get(id);
sensorItems.get(id).item.setState(humidity);
Expand Down
7 changes: 3 additions & 4 deletions src/main/java/home/MqttSensorHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,9 @@ public class MqttSensorHandler extends IFSensorData {

public void addTemperatureReading(String location, String temperature){

String id = location+temperature;
if (!sensorItems.containsKey(id)) {
sensorItems.put(id, SensorItem.createTemperatureSensorItem(location));
}
SensorItem item = SensorItem.createTemperatureSensorItem(location);
String id = item.item.getName();
addItemIfAbsent(item);

SensorItem sensorItem = sensorItems.get(id);
sensorItems.get(id).item.setState(temperature);
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/home/SensorItem.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public static SensorItem createHumiditySensorItem(String location){

public boolean isValid() {
long age = (System.currentTimeMillis() - lastUpdateTime)/1000;
log.info("age of sensor is " + age + ", timeout: " + sensorValidTimeout);
log.debug("age of sensor is " + age + ", timeout: " + sensorValidTimeout);
return age < sensorValidTimeout;
}
}

0 comments on commit 52e70d0

Please sign in to comment.