@Override public void onPrePOST(String data, OgemaHttpRequest req) { BooleanResource source = getResource(sva, req, BooleanResource.class); if(!source.exists()) { source.create(); source.activate(true); } } };
@Override public JSONObject onPOST(String data, OgemaHttpRequest req) { JSONObject request = super.onPOST(data, req); //cleanUp(); boolean bval = false; for(Entry<String, Boolean> e: checkboxList.entrySet()) { bval = e.getValue(); } if(!selected.isActive()) { selected.create(); selected.setValue(bval); selected.activate(false); } else selected.setValue(bval); return request; }
public TriggerListener(ApplicationManager appMan, SystemSupervisionConfig config, Tasks tasks) { this.config = config; this.tasks = tasks; config.triggerDiskCheck().<BooleanResource> create().activate(false); config.triggerMemoryCheck().<BooleanResource> create().activate(false); config.triggerResourceCheck().<BooleanResource> create().activate(false); config.triggerDiskCheck().addValueListener(this, true); config.triggerMemoryCheck().addValueListener(this, true); config.triggerResourceCheck().addValueListener(this, true); }
@Override public void setup(HmDevice parent, DeviceDescription desc, Map<String, Map<String, ParameterDescription<?>>> paramSets) { LoggerFactory.getLogger(getClass()).debug("setup SWITCH handler for address {}", desc.getAddress()); String swName = ResourceUtils.getValidResourceName("SWITCH_" + desc.getAddress()); OnOffSwitch sw = parent.addDecorator(swName, OnOffSwitch.class); sw.stateControl().create(); sw.stateFeedback().create(); sw.stateControl().addValueListener(new SingleChangeUpdater(desc.getAddress(), "STATE")); conn.addEventListener(new SwitchEventListener(sw, desc.getAddress())); sw.activate(true); }
private void createReadWriteableComInfo(PhysicalElement device, boolean readable, boolean writeable) { final CommunicationInformation comInfo = device.addDecorator(NAME_COM_INFO, CommunicationInformation.class); final DeviceAddress comAddress = comInfo.comAddress(); comAddress.create(); comAddress.readable().create(); comAddress.writeable().create(); comAddress.readable().setValue(readable); comAddress.writeable().setValue(writeable); }
@Override public void setup(HmDevice parent, DeviceDescription desc, Map<String, Map<String, ParameterDescription<?>>> paramSets) { logger.debug("setup MOTION_DETECTOR handler for address {}", desc.getAddress()); String swName = ResourceUtils.getValidResourceName("MOTION_DETECTOR" + desc.getAddress()); Map<String, ParameterDescription<?>> values = paramSets.get(ParameterDescription.SET_TYPES.VALUES.name()); if (values == null) { logger.warn("received no VALUES parameters for device {}", desc.getAddress()); return; } OccupancySensor sens = parent.addDecorator(swName, OccupancySensor.class); sens.reading().create(); sens.activate(true); conn.addEventListener(new MotionEventListener(sens, desc.getAddress())); }
@Override public void onPOSTComplete(String data, OgemaHttpRequest req) { String name = this.getSelectedValue(req); for (S conf : entries.getAllElements()) { conf.active().<BooleanResource>create().setValue(conf.userName().getValue().equals(name)); conf.active().activate(false); } }
@Override public void setup(HmDevice parent, DeviceDescription desc, Map<String, Map<String, ParameterDescription<?>>> paramSets) { logger.debug("setup KEY handler for address {}", desc.getAddress()); String remoteName = "KEYS"; RemoteControl rc = parent.addDecorator(remoteName, RemoteControl.class); rc.shortPress().create(); rc.longPress().create(); rc.activate(true); String eventResourceName = getEventResourceName(parent, desc); logger.debug("mapping channel {} of device type {} to {}", desc.getAddress(), parent.type().getValue(), eventResourceName); BooleanResource shortPressEventResource = rc.shortPress().addDecorator(eventResourceName, BooleanResource.class).create(); BooleanResource longPressEventResource = rc.longPress().addDecorator(eventResourceName, BooleanResource.class).create(); conn.addEventListener(new KeyEventListener(desc.getAddress(), shortPressEventResource, longPressEventResource)); }
@Override public void setup(HmDevice parent, DeviceDescription desc, Map<String, Map<String, ParameterDescription<?>>> paramSets) { logger.debug("setup MAINTENANCE handler for address {}", desc.getAddress()); String swName = ResourceUtils.getValidResourceName("MAINTENANCE" + desc.getAddress()); Map<String, ParameterDescription<?>> values = paramSets.get(ParameterDescription.SET_TYPES.VALUES.name()); if (values == null) { logger.warn("received no VALUES parameters for device {}", desc.getAddress()); return; } HmMaintenance mnt = parent.addDecorator(swName, HmMaintenance.class); // create the battery field as it will be probably be linked into higher level models mnt.batteryLow().create(); mnt.activate(true); mnt.communicationStatus().communicationDisturbed().create(); try { mnt.communicationStatus().communicationDisturbed().setValue(conn.<Boolean>getValue(desc.getAddress(), PARAMS.UNREACH.name())); } catch (IOException ioex) { logger.warn("could not read UNREACH state of device {}: {}", desc.getAddress(), ioex.getMessage()); } mnt.communicationStatus().activate(true); conn.addEventListener(new MaintenanceEventListener(parent, mnt, desc.getAddress())); }
protected boolean performSwitchBoxSetup(HmDevice dev) { //logger.debug("perform high level setup for device {}", dev.address().getValue()); List<ElectricityConnection> elConns = dev.getSubResources(ElectricityConnection.class, false); List<OnOffSwitch> switches = dev.getSubResources(OnOffSwitch.class, false); if (elConns.size() == 1 && switches.size() == 1) { String ssbName = ResourceUtils.getValidResourceName("HM-SingleSwitchBox-" + dev.address().getValue()); logger.debug("set up SingleSwitchBox for HomeMatic device {}", dev.address().getValue()); OnOffSwitch sw = switches.get(0); ElectricityConnection elConn = elConns.get(0); SingleSwitchBox ssb = dev.getSubResource(ssbName, SingleSwitchBox.class); ssb.onOffSwitch().stateControl().create().activate(false); ssb.onOffSwitch().stateFeedback().create().activate(false); ssb.electricityConnection().create().activate(false); ssb.onOffSwitch().activate(false); elConn.setAsReference(ssb.electricityConnection()); sw.setAsReference(ssb.onOffSwitch()); ssb.activate(false); return true; } return false; }
@Override public void setup(HmDevice parent, DeviceDescription desc, Map<String, Map<String, ParameterDescription<?>>> paramSets) { logger.debug("setup SHUTTER_CONTACT handler for address {}", desc.getAddress()); String swName = ResourceUtils.getValidResourceName("SHUTTER_CONTACT" + desc.getAddress()); Map<String, ParameterDescription<?>> values = paramSets.get(ParameterDescription.SET_TYPES.VALUES.name()); if (values == null) { logger.warn("received no VALUES parameters for device {}", desc.getAddress()); return; } DoorWindowSensor sens = parent.addDecorator(swName, DoorWindowSensor.class); sens.reading().create(); sens.activate(true); sens.battery().chargeSensor().reading().create(); sens.activate(true); conn.addEventListener(new ShutterContactListener(sens, desc.getAddress())); }
@Override public void setup(HmDevice parent, DeviceDescription desc, Map<String, Map<String, ParameterDescription<?>>> paramSets) { logger.debug("setup SHUTTER_CONTACT handler for address {}", desc.getAddress()); String swName = ResourceUtils.getValidResourceName("SHUTTER_CONTACT" + desc.getAddress()); Map<String, ParameterDescription<?>> values = paramSets.get(ParameterDescription.SET_TYPES.VALUES.name()); if (values == null) { logger.warn("received no VALUES parameters for device {}", desc.getAddress()); return; } DoorWindowSensor sens = parent.addDecorator(swName, DoorWindowSensor.class); sens.reading().create(); sens.activate(true); sens.battery().chargeSensor().reading().create(); sens.activate(true); conn.addEventListener(new ShutterContactListener(sens, desc.getAddress())); }
@Override public void setup(HmDevice parent, DeviceDescription desc, Map<String, Map<String, ParameterDescription<?>>> paramSets) { logger.debug("setup MOTIONDETECTOR_TRANSCEIVER handler for address {}", desc.getAddress()); String swName = ResourceUtils.getValidResourceName("MOTIONDETECTOR_TRANSCEIVER" + desc.getAddress()); Map<String, ParameterDescription<?>> values = paramSets.get(ParameterDescription.SET_TYPES.VALUES.name()); if (values == null) { logger.warn("received no VALUES parameters for device {}", desc.getAddress()); return; } SensorDevice sd = parent.addDecorator(swName, SensorDevice.class); //OccupancySensor sens = parent.addDecorator(swName, OccupancySensor.class); OccupancySensor sens = sd.sensors().addDecorator("motion", OccupancySensor.class); sens.reading().create(); //sens.activate(true); LightSensor illumination = sd.sensors().addDecorator("illumination", LightSensor.class); illumination.reading().create(); //illumination.activate(true); conn.addEventListener(new MotionEventListener(sens, illumination, desc.getAddress())); sd.activate(true); //sd.sensors().activate(false); }
@Override public boolean commit() { if (m_source == null || m_target == null) { return false; } // delete the old configuration if it exsited. if (m_config != null) m_config.delete(); m_config = m_base.createResource(ThresholdModel.class); m_config.source().setAsReference(m_source); m_config.target().setAsReference(m_target); m_config.threshold().create(); m_config.threshold().setValue(m_threshold); m_config.equalityExceeds().create(); m_config.equalityExceeds().setValue(m_equalityExceeds); m_config.invert().create(); m_config.invert().setValue(m_invert); m_config.activate(true); return true; }
@Override public boolean commit() { if (m_inputs == null || m_output == null) { return false; } // delete the old configuration if it exsited. if (m_config != null) m_config.delete(); m_config = m_base.createResource(SumModel.class); m_config.inputs().create(); for (SingleValueResource val : m_inputs) { if (!val.exists()) { val.create(); LoggerFactory.getLogger(ResourceManipulatorImpl.class).warn("Virtual resource passed to Sum configuration; creating it. {}",val); } m_config.inputs().add(val); } m_config.resultBase().setAsReference(m_output); m_config.delay().create(); m_config.delay().setValue(m_delay); m_config.deactivateEmptySum().create(); m_config.deactivateEmptySum().setValue(m_deactivateEmtpySum); m_config.activate(true); return true; }
@Override public boolean commit() { if (m_targetResource == null) { return false; } // delete the old configuration if it exsited. if (m_config != null) { m_config.delete(); } m_config = m_base.createResource(ProgramEnforcerModel.class); m_config.targetResource().setAsReference(m_targetResource); m_config.updateInterval().create(); m_config.updateInterval().setValue(m_updateInterval); m_config.exclusiveAccessRequired().create(); m_config.exclusiveAccessRequired().setValue(m_exclusiveAccessRequired); m_config.priority().create(); m_config.priority().setValue(m_priority.toString()); m_config.deactivateIfValueMissing().create(); m_config.deactivateIfValueMissing().setValue(m_deactivate); if (m_scheduleName != null) { m_config.scheduleResourceName().<StringResource> create().setValue(m_scheduleName); } m_config.activate(true); return true; }
private void createXmppUser(String name, String xmpp, String password, int port, boolean createActive) { XmppConfiguration newXmppUser = xmppConfigs.add(); newXmppUser.userName().<StringResource>create().setValue(name); newXmppUser.xmpp().<StringResource>create().setValue(xmpp); newXmppUser.password().<StringResource>create().setValue(password); newXmppUser.port().<IntegerResource>create().setValue(port); newXmppUser.active().<BooleanResource>create().setValue(createActive); newXmppUser.activate(true); }
private void createEmailUser(String name, String email, String password, String host, int port, boolean createActive) { EmailConfiguration newEmailUser = emailConfigs.add(); newEmailUser.userName().<StringResource>create().setValue(name); newEmailUser.email().<StringResource>create().setValue(email); newEmailUser.password().<StringResource>create().setValue(password); newEmailUser.serverURL().<StringResource>create().setValue(host); newEmailUser.port().<IntegerResource>create().setValue(port); newEmailUser.active().<BooleanResource>create().setValue(createActive); newEmailUser.activate(true); }
private void createSmsUser(String name, String sms, String password, String host, int port, boolean createActive) { SmsConfiguration newSmsUser = smsConfigs.add(); newSmsUser.userName().<StringResource>create().setValue(name); newSmsUser.smsEmail().<StringResource>create().setValue(sms); newSmsUser.smsEmailPassword().<StringResource>create().setValue(password); newSmsUser.smsEmailServer().<StringResource>create().setValue(host); newSmsUser.smsEmailPort().<IntegerResource>create().setValue(port); newSmsUser.active().<BooleanResource>create().setValue(createActive); newSmsUser.activate(true); }
private void addMandatoryChannels() { HM_hlConfig attributeConfig = new HM_hlConfig(); attributeConfig.driverId = hm_hlConfig.driverId; attributeConfig.interfaceId = hm_hlConfig.interfaceId; attributeConfig.deviceAddress = hm_hlConfig.deviceAddress; attributeConfig.channelAddress = "ATTRIBUTE:0001"; attributeConfig.timeout = -1; attributeConfig.resourceName = hm_hlConfig.resourceName + "SmokeDetector"; attributeConfig.chLocator = addChannel(attributeConfig); attributeConfig = new HM_hlConfig(); attributeConfig.driverId = hm_hlConfig.driverId; attributeConfig.interfaceId = hm_hlConfig.interfaceId; attributeConfig.deviceAddress = hm_hlConfig.deviceAddress; attributeConfig.channelAddress = "ATTRIBUTE:0002"; attributeConfig.timeout = -1; attributeConfig.resourceName = hm_hlConfig.resourceName + "_BatteryStatus"; attributeConfig.chLocator = addChannel(attributeConfig); SmokeDetector smokeDetector = resourceManager.createResource(hm_hlConfig.resourceName, SmokeDetector.class); smokeAlert = smokeDetector.reading().create(); // smokeAlert.activate(true); // smokeAlert.setValue(false); smokeAlert.requestAccessMode(AccessMode.EXCLUSIVE, AccessPriority.PRIO_HIGHEST); StateOfChargeSensor eSens = smokeDetector.battery().chargeSensor().create(); batteryStatus = eSens.reading().create(); // batteryStatus.activate(true); // batteryStatus.setValue(95); batteryStatus.requestAccessMode(AccessMode.EXCLUSIVE, AccessPriority.PRIO_HIGHEST); // do not activate value resources, since they do not contain sensible values yet ResourceUtils.activateComplexResources(smokeDetector, true, appManager.getResourceAccess()); }