diff --git a/resource/web/event_config.tmpl b/resource/web/event_config.tmpl index a495c0af..342cd185 100755 --- a/resource/web/event_config.tmpl +++ b/resource/web/event_config.tmpl @@ -113,11 +113,13 @@ // Set dynamic data modal.find("select[name=type]").val(button.data("type")); modal.find("select[name=type]").change(); // Update dynamic inputs - $.each(button.attr(), function(name, value) { - if(name.startsWith("data-")) { - name = name.substring(5); - console.log(name, value); - modal.find("input[name="+name+"]").val(value); + $.each(button.attr(), function(fieldName, value) { + if(fieldName.startsWith("data-")) { + fieldName = fieldName.substring(5); + // case insensitive search + modal.find("input").filter(function() { + return this.name.toLowerCase() == fieldName; + }).val(value); } }); }); diff --git a/resource/web/js/hal.js b/resource/web/js/hal.js index a60bbf95..b27379fe 100755 --- a/resource/web/js/hal.js +++ b/resource/web/js/hal.js @@ -28,6 +28,7 @@ $(function(){ }; })($.fn.attr); +// converts all timestamps to human readable time and date $.fn.relTimestamp = function() { return this.each(function() { var timestamp = parseInt($(this).text()); diff --git a/resource/web/sensor_config.tmpl b/resource/web/sensor_config.tmpl index ba4087b6..6f6518fc 100755 --- a/resource/web/sensor_config.tmpl +++ b/resource/web/sensor_config.tmpl @@ -215,11 +215,14 @@ // set dynamic form data modal.find("select[name=type]").val(button.data("type")); modal.find("select[name=type]").change(); // Update dynamic inputs - $.each(button.attr(), function(name, value) { - if(name.startsWith("data-")) { - name = name.substring(5); - console.log(name, value); - modal.find("input[name="+name+"]").val(value); + $.each(button.attr(), function(fieldName, value) { + if(fieldName.startsWith("data-")) { + fieldName = fieldName.substring(5); + console.log(fieldName, value); + // case insensitive search + modal.find("input").filter(function() { + return this.name.toLowerCase() == fieldName; + }).val(value); } }); }); diff --git a/src/se/hal/ControllerManager.java b/src/se/hal/ControllerManager.java index 69f1d187..c8fb9664 100755 --- a/src/se/hal/ControllerManager.java +++ b/src/se/hal/ControllerManager.java @@ -115,7 +115,8 @@ public class ControllerManager implements HalSensorReportListener, db.exec(stmt); } else { // unknown sensor - logger.finest("Received report from unregistered sensor: "+ sensorData); + logger.finest("Received report from unregistered sensor" + + "("+sensorData.getClass().getSimpleName()+"): "+ sensorData); sensor = findSensor(sensorData, detectedSensors); if(sensor == null) { sensor = new Sensor(); @@ -200,7 +201,8 @@ public class ControllerManager implements HalSensorReportListener, db.exec(stmt); } else { // unknown sensor - logger.info("Received report from unregistered event: "+ eventData); + logger.info("Received report from unregistered event" + + "("+eventData.getClass().getSimpleName()+"): "+ eventData); event = findEvent(eventData, detectedEvents); if(event == null) { event = new Event(); diff --git a/src/se/hal/plugin/nutups/NutUpsController.java b/src/se/hal/plugin/nutups/NutUpsController.java index 000149f7..2b2f4801 100755 --- a/src/se/hal/plugin/nutups/NutUpsController.java +++ b/src/se/hal/plugin/nutups/NutUpsController.java @@ -5,16 +5,20 @@ import se.hal.intf.HalAutoScannableController; import se.hal.intf.HalSensorController; import se.hal.intf.HalSensorData; import se.hal.intf.HalSensorReportListener; +import zutil.log.LogUtil; import zutil.osal.app.linux.NutUPSClient; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; +import java.util.logging.Level; +import java.util.logging.Logger; /** * Created by Ziver on 2016-05-25. */ public class NutUpsController implements HalSensorController, HalAutoScannableController, Runnable{ + public static Logger logger = LogUtil.getLogger(); private static final int SYNC_INTERVAL = 60 * 1000; private NutUPSClient client; @@ -49,10 +53,14 @@ public class NutUpsController implements HalSensorController, HalAutoScannableCo @Override public void run() { - if(client != null && listener != null){ - for (NutUPSClient.UPSDevice ups : client.getUPSList()){ - listener.reportReceived(new NutUpsDevice(ups)); + try { + if (client != null && listener != null) { + for (NutUPSClient.UPSDevice ups : client.getUPSList()) { + listener.reportReceived(new NutUpsDevice(ups)); + } } + } catch (Exception e){ + logger.log(Level.SEVERE, "NutUps thread crashed", e); } } diff --git a/src/se/hal/plugin/nutups/NutUpsDevice.java b/src/se/hal/plugin/nutups/NutUpsDevice.java index fe471588..c9698de3 100755 --- a/src/se/hal/plugin/nutups/NutUpsDevice.java +++ b/src/se/hal/plugin/nutups/NutUpsDevice.java @@ -43,11 +43,14 @@ public class NutUpsDevice implements PowerConsumptionSensorData{ return false; } - + public String toString(){ + return "id: "+deviceId + + ", consumption: "+consumption; + } @Override public AggregationMethod getAggregationMethod() { - return AggregationMethod.SUM; + return AggregationMethod.AVERAGE; } @Override public Class getSensorController() {