private static FS20Command convertPercentType(PercentType percentType) { double percentValue = percentType.doubleValue(); int step = (int) (percentValue / 6.25); String hexValue = Integer.toHexString(step); if (hexValue.length() == 1) { hexValue = "0" + hexValue; } return FS20Command.getFromHexValue(hexValue); }
public static State getStateFromFS20Command(FS20Command command) { switch (command) { case ON_OLD_DIM_VALUE: case ON: return OnOffType.ON; case OFF: return OnOffType.OFF; case DIM_UP: return UpDownType.UP; case DIM_DOWN: return UpDownType.DOWN; case DIM_1: case DIM_2: case DIM_3: case DIM_4: case DIM_5: case DIM_6: case DIM_7: case DIM_8: case DIM_9: case DIM_10: case DIM_11: case DIM_12: case DIM_13: case DIM_14: case DIM_15: double value = Integer.parseInt(command.getHexValue(), 16) * 6.25; PercentType percent = new PercentType(BigDecimal.valueOf(value)); return percent; case TOGGLE: return OnOffType.ON; default: return UnDefType.UNDEF; } }