Examples of HmDatapoint


Examples of org.openhab.binding.homematic.internal.model.HmDatapoint

    if (battery != null) {
      for (HmChannel channel : device.getChannels()) {
        if ("0".equals(channel.getNumber())) {
          try {
            logger.debug("Adding battery type to device {}: {}", device.getType(), battery.getInfo());
            HmDatapoint dp = new HmDatapoint();
            FieldUtils.writeField(dp, "name", "BATTERY_TYPE", true);
            FieldUtils.writeField(dp, "writeable", Boolean.FALSE, true);
            FieldUtils.writeField(dp, "valueType", 20, true);
            dp.setValue(battery.getInfo());
            channel.addDatapoint(dp);
          } catch (IllegalAccessException ex) {
            throw new HomematicClientException(ex.getMessage(), ex);
          }
        }
View Full Code Here

Examples of org.openhab.binding.homematic.internal.model.HmDatapoint

  /**
   * Returns all possible symbols from the remote control.
   */
  private String[] getSymbols() throws HomematicClientException {
    DatapointConfig dpConfig = new DatapointConfig(remoteControlAddress, "18", "SUBMIT");
    HmDatapoint rcDatapoint = (HmDatapoint) context.getStateHolder().getState(dpConfig);
    if (rcDatapoint == null) {
      throw new HomematicClientException("Address " + remoteControlAddress
          + " is not a Homematic remote control with a display");
    }

    List<String> symbols = new ArrayList<String>();
    for (HmDatapoint datapoint : rcDatapoint.getChannel().getDatapoints()) {
      if (datapoint.isWriteable() && datapoint.getValueType() == 2 && !"SUBMIT".equals(datapoint.getName())) {
        symbols.add(datapoint.getName());
      }
    }
    return symbols.toArray(new String[0]);
View Full Code Here

Examples of org.openhab.binding.homematic.internal.model.HmDatapoint

   * Checks the device if the state value must be inverted.
   */
  protected boolean isStateInvertDevice(HmValueItem hmValueItem) {
    if ("STATE".equals(hmValueItem.getName())) {
      if (hmValueItem instanceof HmDatapoint) {
        HmDatapoint dp = (HmDatapoint) hmValueItem;
        for (StateInvertInfo stateInvertInfo : stateInvertDevices) {
          if (stateInvertInfo.isToInvert(dp)) {
            return true;
          }
        }
View Full Code Here

Examples of org.openhab.binding.homematic.internal.model.HmDatapoint

  /**
   * Parses the datapoint informations into the binding model.
   */
  private HmDatapoint parseDatapoint(HmChannel channel, String name, Map<String, ?> dpData)
      throws IllegalAccessException {
    HmDatapoint dp = new HmDatapoint();
    dp.setName(name);
    FieldUtils.writeField(dp, "channel", channel, true);
    FieldUtils.writeField(dp, "writeable", dpData.get("WRITEABLE"), true);

    Object valueList = dpData.get("VALUE_LIST");
    if (valueList != null && valueList instanceof Object[]) {
      Object[] vl = (Object[]) valueList;
      String[] stringArray = new String[vl.length];
      for (int i = 0; i < vl.length; i++) {
        stringArray[i] = vl[i].toString();
      }
      FieldUtils.writeField(dp, "valueList", stringArray, true);
    }

    Object value = dpData.get("VALUE");

    String type = (String) dpData.get("TYPE");
    boolean isString = StringUtils.equals("STRING", type);
    if (isString && value != null && !(value instanceof String)) {
      value = ObjectUtils.toString(value);
    }
    setValueType(dp, type, value);

    if (dp.isNumberValueType()) {
      FieldUtils.writeField(dp, "minValue", dpData.get("MIN"), true);
      FieldUtils.writeField(dp, "maxValue", dpData.get("MAX"), true);
    }

    dp.setValue(value);
    return dp;
  }
View Full Code Here

Examples of org.openhab.binding.homematic.internal.model.HmDatapoint

  /**
   * Generates a missing RSSI datapoint, workaround for a CCU bug.
   */
  private void addRssiDatapoint(HmChannel channel, String name, Object value, HmValueItemIteratorCallback callback) {
    HmDatapoint dp = new HmDatapoint();
    dp.setName(name);
    dp.setValueType(8);
    dp.setWriteable(false);
    dp.setValue(value);
    channel.addDatapoint(dp);
    DatapointConfig bindingConfig = new DatapointConfig(channel.getDevice().getAddress(), channel.getNumber(),
        dp.getName());
    callback.iterate(bindingConfig, dp);
  }
View Full Code Here

Examples of org.openhab.binding.homematic.internal.model.HmDatapoint

    return getDatapoint(name, value, min, max, "1", deviceType);
  }

  private HmDatapoint getDatapoint(String name, Object value, Number min, Number max, String channelNumber,
      String deviceType) throws Exception {
    HmDatapoint dp = new HmDatapoint();

    FieldUtils.writeField(dp, "name", name, true);
    FieldUtils.writeField(dp, "minValue", min, true);
    FieldUtils.writeField(dp, "maxValue", max, true);

    Object convertedValue = new TypeGuessAdapter().unmarshal(value == null ? null : value.toString());
    if (convertedValue instanceof Boolean) {
      FieldUtils.writeField(dp, "valueType", 2, true);
    } else if (convertedValue instanceof Integer) {
      FieldUtils.writeField(dp, "valueType", 8, true);
    } else if (convertedValue instanceof Double) {
      FieldUtils.writeField(dp, "valueType", 4, true);
    } else {
      FieldUtils.writeField(dp, "valueType", -1, true);
    }

    dp.setValue(convertedValue);

    HmChannel channel = new HmChannel();
    FieldUtils.writeField(dp, "channel", channel, true);
    FieldUtils.writeField(channel, "number", channelNumber, true);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.