@Override void storeIndicationValue() { resource.setValue(xlator.getValueBoolean()); } };
private static void setValue(final SingleValueResource resource, final Value value) { if (resource instanceof BooleanResource) { if (!(value instanceof BooleanValue)) { // workaround... it is not possible to convert FloatValue to BooleanValue ((BooleanResource) resource).setValue(Math.abs(value.getFloatValue()) > 0.0001); } else { ((BooleanResource) resource).setValue(value.getBooleanValue()); } } else { ValueResourceUtils.setValue(resource, value); } }
@Override public void resourceChanged(FloatResource resource) { final boolean alarmState = areLimitsViolated(m_device); final boolean currentState = m_device.trigger.getValue(); if (currentState != alarmState) m_device.trigger.setValue(alarmState); }
@Override public void timerElapsed(Timer timer) { try { int secondsRemaining = client.getInstallMode(); logger.debug("polled installation mode: {}s", secondsRemaining); baseResource.installationMode().stateFeedback().setValue(secondsRemaining > 0); } catch (XmlRpcException ex) { logger.error("could not poll HomeMatic client for installation mode state", ex); } } };
@Override public void event(List<HmEvent> events) { for (HmEvent e : events) { if (!address.equals(e.getAddress())) { continue; } if (PARAMS.STATE.name().equals(e.getValueKey())) { boolean open = e.getValueInt() != 0; sens.reading().setValue(open); logger.debug("SHUTTER_CONTACT {} = {}", address, open); } } }
@Override public void deactivateTargetIfProgramMissing(boolean deactivate) throws RuntimeException { this.m_deactivate = deactivate; if (m_config != null && m_config.exists() && m_config.deactivateIfValueMissing().exists()) { m_config.deactivateIfValueMissing().setValue(deactivate); } }
@Override protected void parseValue(Value value, String channelAddress) { switch (channelAddress) { case "ATTRIBUTE:0001": status.setValue(value.getStringValue().equals("closed")); status.activate(true); break; case "ATTRIBUTE:0002": batteryStatus.setValue(value.getFloatValue()); batteryStatus.activate(true); break; } }
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 event(List<HmEvent> events) { for (HmEvent e : events) { if (!address.equals(e.getAddress())) { continue; } if (PARAMS.MOTION.name().equals(e.getValueKey())) { sens.reading().setValue(e.getValueBoolean()); logger.debug("MOTION_DETECTOR {} motion detected: {}", e.getAddress(), e.getValueBoolean()); } else if (PARAMS.ERROR.name().equals(e.getValueKey())) { int err = e.getValueInt(); //XXX no idea what this event signals... } } }
@Override protected void parseValue(Value value, String channelAddress) { switch (channelAddress) { case "ATTRIBUTE:0001": smokeAlert.setValue(value.getBooleanValue()); smokeAlert.activate(true); break; case "ATTRIBUTE:0002": batteryStatus.setValue(value.getFloatValue()); batteryStatus.activate(true); break; } }
@Override public void event(List<HmEvent> events) { for (HmEvent e : events) { if (!address.equals(e.getAddress())) { continue; } if (PARAMS.STATE.name().equals(e.getValueKey())) { sens.reading().setValue(e.getValueBoolean()); logger.debug("SHUTTER_CONTACT {} = {}", address, e.getValueBoolean()); } else if (PARAMS.LOWBAT.name().equals(e.getValueKey())) { sens.battery().chargeSensor().reading().setValue(e.getValueBoolean() ? LOWBATVALUE : 1.0f); } } }
@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); } }
public void storeEvent(HmEvent e, SingleValueResource res) { logger.debug("storing event data for {}@{} to {}", e.getValueKey(), e.getAddress(), res.getPath()); if (res instanceof FloatResource) { ((FloatResource) res).setValue(e.getValueFloat()); } else if (res instanceof IntegerResource) { ((IntegerResource) res).setValue(e.getValueInt()); } else if (res instanceof StringResource) { ((StringResource) res).setValue(e.getValueString()); } else if (res instanceof BooleanResource) { ((BooleanResource) res).setValue(e.getValueBoolean()); } else { logger.warn("HomeMatic parameter resource is of unsupported type: {}", res.getResourceType()); } }
@Override public void resourceChanged(Resource resource) { if (resource.equalsLocation(pullTask.con.triggerPull())) { if (!pullTask.con.triggerPull().getValue()) return; else pullTask.con.triggerPull().setValue(false); } pullTask.triggerImmediately(); trigger.reschedule(pullTask); }
@Override public void resourceChanged(Resource resource) { if (resource.equalsLocation(pushTask.con.triggerPush())) { if (!pushTask.con.triggerPush().getValue()) return; else pushTask.con.triggerPush().setValue(false); } pushTask.triggerImmediately(); trigger.reschedule(pushTask); }
private void activate(ThermostatPattern device) { // do not activate value resources, since they do not contain sensible values yet ResourceUtils.activateComplexResources(device.model, true, appManager.getResourceAccess()); device.model.valve().setting().controllable().setValue(false); // valve is not directly controllable, only via temp setting device.model.valve().setting().controllable().activate(false); }
@Override protected void parseValue(Value value, String channelAddress) { switch (channelAddress) { case "ATTRIBUTE:0001": motion.setValue(value.getBooleanValue()); motion.activate(true); break; case "ATTRIBUTE:0002": brightness.setValue(value.getFloatValue()); brightness.activate(true); break; case "ATTRIBUTE:0003": batteryStatus.setValue(value.getFloatValue()); batteryStatus.activate(true); break; } }
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 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 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); }