Made Hal more robust
This commit is contained in:
parent
132bd3b29d
commit
1cc834f089
7 changed files with 39 additions and 15 deletions
|
|
@ -16,7 +16,7 @@
|
|||
<tr>
|
||||
<td>{{.getName()}}</td>
|
||||
<td>{{.getVersion()}}</td>
|
||||
<td>{{.getDescription()}}</td>
|
||||
<td>{{#.getDescription()}}{{.getDescription()}}{{/.getDescription()}}</td>
|
||||
<td>
|
||||
<form method="POST">
|
||||
<input type="hidden" name="action" value="modify">
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ public class TriggerManager {
|
|||
for (TriggerFlow flow : TriggerFlow.getTriggerFlows(db)) {
|
||||
TriggerManager.getInstance().register(flow);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
} catch (Exception e) {
|
||||
logger.log(Level.SEVERE, "Unable to read in existing triggers.", e);
|
||||
}
|
||||
}
|
||||
|
|
@ -74,7 +74,9 @@ public class TriggerManager {
|
|||
public void run() {
|
||||
try {
|
||||
evaluateAndExecute();
|
||||
} catch (Exception e){ logger.log(Level.SEVERE, "Trigger Evaluation Thread has Crashed", e); }
|
||||
} catch (Exception e) {
|
||||
logger.log(Level.SEVERE, "Trigger Evaluation Thread has Crashed", e);
|
||||
}
|
||||
}
|
||||
}, 0, interval, TimeUnit.MILLISECONDS);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@ public class SendEventAction implements HalAction {
|
|||
|
||||
|
||||
public String toString(){
|
||||
return "Send event: " + event.getId() +
|
||||
" (" + (event!=null ? event.getName() : null) + ")" +
|
||||
return "Send event: " + (event != null ? event.getId() : null) +
|
||||
" (" + (event != null ? event.getName() : null) + ")" +
|
||||
" with data: " + data;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,10 +2,14 @@ package se.hal.page;
|
|||
|
||||
import se.hal.HalContext;
|
||||
import se.hal.HalServer;
|
||||
import se.hal.intf.HalAbstractController;
|
||||
import se.hal.intf.HalAbstractControllerManager;
|
||||
import se.hal.intf.HalWebPage;
|
||||
import zutil.io.file.FileUtil;
|
||||
import zutil.parser.Templator;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static zutil.ui.UserMessageManager.*;
|
||||
|
|
@ -29,16 +33,27 @@ public class PluginConfigWebPage extends HalWebPage {
|
|||
|
||||
if (request.containsKey("action")) {
|
||||
String name = request.get("action_id");
|
||||
HalServer.enablePlugin(name,
|
||||
(request.containsKey("enabled") && "on".equals(request.get("enabled"))));
|
||||
|
||||
HalAlertManager.getInstance().addAlert(new UserMessage(
|
||||
MessageLevel.SUCCESS, "Successfully updated plugin " + name + ", change will take affect after restart.", MessageTTL.ONE_VIEW));
|
||||
if (!name.equals("Hal-Core")) {
|
||||
HalServer.enablePlugin(name,
|
||||
(request.containsKey("enabled") && "on".equals(request.get("enabled"))));
|
||||
|
||||
HalAlertManager.getInstance().addAlert(new UserMessage(
|
||||
MessageLevel.SUCCESS, "Successfully updated plugin " + name + ", change will take affect after restart.", MessageTTL.ONE_VIEW));
|
||||
} else {
|
||||
HalAlertManager.getInstance().addAlert(new UserMessage(
|
||||
MessageLevel.ERROR, "Hal-Core cannot be disabled as it is critical component of Hal.", MessageTTL.ONE_VIEW));
|
||||
}
|
||||
}
|
||||
|
||||
List<HalAbstractController> controllers = new LinkedList<>();
|
||||
for (HalAbstractControllerManager manager : HalServer.getControllerManagers()) {
|
||||
controllers.addAll(manager.getControllers());
|
||||
}
|
||||
|
||||
Templator tmpl = new Templator(FileUtil.find(TEMPLATE));
|
||||
tmpl.set("plugins", HalServer.getAllPlugins());
|
||||
//tmpl.set("controllers", ControllerManager.getInstance().getControllers()); // TODO: Get all controllers
|
||||
tmpl.set("controllers", controllers);
|
||||
return tmpl;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ public abstract class DeviceTrigger implements HalTrigger,
|
|||
|
||||
@Configurator.Configurable("Trigger only on change")
|
||||
protected boolean triggerOnChange = true;
|
||||
@Configurator.Configurable("Data to compare to")
|
||||
@Configurator.Configurable("Trigger when data equals")
|
||||
protected double expectedData;
|
||||
|
||||
private transient HalDeviceData receivedData;
|
||||
|
|
|
|||
|
|
@ -20,10 +20,10 @@ public class EventTrigger extends DeviceTrigger{
|
|||
}
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
public String toString() {
|
||||
Event event = getDevice();
|
||||
return "Trigger " + (triggerOnChange ? "on" : "when") +
|
||||
" event: " + device.getId() + " (" + (event != null ? event.getName() : null) + ")" +
|
||||
" event: " + (device != null ? device.getId() : null) + " (" + (event != null ? event.getName() : null) + ")" +
|
||||
" == " + expectedData;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package se.hal.util;
|
|||
import se.hal.HalContext;
|
||||
import se.hal.struct.Event;
|
||||
import zutil.db.DBConnection;
|
||||
import zutil.log.LogUtil;
|
||||
import zutil.ui.conf.Configurator;
|
||||
|
||||
import java.sql.SQLException;
|
||||
|
|
@ -10,11 +11,15 @@ import java.util.ArrayList;
|
|||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
/**
|
||||
* A value provider that will give all Enum values
|
||||
*/
|
||||
public class ConfigEventValueProvider implements Configurator.ConfigValueProvider<Event> {
|
||||
private static final Logger logger = LogUtil.getLogger();
|
||||
|
||||
private Event currentValue;
|
||||
private Map<String, Event> events = new HashMap<>();
|
||||
|
||||
|
|
@ -29,13 +34,15 @@ public class ConfigEventValueProvider implements Configurator.ConfigValueProvide
|
|||
events.put(getValue(event), event);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
throw new RuntimeException("Unable to collect Event objects.", e);
|
||||
logger.log(Level.SEVERE, "Unable to retrieve local events.", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue(Event event) {
|
||||
return event.getName() + " (id: " + event.getId() + ")";
|
||||
return (event != null ?
|
||||
event.getName() + " (id: " + event.getId() + ")" :
|
||||
null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue