private static RecordedData getHistoricalData(SingleValueResource resource) { RecordedData rd = null; if (resource instanceof FloatResource) rd = ((FloatResource) resource).getHistoricalData(); else if (resource instanceof IntegerResource) rd = ((IntegerResource) resource).getHistoricalData(); else if (resource instanceof TimeResource) rd = ((TimeResource) resource).getHistoricalData(); else if (resource instanceof BooleanResource) rd = ((BooleanResource) resource).getHistoricalData(); else throw new IllegalArgumentException("Logging not possible for resource of type " + resource.getResourceType().getName()); return rd; }
private static Value transformBack(SingleValueResource in, float factor, float offset) { final Object value = ValueResourceUtils.getValue((ValueResource) in); if (in instanceof FloatResource) return new FloatValue(((float) value - offset) / factor); else if (in instanceof IntegerResource) return new IntegerValue(((int) value - (int) offset) / ((int) factor)); else if (in instanceof TimeResource) return new LongValue(((long) value - (long) offset) / ((long) factor)); else if (in instanceof BooleanResource) return new BooleanValue((boolean) value && (factor >= 0)); else throw new IllegalArgumentException("Unsupported resource type " + in.getResourceType().getName()); }
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()); } }