diff --git a/src/se/hal/ControllerManager.java b/src/se/hal/ControllerManager.java index f7b6e32d..f932145f 100755 --- a/src/se/hal/ControllerManager.java +++ b/src/se/hal/ControllerManager.java @@ -226,8 +226,10 @@ public class ControllerManager implements HalSensorReportListener, public void send(Event event){ HalEventController controller = getControllerInstance(event.getController()); - if(controller != null) + if(controller != null) { controller.send(event.getDeviceData()); + reportReceived(event.getDeviceData()); // save action to db + } else logger.warning("No controller found for event id: "+ event.getId()); } diff --git a/src/se/hal/page/EventOverviewHttpPage.java b/src/se/hal/page/EventOverviewHttpPage.java index 5c7cc499..ee64bcba 100755 --- a/src/se/hal/page/EventOverviewHttpPage.java +++ b/src/se/hal/page/EventOverviewHttpPage.java @@ -2,6 +2,7 @@ package se.hal.page; import se.hal.ControllerManager; import se.hal.HalContext; +import se.hal.intf.HalEventData; import se.hal.intf.HalHttpPage; import se.hal.struct.Event; import se.hal.struct.SwitchEventData; @@ -39,11 +40,12 @@ public class EventOverviewHttpPage extends HalHttpPage { if(request.containsKey("action")){ // change event data Event event = Event.getEvent(db, id); - if (event instanceof SwitchEventData){ - if ( ! ((SwitchEventData)event).isOn()) - ((SwitchEventData)event).turnOn(); + HalEventData eventData = event.getDeviceData(); + if (eventData instanceof SwitchEventData){ + if ( request.containsKey("data") && "on".equals(request.get("data"))) + ((SwitchEventData)eventData).turnOn(); else - ((SwitchEventData)event).turnOff(); + ((SwitchEventData)eventData).turnOff(); } ControllerManager.getInstance().send(event); } diff --git a/src/se/hal/plugin/tellstick/TellstickSerialComm.java b/src/se/hal/plugin/tellstick/TellstickSerialComm.java index d95a2abf..55c1d3b8 100755 --- a/src/se/hal/plugin/tellstick/TellstickSerialComm.java +++ b/src/se/hal/plugin/tellstick/TellstickSerialComm.java @@ -83,9 +83,12 @@ public class TellstickSerialComm implements Runnable, HalSensorController, HalEv serial.setComPortTimeouts( SerialPort.TIMEOUT_READ_BLOCKING, 0, 0); + //in = new InputStreamLogger(serial.getInputStream()); + //out = new OutputStreamLogger(serial.getOutputStream()); in = new InputStreamLogger(serial.getInputStream()); out = new OutputStreamLogger(serial.getOutputStream()); + Executors.newSingleThreadExecutor().execute(this); } @@ -166,15 +169,15 @@ public class TellstickSerialComm implements Runnable, HalSensorController, HalEv write(prot.encode()); try { this.wait(); + prot.setTimestamp(System.currentTimeMillis()); } catch (InterruptedException e) { logger.log(Level.SEVERE, null, e); } } public void write(String data) { try { - //for(int i=0; i