Fixed zigbee on off events

This commit is contained in:
Ziver Koc 2021-07-19 23:51:29 +02:00
parent 203bb67f7f
commit 68054ebf4f
12 changed files with 114 additions and 39 deletions

View file

@ -1,4 +1,4 @@
<h1 class="page-header">Details for <a href="#">{{event.getName()}}</a></h1>
<h1 class="page-header">Details for <a href="?id={{event.getId()}}">{{event.getName()}}</a></h1>
<div class="col-md-5">
<div class="panel panel-default drop-shadow">

View file

@ -1,4 +1,4 @@
<h1 class="page-header">Details for <a href="#">{{sensor.getName()}}</a></h1>
<h1 class="page-header">Details for <a href="?id={{sensor.getId()}}">{{sensor.getName()}}</a></h1>
<div class="col-md-12">
<div class="panel panel-default drop-shadow">

View file

@ -132,7 +132,7 @@ public class EventControllerManager extends HalAbstractControllerManager<HalEven
*/
@Override
public void reportReceived(HalDeviceConfig eventConfig, HalDeviceData eventData) {
if (!(eventConfig instanceof HalEventConfig && eventData instanceof HalEventData))
if (!(eventConfig instanceof HalEventConfig))
return;
try {
@ -140,13 +140,15 @@ public class EventControllerManager extends HalAbstractControllerManager<HalEven
Event event = HalDeviceUtil.findDevice(eventConfig, registeredEvents);
if (event != null) {
logger.finest("Received report from event(" + eventConfig.getClass().getSimpleName() + "): " + eventConfig);
PreparedStatement stmt =
db.getPreparedStatement("INSERT INTO event_data_raw (timestamp, event_id, data) VALUES(?, ?, ?)");
stmt.setLong(1, eventData.getTimestamp());
stmt.setLong(2, event.getId());
stmt.setDouble(3, eventData.getData());
DBConnection.exec(stmt);
if (eventData != null) {
logger.finest("Received report from event(" + eventConfig.getClass().getSimpleName() + "): " + eventConfig);
PreparedStatement stmt =
db.getPreparedStatement("INSERT INTO event_data_raw (timestamp, event_id, data) VALUES(?, ?, ?)");
stmt.setLong(1, eventData.getTimestamp());
stmt.setLong(2, event.getId());
stmt.setDouble(3, eventData.getData());
DBConnection.exec(stmt);
}
}
else { // unknown sensor
logger.info("Received report from unregistered event" +
@ -158,12 +160,14 @@ public class EventControllerManager extends HalAbstractControllerManager<HalEven
}
event.setDeviceConfig((HalEventConfig) eventConfig);
}
event.setDeviceData((HalEventData) eventData);
// call listeners
for (HalDeviceReportListener listener : event.getReportListeners())
listener.reportReceived(event.getDeviceConfig(), eventData);
}catch (SQLException e){
} catch (SQLException e){
logger.log(Level.WARNING, "Unable to store event report", e);
}
}
@ -171,6 +175,7 @@ public class EventControllerManager extends HalAbstractControllerManager<HalEven
public void send(Event event){
HalEventController controller = getControllerInstance(event.getController());
if (controller != null) {
event.getDeviceData().setTimestamp(System.currentTimeMillis()); // Set timestamp to now
controller.send(event.getDeviceConfig(), event.getDeviceData());
reportReceived(event.getDeviceConfig(), event.getDeviceData()); // save action to db
}

View file

@ -134,7 +134,7 @@ public class SensorControllerManager extends HalAbstractControllerManager<HalAbs
*/
@Override
public void reportReceived(HalDeviceConfig sensorConfig, HalDeviceData sensorData) {
if (!(sensorConfig instanceof HalSensorConfig && sensorData instanceof HalSensorData))
if (!(sensorConfig instanceof HalSensorConfig))
return;
try{
@ -142,13 +142,15 @@ public class SensorControllerManager extends HalAbstractControllerManager<HalAbs
Sensor sensor = HalDeviceUtil.findDevice(sensorConfig, registeredSensors);
if (sensor != null) {
logger.finest("Received report from sensor(" + sensorConfig.getClass().getSimpleName() + "): " + sensorConfig);
PreparedStatement stmt =
db.getPreparedStatement("INSERT INTO sensor_data_raw (timestamp, sensor_id, data) VALUES(?, ?, ?)");
stmt.setLong(1, sensorData.getTimestamp());
stmt.setLong(2, sensor.getId());
stmt.setDouble(3, sensorData.getData());
DBConnection.exec(stmt);
if (sensorData != null) {
logger.finest("Received report from sensor(" + sensorConfig.getClass().getSimpleName() + "): " + sensorConfig);
PreparedStatement stmt =
db.getPreparedStatement("INSERT INTO sensor_data_raw (timestamp, sensor_id, data) VALUES(?, ?, ?)");
stmt.setLong(1, sensorData.getTimestamp());
stmt.setLong(2, sensor.getId());
stmt.setDouble(3, sensorData.getData());
DBConnection.exec(stmt);
}
}
else { // unknown sensor
logger.finest("Received report from unregistered sensor" +
@ -160,7 +162,9 @@ public class SensorControllerManager extends HalAbstractControllerManager<HalAbs
}
sensor.setDeviceConfig((HalSensorConfig) sensorConfig);
}
sensor.setDeviceData((HalSensorData) sensorData);
// call listeners
for (HalDeviceReportListener listener : sensor.getReportListeners())
listener.reportReceived(sensorConfig, sensorData);